@expo/cli 0.0.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -0
- package/build/bin/cli +152 -0
- package/build/bin/cli.map +1 -0
- package/build/src/api/endpoint.js +17 -0
- package/build/src/api/endpoint.js.map +1 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js +21 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
- package/build/src/api/getExpoSchema.js +69 -0
- package/build/src/api/getExpoSchema.js.map +1 -0
- package/build/src/api/getNativeModuleVersions.js +31 -0
- package/build/src/api/getNativeModuleVersions.js.map +1 -0
- package/build/src/api/getProject.js +19 -0
- package/build/src/api/getProject.js.map +1 -0
- package/build/src/api/getProjectDevelopmentCertificate.js +24 -0
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
- package/build/src/api/getVersions.js +37 -0
- package/build/src/api/getVersions.js.map +1 -0
- package/build/src/api/graphql/client.js +104 -0
- package/build/src/api/graphql/client.js.map +1 -0
- package/build/src/api/graphql/generated.js +113 -0
- package/build/src/api/graphql/generated.js.map +1 -0
- package/build/src/api/graphql/queries/UserQuery.js +43 -0
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
- package/build/src/api/rest/cache/FileSystemCache.js +79 -0
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -0
- package/build/src/api/rest/cache/response.js +31 -0
- package/build/src/api/rest/cache/response.js.map +1 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js +156 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
- package/build/src/api/rest/client.js +94 -0
- package/build/src/api/rest/client.js.map +1 -0
- package/build/src/api/rest/client.types.js +6 -0
- package/build/src/api/rest/client.types.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +20 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithOffline.js +39 -0
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithProgress.js +59 -0
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
- package/build/src/api/settings.js +11 -0
- package/build/src/api/settings.js.map +1 -0
- package/build/src/api/signManifest.js +38 -0
- package/build/src/api/signManifest.js.map +1 -0
- package/build/src/api/updateDevelopmentSession.js +74 -0
- package/build/src/api/updateDevelopmentSession.js.map +1 -0
- package/build/src/api/user/UserSettings.js +71 -0
- package/build/src/api/user/UserSettings.js.map +1 -0
- package/build/src/api/user/actions.js +97 -0
- package/build/src/api/user/actions.js.map +1 -0
- package/build/src/api/user/otp.js +139 -0
- package/build/src/api/user/otp.js.map +1 -0
- package/build/src/api/user/user.js +114 -0
- package/build/src/api/user/user.js.map +1 -0
- package/build/src/config/configAsync.js +118 -0
- package/build/src/config/configAsync.js.map +1 -0
- package/build/src/config/index.js +75 -0
- package/build/src/config/index.js.map +1 -0
- package/build/src/export/createBundles.js +62 -0
- package/build/src/export/createBundles.js.map +1 -0
- package/build/src/export/createMetadataJson.js +36 -0
- package/build/src/export/createMetadataJson.js.map +1 -0
- package/build/src/export/exportApp.js +102 -0
- package/build/src/export/exportApp.js.map +1 -0
- package/build/src/export/exportAssets.js +106 -0
- package/build/src/export/exportAssets.js.map +1 -0
- package/build/src/export/exportAsync.js +49 -0
- package/build/src/export/exportAsync.js.map +1 -0
- package/build/src/export/fork-bundleAsync.js +138 -0
- package/build/src/export/fork-bundleAsync.js.map +1 -0
- package/build/src/export/getPublicExpoManifest.js +28 -0
- package/build/src/export/getPublicExpoManifest.js.map +1 -0
- package/build/src/export/getResolvedLocales.js +35 -0
- package/build/src/export/getResolvedLocales.js.map +1 -0
- package/build/src/export/index.js +77 -0
- package/build/src/export/index.js.map +1 -0
- package/build/src/export/printBundleSizes.js +122 -0
- package/build/src/export/printBundleSizes.js.map +1 -0
- package/build/src/export/resolveOptions.js +24 -0
- package/build/src/export/resolveOptions.js.map +1 -0
- package/build/src/export/saveAssets.js +65 -0
- package/build/src/export/saveAssets.js.map +1 -0
- package/build/src/export/writeContents.js +108 -0
- package/build/src/export/writeContents.js.map +1 -0
- package/build/src/install/checkPackages.js +74 -0
- package/build/src/install/checkPackages.js.map +1 -0
- package/build/src/install/index.js +49 -0
- package/build/src/install/index.js.map +1 -0
- package/build/src/install/installAsync.js +103 -0
- package/build/src/install/installAsync.js.map +1 -0
- package/build/src/install/resolveOptions.js +99 -0
- package/build/src/install/resolveOptions.js.map +1 -0
- package/build/src/install/utils/autoAddConfigPlugins.js +87 -0
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
- package/build/src/log.js +74 -0
- package/build/src/log.js.map +1 -0
- package/build/src/login/index.js +62 -0
- package/build/src/login/index.js.map +1 -0
- package/build/src/logout/index.js +48 -0
- package/build/src/logout/index.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +137 -0
- package/build/src/prebuild/clearNativeFolder.js.map +1 -0
- package/build/src/prebuild/configureProjectAsync.js +68 -0
- package/build/src/prebuild/configureProjectAsync.js.map +1 -0
- package/build/src/prebuild/copyTemplateFiles.js +124 -0
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
- package/build/src/prebuild/ensureConfigAsync.js +86 -0
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
- package/build/src/prebuild/index.js +90 -0
- package/build/src/prebuild/index.js.map +1 -0
- package/build/src/prebuild/prebuildAsync.js +112 -0
- package/build/src/prebuild/prebuildAsync.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +97 -0
- package/build/src/prebuild/resolveOptions.js.map +1 -0
- package/build/src/prebuild/resolveTemplate.js +157 -0
- package/build/src/prebuild/resolveTemplate.js.map +1 -0
- package/build/src/prebuild/updateFromTemplate.js +102 -0
- package/build/src/prebuild/updateFromTemplate.js.map +1 -0
- package/build/src/prebuild/updatePackageJson.js +236 -0
- package/build/src/prebuild/updatePackageJson.js.map +1 -0
- package/build/src/prebuild/writeMetroConfig.js +89 -0
- package/build/src/prebuild/writeMetroConfig.js.map +1 -0
- package/build/src/register/index.js +48 -0
- package/build/src/register/index.js.map +1 -0
- package/build/src/register/registerAsync.js +37 -0
- package/build/src/register/registerAsync.js.map +1 -0
- package/build/src/run/android/index.js +97 -0
- package/build/src/run/android/index.js.map +1 -0
- package/build/src/run/android/resolveDevice.js +23 -0
- package/build/src/run/android/resolveDevice.js.map +1 -0
- package/build/src/run/android/resolveGradleProps.js +37 -0
- package/build/src/run/android/resolveGradleProps.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +72 -0
- package/build/src/run/android/resolveInstallApkName.js.map +1 -0
- package/build/src/run/android/resolveLaunchProps.js +32 -0
- package/build/src/run/android/resolveLaunchProps.js.map +1 -0
- package/build/src/run/android/resolveOptions.js +25 -0
- package/build/src/run/android/resolveOptions.js.map +1 -0
- package/build/src/run/android/runAndroidAsync.js +74 -0
- package/build/src/run/android/runAndroidAsync.js.map +1 -0
- package/build/src/run/ensureNativeProject.js +33 -0
- package/build/src/run/ensureNativeProject.js.map +1 -0
- package/build/src/run/hints.js +22 -0
- package/build/src/run/hints.js.map +1 -0
- package/build/src/run/resolveBundlerProps.js +31 -0
- package/build/src/run/resolveBundlerProps.js.map +1 -0
- package/build/src/run/startBundler.js +76 -0
- package/build/src/run/startBundler.js.map +1 -0
- package/build/src/start/doctor/Prerequisite.js +47 -0
- package/build/src/start/doctor/Prerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +68 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js +115 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +65 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +64 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +131 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js +95 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +119 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +147 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js +164 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js +17 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +142 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js +92 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +112 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
- package/build/src/start/index.js +116 -0
- package/build/src/start/index.js.map +1 -0
- package/build/src/start/interface/KeyPressHandler.js +99 -0
- package/build/src/start/interface/KeyPressHandler.js.map +1 -0
- package/build/src/start/interface/commandsTable.js +175 -0
- package/build/src/start/interface/commandsTable.js.map +1 -0
- package/build/src/start/interface/interactiveActions.js +134 -0
- package/build/src/start/interface/interactiveActions.js.map +1 -0
- package/build/src/start/interface/startInterface.js +217 -0
- package/build/src/start/interface/startInterface.js.map +1 -0
- package/build/src/start/platforms/AppIdResolver.js +44 -0
- package/build/src/start/platforms/AppIdResolver.js.map +1 -0
- package/build/src/start/platforms/DeviceManager.js +43 -0
- package/build/src/start/platforms/DeviceManager.js.map +1 -0
- package/build/src/start/platforms/ExpoGoInstaller.js +111 -0
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
- package/build/src/start/platforms/PlatformManager.js +121 -0
- package/build/src/start/platforms/PlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/ADBServer.js +129 -0
- package/build/src/start/platforms/android/ADBServer.js.map +1 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +40 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js +183 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js +35 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/activateWindow.js +80 -0
- package/build/src/start/platforms/android/activateWindow.js.map +1 -0
- package/build/src/start/platforms/android/adb.js +263 -0
- package/build/src/start/platforms/android/adb.js.map +1 -0
- package/build/src/start/platforms/android/adbReverse.js +84 -0
- package/build/src/start/platforms/android/adbReverse.js.map +1 -0
- package/build/src/start/platforms/android/emulator.js +118 -0
- package/build/src/start/platforms/android/emulator.js.map +1 -0
- package/build/src/start/platforms/android/getDevices.js +36 -0
- package/build/src/start/platforms/android/getDevices.js.map +1 -0
- package/build/src/start/platforms/android/gradle.js +86 -0
- package/build/src/start/platforms/android/gradle.js.map +1 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js +60 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +46 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js +201 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js +31 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js +16 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +85 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
- package/build/src/start/platforms/ios/getBestSimulator.js +101 -0
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js +60 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
- package/build/src/start/platforms/ios/simctl.js +229 -0
- package/build/src/start/platforms/ios/simctl.js.map +1 -0
- package/build/src/start/platforms/ios/xcrun.js +67 -0
- package/build/src/start/platforms/ios/xcrun.js.map +1 -0
- package/build/src/start/project/devices.js +77 -0
- package/build/src/start/project/devices.js.map +1 -0
- package/build/src/start/project/dotExpo.js +74 -0
- package/build/src/start/project/dotExpo.js.map +1 -0
- package/build/src/start/project/settings.js +13 -0
- package/build/src/start/project/settings.js.map +1 -0
- package/build/src/start/resolveOptions.js +156 -0
- package/build/src/start/resolveOptions.js.map +1 -0
- package/build/src/start/server/AsyncNgrok.js +173 -0
- package/build/src/start/server/AsyncNgrok.js.map +1 -0
- package/build/src/start/server/BundlerDevServer.js +312 -0
- package/build/src/start/server/BundlerDevServer.js.map +1 -0
- package/build/src/start/server/DevServerManager.js +142 -0
- package/build/src/start/server/DevServerManager.js.map +1 -0
- package/build/src/start/server/DevelopmentSession.js +104 -0
- package/build/src/start/server/DevelopmentSession.js.map +1 -0
- package/build/src/start/server/UrlCreator.js +159 -0
- package/build/src/start/server/UrlCreator.js.map +1 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js +97 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js +178 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.js +87 -0
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
- package/build/src/start/server/metro/instantiateMetro.js +66 -0
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
- package/build/src/start/server/metro/resolveFromProject.js +38 -0
- package/build/src/start/server/metro/resolveFromProject.js.map +1 -0
- package/build/src/start/server/middleware/ClassicManifestMiddleware.js +145 -0
- package/build/src/start/server/middleware/ClassicManifestMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +185 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +78 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +70 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js +177 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +69 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/createDevServerMiddleware.js +24 -0
- package/build/src/start/server/middleware/createDevServerMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/resolveAssets.js +110 -0
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
- package/build/src/start/server/middleware/resolveEntryPoint.js +37 -0
- package/build/src/start/server/middleware/resolveEntryPoint.js.map +1 -0
- package/build/src/start/server/middleware/resolvePlatform.js +32 -0
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
- package/build/src/start/server/middleware/server.types.js +6 -0
- package/build/src/start/server/middleware/server.types.js.map +1 -0
- package/build/src/start/server/openPlatforms.js +30 -0
- package/build/src/start/server/openPlatforms.js.map +1 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +299 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js +94 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
- package/build/src/start/server/webpack/resolveFromProject.js +43 -0
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
- package/build/src/start/server/webpack/tls.js +72 -0
- package/build/src/start/server/webpack/tls.js.map +1 -0
- package/build/src/start/startAsync.js +150 -0
- package/build/src/start/startAsync.js.map +1 -0
- package/build/src/utils/FileNotifier.js +71 -0
- package/build/src/utils/FileNotifier.js.map +1 -0
- package/build/src/utils/analytics/getDevClientProperties.js +41 -0
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -0
- package/build/src/utils/analytics/rudderstackClient.js +106 -0
- package/build/src/utils/analytics/rudderstackClient.js.map +1 -0
- package/build/src/utils/ansi.js +17 -0
- package/build/src/utils/ansi.js.map +1 -0
- package/build/src/utils/args.js +77 -0
- package/build/src/utils/args.js.map +1 -0
- package/build/src/utils/array.js +56 -0
- package/build/src/utils/array.js.map +1 -0
- package/build/src/utils/cocoapods.js +143 -0
- package/build/src/utils/cocoapods.js.map +1 -0
- package/build/src/utils/codesigning.js +283 -0
- package/build/src/utils/codesigning.js.map +1 -0
- package/build/src/utils/createFileTransform.js +89 -0
- package/build/src/utils/createFileTransform.js.map +1 -0
- package/build/src/utils/delay.js +39 -0
- package/build/src/utils/delay.js.map +1 -0
- package/build/src/utils/dir.js +38 -0
- package/build/src/utils/dir.js.map +1 -0
- package/build/src/utils/downloadAppAsync.js +74 -0
- package/build/src/utils/downloadAppAsync.js.map +1 -0
- package/build/src/utils/downloadExpoGoAsync.js +99 -0
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
- package/build/src/utils/editor.js +60 -0
- package/build/src/utils/editor.js.map +1 -0
- package/build/src/utils/env.js +62 -0
- package/build/src/utils/env.js.map +1 -0
- package/build/src/utils/errors.js +69 -0
- package/build/src/utils/errors.js.map +1 -0
- package/build/src/utils/exit.js +90 -0
- package/build/src/utils/exit.js.map +1 -0
- package/build/src/utils/findUp.js +33 -0
- package/build/src/utils/findUp.js.map +1 -0
- package/build/src/utils/fn.js +32 -0
- package/build/src/utils/fn.js.map +1 -0
- package/build/src/utils/getOrPromptApplicationId.js +183 -0
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
- package/build/src/utils/getRunningProcess.js +92 -0
- package/build/src/utils/getRunningProcess.js.map +1 -0
- package/build/src/utils/git.js +88 -0
- package/build/src/utils/git.js.map +1 -0
- package/build/src/utils/glob.js +65 -0
- package/build/src/utils/glob.js.map +1 -0
- package/build/src/utils/ip.js +16 -0
- package/build/src/utils/ip.js.map +1 -0
- package/build/src/utils/isModuleSymlinked.js +37 -0
- package/build/src/utils/isModuleSymlinked.js.map +1 -0
- package/build/src/utils/link.js +31 -0
- package/build/src/utils/link.js.map +1 -0
- package/build/src/utils/mergeGitIgnorePaths.js +112 -0
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
- package/build/src/utils/modifyConfigAsync.js +68 -0
- package/build/src/utils/modifyConfigAsync.js.map +1 -0
- package/build/src/utils/modifyConfigPlugins.js +51 -0
- package/build/src/utils/modifyConfigPlugins.js.map +1 -0
- package/build/src/utils/nodeModules.js +118 -0
- package/build/src/utils/nodeModules.js.map +1 -0
- package/build/src/utils/npm.js +144 -0
- package/build/src/utils/npm.js.map +1 -0
- package/build/src/utils/obj.js +45 -0
- package/build/src/utils/obj.js.map +1 -0
- package/build/src/utils/ora.js +102 -0
- package/build/src/utils/ora.js.map +1 -0
- package/build/src/utils/port.js +130 -0
- package/build/src/utils/port.js.map +1 -0
- package/build/src/utils/profile.js +63 -0
- package/build/src/utils/profile.js.map +1 -0
- package/build/src/utils/progress.js +15 -0
- package/build/src/utils/progress.js.map +1 -0
- package/build/src/utils/prompts.js +127 -0
- package/build/src/utils/prompts.js.map +1 -0
- package/build/src/utils/resolveArgs.js +94 -0
- package/build/src/utils/resolveArgs.js.map +1 -0
- package/build/src/utils/scheme.js +106 -0
- package/build/src/utils/scheme.js.map +1 -0
- package/build/src/utils/tar.js +59 -0
- package/build/src/utils/tar.js.map +1 -0
- package/build/src/utils/url.js +67 -0
- package/build/src/utils/url.js.map +1 -0
- package/build/src/utils/validateApplicationId.js +90 -0
- package/build/src/utils/validateApplicationId.js.map +1 -0
- package/build/src/whoami/index.js +47 -0
- package/build/src/whoami/index.js.map +1 -0
- package/build/src/whoami/whoamiAsync.js +44 -0
- package/build/src/whoami/whoamiAsync.js.map +1 -0
- package/package.json +132 -4
- package/static/loading-page/index.html +270 -0
- package/index.js +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.printBundleSizes = printBundleSizes;
|
|
6
|
+
exports.createFilesTable = createFilesTable;
|
|
7
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var _prettyBytes = _interopRequireDefault(require("pretty-bytes"));
|
|
9
|
+
var _textTable = _interopRequireDefault(require("text-table"));
|
|
10
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
11
|
+
var _ansi = require("../utils/ansi");
|
|
12
|
+
var _link = require("../utils/link");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function _interopRequireWildcard(obj) {
|
|
19
|
+
if (obj && obj.__esModule) {
|
|
20
|
+
return obj;
|
|
21
|
+
} else {
|
|
22
|
+
var newObj = {};
|
|
23
|
+
if (obj != null) {
|
|
24
|
+
for(var key in obj){
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
26
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
27
|
+
if (desc.get || desc.set) {
|
|
28
|
+
Object.defineProperty(newObj, key, desc);
|
|
29
|
+
} else {
|
|
30
|
+
newObj[key] = obj[key];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
newObj.default = obj;
|
|
36
|
+
return newObj;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function printBundleSizes(bundles) {
|
|
40
|
+
var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7;
|
|
41
|
+
const files = [];
|
|
42
|
+
if ((ref = bundles.ios) == null ? void 0 : ref.hermesBytecodeBundle) {
|
|
43
|
+
files.push([
|
|
44
|
+
"index.ios.js (Hermes)",
|
|
45
|
+
bundles.ios.hermesBytecodeBundle
|
|
46
|
+
]);
|
|
47
|
+
} else if ((ref1 = bundles.ios) == null ? void 0 : ref1.code) {
|
|
48
|
+
files.push([
|
|
49
|
+
"index.ios.js",
|
|
50
|
+
bundles.ios.code
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
53
|
+
if ((ref2 = bundles.android) == null ? void 0 : ref2.hermesBytecodeBundle) {
|
|
54
|
+
files.push([
|
|
55
|
+
"index.android.js (Hermes)",
|
|
56
|
+
bundles.android.hermesBytecodeBundle
|
|
57
|
+
]);
|
|
58
|
+
} else if ((ref3 = bundles.android) == null ? void 0 : ref3.code) {
|
|
59
|
+
files.push([
|
|
60
|
+
"index.android.js",
|
|
61
|
+
bundles.android.code
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
// Account for inline source maps
|
|
65
|
+
if ((ref4 = bundles.ios) == null ? void 0 : ref4.hermesSourcemap) {
|
|
66
|
+
files.push([
|
|
67
|
+
_chalk.default.dim("index.ios.js.map (Hermes)"),
|
|
68
|
+
bundles.ios.hermesSourcemap
|
|
69
|
+
]);
|
|
70
|
+
} else if ((ref5 = bundles.ios) == null ? void 0 : ref5.map) {
|
|
71
|
+
files.push([
|
|
72
|
+
_chalk.default.dim("index.ios.js.map"),
|
|
73
|
+
bundles.ios.map
|
|
74
|
+
]);
|
|
75
|
+
}
|
|
76
|
+
if ((ref6 = bundles.android) == null ? void 0 : ref6.hermesSourcemap) {
|
|
77
|
+
files.push([
|
|
78
|
+
_chalk.default.dim("index.android.js.map (Hermes)"),
|
|
79
|
+
bundles.android.hermesSourcemap
|
|
80
|
+
]);
|
|
81
|
+
} else if ((ref7 = bundles.android) == null ? void 0 : ref7.map) {
|
|
82
|
+
files.push([
|
|
83
|
+
_chalk.default.dim("index.android.js.map"),
|
|
84
|
+
bundles.android.map
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
Log.log();
|
|
88
|
+
Log.log(createFilesTable(files));
|
|
89
|
+
Log.log();
|
|
90
|
+
Log.log(_chalk.default`💡 JavaScript bundle sizes affect startup time. {dim ${(0, _link).learnMore(`https://expo.fyi/javascript-bundle-sizes`)}}`);
|
|
91
|
+
Log.log();
|
|
92
|
+
return files;
|
|
93
|
+
}
|
|
94
|
+
function createFilesTable(files) {
|
|
95
|
+
const tableData = files.map((item, index)=>{
|
|
96
|
+
const fileBranch = index === 0 ? "\u250C" : index === files.length - 1 ? "\u2514" : "\u251C";
|
|
97
|
+
return [
|
|
98
|
+
`${fileBranch} ${item[0]}`,
|
|
99
|
+
(0, _prettyBytes).default(Buffer.byteLength(item[1], "utf8"))
|
|
100
|
+
];
|
|
101
|
+
});
|
|
102
|
+
var ref;
|
|
103
|
+
return (0, _textTable).default([
|
|
104
|
+
[
|
|
105
|
+
"Bundle",
|
|
106
|
+
"Size"
|
|
107
|
+
].map((v)=>_chalk.default.underline(v)
|
|
108
|
+
),
|
|
109
|
+
...tableData
|
|
110
|
+
], {
|
|
111
|
+
align: [
|
|
112
|
+
"l",
|
|
113
|
+
"r"
|
|
114
|
+
],
|
|
115
|
+
stringLength: (str)=>{
|
|
116
|
+
var ref8;
|
|
117
|
+
return (ref = (ref8 = (0, _ansi).stripAnsi(str)) == null ? void 0 : ref8.length) != null ? ref : 0;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=printBundleSizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/printBundleSizes.ts"],"sourcesContent":["import { Platform } from '@expo/config';\nimport { BundleOutput } from '@expo/dev-server';\nimport chalk from 'chalk';\nimport prettyBytes from 'pretty-bytes';\nimport table from 'text-table';\n\nimport * as Log from '../log';\nimport { stripAnsi } from '../utils/ansi';\nimport { learnMore } from '../utils/link';\n\nexport function printBundleSizes(bundles: Partial<Record<Platform, BundleOutput>>) {\n const files: [string, string | Uint8Array][] = [];\n\n if (bundles.ios?.hermesBytecodeBundle) {\n files.push(['index.ios.js (Hermes)', bundles.ios.hermesBytecodeBundle]);\n } else if (bundles.ios?.code) {\n files.push(['index.ios.js', bundles.ios.code]);\n }\n if (bundles.android?.hermesBytecodeBundle) {\n files.push(['index.android.js (Hermes)', bundles.android.hermesBytecodeBundle]);\n } else if (bundles.android?.code) {\n files.push(['index.android.js', bundles.android.code]);\n }\n\n // Account for inline source maps\n if (bundles.ios?.hermesSourcemap) {\n files.push([chalk.dim('index.ios.js.map (Hermes)'), bundles.ios.hermesSourcemap]);\n } else if (bundles.ios?.map) {\n files.push([chalk.dim('index.ios.js.map'), bundles.ios.map]);\n }\n if (bundles.android?.hermesSourcemap) {\n files.push([chalk.dim('index.android.js.map (Hermes)'), bundles.android.hermesSourcemap]);\n } else if (bundles.android?.map) {\n files.push([chalk.dim('index.android.js.map'), bundles.android.map]);\n }\n\n Log.log();\n Log.log(createFilesTable(files));\n Log.log();\n Log.log(\n chalk`💡 JavaScript bundle sizes affect startup time. {dim ${learnMore(\n `https://expo.fyi/javascript-bundle-sizes`\n )}}`\n );\n Log.log();\n\n return files;\n}\n\nexport function createFilesTable(files: [string, string | Uint8Array][]): string {\n const tableData = files.map((item, index) => {\n const fileBranch = index === 0 ? '┌' : index === files.length - 1 ? '└' : '├';\n\n return [`${fileBranch} ${item[0]}`, prettyBytes(Buffer.byteLength(item[1], 'utf8'))];\n });\n return table([['Bundle', 'Size'].map((v) => chalk.underline(v)), ...tableData], {\n align: ['l', 'r'],\n stringLength: (str) => stripAnsi(str)?.length ?? 0,\n });\n}\n"],"names":["printBundleSizes","createFilesTable","Log","bundles","files","ios","hermesBytecodeBundle","push","code","android","hermesSourcemap","chalk","dim","map","log","learnMore","tableData","item","index","fileBranch","length","prettyBytes","Buffer","byteLength","stripAnsi","table","v","underline","align","stringLength","str"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.resolveOptionsAsync = resolveOptionsAsync;
|
|
6
|
+
var _resolveOptions = require("../prebuild/resolveOptions");
|
|
7
|
+
async function resolveOptionsAsync(args) {
|
|
8
|
+
var ref;
|
|
9
|
+
const platforms = (0, _resolveOptions).resolvePlatformOption((ref = args["--platform"]) != null ? ref : "all", {
|
|
10
|
+
loose: true
|
|
11
|
+
});
|
|
12
|
+
var ref1;
|
|
13
|
+
return {
|
|
14
|
+
outputDir: (ref1 = args["--output-dir"]) != null ? ref1 : "dist",
|
|
15
|
+
platforms,
|
|
16
|
+
clear: !!args["--clear"],
|
|
17
|
+
dev: !!args["--dev"],
|
|
18
|
+
maxWorkers: args["--max-workers"],
|
|
19
|
+
dumpAssetmap: !!args["--dump-assetmap"],
|
|
20
|
+
dumpSourcemap: !!args["--dump-sourcemap"]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=resolveOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/resolveOptions.ts"],"sourcesContent":["import { ModPlatform } from '@expo/config-plugins';\n\nimport { resolvePlatformOption } from '../prebuild/resolveOptions';\n\nexport type Options = {\n outputDir: string;\n platforms: ModPlatform[];\n maxWorkers?: number;\n dev: boolean;\n clear: boolean;\n dumpAssetmap: boolean;\n dumpSourcemap: boolean;\n};\n\nexport async function resolveOptionsAsync(args: any): Promise<Options> {\n const platforms = resolvePlatformOption(args['--platform'] ?? 'all', { loose: true });\n\n return {\n outputDir: args['--output-dir'] ?? 'dist',\n platforms,\n clear: !!args['--clear'],\n dev: !!args['--dev'],\n maxWorkers: args['--max-workers'],\n dumpAssetmap: !!args['--dump-assetmap'],\n dumpSourcemap: !!args['--dump-sourcemap'],\n };\n}\n"],"names":["resolveOptionsAsync","args","platforms","resolvePlatformOption","loose","outputDir","clear","dev","maxWorkers","dumpAssetmap","dumpSourcemap"],"mappings":"AAAA;;;;QAcsBA,mBAAmB,GAAnBA,mBAAmB;AAZH,IAAA,eAA4B,WAA5B,4BAA4B,CAAA;AAY3D,eAAeA,mBAAmB,CAACC,IAAS,EAAoB;QAC7BA,GAAkB;IAA1D,MAAMC,SAAS,GAAGC,CAAAA,GAAAA,eAAqB,AAA8C,CAAA,sBAA9C,CAACF,CAAAA,GAAkB,GAAlBA,IAAI,CAAC,YAAY,CAAC,YAAlBA,GAAkB,GAAI,KAAK,EAAE;QAAEG,KAAK,EAAE,IAAI;KAAE,CAAC,AAAC;QAGzEH,IAAoB;IADjC,OAAO;QACLI,SAAS,EAAEJ,CAAAA,IAAoB,GAApBA,IAAI,CAAC,cAAc,CAAC,YAApBA,IAAoB,GAAI,MAAM;QACzCC,SAAS;QACTI,KAAK,EAAE,CAAC,CAACL,IAAI,CAAC,SAAS,CAAC;QACxBM,GAAG,EAAE,CAAC,CAACN,IAAI,CAAC,OAAO,CAAC;QACpBO,UAAU,EAAEP,IAAI,CAAC,eAAe,CAAC;QACjCQ,YAAY,EAAE,CAAC,CAACR,IAAI,CAAC,iBAAiB,CAAC;QACvCS,aAAa,EAAE,CAAC,CAACT,IAAI,CAAC,kBAAkB,CAAC;KAC1C,CAAC;CACH"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.saveAssetsAsync = saveAssetsAsync;
|
|
6
|
+
var _path = _interopRequireDefault(require("path"));
|
|
7
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
8
|
+
var _array = require("../utils/array");
|
|
9
|
+
var _dir = require("../utils/dir");
|
|
10
|
+
function _interopRequireDefault(obj) {
|
|
11
|
+
return obj && obj.__esModule ? obj : {
|
|
12
|
+
default: obj
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function _interopRequireWildcard(obj) {
|
|
16
|
+
if (obj && obj.__esModule) {
|
|
17
|
+
return obj;
|
|
18
|
+
} else {
|
|
19
|
+
var newObj = {};
|
|
20
|
+
if (obj != null) {
|
|
21
|
+
for(var key in obj){
|
|
22
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
23
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
24
|
+
if (desc.get || desc.set) {
|
|
25
|
+
Object.defineProperty(newObj, key, desc);
|
|
26
|
+
} else {
|
|
27
|
+
newObj[key] = obj[key];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
newObj.default = obj;
|
|
33
|
+
return newObj;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function logAssetTask(projectRoot, action, pathName) {
|
|
37
|
+
Log.debug(`${action} ${pathName}`);
|
|
38
|
+
const relativePath = pathName.replace(projectRoot, "");
|
|
39
|
+
Log.log(`${action} ${relativePath}`);
|
|
40
|
+
}
|
|
41
|
+
function collectAssetPaths(assets) {
|
|
42
|
+
// Collect paths by key, also effectively handles duplicates in the array
|
|
43
|
+
const paths = {};
|
|
44
|
+
assets.forEach((asset)=>{
|
|
45
|
+
asset.files.forEach((path, index)=>{
|
|
46
|
+
paths[asset.fileHashes[index]] = path;
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
return paths;
|
|
50
|
+
}
|
|
51
|
+
async function saveAssetsAsync(projectRoot, { assets , outputDir }) {
|
|
52
|
+
// Collect paths by key, also effectively handles duplicates in the array
|
|
53
|
+
const paths = collectAssetPaths(assets);
|
|
54
|
+
// save files one chunk at a time
|
|
55
|
+
for (const keys of (0, _array).chunk(Object.entries(paths), 5)){
|
|
56
|
+
await Promise.all(keys.map(([key, pathName])=>{
|
|
57
|
+
logAssetTask(projectRoot, "saving", pathName);
|
|
58
|
+
// copy file over to assetPath
|
|
59
|
+
return (0, _dir).copyAsync(pathName, _path.default.join(outputDir, "assets", key));
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
Log.log("Files successfully saved.");
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=saveAssets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/saveAssets.ts"],"sourcesContent":["import { BundleAssetWithFileHashes } from '@expo/dev-server';\nimport path from 'path';\n\nimport * as Log from '../log';\nimport { chunk } from '../utils/array';\nimport { copyAsync } from '../utils/dir';\n\nexport type ManifestAsset = { fileHashes: string[]; files: string[]; hash: string };\n\nexport type Asset = ManifestAsset | BundleAssetWithFileHashes;\n\nfunction logAssetTask(projectRoot: string, action: 'uploading' | 'saving', pathName: string) {\n Log.debug(`${action} ${pathName}`);\n\n const relativePath = pathName.replace(projectRoot, '');\n Log.log(`${action} ${relativePath}`);\n}\n\nfunction collectAssetPaths(assets: Asset[]): Record<string, string> {\n // Collect paths by key, also effectively handles duplicates in the array\n const paths: { [fileHash: string]: string } = {};\n assets.forEach((asset) => {\n asset.files.forEach((path: string, index: number) => {\n paths[asset.fileHashes[index]] = path;\n });\n });\n return paths;\n}\n\nexport async function saveAssetsAsync(\n projectRoot: string,\n { assets, outputDir }: { assets: Asset[]; outputDir: string }\n) {\n // Collect paths by key, also effectively handles duplicates in the array\n const paths = collectAssetPaths(assets);\n\n // save files one chunk at a time\n for (const keys of chunk(Object.entries(paths), 5)) {\n await Promise.all(\n keys.map(([key, pathName]) => {\n logAssetTask(projectRoot, 'saving', pathName);\n // copy file over to assetPath\n return copyAsync(pathName, path.join(outputDir, 'assets', key));\n })\n );\n }\n Log.log('Files successfully saved.');\n}\n"],"names":["saveAssetsAsync","Log","logAssetTask","projectRoot","action","pathName","debug","relativePath","replace","log","collectAssetPaths","assets","paths","forEach","asset","files","path","index","fileHashes","outputDir","keys","chunk","Object","entries","Promise","all","map","key","copyAsync","join"],"mappings":"AAAA;;;;QA6BsBA,eAAe,GAAfA,eAAe;AA5BpB,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEXC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACO,IAAA,MAAgB,WAAhB,gBAAgB,CAAA;AACZ,IAAA,IAAc,WAAd,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMxC,SAASC,YAAY,CAACC,WAAmB,EAAEC,MAA8B,EAAEC,QAAgB,EAAE;IAC3FJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAEF,MAAM,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAME,YAAY,GAAGF,QAAQ,CAACG,OAAO,CAACL,WAAW,EAAE,EAAE,CAAC,AAAC;IACvDF,GAAG,CAACQ,GAAG,CAAC,CAAC,EAAEL,MAAM,CAAC,CAAC,EAAEG,YAAY,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,SAASG,iBAAiB,CAACC,MAAe,EAA0B;IAClE,yEAAyE;IACzE,MAAMC,KAAK,GAAmC,EAAE,AAAC;IACjDD,MAAM,CAACE,OAAO,CAAC,CAACC,KAAK,GAAK;QACxBA,KAAK,CAACC,KAAK,CAACF,OAAO,CAAC,CAACG,IAAY,EAAEC,KAAa,GAAK;YACnDL,KAAK,CAACE,KAAK,CAACI,UAAU,CAACD,KAAK,CAAC,CAAC,GAAGD,IAAI,CAAC;SACvC,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,OAAOJ,KAAK,CAAC;CACd;AAEM,eAAeZ,eAAe,CACnCG,WAAmB,EACnB,EAAEQ,MAAM,CAAA,EAAEQ,SAAS,CAAA,EAA0C,EAC7D;IACA,yEAAyE;IACzE,MAAMP,KAAK,GAAGF,iBAAiB,CAACC,MAAM,CAAC,AAAC;IAExC,iCAAiC;IACjC,KAAK,MAAMS,IAAI,IAAIC,CAAAA,GAAAA,MAAK,AAA0B,CAAA,MAA1B,CAACC,MAAM,CAACC,OAAO,CAACX,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE;QAClD,MAAMY,OAAO,CAACC,GAAG,CACfL,IAAI,CAACM,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEtB,QAAQ,CAAC,GAAK;YAC5BH,YAAY,CAACC,WAAW,EAAE,QAAQ,EAAEE,QAAQ,CAAC,CAAC;YAC9C,8BAA8B;YAC9B,OAAOuB,CAAAA,GAAAA,IAAS,AAA+C,CAAA,UAA/C,CAACvB,QAAQ,EAAEW,KAAI,QAAA,CAACa,IAAI,CAACV,SAAS,EAAE,QAAQ,EAAEQ,GAAG,CAAC,CAAC,CAAC;SACjE,CAAC,CACH,CAAC;KACH;IACD1B,GAAG,CAACQ,GAAG,CAAC,2BAA2B,CAAC,CAAC;CACtC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.writeBundlesAsync = writeBundlesAsync;
|
|
6
|
+
exports.writeSourceMapsAsync = writeSourceMapsAsync;
|
|
7
|
+
exports.writeMetadataJsonAsync = writeMetadataJsonAsync;
|
|
8
|
+
exports.writeAssetMapAsync = writeAssetMapAsync;
|
|
9
|
+
exports.writeDebugHtmlAsync = writeDebugHtmlAsync;
|
|
10
|
+
var _crypto = _interopRequireDefault(require("crypto"));
|
|
11
|
+
var _promises = _interopRequireDefault(require("fs/promises"));
|
|
12
|
+
var _path = _interopRequireDefault(require("path"));
|
|
13
|
+
var _createMetadataJson = require("./createMetadataJson");
|
|
14
|
+
function _interopRequireDefault(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @param props.platform native platform for the bundle
|
|
21
|
+
* @param props.hash crypto hash for the bundle contents
|
|
22
|
+
* @returns filename for the JS bundle.
|
|
23
|
+
*/ function createBundleFileName({ platform , hash }) {
|
|
24
|
+
return `${platform}-${hash}.js`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @param bundle JS bundle as a string
|
|
28
|
+
* @returns crypto hash for the provided bundle
|
|
29
|
+
*/ function createBundleHash(bundle) {
|
|
30
|
+
return _crypto.default.createHash("md5").update(bundle).digest("hex");
|
|
31
|
+
}
|
|
32
|
+
async function writeBundlesAsync({ bundles , outputDir }) {
|
|
33
|
+
const hashes = {};
|
|
34
|
+
const fileNames = {};
|
|
35
|
+
for (const [platform, bundleOutput] of Object.entries(bundles)){
|
|
36
|
+
var _hermesBytecodeBundle;
|
|
37
|
+
const bundle = (_hermesBytecodeBundle = bundleOutput.hermesBytecodeBundle) != null ? _hermesBytecodeBundle : bundleOutput.code;
|
|
38
|
+
const hash = createBundleHash(bundle);
|
|
39
|
+
const fileName = createBundleFileName({
|
|
40
|
+
platform,
|
|
41
|
+
hash
|
|
42
|
+
});
|
|
43
|
+
hashes[platform] = hash;
|
|
44
|
+
fileNames[platform] = fileName;
|
|
45
|
+
await _promises.default.writeFile(_path.default.join(outputDir, fileName), bundle);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
hashes,
|
|
49
|
+
fileNames
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async function writeSourceMapsAsync({ bundles , hashes , fileNames , outputDir }) {
|
|
53
|
+
return Promise.all(Object.entries(bundles).map(async ([platform, bundle])=>{
|
|
54
|
+
var _hermesSourcemap;
|
|
55
|
+
const sourceMap = (_hermesSourcemap = bundle.hermesSourcemap) != null ? _hermesSourcemap : bundle.map;
|
|
56
|
+
var _hermesBytecodeBundle, ref;
|
|
57
|
+
const hash = (ref = hashes == null ? void 0 : hashes[platform]) != null ? ref : createBundleHash((_hermesBytecodeBundle = bundle.hermesBytecodeBundle) != null ? _hermesBytecodeBundle : bundle.code);
|
|
58
|
+
const mapName = `${platform}-${hash}.map`;
|
|
59
|
+
await _promises.default.writeFile(_path.default.join(outputDir, mapName), sourceMap);
|
|
60
|
+
var ref1;
|
|
61
|
+
const jsBundleFileName = (ref1 = fileNames == null ? void 0 : fileNames[platform]) != null ? ref1 : createBundleFileName({
|
|
62
|
+
platform,
|
|
63
|
+
hash
|
|
64
|
+
});
|
|
65
|
+
const jsPath = _path.default.join(outputDir, jsBundleFileName);
|
|
66
|
+
// Add correct mapping to sourcemap paths
|
|
67
|
+
const mappingComment = `\n//# sourceMappingURL=${mapName}`;
|
|
68
|
+
await _promises.default.appendFile(jsPath, mappingComment);
|
|
69
|
+
return {
|
|
70
|
+
platform,
|
|
71
|
+
fileName: mapName,
|
|
72
|
+
hash,
|
|
73
|
+
map: sourceMap,
|
|
74
|
+
comment: mappingComment
|
|
75
|
+
};
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
async function writeMetadataJsonAsync({ outputDir , bundles , fileNames }) {
|
|
79
|
+
const contents = (0, _createMetadataJson).createMetadataJson({
|
|
80
|
+
bundles,
|
|
81
|
+
fileNames
|
|
82
|
+
});
|
|
83
|
+
await _promises.default.writeFile(_path.default.join(outputDir, "metadata.json"), JSON.stringify(contents));
|
|
84
|
+
return contents;
|
|
85
|
+
}
|
|
86
|
+
async function writeAssetMapAsync({ outputDir , assets }) {
|
|
87
|
+
// Convert the assets array to a k/v pair where the asset hash is the key and the asset is the value.
|
|
88
|
+
const contents = Object.fromEntries(assets.map((asset)=>[
|
|
89
|
+
asset.hash,
|
|
90
|
+
asset
|
|
91
|
+
]
|
|
92
|
+
));
|
|
93
|
+
await _promises.default.writeFile(_path.default.join(outputDir, "assetmap.json"), JSON.stringify(contents));
|
|
94
|
+
return contents;
|
|
95
|
+
}
|
|
96
|
+
async function writeDebugHtmlAsync({ outputDir , fileNames }) {
|
|
97
|
+
// Make a debug html so user can debug their bundles
|
|
98
|
+
const contents = `
|
|
99
|
+
${Object.values(fileNames).map((fileName)=>`<script src="${_path.default.join("bundles", fileName)}"></script>`
|
|
100
|
+
).join("\n ")}
|
|
101
|
+
Open up this file in Chrome. In the JavaScript developer console, navigate to the Source tab.
|
|
102
|
+
You can see a red colored folder containing the original source code from your bundle.
|
|
103
|
+
`;
|
|
104
|
+
await _promises.default.writeFile(_path.default.join(outputDir, "debug.html"), contents);
|
|
105
|
+
return contents;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=writeContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/writeContents.ts"],"sourcesContent":["import { BundleOutput } from '@expo/dev-server';\nimport crypto from 'crypto';\nimport fs from 'fs/promises';\nimport path from 'path';\n\nimport { createMetadataJson } from './createMetadataJson';\nimport { Asset } from './saveAssets';\n\n/**\n * @param props.platform native platform for the bundle\n * @param props.hash crypto hash for the bundle contents\n * @returns filename for the JS bundle.\n */\nfunction createBundleFileName({ platform, hash }: { platform: string; hash: string }): string {\n return `${platform}-${hash}.js`;\n}\n\n/**\n * @param bundle JS bundle as a string\n * @returns crypto hash for the provided bundle\n */\nfunction createBundleHash(bundle: string | Uint8Array): string {\n return crypto.createHash('md5').update(bundle).digest('hex');\n}\n\nexport async function writeBundlesAsync({\n bundles,\n outputDir,\n}: {\n bundles: Record<string, Pick<BundleOutput, 'hermesBytecodeBundle' | 'code'>>;\n outputDir: string;\n}) {\n const hashes: Record<string, string> = {};\n const fileNames: Record<string, string> = {};\n\n for (const [platform, bundleOutput] of Object.entries(bundles)) {\n const bundle = bundleOutput.hermesBytecodeBundle ?? bundleOutput.code;\n const hash = createBundleHash(bundle);\n const fileName = createBundleFileName({ platform, hash });\n\n hashes[platform] = hash;\n fileNames[platform] = fileName;\n await fs.writeFile(path.join(outputDir, fileName), bundle);\n }\n\n return { hashes, fileNames };\n}\n\nexport async function writeSourceMapsAsync({\n bundles,\n hashes,\n fileNames,\n outputDir,\n}: {\n bundles: Record<\n string,\n Pick<BundleOutput, 'hermesSourcemap' | 'map' | 'hermesBytecodeBundle' | 'code'>\n >;\n hashes?: Record<string, string>;\n fileNames?: Record<string, string>;\n outputDir: string;\n}) {\n return Promise.all(\n Object.entries(bundles).map(async ([platform, bundle]) => {\n const sourceMap = bundle.hermesSourcemap ?? bundle.map;\n const hash =\n hashes?.[platform] ?? createBundleHash(bundle.hermesBytecodeBundle ?? bundle.code);\n const mapName = `${platform}-${hash}.map`;\n await fs.writeFile(path.join(outputDir, mapName), sourceMap);\n\n const jsBundleFileName = fileNames?.[platform] ?? createBundleFileName({ platform, hash });\n const jsPath = path.join(outputDir, jsBundleFileName);\n\n // Add correct mapping to sourcemap paths\n const mappingComment = `\\n//# sourceMappingURL=${mapName}`;\n await fs.appendFile(jsPath, mappingComment);\n return {\n platform,\n fileName: mapName,\n hash,\n map: sourceMap,\n comment: mappingComment,\n };\n })\n );\n}\n\nexport async function writeMetadataJsonAsync({\n outputDir,\n bundles,\n fileNames,\n}: {\n outputDir: string;\n bundles: Record<string, Pick<BundleOutput, 'assets'>>;\n fileNames: Record<string, string>;\n}) {\n const contents = createMetadataJson({\n bundles,\n fileNames,\n });\n await fs.writeFile(path.join(outputDir, 'metadata.json'), JSON.stringify(contents));\n return contents;\n}\n\nexport async function writeAssetMapAsync({\n outputDir,\n assets,\n}: {\n outputDir: string;\n assets: Asset[];\n}) {\n // Convert the assets array to a k/v pair where the asset hash is the key and the asset is the value.\n const contents = Object.fromEntries(assets.map((asset) => [asset.hash, asset]));\n await fs.writeFile(path.join(outputDir, 'assetmap.json'), JSON.stringify(contents));\n return contents;\n}\n\nexport async function writeDebugHtmlAsync({\n outputDir,\n fileNames,\n}: {\n outputDir: string;\n fileNames: Record<string, string>;\n}) {\n // Make a debug html so user can debug their bundles\n const contents = `\n ${Object.values(fileNames)\n .map((fileName) => `<script src=\"${path.join('bundles', fileName)}\"></script>`)\n .join('\\n ')}\n Open up this file in Chrome. In the JavaScript developer console, navigate to the Source tab.\n You can see a red colored folder containing the original source code from your bundle.\n `;\n\n await fs.writeFile(path.join(outputDir, 'debug.html'), contents);\n return contents;\n}\n"],"names":["writeBundlesAsync","writeSourceMapsAsync","writeMetadataJsonAsync","writeAssetMapAsync","writeDebugHtmlAsync","createBundleFileName","platform","hash","createBundleHash","bundle","crypto","createHash","update","digest","bundles","outputDir","hashes","fileNames","bundleOutput","Object","entries","hermesBytecodeBundle","code","fileName","fs","writeFile","path","join","Promise","all","map","sourceMap","hermesSourcemap","mapName","jsBundleFileName","jsPath","mappingComment","appendFile","comment","contents","createMetadataJson","JSON","stringify","assets","fromEntries","asset","values"],"mappings":"AAAA;;;;QAyBsBA,iBAAiB,GAAjBA,iBAAiB;QAuBjBC,oBAAoB,GAApBA,oBAAoB;QAuCpBC,sBAAsB,GAAtBA,sBAAsB;QAiBtBC,kBAAkB,GAAlBA,kBAAkB;QAalBC,mBAAmB,GAAnBA,mBAAmB;AApHtB,IAAA,OAAQ,kCAAR,QAAQ,EAAA;AACZ,IAAA,SAAa,kCAAb,aAAa,EAAA;AACX,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEY,IAAA,mBAAsB,WAAtB,sBAAsB,CAAA;;;;;;AAGzD;;;;GAIG,CACH,SAASC,oBAAoB,CAAC,EAAEC,QAAQ,CAAA,EAAEC,IAAI,CAAA,EAAsC,EAAU;IAC5F,OAAO,CAAC,EAAED,QAAQ,CAAC,CAAC,EAAEC,IAAI,CAAC,GAAG,CAAC,CAAC;CACjC;AAED;;;GAGG,CACH,SAASC,gBAAgB,CAACC,MAA2B,EAAU;IAC7D,OAAOC,OAAM,QAAA,CAACC,UAAU,CAAC,KAAK,CAAC,CAACC,MAAM,CAACH,MAAM,CAAC,CAACI,MAAM,CAAC,KAAK,CAAC,CAAC;CAC9D;AAEM,eAAeb,iBAAiB,CAAC,EACtCc,OAAO,CAAA,EACPC,SAAS,CAAA,EAIV,EAAE;IACD,MAAMC,MAAM,GAA2B,EAAE,AAAC;IAC1C,MAAMC,SAAS,GAA2B,EAAE,AAAC;IAE7C,KAAK,MAAM,CAACX,QAAQ,EAAEY,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,OAAO,CAAC,CAAE;YAC/CI,qBAAiC;QAAhD,MAAMT,MAAM,GAAGS,CAAAA,qBAAiC,GAAjCA,YAAY,CAACG,oBAAoB,YAAjCH,qBAAiC,GAAIA,YAAY,CAACI,IAAI,AAAC;QACtE,MAAMf,IAAI,GAAGC,gBAAgB,CAACC,MAAM,CAAC,AAAC;QACtC,MAAMc,QAAQ,GAAGlB,oBAAoB,CAAC;YAAEC,QAAQ;YAAEC,IAAI;SAAE,CAAC,AAAC;QAE1DS,MAAM,CAACV,QAAQ,CAAC,GAAGC,IAAI,CAAC;QACxBU,SAAS,CAACX,QAAQ,CAAC,GAAGiB,QAAQ,CAAC;QAC/B,MAAMC,SAAE,QAAA,CAACC,SAAS,CAACC,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAEQ,QAAQ,CAAC,EAAEd,MAAM,CAAC,CAAC;KAC5D;IAED,OAAO;QAAEO,MAAM;QAAEC,SAAS;KAAE,CAAC;CAC9B;AAEM,eAAehB,oBAAoB,CAAC,EACzCa,OAAO,CAAA,EACPE,MAAM,CAAA,EACNC,SAAS,CAAA,EACTF,SAAS,CAAA,EASV,EAAE;IACD,OAAOa,OAAO,CAACC,GAAG,CAChBV,MAAM,CAACC,OAAO,CAACN,OAAO,CAAC,CAACgB,GAAG,CAAC,OAAO,CAACxB,QAAQ,EAAEG,MAAM,CAAC,GAAK;YACtCA,gBAAsB;QAAxC,MAAMsB,SAAS,GAAGtB,CAAAA,gBAAsB,GAAtBA,MAAM,CAACuB,eAAe,YAAtBvB,gBAAsB,GAAIA,MAAM,CAACqB,GAAG,AAAC;YAEdrB,qBAA2B,EAAlEO,GAAkB;QADpB,MAAMT,IAAI,GACRS,CAAAA,GAAkB,GAAlBA,MAAM,QAAY,GAAlBA,KAAAA,CAAkB,GAAlBA,MAAM,AAAE,CAACV,QAAQ,CAAC,YAAlBU,GAAkB,GAAIR,gBAAgB,CAACC,CAAAA,qBAA2B,GAA3BA,MAAM,CAACY,oBAAoB,YAA3BZ,qBAA2B,GAAIA,MAAM,CAACa,IAAI,CAAC,AAAC;QACrF,MAAMW,OAAO,GAAG,CAAC,EAAE3B,QAAQ,CAAC,CAAC,EAAEC,IAAI,CAAC,IAAI,CAAC,AAAC;QAC1C,MAAMiB,SAAE,QAAA,CAACC,SAAS,CAACC,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAEkB,OAAO,CAAC,EAAEF,SAAS,CAAC,CAAC;YAEpCd,IAAqB;QAA9C,MAAMiB,gBAAgB,GAAGjB,CAAAA,IAAqB,GAArBA,SAAS,QAAY,GAArBA,KAAAA,CAAqB,GAArBA,SAAS,AAAE,CAACX,QAAQ,CAAC,YAArBW,IAAqB,GAAIZ,oBAAoB,CAAC;YAAEC,QAAQ;YAAEC,IAAI;SAAE,CAAC,AAAC;QAC3F,MAAM4B,MAAM,GAAGT,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAEmB,gBAAgB,CAAC,AAAC;QAEtD,yCAAyC;QACzC,MAAME,cAAc,GAAG,CAAC,uBAAuB,EAAEH,OAAO,CAAC,CAAC,AAAC;QAC3D,MAAMT,SAAE,QAAA,CAACa,UAAU,CAACF,MAAM,EAAEC,cAAc,CAAC,CAAC;QAC5C,OAAO;YACL9B,QAAQ;YACRiB,QAAQ,EAAEU,OAAO;YACjB1B,IAAI;YACJuB,GAAG,EAAEC,SAAS;YACdO,OAAO,EAAEF,cAAc;SACxB,CAAC;KACH,CAAC,CACH,CAAC;CACH;AAEM,eAAelC,sBAAsB,CAAC,EAC3Ca,SAAS,CAAA,EACTD,OAAO,CAAA,EACPG,SAAS,CAAA,EAKV,EAAE;IACD,MAAMsB,QAAQ,GAAGC,CAAAA,GAAAA,mBAAkB,AAGjC,CAAA,mBAHiC,CAAC;QAClC1B,OAAO;QACPG,SAAS;KACV,CAAC,AAAC;IACH,MAAMO,SAAE,QAAA,CAACC,SAAS,CAACC,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAE,eAAe,CAAC,EAAE0B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAAC;IACpF,OAAOA,QAAQ,CAAC;CACjB;AAEM,eAAepC,kBAAkB,CAAC,EACvCY,SAAS,CAAA,EACT4B,MAAM,CAAA,EAIP,EAAE;IACD,qGAAqG;IACrG,MAAMJ,QAAQ,GAAGpB,MAAM,CAACyB,WAAW,CAACD,MAAM,CAACb,GAAG,CAAC,CAACe,KAAK,GAAK;YAACA,KAAK,CAACtC,IAAI;YAAEsC,KAAK;SAAC;IAAA,CAAC,CAAC,AAAC;IAChF,MAAMrB,SAAE,QAAA,CAACC,SAAS,CAACC,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAE,eAAe,CAAC,EAAE0B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAAC;IACpF,OAAOA,QAAQ,CAAC;CACjB;AAEM,eAAenC,mBAAmB,CAAC,EACxCW,SAAS,CAAA,EACTE,SAAS,CAAA,EAIV,EAAE;IACD,oDAAoD;IACpD,MAAMsB,QAAQ,GAAG,CAAC;MACd,EAAEpB,MAAM,CAAC2B,MAAM,CAAC7B,SAAS,CAAC,CACvBa,GAAG,CAAC,CAACP,QAAQ,GAAK,CAAC,aAAa,EAAEG,KAAI,QAAA,CAACC,IAAI,CAAC,SAAS,EAAEJ,QAAQ,CAAC,CAAC,WAAW,CAAC;IAAA,CAAC,CAC9EI,IAAI,CAAC,UAAU,CAAC,CAAC;;;MAGpB,CAAC,AAAC;IAEN,MAAMH,SAAE,QAAA,CAACC,SAAS,CAACC,KAAI,QAAA,CAACC,IAAI,CAACZ,SAAS,EAAE,YAAY,CAAC,EAAEwB,QAAQ,CAAC,CAAC;IACjE,OAAOA,QAAQ,CAAC;CACjB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.checkPackagesAsync = checkPackagesAsync;
|
|
6
|
+
var _config = require("@expo/config");
|
|
7
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
9
|
+
var _validateDependenciesVersions = require("../start/doctor/dependencies/validateDependenciesVersions");
|
|
10
|
+
var _env = require("../utils/env");
|
|
11
|
+
var _prompts = require("../utils/prompts");
|
|
12
|
+
var _installAsync = require("./installAsync");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function _interopRequireWildcard(obj) {
|
|
19
|
+
if (obj && obj.__esModule) {
|
|
20
|
+
return obj;
|
|
21
|
+
} else {
|
|
22
|
+
var newObj = {};
|
|
23
|
+
if (obj != null) {
|
|
24
|
+
for(var key in obj){
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
26
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
27
|
+
if (desc.get || desc.set) {
|
|
28
|
+
Object.defineProperty(newObj, key, desc);
|
|
29
|
+
} else {
|
|
30
|
+
newObj[key] = obj[key];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
newObj.default = obj;
|
|
36
|
+
return newObj;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function checkPackagesAsync(projectRoot, { packages , packageManager , options: { fix } , packageManagerArguments }) {
|
|
40
|
+
// Read the project Expo config without plugins.
|
|
41
|
+
const { exp , pkg } = (0, _config).getConfig(projectRoot, {
|
|
42
|
+
// Sometimes users will add a plugin to the config before installing the library,
|
|
43
|
+
// this wouldn't work unless we dangerously disable plugin serialization.
|
|
44
|
+
skipPlugins: true
|
|
45
|
+
});
|
|
46
|
+
const dependencies = await (0, _validateDependenciesVersions).getVersionedDependenciesAsync(projectRoot, exp, pkg, packages);
|
|
47
|
+
if (!dependencies.length) {
|
|
48
|
+
Log.exit(_chalk.default.greenBright("Dependencies are up to date"), 0);
|
|
49
|
+
}
|
|
50
|
+
(0, _validateDependenciesVersions).logIncorrectDependencies(dependencies);
|
|
51
|
+
const value = // If `--fix` then always fix.
|
|
52
|
+
fix || // Otherwise prompt to fix when not running in CI.
|
|
53
|
+
(!_env.env.CI && await (0, _prompts).confirmAsync({
|
|
54
|
+
message: "Fix dependencies?"
|
|
55
|
+
}).catch(()=>false
|
|
56
|
+
));
|
|
57
|
+
if (value) {
|
|
58
|
+
// Just pass in the names, the install function will resolve the versions again.
|
|
59
|
+
const fixedDependencies = dependencies.map((dependency)=>dependency.packageName
|
|
60
|
+
);
|
|
61
|
+
Log.debug("Installing fixed dependencies:", fixedDependencies);
|
|
62
|
+
// Install the corrected dependencies.
|
|
63
|
+
return (0, _installAsync).installPackagesAsync(projectRoot, {
|
|
64
|
+
packageManager,
|
|
65
|
+
packages: fixedDependencies,
|
|
66
|
+
packageManagerArguments,
|
|
67
|
+
sdkVersion: exp.sdkVersion
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Exit with non-zero exit code if any of the dependencies are out of date.
|
|
71
|
+
Log.exit(_chalk.default.red("Found outdated dependencies"), 1);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=checkPackages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/install/checkPackages.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport * as PackageManager from '@expo/package-manager';\nimport chalk from 'chalk';\n\nimport * as Log from '../log';\nimport {\n getVersionedDependenciesAsync,\n logIncorrectDependencies,\n} from '../start/doctor/dependencies/validateDependenciesVersions';\nimport { env } from '../utils/env';\nimport { confirmAsync } from '../utils/prompts';\nimport { installPackagesAsync } from './installAsync';\nimport { Options } from './resolveOptions';\n\n// Exposed for testing.\nexport async function checkPackagesAsync(\n projectRoot: string,\n {\n packages,\n packageManager,\n options: { fix },\n packageManagerArguments,\n }: {\n /**\n * List of packages to version\n * @example ['uuid', 'react-native-reanimated@latest']\n */\n packages: string[];\n /** Package manager to use when installing the versioned packages. */\n packageManager: PackageManager.NpmPackageManager | PackageManager.YarnPackageManager;\n\n /** How the check should resolve */\n options: Pick<Options, 'fix'>;\n /**\n * Extra parameters to pass to the `packageManager` when installing versioned packages.\n * @example ['--no-save']\n */\n packageManagerArguments: string[];\n }\n) {\n // Read the project Expo config without plugins.\n const { exp, pkg } = getConfig(projectRoot, {\n // Sometimes users will add a plugin to the config before installing the library,\n // this wouldn't work unless we dangerously disable plugin serialization.\n skipPlugins: true,\n });\n\n const dependencies = await getVersionedDependenciesAsync(projectRoot, exp, pkg, packages);\n\n if (!dependencies.length) {\n Log.exit(chalk.greenBright('Dependencies are up to date'), 0);\n }\n\n logIncorrectDependencies(dependencies);\n\n const value =\n // If `--fix` then always fix.\n fix ||\n // Otherwise prompt to fix when not running in CI.\n (!env.CI && (await confirmAsync({ message: 'Fix dependencies?' }).catch(() => false)));\n\n if (value) {\n // Just pass in the names, the install function will resolve the versions again.\n const fixedDependencies = dependencies.map((dependency) => dependency.packageName);\n Log.debug('Installing fixed dependencies:', fixedDependencies);\n // Install the corrected dependencies.\n return installPackagesAsync(projectRoot, {\n packageManager,\n packages: fixedDependencies,\n packageManagerArguments,\n sdkVersion: exp.sdkVersion!,\n });\n }\n // Exit with non-zero exit code if any of the dependencies are out of date.\n Log.exit(chalk.red('Found outdated dependencies'), 1);\n}\n"],"names":["checkPackagesAsync","Log","projectRoot","packages","packageManager","options","fix","packageManagerArguments","exp","pkg","getConfig","skipPlugins","dependencies","getVersionedDependenciesAsync","length","exit","chalk","greenBright","logIncorrectDependencies","value","env","CI","confirmAsync","message","catch","fixedDependencies","map","dependency","packageName","debug","installPackagesAsync","sdkVersion","red"],"mappings":"AAAA;;;;QAesBA,kBAAkB,GAAlBA,kBAAkB;AAfd,IAAA,OAAc,WAAd,cAAc,CAAA;AAEtB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAEbC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AAIR,IAAA,6BAA2D,WAA3D,2DAA2D,CAAA;AAC9C,IAAA,IAAc,WAAd,cAAc,CAAA;AACL,IAAA,QAAkB,WAAlB,kBAAkB,CAAA;AACV,IAAA,aAAgB,WAAhB,gBAAgB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI9C,eAAeD,kBAAkB,CACtCE,WAAmB,EACnB,EACEC,QAAQ,CAAA,EACRC,cAAc,CAAA,EACdC,OAAO,EAAE,EAAEC,GAAG,CAAA,EAAE,CAAA,EAChBC,uBAAuB,CAAA,EAiBxB,EACD;IACA,gDAAgD;IAChD,MAAM,EAAEC,GAAG,CAAA,EAAEC,GAAG,CAAA,EAAE,GAAGC,CAAAA,GAAAA,OAAS,AAI5B,CAAA,UAJ4B,CAACR,WAAW,EAAE;QAC1C,iFAAiF;QACjF,yEAAyE;QACzES,WAAW,EAAE,IAAI;KAClB,CAAC,AAAC;IAEH,MAAMC,YAAY,GAAG,MAAMC,CAAAA,GAAAA,6BAA6B,AAAiC,CAAA,8BAAjC,CAACX,WAAW,EAAEM,GAAG,EAAEC,GAAG,EAAEN,QAAQ,CAAC,AAAC;IAE1F,IAAI,CAACS,YAAY,CAACE,MAAM,EAAE;QACxBb,GAAG,CAACc,IAAI,CAACC,MAAK,QAAA,CAACC,WAAW,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/D;IAEDC,CAAAA,GAAAA,6BAAwB,AAAc,CAAA,yBAAd,CAACN,YAAY,CAAC,CAAC;IAEvC,MAAMO,KAAK,GACT,8BAA8B;IAC9Bb,GAAG,IACH,kDAAkD;IAClD,CAAC,CAACc,IAAG,IAAA,CAACC,EAAE,IAAK,MAAMC,CAAAA,GAAAA,QAAY,AAAkC,CAAA,aAAlC,CAAC;QAAEC,OAAO,EAAE,mBAAmB;KAAE,CAAC,CAACC,KAAK,CAAC,IAAM,KAAK;IAAA,CAAC,AAAC,CAAC,AAAC;IAEzF,IAAIL,KAAK,EAAE;QACT,gFAAgF;QAChF,MAAMM,iBAAiB,GAAGb,YAAY,CAACc,GAAG,CAAC,CAACC,UAAU,GAAKA,UAAU,CAACC,WAAW;QAAA,CAAC,AAAC;QACnF3B,GAAG,CAAC4B,KAAK,CAAC,gCAAgC,EAAEJ,iBAAiB,CAAC,CAAC;QAC/D,sCAAsC;QACtC,OAAOK,CAAAA,GAAAA,aAAoB,AAKzB,CAAA,qBALyB,CAAC5B,WAAW,EAAE;YACvCE,cAAc;YACdD,QAAQ,EAAEsB,iBAAiB;YAC3BlB,uBAAuB;YACvBwB,UAAU,EAAEvB,GAAG,CAACuB,UAAU;SAC3B,CAAC,CAAC;KACJ;IACD,2EAA2E;IAC3E9B,GAAG,CAACc,IAAI,CAACC,MAAK,QAAA,CAACgB,GAAG,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;CACvD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.expoInstall = void 0;
|
|
7
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var _args = require("../utils/args");
|
|
9
|
+
function _interopRequireDefault(obj) {
|
|
10
|
+
return obj && obj.__esModule ? obj : {
|
|
11
|
+
default: obj
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const expoInstall = async (argv)=>{
|
|
15
|
+
const args = (0, _args).assertWithOptionsArgs({
|
|
16
|
+
// Other options are parsed manually.
|
|
17
|
+
"--help": Boolean,
|
|
18
|
+
// Aliases
|
|
19
|
+
"-h": "--help"
|
|
20
|
+
}, {
|
|
21
|
+
argv,
|
|
22
|
+
// Allow other options, we'll throw an error if unexpected values are passed.
|
|
23
|
+
permissive: true
|
|
24
|
+
});
|
|
25
|
+
if (args["--help"]) {
|
|
26
|
+
(0, _args).printHelp(`Install a module or other package to a project`, `npx expo install`, [
|
|
27
|
+
`--check Check which installed packages need to be updated`,
|
|
28
|
+
`--fix Automatically update any invalid package versions`,
|
|
29
|
+
_chalk.default`--npm Use npm to install dependencies. {dim Default when package-lock.json exists}`,
|
|
30
|
+
_chalk.default`--yarn Use Yarn to install dependencies. {dim Default when yarn.lock exists}`,
|
|
31
|
+
`-h, --help Usage info`,
|
|
32
|
+
].join("\n"), [
|
|
33
|
+
"",
|
|
34
|
+
_chalk.default` Additional options can be passed to the underlying install command by using {bold --}`,
|
|
35
|
+
_chalk.default` {dim $} npx expo install react -- --verbose`,
|
|
36
|
+
_chalk.default` {dim >} yarn add react --verbose`,
|
|
37
|
+
"",
|
|
38
|
+
].join("\n"));
|
|
39
|
+
}
|
|
40
|
+
// Load modules after the help prompt so `npx expo install -h` shows as fast as possible.
|
|
41
|
+
const { installAsync } = require("./installAsync");
|
|
42
|
+
const { logCmdError } = require("../utils/errors");
|
|
43
|
+
const { resolveArgsAsync } = require("./resolveOptions");
|
|
44
|
+
const { variadic , options , extras } = await resolveArgsAsync(process.argv.slice(3)).catch(logCmdError);
|
|
45
|
+
return installAsync(variadic, options, extras).catch(logCmdError);
|
|
46
|
+
};
|
|
47
|
+
exports.expoInstall = expoInstall;
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/install/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk';\n\nimport { Command } from '../../bin/cli';\nimport { assertWithOptionsArgs, printHelp } from '../utils/args';\n\nexport const expoInstall: Command = async (argv) => {\n const args = assertWithOptionsArgs(\n {\n // Other options are parsed manually.\n '--help': Boolean,\n // Aliases\n '-h': '--help',\n },\n {\n argv,\n // Allow other options, we'll throw an error if unexpected values are passed.\n permissive: true,\n }\n );\n\n if (args['--help']) {\n printHelp(\n `Install a module or other package to a project`,\n `npx expo install`,\n [\n `--check Check which installed packages need to be updated`,\n `--fix Automatically update any invalid package versions`,\n chalk`--npm Use npm to install dependencies. {dim Default when package-lock.json exists}`,\n chalk`--yarn Use Yarn to install dependencies. {dim Default when yarn.lock exists}`,\n `-h, --help Usage info`,\n ].join('\\n'),\n [\n '',\n chalk` Additional options can be passed to the underlying install command by using {bold --}`,\n chalk` {dim $} npx expo install react -- --verbose`,\n chalk` {dim >} yarn add react --verbose`,\n '',\n ].join('\\n')\n );\n }\n\n // Load modules after the help prompt so `npx expo install -h` shows as fast as possible.\n const { installAsync } = require('./installAsync') as typeof import('./installAsync');\n const { logCmdError } = require('../utils/errors') as typeof import('../utils/errors');\n const { resolveArgsAsync } = require('./resolveOptions') as typeof import('./resolveOptions');\n\n const { variadic, options, extras } = await resolveArgsAsync(process.argv.slice(3)).catch(\n logCmdError\n );\n return installAsync(variadic, options, extras).catch(logCmdError);\n};\n"],"names":["expoInstall","argv","args","assertWithOptionsArgs","Boolean","permissive","printHelp","chalk","join","installAsync","require","logCmdError","resolveArgsAsync","variadic","options","extras","process","slice","catch"],"mappings":"AAAA;;;;;;AACkB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAGwB,IAAA,KAAe,WAAf,eAAe,CAAA;;;;;;AAEzD,MAAMA,WAAW,GAAY,OAAOC,IAAI,GAAK;IAClD,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,KAAqB,AAYjC,CAAA,sBAZiC,CAChC;QACE,qCAAqC;QACrC,QAAQ,EAAEC,OAAO;QACjB,UAAU;QACV,IAAI,EAAE,QAAQ;KACf,EACD;QACEH,IAAI;QACJ,6EAA6E;QAC7EI,UAAU,EAAE,IAAI;KACjB,CACF,AAAC;IAEF,IAAIH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBI,CAAAA,GAAAA,KAAS,AAiBR,CAAA,UAjBQ,CACP,CAAC,8CAA8C,CAAC,EAChD,CAAC,gBAAgB,CAAC,EAClB;YACE,CAAC,6DAA6D,CAAC;YAC/D,CAAC,6DAA6D,CAAC;YAC/DC,MAAK,QAAA,CAAC,wFAAwF,CAAC;YAC/FA,MAAK,QAAA,CAAC,iFAAiF,CAAC;YACxF,CAAC,sBAAsB,CAAC;SACzB,CAACC,IAAI,CAAC,IAAI,CAAC,EACZ;YACE,EAAE;YACFD,MAAK,QAAA,CAAC,uFAAuF,CAAC;YAC9FA,MAAK,QAAA,CAAC,+CAA+C,CAAC;YACtDA,MAAK,QAAA,CAAC,oCAAoC,CAAC;YAC3C,EAAE;SACH,CAACC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,yFAAyF;IACzF,MAAM,EAAEC,YAAY,CAAA,EAAE,GAAGC,OAAO,CAAC,gBAAgB,CAAC,AAAmC,AAAC;IACtF,MAAM,EAAEC,WAAW,CAAA,EAAE,GAAGD,OAAO,CAAC,iBAAiB,CAAC,AAAoC,AAAC;IACvF,MAAM,EAAEE,gBAAgB,CAAA,EAAE,GAAGF,OAAO,CAAC,kBAAkB,CAAC,AAAqC,AAAC;IAE9F,MAAM,EAAEG,QAAQ,CAAA,EAAEC,OAAO,CAAA,EAAEC,MAAM,CAAA,EAAE,GAAG,MAAMH,gBAAgB,CAACI,OAAO,CAACf,IAAI,CAACgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,CACvFP,WAAW,CACZ,AAAC;IACF,OAAOF,YAAY,CAACI,QAAQ,EAAEC,OAAO,EAAEC,MAAM,CAAC,CAACG,KAAK,CAACP,WAAW,CAAC,CAAC;CACnE,AAAC;QA7CWX,WAAW,GAAXA,WAAW"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.installAsync = installAsync;
|
|
6
|
+
exports.installPackagesAsync = installPackagesAsync;
|
|
7
|
+
var _config = require("@expo/config");
|
|
8
|
+
var PackageManager = _interopRequireWildcard(require("@expo/package-manager"));
|
|
9
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
10
|
+
var _getVersionedPackages = require("../start/doctor/dependencies/getVersionedPackages");
|
|
11
|
+
var _findUp = require("../utils/findUp");
|
|
12
|
+
var _checkPackages = require("./checkPackages");
|
|
13
|
+
function _interopRequireWildcard(obj) {
|
|
14
|
+
if (obj && obj.__esModule) {
|
|
15
|
+
return obj;
|
|
16
|
+
} else {
|
|
17
|
+
var newObj = {};
|
|
18
|
+
if (obj != null) {
|
|
19
|
+
for(var key in obj){
|
|
20
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
21
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
22
|
+
if (desc.get || desc.set) {
|
|
23
|
+
Object.defineProperty(newObj, key, desc);
|
|
24
|
+
} else {
|
|
25
|
+
newObj[key] = obj[key];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
newObj.default = obj;
|
|
31
|
+
return newObj;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function installAsync(packages, options, packageManagerArguments = []) {
|
|
35
|
+
// Locate the project root based on the process current working directory.
|
|
36
|
+
// This enables users to run `npx expo install` from a subdirectory of the project.
|
|
37
|
+
const projectRoot = (0, _findUp).findUpProjectRootOrAssert(process.cwd());
|
|
38
|
+
// Resolve the package manager used by the project, or based on the provided arguments.
|
|
39
|
+
const packageManager = PackageManager.createForProject(projectRoot, {
|
|
40
|
+
npm: options.npm,
|
|
41
|
+
yarn: options.yarn,
|
|
42
|
+
log: Log.log
|
|
43
|
+
});
|
|
44
|
+
if (options.check || options.fix) {
|
|
45
|
+
return await (0, _checkPackages).checkPackagesAsync(projectRoot, {
|
|
46
|
+
packages,
|
|
47
|
+
options,
|
|
48
|
+
packageManager,
|
|
49
|
+
packageManagerArguments
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// Read the project Expo config without plugins.
|
|
53
|
+
const { exp } = (0, _config).getConfig(projectRoot, {
|
|
54
|
+
// Sometimes users will add a plugin to the config before installing the library,
|
|
55
|
+
// this wouldn't work unless we dangerously disable plugin serialization.
|
|
56
|
+
skipPlugins: true
|
|
57
|
+
});
|
|
58
|
+
// Resolve the versioned packages, then install them.
|
|
59
|
+
return installPackagesAsync(projectRoot, {
|
|
60
|
+
packageManager,
|
|
61
|
+
packages,
|
|
62
|
+
packageManagerArguments,
|
|
63
|
+
sdkVersion: exp.sdkVersion
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function installPackagesAsync(projectRoot, { packages , packageManager , sdkVersion , packageManagerArguments }) {
|
|
67
|
+
const versioning = await (0, _getVersionedPackages).getVersionedPackagesAsync(projectRoot, {
|
|
68
|
+
packages,
|
|
69
|
+
// sdkVersion is always defined because we don't skipSDKVersionRequirement in getConfig.
|
|
70
|
+
sdkVersion
|
|
71
|
+
});
|
|
72
|
+
Log.log(`Installing ${versioning.messages.join(" and ")} using ${packageManager.name}.`);
|
|
73
|
+
await packageManager.addWithParametersAsync(versioning.packages, packageManagerArguments);
|
|
74
|
+
await applyPluginsAsync(projectRoot, versioning.packages);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A convenience feature for automatically applying Expo Config Plugins to the `app.json` after installing them.
|
|
78
|
+
* This should be dropped in favor of autolinking in the future.
|
|
79
|
+
*/ async function applyPluginsAsync(projectRoot, packages) {
|
|
80
|
+
const { autoAddConfigPluginsAsync } = await Promise.resolve().then(function() {
|
|
81
|
+
return _interopRequireWildcard(require("./utils/autoAddConfigPlugins"));
|
|
82
|
+
});
|
|
83
|
+
try {
|
|
84
|
+
const { exp } = (0, _config).getConfig(projectRoot, {
|
|
85
|
+
skipSDKVersionRequirement: true,
|
|
86
|
+
skipPlugins: true
|
|
87
|
+
});
|
|
88
|
+
// Only auto add plugins if the plugins array is defined or if the project is using SDK +42.
|
|
89
|
+
await autoAddConfigPluginsAsync(projectRoot, exp, // Split any possible NPM tags. i.e. `expo@latest` -> `expo`
|
|
90
|
+
packages.map((pkg)=>pkg.split("@")[0]
|
|
91
|
+
).filter(Boolean));
|
|
92
|
+
} catch (error) {
|
|
93
|
+
// If we fail to apply plugins, the log a warning and continue.
|
|
94
|
+
if (error.isPluginError) {
|
|
95
|
+
Log.warn(`Skipping config plugin check: ` + error.message);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Any other error, rethrow.
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=installAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/install/installAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport * as PackageManager from '@expo/package-manager';\n\nimport * as Log from '../log';\nimport { getVersionedPackagesAsync } from '../start/doctor/dependencies/getVersionedPackages';\nimport { findUpProjectRootOrAssert } from '../utils/findUp';\nimport { checkPackagesAsync } from './checkPackages';\nimport { Options } from './resolveOptions';\n\nexport async function installAsync(\n packages: string[],\n options: Options,\n packageManagerArguments: string[] = []\n) {\n // Locate the project root based on the process current working directory.\n // This enables users to run `npx expo install` from a subdirectory of the project.\n const projectRoot = findUpProjectRootOrAssert(process.cwd());\n\n // Resolve the package manager used by the project, or based on the provided arguments.\n const packageManager = PackageManager.createForProject(projectRoot, {\n npm: options.npm,\n yarn: options.yarn,\n log: Log.log,\n });\n\n if (options.check || options.fix) {\n return await checkPackagesAsync(projectRoot, {\n packages,\n options,\n packageManager,\n packageManagerArguments,\n });\n }\n\n // Read the project Expo config without plugins.\n const { exp } = getConfig(projectRoot, {\n // Sometimes users will add a plugin to the config before installing the library,\n // this wouldn't work unless we dangerously disable plugin serialization.\n skipPlugins: true,\n });\n\n // Resolve the versioned packages, then install them.\n return installPackagesAsync(projectRoot, {\n packageManager,\n packages,\n packageManagerArguments,\n sdkVersion: exp.sdkVersion!,\n });\n}\n\n/** Version packages and install in a project. */\nexport async function installPackagesAsync(\n projectRoot: string,\n {\n packages,\n packageManager,\n sdkVersion,\n packageManagerArguments,\n }: {\n /**\n * List of packages to version\n * @example ['uuid', 'react-native-reanimated@latest']\n */\n packages: string[];\n /** Package manager to use when installing the versioned packages. */\n packageManager: PackageManager.NpmPackageManager | PackageManager.YarnPackageManager;\n /**\n * SDK to version `packages` for.\n * @example '44.0.0'\n */\n sdkVersion: string;\n /**\n * Extra parameters to pass to the `packageManager` when installing versioned packages.\n * @example ['--no-save']\n */\n packageManagerArguments: string[];\n }\n): Promise<void> {\n const versioning = await getVersionedPackagesAsync(projectRoot, {\n packages,\n // sdkVersion is always defined because we don't skipSDKVersionRequirement in getConfig.\n sdkVersion,\n });\n\n Log.log(`Installing ${versioning.messages.join(' and ')} using ${packageManager.name}.`);\n\n await packageManager.addWithParametersAsync(versioning.packages, packageManagerArguments);\n\n await applyPluginsAsync(projectRoot, versioning.packages);\n}\n\n/**\n * A convenience feature for automatically applying Expo Config Plugins to the `app.json` after installing them.\n * This should be dropped in favor of autolinking in the future.\n */\nasync function applyPluginsAsync(projectRoot: string, packages: string[]) {\n const { autoAddConfigPluginsAsync } = await import('./utils/autoAddConfigPlugins');\n\n try {\n const { exp } = getConfig(projectRoot, { skipSDKVersionRequirement: true, skipPlugins: true });\n\n // Only auto add plugins if the plugins array is defined or if the project is using SDK +42.\n await autoAddConfigPluginsAsync(\n projectRoot,\n exp,\n // Split any possible NPM tags. i.e. `expo@latest` -> `expo`\n packages.map((pkg) => pkg.split('@')[0]).filter(Boolean)\n );\n } catch (error: any) {\n // If we fail to apply plugins, the log a warning and continue.\n if (error.isPluginError) {\n Log.warn(`Skipping config plugin check: ` + error.message);\n return;\n }\n // Any other error, rethrow.\n throw error;\n }\n}\n"],"names":["installAsync","installPackagesAsync","PackageManager","Log","packages","options","packageManagerArguments","projectRoot","findUpProjectRootOrAssert","process","cwd","packageManager","createForProject","npm","yarn","log","check","fix","checkPackagesAsync","exp","getConfig","skipPlugins","sdkVersion","versioning","getVersionedPackagesAsync","messages","join","name","addWithParametersAsync","applyPluginsAsync","autoAddConfigPluginsAsync","skipSDKVersionRequirement","map","pkg","split","filter","Boolean","error","isPluginError","warn","message"],"mappings":"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"}
|