diff --git a/.gitignore b/.gitignore index 2204481cf..344481b21 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,7 @@ DerivedData *.hmap *.ipa *.xcuserstate -project.xcworkspace +ios/.xcode.env.local # Android/IntelliJ # @@ -29,6 +29,7 @@ build/ .gradle local.properties *.iml +*.hprof # node.js # @@ -40,13 +41,23 @@ yarn-error.log buck-out/ \.buckd/ *.keystore +!debug.keystore -# VS Code -.vscode - -# Cocoapods -/ios/Pods +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output # Bundle artifact *.jsbundle + +# Ruby / CocoaPods +/ios/Pods/ +/vendor/bundle/ diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..1142b1b20 --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' + +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version +ruby '>= 2.6.10' + +gem 'cocoapods', '>= 1.11.3' diff --git a/android/app/build.gradle b/android/app/build.gradle index c5b4fbc44..891ea1a8e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,6 +4,7 @@ apply plugin: "com.google.firebase.firebase-perf" apply plugin: "io.sentry.android.gradle" 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 @@ -81,7 +82,7 @@ import com.android.build.OutputFile */ project.ext.react = [ - enableHermes: false, // clean and rebuild if changing + enableHermes: true, // clean and rebuild if changing ] apply from: "../../node_modules/react-native/react.gradle" @@ -125,9 +126,12 @@ def jscFlavor = 'org.webkit:android-jsc:+' def enableHermes = project.ext.react.get("enableHermes", false); /** - * Architectures to build native code for in debug. + * Architectures to build native code for. */ -def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures") +def reactNativeArchitectures() { + def value = project.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} android { ndkVersion rootProject.ext.ndkVersion @@ -142,13 +146,73 @@ android { versionName "0.34.0" missingDimensionStrategy 'react-native-camera', 'general' missingDimensionStrategy 'store', 'play' + buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + + if (isNewArchitectureEnabled()) { + // We configure the CMake build only if you decide to opt-in for the New Architecture. + externalNativeBuild { + cmake { + arguments "-DPROJECT_BUILD_DIR=$buildDir", + "-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", + "-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", + "-DNODE_MODULES_DIR=$rootDir/../node_modules", + "-DANDROID_STL=c++_shared" + } + } + if (!enableSeparateBuildPerCPUArchitecture) { + ndk { + abiFilters (*reactNativeArchitectures()) + } + } + } + } + + if (isNewArchitectureEnabled()) { + // We configure the NDK build only if you decide to opt-in for the New Architecture. + externalNativeBuild { + cmake { + path "$projectDir/src/main/jni/CMakeLists.txt" + } + } + 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 configureCMakeDebug* tasks and the preBuild tasks. + // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 + configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild) + configureCMakeDebug.dependsOn(preDebugBuild) + reactNativeArchitectures().each { architecture -> + tasks.findByName("configureCMakeDebug[${architecture}]")?.configure { + dependsOn("preDebugBuild") + } + tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure { + dependsOn("preReleaseBuild") + } + } + } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + include (*reactNativeArchitectures()) } } signingConfigs { @@ -162,11 +226,6 @@ android { buildTypes { debug { signingConfig signingConfigs.debug - if (nativeArchitectures) { - ndk { - abiFilters nativeArchitectures.split(',') - } - } } release { minifyEnabled enableProguardInReleaseBuilds @@ -212,6 +271,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) + //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules @@ -239,14 +299,31 @@ dependencies { } if (enableHermes) { - def hermesPath = "../../node_modules/hermes-engine/android/"; - debugImplementation files(hermesPath + "hermes-debug.aar") - releaseImplementation files(hermesPath + "hermes-release.aar") + //noinspection GradleDynamicVersion + implementation("com.facebook.react:hermes-engine:+") { // From node_modules + exclude group:'com.facebook.fbjni' + } } else { implementation jscFlavor } } +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") + substitute(module("com.facebook.react:hermes-engine")) + .using(project(":ReactAndroid:hermes-engine")) + .because("On New Architecture we're building Hermes 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) { @@ -256,3 +333,11 @@ task copyDownloadableDepsToLibs(type: Copy) { apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply plugin: 'com.google.gms.google-services' + +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/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index b45ec4d55..0b94d29b7 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -16,7 +16,7 @@ - + diff --git a/android/app/src/debug/java/com/oice/ReactNativeFlipper.java b/android/app/src/debug/java/com/oice/ReactNativeFlipper.java index a61a916d8..62cb0f713 100644 --- a/android/app/src/debug/java/com/oice/ReactNativeFlipper.java +++ b/android/app/src/debug/java/com/oice/ReactNativeFlipper.java @@ -4,7 +4,7 @@ *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. */ -package com.awesomeproject066; +package com.oice; import android.content.Context; import com.facebook.flipper.android.AndroidFlipperClient; @@ -19,6 +19,7 @@ import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; import com.facebook.flipper.plugins.react.ReactFlipperPlugin; import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceEventListener; import com.facebook.react.ReactInstanceManager; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.network.NetworkingModule; @@ -51,7 +52,7 @@ public void apply(OkHttpClient.Builder builder) { ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); if (reactContext == null) { reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceManager.ReactInstanceEventListener() { + new ReactInstanceEventListener() { @Override public void onReactContextInitialized(ReactContext reactContext) { reactInstanceManager.removeReactInstanceEventListener(this); diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 75d68caff..051ece2ff 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -14,7 +14,7 @@ android:theme="@style/AppTheme"> aClass = Class.forName("com.awesomeproject066.ReactNativeFlipper"); + Class aClass = Class.forName("com.oice.ReactNativeFlipper"); aClass .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) .invoke(null, context, reactInstanceManager); diff --git a/android/app/src/main/java/com/oice/newarchitecture/MainApplicationReactNativeHost.java b/android/app/src/main/java/com/oice/newarchitecture/MainApplicationReactNativeHost.java new file mode 100644 index 000000000..3f56e08c4 --- /dev/null +++ b/android/app/src/main/java/com/oice/newarchitecture/MainApplicationReactNativeHost.java @@ -0,0 +1,116 @@ +package com.oice.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.FabricJSIModuleProvider; +import com.facebook.react.fabric.ReactNativeConfig; +import com.facebook.react.uimanager.ViewManagerRegistry; +import com.oice.BuildConfig; +import com.oice.newarchitecture.components.MainComponentsRegistry; +import com.oice.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, + ReactNativeConfig.DEFAULT_CONFIG, + viewManagerRegistry); + } + }); + return specs; + } + }; + } +} diff --git a/android/app/src/main/java/com/oice/newarchitecture/components/MainComponentsRegistry.java b/android/app/src/main/java/com/oice/newarchitecture/components/MainComponentsRegistry.java new file mode 100644 index 000000000..c0ee89dd6 --- /dev/null +++ b/android/app/src/main/java/com/oice/newarchitecture/components/MainComponentsRegistry.java @@ -0,0 +1,36 @@ +package com.oice.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); + } +} diff --git a/android/app/src/main/java/com/oice/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/android/app/src/main/java/com/oice/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java new file mode 100644 index 000000000..8e1c3762e --- /dev/null +++ b/android/app/src/main/java/com/oice/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java @@ -0,0 +1,48 @@ +package com.oice.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("oice_appmodules"); + sIsSoLibraryLoaded = true; + } + } +} diff --git a/android/app/src/main/jni/CMakeLists.txt b/android/app/src/main/jni/CMakeLists.txt new file mode 100644 index 000000000..9f7cab4a7 --- /dev/null +++ b/android/app/src/main/jni/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.13) + +# Define the library name here. +project(oice_appmodules) + +# This file includes all the necessary to let you build your application with the New Architecture. +include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) diff --git a/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/android/app/src/main/jni/MainApplicationModuleProvider.cpp new file mode 100644 index 000000000..26162dd87 --- /dev/null +++ b/android/app/src/main/jni/MainApplicationModuleProvider.cpp @@ -0,0 +1,32 @@ +#include "MainApplicationModuleProvider.h" + +#include +#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); + + // Module providers autolinked by RN CLI + auto rncli_module = rncli_ModuleProvider(moduleName, params); + if (rncli_module != nullptr) { + return rncli_module; + } + + return rncore_ModuleProvider(moduleName, params); +} + +} // namespace react +} // namespace facebook diff --git a/android/app/src/main/jni/MainApplicationModuleProvider.h b/android/app/src/main/jni/MainApplicationModuleProvider.h new file mode 100644 index 000000000..b38ccf53f --- /dev/null +++ b/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 diff --git a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp new file mode 100644 index 000000000..5fd688c50 --- /dev/null +++ b/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( + const std::string &name) { + return getTurboModule(name, nullptr) != nullptr || + getTurboModule(name, {.moduleName = name}) != nullptr; +} + +} // namespace react +} // namespace facebook diff --git a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h new file mode 100644 index 000000000..85fe81683 --- /dev/null +++ b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h @@ -0,0 +1,38 @@ +#include +#include + +#include +#include + +namespace facebook { +namespace react { + +class MainApplicationTurboModuleManagerDelegate + : public jni::HybridClass< + MainApplicationTurboModuleManagerDelegate, + TurboModuleManagerDelegate> { + public: + // Adapt it to the package you used for your Java class. + static constexpr auto kJavaDescriptor = + "Lcom/oice/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(const std::string &name); +}; + +} // namespace react +} // namespace facebook diff --git a/android/app/src/main/jni/MainComponentsRegistry.cpp b/android/app/src/main/jni/MainComponentsRegistry.cpp new file mode 100644 index 000000000..54f598a48 --- /dev/null +++ b/android/app/src/main/jni/MainComponentsRegistry.cpp @@ -0,0 +1,65 @@ +#include "MainComponentsRegistry.h" + +#include +#include +#include +#include +#include + +namespace facebook { +namespace react { + +MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} + +std::shared_ptr +MainComponentsRegistry::sharedProviderRegistry() { + auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); + + // Autolinked providers registered by RN CLI + rncli_registerProviders(providerRegistry); + + // 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 diff --git a/android/app/src/main/jni/MainComponentsRegistry.h b/android/app/src/main/jni/MainComponentsRegistry.h new file mode 100644 index 000000000..8d4a587d0 --- /dev/null +++ b/android/app/src/main/jni/MainComponentsRegistry.h @@ -0,0 +1,32 @@ +#pragma once + +#include +#include +#include +#include + +namespace facebook { +namespace react { + +class MainComponentsRegistry + : public facebook::jni::HybridClass { + public: + // Adapt it to the package you used for your Java class. + constexpr static auto kJavaDescriptor = + "Lcom/oice/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 diff --git a/android/app/src/main/jni/OnLoad.cpp b/android/app/src/main/jni/OnLoad.cpp new file mode 100644 index 000000000..c569b6e86 --- /dev/null +++ b/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(); + }); +} diff --git a/android/build.gradle b/android/build.gradle index e25f8f707..a54c843af 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,21 +1,31 @@ + // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { kotlinVersion = "1.6.0" - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" minSdkVersion = 21 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" + } supportLibVersion = "28.0.0" - ndkVersion = "21.4.7075529" } repositories { google() mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle:7.4.2') + classpath("com.android.tools.build:gradle:7.4.2") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath("de.undercouch:gradle-download-task:5.0.1") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath("com.google.gms:google-services:4.3.15") diff --git a/android/gradle.properties b/android/gradle.properties index fca128179..fa4feae5f 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -9,18 +9,32 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX android.enableJetifier=true # Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.99.0 +FLIPPER_VERSION=0.125.0 -org.gradle.jvmargs=-Xmx4096M -Dkotlin.daemon.jvm.options\="-Xmx4096M" +# 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 diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf01..41d9927a4 100644 Binary files a/android/gradle/wrapper/gradle-wrapper.jar and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradlew b/android/gradlew index b0d6d0ab5..1b6c78733 100755 --- a/android/gradlew +++ b/android/gradlew @@ -1,13 +1,13 @@ -#!/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. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -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,84 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; 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\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. -# 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" +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi +# 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" "$@" diff --git a/android/settings.gradle b/android/settings.gradle index 0a0fcedf2..2b4012fa4 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,5 +1,13 @@ rootProject.name = 'LikeCoinApp' apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app', ':react-native-share-extension' +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') + include(":ReactAndroid:hermes-engine") + project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') +} project(':react-native-share-extension').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share-extension/android') \ No newline at end of file diff --git a/app/app.tsx b/app/app.tsx index da7fce870..ee6ed0559 100644 --- a/app/app.tsx +++ b/app/app.tsx @@ -6,6 +6,7 @@ import * as React from "react" import { Alert, AppRegistry, + EmitterSubscription, Linking, Platform, } from "react-native" @@ -49,6 +50,8 @@ export class App extends React.Component<{}, AppState> { initTimer?: number + openUrlHandler?: EmitterSubscription + /** * When the component is mounted. This happens asynchronously and simply * re-renders when we're good to go. @@ -75,7 +78,7 @@ export class App extends React.Component<{}, AppState> { this.state.rootStore?.userStore.checkTrackingStatus() - Linking.addEventListener('url', this._onOpenURL) + this.openUrlHandler = Linking.addEventListener('url', this._onOpenURL) try { const url = await Linking.getInitialURL() if (!url) return @@ -86,7 +89,10 @@ export class App extends React.Component<{}, AppState> { } componentWillUnmount() { - Linking.removeEventListener('url', this._onOpenURL) + if (this.openUrlHandler) { + this.openUrlHandler.remove() + this.openUrlHandler = null + } } startInitTimer = () => { diff --git a/app/components/content-list-item/content-list-item.bookmark.tsx b/app/components/content-list-item/content-list-item.bookmark.tsx index c89b810d8..e2eef1b8b 100644 --- a/app/components/content-list-item/content-list-item.bookmark.tsx +++ b/app/components/content-list-item/content-list-item.bookmark.tsx @@ -97,7 +97,7 @@ class BookmarkedContentListItemBase extends React.Component { onPress={this.onPressArchiveButton} /> )} - {this.props.renderMoreButton(this.onPressMoreButton)} + <>{this.props.renderMoreButton(this.onPressMoreButton)} diff --git a/app/components/content-list-item/content-list-item.super-like.tsx b/app/components/content-list-item/content-list-item.super-like.tsx index d535c8dc5..f3db230e4 100644 --- a/app/components/content-list-item/content-list-item.super-like.tsx +++ b/app/components/content-list-item/content-list-item.super-like.tsx @@ -105,10 +105,10 @@ class SuperLikeContentListItemBase extends React.Component { style={Style.LikerDisplayName} /> - {this.props.isShowFollowToggle + <>{this.props.isShowFollowToggle ? this.renderFollowToggle(!!content?.liker?.isFollowing) : this.props.renderMoreButton(this.onPressMoreButton) - } + } diff --git a/app/navigation/back-button-handler.tsx b/app/navigation/back-button-handler.tsx index 8a4ec41eb..f289703c7 100644 --- a/app/navigation/back-button-handler.tsx +++ b/app/navigation/back-button-handler.tsx @@ -10,6 +10,7 @@ interface BackButtonHandlerProps { * Are we allowed to exit? */ canExit(routeName: string): boolean + children?: React.ReactNode } @inject("navigationStore") diff --git a/app/screens/reader-screen/reader-screen.tsx b/app/screens/reader-screen/reader-screen.tsx index 9db6a0b71..8e6168770 100644 --- a/app/screens/reader-screen/reader-screen.tsx +++ b/app/screens/reader-screen/reader-screen.tsx @@ -2,6 +2,7 @@ import * as React from "react" import { AppState, AppStateStatus, + NativeEventSubscription, } from "react-native" import { inject } from "mobx-react" import styled from "styled-components/native" @@ -29,6 +30,8 @@ const Screen = styled(ScreenBase)` export class ReaderScreen extends React.Component { appState = AppState.currentState + appStateChangeHandler?: NativeEventSubscription + superLikeScreen = React.createRef() state = { @@ -37,11 +40,14 @@ export class ReaderScreen extends React.Component { componentDidMount() { this.props.contentBookmarksListStore.fetch() - AppState.addEventListener("change", this.handleAppStateChange) + this.appStateChangeHandler = AppState.addEventListener("change", this.handleAppStateChange) } componentWillUnmount() { - AppState.removeEventListener("change", this.handleAppStateChange) + if (this.appStateChangeHandler) { + this.appStateChangeHandler.remove() + this.appStateChangeHandler = null + } } private handleAppStateChange = (nextAppState: AppStateStatus) => { diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 000000000..3d5782c71 --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/ios/LikeCoinApp.xcodeproj/project.pbxproj b/ios/LikeCoinApp.xcodeproj/project.pbxproj index 9db12932e..639d3751a 100644 --- a/ios/LikeCoinApp.xcodeproj/project.pbxproj +++ b/ios/LikeCoinApp.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 */; }; 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; @@ -51,7 +51,7 @@ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* LikeCoinApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LikeCoinApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = LikeCoinApp/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = LikeCoinApp/AppDelegate.m; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = LikeCoinApp/AppDelegate.mm; sourceTree = ""; }; 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = LikeCoinApp/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = LikeCoinApp/Info.plist; sourceTree = ""; }; @@ -104,7 +104,7 @@ 2F796178233DC2D700306A87 /* LikeCoinApp.entitlements */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, @@ -307,13 +307,15 @@ files = ( ); inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", ); name = "Bundle React Native code and images"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh\n"; + shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI react-native xcode $REACT_NATIVE_XCODE\\\"\"\n"; }; 09C796459E8C77EEA8ED34FC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; @@ -322,11 +324,17 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-LikeCoinApp/Pods-LikeCoinApp-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog", "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -516,7 +524,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -579,7 +587,6 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = LikeCoinApp/LikeCoinApp.entitlements; CURRENT_PROJECT_VERSION = 342; - DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = 6VG4638588; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -646,7 +653,7 @@ "${PODS_ROOT}/Firebase/CoreOnly/Sources", ); INFOPLIST_FILE = LikeCoinApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 0.34.0; OTHER_LDFLAGS = ( @@ -737,7 +744,7 @@ "${PODS_ROOT}/Firebase/CoreOnly/Sources", ); INFOPLIST_FILE = LikeCoinApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 0.34.0; OTHER_LDFLAGS = ( @@ -787,7 +794,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -803,7 +810,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = ( "\"$(SDKROOT)/usr/lib/swift\"", @@ -818,6 +825,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; }; name = Debug; @@ -855,7 +863,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -864,7 +872,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = ( "\"$(SDKROOT)/usr/lib/swift\"", @@ -878,6 +886,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; @@ -889,7 +898,6 @@ buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; @@ -900,7 +908,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LikerLandShare/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -918,7 +926,6 @@ buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; @@ -930,7 +937,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LikerLandShare/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.oice.share-extension"; diff --git a/ios/LikeCoinApp/AppDelegate.m b/ios/LikeCoinApp/AppDelegate.m deleted file mode 100644 index 9280f9f07..000000000 --- a/ios/LikeCoinApp/AppDelegate.m +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#import "AppDelegate.h" - -#import -#import -#import - -#import -#import -#import -#import -#import -#import - -#ifdef FB_SONARKIT_ENABLED -#import -#import -#import -#import -#import -#import - -static void InitializeFlipper(UIApplication *application) { - FlipperClient *client = [FlipperClient sharedClient]; - SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; - [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; - [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; - [client addPlugin:[FlipperKitReactPlugin new]]; - [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; - [client start]; -} -#endif - -@import Firebase; - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ -#ifdef FB_SONARKIT_ENABLED - InitializeFlipper(application); -#endif - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge - moduleName:@"LikeCoinApp" - initialProperties:nil]; - rootView.backgroundColor = [UIColor colorWithRed:40.0f/255.0f green:100.0f/255.0f blue:110.0f/255.0f alpha:1.0]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - - if ([FIRApp defaultApp] == nil) { - NSString *filePath; -#ifdef DEBUG - NSLog(@"[FIREBASE] Development mode."); - filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist" inDirectory:@"Debug"]; -#else - NSLog(@"[FIREBASE] Production mode."); - filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist" inDirectory:@"Release"]; -#endif - - FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; - [FIRApp configureWithOptions:options]; - } - -#ifdef DEBUG - [RNBranch useTestInstance]; -#endif - [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES]; - - return YES; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary *)options { - return [RNBranch.branch application:application openURL:url options:options] - || [RCTLinkingManager application:application openURL:url options:options]; -} - -- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler { - return [RNBranch continueUserActivity:userActivity] || [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; -} - -- (void)applicationDidBecomeActive:(UIApplication *)application { - UNUserNotificationCenter *notificationCenter = [UNUserNotificationCenter currentNotificationCenter]; - [notificationCenter requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) { - if (granted) { - [application registerForRemoteNotifications]; - } - }]; -} - -@end diff --git a/ios/LikeCoinApp/AppDelegate.mm b/ios/LikeCoinApp/AppDelegate.mm new file mode 100644 index 000000000..9690bbee7 --- /dev/null +++ b/ios/LikeCoinApp/AppDelegate.mm @@ -0,0 +1,181 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "AppDelegate.h" + +#import +#import +#import + +#import +#import +#import +#import +#import +#import + +#import + +#if RCT_NEW_ARCH_ENABLED +#import +#import +#import +#import +#import +#import + +#import + +static NSString *const kRNConcurrentRoot = @"concurrentRoot"; + +@interface AppDelegate () { + RCTTurboModuleManager *_turboModuleManager; + RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; + std::shared_ptr _reactNativeConfig; + facebook::react::ContextContainer::Shared _contextContainer; +} +#endif + +#import + +@implementation AppDelegate + +- (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 + + NSDictionary *initProps = [self prepareInitialProps]; + UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"LikeCoinApp", initProps); + + rootView.backgroundColor = [UIColor colorWithRed:40.0f/255.0f green:100.0f/255.0f blue:110.0f/255.0f alpha:1.0]; + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [UIViewController new]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + + if ([FIRApp defaultApp] == nil) { + NSString *filePath; +#ifdef DEBUG + NSLog(@"[FIREBASE] Development mode."); + filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist" inDirectory:@"Debug"]; +#else + NSLog(@"[FIREBASE] Production mode."); + filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist" inDirectory:@"Release"]; +#endif + + FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; + [FIRApp configureWithOptions:options]; + } + +#ifdef DEBUG + [RNBranch useTestInstance]; +#endif + [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES]; + + return YES; +} + +/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. +/// +/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html +/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). +/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. +- (BOOL)concurrentRootEnabled +{ + // Switch this bool to turn on and off the concurrent root + return true; +} + +- (NSDictionary *)prepareInitialProps +{ + NSMutableDictionary *initProps = [NSMutableDictionary new]; + +#ifdef RCT_NEW_ARCH_ENABLED + initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); +#endif + + return initProps; +} + +- (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 + +- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary *)options { + return [RNBranch.branch application:application openURL:url options:options] + || [RCTLinkingManager application:application openURL:url options:options]; +} + +- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler { + return [RNBranch continueUserActivity:userActivity] || [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + UNUserNotificationCenter *notificationCenter = [UNUserNotificationCenter currentNotificationCenter]; + [notificationCenter requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) { + if (granted) { + [application registerForRemoteNotifications]; + } + }]; +} + +@end diff --git a/ios/LikeCoinApp/main.m b/ios/LikeCoinApp/main.m index c316cf816..ae8a175b6 100644 --- a/ios/LikeCoinApp/main.m +++ b/ios/LikeCoinApp/main.m @@ -9,7 +9,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/ios/LikerLandShare/LikerLandShare.m b/ios/LikerLandShare/LikerLandShare.m index e0ce7f69b..8679812af 100644 --- a/ios/LikerLandShare/LikerLandShare.m +++ b/ios/LikerLandShare/LikerLandShare.m @@ -53,7 +53,7 @@ - (UIView*) shareView { - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { #if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; #else return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif diff --git a/ios/Podfile b/ios/Podfile index 989ac4940..7290d8974 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,15 +1,29 @@ require_relative '../node_modules/react-native/scripts/react_native_pods' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '11.0' +platform :ios, '12.4' +install! 'cocoapods', :deterministic_uuids => false target 'LikeCoinApp' 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 is now enabled by default. Disable by setting this flag to false. + # Upcoming versions of React Native may rely on get_default_flags(), but + # we make it explicit here to aid in the React Native upgrade process. + :hermes_enabled => true, + :fabric_enabled => flags[:fabric_enabled], + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable the next line. + :flipper_configuration => FlipperConfiguration.enabled, + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." ) target 'LikerLandShare' do @@ -17,14 +31,13 @@ target 'LikeCoinApp' do inherit! :complete end - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - use_flipper!({ 'Flipper' => '0.125.0' , "Flipper-DoubleConversion" => "1.1.7"}, configurations: ['Debug']) - post_install do |installer| - react_native_post_install(installer) + react_native_post_install( + installer, + # Set `mac_catalyst_enabled` to `true` in order to apply patches + # necessary for Mac Catalyst builds + :mac_catalyst_enabled => false + ) __apply_Xcode_12_5_M1_post_install_workaround(installer) installer.pods_project.targets.each do |target| target.build_configurations.each do |config| diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 89a838eb4..9f1605619 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -5,14 +5,14 @@ PODS: - React - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.67.5) - - FBReactNativeSpec (0.67.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) + - FBLazyVector (0.70.12) + - FBReactNativeSpec (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTRequired (= 0.70.12) + - RCTTypeSafety (= 0.70.12) + - React-Core (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) - Firebase/Analytics (7.11.0): - Firebase/Core - Firebase/Core (7.11.0): @@ -102,16 +102,16 @@ PODS: - Flipper-Folly (~> 2.6) - Flipper-RSocket (~> 1.4) - Flipper-Boost-iOSX (1.76.0.1.11) - - Flipper-DoubleConversion (1.1.7) + - Flipper-DoubleConversion (3.2.0.1) - Flipper-Fmt (7.1.7) - - Flipper-Folly (2.6.7): + - Flipper-Folly (2.6.10): - Flipper-Boost-iOSX - Flipper-DoubleConversion - Flipper-Fmt (= 7.1.7) - Flipper-Glog - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.180) - - Flipper-Glog (0.3.6) + - OpenSSL-Universal (= 1.1.1100) + - Flipper-Glog (0.5.0.5) - Flipper-PeerTalk (0.0.4) - Flipper-RSocket (1.4.3): - Flipper-Folly (~> 2.6) @@ -191,6 +191,7 @@ PODS: - GoogleUtilities/Logger - GoogleUtilities/UserDefaults (7.3.1): - GoogleUtilities/Logger + - hermes-engine (0.70.12) - libevent (2.1.12) - libwebp (1.2.0): - libwebp/demux (= 1.2.0) @@ -206,206 +207,234 @@ PODS: - nanopb/encode (= 2.30908.0) - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - - OpenSSL-Universal (1.1.180) + - OpenSSL-Universal (1.1.1100) - PromisesObjC (1.2.12) - Protobuf (3.14.0) - - RCT-Folly (2021.06.28.00-v2): + - RCT-Folly (2021.07.22.00): - boost - DoubleConversion - fmt (~> 6.2.1) - glog - - RCT-Folly/Default (= 2021.06.28.00-v2) - - RCT-Folly/Default (2021.06.28.00-v2): + - RCT-Folly/Default (= 2021.07.22.00) + - RCT-Folly/Default (2021.07.22.00): - boost - DoubleConversion - fmt (~> 6.2.1) - glog - - RCTRequired (0.67.5) - - RCTTypeSafety (0.67.5): - - FBLazyVector (= 0.67.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): + - RCT-Folly/Futures (2021.07.22.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) - 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) + - libevent + - RCTRequired (0.70.12) + - RCTTypeSafety (0.70.12): + - FBLazyVector (= 0.70.12) + - RCTRequired (= 0.70.12) + - React-Core (= 0.70.12) + - React (0.70.12): + - React-Core (= 0.70.12) + - React-Core/DevSupport (= 0.70.12) + - React-Core/RCTWebSocket (= 0.70.12) + - React-RCTActionSheet (= 0.70.12) + - React-RCTAnimation (= 0.70.12) + - React-RCTBlob (= 0.70.12) + - React-RCTImage (= 0.70.12) + - React-RCTLinking (= 0.70.12) + - React-RCTNetwork (= 0.70.12) + - React-RCTSettings (= 0.70.12) + - React-RCTText (= 0.70.12) + - React-RCTVibration (= 0.70.12) + - React-bridging (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - React-jsi (= 0.70.12) + - React-callinvoker (0.70.12) + - React-Codegen (0.70.12): + - FBReactNativeSpec (= 0.70.12) + - RCT-Folly (= 2021.07.22.00) + - RCTRequired (= 0.70.12) + - RCTTypeSafety (= 0.70.12) + - React-Core (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-Core (0.70.12): + - glog + - RCT-Folly (= 2021.07.22.00) + - React-Core/Default (= 0.70.12) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/CoreModulesHeaders (0.67.5): + - React-Core/CoreModulesHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/Default (0.67.5): + - React-Core/Default (0.70.12): - 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) + - RCT-Folly (= 2021.07.22.00) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/DevSupport (0.67.5): + - React-Core/DevSupport (0.70.12): - 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) + - RCT-Folly (= 2021.07.22.00) + - React-Core/Default (= 0.70.12) + - React-Core/RCTWebSocket (= 0.70.12) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-jsinspector (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTActionSheetHeaders (0.67.5): + - React-Core/RCTActionSheetHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTAnimationHeaders (0.67.5): + - React-Core/RCTAnimationHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTBlobHeaders (0.67.5): + - React-Core/RCTBlobHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTImageHeaders (0.67.5): + - React-Core/RCTImageHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTLinkingHeaders (0.67.5): + - React-Core/RCTLinkingHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTNetworkHeaders (0.67.5): + - React-Core/RCTNetworkHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTSettingsHeaders (0.67.5): + - React-Core/RCTSettingsHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTTextHeaders (0.67.5): + - React-Core/RCTTextHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTVibrationHeaders (0.67.5): + - React-Core/RCTVibrationHeaders (0.70.12): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly (= 2021.07.22.00) - 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.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-Core/RCTWebSocket (0.67.5): + - React-Core/RCTWebSocket (0.70.12): - 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) + - RCT-Folly (= 2021.07.22.00) + - React-Core/Default (= 0.70.12) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-perflogger (= 0.70.12) - Yoga - - React-CoreModules (0.67.5): - - FBReactNativeSpec (= 0.67.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): + - React-CoreModules (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTTypeSafety (= 0.70.12) + - React-Codegen (= 0.70.12) + - React-Core/CoreModulesHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - React-RCTImage (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-cxxreact (0.70.12): - 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): + - RCT-Folly (= 2021.07.22.00) + - React-callinvoker (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsinspector (= 0.70.12) + - React-logger (= 0.70.12) + - React-perflogger (= 0.70.12) + - React-runtimeexecutor (= 0.70.12) + - React-hermes (0.70.12): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2021.07.22.00) + - RCT-Folly/Futures (= 2021.07.22.00) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-jsiexecutor (= 0.70.12) + - React-jsinspector (= 0.70.12) + - React-perflogger (= 0.70.12) + - React-jsi (0.70.12): - 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): + - RCT-Folly (= 2021.07.22.00) + - React-jsi/Default (= 0.70.12) + - React-jsi/Default (0.70.12): - boost (= 1.76.0) - DoubleConversion - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsiexecutor (0.67.5): + - RCT-Folly (= 2021.07.22.00) + - React-jsiexecutor (0.70.12): - 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): + - RCT-Folly (= 2021.07.22.00) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-perflogger (= 0.70.12) + - React-jsinspector (0.70.12) + - React-logger (0.70.12): - glog - react-native-authcore (1.0.0): - React @@ -430,82 +459,87 @@ PODS: - React - react-native-randombytes (3.5.3): - React - - react-native-safe-area-context (3.2.0): + - react-native-safe-area-context (4.6.4): + - RCT-Folly + - RCTRequired + - RCTTypeSafety - React-Core + - ReactCommon/turbomodule/core - react-native-splash-screen (3.3.0): - React-Core - react-native-tracking-transparency (0.1.2): - React - react-native-webview (11.26.1): - 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) - - 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) - - 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) - - 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) - - 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) - - 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) - - 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-perflogger (0.70.12) + - React-RCTActionSheet (0.70.12): + - React-Core/RCTActionSheetHeaders (= 0.70.12) + - React-RCTAnimation (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTTypeSafety (= 0.70.12) + - React-Codegen (= 0.70.12) + - React-Core/RCTAnimationHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTBlob (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - React-Codegen (= 0.70.12) + - React-Core/RCTBlobHeaders (= 0.70.12) + - React-Core/RCTWebSocket (= 0.70.12) + - React-jsi (= 0.70.12) + - React-RCTNetwork (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTImage (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTTypeSafety (= 0.70.12) + - React-Codegen (= 0.70.12) + - React-Core/RCTImageHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - React-RCTNetwork (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTLinking (0.70.12): + - React-Codegen (= 0.70.12) + - React-Core/RCTLinkingHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTNetwork (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTTypeSafety (= 0.70.12) + - React-Codegen (= 0.70.12) + - React-Core/RCTNetworkHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTSettings (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - RCTTypeSafety (= 0.70.12) + - React-Codegen (= 0.70.12) + - React-Core/RCTSettingsHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-RCTText (0.70.12): + - React-Core/RCTTextHeaders (= 0.70.12) + - React-RCTVibration (0.70.12): + - RCT-Folly (= 2021.07.22.00) + - React-Codegen (= 0.70.12) + - React-Core/RCTVibrationHeaders (= 0.70.12) + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (= 0.70.12) + - React-runtimeexecutor (0.70.12): + - React-jsi (= 0.70.12) + - ReactCommon/turbomodule/core (0.70.12): - 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) + - RCT-Folly (= 2021.07.22.00) + - React-bridging (= 0.70.12) + - React-callinvoker (= 0.70.12) + - React-Core (= 0.70.12) + - React-cxxreact (= 0.70.12) + - React-jsi (= 0.70.12) + - React-logger (= 0.70.12) + - React-perflogger (= 0.70.12) - ReactNativeShareExtension (2.0.0): - React - - RNCAsyncStorage (1.18.2): + - RNCAsyncStorage (1.19.0): - React-Core - RNCMaskedView (0.1.11): - React @@ -541,7 +575,7 @@ PODS: - Firebase/RemoteConfig (= 7.11.0) - React-Core - RNFBApp - - RNGestureHandler (1.10.3): + - RNGestureHandler (2.12.0): - React-Core - RNIap (7.5.6): - React-Core @@ -578,13 +612,13 @@ PODS: - React-RCTText - ReactCommon/turbomodule/core - Yoga - - RNScreens (3.20.0): + - RNScreens (3.22.1): - React-Core - React-RCTImage - RNSentry (5.6.0): - React-Core - Sentry/HybridSDK (= 8.7.3) - - RNSVG (12.5.1): + - RNSVG (13.10.0): - React-Core - SDWebImage (5.9.1): - SDWebImage/Core (= 5.9.1) @@ -608,10 +642,10 @@ DEPENDENCIES: - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - Flipper (= 0.125.0) - Flipper-Boost-iOSX (= 1.76.0.1.11) - - Flipper-DoubleConversion (= 1.1.7) + - Flipper-DoubleConversion (= 3.2.0.1) - Flipper-Fmt (= 7.1.7) - - Flipper-Folly (= 2.6.7) - - Flipper-Glog (= 0.3.6) + - Flipper-Folly (= 2.6.10) + - Flipper-Glog (= 0.5.0.5) - Flipper-PeerTalk (= 0.0.4) - Flipper-RSocket (= 1.4.3) - FlipperKit (= 0.125.0) @@ -628,17 +662,22 @@ DEPENDENCIES: - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - OpenSSL-Universal (= 1.1.180) + - hermes-engine (from `../node_modules/react-native/sdks/hermes/hermes-engine.podspec`) + - libevent (~> 2.1.12) + - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) + - React-bridging (from `../node_modules/react-native/ReactCommon`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Codegen (from `build/generated/ios`) - React-Core (from `../node_modules/react-native/`) - React-Core/DevSupport (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) @@ -743,6 +782,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes/hermes-engine.podspec" RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -751,14 +792,20 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/TypeSafety" React: :path: "../node_modules/react-native/" + React-bridging: + :path: "../node_modules/react-native/ReactCommon" React-callinvoker: :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Codegen: + :path: build/generated/ios React-Core: :path: "../node_modules/react-native/" React-CoreModules: :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" React-jsi: :path: "../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: @@ -865,9 +912,9 @@ SPEC CHECKSUMS: BranchSDK: ce28650272c658fcdb66675769e670ef83845d17 BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 - FBLazyVector: d2db9d00883282819d03bbd401b2ad4360d47580 - FBReactNativeSpec: 94da4d84ba3b1acf459103320882daa481a2b62d + DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 + FBLazyVector: ad10768c7e516954e6f26b7e923eb27cda4f9895 + FBReactNativeSpec: e957ece605f33719f85d08ebb85bc862e968098b Firebase: c121feb35e4126c0b355e3313fa9b487d47319fd FirebaseABTesting: e66f1f80747792630d9b292966de206d5df9853b FirebaseAnalytics: cd3bd84d722a24a8923918af8af8e5236f615d77 @@ -880,36 +927,40 @@ SPEC CHECKSUMS: FirebaseRemoteConfig: 0ea30de5fb0231df8c1bdcdf3b6c23bdc5066131 Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c - Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 + Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b - Flipper-Folly: 83af37379faa69497529e414bd43fbfc7cae259a - Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 + Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 + Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 1f3da668190260b06b429bb211bfbee5cd790c28 + glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b GoogleAppMeasurement: fd19169c3034975cb934e865e5667bfdce59df7f GoogleDataTransport: cd9db2180fcecd8da1b561aea31e3e56cf834aa7 GoogleUtilities: e1d9ed4e544fc32a93e00e721400cbc3f377200d + hermes-engine: 9ae9c0a1ad0ca69b7e3abc1533b6beb01a3ba4ef libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0 nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 - OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b + OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97 Protobuf: 0cde852566359049847168e51bd1c690e0f70056 - RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a - 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: 0080d0a6ebf2577475bda044aa59e2ca1f909cda + RCTRequired: 1ec311d9574032834439a18d3bffcaa3b55109a7 + RCTTypeSafety: 711ee78f0aedbc3cd2870c4a838b1e332470d1fd + React: 04bbca489deec39a10ff9b671fdfc28f390b18d4 + React-bridging: 9873291a42e92403d6819498b9eda22ab8f1330d + React-callinvoker: a24dfff19ecf1c7afe283c21783f9266a05452a1 + React-Codegen: 9c8c438b22697f336d4b07018beda7b29fe20059 + React-Core: e6d02d5186afb4c53fe9a72f46b19bee06289007 + React-CoreModules: 9a183975c84272bde87e949a66192857efa82c68 + React-cxxreact: 6993f3ad248e69f03a0a4b55cf94d3e3d7457c29 + React-hermes: 077da24641ea4b63a137e0d2ba98e67f48f5eb7a + React-jsi: da00dbc79cbb1a9d45a7a0f957a89601b5c75e14 + React-jsiexecutor: 8ab6379cd3abec21019c9fed3c506750f905bb3c + React-jsinspector: ffb090a5d57aab834dee2791b1867a17bf37f26f + React-logger: 00be0dc9dacb7b23f3ab4d78aadccb4b72f24b31 react-native-authcore: cca08325158d4979caff295a8cd064733b78264f react-native-branch: f50f269fa6d2e1b8025c7fc8ebfe4872678abe53 react-native-camera: 21cf4ed26cf432ceb1fae959aa6924943fd6f714 @@ -918,24 +969,24 @@ SPEC CHECKSUMS: react-native-image-picker: 5640333245b448b0e64172576ea27760f4134099 react-native-image-sequence: b4cc7ce0ee9eeec7574b005e06059b3f7f818d96 react-native-randombytes: 3638d24759d67c68f6ccba60c52a7a8a8faa6a23 - react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79 + react-native-safe-area-context: 68b07eabfb0d14547d36f6929c0e98d818064f02 react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457 react-native-tracking-transparency: 25ff1ff866e338c137c818bdec20526bb05ffcc1 react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1 - 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: c0b9c0ab8cbaf732694cd776645b3161d128784d + React-RCTActionSheet: c2b26d0be4e6e48ed6b4666345da16c8f7933b7b + React-RCTAnimation: cc36ff278cd41365c98eeec3c8d1fa86e2fc2392 + React-RCTBlob: 648b946caa1daaf4f7fef1c2e6ed64d8b658598c + React-RCTImage: 9e57ebc138ac6df26d5382a3de644a80b74806e9 + React-RCTLinking: 0f23d86615eb7782cd59703ff476be9f278ada00 + React-RCTNetwork: bedf8874619b6b21b30085eb6562be280c481a1b + React-RCTSettings: 969e0d42aca4b4965fad006fc835d67b30be03a8 + React-RCTText: bfff536e94ff407cf53470f271ba50976768fa50 + React-RCTVibration: 89e72d020ee2848022ee214f0542facafe91110a + React-runtimeexecutor: 6bedb63b3de0c5c3bb3cc44595431e2a91c24da2 + ReactCommon: 2642dd48fe3def7738d85f747c05fdd8c3a47950 ReactNativeShareExtension: 589ed96a7823b475e630d7987a0958bff9804ee6 - RNCAsyncStorage: ddc4ee162bfd41b0d2c68bf2d95acd81dd7f1f93 + RNCAsyncStorage: 4b98ac3c64efa4e35c1197cb0c5ca5e9f5d4c666 RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 RNDeviceInfo: b6e650fbd234732c759544218657d549b4339038 RNExitApp: c4e052df2568b43bec8a37c7cd61194d4cfee2c3 @@ -946,23 +997,23 @@ SPEC CHECKSUMS: RNFBDynamicLinks: 53f5621a2ab44b6f967f2240f1b7d56f8b6c74de RNFBPerf: 27e85a7451cb366b75bd6ade8a2b912749d0a165 RNFBRemoteConfig: d2c532f1fee5862a7518190211ea2a28123167c5 - RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 + RNGestureHandler: dec4645026e7401a0899f2846d864403478ff6a5 RNIap: d248609d1b8937e63bd904e865c318e9b1457eff RNKeychain: c658833a9cb2cbcba6423bdd6e16cce59e27da0e RNLocalize: 62a949d2ec5bee0eb8f39a80a48f01e2f4f67080 RNRate: ef3bcff84f39bb1d1e41c5593d3eea4aab2bd73a - RNReanimated: 953281675307b83d2c12ac4c39e6c3415d0ce248 - RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f + RNReanimated: bec7736122a268883bdede07f1bf9cf4b40158db + RNScreens: 50ffe2fa2342eabb2d0afbe19f7c1af286bc7fb3 RNSentry: 9f0447b3ce13806f544903748de423259ead8552 - RNSVG: d7d7bc8229af3842c9cfc3a723c815a52cdd1105 + RNSVG: 80584470ff1ffc7994923ea135a3e5ad825546b9 SDWebImage: a990c053fff71e388a10f3357edb0be17929c9c5 SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21 Sentry: c7a86f43510a7d5678d4de28d78c28ab351d295b SentryPrivate: 2eaabf598a46d4b9b8822aef766df2a84caf2e6f SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 - Yoga: 099a946cbf84c9b32ffdc4278d72db26710ecf92 + Yoga: bb774af243598f7f860127c6e9ac7b62fb6519c4 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 023d7bdafb940174ba818e3c57708addfbdd5b1c +PODFILE CHECKSUM: 6cb58b0b2dd9e6800ef90d02d05bd7cb16c1d383 COCOAPODS: 1.12.1 diff --git a/metro.config.js b/metro.config.js index a83174d18..fd2e310c4 100644 --- a/metro.config.js +++ b/metro.config.js @@ -12,16 +12,6 @@ module.exports = (async () => { resolver: { sourceExts, assetExts } } = await getDefaultConfig() return { - server: { - rewriteRequestUrl: (url) => { - if (!url.endsWith('.bundle')) { - return url; - } - // https://github.com/facebook/react-native/issues/36794 - // JavaScriptCore strips query strings, so try to re-add them with a best guess. - return url + '?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true'; - }, - }, transformer: { getTransformOptions: async () => ({ transform: { diff --git a/package.json b/package.json index 6c6ea8b41..342417dd3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@json-rpc-tools/utils": "1.7.6", "@likecoin/authcore-js": "^0.3.0-like.0", "@likecoin/secretd-js": "^0.4.3", - "@react-native-async-storage/async-storage": "^1.15.16", + "@react-native-async-storage/async-storage": "^1.17.10", "@react-native-community/masked-view": "^0.1.11", "@react-native-cookies/cookies": "^6.2.1", "@react-native-firebase/analytics": "11.5.0", @@ -49,6 +49,7 @@ "buffer": "^5.4.3", "cosmjs-types": "^0.1.0", "crypto-js": "^4.1.1", + "deprecated-react-native-prop-types": "^4.1.0", "fast-json-stable-stringify": "^2.1.0", "i18n-js": "^3.0.11", "jsonwebtoken": "^9.0.0", @@ -60,11 +61,11 @@ "postinstall-postinstall": "^2.1.0", "process": "^0.11.10", "ramda": "0.29.0", - "react": "17.0.2", + "react": "18.1.0", "react-content-loader": "^4.3.4", - "react-native": "^0.67.5", + "react-native": "^0.70.0", "react-native-actions-sheet": "^0.4.8", - "react-native-authcore": "git+https://github.com/likecoin/react-native-authcore#f2d2397e8f7f4bbcd606e638693ab9194333c3be", + "react-native-authcore": "git+https://github.com/likecoin/react-native-authcore#ffa57a75cbdc4db463ef4d7ad45641b6c234b7e9", "react-native-branch": "^5.8.0", "react-native-camera": "^3.8.0", "react-native-crypto": "^2.2.0", @@ -72,27 +73,27 @@ "react-native-encrypted-storage": "^4.0.3", "react-native-exit-app": "^1.1.0", "react-native-fast-image": "^8.3.2", - "react-native-gesture-handler": "^1.10.3", + "react-native-gesture-handler": "^2.6.0", "react-native-iap": "^7.5.6", "react-native-image-picker": "https://github.com/likecoin/react-native-image-picker#5e2f78f5e3f893b13a67482471655e1ebb75ad3b", "react-native-image-sequence": "^0.7.0", "react-native-keychain": "3.1.3", "react-native-linear-gradient": "^2.5.6", "react-native-localize": "^1.0.0", - "react-native-qrcode-svg": "^5.2.0", + "react-native-qrcode-svg": "^6.2.0", "react-native-randombytes": "^3.5.3", "react-native-rate": "^1.2.12", - "react-native-reanimated": "^2.2.4", - "react-native-safe-area-context": "^3.2.0", - "react-native-screens": "^3.9.0", + "react-native-reanimated": "^2.10.0", + "react-native-safe-area-context": "^4.4.1", + "react-native-screens": "^3.18.2", "react-native-share-extension": "git+https://github.com/likecoin/react-native-share-extension#d82e2cd02b782272422da15cd484c8cbe931a6ab", "react-native-snap-carousel": "^3.9.0", "react-native-splash-screen": "^3.3.0", - "react-native-svg": "^12.1.1", + "react-native-svg": "^13.2.0", "react-native-swipe-list-view": "^3.2.4", "react-native-tracking-transparency": "^0.1.2", "react-native-url-polyfill": "^1.3.0", - "react-native-webview": "^11.13.0", + "react-native-webview": "^11.23.0", "react-navigation": "4.4.4", "react-navigation-stack": "2.10.4", "react-navigation-tabs": "2.11.1", @@ -108,11 +109,11 @@ "vm-browserify": "^1.1.2" }, "devDependencies": { - "@babel/core": "^7.12.9", - "@babel/plugin-proposal-decorators": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/preset-env": "^7.1.6", - "@babel/runtime": "^7.12.5", + "@babel/core": "^7.22.7", + "@babel/plugin-proposal-decorators": "^7.22.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/preset-env": "^7.22.7", + "@babel/runtime": "^7.22.6", "@emotion/core": "^10.0.15", "@storybook/addon-storyshots": "^5.3.21", "@storybook/react-native": "^5.3.23", @@ -120,8 +121,8 @@ "@types/jest": "24.0.16", "@types/jsonwebtoken": "^9.0.0", "@types/ramda": "0.26.18", - "@types/react": "17.0.2", - "@types/react-native": "^0.66.0", + "@types/react": "18.0.38", + "@types/react-native": "^0.70.0", "@types/react-native-share-extension": "^2.0.1", "@types/react-test-renderer": "16.8.3", "@types/styled-components": "^5.1.9", @@ -131,7 +132,7 @@ "@walletconnect/types": "^2.8.0", "babel-jest": "^24.9.0", "emotion-theming": "^10.0.14", - "eslint": "7.14.0", + "eslint": "^7.32.0", "eslint-config-prettier": "^6.0.0", "eslint-config-standard": "^13.0.1", "eslint-plugin-import": "^2.15.0", @@ -143,7 +144,7 @@ "ignite-bowser": "^4.6.2", "jest": "^24.9.0", "jetifier": "^1.6.1", - "metro-react-native-babel-preset": "^0.66.2", + "metro-react-native-babel-preset": "0.72.4", "npm-run-all": "4.1.5", "patch-package": "^7.0.0", "postinstall-prepare": "1.0.1", @@ -152,7 +153,7 @@ "react-native-dotenv": "^0.2.0", "react-native-svg-transformer": "^0.13.0", "react-powerplug": "1.0.0", - "react-test-renderer": "17.0.2", + "react-test-renderer": "18.1.0", "rimraf": "2.6.3", "solidarity": "2.3.1", "typescript": "3.9.10" diff --git a/patches/react-native+0.66.5.patch b/patches/react-native+0.66.5.patch deleted file mode 100644 index f683a1f4f..000000000 --- a/patches/react-native+0.66.5.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp b/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp -index 2c68674..ea95e40 100644 ---- a/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp -+++ b/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp -@@ -2229,7 +2229,7 @@ static float YGDistributeFreeSpaceSecondPass( - depth, - generationCount); - node->setLayoutHadOverflow( -- node->getLayout().hadOverflow() | -+ node->getLayout().hadOverflow() || - currentRelativeChild->getLayout().hadOverflow()); - } - return deltaFreeSpace; -diff --git a/node_modules/react-native/scripts/.packager.env b/node_modules/react-native/scripts/.packager.env -new file mode 100644 -index 0000000..21a13cf ---- /dev/null -+++ b/node_modules/react-native/scripts/.packager.env -@@ -0,0 +1 @@ -+export RCT_METRO_PORT=8081 -\ No newline at end of file diff --git a/patches/react-native+0.69.12.patch b/patches/react-native+0.69.12.patch new file mode 100644 index 000000000..c2f84e9ab --- /dev/null +++ b/patches/react-native+0.69.12.patch @@ -0,0 +1,17 @@ +diff --git a/node_modules/react-native/index.js b/node_modules/react-native/index.js +index d59ba34..ef3183a 100644 +--- a/node_modules/react-native/index.js ++++ b/node_modules/react-native/index.js +@@ -456,11 +456,7 @@ module.exports = { + ); + }, + get ViewPropTypes(): $FlowFixMe { +- invariant( +- false, +- 'ViewPropTypes has been removed from React Native. Migrate to ' + +- "ViewPropTypes exported from 'deprecated-react-native-prop-types'.", +- ); ++ return require('deprecated-react-native-prop-types').ViewPropTypes + }, + }; + diff --git a/patches/react-native-actions-sheet+0.4.8.patch b/patches/react-native-actions-sheet+0.4.8.patch new file mode 100644 index 000000000..4ffd0a586 --- /dev/null +++ b/patches/react-native-actions-sheet+0.4.8.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/react-native-actions-sheet/index.d.ts b/node_modules/react-native-actions-sheet/index.d.ts +index c87a3c8..c6a8e1f 100644 +--- a/node_modules/react-native-actions-sheet/index.d.ts ++++ b/node_modules/react-native-actions-sheet/index.d.ts +@@ -22,6 +22,9 @@ declare module "react-native-actions-sheet" { + export const removeHasReachedTopListener: (callback: () => void) => void + + export type ActionSheetProps = { ++ ++ children?: React.ReactNode; ++ + /** + * Animate the opening and closing of ActionSheet. + diff --git a/patches/react-native-gesture-handler+2.12.0.patch b/patches/react-native-gesture-handler+2.12.0.patch new file mode 100644 index 000000000..addfb357a --- /dev/null +++ b/patches/react-native-gesture-handler+2.12.0.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt b/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +index 1bec076..e341f04 100644 +--- a/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt ++++ b/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +@@ -244,7 +244,7 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager(), R + + // Since Android 13, alpha channel in RippleDrawable is clamped between [128, 255] + // see https://github.com/aosp-mirror/platform_frameworks_base/blob/c1bd0480261460584753508327ca8a0c6fc80758/graphics/java/android/graphics/drawable/RippleDrawable.java#L1012 +- if (rippleColor == Color.TRANSPARENT && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { ++ if (rippleColor == Color.TRANSPARENT && Build.VERSION.SDK_INT >= 33) { + return null + } + diff --git a/test/__snapshots__/storyshots.test.ts.snap b/test/__snapshots__/storyshots.test.ts.snap index ee6990d10..e607365b4 100644 --- a/test/__snapshots__/storyshots.test.ts.snap +++ b/test/__snapshots__/storyshots.test.ts.snap @@ -16,7 +16,6 @@ exports[`Storyshots Avatar Behavior 1`] = ` } > @@ -606,7 +616,12 @@ exports[`Storyshots Avatar Behavior 1`] = ` vbWidth={64} > @@ -819,7 +840,12 @@ exports[`Storyshots Avatar Behavior 1`] = ` vbWidth={64} > @@ -858,7 +890,6 @@ exports[`Storyshots Button Style Presets 1`] = ` } > @@ -4790,8 +4872,8 @@ exports[`Storyshots CommunityLinks Behavior 1`] = ` > @@ -4859,8 +4952,8 @@ exports[`Storyshots CommunityLinks Behavior 1`] = ` > @@ -4928,8 +5032,8 @@ exports[`Storyshots CommunityLinks Behavior 1`] = ` > @@ -4994,7 +5109,6 @@ exports[`Storyshots FormRow Assembled 1`] = ` } > - + @@ -6679,8 +6797,8 @@ exports[`Storyshots Header Behavior 1`] = ` } > - + @@ -6729,7 +6854,6 @@ exports[`Storyshots HeaderTab Icon 1`] = ` } > - + - + - + @@ -7871,7 +8012,6 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` } > - + @@ -8162,8 +8348,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -8214,27 +8419,44 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + @@ -8258,6 +8480,12 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` content="1" dx={Array []} dy={Array []} + fill={ + Object { + "payload": 4278190080, + "type": 0, + } + } font={Object {}} rotate={Array []} x={Array []} @@ -8268,21 +8496,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` @@ -8425,8 +8686,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -8477,20 +8757,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + @@ -8679,8 +9033,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -8731,20 +9104,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + - + @@ -8963,8 +9421,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -9015,20 +9492,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + @@ -9217,8 +9768,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -9269,20 +9839,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + @@ -9501,8 +10156,8 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` > - + @@ -9553,20 +10227,37 @@ exports[`Storyshots LikeCoinButton Style Presets 1`] = ` vbHeight={36} vbWidth={36} > - + @@ -9680,7 +10428,6 @@ exports[`Storyshots NotificationListItem Behavior 1`] = ` } > - + @@ -10250,7 +11015,7 @@ exports[`Storyshots NotificationListItem Behavior 1`] = ` > - + @@ -10470,8 +11253,8 @@ exports[`Storyshots NotificationListItem Behavior 1`] = ` } > - + @@ -10692,8 +11482,8 @@ exports[`Storyshots NotificationListItem Behavior 1`] = ` } > - + @@ -10914,8 +11711,8 @@ exports[`Storyshots NotificationListItem Behavior 1`] = ` } > - + @@ -11024,7 +11828,6 @@ exports[`Storyshots ScrollView Style Presets 1`] = ` } > - + @@ -11404,8 +12218,8 @@ exports[`Storyshots SponsorLinkCTATableView Behavior 1`] = ` > - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13086,7 +14097,14 @@ exports[`Storyshots StatisticsWeeklyChart Behavior 1`] = ` vbWidth={286} width="100%" > - + - + - + - + - + - + - + @@ -14248,9 +15758,8 @@ exports[`Storyshots StatisticsWeeklyChart Behavior 1`] = ` > @@ -14435,7 +15949,6 @@ exports[`Storyshots SupporterListItem Style Presets 1`] = ` } > @@ -14795,7 +16319,6 @@ exports[`Storyshots Switch Behaviour 1`] = ` } > - + @@ -16161,8 +17694,8 @@ exports[`Storyshots TableViewCell Behavior 1`] = ` > - + @@ -16287,8 +17832,8 @@ exports[`Storyshots TableViewCell Behavior 1`] = ` > @@ -16383,7 +17939,6 @@ exports[`Storyshots Text Passing Content 1`] = ` } > =0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= - ora@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b" @@ -13182,16 +13547,19 @@ ora@^2.1.0: strip-ansi "^4.0.0" wcwidth "^1.0.1" -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" wcwidth "^1.0.1" os-browserify@^0.3.0: @@ -13250,6 +13618,13 @@ p-limit@^2.3.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -13271,6 +13646,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-map@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" @@ -13553,6 +13935,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pidtree@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" @@ -13603,13 +13990,18 @@ pino@7.11.0: sonic-boom "^2.2.1" thread-stream "^0.15.1" -pirates@^4.0.0, pirates@^4.0.1: +pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== dependencies: node-modules-regexp "^1.0.0" +pirates@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -13638,23 +14030,6 @@ pkg-up@2.0.0: dependencies: find-up "^2.1.0" -plist@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c" - integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ== - dependencies: - base64-js "^1.2.3" - xmlbuilder "^9.0.7" - xmldom "0.1.x" - -plist@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" - integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^15.1.1" - pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" @@ -13665,10 +14040,10 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== pnp-webpack-plugin@1.5.0: version "1.5.0" @@ -13864,11 +14239,6 @@ prismjs@~1.17.0: optionalDependencies: clipboard "^2.0.0" -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -13928,7 +14298,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -promise@^8.0.3: +promise@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== @@ -14181,16 +14551,7 @@ prompts@^2.4.0: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.5.10, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prop-types@^15.6.0, prop-types@^15.8.1: +prop-types@*, prop-types@^15.6.0, prop-types@^15.8.0, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -14199,6 +14560,15 @@ prop-types@^15.6.0, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + property-information@^5.0.0: version "5.6.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" @@ -14319,15 +14689,15 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qrcode@^1.2.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.2.tgz#e7c82a60140916d666541043bd2b0b72ee4e38a6" - integrity sha512-eR6RgxFYPDFH+zFLTJKtoNP/RlsHANQb52AUmQ2bGDPMuUw7jJb0F+DNEgx7qQGIElrbFxWYMc0/B91zLZPF9Q== +qrcode@^1.5.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== dependencies: dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" qs@6.11.0, qs@^6.10.2: version "6.11.0" @@ -14563,10 +14933,10 @@ react-devtools-core@3.6.3: shell-quote "^1.6.1" ws "^3.3.1" -react-devtools-core@4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.19.1.tgz#bc37c2ef2f48f28c6af4c7292be9dca1b63deace" - integrity sha512-2wJiGffPWK0KggBjVwnTaAk+Z3MSxKInHmdzPTrBh1mAarexsa93Kw+WMX88+XjN+TtYgAiLe9xeTqcO5FfJTw== +react-devtools-core@4.24.0: + version "4.24.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.24.0.tgz#7daa196bdc64f3626b3f54f2ff2b96f7c4fdf017" + integrity sha512-Rw7FzYOOzcfyUPaAm9P3g0tFdGqGq2LLiAI+wjYcp6CsF3DeeMrRS3HZAho4s273C29G/DJhx0e8BpRE/QZNGg== dependencies: shell-quote "^1.6.1" ws "^7" @@ -14634,7 +15004,7 @@ react-hotkeys@2.0.0: dependencies: prop-types "^15.6.1" -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0": +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.1.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== @@ -14654,11 +15024,6 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== -react-is@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" @@ -14669,9 +15034,9 @@ react-native-actions-sheet@^0.4.8: resolved "https://registry.yarnpkg.com/react-native-actions-sheet/-/react-native-actions-sheet-0.4.8.tgz#61859e02fd19b274517b70066cafe4300b3d3e89" integrity sha512-fo/WNMAwt2aFoWslJmPAQ0EPE6BEZ2UqXkX0ySGjXXKZSg2fohflEHngooPfvnQaO5n2cdY2dkn76zmKgiDI4g== -"react-native-authcore@git+https://github.com/likecoin/react-native-authcore#f2d2397e8f7f4bbcd606e638693ab9194333c3be": +"react-native-authcore@git+https://github.com/likecoin/react-native-authcore#ffa57a75cbdc4db463ef4d7ad45641b6c234b7e9": version "1.0.0" - resolved "git+https://github.com/likecoin/react-native-authcore#f2d2397e8f7f4bbcd606e638693ab9194333c3be" + resolved "git+https://github.com/likecoin/react-native-authcore#ffa57a75cbdc4db463ef4d7ad45641b6c234b7e9" dependencies: color "^3.1.2" url "^0.11.0" @@ -14688,13 +15053,14 @@ react-native-camera@^3.8.0: dependencies: prop-types "^15.6.2" -react-native-codegen@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.8.tgz#b7796a54074139d956fff2862cf1285db43c891b" - integrity sha512-k/944+0XD+8l7zDaiKfYabyEKmAmyZgS1mj+4LcSRPyHnrjgCHKrh/Y6jM6kucQ6xU1+1uyMmF/dSkikxK8i+Q== +react-native-codegen@^0.70.6: + version "0.70.6" + resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.70.6.tgz#2ce17d1faad02ad4562345f8ee7cbe6397eda5cb" + integrity sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw== dependencies: + "@babel/parser" "^7.14.0" flow-parser "^0.121.0" - jscodeshift "^0.11.0" + jscodeshift "^0.13.1" nullthrows "^1.1.1" react-native-crypto@^2.2.0: @@ -14745,17 +15111,22 @@ react-native-flipper@^0.34.0: resolved "https://registry.yarnpkg.com/react-native-flipper/-/react-native-flipper-0.34.0.tgz#7df1f38ba5d97a9321125fe0fccbe47d99e6fa1d" integrity sha512-48wgm29HJTOlZ0DibBsvXueEOY0EPIVL0wWKbwRfgrk86+luSEuLW3aZC50oJa95zSFb9qYShTV/6dWqh4Jamg== -react-native-gesture-handler@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.10.3.tgz#942bbf2963bbf49fa79593600ee9d7b5dab3cfc0" - integrity sha512-cBGMi1IEsIVMgoox4RvMx7V2r6bNKw0uR1Mu1o7NbuHS6BRSVLq0dP34l2ecnPlC+jpWd3le6Yg1nrdCjby2Mw== +react-native-gesture-handler@^2.6.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.12.0.tgz#59ca9d97e4c71f70b9c258f14a1a081f4c689976" + integrity sha512-rr+XwVzXAVpY8co25ukvyI38fKCxTQjz7WajeZktl8qUPdh1twnSExgpT47DqDi4n+m+OiJPAnHfZOkqqAQMOg== dependencies: "@egjs/hammerjs" "^2.0.17" - fbjs "^3.0.0" hoist-non-react-statics "^3.3.0" invariant "^2.2.4" + lodash "^4.17.21" prop-types "^15.7.2" +react-native-gradle-plugin@^0.70.3: + version "0.70.3" + resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz#cbcf0619cbfbddaa9128701aa2d7b4145f9c4fc8" + integrity sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A== + react-native-iap@^7.5.6: version "7.5.6" resolved "https://registry.yarnpkg.com/react-native-iap/-/react-native-iap-7.5.6.tgz#75a370f0a689da4fbe5ecf2cd9b7bdd0f7d20f2f" @@ -14792,13 +15163,13 @@ react-native-localize@^1.0.0: resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-1.1.4.tgz#d48aa4f75afd39a42dcd0bdf40f7f44a8ccd604c" integrity sha512-NHsA812yvoH9ktPl1IqIxwDDwykipyH7K4zeW/nnipZuQb2g73SQEB3ryqKHmRASWD0DZl0hIxHr9IszzG5W5w== -react-native-qrcode-svg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-native-qrcode-svg/-/react-native-qrcode-svg-5.2.0.tgz#013f7bb1d6e8de307fdca6141b4e815d861adf68" - integrity sha512-Mwfs3tttAqu+skXsfwVXf49NqCCkaxqpmTcx3tA3eWjt/rdgfvm/k66dAUonBKvNTje0S1aAxO65ENzCXnuVcg== +react-native-qrcode-svg@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/react-native-qrcode-svg/-/react-native-qrcode-svg-6.2.0.tgz#62b62c5997ff23ba22544e289a6112a08f8ea306" + integrity sha512-rb2PgUwT8QpQyReVYNvzRY84AHsMh81354Tnkfp6MfqRbcdJURhnBWLBOO11pLMS6eXiwlq4SkcQxy88hRq+Dw== dependencies: - prop-types "^15.5.10" - qrcode "^1.2.0" + prop-types "^15.8.0" + qrcode "^1.5.1" react-native-randombytes@^3.5.3: version "3.5.3" @@ -14813,7 +15184,7 @@ react-native-rate@^1.2.12: resolved "https://registry.yarnpkg.com/react-native-rate/-/react-native-rate-1.2.12.tgz#d4307b2994f9c849b987eb65599ec467db4aee04" integrity sha512-A/z3s7Zth08aXcJnru6S4p71NG8acx2w5LhIfItwTJUbQruNJugk8WrN51dLBCSDv8W33kbS5YoUT4M9jOP5gA== -react-native-reanimated@^2.2.4: +react-native-reanimated@^2.10.0: version "2.17.0" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.17.0.tgz#eae2308235961cdd79810e01dfdd7e88b1ae5b5c" integrity sha512-bVy+FUEaHXq4i+aPPqzGeor1rG4scgVNBbBz21ohvC7iMpB9IIgvGsmy1FAoodZhZ5sa3EPF67Rcec76F1PXlQ== @@ -14825,10 +15196,10 @@ react-native-reanimated@^2.2.4: setimmediate "^1.0.5" string-hash-64 "^1.0.3" -react-native-safe-area-context@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.2.0.tgz#06113c6b208f982d68ab5c3cebd199ca93db6941" - integrity sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA== +react-native-safe-area-context@^4.4.1: + version "4.6.4" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.6.4.tgz#84a324f28209a91a9a5b802f9339428f2366ebe3" + integrity sha512-UWYsokTLZmj8g0cluzoUeGUjQrCTW4slKr2xKmuwQCurAuvSJq/QvfhCrqyea++XrXo46+1Q3wSoP50YXG24jA== react-native-safe-area-view@^0.14.9: version "0.14.9" @@ -14837,10 +15208,10 @@ react-native-safe-area-view@^0.14.9: dependencies: hoist-non-react-statics "^2.3.1" -react-native-screens@^3.9.0: - version "3.20.0" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.20.0.tgz#4d154177395e5541387d9a05bc2e12e54d2fb5b1" - integrity sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg== +react-native-screens@^3.18.2: + version "3.22.1" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.22.1.tgz#b0eb0696dbf1f9a852061cc71c0f8cdb95ed8e53" + integrity sha512-ffzwUdVKf+iLqhWSzN5DXBm0s2w5sN0P+TaHHPAx42LT7+DT0g8PkHT1QDvxpR5vCEPSS1i3EswyVK4HCuhTYg== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" @@ -14870,10 +15241,10 @@ react-native-svg-transformer@^0.13.0: "@svgr/core" "^4.1.0" semver "^5.6.0" -react-native-svg@^12.1.1: - version "12.5.1" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.5.1.tgz#7dfd9daf2f8ed7843c0f3e7a16af193bd5f9b287" - integrity sha512-c374ENsq2MWCfr+7jC7TGwSeOAuC1Dp0osh2pw8PjpYFxmmB/toFIwcnCLz+SgBd6iLJClRhbATealqM05HOGg== +react-native-svg@^13.2.0: + version "13.10.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.10.0.tgz#d3c6222ea9cc1e21e2af0fd59dfbeafe7a3d0dc1" + integrity sha512-D/oYTmUi5nsA/2Nw4WYlF1UUi3vZqhpESpiEhpYCIFB/EMd6vz4A/uq3tIzZFcfa5z2oAdGSxRU1TaYr8IcPlQ== dependencies: css-select "^5.1.0" css-tree "^1.1.3" @@ -14905,7 +15276,7 @@ react-native-url-polyfill@^1.3.0: dependencies: whatwg-url-without-unicode "8.0.0-3" -react-native-webview@^11.13.0: +react-native-webview@^11.23.0: version "11.26.1" resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.26.1.tgz#658c09ed5162dc170b361e48c2dd26c9712879da" integrity sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw== @@ -14913,15 +15284,15 @@ react-native-webview@^11.13.0: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@^0.67.5: - version "0.67.5" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.67.5.tgz#9f2aeabf0766fb4bd5385685f4f4f2406bcdf819" - integrity sha512-/xEksthqImZGDfcqzEmbOw0KRkp9/x+cC8T8uTHhSKLLa8pOFLGdF190UOjnLammGmAmFy0+ZcJf0Ujm53IGeA== +react-native@^0.70.0: + version "0.70.12" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.12.tgz#9efe39decda4f867089b0d67fdfb41ed238de45a" + integrity sha512-VbKb46xYoYxTEtuxALoigF7eqqtVt4Qp/xxyf6pUGIWe3voHd3/gF7rP00bDO5k0OPK2Dbvkdp0X8Qzph+R4GA== 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" "9.3.3" + "@react-native-community/cli-platform-android" "9.3.1" + "@react-native-community/cli-platform-ios" "9.3.0" "@react-native/assets" "1.0.0" "@react-native/normalize-color" "2.0.0" "@react-native/polyfills" "2.0.0" @@ -14929,23 +15300,25 @@ react-native@^0.67.5: anser "^1.4.9" base64-js "^1.1.2" event-target-shim "^5.0.1" - hermes-engine "~0.9.0" invariant "^2.2.4" jsc-android "^250230.2.1" - metro-react-native-babel-transformer "0.66.2" - metro-runtime "0.66.2" - metro-source-map "0.66.2" + memoize-one "^5.0.0" + metro-react-native-babel-transformer "0.72.4" + metro-runtime "0.72.4" + metro-source-map "0.72.4" + mkdirp "^0.5.1" 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.3.0" + react-devtools-core "4.24.0" + react-native-codegen "^0.70.6" + react-native-gradle-plugin "^0.70.3" react-refresh "^0.4.0" + react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" - scheduler "^0.20.2" + scheduler "^0.22.0" stacktrace-parser "^0.1.3" - use-subscription "^1.0.0" + use-sync-external-store "^1.0.0" whatwg-fetch "^3.0.0" ws "^6.1.4" @@ -15008,7 +15381,7 @@ react-refresh@^0.4.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.0.tgz#d421f9bd65e0e4b9822a399f14ac56bda9c92292" integrity sha512-bacjSio8GOtzNZKZZM6EWqbhlbb6pr28JWJWFTLwEBKvPIBRo6/Ob68D2EWZA2VyTdQxAh+TRnCYOPNKsQiXTA== -react-shallow-renderer@^16.13.1: +react-shallow-renderer@^16.15.0: version "16.15.0" resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== @@ -15037,15 +15410,14 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-test-renderer@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" - integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== +react-test-renderer@18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-18.1.0.tgz#35b75754834cf9ab517b6813db94aee0a6b545c3" + integrity sha512-OfuueprJFW7h69GN+kr4Ywin7stcuqaYAt1g7airM5cUgP0BoF5G5CXsPGmXeDeEkncb2fqYNECO4y18sSqphg== dependencies: - object-assign "^4.1.1" - react-is "^17.0.2" - react-shallow-renderer "^16.13.1" - scheduler "^0.20.2" + react-is "^18.1.0" + react-shallow-renderer "^16.15.0" + scheduler "^0.22.0" react-textarea-autosize@^7.1.0: version "7.1.2" @@ -15055,13 +15427,12 @@ react-textarea-autosize@^7.1.0: "@babel/runtime" "^7.1.2" prop-types "^15.6.0" -react@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890" + integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" react@^16.8.3: version "16.14.0" @@ -15290,7 +15661,7 @@ realpath-native@^1.1.0: dependencies: util.promisify "^1.0.0" -recast@^0.20.3: +recast@^0.20.4: version "0.20.5" resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== @@ -15374,13 +15745,6 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" @@ -15573,6 +15937,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -15671,6 +16040,13 @@ rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" @@ -15803,7 +16179,7 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@^1.2.1, sax@^1.2.4: +sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -15816,13 +16192,12 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8" + integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@^1.0.0: version "1.0.0" @@ -16140,15 +16515,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= -simple-plist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.0.0.tgz#bed3085633b22f371e111f45d159a1ccf94b81eb" - integrity sha512-043L2rO80LVF7zfZ+fqhsEkoJFvW8o59rt/l4ctx1TJWoTx7/jkiS1R5TatD15Z1oYnuLJytzE7gcnnBuIPL2g== - dependencies: - bplist-creator "0.0.7" - bplist-parser "0.1.1" - plist "^3.0.1" - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -16206,7 +16572,7 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.0.0, slice-ansi@^2.1.0: +slice-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== @@ -16215,6 +16581,15 @@ slice-ansi@^2.0.0, slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -16292,7 +16667,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6, source-map-support@^0.5.9: +source-map-support@^0.5.16: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.6: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== @@ -16515,11 +16898,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-buffers@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" - integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -16597,7 +16975,7 @@ string-width@^4.0.0, string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string-width@^4.2.0: +string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -16820,6 +17198,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -16867,15 +17252,16 @@ symbol.prototype.description@^1.0.0: es-abstract "^1.17.0-next.1" has-symbols "^1.0.1" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.9: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -16917,7 +17303,7 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" -temp@^0.8.1: +temp@^0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== @@ -17262,6 +17648,11 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -17326,11 +17717,6 @@ ua-parser-js@^0.7.18: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== -ua-parser-js@^1.0.35: - version "1.0.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" - integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== - uglify-es@^3.1.9: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" @@ -17346,11 +17732,6 @@ uint8arrays@^3.0.0, uint8arrays@^3.1.0: dependencies: multiformats "^9.4.2" -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= - ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -17549,14 +17930,7 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" -use-subscription@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.8.0.tgz#f118938c29d263c2bce12fc5585d3fe694d4dbce" - integrity sha512-LISuG0/TmmoDoCRmV5XAqYkd3UCBNM0ML3gGBndze65WITcsExCD3DTvXXTLyNcOC0heFQZzluW88bN/oC1DQQ== - dependencies: - use-sync-external-store "^1.2.0" - -use-sync-external-store@^1.2.0: +use-sync-external-store@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== @@ -18024,26 +18398,11 @@ write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@7.5.3, ws@^7: version "7.5.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@^1.1.0, ws@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w== - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@^3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -18072,41 +18431,11 @@ ws@^7.5.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -xcode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.0.0.tgz#134f1f94c26fbfe8a9aaa9724bfb2772419da1a2" - integrity sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw== - dependencies: - simple-plist "^1.0.0" - uuid "^3.3.2" - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlbuilder@^15.1.1: - version "15.1.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" - integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== - -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmldoc@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.1.2.tgz#6666e029fe25470d599cd30e23ff0d1ed50466d7" - integrity sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ== - dependencies: - sax "^1.2.1" - -xmldom@0.1.x: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - xstream@^11.14.0: version "11.14.0" resolved "https://registry.yarnpkg.com/xstream/-/xstream-11.14.0.tgz#2c071d26b18310523b6877e86b4e54df068a9ae5" @@ -18150,14 +18479,6 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.0.tgz#47ebe58ee718f772ce65862beb1db816210589a0" integrity sha512-8/1wgzdKc7bc9E6my5wZjmdavHLvO/QOmLG1FBugblEvY4IXrLjlViIOmL24HthU042lWTDRO90Fz1Yp66UnMw== -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -18181,22 +18502,6 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@^13.2.4: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -18229,3 +18534,8 @@ yargs@^15.1.0, yargs@^15.3.1: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^18.1.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==