@expo/cli 0.1.5 → 0.2.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/CHANGELOG.md +133 -0
- package/build/bin/cli +83 -4
- package/build/bin/cli.map +1 -1
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +2 -23
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/customize/customizeAsync.js +40 -0
- package/build/src/customize/customizeAsync.js.map +1 -0
- package/build/src/customize/generate.js +77 -0
- package/build/src/customize/generate.js.map +1 -0
- package/build/src/customize/index.js +41 -0
- package/build/src/customize/index.js.map +1 -0
- package/build/src/customize/resolveOptions.js +18 -0
- package/build/src/customize/resolveOptions.js.map +1 -0
- package/build/src/customize/templates.js +118 -0
- package/build/src/customize/templates.js.map +1 -0
- package/build/src/export/createMetadataJson.js +10 -7
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/exportApp.js +32 -0
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +2 -3
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +52 -35
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/index.js +14 -10
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/printBundleSizes.js +27 -48
- package/build/src/export/printBundleSizes.js.map +1 -1
- package/build/src/export/resolveOptions.js +44 -5
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +2 -1
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +37 -0
- package/build/src/export/web/exportWebAsync.js.map +1 -0
- package/build/src/export/web/index.js +66 -0
- package/build/src/export/web/index.js.map +1 -0
- package/build/src/export/web/resolveOptions.js +13 -0
- package/build/src/export/web/resolveOptions.js.map +1 -0
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/install/checkPackages.js +2 -1
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/index.js +1 -0
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +13 -5
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/resolveOptions.js +12 -65
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +5 -26
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/log.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +5 -23
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/index.js +18 -12
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +11 -12
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +17 -0
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +2 -1
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +5 -5
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +5 -26
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +2 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +2 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +3 -2
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +7 -13
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +3 -24
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +2 -23
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +17 -9
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +2 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +4 -3
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +29 -31
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +2 -0
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +5 -5
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +3 -2
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +2 -1
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +4 -24
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +17 -32
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +41 -0
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
- package/build/src/start/platforms/android/activateWindow.js +4 -4
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +8 -3
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +3 -2
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +2 -2
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +4 -4
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +2 -23
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +2 -0
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +6 -5
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +15 -8
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +15 -5
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +4 -0
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +10 -3
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +9 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +5 -0
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +11 -2
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/resolveFromProject.js +8 -0
- package/build/src/start/server/metro/resolveFromProject.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +115 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
- package/build/src/start/server/middleware/ClassicManifestMiddleware.js +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +9 -4
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +24 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +2 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +57 -6
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +6 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +62 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
- package/build/src/start/server/platformBundlers.js +18 -0
- package/build/src/start/server/platformBundlers.js.map +1 -0
- package/build/src/start/server/webTemplate.js +68 -0
- package/build/src/start/server/webTemplate.js.map +1 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +59 -19
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +64 -0
- package/build/src/start/server/webpack/compile.js.map +1 -0
- package/build/src/start/startAsync.js +21 -17
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +5 -2
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/analytics/rudderstackClient.js +2 -2
- package/build/src/utils/downloadAppAsync.js +3 -2
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +7 -32
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +3 -2
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +3 -0
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/exit.js +4 -25
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +6 -2
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/nodeModules.js +13 -102
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +3 -24
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/ora.js +1 -13
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/progress.js +46 -0
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +4 -4
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/tar.js +3 -0
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +9 -2
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +47 -0
- package/build/src/utils/variadic.js.map +1 -0
- package/package.json +13 -8
- package/static/template/babel.config.js +6 -0
- package/static/template/index.html +117 -0
- package/static/template/metro.config.js +4 -0
- package/static/template/serve.json +13 -0
- package/static/template/webpack.config.js +7 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unpublished
|
|
4
|
+
|
|
5
|
+
### 🛠 Breaking changes
|
|
6
|
+
|
|
7
|
+
### 🎉 New features
|
|
8
|
+
|
|
9
|
+
### 🐛 Bug fixes
|
|
10
|
+
|
|
11
|
+
### 💡 Others
|
|
12
|
+
|
|
13
|
+
## 0.2.2 — 2022-07-18
|
|
14
|
+
|
|
15
|
+
_This version does not introduce any user-facing changes._
|
|
16
|
+
|
|
17
|
+
## 0.2.1 — 2022-07-11
|
|
18
|
+
|
|
19
|
+
### 💡 Others
|
|
20
|
+
|
|
21
|
+
- Drop hardcoded web package versions in prerequisite. ([#18172](https://github.com/expo/expo/pull/18172) by [@EvanBacon](https://github.com/EvanBacon))
|
|
22
|
+
|
|
23
|
+
## 0.2.0 — 2022-07-07
|
|
24
|
+
|
|
25
|
+
### 🛠 Breaking changes
|
|
26
|
+
|
|
27
|
+
- Change `expo` to `expo-internal` (DO NOT USE) for `@expo/cli`. ([#17468](https://github.com/expo/expo/pull/17468) by [@EvanBacon](https://github.com/EvanBacon))
|
|
28
|
+
|
|
29
|
+
### 🎉 New features
|
|
30
|
+
|
|
31
|
+
- Validate Android SDK configuration before using ([#17259](https://github.com/expo/expo/pull/17259) by [@byCedric](https://github.com/byCedric))
|
|
32
|
+
- Add CI context to telemetry to help determine support on used CI providers ([#17284](https://github.com/expo/expo/pull/17284) by [@byCedric](https://github.com/byCedric))
|
|
33
|
+
- add `--pnpm` option to `install` command. ([#17366](https://github.com/expo/expo/pull/17366) by [@EvanBacon](https://github.com/EvanBacon))
|
|
34
|
+
- Added `export:web` command. ([#17363](https://github.com/expo/expo/pull/17363) by [@EvanBacon](https://github.com/EvanBacon))
|
|
35
|
+
- Bail out on missing web dependencies. ([#17448](https://github.com/expo/expo/pull/17448) by [@EvanBacon](https://github.com/EvanBacon))
|
|
36
|
+
- Add info about using the `--clear` flag when the `babel.config.js` file changes during `expo start`. ([#17560](https://github.com/expo/expo/pull/17560) by [@EvanBacon](https://github.com/EvanBacon))
|
|
37
|
+
- Automatically enable `DEBUG` when `EXPO_DEBUG` is enabled. ([#17856](https://github.com/expo/expo/pull/17856) by [@EvanBacon](https://github.com/EvanBacon))
|
|
38
|
+
- add migration warning for old commands. ([#17882](https://github.com/expo/expo/pull/17882) by [@EvanBacon](https://github.com/EvanBacon))
|
|
39
|
+
- Add web support for Metro bundler. ([#17927](https://github.com/expo/expo/pull/17927) by [@EvanBacon](https://github.com/EvanBacon))
|
|
40
|
+
- Add multi-platform bundle logging during `expo export`. ([#17992](https://github.com/expo/expo/pull/17992) by [@EvanBacon](https://github.com/EvanBacon))
|
|
41
|
+
- Upgrade react-native to 0.69. ([#18006](https://github.com/expo/expo/pull/18006) by [@kudo](https://github.com/kudo))
|
|
42
|
+
|
|
43
|
+
### 🐛 Bug fixes
|
|
44
|
+
|
|
45
|
+
- Remove hanging `emulator` process on exit. ([#17273](https://github.com/expo/expo/pull/17273) by [@EvanBacon](https://github.com/EvanBacon))
|
|
46
|
+
- Fix bug where autocomplete prompts crash when escape characters are used. ([#17271](https://github.com/expo/expo/pull/17271) by [@EvanBacon](https://github.com/EvanBacon))
|
|
47
|
+
- add missing `--platform` flag to `export` command. ([#17338](https://github.com/expo/expo/pull/17338) by [@EvanBacon](https://github.com/EvanBacon))
|
|
48
|
+
- Fix ADB device name filtering for windows. ([#17286](https://github.com/expo/expo/pull/17286) by [@byCedric](https://github.com/byCedric))
|
|
49
|
+
- Fix `export` bug failing when no assets are included. ([#17414](https://github.com/expo/expo/pull/17414) by [@EvanBacon](https://github.com/EvanBacon))
|
|
50
|
+
- Add correct packages (`expo-splash-screen`) and drop incorrect required packages (`react-native-unimodules`, `expo-updates`) in prebuild. ([#17447](https://github.com/expo/expo/pull/17447) by [@EvanBacon](https://github.com/EvanBacon))
|
|
51
|
+
- Fix tunnel on web breaking native. ([#17666](https://github.com/expo/expo/pull/17666) by [@EvanBacon](https://github.com/EvanBacon))
|
|
52
|
+
- Add no-op `--experimental-bundle` flag to `expo export`. ([#17886](https://github.com/expo/expo/pull/17886) by [@EvanBacon](https://github.com/EvanBacon))
|
|
53
|
+
- Fix auto TypeScript version check. ([#17911](https://github.com/expo/expo/pull/17911) by [@EvanBacon](https://github.com/EvanBacon))
|
|
54
|
+
- Fix ignored existing plugins on expo install. ([#17936](https://github.com/expo/expo/pull/17936) by [@kbrandwijk](https://github.com/kbrandwijk))
|
|
55
|
+
|
|
56
|
+
### 💡 Others
|
|
57
|
+
|
|
58
|
+
- Bump `@expo/xcpretty` to link to the troubleshooting guide. ([#17576](https://github.com/expo/expo/pull/17576) by [@EvanBacon](https://github.com/EvanBacon))
|
|
59
|
+
- deduplicate asMock helper function. ([#17294](https://github.com/expo/expo/pull/17294) by [@wschurman](https://github.com/wschurman))
|
|
60
|
+
- Use `nxp expo install` for recommended missing dependency check. ([#17665](https://github.com/expo/expo/pull/17665) by [@EvanBacon](https://github.com/EvanBacon))
|
|
61
|
+
- Make bundler implementation more bundler agnostic. ([#17575](https://github.com/expo/expo/pull/17575) by [@EvanBacon](https://github.com/EvanBacon))
|
|
62
|
+
- Add debug log about unversioned packages. ([#17664](https://github.com/expo/expo/pull/17664) by [@EvanBacon](https://github.com/EvanBacon))
|
|
63
|
+
- Update test fixtures to SDK 45. ([#17934](https://github.com/expo/expo/pull/17934) by [@EvanBacon](https://github.com/EvanBacon))
|
|
64
|
+
- Bump `@expo/xcpretty` with support for `react-native@0.69` build errors. ([#17986](https://github.com/expo/expo/pull/17986) by [@EvanBacon](https://github.com/EvanBacon))
|
|
65
|
+
|
|
66
|
+
## 0.1.3 — 2022-04-28
|
|
67
|
+
|
|
68
|
+
### 🐛 Bug fixes
|
|
69
|
+
|
|
70
|
+
- add missing `pretty-bytes` dependency. ([#17235](https://github.com/expo/expo/pull/17235) by [@EvanBacon](https://github.com/EvanBacon))
|
|
71
|
+
|
|
72
|
+
## 0.1.2 — 2022-04-27
|
|
73
|
+
|
|
74
|
+
_This version does not introduce any user-facing changes._
|
|
75
|
+
|
|
76
|
+
## 0.1.1 — 2022-04-27
|
|
77
|
+
|
|
78
|
+
### 🎉 New features
|
|
79
|
+
|
|
80
|
+
- Unify help prompts. ([#17223](https://github.com/expo/expo/pull/17223) by [@EvanBacon](https://github.com/EvanBacon))
|
|
81
|
+
- Added `expo run:android` command. ([#17187](https://github.com/expo/expo/pull/17187) by [@EvanBacon](https://github.com/EvanBacon))
|
|
82
|
+
|
|
83
|
+
### 🐛 Bug fixes
|
|
84
|
+
|
|
85
|
+
- Add support for `react-native@0.68` dev server API. ([#17189](https://github.com/expo/expo/pull/17189) by [@EvanBacon](https://github.com/EvanBacon))
|
|
86
|
+
|
|
87
|
+
### 💡 Others
|
|
88
|
+
|
|
89
|
+
- Downgrade `fs-extra` to `8.1.0`. ([#17234](https://github.com/expo/expo/pull/17234) by [@EvanBacon](https://github.com/EvanBacon))
|
|
90
|
+
|
|
91
|
+
## 0.1.0 — 2022-04-25
|
|
92
|
+
|
|
93
|
+
### 🎉 New features
|
|
94
|
+
|
|
95
|
+
- [cli] Added modules for interacting with Apple and Android platforms. ([#16516](https://github.com/expo/expo/pull/16516) by [@EvanBacon](https://github.com/EvanBacon))
|
|
96
|
+
- [cli] Added middleware for showing the interstitial page and redirecting users to dev clients. ([#16560](https://github.com/expo/expo/pull/16560) by [@EvanBacon](https://github.com/EvanBacon))
|
|
97
|
+
- [cli] Added middleware for dev servers to host Expo manifests. ([#16559](https://github.com/expo/expo/pull/16559) by [@EvanBacon](https://github.com/EvanBacon))
|
|
98
|
+
- [cli] Added module for starting host tunnels with Ngrok. ([#16556](https://github.com/expo/expo/pull/16556) by [@EvanBacon](https://github.com/EvanBacon))
|
|
99
|
+
- [cli] Added module for updating the "development session" API. ([#16555](https://github.com/expo/expo/pull/16555) by [@EvanBacon](https://github.com/EvanBacon))
|
|
100
|
+
- [cli] Added modules for creating dev server URLs, akin to `UrlUtils` in `xdl`. ([#16557](https://github.com/expo/expo/pull/16557) by [@EvanBacon](https://github.com/EvanBacon))
|
|
101
|
+
- [cli] Added shim for `expo start` command and option resolvers. ([#16587](https://github.com/expo/expo/pull/16587) by [@EvanBacon](https://github.com/EvanBacon))
|
|
102
|
+
- [cli] Added module for interacting with Metro bundler. ([#16631](https://github.com/expo/expo/pull/16631) by [@EvanBacon](https://github.com/EvanBacon))
|
|
103
|
+
- [cli] Added Terminal UI to `expo start`. ([#16518](https://github.com/expo/expo/pull/16518) by [@EvanBacon](https://github.com/EvanBacon))
|
|
104
|
+
- [cli] Added a custom terminal logger for Metro dev server. ([#16658](https://github.com/expo/expo/pull/16658) by [@EvanBacon](https://github.com/EvanBacon))
|
|
105
|
+
- [cli] Added module for interacting with Webpack bundler. ([#16659](https://github.com/expo/expo/pull/16659) by [@EvanBacon](https://github.com/EvanBacon))
|
|
106
|
+
- Added `expo run:ios` command. ([#16662](https://github.com/expo/expo/pull/16662) by [@EvanBacon](https://github.com/EvanBacon))
|
|
107
|
+
- Fixed type errors. ([#16724](https://github.com/expo/expo/pull/16724) by [@EvanBacon](https://github.com/EvanBacon))
|
|
108
|
+
- Disable watch mode in CI. ([#16730](https://github.com/expo/expo/pull/16730) by [@EvanBacon](https://github.com/EvanBacon))
|
|
109
|
+
- Added `install` command. ([#16756](https://github.com/expo/expo/pull/16756) by [@EvanBacon](https://github.com/EvanBacon))
|
|
110
|
+
- Serve modern manifests in multipart format. ([#16804](https://github.com/expo/expo/pull/16804) by [@wschurman](https://github.com/wschurman))
|
|
111
|
+
- Add development code signing. ([#16845](https://github.com/expo/expo/pull/16845) by [@wschurman](https://github.com/wschurman))
|
|
112
|
+
- Added `export` command. ([#17034](https://github.com/expo/expo/pull/17034) by [@EvanBacon](https://github.com/EvanBacon))
|
|
113
|
+
- Add `--fix` and `--check` arguments to `install` command. ([#17048](https://github.com/expo/expo/pull/17048) by [@EvanBacon](https://github.com/EvanBacon))
|
|
114
|
+
- Added `customize` command. ([#17186](https://github.com/expo/expo/pull/17186) by [@EvanBacon](https://github.com/EvanBacon))
|
|
115
|
+
|
|
116
|
+
### 🐛 Bug fixes
|
|
117
|
+
|
|
118
|
+
- Fix process memory leak warning in `expo start`. ([#16753](https://github.com/expo/expo/pull/16753) by [@EvanBacon](https://github.com/EvanBacon))
|
|
119
|
+
- Fix build watcher. ([#16754](https://github.com/expo/expo/pull/16754) by [@EvanBacon](https://github.com/EvanBacon))
|
|
120
|
+
- Allow bailing out of Terminal UI during long processes. ([#16818](https://github.com/expo/expo/pull/16818) by [@EvanBacon](https://github.com/EvanBacon))
|
|
121
|
+
- Fix web imports and dependency resolution. ([#16820](https://github.com/expo/expo/pull/16820) by [@EvanBacon](https://github.com/EvanBacon))
|
|
122
|
+
- [test] Update login error message to reflect server change. ([#16932](https://github.com/expo/expo/pull/16932) by [@EvanBacon](https://github.com/EvanBacon))
|
|
123
|
+
- Fix webpack imports and server timeouts. ([#17006](https://github.com/expo/expo/pull/17006) by [@EvanBacon](https://github.com/EvanBacon))
|
|
124
|
+
- Skip font parsing on prebuild. ([#17184](https://github.com/expo/expo/pull/17184) by [@EvanBacon](https://github.com/EvanBacon))
|
|
125
|
+
- [ci] Fix `typecheck`. ([#17145](https://github.com/expo/expo/pull/17145) by [@EvanBacon](https://github.com/EvanBacon))
|
|
126
|
+
- Close development session when CLI is stopped ([#17170](https://github.com/expo/expo/pull/17170) by [@FiberJW](https://github.com/FiberJW))
|
|
127
|
+
|
|
128
|
+
### 💡 Others
|
|
129
|
+
|
|
130
|
+
- Improve contributing. ([#16917](https://github.com/expo/expo/pull/16917) by [@EvanBacon](https://github.com/EvanBacon))
|
|
131
|
+
- Reduce mock clearing and add `Log` import/export. ([#17046](https://github.com/expo/expo/pull/17046) by [@EvanBacon](https://github.com/EvanBacon))
|
|
132
|
+
- Migrate to using `DEBUG=expo:*` instead of `EXPO_DEBUG`. ([#17084](https://github.com/expo/expo/pull/17084) by [@EvanBacon](https://github.com/EvanBacon))
|
|
133
|
+
- Lazily evaluate all environment variables. ([#17082](https://github.com/expo/expo/pull/17082) by [@EvanBacon](https://github.com/EvanBacon))
|
package/build/bin/cli
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
var _arg = _interopRequireDefault(require("arg"));
|
|
4
4
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
5
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
6
|
+
var _getenv = require("getenv");
|
|
5
7
|
function _interopRequireDefault(obj) {
|
|
6
8
|
return obj && obj.__esModule ? obj : {
|
|
7
9
|
default: obj
|
|
@@ -28,6 +30,12 @@ function _interopRequireWildcard(obj) {
|
|
|
28
30
|
return newObj;
|
|
29
31
|
}
|
|
30
32
|
}
|
|
33
|
+
// Setup before requiring `debug`.
|
|
34
|
+
if ((0, _getenv).boolish("EXPO_DEBUG", false)) {
|
|
35
|
+
_debug.default.enable("expo:*");
|
|
36
|
+
} else if (_debug.default.enabled("expo:")) {
|
|
37
|
+
process.env.EXPO_DEBUG = "1";
|
|
38
|
+
}
|
|
31
39
|
const defaultCmd = "start";
|
|
32
40
|
const commands = {
|
|
33
41
|
// Add a new command here
|
|
@@ -61,12 +69,22 @@ const commands = {
|
|
|
61
69
|
}).then((i)=>i.expoExport
|
|
62
70
|
)
|
|
63
71
|
,
|
|
72
|
+
"export:web": ()=>Promise.resolve().then(function() {
|
|
73
|
+
return _interopRequireWildcard(require("../src/export/web"));
|
|
74
|
+
}).then((i)=>i.expoExportWeb
|
|
75
|
+
)
|
|
76
|
+
,
|
|
64
77
|
// Auxiliary commands
|
|
65
78
|
install: ()=>Promise.resolve().then(function() {
|
|
66
79
|
return _interopRequireWildcard(require("../src/install"));
|
|
67
80
|
}).then((i)=>i.expoInstall
|
|
68
81
|
)
|
|
69
82
|
,
|
|
83
|
+
customize: ()=>Promise.resolve().then(function() {
|
|
84
|
+
return _interopRequireWildcard(require("../src/customize"));
|
|
85
|
+
}).then((i)=>i.expoCustomize
|
|
86
|
+
)
|
|
87
|
+
,
|
|
70
88
|
// Auth
|
|
71
89
|
login: ()=>Promise.resolve().then(function() {
|
|
72
90
|
return _interopRequireWildcard(require("../src/login"));
|
|
@@ -100,14 +118,14 @@ const args = (0, _arg).default({
|
|
|
100
118
|
});
|
|
101
119
|
if (args["--version"]) {
|
|
102
120
|
// Version is added in the build script.
|
|
103
|
-
console.log("0.
|
|
121
|
+
console.log("0.2.2");
|
|
104
122
|
process.exit(0);
|
|
105
123
|
}
|
|
106
124
|
// Check if we are running `npx expo <subcommand>` or `npx expo`
|
|
107
125
|
const isSubcommand = Boolean(commands[args._[0]]);
|
|
108
126
|
// Handle `--help` flag
|
|
109
127
|
if (!isSubcommand && args["--help"]) {
|
|
110
|
-
const { login , logout , whoami , register , start , install , export: _export , config , prebuild , "run:ios": runIos , "run:android": runAndroid , ...others } = commands;
|
|
128
|
+
const { login , logout , whoami , register , start , install , export: _export , config , customize , prebuild , "run:ios": runIos , "run:android": runAndroid , ...others } = commands;
|
|
111
129
|
console.log(_chalk.default`
|
|
112
130
|
{bold Usage}
|
|
113
131
|
{dim $} npx expo <command>
|
|
@@ -115,9 +133,7 @@ if (!isSubcommand && args["--help"]) {
|
|
|
115
133
|
{bold Commands}
|
|
116
134
|
${Object.keys({
|
|
117
135
|
start,
|
|
118
|
-
install,
|
|
119
136
|
export: _export,
|
|
120
|
-
config,
|
|
121
137
|
...others
|
|
122
138
|
}).join(", ")}
|
|
123
139
|
${Object.keys({
|
|
@@ -125,6 +141,11 @@ if (!isSubcommand && args["--help"]) {
|
|
|
125
141
|
"run:android": runAndroid,
|
|
126
142
|
prebuild
|
|
127
143
|
}).join(", ")}
|
|
144
|
+
${Object.keys({
|
|
145
|
+
install,
|
|
146
|
+
customize,
|
|
147
|
+
config
|
|
148
|
+
}).join(", ")}
|
|
128
149
|
{dim ${Object.keys({
|
|
129
150
|
login,
|
|
130
151
|
logout,
|
|
@@ -141,6 +162,64 @@ if (!isSubcommand && args["--help"]) {
|
|
|
141
162
|
`);
|
|
142
163
|
process.exit(0);
|
|
143
164
|
}
|
|
165
|
+
// NOTE(EvanBacon): Squat some directory names to help with migration,
|
|
166
|
+
// users can still use folders named "send" or "eject" by using the fully qualified `npx expo start ./send`.
|
|
167
|
+
if (!isSubcommand) {
|
|
168
|
+
const migrationMap = {
|
|
169
|
+
init: "npx create-expo-app",
|
|
170
|
+
eject: "npx expo prebuild",
|
|
171
|
+
"start:web": "npx expo start --web",
|
|
172
|
+
"build:ios": "eas build -p ios",
|
|
173
|
+
"build:android": "eas build -p android",
|
|
174
|
+
"client:install:ios": "npx expo start --ios",
|
|
175
|
+
"client:install:android": "npx expo start --android",
|
|
176
|
+
doctor: "expo doctor",
|
|
177
|
+
upgrade: "expo upgrade",
|
|
178
|
+
"customize:web": "npx expo customize",
|
|
179
|
+
publish: "eas update",
|
|
180
|
+
"publish:set": "eas update",
|
|
181
|
+
"publish:rollback": "eas update",
|
|
182
|
+
"publish:history": "eas update",
|
|
183
|
+
"publish:details": "eas update",
|
|
184
|
+
"build:web": "npx expo export",
|
|
185
|
+
"credentials:manager": `eas credentials`,
|
|
186
|
+
"fetch:ios:certs": `eas credentials`,
|
|
187
|
+
"fetch:android:keystore": `eas credentials`,
|
|
188
|
+
"fetch:android:hashes": `eas credentials`,
|
|
189
|
+
"fetch:android:upload-cert": `eas credentials`,
|
|
190
|
+
"push:android:upload": `eas credentials`,
|
|
191
|
+
"push:android:show": `eas credentials`,
|
|
192
|
+
"push:android:clear": `eas credentials`,
|
|
193
|
+
url: `eas build:list`,
|
|
194
|
+
"url:ipa": `eas build:list`,
|
|
195
|
+
"url:apk": `eas build:list`,
|
|
196
|
+
webhooks: `eas webhook`,
|
|
197
|
+
"webhooks:add": `eas webhook:create`,
|
|
198
|
+
"webhooks:remove": `eas webhook:delete`,
|
|
199
|
+
"webhooks:update": `eas webhook:update`,
|
|
200
|
+
"build:status": `eas build:list`,
|
|
201
|
+
"upload:android": `eas submit -p android`,
|
|
202
|
+
"upload:ios": `eas submit -p ios`
|
|
203
|
+
};
|
|
204
|
+
const subcommand = args._[0];
|
|
205
|
+
if (subcommand in migrationMap) {
|
|
206
|
+
const replacement = migrationMap[subcommand];
|
|
207
|
+
console.log();
|
|
208
|
+
console.log(_chalk.default.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please use {bold ${replacement}} instead`);
|
|
209
|
+
console.log();
|
|
210
|
+
process.exit(1);
|
|
211
|
+
}
|
|
212
|
+
const deprecated = [
|
|
213
|
+
"send",
|
|
214
|
+
"client:ios"
|
|
215
|
+
];
|
|
216
|
+
if (deprecated.includes(subcommand)) {
|
|
217
|
+
console.log();
|
|
218
|
+
console.log(_chalk.default.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);
|
|
219
|
+
console.log();
|
|
220
|
+
process.exit(1);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
144
223
|
const command = isSubcommand ? args._[0] : defaultCmd;
|
|
145
224
|
const commandArgs = isSubcommand ? args._.slice(1) : args._;
|
|
146
225
|
// Push the help flag to the subcommand args.
|
package/build/bin/cli.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n 'run:ios': () => import('../src/run/ios').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android').then((i) => i.expoRunAndroid),\n start: () => import('../src/start').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild').then((i) => i.expoPrebuild),\n config: () => import('../src/config').then((i) => i.expoConfig),\n export: () => import('../src/export').then((i) => i.expoExport),\n\n // Auxiliary commands\n install: () => import('../src/install').then((i) => i.expoInstall),\n\n // Auth\n login: () => import('../src/login').then((i) => i.expoLogin),\n logout: () => import('../src/logout').then((i) => i.expoLogout),\n register: () => import('../src/register').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = Boolean(commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n export: _export,\n config,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, install, export: _export, config, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n process.exit(0);\n}\n\nconst command = isSubcommand ? args._[0] : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]().then((exec) => exec(commandArgs));\n"],"names":["defaultCmd","commands","then","i","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","install","expoInstall","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","console","log","process","env","__EXPO_VERSION","exit","isSubcommand","_","_export","runIos","runAndroid","others","chalk","Object","keys","join","command","commandArgs","slice","push","on","exec"],"mappings":"AAAA;;AACgB,IAAA,IAAK,kCAAL,KAAK,EAAA;AACH,IAAA,MAAO,kCAAP,OAAO,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,MAAMA,UAAU,GAAG,OAAO,AAAC;AAI3B,MAAMC,QAAQ,GAAkD;IAC9D,yBAAyB;IACzB,SAAS,EAAE,IAAM;mDAAO,gBAAgB;UAAC,CAACC,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACC,UAAU;QAAA,CAAC;IAAA;IACnE,aAAa,EAAE,IAAM;mDAAO,oBAAoB;UAAC,CAACF,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACE,cAAc;QAAA,CAAC;IAAA;IAC/EC,KAAK,EAAE,IAAM;mDAAO,cAAc;UAAC,CAACJ,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACI,SAAS;QAAA,CAAC;IAAA;IAC5DC,QAAQ,EAAE,IAAM;mDAAO,iBAAiB;UAAC,CAACN,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACM,YAAY;QAAA,CAAC;IAAA;IACrEC,MAAM,EAAE,IAAM;mDAAO,eAAe;UAAC,CAACR,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACQ,UAAU;QAAA,CAAC;IAAA;IAC/DC,MAAM,EAAE,IAAM;mDAAO,eAAe;UAAC,CAACV,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACU,UAAU;QAAA,CAAC;IAAA;IAE/D,qBAAqB;IACrBC,OAAO,EAAE,IAAM;mDAAO,gBAAgB;UAAC,CAACZ,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACY,WAAW;QAAA,CAAC;IAAA;IAElE,OAAO;IACPC,KAAK,EAAE,IAAM;mDAAO,cAAc;UAAC,CAACd,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACc,SAAS;QAAA,CAAC;IAAA;IAC5DC,MAAM,EAAE,IAAM;mDAAO,eAAe;UAAC,CAAChB,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACgB,UAAU;QAAA,CAAC;IAAA;IAC/DC,QAAQ,EAAE,IAAM;mDAAO,iBAAiB;UAAC,CAAClB,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACkB,YAAY;QAAA,CAAC;IAAA;IACrEC,MAAM,EAAE,IAAM;mDAAO,eAAe;UAAC,CAACpB,IAAI,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACoB,UAAU;QAAA,CAAC;CAChE,AAAC;AAEF,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,IAAG,AAaf,CAAA,QAbe,CACd;IACE,QAAQ;IACR,WAAW,EAAEC,OAAO;IACpB,QAAQ,EAAEA,OAAO;IAEjB,UAAU;IACV,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ;CACf,EACD;IACEC,UAAU,EAAE,IAAI;CACjB,CACF,AAAC;AAEF,IAAIH,IAAI,CAAC,WAAW,CAAC,EAAE;IACrB,wCAAwC;IACxCI,OAAO,CAACC,GAAG,CAACC,OAAO,CAACC,GAAG,CAACC,cAAc,CAAC,CAAC;IACxCF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,gEAAgE;AAChE,MAAMC,YAAY,GAAGR,OAAO,CAACzB,QAAQ,CAACuB,IAAI,CAACW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AAAC;AAElD,uBAAuB;AACvB,IAAI,CAACD,YAAY,IAAIV,IAAI,CAAC,QAAQ,CAAC,EAAE;IACnC,MAAM,EACJR,KAAK,CAAA,EACLE,MAAM,CAAA,EACNI,MAAM,CAAA,EACNF,QAAQ,CAAA,EACRd,KAAK,CAAA,EACLQ,OAAO,CAAA,EACPF,MAAM,EAAEwB,OAAO,CAAA,EACf1B,MAAM,CAAA,EACNF,QAAQ,CAAA,EACR,SAAS,EAAE6B,MAAM,CAAA,EACjB,aAAa,EAAEC,UAAU,CAAA,EACzB,GAAGC,MAAM,EACV,GAAGtC,QAAQ,AAAC;IAEb2B,OAAO,CAACC,GAAG,CAACW,MAAK,QAAA,CAAC;;;;;IAKhB,EAAEC,MAAM,CAACC,IAAI,CAAC;QAAEpC,KAAK;QAAEQ,OAAO;QAAEF,MAAM,EAAEwB,OAAO;QAAE1B,MAAM;QAAE,GAAG6B,MAAM;KAAE,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,EAAEF,MAAM,CAACC,IAAI,CAAC;QAAE,SAAS,EAAEL,MAAM;QAAE,aAAa,EAAEC,UAAU;QAAE9B,QAAQ;KAAE,CAAC,CAACmC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChF,EAAEF,MAAM,CAACC,IAAI,CAAC;QAAE1B,KAAK;QAAEE,MAAM;QAAEI,MAAM;QAAEF,QAAQ;KAAE,CAAC,CAACuB,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;;;;AAQvE,CAAC,CAAC,CAAC;IACDb,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAMW,OAAO,GAAGV,YAAY,GAAGV,IAAI,CAACW,CAAC,CAAC,CAAC,CAAC,GAAGnC,UAAU,AAAC;AACtD,MAAM6C,WAAW,GAAGX,YAAY,GAAGV,IAAI,CAACW,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC,GAAGtB,IAAI,CAACW,CAAC,AAAC;AAE5D,6CAA6C;AAC7C,IAAIX,IAAI,CAAC,QAAQ,CAAC,EAAE;IAClBqB,WAAW,CAACE,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC5B;AAED,qBAAqB;AACrBjB,OAAO,CAACkB,EAAE,CAAC,QAAQ,EAAE,IAAMlB,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;AAAA,CAAC,CAAC;AAC5CH,OAAO,CAACkB,EAAE,CAAC,SAAS,EAAE,IAAMlB,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;AAAA,CAAC,CAAC;AAE7ChC,QAAQ,CAAC2C,OAAO,CAAC,EAAE,CAAC1C,IAAI,CAAC,CAAC+C,IAAI,GAAKA,IAAI,CAACJ,WAAW,CAAC;AAAA,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport Debug from 'debug';\nimport { boolish } from 'getenv';\n\n// Setup before requiring `debug`.\nif (boolish('EXPO_DEBUG', false)) {\n Debug.enable('expo:*');\n} else if (Debug.enabled('expo:')) {\n process.env.EXPO_DEBUG = '1';\n}\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n 'run:ios': () => import('../src/run/ios').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android').then((i) => i.expoRunAndroid),\n start: () => import('../src/start').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild').then((i) => i.expoPrebuild),\n config: () => import('../src/config').then((i) => i.expoConfig),\n export: () => import('../src/export').then((i) => i.expoExport),\n 'export:web': () => import('../src/export/web').then((i) => i.expoExportWeb),\n\n // Auxiliary commands\n install: () => import('../src/install').then((i) => i.expoInstall),\n customize: () => import('../src/customize').then((i) => i.expoCustomize),\n\n // Auth\n login: () => import('../src/login').then((i) => i.expoLogin),\n logout: () => import('../src/logout').then((i) => i.expoLogout),\n register: () => import('../src/register').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = Boolean(commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n export: _export,\n config,\n customize,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, export: _export, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n ${Object.keys({ install, customize, config }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n process.exit(0);\n}\n\n// NOTE(EvanBacon): Squat some directory names to help with migration,\n// users can still use folders named \"send\" or \"eject\" by using the fully qualified `npx expo start ./send`.\nif (!isSubcommand) {\n const migrationMap: Record<string, string> = {\n init: 'npx create-expo-app',\n eject: 'npx expo prebuild',\n 'start:web': 'npx expo start --web',\n 'build:ios': 'eas build -p ios',\n 'build:android': 'eas build -p android',\n 'client:install:ios': 'npx expo start --ios',\n 'client:install:android': 'npx expo start --android',\n doctor: 'expo doctor',\n upgrade: 'expo upgrade',\n 'customize:web': 'npx expo customize',\n\n publish: 'eas update',\n 'publish:set': 'eas update',\n 'publish:rollback': 'eas update',\n 'publish:history': 'eas update',\n 'publish:details': 'eas update',\n\n 'build:web': 'npx expo export',\n\n 'credentials:manager': `eas credentials`,\n 'fetch:ios:certs': `eas credentials`,\n 'fetch:android:keystore': `eas credentials`,\n 'fetch:android:hashes': `eas credentials`,\n 'fetch:android:upload-cert': `eas credentials`,\n 'push:android:upload': `eas credentials`,\n 'push:android:show': `eas credentials`,\n 'push:android:clear': `eas credentials`,\n url: `eas build:list`,\n 'url:ipa': `eas build:list`,\n 'url:apk': `eas build:list`,\n webhooks: `eas webhook`,\n 'webhooks:add': `eas webhook:create`,\n 'webhooks:remove': `eas webhook:delete`,\n 'webhooks:update': `eas webhook:update`,\n\n 'build:status': `eas build:list`,\n 'upload:android': `eas submit -p android`,\n 'upload:ios': `eas submit -p ios`,\n };\n\n const subcommand = args._[0];\n if (subcommand in migrationMap) {\n const replacement = migrationMap[subcommand];\n console.log();\n console.log(\n chalk.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please use {bold ${replacement}} instead`\n );\n console.log();\n process.exit(1);\n }\n const deprecated = ['send', 'client:ios'];\n if (deprecated.includes(subcommand)) {\n console.log();\n console.log(chalk.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);\n console.log();\n process.exit(1);\n }\n}\n\nconst command = isSubcommand ? args._[0] : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]().then((exec) => exec(commandArgs));\n"],"names":["boolish","Debug","enable","enabled","process","env","EXPO_DEBUG","defaultCmd","commands","then","i","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","install","expoInstall","customize","expoCustomize","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","console","log","__EXPO_VERSION","exit","isSubcommand","_","_export","runIos","runAndroid","others","chalk","Object","keys","join","migrationMap","init","eject","doctor","upgrade","publish","url","webhooks","subcommand","replacement","yellow","deprecated","includes","command","commandArgs","slice","push","on","exec"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/getNativeModuleVersions.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { createCachedFetch } from './rest/client';\n\ninterface NativeModule {\n npmPackage: string;\n versionRange: string;\n}\ntype BundledNativeModuleList = NativeModule[];\n\nexport type BundledNativeModules = Record<string, string>;\n\n/**\n * The endpoint returns the list of bundled native modules for a given SDK version.\n * The data is populated by the `et sync-bundled-native-modules` script from expo/expo repo.\n * See the code for more details:\n * https://github.com/expo/expo/blob/main/tools/src/commands/SyncBundledNativeModules.ts\n *\n * Example result:\n * [\n * {\n * id: \"79285187-e5c4-47f7-b6a9-664f5d16f0db\",\n * sdkVersion: \"41.0.0\",\n * npmPackage: \"expo-
|
|
1
|
+
{"version":3,"sources":["../../../src/api/getNativeModuleVersions.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { createCachedFetch } from './rest/client';\n\ninterface NativeModule {\n npmPackage: string;\n versionRange: string;\n}\ntype BundledNativeModuleList = NativeModule[];\n\nexport type BundledNativeModules = Record<string, string>;\n\n/**\n * The endpoint returns the list of bundled native modules for a given SDK version.\n * The data is populated by the `et sync-bundled-native-modules` script from expo/expo repo.\n * See the code for more details:\n * https://github.com/expo/expo/blob/main/tools/src/commands/SyncBundledNativeModules.ts\n *\n * Example result:\n * [\n * {\n * id: \"79285187-e5c4-47f7-b6a9-664f5d16f0db\",\n * sdkVersion: \"41.0.0\",\n * npmPackage: \"expo-camera\",\n * versionRange: \"~10.1.0\",\n * createdAt: \"2021-04-29T09:34:32.825Z\",\n * updatedAt: \"2021-04-29T09:34:32.825Z\"\n * },\n * ...\n * ]\n */\nexport async function getNativeModuleVersionsAsync(\n sdkVersion: string\n): Promise<BundledNativeModules> {\n const fetchAsync = createCachedFetch({\n cacheDirectory: 'native-modules-cache',\n // 1 minute cache\n ttl: 1000 * 60 * 1,\n });\n const results = await fetchAsync(`sdks/${sdkVersion}/native-modules`);\n if (!results.ok) {\n throw new CommandError(\n 'API',\n `Unexpected response when fetching version info from Expo servers: ${results.statusText}.`\n );\n }\n const { data } = await results.json();\n if (!data.length) {\n throw new CommandError('VERSIONS', 'The bundled native module list from the Expo API is empty');\n }\n return fromBundledNativeModuleList(data);\n}\n\nfunction fromBundledNativeModuleList(list: BundledNativeModuleList): BundledNativeModules {\n return list.reduce((acc, i) => {\n acc[i.npmPackage] = i.versionRange;\n return acc;\n }, {} as BundledNativeModules);\n}\n"],"names":["getNativeModuleVersionsAsync","sdkVersion","fetchAsync","createCachedFetch","cacheDirectory","ttl","results","ok","CommandError","statusText","data","json","length","fromBundledNativeModuleList","list","reduce","acc","i","npmPackage","versionRange"],"mappings":"AAAA;;;;QA8BsBA,4BAA4B,GAA5BA,4BAA4B;AA9BrB,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACZ,IAAA,OAAe,WAAf,eAAe,CAAA;AA6B1C,eAAeA,4BAA4B,CAChDC,UAAkB,EACa;IAC/B,MAAMC,UAAU,GAAGC,CAAAA,GAAAA,OAAiB,AAIlC,CAAA,kBAJkC,CAAC;QACnCC,cAAc,EAAE,sBAAsB;QACtC,iBAAiB;QACjBC,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;KACnB,CAAC,AAAC;IACH,MAAMC,OAAO,GAAG,MAAMJ,UAAU,CAAC,CAAC,KAAK,EAAED,UAAU,CAAC,eAAe,CAAC,CAAC,AAAC;IACtE,IAAI,CAACK,OAAO,CAACC,EAAE,EAAE;QACf,MAAM,IAAIC,OAAY,aAAA,CACpB,KAAK,EACL,CAAC,kEAAkE,EAAEF,OAAO,CAACG,UAAU,CAAC,CAAC,CAAC,CAC3F,CAAC;KACH;IACD,MAAM,EAAEC,IAAI,CAAA,EAAE,GAAG,MAAMJ,OAAO,CAACK,IAAI,EAAE,AAAC;IACtC,IAAI,CAACD,IAAI,CAACE,MAAM,EAAE;QAChB,MAAM,IAAIJ,OAAY,aAAA,CAAC,UAAU,EAAE,2DAA2D,CAAC,CAAC;KACjG;IACD,OAAOK,2BAA2B,CAACH,IAAI,CAAC,CAAC;CAC1C;AAED,SAASG,2BAA2B,CAACC,IAA6B,EAAwB;IACxF,OAAOA,IAAI,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,GAAK;QAC7BD,GAAG,CAACC,CAAC,CAACC,UAAU,CAAC,GAAGD,CAAC,CAACE,YAAY,CAAC;QACnC,OAAOH,GAAG,CAAC;KACZ,EAAE,EAAE,CAAyB,CAAC;CAChC"}
|
|
@@ -3,33 +3,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.wrapFetchWithOffline = wrapFetchWithOffline;
|
|
6
|
-
var Log = _interopRequireWildcard(require("../../log"));
|
|
7
6
|
var _settings = require("../settings");
|
|
8
|
-
|
|
9
|
-
if (obj && obj.__esModule) {
|
|
10
|
-
return obj;
|
|
11
|
-
} else {
|
|
12
|
-
var newObj = {};
|
|
13
|
-
if (obj != null) {
|
|
14
|
-
for(var key in obj){
|
|
15
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
16
|
-
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
17
|
-
if (desc.get || desc.set) {
|
|
18
|
-
Object.defineProperty(newObj, key, desc);
|
|
19
|
-
} else {
|
|
20
|
-
newObj[key] = obj[key];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
newObj.default = obj;
|
|
26
|
-
return newObj;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
7
|
+
const debug = require("debug")("expo:api:fetch:offline");
|
|
29
8
|
function wrapFetchWithOffline(fetchFunction) {
|
|
30
9
|
return async function fetchWithOffline(url, options = {}) {
|
|
31
10
|
if (_settings.APISettings.isOffline) {
|
|
32
|
-
|
|
11
|
+
debug("Skipping network request: " + url);
|
|
33
12
|
options.timeout = 1;
|
|
34
13
|
}
|
|
35
14
|
return fetchFunction(url, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/api/rest/wrapFetchWithOffline.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../src/api/rest/wrapFetchWithOffline.ts"],"sourcesContent":["import { APISettings } from '../settings';\nimport { FetchLike } from './client.types';\n\nconst debug = require('debug')('expo:api:fetch:offline') as typeof console.log;\n\n/** Wrap fetch with support for APISettings offline mode. */\nexport function wrapFetchWithOffline(fetchFunction: FetchLike): FetchLike {\n return async function fetchWithOffline(url, options = {}) {\n if (APISettings.isOffline) {\n debug('Skipping network request: ' + url);\n options.timeout = 1;\n }\n return fetchFunction(url, options);\n };\n}\n"],"names":["wrapFetchWithOffline","debug","require","fetchFunction","fetchWithOffline","url","options","APISettings","isOffline","timeout"],"mappings":"AAAA;;;;QAMgBA,oBAAoB,GAApBA,oBAAoB;AANR,IAAA,SAAa,WAAb,aAAa,CAAA;AAGzC,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,AAAsB,AAAC;AAGxE,SAASF,oBAAoB,CAACG,aAAwB,EAAa;IACxE,OAAO,eAAeC,gBAAgB,CAACC,GAAG,EAAEC,OAAO,GAAG,EAAE,EAAE;QACxD,IAAIC,SAAW,YAAA,CAACC,SAAS,EAAE;YACzBP,KAAK,CAAC,4BAA4B,GAAGI,GAAG,CAAC,CAAC;YAC1CC,OAAO,CAACG,OAAO,GAAG,CAAC,CAAC;SACrB;QACD,OAAON,aAAa,CAACE,GAAG,EAAEC,OAAO,CAAC,CAAC;KACpC,CAAC;CACH"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.customizeAsync = customizeAsync;
|
|
6
|
+
var _config = require("@expo/config");
|
|
7
|
+
var _findUp = require("../utils/findUp");
|
|
8
|
+
var _generate = require("./generate");
|
|
9
|
+
async function customizeAsync(files, options, extras) {
|
|
10
|
+
var ref;
|
|
11
|
+
// Locate the project root based on the process current working directory.
|
|
12
|
+
// This enables users to run `npx expo customize` from a subdirectory of the project.
|
|
13
|
+
const projectRoot = (0, _findUp).findUpProjectRootOrAssert(process.cwd());
|
|
14
|
+
// Get the static path (defaults to 'web/')
|
|
15
|
+
// Doesn't matter if expo is installed or which mode is used.
|
|
16
|
+
const { exp } = (0, _config).getConfig(projectRoot, {
|
|
17
|
+
skipSDKVersionRequirement: true
|
|
18
|
+
});
|
|
19
|
+
var ref1;
|
|
20
|
+
// Create the destination resolution props which are used in both
|
|
21
|
+
// the query and select functions.
|
|
22
|
+
const props = {
|
|
23
|
+
webStaticPath: (ref1 = (ref = exp.web) == null ? void 0 : ref.staticPath) != null ? ref1 : "web"
|
|
24
|
+
};
|
|
25
|
+
// If the user provided files, we'll generate them without prompting.
|
|
26
|
+
if (files.length) {
|
|
27
|
+
return (0, _generate).queryAndGenerateAsync(projectRoot, {
|
|
28
|
+
files,
|
|
29
|
+
props,
|
|
30
|
+
extras
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// Otherwise, we'll prompt the user to select which files to generate.
|
|
34
|
+
await (0, _generate).selectAndGenerateAsync(projectRoot, {
|
|
35
|
+
props,
|
|
36
|
+
extras
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=customizeAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/customizeAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\n\nimport { findUpProjectRootOrAssert } from '../utils/findUp';\nimport { queryAndGenerateAsync, selectAndGenerateAsync } from './generate';\nimport { Options } from './resolveOptions';\nimport { DestinationResolutionProps } from './templates';\n\nexport async function customizeAsync(files: string[], options: Options, extras: any[]) {\n // Locate the project root based on the process current working directory.\n // This enables users to run `npx expo customize` from a subdirectory of the project.\n const projectRoot = findUpProjectRootOrAssert(process.cwd());\n\n // Get the static path (defaults to 'web/')\n // Doesn't matter if expo is installed or which mode is used.\n const { exp } = getConfig(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n\n // Create the destination resolution props which are used in both\n // the query and select functions.\n const props: DestinationResolutionProps = {\n webStaticPath: exp.web?.staticPath ?? 'web',\n };\n\n // If the user provided files, we'll generate them without prompting.\n if (files.length) {\n return queryAndGenerateAsync(projectRoot, {\n files,\n props,\n extras,\n });\n }\n\n // Otherwise, we'll prompt the user to select which files to generate.\n await selectAndGenerateAsync(projectRoot, {\n props,\n extras,\n });\n}\n"],"names":["customizeAsync","files","options","extras","exp","projectRoot","findUpProjectRootOrAssert","process","cwd","getConfig","skipSDKVersionRequirement","props","webStaticPath","web","staticPath","length","queryAndGenerateAsync","selectAndGenerateAsync"],"mappings":"AAAA;;;;QAOsBA,cAAc,GAAdA,cAAc;AAPV,IAAA,OAAc,WAAd,cAAc,CAAA;AAEE,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACG,IAAA,SAAY,WAAZ,YAAY,CAAA;AAInE,eAAeA,cAAc,CAACC,KAAe,EAAEC,OAAgB,EAAEC,MAAa,EAAE;QAcpEC,GAAO;IAbxB,0EAA0E;IAC1E,qFAAqF;IACrF,MAAMC,WAAW,GAAGC,CAAAA,GAAAA,OAAyB,AAAe,CAAA,0BAAf,CAACC,OAAO,CAACC,GAAG,EAAE,CAAC,AAAC;IAE7D,2CAA2C;IAC3C,6DAA6D;IAC7D,MAAM,EAAEJ,GAAG,CAAA,EAAE,GAAGK,CAAAA,GAAAA,OAAS,AAEvB,CAAA,UAFuB,CAACJ,WAAW,EAAE;QACrCK,yBAAyB,EAAE,IAAI;KAChC,CAAC,AAAC;QAKcN,IAAmB;IAHpC,iEAAiE;IACjE,kCAAkC;IAClC,MAAMO,KAAK,GAA+B;QACxCC,aAAa,EAAER,CAAAA,IAAmB,GAAnBA,CAAAA,GAAO,GAAPA,GAAG,CAACS,GAAG,SAAY,GAAnBT,KAAAA,CAAmB,GAAnBA,GAAO,CAAEU,UAAU,YAAnBV,IAAmB,GAAI,KAAK;KAC5C,AAAC;IAEF,qEAAqE;IACrE,IAAIH,KAAK,CAACc,MAAM,EAAE;QAChB,OAAOC,CAAAA,GAAAA,SAAqB,AAI1B,CAAA,sBAJ0B,CAACX,WAAW,EAAE;YACxCJ,KAAK;YACLU,KAAK;YACLR,MAAM;SACP,CAAC,CAAC;KACJ;IAED,sEAAsE;IACtE,MAAMc,CAAAA,GAAAA,SAAsB,AAG1B,CAAA,uBAH0B,CAACZ,WAAW,EAAE;QACxCM,KAAK;QACLR,MAAM;KACP,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.queryAndGenerateAsync = queryAndGenerateAsync;
|
|
6
|
+
exports.selectAndGenerateAsync = selectAndGenerateAsync;
|
|
7
|
+
var _path = _interopRequireDefault(require("path"));
|
|
8
|
+
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
|
9
|
+
var _installAsync = require("../install/installAsync");
|
|
10
|
+
var _log = require("../log");
|
|
11
|
+
var _dir = require("../utils/dir");
|
|
12
|
+
var _errors = require("../utils/errors");
|
|
13
|
+
var _templates = require("./templates");
|
|
14
|
+
function _interopRequireDefault(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async function queryAndGenerateAsync(projectRoot, { files , props , extras }) {
|
|
20
|
+
const valid = files.filter((file)=>!!_templates.TEMPLATES.find((template)=>template.destination(props) === file
|
|
21
|
+
)
|
|
22
|
+
);
|
|
23
|
+
if (valid.length !== files.length) {
|
|
24
|
+
const diff = files.filter((file)=>!_templates.TEMPLATES.find((template)=>template.destination(props) === file
|
|
25
|
+
)
|
|
26
|
+
);
|
|
27
|
+
throw new _errors.CommandError(`Invalid files: ${diff.join(", ")}. Allowed: ${_templates.TEMPLATES.map((template)=>template.destination(props)
|
|
28
|
+
).join(", ")}`);
|
|
29
|
+
}
|
|
30
|
+
if (!valid.length) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
_log.Log.log(`Generating: ${valid.join(", ")}`);
|
|
34
|
+
return generateAsync(projectRoot, {
|
|
35
|
+
answer: files.map((file)=>_templates.TEMPLATES.findIndex((template)=>template.destination(props) === file
|
|
36
|
+
)
|
|
37
|
+
),
|
|
38
|
+
props,
|
|
39
|
+
extras
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async function selectAndGenerateAsync(projectRoot, { props , extras }) {
|
|
43
|
+
const answer = await (0, _templates).selectTemplatesAsync(projectRoot, props);
|
|
44
|
+
if (!(answer == null ? void 0 : answer.length)) {
|
|
45
|
+
_log.Log.exit("\n\u203A Exiting with no change...", 0);
|
|
46
|
+
}
|
|
47
|
+
await generateAsync(projectRoot, {
|
|
48
|
+
answer,
|
|
49
|
+
props,
|
|
50
|
+
extras
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function generateAsync(projectRoot, { answer , props , extras }) {
|
|
54
|
+
// Copy files
|
|
55
|
+
await Promise.all(answer.map((file)=>{
|
|
56
|
+
const template = _templates.TEMPLATES[file];
|
|
57
|
+
const projectFilePath = _path.default.resolve(projectRoot, template.destination(props));
|
|
58
|
+
// copy the file from template
|
|
59
|
+
return (0, _dir).copyAsync(template.file(projectRoot), projectFilePath, {
|
|
60
|
+
overwrite: true,
|
|
61
|
+
recursive: true
|
|
62
|
+
});
|
|
63
|
+
}));
|
|
64
|
+
// Install dependencies
|
|
65
|
+
const packages = answer.map((file)=>_templates.TEMPLATES[file].dependencies
|
|
66
|
+
).flat().filter((pkg)=>!_resolveFrom.default.silent(projectRoot, pkg)
|
|
67
|
+
);
|
|
68
|
+
if (packages.length) {
|
|
69
|
+
_log.Log.debug("Installing " + packages.join(", "));
|
|
70
|
+
await (0, _installAsync).installAsync(packages, {}, [
|
|
71
|
+
"--dev",
|
|
72
|
+
...extras
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/generate.ts"],"sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { installAsync } from '../install/installAsync';\nimport { Log } from '../log';\nimport { copyAsync } from '../utils/dir';\nimport { CommandError } from '../utils/errors';\nimport { DestinationResolutionProps, selectTemplatesAsync, TEMPLATES } from './templates';\n\nexport async function queryAndGenerateAsync(\n projectRoot: string,\n {\n files,\n props,\n extras,\n }: {\n files: string[];\n props: DestinationResolutionProps;\n /** Any extra props to pass to the install command. */\n extras: any[];\n }\n) {\n const valid = files.filter(\n (file) => !!TEMPLATES.find((template) => template.destination(props) === file)\n );\n\n if (valid.length !== files.length) {\n const diff = files.filter(\n (file) => !TEMPLATES.find((template) => template.destination(props) === file)\n );\n throw new CommandError(\n `Invalid files: ${diff.join(', ')}. Allowed: ${TEMPLATES.map((template) =>\n template.destination(props)\n ).join(', ')}`\n );\n }\n\n if (!valid.length) {\n return;\n }\n Log.log(`Generating: ${valid.join(', ')}`);\n return generateAsync(projectRoot, {\n answer: files.map((file) =>\n TEMPLATES.findIndex((template) => template.destination(props) === file)\n ),\n props,\n extras,\n });\n}\n\n/** Select templates to generate then generate and install. */\nexport async function selectAndGenerateAsync(\n projectRoot: string,\n {\n props,\n extras,\n }: {\n props: DestinationResolutionProps;\n /** Any extra props to pass to the install command. */\n extras: any[];\n }\n) {\n const answer = await selectTemplatesAsync(projectRoot, props);\n\n if (!answer?.length) {\n Log.exit('\\n\\u203A Exiting with no change...', 0);\n }\n\n await generateAsync(projectRoot, {\n answer,\n props,\n extras,\n });\n}\n\nasync function generateAsync(\n projectRoot: string,\n {\n answer,\n props,\n extras,\n }: {\n answer: number[];\n props: DestinationResolutionProps;\n /** Any extra props to pass to the install command. */\n extras: any[];\n }\n) {\n // Copy files\n await Promise.all(\n answer.map((file) => {\n const template = TEMPLATES[file];\n const projectFilePath = path.resolve(projectRoot, template.destination(props));\n // copy the file from template\n return copyAsync(template.file(projectRoot), projectFilePath, {\n overwrite: true,\n recursive: true,\n });\n })\n );\n\n // Install dependencies\n const packages = answer\n .map((file) => TEMPLATES[file].dependencies)\n .flat()\n .filter((pkg) => !resolveFrom.silent(projectRoot, pkg));\n if (packages.length) {\n Log.debug('Installing ' + packages.join(', '));\n await installAsync(packages, {}, ['--dev', ...extras]);\n }\n}\n"],"names":["queryAndGenerateAsync","selectAndGenerateAsync","projectRoot","files","props","extras","valid","filter","file","TEMPLATES","find","template","destination","length","diff","CommandError","join","map","Log","log","generateAsync","answer","findIndex","selectTemplatesAsync","exit","Promise","all","projectFilePath","path","resolve","copyAsync","overwrite","recursive","packages","dependencies","flat","pkg","resolveFrom","silent","debug","installAsync"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.expoCustomize = 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 expoCustomize = 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(`Generate static project files`, _chalk.default`npx expo customize {dim [files...] -- [options]}`, [
|
|
27
|
+
_chalk.default`[files...] List of files to generate`,
|
|
28
|
+
_chalk.default`[options] Options to pass to the install command`,
|
|
29
|
+
`-h, --help Usage info`,
|
|
30
|
+
].join("\n"));
|
|
31
|
+
}
|
|
32
|
+
// Load modules after the help prompt so `npx expo install -h` shows as fast as possible.
|
|
33
|
+
const { customizeAsync } = require("./customizeAsync");
|
|
34
|
+
const { logCmdError } = require("../utils/errors");
|
|
35
|
+
const { resolveArgsAsync } = require("./resolveOptions");
|
|
36
|
+
const { variadic , options , extras } = await resolveArgsAsync(process.argv.slice(3)).catch(logCmdError);
|
|
37
|
+
return customizeAsync(variadic, options, extras).catch(logCmdError);
|
|
38
|
+
};
|
|
39
|
+
exports.expoCustomize = expoCustomize;
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/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 expoCustomize: 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 `Generate static project files`,\n chalk`npx expo customize {dim [files...] -- [options]}`,\n [\n chalk`[files...] List of files to generate`,\n chalk`[options] Options to pass to the install command`,\n `-h, --help Usage info`,\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 { customizeAsync } = require('./customizeAsync') as typeof import('./customizeAsync');\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 customizeAsync(variadic, options, extras).catch(logCmdError);\n};\n"],"names":["expoCustomize","argv","args","assertWithOptionsArgs","Boolean","permissive","printHelp","chalk","join","customizeAsync","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,aAAa,GAAY,OAAOC,IAAI,GAAK;IACpD,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,AAQR,CAAA,UARQ,CACP,CAAC,6BAA6B,CAAC,EAC/BC,MAAK,QAAA,CAAC,gDAAgD,CAAC,EACvD;YACEA,MAAK,QAAA,CAAC,qCAAqC,CAAC;YAC5CA,MAAK,QAAA,CAAC,kDAAkD,CAAC;YACzD,CAAC,sBAAsB,CAAC;SACzB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,yFAAyF;IACzF,MAAM,EAAEC,cAAc,CAAA,EAAE,GAAGC,OAAO,CAAC,kBAAkB,CAAC,AAAqC,AAAC;IAC5F,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,cAAc,CAACI,QAAQ,EAAEC,OAAO,EAAEC,MAAM,CAAC,CAACG,KAAK,CAACP,WAAW,CAAC,CAAC;CACrE,AAAC;QApCWX,aAAa,GAAbA,aAAa"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.resolveArgsAsync = resolveArgsAsync;
|
|
6
|
+
var _variadic = require("../utils/variadic");
|
|
7
|
+
async function resolveArgsAsync(argv) {
|
|
8
|
+
const { variadic , extras , flags } = (0, _variadic).parseVariadicArguments(argv);
|
|
9
|
+
(0, _variadic).assertUnexpectedObjectKeys([], flags);
|
|
10
|
+
return {
|
|
11
|
+
// Variadic arguments like `npx expo install react react-dom` -> ['react', 'react-dom']
|
|
12
|
+
variadic,
|
|
13
|
+
options: {},
|
|
14
|
+
extras
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=resolveOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/resolveOptions.ts"],"sourcesContent":["import { assertUnexpectedObjectKeys, parseVariadicArguments } from '../utils/variadic';\n\nexport type Options = object;\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([], flags);\n\n return {\n // Variadic arguments like `npx expo install react react-dom` -> ['react', 'react-dom']\n variadic,\n options: {},\n extras,\n };\n}\n"],"names":["resolveArgsAsync","argv","variadic","extras","flags","parseVariadicArguments","assertUnexpectedObjectKeys","options"],"mappings":"AAAA;;;;QAIsBA,gBAAgB,GAAhBA,gBAAgB;AAJ6B,IAAA,SAAmB,WAAnB,mBAAmB,CAAA;AAI/E,eAAeA,gBAAgB,CACpCC,IAAc,EACuD;IACrE,MAAM,EAAEC,QAAQ,CAAA,EAAEC,MAAM,CAAA,EAAEC,KAAK,CAAA,EAAE,GAAGC,CAAAA,GAAAA,SAAsB,AAAM,CAAA,uBAAN,CAACJ,IAAI,CAAC,AAAC;IAEjEK,CAAAA,GAAAA,SAA0B,AAAW,CAAA,2BAAX,CAAC,EAAE,EAAEF,KAAK,CAAC,CAAC;IAEtC,OAAO;QACL,uFAAuF;QACvFF,QAAQ;QACRK,OAAO,EAAE,EAAE;QACXJ,MAAM;KACP,CAAC;CACH"}
|