diff --git a/android/app/build.gradle b/android/app/build.gradle index 3ac19ee022..eb0c804c2b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -2,6 +2,8 @@ apply plugin: "com.android.application" apply plugin: "kotlin-android" apply plugin: "kotlin-android-extensions" +apply from: '../../node_modules/react-native-unimodules/gradle.groovy' + import com.android.build.OutputFile /** @@ -211,6 +213,7 @@ dependencies { implementation "com.facebook.react:react-native:+" // From node_modules implementation 'com.facebook.fresco:animated-gif:1.10.0' // For animated GIF support implementation "com.android.support:customtabs:${rootProject.ext.supportLibVersion}" + addUnimodulesDependencies() testImplementation 'junit:junit:4.12' testImplementation 'org.junit.jupiter:junit-jupiter:5.4.0' diff --git a/android/app/src/main/java/com/zulipmobile/MainApplication.java b/android/app/src/main/java/com/zulipmobile/MainApplication.java index 3345bb576c..a954aefd98 100644 --- a/android/app/src/main/java/com/zulipmobile/MainApplication.java +++ b/android/app/src/main/java/com/zulipmobile/MainApplication.java @@ -20,12 +20,17 @@ import io.sentry.RNSentryPackage; import java.util.Arrays; import java.util.List; +import org.unimodules.adapters.react.ModuleRegistryAdapter; +import org.unimodules.adapters.react.ReactModuleRegistryProvider; +import com.zulipmobile.generated.BasePackageList; import com.zulipmobile.notifications.ConversationMap; import com.zulipmobile.notifications.FCMPushNotifications; import com.zulipmobile.notifications.NotificationsPackage; public class MainApplication extends Application implements ReactApplication { + private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(new BasePackageList().getPackageList(), null); + private ConversationMap conversations; public ConversationMap getConversations() { return conversations; } @@ -52,7 +57,8 @@ protected List getPackages() { new RNSoundPackage(), new RNDeviceInfo(), new ZulipNativePackage(), - new NotificationsPackage() + new NotificationsPackage(), + new ModuleRegistryAdapter(mModuleRegistryProvider) ); } diff --git a/android/app/src/main/java/com/zulipmobile/generated/BasePackageList.java b/android/app/src/main/java/com/zulipmobile/generated/BasePackageList.java new file mode 100644 index 0000000000..38ccbfa4d8 --- /dev/null +++ b/android/app/src/main/java/com/zulipmobile/generated/BasePackageList.java @@ -0,0 +1,15 @@ +package com.zulipmobile.generated; + +import java.util.Arrays; +import java.util.List; +import org.unimodules.core.interfaces.Package; + +public class BasePackageList { + public List getPackageList() { + return Arrays.asList( + new expo.modules.constants.ConstantsPackage(), + new expo.modules.filesystem.FileSystemPackage(), + new expo.modules.permissions.PermissionsPackage() + ); + } +} diff --git a/android/build.gradle b/android/build.gradle index c762aad8e8..ce37b70b41 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -53,6 +53,12 @@ project(":react-native-device-info").beforeEvaluate { ext.googlePlayServicesVersion = "16.1.0" } +project(":unimodules-react-native-adapter").afterEvaluate { + it.dependencies { + implementation 'com.facebook.react:react-native:+' + } +} + subprojects { afterEvaluate { if (project.hasProperty("android")) { diff --git a/android/settings.gradle b/android/settings.gradle index c8fe94dd77..e2003ec3fa 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,4 +1,8 @@ rootProject.name = 'ZulipMobile' + +apply from: '../node_modules/react-native-unimodules/gradle.groovy' +includeUnimodulesProjects() + include ':@react-native-community_async-storage' project(':@react-native-community_async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/async-storage/android') include ':@sentry_react-native' diff --git a/ios/Podfile b/ios/Podfile index 1ebb769cca..0f83a39767 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -2,6 +2,8 @@ # (project > ZulipMobile > Info in Xcode) platform :ios, '10.3' +require_relative '../node_modules/react-native-unimodules/cocoapods.rb' + # This list will need to change for RN >= v0.60. If you're changing it # for any other reason, first look at the example Podfile for v0.59 at # https://github.com/facebook/react-native-website/blob/ded79d2cf/docs/integration-with-existing-apps.md#configuring-cocoapods-dependencies. @@ -47,6 +49,9 @@ target 'ZulipMobile' do pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage' pod 'react-native-simple-toast', :path => '../node_modules/react-native-simple-toast' + # unimodules provides Expo packages individually. + use_unimodules! + target 'ZulipMobileTests' do inherit! :search_paths # Pods for testing diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 6e5e5c8f28..24f59e6bd0 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,6 +1,16 @@ PODS: - boost-for-react-native (1.63.0) - DoubleConversion (1.1.6) + - EXAppLoaderProvider (7.0.0) + - EXConstants (7.0.1): + - UMConstantsInterface + - UMCore + - EXFileSystem (7.0.0): + - UMCore + - UMFileSystemInterface + - EXPermissions (7.0.0): + - UMCore + - UMPermissionsInterface - Folly (2018.10.22.00): - boost-for-react-native - DoubleConversion @@ -107,10 +117,29 @@ PODS: - Sentry/Core (= 4.4.3) - Sentry/Core (4.4.3) - Toast (4.0.0) + - UMBarCodeScannerInterface (4.0.0) + - UMCameraInterface (4.0.0) + - UMConstantsInterface (4.0.0) + - UMCore (4.0.0) + - UMFaceDetectorInterface (4.0.0) + - UMFileSystemInterface (4.0.0) + - UMFontInterface (4.0.0) + - UMImageLoaderInterface (4.0.0) + - UMPermissionsInterface (4.0.0) + - UMReactNativeAdapter (4.0.0): + - React + - UMCore + - UMFontInterface + - UMSensorsInterface (4.0.0) + - UMTaskManagerInterface (4.0.0) - yoga (0.59.10.React) DEPENDENCIES: - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - EXAppLoaderProvider (from `../node_modules/expo-app-loader-provider/ios`) + - EXConstants (from `../node_modules/expo-constants/ios`) + - EXFileSystem (from `../node_modules/expo-file-system/ios`) + - EXPermissions (from `../node_modules/expo-permissions/ios`) - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - react-native-image-picker (from `../node_modules/react-native-image-picker`) @@ -144,6 +173,18 @@ DEPENDENCIES: - "RNSentry (from `../node_modules/@sentry/react-native`)" - RNSound (from `../node_modules/react-native-sound`) - RNVectorIcons (from `../node_modules/react-native-vector-icons`) + - UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`) + - UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`) + - UMConstantsInterface (from `../node_modules/unimodules-constants-interface/ios`) + - "UMCore (from `../node_modules/@unimodules/core/ios`)" + - UMFaceDetectorInterface (from `../node_modules/unimodules-face-detector-interface/ios`) + - UMFileSystemInterface (from `../node_modules/unimodules-file-system-interface/ios`) + - UMFontInterface (from `../node_modules/unimodules-font-interface/ios`) + - UMImageLoaderInterface (from `../node_modules/unimodules-image-loader-interface/ios`) + - UMPermissionsInterface (from `../node_modules/unimodules-permissions-interface/ios`) + - "UMReactNativeAdapter (from `../node_modules/@unimodules/react-native-adapter/ios`)" + - UMSensorsInterface (from `../node_modules/unimodules-sensors-interface/ios`) + - UMTaskManagerInterface (from `../node_modules/unimodules-task-manager-interface/ios`) - yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -155,6 +196,18 @@ SPEC REPOS: EXTERNAL SOURCES: DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + EXAppLoaderProvider: + :path: !ruby/object:Pathname + path: "../node_modules/expo-app-loader-provider/ios" + EXConstants: + :path: !ruby/object:Pathname + path: "../node_modules/expo-constants/ios" + EXFileSystem: + :path: !ruby/object:Pathname + path: "../node_modules/expo-file-system/ios" + EXPermissions: + :path: !ruby/object:Pathname + path: "../node_modules/expo-permissions/ios" Folly: :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" glog: @@ -191,12 +244,52 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-sound" RNVectorIcons: :path: "../node_modules/react-native-vector-icons" + UMBarCodeScannerInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-barcode-scanner-interface/ios" + UMCameraInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-camera-interface/ios" + UMConstantsInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-constants-interface/ios" + UMCore: + :path: !ruby/object:Pathname + path: "../node_modules/@unimodules/core/ios" + UMFaceDetectorInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-face-detector-interface/ios" + UMFileSystemInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-file-system-interface/ios" + UMFontInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-font-interface/ios" + UMImageLoaderInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-image-loader-interface/ios" + UMPermissionsInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-permissions-interface/ios" + UMReactNativeAdapter: + :path: !ruby/object:Pathname + path: "../node_modules/@unimodules/react-native-adapter/ios" + UMSensorsInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-sensors-interface/ios" + UMTaskManagerInterface: + :path: !ruby/object:Pathname + path: "../node_modules/unimodules-task-manager-interface/ios" yoga: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd + EXAppLoaderProvider: 5d348813a9cf09b03bbe5b8b55437bc1bfbddbd1 + EXConstants: 857aa7b1c84e2878f8402d712061860bca16a697 + EXFileSystem: 7e53a2c30a2eb6987ba6d5158ab908f947523228 + EXPermissions: df10ad83df2f6b647aec304619354f8ab48d5f63 Folly: de497beb10f102453a1afa9edbf8cf8a251890de glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d React: 36d0768f9e93be2473b37e7fa64f92c1d5341eef @@ -217,8 +310,20 @@ SPEC CHECKSUMS: RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 Sentry: 14bdd673870e8cf64932b149fad5bbbf39a9b390 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 + UMBarCodeScannerInterface: d5a6fdc98ed6241225b0a8432a7f4e2b397668bc + UMCameraInterface: 68870a3197fee85bd5afca5609ba4a5b7257d19d + UMConstantsInterface: d25b8e8887ca7aaf568c06caf08f4d40734ee4ef + UMCore: 402cee150324974974f5c32b5404d8af65e4cff5 + UMFaceDetectorInterface: 7b4f1a92f0c726b58b086296048efe193b570678 + UMFileSystemInterface: aadb9a67aa6470d7ebc06cf04dc54fee6781ac48 + UMFontInterface: 2d3c128285086bbed3d2a650f1d698323ef3b25a + UMImageLoaderInterface: 2829a7571a12d2e754c73c55ffe7e327d8402c7d + UMPermissionsInterface: b6a6e96db0f4011a25aaca14e6022529dd3d6e4e + UMReactNativeAdapter: 93c2f520a1cdb6ef3058a7b6a95275a804e0923b + UMSensorsInterface: cf59dd7602764a2419e00167429be3e4be39c61d + UMTaskManagerInterface: 1e70fe58b872355f0ecb44fb81bb1a16484047f0 yoga: 684513b14b03201579ba3cee20218c9d1298b0cc -PODFILE CHECKSUM: 882347e8d497f7575a47b2d21471f49b106eed82 +PODFILE CHECKSUM: 762c4b235bcb63c57985514d4c13253fe5e51782 COCOAPODS: 1.8.4 diff --git a/ios/ZulipMobile/AppDelegate.h b/ios/ZulipMobile/AppDelegate.h index 90e4d6a2f6..7c3d3fb026 100644 --- a/ios/ZulipMobile/AppDelegate.h +++ b/ios/ZulipMobile/AppDelegate.h @@ -9,9 +9,11 @@ #import #import +#import @interface AppDelegate : UIResponder +@property (nonatomic, strong) UMModuleRegistryAdapter *moduleRegistryAdapter; @property (nonatomic, strong) UIWindow *window; @end diff --git a/ios/ZulipMobile/AppDelegate.m b/ios/ZulipMobile/AppDelegate.m index e7fa384980..beab8d010f 100644 --- a/ios/ZulipMobile/AppDelegate.m +++ b/ios/ZulipMobile/AppDelegate.m @@ -17,12 +17,16 @@ #import #import #import +#import +#import +#import @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RCTSetLogThreshold(RCTLogLevelError); + self.moduleRegistryAdapter = [[UMModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[UMModuleRegistryProvider alloc] init]]; RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge @@ -39,6 +43,14 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( return YES; } +- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge +{ + NSArray> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge]; + // You can inject any extra modules that you would like here, more information at: + // https://facebook.github.io/react-native/docs/native-modules-ios.html#dependency-injection + return extraModules; +} + - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { // The template upstream has some `#if DEBUG` goo around this, to diff --git a/package.json b/package.json index ca769eed83..f74f769e93 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "react-native-simple-toast": "^1.0.0", "react-native-sound": "^0.10.9", "react-native-text-input-reset": "^1.0.2", + "react-native-unimodules": "0.6.0", "react-native-vector-icons": "^6.6.0", "react-native-webview": "^5.0.0", "react-navigation": "^2.18.3", diff --git a/yarn.lock b/yarn.lock index 048bb1d313..fbf17bed9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1463,6 +1463,22 @@ lodash.unescape "4.0.1" semver "5.5.0" +"@unimodules/core@~4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-4.0.0.tgz#898dafa5a121e7d6d7d4acd9c0c38d12f7da5b19" + integrity sha512-lHxRmCG9DK3/aA2lnBKPS32K95NpYE10mZQRp5dycSptgN0DIeWWHuE01SndcSUACGyEP+tDO+DnGo8mhLlt4Q== + dependencies: + compare-versions "^3.4.0" + +"@unimodules/react-native-adapter@~4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-4.0.0.tgz#2e02246f6450201d6cb0720f849c7059e8a9bc6d" + integrity sha512-zGAyDhqAEWvshdSxc523srP6OAZaSr95Cv5EuxLJbFGcJENHhK8o/qxhwS7/LYTF3LqtOlnSlwQta3v3y6kF4A== + dependencies: + invariant "^2.2.4" + lodash "^4.5.0" + prop-types "^15.6.1" + "@yarnpkg/lockfile@^1.0.2", "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -2566,6 +2582,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3601,6 +3622,39 @@ expect@^24.1.0, expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" +expo-app-loader-provider@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/expo-app-loader-provider/-/expo-app-loader-provider-7.0.0.tgz#9bfff831a204d0a8896e0120bce2209c4304ef03" + integrity sha512-C+5zpZN2T7PCj7weLs/ZgAC+y9dvu0VdTXD00Jf9Wo7Pxu/lsLh6ljg9JL91c+2tYDzMEODPNmT+JOUIxAr5zQ== + +expo-asset@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-7.0.0.tgz#6d2ba460dd43807f40580199c0b76c508eb1ca63" + integrity sha512-MwWrlpzaZqT0NU0V3Wn8oA1pMb7Al49aYAWMPEUZ2UV5NyVAbzYPuS2duIfwX55ivczjJZHpwrhd0hb/3l9ngQ== + dependencies: + blueimp-md5 "^2.10.0" + path-browserify "^1.0.0" + url-parse "^1.4.4" + +expo-constants@~7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-7.0.1.tgz#87be02b6dae5c44a3246537452a0d77af15d46bf" + integrity sha512-n9S6lsEfTAhLY+x/Yrtc1rvVUhuEF+CcSWr/reAIGtk35+PYrAKfV4pbetRtqX9tl947bJv7kBQX6jpwYpeIpQ== + dependencies: + ua-parser-js "^0.7.19" + +expo-file-system@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-7.0.0.tgz#ac98233b18774cce299fffd9451f08f21b116564" + integrity sha512-ignf5Vf5cPDYO/4HgUkgnL574wMbCNxyazlOvBgV34rLGJzBbFsn++hqC7njr2VTpIIXh2G9vp1+8g6cvsQdqA== + dependencies: + uuid-js "^0.7.5" + +expo-permissions@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-7.0.0.tgz#f4135c3cf8e49c673a9a714459a1eb2b40fe2092" + integrity sha512-C+qyVz+pdZO4YpVR2HSC3gsBZg0Qb8brCFgzmDmWcAtgrOiHClaLPdhI2XtQuGh8ubXcKPUGZp++UCEGiG0Jxg== + extend-shallow@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" @@ -6126,7 +6180,7 @@ lodash.uniqby@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= -lodash@^4.0.0, lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1, lodash@^4.7.14: +lodash@^4.0.0, lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1, lodash@^4.7.14: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -7468,6 +7522,11 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +path-browserify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -8074,6 +8133,30 @@ react-native-text-input-reset@^1.0.2: resolved "https://registry.yarnpkg.com/react-native-text-input-reset/-/react-native-text-input-reset-1.0.2.tgz#cfaa6d9b45da934e1725c01b1698f8a05591661c" integrity sha512-URM1iHWBhYkdQ6zuBGdbX1hIav9aDTKnlGDnZQk3Ny+lxKmgsMHfFf1QZe8c91Gyj/SnCWgQMVv3um4T0kXqQw== +react-native-unimodules@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-native-unimodules/-/react-native-unimodules-0.6.0.tgz#f62c753705f4b97ba19e2834d8ad3357e204537c" + integrity sha512-b563vqelTLtagFLWiI428rUTx4BxWpytlsEC1xcAQdf8chtnVr7QrkRXatiIvJmDAYLL8l+8UxdBW9e0f2rZ9Q== + dependencies: + "@unimodules/core" "~4.0.0" + "@unimodules/react-native-adapter" "~4.0.0" + chalk "^2.4.2" + expo-app-loader-provider "~7.0.0" + expo-asset "~7.0.0" + expo-constants "~7.0.0" + expo-file-system "~7.0.0" + expo-permissions "~7.0.0" + unimodules-barcode-scanner-interface "~4.0.0" + unimodules-camera-interface "~4.0.0" + unimodules-constants-interface "~4.0.0" + unimodules-face-detector-interface "~4.0.0" + unimodules-file-system-interface "~4.0.0" + unimodules-font-interface "~4.0.0" + unimodules-image-loader-interface "~4.0.0" + unimodules-permissions-interface "~4.0.0" + unimodules-sensors-interface "~4.0.0" + unimodules-task-manager-interface "~4.0.0" + react-native-vector-icons@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-6.6.0.tgz#66cf004918eb05d90778d64bd42077c1800d481b" @@ -9869,10 +9952,10 @@ typescript@^3.2.1, typescript@^3.3.3333: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== -ua-parser-js@^0.7.18: - version "0.7.20" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" - integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== +ua-parser-js@^0.7.18, ua-parser-js@^0.7.19: + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== uglify-es@^3.1.9: version "3.3.9" @@ -9928,6 +10011,56 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== +unimodules-barcode-scanner-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-4.0.0.tgz#69c54ef0d25448dc380de9ca3b0cba3daa2a94c4" + integrity sha512-XAW+8s7w/dQ514I/SPfBKHPmbaCOEpYAkdn1aaBoWocVfdvOKf8SqwHSIaP2W/SFUwWNRF4Wqv2HBt1dvuhSSg== + +unimodules-camera-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-camera-interface/-/unimodules-camera-interface-4.0.0.tgz#234c28f4d326ef3e30f15572c07e528557485619" + integrity sha512-rEYD3mKarxzgiWWL8J0mPAxzV4i1WI9DsNMRxyV2T7qC/WWIucroZX72O1BkYjUbIKerGmJWeGYbWHheP4/rsA== + +unimodules-constants-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-constants-interface/-/unimodules-constants-interface-4.0.0.tgz#c71be663a442b43eed773451a4f366a1c47821ac" + integrity sha512-FTM64GP+uawURWhuExrsCMebpcu0DdREUCuUmes5qd3/uTM2gqmhbm/ZwSKviH/ar4h630Fdb6P6v9o4MDInbA== + +unimodules-face-detector-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-face-detector-interface/-/unimodules-face-detector-interface-4.0.0.tgz#c68e44d5363d3dfea6f697d983254ac199555074" + integrity sha512-ZFzqcNnJkBxvfdKCupvtQUj1yVJkzKivPGV6nydKZc9eJRLUgSXCUWtvXd0vaet1NSQqr2R3r6Ilvj0DzuCzUA== + +unimodules-file-system-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-file-system-interface/-/unimodules-file-system-interface-4.0.0.tgz#e8514882a81cd350b69c6026fd52b6d99ba289c9" + integrity sha512-dDcKjArDwY3CXLlCL8tf9/JJG25K2lgtAL+560kqrftLu3pi0x5V7JmSDz52pJ4pLd5xL8s1Rzse+rIr5OpM3g== + +unimodules-font-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-font-interface/-/unimodules-font-interface-4.0.0.tgz#a72d7c75d81dface00c48f523730c15ddf10fbce" + integrity sha512-RFD1H405kZy8oYcg7f9Krr+UTUn6EZTcqAb+wRL6Ex9TJmzmxJT6JZ0FsUMezOUEwrdvXRpArH4P1AadHlzzGA== + +unimodules-image-loader-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-image-loader-interface/-/unimodules-image-loader-interface-4.0.0.tgz#92452bfcba5e95b4fc3aba657a5863946d1ccf93" + integrity sha512-tv7g1YmZq9ZnG/x9l3qSlpEn93ZuMD+FuQpOZj3/oGDkBlc27vtBSEi8lTySWb9U7UK+bNlHGFqf1lGZcFU1Ug== + +unimodules-permissions-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-permissions-interface/-/unimodules-permissions-interface-4.0.0.tgz#c5e044921f5d5867552c991100a5824962fd6b72" + integrity sha512-bVZ6JQMO12WvAv6YqcHaPV5KekV7WH606eRiMJq5Qwm2z9yGSM+KaOxOH/n2LVcYckForphsCLf58OGVUtM65Q== + +unimodules-sensors-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-sensors-interface/-/unimodules-sensors-interface-4.0.0.tgz#7f8250b732f7aa0560e04537bea547f304f45c0b" + integrity sha512-O7l+N2DLwviTc6gz/ptV7a930Sdo30AvzQLEJPHfqj4e9fCdbrHNrcPqiq0CLqHYYIsdpSDpC6wCWmepLaAgJQ== + +unimodules-task-manager-interface@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unimodules-task-manager-interface/-/unimodules-task-manager-interface-4.0.0.tgz#2cf1949ef041ebbd6d9a32d799d1640e1d8f03d7" + integrity sha512-c7x5hgEtT+oIVd37TBn2jxlTw2+Bgb55XZ2Md0AV5NCjeRlKw2bIBPwUvSdI1iAziSQOIGOImNaaIUo3L3zW3w== + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -10037,7 +10170,7 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.0: +url-parse@^1.4.0, url-parse@^1.4.4: version "1.4.7" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== @@ -10098,6 +10231,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid-js@^0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/uuid-js/-/uuid-js-0.7.5.tgz#6c886d02a53d2d40dcf25d91a170b4a7b25b94d0" + integrity sha1-bIhtAqU9LUDc8l2RoXC0p7JblNA= + uuid@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"