@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,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.printQRCode = printQRCode;
6
+ exports.printUsage = printUsage;
7
+ exports.printItem = exports.getTerminalColumns = exports.printHelp = exports.BLT = void 0;
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+ var _qrcodeTerminal = _interopRequireDefault(require("qrcode-terminal"));
10
+ var _wrapAnsi = _interopRequireDefault(require("wrap-ansi"));
11
+ var Log = _interopRequireWildcard(require("../../log"));
12
+ function _interopRequireDefault(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function _interopRequireWildcard(obj) {
18
+ if (obj && obj.__esModule) {
19
+ return obj;
20
+ } else {
21
+ var newObj = {};
22
+ if (obj != null) {
23
+ for(var key in obj){
24
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
25
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
26
+ if (desc.get || desc.set) {
27
+ Object.defineProperty(newObj, key, desc);
28
+ } else {
29
+ newObj[key] = obj[key];
30
+ }
31
+ }
32
+ }
33
+ }
34
+ newObj.default = obj;
35
+ return newObj;
36
+ }
37
+ }
38
+ const BLT = "\u203A";
39
+ exports.BLT = BLT;
40
+ const printHelp = ()=>{
41
+ logCommandsTable([
42
+ {
43
+ key: "?",
44
+ msg: "show all commands"
45
+ }
46
+ ]);
47
+ };
48
+ exports.printHelp = printHelp;
49
+ function printQRCode(url) {
50
+ _qrcodeTerminal.default.generate(url, {
51
+ small: true
52
+ }, (code)=>Log.log(code)
53
+ );
54
+ }
55
+ const getTerminalColumns = ()=>process.stdout.columns || 80
56
+ ;
57
+ exports.getTerminalColumns = getTerminalColumns;
58
+ const printItem = (text)=>`${BLT} ` + (0, _wrapAnsi).default(text, getTerminalColumns()).trimStart()
59
+ ;
60
+ exports.printItem = printItem;
61
+ function printUsage(options, { verbose }) {
62
+ const isMac = process.platform === "darwin";
63
+ const { platforms =[
64
+ "ios",
65
+ "android",
66
+ "web"
67
+ ] } = options;
68
+ const isAndroidDisabled = !platforms.includes("android");
69
+ const isIosDisabled = !platforms.includes("ios");
70
+ const isWebDisable = !platforms.includes("web");
71
+ if (verbose) {
72
+ logCommandsTable([
73
+ {},
74
+ {
75
+ key: "a",
76
+ msg: "open Android",
77
+ disabled: isAndroidDisabled
78
+ },
79
+ {
80
+ key: "shift+a",
81
+ msg: "select a device or emulator",
82
+ disabled: isAndroidDisabled
83
+ },
84
+ isMac && {
85
+ key: "i",
86
+ msg: "open iOS simulator",
87
+ disabled: isIosDisabled
88
+ },
89
+ isMac && {
90
+ key: "shift+i",
91
+ msg: "select a simulator",
92
+ disabled: isIosDisabled
93
+ },
94
+ {
95
+ key: "w",
96
+ msg: "open web",
97
+ disabled: isWebDisable
98
+ },
99
+ {},
100
+ {
101
+ key: "r",
102
+ msg: "reload app"
103
+ },
104
+ !!options.isWebSocketsEnabled && {
105
+ key: "m",
106
+ msg: "toggle menu"
107
+ },
108
+ !!options.isWebSocketsEnabled && {
109
+ key: "shift+m",
110
+ msg: "more tools"
111
+ },
112
+ !!options.isWebSocketsEnabled && {
113
+ key: "j",
114
+ msg: "open JavaScript inspector for Hermes"
115
+ },
116
+ {
117
+ key: "o",
118
+ msg: "open project code in your editor"
119
+ },
120
+ {
121
+ key: "c",
122
+ msg: "show project QR"
123
+ },
124
+ {},
125
+ ]);
126
+ } else {
127
+ logCommandsTable([
128
+ {},
129
+ {
130
+ key: "a",
131
+ msg: "open Android",
132
+ disabled: isAndroidDisabled
133
+ },
134
+ isMac && {
135
+ key: "i",
136
+ msg: "open iOS simulator",
137
+ disabled: isIosDisabled
138
+ },
139
+ {
140
+ key: "w",
141
+ msg: "open web",
142
+ disabled: isWebDisable
143
+ },
144
+ {},
145
+ {
146
+ key: "r",
147
+ msg: "reload app"
148
+ },
149
+ !!options.isWebSocketsEnabled && {
150
+ key: "m",
151
+ msg: "toggle menu"
152
+ },
153
+ {},
154
+ ]);
155
+ }
156
+ }
157
+ function logCommandsTable(ui) {
158
+ Log.log(ui.filter(Boolean)// @ts-ignore: filter doesn't work
159
+ .map(({ key , msg , status , disabled })=>{
160
+ if (!key) return "";
161
+ let view = `${BLT} `;
162
+ if (key.length === 1) view += "Press ";
163
+ view += _chalk.default`{bold ${key}} {dim │} `;
164
+ view += msg;
165
+ if (status) {
166
+ view += ` ${_chalk.default.dim(`(${_chalk.default.italic(status)})`)}`;
167
+ }
168
+ if (disabled) {
169
+ view = _chalk.default.dim(view);
170
+ }
171
+ return view;
172
+ }).join("\n"));
173
+ }
174
+
175
+ //# sourceMappingURL=commandsTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/start/interface/commandsTable.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport chalk from 'chalk';\nimport qrcode from 'qrcode-terminal';\nimport wrapAnsi from 'wrap-ansi';\n\nimport * as Log from '../../log';\n\nexport const BLT = '\\u203A';\n\nexport type StartOptions = {\n isWebSocketsEnabled?: boolean;\n devClient?: boolean;\n reset?: boolean;\n nonPersistent?: boolean;\n maxWorkers?: number;\n platforms?: ExpoConfig['platforms'];\n};\n\nexport const printHelp = (): void => {\n logCommandsTable([{ key: '?', msg: 'show all commands' }]);\n};\n\n/** Print the world famous 'Expo QR Code'. */\nexport function printQRCode(url: string) {\n qrcode.generate(url, { small: true }, (code) => Log.log(code));\n}\n\nexport const getTerminalColumns = () => process.stdout.columns || 80;\nexport const printItem = (text: string): string =>\n `${BLT} ` + wrapAnsi(text, getTerminalColumns()).trimStart();\n\nexport function printUsage(\n options: Pick<StartOptions, 'devClient' | 'isWebSocketsEnabled' | 'platforms'>,\n { verbose }: { verbose: boolean }\n) {\n const isMac = process.platform === 'darwin';\n\n const { platforms = ['ios', 'android', 'web'] } = options;\n\n const isAndroidDisabled = !platforms.includes('android');\n const isIosDisabled = !platforms.includes('ios');\n const isWebDisable = !platforms.includes('web');\n\n if (verbose) {\n logCommandsTable([\n {},\n { key: 'a', msg: 'open Android', disabled: isAndroidDisabled },\n { key: 'shift+a', msg: 'select a device or emulator', disabled: isAndroidDisabled },\n isMac && { key: 'i', msg: 'open iOS simulator', disabled: isIosDisabled },\n isMac && { key: 'shift+i', msg: 'select a simulator', disabled: isIosDisabled },\n { key: 'w', msg: 'open web', disabled: isWebDisable },\n {},\n { key: 'r', msg: 'reload app' },\n !!options.isWebSocketsEnabled && { key: 'm', msg: 'toggle menu' },\n !!options.isWebSocketsEnabled && { key: 'shift+m', msg: 'more tools' },\n !!options.isWebSocketsEnabled && { key: 'j', msg: 'open JavaScript inspector for Hermes' },\n { key: 'o', msg: 'open project code in your editor' },\n { key: 'c', msg: 'show project QR' },\n {},\n ]);\n } else {\n logCommandsTable([\n {},\n { key: 'a', msg: 'open Android', disabled: isAndroidDisabled },\n isMac && { key: 'i', msg: 'open iOS simulator', disabled: isIosDisabled },\n { key: 'w', msg: 'open web', disabled: isWebDisable },\n {},\n { key: 'r', msg: 'reload app' },\n !!options.isWebSocketsEnabled && { key: 'm', msg: 'toggle menu' },\n {},\n ]);\n }\n}\n\nfunction logCommandsTable(\n ui: (false | { key?: string; msg?: string; status?: string; disabled?: boolean })[]\n) {\n Log.log(\n ui\n .filter(Boolean)\n // @ts-ignore: filter doesn't work\n .map(({ key, msg, status, disabled }) => {\n if (!key) return '';\n let view = `${BLT} `;\n if (key.length === 1) view += 'Press ';\n view += chalk`{bold ${key}} {dim │} `;\n view += msg;\n if (status) {\n view += ` ${chalk.dim(`(${chalk.italic(status)})`)}`;\n }\n if (disabled) {\n view = chalk.dim(view);\n }\n return view;\n })\n .join('\\n')\n );\n}\n"],"names":["printQRCode","printUsage","Log","BLT","printHelp","logCommandsTable","key","msg","url","qrcode","generate","small","code","log","getTerminalColumns","process","stdout","columns","printItem","text","wrapAnsi","trimStart","options","verbose","isMac","platform","platforms","isAndroidDisabled","includes","isIosDisabled","isWebDisable","disabled","isWebSocketsEnabled","ui","filter","Boolean","map","status","view","length","chalk","dim","italic","join"],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ var _devServer = require("@expo/dev-server");
6
+ var _assert = _interopRequireDefault(require("assert"));
7
+ var _chalk = _interopRequireDefault(require("chalk"));
8
+ var Log = _interopRequireWildcard(require("../../log"));
9
+ var _link = require("../../utils/link");
10
+ var _prompts = require("../../utils/prompts");
11
+ var _commandsTable = require("./commandsTable");
12
+ function _interopRequireDefault(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function _interopRequireWildcard(obj) {
18
+ if (obj && obj.__esModule) {
19
+ return obj;
20
+ } else {
21
+ var newObj = {};
22
+ if (obj != null) {
23
+ for(var key in obj){
24
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
25
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
26
+ if (desc.get || desc.set) {
27
+ Object.defineProperty(newObj, key, desc);
28
+ } else {
29
+ newObj[key] = obj[key];
30
+ }
31
+ }
32
+ }
33
+ }
34
+ newObj.default = obj;
35
+ return newObj;
36
+ }
37
+ }
38
+ class DevServerManagerActions {
39
+ constructor(devServerManager){
40
+ this.devServerManager = devServerManager;
41
+ }
42
+ printDevServerInfo(options) {
43
+ var ref;
44
+ // If native dev server is running, print its URL.
45
+ if (this.devServerManager.getNativeDevServerPort()) {
46
+ try {
47
+ const url = this.devServerManager.getDefaultDevServer().getNativeRuntimeUrl();
48
+ (0, _commandsTable).printQRCode(url);
49
+ Log.log((0, _commandsTable).printItem(_chalk.default`Metro waiting on {underline ${url}}`));
50
+ // TODO: if development build, change this message!
51
+ Log.log((0, _commandsTable).printItem("Scan the QR code above with Expo Go (Android) or the Camera app (iOS)"));
52
+ } catch (error) {
53
+ // @ts-ignore: If there is no development build scheme, then skip the QR code.
54
+ if (error.code !== "NO_DEV_CLIENT_SCHEME") {
55
+ throw error;
56
+ } else {
57
+ const serverUrl = this.devServerManager.getDefaultDevServer().getDevServerUrl();
58
+ Log.log((0, _commandsTable).printItem(_chalk.default`Metro waiting on {underline ${serverUrl}}`));
59
+ Log.log((0, _commandsTable).printItem(`Linking is disabled because the client scheme cannot be resolved.`));
60
+ }
61
+ }
62
+ }
63
+ const webUrl = (ref = this.devServerManager.getWebDevServer()) == null ? void 0 : ref.getDevServerUrl({
64
+ hostType: "localhost"
65
+ });
66
+ if (webUrl) {
67
+ Log.log();
68
+ Log.log((0, _commandsTable).printItem(_chalk.default`Webpack waiting on {underline ${webUrl}}`));
69
+ Log.log(_chalk.default.gray((0, _commandsTable).printItem("Expo Webpack (web) is in beta, and subject to breaking changes!")));
70
+ }
71
+ (0, _commandsTable).printUsage(options, {
72
+ verbose: false
73
+ });
74
+ (0, _commandsTable).printHelp();
75
+ Log.log();
76
+ }
77
+ async openJsInspectorAsync() {
78
+ Log.log("Opening JavaScript inspector in the browser...");
79
+ const port = this.devServerManager.getNativeDevServerPort();
80
+ (0, _assert).default(port, "Metro dev server is not running");
81
+ const metroServerOrigin = `http://localhost:${port}`;
82
+ const apps = await (0, _devServer).queryAllInspectorAppsAsync(metroServerOrigin);
83
+ if (!apps.length) {
84
+ Log.warn(`No compatible apps connected. This feature is only available for apps using the Hermes runtime. ${(0, _link).learnMore("https://docs.expo.dev/guides/using-hermes/")}`);
85
+ return;
86
+ }
87
+ for (const app of apps){
88
+ (0, _devServer).openJsInspector(app);
89
+ }
90
+ }
91
+ reloadApp() {
92
+ Log.log(`${_commandsTable.BLT} Reloading apps`);
93
+ // Send reload requests over the dev servers
94
+ this.devServerManager.broadcastMessage("reload");
95
+ }
96
+ async openMoreToolsAsync() {
97
+ try {
98
+ // Options match: Chrome > View > Developer
99
+ const value = await (0, _prompts).selectAsync(_chalk.default`Dev tools {dim (native only)}`, [
100
+ {
101
+ title: "Inspect elements",
102
+ value: "toggleElementInspector"
103
+ },
104
+ {
105
+ title: "Toggle performance monitor",
106
+ value: "togglePerformanceMonitor"
107
+ },
108
+ {
109
+ title: "Toggle developer menu",
110
+ value: "toggleDevMenu"
111
+ },
112
+ {
113
+ title: "Reload app",
114
+ value: "reload"
115
+ },
116
+ ]);
117
+ this.devServerManager.broadcastMessage("sendDevCommand", {
118
+ name: value
119
+ });
120
+ } catch (error) {
121
+ Log.debug(error);
122
+ // do nothing
123
+ } finally{
124
+ (0, _commandsTable).printHelp();
125
+ }
126
+ }
127
+ toggleDevMenu() {
128
+ Log.log(`${_commandsTable.BLT} Toggling dev menu`);
129
+ this.devServerManager.broadcastMessage("devMenu");
130
+ }
131
+ }
132
+ exports.DevServerManagerActions = DevServerManagerActions;
133
+
134
+ //# sourceMappingURL=interactiveActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/start/interface/interactiveActions.ts"],"sourcesContent":["import { openJsInspector, queryAllInspectorAppsAsync } from '@expo/dev-server';\nimport assert from 'assert';\nimport chalk from 'chalk';\n\nimport * as Log from '../../log';\nimport { learnMore } from '../../utils/link';\nimport { selectAsync } from '../../utils/prompts';\nimport { DevServerManager } from '../server/DevServerManager';\nimport { BLT, printHelp, printItem, printQRCode, printUsage, StartOptions } from './commandsTable';\n\n/** Wraps the DevServerManager and adds an interface for user actions. */\nexport class DevServerManagerActions {\n constructor(private devServerManager: DevServerManager) {}\n\n printDevServerInfo(\n options: Pick<StartOptions, 'devClient' | 'isWebSocketsEnabled' | 'platforms'>\n ) {\n // If native dev server is running, print its URL.\n if (this.devServerManager.getNativeDevServerPort()) {\n try {\n const url = this.devServerManager.getDefaultDevServer().getNativeRuntimeUrl()!;\n\n printQRCode(url);\n Log.log(printItem(chalk`Metro waiting on {underline ${url}}`));\n // TODO: if development build, change this message!\n Log.log(printItem('Scan the QR code above with Expo Go (Android) or the Camera app (iOS)'));\n } catch (error) {\n // @ts-ignore: If there is no development build scheme, then skip the QR code.\n if (error.code !== 'NO_DEV_CLIENT_SCHEME') {\n throw error;\n } else {\n const serverUrl = this.devServerManager.getDefaultDevServer().getDevServerUrl();\n Log.log(printItem(chalk`Metro waiting on {underline ${serverUrl}}`));\n Log.log(printItem(`Linking is disabled because the client scheme cannot be resolved.`));\n }\n }\n }\n\n const webUrl = this.devServerManager\n .getWebDevServer()\n ?.getDevServerUrl({ hostType: 'localhost' });\n if (webUrl) {\n Log.log();\n Log.log(printItem(chalk`Webpack waiting on {underline ${webUrl}}`));\n Log.log(\n chalk.gray(printItem('Expo Webpack (web) is in beta, and subject to breaking changes!'))\n );\n }\n\n printUsage(options, { verbose: false });\n printHelp();\n Log.log();\n }\n\n async openJsInspectorAsync() {\n Log.log('Opening JavaScript inspector in the browser...');\n const port = this.devServerManager.getNativeDevServerPort();\n assert(port, 'Metro dev server is not running');\n const metroServerOrigin = `http://localhost:${port}`;\n const apps = await queryAllInspectorAppsAsync(metroServerOrigin);\n if (!apps.length) {\n Log.warn(\n `No compatible apps connected. This feature is only available for apps using the Hermes runtime. ${learnMore(\n 'https://docs.expo.dev/guides/using-hermes/'\n )}`\n );\n return;\n }\n for (const app of apps) {\n openJsInspector(app);\n }\n }\n\n reloadApp() {\n Log.log(`${BLT} Reloading apps`);\n // Send reload requests over the dev servers\n this.devServerManager.broadcastMessage('reload');\n }\n\n async openMoreToolsAsync() {\n try {\n // Options match: Chrome > View > Developer\n const value = await selectAsync(chalk`Dev tools {dim (native only)}`, [\n { title: 'Inspect elements', value: 'toggleElementInspector' },\n { title: 'Toggle performance monitor', value: 'togglePerformanceMonitor' },\n { title: 'Toggle developer menu', value: 'toggleDevMenu' },\n { title: 'Reload app', value: 'reload' },\n // TODO: Maybe a \"View Source\" option to open code.\n // Toggling Remote JS Debugging is pretty rough, so leaving it disabled.\n // { title: 'Toggle Remote Debugging', value: 'toggleRemoteDebugging' },\n ]);\n this.devServerManager.broadcastMessage('sendDevCommand', { name: value });\n } catch (error: any) {\n Log.debug(error);\n // do nothing\n } finally {\n printHelp();\n }\n }\n\n toggleDevMenu() {\n Log.log(`${BLT} Toggling dev menu`);\n this.devServerManager.broadcastMessage('devMenu');\n }\n}\n"],"names":["Log","DevServerManagerActions","constructor","devServerManager","printDevServerInfo","options","getNativeDevServerPort","url","getDefaultDevServer","getNativeRuntimeUrl","printQRCode","log","printItem","chalk","error","code","serverUrl","getDevServerUrl","webUrl","getWebDevServer","hostType","gray","printUsage","verbose","printHelp","openJsInspectorAsync","port","assert","metroServerOrigin","apps","queryAllInspectorAppsAsync","length","warn","learnMore","app","openJsInspector","reloadApp","BLT","broadcastMessage","openMoreToolsAsync","value","selectAsync","title","name","debug","toggleDevMenu"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.startInterfaceAsync = startInterfaceAsync;
6
+ var _chalk = _interopRequireDefault(require("chalk"));
7
+ var Log = _interopRequireWildcard(require("../../log"));
8
+ var _editor = require("../../utils/editor");
9
+ var _errors = require("../../utils/errors");
10
+ var _ora = require("../../utils/ora");
11
+ var _progress = require("../../utils/progress");
12
+ var _prompts = require("../../utils/prompts");
13
+ var _webSupportProjectPrerequisite = require("../doctor/web/WebSupportProjectPrerequisite");
14
+ var _keyPressHandler = require("./KeyPressHandler");
15
+ var _commandsTable = require("./commandsTable");
16
+ var _interactiveActions = require("./interactiveActions");
17
+ function _interopRequireDefault(obj) {
18
+ return obj && obj.__esModule ? obj : {
19
+ default: obj
20
+ };
21
+ }
22
+ function _interopRequireWildcard(obj) {
23
+ if (obj && obj.__esModule) {
24
+ return obj;
25
+ } else {
26
+ var newObj = {};
27
+ if (obj != null) {
28
+ for(var key in obj){
29
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
30
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
31
+ if (desc.get || desc.set) {
32
+ Object.defineProperty(newObj, key, desc);
33
+ } else {
34
+ newObj[key] = obj[key];
35
+ }
36
+ }
37
+ }
38
+ }
39
+ newObj.default = obj;
40
+ return newObj;
41
+ }
42
+ }
43
+ const CTRL_C = "\x03";
44
+ const CTRL_D = "\x04";
45
+ const CTRL_L = "\f";
46
+ const PLATFORM_SETTINGS = {
47
+ android: {
48
+ name: "Android",
49
+ key: "android",
50
+ launchTarget: "emulator"
51
+ },
52
+ ios: {
53
+ name: "iOS",
54
+ key: "ios",
55
+ launchTarget: "simulator"
56
+ }
57
+ };
58
+ async function startInterfaceAsync(devServerManager, options) {
59
+ var ref2;
60
+ const actions = new _interactiveActions.DevServerManagerActions(devServerManager);
61
+ const isWebSocketsEnabled = (ref2 = devServerManager.getDefaultDevServer()) == null ? void 0 : ref2.isTargetingNative();
62
+ const usageOptions = {
63
+ isWebSocketsEnabled,
64
+ devClient: devServerManager.options.devClient,
65
+ ...options
66
+ };
67
+ actions.printDevServerInfo(usageOptions);
68
+ const onPressAsync = async (key)=>{
69
+ // Auxillary commands all escape.
70
+ switch(key){
71
+ case CTRL_C:
72
+ case CTRL_D:
73
+ {
74
+ // Prevent terminal UI from accepting commands while the process is closing.
75
+ // Without this, fast typers will close the server then start typing their
76
+ // next command and have a bunch of unrelated things pop up.
77
+ (0, _prompts).pauseInteractions();
78
+ const spinners = (0, _ora).getAllSpinners();
79
+ spinners.forEach((spinner)=>{
80
+ spinner.fail();
81
+ });
82
+ const currentProgress = (0, _progress).getProgressBar();
83
+ if (currentProgress) {
84
+ currentProgress.terminate();
85
+ (0, _progress).setProgressBar(null);
86
+ }
87
+ const spinner1 = (0, _ora).ora({
88
+ text: "Stopping server",
89
+ color: "white"
90
+ }).start();
91
+ try {
92
+ await devServerManager.stopAsync();
93
+ spinner1.stopAndPersist({
94
+ text: "Stopped server",
95
+ symbol: `\u203A`
96
+ });
97
+ // @ts-ignore: Argument of type '"SIGINT"' is not assignable to parameter of type '"disconnect"'.
98
+ process.emit("SIGINT");
99
+ // TODO: Is this the right place to do this?
100
+ process.exit();
101
+ } catch (error) {
102
+ spinner1.fail("Failed to stop server");
103
+ throw error;
104
+ }
105
+ break;
106
+ }
107
+ case CTRL_L:
108
+ return Log.clear();
109
+ case "?":
110
+ return (0, _commandsTable).printUsage(usageOptions, {
111
+ verbose: true
112
+ });
113
+ }
114
+ // Optionally enabled
115
+ if (isWebSocketsEnabled) {
116
+ switch(key){
117
+ case "m":
118
+ return actions.toggleDevMenu();
119
+ case "M":
120
+ return actions.openMoreToolsAsync();
121
+ }
122
+ }
123
+ const { platforms =[
124
+ "ios",
125
+ "android",
126
+ "web"
127
+ ] } = options;
128
+ if ([
129
+ "i",
130
+ "a"
131
+ ].includes(key.toLowerCase())) {
132
+ const platform = key.toLowerCase() === "i" ? "ios" : "android";
133
+ const shouldPrompt = [
134
+ "I",
135
+ "A"
136
+ ].includes(key);
137
+ if (shouldPrompt) {
138
+ Log.clear();
139
+ }
140
+ const server = devServerManager.getDefaultDevServer();
141
+ const settings = PLATFORM_SETTINGS[platform];
142
+ Log.log(`${_commandsTable.BLT} Opening on ${settings.name}...`);
143
+ if (server.isTargetingNative() && !platforms.includes(settings.key)) {
144
+ Log.warn(_chalk.default`${settings.name} is disabled, enable it by adding {bold ${settings.key}} to the platforms array in your app.json or app.config.js`);
145
+ } else {
146
+ try {
147
+ await server.openPlatformAsync(settings.launchTarget, {
148
+ shouldPrompt
149
+ });
150
+ (0, _commandsTable).printHelp();
151
+ } catch (error) {
152
+ if (!(error instanceof _errors.AbortCommandError)) {
153
+ Log.exception(error);
154
+ }
155
+ }
156
+ }
157
+ // Break out early.
158
+ return;
159
+ }
160
+ switch(key){
161
+ case "w":
162
+ {
163
+ try {
164
+ await devServerManager.ensureProjectPrerequisiteAsync(_webSupportProjectPrerequisite.WebSupportProjectPrerequisite);
165
+ if (!platforms.includes("web")) {
166
+ var ref;
167
+ platforms.push("web");
168
+ (ref = options.platforms) == null ? void 0 : ref.push("web");
169
+ }
170
+ } catch (e) {
171
+ Log.warn(e.message);
172
+ break;
173
+ }
174
+ const isDisabled = !platforms.includes("web");
175
+ if (isDisabled) {
176
+ Log.debug("Web is disabled");
177
+ break;
178
+ }
179
+ // Ensure the Webpack dev server is running first
180
+ if (!devServerManager.getWebDevServer()) {
181
+ Log.debug("Starting up webpack dev server");
182
+ await devServerManager.ensureWebDevServerRunningAsync();
183
+ // When this is the first time webpack is started, reprint the connection info.
184
+ actions.printDevServerInfo(usageOptions);
185
+ }
186
+ Log.log(`${_commandsTable.BLT} Open in the web browser...`);
187
+ try {
188
+ var ref1;
189
+ await ((ref1 = devServerManager.getWebDevServer()) == null ? void 0 : ref1.openPlatformAsync("desktop"));
190
+ (0, _commandsTable).printHelp();
191
+ } catch (error) {
192
+ if (!(error instanceof _errors.AbortCommandError)) {
193
+ Log.exception(error);
194
+ }
195
+ }
196
+ break;
197
+ }
198
+ case "c":
199
+ Log.clear();
200
+ return actions.printDevServerInfo(usageOptions);
201
+ case "j":
202
+ return actions.openJsInspectorAsync();
203
+ case "r":
204
+ return actions.reloadApp();
205
+ case "o":
206
+ Log.log(`${_commandsTable.BLT} Opening the editor...`);
207
+ return (0, _editor).openInEditorAsync(devServerManager.projectRoot);
208
+ }
209
+ };
210
+ const keyPressHandler = new _keyPressHandler.KeyPressHandler(onPressAsync);
211
+ const listener = keyPressHandler.createInteractionListener();
212
+ (0, _prompts).addInteractionListener(listener);
213
+ // Start observing...
214
+ keyPressHandler.startInterceptingKeyStrokes();
215
+ }
216
+
217
+ //# sourceMappingURL=startInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/start/interface/startInterface.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport * as Log from '../../log';\nimport { openInEditorAsync } from '../../utils/editor';\nimport { AbortCommandError } from '../../utils/errors';\nimport { getAllSpinners, ora } from '../../utils/ora';\nimport { getProgressBar, setProgressBar } from '../../utils/progress';\nimport { addInteractionListener, pauseInteractions } from '../../utils/prompts';\nimport { WebSupportProjectPrerequisite } from '../doctor/web/WebSupportProjectPrerequisite';\nimport { DevServerManager } from '../server/DevServerManager';\nimport { KeyPressHandler } from './KeyPressHandler';\nimport { BLT, printHelp, printUsage, StartOptions } from './commandsTable';\nimport { DevServerManagerActions } from './interactiveActions';\n\nconst CTRL_C = '\\u0003';\nconst CTRL_D = '\\u0004';\nconst CTRL_L = '\\u000C';\n\nconst PLATFORM_SETTINGS: Record<\n string,\n { name: string; key: 'android' | 'ios'; launchTarget: 'emulator' | 'simulator' }\n> = {\n android: {\n name: 'Android',\n key: 'android',\n launchTarget: 'emulator',\n },\n ios: {\n name: 'iOS',\n key: 'ios',\n launchTarget: 'simulator',\n },\n};\n\nexport async function startInterfaceAsync(\n devServerManager: DevServerManager,\n options: Pick<StartOptions, 'platforms'>\n) {\n const actions = new DevServerManagerActions(devServerManager);\n\n const isWebSocketsEnabled = devServerManager.getDefaultDevServer()?.isTargetingNative();\n\n const usageOptions = {\n isWebSocketsEnabled,\n devClient: devServerManager.options.devClient,\n ...options,\n };\n\n actions.printDevServerInfo(usageOptions);\n\n const onPressAsync = async (key: string) => {\n // Auxillary commands all escape.\n switch (key) {\n case CTRL_C:\n case CTRL_D: {\n // Prevent terminal UI from accepting commands while the process is closing.\n // Without this, fast typers will close the server then start typing their\n // next command and have a bunch of unrelated things pop up.\n pauseInteractions();\n\n const spinners = getAllSpinners();\n spinners.forEach((spinner) => {\n spinner.fail();\n });\n\n const currentProgress = getProgressBar();\n if (currentProgress) {\n currentProgress.terminate();\n setProgressBar(null);\n }\n const spinner = ora({ text: 'Stopping server', color: 'white' }).start();\n try {\n await devServerManager.stopAsync();\n spinner.stopAndPersist({ text: 'Stopped server', symbol: `\\u203A` });\n // @ts-ignore: Argument of type '\"SIGINT\"' is not assignable to parameter of type '\"disconnect\"'.\n process.emit('SIGINT');\n\n // TODO: Is this the right place to do this?\n process.exit();\n } catch (error) {\n spinner.fail('Failed to stop server');\n throw error;\n }\n break;\n }\n case CTRL_L:\n return Log.clear();\n case '?':\n return printUsage(usageOptions, { verbose: true });\n }\n\n // Optionally enabled\n\n if (isWebSocketsEnabled) {\n switch (key) {\n case 'm':\n return actions.toggleDevMenu();\n case 'M':\n return actions.openMoreToolsAsync();\n }\n }\n\n const { platforms = ['ios', 'android', 'web'] } = options;\n\n if (['i', 'a'].includes(key.toLowerCase())) {\n const platform = key.toLowerCase() === 'i' ? 'ios' : 'android';\n\n const shouldPrompt = ['I', 'A'].includes(key);\n if (shouldPrompt) {\n Log.clear();\n }\n\n const server = devServerManager.getDefaultDevServer();\n const settings = PLATFORM_SETTINGS[platform];\n\n Log.log(`${BLT} Opening on ${settings.name}...`);\n\n if (server.isTargetingNative() && !platforms.includes(settings.key)) {\n Log.warn(\n chalk`${settings.name} is disabled, enable it by adding {bold ${settings.key}} to the platforms array in your app.json or app.config.js`\n );\n } else {\n try {\n await server.openPlatformAsync(settings.launchTarget, { shouldPrompt });\n printHelp();\n } catch (error: any) {\n if (!(error instanceof AbortCommandError)) {\n Log.exception(error);\n }\n }\n }\n // Break out early.\n return;\n }\n\n switch (key) {\n case 'w': {\n try {\n await devServerManager.ensureProjectPrerequisiteAsync(WebSupportProjectPrerequisite);\n if (!platforms.includes('web')) {\n platforms.push('web');\n options.platforms?.push('web');\n }\n } catch (e: any) {\n Log.warn(e.message);\n break;\n }\n\n const isDisabled = !platforms.includes('web');\n if (isDisabled) {\n Log.debug('Web is disabled');\n // Use warnings from the web support setup.\n break;\n }\n\n // Ensure the Webpack dev server is running first\n if (!devServerManager.getWebDevServer()) {\n Log.debug('Starting up webpack dev server');\n await devServerManager.ensureWebDevServerRunningAsync();\n // When this is the first time webpack is started, reprint the connection info.\n actions.printDevServerInfo(usageOptions);\n }\n\n Log.log(`${BLT} Open in the web browser...`);\n try {\n await devServerManager.getWebDevServer()?.openPlatformAsync('desktop');\n printHelp();\n } catch (error: any) {\n if (!(error instanceof AbortCommandError)) {\n Log.exception(error);\n }\n }\n break;\n }\n case 'c':\n Log.clear();\n return actions.printDevServerInfo(usageOptions);\n case 'j':\n return actions.openJsInspectorAsync();\n case 'r':\n return actions.reloadApp();\n case 'o':\n Log.log(`${BLT} Opening the editor...`);\n return openInEditorAsync(devServerManager.projectRoot);\n }\n };\n\n const keyPressHandler = new KeyPressHandler(onPressAsync);\n\n const listener = keyPressHandler.createInteractionListener();\n\n addInteractionListener(listener);\n\n // Start observing...\n keyPressHandler.startInterceptingKeyStrokes();\n}\n"],"names":["startInterfaceAsync","Log","CTRL_C","CTRL_D","CTRL_L","PLATFORM_SETTINGS","android","name","key","launchTarget","ios","devServerManager","options","actions","DevServerManagerActions","isWebSocketsEnabled","getDefaultDevServer","isTargetingNative","usageOptions","devClient","printDevServerInfo","onPressAsync","pauseInteractions","spinners","getAllSpinners","forEach","spinner","fail","currentProgress","getProgressBar","terminate","setProgressBar","ora","text","color","start","stopAsync","stopAndPersist","symbol","process","emit","exit","error","clear","printUsage","verbose","toggleDevMenu","openMoreToolsAsync","platforms","includes","toLowerCase","platform","shouldPrompt","server","settings","log","BLT","warn","chalk","openPlatformAsync","printHelp","AbortCommandError","exception","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","push","e","message","isDisabled","debug","getWebDevServer","ensureWebDevServerRunningAsync","openJsInspectorAsync","reloadApp","openInEditorAsync","projectRoot","keyPressHandler","KeyPressHandler","listener","createInteractionListener","addInteractionListener","startInterceptingKeyStrokes"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ var _config = require("@expo/config");
6
+ var _errors = require("../../utils/errors");
7
+ var _obj = require("../../utils/obj");
8
+ class AppIdResolver {
9
+ constructor(projectRoot, platform, configProperty){
10
+ this.projectRoot = projectRoot;
11
+ this.platform = platform;
12
+ this.configProperty = configProperty;
13
+ }
14
+ /** Resolve the application ID for the project. */ async getAppIdAsync() {
15
+ if (await this.hasNativeProjectAsync()) {
16
+ return this.getAppIdFromNativeAsync();
17
+ }
18
+ return this.getAppIdFromConfigAsync();
19
+ }
20
+ /** Returns `true` if the project has native project code. */ async hasNativeProjectAsync() {
21
+ throw new _errors.UnimplementedError();
22
+ }
23
+ /** Return the app ID from the Expo config or assert. */ async getAppIdFromConfigAsync() {
24
+ const config = (0, _config).getConfig(this.projectRoot);
25
+ const appId = (0, _obj).get(config.exp, this.configProperty);
26
+ if (!appId) {
27
+ throw new _errors.CommandError("NO_APP_ID", `Required property '${this.configProperty}' is not found in the project ${(0, _config).getProjectConfigDescriptionWithPaths(this.projectRoot, config)}. This is required to open the app.`);
28
+ }
29
+ return appId;
30
+ }
31
+ /** Return the app ID from the native project files or null if the app ID cannot be found. */ async resolveAppIdFromNativeAsync() {
32
+ throw new _errors.UnimplementedError();
33
+ }
34
+ /** Return the app ID from the native project files or assert. */ async getAppIdFromNativeAsync() {
35
+ const appId = await this.resolveAppIdFromNativeAsync();
36
+ if (!appId) {
37
+ throw new _errors.CommandError("NO_APP_ID", `Failed to locate the ${this.platform} application identifier in the "${this.platform}/" folder. This is required to open the app.`);
38
+ }
39
+ return appId;
40
+ }
41
+ }
42
+ exports.AppIdResolver = AppIdResolver;
43
+
44
+ //# sourceMappingURL=AppIdResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/start/platforms/AppIdResolver.ts"],"sourcesContent":["import { getConfig, getProjectConfigDescriptionWithPaths } from '@expo/config';\n\nimport { CommandError, UnimplementedError } from '../../utils/errors';\nimport { get } from '../../utils/obj';\n\n/** Resolves a native app identifier (bundle identifier, package name) from the project files. */\nexport class AppIdResolver {\n constructor(\n protected projectRoot: string,\n /** Platform to use. */\n protected platform: string,\n /** Nested key in the Expo config like `android.package` or `ios.bundleIdentifier`. */\n protected configProperty: string\n ) {}\n\n /** Resolve the application ID for the project. */\n async getAppIdAsync(): Promise<string> {\n if (await this.hasNativeProjectAsync()) {\n return this.getAppIdFromNativeAsync();\n }\n return this.getAppIdFromConfigAsync();\n }\n\n /** Returns `true` if the project has native project code. */\n async hasNativeProjectAsync(): Promise<boolean> {\n throw new UnimplementedError();\n }\n\n /** Return the app ID from the Expo config or assert. */\n async getAppIdFromConfigAsync(): Promise<string> {\n const config = getConfig(this.projectRoot);\n\n const appId = get(config.exp, this.configProperty);\n if (!appId) {\n throw new CommandError(\n 'NO_APP_ID',\n `Required property '${\n this.configProperty\n }' is not found in the project ${getProjectConfigDescriptionWithPaths(\n this.projectRoot,\n config\n )}. This is required to open the app.`\n );\n }\n return appId;\n }\n\n /** Return the app ID from the native project files or null if the app ID cannot be found. */\n async resolveAppIdFromNativeAsync(): Promise<string | null> {\n throw new UnimplementedError();\n }\n\n /** Return the app ID from the native project files or assert. */\n async getAppIdFromNativeAsync(): Promise<string> {\n const appId = await this.resolveAppIdFromNativeAsync();\n if (!appId) {\n throw new CommandError(\n 'NO_APP_ID',\n `Failed to locate the ${this.platform} application identifier in the \"${this.platform}/\" folder. This is required to open the app.`\n );\n }\n return appId;\n }\n}\n"],"names":["AppIdResolver","constructor","projectRoot","platform","configProperty","getAppIdAsync","hasNativeProjectAsync","getAppIdFromNativeAsync","getAppIdFromConfigAsync","UnimplementedError","config","getConfig","appId","get","exp","CommandError","getProjectConfigDescriptionWithPaths","resolveAppIdFromNativeAsync"],"mappings":"AAAA;;;;AAAgE,IAAA,OAAc,WAAd,cAAc,CAAA;AAE7B,IAAA,OAAoB,WAApB,oBAAoB,CAAA;AACjD,IAAA,IAAiB,WAAjB,iBAAiB,CAAA;AAG9B,MAAMA,aAAa;IACxBC,YACYC,WAAmB,EAEnBC,QAAgB,EAEhBC,cAAsB,CAChC;aALUF,WAAmB,GAAnBA,WAAmB;aAEnBC,QAAgB,GAAhBA,QAAgB;aAEhBC,cAAsB,GAAtBA,cAAsB;KAC9B;IAEJ,kDAAkD,CAClD,MAAMC,aAAa,GAAoB;QACrC,IAAI,MAAM,IAAI,CAACC,qBAAqB,EAAE,EAAE;YACtC,OAAO,IAAI,CAACC,uBAAuB,EAAE,CAAC;SACvC;QACD,OAAO,IAAI,CAACC,uBAAuB,EAAE,CAAC;KACvC;IAED,6DAA6D,CAC7D,MAAMF,qBAAqB,GAAqB;QAC9C,MAAM,IAAIG,OAAkB,mBAAA,EAAE,CAAC;KAChC;IAED,wDAAwD,CACxD,MAAMD,uBAAuB,GAAoB;QAC/C,MAAME,MAAM,GAAGC,CAAAA,GAAAA,OAAS,AAAkB,CAAA,UAAlB,CAAC,IAAI,CAACT,WAAW,CAAC,AAAC;QAE3C,MAAMU,KAAK,GAAGC,CAAAA,GAAAA,IAAG,AAAiC,CAAA,IAAjC,CAACH,MAAM,CAACI,GAAG,EAAE,IAAI,CAACV,cAAc,CAAC,AAAC;QACnD,IAAI,CAACQ,KAAK,EAAE;YACV,MAAM,IAAIG,OAAY,aAAA,CACpB,WAAW,EACX,CAAC,mBAAmB,EAClB,IAAI,CAACX,cAAc,CACpB,8BAA8B,EAAEY,CAAAA,GAAAA,OAAoC,AAGpE,CAAA,qCAHoE,CACnE,IAAI,CAACd,WAAW,EAChBQ,MAAM,CACP,CAAC,mCAAmC,CAAC,CACvC,CAAC;SACH;QACD,OAAOE,KAAK,CAAC;KACd;IAED,6FAA6F,CAC7F,MAAMK,2BAA2B,GAA2B;QAC1D,MAAM,IAAIR,OAAkB,mBAAA,EAAE,CAAC;KAChC;IAED,iEAAiE,CACjE,MAAMF,uBAAuB,GAAoB;QAC/C,MAAMK,KAAK,GAAG,MAAM,IAAI,CAACK,2BAA2B,EAAE,AAAC;QACvD,IAAI,CAACL,KAAK,EAAE;YACV,MAAM,IAAIG,OAAY,aAAA,CACpB,WAAW,EACX,CAAC,qBAAqB,EAAE,IAAI,CAACZ,QAAQ,CAAC,gCAAgC,EAAE,IAAI,CAACA,QAAQ,CAAC,4CAA4C,CAAC,CACpI,CAAC;SACH;QACD,OAAOS,KAAK,CAAC;KACd;CACF;QAzDYZ,aAAa,GAAbA,aAAa"}