@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.
Files changed (336) hide show
  1. package/README.md +106 -0
  2. package/build/bin/cli +125 -0
  3. package/build/bin/cli.map +1 -0
  4. package/build/src/api/endpoint.js +17 -0
  5. package/build/src/api/endpoint.js.map +1 -0
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +21 -0
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
  8. package/build/src/api/getExpoSchema.js +69 -0
  9. package/build/src/api/getExpoSchema.js.map +1 -0
  10. package/build/src/api/getNativeModuleVersions.js +31 -0
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -0
  12. package/build/src/api/getProject.js +19 -0
  13. package/build/src/api/getProject.js.map +1 -0
  14. package/build/src/api/getProjectDevelopmentCertificate.js +24 -0
  15. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
  16. package/build/src/api/getVersions.js +37 -0
  17. package/build/src/api/getVersions.js.map +1 -0
  18. package/build/src/api/graphql/client.js +104 -0
  19. package/build/src/api/graphql/client.js.map +1 -0
  20. package/build/src/api/graphql/generated.js +113 -0
  21. package/build/src/api/graphql/generated.js.map +1 -0
  22. package/build/src/api/graphql/queries/UserQuery.js +43 -0
  23. package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
  24. package/build/src/api/rest/cache/FileSystemCache.js +79 -0
  25. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -0
  26. package/build/src/api/rest/cache/response.js +31 -0
  27. package/build/src/api/rest/cache/response.js.map +1 -0
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +156 -0
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
  30. package/build/src/api/rest/client.js +94 -0
  31. package/build/src/api/rest/client.js.map +1 -0
  32. package/build/src/api/rest/client.types.js +6 -0
  33. package/build/src/api/rest/client.types.js.map +1 -0
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js +20 -0
  35. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
  36. package/build/src/api/rest/wrapFetchWithOffline.js +39 -0
  37. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
  38. package/build/src/api/rest/wrapFetchWithProgress.js +59 -0
  39. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
  40. package/build/src/api/settings.js +11 -0
  41. package/build/src/api/settings.js.map +1 -0
  42. package/build/src/api/signManifest.js +38 -0
  43. package/build/src/api/signManifest.js.map +1 -0
  44. package/build/src/api/updateDevelopmentSession.js +74 -0
  45. package/build/src/api/updateDevelopmentSession.js.map +1 -0
  46. package/build/src/api/user/UserSettings.js +71 -0
  47. package/build/src/api/user/UserSettings.js.map +1 -0
  48. package/build/src/api/user/actions.js +97 -0
  49. package/build/src/api/user/actions.js.map +1 -0
  50. package/build/src/api/user/otp.js +139 -0
  51. package/build/src/api/user/otp.js.map +1 -0
  52. package/build/src/api/user/user.js +114 -0
  53. package/build/src/api/user/user.js.map +1 -0
  54. package/build/src/config/configAsync.js +118 -0
  55. package/build/src/config/configAsync.js.map +1 -0
  56. package/build/src/config/index.js +85 -0
  57. package/build/src/config/index.js.map +1 -0
  58. package/build/src/install/checkPackages.js +74 -0
  59. package/build/src/install/checkPackages.js.map +1 -0
  60. package/build/src/install/index.js +76 -0
  61. package/build/src/install/index.js.map +1 -0
  62. package/build/src/install/installAsync.js +103 -0
  63. package/build/src/install/installAsync.js.map +1 -0
  64. package/build/src/install/resolveOptions.js +99 -0
  65. package/build/src/install/resolveOptions.js.map +1 -0
  66. package/build/src/install/utils/autoAddConfigPlugins.js +87 -0
  67. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
  68. package/build/src/log.js +74 -0
  69. package/build/src/log.js.map +1 -0
  70. package/build/src/login/index.js +76 -0
  71. package/build/src/login/index.js.map +1 -0
  72. package/build/src/logout/index.js +63 -0
  73. package/build/src/logout/index.js.map +1 -0
  74. package/build/src/prebuild/clearNativeFolder.js +137 -0
  75. package/build/src/prebuild/clearNativeFolder.js.map +1 -0
  76. package/build/src/prebuild/configureProjectAsync.js +68 -0
  77. package/build/src/prebuild/configureProjectAsync.js.map +1 -0
  78. package/build/src/prebuild/copyTemplateFiles.js +124 -0
  79. package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
  80. package/build/src/prebuild/ensureConfigAsync.js +86 -0
  81. package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
  82. package/build/src/prebuild/index.js +101 -0
  83. package/build/src/prebuild/index.js.map +1 -0
  84. package/build/src/prebuild/prebuildAsync.js +112 -0
  85. package/build/src/prebuild/prebuildAsync.js.map +1 -0
  86. package/build/src/prebuild/resolveOptions.js +97 -0
  87. package/build/src/prebuild/resolveOptions.js.map +1 -0
  88. package/build/src/prebuild/resolveTemplate.js +157 -0
  89. package/build/src/prebuild/resolveTemplate.js.map +1 -0
  90. package/build/src/prebuild/updateFromTemplate.js +102 -0
  91. package/build/src/prebuild/updateFromTemplate.js.map +1 -0
  92. package/build/src/prebuild/updatePackageJson.js +236 -0
  93. package/build/src/prebuild/updatePackageJson.js.map +1 -0
  94. package/build/src/prebuild/writeMetroConfig.js +89 -0
  95. package/build/src/prebuild/writeMetroConfig.js.map +1 -0
  96. package/build/src/register/index.js +63 -0
  97. package/build/src/register/index.js.map +1 -0
  98. package/build/src/register/registerAsync.js +37 -0
  99. package/build/src/register/registerAsync.js.map +1 -0
  100. package/build/src/start/doctor/Prerequisite.js +47 -0
  101. package/build/src/start/doctor/Prerequisite.js.map +1 -0
  102. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +68 -0
  103. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
  104. package/build/src/start/doctor/apple/XcodePrerequisite.js +115 -0
  105. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
  106. package/build/src/start/doctor/apple/XcrunPrerequisite.js +65 -0
  107. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
  108. package/build/src/start/doctor/dependencies/bundledNativeModules.js +64 -0
  109. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
  110. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +131 -0
  111. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
  112. package/build/src/start/doctor/dependencies/getMissingPackages.js +95 -0
  113. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
  114. package/build/src/start/doctor/dependencies/getVersionedPackages.js +119 -0
  115. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
  116. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +147 -0
  117. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
  118. package/build/src/start/doctor/ngrok/ExternalModule.js +164 -0
  119. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
  120. package/build/src/start/doctor/ngrok/NgrokResolver.js +17 -0
  121. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
  122. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +142 -0
  123. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
  124. package/build/src/start/doctor/typescript/updateTSConfig.js +92 -0
  125. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
  126. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +112 -0
  127. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
  128. package/build/src/start/index.js +126 -0
  129. package/build/src/start/index.js.map +1 -0
  130. package/build/src/start/interface/KeyPressHandler.js +99 -0
  131. package/build/src/start/interface/KeyPressHandler.js.map +1 -0
  132. package/build/src/start/interface/commandsTable.js +175 -0
  133. package/build/src/start/interface/commandsTable.js.map +1 -0
  134. package/build/src/start/interface/interactiveActions.js +134 -0
  135. package/build/src/start/interface/interactiveActions.js.map +1 -0
  136. package/build/src/start/interface/startInterface.js +217 -0
  137. package/build/src/start/interface/startInterface.js.map +1 -0
  138. package/build/src/start/platforms/AppIdResolver.js +44 -0
  139. package/build/src/start/platforms/AppIdResolver.js.map +1 -0
  140. package/build/src/start/platforms/DeviceManager.js +43 -0
  141. package/build/src/start/platforms/DeviceManager.js.map +1 -0
  142. package/build/src/start/platforms/ExpoGoInstaller.js +108 -0
  143. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
  144. package/build/src/start/platforms/PlatformManager.js +96 -0
  145. package/build/src/start/platforms/PlatformManager.js.map +1 -0
  146. package/build/src/start/platforms/android/ADBServer.js +127 -0
  147. package/build/src/start/platforms/android/ADBServer.js.map +1 -0
  148. package/build/src/start/platforms/android/AndroidAppIdResolver.js +40 -0
  149. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
  150. package/build/src/start/platforms/android/AndroidDeviceManager.js +171 -0
  151. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
  152. package/build/src/start/platforms/android/AndroidPlatformManager.js +35 -0
  153. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
  154. package/build/src/start/platforms/android/activateWindow.js +78 -0
  155. package/build/src/start/platforms/android/activateWindow.js.map +1 -0
  156. package/build/src/start/platforms/android/adb.js +230 -0
  157. package/build/src/start/platforms/android/adb.js.map +1 -0
  158. package/build/src/start/platforms/android/adbReverse.js +84 -0
  159. package/build/src/start/platforms/android/adbReverse.js.map +1 -0
  160. package/build/src/start/platforms/android/emulator.js +118 -0
  161. package/build/src/start/platforms/android/emulator.js.map +1 -0
  162. package/build/src/start/platforms/android/getDevices.js +36 -0
  163. package/build/src/start/platforms/android/getDevices.js.map +1 -0
  164. package/build/src/start/platforms/android/promptAndroidDevice.js +60 -0
  165. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
  166. package/build/src/start/platforms/ios/AppleAppIdResolver.js +46 -0
  167. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
  168. package/build/src/start/platforms/ios/AppleDeviceManager.js +201 -0
  169. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
  170. package/build/src/start/platforms/ios/ApplePlatformManager.js +31 -0
  171. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
  172. package/build/src/start/platforms/ios/assertSystemRequirements.js +16 -0
  173. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
  174. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +85 -0
  175. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
  176. package/build/src/start/platforms/ios/getBestSimulator.js +101 -0
  177. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
  178. package/build/src/start/platforms/ios/promptAppleDevice.js +60 -0
  179. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
  180. package/build/src/start/platforms/ios/simctl.js +229 -0
  181. package/build/src/start/platforms/ios/simctl.js.map +1 -0
  182. package/build/src/start/platforms/ios/xcrun.js +67 -0
  183. package/build/src/start/platforms/ios/xcrun.js.map +1 -0
  184. package/build/src/start/project/devices.js +77 -0
  185. package/build/src/start/project/devices.js.map +1 -0
  186. package/build/src/start/project/dotExpo.js +74 -0
  187. package/build/src/start/project/dotExpo.js.map +1 -0
  188. package/build/src/start/project/settings.js +13 -0
  189. package/build/src/start/project/settings.js.map +1 -0
  190. package/build/src/start/resolveOptions.js +156 -0
  191. package/build/src/start/resolveOptions.js.map +1 -0
  192. package/build/src/start/server/AsyncNgrok.js +173 -0
  193. package/build/src/start/server/AsyncNgrok.js.map +1 -0
  194. package/build/src/start/server/BundlerDevServer.js +252 -0
  195. package/build/src/start/server/BundlerDevServer.js.map +1 -0
  196. package/build/src/start/server/DevServerManager.js +142 -0
  197. package/build/src/start/server/DevServerManager.js.map +1 -0
  198. package/build/src/start/server/DevelopmentSession.js +104 -0
  199. package/build/src/start/server/DevelopmentSession.js.map +1 -0
  200. package/build/src/start/server/UrlCreator.js +158 -0
  201. package/build/src/start/server/UrlCreator.js.map +1 -0
  202. package/build/src/start/server/metro/MetroBundlerDevServer.js +100 -0
  203. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
  204. package/build/src/start/server/metro/MetroTerminalReporter.js +178 -0
  205. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
  206. package/build/src/start/server/metro/TerminalReporter.js +87 -0
  207. package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
  208. package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
  209. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
  210. package/build/src/start/server/metro/instantiateMetro.js +53 -0
  211. package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
  212. package/build/src/start/server/metro/resolveFromProject.js +38 -0
  213. package/build/src/start/server/metro/resolveFromProject.js.map +1 -0
  214. package/build/src/start/server/middleware/ClassicManifestMiddleware.js +145 -0
  215. package/build/src/start/server/middleware/ClassicManifestMiddleware.js.map +1 -0
  216. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +185 -0
  217. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
  218. package/build/src/start/server/middleware/ExpoMiddleware.js +78 -0
  219. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
  220. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +70 -0
  221. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
  222. package/build/src/start/server/middleware/ManifestMiddleware.js +177 -0
  223. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
  224. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +69 -0
  225. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
  226. package/build/src/start/server/middleware/createDevServerMiddleware.js +24 -0
  227. package/build/src/start/server/middleware/createDevServerMiddleware.js.map +1 -0
  228. package/build/src/start/server/middleware/resolveAssets.js +107 -0
  229. package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
  230. package/build/src/start/server/middleware/resolveEntryPoint.js +37 -0
  231. package/build/src/start/server/middleware/resolveEntryPoint.js.map +1 -0
  232. package/build/src/start/server/middleware/resolvePlatform.js +32 -0
  233. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
  234. package/build/src/start/server/middleware/server.types.js +6 -0
  235. package/build/src/start/server/middleware/server.types.js.map +1 -0
  236. package/build/src/start/server/openPlatforms.js +30 -0
  237. package/build/src/start/server/openPlatforms.js.map +1 -0
  238. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +303 -0
  239. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
  240. package/build/src/start/server/webpack/formatWebpackMessages.js +94 -0
  241. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
  242. package/build/src/start/server/webpack/resolveFromProject.js +43 -0
  243. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
  244. package/build/src/start/server/webpack/tls.js +72 -0
  245. package/build/src/start/server/webpack/tls.js.map +1 -0
  246. package/build/src/start/startAsync.js +150 -0
  247. package/build/src/start/startAsync.js.map +1 -0
  248. package/build/src/utils/FileNotifier.js +71 -0
  249. package/build/src/utils/FileNotifier.js.map +1 -0
  250. package/build/src/utils/analytics/getDevClientProperties.js +41 -0
  251. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -0
  252. package/build/src/utils/analytics/rudderstackClient.js +106 -0
  253. package/build/src/utils/analytics/rudderstackClient.js.map +1 -0
  254. package/build/src/utils/ansi.js +17 -0
  255. package/build/src/utils/ansi.js.map +1 -0
  256. package/build/src/utils/args.js +63 -0
  257. package/build/src/utils/args.js.map +1 -0
  258. package/build/src/utils/array.js +27 -0
  259. package/build/src/utils/array.js.map +1 -0
  260. package/build/src/utils/cocoapods.js +143 -0
  261. package/build/src/utils/cocoapods.js.map +1 -0
  262. package/build/src/utils/codesigning.js +283 -0
  263. package/build/src/utils/codesigning.js.map +1 -0
  264. package/build/src/utils/createFileTransform.js +89 -0
  265. package/build/src/utils/createFileTransform.js.map +1 -0
  266. package/build/src/utils/delay.js +39 -0
  267. package/build/src/utils/delay.js.map +1 -0
  268. package/build/src/utils/dir.js +34 -0
  269. package/build/src/utils/dir.js.map +1 -0
  270. package/build/src/utils/downloadAppAsync.js +71 -0
  271. package/build/src/utils/downloadAppAsync.js.map +1 -0
  272. package/build/src/utils/downloadExpoGoAsync.js +93 -0
  273. package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
  274. package/build/src/utils/editor.js +60 -0
  275. package/build/src/utils/editor.js.map +1 -0
  276. package/build/src/utils/env.js +59 -0
  277. package/build/src/utils/env.js.map +1 -0
  278. package/build/src/utils/errors.js +69 -0
  279. package/build/src/utils/errors.js.map +1 -0
  280. package/build/src/utils/exit.js +90 -0
  281. package/build/src/utils/exit.js.map +1 -0
  282. package/build/src/utils/findUp.js +33 -0
  283. package/build/src/utils/findUp.js.map +1 -0
  284. package/build/src/utils/fn.js +32 -0
  285. package/build/src/utils/fn.js.map +1 -0
  286. package/build/src/utils/getOrPromptApplicationId.js +183 -0
  287. package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
  288. package/build/src/utils/getRunningProcess.js +92 -0
  289. package/build/src/utils/getRunningProcess.js.map +1 -0
  290. package/build/src/utils/git.js +88 -0
  291. package/build/src/utils/git.js.map +1 -0
  292. package/build/src/utils/glob.js +65 -0
  293. package/build/src/utils/glob.js.map +1 -0
  294. package/build/src/utils/ip.js +16 -0
  295. package/build/src/utils/ip.js.map +1 -0
  296. package/build/src/utils/isModuleSymlinked.js +37 -0
  297. package/build/src/utils/isModuleSymlinked.js.map +1 -0
  298. package/build/src/utils/link.js +31 -0
  299. package/build/src/utils/link.js.map +1 -0
  300. package/build/src/utils/mergeGitIgnorePaths.js +112 -0
  301. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
  302. package/build/src/utils/modifyConfigAsync.js +68 -0
  303. package/build/src/utils/modifyConfigAsync.js.map +1 -0
  304. package/build/src/utils/modifyConfigPlugins.js +51 -0
  305. package/build/src/utils/modifyConfigPlugins.js.map +1 -0
  306. package/build/src/utils/nodeModules.js +118 -0
  307. package/build/src/utils/nodeModules.js.map +1 -0
  308. package/build/src/utils/npm.js +144 -0
  309. package/build/src/utils/npm.js.map +1 -0
  310. package/build/src/utils/obj.js +45 -0
  311. package/build/src/utils/obj.js.map +1 -0
  312. package/build/src/utils/ora.js +102 -0
  313. package/build/src/utils/ora.js.map +1 -0
  314. package/build/src/utils/port.js +130 -0
  315. package/build/src/utils/port.js.map +1 -0
  316. package/build/src/utils/profile.js +63 -0
  317. package/build/src/utils/profile.js.map +1 -0
  318. package/build/src/utils/progress.js +15 -0
  319. package/build/src/utils/progress.js.map +1 -0
  320. package/build/src/utils/prompts.js +127 -0
  321. package/build/src/utils/prompts.js.map +1 -0
  322. package/build/src/utils/scheme.js +106 -0
  323. package/build/src/utils/scheme.js.map +1 -0
  324. package/build/src/utils/tar.js +59 -0
  325. package/build/src/utils/tar.js.map +1 -0
  326. package/build/src/utils/url.js +67 -0
  327. package/build/src/utils/url.js.map +1 -0
  328. package/build/src/utils/validateApplicationId.js +90 -0
  329. package/build/src/utils/validateApplicationId.js.map +1 -0
  330. package/build/src/whoami/index.js +63 -0
  331. package/build/src/whoami/index.js.map +1 -0
  332. package/build/src/whoami/whoamiAsync.js +44 -0
  333. package/build/src/whoami/whoamiAsync.js.map +1 -0
  334. package/package.json +128 -4
  335. package/static/loading-page/index.html +270 -0
  336. 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":"AAAA;;;;QASsBA,YAAY,GAAZA,YAAY;QA0CZC,oBAAoB,GAApBA,oBAAoB;AAnDhB,IAAA,OAAc,WAAd,cAAc,CAAA;AAC5BC,IAAAA,cAAc,mCAAM,uBAAuB,EAA7B;AAEdC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AAC2B,IAAA,qBAAmD,WAAnD,mDAAmD,CAAA;AACnD,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACxB,IAAA,cAAiB,WAAjB,iBAAiB,CAAA;;;;;;;;;;;;;;;;;;;;;;AAG7C,eAAeH,YAAY,CAChCI,QAAkB,EAClBC,OAAgB,EAChBC,uBAAiC,GAAG,EAAE,EACtC;IACA,0EAA0E;IAC1E,mFAAmF;IACnF,MAAMC,WAAW,GAAGC,CAAAA,GAAAA,OAAyB,AAAe,CAAA,0BAAf,CAACC,OAAO,CAACC,GAAG,EAAE,CAAC,AAAC;IAE7D,uFAAuF;IACvF,MAAMC,cAAc,GAAGT,cAAc,CAACU,gBAAgB,CAACL,WAAW,EAAE;QAClEM,GAAG,EAAER,OAAO,CAACQ,GAAG;QAChBC,IAAI,EAAET,OAAO,CAACS,IAAI;QAClBC,GAAG,EAAEZ,GAAG,CAACY,GAAG;KACb,CAAC,AAAC;IAEH,IAAIV,OAAO,CAACW,KAAK,IAAIX,OAAO,CAACY,GAAG,EAAE;QAChC,OAAO,MAAMC,CAAAA,GAAAA,cAAkB,AAK7B,CAAA,mBAL6B,CAACX,WAAW,EAAE;YAC3CH,QAAQ;YACRC,OAAO;YACPM,cAAc;YACdL,uBAAuB;SACxB,CAAC,CAAC;KACJ;IAED,gDAAgD;IAChD,MAAM,EAAEa,GAAG,CAAA,EAAE,GAAGC,CAAAA,GAAAA,OAAS,AAIvB,CAAA,UAJuB,CAACb,WAAW,EAAE;QACrC,iFAAiF;QACjF,yEAAyE;QACzEc,WAAW,EAAE,IAAI;KAClB,CAAC,AAAC;IAEH,qDAAqD;IACrD,OAAOpB,oBAAoB,CAACM,WAAW,EAAE;QACvCI,cAAc;QACdP,QAAQ;QACRE,uBAAuB;QACvBgB,UAAU,EAAEH,GAAG,CAACG,UAAU;KAC3B,CAAC,CAAC;CACJ;AAGM,eAAerB,oBAAoB,CACxCM,WAAmB,EACnB,EACEH,QAAQ,CAAA,EACRO,cAAc,CAAA,EACdW,UAAU,CAAA,EACVhB,uBAAuB,CAAA,EAmBxB,EACc;IACf,MAAMiB,UAAU,GAAG,MAAMC,CAAAA,GAAAA,qBAAyB,AAIhD,CAAA,0BAJgD,CAACjB,WAAW,EAAE;QAC9DH,QAAQ;QACR,wFAAwF;QACxFkB,UAAU;KACX,CAAC,AAAC;IAEHnB,GAAG,CAACY,GAAG,CAAC,CAAC,WAAW,EAAEQ,UAAU,CAACE,QAAQ,CAACC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAEf,cAAc,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,MAAMhB,cAAc,CAACiB,sBAAsB,CAACL,UAAU,CAACnB,QAAQ,EAAEE,uBAAuB,CAAC,CAAC;IAE1F,MAAMuB,iBAAiB,CAACtB,WAAW,EAAEgB,UAAU,CAACnB,QAAQ,CAAC,CAAC;CAC3D;AAED;;;GAGG,CACH,eAAeyB,iBAAiB,CAACtB,WAAmB,EAAEH,QAAkB,EAAE;IACxE,MAAM,EAAE0B,yBAAyB,CAAA,EAAE,GAAG,MAAM;+CAAO,8BAA8B;MAAC,AAAC;IAEnF,IAAI;QACF,MAAM,EAAEX,GAAG,CAAA,EAAE,GAAGC,CAAAA,GAAAA,OAAS,AAAqE,CAAA,UAArE,CAACb,WAAW,EAAE;YAAEwB,yBAAyB,EAAE,IAAI;YAAEV,WAAW,EAAE,IAAI;SAAE,CAAC,AAAC;QAE/F,4FAA4F;QAC5F,MAAMS,yBAAyB,CAC7BvB,WAAW,EACXY,GAAG,EACH,4DAA4D;QAC5Df,QAAQ,CAAC4B,GAAG,CAAC,CAACC,GAAG,GAAKA,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CACzD,CAAC;KACH,CAAC,OAAOC,KAAK,EAAO;QACnB,+DAA+D;QAC/D,IAAIA,KAAK,CAACC,aAAa,EAAE;YACvBnC,GAAG,CAACoC,IAAI,CAAC,CAAC,8BAA8B,CAAC,GAAGF,KAAK,CAACG,OAAO,CAAC,CAAC;YAC3D,OAAO;SACR;QACD,4BAA4B;QAC5B,MAAMH,KAAK,CAAC;KACb;CACF"}
@@ -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"}
@@ -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