diff --git a/packages/app-mobile/.gitignore b/packages/app-mobile/.gitignore index 5761a9c9ca..4482323fa8 100644 --- a/packages/app-mobile/.gitignore +++ b/packages/app-mobile/.gitignore @@ -56,8 +56,9 @@ buck-out/ # Bundle artifact *.jsbundle -# CocoaPods +# Ruby / CocoaPods /ios/Pods/ +/vendor/bundle/ # Custom lib/csstojs/ diff --git a/packages/app-mobile/android/app/build.gradle b/packages/app-mobile/android/app/build.gradle index 85185e2452..87e9a2910d 100644 --- a/packages/app-mobile/android/app/build.gradle +++ b/packages/app-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 @@ -124,9 +125,12 @@ def jscFlavor = 'org.webkit:android-jsc-intl:+' 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"] +} android { compileSdkVersion rootProject.ext.compileSdkVersion @@ -148,22 +152,95 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 2097676 versionName "2.10.0" - ndk { - abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" - } + // ndk { + // abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + // } // https://github.com/react-native-community/react-native-camera/issues/2138 missingDimensionStrategy 'react-native-camera', 'general' // Needed to fix: The number of method references in a .dex file cannot exceed 64K multiDexEnabled true + + 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 "joplin_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()) + } + } + } } + + 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 "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + include (*reactNativeArchitectures()) } } signingConfigs { @@ -185,11 +262,6 @@ android { buildTypes { debug { signingConfig signingConfigs.debug - if (nativeArchitectures) { - ndk { - abiFilters nativeArchitectures.split(',') - } - } } release { // Caution! In production, you need to generate your own keystore file. @@ -235,6 +307,7 @@ dependencies { } implementation fileTree(dir: "libs", include: ["*.jar"]) + //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules @@ -265,6 +338,18 @@ dependencies { implementation 'com.android.support:multidex:2.0.1' } +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) { @@ -274,3 +359,11 @@ task copyDownloadableDepsToLibs(type: Copy) { apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" + +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" +} diff --git a/packages/app-mobile/android/app/src/debug/AndroidManifest.xml b/packages/app-mobile/android/app/src/debug/AndroidManifest.xml index b2f3ad9fce..4b185bc159 100644 --- a/packages/app-mobile/android/app/src/debug/AndroidManifest.xml +++ b/packages/app-mobile/android/app/src/debug/AndroidManifest.xml @@ -8,6 +8,6 @@ android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning"> - + diff --git a/packages/app-mobile/android/app/src/debug/java/net/cozic/joplin/ReactNativeFlipper.java b/packages/app-mobile/android/app/src/debug/java/net/cozic/joplin/ReactNativeFlipper.java index ce742a4e94..02546faa08 100644 --- a/packages/app-mobile/android/app/src/debug/java/net/cozic/joplin/ReactNativeFlipper.java +++ b/packages/app-mobile/android/app/src/debug/java/net/cozic/joplin/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.FlipperOkhttpInterceptor; import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; import com.facebook.flipper.plugins.react.ReactFlipperPlugin; import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceEventListener; import com.facebook.react.ReactInstanceManager; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.network.NetworkingModule; @@ -51,7 +52,7 @@ public class ReactNativeFlipper { ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); if (reactContext == null) { reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceManager.ReactInstanceEventListener() { + new ReactInstanceEventListener() { @Override public void onReactContextInitialized(ReactContext reactContext) { reactInstanceManager.removeReactInstanceEventListener(this); diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml index 40ef921646..c590d1a7b4 100644 --- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml @@ -70,7 +70,8 @@ android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustResize" + android:exported="true"> @@ -85,7 +86,8 @@ android:label="@string/app_name" android:excludeFromRecents="true" android:launchMode="singleTask" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:exported="true"> diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.java b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.java index 6b2b80b5cc..67d53c054a 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.java +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.java @@ -1,6 +1,8 @@ package net.cozic.joplin; import com.facebook.react.ReactActivity; +import com.facebook.react.ReactActivityDelegate; +import com.facebook.react.ReactRootView; public class MainActivity extends ReactActivity { @@ -12,4 +14,25 @@ public class MainActivity extends ReactActivity { protected String getMainComponentName() { return "Joplin"; } + + /** + * 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; + } + } } diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.java b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.java index 3ebccf791e..e5740b5868 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.java +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.java @@ -12,7 +12,9 @@ import com.facebook.react.ReactApplication; 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 net.cozic.joplin.newarchitecture.MainApplicationReactNativeHost; import net.cozic.joplin.share.SharePackage; import net.cozic.joplin.ssl.SslPackage; @@ -55,15 +57,25 @@ public class MainApplication extends Application implements ReactApplication { } }; + 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(); + // If you opted-in for the New Architecture, we enable the TurboModule system + ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; + // To try to fix the error "Row too big to fit into CursorWindow" // https://github.com/andpor/react-native-sqlite-storage/issues/364#issuecomment-526423153 // https://github.com/laurent22/joplin/issues/1767#issuecomment-515617991 diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/MainApplicationReactNativeHost.java b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/MainApplicationReactNativeHost.java new file mode 100644 index 0000000000..f7953ef866 --- /dev/null +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/MainApplicationReactNativeHost.java @@ -0,0 +1,116 @@ +package net.cozic.joplin.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 net.cozic.joplin.BuildConfig; +import net.cozic.joplin.newarchitecture.components.MainComponentsRegistry; +import net.cozic.joplin.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/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/components/MainComponentsRegistry.java b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/components/MainComponentsRegistry.java new file mode 100644 index 0000000000..9eef078a5b --- /dev/null +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/components/MainComponentsRegistry.java @@ -0,0 +1,36 @@ +package net.cozic.joplin.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/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java new file mode 100644 index 0000000000..c9deb63769 --- /dev/null +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java @@ -0,0 +1,48 @@ +package net.cozic.joplin.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("joplin_appmodules"); + sIsSoLibraryLoaded = true; + } + } +} \ No newline at end of file diff --git a/packages/app-mobile/android/app/src/main/jni/Android.mk b/packages/app-mobile/android/app/src/main/jni/Android.mk new file mode 100644 index 0000000000..38d9ad09cb --- /dev/null +++ b/packages/app-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 := joplin_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/app-mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/packages/app-mobile/android/app/src/main/jni/MainApplicationModuleProvider.cpp new file mode 100644 index 0000000000..39de093d11 --- /dev/null +++ b/packages/app-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/app-mobile/android/app/src/main/jni/MainApplicationModuleProvider.h b/packages/app-mobile/android/app/src/main/jni/MainApplicationModuleProvider.h new file mode 100644 index 0000000000..2f2fb24a3a --- /dev/null +++ b/packages/app-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/app-mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/packages/app-mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp new file mode 100644 index 0000000000..f2e4714dc9 --- /dev/null +++ b/packages/app-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/app-mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/packages/app-mobile/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h new file mode 100644 index 0000000000..ad69a57ca5 --- /dev/null +++ b/packages/app-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 = + "Lnet/cozic/joplin/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/app-mobile/android/app/src/main/jni/MainComponentsRegistry.cpp b/packages/app-mobile/android/app/src/main/jni/MainComponentsRegistry.cpp new file mode 100644 index 0000000000..c5188f4dc7 --- /dev/null +++ b/packages/app-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/app-mobile/android/app/src/main/jni/MainComponentsRegistry.h b/packages/app-mobile/android/app/src/main/jni/MainComponentsRegistry.h new file mode 100644 index 0000000000..1f734ab19d --- /dev/null +++ b/packages/app-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 = + "Lnet/cozic/joplin/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/app-mobile/android/app/src/main/jni/OnLoad.cpp b/packages/app-mobile/android/app/src/main/jni/OnLoad.cpp new file mode 100644 index 0000000000..ae1ef007d1 --- /dev/null +++ b/packages/app-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/app-mobile/android/build.gradle b/packages/app-mobile/android/build.gradle index 3be1031fb2..93b6402012 100644 --- a/packages/app-mobile/android/build.gradle +++ b/packages/app-mobile/android/build.gradle @@ -2,18 +2,28 @@ buildscript { ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" minSdkVersion = 21 - compileSdkVersion = 30 - targetSdkVersion = 30 - ndkVersion = "21.4.7075529" + + compileSdkVersion = 31 + targetSdkVersion = 31 + + 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.android.tools.build:gradle:7.0.4") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath("de.undercouch:gradle-download-task:4.1.2") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/packages/app-mobile/android/gradle.properties b/packages/app-mobile/android/gradle.properties index 58c6087752..9fcd3e11f2 100644 --- a/packages/app-mobile/android/gradle.properties +++ b/packages/app-mobile/android/gradle.properties @@ -9,9 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# DDefault value: -Xmx1024m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit @@ -26,7 +25,18 @@ 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 # To fix this error: # diff --git a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar index f3d88b1c2f..7454180f2a 100644 Binary files a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar and b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties index a0f7639f7d..669386b870 100644 --- a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/app-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/app-mobile/android/gradlew b/packages/app-mobile/android/gradlew index 2fe81a7d95..a58591e97b 100755 --- a/packages/app-mobile/android/gradlew +++ b/packages/app-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,78 +17,113 @@ # ############################################################################## -## -## 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 + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + 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 @@ -97,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 @@ -105,79 +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 -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +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 -# 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, 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. -# 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" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) -exec "$JAVACMD" "$@" + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/packages/app-mobile/android/settings.gradle b/packages/app-mobile/android/settings.gradle index 64679a745e..060030b35b 100644 --- a/packages/app-mobile/android/settings.gradle +++ b/packages/app-mobile/android/settings.gradle @@ -1,3 +1,8 @@ rootProject.name = 'Joplin' 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/app-mobile/ios/Joplin.xcodeproj/project.pbxproj b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj index 985f81aecf..d86e1fcaa3 100644 --- a/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj +++ b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj @@ -7,7 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 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 */; }; 46E31F54C547C341F605BB66 /* libPods-Joplin.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A5E1CD825FABD6C4E704EA54 /* libPods-Joplin.a */; }; @@ -51,7 +51,7 @@ 09056573D4C040FBD5FEB93A /* Pods-Joplin-JoplinTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Joplin-JoplinTests.debug.xcconfig"; path = "Target Support Files/Pods-Joplin-JoplinTests/Pods-Joplin-JoplinTests.debug.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Joplin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Joplin.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Joplin/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Joplin/AppDelegate.m; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.mm; path = Joplin/AppDelegate.mm; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Joplin/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Joplin/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Joplin/main.m; sourceTree = ""; }; @@ -125,7 +125,7 @@ AE7945E6259C9AEE00051BE2 /* Joplin.entitlements */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, @@ -449,7 +449,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 4D122473270878D700DE23E8 /* wtf.swift in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, ); diff --git a/packages/app-mobile/ios/Joplin/AppDelegate.m b/packages/app-mobile/ios/Joplin/AppDelegate.m deleted file mode 100644 index cda0d25af3..0000000000 --- a/packages/app-mobile/ios/Joplin/AppDelegate.m +++ /dev/null @@ -1,115 +0,0 @@ -#import "AppDelegate.h" - -#import -#import -#import -#import -#import -#import -#import "RNQuickActionManager.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 - -// =================================================== -// BEGIN react-native-quick-actions -// =================================================== -- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL succeeded)) completionHandler { - [RNQuickActionManager onQuickActionPress:shortcutItem completionHandler:completionHandler]; -} -// =================================================== -// END react-native-quick-actions -// =================================================== - - - - -// =================================================== -// BEGIN react-native-push-notification-ios -// =================================================== - -// IOS 10+ Required for localNotification event -- (void)userNotificationCenter:(UNUserNotificationCenter *)center -didReceiveNotificationResponse:(UNNotificationResponse *)response - withCompletionHandler:(void (^)(void))completionHandler -{ - [RNCPushNotificationIOS didReceiveNotificationResponse:response]; - completionHandler(); -} -// IOS 4-10 Required for the localNotification event. -- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification -{ - [RNCPushNotificationIOS didReceiveLocalNotification:notification]; -} - -// =================================================== -// END react-native-push-notification-ios -// =================================================== - - - - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ -// #ifdef FB_SONARKIT_ENABLED -// InitializeFlipper(application); -// #endif - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge - moduleName:@"Joplin" - 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]; - - // BEGIN react-native-push-notification-ios - UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; - center.delegate = self; - // END react-native-push-notification-ios - - 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 *)app openURL:(NSURL *)url options:(NSDictionary *)options { - return [RCTLinkingManager application:app openURL:url options:options]; -} - -@end diff --git a/packages/app-mobile/ios/Joplin/AppDelegate.mm b/packages/app-mobile/ios/Joplin/AppDelegate.mm new file mode 100644 index 0000000000..22cf146beb --- /dev/null +++ b/packages/app-mobile/ios/Joplin/AppDelegate.mm @@ -0,0 +1,156 @@ +#import "AppDelegate.h" + +#import +#import +#import + +#import + +#import +#import "RNQuickActionManager.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 + +// =================================================== +// BEGIN react-native-quick-actions +// =================================================== +- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL succeeded)) completionHandler { + [RNQuickActionManager onQuickActionPress:shortcutItem completionHandler:completionHandler]; +} +// =================================================== +// END react-native-quick-actions +// =================================================== + + + + +// =================================================== +// BEGIN react-native-push-notification-ios +// =================================================== + +// IOS 10+ Required for localNotification event +- (void)userNotificationCenter:(UNUserNotificationCenter *)center +didReceiveNotificationResponse:(UNNotificationResponse *)response + withCompletionHandler:(void (^)(void))completionHandler +{ + [RNCPushNotificationIOS didReceiveNotificationResponse:response]; + completionHandler(); +} +// IOS 4-10 Required for the localNotification event. +- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification +{ + [RNCPushNotificationIOS didReceiveLocalNotification:notification]; +} + +// =================================================== +// END react-native-push-notification-ios +// =================================================== + + + + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + 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, @"Joplin", 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]; + + // BEGIN react-native-push-notification-ios + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + center.delegate = self; + // END react-native-push-notification-ios + + 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/app-mobile/ios/Joplin/main.m b/packages/app-mobile/ios/Joplin/main.m index b1df44b953..d645c7246c 100644 --- a/packages/app-mobile/ios/Joplin/main.m +++ b/packages/app-mobile/ios/Joplin/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/app-mobile/ios/Podfile b/packages/app-mobile/ios/Podfile index d225d4c471..b1f212b0c1 100644 --- a/packages/app-mobile/ios/Podfile +++ b/packages/app-mobile/ios/Podfile @@ -10,14 +10,21 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ # 2021-12-17: Changed back to 11.0 because after the fix it works with at least # 12.x, and probably 11.0 too, which is the version supported by React Native. platform :ios, '11.0' +install! 'cocoapods', :deterministic_uuids => false target 'Joplin' 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 => flags[:hermes_enabled], + :fabric_enabled => flags[:fabric_enabled], + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." ) pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons' diff --git a/packages/app-mobile/ios/Podfile.lock b/packages/app-mobile/ios/Podfile.lock index 613c67904b..5798d48e15 100644 --- a/packages/app-mobile/ios/Podfile.lock +++ b/packages/app-mobile/ios/Podfile.lock @@ -1,14 +1,14 @@ PODS: - boost (1.76.0) - 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) + - RCTRequired (= 0.68.5) + - RCTTypeSafety (= 0.68.5) + - React-Core (= 0.68.5) + - React-jsi (= 0.68.5) + - ReactCommon/turbomodule/core (= 0.68.5) - fmt (6.2.1) - glog (0.3.5) - JoplinCommonShareExtension (1.0.0) @@ -26,192 +26,201 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCTRequired (0.67.5) - - RCTTypeSafety (0.67.5): - - FBLazyVector (= 0.67.5) + - 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-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-alarm-notification (1.0.6): - React @@ -245,71 +254,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 - RNCClipboard (1.5.1): @@ -345,6 +354,7 @@ DEPENDENCIES: - 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/`) @@ -420,6 +430,8 @@ 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: @@ -510,24 +522,25 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: a7c83b31436843459a1961bfd74b96033dc77234 DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 - FBLazyVector: d2db9d00883282819d03bbd401b2ad4360d47580 - FBReactNativeSpec: 94da4d84ba3b1acf459103320882daa481a2b62d + FBLazyVector: 2b47ff52037bd9ae07cc9b051c9975797814b736 + FBReactNativeSpec: 0e0d384ef17a33b385f13f0c7f97702c7cd17858 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 85ecdd10ee8d8ec362ef519a6a45ff9aa27b2e85 + glog: 476ee3e89abb49e07f822b48323c51c57124b572 JoplinCommonShareExtension: a8b60b02704d85a7305627912c0240e94af78db7 JoplinRNShareExtension: 485f3e6dad83b7b77f1572eabc249f869ee55c02 - RCT-Folly: 803a9cfd78114b2ec0f140cfa6fa2a6bafb2d685 - 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 + RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8 + RCTRequired: 0f06b6068f530932d10e1a01a5352fad4eaacb74 + RCTTypeSafety: b0ee81f10ef1b7d977605a2b266823dabd565e65 + React: 3becd12bd51ea8a43bdde7e09d0f40fba7820e03 + React-callinvoker: 11abfff50e6bf7a55b3a90b4dc2187f71f224593 + React-Codegen: f8946ce0768fb8e92e092e30944489c4b2955b2d + React-Core: 203cdb6ee2657b198d97d41031c249161060e6ca + React-CoreModules: 6eb0c06a4a223fde2cb6a8d0f44f58b67e808942 + React-cxxreact: afb0c6c07d19adbd850747fedeac20c6832d40b9 + React-jsi: 14d37a6db2af2c1a49f6f5c2e4ee667c364ae45c + React-jsiexecutor: 45c0496ca8cef6b02d9fa0274c25cf458fe91a56 + React-jsinspector: eb202e43b3879aba9a14f3f65788aec85d4e1ea9 + React-logger: 98f663b292a60967ebbc6d803ae96c1381183b6d react-native-alarm-notification: 88c751922c791cc628bd7efb09bff18c8f178a5d react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-document-picker: 958e2bc82e128be69055be261aeac8d872c8d34c @@ -541,18 +554,18 @@ SPEC CHECKSUMS: react-native-sqlite-storage: f6d515e1c446d1e6d026aa5352908a25d4de3261 react-native-version-info: a106f23009ac0db4ee00de39574eb546682579b9 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 RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 RNCPushNotificationIOS: 87b8d16d3ede4532745e05b03c42cff33a36cc45 @@ -563,8 +576,8 @@ SPEC CHECKSUMS: RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef RNShare: d93e00e906e6174657f6370b480437e4702bc86e RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 - Yoga: 099a946cbf84c9b32ffdc4278d72db26710ecf92 + Yoga: c4d61225a466f250c35c1ee78d2d0b3d41fe661c -PODFILE CHECKSUM: 3503e0565874e79261edc56dcddb35b3a49a2984 +PODFILE CHECKSUM: 53dddf84c9a411ea75fb783cdc7cf103c4b0e7d8 COCOAPODS: 1.11.3 diff --git a/packages/app-mobile/package.json b/packages/app-mobile/package.json index 4df65c7f29..7c65e6c524 100644 --- a/packages/app-mobile/package.json +++ b/packages/app-mobile/package.json @@ -38,7 +38,7 @@ "prop-types": "15.8.1", "punycode": "2.1.1", "react": "18.2.0", - "react-native": "0.67.5", + "react-native": "0.68.5", "react-native-action-button": "2.8.5", "react-native-camera": "4.2.1", "react-native-dialogbox": "0.6.10", @@ -100,7 +100,7 @@ "jest-environment-jsdom": "29.3.1", "jetifier": "2.0.0", "jsdom": "20.0.0", - "metro-react-native-babel-preset": "0.66.2", + "metro-react-native-babel-preset": "0.67.0", "nodemon": "2.0.20", "ts-jest": "29.0.3", "ts-loader": "9.4.2", diff --git a/yarn.lock b/yarn.lock index eddfd00614..c01b290711 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1290,6 +1290,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.20.5": + version: 7.20.10 + resolution: "@babel/compat-data@npm:7.20.10" + checksum: 6ed6c1bb6fc03c225d63b8611788cd976107d1692402b560ebffbf1fa53e63705f8625bb12e12d17ce7f7af34e61e1ca96c77858aac6f57010045271466200c0 + languageName: node + linkType: hard + "@babel/core@npm:7.16.0, @babel/core@npm:^7.1.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0": version: 7.16.0 resolution: "@babel/core@npm:7.16.0" @@ -1336,6 +1343,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.13.16": + version: 7.20.7 + resolution: "@babel/core@npm:7.20.7" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.20.7 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-module-transforms": ^7.20.7 + "@babel/helpers": ^7.20.7 + "@babel/parser": ^7.20.7 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.20.7 + "@babel/types": ^7.20.7 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.1 + semver: ^6.3.0 + checksum: f2714f15db24425145ca70b838adcd945aba7d1358ca2513615db6c3bdaebe5f8e4162c4c6c30f8dcab42bf634b0055d150414c0ecf52a3341bb5da3dde2d987 + languageName: node + linkType: hard + "@babel/core@npm:^7.5.5, @babel/core@npm:^7.7.5": version: 7.20.2 resolution: "@babel/core@npm:7.20.2" @@ -1403,6 +1433,17 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/generator@npm:7.20.7" + dependencies: + "@babel/types": ^7.20.7 + "@jridgewell/gen-mapping": ^0.3.2 + jsesc: ^2.5.1 + checksum: 84b6983ffdb50c80c1c2e3f3c32617a7133d8effd1065f3e0f9bba188a7d54ab42a4dd5e42b61b843c65f9dd1aa870036ff0f848ebd42707aaa8a2b6d31d04f5 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.16.0": version: 7.16.0 resolution: "@babel/helper-annotate-as-pure@npm:7.16.0" @@ -1473,6 +1514,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-compilation-targets@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-validator-option": ^7.18.6 + browserslist: ^4.21.3 + lru-cache: ^5.1.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.16.0": version: 7.16.0 resolution: "@babel/helper-create-class-features-plugin@npm:7.16.0" @@ -1489,6 +1545,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.20.7" + 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 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: fdbbfb532fc800a30b7c9d56203b80824f67dbc1acf1a2f52429e6e1ad0a3cd086c5c53031d78e8e23a5201018ecb23dc2d8cc955b2bd72c5338654d5679f847 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.16.0": version: 7.19.0 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.19.0" @@ -1609,6 +1682,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.20.7" + dependencies: + "@babel/types": ^7.20.7 + checksum: cec17aab7e964830b0146e575bd141127032319f26ed864a65b35abd75ad618d264d3e11449b9b4e29cfd95bb1a7e774afddd4884fdcc29c36ac9cbd2b66359f + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.0": version: 7.16.0 resolution: "@babel/helper-module-imports@npm:7.16.0" @@ -1659,6 +1741,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.20.7": + version: 7.20.11 + resolution: "@babel/helper-module-transforms@npm:7.20.11" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.19.1 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.20.10 + "@babel/types": ^7.20.7 + checksum: 29319ebafa693d48756c6ba0d871677bb0037e0da084fbe221a17c38d57093fc8aa38543c07d76e788266a937976e37ab4901971ca7f237c5ab45f524b9ecca0 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.20.2": version: 7.20.2 resolution: "@babel/helper-module-transforms@npm:7.20.2" @@ -1684,6 +1782,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.13.0, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.14.5 resolution: "@babel/helper-plugin-utils@npm:7.14.5" @@ -1728,6 +1835,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-replace-supers@npm:7.20.7" + 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 + checksum: b8e0087c9b0c1446e3c6f3f72b73b7e03559c6b570e2cfbe62c738676d9ebd8c369a708cf1a564ef88113b4330750a50232ee1131d303d478b7a5e65e46fbc7c + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.16.0": version: 7.16.0 resolution: "@babel/helper-simple-access@npm:7.16.0" @@ -1764,6 +1885,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": + version: 7.20.0 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" + dependencies: + "@babel/types": ^7.20.0 + checksum: 34da8c832d1c8a546e45d5c1d59755459ffe43629436707079989599b91e8c19e50e73af7a4bd09c95402d389266731b0d9c5f69e372d8ebd3a709c05c80d7dd + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.16.0": version: 7.16.0 resolution: "@babel/helper-split-export-declaration@npm:7.16.0" @@ -1869,6 +1999,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helpers@npm:7.20.7" + dependencies: + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.20.7 + "@babel/types": ^7.20.7 + checksum: 3fb10df3510ba7116a180d5fd983d0f558f7a65c3d599385dba991bff66b74174c88881bc12c2b3cf7284294fcac5b301ded49a8b0098bdf2ef61d0cad8010db + languageName: node + linkType: hard + "@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.16.0": version: 7.16.0 resolution: "@babel/highlight@npm:7.16.0" @@ -1900,6 +2041,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.13.16, @babel/parser@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/parser@npm:7.20.7" + bin: + parser: ./bin/babel-parser.js + checksum: 25b5266e3bd4be837092685f6b7ef886f1308ff72659a24342eb646ae5014f61ed1771ce8fc20636c890fcae19304fc72c069564ca6075207b7fbf3f75367275 + languageName: node + linkType: hard + "@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.20.1, @babel/parser@npm:^7.20.2": version: 7.20.3 resolution: "@babel/parser@npm:7.20.3" @@ -1930,6 +2080,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-class-properties@npm:^7.13.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + "@babel/plugin-proposal-export-default-from@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-proposal-export-default-from@npm:7.16.0" @@ -1954,6 +2116,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": + version: 7.18.6 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d + languageName: node + linkType: hard + "@babel/plugin-proposal-object-rest-spread@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.16.0" @@ -2009,6 +2183,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-optional-chaining@npm:^7.13.12": + version: 7.20.7 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.20.7" + 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 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 274b8932335bd064ca24cf1a4da2b2c20c92726d4bfa8b0cb5023857479b8481feef33505c16650c7b9239334e5c6959babc924816324c4cf223dd91c7ca79bc + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -2075,6 +2262,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-flow@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: abe82062b3eef14de7d2b3c0e4fecf80a3e796ca497e9df616d12dd250968abf71495ee85a955b43a6c827137203f0c409450cf792732ed0d6907c806580ea71 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -2207,6 +2405,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.20.0": + version: 7.20.0 + resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 + languageName: node + linkType: hard + "@babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.18.6 resolution: "@babel/plugin-syntax-typescript@npm:7.18.6" @@ -2338,6 +2547,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.18.6": + version: 7.19.0 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.19.0" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + "@babel/plugin-syntax-flow": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c35339bf80c2a2b9abb9e2ce0382e1d9cc3ef7db2af127f4ec3d184bad2aec3269f3fcac5fdcd565439732803acad72eb9e7d5a18e439221526fdc041c9e8e1e + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-transform-for-of@npm:7.16.0" @@ -2397,6 +2618,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8": + version: 7.20.11 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.20.11" + dependencies: + "@babel/helper-module-transforms": ^7.20.11 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-simple-access": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ddd0623e2ad4b5c0faaa0ae30d3407a3fa484d911c968ed33cfb1b339ac3691321c959db60b66dc136dbd67770fff586f7e48a7ce0d7d357f92d6ef6fb7ed1a7 + languageName: node + linkType: hard + "@babel/plugin-transform-object-assign@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-transform-object-assign@npm:7.16.0" @@ -2601,6 +2835,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.18.6": + version: 7.20.7 + resolution: "@babel/plugin-transform-typescript@npm:7.20.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-typescript": ^7.20.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ca569a1b8001e7e8971874656091789c6b3209f155c91c56bce82b545e43d09d156b4fcf2f0dfcdf7911a2c546c7090c2aff167a5692443f6f0382b358c233e0 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-transform-unicode-regex@npm:7.16.0" @@ -2626,6 +2873,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-flow@npm:^7.13.13": + version: 7.18.6 + resolution: "@babel/preset-flow@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-transform-flow-strip-types": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9100d4eab3402e6601e361a5b235e46d90cfd389c12db19e2a071e1082ca2a00c04bd47eb185ce68d8979e7c8f3e548cd5d61b86dcd701135468fb929c3aecb6 + languageName: node + linkType: hard + "@babel/preset-typescript@npm:^7.1.0": version: 7.16.0 resolution: "@babel/preset-typescript@npm:7.16.0" @@ -2639,6 +2899,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.13.0": + version: 7.18.6 + resolution: "@babel/preset-typescript@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-transform-typescript": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7fe0da5103eb72d3cf39cf3e138a794c8cdd19c0b38e3e101507eef519c46a87a0d6d0e8bc9e28a13ea2364001ebe7430b9d75758aab4c3c3a8db9a487b9dc7c + languageName: node + linkType: hard + "@babel/register@npm:^7.0.0": version: 7.16.0 resolution: "@babel/register@npm:7.16.0" @@ -2654,6 +2927,21 @@ __metadata: languageName: node linkType: hard +"@babel/register@npm:^7.13.16": + version: 7.18.9 + resolution: "@babel/register@npm:7.18.9" + dependencies: + clone-deep: ^4.0.1 + find-cache-dir: ^2.0.0 + make-dir: ^2.1.0 + pirates: ^4.0.5 + source-map-support: ^0.5.16 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4aeaff97e061a397f632659082ba86c539ef8194697b236d991c10d1c2ea8f73213d3b5b3b2c24625951a1ef726b7a7d2e70f70ffcb37f79ef0c1a745eebef21 + languageName: node + linkType: hard + "@babel/runtime@npm:7.16.3, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": version: 7.16.3 resolution: "@babel/runtime@npm:7.16.3" @@ -2714,6 +3002,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/template@npm:7.20.7" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e + languageName: node + linkType: hard + "@babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.3, @babel/traverse@npm:^7.4.5": version: 7.16.3 resolution: "@babel/traverse@npm:7.16.3" @@ -2767,6 +3066,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.7": + version: 7.20.10 + resolution: "@babel/traverse@npm:7.20.10" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.20.7 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 8e36dfc76b8f7aafa01b98130c0257e3148eb7132e4b599be565bddae5faec7e20a0f92786a829a8d962a0bf5652fe0019cadd85716d70d140785dec640ff6f7 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": version: 7.16.0 resolution: "@babel/types@npm:7.16.0" @@ -2808,6 +3125,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/types@npm:7.20.7" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: b39af241f0b72bba67fd6d0d23914f6faec8c0eba8015c181cbd5ea92e59fc91a52a1ab490d3520c7dbd19ddb9ebb76c476308f6388764f16d8201e37fae6811 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -4189,6 +4517,19 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^27.5.1": + version: 27.5.1 + resolution: "@jest/types@npm:27.5.1" + 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 + checksum: d1f43cc946d87543ddd79d49547aab2399481d34025d5c5f2025d3d99c573e1d9832fa83cef25e9d9b07a8583500229d15bbb07b8e233d127d911d133e2f14b1 + languageName: node + linkType: hard + "@jest/types@npm:^29.3.1": version: 29.3.1 resolution: "@jest/types@npm:29.3.1" @@ -4357,12 +4698,12 @@ __metadata: jsc-android: 241213.1.0 jsdom: 20.0.0 md5: 2.3.0 - metro-react-native-babel-preset: 0.66.2 + metro-react-native-babel-preset: 0.67.0 nodemon: 2.0.20 prop-types: 15.8.1 punycode: 2.1.1 react: 18.2.0 - react-native: 0.67.5 + react-native: 0.68.5 react-native-action-button: 2.8.5 react-native-camera: 4.2.1 react-native-dialogbox: 0.6.10 @@ -6150,6 +6491,15 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-debugger-ui@npm:^7.0.3": + version: 7.0.3 + resolution: "@react-native-community/cli-debugger-ui@npm:7.0.3" + dependencies: + serve-static: ^1.13.1 + checksum: ea90b321a375185f2f7d52e9ff5c13d943c193aa0301c7893f70132dbda4099e64b99adb61687ae6b9b78403e290ce2b8d40690daceb96300535b072dab67170 + languageName: node + linkType: hard + "@react-native-community/cli-hermes@npm:^6.2.0": version: 6.2.0 resolution: "@react-native-community/cli-hermes@npm:6.2.0" @@ -6163,6 +6513,19 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-hermes@npm:^6.3.1": + version: 6.3.1 + resolution: "@react-native-community/cli-hermes@npm:6.3.1" + dependencies: + "@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 + checksum: 7e82764c8531de228882e912158f26c9b3a426c36f2c1751f58ac68763689b8b733c43b745814c1b72cc1100de2d5bbc764ed105e7d846104d3d69427aa75a60 + languageName: node + linkType: hard + "@react-native-community/cli-platform-android@npm:^6.0.0, @react-native-community/cli-platform-android@npm:^6.2.0": version: 6.2.0 resolution: "@react-native-community/cli-platform-android@npm:6.2.0" @@ -6181,6 +6544,42 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-android@npm:^6.3.1": + version: 6.3.1 + resolution: "@react-native-community/cli-platform-android@npm:6.3.1" + dependencies: + "@react-native-community/cli-tools": ^6.2.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 + checksum: cb4d649213c277c792cfff338d9530f622a5445de576402684dd322ac71b6cc8dfcf699179d8dee9fb89c76b18997740eac41cac7e7ff2c6032cc97afd405e0e + languageName: node + linkType: hard + +"@react-native-community/cli-platform-android@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-native-community/cli-platform-android@npm:7.0.1" + 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 + checksum: 35f741153cffc202058b6f9ba3d1d012bccc4268ab62853b455da11090fe21cd8fd90a85d4b09cc04ffc3ee97d9af70b34ced26a4003e6a18f7814566107b0d4 + languageName: node + linkType: hard + "@react-native-community/cli-platform-ios@npm:^6.0.0": version: 6.2.0 resolution: "@react-native-community/cli-platform-ios@npm:6.2.0" @@ -6197,6 +6596,23 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-ios@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-native-community/cli-platform-ios@npm:7.0.1" + dependencies: + "@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: ^5.4.1 + plist: ^3.0.2 + xcode: ^3.0.0 + checksum: 4b9e06cbf4232cac27a2018dce73996f9e715d4b0495c7c3cc1d9dff96ce6e7e936ea1a09fa8b32c86ed443875f226d93aeae7c68f320c8dde7813e7c28ceda3 + languageName: node + linkType: hard + "@react-native-community/cli-plugin-metro@npm:^6.2.0": version: 6.2.0 resolution: "@react-native-community/cli-plugin-metro@npm:6.2.0" @@ -6215,6 +6631,24 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-plugin-metro@npm:^7.0.4": + version: 7.0.4 + resolution: "@react-native-community/cli-plugin-metro@npm:7.0.4" + dependencies: + "@react-native-community/cli-server-api": ^7.0.4 + "@react-native-community/cli-tools": ^6.2.1 + chalk: ^4.1.2 + 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 + checksum: adb47af0132360c611c364fc3cbabc4cc5f84e9bb2fe2285dbf2648ca8e9022ad7f19ab5424c396ee34734b275765d30931346c1b7b656ace4beab0724f3b332 + languageName: node + linkType: hard + "@react-native-community/cli-server-api@npm:^6.2.0": version: 6.2.0 resolution: "@react-native-community/cli-server-api@npm:6.2.0" @@ -6232,6 +6666,23 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-server-api@npm:^7.0.4": + version: 7.0.4 + resolution: "@react-native-community/cli-server-api@npm:7.0.4" + dependencies: + "@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: ^7.5.1 + checksum: b6f0a43062c2ed5989f6e439fecf1d7f48275fe0f2b13dcbc720518053d52e2e62e90f50c48a4f0387be1388da02e0a25eed69ecf0ca88ea1e7285d7b538a100 + languageName: node + linkType: hard + "@react-native-community/cli-tools@npm:^6.2.0": version: 6.2.0 resolution: "@react-native-community/cli-tools@npm:6.2.0" @@ -6248,6 +6699,39 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-tools@npm:^6.2.1": + version: 6.2.1 + resolution: "@react-native-community/cli-tools@npm:6.2.1" + dependencies: + appdirsjs: ^1.2.4 + chalk: ^4.1.2 + lodash: ^4.17.15 + mime: ^2.4.1 + node-fetch: ^2.6.0 + open: ^6.2.0 + semver: ^6.3.0 + shell-quote: ^1.7.3 + checksum: dcc5084c0c021cbec98099c97bdbdaedcd46d51fbd271a369a80c76754fa068dd90b4c5f4a61a9c1a852bce715bea5c4e0f30f2d6da958c7204c2fa14d0f99a8 + languageName: node + linkType: hard + +"@react-native-community/cli-tools@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-native-community/cli-tools@npm:7.0.1" + 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 + checksum: 11b40438499b3926b55f897f8f276be7092caccbd87b3bd8fd53513190f1743d8bb30673bfb8a6a3a0d2a57837c972b45a4847dae5a5bed3fd18d029bdbe190e + languageName: node + linkType: hard + "@react-native-community/cli-types@npm:^6.0.0": version: 6.0.0 resolution: "@react-native-community/cli-types@npm:6.0.0" @@ -6300,6 +6784,49 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli@npm:^7.0.3": + version: 7.0.4 + resolution: "@react-native-community/cli@npm:7.0.4" + 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 + command-exists: ^1.2.8 + commander: ^2.19.0 + cosmiconfig: ^5.1.0 + deepmerge: ^3.2.0 + envinfo: ^7.7.2 + execa: ^1.0.0 + find-up: ^4.1.0 + fs-extra: ^8.1.0 + glob: ^7.1.3 + graceful-fs: ^4.1.3 + joi: ^17.2.1 + leven: ^3.1.0 + lodash: ^4.17.15 + minimist: ^1.2.0 + node-stream-zip: ^1.9.1 + ora: ^3.4.0 + pretty-format: ^26.6.2 + prompts: ^2.4.0 + semver: ^6.3.0 + serve-static: ^1.13.1 + strip-ansi: ^5.2.0 + sudo-prompt: ^9.0.0 + wcwidth: ^1.0.1 + peerDependencies: + react-native: "*" + bin: + react-native: build/bin.js + checksum: 67b545932b593e007bda9bc934eea6288f3fe76c62e22d909748353b967a1aeb0033b32526d18c95abc10622b572c32925c5b0faf53b0b7a8b3681ac77c0ca6f + languageName: node + linkType: hard + "@react-native-community/clipboard@npm:1.5.1": version: 1.5.1 resolution: "@react-native-community/clipboard@npm:1.5.1" @@ -6364,6 +6891,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-color@npm:*": + version: 2.1.0 + resolution: "@react-native/normalize-color@npm:2.1.0" + checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838 + languageName: node + linkType: hard + "@react-native/normalize-color@npm:1.0.0": version: 1.0.0 resolution: "@react-native/normalize-color@npm:1.0.0" @@ -9862,6 +10396,15 @@ __metadata: languageName: node linkType: hard +"bplist-creator@npm:0.1.1": + version: 0.1.1 + resolution: "bplist-creator@npm:0.1.1" + dependencies: + stream-buffers: 2.2.x + checksum: b0d40d1d1623f1afdbb575cfc8075d742d2c4f0eb458574be809e3857752d1042a39553b3943d2d7f505dde92bcd43e1d7bdac61c9cd44475d696deb79f897ce + languageName: node + linkType: hard + "bplist-parser@npm:0.3.0": version: 0.3.0 resolution: "bplist-parser@npm:0.3.0" @@ -9871,6 +10414,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:0.3.2": + version: 0.3.2 + resolution: "bplist-parser@npm:0.3.2" + dependencies: + big-integer: 1.6.x + checksum: fad0f6eb155a9b636b4096a1725ce972a0386490d7d38df7be11a3a5645372446b7c44aacbc6626d24d2c17d8b837765361520ebf2960aeffcaf56765811620e + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -13574,6 +14126,17 @@ __metadata: languageName: node linkType: hard +"deprecated-react-native-prop-types@npm:^2.3.0": + version: 2.3.0 + resolution: "deprecated-react-native-prop-types@npm:2.3.0" + dependencies: + "@react-native/normalize-color": "*" + invariant: "*" + prop-types: "*" + checksum: d14f4be1dfe780a7fa9197a31b4a9a2b409c8cf1bf677713fd92d06733dee1043578662d1a8858541cf06164ae91d295db6e595f29bf13e808d9fb37bc58c90b + languageName: node + linkType: hard + "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -17654,6 +18217,13 @@ __metadata: languageName: node linkType: hard +"hermes-engine@npm:~0.11.0": + version: 0.11.0 + resolution: "hermes-engine@npm:0.11.0" + checksum: 34dcd016b373337306be0e5b15923fc2756b17253264443a1a07a14d3326d00eb433af13c08ae11f3a2ddcbcc44ae9a9ac9b071ce72efdd056745327dc3201d7 + languageName: node + linkType: hard + "hermes-engine@npm:~0.9.0": version: 0.9.0 resolution: "hermes-engine@npm:0.9.0" @@ -17661,6 +18231,13 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.5.0": + version: 0.5.0 + resolution: "hermes-estree@npm:0.5.0" + checksum: 16741229afcda60637b7672ccaf978784147eb21ff55e14418763dff7947717e9a0e962a121a55963aa78ae772cdfd0539b56317c4c63913c7701141335bf0de + languageName: node + linkType: hard + "hermes-parser@npm:0.4.7": version: 0.4.7 resolution: "hermes-parser@npm:0.4.7" @@ -17668,6 +18245,15 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.5.0": + version: 0.5.0 + resolution: "hermes-parser@npm:0.5.0" + dependencies: + hermes-estree: 0.5.0 + checksum: ef3c9aee01162fe1958e084540aa663bd9001acb6aa5d1c724bb8d7aa947dcc2961e0d572adda60895ebfe59f2caef102925f201445698e196c5626fb21e2ba6 + languageName: node + linkType: hard + "hermes-profile-transformer@npm:^0.0.6": version: 0.0.6 resolution: "hermes-profile-transformer@npm:0.0.6" @@ -18599,7 +19185,7 @@ __metadata: languageName: node linkType: hard -"invariant@npm:2.2.4, invariant@npm:^2.2.2, invariant@npm:^2.2.4": +"invariant@npm:*, invariant@npm:2.2.4, invariant@npm:^2.2.2, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" dependencies: @@ -19857,6 +20443,30 @@ __metadata: languageName: node linkType: hard +"jest-haste-map@npm:^27.3.1": + version: 27.5.1 + resolution: "jest-haste-map@npm:27.5.1" + dependencies: + "@jest/types": ^27.5.1 + "@types/graceful-fs": ^4.1.2 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + 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 + dependenciesMeta: + fsevents: + optional: true + checksum: e092a1412829a9254b4725531ee72926de530f77fda7b0d9ea18008fb7623c16f72e772d8e93be71cac9e591b2c6843a669610887dd2c89bd9eb528856e3ab47 + languageName: node + linkType: hard + "jest-haste-map@npm:^29.3.1": version: 29.3.1 resolution: "jest-haste-map@npm:29.3.1" @@ -19949,6 +20559,13 @@ __metadata: languageName: node linkType: hard +"jest-regex-util@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-regex-util@npm:27.5.1" + checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418 + languageName: node + linkType: hard + "jest-regex-util@npm:^29.2.0": version: 29.2.0 resolution: "jest-regex-util@npm:29.2.0" @@ -20052,6 +20669,16 @@ __metadata: languageName: node linkType: hard +"jest-serializer@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-serializer@npm:27.5.1" + dependencies: + "@types/node": "*" + graceful-fs: ^4.2.9 + checksum: 803e03a552278610edc6753c0dd9fa5bb5cd3ca47414a7b2918106efb62b79fd5e9ae785d0a21f12a299fa599fea8acc1fa6dd41283328cee43962cf7df9bb44 + languageName: node + linkType: hard + "jest-snapshot@npm:^29.3.1": version: 29.3.1 resolution: "jest-snapshot@npm:29.3.1" @@ -20098,6 +20725,20 @@ __metadata: languageName: node linkType: hard +"jest-util@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-util@npm:27.5.1" + 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 + checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7 + languageName: node + linkType: hard + "jest-util@npm:^29.0.0, jest-util@npm:^29.3.1": version: 29.3.1 resolution: "jest-util@npm:29.3.1" @@ -20178,6 +20819,17 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^27.5.1": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 + languageName: node + linkType: hard + "jest-worker@npm:^29.3.1": version: 29.3.1 resolution: "jest-worker@npm:29.3.1" @@ -20425,6 +21077,37 @@ __metadata: languageName: node linkType: hard +"jscodeshift@npm:^0.13.1": + version: 0.13.1 + resolution: "jscodeshift@npm:0.13.1" + 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 + 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.4 + temp: ^0.8.4 + write-file-atomic: ^2.3.0 + peerDependencies: + "@babel/preset-env": ^7.1.6 + bin: + jscodeshift: bin/jscodeshift.js + checksum: 1c35938de5fc29cafec80e2c37d5c3411f85cd5d40e0243b52f2da0c1ab4b659daddfd62de558eca5d562303616f7838097727b651f4ad8e32b1e96f169cdd76 + languageName: node + linkType: hard + "jsdom@npm:15.2.1": version: 15.2.1 resolution: "jsdom@npm:15.2.1" @@ -22275,6 +22958,18 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.67.0": + version: 0.67.0 + resolution: "metro-babel-transformer@npm:0.67.0" + dependencies: + "@babel/core": ^7.14.0 + hermes-parser: 0.5.0 + metro-source-map: 0.67.0 + nullthrows: ^1.1.1 + checksum: f2029702c8c5f901c72ee9db47a93e4bbe188bc019051756b7a1b5c8c754c575e8727801fc058218f329dbae6a2fab9498b6bc10972433b6fe68a1aafebe1504 + languageName: node + linkType: hard + "metro-cache-key@npm:0.66.2": version: 0.66.2 resolution: "metro-cache-key@npm:0.66.2" @@ -22282,6 +22977,13 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.67.0": + version: 0.67.0 + resolution: "metro-cache-key@npm:0.67.0" + checksum: 13b23f2e1a413b7a79d6f48fb739e92ba1b457c77eba14f65f6bcd1caf1832f314b319e4d690bd6bf9de94c896427b44d5da6e65ab1cde71d07306e00888e014 + languageName: node + linkType: hard + "metro-cache@npm:0.66.2": version: 0.66.2 resolution: "metro-cache@npm:0.66.2" @@ -22293,6 +22995,17 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.67.0": + version: 0.67.0 + resolution: "metro-cache@npm:0.67.0" + dependencies: + metro-core: 0.67.0 + mkdirp: ^0.5.1 + rimraf: ^2.5.4 + checksum: 4d9fba435d3adbe0c4c883ef0361d41acf427ba57e74daa52f55d66bbb564e907c9ceec40c98fac792217e9d1efbc91e1531ec8db907165274c524e30a0dfcde + languageName: node + linkType: hard + "metro-config@npm:0.66.2, metro-config@npm:^0.66.1": version: 0.66.2 resolution: "metro-config@npm:0.66.2" @@ -22307,6 +23020,20 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.67.0, metro-config@npm:^0.67.0": + version: 0.67.0 + resolution: "metro-config@npm:0.67.0" + dependencies: + cosmiconfig: ^5.0.5 + jest-validate: ^26.5.2 + metro: 0.67.0 + metro-cache: 0.67.0 + metro-core: 0.67.0 + metro-runtime: 0.67.0 + checksum: 0e8685e52f22470251fd3d56f9f71dae4dab266bc7393feebd97fb9513311d2b18c04fd019c13ad30aafe472e5515b31b2373caddd51e2cc7109d1156345aa1a + languageName: node + linkType: hard + "metro-core@npm:0.66.2, metro-core@npm:^0.66.1": version: 0.66.2 resolution: "metro-core@npm:0.66.2" @@ -22318,6 +23045,17 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.67.0, metro-core@npm:^0.67.0": + version: 0.67.0 + resolution: "metro-core@npm:0.67.0" + dependencies: + jest-haste-map: ^27.3.1 + lodash.throttle: ^4.1.1 + metro-resolver: 0.67.0 + checksum: c3183ad2950f6e796675cb52fe7d0228f6147da617f15d43baa9362a73c3cf33b108b0084d7956a6541129599cf16ea8e68b693742df21adae45a75fd0fd5f98 + languageName: node + linkType: hard + "metro-hermes-compiler@npm:0.66.2": version: 0.66.2 resolution: "metro-hermes-compiler@npm:0.66.2" @@ -22325,6 +23063,13 @@ __metadata: languageName: node linkType: hard +"metro-hermes-compiler@npm:0.67.0": + version: 0.67.0 + resolution: "metro-hermes-compiler@npm:0.67.0" + checksum: 02926d5ae44f08cfec7a80d8b23c7096a44e65e5d400e6123517efffff14b5e547a25394914b7478aedb22994b317d7a3091e659089fd182b92e5afec740bd4b + languageName: node + linkType: hard + "metro-inspector-proxy@npm:0.66.2": version: 0.66.2 resolution: "metro-inspector-proxy@npm:0.66.2" @@ -22339,6 +23084,20 @@ __metadata: languageName: node linkType: hard +"metro-inspector-proxy@npm:0.67.0": + version: 0.67.0 + resolution: "metro-inspector-proxy@npm:0.67.0" + dependencies: + connect: ^3.6.5 + debug: ^2.2.0 + ws: ^7.5.1 + yargs: ^15.3.1 + bin: + metro-inspector-proxy: src/cli.js + checksum: db75ae358bf061d7a19b84a8833b8f7d9fedfa559568c1010953d2c681ac549baa767a4665f11e0a1994e8c964197538ceafe19d0fc5e97f855a23c778edaaeb + languageName: node + linkType: hard + "metro-minify-uglify@npm:0.66.2": version: 0.66.2 resolution: "metro-minify-uglify@npm:0.66.2" @@ -22348,6 +23107,15 @@ __metadata: languageName: node linkType: hard +"metro-minify-uglify@npm:0.67.0": + version: 0.67.0 + resolution: "metro-minify-uglify@npm:0.67.0" + dependencies: + uglify-es: ^3.1.9 + checksum: e0d4c7bbcaedf210d4b7379cf158818a1311c65b2518599d34d374e6fd090f47e3c55bf31a018380685db8a4570e272fb57627dd0961915ab71fb08fd13dfd29 + languageName: node + linkType: hard + "metro-react-native-babel-preset@npm:0.66.2": version: 0.66.2 resolution: "metro-react-native-babel-preset@npm:0.66.2" @@ -22398,6 +23166,56 @@ __metadata: languageName: node linkType: hard +"metro-react-native-babel-preset@npm:0.67.0": + version: 0.67.0 + resolution: "metro-react-native-babel-preset@npm:0.67.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/plugin-proposal-class-properties": ^7.0.0 + "@babel/plugin-proposal-export-default-from": ^7.0.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.0.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 + "@babel/plugin-proposal-optional-chaining": ^7.0.0 + "@babel/plugin-syntax-dynamic-import": ^7.0.0 + "@babel/plugin-syntax-export-default-from": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.2.0 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 + "@babel/plugin-syntax-optional-chaining": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-async-to-generator": ^7.0.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.0.0 + "@babel/plugin-transform-exponentiation-operator": ^7.0.0 + "@babel/plugin-transform-flow-strip-types": ^7.0.0 + "@babel/plugin-transform-for-of": ^7.0.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-object-assign": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-react-jsx-self": ^7.0.0 + "@babel/plugin-transform-react-jsx-source": ^7.0.0 + "@babel/plugin-transform-regenerator": ^7.0.0 + "@babel/plugin-transform-runtime": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-sticky-regex": ^7.0.0 + "@babel/plugin-transform-template-literals": ^7.0.0 + "@babel/plugin-transform-typescript": ^7.5.0 + "@babel/plugin-transform-unicode-regex": ^7.0.0 + "@babel/template": ^7.0.0 + react-refresh: ^0.4.0 + peerDependencies: + "@babel/core": "*" + checksum: 931105e7c76e1e69663bcf75ed8979161c6d486767ccc48c9c6ca80276adbeae7c2aaec0b5c9829f0a44fbf456e97908f81486bdb04cfe68fde375413acc654f + languageName: node + linkType: hard + "metro-react-native-babel-transformer@npm:0.66.2, metro-react-native-babel-transformer@npm:^0.66.1": version: 0.66.2 resolution: "metro-react-native-babel-transformer@npm:0.66.2" @@ -22415,6 +23233,23 @@ __metadata: languageName: node linkType: hard +"metro-react-native-babel-transformer@npm:0.67.0, metro-react-native-babel-transformer@npm:^0.67.0": + version: 0.67.0 + resolution: "metro-react-native-babel-transformer@npm:0.67.0" + dependencies: + "@babel/core": ^7.14.0 + babel-preset-fbjs: ^3.4.0 + 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 + peerDependencies: + "@babel/core": "*" + checksum: ff08b2f187a17bfed46170909d106ec042db52ad75e5facfbec8a7d8068c95b8e53c9ec28b6704f0809f9a338550d017e3e3596ef3f1373e8e7fcf1b3cd5233f + languageName: node + linkType: hard + "metro-resolver@npm:0.66.2, metro-resolver@npm:^0.66.1": version: 0.66.2 resolution: "metro-resolver@npm:0.66.2" @@ -22424,6 +23259,15 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.67.0, metro-resolver@npm:^0.67.0": + version: 0.67.0 + resolution: "metro-resolver@npm:0.67.0" + dependencies: + absolute-path: ^0.0.0 + checksum: 967896f26c58071720effbf310352f8c89a3279c822c8303e2bdcc07ad7fb7e39e19afcb9ae8ec47f39573b47c4217fb9afbc14636d5345528b6d410b08c0f2f + languageName: node + linkType: hard + "metro-runtime@npm:0.66.2, metro-runtime@npm:^0.66.1": version: 0.66.2 resolution: "metro-runtime@npm:0.66.2" @@ -22431,6 +23275,13 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.67.0, metro-runtime@npm:^0.67.0": + version: 0.67.0 + resolution: "metro-runtime@npm:0.67.0" + checksum: 06be8635277d594b17009d9b35bbd9cb65dd44980a0a87739e49801a6b6dae73109825ddd94e1a8195520b3fa41507d151b7b7f8a484cf61164e155bfdbb091b + languageName: node + linkType: hard + "metro-source-map@npm:0.66.2": version: 0.66.2 resolution: "metro-source-map@npm:0.66.2" @@ -22447,6 +23298,22 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.67.0": + version: 0.67.0 + resolution: "metro-source-map@npm:0.67.0" + dependencies: + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + invariant: ^2.2.4 + metro-symbolicate: 0.67.0 + nullthrows: ^1.1.1 + ob1: 0.67.0 + source-map: ^0.5.6 + vlq: ^1.0.0 + checksum: 87ae604d292c1694966cb755579aa3a0185b9b657590a2996a4184fe3cd164eedf43491b3a3369a2bdf846124f821d96a87e4a8eab0a8d133d5f04d00ba354f6 + languageName: node + linkType: hard + "metro-symbolicate@npm:0.66.2": version: 0.66.2 resolution: "metro-symbolicate@npm:0.66.2" @@ -22463,6 +23330,22 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.67.0": + version: 0.67.0 + resolution: "metro-symbolicate@npm:0.67.0" + dependencies: + invariant: ^2.2.4 + metro-source-map: 0.67.0 + nullthrows: ^1.1.1 + source-map: ^0.5.6 + through2: ^2.0.1 + vlq: ^1.0.0 + bin: + metro-symbolicate: src/index.js + checksum: 4a2bbbcf6a166473003151c2e62255a7a3e0ba0043134c303418b21fc9cf6cf362c2b5a249f533dceb94a88642805bd771c2062bc5ae8cb3a53cf11809041128 + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.66.2": version: 0.66.2 resolution: "metro-transform-plugins@npm:0.66.2" @@ -22476,6 +23359,19 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.67.0": + version: 0.67.0 + resolution: "metro-transform-plugins@npm:0.67.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/template": ^7.0.0 + "@babel/traverse": ^7.14.0 + nullthrows: ^1.1.1 + checksum: 79e468e5ba0965181f56777d998ebdfcc2792c33d8b25d5a180022e62fc3e3585050bfc82bb3b238bc778baef8ad37d1083da620b68f02240597ce73ec4efff5 + languageName: node + linkType: hard + "metro-transform-worker@npm:0.66.2": version: 0.66.2 resolution: "metro-transform-worker@npm:0.66.2" @@ -22497,6 +23393,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.67.0": + version: 0.67.0 + resolution: "metro-transform-worker@npm:0.67.0" + 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.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 + checksum: 114ecd11b9945c3bf0171c2dc725bc3676a14604740d15ee8e862cd903706743407b0592ffe1b3fd53946947bcf8d00f015f823343ee1eeb843ce63e514466c6 + languageName: node + linkType: hard + "metro@npm:0.66.2, metro@npm:^0.66.1": version: 0.66.2 resolution: "metro@npm:0.66.2" @@ -22559,6 +23476,67 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.67.0, metro@npm:^0.67.0": + version: 0.67.0 + resolution: "metro@npm:0.67.0" + dependencies: + "@babel/code-frame": ^7.0.0 + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/parser": ^7.14.0 + "@babel/template": ^7.0.0 + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + absolute-path: ^0.0.0 + accepts: ^1.3.7 + async: ^2.4.0 + chalk: ^4.0.0 + ci-info: ^2.0.0 + connect: ^3.6.5 + debug: ^2.2.0 + denodeify: ^1.2.1 + error-stack-parser: ^2.0.6 + fs-extra: ^1.0.0 + graceful-fs: ^4.1.3 + hermes-parser: 0.5.0 + image-size: ^0.6.0 + invariant: ^2.2.4 + jest-haste-map: ^27.3.1 + jest-worker: ^26.0.0 + lodash.throttle: ^4.1.1 + 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 + nullthrows: ^1.1.1 + rimraf: ^2.5.4 + serialize-error: ^2.1.0 + source-map: ^0.5.6 + strip-ansi: ^6.0.0 + temp: 0.8.3 + throat: ^5.0.0 + ws: ^7.5.1 + yargs: ^15.3.1 + bin: + metro: src/cli.js + checksum: f106dd7f56380f734ae0d71afcee068b18774196889a6909963fd82b4c0db5508915735bc5be8027150ccea3b5bed5d286fdda41d0458ba3d156d8db29841fce + languageName: node + linkType: hard + "micromatch@npm:^2.1.5": version: 2.3.11 resolution: "micromatch@npm:2.3.11" @@ -24126,6 +25104,13 @@ __metadata: languageName: node linkType: hard +"ob1@npm:0.67.0": + version: 0.67.0 + resolution: "ob1@npm:0.67.0" + checksum: 02910732e1094dd164d6dfa674250bc404503c8a85fa60b15399f9059006329d7b1bad2cb0bca1841bcf4c2c1759d91297485361523d21066984a9130f3f3b65 + languageName: node + linkType: hard + "object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -25445,7 +26430,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4": +"pirates@npm:^4.0.4, pirates@npm:^4.0.5": version: 4.0.5 resolution: "pirates@npm:4.0.5" checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 @@ -25508,6 +26493,16 @@ __metadata: languageName: node linkType: hard +"plist@npm:^3.0.5": + version: 3.0.6 + resolution: "plist@npm:3.0.6" + dependencies: + base64-js: ^1.5.1 + xmlbuilder: ^15.1.1 + checksum: e21390fab8a3c388f8f51b76c0aa187242a40537119ce865d8637630e7d7df79b21f841ec6a4668e7c68d409a6f584d696619099a6125d28011561639c0823b8 + languageName: node + linkType: hard + "plur@npm:^4.0.0": version: 4.0.0 resolution: "plur@npm:4.0.0" @@ -25972,7 +26967,7 @@ __metadata: languageName: node linkType: hard -"promise@npm:8.3.0": +"promise@npm:8.3.0, promise@npm:^8.2.0": version: 8.3.0 resolution: "promise@npm:8.3.0" dependencies: @@ -26018,17 +27013,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.5.10": - version: 15.5.10 - resolution: "prop-types@npm:15.5.10" - dependencies: - fbjs: ^0.8.9 - loose-envify: ^1.3.1 - checksum: 3e928ad5afa5124d52a341a706170628e7b0caa9340515782be6a767261e6eb0e473116188bb8efbe9d9b62cb3c9501c71bf4ab7d34f2507294ee34c90de6964 - languageName: node - linkType: hard - -"prop-types@npm:15.8.1, prop-types@npm:^15.8.1": +"prop-types@npm:*, prop-types@npm:15.8.1, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -26039,6 +27024,16 @@ __metadata: languageName: node linkType: hard +"prop-types@npm:15.5.10": + version: 15.5.10 + resolution: "prop-types@npm:15.5.10" + dependencies: + fbjs: ^0.8.9 + loose-envify: ^1.3.1 + checksum: 3e928ad5afa5124d52a341a706170628e7b0caa9340515782be6a767261e6eb0e473116188bb8efbe9d9b62cb3c9501c71bf4ab7d34f2507294ee34c90de6964 + languageName: node + linkType: hard + "prop-types@npm:^15.5.10, prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": version: 15.7.2 resolution: "prop-types@npm:15.7.2" @@ -26413,16 +27408,6 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:4.19.1": - version: 4.19.1 - resolution: "react-devtools-core@npm:4.19.1" - dependencies: - shell-quote: ^1.6.1 - ws: ^7 - checksum: 20471dde740e25a6f51b7b2b719fb1e1a9213cfb2a14d6defb44eced93646f73c9c5e376fcfdc78827c4fb587bc030ca99a14a0154a94acf7a1e1496d2b59ef6 - languageName: node - linkType: hard - "react-devtools-core@npm:^4.13.0": version: 4.21.0 resolution: "react-devtools-core@npm:4.21.0" @@ -26443,6 +27428,16 @@ __metadata: languageName: node linkType: hard +"react-devtools-core@npm:^4.23.0": + version: 4.27.1 + resolution: "react-devtools-core@npm:4.27.1" + dependencies: + shell-quote: ^1.6.1 + ws: ^7 + checksum: 3c0b89942f5a8525fa16001470b4c9343974673643d2f642c93c631f823ee232418f9e3e6fe2cada4553c796cac909e77b0e51088daf6f7f9e0229046f829e51 + languageName: node + linkType: hard + "react-dom@npm:18.2.0": version: 18.2.0 resolution: "react-dom@npm:18.2.0" @@ -26473,6 +27468,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^16.12.0 || ^17.0.0, react-is@npm:^17.0.1, react-is@npm:^17.0.2": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + "react-is@npm:^16.13.1, react-is@npm:^16.7.0, react-is@npm:^16.8.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -26480,13 +27482,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1, react-is@npm:^17.0.2": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - "react-motion@npm:^0.5.2": version: 0.5.2 resolution: "react-motion@npm:0.5.2" @@ -26520,6 +27515,18 @@ __metadata: languageName: node linkType: hard +"react-native-codegen@npm:^0.0.18": + version: 0.0.18 + resolution: "react-native-codegen@npm:0.0.18" + dependencies: + "@babel/parser": ^7.14.0 + flow-parser: ^0.121.0 + jscodeshift: ^0.13.1 + nullthrows: ^1.1.1 + checksum: 55af378d630cae2323e56da9d6840e21a78ff811b39353b7c0935e8ca77d39f46dd1ef797b013c6a9a1c5ca7ceeff6203dadba9fca9b920dec810cdba1ca863c + languageName: node + linkType: hard + "react-native-codegen@npm:^0.0.7": version: 0.0.7 resolution: "react-native-codegen@npm:0.0.7" @@ -26531,17 +27538,6 @@ __metadata: languageName: node linkType: hard -"react-native-codegen@npm:^0.0.8": - version: 0.0.8 - resolution: "react-native-codegen@npm:0.0.8" - dependencies: - flow-parser: ^0.121.0 - jscodeshift: ^0.11.0 - nullthrows: ^1.1.1 - checksum: c5ccdcb2a2f249756aca8e729cf96737368c8d33673b08d4c928a469bcb58ff37fbf3c7a070398f33b19846c4261948e2c5107c561934a41ac034620f7207bbd - languageName: node - linkType: hard - "react-native-dialogbox@npm:0.6.10": version: 0.6.10 resolution: "react-native-dialogbox@npm:0.6.10" @@ -26615,6 +27611,13 @@ __metadata: languageName: node linkType: hard +"react-native-gradle-plugin@npm:^0.0.6": + version: 0.0.6 + resolution: "react-native-gradle-plugin@npm:0.0.6" + checksum: 185ad348931ef4f58065b50bbf80558af668b1ef11c31067aab7f1cd85b18809a62fcf0b7a18444726dacd098042771a570c0ac76bb8976c3ccbe7c86cff0e11 + languageName: node + linkType: hard + "react-native-image-picker@npm:4.10.3": version: 4.10.3 resolution: "react-native-image-picker@npm:4.10.3" @@ -26792,45 +27795,47 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.67.5": - version: 0.67.5 - resolution: "react-native@npm:0.67.5" +"react-native@npm:0.68.5": + version: 0.68.5 + resolution: "react-native@npm:0.68.5" 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 peerDependencies: react: 17.0.2 bin: react-native: cli.js - checksum: bba6afb9fd8c7b18ceabd843b3deb26ff719322a90e300908dd19e3351871f57ee5d7f9b2623866065eb188122a48905d0474bdbe65af1ced206fddb201cc67d + checksum: 487b520f5d8baa9094b4e36f4a44221bc48ec51ab8db10523f0b8baffd30a4fdca85381d1c2b8797590db204561f27ec2084fe0835c6084b3a0ef14e85d35fb0 languageName: node linkType: hard @@ -26927,6 +27932,18 @@ __metadata: languageName: node linkType: hard +"react-shallow-renderer@npm:16.14.1": + version: 16.14.1 + resolution: "react-shallow-renderer@npm:16.14.1" + dependencies: + object-assign: ^4.1.1 + react-is: ^16.12.0 || ^17.0.0 + peerDependencies: + react: ^16.0.0 || ^17.0.0 + checksum: f344c663c48720d19559b4198b1f63ad47a3f11bedc92ede053a6c0706b5209e6110086f3ccc6db04eda9f0d1a415845956ddfb6ce09a922167d4831fcba9314 + languageName: node + linkType: hard + "react-shallow-renderer@npm:^16.15.0": version: 16.15.0 resolution: "react-shallow-renderer@npm:16.15.0" @@ -27240,7 +28257,7 @@ __metadata: languageName: node linkType: hard -"recast@npm:^0.20.3": +"recast@npm:^0.20.3, recast@npm:^0.20.4": version: 0.20.5 resolution: "recast@npm:0.20.5" dependencies: @@ -28708,6 +29725,13 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.7.3": + version: 1.7.4 + resolution: "shell-quote@npm:1.7.4" + checksum: 2874ea9c1a7c3ebfc9ec5734a897e16533d0d06f2e4cddc22ba3d1cab5cdc07d0f825364c1b1e39abe61236f44d8e60e933c7ad7349ce44de4f5dddc7b4354e9 + languageName: node + linkType: hard + "shelljs@npm:^0.8.4": version: 0.8.4 resolution: "shelljs@npm:0.8.4" @@ -28862,6 +29886,17 @@ __metadata: languageName: node linkType: hard +"simple-plist@npm:^1.1.0": + version: 1.4.0 + resolution: "simple-plist@npm:1.4.0" + dependencies: + bplist-creator: 0.1.1 + bplist-parser: 0.3.2 + plist: ^3.0.5 + checksum: fa8086f6b781c289f1abad21306481dda4af6373b32a5d998a70e53c2b7218a1d21ebb5ae3e736baae704c21d311d3d39d01d0e6a2387eda01b4020b9ebd909e + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -30571,7 +31606,7 @@ __metadata: languageName: node linkType: hard -"temp@npm:^0.8.1": +"temp@npm:^0.8.1, temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" dependencies: @@ -32080,7 +33115,7 @@ __metadata: languageName: node linkType: hard -"use-subscription@npm:^1.0.0": +"use-subscription@npm:>=1.0.0 <1.6.0, use-subscription@npm:^1.0.0": version: 1.5.1 resolution: "use-subscription@npm:1.5.1" dependencies: @@ -33102,7 +34137,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.5.5": +"ws@npm:^7.5.1, ws@npm:^7.5.5": version: 7.5.9 resolution: "ws@npm:7.5.9" peerDependencies: @@ -33157,6 +34192,16 @@ __metadata: languageName: node linkType: hard +"xcode@npm:^3.0.0": + version: 3.0.1 + resolution: "xcode@npm:3.0.1" + dependencies: + simple-plist: ^1.1.0 + uuid: ^7.0.3 + checksum: 908ff85851f81aec6e36ca24427db092e1cc068f052716e14de5e762196858039efabbe053a1abe8920184622501049e74a93618e8692b982f7604a9847db108 + languageName: node + linkType: hard + "xdg-basedir@npm:^4.0.0": version: 4.0.0 resolution: "xdg-basedir@npm:4.0.0" @@ -33205,7 +34250,7 @@ __metadata: languageName: node linkType: hard -"xmlbuilder@npm:>=11.0.1": +"xmlbuilder@npm:>=11.0.1, xmlbuilder@npm:^15.1.1": version: 15.1.1 resolution: "xmlbuilder@npm:15.1.1" checksum: 14f7302402e28d1f32823583d121594a9dca36408d40320b33f598bd589ca5163a352d076489c9c64d2dc1da19a790926a07bf4191275330d4de2b0d85bb1843