@expo/cli 0.0.0 → 0.1.0
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 +125 -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 +85 -0
- package/build/src/config/index.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 +76 -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 +76 -0
- package/build/src/login/index.js.map +1 -0
- package/build/src/logout/index.js +63 -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 +101 -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 +63 -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/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 +126 -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 +108 -0
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
- package/build/src/start/platforms/PlatformManager.js +96 -0
- package/build/src/start/platforms/PlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/ADBServer.js +127 -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 +171 -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 +78 -0
- package/build/src/start/platforms/android/activateWindow.js.map +1 -0
- package/build/src/start/platforms/android/adb.js +230 -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/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 +252 -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 +158 -0
- package/build/src/start/server/UrlCreator.js.map +1 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js +100 -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 +53 -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 +107 -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 +303 -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 +63 -0
- package/build/src/utils/args.js.map +1 -0
- package/build/src/utils/array.js +27 -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 +34 -0
- package/build/src/utils/dir.js.map +1 -0
- package/build/src/utils/downloadAppAsync.js +71 -0
- package/build/src/utils/downloadAppAsync.js.map +1 -0
- package/build/src/utils/downloadExpoGoAsync.js +93 -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 +59 -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/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 +63 -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 +128 -4
- package/static/loading-page/index.html +270 -0
- package/index.js +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
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 Log = _interopRequireWildcard(require("../log"));
|
|
9
|
+
var _args = require("../utils/args");
|
|
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
|
+
const expoInstall = async (argv)=>{
|
|
37
|
+
const args = (0, _args).assertWithOptionsArgs({
|
|
38
|
+
// Other options are parsed manually.
|
|
39
|
+
"--help": Boolean,
|
|
40
|
+
// Aliases
|
|
41
|
+
"-h": "--help"
|
|
42
|
+
}, {
|
|
43
|
+
argv,
|
|
44
|
+
// Allow other options, we'll throw an error if unexpected values are passed.
|
|
45
|
+
permissive: true
|
|
46
|
+
});
|
|
47
|
+
if (args["--help"]) {
|
|
48
|
+
Log.exit(_chalk.default`
|
|
49
|
+
{bold Description}
|
|
50
|
+
Install a module or other package to a project
|
|
51
|
+
|
|
52
|
+
{bold Usage}
|
|
53
|
+
$ npx expo install {dim [packages...] [options]}
|
|
54
|
+
|
|
55
|
+
{bold Options}
|
|
56
|
+
--check Check which installed packages need to be updated.
|
|
57
|
+
--fix Automatically update any invalid package versions.
|
|
58
|
+
--npm Use npm to install dependencies. {dim Default when package-lock.json exists}
|
|
59
|
+
--yarn Use Yarn to install dependencies. {dim Default when yarn.lock exists}
|
|
60
|
+
-h, --help Output usage information
|
|
61
|
+
|
|
62
|
+
Additional options can be passed to the underlying install command by using {bold --}
|
|
63
|
+
$ expo install react -- --verbose
|
|
64
|
+
{dim >} yarn add react --verbose
|
|
65
|
+
`, 0);
|
|
66
|
+
}
|
|
67
|
+
// Load modules after the help prompt so `npx expo install -h` shows as fast as possible.
|
|
68
|
+
const { installAsync } = require("./installAsync");
|
|
69
|
+
const { logCmdError } = require("../utils/errors");
|
|
70
|
+
const { resolveArgsAsync } = require("./resolveOptions");
|
|
71
|
+
const { variadic , options , extras } = await resolveArgsAsync(process.argv.slice(3)).catch(logCmdError);
|
|
72
|
+
return installAsync(variadic, options, extras).catch(logCmdError);
|
|
73
|
+
};
|
|
74
|
+
exports.expoInstall = expoInstall;
|
|
75
|
+
|
|
76
|
+
//# 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 * as Log from '../log';\nimport { assertWithOptionsArgs } 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 Log.exit(\n chalk`\n {bold Description}\n Install a module or other package to a project\n\n {bold Usage}\n $ npx expo install {dim [packages...] [options]}\n\n {bold Options}\n --check Check which installed packages need to be updated.\n --fix Automatically update any invalid package versions.\n --npm Use npm to install dependencies. {dim Default when package-lock.json exists}\n --yarn Use Yarn to install dependencies. {dim Default when yarn.lock exists}\n -h, --help Output usage information\n\n Additional options can be passed to the underlying install command by using {bold --}\n $ expo install react -- --verbose\n {dim >} yarn add react --verbose\n `,\n 0\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":["Log","expoInstall","argv","args","assertWithOptionsArgs","Boolean","permissive","exit","chalk","installAsync","require","logCmdError","resolveArgsAsync","variadic","options","extras","process","slice","catch"],"mappings":"AAAA;;;;;;AACkB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAGbA,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACuB,IAAA,KAAe,WAAf,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9C,MAAMC,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;QAClBH,GAAG,CAACO,IAAI,CACNC,MAAK,QAAA,CAAC;;;;;;;;;;;;;;;;;IAiBR,CAAC,EACC,CAAC,CACF,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,CAACd,IAAI,CAACe,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;QAhDWV,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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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.parseVariadicArguments = parseVariadicArguments;
|
|
6
|
+
exports.resolveArgsAsync = resolveArgsAsync;
|
|
7
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
8
|
+
var _errors = require("../utils/errors");
|
|
9
|
+
function _interopRequireWildcard(obj) {
|
|
10
|
+
if (obj && obj.__esModule) {
|
|
11
|
+
return obj;
|
|
12
|
+
} else {
|
|
13
|
+
var newObj = {};
|
|
14
|
+
if (obj != null) {
|
|
15
|
+
for(var key in obj){
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
17
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
18
|
+
if (desc.get || desc.set) {
|
|
19
|
+
Object.defineProperty(newObj, key, desc);
|
|
20
|
+
} else {
|
|
21
|
+
newObj[key] = obj[key];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
newObj.default = obj;
|
|
27
|
+
return newObj;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function resolveOptions(options) {
|
|
31
|
+
if (options.fix && options.check) {
|
|
32
|
+
throw new _errors.CommandError("BAD_ARGS", "Specify at most one of: --check, --fix");
|
|
33
|
+
}
|
|
34
|
+
if (options.npm && options.yarn) {
|
|
35
|
+
throw new _errors.CommandError("BAD_ARGS", "Specify at most one of: --npm, --yarn");
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
...options
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function parseVariadicArguments(argv) {
|
|
42
|
+
const variadic = [];
|
|
43
|
+
const flags = {};
|
|
44
|
+
for (const arg of argv){
|
|
45
|
+
if (!arg.startsWith("-")) {
|
|
46
|
+
variadic.push(arg);
|
|
47
|
+
} else if (arg === "--") {
|
|
48
|
+
break;
|
|
49
|
+
} else {
|
|
50
|
+
flags[arg] = true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Everything after `--` that is not an option is passed to the underlying install command.
|
|
54
|
+
const extras = [];
|
|
55
|
+
const extraOperator = argv.indexOf("--");
|
|
56
|
+
if (extraOperator > -1 && argv.length > extraOperator + 1) {
|
|
57
|
+
const extraArgs = argv.slice(extraOperator + 1);
|
|
58
|
+
if (extraArgs.includes("--")) {
|
|
59
|
+
throw new _errors.CommandError("BAD_ARGS", "Unexpected multiple --");
|
|
60
|
+
}
|
|
61
|
+
extras.push(...extraArgs);
|
|
62
|
+
Log.debug("Extra arguments: " + extras.join(", "));
|
|
63
|
+
}
|
|
64
|
+
Log.debug(`Parsed arguments (variadic: %O, flags: %O, extra: %O)`, variadic, flags, extras);
|
|
65
|
+
return {
|
|
66
|
+
variadic,
|
|
67
|
+
flags,
|
|
68
|
+
extras
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function resolveArgsAsync(argv) {
|
|
72
|
+
const { variadic , extras , flags } = parseVariadicArguments(argv);
|
|
73
|
+
assertUnexpectedObjectKeys([
|
|
74
|
+
"--check",
|
|
75
|
+
"--fix",
|
|
76
|
+
"--npm",
|
|
77
|
+
"--yarn"
|
|
78
|
+
], flags);
|
|
79
|
+
return {
|
|
80
|
+
// Variadic arguments like `npx expo install react react-dom` -> ['react', 'react-dom']
|
|
81
|
+
variadic,
|
|
82
|
+
options: resolveOptions({
|
|
83
|
+
fix: !!flags["--fix"],
|
|
84
|
+
check: !!flags["--check"],
|
|
85
|
+
yarn: !!flags["--yarn"],
|
|
86
|
+
npm: !!flags["--npm"]
|
|
87
|
+
}),
|
|
88
|
+
extras
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function assertUnexpectedObjectKeys(keys, obj) {
|
|
92
|
+
const unexpectedKeys = Object.keys(obj).filter((key)=>!keys.includes(key)
|
|
93
|
+
);
|
|
94
|
+
if (unexpectedKeys.length > 0) {
|
|
95
|
+
throw new _errors.CommandError("BAD_ARGS", `Unexpected: ${unexpectedKeys.join(", ")}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=resolveOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/install/resolveOptions.ts"],"sourcesContent":["import * as PackageManager from '@expo/package-manager';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\n\nexport type Options = Pick<PackageManager.CreateForProjectOptions, 'npm' | 'yarn'> & {\n /** Check which packages need to be updated, does not install any provided packages. */\n check?: boolean;\n /** Should the dependencies be fixed automatically. */\n fix?: boolean;\n};\n\nfunction resolveOptions(options: Options): Options {\n if (options.fix && options.check) {\n throw new CommandError('BAD_ARGS', 'Specify at most one of: --check, --fix');\n }\n if (options.npm && options.yarn) {\n throw new CommandError('BAD_ARGS', 'Specify at most one of: --npm, --yarn');\n }\n return {\n ...options,\n };\n}\n\n/** Given a list of CLI args, return a sorted set of args based on categories used in a complex command. */\nexport function parseVariadicArguments(argv: string[]): {\n variadic: string[];\n extras: string[];\n flags: Record<string, boolean>;\n} {\n const variadic: string[] = [];\n const flags: Record<string, boolean> = {};\n\n for (const arg of argv) {\n if (!arg.startsWith('-')) {\n variadic.push(arg);\n } else if (arg === '--') {\n break;\n } else {\n flags[arg] = true;\n }\n }\n\n // Everything after `--` that is not an option is passed to the underlying install command.\n const extras: string[] = [];\n\n const extraOperator = argv.indexOf('--');\n if (extraOperator > -1 && argv.length > extraOperator + 1) {\n const extraArgs = argv.slice(extraOperator + 1);\n if (extraArgs.includes('--')) {\n throw new CommandError('BAD_ARGS', 'Unexpected multiple --');\n }\n extras.push(...extraArgs);\n Log.debug('Extra arguments: ' + extras.join(', '));\n }\n\n Log.debug(`Parsed arguments (variadic: %O, flags: %O, extra: %O)`, variadic, flags, extras);\n\n return {\n variadic,\n flags,\n extras,\n };\n}\n\nexport async function resolveArgsAsync(\n argv: string[]\n): Promise<{ variadic: string[]; options: Options; extras: string[] }> {\n const { variadic, extras, flags } = parseVariadicArguments(argv);\n\n assertUnexpectedObjectKeys(['--check', '--fix', '--npm', '--yarn'], flags);\n\n return {\n // Variadic arguments like `npx expo install react react-dom` -> ['react', 'react-dom']\n variadic,\n options: resolveOptions({\n fix: !!flags['--fix'],\n check: !!flags['--check'],\n yarn: !!flags['--yarn'],\n npm: !!flags['--npm'],\n }),\n extras,\n };\n}\n\nfunction assertUnexpectedObjectKeys(keys: string[], obj: Record<string, any>): void {\n const unexpectedKeys = Object.keys(obj).filter((key) => !keys.includes(key));\n if (unexpectedKeys.length > 0) {\n throw new CommandError('BAD_ARGS', `Unexpected: ${unexpectedKeys.join(', ')}`);\n }\n}\n"],"names":["parseVariadicArguments","resolveArgsAsync","Log","resolveOptions","options","fix","check","CommandError","npm","yarn","argv","variadic","flags","arg","startsWith","push","extras","extraOperator","indexOf","length","extraArgs","slice","includes","debug","join","assertUnexpectedObjectKeys","keys","obj","unexpectedKeys","Object","filter","key"],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.getNamedPlugins = getNamedPlugins;
|
|
6
|
+
exports.autoAddConfigPluginsAsync = autoAddConfigPluginsAsync;
|
|
7
|
+
var _pluginResolver = require("@expo/config-plugins/build/utils/plugin-resolver");
|
|
8
|
+
var _prebuildConfig = require("@expo/prebuild-config");
|
|
9
|
+
var Log = _interopRequireWildcard(require("../../log"));
|
|
10
|
+
var _modifyConfigPlugins = require("../../utils/modifyConfigPlugins");
|
|
11
|
+
function _interopRequireWildcard(obj) {
|
|
12
|
+
if (obj && obj.__esModule) {
|
|
13
|
+
return obj;
|
|
14
|
+
} else {
|
|
15
|
+
var newObj = {};
|
|
16
|
+
if (obj != null) {
|
|
17
|
+
for(var key in obj){
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
19
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
20
|
+
if (desc.get || desc.set) {
|
|
21
|
+
Object.defineProperty(newObj, key, desc);
|
|
22
|
+
} else {
|
|
23
|
+
newObj[key] = obj[key];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
newObj.default = obj;
|
|
29
|
+
return newObj;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const AUTO_PLUGINS = (0, _prebuildConfig).getAutoPlugins();
|
|
33
|
+
/**
|
|
34
|
+
* Resolve if a package has a config plugin.
|
|
35
|
+
* For sanity, we'll only support config plugins that use the `app.config.js` entry file,
|
|
36
|
+
* this is because a package like `lodash` could be a "valid" config plugin and break the prebuild process.
|
|
37
|
+
*
|
|
38
|
+
* @param projectRoot
|
|
39
|
+
* @param packageName
|
|
40
|
+
* @returns
|
|
41
|
+
*/ function packageHasConfigPlugin(projectRoot, packageName) {
|
|
42
|
+
try {
|
|
43
|
+
const info = (0, _pluginResolver).resolveConfigPluginFunctionWithInfo(projectRoot, packageName);
|
|
44
|
+
if (info.isPluginFile) {
|
|
45
|
+
return info.plugin;
|
|
46
|
+
}
|
|
47
|
+
} catch {}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
function getNamedPlugins(plugins) {
|
|
51
|
+
const namedPlugins = [];
|
|
52
|
+
for (const plugin of plugins){
|
|
53
|
+
try {
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
const [normal] = (0, _pluginResolver).normalizeStaticPlugin(plugin);
|
|
56
|
+
if (typeof normal === "string") {
|
|
57
|
+
namedPlugins.push(normal);
|
|
58
|
+
}
|
|
59
|
+
} catch {
|
|
60
|
+
// ignore assertions
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return namedPlugins;
|
|
64
|
+
}
|
|
65
|
+
async function autoAddConfigPluginsAsync(projectRoot, exp, packages) {
|
|
66
|
+
Log.debug("Checking config plugins...");
|
|
67
|
+
const currentPlugins = exp.plugins || [];
|
|
68
|
+
const normalized = getNamedPlugins(currentPlugins);
|
|
69
|
+
Log.debug(`Existing plugins: ${normalized.join(", ")}`);
|
|
70
|
+
const plugins = packages.filter((pkg)=>{
|
|
71
|
+
if (normalized.includes(pkg)) {
|
|
72
|
+
// already included in plugins array
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
// Check if the package has a valid plugin. Must be a well-made plugin for it to work with this.
|
|
76
|
+
const plugin = packageHasConfigPlugin(projectRoot, pkg);
|
|
77
|
+
Log.debug(`Package "${pkg}" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : ""));
|
|
78
|
+
if (AUTO_PLUGINS.includes(pkg)) {
|
|
79
|
+
Log.debug(`Package "${pkg}" is an auto plugin, skipping...`);
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return !!plugin;
|
|
83
|
+
});
|
|
84
|
+
await (0, _modifyConfigPlugins).attemptAddingPluginsAsync(projectRoot, exp, plugins);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=autoAddConfigPlugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/install/utils/autoAddConfigPlugins.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport {\n normalizeStaticPlugin,\n resolveConfigPluginFunctionWithInfo,\n} from '@expo/config-plugins/build/utils/plugin-resolver';\nimport { getAutoPlugins } from '@expo/prebuild-config';\n\nimport * as Log from '../../log';\nimport { attemptAddingPluginsAsync } from '../../utils/modifyConfigPlugins';\n\nconst AUTO_PLUGINS = getAutoPlugins();\n\n/**\n * Resolve if a package has a config plugin.\n * For sanity, we'll only support config plugins that use the `app.config.js` entry file,\n * this is because a package like `lodash` could be a \"valid\" config plugin and break the prebuild process.\n *\n * @param projectRoot\n * @param packageName\n * @returns\n */\nfunction packageHasConfigPlugin(projectRoot: string, packageName: string) {\n try {\n const info = resolveConfigPluginFunctionWithInfo(projectRoot, packageName);\n if (info.isPluginFile) {\n return info.plugin;\n }\n } catch {}\n return false;\n}\n\n/**\n * Get a list of plugins that were are supplied as string module IDs.\n * @example\n * ```json\n * {\n * \"plugins\": [\n * \"expo-camera\",\n * [\"react-native-firebase\", ...]\n * ]\n * }\n * ```\n * ↓ ↓ ↓ ↓ ↓ ↓\n *\n * `['expo-camera', 'react-native-firebase']`\n *\n */\nexport function getNamedPlugins(plugins: NonNullable<ExpoConfig['plugins']>): string[] {\n const namedPlugins: string[] = [];\n for (const plugin of plugins) {\n try {\n // @ts-ignore\n const [normal] = normalizeStaticPlugin(plugin);\n if (typeof normal === 'string') {\n namedPlugins.push(normal);\n }\n } catch {\n // ignore assertions\n }\n }\n return namedPlugins;\n}\n\n/** Attempts to ensure that non-auto plugins are added to the `app.json` `plugins` array when modules with Expo Config Plugins are installed. */\nexport async function autoAddConfigPluginsAsync(\n projectRoot: string,\n exp: Pick<ExpoConfig, 'plugins'>,\n packages: string[]\n) {\n Log.debug('Checking config plugins...');\n\n const currentPlugins = exp.plugins || [];\n const normalized = getNamedPlugins(currentPlugins);\n\n Log.debug(`Existing plugins: ${normalized.join(', ')}`);\n\n const plugins = packages.filter((pkg) => {\n if (normalized.includes(pkg)) {\n // already included in plugins array\n return false;\n }\n // Check if the package has a valid plugin. Must be a well-made plugin for it to work with this.\n const plugin = packageHasConfigPlugin(projectRoot, pkg);\n\n Log.debug(\n `Package \"${pkg}\" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : '')\n );\n\n if (AUTO_PLUGINS.includes(pkg)) {\n Log.debug(`Package \"${pkg}\" is an auto plugin, skipping...`);\n return false;\n }\n\n return !!plugin;\n });\n\n await attemptAddingPluginsAsync(projectRoot, exp, plugins);\n}\n"],"names":["getNamedPlugins","autoAddConfigPluginsAsync","Log","AUTO_PLUGINS","getAutoPlugins","packageHasConfigPlugin","projectRoot","packageName","info","resolveConfigPluginFunctionWithInfo","isPluginFile","plugin","plugins","namedPlugins","normal","normalizeStaticPlugin","push","exp","packages","debug","currentPlugins","normalized","join","filter","pkg","includes","length","attemptAddingPluginsAsync"],"mappings":"AAAA;;;;QA+CgBA,eAAe,GAAfA,eAAe;QAiBTC,yBAAyB,GAAzBA,yBAAyB;AA5DxC,IAAA,eAAkD,WAAlD,kDAAkD,CAAA;AAC1B,IAAA,eAAuB,WAAvB,uBAAuB,CAAA;AAE1CC,IAAAA,GAAG,mCAAM,WAAW,EAAjB;AAC2B,IAAA,oBAAiC,WAAjC,iCAAiC,CAAA;;;;;;;;;;;;;;;;;;;;;;AAE3E,MAAMC,YAAY,GAAGC,CAAAA,GAAAA,eAAc,AAAE,CAAA,eAAF,EAAE,AAAC;AAEtC;;;;;;;;GAQG,CACH,SAASC,sBAAsB,CAACC,WAAmB,EAAEC,WAAmB,EAAE;IACxE,IAAI;QACF,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,eAAmC,AAA0B,CAAA,oCAA1B,CAACH,WAAW,EAAEC,WAAW,CAAC,AAAC;QAC3E,IAAIC,IAAI,CAACE,YAAY,EAAE;YACrB,OAAOF,IAAI,CAACG,MAAM,CAAC;SACpB;KACF,CAAC,OAAM,EAAE;IACV,OAAO,KAAK,CAAC;CACd;AAkBM,SAASX,eAAe,CAACY,OAA2C,EAAY;IACrF,MAAMC,YAAY,GAAa,EAAE,AAAC;IAClC,KAAK,MAAMF,MAAM,IAAIC,OAAO,CAAE;QAC5B,IAAI;YACF,aAAa;YACb,MAAM,CAACE,MAAM,CAAC,GAAGC,CAAAA,GAAAA,eAAqB,AAAQ,CAAA,sBAAR,CAACJ,MAAM,CAAC,AAAC;YAC/C,IAAI,OAAOG,MAAM,KAAK,QAAQ,EAAE;gBAC9BD,YAAY,CAACG,IAAI,CAACF,MAAM,CAAC,CAAC;aAC3B;SACF,CAAC,OAAM;QACN,oBAAoB;SACrB;KACF;IACD,OAAOD,YAAY,CAAC;CACrB;AAGM,eAAeZ,yBAAyB,CAC7CK,WAAmB,EACnBW,GAAgC,EAChCC,QAAkB,EAClB;IACAhB,GAAG,CAACiB,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAExC,MAAMC,cAAc,GAAGH,GAAG,CAACL,OAAO,IAAI,EAAE,AAAC;IACzC,MAAMS,UAAU,GAAGrB,eAAe,CAACoB,cAAc,CAAC,AAAC;IAEnDlB,GAAG,CAACiB,KAAK,CAAC,CAAC,kBAAkB,EAAEE,UAAU,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,MAAMV,OAAO,GAAGM,QAAQ,CAACK,MAAM,CAAC,CAACC,GAAG,GAAK;QACvC,IAAIH,UAAU,CAACI,QAAQ,CAACD,GAAG,CAAC,EAAE;YAC5B,oCAAoC;YACpC,OAAO,KAAK,CAAC;SACd;QACD,gGAAgG;QAChG,MAAMb,MAAM,GAAGN,sBAAsB,CAACC,WAAW,EAAEkB,GAAG,CAAC,AAAC;QAExDtB,GAAG,CAACiB,KAAK,CACP,CAAC,SAAS,EAAEK,GAAG,CAAC,cAAc,EAAE,CAAC,CAACb,MAAM,CAAC,CAAC,GAAG,CAACA,MAAM,GAAG,CAAC,QAAQ,EAAEA,MAAM,CAACe,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CACzF,CAAC;QAEF,IAAIvB,YAAY,CAACsB,QAAQ,CAACD,GAAG,CAAC,EAAE;YAC9BtB,GAAG,CAACiB,KAAK,CAAC,CAAC,SAAS,EAAEK,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CAAC,CAACb,MAAM,CAAC;KACjB,CAAC,AAAC;IAEH,MAAMgB,CAAAA,GAAAA,oBAAyB,AAA2B,CAAA,0BAA3B,CAACrB,WAAW,EAAEW,GAAG,EAAEL,OAAO,CAAC,CAAC;CAC5D"}
|
package/build/src/log.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.time = time;
|
|
6
|
+
exports.timeEnd = timeEnd;
|
|
7
|
+
exports.error = error;
|
|
8
|
+
exports.exception = exception;
|
|
9
|
+
exports.warn = warn;
|
|
10
|
+
exports.log = log;
|
|
11
|
+
exports.debug = debug;
|
|
12
|
+
exports.clear = clear;
|
|
13
|
+
exports.exit = exit;
|
|
14
|
+
exports.Log = void 0;
|
|
15
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
16
|
+
function _interopRequireDefault(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function time(label) {
|
|
22
|
+
console.time(label);
|
|
23
|
+
}
|
|
24
|
+
function timeEnd(label) {
|
|
25
|
+
console.timeEnd(label);
|
|
26
|
+
}
|
|
27
|
+
function error(...message) {
|
|
28
|
+
console.error(...message);
|
|
29
|
+
}
|
|
30
|
+
function exception(e) {
|
|
31
|
+
const { env } = require("./utils/env");
|
|
32
|
+
error(_chalk.default.red(e.toString()) + (env.EXPO_DEBUG ? "\n" + _chalk.default.gray(e.stack) : ""));
|
|
33
|
+
}
|
|
34
|
+
function warn(...message) {
|
|
35
|
+
console.warn(...message.map((value)=>_chalk.default.yellow(value)
|
|
36
|
+
));
|
|
37
|
+
}
|
|
38
|
+
function log(...message) {
|
|
39
|
+
console.log(...message);
|
|
40
|
+
}
|
|
41
|
+
function debug(...message) {
|
|
42
|
+
if (require("./utils/env").env.EXPO_DEBUG) console.log(...message);
|
|
43
|
+
}
|
|
44
|
+
function clear() {
|
|
45
|
+
process.stdout.write(process.platform === "win32" ? "\x1b[2J\x1b[0f" : "\x1b[2J\x1b[3J\x1b[H");
|
|
46
|
+
}
|
|
47
|
+
function exit(message, code = 1) {
|
|
48
|
+
if (message instanceof Error) {
|
|
49
|
+
exception(message);
|
|
50
|
+
process.exit(code);
|
|
51
|
+
}
|
|
52
|
+
if (message) {
|
|
53
|
+
if (code === 0) {
|
|
54
|
+
log(message);
|
|
55
|
+
} else {
|
|
56
|
+
error(message);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
process.exit(code);
|
|
60
|
+
}
|
|
61
|
+
const Log = {
|
|
62
|
+
time,
|
|
63
|
+
timeEnd,
|
|
64
|
+
error,
|
|
65
|
+
exception,
|
|
66
|
+
warn,
|
|
67
|
+
log,
|
|
68
|
+
debug,
|
|
69
|
+
clear,
|
|
70
|
+
exit
|
|
71
|
+
};
|
|
72
|
+
exports.Log = Log;
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/log.ts"],"sourcesContent":["import chalk from 'chalk';\n\nexport function time(label?: string): void {\n console.time(label);\n}\n\nexport function timeEnd(label?: string): void {\n console.timeEnd(label);\n}\n\nexport function error(...message: string[]): void {\n console.error(...message);\n}\n\n/** Print an error and provide additional info (the stack trace) in debug mode. */\nexport function exception(e: Error): void {\n const { env } = require('./utils/env');\n error(chalk.red(e.toString()) + (env.EXPO_DEBUG ? '\\n' + chalk.gray(e.stack) : ''));\n}\n\nexport function warn(...message: string[]): void {\n console.warn(...message.map((value) => chalk.yellow(value)));\n}\n\nexport function log(...message: string[]): void {\n console.log(...message);\n}\n\nexport function debug(...message: any[]): void {\n if (require('./utils/env').env.EXPO_DEBUG) console.log(...message);\n}\n\n/** Clear the terminal of all text. */\nexport function clear(): void {\n process.stdout.write(process.platform === 'win32' ? '\\x1B[2J\\x1B[0f' : '\\x1B[2J\\x1B[3J\\x1B[H');\n}\n\n/** Log a message and exit the current process. If the `code` is non-zero then `console.error` will be used instead of `console.log`. */\nexport function exit(message: string | Error, code: number = 1): never {\n if (message instanceof Error) {\n exception(message);\n process.exit(code);\n }\n\n if (message) {\n if (code === 0) {\n log(message);\n } else {\n error(message);\n }\n }\n\n process.exit(code);\n}\n\n// The re-export makes auto importing easier.\nexport const Log = {\n time,\n timeEnd,\n error,\n exception,\n warn,\n log,\n debug,\n clear,\n exit,\n};\n"],"names":["time","timeEnd","error","exception","warn","log","debug","clear","exit","label","console","message","e","env","require","chalk","red","toString","EXPO_DEBUG","gray","stack","map","value","yellow","process","stdout","write","platform","code","Error","Log"],"mappings":"AAAA;;;;QAEgBA,IAAI,GAAJA,IAAI;QAIJC,OAAO,GAAPA,OAAO;QAIPC,KAAK,GAALA,KAAK;QAKLC,SAAS,GAATA,SAAS;QAKTC,IAAI,GAAJA,IAAI;QAIJC,GAAG,GAAHA,GAAG;QAIHC,KAAK,GAALA,KAAK;QAKLC,KAAK,GAALA,KAAK;QAKLC,IAAI,GAAJA,IAAI;;AAtCF,IAAA,MAAO,kCAAP,OAAO,EAAA;;;;;;AAElB,SAASR,IAAI,CAACS,KAAc,EAAQ;IACzCC,OAAO,CAACV,IAAI,CAACS,KAAK,CAAC,CAAC;CACrB;AAEM,SAASR,OAAO,CAACQ,KAAc,EAAQ;IAC5CC,OAAO,CAACT,OAAO,CAACQ,KAAK,CAAC,CAAC;CACxB;AAEM,SAASP,KAAK,CAAC,GAAGS,OAAO,AAAU,EAAQ;IAChDD,OAAO,CAACR,KAAK,IAAIS,OAAO,CAAC,CAAC;CAC3B;AAGM,SAASR,SAAS,CAACS,CAAQ,EAAQ;IACxC,MAAM,EAAEC,GAAG,CAAA,EAAE,GAAGC,OAAO,CAAC,aAAa,CAAC,AAAC;IACvCZ,KAAK,CAACa,MAAK,QAAA,CAACC,GAAG,CAACJ,CAAC,CAACK,QAAQ,EAAE,CAAC,GAAG,CAACJ,GAAG,CAACK,UAAU,GAAG,IAAI,GAAGH,MAAK,QAAA,CAACI,IAAI,CAACP,CAAC,CAACQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACrF;AAEM,SAAShB,IAAI,CAAC,GAAGO,OAAO,AAAU,EAAQ;IAC/CD,OAAO,CAACN,IAAI,IAAIO,OAAO,CAACU,GAAG,CAAC,CAACC,KAAK,GAAKP,MAAK,QAAA,CAACQ,MAAM,CAACD,KAAK,CAAC;IAAA,CAAC,CAAC,CAAC;CAC9D;AAEM,SAASjB,GAAG,CAAC,GAAGM,OAAO,AAAU,EAAQ;IAC9CD,OAAO,CAACL,GAAG,IAAIM,OAAO,CAAC,CAAC;CACzB;AAEM,SAASL,KAAK,CAAC,GAAGK,OAAO,AAAO,EAAQ;IAC7C,IAAIG,OAAO,CAAC,aAAa,CAAC,CAACD,GAAG,CAACK,UAAU,EAAER,OAAO,CAACL,GAAG,IAAIM,OAAO,CAAC,CAAC;CACpE;AAGM,SAASJ,KAAK,GAAS;IAC5BiB,OAAO,CAACC,MAAM,CAACC,KAAK,CAACF,OAAO,CAACG,QAAQ,KAAK,OAAO,GAAG,gBAAgB,GAAG,sBAAsB,CAAC,CAAC;CAChG;AAGM,SAASnB,IAAI,CAACG,OAAuB,EAAEiB,IAAY,GAAG,CAAC,EAAS;IACrE,IAAIjB,OAAO,YAAYkB,KAAK,EAAE;QAC5B1B,SAAS,CAACQ,OAAO,CAAC,CAAC;QACnBa,OAAO,CAAChB,IAAI,CAACoB,IAAI,CAAC,CAAC;KACpB;IAED,IAAIjB,OAAO,EAAE;QACX,IAAIiB,IAAI,KAAK,CAAC,EAAE;YACdvB,GAAG,CAACM,OAAO,CAAC,CAAC;SACd,MAAM;YACLT,KAAK,CAACS,OAAO,CAAC,CAAC;SAChB;KACF;IAEDa,OAAO,CAAChB,IAAI,CAACoB,IAAI,CAAC,CAAC;CACpB;AAGM,MAAME,GAAG,GAAG;IACjB9B,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,IAAI;IACJC,GAAG;IACHC,KAAK;IACLC,KAAK;IACLC,IAAI;CACL,AAAC;QAVWsB,GAAG,GAAHA,GAAG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.expoLogin = void 0;
|
|
7
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
9
|
+
var _args = require("../utils/args");
|
|
10
|
+
var _errors = require("../utils/errors");
|
|
11
|
+
function _interopRequireDefault(obj) {
|
|
12
|
+
return obj && obj.__esModule ? obj : {
|
|
13
|
+
default: obj
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function _interopRequireWildcard(obj) {
|
|
17
|
+
if (obj && obj.__esModule) {
|
|
18
|
+
return obj;
|
|
19
|
+
} else {
|
|
20
|
+
var newObj = {};
|
|
21
|
+
if (obj != null) {
|
|
22
|
+
for(var key in obj){
|
|
23
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
24
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
25
|
+
if (desc.get || desc.set) {
|
|
26
|
+
Object.defineProperty(newObj, key, desc);
|
|
27
|
+
} else {
|
|
28
|
+
newObj[key] = obj[key];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
newObj.default = obj;
|
|
34
|
+
return newObj;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const expoLogin = async (argv)=>{
|
|
38
|
+
const args = (0, _args).assertArgs({
|
|
39
|
+
// Types
|
|
40
|
+
"--help": Boolean,
|
|
41
|
+
"--username": String,
|
|
42
|
+
"--password": String,
|
|
43
|
+
"--otp": String,
|
|
44
|
+
// Aliases
|
|
45
|
+
"-h": "--help",
|
|
46
|
+
"-u": "--username",
|
|
47
|
+
"-p": "--password"
|
|
48
|
+
}, argv);
|
|
49
|
+
if (args["--help"]) {
|
|
50
|
+
Log.exit(_chalk.default`
|
|
51
|
+
{bold Description}
|
|
52
|
+
Log in to an Expo account
|
|
53
|
+
|
|
54
|
+
{bold Usage}
|
|
55
|
+
$ npx expo login
|
|
56
|
+
|
|
57
|
+
Options
|
|
58
|
+
-u, --username <string> Username
|
|
59
|
+
-p, --password <string> Password
|
|
60
|
+
--otp <string> One-time password from your 2FA device
|
|
61
|
+
-h, --help Output usage information
|
|
62
|
+
`, 0);
|
|
63
|
+
}
|
|
64
|
+
const { showLoginPromptAsync } = await Promise.resolve().then(function() {
|
|
65
|
+
return _interopRequireWildcard(require("../api/user/actions"));
|
|
66
|
+
});
|
|
67
|
+
return showLoginPromptAsync({
|
|
68
|
+
// Parsed options
|
|
69
|
+
username: args["--username"],
|
|
70
|
+
password: args["--password"],
|
|
71
|
+
otp: args["--otp"]
|
|
72
|
+
}).catch(_errors.logCmdError);
|
|
73
|
+
};
|
|
74
|
+
exports.expoLogin = expoLogin;
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/login/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk';\n\nimport { Command } from '../../bin/cli';\nimport * as Log from '../log';\nimport { assertArgs } from '../utils/args';\nimport { logCmdError } from '../utils/errors';\n\nexport const expoLogin: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n '--username': String,\n '--password': String,\n '--otp': String,\n // Aliases\n '-h': '--help',\n '-u': '--username',\n '-p': '--password',\n },\n argv\n );\n\n if (args['--help']) {\n Log.exit(\n chalk`\n {bold Description}\n Log in to an Expo account\n\n {bold Usage}\n $ npx expo login\n\n Options\n -u, --username <string> Username\n -p, --password <string> Password\n --otp <string> One-time password from your 2FA device\n -h, --help Output usage information\n `,\n 0\n );\n }\n\n const { showLoginPromptAsync } = await import('../api/user/actions');\n return showLoginPromptAsync({\n // Parsed options\n username: args['--username'],\n password: args['--password'],\n otp: args['--otp'],\n }).catch(logCmdError);\n};\n"],"names":["Log","expoLogin","argv","args","assertArgs","Boolean","String","exit","chalk","showLoginPromptAsync","username","password","otp","catch","logCmdError"],"mappings":"AAAA;;;;;;AACkB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAGbA,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACY,IAAA,KAAe,WAAf,eAAe,CAAA;AACd,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,MAAMC,SAAS,GAAY,OAAOC,IAAI,GAAK;IAChD,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,KAAU,AAatB,CAAA,WAbsB,CACrB;QACE,QAAQ;QACR,QAAQ,EAAEC,OAAO;QACjB,YAAY,EAAEC,MAAM;QACpB,YAAY,EAAEA,MAAM;QACpB,OAAO,EAAEA,MAAM;QACf,UAAU;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;KACnB,EACDJ,IAAI,CACL,AAAC;IAEF,IAAIC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBH,GAAG,CAACO,IAAI,CACNC,MAAK,QAAA,CAAC;;;;;;;;;;;;IAYR,CAAC,EACC,CAAC,CACF,CAAC;KACH;IAED,MAAM,EAAEC,oBAAoB,CAAA,EAAE,GAAG,MAAM;+CAAO,qBAAqB;MAAC,AAAC;IACrE,OAAOA,oBAAoB,CAAC;QAC1B,iBAAiB;QACjBC,QAAQ,EAAEP,IAAI,CAAC,YAAY,CAAC;QAC5BQ,QAAQ,EAAER,IAAI,CAAC,YAAY,CAAC;QAC5BS,GAAG,EAAET,IAAI,CAAC,OAAO,CAAC;KACnB,CAAC,CAACU,KAAK,CAACC,OAAW,YAAA,CAAC,CAAC;CACvB,AAAC;QA1CWb,SAAS,GAATA,SAAS"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.expoLogout = void 0;
|
|
7
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var Log = _interopRequireWildcard(require("../log"));
|
|
9
|
+
var _args = require("../utils/args");
|
|
10
|
+
var _errors = require("../utils/errors");
|
|
11
|
+
function _interopRequireDefault(obj) {
|
|
12
|
+
return obj && obj.__esModule ? obj : {
|
|
13
|
+
default: obj
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function _interopRequireWildcard(obj) {
|
|
17
|
+
if (obj && obj.__esModule) {
|
|
18
|
+
return obj;
|
|
19
|
+
} else {
|
|
20
|
+
var newObj = {};
|
|
21
|
+
if (obj != null) {
|
|
22
|
+
for(var key in obj){
|
|
23
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
24
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
25
|
+
if (desc.get || desc.set) {
|
|
26
|
+
Object.defineProperty(newObj, key, desc);
|
|
27
|
+
} else {
|
|
28
|
+
newObj[key] = obj[key];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
newObj.default = obj;
|
|
34
|
+
return newObj;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const expoLogout = async (argv)=>{
|
|
38
|
+
const args = (0, _args).assertArgs({
|
|
39
|
+
// Types
|
|
40
|
+
"--help": Boolean,
|
|
41
|
+
// Aliases
|
|
42
|
+
"-h": "--help"
|
|
43
|
+
}, argv);
|
|
44
|
+
if (args["--help"]) {
|
|
45
|
+
Log.exit(_chalk.default`
|
|
46
|
+
{bold Description}
|
|
47
|
+
Log out of an Expo account
|
|
48
|
+
|
|
49
|
+
{bold Usage}
|
|
50
|
+
$ npx expo logout
|
|
51
|
+
|
|
52
|
+
Options
|
|
53
|
+
-h, --help Output usage information
|
|
54
|
+
`, 0);
|
|
55
|
+
}
|
|
56
|
+
const { logoutAsync } = await Promise.resolve().then(function() {
|
|
57
|
+
return _interopRequireWildcard(require("../api/user/user"));
|
|
58
|
+
});
|
|
59
|
+
return logoutAsync().catch(_errors.logCmdError);
|
|
60
|
+
};
|
|
61
|
+
exports.expoLogout = expoLogout;
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=index.js.map
|