From 8e2ac3832ebbf9688f0d091d4cf76906f0ca26d2 Mon Sep 17 00:00:00 2001 From: Ryan Donnelly Date: Wed, 4 Jan 2023 12:09:00 -0500 Subject: [PATCH] [devops] upgrade react native to 0.68.5 --- packages/mobile/.gitignore | 3 +- packages/mobile/Gemfile.lock | 100 + packages/mobile/android/app/build.gradle | 115 +- .../android/app/src/debug/AndroidManifest.xml | 2 +- .../mcbuilder/ReactNativeFlipper.java | 7 +- .../android/app/src/main/AndroidManifest.xml | 2 +- .../MainApplicationReactNativeHost.java | 116 + .../components/MainComponentsRegistry.java | 36 + ...ApplicationTurboModuleManagerDelegate.java | 48 + .../com/rdonnelly/mcbuilder/MainActivity.java | 23 + .../rdonnelly/mcbuilder/MainApplication.java | 15 +- .../android/app/src/main/jni/Android.mk | 49 + .../jni/MainApplicationModuleProvider.cpp | 24 + .../main/jni/MainApplicationModuleProvider.h | 16 + ...nApplicationTurboModuleManagerDelegate.cpp | 45 + ...ainApplicationTurboModuleManagerDelegate.h | 38 + .../src/main/jni/MainComponentsRegistry.cpp | 61 + .../app/src/main/jni/MainComponentsRegistry.h | 32 + .../android/app/src/main/jni/OnLoad.cpp | 11 + packages/mobile/android/build.gradle | 20 +- packages/mobile/android/gradle.properties | 18 +- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- packages/mobile/android/gradlew | 259 +- packages/mobile/android/settings.gradle | 6 + .../ios/MCBuilder.xcodeproj/project.pbxproj | 32 +- packages/mobile/ios/MCBuilder/AppDelegate.m | 86 - packages/mobile/ios/MCBuilder/AppDelegate.mm | 116 + packages/mobile/ios/MCBuilder/Info.plist | 4 +- packages/mobile/ios/MCBuilder/main.m | 3 +- packages/mobile/ios/MCBuilderTests/Info.plist | 4 +- .../ios/MCBuilderTests/MCBuilderTests.m | 29 +- packages/mobile/ios/Podfile | 11 +- packages/mobile/ios/Podfile.lock | 555 +-- packages/mobile/package.json | 6 +- packages/web/package.json | 2 +- patches/react-native+0.67.5.patch | 3632 ----------------- patches/react-native+0.68.5.patch | 30 + yarn.lock | 985 +++-- 39 files changed, 2023 insertions(+), 4520 deletions(-) create mode 100644 packages/mobile/Gemfile.lock create mode 100644 packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/MainApplicationReactNativeHost.java create mode 100644 packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/components/MainComponentsRegistry.java create mode 100644 packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java create mode 100644 packages/mobile/android/app/src/main/jni/Android.mk create mode 100644 packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp create mode 100644 packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.h create mode 100644 packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp create mode 100644 packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h create mode 100644 packages/mobile/android/app/src/main/jni/MainComponentsRegistry.cpp create mode 100644 packages/mobile/android/app/src/main/jni/MainComponentsRegistry.h create mode 100644 packages/mobile/android/app/src/main/jni/OnLoad.cpp delete mode 100644 packages/mobile/ios/MCBuilder/AppDelegate.m create mode 100644 packages/mobile/ios/MCBuilder/AppDelegate.mm delete mode 100644 patches/react-native+0.67.5.patch create mode 100644 patches/react-native+0.68.5.patch diff --git a/packages/mobile/.gitignore b/packages/mobile/.gitignore index 4b7375a1..8f95c01a 100644 --- a/packages/mobile/.gitignore +++ b/packages/mobile/.gitignore @@ -56,8 +56,9 @@ buck-out/ # Bundle artifact *.jsbundle -# CocoaPods +# Ruby / CocoaPods /ios/Pods/ +/vendor/bundle/ # Build Scripts ios/exportOptions.plist diff --git a/packages/mobile/Gemfile.lock b/packages/mobile/Gemfile.lock new file mode 100644 index 00000000..8b57629a --- /dev/null +++ b/packages/mobile/Gemfile.lock @@ -0,0 +1,100 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.5) + rexml + activesupport (6.1.5) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + atomos (0.1.3) + claide (1.1.0) + cocoapods (1.11.3) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.11.3) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 1.0, < 3.0) + xcodeproj (>= 1.21.0, < 2.0) + cocoapods-core (1.11.3) + activesupport (>= 5.0, < 7) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.6.2) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored2 (3.1.2) + concurrent-ruby (1.1.10) + escape (0.0.4) + ethon (0.15.0) + ffi (>= 1.15.0) + ffi (1.15.5) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + httpclient (2.8.3) + i18n (1.10.0) + concurrent-ruby (~> 1.0) + json (2.6.1) + minitest (5.15.0) + molinillo (0.8.0) + nanaimo (0.3.0) + nap (1.1.0) + netrc (0.11.0) + public_suffix (4.0.6) + rexml (3.2.5) + ruby-macho (2.5.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + xcodeproj (1.21.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + zeitwerk (2.5.4) + +PLATFORMS + ruby + +DEPENDENCIES + cocoapods (~> 1.11, >= 1.11.2) + +RUBY VERSION + ruby 2.7.4p191 + +BUNDLED WITH + 2.2.27 \ No newline at end of file diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 323d5c35..f412847f 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: "com.android.application" import com.android.build.OutputFile +import org.apache.tools.ant.taskdefs.condition.Os /** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets @@ -79,6 +80,7 @@ import com.android.build.OutputFile project.ext.react = [ enableHermes: true, + cliPath: "../../../../node_modules/react-native/cli.js" ] apply from: "../../../../node_modules/react-native/react.gradle" @@ -123,9 +125,12 @@ def jscFlavor = 'org.webkit:android-jsc:+' def enableHermes = project.ext.react.get("enableHermes", false); /** -* Architectures to build native code for in debug. +* Architectures to build native code for. */ -def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures") +def reactNativeArchitectures() { + def value = project.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} def getPassword(String currentUser, String keyChain) { def stdout = new ByteArrayOutputStream() @@ -152,18 +157,91 @@ android { applicationId "com.rdonnelly.mcbuilder" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 168 - versionName "1.4.2" + versionCode 176 + versionName "1.5.0" + buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + + if (isNewArchitectureEnabled()) { + // We configure the NDK build only if you decide to opt-in for the New Architecture. + externalNativeBuild { + ndkBuild { + arguments "APP_PLATFORM=android-21", + "APP_STL=c++_shared", + "NDK_TOOLCHAIN_VERSION=clang", + "GENERATED_SRC_DIR=$buildDir/generated/source", + "PROJECT_BUILD_DIR=$buildDir", + "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", + "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build" + cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" + cppFlags "-std=c++17" + // Make sure this target name is the same you specify inside the + // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. + targets "mcbuilder_appmodules" + // Fix for windows limit on number of character in file paths and in command lines + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + arguments "NDK_APP_SHORT_COMMANDS=true" + } + } + } + if (!enableSeparateBuildPerCPUArchitecture) { + ndk { + abiFilters (*reactNativeArchitectures()) + } + } + } + manifestPlaceholders = [ appAuthRedirectScheme: 'com.rdonnelly.mcbuilder' ] } + + if (isNewArchitectureEnabled()) { + // We configure the NDK build only if you decide to opt-in for the New Architecture. + externalNativeBuild { + ndkBuild { + path "$projectDir/src/main/jni/Android.mk" + } + } + def reactAndroidProjectDir = project(':ReactAndroid').projectDir + def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { + dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") + from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") + into("$buildDir/react-ndk/exported") + } + def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { + dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") + from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") + into("$buildDir/react-ndk/exported") + } + afterEvaluate { + // If you wish to add a custom TurboModule or component locally, + // you should uncomment this line. + // preBuild.dependsOn("generateCodegenArtifactsFromSchema") + preDebugBuild.dependsOn(packageReactNdkDebugLibs) + preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) + + // Due to a bug inside AGP, we have to explicitly set a dependency + // between configureNdkBuild* tasks and the preBuild tasks. + // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 + configureNdkBuildRelease.dependsOn(preReleaseBuild) + configureNdkBuildDebug.dependsOn(preDebugBuild) + reactNativeArchitectures().each { architecture -> + tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { + dependsOn("preDebugBuild") + } + tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { + dependsOn("preReleaseBuild") + } + } + } + } + splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + include (*reactNativeArchitectures()) } } signingConfigs { @@ -183,11 +261,6 @@ android { buildTypes { debug { signingConfig signingConfigs.debug - if (nativeArchitectures) { - ndk { - abiFilters nativeArchitectures.split(',') - } - } } release { signingConfig signingConfigs.release @@ -215,6 +288,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) + //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From ../../node_modules @@ -244,6 +318,18 @@ dependencies { } } +if (isNewArchitectureEnabled()) { + // If new architecture is enabled, we let you build RN from source + // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. + // This will be applied to all the imported transtitive dependency. + configurations.all { + resolutionStrategy.dependencySubstitution { + substitute(module("com.facebook.react:react-native")) + .using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source") + } + } +} + // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { @@ -253,7 +339,16 @@ task copyDownloadableDepsToLibs(type: Copy) { apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) +def isNewArchitectureEnabled() { + // To opt-in for the New Architecture, you can either: + // - Set `newArchEnabled` to true inside the `gradle.properties` file + // - Invoke gradle with `-newArchEnabled=true` + // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` + return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" +} + bugsnag { uploadReactNativeMappings = true nodeModulesDir = file("../../../../node_modules") } + diff --git a/packages/mobile/android/app/src/debug/AndroidManifest.xml b/packages/mobile/android/app/src/debug/AndroidManifest.xml index b2f3ad9f..4b185bc1 100644 --- a/packages/mobile/android/app/src/debug/AndroidManifest.xml +++ b/packages/mobile/android/app/src/debug/AndroidManifest.xml @@ -8,6 +8,6 @@ android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning"> - + diff --git a/packages/mobile/android/app/src/debug/java/com/rdonnelly/mcbuilder/ReactNativeFlipper.java b/packages/mobile/android/app/src/debug/java/com/rdonnelly/mcbuilder/ReactNativeFlipper.java index 51b0863d..966174fd 100644 --- a/packages/mobile/android/app/src/debug/java/com/rdonnelly/mcbuilder/ReactNativeFlipper.java +++ b/packages/mobile/android/app/src/debug/java/com/rdonnelly/mcbuilder/ReactNativeFlipper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) Facebook, Inc. and its affiliates. + * Copyright (c) Meta Platforms, Inc. and affiliates. * *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. @@ -19,6 +19,7 @@ import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; import com.facebook.flipper.plugins.react.ReactFlipperPlugin; import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceEventListener; import com.facebook.react.ReactInstanceManager; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.network.NetworkingModule; @@ -51,7 +52,7 @@ public void apply(OkHttpClient.Builder builder) { ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); if (reactContext == null) { reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceManager.ReactInstanceEventListener() { + new ReactInstanceEventListener() { @Override public void onReactContextInitialized(ReactContext reactContext) { reactInstanceManager.removeReactInstanceEventListener(this); @@ -69,4 +70,4 @@ public void run() { } } } -} +} \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml index 400d976f..6f67ff70 100644 --- a/packages/mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ diff --git a/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/MainApplicationReactNativeHost.java b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/MainApplicationReactNativeHost.java new file mode 100644 index 00000000..5583254e --- /dev/null +++ b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/MainApplicationReactNativeHost.java @@ -0,0 +1,116 @@ +package com.rdonnelly.mcbuilder.newarchitecture; + +import android.app.Application; +import androidx.annotation.NonNull; +import com.facebook.react.PackageList; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.ReactPackageTurboModuleManagerDelegate; +import com.facebook.react.bridge.JSIModulePackage; +import com.facebook.react.bridge.JSIModuleProvider; +import com.facebook.react.bridge.JSIModuleSpec; +import com.facebook.react.bridge.JSIModuleType; +import com.facebook.react.bridge.JavaScriptContextHolder; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.UIManager; +import com.facebook.react.fabric.ComponentFactory; +import com.facebook.react.fabric.CoreComponentsRegistry; +import com.facebook.react.fabric.EmptyReactNativeConfig; +import com.facebook.react.fabric.FabricJSIModuleProvider; +import com.facebook.react.uimanager.ViewManagerRegistry; +import com.rdonnelly.mcbuilder.BuildConfig; +import com.rdonnelly.mcbuilder.newarchitecture.components.MainComponentsRegistry; +import com.rdonnelly.mcbuilder.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; +import java.util.ArrayList; +import java.util.List; + +/** + * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both + * TurboModule delegates and the Fabric Renderer. + * + *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the + * `newArchEnabled` property). Is ignored otherwise. + */ +public class MainApplicationReactNativeHost extends ReactNativeHost { + public MainApplicationReactNativeHost(Application application) { + super(application); + } + + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + List packages = new PackageList(this).getPackages(); + // Packages that cannot be autolinked yet can be added manually here, for example: + // packages.add(new MyReactNativePackage()); + // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: + // packages.add(new TurboReactPackage() { ... }); + // If you have custom Fabric Components, their ViewManagers should also be loaded here + // inside a ReactPackage. + return packages; + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + + @NonNull + @Override + protected ReactPackageTurboModuleManagerDelegate.Builder + getReactPackageTurboModuleManagerDelegateBuilder() { + // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary + // for the new architecture and to use TurboModules correctly. + return new MainApplicationTurboModuleManagerDelegate.Builder(); + } + + @Override + protected JSIModulePackage getJSIModulePackage() { + return new JSIModulePackage() { + @Override + public List getJSIModules( + final ReactApplicationContext reactApplicationContext, + final JavaScriptContextHolder jsContext) { + final List specs = new ArrayList<>(); + + // Here we provide a new JSIModuleSpec that will be responsible of providing the + // custom Fabric Components. + specs.add( + new JSIModuleSpec() { + @Override + public JSIModuleType getJSIModuleType() { + return JSIModuleType.UIManager; + } + + @Override + public JSIModuleProvider getJSIModuleProvider() { + final ComponentFactory componentFactory = new ComponentFactory(); + CoreComponentsRegistry.register(componentFactory); + + // Here we register a Components Registry. + // The one that is generated with the template contains no components + // and just provides you the one from React Native core. + MainComponentsRegistry.register(componentFactory); + + final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); + + ViewManagerRegistry viewManagerRegistry = + new ViewManagerRegistry( + reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); + + return new FabricJSIModuleProvider( + reactApplicationContext, + componentFactory, + new EmptyReactNativeConfig(), + viewManagerRegistry); + } + }); + return specs; + } + }; + } +} \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/components/MainComponentsRegistry.java b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/components/MainComponentsRegistry.java new file mode 100644 index 00000000..ab5447a0 --- /dev/null +++ b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/components/MainComponentsRegistry.java @@ -0,0 +1,36 @@ +package com.rdonnelly.mcbuilder.newarchitecture.components; + +import com.facebook.jni.HybridData; +import com.facebook.proguard.annotations.DoNotStrip; +import com.facebook.react.fabric.ComponentFactory; +import com.facebook.soloader.SoLoader; + +/** + * Class responsible to load the custom Fabric Components. This class has native methods and needs a + * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ + * folder for you). + * + *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the + * `newArchEnabled` property). Is ignored otherwise. + */ +@DoNotStrip +public class MainComponentsRegistry { + static { + SoLoader.loadLibrary("fabricjni"); + } + + @DoNotStrip private final HybridData mHybridData; + + @DoNotStrip + private native HybridData initHybrid(ComponentFactory componentFactory); + + @DoNotStrip + private MainComponentsRegistry(ComponentFactory componentFactory) { + mHybridData = initHybrid(componentFactory); + } + + @DoNotStrip + public static MainComponentsRegistry register(ComponentFactory componentFactory) { + return new MainComponentsRegistry(componentFactory); + } +} \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java new file mode 100644 index 00000000..f2a74e5f --- /dev/null +++ b/packages/mobile/android/app/src/main/java/com/mcbuilder/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java @@ -0,0 +1,48 @@ +package com.rdonnelly.mcbuilder.newarchitecture.modules; + +import com.facebook.jni.HybridData; +import com.facebook.react.ReactPackage; +import com.facebook.react.ReactPackageTurboModuleManagerDelegate; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.soloader.SoLoader; +import java.util.List; + +/** + * Class responsible to load the TurboModules. This class has native methods and needs a + * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ + * folder for you). + * + *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the + * `newArchEnabled` property). Is ignored otherwise. + */ +public class MainApplicationTurboModuleManagerDelegate + extends ReactPackageTurboModuleManagerDelegate { + + private static volatile boolean sIsSoLibraryLoaded; + + protected MainApplicationTurboModuleManagerDelegate( + ReactApplicationContext reactApplicationContext, List packages) { + super(reactApplicationContext, packages); + } + + protected native HybridData initHybrid(); + + native boolean canCreateTurboModule(String moduleName); + + public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { + protected MainApplicationTurboModuleManagerDelegate build( + ReactApplicationContext context, List packages) { + return new MainApplicationTurboModuleManagerDelegate(context, packages); + } + } + + @Override + protected synchronized void maybeLoadOtherSoLibraries() { + if (!sIsSoLibraryLoaded) { + // If you change the name of your application .so file in the Android.mk file, + // make sure you update the name here as well. + SoLoader.loadLibrary("mcbuilder_appmodules"); + sIsSoLibraryLoaded = true; + } + } +} \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainActivity.java b/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainActivity.java index 6599c884..83345b6d 100644 --- a/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainActivity.java +++ b/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainActivity.java @@ -17,6 +17,29 @@ protected String getMainComponentName() { return "MCBuilder"; } + /** + * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and + * you can specify the rendered you wish to use (Fabric or the older renderer). + */ + @Override + protected ReactActivityDelegate createReactActivityDelegate() { + return new MainActivityDelegate(this, getMainComponentName()); + } + + public static class MainActivityDelegate extends ReactActivityDelegate { + public MainActivityDelegate(ReactActivity activity, String mainComponentName) { + super(activity, mainComponentName); + } + + @Override + protected ReactRootView createRootView() { + ReactRootView reactRootView = new ReactRootView(getContext()); + // If you opted-in for the New Architecture, we enable the Fabric Renderer. + reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); + return reactRootView; + } + } + @Override protected void onCreate(Bundle savedInstanceState) { RNBootSplash.init(this); diff --git a/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainApplication.java b/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainApplication.java index cb303b9f..257b159b 100644 --- a/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainApplication.java +++ b/packages/mobile/android/app/src/main/java/com/rdonnelly/mcbuilder/MainApplication.java @@ -9,7 +9,9 @@ import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; +import com.facebook.react.config.ReactFeatureFlags; import com.facebook.soloader.SoLoader; +import com.rdonnelly.mcbuilder.newarchitecture.MainApplicationReactNativeHost; import com.swmansion.reanimated.ReanimatedJSIModulePackage; import java.lang.reflect.InvocationTargetException; import java.util.List; @@ -43,15 +45,26 @@ protected JSIModulePackage getJSIModulePackage() { } }; + private final ReactNativeHost mNewArchitectureNativeHost = + new MainApplicationReactNativeHost(this); + @Override public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + return mNewArchitectureNativeHost; + } else { + return mReactNativeHost; + } } @Override public void onCreate() { super.onCreate(); + Bugsnag.start(this); + + // If you opted-in for the New Architecture, we enable the TurboModule system + ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; SoLoader.init(this, /* native exopackage */ false); initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); } diff --git a/packages/mobile/android/app/src/main/jni/Android.mk b/packages/mobile/android/app/src/main/jni/Android.mk new file mode 100644 index 00000000..e2d74ed0 --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/Android.mk @@ -0,0 +1,49 @@ +THIS_DIR := $(call my-dir) + +include $(REACT_ANDROID_DIR)/Android-prebuilt.mk + +# If you wish to add a custom TurboModule or Fabric component in your app you +# will have to include the following autogenerated makefile. +# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk +include $(CLEAR_VARS) + +LOCAL_PATH := $(THIS_DIR) + +# You can customize the name of your application .so file here. +LOCAL_MODULE := mcbuilder_appmodules + +LOCAL_C_INCLUDES := $(LOCAL_PATH) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) + +# If you wish to add a custom TurboModule or Fabric component in your app you +# will have to uncomment those lines to include the generated source +# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) +# +# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni +# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) +# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni + +# Here you should add any native library you wish to depend on. +LOCAL_SHARED_LIBRARIES := \ + libfabricjni \ + libfbjni \ + libfolly_futures \ + libfolly_json \ + libglog \ + libjsi \ + libreact_codegen_rncore \ + libreact_debug \ + libreact_nativemodule_core \ + libreact_render_componentregistry \ + libreact_render_core \ + libreact_render_debug \ + libreact_render_graphics \ + librrc_view \ + libruntimeexecutor \ + libturbomodulejsijni \ + libyoga + +LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall + +include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp new file mode 100644 index 00000000..39de093d --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp @@ -0,0 +1,24 @@ +#include "MainApplicationModuleProvider.h" + +#include + +namespace facebook { +namespace react { + +std::shared_ptr MainApplicationModuleProvider( + const std::string moduleName, + const JavaTurboModule::InitParams ¶ms) { + // Here you can provide your own module provider for TurboModules coming from + // either your application or from external libraries. The approach to follow + // is similar to the following (for a library called `samplelibrary`: + // + // auto module = samplelibrary_ModuleProvider(moduleName, params); + // if (module != nullptr) { + // return module; + // } + // return rncore_ModuleProvider(moduleName, params); + return rncore_ModuleProvider(moduleName, params); +} + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.h b/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.h new file mode 100644 index 00000000..2f2fb24a --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainApplicationModuleProvider.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include + +#include + +namespace facebook { +namespace react { + +std::shared_ptr MainApplicationModuleProvider( + const std::string moduleName, + const JavaTurboModule::InitParams ¶ms); + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp new file mode 100644 index 00000000..f2e4714d --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp @@ -0,0 +1,45 @@ +#include "MainApplicationTurboModuleManagerDelegate.h" +#include "MainApplicationModuleProvider.h" + +namespace facebook { +namespace react { + +jni::local_ref +MainApplicationTurboModuleManagerDelegate::initHybrid( + jni::alias_ref) { + return makeCxxInstance(); +} + +void MainApplicationTurboModuleManagerDelegate::registerNatives() { + registerHybrid({ + makeNativeMethod( + "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), + makeNativeMethod( + "canCreateTurboModule", + MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), + }); +} + +std::shared_ptr +MainApplicationTurboModuleManagerDelegate::getTurboModule( + const std::string name, + const std::shared_ptr jsInvoker) { + // Not implemented yet: provide pure-C++ NativeModules here. + return nullptr; +} + +std::shared_ptr +MainApplicationTurboModuleManagerDelegate::getTurboModule( + const std::string name, + const JavaTurboModule::InitParams ¶ms) { + return MainApplicationModuleProvider(name, params); +} + +bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( + std::string name) { + return getTurboModule(name, nullptr) != nullptr || + getTurboModule(name, {.moduleName = name}) != nullptr; +} + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h new file mode 100644 index 00000000..b72ba8da --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h @@ -0,0 +1,38 @@ +#include +#include + +#include +#include + +namespace facebook { +namespace react { + +class MainApplicationTurboModuleManagerDelegate + : public jni::HybridClass< + MainApplicationTurboModuleManagerDelegate, + TurboModuleManagerDelegate> { + public: + // Adapt it to the package you used for your Java class. + static constexpr auto kJavaDescriptor = + "Lcom/mcbuilder/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; + + static jni::local_ref initHybrid(jni::alias_ref); + + static void registerNatives(); + + std::shared_ptr getTurboModule( + const std::string name, + const std::shared_ptr jsInvoker) override; + std::shared_ptr getTurboModule( + const std::string name, + const JavaTurboModule::InitParams ¶ms) override; + + /** + * Test-only method. Allows user to verify whether a TurboModule can be + * created by instances of this class. + */ + bool canCreateTurboModule(std::string name); +}; + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.cpp b/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.cpp new file mode 100644 index 00000000..c5188f4d --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.cpp @@ -0,0 +1,61 @@ +#include "MainComponentsRegistry.h" + +#include +#include +#include +#include + +namespace facebook { +namespace react { + +MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} + +std::shared_ptr +MainComponentsRegistry::sharedProviderRegistry() { + auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); + + // Custom Fabric Components go here. You can register custom + // components coming from your App or from 3rd party libraries here. + // + // providerRegistry->add(concreteComponentDescriptorProvider< + // AocViewerComponentDescriptor>()); + return providerRegistry; +} + +jni::local_ref +MainComponentsRegistry::initHybrid( + jni::alias_ref, + ComponentFactory *delegate) { + auto instance = makeCxxInstance(delegate); + + auto buildRegistryFunction = + [](EventDispatcher::Weak const &eventDispatcher, + ContextContainer::Shared const &contextContainer) + -> ComponentDescriptorRegistry::Shared { + auto registry = MainComponentsRegistry::sharedProviderRegistry() + ->createComponentDescriptorRegistry( + {eventDispatcher, contextContainer}); + + auto mutableRegistry = + std::const_pointer_cast(registry); + + mutableRegistry->setFallbackComponentDescriptor( + std::make_shared( + ComponentDescriptorParameters{ + eventDispatcher, contextContainer, nullptr})); + + return registry; + }; + + delegate->buildRegistryFunction = buildRegistryFunction; + return instance; +} + +void MainComponentsRegistry::registerNatives() { + registerHybrid({ + makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), + }); +} + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.h b/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.h new file mode 100644 index 00000000..30392c76 --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/MainComponentsRegistry.h @@ -0,0 +1,32 @@ +#pragma once + +#include +#include +#include +#include + +namespace facebook { +namespace react { + +class MainComponentsRegistry + : public facebook::jni::HybridClass { + public: + // Adapt it to the package you used for your Java class. + constexpr static auto kJavaDescriptor = + "Lcom/mcbuilder/newarchitecture/components/MainComponentsRegistry;"; + + static void registerNatives(); + + MainComponentsRegistry(ComponentFactory *delegate); + + private: + static std::shared_ptr + sharedProviderRegistry(); + + static jni::local_ref initHybrid( + jni::alias_ref, + ComponentFactory *delegate); +}; + +} // namespace react +} // namespace facebook \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/jni/OnLoad.cpp b/packages/mobile/android/app/src/main/jni/OnLoad.cpp new file mode 100644 index 00000000..ae1ef007 --- /dev/null +++ b/packages/mobile/android/app/src/main/jni/OnLoad.cpp @@ -0,0 +1,11 @@ +#include +#include "MainApplicationTurboModuleManagerDelegate.h" +#include "MainComponentsRegistry.h" + +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { + return facebook::jni::initialize(vm, [] { + facebook::react::MainApplicationTurboModuleManagerDelegate:: + registerNatives(); + facebook::react::MainComponentsRegistry::registerNatives(); + }); +} \ No newline at end of file diff --git a/packages/mobile/android/build.gradle b/packages/mobile/android/build.gradle index 7e38e963..7b442a36 100644 --- a/packages/mobile/android/build.gradle +++ b/packages/mobile/android/build.gradle @@ -1,22 +1,34 @@ +import org.apache.tools.ant.taskdefs.condition.Os + // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" minSdkVersion = 21 compileSdkVersion = 31 targetSdkVersion = 31 - ndkVersion = "21.4.7075529" + androidXAnnotation = "1.2.0" androidXBrowser = "1.3.0" + + if (System.properties['os.arch'] == "aarch64") { + // For M1 Users we need to use the NDK 24 which added support for aarch64 + ndkVersion = "24.0.8215888" + } else { + // Otherwise we default to the side-by-side NDK version from AGP. + ndkVersion = "21.4.7075529" + } } repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:4.2.2") - classpath("com.bugsnag:bugsnag-android-gradle-plugin:5.+") + classpath("com.android.tools.build:gradle:7.0.4") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath("de.undercouch:gradle-download-task:4.1.2") + classpath("com.bugsnag:bugsnag-android-gradle-plugin:7.+") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/packages/mobile/android/gradle.properties b/packages/mobile/android/gradle.properties index 17a4f619..b22e48e7 100644 --- a/packages/mobile/android/gradle.properties +++ b/packages/mobile/android/gradle.properties @@ -9,8 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx1024m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit @@ -25,7 +25,19 @@ android.useAndroidX=true android.enableJetifier=true # Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.99.0 +FLIPPER_VERSION=0.125.0 + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false MCBUILDER_UPLOAD_STORE_FILE=mc-builder-upload-key.keystore MCBUILDER_UPLOAD_KEY_ALIAS=mc-builder-key-alias diff --git a/packages/mobile/android/gradle/wrapper/gradle-wrapper.jar b/packages/mobile/android/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18435 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 B8dv}T delta 17845 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 X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties index a0f7639f..669386b8 100644 --- a/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/mobile/android/gradlew b/packages/mobile/android/gradlew index 4f906e0c..a58591e9 100755 --- a/packages/mobile/android/gradlew +++ b/packages/mobile/android/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' -exec "$JAVACMD" "$@" +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/packages/mobile/android/settings.gradle b/packages/mobile/android/settings.gradle index d7fae413..9a27951c 100644 --- a/packages/mobile/android/settings.gradle +++ b/packages/mobile/android/settings.gradle @@ -1,3 +1,9 @@ rootProject.name = 'MCBuilder' apply from: file("../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' +includeBuild('../../../node_modules/react-native-gradle-plugin') + +if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { + include(":ReactAndroid") + project(":ReactAndroid").projectDir = file('../../../node_modules/react-native/ReactAndroid') +} diff --git a/packages/mobile/ios/MCBuilder.xcodeproj/project.pbxproj b/packages/mobile/ios/MCBuilder.xcodeproj/project.pbxproj index f865ddcf..4a46453a 100644 --- a/packages/mobile/ios/MCBuilder.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/MCBuilder.xcodeproj/project.pbxproj @@ -9,7 +9,7 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* MCBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* MCBuilderTests.m */; }; 0B42ED29704A08BB9C895E4B /* libPods-MCBuilder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C3FD3CF2A0B3011569A97AB3 /* libPods-MCBuilder.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 3D891D324E794F458DB75B6F /* FontAwesome5_Pro_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5EE04ED1CFC74FE4892CB85F /* FontAwesome5_Pro_Brands.ttf */; }; @@ -39,7 +39,7 @@ 0F62C22185F0BE618B0B64FB /* Pods-MCBuilder.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MCBuilder.release.xcconfig"; path = "Target Support Files/Pods-MCBuilder/Pods-MCBuilder.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* MCBuilder.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MCBuilder.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = MCBuilder/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = MCBuilder/AppDelegate.m; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.mm; path = MCBuilder/AppDelegate.mm; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = MCBuilder/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = MCBuilder/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = MCBuilder/main.m; sourceTree = ""; }; @@ -102,7 +102,7 @@ 95584AB6261FC36F0081B9D4 /* MCBuilder.entitlements */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 95584AA8261FC3050081B9D4 /* BootSplash.storyboard */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, 13B07FB71A68108700A75B9A /* main.m */, @@ -460,7 +460,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -537,7 +537,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MCBuilder/MCBuilder.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 170; + CURRENT_PROJECT_VERSION = 176; DEVELOPMENT_TEAM = EZ4AQB6GC7; ENABLE_BITCODE = NO; INFOPLIST_FILE = MCBuilder/Info.plist; @@ -570,7 +570,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MCBuilder/MCBuilder.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 170; + CURRENT_PROJECT_VERSION = 176; DEVELOPMENT_TEAM = EZ4AQB6GC7; INFOPLIST_FILE = MCBuilder/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 11.0; @@ -598,7 +598,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -626,7 +626,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -654,6 +654,12 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + ); SDKROOT = iphoneos; }; name = Debug; @@ -663,7 +669,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -691,7 +697,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -711,6 +717,12 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + ); SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; diff --git a/packages/mobile/ios/MCBuilder/AppDelegate.m b/packages/mobile/ios/MCBuilder/AppDelegate.m deleted file mode 100644 index 97a5b2aa..00000000 --- a/packages/mobile/ios/MCBuilder/AppDelegate.m +++ /dev/null @@ -1,86 +0,0 @@ -#import -#import "AppDelegate.h" - -#import -#import -#import -#import - -#import "RNBootSplash.h" - -#ifdef FB_SONARKIT_ENABLED -#import -#import -#import -#import -#import -#import - -static void InitializeFlipper(UIApplication *application) { - FlipperClient *client = [FlipperClient sharedClient]; - SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; - [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; - [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; - [client addPlugin:[FlipperKitReactPlugin new]]; - [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; - [client start]; -} -#endif - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - [Bugsnag start]; - -#ifdef FB_SONARKIT_ENABLED - InitializeFlipper(application); -#endif - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge - moduleName:@"MCBuilder" - initialProperties:nil]; - - if (@available(iOS 13.0, *)) { - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - rootView.backgroundColor = [UIColor whiteColor]; - } - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - - [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView]; - - return YES; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -- (BOOL)application:(UIApplication *)application - openURL:(NSURL *)url - options:(NSDictionary *)options -{ - return [RCTLinkingManager application:application openURL:url options:options]; -} - -- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity - restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler -{ - return [RCTLinkingManager application:application - continueUserActivity:userActivity - restorationHandler:restorationHandler]; -} - -@end diff --git a/packages/mobile/ios/MCBuilder/AppDelegate.mm b/packages/mobile/ios/MCBuilder/AppDelegate.mm new file mode 100644 index 00000000..fc8487fe --- /dev/null +++ b/packages/mobile/ios/MCBuilder/AppDelegate.mm @@ -0,0 +1,116 @@ +#import +#import "AppDelegate.h" + +#import +#import +#import + +#import + +#import "RNBootSplash.h" + +#if RCT_NEW_ARCH_ENABLED +#import +#import +#import +#import +#import +#import + +#import + +@interface AppDelegate () { + RCTTurboModuleManager *_turboModuleManager; + RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; + std::shared_ptr _reactNativeConfig; + facebook::react::ContextContainer::Shared _contextContainer; +} +@end +#endif + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + [Bugsnag start]; + + RCTAppSetupPrepareApp(application); + + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; + +#if RCT_NEW_ARCH_ENABLED + _contextContainer = std::make_shared(); + _reactNativeConfig = std::make_shared(); + _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); + _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; + bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; +#endif + + UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"MCBuilder", nil); + + if (@available(iOS 13.0, *)) { + rootView.backgroundColor = [UIColor systemBackgroundColor]; + } else { + rootView.backgroundColor = [UIColor whiteColor]; + } + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [UIViewController new]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + + [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView]; + + return YES; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +#if RCT_NEW_ARCH_ENABLED + +#pragma mark - RCTCxxBridgeDelegate + +- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge +{ + _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge + delegate:self + jsInvoker:bridge.jsCallInvoker]; + return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); +} + +#pragma mark RCTTurboModuleManagerDelegate + +- (Class)getModuleClassFromName:(const char *)name +{ + return RCTCoreModulesClassProvider(name); +} + +- (std::shared_ptr)getTurboModule:(const std::string &)name + jsInvoker:(std::shared_ptr)jsInvoker +{ + return nullptr; +} + +- (std::shared_ptr)getTurboModule:(const std::string &)name + initParams: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return nullptr; +} + +- (id)getModuleInstanceFromClass:(Class)moduleClass +{ + return RCTAppSetupDefaultModuleFromClass(moduleClass); +} + +#endif + +@end \ No newline at end of file diff --git a/packages/mobile/ios/MCBuilder/Info.plist b/packages/mobile/ios/MCBuilder/Info.plist index 75e4476d..b3adf3c5 100644 --- a/packages/mobile/ios/MCBuilder/Info.plist +++ b/packages/mobile/ios/MCBuilder/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.2 + 1.5.0 CFBundleSignature ???? CFBundleURLTypes @@ -30,7 +30,7 @@ CFBundleVersion - 170 + 176 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/packages/mobile/ios/MCBuilder/main.m b/packages/mobile/ios/MCBuilder/main.m index b1df44b9..d645c724 100644 --- a/packages/mobile/ios/MCBuilder/main.m +++ b/packages/mobile/ios/MCBuilder/main.m @@ -2,7 +2,8 @@ #import "AppDelegate.h" -int main(int argc, char * argv[]) { +int main(int argc, char *argv[]) +{ @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } diff --git a/packages/mobile/ios/MCBuilderTests/Info.plist b/packages/mobile/ios/MCBuilderTests/Info.plist index be0aed34..59697b44 100644 --- a/packages/mobile/ios/MCBuilderTests/Info.plist +++ b/packages/mobile/ios/MCBuilderTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.4.2 + 1.5.0 CFBundleSignature ???? CFBundleVersion - 170 + 176 diff --git a/packages/mobile/ios/MCBuilderTests/MCBuilderTests.m b/packages/mobile/ios/MCBuilderTests/MCBuilderTests.m index 5740a37a..501eede1 100644 --- a/packages/mobile/ios/MCBuilderTests/MCBuilderTests.m +++ b/packages/mobile/ios/MCBuilderTests/MCBuilderTests.m @@ -13,7 +13,7 @@ @interface MCBuilderTests : XCTestCase @implementation MCBuilderTests -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test { if (test(view)) { return YES; @@ -34,23 +34,25 @@ - (void)testRendersWelcomeScreen __block NSString *redboxError = nil; #ifdef DEBUG - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); + RCTSetLogFunction( + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); #endif while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; + foundElement = [self findSubviewInView:vc.view + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; } #ifdef DEBUG @@ -61,5 +63,4 @@ - (void)testRendersWelcomeScreen XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); } - -@end +@end \ No newline at end of file diff --git a/packages/mobile/ios/Podfile b/packages/mobile/ios/Podfile index 5600df84..70b8daba 100644 --- a/packages/mobile/ios/Podfile +++ b/packages/mobile/ios/Podfile @@ -1,15 +1,22 @@ require_relative '../../../node_modules/react-native/scripts/react_native_pods' require_relative '../../../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '11.0' +platform :ios, '12.4' +install! 'cocoapods', :deterministic_uuids => false target 'MCBuilder' do config = use_native_modules! + # Flags change depending on the env values. + flags = get_default_flags() + use_react_native!( :path => config[:reactNativePath], # to enable hermes on iOS, change `false` to `true` and then install pods - :hermes_enabled => false + :hermes_enabled => true, + :fabric_enabled => flags[:fabric_enabled], + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." ) target 'MCBuilderTests' do diff --git a/packages/mobile/ios/Podfile.lock b/packages/mobile/ios/Podfile.lock index 3dac4e2e..6ebcee32 100644 --- a/packages/mobile/ios/Podfile.lock +++ b/packages/mobile/ios/Podfile.lock @@ -9,78 +9,80 @@ PODS: - React-Core - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.67.5) - - FBReactNativeSpec (0.67.5): + - FBLazyVector (0.68.5) + - FBReactNativeSpec (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.67.5) - - RCTTypeSafety (= 0.67.5) - - React-Core (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - Flipper (0.99.0): + - RCTRequired (= 0.68.5) + - RCTTypeSafety (= 0.68.5) + - React-Core (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - Flipper (0.125.0): - Flipper-Folly (~> 2.6) - Flipper-RSocket (~> 1.4) - Flipper-Boost-iOSX (1.76.0.1.11) - - Flipper-DoubleConversion (3.1.7) + - Flipper-DoubleConversion (3.2.0) - Flipper-Fmt (7.1.7) - - Flipper-Folly (2.6.7): + - Flipper-Folly (2.6.10): - Flipper-Boost-iOSX - Flipper-DoubleConversion - Flipper-Fmt (= 7.1.7) - Flipper-Glog - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.180) - - Flipper-Glog (0.3.6) + - OpenSSL-Universal (= 1.1.1100) + - Flipper-Glog (0.5.0.4) - Flipper-PeerTalk (0.0.4) - Flipper-RSocket (1.4.3): - Flipper-Folly (~> 2.6) - - FlipperKit (0.99.0): - - FlipperKit/Core (= 0.99.0) - - FlipperKit/Core (0.99.0): - - Flipper (~> 0.99.0) + - FlipperKit (0.125.0): + - FlipperKit/Core (= 0.125.0) + - FlipperKit/Core (0.125.0): + - Flipper (~> 0.125.0) - FlipperKit/CppBridge - FlipperKit/FBCxxFollyDynamicConvert - FlipperKit/FBDefines - FlipperKit/FKPortForwarding - - FlipperKit/CppBridge (0.99.0): - - Flipper (~> 0.99.0) - - FlipperKit/FBCxxFollyDynamicConvert (0.99.0): + - SocketRocket (~> 0.6.0) + - FlipperKit/CppBridge (0.125.0): + - Flipper (~> 0.125.0) + - FlipperKit/FBCxxFollyDynamicConvert (0.125.0): - Flipper-Folly (~> 2.6) - - FlipperKit/FBDefines (0.99.0) - - FlipperKit/FKPortForwarding (0.99.0): + - FlipperKit/FBDefines (0.125.0) + - FlipperKit/FKPortForwarding (0.125.0): - CocoaAsyncSocket (~> 7.6) - Flipper-PeerTalk (~> 0.0.4) - - FlipperKit/FlipperKitHighlightOverlay (0.99.0) - - FlipperKit/FlipperKitLayoutHelpers (0.99.0): + - FlipperKit/FlipperKitHighlightOverlay (0.125.0) + - FlipperKit/FlipperKitLayoutHelpers (0.125.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutIOSDescriptors (0.99.0): + - FlipperKit/FlipperKitLayoutIOSDescriptors (0.125.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutHelpers - YogaKit (~> 1.18) - - FlipperKit/FlipperKitLayoutPlugin (0.99.0): + - FlipperKit/FlipperKitLayoutPlugin (0.125.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutHelpers - FlipperKit/FlipperKitLayoutIOSDescriptors - FlipperKit/FlipperKitLayoutTextSearchable - YogaKit (~> 1.18) - - FlipperKit/FlipperKitLayoutTextSearchable (0.99.0) - - FlipperKit/FlipperKitNetworkPlugin (0.99.0): + - FlipperKit/FlipperKitLayoutTextSearchable (0.125.0) + - FlipperKit/FlipperKitNetworkPlugin (0.125.0): - FlipperKit/Core - - FlipperKit/FlipperKitReactPlugin (0.99.0): + - FlipperKit/FlipperKitReactPlugin (0.125.0): - FlipperKit/Core - - FlipperKit/FlipperKitUserDefaultsPlugin (0.99.0): + - FlipperKit/FlipperKitUserDefaultsPlugin (0.125.0): - FlipperKit/Core - - FlipperKit/SKIOSNetworkPlugin (0.99.0): + - FlipperKit/SKIOSNetworkPlugin (0.125.0): - FlipperKit/Core - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) + - hermes-engine (0.11.0) - libevent (2.1.12) - - OpenSSL-Universal (1.1.180) + - OpenSSL-Universal (1.1.1100) - RCT-Folly (2021.06.28.00-v2): - boost - DoubleConversion @@ -92,192 +94,218 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCTRequired (0.67.5) - - RCTTypeSafety (0.67.5): - - FBLazyVector (= 0.67.5) + - RCT-Folly/Futures (2021.06.28.00-v2): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - libevent + - RCTRequired (0.68.5) + - RCTTypeSafety (0.68.5): + - FBLazyVector (= 0.68.5) - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.67.5) - - React-Core (= 0.67.5) - - React (0.67.5): - - React-Core (= 0.67.5) - - React-Core/DevSupport (= 0.67.5) - - React-Core/RCTWebSocket (= 0.67.5) - - React-RCTActionSheet (= 0.67.5) - - React-RCTAnimation (= 0.67.5) - - React-RCTBlob (= 0.67.5) - - React-RCTImage (= 0.67.5) - - React-RCTLinking (= 0.67.5) - - React-RCTNetwork (= 0.67.5) - - React-RCTSettings (= 0.67.5) - - React-RCTText (= 0.67.5) - - React-RCTVibration (= 0.67.5) - - React-callinvoker (0.67.5) - - React-Core (0.67.5): + - RCTRequired (= 0.68.5) + - React-Core (= 0.68.5) + - React (0.68.5): + - React-Core (= 0.68.5) + - React-Core/DevSupport (= 0.68.5) + - React-Core/RCTWebSocket (= 0.68.5) + - React-RCTActionSheet (= 0.68.5) + - React-RCTAnimation (= 0.68.5) + - React-RCTBlob (= 0.68.5) + - React-RCTImage (= 0.68.5) + - React-RCTLinking (= 0.68.5) + - React-RCTNetwork (= 0.68.5) + - React-RCTSettings (= 0.68.5) + - React-RCTText (= 0.68.5) + - React-RCTVibration (= 0.68.5) + - React-callinvoker (0.68.5) + - React-Codegen (0.68.5): + - FBReactNativeSpec (= 0.68.5) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTRequired (= 0.68.5) + - RCTTypeSafety (= 0.68.5) + - React-Core (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-Core (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.67.5) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-Core/Default (= 0.68.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/CoreModulesHeaders (0.67.5): + - React-Core/CoreModulesHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/Default (0.67.5): + - React-Core/Default (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/DevSupport (0.67.5): + - React-Core/DevSupport (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.67.5) - - React-Core/RCTWebSocket (= 0.67.5) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-jsinspector (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-Core/Default (= 0.68.5) + - React-Core/RCTWebSocket (= 0.68.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-jsinspector (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTActionSheetHeaders (0.67.5): + - React-Core/RCTActionSheetHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTAnimationHeaders (0.67.5): + - React-Core/RCTAnimationHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTBlobHeaders (0.67.5): + - React-Core/RCTBlobHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTImageHeaders (0.67.5): + - React-Core/RCTImageHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTLinkingHeaders (0.67.5): + - React-Core/RCTLinkingHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTNetworkHeaders (0.67.5): + - React-Core/RCTNetworkHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTSettingsHeaders (0.67.5): + - React-Core/RCTSettingsHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTTextHeaders (0.67.5): + - React-Core/RCTTextHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTVibrationHeaders (0.67.5): + - React-Core/RCTVibrationHeaders (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-Core/RCTWebSocket (0.67.5): + - React-Core/RCTWebSocket (0.68.5): - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.67.5) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsiexecutor (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-Core/Default (= 0.68.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-perflogger (= 0.68.5) - Yoga - - React-CoreModules (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - React-CoreModules (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.67.5) - - React-Core/CoreModulesHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - React-RCTImage (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-cxxreact (0.67.5): + - RCTTypeSafety (= 0.68.5) + - React-Codegen (= 0.68.5) + - React-Core/CoreModulesHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - React-RCTImage (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-cxxreact (0.68.5): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-callinvoker (= 0.67.5) - - React-jsi (= 0.67.5) - - React-jsinspector (= 0.67.5) - - React-logger (= 0.67.5) - - React-perflogger (= 0.67.5) - - React-runtimeexecutor (= 0.67.5) - - React-jsi (0.67.5): + - React-callinvoker (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsinspector (= 0.68.5) + - React-logger (= 0.68.5) + - React-perflogger (= 0.68.5) + - React-runtimeexecutor (= 0.68.5) + - React-hermes (0.68.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly/Futures (= 2021.06.28.00-v2) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-jsiexecutor (= 0.68.5) + - React-jsinspector (= 0.68.5) + - React-perflogger (= 0.68.5) + - React-jsi (0.68.5): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-jsi/Default (= 0.67.5) - - React-jsi/Default (0.67.5): + - React-jsi/Default (= 0.68.5) + - React-jsi/Default (0.68.5): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-jsiexecutor (0.67.5): + - React-jsiexecutor (0.68.5): - DoubleConversion - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-perflogger (= 0.67.5) - - React-jsinspector (0.67.5) - - React-logger (0.67.5): + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-perflogger (= 0.68.5) + - React-jsinspector (0.68.5) + - React-logger (0.68.5): - glog - react-native-app-auth (6.4.3): - AppAuth (= 1.4.0) @@ -298,71 +326,71 @@ PODS: - React-Core - react-native-webview (11.26.0): - React-Core - - React-perflogger (0.67.5) - - React-RCTActionSheet (0.67.5): - - React-Core/RCTActionSheetHeaders (= 0.67.5) - - React-RCTAnimation (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - React-perflogger (0.68.5) + - React-RCTActionSheet (0.68.5): + - React-Core/RCTActionSheetHeaders (= 0.68.5) + - React-RCTAnimation (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.67.5) - - React-Core/RCTAnimationHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTBlob (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - RCTTypeSafety (= 0.68.5) + - React-Codegen (= 0.68.5) + - React-Core/RCTAnimationHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTBlob (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/RCTBlobHeaders (= 0.67.5) - - React-Core/RCTWebSocket (= 0.67.5) - - React-jsi (= 0.67.5) - - React-RCTNetwork (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTImage (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - React-Codegen (= 0.68.5) + - React-Core/RCTBlobHeaders (= 0.68.5) + - React-Core/RCTWebSocket (= 0.68.5) + - React-jsi (= 0.68.5) + - React-RCTNetwork (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTImage (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.67.5) - - React-Core/RCTImageHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - React-RCTNetwork (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTLinking (0.67.5): - - FBReactNativeSpec (= 0.67.5) - - React-Core/RCTLinkingHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTNetwork (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - RCTTypeSafety (= 0.68.5) + - React-Codegen (= 0.68.5) + - React-Core/RCTImageHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - React-RCTNetwork (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTLinking (0.68.5): + - React-Codegen (= 0.68.5) + - React-Core/RCTLinkingHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTNetwork (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.67.5) - - React-Core/RCTNetworkHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTSettings (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - RCTTypeSafety (= 0.68.5) + - React-Codegen (= 0.68.5) + - React-Core/RCTNetworkHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTSettings (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.67.5) - - React-Core/RCTSettingsHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-RCTText (0.67.5): - - React-Core/RCTTextHeaders (= 0.67.5) - - React-RCTVibration (0.67.5): - - FBReactNativeSpec (= 0.67.5) + - RCTTypeSafety (= 0.68.5) + - React-Codegen (= 0.68.5) + - React-Core/RCTSettingsHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-RCTText (0.68.5): + - React-Core/RCTTextHeaders (= 0.68.5) + - React-RCTVibration (0.68.5): - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/RCTVibrationHeaders (= 0.67.5) - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (= 0.67.5) - - React-runtimeexecutor (0.67.5): - - React-jsi (= 0.67.5) - - ReactCommon/turbomodule/core (0.67.5): + - React-Codegen (= 0.68.5) + - React-Core/RCTVibrationHeaders (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) + - React-runtimeexecutor (0.68.5): + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (0.68.5): - DoubleConversion - glog - RCT-Folly (= 2021.06.28.00-v2) - - React-callinvoker (= 0.67.5) - - React-Core (= 0.67.5) - - React-cxxreact (= 0.67.5) - - React-jsi (= 0.67.5) - - React-logger (= 0.67.5) - - React-perflogger (= 0.67.5) + - React-callinvoker (= 0.68.5) + - React-Core (= 0.68.5) + - React-cxxreact (= 0.68.5) + - React-jsi (= 0.68.5) + - React-logger (= 0.68.5) + - React-perflogger (= 0.68.5) - rn-fetch-blob (0.12.0): - React-Core - RNBootSplash (4.4.0): @@ -411,6 +439,7 @@ PODS: - React-RCTImage - RNVectorIcons (9.2.0): - React-Core + - SocketRocket (0.6.0) - Yoga (1.14.0) - YogaKit (1.18.1): - Yoga (~> 1.14) @@ -421,39 +450,43 @@ DEPENDENCIES: - DoubleConversion (from `../../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../../../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../../../node_modules/react-native/React/FBReactNativeSpec`) - - Flipper (= 0.99.0) + - Flipper (= 0.125.0) - Flipper-Boost-iOSX (= 1.76.0.1.11) - - Flipper-DoubleConversion (= 3.1.7) + - Flipper-DoubleConversion (= 3.2.0) - Flipper-Fmt (= 7.1.7) - - Flipper-Folly (= 2.6.7) - - Flipper-Glog (= 0.3.6) + - Flipper-Folly (= 2.6.10) + - Flipper-Glog (= 0.5.0.4) - Flipper-PeerTalk (= 0.0.4) - Flipper-RSocket (= 1.4.3) - - FlipperKit (= 0.99.0) - - FlipperKit/Core (= 0.99.0) - - FlipperKit/CppBridge (= 0.99.0) - - FlipperKit/FBCxxFollyDynamicConvert (= 0.99.0) - - FlipperKit/FBDefines (= 0.99.0) - - FlipperKit/FKPortForwarding (= 0.99.0) - - FlipperKit/FlipperKitHighlightOverlay (= 0.99.0) - - FlipperKit/FlipperKitLayoutPlugin (= 0.99.0) - - FlipperKit/FlipperKitLayoutTextSearchable (= 0.99.0) - - FlipperKit/FlipperKitNetworkPlugin (= 0.99.0) - - FlipperKit/FlipperKitReactPlugin (= 0.99.0) - - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.99.0) - - FlipperKit/SKIOSNetworkPlugin (= 0.99.0) + - FlipperKit (= 0.125.0) + - FlipperKit/Core (= 0.125.0) + - FlipperKit/CppBridge (= 0.125.0) + - FlipperKit/FBCxxFollyDynamicConvert (= 0.125.0) + - FlipperKit/FBDefines (= 0.125.0) + - FlipperKit/FKPortForwarding (= 0.125.0) + - FlipperKit/FlipperKitHighlightOverlay (= 0.125.0) + - FlipperKit/FlipperKitLayoutPlugin (= 0.125.0) + - FlipperKit/FlipperKitLayoutTextSearchable (= 0.125.0) + - FlipperKit/FlipperKitNetworkPlugin (= 0.125.0) + - FlipperKit/FlipperKitReactPlugin (= 0.125.0) + - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) + - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) - glog (from `../../../node_modules/react-native/third-party-podspecs/glog.podspec`) - - OpenSSL-Universal (= 1.1.180) + - hermes-engine (~> 0.11.0) + - libevent (~> 2.1.12) + - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../../../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../../../node_modules/react-native/Libraries/TypeSafety`) - React (from `../../../node_modules/react-native/`) - React-callinvoker (from `../../../node_modules/react-native/ReactCommon/callinvoker`) + - React-Codegen (from `build/generated/ios`) - React-Core (from `../../../node_modules/react-native/`) - React-Core/DevSupport (from `../../../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../../../node_modules/react-native/`) - React-CoreModules (from `../../../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../../../node_modules/react-native/ReactCommon/cxxreact`) + - React-hermes (from `../../../node_modules/react-native/ReactCommon/hermes`) - React-jsi (from `../../../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../../../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../../../node_modules/react-native/ReactCommon/jsinspector`) @@ -504,8 +537,10 @@ SPEC REPOS: - Flipper-RSocket - FlipperKit - fmt + - hermes-engine - libevent - OpenSSL-Universal + - SocketRocket - YogaKit EXTERNAL SOURCES: @@ -531,12 +566,16 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/" React-callinvoker: :path: "../../../node_modules/react-native/ReactCommon/callinvoker" + React-Codegen: + :path: build/generated/ios React-Core: :path: "../../../node_modules/react-native/" React-CoreModules: :path: "../../../node_modules/react-native/React/CoreModules" React-cxxreact: :path: "../../../node_modules/react-native/ReactCommon/cxxreact" + React-hermes: + :path: "../../../node_modules/react-native/ReactCommon/hermes" React-jsi: :path: "../../../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: @@ -614,33 +653,36 @@ SPEC CHECKSUMS: BugsnagReactNative: e3debe54be51169ae09c653b059f1c1b0e594e39 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 - FBLazyVector: d2db9d00883282819d03bbd401b2ad4360d47580 - FBReactNativeSpec: 94da4d84ba3b1acf459103320882daa481a2b62d - Flipper: 30e8eeeed6abdc98edaf32af0cda2f198be4b733 + FBLazyVector: 2b47ff52037bd9ae07cc9b051c9975797814b736 + FBReactNativeSpec: 642ad2c3875b3b6016208f0a416e5e93535cdfce + Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c - Flipper-DoubleConversion: 57ffbe81ef95306cc9e69c4aa3aeeeeb58a6a28c + Flipper-DoubleConversion: 3d3d04a078d4f3a1b6c6916587f159dc11f232c4 Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b - Flipper-Folly: 83af37379faa69497529e414bd43fbfc7cae259a - Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 + Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 + Flipper-Glog: 87bc98ff48de90cb5b0b5114ed3da79d85ee2dd4 Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 - FlipperKit: d8d346844eca5d9120c17d441a2f38596e8ed2b9 + FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 5337263514dd6f09803962437687240c5dc39aa4 + hermes-engine: 84e3af1ea01dd7351ac5d8689cbbea1f9903ffc3 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b + OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9 - RCTRequired: 412e994c1e570cf35378a32c18fd46e50634938b - RCTTypeSafety: ef27340c728e6d673af345ed69e479a010c8a2d8 - React: 36b9f5116572e5b80f01e562bb1f1451e8848e47 - React-callinvoker: 91e62870884d3db3a0db33bbb1ba4e53fa5210ca - React-Core: 765ccc3861be1b93c7d5ca37f6b06e2efd6e7999 - React-CoreModules: da2ddff50a92576b6d58fbfc80a62ba3f81d8a4e - React-cxxreact: b54cffd4feb550c3213cd38db4a2a4bdd896f715 - React-jsi: 103674913e4159a07df20ef214c6b563e90e7b2e - React-jsiexecutor: e9895ccae253323ca70f693945fecbba091f0abd - React-jsinspector: ec4fe4f65ccf9d67c8429dda955d3412db8a25ef - React-logger: 85f4ef06b9723714b2dfa5b0e5502b673b271b58 + RCTRequired: 0f06b6068f530932d10e1a01a5352fad4eaacb74 + RCTTypeSafety: b0ee81f10ef1b7d977605a2b266823dabd565e65 + React: 3becd12bd51ea8a43bdde7e09d0f40fba7820e03 + React-callinvoker: 11abfff50e6bf7a55b3a90b4dc2187f71f224593 + React-Codegen: f8946ce0768fb8e92e092e30944489c4b2955b2d + React-Core: 203cdb6ee2657b198d97d41031c249161060e6ca + React-CoreModules: 6eb0c06a4a223fde2cb6a8d0f44f58b67e808942 + React-cxxreact: afb0c6c07d19adbd850747fedeac20c6832d40b9 + React-hermes: 4534fc207025757d6156fec03b6f8845eadbe563 + React-jsi: 14d37a6db2af2c1a49f6f5c2e4ee667c364ae45c + React-jsiexecutor: 45c0496ca8cef6b02d9fa0274c25cf458fe91a56 + React-jsinspector: eb202e43b3879aba9a14f3f65788aec85d4e1ea9 + React-logger: 98f663b292a60967ebbc6d803ae96c1381183b6d react-native-app-auth: fd1eaa667c0bc014199456d14a6440cb74de814e react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a react-native-netinfo: 2517ad504b3d303e90d7a431b0fcaef76d207983 @@ -648,18 +690,18 @@ SPEC CHECKSUMS: react-native-sensitive-info: 400c6e3d27945e15c8cddb5b4b92233c85ee06f8 react-native-sqlite-storage: f6d515e1c446d1e6d026aa5352908a25d4de3261 react-native-webview: 994b9f8fbb504d6314dc40d83f94f27c6831b3bf - React-perflogger: d32ee13196f4ae2e4098fb7f8e7ed4f864c6fb0f - React-RCTActionSheet: 81779c09e34a6a3d6b15783407ba9016a774f535 - React-RCTAnimation: b778eaaa42a884abcc5719035a7a0b2f54672658 - React-RCTBlob: 8edfc04c117decb0e7d4e6ab32bec91707e63ecb - React-RCTImage: 2022097f1291bfebd0003e477318c72b07853578 - React-RCTLinking: bd8d889c65695181342541ce4420e9419845084c - React-RCTNetwork: eae64b805d967bf3ece2cec3ad09218eeb32cb74 - React-RCTSettings: 0645af8aec5f40726e98d434a07ff58e75a81aa9 - React-RCTText: e55de507cda263ff58404c3e7d75bf76c2b80813 - React-RCTVibration: c3b8a3245267a3849b0c7cb91a37606bf5f3aa65 - React-runtimeexecutor: 434efc9e5b6d0f14f49867f130b39376c971c1aa - ReactCommon: a30c2448e5a88bae6fcb0e3da124c14ae493dac1 + React-perflogger: 0458a87ea9a7342079e7a31b0d32b3734fb8415f + React-RCTActionSheet: 22538001ea2926dea001111dd2846c13a0730bc9 + React-RCTAnimation: 732ce66878d4aa151d56a0d142b1105aa12fd313 + React-RCTBlob: 9cb9e3e9a41d27be34aaf89b0e0f52c7ca415d57 + React-RCTImage: 6bd16627eb9c4bb79903c4cdec7c551266ee1a5b + React-RCTLinking: e9edfc8919c8fa9a3f3c7b34362811f58a2ebba4 + React-RCTNetwork: 880eccd21bbe2660a0b63da5ccba75c46eceeaa6 + React-RCTSettings: 8c85d8188c97d6c6bd470af6631a6c4555b79bb3 + React-RCTText: bbd275ee287730c5acbab1aadc0db39c25c5c64e + React-RCTVibration: 9819a3bf6230e4b2a99877c21268b0b2416157a1 + React-runtimeexecutor: b1f1995089b90696dbc2a7ffe0059a80db5c8eb1 + ReactCommon: 149e2c0acab9bac61378da0db5b2880a1b5ff59b rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNBootSplash: 8ecffd190fae05291b671ea2280c5238f15499a9 RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60 @@ -668,12 +710,13 @@ SPEC CHECKSUMS: RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3 RNInAppBrowser: e36d6935517101ccba0e875bac8ad7b0cb655364 RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c - RNReanimated: 3bfe3c10b39ad25c84ca622f065bad4cf87e1e90 + RNReanimated: d21eb8685aaa2a58b51b87ec40fd543d8280dcbe RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 - Yoga: 099a946cbf84c9b32ffdc4278d72db26710ecf92 + SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 + Yoga: c4d61225a466f250c35c1ee78d2d0b3d41fe661c YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 5442c60280f29fd736304c35d10eec2d554e9206 +PODFILE CHECKSUM: 94432bed11432796bd9c06c44f20f7362ab6d419 COCOAPODS: 1.11.3 diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 7b165b15..5e009908 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -33,7 +33,7 @@ "@react-navigation/stack": "^6.3.4", "@reduxjs/toolkit": "^1.9.0", "react": "17.0.2", - "react-native": "0.67.5", + "react-native": "0.68.5", "react-native-app-auth": "^6.4.3", "react-native-bootsplash": "^4.3.3", "react-native-dotenv": "^3.4.2", @@ -65,7 +65,7 @@ "@babel/runtime": "^7.12.5", "@bugsnag/source-maps": "^2.3.1", "@types/jest": "^26.0.20", - "@types/react-native": "^0.67.0", + "@types/react-native": "^0.68.0", "@types/react-native-sqlite-storage": "^5.0.2", "@types/react-native-vector-icons": "^6.4.12", "@types/react-redux": "^7.1.24", @@ -75,7 +75,7 @@ "babel-jest": "^26.6.3", "babel-plugin-module-resolver": "^4.1.0", "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.66.2", + "metro-react-native-babel-preset": "^0.67.0", "react-test-renderer": "^17.0.2", "reactotron-react-native": "^5.0.3", "reactotron-redux": "^3.1.3" diff --git a/packages/web/package.json b/packages/web/package.json index b4d6c6a7..18d47bc4 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@next/eslint-plugin-next": "^12.3.4", - "@types/react-native": "^0.66.1", + "@types/react-native": "^0.68.1", "@types/styled-components": "^5.1.21", "@types/styled-components-react-native": "^5.2.0", "babel-plugin-react-native-web": "^0.17.0", diff --git a/patches/react-native+0.67.5.patch b/patches/react-native+0.67.5.patch deleted file mode 100644 index 086dc41a..00000000 --- a/patches/react-native+0.67.5.patch +++ /dev/null @@ -1,3632 +0,0 @@ -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h -index 0491d34..95f3661 100644 ---- a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h -@@ -113,6 +113,7 @@ namespace JS { - folly::Optional cancelButtonIndex() const; - folly::Optional anchor() const; - folly::Optional tintColor() const; -+ folly::Optional cancelButtonTintColor() const; - NSString *userInterfaceStyle() const; - folly::Optional> disabledButtonIndices() const; - -@@ -134,6 +135,7 @@ namespace JS { - NSString *subject() const; - folly::Optional anchor() const; - folly::Optional tintColor() const; -+ folly::Optional cancelButtonTintColor() const; - folly::Optional> excludedActivityTypes() const; - NSString *userInterfaceStyle() const; - -@@ -1991,6 +1993,11 @@ inline folly::Optional JS::NativeActionSheetManager::SpecShowActionSheet - id const p = _v[@"tintColor"]; - return RCTBridgingToOptionalDouble(p); - } -+inline folly::Optional JS::NativeActionSheetManager::SpecShowActionSheetWithOptionsOptions::cancelButtonTintColor() const -+{ -+ id const p = _v[@"cancelButtonTintColor"]; -+ return RCTBridgingToOptionalDouble(p); -+} - inline NSString *JS::NativeActionSheetManager::SpecShowActionSheetWithOptionsOptions::userInterfaceStyle() const - { - id const p = _v[@"userInterfaceStyle"]; -@@ -2026,6 +2033,11 @@ inline folly::Optional JS::NativeActionSheetManager::SpecShowShareAction - id const p = _v[@"tintColor"]; - return RCTBridgingToOptionalDouble(p); - } -+inline folly::Optional JS::NativeActionSheetManager::SpecShowShareActionSheetWithOptionsOptions::cancelButtonTintColor() const -+{ -+ id const p = _v[@"cancelButtonTintColor"]; -+ return RCTBridgingToOptionalDouble(p); -+} - inline folly::Optional> JS::NativeActionSheetManager::SpecShowShareActionSheetWithOptionsOptions::excludedActivityTypes() const - { - id const p = _v[@"excludedActivityTypes"]; -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h -new file mode 100644 -index 0000000..18a9a44 ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h -@@ -0,0 +1,22 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateComponentDescriptorH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp -new file mode 100644 -index 0000000..81d9cd9 ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp -@@ -0,0 +1,19 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h -new file mode 100644 -index 0000000..cadb34f ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h -@@ -0,0 +1,20 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterH.js -+ */ -+#pragma once -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp -new file mode 100644 -index 0000000..552d79f ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp -@@ -0,0 +1,21 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsCpp.js -+ */ -+ -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h -new file mode 100644 -index 0000000..1293102 ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h -@@ -0,0 +1,20 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsH.js -+ */ -+#pragma once -+ -+ -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h -new file mode 100644 -index 0000000..4fb26d9 ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h -@@ -0,0 +1,18 @@ -+/** -+* Copyright (c) Facebook, Inc. and its affiliates. -+* -+* This source code is licensed under the MIT license found in the -+* LICENSE file in the root directory of this source tree. -+* -+* @generated by codegen project: GenerateComponentHObjCpp.js -+*/ -+ -+#import -+#import -+#import -+ -+NS_ASSUME_NONNULL_BEGIN -+ -+ -+ -+NS_ASSUME_NONNULL_END -\ No newline at end of file -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp -new file mode 100644 -index 0000000..267e343 ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp -@@ -0,0 +1,19 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h -new file mode 100644 -index 0000000..3db0d7a ---- /dev/null -+++ b/node_modules/react-native/React/FBReactNativeSpec/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h -@@ -0,0 +1,22 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h -new file mode 100644 -index 0000000..aa2cc67 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h -@@ -0,0 +1,32 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateComponentDescriptorH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor; -+using DatePickerComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor; -+using RCTMaskedViewComponentDescriptor = ConcreteComponentDescriptor; -+using RCTProgressViewComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor; -+using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidHorizontalScrollContentViewComponentDescriptor = ConcreteComponentDescriptor; -+using RCTSegmentedControlComponentDescriptor = ConcreteComponentDescriptor; -+using SwitchComponentDescriptor = ConcreteComponentDescriptor; -+using UnimplementedNativeViewComponentDescriptor = ConcreteComponentDescriptor; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h.bak -new file mode 100644 -index 0000000..670e3c7 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h.bak -@@ -0,0 +1,32 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateComponentDescriptorH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor; -+using DatePickerComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor; -+using RCTMaskedViewComponentDescriptor = ConcreteComponentDescriptor; -+using RCTProgressViewComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor; -+using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor; -+using AndroidHorizontalScrollContentViewComponentDescriptor = ConcreteComponentDescriptor; -+using RCTSegmentedControlComponentDescriptor = ConcreteComponentDescriptor; -+using SwitchComponentDescriptor = ConcreteComponentDescriptor; -+using UnimplementedNativeViewComponentDescriptor = ConcreteComponentDescriptor; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp -new file mode 100644 -index 0000000..b5ea483 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp -@@ -0,0 +1,149 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+void DatePickerEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "timestamp", event.timestamp); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide event) const { -+ dispatchEvent("drawerSlide", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "offset", event.offset); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged event) const { -+ dispatchEvent("drawerStateChanged", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "drawerState", event.drawerState); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen event) const { -+ dispatchEvent("drawerOpen", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose event) const { -+ dispatchEvent("drawerClose", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+ -+ -+ -+void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh event) const { -+ dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void PullToRefreshViewEventEmitter::onRefresh(OnRefresh event) const { -+ dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+ -+ -+void RCTSegmentedControlEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "selectedSegmentIndex", event.selectedSegmentIndex); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onValueChange(OnValueChange event) const { -+ dispatchEvent("valueChange", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onSlidingComplete(OnSlidingComplete event) const { -+ dispatchEvent("slidingComplete", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void AndroidSwitchEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+ return payload; -+ }); -+} -+void SwitchEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+ return payload; -+ }); -+} -+ -+ -+void ModalHostViewEventEmitter::onRequestClose(OnRequestClose event) const { -+ dispatchEvent("requestClose", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onShow(OnShow event) const { -+ dispatchEvent("show", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onDismiss(OnDismiss event) const { -+ dispatchEvent("dismiss", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onOrientationChange(OnOrientationChange event) const { -+ dispatchEvent("orientationChange", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "orientation", toString(event.orientation)); -+ return payload; -+ }); -+} -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp.bak -new file mode 100644 -index 0000000..ee7153b ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp.bak -@@ -0,0 +1,149 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+ -+void DatePickerEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "timestamp", event.timestamp); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide event) const { -+ dispatchEvent("drawerSlide", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "offset", event.offset); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged event) const { -+ dispatchEvent("drawerStateChanged", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "drawerState", event.drawerState); -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen event) const { -+ dispatchEvent("drawerOpen", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose event) const { -+ dispatchEvent("drawerClose", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+ -+ -+ -+void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh event) const { -+ dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void PullToRefreshViewEventEmitter::onRefresh(OnRefresh event) const { -+ dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+ -+ -+void RCTSegmentedControlEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "selectedSegmentIndex", event.selectedSegmentIndex); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onValueChange(OnValueChange event) const { -+ dispatchEvent("valueChange", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void SliderEventEmitter::onSlidingComplete(OnSlidingComplete event) const { -+ dispatchEvent("slidingComplete", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+payload.setProperty(runtime, "fromUser", event.fromUser); -+ return payload; -+ }); -+} -+void AndroidSwitchEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+ return payload; -+ }); -+} -+void SwitchEventEmitter::onChange(OnChange event) const { -+ dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "value", event.value); -+ return payload; -+ }); -+} -+ -+ -+void ModalHostViewEventEmitter::onRequestClose(OnRequestClose event) const { -+ dispatchEvent("requestClose", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onShow(OnShow event) const { -+ dispatchEvent("show", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onDismiss(OnDismiss event) const { -+ dispatchEvent("dismiss", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ -+ return payload; -+ }); -+} -+void ModalHostViewEventEmitter::onOrientationChange(OnOrientationChange event) const { -+ dispatchEvent("orientationChange", [event=std::move(event)](jsi::Runtime &runtime) { -+ auto payload = jsi::Object(runtime); -+ payload.setProperty(runtime, "orientation", toString(event.orientation)); -+ return payload; -+ }); -+} -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h -new file mode 100644 -index 0000000..e925cf9 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h -@@ -0,0 +1,237 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterH.js -+ */ -+#pragma once -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+class ActivityIndicatorViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class DatePickerEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ Float timestamp; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class AndroidDrawerLayoutEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnDrawerSlide { -+ Float offset; -+ }; -+ -+ struct OnDrawerStateChanged { -+ int drawerState; -+ }; -+ -+ struct OnDrawerOpen { -+ -+ }; -+ -+ struct OnDrawerClose { -+ -+ }; -+ -+ void onDrawerSlide(OnDrawerSlide value) const; -+ -+ void onDrawerStateChanged(OnDrawerStateChanged value) const; -+ -+ void onDrawerOpen(OnDrawerOpen value) const; -+ -+ void onDrawerClose(OnDrawerClose value) const; -+}; -+class RCTMaskedViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidProgressBarEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class RCTProgressViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidSwipeRefreshLayoutEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRefresh { -+ -+ }; -+ -+ void onRefresh(OnRefresh value) const; -+}; -+class PullToRefreshViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRefresh { -+ -+ }; -+ -+ void onRefresh(OnRefresh value) const; -+}; -+class SafeAreaViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidHorizontalScrollContentViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class RCTSegmentedControlEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ int value; -+ int selectedSegmentIndex; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class SliderEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ double value; -+ bool fromUser; -+ }; -+ -+ struct OnValueChange { -+ double value; -+ bool fromUser; -+ }; -+ -+ struct OnSlidingComplete { -+ double value; -+ bool fromUser; -+ }; -+ -+ void onChange(OnChange value) const; -+ -+ void onValueChange(OnValueChange value) const; -+ -+ void onSlidingComplete(OnSlidingComplete value) const; -+}; -+class AndroidSwitchEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ bool value; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class SwitchEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ bool value; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class InputAccessoryEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class UnimplementedNativeViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class ModalHostViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRequestClose { -+ -+ }; -+ -+ struct OnShow { -+ -+ }; -+ -+ struct OnDismiss { -+ -+ }; -+ -+ enum class OnOrientationChangeOrientation { -+ Portrait, -+ Landscape -+ }; -+ -+ static char const *toString(const OnOrientationChangeOrientation value) { -+ switch (value) { -+ case OnOrientationChangeOrientation::Portrait: return "portrait"; -+ case OnOrientationChangeOrientation::Landscape: return "landscape"; -+ } -+ } -+ -+ struct OnOrientationChange { -+ OnOrientationChangeOrientation orientation; -+ }; -+ -+ void onRequestClose(OnRequestClose value) const; -+ -+ void onShow(OnShow value) const; -+ -+ void onDismiss(OnDismiss value) const; -+ -+ void onOrientationChange(OnOrientationChange value) const; -+}; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h.bak -new file mode 100644 -index 0000000..e925cf9 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/EventEmitters.h.bak -@@ -0,0 +1,237 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateEventEmitterH.js -+ */ -+#pragma once -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+class ActivityIndicatorViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class DatePickerEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ Float timestamp; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class AndroidDrawerLayoutEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnDrawerSlide { -+ Float offset; -+ }; -+ -+ struct OnDrawerStateChanged { -+ int drawerState; -+ }; -+ -+ struct OnDrawerOpen { -+ -+ }; -+ -+ struct OnDrawerClose { -+ -+ }; -+ -+ void onDrawerSlide(OnDrawerSlide value) const; -+ -+ void onDrawerStateChanged(OnDrawerStateChanged value) const; -+ -+ void onDrawerOpen(OnDrawerOpen value) const; -+ -+ void onDrawerClose(OnDrawerClose value) const; -+}; -+class RCTMaskedViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidProgressBarEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class RCTProgressViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidSwipeRefreshLayoutEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRefresh { -+ -+ }; -+ -+ void onRefresh(OnRefresh value) const; -+}; -+class PullToRefreshViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRefresh { -+ -+ }; -+ -+ void onRefresh(OnRefresh value) const; -+}; -+class SafeAreaViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class AndroidHorizontalScrollContentViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class RCTSegmentedControlEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ int value; -+ int selectedSegmentIndex; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class SliderEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ double value; -+ bool fromUser; -+ }; -+ -+ struct OnValueChange { -+ double value; -+ bool fromUser; -+ }; -+ -+ struct OnSlidingComplete { -+ double value; -+ bool fromUser; -+ }; -+ -+ void onChange(OnChange value) const; -+ -+ void onValueChange(OnValueChange value) const; -+ -+ void onSlidingComplete(OnSlidingComplete value) const; -+}; -+class AndroidSwitchEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ bool value; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class SwitchEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnChange { -+ bool value; -+ }; -+ -+ void onChange(OnChange value) const; -+}; -+class InputAccessoryEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class UnimplementedNativeViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ -+ -+ -+}; -+class ModalHostViewEventEmitter : public ViewEventEmitter { -+ public: -+ using ViewEventEmitter::ViewEventEmitter; -+ -+ struct OnRequestClose { -+ -+ }; -+ -+ struct OnShow { -+ -+ }; -+ -+ struct OnDismiss { -+ -+ }; -+ -+ enum class OnOrientationChangeOrientation { -+ Portrait, -+ Landscape -+ }; -+ -+ static char const *toString(const OnOrientationChangeOrientation value) { -+ switch (value) { -+ case OnOrientationChangeOrientation::Portrait: return "portrait"; -+ case OnOrientationChangeOrientation::Landscape: return "landscape"; -+ } -+ } -+ -+ struct OnOrientationChange { -+ OnOrientationChangeOrientation orientation; -+ }; -+ -+ void onRequestClose(OnRequestClose value) const; -+ -+ void onShow(OnShow value) const; -+ -+ void onDismiss(OnDismiss value) const; -+ -+ void onOrientationChange(OnOrientationChange value) const; -+}; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp -new file mode 100644 -index 0000000..808d4ce ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp -@@ -0,0 +1,200 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsCpp.js -+ */ -+ -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+ActivityIndicatorViewProps::ActivityIndicatorViewProps( -+ const ActivityIndicatorViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ hidesWhenStopped(convertRawProp(rawProps, "hidesWhenStopped", sourceProps.hidesWhenStopped, {false})), -+ animating(convertRawProp(rawProps, "animating", sourceProps.animating, {false})), -+ color(convertRawProp(rawProps, "color", sourceProps.color, {})), -+ size(convertRawProp(rawProps, "size", sourceProps.size, {ActivityIndicatorViewSize::Small})) -+ {} -+DatePickerProps::DatePickerProps( -+ const DatePickerProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ date(convertRawProp(rawProps, "date", sourceProps.date, {0.0})), -+ initialDate(convertRawProp(rawProps, "initialDate", sourceProps.initialDate, {0.0})), -+ locale(convertRawProp(rawProps, "locale", sourceProps.locale, {})), -+ maximumDate(convertRawProp(rawProps, "maximumDate", sourceProps.maximumDate, {0.0})), -+ minimumDate(convertRawProp(rawProps, "minimumDate", sourceProps.minimumDate, {0.0})), -+ minuteInterval(convertRawProp(rawProps, "minuteInterval", sourceProps.minuteInterval, {DatePickerMinuteInterval::MinuteInterval1})), -+ mode(convertRawProp(rawProps, "mode", sourceProps.mode, {DatePickerMode::Date})), -+ timeZoneOffsetInMinutes(convertRawProp(rawProps, "timeZoneOffsetInMinutes", sourceProps.timeZoneOffsetInMinutes, {0.0})), -+ pickerStyle(convertRawProp(rawProps, "pickerStyle", sourceProps.pickerStyle, {DatePickerPickerStyle::Spinner})) -+ {} -+AndroidDrawerLayoutProps::AndroidDrawerLayoutProps( -+ const AndroidDrawerLayoutProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ keyboardDismissMode(convertRawProp(rawProps, "keyboardDismissMode", sourceProps.keyboardDismissMode, {AndroidDrawerLayoutKeyboardDismissMode::None})), -+ drawerBackgroundColor(convertRawProp(rawProps, "drawerBackgroundColor", sourceProps.drawerBackgroundColor, {})), -+ drawerPosition(convertRawProp(rawProps, "drawerPosition", sourceProps.drawerPosition, {AndroidDrawerLayoutDrawerPosition::Left})), -+ drawerWidth(convertRawProp(rawProps, "drawerWidth", sourceProps.drawerWidth, {})), -+ drawerLockMode(convertRawProp(rawProps, "drawerLockMode", sourceProps.drawerLockMode, {AndroidDrawerLayoutDrawerLockMode::Unlocked})), -+ statusBarBackgroundColor(convertRawProp(rawProps, "statusBarBackgroundColor", sourceProps.statusBarBackgroundColor, {})) -+ {} -+RCTMaskedViewProps::RCTMaskedViewProps( -+ const RCTMaskedViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps) -+ -+ -+ {} -+AndroidProgressBarProps::AndroidProgressBarProps( -+ const AndroidProgressBarProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ styleAttr(convertRawProp(rawProps, "styleAttr", sourceProps.styleAttr, {})), -+ typeAttr(convertRawProp(rawProps, "typeAttr", sourceProps.typeAttr, {})), -+ indeterminate(convertRawProp(rawProps, "indeterminate", sourceProps.indeterminate, {false})), -+ progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), -+ animating(convertRawProp(rawProps, "animating", sourceProps.animating, {true})), -+ color(convertRawProp(rawProps, "color", sourceProps.color, {})), -+ testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})) -+ {} -+RCTProgressViewProps::RCTProgressViewProps( -+ const RCTProgressViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ progressViewStyle(convertRawProp(rawProps, "progressViewStyle", sourceProps.progressViewStyle, {RCTProgressViewProgressViewStyle::Default})), -+ progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), -+ progressTintColor(convertRawProp(rawProps, "progressTintColor", sourceProps.progressTintColor, {})), -+ trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})), -+ progressImage(convertRawProp(rawProps, "progressImage", sourceProps.progressImage, {})), -+ trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})) -+ {} -+AndroidSwipeRefreshLayoutProps::AndroidSwipeRefreshLayoutProps( -+ const AndroidSwipeRefreshLayoutProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ colors(convertRawProp(rawProps, "colors", sourceProps.colors, {})), -+ progressBackgroundColor(convertRawProp(rawProps, "progressBackgroundColor", sourceProps.progressBackgroundColor, {})), -+ size(convertRawProp(rawProps, "size", sourceProps.size, {AndroidSwipeRefreshLayoutSize::Default})), -+ progressViewOffset(convertRawProp(rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})), -+ refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) -+ {} -+PullToRefreshViewProps::PullToRefreshViewProps( -+ const PullToRefreshViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ titleColor(convertRawProp(rawProps, "titleColor", sourceProps.titleColor, {})), -+ title(convertRawProp(rawProps, "title", sourceProps.title, {})), -+ progressViewOffset(convertRawProp(rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})), -+ refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) -+ {} -+SafeAreaViewProps::SafeAreaViewProps( -+ const SafeAreaViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ emulateUnlessSupported(convertRawProp(rawProps, "emulateUnlessSupported", sourceProps.emulateUnlessSupported, {false})) -+ {} -+AndroidHorizontalScrollContentViewProps::AndroidHorizontalScrollContentViewProps( -+ const AndroidHorizontalScrollContentViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps) -+ -+ -+ {} -+RCTSegmentedControlProps::RCTSegmentedControlProps( -+ const RCTSegmentedControlProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ values(convertRawProp(rawProps, "values", sourceProps.values, {})), -+ selectedIndex(convertRawProp(rawProps, "selectedIndex", sourceProps.selectedIndex, {0})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ textColor(convertRawProp(rawProps, "textColor", sourceProps.textColor, {})), -+ backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})), -+ momentary(convertRawProp(rawProps, "momentary", sourceProps.momentary, {false})) -+ {} -+SliderProps::SliderProps( -+ const SliderProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ maximumTrackImage(convertRawProp(rawProps, "maximumTrackImage", sourceProps.maximumTrackImage, {})), -+ maximumTrackTintColor(convertRawProp(rawProps, "maximumTrackTintColor", sourceProps.maximumTrackTintColor, {})), -+ maximumValue(convertRawProp(rawProps, "maximumValue", sourceProps.maximumValue, {1.0})), -+ minimumTrackImage(convertRawProp(rawProps, "minimumTrackImage", sourceProps.minimumTrackImage, {})), -+ minimumTrackTintColor(convertRawProp(rawProps, "minimumTrackTintColor", sourceProps.minimumTrackTintColor, {})), -+ minimumValue(convertRawProp(rawProps, "minimumValue", sourceProps.minimumValue, {0.0})), -+ step(convertRawProp(rawProps, "step", sourceProps.step, {0.0})), -+ testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})), -+ thumbImage(convertRawProp(rawProps, "thumbImage", sourceProps.thumbImage, {})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {0.0})) -+ {} -+AndroidSwitchProps::AndroidSwitchProps( -+ const AndroidSwitchProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), -+ trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), -+ trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {false})), -+ on(convertRawProp(rawProps, "on", sourceProps.on, {false})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})) -+ {} -+SwitchProps::SwitchProps( -+ const SwitchProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {false})), -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ onTintColor(convertRawProp(rawProps, "onTintColor", sourceProps.onTintColor, {})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), -+ trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), -+ trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})) -+ {} -+InputAccessoryProps::InputAccessoryProps( -+ const InputAccessoryProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})) -+ {} -+UnimplementedNativeViewProps::UnimplementedNativeViewProps( -+ const UnimplementedNativeViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ name(convertRawProp(rawProps, "name", sourceProps.name, {""})) -+ {} -+ModalHostViewProps::ModalHostViewProps( -+ const ModalHostViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ animationType(convertRawProp(rawProps, "animationType", sourceProps.animationType, {ModalHostViewAnimationType::None})), -+ presentationStyle(convertRawProp(rawProps, "presentationStyle", sourceProps.presentationStyle, {ModalHostViewPresentationStyle::FullScreen})), -+ transparent(convertRawProp(rawProps, "transparent", sourceProps.transparent, {false})), -+ statusBarTranslucent(convertRawProp(rawProps, "statusBarTranslucent", sourceProps.statusBarTranslucent, {false})), -+ hardwareAccelerated(convertRawProp(rawProps, "hardwareAccelerated", sourceProps.hardwareAccelerated, {false})), -+ visible(convertRawProp(rawProps, "visible", sourceProps.visible, {false})), -+ animated(convertRawProp(rawProps, "animated", sourceProps.animated, {false})), -+ supportedOrientations(convertRawProp(rawProps, "supportedOrientations", sourceProps.supportedOrientations, {static_cast(ModalHostViewSupportedOrientations::Portrait)})), -+ identifier(convertRawProp(rawProps, "identifier", sourceProps.identifier, {0})) -+ {} -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp.bak -new file mode 100644 -index 0000000..fce88f7 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.cpp.bak -@@ -0,0 +1,200 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsCpp.js -+ */ -+ -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+ActivityIndicatorViewProps::ActivityIndicatorViewProps( -+ const ActivityIndicatorViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ hidesWhenStopped(convertRawProp(rawProps, "hidesWhenStopped", sourceProps.hidesWhenStopped, {false})), -+ animating(convertRawProp(rawProps, "animating", sourceProps.animating, {false})), -+ color(convertRawProp(rawProps, "color", sourceProps.color, {})), -+ size(convertRawProp(rawProps, "size", sourceProps.size, {ActivityIndicatorViewSize::Small})) -+ {} -+DatePickerProps::DatePickerProps( -+ const DatePickerProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ date(convertRawProp(rawProps, "date", sourceProps.date, {0.0})), -+ initialDate(convertRawProp(rawProps, "initialDate", sourceProps.initialDate, {0.0})), -+ locale(convertRawProp(rawProps, "locale", sourceProps.locale, {})), -+ maximumDate(convertRawProp(rawProps, "maximumDate", sourceProps.maximumDate, {0.0})), -+ minimumDate(convertRawProp(rawProps, "minimumDate", sourceProps.minimumDate, {0.0})), -+ minuteInterval(convertRawProp(rawProps, "minuteInterval", sourceProps.minuteInterval, {DatePickerMinuteInterval::MinuteInterval1})), -+ mode(convertRawProp(rawProps, "mode", sourceProps.mode, {DatePickerMode::Date})), -+ timeZoneOffsetInMinutes(convertRawProp(rawProps, "timeZoneOffsetInMinutes", sourceProps.timeZoneOffsetInMinutes, {0.0})), -+ pickerStyle(convertRawProp(rawProps, "pickerStyle", sourceProps.pickerStyle, {DatePickerPickerStyle::Spinner})) -+ {} -+AndroidDrawerLayoutProps::AndroidDrawerLayoutProps( -+ const AndroidDrawerLayoutProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ keyboardDismissMode(convertRawProp(rawProps, "keyboardDismissMode", sourceProps.keyboardDismissMode, {AndroidDrawerLayoutKeyboardDismissMode::None})), -+ drawerBackgroundColor(convertRawProp(rawProps, "drawerBackgroundColor", sourceProps.drawerBackgroundColor, {})), -+ drawerPosition(convertRawProp(rawProps, "drawerPosition", sourceProps.drawerPosition, {AndroidDrawerLayoutDrawerPosition::Left})), -+ drawerWidth(convertRawProp(rawProps, "drawerWidth", sourceProps.drawerWidth, {})), -+ drawerLockMode(convertRawProp(rawProps, "drawerLockMode", sourceProps.drawerLockMode, {AndroidDrawerLayoutDrawerLockMode::Unlocked})), -+ statusBarBackgroundColor(convertRawProp(rawProps, "statusBarBackgroundColor", sourceProps.statusBarBackgroundColor, {})) -+ {} -+RCTMaskedViewProps::RCTMaskedViewProps( -+ const RCTMaskedViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps) -+ -+ -+ {} -+AndroidProgressBarProps::AndroidProgressBarProps( -+ const AndroidProgressBarProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ styleAttr(convertRawProp(rawProps, "styleAttr", sourceProps.styleAttr, {})), -+ typeAttr(convertRawProp(rawProps, "typeAttr", sourceProps.typeAttr, {})), -+ indeterminate(convertRawProp(rawProps, "indeterminate", sourceProps.indeterminate, {false})), -+ progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), -+ animating(convertRawProp(rawProps, "animating", sourceProps.animating, {true})), -+ color(convertRawProp(rawProps, "color", sourceProps.color, {})), -+ testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})) -+ {} -+RCTProgressViewProps::RCTProgressViewProps( -+ const RCTProgressViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ progressViewStyle(convertRawProp(rawProps, "progressViewStyle", sourceProps.progressViewStyle, {RCTProgressViewProgressViewStyle::Default})), -+ progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), -+ progressTintColor(convertRawProp(rawProps, "progressTintColor", sourceProps.progressTintColor, {})), -+ trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})), -+ progressImage(convertRawProp(rawProps, "progressImage", sourceProps.progressImage, {})), -+ trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})) -+ {} -+AndroidSwipeRefreshLayoutProps::AndroidSwipeRefreshLayoutProps( -+ const AndroidSwipeRefreshLayoutProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ colors(convertRawProp(rawProps, "colors", sourceProps.colors, {})), -+ progressBackgroundColor(convertRawProp(rawProps, "progressBackgroundColor", sourceProps.progressBackgroundColor, {})), -+ size(convertRawProp(rawProps, "size", sourceProps.size, {AndroidSwipeRefreshLayoutSize::Default})), -+ progressViewOffset(convertRawProp(rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})), -+ refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) -+ {} -+PullToRefreshViewProps::PullToRefreshViewProps( -+ const PullToRefreshViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ titleColor(convertRawProp(rawProps, "titleColor", sourceProps.titleColor, {})), -+ title(convertRawProp(rawProps, "title", sourceProps.title, {})), -+ progressViewOffset(convertRawProp(rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})), -+ refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) -+ {} -+SafeAreaViewProps::SafeAreaViewProps( -+ const SafeAreaViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ emulateUnlessSupported(convertRawProp(rawProps, "emulateUnlessSupported", sourceProps.emulateUnlessSupported, {false})) -+ {} -+AndroidHorizontalScrollContentViewProps::AndroidHorizontalScrollContentViewProps( -+ const AndroidHorizontalScrollContentViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps) -+ -+ -+ {} -+RCTSegmentedControlProps::RCTSegmentedControlProps( -+ const RCTSegmentedControlProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ values(convertRawProp(rawProps, "values", sourceProps.values, {})), -+ selectedIndex(convertRawProp(rawProps, "selectedIndex", sourceProps.selectedIndex, {0})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ textColor(convertRawProp(rawProps, "textColor", sourceProps.textColor, {})), -+ backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})), -+ momentary(convertRawProp(rawProps, "momentary", sourceProps.momentary, {false})) -+ {} -+SliderProps::SliderProps( -+ const SliderProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ maximumTrackImage(convertRawProp(rawProps, "maximumTrackImage", sourceProps.maximumTrackImage, {})), -+ maximumTrackTintColor(convertRawProp(rawProps, "maximumTrackTintColor", sourceProps.maximumTrackTintColor, {})), -+ maximumValue(convertRawProp(rawProps, "maximumValue", sourceProps.maximumValue, {1.0})), -+ minimumTrackImage(convertRawProp(rawProps, "minimumTrackImage", sourceProps.minimumTrackImage, {})), -+ minimumTrackTintColor(convertRawProp(rawProps, "minimumTrackTintColor", sourceProps.minimumTrackTintColor, {})), -+ minimumValue(convertRawProp(rawProps, "minimumValue", sourceProps.minimumValue, {0.0})), -+ step(convertRawProp(rawProps, "step", sourceProps.step, {0.0})), -+ testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})), -+ thumbImage(convertRawProp(rawProps, "thumbImage", sourceProps.thumbImage, {})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {0.0})) -+ {} -+AndroidSwitchProps::AndroidSwitchProps( -+ const AndroidSwitchProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), -+ thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), -+ trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), -+ trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {false})), -+ on(convertRawProp(rawProps, "on", sourceProps.on, {false})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})) -+ {} -+SwitchProps::SwitchProps( -+ const SwitchProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), -+ value(convertRawProp(rawProps, "value", sourceProps.value, {false})), -+ tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), -+ onTintColor(convertRawProp(rawProps, "onTintColor", sourceProps.onTintColor, {})), -+ thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), -+ thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), -+ trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), -+ trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})) -+ {} -+InputAccessoryProps::InputAccessoryProps( -+ const InputAccessoryProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})) -+ {} -+UnimplementedNativeViewProps::UnimplementedNativeViewProps( -+ const UnimplementedNativeViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ name(convertRawProp(rawProps, "name", sourceProps.name, {""})) -+ {} -+ModalHostViewProps::ModalHostViewProps( -+ const ModalHostViewProps &sourceProps, -+ const RawProps &rawProps): ViewProps(sourceProps, rawProps), -+ -+ animationType(convertRawProp(rawProps, "animationType", sourceProps.animationType, {ModalHostViewAnimationType::None})), -+ presentationStyle(convertRawProp(rawProps, "presentationStyle", sourceProps.presentationStyle, {ModalHostViewPresentationStyle::FullScreen})), -+ transparent(convertRawProp(rawProps, "transparent", sourceProps.transparent, {false})), -+ statusBarTranslucent(convertRawProp(rawProps, "statusBarTranslucent", sourceProps.statusBarTranslucent, {false})), -+ hardwareAccelerated(convertRawProp(rawProps, "hardwareAccelerated", sourceProps.hardwareAccelerated, {false})), -+ visible(convertRawProp(rawProps, "visible", sourceProps.visible, {false})), -+ animated(convertRawProp(rawProps, "animated", sourceProps.animated, {false})), -+ supportedOrientations(convertRawProp(rawProps, "supportedOrientations", sourceProps.supportedOrientations, {static_cast(ModalHostViewSupportedOrientations::Portrait)})), -+ identifier(convertRawProp(rawProps, "identifier", sourceProps.identifier, {0})) -+ {} -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h -new file mode 100644 -index 0000000..feac387 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h -@@ -0,0 +1,575 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsH.js -+ */ -+#pragma once -+ -+#include -+#include -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+enum class ActivityIndicatorViewSize { Small, Large }; -+ -+static inline void fromRawValue(const RawValue &value, ActivityIndicatorViewSize &result) { -+ auto string = (std::string)value; -+ if (string == "small") { result = ActivityIndicatorViewSize::Small; return; } -+ if (string == "large") { result = ActivityIndicatorViewSize::Large; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ActivityIndicatorViewSize &value) { -+ switch (value) { -+ case ActivityIndicatorViewSize::Small: return "small"; -+ case ActivityIndicatorViewSize::Large: return "large"; -+ } -+} -+ -+class ActivityIndicatorViewProps final : public ViewProps { -+ public: -+ ActivityIndicatorViewProps() = default; -+ ActivityIndicatorViewProps(const ActivityIndicatorViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool hidesWhenStopped{false}; -+ bool animating{false}; -+ SharedColor color{}; -+ ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small}; -+}; -+ -+enum class DatePickerMinuteInterval { MinuteInterval1 = 1, MinuteInterval2 = 2, MinuteInterval3 = 3, MinuteInterval4 = 4, MinuteInterval5 = 5, MinuteInterval6 = 6, MinuteInterval10 = 10, MinuteInterval12 = 12, MinuteInterval15 = 15, MinuteInterval20 = 20, MinuteInterval30 = 30 }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerMinuteInterval &result) { -+ assert(value.hasType()); -+ auto integerValue = (int)value; -+ switch (integerValue) { -+ case 1: -+ result = DatePickerMinuteInterval::MinuteInterval1; -+ return; -+ case 2: -+ result = DatePickerMinuteInterval::MinuteInterval2; -+ return; -+ case 3: -+ result = DatePickerMinuteInterval::MinuteInterval3; -+ return; -+ case 4: -+ result = DatePickerMinuteInterval::MinuteInterval4; -+ return; -+ case 5: -+ result = DatePickerMinuteInterval::MinuteInterval5; -+ return; -+ case 6: -+ result = DatePickerMinuteInterval::MinuteInterval6; -+ return; -+ case 10: -+ result = DatePickerMinuteInterval::MinuteInterval10; -+ return; -+ case 12: -+ result = DatePickerMinuteInterval::MinuteInterval12; -+ return; -+ case 15: -+ result = DatePickerMinuteInterval::MinuteInterval15; -+ return; -+ case 20: -+ result = DatePickerMinuteInterval::MinuteInterval20; -+ return; -+ case 30: -+ result = DatePickerMinuteInterval::MinuteInterval30; -+ return; -+ } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerMinuteInterval &value) { -+ switch (value) { -+ case DatePickerMinuteInterval::MinuteInterval1: return "1"; -+ case DatePickerMinuteInterval::MinuteInterval2: return "2"; -+ case DatePickerMinuteInterval::MinuteInterval3: return "3"; -+ case DatePickerMinuteInterval::MinuteInterval4: return "4"; -+ case DatePickerMinuteInterval::MinuteInterval5: return "5"; -+ case DatePickerMinuteInterval::MinuteInterval6: return "6"; -+ case DatePickerMinuteInterval::MinuteInterval10: return "10"; -+ case DatePickerMinuteInterval::MinuteInterval12: return "12"; -+ case DatePickerMinuteInterval::MinuteInterval15: return "15"; -+ case DatePickerMinuteInterval::MinuteInterval20: return "20"; -+ case DatePickerMinuteInterval::MinuteInterval30: return "30"; -+ } -+} -+enum class DatePickerMode { Date, Time, Datetime }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerMode &result) { -+ auto string = (std::string)value; -+ if (string == "date") { result = DatePickerMode::Date; return; } -+ if (string == "time") { result = DatePickerMode::Time; return; } -+ if (string == "datetime") { result = DatePickerMode::Datetime; return; } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerMode &value) { -+ switch (value) { -+ case DatePickerMode::Date: return "date"; -+ case DatePickerMode::Time: return "time"; -+ case DatePickerMode::Datetime: return "datetime"; -+ } -+} -+enum class DatePickerPickerStyle { Compact, Spinner, Inline }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerPickerStyle &result) { -+ auto string = (std::string)value; -+ if (string == "compact") { result = DatePickerPickerStyle::Compact; return; } -+ if (string == "spinner") { result = DatePickerPickerStyle::Spinner; return; } -+ if (string == "inline") { result = DatePickerPickerStyle::Inline; return; } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerPickerStyle &value) { -+ switch (value) { -+ case DatePickerPickerStyle::Compact: return "compact"; -+ case DatePickerPickerStyle::Spinner: return "spinner"; -+ case DatePickerPickerStyle::Inline: return "inline"; -+ } -+} -+ -+class DatePickerProps final : public ViewProps { -+ public: -+ DatePickerProps() = default; -+ DatePickerProps(const DatePickerProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ Float date{0.0}; -+ Float initialDate{0.0}; -+ std::string locale{}; -+ Float maximumDate{0.0}; -+ Float minimumDate{0.0}; -+ DatePickerMinuteInterval minuteInterval{DatePickerMinuteInterval::MinuteInterval1}; -+ DatePickerMode mode{DatePickerMode::Date}; -+ Float timeZoneOffsetInMinutes{0.0}; -+ DatePickerPickerStyle pickerStyle{DatePickerPickerStyle::Spinner}; -+}; -+ -+enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutKeyboardDismissMode &result) { -+ auto string = (std::string)value; -+ if (string == "none") { result = AndroidDrawerLayoutKeyboardDismissMode::None; return; } -+ if (string == "on-drag") { result = AndroidDrawerLayoutKeyboardDismissMode::OnDrag; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode &value) { -+ switch (value) { -+ case AndroidDrawerLayoutKeyboardDismissMode::None: return "none"; -+ case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag"; -+ } -+} -+enum class AndroidDrawerLayoutDrawerPosition { Left, Right }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) { -+ auto string = (std::string)value; -+ if (string == "left") { result = AndroidDrawerLayoutDrawerPosition::Left; return; } -+ if (string == "right") { result = AndroidDrawerLayoutDrawerPosition::Right; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &value) { -+ switch (value) { -+ case AndroidDrawerLayoutDrawerPosition::Left: return "left"; -+ case AndroidDrawerLayoutDrawerPosition::Right: return "right"; -+ } -+} -+enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) { -+ auto string = (std::string)value; -+ if (string == "unlocked") { result = AndroidDrawerLayoutDrawerLockMode::Unlocked; return; } -+ if (string == "locked-closed") { result = AndroidDrawerLayoutDrawerLockMode::LockedClosed; return; } -+ if (string == "locked-open") { result = AndroidDrawerLayoutDrawerLockMode::LockedOpen; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &value) { -+ switch (value) { -+ case AndroidDrawerLayoutDrawerLockMode::Unlocked: return "unlocked"; -+ case AndroidDrawerLayoutDrawerLockMode::LockedClosed: return "locked-closed"; -+ case AndroidDrawerLayoutDrawerLockMode::LockedOpen: return "locked-open"; -+ } -+} -+ -+class AndroidDrawerLayoutProps final : public ViewProps { -+ public: -+ AndroidDrawerLayoutProps() = default; -+ AndroidDrawerLayoutProps(const AndroidDrawerLayoutProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ AndroidDrawerLayoutKeyboardDismissMode keyboardDismissMode{AndroidDrawerLayoutKeyboardDismissMode::None}; -+ SharedColor drawerBackgroundColor{}; -+ AndroidDrawerLayoutDrawerPosition drawerPosition{AndroidDrawerLayoutDrawerPosition::Left}; -+ Float drawerWidth{}; -+ AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked}; -+ SharedColor statusBarBackgroundColor{}; -+}; -+ -+class RCTMaskedViewProps final : public ViewProps { -+ public: -+ RCTMaskedViewProps() = default; -+ RCTMaskedViewProps(const RCTMaskedViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ -+}; -+ -+class AndroidProgressBarProps final : public ViewProps { -+ public: -+ AndroidProgressBarProps() = default; -+ AndroidProgressBarProps(const AndroidProgressBarProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::string styleAttr{}; -+ std::string typeAttr{}; -+ bool indeterminate{false}; -+ double progress{0.0}; -+ bool animating{true}; -+ SharedColor color{}; -+ std::string testID{""}; -+}; -+ -+enum class RCTProgressViewProgressViewStyle { Default, Bar }; -+ -+static inline void fromRawValue(const RawValue &value, RCTProgressViewProgressViewStyle &result) { -+ auto string = (std::string)value; -+ if (string == "default") { result = RCTProgressViewProgressViewStyle::Default; return; } -+ if (string == "bar") { result = RCTProgressViewProgressViewStyle::Bar; return; } -+ abort(); -+} -+ -+static inline std::string toString(const RCTProgressViewProgressViewStyle &value) { -+ switch (value) { -+ case RCTProgressViewProgressViewStyle::Default: return "default"; -+ case RCTProgressViewProgressViewStyle::Bar: return "bar"; -+ } -+} -+ -+class RCTProgressViewProps final : public ViewProps { -+ public: -+ RCTProgressViewProps() = default; -+ RCTProgressViewProps(const RCTProgressViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ RCTProgressViewProgressViewStyle progressViewStyle{RCTProgressViewProgressViewStyle::Default}; -+ Float progress{0.0}; -+ SharedColor progressTintColor{}; -+ SharedColor trackTintColor{}; -+ ImageSource progressImage{}; -+ ImageSource trackImage{}; -+}; -+ -+enum class AndroidSwipeRefreshLayoutSize { Default, Large }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidSwipeRefreshLayoutSize &result) { -+ auto string = (std::string)value; -+ if (string == "default") { result = AndroidSwipeRefreshLayoutSize::Default; return; } -+ if (string == "large") { result = AndroidSwipeRefreshLayoutSize::Large; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidSwipeRefreshLayoutSize &value) { -+ switch (value) { -+ case AndroidSwipeRefreshLayoutSize::Default: return "default"; -+ case AndroidSwipeRefreshLayoutSize::Large: return "large"; -+ } -+} -+ -+class AndroidSwipeRefreshLayoutProps final : public ViewProps { -+ public: -+ AndroidSwipeRefreshLayoutProps() = default; -+ AndroidSwipeRefreshLayoutProps(const AndroidSwipeRefreshLayoutProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool enabled{true}; -+ std::vector colors{}; -+ SharedColor progressBackgroundColor{}; -+ AndroidSwipeRefreshLayoutSize size{AndroidSwipeRefreshLayoutSize::Default}; -+ Float progressViewOffset{0.0}; -+ bool refreshing{false}; -+}; -+ -+class PullToRefreshViewProps final : public ViewProps { -+ public: -+ PullToRefreshViewProps() = default; -+ PullToRefreshViewProps(const PullToRefreshViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ SharedColor tintColor{}; -+ SharedColor titleColor{}; -+ std::string title{}; -+ Float progressViewOffset{0.0}; -+ bool refreshing{false}; -+}; -+ -+class SafeAreaViewProps final : public ViewProps { -+ public: -+ SafeAreaViewProps() = default; -+ SafeAreaViewProps(const SafeAreaViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool emulateUnlessSupported{false}; -+}; -+ -+class AndroidHorizontalScrollContentViewProps final : public ViewProps { -+ public: -+ AndroidHorizontalScrollContentViewProps() = default; -+ AndroidHorizontalScrollContentViewProps(const AndroidHorizontalScrollContentViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ -+}; -+ -+class RCTSegmentedControlProps final : public ViewProps { -+ public: -+ RCTSegmentedControlProps() = default; -+ RCTSegmentedControlProps(const RCTSegmentedControlProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::vector values{}; -+ int selectedIndex{0}; -+ bool enabled{true}; -+ SharedColor tintColor{}; -+ SharedColor textColor{}; -+ SharedColor backgroundColor{}; -+ bool momentary{false}; -+}; -+ -+class SliderProps final : public ViewProps { -+ public: -+ SliderProps() = default; -+ SliderProps(const SliderProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool enabled{true}; -+ ImageSource maximumTrackImage{}; -+ SharedColor maximumTrackTintColor{}; -+ double maximumValue{1.0}; -+ ImageSource minimumTrackImage{}; -+ SharedColor minimumTrackTintColor{}; -+ double minimumValue{0.0}; -+ double step{0.0}; -+ std::string testID{""}; -+ ImageSource thumbImage{}; -+ SharedColor thumbTintColor{}; -+ ImageSource trackImage{}; -+ double value{0.0}; -+}; -+ -+class AndroidSwitchProps final : public ViewProps { -+ public: -+ AndroidSwitchProps() = default; -+ AndroidSwitchProps(const AndroidSwitchProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool enabled{true}; -+ SharedColor thumbColor{}; -+ SharedColor trackColorForFalse{}; -+ SharedColor trackColorForTrue{}; -+ bool value{false}; -+ bool on{false}; -+ SharedColor thumbTintColor{}; -+ SharedColor trackTintColor{}; -+}; -+ -+class SwitchProps final : public ViewProps { -+ public: -+ SwitchProps() = default; -+ SwitchProps(const SwitchProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool value{false}; -+ SharedColor tintColor{}; -+ SharedColor onTintColor{}; -+ SharedColor thumbTintColor{}; -+ SharedColor thumbColor{}; -+ SharedColor trackColorForFalse{}; -+ SharedColor trackColorForTrue{}; -+}; -+ -+class InputAccessoryProps final : public ViewProps { -+ public: -+ InputAccessoryProps() = default; -+ InputAccessoryProps(const InputAccessoryProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ SharedColor backgroundColor{}; -+}; -+ -+class UnimplementedNativeViewProps final : public ViewProps { -+ public: -+ UnimplementedNativeViewProps() = default; -+ UnimplementedNativeViewProps(const UnimplementedNativeViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::string name{""}; -+}; -+ -+enum class ModalHostViewAnimationType { None, Slide, Fade }; -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewAnimationType &result) { -+ auto string = (std::string)value; -+ if (string == "none") { result = ModalHostViewAnimationType::None; return; } -+ if (string == "slide") { result = ModalHostViewAnimationType::Slide; return; } -+ if (string == "fade") { result = ModalHostViewAnimationType::Fade; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ModalHostViewAnimationType &value) { -+ switch (value) { -+ case ModalHostViewAnimationType::None: return "none"; -+ case ModalHostViewAnimationType::Slide: return "slide"; -+ case ModalHostViewAnimationType::Fade: return "fade"; -+ } -+} -+enum class ModalHostViewPresentationStyle { FullScreen, PageSheet, FormSheet, OverFullScreen }; -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewPresentationStyle &result) { -+ auto string = (std::string)value; -+ if (string == "fullScreen") { result = ModalHostViewPresentationStyle::FullScreen; return; } -+ if (string == "pageSheet") { result = ModalHostViewPresentationStyle::PageSheet; return; } -+ if (string == "formSheet") { result = ModalHostViewPresentationStyle::FormSheet; return; } -+ if (string == "overFullScreen") { result = ModalHostViewPresentationStyle::OverFullScreen; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ModalHostViewPresentationStyle &value) { -+ switch (value) { -+ case ModalHostViewPresentationStyle::FullScreen: return "fullScreen"; -+ case ModalHostViewPresentationStyle::PageSheet: return "pageSheet"; -+ case ModalHostViewPresentationStyle::FormSheet: return "formSheet"; -+ case ModalHostViewPresentationStyle::OverFullScreen: return "overFullScreen"; -+ } -+} -+using ModalHostViewSupportedOrientationsMask = uint32_t; -+ -+enum class ModalHostViewSupportedOrientations: ModalHostViewSupportedOrientationsMask { -+ Portrait = 1 << 0, -+ PortraitUpsideDown = 1 << 1, -+ Landscape = 1 << 2, -+ LandscapeLeft = 1 << 3, -+ LandscapeRight = 1 << 4 -+}; -+ -+constexpr bool operator&( -+ ModalHostViewSupportedOrientationsMask const lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ return lhs & static_cast(rhs); -+} -+ -+constexpr ModalHostViewSupportedOrientationsMask operator|( -+ ModalHostViewSupportedOrientationsMask const lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ return lhs | static_cast(rhs); -+} -+ -+constexpr void operator|=( -+ ModalHostViewSupportedOrientationsMask &lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ lhs = lhs | static_cast(rhs); -+} -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewSupportedOrientationsMask &result) { -+ auto items = std::vector{value}; -+ for (const auto &item : items) { -+ if (item == "portrait") { -+ result |= ModalHostViewSupportedOrientations::Portrait; -+ continue; -+ } -+ if (item == "portrait-upside-down") { -+ result |= ModalHostViewSupportedOrientations::PortraitUpsideDown; -+ continue; -+ } -+ if (item == "landscape") { -+ result |= ModalHostViewSupportedOrientations::Landscape; -+ continue; -+ } -+ if (item == "landscape-left") { -+ result |= ModalHostViewSupportedOrientations::LandscapeLeft; -+ continue; -+ } -+ if (item == "landscape-right") { -+ result |= ModalHostViewSupportedOrientations::LandscapeRight; -+ continue; -+ } -+ abort(); -+ } -+} -+ -+static inline std::string toString(const ModalHostViewSupportedOrientationsMask &value) { -+ auto result = std::string{}; -+ auto separator = std::string{", "}; -+ -+ if (value & ModalHostViewSupportedOrientations::Portrait) { -+ result += "portrait" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::PortraitUpsideDown) { -+ result += "portrait-upside-down" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::Landscape) { -+ result += "landscape" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::LandscapeLeft) { -+ result += "landscape-left" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::LandscapeRight) { -+ result += "landscape-right" + separator; -+ } -+ if (!result.empty()) { -+ result.erase(result.length() - separator.length()); -+ } -+ return result; -+} -+ -+class ModalHostViewProps final : public ViewProps { -+ public: -+ ModalHostViewProps() = default; -+ ModalHostViewProps(const ModalHostViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ ModalHostViewAnimationType animationType{ModalHostViewAnimationType::None}; -+ ModalHostViewPresentationStyle presentationStyle{ModalHostViewPresentationStyle::FullScreen}; -+ bool transparent{false}; -+ bool statusBarTranslucent{false}; -+ bool hardwareAccelerated{false}; -+ bool visible{false}; -+ bool animated{false}; -+ ModalHostViewSupportedOrientationsMask supportedOrientations{static_cast(ModalHostViewSupportedOrientations::Portrait)}; -+ int identifier{0}; -+}; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h.bak -new file mode 100644 -index 0000000..feac387 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/Props.h.bak -@@ -0,0 +1,575 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GeneratePropsH.js -+ */ -+#pragma once -+ -+#include -+#include -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+enum class ActivityIndicatorViewSize { Small, Large }; -+ -+static inline void fromRawValue(const RawValue &value, ActivityIndicatorViewSize &result) { -+ auto string = (std::string)value; -+ if (string == "small") { result = ActivityIndicatorViewSize::Small; return; } -+ if (string == "large") { result = ActivityIndicatorViewSize::Large; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ActivityIndicatorViewSize &value) { -+ switch (value) { -+ case ActivityIndicatorViewSize::Small: return "small"; -+ case ActivityIndicatorViewSize::Large: return "large"; -+ } -+} -+ -+class ActivityIndicatorViewProps final : public ViewProps { -+ public: -+ ActivityIndicatorViewProps() = default; -+ ActivityIndicatorViewProps(const ActivityIndicatorViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool hidesWhenStopped{false}; -+ bool animating{false}; -+ SharedColor color{}; -+ ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small}; -+}; -+ -+enum class DatePickerMinuteInterval { MinuteInterval1 = 1, MinuteInterval2 = 2, MinuteInterval3 = 3, MinuteInterval4 = 4, MinuteInterval5 = 5, MinuteInterval6 = 6, MinuteInterval10 = 10, MinuteInterval12 = 12, MinuteInterval15 = 15, MinuteInterval20 = 20, MinuteInterval30 = 30 }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerMinuteInterval &result) { -+ assert(value.hasType()); -+ auto integerValue = (int)value; -+ switch (integerValue) { -+ case 1: -+ result = DatePickerMinuteInterval::MinuteInterval1; -+ return; -+ case 2: -+ result = DatePickerMinuteInterval::MinuteInterval2; -+ return; -+ case 3: -+ result = DatePickerMinuteInterval::MinuteInterval3; -+ return; -+ case 4: -+ result = DatePickerMinuteInterval::MinuteInterval4; -+ return; -+ case 5: -+ result = DatePickerMinuteInterval::MinuteInterval5; -+ return; -+ case 6: -+ result = DatePickerMinuteInterval::MinuteInterval6; -+ return; -+ case 10: -+ result = DatePickerMinuteInterval::MinuteInterval10; -+ return; -+ case 12: -+ result = DatePickerMinuteInterval::MinuteInterval12; -+ return; -+ case 15: -+ result = DatePickerMinuteInterval::MinuteInterval15; -+ return; -+ case 20: -+ result = DatePickerMinuteInterval::MinuteInterval20; -+ return; -+ case 30: -+ result = DatePickerMinuteInterval::MinuteInterval30; -+ return; -+ } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerMinuteInterval &value) { -+ switch (value) { -+ case DatePickerMinuteInterval::MinuteInterval1: return "1"; -+ case DatePickerMinuteInterval::MinuteInterval2: return "2"; -+ case DatePickerMinuteInterval::MinuteInterval3: return "3"; -+ case DatePickerMinuteInterval::MinuteInterval4: return "4"; -+ case DatePickerMinuteInterval::MinuteInterval5: return "5"; -+ case DatePickerMinuteInterval::MinuteInterval6: return "6"; -+ case DatePickerMinuteInterval::MinuteInterval10: return "10"; -+ case DatePickerMinuteInterval::MinuteInterval12: return "12"; -+ case DatePickerMinuteInterval::MinuteInterval15: return "15"; -+ case DatePickerMinuteInterval::MinuteInterval20: return "20"; -+ case DatePickerMinuteInterval::MinuteInterval30: return "30"; -+ } -+} -+enum class DatePickerMode { Date, Time, Datetime }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerMode &result) { -+ auto string = (std::string)value; -+ if (string == "date") { result = DatePickerMode::Date; return; } -+ if (string == "time") { result = DatePickerMode::Time; return; } -+ if (string == "datetime") { result = DatePickerMode::Datetime; return; } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerMode &value) { -+ switch (value) { -+ case DatePickerMode::Date: return "date"; -+ case DatePickerMode::Time: return "time"; -+ case DatePickerMode::Datetime: return "datetime"; -+ } -+} -+enum class DatePickerPickerStyle { Compact, Spinner, Inline }; -+ -+static inline void fromRawValue(const RawValue &value, DatePickerPickerStyle &result) { -+ auto string = (std::string)value; -+ if (string == "compact") { result = DatePickerPickerStyle::Compact; return; } -+ if (string == "spinner") { result = DatePickerPickerStyle::Spinner; return; } -+ if (string == "inline") { result = DatePickerPickerStyle::Inline; return; } -+ abort(); -+} -+ -+static inline std::string toString(const DatePickerPickerStyle &value) { -+ switch (value) { -+ case DatePickerPickerStyle::Compact: return "compact"; -+ case DatePickerPickerStyle::Spinner: return "spinner"; -+ case DatePickerPickerStyle::Inline: return "inline"; -+ } -+} -+ -+class DatePickerProps final : public ViewProps { -+ public: -+ DatePickerProps() = default; -+ DatePickerProps(const DatePickerProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ Float date{0.0}; -+ Float initialDate{0.0}; -+ std::string locale{}; -+ Float maximumDate{0.0}; -+ Float minimumDate{0.0}; -+ DatePickerMinuteInterval minuteInterval{DatePickerMinuteInterval::MinuteInterval1}; -+ DatePickerMode mode{DatePickerMode::Date}; -+ Float timeZoneOffsetInMinutes{0.0}; -+ DatePickerPickerStyle pickerStyle{DatePickerPickerStyle::Spinner}; -+}; -+ -+enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutKeyboardDismissMode &result) { -+ auto string = (std::string)value; -+ if (string == "none") { result = AndroidDrawerLayoutKeyboardDismissMode::None; return; } -+ if (string == "on-drag") { result = AndroidDrawerLayoutKeyboardDismissMode::OnDrag; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode &value) { -+ switch (value) { -+ case AndroidDrawerLayoutKeyboardDismissMode::None: return "none"; -+ case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag"; -+ } -+} -+enum class AndroidDrawerLayoutDrawerPosition { Left, Right }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) { -+ auto string = (std::string)value; -+ if (string == "left") { result = AndroidDrawerLayoutDrawerPosition::Left; return; } -+ if (string == "right") { result = AndroidDrawerLayoutDrawerPosition::Right; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &value) { -+ switch (value) { -+ case AndroidDrawerLayoutDrawerPosition::Left: return "left"; -+ case AndroidDrawerLayoutDrawerPosition::Right: return "right"; -+ } -+} -+enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) { -+ auto string = (std::string)value; -+ if (string == "unlocked") { result = AndroidDrawerLayoutDrawerLockMode::Unlocked; return; } -+ if (string == "locked-closed") { result = AndroidDrawerLayoutDrawerLockMode::LockedClosed; return; } -+ if (string == "locked-open") { result = AndroidDrawerLayoutDrawerLockMode::LockedOpen; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &value) { -+ switch (value) { -+ case AndroidDrawerLayoutDrawerLockMode::Unlocked: return "unlocked"; -+ case AndroidDrawerLayoutDrawerLockMode::LockedClosed: return "locked-closed"; -+ case AndroidDrawerLayoutDrawerLockMode::LockedOpen: return "locked-open"; -+ } -+} -+ -+class AndroidDrawerLayoutProps final : public ViewProps { -+ public: -+ AndroidDrawerLayoutProps() = default; -+ AndroidDrawerLayoutProps(const AndroidDrawerLayoutProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ AndroidDrawerLayoutKeyboardDismissMode keyboardDismissMode{AndroidDrawerLayoutKeyboardDismissMode::None}; -+ SharedColor drawerBackgroundColor{}; -+ AndroidDrawerLayoutDrawerPosition drawerPosition{AndroidDrawerLayoutDrawerPosition::Left}; -+ Float drawerWidth{}; -+ AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked}; -+ SharedColor statusBarBackgroundColor{}; -+}; -+ -+class RCTMaskedViewProps final : public ViewProps { -+ public: -+ RCTMaskedViewProps() = default; -+ RCTMaskedViewProps(const RCTMaskedViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ -+}; -+ -+class AndroidProgressBarProps final : public ViewProps { -+ public: -+ AndroidProgressBarProps() = default; -+ AndroidProgressBarProps(const AndroidProgressBarProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::string styleAttr{}; -+ std::string typeAttr{}; -+ bool indeterminate{false}; -+ double progress{0.0}; -+ bool animating{true}; -+ SharedColor color{}; -+ std::string testID{""}; -+}; -+ -+enum class RCTProgressViewProgressViewStyle { Default, Bar }; -+ -+static inline void fromRawValue(const RawValue &value, RCTProgressViewProgressViewStyle &result) { -+ auto string = (std::string)value; -+ if (string == "default") { result = RCTProgressViewProgressViewStyle::Default; return; } -+ if (string == "bar") { result = RCTProgressViewProgressViewStyle::Bar; return; } -+ abort(); -+} -+ -+static inline std::string toString(const RCTProgressViewProgressViewStyle &value) { -+ switch (value) { -+ case RCTProgressViewProgressViewStyle::Default: return "default"; -+ case RCTProgressViewProgressViewStyle::Bar: return "bar"; -+ } -+} -+ -+class RCTProgressViewProps final : public ViewProps { -+ public: -+ RCTProgressViewProps() = default; -+ RCTProgressViewProps(const RCTProgressViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ RCTProgressViewProgressViewStyle progressViewStyle{RCTProgressViewProgressViewStyle::Default}; -+ Float progress{0.0}; -+ SharedColor progressTintColor{}; -+ SharedColor trackTintColor{}; -+ ImageSource progressImage{}; -+ ImageSource trackImage{}; -+}; -+ -+enum class AndroidSwipeRefreshLayoutSize { Default, Large }; -+ -+static inline void fromRawValue(const RawValue &value, AndroidSwipeRefreshLayoutSize &result) { -+ auto string = (std::string)value; -+ if (string == "default") { result = AndroidSwipeRefreshLayoutSize::Default; return; } -+ if (string == "large") { result = AndroidSwipeRefreshLayoutSize::Large; return; } -+ abort(); -+} -+ -+static inline std::string toString(const AndroidSwipeRefreshLayoutSize &value) { -+ switch (value) { -+ case AndroidSwipeRefreshLayoutSize::Default: return "default"; -+ case AndroidSwipeRefreshLayoutSize::Large: return "large"; -+ } -+} -+ -+class AndroidSwipeRefreshLayoutProps final : public ViewProps { -+ public: -+ AndroidSwipeRefreshLayoutProps() = default; -+ AndroidSwipeRefreshLayoutProps(const AndroidSwipeRefreshLayoutProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool enabled{true}; -+ std::vector colors{}; -+ SharedColor progressBackgroundColor{}; -+ AndroidSwipeRefreshLayoutSize size{AndroidSwipeRefreshLayoutSize::Default}; -+ Float progressViewOffset{0.0}; -+ bool refreshing{false}; -+}; -+ -+class PullToRefreshViewProps final : public ViewProps { -+ public: -+ PullToRefreshViewProps() = default; -+ PullToRefreshViewProps(const PullToRefreshViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ SharedColor tintColor{}; -+ SharedColor titleColor{}; -+ std::string title{}; -+ Float progressViewOffset{0.0}; -+ bool refreshing{false}; -+}; -+ -+class SafeAreaViewProps final : public ViewProps { -+ public: -+ SafeAreaViewProps() = default; -+ SafeAreaViewProps(const SafeAreaViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool emulateUnlessSupported{false}; -+}; -+ -+class AndroidHorizontalScrollContentViewProps final : public ViewProps { -+ public: -+ AndroidHorizontalScrollContentViewProps() = default; -+ AndroidHorizontalScrollContentViewProps(const AndroidHorizontalScrollContentViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ -+}; -+ -+class RCTSegmentedControlProps final : public ViewProps { -+ public: -+ RCTSegmentedControlProps() = default; -+ RCTSegmentedControlProps(const RCTSegmentedControlProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::vector values{}; -+ int selectedIndex{0}; -+ bool enabled{true}; -+ SharedColor tintColor{}; -+ SharedColor textColor{}; -+ SharedColor backgroundColor{}; -+ bool momentary{false}; -+}; -+ -+class SliderProps final : public ViewProps { -+ public: -+ SliderProps() = default; -+ SliderProps(const SliderProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool enabled{true}; -+ ImageSource maximumTrackImage{}; -+ SharedColor maximumTrackTintColor{}; -+ double maximumValue{1.0}; -+ ImageSource minimumTrackImage{}; -+ SharedColor minimumTrackTintColor{}; -+ double minimumValue{0.0}; -+ double step{0.0}; -+ std::string testID{""}; -+ ImageSource thumbImage{}; -+ SharedColor thumbTintColor{}; -+ ImageSource trackImage{}; -+ double value{0.0}; -+}; -+ -+class AndroidSwitchProps final : public ViewProps { -+ public: -+ AndroidSwitchProps() = default; -+ AndroidSwitchProps(const AndroidSwitchProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool enabled{true}; -+ SharedColor thumbColor{}; -+ SharedColor trackColorForFalse{}; -+ SharedColor trackColorForTrue{}; -+ bool value{false}; -+ bool on{false}; -+ SharedColor thumbTintColor{}; -+ SharedColor trackTintColor{}; -+}; -+ -+class SwitchProps final : public ViewProps { -+ public: -+ SwitchProps() = default; -+ SwitchProps(const SwitchProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ bool disabled{false}; -+ bool value{false}; -+ SharedColor tintColor{}; -+ SharedColor onTintColor{}; -+ SharedColor thumbTintColor{}; -+ SharedColor thumbColor{}; -+ SharedColor trackColorForFalse{}; -+ SharedColor trackColorForTrue{}; -+}; -+ -+class InputAccessoryProps final : public ViewProps { -+ public: -+ InputAccessoryProps() = default; -+ InputAccessoryProps(const InputAccessoryProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ SharedColor backgroundColor{}; -+}; -+ -+class UnimplementedNativeViewProps final : public ViewProps { -+ public: -+ UnimplementedNativeViewProps() = default; -+ UnimplementedNativeViewProps(const UnimplementedNativeViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ std::string name{""}; -+}; -+ -+enum class ModalHostViewAnimationType { None, Slide, Fade }; -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewAnimationType &result) { -+ auto string = (std::string)value; -+ if (string == "none") { result = ModalHostViewAnimationType::None; return; } -+ if (string == "slide") { result = ModalHostViewAnimationType::Slide; return; } -+ if (string == "fade") { result = ModalHostViewAnimationType::Fade; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ModalHostViewAnimationType &value) { -+ switch (value) { -+ case ModalHostViewAnimationType::None: return "none"; -+ case ModalHostViewAnimationType::Slide: return "slide"; -+ case ModalHostViewAnimationType::Fade: return "fade"; -+ } -+} -+enum class ModalHostViewPresentationStyle { FullScreen, PageSheet, FormSheet, OverFullScreen }; -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewPresentationStyle &result) { -+ auto string = (std::string)value; -+ if (string == "fullScreen") { result = ModalHostViewPresentationStyle::FullScreen; return; } -+ if (string == "pageSheet") { result = ModalHostViewPresentationStyle::PageSheet; return; } -+ if (string == "formSheet") { result = ModalHostViewPresentationStyle::FormSheet; return; } -+ if (string == "overFullScreen") { result = ModalHostViewPresentationStyle::OverFullScreen; return; } -+ abort(); -+} -+ -+static inline std::string toString(const ModalHostViewPresentationStyle &value) { -+ switch (value) { -+ case ModalHostViewPresentationStyle::FullScreen: return "fullScreen"; -+ case ModalHostViewPresentationStyle::PageSheet: return "pageSheet"; -+ case ModalHostViewPresentationStyle::FormSheet: return "formSheet"; -+ case ModalHostViewPresentationStyle::OverFullScreen: return "overFullScreen"; -+ } -+} -+using ModalHostViewSupportedOrientationsMask = uint32_t; -+ -+enum class ModalHostViewSupportedOrientations: ModalHostViewSupportedOrientationsMask { -+ Portrait = 1 << 0, -+ PortraitUpsideDown = 1 << 1, -+ Landscape = 1 << 2, -+ LandscapeLeft = 1 << 3, -+ LandscapeRight = 1 << 4 -+}; -+ -+constexpr bool operator&( -+ ModalHostViewSupportedOrientationsMask const lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ return lhs & static_cast(rhs); -+} -+ -+constexpr ModalHostViewSupportedOrientationsMask operator|( -+ ModalHostViewSupportedOrientationsMask const lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ return lhs | static_cast(rhs); -+} -+ -+constexpr void operator|=( -+ ModalHostViewSupportedOrientationsMask &lhs, -+ enum ModalHostViewSupportedOrientations const rhs) { -+ lhs = lhs | static_cast(rhs); -+} -+ -+static inline void fromRawValue(const RawValue &value, ModalHostViewSupportedOrientationsMask &result) { -+ auto items = std::vector{value}; -+ for (const auto &item : items) { -+ if (item == "portrait") { -+ result |= ModalHostViewSupportedOrientations::Portrait; -+ continue; -+ } -+ if (item == "portrait-upside-down") { -+ result |= ModalHostViewSupportedOrientations::PortraitUpsideDown; -+ continue; -+ } -+ if (item == "landscape") { -+ result |= ModalHostViewSupportedOrientations::Landscape; -+ continue; -+ } -+ if (item == "landscape-left") { -+ result |= ModalHostViewSupportedOrientations::LandscapeLeft; -+ continue; -+ } -+ if (item == "landscape-right") { -+ result |= ModalHostViewSupportedOrientations::LandscapeRight; -+ continue; -+ } -+ abort(); -+ } -+} -+ -+static inline std::string toString(const ModalHostViewSupportedOrientationsMask &value) { -+ auto result = std::string{}; -+ auto separator = std::string{", "}; -+ -+ if (value & ModalHostViewSupportedOrientations::Portrait) { -+ result += "portrait" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::PortraitUpsideDown) { -+ result += "portrait-upside-down" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::Landscape) { -+ result += "landscape" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::LandscapeLeft) { -+ result += "landscape-left" + separator; -+ } -+ if (value & ModalHostViewSupportedOrientations::LandscapeRight) { -+ result += "landscape-right" + separator; -+ } -+ if (!result.empty()) { -+ result.erase(result.length() - separator.length()); -+ } -+ return result; -+} -+ -+class ModalHostViewProps final : public ViewProps { -+ public: -+ ModalHostViewProps() = default; -+ ModalHostViewProps(const ModalHostViewProps &sourceProps, const RawProps &rawProps); -+ -+#pragma mark - Props -+ -+ ModalHostViewAnimationType animationType{ModalHostViewAnimationType::None}; -+ ModalHostViewPresentationStyle presentationStyle{ModalHostViewPresentationStyle::FullScreen}; -+ bool transparent{false}; -+ bool statusBarTranslucent{false}; -+ bool hardwareAccelerated{false}; -+ bool visible{false}; -+ bool animated{false}; -+ ModalHostViewSupportedOrientationsMask supportedOrientations{static_cast(ModalHostViewSupportedOrientations::Portrait)}; -+ int identifier{0}; -+}; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h -new file mode 100644 -index 0000000..be95fd5 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h -@@ -0,0 +1,273 @@ -+/** -+* Copyright (c) Facebook, Inc. and its affiliates. -+* -+* This source code is licensed under the MIT license found in the -+* LICENSE file in the root directory of this source tree. -+* -+* @generated by codegen project: GenerateComponentHObjCpp.js -+*/ -+ -+#import -+#import -+#import -+ -+NS_ASSUME_NONNULL_BEGIN -+ -+@protocol RCTActivityIndicatorViewViewProtocol -+ -+@end -+ -+@protocol RCTDatePickerViewProtocol -+- (void)setNativeDate:(float)date; -+@end -+ -+RCT_EXTERN inline void RCTDatePickerHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeDate"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"DatePicker", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"float", @"DatePicker", commandName, @"1st")) { -+ return; -+ } -+#endif -+ float date = [(NSNumber *)arg0 floatValue]; -+ -+ [componentView setNativeDate:date]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"DatePicker", commandName); -+#endif -+} -+ -+@protocol RCTAndroidDrawerLayoutViewProtocol -+- (void)openDrawer; -+- (void)closeDrawer; -+@end -+ -+RCT_EXTERN inline void RCTAndroidDrawerLayoutHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"openDrawer"]) { -+#if RCT_DEBUG -+ if ([args count] != 0) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidDrawerLayout", commandName, (int)[args count], 0); -+ return; -+ } -+#endif -+ -+ -+ -+ [componentView openDrawer]; -+ return; -+} -+ -+if ([commandName isEqualToString:@"closeDrawer"]) { -+#if RCT_DEBUG -+ if ([args count] != 0) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidDrawerLayout", commandName, (int)[args count], 0); -+ return; -+ } -+#endif -+ -+ -+ -+ [componentView closeDrawer]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidDrawerLayout", commandName); -+#endif -+} -+ -+@protocol RCTRCTMaskedViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidProgressBarViewProtocol -+ -+@end -+ -+@protocol RCTRCTProgressViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidSwipeRefreshLayoutViewProtocol -+- (void)setNativeRefreshing:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTAndroidSwipeRefreshLayoutHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeRefreshing"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidSwipeRefreshLayout", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"AndroidSwipeRefreshLayout", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeRefreshing:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidSwipeRefreshLayout", commandName); -+#endif -+} -+ -+@protocol RCTPullToRefreshViewViewProtocol -+- (void)setNativeRefreshing:(BOOL)refreshing; -+@end -+ -+RCT_EXTERN inline void RCTPullToRefreshViewHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeRefreshing"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"PullToRefreshView", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"PullToRefreshView", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL refreshing = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeRefreshing:refreshing]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"PullToRefreshView", commandName); -+#endif -+} -+ -+@protocol RCTSafeAreaViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidHorizontalScrollContentViewViewProtocol -+ -+@end -+ -+@protocol RCTRCTSegmentedControlViewProtocol -+ -+@end -+ -+@protocol RCTSliderViewProtocol -+ -+@end -+ -+@protocol RCTAndroidSwitchViewProtocol -+- (void)setNativeValue:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTAndroidSwitchHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeValue"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidSwitch", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"AndroidSwitch", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeValue:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidSwitch", commandName); -+#endif -+} -+ -+@protocol RCTSwitchViewProtocol -+- (void)setValue:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTSwitchHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setValue"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"Switch", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"Switch", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setValue:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"Switch", commandName); -+#endif -+} -+ -+@protocol RCTInputAccessoryViewProtocol -+ -+@end -+ -+@protocol RCTUnimplementedNativeViewViewProtocol -+ -+@end -+ -+@protocol RCTModalHostViewViewProtocol -+ -+@end -+ -+NS_ASSUME_NONNULL_END -\ No newline at end of file -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h.bak -new file mode 100644 -index 0000000..be95fd5 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h.bak -@@ -0,0 +1,273 @@ -+/** -+* Copyright (c) Facebook, Inc. and its affiliates. -+* -+* This source code is licensed under the MIT license found in the -+* LICENSE file in the root directory of this source tree. -+* -+* @generated by codegen project: GenerateComponentHObjCpp.js -+*/ -+ -+#import -+#import -+#import -+ -+NS_ASSUME_NONNULL_BEGIN -+ -+@protocol RCTActivityIndicatorViewViewProtocol -+ -+@end -+ -+@protocol RCTDatePickerViewProtocol -+- (void)setNativeDate:(float)date; -+@end -+ -+RCT_EXTERN inline void RCTDatePickerHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeDate"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"DatePicker", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"float", @"DatePicker", commandName, @"1st")) { -+ return; -+ } -+#endif -+ float date = [(NSNumber *)arg0 floatValue]; -+ -+ [componentView setNativeDate:date]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"DatePicker", commandName); -+#endif -+} -+ -+@protocol RCTAndroidDrawerLayoutViewProtocol -+- (void)openDrawer; -+- (void)closeDrawer; -+@end -+ -+RCT_EXTERN inline void RCTAndroidDrawerLayoutHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"openDrawer"]) { -+#if RCT_DEBUG -+ if ([args count] != 0) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidDrawerLayout", commandName, (int)[args count], 0); -+ return; -+ } -+#endif -+ -+ -+ -+ [componentView openDrawer]; -+ return; -+} -+ -+if ([commandName isEqualToString:@"closeDrawer"]) { -+#if RCT_DEBUG -+ if ([args count] != 0) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidDrawerLayout", commandName, (int)[args count], 0); -+ return; -+ } -+#endif -+ -+ -+ -+ [componentView closeDrawer]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidDrawerLayout", commandName); -+#endif -+} -+ -+@protocol RCTRCTMaskedViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidProgressBarViewProtocol -+ -+@end -+ -+@protocol RCTRCTProgressViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidSwipeRefreshLayoutViewProtocol -+- (void)setNativeRefreshing:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTAndroidSwipeRefreshLayoutHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeRefreshing"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidSwipeRefreshLayout", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"AndroidSwipeRefreshLayout", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeRefreshing:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidSwipeRefreshLayout", commandName); -+#endif -+} -+ -+@protocol RCTPullToRefreshViewViewProtocol -+- (void)setNativeRefreshing:(BOOL)refreshing; -+@end -+ -+RCT_EXTERN inline void RCTPullToRefreshViewHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeRefreshing"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"PullToRefreshView", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"PullToRefreshView", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL refreshing = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeRefreshing:refreshing]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"PullToRefreshView", commandName); -+#endif -+} -+ -+@protocol RCTSafeAreaViewViewProtocol -+ -+@end -+ -+@protocol RCTAndroidHorizontalScrollContentViewViewProtocol -+ -+@end -+ -+@protocol RCTRCTSegmentedControlViewProtocol -+ -+@end -+ -+@protocol RCTSliderViewProtocol -+ -+@end -+ -+@protocol RCTAndroidSwitchViewProtocol -+- (void)setNativeValue:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTAndroidSwitchHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setNativeValue"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"AndroidSwitch", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"AndroidSwitch", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setNativeValue:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"AndroidSwitch", commandName); -+#endif -+} -+ -+@protocol RCTSwitchViewProtocol -+- (void)setValue:(BOOL)value; -+@end -+ -+RCT_EXTERN inline void RCTSwitchHandleCommand( -+ id componentView, -+ NSString const *commandName, -+ NSArray const *args) -+{ -+ if ([commandName isEqualToString:@"setValue"]) { -+#if RCT_DEBUG -+ if ([args count] != 1) { -+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"Switch", commandName, (int)[args count], 1); -+ return; -+ } -+#endif -+ -+ NSObject *arg0 = args[0]; -+#if RCT_DEBUG -+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"Switch", commandName, @"1st")) { -+ return; -+ } -+#endif -+ BOOL value = [(NSNumber *)arg0 boolValue]; -+ -+ [componentView setValue:value]; -+ return; -+} -+ -+#if RCT_DEBUG -+ RCTLogError(@"%@ received command %@, which is not a supported command.", @"Switch", commandName); -+#endif -+} -+ -+@protocol RCTInputAccessoryViewProtocol -+ -+@end -+ -+@protocol RCTUnimplementedNativeViewViewProtocol -+ -+@end -+ -+@protocol RCTModalHostViewViewProtocol -+ -+@end -+ -+NS_ASSUME_NONNULL_END -\ No newline at end of file -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp -new file mode 100644 -index 0000000..7255b0b ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp -@@ -0,0 +1,29 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+extern const char ActivityIndicatorViewComponentName[] = "ActivityIndicatorView"; -+extern const char DatePickerComponentName[] = "DatePicker"; -+extern const char AndroidDrawerLayoutComponentName[] = "AndroidDrawerLayout"; -+extern const char RCTMaskedViewComponentName[] = "RCTMaskedView"; -+extern const char RCTProgressViewComponentName[] = "RCTProgressView"; -+extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout"; -+extern const char PullToRefreshViewComponentName[] = "PullToRefreshView"; -+extern const char AndroidHorizontalScrollContentViewComponentName[] = "AndroidHorizontalScrollContentView"; -+extern const char RCTSegmentedControlComponentName[] = "RCTSegmentedControl"; -+extern const char SwitchComponentName[] = "Switch"; -+extern const char UnimplementedNativeViewComponentName[] = "UnimplementedNativeView"; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp.bak -new file mode 100644 -index 0000000..c544296 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp.bak -@@ -0,0 +1,29 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeCpp.js -+ */ -+ -+#include -+ -+namespace facebook { -+namespace react { -+ -+extern const char ActivityIndicatorViewComponentName[] = "ActivityIndicatorView"; -+extern const char DatePickerComponentName[] = "DatePicker"; -+extern const char AndroidDrawerLayoutComponentName[] = "AndroidDrawerLayout"; -+extern const char RCTMaskedViewComponentName[] = "RCTMaskedView"; -+extern const char RCTProgressViewComponentName[] = "RCTProgressView"; -+extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout"; -+extern const char PullToRefreshViewComponentName[] = "PullToRefreshView"; -+extern const char AndroidHorizontalScrollContentViewComponentName[] = "AndroidHorizontalScrollContentView"; -+extern const char RCTSegmentedControlComponentName[] = "RCTSegmentedControl"; -+extern const char SwitchComponentName[] = "Switch"; -+extern const char UnimplementedNativeViewComponentName[] = "UnimplementedNativeView"; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h -new file mode 100644 -index 0000000..37278a6 ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h -@@ -0,0 +1,126 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+extern const char ActivityIndicatorViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using ActivityIndicatorViewShadowNode = ConcreteViewShadowNode< -+ ActivityIndicatorViewComponentName, -+ ActivityIndicatorViewProps>; -+ -+extern const char DatePickerComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using DatePickerShadowNode = ConcreteViewShadowNode< -+ DatePickerComponentName, -+ DatePickerProps, -+DatePickerEventEmitter>; -+ -+extern const char AndroidDrawerLayoutComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidDrawerLayoutShadowNode = ConcreteViewShadowNode< -+ AndroidDrawerLayoutComponentName, -+ AndroidDrawerLayoutProps, -+AndroidDrawerLayoutEventEmitter>; -+ -+extern const char RCTMaskedViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTMaskedViewShadowNode = ConcreteViewShadowNode< -+ RCTMaskedViewComponentName, -+ RCTMaskedViewProps>; -+ -+extern const char RCTProgressViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTProgressViewShadowNode = ConcreteViewShadowNode< -+ RCTProgressViewComponentName, -+ RCTProgressViewProps>; -+ -+extern const char AndroidSwipeRefreshLayoutComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidSwipeRefreshLayoutShadowNode = ConcreteViewShadowNode< -+ AndroidSwipeRefreshLayoutComponentName, -+ AndroidSwipeRefreshLayoutProps, -+AndroidSwipeRefreshLayoutEventEmitter>; -+ -+extern const char PullToRefreshViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using PullToRefreshViewShadowNode = ConcreteViewShadowNode< -+ PullToRefreshViewComponentName, -+ PullToRefreshViewProps, -+PullToRefreshViewEventEmitter>; -+ -+extern const char AndroidHorizontalScrollContentViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidHorizontalScrollContentViewShadowNode = ConcreteViewShadowNode< -+ AndroidHorizontalScrollContentViewComponentName, -+ AndroidHorizontalScrollContentViewProps>; -+ -+extern const char RCTSegmentedControlComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTSegmentedControlShadowNode = ConcreteViewShadowNode< -+ RCTSegmentedControlComponentName, -+ RCTSegmentedControlProps, -+RCTSegmentedControlEventEmitter>; -+ -+extern const char SwitchComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using SwitchShadowNode = ConcreteViewShadowNode< -+ SwitchComponentName, -+ SwitchProps, -+SwitchEventEmitter>; -+ -+extern const char UnimplementedNativeViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using UnimplementedNativeViewShadowNode = ConcreteViewShadowNode< -+ UnimplementedNativeViewComponentName, -+ UnimplementedNativeViewProps>; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h.bak b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h.bak -new file mode 100644 -index 0000000..402f10a ---- /dev/null -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/rncore/ShadowNodes.h.bak -@@ -0,0 +1,126 @@ -+ -+/** -+ * Copyright (c) Facebook, Inc. and its affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ * -+ * @generated by codegen project: GenerateShadowNodeH.js -+ */ -+ -+#pragma once -+ -+#include -+#include -+#include -+ -+namespace facebook { -+namespace react { -+ -+extern const char ActivityIndicatorViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using ActivityIndicatorViewShadowNode = ConcreteViewShadowNode< -+ ActivityIndicatorViewComponentName, -+ ActivityIndicatorViewProps>; -+ -+extern const char DatePickerComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using DatePickerShadowNode = ConcreteViewShadowNode< -+ DatePickerComponentName, -+ DatePickerProps, -+DatePickerEventEmitter>; -+ -+extern const char AndroidDrawerLayoutComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidDrawerLayoutShadowNode = ConcreteViewShadowNode< -+ AndroidDrawerLayoutComponentName, -+ AndroidDrawerLayoutProps, -+AndroidDrawerLayoutEventEmitter>; -+ -+extern const char RCTMaskedViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTMaskedViewShadowNode = ConcreteViewShadowNode< -+ RCTMaskedViewComponentName, -+ RCTMaskedViewProps>; -+ -+extern const char RCTProgressViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTProgressViewShadowNode = ConcreteViewShadowNode< -+ RCTProgressViewComponentName, -+ RCTProgressViewProps>; -+ -+extern const char AndroidSwipeRefreshLayoutComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidSwipeRefreshLayoutShadowNode = ConcreteViewShadowNode< -+ AndroidSwipeRefreshLayoutComponentName, -+ AndroidSwipeRefreshLayoutProps, -+AndroidSwipeRefreshLayoutEventEmitter>; -+ -+extern const char PullToRefreshViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using PullToRefreshViewShadowNode = ConcreteViewShadowNode< -+ PullToRefreshViewComponentName, -+ PullToRefreshViewProps, -+PullToRefreshViewEventEmitter>; -+ -+extern const char AndroidHorizontalScrollContentViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using AndroidHorizontalScrollContentViewShadowNode = ConcreteViewShadowNode< -+ AndroidHorizontalScrollContentViewComponentName, -+ AndroidHorizontalScrollContentViewProps>; -+ -+extern const char RCTSegmentedControlComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using RCTSegmentedControlShadowNode = ConcreteViewShadowNode< -+ RCTSegmentedControlComponentName, -+ RCTSegmentedControlProps, -+RCTSegmentedControlEventEmitter>; -+ -+extern const char SwitchComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using SwitchShadowNode = ConcreteViewShadowNode< -+ SwitchComponentName, -+ SwitchProps, -+SwitchEventEmitter>; -+ -+extern const char UnimplementedNativeViewComponentName[]; -+ -+/* -+ * `ShadowNode` for component. -+ */ -+using UnimplementedNativeViewShadowNode = ConcreteViewShadowNode< -+ UnimplementedNativeViewComponentName, -+ UnimplementedNativeViewProps>; -+ -+} // namespace react -+} // namespace facebook -diff --git a/node_modules/react-native/react.gradle b/node_modules/react-native/react.gradle -index 4524854..532c930 100644 ---- a/node_modules/react-native/react.gradle -+++ b/node_modules/react-native/react.gradle -@@ -28,14 +28,14 @@ def detectCliPath(config) { - if (config.cliPath) { - return "${projectDir}/${config.cliPath}" - } -- if (new File("${projectDir}/../../node_modules/react-native/cli.js").exists()) { -- return "${projectDir}/../../node_modules/react-native/cli.js" -+ if (new File("${projectDir}/../../../../node_modules/react-native/cli.js").exists()) { -+ return "${projectDir}/../../../../node_modules/react-native/cli.js" - } - throw new Exception("Couldn't determine CLI location. " + - "Please set `project.ext.react.cliPath` to the path of the react-native cli.js"); - } - --def composeSourceMapsPath = config.composeSourceMapsPath ?: "node_modules/react-native/scripts/compose-source-maps.js" -+def composeSourceMapsPath = config.composeSourceMapsPath ?: "../../node_modules/react-native/scripts/compose-source-maps.js" - def bundleAssetName = config.bundleAssetName ?: "index.android.bundle" - def entryFile = detectEntryFile(config) - def bundleCommand = config.bundleCommand ?: "bundle" -@@ -43,7 +43,7 @@ def reactRoot = file(config.root ?: "../../") - def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"] - def bundleConfig = config.bundleConfig ? "${reactRoot}/${config.bundleConfig}" : null ; - def enableVmCleanup = config.enableVmCleanup == null ? true : config.enableVmCleanup --def hermesCommand = config.hermesCommand ?: "../../node_modules/hermes-engine/%OS-BIN%/hermesc" -+def hermesCommand = config.hermesCommand ?: "../../../../node_modules/hermes-engine/%OS-BIN%/hermesc" - - def reactNativeDevServerPort() { - def value = project.getProperties().get("reactNativeDevServerPort") -diff --git a/node_modules/react-native/scripts/.packager.env b/node_modules/react-native/scripts/.packager.env -new file mode 100644 -index 0000000..361f5fb ---- /dev/null -+++ b/node_modules/react-native/scripts/.packager.env -@@ -0,0 +1 @@ -+export RCT_METRO_PORT=8081 diff --git a/patches/react-native+0.68.5.patch b/patches/react-native+0.68.5.patch new file mode 100644 index 00000000..00bcf306 --- /dev/null +++ b/patches/react-native+0.68.5.patch @@ -0,0 +1,30 @@ +diff --git a/node_modules/react-native/react.gradle b/node_modules/react-native/react.gradle +index 4f6db40..6865dc6 100644 +--- a/node_modules/react-native/react.gradle ++++ b/node_modules/react-native/react.gradle +@@ -15,14 +15,14 @@ def detectEntryFile(config) { + return System.getenv('ENTRY_FILE') + } else if (config.entryFile) { + return config.entryFile +- } else if ((new File("${projectDir}/../../index.android.js")).exists()) { ++ } else if ((new File("${projectDir}/../../../../index.android.js")).exists()) { + return "index.android.js" + } + + return "index.js"; + } + +-def composeSourceMapsPath = config.composeSourceMapsPath ?: "node_modules/react-native/scripts/compose-source-maps.js" ++def composeSourceMapsPath = config.composeSourceMapsPath ?: "../../node_modules/react-native/scripts/compose-source-maps.js" + def bundleAssetName = config.bundleAssetName ?: "index.android.bundle" + def entryFile = detectEntryFile(config) + def bundleCommand = config.bundleCommand ?: "bundle" +@@ -30,7 +30,7 @@ def reactRoot = file(config.root ?: "../../") + def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"] + def bundleConfig = config.bundleConfig ? "${reactRoot}/${config.bundleConfig}" : null ; + def enableVmCleanup = config.enableVmCleanup == null ? true : config.enableVmCleanup +-def hermesCommand = config.hermesCommand ?: "../../node_modules/hermes-engine/%OS-BIN%/hermesc" ++def hermesCommand = config.hermesCommand ?: "../../../../node_modules/hermes-engine/%OS-BIN%/hermesc" + + /** + * Detects CLI location in a similar fashion to the React Native CLI diff --git a/yarn.lock b/yarn.lock index a142259e..001d4705 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,7 +34,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== -"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.14.0", "@babel/core@^7.20.2", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.20.2", "@babel/core@^7.7.5": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== @@ -147,6 +147,19 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz#d0e1f8d7e4ed5dac0389364d9c0c191d948ade6f" + integrity sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-create-class-features-plugin@^7.20.2": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" @@ -253,6 +266,13 @@ dependencies: "@babel/types" "^7.18.9" +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== + dependencies: + "@babel/types" "^7.20.7" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -281,7 +301,7 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.20.7": +"@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.20.7": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== @@ -350,6 +370,18 @@ "@babel/traverse" "^7.19.1" "@babel/types" "^7.19.0" +"@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/helper-simple-access@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" @@ -371,6 +403,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -447,22 +486,22 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e" integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== +"@babel/parser@^7.13.16", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== -"@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== - -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.1.0": +"@babel/plugin-proposal-class-properties@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== @@ -470,6 +509,14 @@ "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" +"@babel/plugin-proposal-class-properties@^7.13.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-proposal-export-default-from@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz#a40ab158ca55627b71c5513f03d3469026a9e929" @@ -478,7 +525,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-default-from" "^7.16.7" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== @@ -486,6 +533,14 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" @@ -505,7 +560,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.1.0": +"@babel/plugin-proposal-optional-chaining@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== @@ -514,6 +569,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" + integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -556,6 +620,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" +"@babel/plugin-syntax-flow@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" + integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -706,7 +777,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.16.7": +"@babel/plugin-transform-flow-strip-types@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== @@ -714,6 +785,14 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-flow" "^7.16.7" +"@babel/plugin-transform-flow-strip-types@^7.18.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" + integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/plugin-transform-for-of@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" @@ -744,7 +823,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.1.0": +"@babel/plugin-transform-modules-commonjs@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.7.tgz#fd119e6a433c527d368425b45df361e1e95d3c1a" integrity sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w== @@ -754,6 +833,15 @@ "@babel/helper-simple-access" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.13.8": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" + integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" + "@babel/plugin-transform-object-assign@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz#5fe08d63dccfeb6a33aa2638faf98e5c584100f8" @@ -870,15 +958,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-typescript@^7.16.7", "@babel/plugin-transform-typescript@^7.5.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.7.tgz#33f8c2c890fbfdc4ef82446e9abb8de8211a3ff3" - integrity sha512-Hzx1lvBtOCWuCEwMmYOfpQpO7joFeXLgoPuzZZBtTxXqSqUGUubvFGZv2ygo1tB5Bp9q6PXV3H0E/kf7KM0RLA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-typescript" "^7.16.7" - "@babel/plugin-transform-typescript@^7.18.6": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz#91515527b376fc122ba83b13d70b01af8fe98f3f" @@ -888,6 +967,15 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" +"@babel/plugin-transform-typescript@^7.5.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.7.tgz#33f8c2c890fbfdc4ef82446e9abb8de8211a3ff3" + integrity sha512-Hzx1lvBtOCWuCEwMmYOfpQpO7joFeXLgoPuzZZBtTxXqSqUGUubvFGZv2ygo1tB5Bp9q6PXV3H0E/kf7KM0RLA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + "@babel/plugin-transform-unicode-regex@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" @@ -896,25 +984,16 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/preset-flow@^7.0.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" - integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-flow-strip-types" "^7.16.7" - -"@babel/preset-typescript@^7.1.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" - integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== +"@babel/preset-flow@^7.13.13": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb" + integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-flow-strip-types" "^7.18.6" -"@babel/preset-typescript@^7.16.7": +"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -923,15 +1002,15 @@ "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-transform-typescript" "^7.18.6" -"@babel/register@^7.0.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.16.7.tgz#e7b3a6015d1646677538672106bdb3a0b4a07657" - integrity sha512-Ft+cuxorVxFj4RrPDs9TbJNE7ZbuJTyazUC6jLWRvBQT/qIDZPMe7MHgjlrA+11+XDLh+I0Pnx7sxPp4LRhzcA== +"@babel/register@^7.13.16": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" + integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.0" + pirates "^4.0.5" source-map-support "^0.5.16" "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": @@ -1040,7 +1119,7 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.20.7": +"@babel/types@^7.20.0", "@babel/types@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== @@ -1459,6 +1538,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jimp/bmp@^0.16.2": version "0.16.2" resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.2.tgz#3982879b10626fc8cf1b4ab8627158bad142ec9d" @@ -1914,30 +2004,30 @@ resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.11.1.tgz#d3a9e685ce2383b1e92b89a334896c5575cc103d" integrity sha512-nvSIIHzybVWqYxcJE5hpT17ekxAAg383Ggzw5WrYHtkKX61N1AwaKSNmXs5xHV7pmKSOe/yWjtSwxIzfW51I5Q== -"@react-native-community/cli-debugger-ui@^6.0.0-rc.0": - version "6.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz#774378626e4b70f5e1e2e54910472dcbaffa1536" - integrity sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw== +"@react-native-community/cli-debugger-ui@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-7.0.3.tgz#3eeeacc5a43513cbcae56e5e965d77726361bcb4" + integrity sha512-G4SA6jFI0j22o+j+kYP8/7sxzbCDqSp2QiHA/X5E0lsGEd2o9qN2zbIjiFr8b8k+VVAYSUONhoC0+uKuINvmkA== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-hermes@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz#92b2f07d08626a60f6893c3e3d57c1538c8fb5a7" - integrity sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA== +"@react-native-community/cli-hermes@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-6.3.1.tgz#a4c3b4b07a1775f7012baf6d5a0b059da2ffac00" + integrity sha512-+tMJsEsVX0WyylnoFE7uPoMu1aTAChaA62Y32dwWgAa1Fx6YrpPkC9d6wvYSBe9md/4mTtRher+ooBcuov6JHw== dependencies: - "@react-native-community/cli-platform-android" "^6.3.0" - "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-platform-android" "^6.3.1" + "@react-native-community/cli-tools" "^6.2.1" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@^6.0.0", "@react-native-community/cli-platform-android@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz#ab7d156bd69a392493323eeaba839a874c0e201f" - integrity sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ== +"@react-native-community/cli-platform-android@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.1.tgz#8d35c809ddaf3b6c5d4ef9ff9c814a25a55259aa" + integrity sha512-n5A64RI1ty4ScZCel/3JYY9Anl857dPsUZ86Dwc1GxrbflSB5/+hcCMg5DCNcnJRa4Hdv95SAR5pMmtAjOXApA== dependencies: - "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-tools" "^6.2.1" chalk "^4.1.2" execa "^1.0.0" fs-extra "^8.1.0" @@ -1948,55 +2038,72 @@ slash "^3.0.0" xmldoc "^1.1.2" -"@react-native-community/cli-platform-ios@^6.0.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.2.0.tgz#ceaa23995511a8e400b506632ac7e6a66a17ec2a" - integrity sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg== +"@react-native-community/cli-platform-android@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-7.0.1.tgz#d165897edf401f9bceff1f361ef446528133cb52" + integrity sha512-nOr0aMkxAymCnbtsQwXBlyoRN2Y+IzC7Qz5T+/zyWwEbTY8SKQI8uV+8+qttUvzSvuXa2PeXsTWluuliOS8KCw== + dependencies: + "@react-native-community/cli-tools" "^7.0.1" + chalk "^4.1.2" + execa "^1.0.0" + fs-extra "^8.1.0" + glob "^7.1.3" + jetifier "^1.6.2" + lodash "^4.17.15" + logkitty "^0.7.1" + slash "^3.0.0" + xmldoc "^1.1.2" + +"@react-native-community/cli-platform-ios@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-7.0.1.tgz#1c27af85229246b7a528e97f093e38859896cc93" + integrity sha512-PLRIbzrCzSedmpjuFtQqcqUD45G8q7sEciI1lf5zUbVMXqjIBwJWS7iz8235PyWwj8J4MNHohLC+oyRueFtbGg== dependencies: - "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-tools" "^7.0.1" chalk "^4.1.2" + execa "^1.0.0" glob "^7.1.3" js-yaml "^3.13.1" lodash "^4.17.15" - ora "^3.4.0" + ora "^5.4.1" plist "^3.0.2" - xcode "^2.0.0" + xcode "^3.0.0" -"@react-native-community/cli-plugin-metro@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-6.2.0.tgz#143f459f1b6d595011e787ecfbe87621195de6ae" - integrity sha512-JfmzuFNzOr+dFTUQJo1rV0t87XAqgHRTMYXNleQVt8otOVCk1FSCgKlgqMdvQc/FCx2ZjoMWEEV/g0LrPI8Etw== +"@react-native-community/cli-plugin-metro@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-7.0.4.tgz#cd3010f6b9f955df2630ceea9fc8816a12843dde" + integrity sha512-DEV9WwJ6mB8zWFvNe/Z/eGmtmQmsZcu9VIqjxT7e9xZr2csB9ZlOZiweAMFO5cuVWZZgfL+NYIaQiFi0E0DFXw== dependencies: - "@react-native-community/cli-server-api" "^6.2.0" - "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-server-api" "^7.0.4" + "@react-native-community/cli-tools" "^6.2.1" chalk "^4.1.2" - metro "^0.66.1" - metro-config "^0.66.1" - metro-core "^0.66.1" - metro-react-native-babel-transformer "^0.66.1" - metro-resolver "^0.66.1" - metro-runtime "^0.66.1" + metro "^0.67.0" + metro-config "^0.67.0" + metro-core "^0.67.0" + metro-react-native-babel-transformer "^0.67.0" + metro-resolver "^0.67.0" + metro-runtime "^0.67.0" readline "^1.3.0" -"@react-native-community/cli-server-api@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-6.2.0.tgz#8dc399ef0e14e07c9942515b507292fb850f41f2" - integrity sha512-OnbnYclhoDpjge33QO5Slhfn0DsmLzzAgyrSCnb24HhSqwq7ObjMHaLpoEhpajzLG71wq5oKh0APEQjiL4Mknw== +"@react-native-community/cli-server-api@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-7.0.4.tgz#b71e3413d4188b1bb3110267674ff31ce434b163" + integrity sha512-NzwLKgshx1aFJad5b972rFowEx8ueHRFFXQFnBbvEuE3KsivDOTIwO0zn7cAO1zpxlFRxUFfcI1Pe4Aymi3xZw== dependencies: - "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" - "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-debugger-ui" "^7.0.3" + "@react-native-community/cli-tools" "^6.2.1" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.0" nocache "^2.1.0" pretty-format "^26.6.2" serve-static "^1.13.1" - ws "^1.1.0" + ws "^7.5.1" -"@react-native-community/cli-tools@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz#8f4adc2d83ab96e5654348533c8fa602742c4fce" - integrity sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA== +"@react-native-community/cli-tools@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-6.2.1.tgz#6f7ada6559846b49fb9fcfed522399b232976ada" + integrity sha512-7RbOkZLT/3YG8CAYYM70ajRKIOgVxK/b4t9KNsPq+2uen99MGezfeglC8s1cs3vBNVVxCo0a2JbXg18bUd8eqA== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2005,7 +2112,22 @@ node-fetch "^2.6.0" open "^6.2.0" semver "^6.3.0" - shell-quote "1.6.1" + shell-quote "^1.7.3" + +"@react-native-community/cli-tools@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-7.0.1.tgz#73790d6ca2825e42a70a770c1b403a6777e690d6" + integrity sha512-0xra4hKNA5PR2zYVXsDMNiXMGaDNoNRYMY6eTP2aVIxQbqIcVMDWSyCA8wMWX5iOpMWg0cZGaQ6a77f3Rlb34g== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + lodash "^4.17.15" + mime "^2.4.1" + node-fetch "^2.6.0" + open "^6.2.0" + ora "^5.4.1" + semver "^6.3.0" + shell-quote "^1.7.3" "@react-native-community/cli-types@^6.0.0": version "6.0.0" @@ -2014,16 +2136,16 @@ dependencies: ora "^3.4.0" -"@react-native-community/cli@^6.0.0": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-6.3.1.tgz#b5194a3a008cd7c76c79aaa93ce605d314e5bfd2" - integrity sha512-UQ77AkGvPzdwJt6qhYXUyDMP1v2rdCcIlrhU48FOcAhGX+N/LCL9Cp/Ic6CkiiSHJdktbgiEEJ2srprXH8nzVg== - dependencies: - "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" - "@react-native-community/cli-hermes" "^6.3.0" - "@react-native-community/cli-plugin-metro" "^6.2.0" - "@react-native-community/cli-server-api" "^6.2.0" - "@react-native-community/cli-tools" "^6.2.0" +"@react-native-community/cli@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-7.0.4.tgz#cb4898bf9e3340ea812fa2bf194abd2429832752" + integrity sha512-W9nACtHWaLJZIP48cQmhQOnl5/7maoWE1Aji67MrLeIoB+ScNTJxaHfV4fMcklD6B6XEhaKokPACRZWm36zAog== + dependencies: + "@react-native-community/cli-debugger-ui" "^7.0.3" + "@react-native-community/cli-hermes" "^6.3.1" + "@react-native-community/cli-plugin-metro" "^7.0.4" + "@react-native-community/cli-server-api" "^7.0.4" + "@react-native-community/cli-tools" "^6.2.1" "@react-native-community/cli-types" "^6.0.0" appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2090,6 +2212,11 @@ resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== +"@react-native/normalize-color@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" + integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== + "@react-native/normalize-color@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567" @@ -2378,17 +2505,10 @@ dependencies: "@types/react" "*" -"@types/react-native@^0.66.1": - version "0.66.25" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.25.tgz#0a10458e28d88bb04a19b2a911b6cfe73835dcfe" - integrity sha512-PChgvdSNebNLsp+0F9hElID2u1JMkOMme5zE3zrHeh156HN5y+tzYqyzDFCor1d2/HDah+St2zQavt8nfWfuMQ== - dependencies: - "@types/react" "^17" - -"@types/react-native@^0.67.0": - version "0.67.17" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.67.17.tgz#afebc3fff1d6314840c13b7936e17fa350eb7aae" - integrity sha512-HYo9XbYPwyf5L7FWhRjawbDQ4ma5k/bEzxrpDjG2olwLbXR/IR5ZghCmUUIcEtHB9KDg0QIAs+WriddtOKVmFg== +"@types/react-native@^0.68.0", "@types/react-native@^0.68.1": + version "0.68.10" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.68.10.tgz#211b9e05d0f97c3f7239081634aa643bec85c6f9" + integrity sha512-BFmi9wERGJutVg0rgkS63gV2w8yPoug2PeF3SmeOkW3c5TbfFLI74iPpAMu/wxcJSnlEuwkMp6RXatZZe8fulg== dependencies: "@types/react" "^17" @@ -2765,11 +2885,6 @@ array-back@^4.0.1: resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - array-find-index@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -2797,16 +2912,6 @@ array-includes@^3.1.6: get-intrinsic "^1.1.3" is-string "^1.0.7" -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -3092,7 +3197,7 @@ big-integer@1.6.x: resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== -bl@^4.0.3: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -3113,10 +3218,10 @@ bplist-creator@0.1.0: dependencies: stream-buffers "2.2.x" -bplist-parser@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.0.tgz#ba50666370f61bbf94881636cd9f7d23c5286090" - integrity sha512-zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA== +bplist-parser@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz#e1c90b2ca2a9f9474cc72f6862bbf3fee8341fd1" + integrity sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA== dependencies: big-integer "1.6.x" @@ -3290,7 +3395,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3323,6 +3428,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" + integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== + cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -3345,11 +3455,23 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + cli-spinners@^2.0.0: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -3445,11 +3567,6 @@ colorette@^1.0.7: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3818,6 +3935,15 @@ deprecated-prop-type@^1.0.0: dependencies: warning "4.0.1" +deprecated-react-native-prop-types@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" + integrity sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA== + dependencies: + "@react-native/normalize-color" "*" + invariant "*" + prop-types "*" + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -4702,7 +4828,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.1.2: +fsevents@^2.1.2, fsevents@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -4906,7 +5032,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== -graceful-fs@^4.2.4: +graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -5003,15 +5129,22 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hermes-engine@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.9.0.tgz#84d9cfe84e8f6b1b2020d6e71b350cec84ed982f" - integrity sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw== +hermes-engine@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.11.0.tgz#bb224730d230a02a5af02c4e090d1f52d57dd3db" + integrity sha512-7aMUlZja2IyLYAcZ69NBnwJAR5ZOYlSllj0oMpx08a8HzxHOys0eKCzfphrf6D0vX1JGO1QQvVsQKe6TkYherw== + +hermes-estree@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.5.0.tgz#36432a2b12f01b217244da098924efdfdfc12327" + integrity sha512-1h8rvG23HhIR5K6Kt0e5C7BC72J1Ath/8MmSta49vxXp/j6wl7IMHvIRFYBQr35tWnQY97dSGR2uoAJ5pHUQkg== -hermes-parser@0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.4.7.tgz#410f5129d57183784d205a0538e6fbdcf614c9ea" - integrity sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag== +hermes-parser@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.5.0.tgz#8b678dd8b29a08b57cbaf60adba4896494c59a53" + integrity sha512-ARnJBScKAkkq8j3BHrNGBUv/4cSpZNbKDsVizEtzmsFeqC67Dopa5s4XRe+e3wN52Dh5Mj2kDB5wJvhcxwDkPg== + dependencies: + hermes-estree "0.5.0" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -5193,7 +5326,7 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -invariant@2.2.4, invariant@^2.2.4: +invariant@*, invariant@2.2.4, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -5366,6 +5499,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -5461,6 +5599,11 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-weakref@^1.0.1, is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -5674,7 +5817,7 @@ jest-get-type@^26.3.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.5.2, jest-haste-map@^26.6.2: +jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== @@ -5695,6 +5838,26 @@ jest-haste-map@^26.5.2, jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" +jest-haste-map@^27.3.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + jest-jasmine2@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" @@ -5770,6 +5933,11 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + jest-resolve-dependencies@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" @@ -5860,6 +6028,14 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + jest-snapshot@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" @@ -5894,6 +6070,18 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-validate@^26.5.2, jest-validate@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" @@ -5928,6 +6116,15 @@ jest-worker@^26.0.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jest@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" @@ -6004,29 +6201,29 @@ jsc-android@^250230.2.1: resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-250230.2.1.tgz#3790313a970586a03ab0ad47defbc84df54f1b83" integrity sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q== -jscodeshift@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f" - integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g== - dependencies: - "@babel/core" "^7.1.6" - "@babel/parser" "^7.1.6" - "@babel/plugin-proposal-class-properties" "^7.1.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0" - "@babel/plugin-proposal-optional-chaining" "^7.1.0" - "@babel/plugin-transform-modules-commonjs" "^7.1.0" - "@babel/preset-flow" "^7.0.0" - "@babel/preset-typescript" "^7.1.0" - "@babel/register" "^7.0.0" +jscodeshift@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.13.1.tgz#69bfe51e54c831296380585c6d9e733512aecdef" + integrity sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ== + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" babel-core "^7.0.0-bridge.0" - colors "^1.1.2" + chalk "^4.1.2" flow-parser "0.*" graceful-fs "^4.2.4" micromatch "^3.1.10" neo-async "^2.5.0" node-dir "^0.1.17" - recast "^0.20.3" - temp "^0.8.1" + recast "^0.20.4" + temp "^0.8.4" write-file-atomic "^2.3.0" jsdom@^16.4.0: @@ -6125,11 +6322,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.2.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" @@ -6280,6 +6472,14 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + logkitty@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -6378,91 +6578,77 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metro-babel-register@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.66.2.tgz#c6bbe36c7a77590687ccd74b425dc020d17d05af" - integrity sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg== +metro-babel-transformer@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.67.0.tgz#42fe82af9953e5c62d9a8d7d544eb7be9020dd18" + integrity sha512-SBqc4nq/dgsPNFm+mpWcQQzJaXnh0nrfz2pSnZC4i6zMtIakrTWb8SQ78jOU1FZVEZ3nu9xCYVHS9Tbr/LoEuw== dependencies: "@babel/core" "^7.14.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/register" "^7.0.0" - escape-string-regexp "^1.0.5" - -metro-babel-transformer@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz#fce0a3e314d28a5e7141c135665e1cc9b8e7ce86" - integrity sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw== - dependencies: - "@babel/core" "^7.14.0" - hermes-parser "0.4.7" - metro-source-map "0.66.2" + hermes-parser "0.5.0" + metro-source-map "0.67.0" nullthrows "^1.1.1" -metro-cache-key@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.66.2.tgz#d6463d2a53e887a38419d523962cc24ea0e780b4" - integrity sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ== +metro-cache-key@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.67.0.tgz#4df6a73cced199e1bddd0f3454bb931a27141eeb" + integrity sha512-FNJe5Rcb2uzY6G6tsqCf0RV4t2rCeX6vSHBxmP7k+4aI4NqX4evtPI0K82r221nBzm5DqNWCURZ0RYUT6jZMGA== -metro-cache@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.66.2.tgz#e0af4e0a319898f7d42a980f7ee5da153fcfd019" - integrity sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ== +metro-cache@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.67.0.tgz#928db5742542719677468c4d22ea29b71c7ec8fc" + integrity sha512-IY5dXiR76L75b2ue/mv+9vW8g5hdQJU6YEe81lj6gTSoUrhcONT0rzY+Gh5QOS2Kk6z9utZQMvd9PRKL9/635A== dependencies: - metro-core "0.66.2" + metro-core "0.67.0" mkdirp "^0.5.1" rimraf "^2.5.4" -metro-config@0.66.2, metro-config@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.66.2.tgz#e365acdb66ad0cda0182b9c9910760a97ee4293b" - integrity sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ== +metro-config@0.67.0, metro-config@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.67.0.tgz#5507d3b295bd10c87bd13dbe5a3033a357418786" + integrity sha512-ThAwUmzZwTbKyyrIn2bKIcJDPDBS0LKAbqJZQioflvBGfcgA21h3fdL3IxRmvCEl6OnkEWI0Tn1Z9w2GLAjf2g== dependencies: cosmiconfig "^5.0.5" jest-validate "^26.5.2" - metro "0.66.2" - metro-cache "0.66.2" - metro-core "0.66.2" - metro-runtime "0.66.2" + metro "0.67.0" + metro-cache "0.67.0" + metro-core "0.67.0" + metro-runtime "0.67.0" -metro-core@0.66.2, metro-core@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.66.2.tgz#ead776a17b3e5a307e6dc22259db30bf5c7e8490" - integrity sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA== +metro-core@0.67.0, metro-core@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.67.0.tgz#75066e11b4df220992abf9cd6200279dd87876c8" + integrity sha512-TOa/ShE1bUq83fGNfV6rFwyfZ288M8ydmWN3g9C2OW8emOHLhJslYD/SIU4DhDkP/99yaJluIALdZ2g0+pCrvQ== dependencies: - jest-haste-map "^26.5.2" + jest-haste-map "^27.3.1" lodash.throttle "^4.1.1" - metro-resolver "0.66.2" + metro-resolver "0.67.0" -metro-hermes-compiler@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz#30290748f83805faa601aa487632444915795823" - integrity sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA== +metro-hermes-compiler@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.67.0.tgz#9c1340f1882fbf535145868d0d28211ca15b0477" + integrity sha512-X5Pr1jC8/kO6d1EBDJ6yhtuc5euHX89UDNv8qdPJHAET03xfFnlojRPwOw6il2udAH20WLBv+F5M9VY+58zspQ== -metro-inspector-proxy@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz#a83c76bd2f2fd7b9240be92acf9a8b1d1404547a" - integrity sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg== +metro-inspector-proxy@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.67.0.tgz#22b360a837b07e9e2bc87a71af6154dd8fcc02a5" + integrity sha512-5Ubjk94qpNaU3OT2IZa4/dec09bauic1hzWms4czorBzDenkp4kYXG9/aWTmgQLtCk92H3Q8jKl1PQRxUSkrOQ== dependencies: connect "^3.6.5" debug "^2.2.0" - ws "^1.1.5" + ws "^7.5.1" yargs "^15.3.1" -metro-minify-uglify@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz#6061dbee4f61e6d5bb3c100e4379ff6f2e16e42b" - integrity sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q== +metro-minify-uglify@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.67.0.tgz#28a77dbd78d9e558dba8c2f31c2b9c6f939df966" + integrity sha512-4CmM5b3MTAmQ/yFEfsHOhD2SuBObB2YF6PKzXZc4agUsQVVtkrrNElaiWa8w26vrTzA9emwcyurxMf4Nl3lYPQ== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.66.2, metro-react-native-babel-preset@^0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz#fddebcf413ad4ea617d4f47f7c1da401052de734" - integrity sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ== +metro-react-native-babel-preset@0.67.0, metro-react-native-babel-preset@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz#53aec093f53a09b56236a9bb534d76658efcbec7" + integrity sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig== dependencies: "@babel/core" "^7.14.0" "@babel/plugin-proposal-class-properties" "^7.0.0" @@ -6505,61 +6691,61 @@ metro-react-native-babel-preset@0.66.2, metro-react-native-babel-preset@^0.66.2: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.66.2, metro-react-native-babel-transformer@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz#768f341e7c3d3d1c38189799c9884b90d1c32eb7" - integrity sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng== +metro-react-native-babel-transformer@0.67.0, metro-react-native-babel-transformer@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.67.0.tgz#756d32eb3c05cab3d72fcb1700f8fd09322bb07f" + integrity sha512-P0JT09n7T01epUtgL9mH6BPat3xn4JjBakl4lWHdL61cvEGcrxuIom1eoFFKkgU/K5AVLU4aCAttHS7nSFCcEQ== 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" + hermes-parser "0.5.0" + metro-babel-transformer "0.67.0" + metro-react-native-babel-preset "0.67.0" + metro-source-map "0.67.0" nullthrows "^1.1.1" -metro-resolver@0.66.2, metro-resolver@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.66.2.tgz#f743ddbe7a12dd137d1f7a555732cafcaea421f8" - integrity sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw== +metro-resolver@0.67.0, metro-resolver@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.67.0.tgz#8143c716f77e468d1d42eca805243706eb349959" + integrity sha512-d2KS/zAyOA/z/q4/ff41rAp+1txF4H6qItwpsls/RHStV2j6PqgRHUzq/3ga+VIeoUJntYJ8nGW3+3qSrhFlig== dependencies: absolute-path "^0.0.0" -metro-runtime@0.66.2, metro-runtime@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.66.2.tgz#3409ee957b949b6c7b72ef6ed2b9af9a4f4a910e" - integrity sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg== +metro-runtime@0.67.0, metro-runtime@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.67.0.tgz#a8888dfd06bcebbac3c99dcac7cd622510dd8ee0" + integrity sha512-IFtSL0JUt1xK3t9IoLflTDft82bjieSzdIJWLzrRzBMlesz8ox5bVmnpQbVQEwfYUpEOxbM3VOZauVbdCmXA7g== -metro-source-map@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.66.2.tgz#b5304a282a5d55fa67b599265e9cf3217175cdd7" - integrity sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ== +metro-source-map@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.67.0.tgz#e28db7253b9ca688e60d5710ebdccba60b45b2df" + integrity sha512-yxypInsRo3SfS00IgTuL6a2W2tfwLY//vA2E+GeqGBF5zTbJZAhwNGIEl8S87XXZhwzJcxf5/8LjJC1YDzabww== dependencies: "@babel/traverse" "^7.14.0" "@babel/types" "^7.0.0" invariant "^2.2.4" - metro-symbolicate "0.66.2" + metro-symbolicate "0.67.0" nullthrows "^1.1.1" - ob1 "0.66.2" + ob1 "0.67.0" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz#addd095ce5f77e73ca21ddb5dfb396ff5d4fa041" - integrity sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ== +metro-symbolicate@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.67.0.tgz#16729d05663d28176895244b3d932a898fca2b45" + integrity sha512-ZqVVcfa0xSz40eFzA5P8pCF3V6Tna9RU1prFzAJTa3j9dCGqwh0HTXC8AIkMtgX7hNdZrCJI1YipzUBlwkT0/A== dependencies: invariant "^2.2.4" - metro-source-map "0.66.2" + metro-source-map "0.67.0" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz#39dd044a23b1343e4f2d2ec34d08128cdf255ed4" - integrity sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w== +metro-transform-plugins@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.67.0.tgz#6122aa4e5e5f9a767cebcc5af6fd1695666683ce" + integrity sha512-DQFoSDIJdTMPDTUlKaCNJjEXiHGwFNneAF9wDSJ3luO5gigM7t7MuSaPzF4hpjmfmcfPnRhP6AEn9jcza2Sh8Q== dependencies: "@babel/core" "^7.14.0" "@babel/generator" "^7.14.0" @@ -6567,29 +6753,29 @@ metro-transform-plugins@0.66.2: "@babel/traverse" "^7.14.0" nullthrows "^1.1.1" -metro-transform-worker@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz#0a8455992132c479721accd52c9bd47deb77769e" - integrity sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw== +metro-transform-worker@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.67.0.tgz#5689553c25b0657aadefdf4ea2cd8dd06e18882a" + integrity sha512-29n+JdTb80ROiv/wDiBVlY/xRAF/nrjhp/Udv/XJl1DZb+x7JEiPxpbpthPhwwl+AYxVrostGB0W06WJ61hfiw== dependencies: "@babel/core" "^7.14.0" "@babel/generator" "^7.14.0" "@babel/parser" "^7.14.0" "@babel/types" "^7.0.0" babel-preset-fbjs "^3.4.0" - metro "0.66.2" - metro-babel-transformer "0.66.2" - metro-cache "0.66.2" - metro-cache-key "0.66.2" - metro-hermes-compiler "0.66.2" - metro-source-map "0.66.2" - metro-transform-plugins "0.66.2" + metro "0.67.0" + metro-babel-transformer "0.67.0" + metro-cache "0.67.0" + metro-cache-key "0.67.0" + metro-hermes-compiler "0.67.0" + metro-source-map "0.67.0" + metro-transform-plugins "0.67.0" nullthrows "^1.1.1" -metro@0.66.2, metro@^0.66.1: - version "0.66.2" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.66.2.tgz#f21759bf00995470e7577b5b88a5277963f24492" - integrity sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg== +metro@0.67.0, metro@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.67.0.tgz#8007a041d22de1cdb05184431c67eb7989eef6e0" + integrity sha512-DwuBGAFcAivoac/swz8Lp7Y5Bcge1tzT7T6K0nf1ubqJP8YzBUtyR4pkjEYVUzVu/NZf7O54kHSPVu1ibYzOBQ== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.14.0" @@ -6609,28 +6795,27 @@ metro@0.66.2, metro@^0.66.1: error-stack-parser "^2.0.6" fs-extra "^1.0.0" graceful-fs "^4.1.3" - hermes-parser "0.4.7" + hermes-parser "0.5.0" image-size "^0.6.0" invariant "^2.2.4" - jest-haste-map "^26.5.2" + jest-haste-map "^27.3.1" jest-worker "^26.0.0" lodash.throttle "^4.1.1" - metro-babel-register "0.66.2" - metro-babel-transformer "0.66.2" - metro-cache "0.66.2" - metro-cache-key "0.66.2" - metro-config "0.66.2" - metro-core "0.66.2" - metro-hermes-compiler "0.66.2" - metro-inspector-proxy "0.66.2" - metro-minify-uglify "0.66.2" - metro-react-native-babel-preset "0.66.2" - metro-resolver "0.66.2" - metro-runtime "0.66.2" - metro-source-map "0.66.2" - metro-symbolicate "0.66.2" - metro-transform-plugins "0.66.2" - metro-transform-worker "0.66.2" + metro-babel-transformer "0.67.0" + metro-cache "0.67.0" + metro-cache-key "0.67.0" + metro-config "0.67.0" + metro-core "0.67.0" + metro-hermes-compiler "0.67.0" + metro-inspector-proxy "0.67.0" + metro-minify-uglify "0.67.0" + metro-react-native-babel-preset "0.67.0" + metro-resolver "0.67.0" + metro-runtime "0.67.0" + metro-source-map "0.67.0" + metro-symbolicate "0.67.0" + metro-transform-plugins "0.67.0" + metro-transform-worker "0.67.0" mime-types "^2.1.27" mkdirp "^0.5.1" node-fetch "^2.2.0" @@ -6641,7 +6826,7 @@ metro@0.66.2, metro@^0.66.1: strip-ansi "^6.0.0" temp "0.8.3" throat "^5.0.0" - ws "^1.1.5" + ws "^7.5.1" yargs "^15.3.1" micromatch@^3.1.10, micromatch@^3.1.4: @@ -6999,10 +7184,10 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -ob1@0.66.2: - version "0.66.2" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.66.2.tgz#8caf548202cf2688944bae47db405a08bca17a61" - integrity sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA== +ob1@0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.67.0.tgz#91f104c90641b1af8c364fc82a4b2c7d0801072d" + integrity sha512-YvZtX8HKYackQ5PwdFIuuNFVsMChRPHvnARRRT0Vk59xsBvL5t9U1Ock3M1sYrKj+Gp73+0q9xcHLAxI+xLi5g== object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -7184,11 +7369,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= - ora@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" @@ -7201,6 +7381,21 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -7399,11 +7594,16 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.0, pirates@^4.0.1: +pirates@^4.0.1: version "4.0.4" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== +pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + pixelmatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" @@ -7432,7 +7632,7 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -plist@^3.0.2, plist@^3.0.4: +plist@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe" integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg== @@ -7440,6 +7640,14 @@ plist@^3.0.2, plist@^3.0.4: base64-js "^1.5.1" xmlbuilder "^9.0.7" +plist@^3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -7536,10 +7744,10 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -promise@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== +promise@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" @@ -7551,7 +7759,7 @@ prompts@^2.0.1, prompts@^2.4.0: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@*, prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -7617,10 +7825,10 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-devtools-core@4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.19.1.tgz#bc37c2ef2f48f28c6af4c7292be9dca1b63deace" - integrity sha512-2wJiGffPWK0KggBjVwnTaAk+Z3MSxKInHmdzPTrBh1mAarexsa93Kw+WMX88+XjN+TtYgAiLe9xeTqcO5FfJTw== +react-devtools-core@^4.23.0: + version "4.27.1" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.1.tgz#167aa174383c65786cbb7e965a5b39c702f0a2d3" + integrity sha512-qXhcxxDWiFmFAOq48jts9YQYe1+wVoUXzJTlY4jbaATzyio6dd6CUGu3dXBhREeVgpZ+y4kg6vFJzIOZh6vY2w== dependencies: shell-quote "^1.6.1" ws "^7" @@ -7671,13 +7879,14 @@ react-native-bootsplash@^4.3.3: jimp "^0.16.2" picocolors "^1.0.0" -react-native-codegen@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.8.tgz#b7796a54074139d956fff2862cf1285db43c891b" - integrity sha512-k/944+0XD+8l7zDaiKfYabyEKmAmyZgS1mj+4LcSRPyHnrjgCHKrh/Y6jM6kucQ6xU1+1uyMmF/dSkikxK8i+Q== +react-native-codegen@^0.0.18: + version "0.0.18" + resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.18.tgz#99d6623d65292e8ce3fdb1d133a358caaa2145e7" + integrity sha512-XPI9aVsFy3dvgDZvyGWrFnknNiyb22kg5nHgxa0vjWTH9ENLBgVRZt9A64xHZ8BYihH+gl0p/1JNOCIEUzRPBg== dependencies: + "@babel/parser" "^7.14.0" flow-parser "^0.121.0" - jscodeshift "^0.11.0" + jscodeshift "^0.13.1" nullthrows "^1.1.1" react-native-dotenv@^3.4.2: @@ -7715,6 +7924,11 @@ react-native-get-random-values@^1.8.0: dependencies: fast-base64-decode "^1.0.0" +react-native-gradle-plugin@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.0.6.tgz#b61a9234ad2f61430937911003cddd7e15c72b45" + integrity sha512-eIlgtsmDp1jLC24dRn43hB3kEcZVqx6DUQbR0N1ABXGnMEafm9I3V3dUUeD1vh+Dy5WqijSoEwLNUPLgu5zDMg== + react-native-haptic-feedback@^1.14.0: version "1.14.0" resolved "https://registry.yarnpkg.com/react-native-haptic-feedback/-/react-native-haptic-feedback-1.14.0.tgz#b50f49dedda4980b3c37c5780823f753cf3ee717" @@ -7803,39 +8017,41 @@ react-native-webview@^11.23.1: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.67.5: - version "0.67.5" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.67.5.tgz#9f2aeabf0766fb4bd5385685f4f4f2406bcdf819" - integrity sha512-/xEksthqImZGDfcqzEmbOw0KRkp9/x+cC8T8uTHhSKLLa8pOFLGdF190UOjnLammGmAmFy0+ZcJf0Ujm53IGeA== +react-native@0.68.5: + version "0.68.5" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.68.5.tgz#8ba7389e00b757c59b6ea23bf38303d52367d155" + integrity sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ== 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-community/cli" "^7.0.3" + "@react-native-community/cli-platform-android" "^7.0.1" + "@react-native-community/cli-platform-ios" "^7.0.1" "@react-native/assets" "1.0.0" "@react-native/normalize-color" "2.0.0" "@react-native/polyfills" "2.0.0" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" + deprecated-react-native-prop-types "^2.3.0" event-target-shim "^5.0.1" - hermes-engine "~0.9.0" + hermes-engine "~0.11.0" invariant "^2.2.4" jsc-android "^250230.2.1" - metro-react-native-babel-transformer "0.66.2" - metro-runtime "0.66.2" - metro-source-map "0.66.2" + metro-react-native-babel-transformer "0.67.0" + metro-runtime "0.67.0" + metro-source-map "0.67.0" nullthrows "^1.1.1" pretty-format "^26.5.2" - promise "^8.0.3" - prop-types "^15.7.2" - react-devtools-core "4.19.1" - react-native-codegen "^0.0.8" + promise "^8.2.0" + react-devtools-core "^4.23.0" + react-native-codegen "^0.0.18" + react-native-gradle-plugin "^0.0.6" react-refresh "^0.4.0" + react-shallow-renderer "16.14.1" regenerator-runtime "^0.13.2" scheduler "^0.20.2" stacktrace-parser "^0.1.3" - use-subscription "^1.0.0" + use-subscription ">=1.0.0 <1.6.0" whatwg-fetch "^3.0.0" ws "^6.1.4" @@ -7856,7 +8072,7 @@ react-refresh@^0.4.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA== -react-shallow-renderer@^16.13.1: +react-shallow-renderer@16.14.1, react-shallow-renderer@^16.13.1: version "16.14.1" resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz#bf0d02df8a519a558fd9b8215442efa5c840e124" integrity sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg== @@ -7950,7 +8166,7 @@ readline@^1.3.0: resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" integrity sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw= -recast@^0.20.3: +recast@^0.20.4: version "0.20.5" resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== @@ -8161,6 +8377,14 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -8426,21 +8650,16 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - shell-quote@^1.6.1: version "1.7.3" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== +shell-quote@^1.7.3: + version "1.7.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -8474,14 +8693,14 @@ simple-get@^4.0.0, simple-get@^4.0.1: once "^1.3.1" simple-concat "^1.0.0" -simple-plist@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.0.tgz#f451997663eafd8ea6bad353a01caf49ef186d43" - integrity sha512-uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg== +simple-plist@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz#16e1d8f62c6c9b691b8383127663d834112fb017" + integrity sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw== dependencies: bplist-creator "0.1.0" - bplist-parser "0.3.0" - plist "^3.0.4" + bplist-parser "0.3.1" + plist "^3.0.5" simple-swizzle@^0.2.2: version "0.2.2" @@ -8862,6 +9081,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -8924,7 +9150,7 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" -temp@^0.8.1: +temp@^0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== @@ -9188,11 +9414,6 @@ uglify-es@^3.1.9: commander "~2.13.0" source-map "~0.6.1" -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -9309,7 +9530,7 @@ use-persisted-state@^0.3.0: dependencies: "@use-it/event-listener" "^0.1.2" -use-subscription@^1.0.0: +"use-subscription@>=1.0.0 <1.6.0": version "1.5.1" resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== @@ -9343,10 +9564,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== uuid@^8.3.0: version "8.3.2" @@ -9559,14 +9780,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^1.1.0, ws@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w== - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@^6.1.4: version "6.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" @@ -9579,13 +9792,18 @@ ws@^7, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== -xcode@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe" - integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ== +ws@^7.5.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xcode@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c" + integrity sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA== dependencies: - simple-plist "^1.0.0" - uuid "^3.3.2" + simple-plist "^1.1.0" + uuid "^7.0.3" xhr@^2.0.1: version "2.6.0" @@ -9615,6 +9833,11 @@ xml2js@^0.4.5: sax ">=0.6.0" xmlbuilder "~11.0.0" +xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + xmlbuilder@^9.0.7: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"