@expo/cli 0.0.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/README.md +106 -0
  2. package/build/bin/cli +152 -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 +75 -0
  57. package/build/src/config/index.js.map +1 -0
  58. package/build/src/export/createBundles.js +62 -0
  59. package/build/src/export/createBundles.js.map +1 -0
  60. package/build/src/export/createMetadataJson.js +36 -0
  61. package/build/src/export/createMetadataJson.js.map +1 -0
  62. package/build/src/export/exportApp.js +102 -0
  63. package/build/src/export/exportApp.js.map +1 -0
  64. package/build/src/export/exportAssets.js +106 -0
  65. package/build/src/export/exportAssets.js.map +1 -0
  66. package/build/src/export/exportAsync.js +49 -0
  67. package/build/src/export/exportAsync.js.map +1 -0
  68. package/build/src/export/fork-bundleAsync.js +138 -0
  69. package/build/src/export/fork-bundleAsync.js.map +1 -0
  70. package/build/src/export/getPublicExpoManifest.js +28 -0
  71. package/build/src/export/getPublicExpoManifest.js.map +1 -0
  72. package/build/src/export/getResolvedLocales.js +35 -0
  73. package/build/src/export/getResolvedLocales.js.map +1 -0
  74. package/build/src/export/index.js +77 -0
  75. package/build/src/export/index.js.map +1 -0
  76. package/build/src/export/printBundleSizes.js +122 -0
  77. package/build/src/export/printBundleSizes.js.map +1 -0
  78. package/build/src/export/resolveOptions.js +24 -0
  79. package/build/src/export/resolveOptions.js.map +1 -0
  80. package/build/src/export/saveAssets.js +65 -0
  81. package/build/src/export/saveAssets.js.map +1 -0
  82. package/build/src/export/writeContents.js +108 -0
  83. package/build/src/export/writeContents.js.map +1 -0
  84. package/build/src/install/checkPackages.js +74 -0
  85. package/build/src/install/checkPackages.js.map +1 -0
  86. package/build/src/install/index.js +49 -0
  87. package/build/src/install/index.js.map +1 -0
  88. package/build/src/install/installAsync.js +103 -0
  89. package/build/src/install/installAsync.js.map +1 -0
  90. package/build/src/install/resolveOptions.js +99 -0
  91. package/build/src/install/resolveOptions.js.map +1 -0
  92. package/build/src/install/utils/autoAddConfigPlugins.js +87 -0
  93. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
  94. package/build/src/log.js +74 -0
  95. package/build/src/log.js.map +1 -0
  96. package/build/src/login/index.js +62 -0
  97. package/build/src/login/index.js.map +1 -0
  98. package/build/src/logout/index.js +48 -0
  99. package/build/src/logout/index.js.map +1 -0
  100. package/build/src/prebuild/clearNativeFolder.js +137 -0
  101. package/build/src/prebuild/clearNativeFolder.js.map +1 -0
  102. package/build/src/prebuild/configureProjectAsync.js +68 -0
  103. package/build/src/prebuild/configureProjectAsync.js.map +1 -0
  104. package/build/src/prebuild/copyTemplateFiles.js +124 -0
  105. package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
  106. package/build/src/prebuild/ensureConfigAsync.js +86 -0
  107. package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
  108. package/build/src/prebuild/index.js +90 -0
  109. package/build/src/prebuild/index.js.map +1 -0
  110. package/build/src/prebuild/prebuildAsync.js +112 -0
  111. package/build/src/prebuild/prebuildAsync.js.map +1 -0
  112. package/build/src/prebuild/resolveOptions.js +97 -0
  113. package/build/src/prebuild/resolveOptions.js.map +1 -0
  114. package/build/src/prebuild/resolveTemplate.js +157 -0
  115. package/build/src/prebuild/resolveTemplate.js.map +1 -0
  116. package/build/src/prebuild/updateFromTemplate.js +102 -0
  117. package/build/src/prebuild/updateFromTemplate.js.map +1 -0
  118. package/build/src/prebuild/updatePackageJson.js +236 -0
  119. package/build/src/prebuild/updatePackageJson.js.map +1 -0
  120. package/build/src/prebuild/writeMetroConfig.js +89 -0
  121. package/build/src/prebuild/writeMetroConfig.js.map +1 -0
  122. package/build/src/register/index.js +48 -0
  123. package/build/src/register/index.js.map +1 -0
  124. package/build/src/register/registerAsync.js +37 -0
  125. package/build/src/register/registerAsync.js.map +1 -0
  126. package/build/src/run/android/index.js +97 -0
  127. package/build/src/run/android/index.js.map +1 -0
  128. package/build/src/run/android/resolveDevice.js +23 -0
  129. package/build/src/run/android/resolveDevice.js.map +1 -0
  130. package/build/src/run/android/resolveGradleProps.js +37 -0
  131. package/build/src/run/android/resolveGradleProps.js.map +1 -0
  132. package/build/src/run/android/resolveInstallApkName.js +72 -0
  133. package/build/src/run/android/resolveInstallApkName.js.map +1 -0
  134. package/build/src/run/android/resolveLaunchProps.js +32 -0
  135. package/build/src/run/android/resolveLaunchProps.js.map +1 -0
  136. package/build/src/run/android/resolveOptions.js +25 -0
  137. package/build/src/run/android/resolveOptions.js.map +1 -0
  138. package/build/src/run/android/runAndroidAsync.js +74 -0
  139. package/build/src/run/android/runAndroidAsync.js.map +1 -0
  140. package/build/src/run/ensureNativeProject.js +33 -0
  141. package/build/src/run/ensureNativeProject.js.map +1 -0
  142. package/build/src/run/hints.js +22 -0
  143. package/build/src/run/hints.js.map +1 -0
  144. package/build/src/run/resolveBundlerProps.js +31 -0
  145. package/build/src/run/resolveBundlerProps.js.map +1 -0
  146. package/build/src/run/startBundler.js +76 -0
  147. package/build/src/run/startBundler.js.map +1 -0
  148. package/build/src/start/doctor/Prerequisite.js +47 -0
  149. package/build/src/start/doctor/Prerequisite.js.map +1 -0
  150. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +68 -0
  151. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
  152. package/build/src/start/doctor/apple/XcodePrerequisite.js +115 -0
  153. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
  154. package/build/src/start/doctor/apple/XcrunPrerequisite.js +65 -0
  155. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
  156. package/build/src/start/doctor/dependencies/bundledNativeModules.js +64 -0
  157. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
  158. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +131 -0
  159. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
  160. package/build/src/start/doctor/dependencies/getMissingPackages.js +95 -0
  161. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
  162. package/build/src/start/doctor/dependencies/getVersionedPackages.js +119 -0
  163. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
  164. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +147 -0
  165. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
  166. package/build/src/start/doctor/ngrok/ExternalModule.js +164 -0
  167. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
  168. package/build/src/start/doctor/ngrok/NgrokResolver.js +17 -0
  169. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
  170. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +142 -0
  171. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
  172. package/build/src/start/doctor/typescript/updateTSConfig.js +92 -0
  173. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
  174. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +112 -0
  175. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
  176. package/build/src/start/index.js +116 -0
  177. package/build/src/start/index.js.map +1 -0
  178. package/build/src/start/interface/KeyPressHandler.js +99 -0
  179. package/build/src/start/interface/KeyPressHandler.js.map +1 -0
  180. package/build/src/start/interface/commandsTable.js +175 -0
  181. package/build/src/start/interface/commandsTable.js.map +1 -0
  182. package/build/src/start/interface/interactiveActions.js +134 -0
  183. package/build/src/start/interface/interactiveActions.js.map +1 -0
  184. package/build/src/start/interface/startInterface.js +217 -0
  185. package/build/src/start/interface/startInterface.js.map +1 -0
  186. package/build/src/start/platforms/AppIdResolver.js +44 -0
  187. package/build/src/start/platforms/AppIdResolver.js.map +1 -0
  188. package/build/src/start/platforms/DeviceManager.js +43 -0
  189. package/build/src/start/platforms/DeviceManager.js.map +1 -0
  190. package/build/src/start/platforms/ExpoGoInstaller.js +111 -0
  191. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
  192. package/build/src/start/platforms/PlatformManager.js +121 -0
  193. package/build/src/start/platforms/PlatformManager.js.map +1 -0
  194. package/build/src/start/platforms/android/ADBServer.js +129 -0
  195. package/build/src/start/platforms/android/ADBServer.js.map +1 -0
  196. package/build/src/start/platforms/android/AndroidAppIdResolver.js +40 -0
  197. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
  198. package/build/src/start/platforms/android/AndroidDeviceManager.js +183 -0
  199. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
  200. package/build/src/start/platforms/android/AndroidPlatformManager.js +35 -0
  201. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
  202. package/build/src/start/platforms/android/activateWindow.js +80 -0
  203. package/build/src/start/platforms/android/activateWindow.js.map +1 -0
  204. package/build/src/start/platforms/android/adb.js +263 -0
  205. package/build/src/start/platforms/android/adb.js.map +1 -0
  206. package/build/src/start/platforms/android/adbReverse.js +84 -0
  207. package/build/src/start/platforms/android/adbReverse.js.map +1 -0
  208. package/build/src/start/platforms/android/emulator.js +118 -0
  209. package/build/src/start/platforms/android/emulator.js.map +1 -0
  210. package/build/src/start/platforms/android/getDevices.js +36 -0
  211. package/build/src/start/platforms/android/getDevices.js.map +1 -0
  212. package/build/src/start/platforms/android/gradle.js +86 -0
  213. package/build/src/start/platforms/android/gradle.js.map +1 -0
  214. package/build/src/start/platforms/android/promptAndroidDevice.js +60 -0
  215. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
  216. package/build/src/start/platforms/ios/AppleAppIdResolver.js +46 -0
  217. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
  218. package/build/src/start/platforms/ios/AppleDeviceManager.js +201 -0
  219. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
  220. package/build/src/start/platforms/ios/ApplePlatformManager.js +31 -0
  221. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
  222. package/build/src/start/platforms/ios/assertSystemRequirements.js +16 -0
  223. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
  224. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +85 -0
  225. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
  226. package/build/src/start/platforms/ios/getBestSimulator.js +101 -0
  227. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
  228. package/build/src/start/platforms/ios/promptAppleDevice.js +60 -0
  229. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
  230. package/build/src/start/platforms/ios/simctl.js +229 -0
  231. package/build/src/start/platforms/ios/simctl.js.map +1 -0
  232. package/build/src/start/platforms/ios/xcrun.js +67 -0
  233. package/build/src/start/platforms/ios/xcrun.js.map +1 -0
  234. package/build/src/start/project/devices.js +77 -0
  235. package/build/src/start/project/devices.js.map +1 -0
  236. package/build/src/start/project/dotExpo.js +74 -0
  237. package/build/src/start/project/dotExpo.js.map +1 -0
  238. package/build/src/start/project/settings.js +13 -0
  239. package/build/src/start/project/settings.js.map +1 -0
  240. package/build/src/start/resolveOptions.js +156 -0
  241. package/build/src/start/resolveOptions.js.map +1 -0
  242. package/build/src/start/server/AsyncNgrok.js +173 -0
  243. package/build/src/start/server/AsyncNgrok.js.map +1 -0
  244. package/build/src/start/server/BundlerDevServer.js +312 -0
  245. package/build/src/start/server/BundlerDevServer.js.map +1 -0
  246. package/build/src/start/server/DevServerManager.js +142 -0
  247. package/build/src/start/server/DevServerManager.js.map +1 -0
  248. package/build/src/start/server/DevelopmentSession.js +104 -0
  249. package/build/src/start/server/DevelopmentSession.js.map +1 -0
  250. package/build/src/start/server/UrlCreator.js +159 -0
  251. package/build/src/start/server/UrlCreator.js.map +1 -0
  252. package/build/src/start/server/metro/MetroBundlerDevServer.js +97 -0
  253. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
  254. package/build/src/start/server/metro/MetroTerminalReporter.js +178 -0
  255. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
  256. package/build/src/start/server/metro/TerminalReporter.js +87 -0
  257. package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
  258. package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
  259. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
  260. package/build/src/start/server/metro/instantiateMetro.js +66 -0
  261. package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
  262. package/build/src/start/server/metro/resolveFromProject.js +38 -0
  263. package/build/src/start/server/metro/resolveFromProject.js.map +1 -0
  264. package/build/src/start/server/middleware/ClassicManifestMiddleware.js +145 -0
  265. package/build/src/start/server/middleware/ClassicManifestMiddleware.js.map +1 -0
  266. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +185 -0
  267. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
  268. package/build/src/start/server/middleware/ExpoMiddleware.js +78 -0
  269. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
  270. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +70 -0
  271. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
  272. package/build/src/start/server/middleware/ManifestMiddleware.js +177 -0
  273. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
  274. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +69 -0
  275. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
  276. package/build/src/start/server/middleware/createDevServerMiddleware.js +24 -0
  277. package/build/src/start/server/middleware/createDevServerMiddleware.js.map +1 -0
  278. package/build/src/start/server/middleware/resolveAssets.js +110 -0
  279. package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
  280. package/build/src/start/server/middleware/resolveEntryPoint.js +37 -0
  281. package/build/src/start/server/middleware/resolveEntryPoint.js.map +1 -0
  282. package/build/src/start/server/middleware/resolvePlatform.js +32 -0
  283. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
  284. package/build/src/start/server/middleware/server.types.js +6 -0
  285. package/build/src/start/server/middleware/server.types.js.map +1 -0
  286. package/build/src/start/server/openPlatforms.js +30 -0
  287. package/build/src/start/server/openPlatforms.js.map +1 -0
  288. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +299 -0
  289. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
  290. package/build/src/start/server/webpack/formatWebpackMessages.js +94 -0
  291. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
  292. package/build/src/start/server/webpack/resolveFromProject.js +43 -0
  293. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
  294. package/build/src/start/server/webpack/tls.js +72 -0
  295. package/build/src/start/server/webpack/tls.js.map +1 -0
  296. package/build/src/start/startAsync.js +150 -0
  297. package/build/src/start/startAsync.js.map +1 -0
  298. package/build/src/utils/FileNotifier.js +71 -0
  299. package/build/src/utils/FileNotifier.js.map +1 -0
  300. package/build/src/utils/analytics/getDevClientProperties.js +41 -0
  301. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -0
  302. package/build/src/utils/analytics/rudderstackClient.js +106 -0
  303. package/build/src/utils/analytics/rudderstackClient.js.map +1 -0
  304. package/build/src/utils/ansi.js +17 -0
  305. package/build/src/utils/ansi.js.map +1 -0
  306. package/build/src/utils/args.js +77 -0
  307. package/build/src/utils/args.js.map +1 -0
  308. package/build/src/utils/array.js +56 -0
  309. package/build/src/utils/array.js.map +1 -0
  310. package/build/src/utils/cocoapods.js +143 -0
  311. package/build/src/utils/cocoapods.js.map +1 -0
  312. package/build/src/utils/codesigning.js +283 -0
  313. package/build/src/utils/codesigning.js.map +1 -0
  314. package/build/src/utils/createFileTransform.js +89 -0
  315. package/build/src/utils/createFileTransform.js.map +1 -0
  316. package/build/src/utils/delay.js +39 -0
  317. package/build/src/utils/delay.js.map +1 -0
  318. package/build/src/utils/dir.js +38 -0
  319. package/build/src/utils/dir.js.map +1 -0
  320. package/build/src/utils/downloadAppAsync.js +74 -0
  321. package/build/src/utils/downloadAppAsync.js.map +1 -0
  322. package/build/src/utils/downloadExpoGoAsync.js +99 -0
  323. package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
  324. package/build/src/utils/editor.js +60 -0
  325. package/build/src/utils/editor.js.map +1 -0
  326. package/build/src/utils/env.js +62 -0
  327. package/build/src/utils/env.js.map +1 -0
  328. package/build/src/utils/errors.js +69 -0
  329. package/build/src/utils/errors.js.map +1 -0
  330. package/build/src/utils/exit.js +90 -0
  331. package/build/src/utils/exit.js.map +1 -0
  332. package/build/src/utils/findUp.js +33 -0
  333. package/build/src/utils/findUp.js.map +1 -0
  334. package/build/src/utils/fn.js +32 -0
  335. package/build/src/utils/fn.js.map +1 -0
  336. package/build/src/utils/getOrPromptApplicationId.js +183 -0
  337. package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
  338. package/build/src/utils/getRunningProcess.js +92 -0
  339. package/build/src/utils/getRunningProcess.js.map +1 -0
  340. package/build/src/utils/git.js +88 -0
  341. package/build/src/utils/git.js.map +1 -0
  342. package/build/src/utils/glob.js +65 -0
  343. package/build/src/utils/glob.js.map +1 -0
  344. package/build/src/utils/ip.js +16 -0
  345. package/build/src/utils/ip.js.map +1 -0
  346. package/build/src/utils/isModuleSymlinked.js +37 -0
  347. package/build/src/utils/isModuleSymlinked.js.map +1 -0
  348. package/build/src/utils/link.js +31 -0
  349. package/build/src/utils/link.js.map +1 -0
  350. package/build/src/utils/mergeGitIgnorePaths.js +112 -0
  351. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
  352. package/build/src/utils/modifyConfigAsync.js +68 -0
  353. package/build/src/utils/modifyConfigAsync.js.map +1 -0
  354. package/build/src/utils/modifyConfigPlugins.js +51 -0
  355. package/build/src/utils/modifyConfigPlugins.js.map +1 -0
  356. package/build/src/utils/nodeModules.js +118 -0
  357. package/build/src/utils/nodeModules.js.map +1 -0
  358. package/build/src/utils/npm.js +144 -0
  359. package/build/src/utils/npm.js.map +1 -0
  360. package/build/src/utils/obj.js +45 -0
  361. package/build/src/utils/obj.js.map +1 -0
  362. package/build/src/utils/ora.js +102 -0
  363. package/build/src/utils/ora.js.map +1 -0
  364. package/build/src/utils/port.js +130 -0
  365. package/build/src/utils/port.js.map +1 -0
  366. package/build/src/utils/profile.js +63 -0
  367. package/build/src/utils/profile.js.map +1 -0
  368. package/build/src/utils/progress.js +15 -0
  369. package/build/src/utils/progress.js.map +1 -0
  370. package/build/src/utils/prompts.js +127 -0
  371. package/build/src/utils/prompts.js.map +1 -0
  372. package/build/src/utils/resolveArgs.js +94 -0
  373. package/build/src/utils/resolveArgs.js.map +1 -0
  374. package/build/src/utils/scheme.js +106 -0
  375. package/build/src/utils/scheme.js.map +1 -0
  376. package/build/src/utils/tar.js +59 -0
  377. package/build/src/utils/tar.js.map +1 -0
  378. package/build/src/utils/url.js +67 -0
  379. package/build/src/utils/url.js.map +1 -0
  380. package/build/src/utils/validateApplicationId.js +90 -0
  381. package/build/src/utils/validateApplicationId.js.map +1 -0
  382. package/build/src/whoami/index.js +47 -0
  383. package/build/src/whoami/index.js.map +1 -0
  384. package/build/src/whoami/whoamiAsync.js +44 -0
  385. package/build/src/whoami/whoamiAsync.js.map +1 -0
  386. package/package.json +132 -4
  387. package/static/loading-page/index.html +270 -0
  388. package/index.js +0 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.writeMetroConfig = writeMetroConfig;
6
+ exports.copyTemplateMetroConfig = copyTemplateMetroConfig;
7
+ var _chalk = _interopRequireDefault(require("chalk"));
8
+ var _fs = _interopRequireDefault(require("fs"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ var Log = _interopRequireWildcard(require("../log"));
11
+ var _errors = require("../utils/errors");
12
+ var _link = require("../utils/link");
13
+ var _ora = require("../utils/ora");
14
+ var _updatePackageJson = require("./updatePackageJson");
15
+ function _interopRequireDefault(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ function _interopRequireWildcard(obj) {
21
+ if (obj && obj.__esModule) {
22
+ return obj;
23
+ } else {
24
+ var newObj = {};
25
+ if (obj != null) {
26
+ for(var key in obj){
27
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
28
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
29
+ if (desc.get || desc.set) {
30
+ Object.defineProperty(newObj, key, desc);
31
+ } else {
32
+ newObj[key] = obj[key];
33
+ }
34
+ }
35
+ }
36
+ }
37
+ newObj.default = obj;
38
+ return newObj;
39
+ }
40
+ }
41
+ function writeMetroConfig(projectRoot, { pkg , templateDirectory }) {
42
+ /**
43
+ * Add metro config, or warn if metro config already exists. The developer will need to add the
44
+ * hashAssetFiles plugin manually.
45
+ */ const updatingMetroConfigStep = (0, _ora).logNewSection("Adding Metro bundler config");
46
+ try {
47
+ const didChange = copyTemplateMetroConfig(projectRoot, {
48
+ pkg,
49
+ templateDirectory
50
+ });
51
+ if (!didChange) {
52
+ // Nothing to change, hide the step and exit.
53
+ updatingMetroConfigStep.stop();
54
+ updatingMetroConfigStep.clear();
55
+ return;
56
+ }
57
+ updatingMetroConfigStep.succeed("Added Metro config");
58
+ } catch (error) {
59
+ updatingMetroConfigStep.stopAndPersist({
60
+ symbol: _chalk.default.yellow("\u203A"),
61
+ text: _chalk.default.yellow(_chalk.default`{bold Metro skipped:} ${error.message}`)
62
+ });
63
+ // Log.log(`\u203A ${e.message}`);
64
+ Log.log(_chalk.default`\u203A Ensure the project uses {bold @expo/metro-config}.\n {dim ${(0, _link).learnMore("https://docs.expo.dev/guides/customizing-metro")}}`);
65
+ }
66
+ }
67
+ function copyTemplateMetroConfig(projectRoot, { pkg , templateDirectory }) {
68
+ const sourceConfigPath = _path.default.join(templateDirectory, "metro.config.js");
69
+ const targetConfigPath = _path.default.join(projectRoot, "metro.config.js");
70
+ const targetConfigPathExists = _fs.default.existsSync(targetConfigPath);
71
+ if (targetConfigPathExists) {
72
+ // Prevent re-runs from throwing an error if the metro config hasn't been modified.
73
+ const contents = (0, _updatePackageJson).createFileHash(_fs.default.readFileSync(targetConfigPath, "utf8"));
74
+ const targetContents = (0, _updatePackageJson).createFileHash(_fs.default.readFileSync(sourceConfigPath, "utf8"));
75
+ if (contents !== targetContents) {
76
+ throw new _errors.CommandError("Project metro.config.js does not match prebuild template.");
77
+ }
78
+ return false;
79
+ }
80
+ // We don't support legacy file names so just throw.
81
+ if (_fs.default.existsSync(_path.default.join(projectRoot, "metro.config.json")) || pkg.metro || _fs.default.existsSync(_path.default.join(projectRoot, "rn-cli.config.js"))) {
82
+ throw new _errors.CommandError("Project is using a legacy config system that cannot be extend automatically.");
83
+ }
84
+ // Finally, copy if nothing goes wrong.
85
+ _fs.default.copyFileSync(sourceConfigPath, targetConfigPath);
86
+ return true;
87
+ }
88
+
89
+ //# sourceMappingURL=writeMetroConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/writeMetroConfig.ts"],"sourcesContent":["import { PackageJSONConfig } from '@expo/config';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\nimport { learnMore } from '../utils/link';\nimport { logNewSection } from '../utils/ora';\nimport { createFileHash } from './updatePackageJson';\n\nexport function writeMetroConfig(\n projectRoot: string,\n {\n pkg,\n templateDirectory,\n }: {\n pkg: PackageJSONConfig;\n templateDirectory: string;\n }\n) {\n /**\n * Add metro config, or warn if metro config already exists. The developer will need to add the\n * hashAssetFiles plugin manually.\n */\n\n const updatingMetroConfigStep = logNewSection('Adding Metro bundler config');\n\n try {\n const didChange = copyTemplateMetroConfig(projectRoot, { pkg, templateDirectory });\n if (!didChange) {\n // Nothing to change, hide the step and exit.\n updatingMetroConfigStep.stop();\n updatingMetroConfigStep.clear();\n return;\n }\n updatingMetroConfigStep.succeed('Added Metro config');\n } catch (error: any) {\n updatingMetroConfigStep.stopAndPersist({\n symbol: chalk.yellow('›'),\n text: chalk.yellow(chalk`{bold Metro skipped:} ${error.message}`),\n });\n // Log.log(`\\u203A ${e.message}`);\n Log.log(\n chalk`\\u203A Ensure the project uses {bold @expo/metro-config}.\\n {dim ${learnMore(\n 'https://docs.expo.dev/guides/customizing-metro'\n )}}`\n );\n }\n}\n\n/**\n * Detects if the project's existing `metro.config.js` matches the template, and if not,\n * throws errors indicating what the user should do.\n *\n * > Exposed for testing.\n *\n * @returns Boolean indicating the `metro.config.js` changed.\n */\nexport function copyTemplateMetroConfig(\n projectRoot: string,\n {\n pkg,\n templateDirectory,\n }: {\n pkg: PackageJSONConfig;\n templateDirectory: string;\n }\n): boolean {\n const sourceConfigPath = path.join(templateDirectory, 'metro.config.js');\n const targetConfigPath = path.join(projectRoot, 'metro.config.js');\n const targetConfigPathExists = fs.existsSync(targetConfigPath);\n if (targetConfigPathExists) {\n // Prevent re-runs from throwing an error if the metro config hasn't been modified.\n const contents = createFileHash(fs.readFileSync(targetConfigPath, 'utf8'));\n const targetContents = createFileHash(fs.readFileSync(sourceConfigPath, 'utf8'));\n if (contents !== targetContents) {\n throw new CommandError('Project metro.config.js does not match prebuild template.');\n }\n return false;\n }\n\n // We don't support legacy file names so just throw.\n if (\n fs.existsSync(path.join(projectRoot, 'metro.config.json')) ||\n pkg.metro ||\n fs.existsSync(path.join(projectRoot, 'rn-cli.config.js'))\n ) {\n throw new CommandError(\n 'Project is using a legacy config system that cannot be extend automatically.'\n );\n }\n\n // Finally, copy if nothing goes wrong.\n fs.copyFileSync(sourceConfigPath, targetConfigPath);\n\n return true;\n}\n"],"names":["writeMetroConfig","copyTemplateMetroConfig","Log","projectRoot","pkg","templateDirectory","updatingMetroConfigStep","logNewSection","didChange","stop","clear","succeed","error","stopAndPersist","symbol","chalk","yellow","text","message","log","learnMore","sourceConfigPath","path","join","targetConfigPath","targetConfigPathExists","fs","existsSync","contents","createFileHash","readFileSync","targetContents","CommandError","metro","copyFileSync"],"mappings":"AAAA;;;;QAWgBA,gBAAgB,GAAhBA,gBAAgB;QAgDhBC,uBAAuB,GAAvBA,uBAAuB;AA1DrB,IAAA,MAAO,kCAAP,OAAO,EAAA;AACV,IAAA,GAAI,kCAAJ,IAAI,EAAA;AACF,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEXC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACc,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACpB,IAAA,KAAe,WAAf,eAAe,CAAA;AACX,IAAA,IAAc,WAAd,cAAc,CAAA;AACb,IAAA,kBAAqB,WAArB,qBAAqB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,SAASF,gBAAgB,CAC9BG,WAAmB,EACnB,EACEC,GAAG,CAAA,EACHC,iBAAiB,CAAA,EAIlB,EACD;IACA;;;KAGG,CAEH,MAAMC,uBAAuB,GAAGC,CAAAA,GAAAA,IAAa,AAA+B,CAAA,cAA/B,CAAC,6BAA6B,CAAC,AAAC;IAE7E,IAAI;QACF,MAAMC,SAAS,GAAGP,uBAAuB,CAACE,WAAW,EAAE;YAAEC,GAAG;YAAEC,iBAAiB;SAAE,CAAC,AAAC;QACnF,IAAI,CAACG,SAAS,EAAE;YACd,6CAA6C;YAC7CF,uBAAuB,CAACG,IAAI,EAAE,CAAC;YAC/BH,uBAAuB,CAACI,KAAK,EAAE,CAAC;YAChC,OAAO;SACR;QACDJ,uBAAuB,CAACK,OAAO,CAAC,oBAAoB,CAAC,CAAC;KACvD,CAAC,OAAOC,KAAK,EAAO;QACnBN,uBAAuB,CAACO,cAAc,CAAC;YACrCC,MAAM,EAAEC,MAAK,QAAA,CAACC,MAAM,CAAC,QAAG,CAAC;YACzBC,IAAI,EAAEF,MAAK,QAAA,CAACC,MAAM,CAACD,MAAK,QAAA,CAAC,sBAAsB,EAAEH,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC;SAClE,CAAC,CAAC;QACH,kCAAkC;QAClChB,GAAG,CAACiB,GAAG,CACLJ,MAAK,QAAA,CAAC,kEAAkE,EAAEK,CAAAA,GAAAA,KAAS,AAElF,CAAA,UAFkF,CACjF,gDAAgD,CACjD,CAAC,CAAC,CAAC,CACL,CAAC;KACH;CACF;AAUM,SAASnB,uBAAuB,CACrCE,WAAmB,EACnB,EACEC,GAAG,CAAA,EACHC,iBAAiB,CAAA,EAIlB,EACQ;IACT,MAAMgB,gBAAgB,GAAGC,KAAI,QAAA,CAACC,IAAI,CAAClB,iBAAiB,EAAE,iBAAiB,CAAC,AAAC;IACzE,MAAMmB,gBAAgB,GAAGF,KAAI,QAAA,CAACC,IAAI,CAACpB,WAAW,EAAE,iBAAiB,CAAC,AAAC;IACnE,MAAMsB,sBAAsB,GAAGC,GAAE,QAAA,CAACC,UAAU,CAACH,gBAAgB,CAAC,AAAC;IAC/D,IAAIC,sBAAsB,EAAE;QAC1B,mFAAmF;QACnF,MAAMG,QAAQ,GAAGC,CAAAA,GAAAA,kBAAc,AAA2C,CAAA,eAA3C,CAACH,GAAE,QAAA,CAACI,YAAY,CAACN,gBAAgB,EAAE,MAAM,CAAC,CAAC,AAAC;QAC3E,MAAMO,cAAc,GAAGF,CAAAA,GAAAA,kBAAc,AAA2C,CAAA,eAA3C,CAACH,GAAE,QAAA,CAACI,YAAY,CAACT,gBAAgB,EAAE,MAAM,CAAC,CAAC,AAAC;QACjF,IAAIO,QAAQ,KAAKG,cAAc,EAAE;YAC/B,MAAM,IAAIC,OAAY,aAAA,CAAC,2DAA2D,CAAC,CAAC;SACrF;QACD,OAAO,KAAK,CAAC;KACd;IAED,oDAAoD;IACpD,IACEN,GAAE,QAAA,CAACC,UAAU,CAACL,KAAI,QAAA,CAACC,IAAI,CAACpB,WAAW,EAAE,mBAAmB,CAAC,CAAC,IAC1DC,GAAG,CAAC6B,KAAK,IACTP,GAAE,QAAA,CAACC,UAAU,CAACL,KAAI,QAAA,CAACC,IAAI,CAACpB,WAAW,EAAE,kBAAkB,CAAC,CAAC,EACzD;QACA,MAAM,IAAI6B,OAAY,aAAA,CACpB,8EAA8E,CAC/E,CAAC;KACH;IAED,uCAAuC;IACvCN,GAAE,QAAA,CAACQ,YAAY,CAACb,gBAAgB,EAAEG,gBAAgB,CAAC,CAAC;IAEpD,OAAO,IAAI,CAAC;CACb"}
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.expoRegister = void 0;
7
+ var _args = require("../utils/args");
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
+ const expoRegister = async (argv)=>{
31
+ const args = (0, _args).assertArgs({
32
+ // Types
33
+ "--help": Boolean,
34
+ // Aliases
35
+ "-h": "--help"
36
+ }, argv);
37
+ if (args["--help"]) {
38
+ (0, _args).printHelp(`Sign up for a new Expo account`, `npx expo register`, // Options
39
+ `-h, --help Usage info`);
40
+ }
41
+ const { registerAsync } = await Promise.resolve().then(function() {
42
+ return _interopRequireWildcard(require("./registerAsync"));
43
+ });
44
+ return registerAsync().catch(_errors.logCmdError);
45
+ };
46
+ exports.expoRegister = expoRegister;
47
+
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/register/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from '../../bin/cli';\nimport { assertArgs, printHelp } from '../utils/args';\nimport { logCmdError } from '../utils/errors';\n\nexport const expoRegister: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n // Aliases\n '-h': '--help',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n `Sign up for a new Expo account`,\n `npx expo register`,\n // Options\n `-h, --help Usage info`\n );\n }\n\n const { registerAsync } = await import('./registerAsync');\n return registerAsync().catch(logCmdError);\n};\n"],"names":["expoRegister","argv","args","assertArgs","Boolean","printHelp","registerAsync","catch","logCmdError"],"mappings":"AAAA;;;;;;AAEsC,IAAA,KAAe,WAAf,eAAe,CAAA;AACzB,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;;;;;;;;;;;;;;;;;;;;;;AAEtC,MAAMA,YAAY,GAAY,OAAOC,IAAI,GAAK;IACnD,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,KAAU,AAQtB,CAAA,WARsB,CACrB;QACE,QAAQ;QACR,QAAQ,EAAEC,OAAO;QACjB,UAAU;QACV,IAAI,EAAE,QAAQ;KACf,EACDH,IAAI,CACL,AAAC;IAEF,IAAIC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBG,CAAAA,GAAAA,KAAS,AAKR,CAAA,UALQ,CACP,CAAC,8BAA8B,CAAC,EAChC,CAAC,iBAAiB,CAAC,EACnB,UAAU;QACV,CAAC,wBAAwB,CAAC,CAC3B,CAAC;KACH;IAED,MAAM,EAAEC,aAAa,CAAA,EAAE,GAAG,MAAM;+CAAO,iBAAiB;MAAC,AAAC;IAC1D,OAAOA,aAAa,EAAE,CAACC,KAAK,CAACC,OAAW,YAAA,CAAC,CAAC;CAC3C,AAAC;QAtBWR,YAAY,GAAZA,YAAY"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.registerAsync = registerAsync;
6
+ var _betterOpn = _interopRequireDefault(require("better-opn"));
7
+ var _env = require("../utils/env");
8
+ var _errors = require("../utils/errors");
9
+ var _link = require("../utils/link");
10
+ var _ora = require("../utils/ora");
11
+ function _interopRequireDefault(obj) {
12
+ return obj && obj.__esModule ? obj : {
13
+ default: obj
14
+ };
15
+ }
16
+ async function registerAsync() {
17
+ if (_env.env.CI) {
18
+ throw new _errors.CommandError("NON_INTERACTIVE", `Cannot register an account in CI. Use the EXPO_TOKEN environment variable to authenticate in CI (${(0, _link).learnMore("https://docs.expo.dev/accounts/programmatic-access/")})`);
19
+ }
20
+ const registrationUrl = `https://expo.dev/signup`;
21
+ const failedMessage = `Unable to open a web browser. Register an account at: ${registrationUrl}`;
22
+ const spinner = (0, _ora).ora(`Opening ${registrationUrl}`).start();
23
+ try {
24
+ const opened = await (0, _betterOpn).default(registrationUrl);
25
+ if (opened) {
26
+ spinner.succeed(`Opened ${registrationUrl}`);
27
+ } else {
28
+ spinner.fail(failedMessage);
29
+ }
30
+ return;
31
+ } catch (error) {
32
+ spinner.fail(failedMessage);
33
+ throw error;
34
+ }
35
+ }
36
+
37
+ //# sourceMappingURL=registerAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/register/registerAsync.ts"],"sourcesContent":["import openBrowserAsync from 'better-opn';\n\nimport { env } from '../utils/env';\nimport { CommandError } from '../utils/errors';\nimport { learnMore } from '../utils/link';\nimport { ora } from '../utils/ora';\n\nexport async function registerAsync() {\n if (env.CI) {\n throw new CommandError(\n 'NON_INTERACTIVE',\n `Cannot register an account in CI. Use the EXPO_TOKEN environment variable to authenticate in CI (${learnMore(\n 'https://docs.expo.dev/accounts/programmatic-access/'\n )})`\n );\n }\n\n const registrationUrl = `https://expo.dev/signup`;\n const failedMessage = `Unable to open a web browser. Register an account at: ${registrationUrl}`;\n const spinner = ora(`Opening ${registrationUrl}`).start();\n try {\n const opened = await openBrowserAsync(registrationUrl);\n\n if (opened) {\n spinner.succeed(`Opened ${registrationUrl}`);\n } else {\n spinner.fail(failedMessage);\n }\n return;\n } catch (error) {\n spinner.fail(failedMessage);\n throw error;\n }\n}\n"],"names":["registerAsync","env","CI","CommandError","learnMore","registrationUrl","failedMessage","spinner","ora","start","opened","openBrowserAsync","succeed","fail","error"],"mappings":"AAAA;;;;QAOsBA,aAAa,GAAbA,aAAa;AAPN,IAAA,UAAY,kCAAZ,YAAY,EAAA;AAErB,IAAA,IAAc,WAAd,cAAc,CAAA;AACL,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACpB,IAAA,KAAe,WAAf,eAAe,CAAA;AACrB,IAAA,IAAc,WAAd,cAAc,CAAA;;;;;;AAE3B,eAAeA,aAAa,GAAG;IACpC,IAAIC,IAAG,IAAA,CAACC,EAAE,EAAE;QACV,MAAM,IAAIC,OAAY,aAAA,CACpB,iBAAiB,EACjB,CAAC,iGAAiG,EAAEC,CAAAA,GAAAA,KAAS,AAE5G,CAAA,UAF4G,CAC3G,qDAAqD,CACtD,CAAC,CAAC,CAAC,CACL,CAAC;KACH;IAED,MAAMC,eAAe,GAAG,CAAC,uBAAuB,CAAC,AAAC;IAClD,MAAMC,aAAa,GAAG,CAAC,sDAAsD,EAAED,eAAe,CAAC,CAAC,AAAC;IACjG,MAAME,OAAO,GAAGC,CAAAA,GAAAA,IAAG,AAA8B,CAAA,IAA9B,CAAC,CAAC,QAAQ,EAAEH,eAAe,CAAC,CAAC,CAAC,CAACI,KAAK,EAAE,AAAC;IAC1D,IAAI;QACF,MAAMC,MAAM,GAAG,MAAMC,CAAAA,GAAAA,UAAgB,AAAiB,CAAA,QAAjB,CAACN,eAAe,CAAC,AAAC;QAEvD,IAAIK,MAAM,EAAE;YACVH,OAAO,CAACK,OAAO,CAAC,CAAC,OAAO,EAAEP,eAAe,CAAC,CAAC,CAAC,CAAC;SAC9C,MAAM;YACLE,OAAO,CAACM,IAAI,CAACP,aAAa,CAAC,CAAC;SAC7B;QACD,OAAO;KACR,CAAC,OAAOQ,KAAK,EAAE;QACdP,OAAO,CAACM,IAAI,CAACP,aAAa,CAAC,CAAC;QAC5B,MAAMQ,KAAK,CAAC;KACb;CACF"}
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.expoRunAndroid = void 0;
7
+ var _chalk = _interopRequireDefault(require("chalk"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var Log = _interopRequireWildcard(require("../../log"));
10
+ var _args = require("../../utils/args");
11
+ var _errors = require("../../utils/errors");
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 expoRunAndroid = async (argv)=>{
39
+ const rawArgsMap = {
40
+ // Types
41
+ "--help": Boolean,
42
+ "--no-build-cache": Boolean,
43
+ "--no-install": Boolean,
44
+ "--no-bundler": Boolean,
45
+ "--variant": String,
46
+ "--port": Number,
47
+ // Aliases
48
+ "-p": "--port",
49
+ "-h": "--help"
50
+ };
51
+ const args = (0, _args).assertWithOptionsArgs(rawArgsMap, {
52
+ argv,
53
+ permissive: true
54
+ });
55
+ // '-d' -> '--device': Boolean,
56
+ if (args["--help"]) {
57
+ Log.exit(_chalk.default`
58
+ {bold Description}
59
+ Run the native Android app locally
60
+
61
+ {bold Usage}
62
+ $ npx expo run:android <dir>
63
+
64
+ {bold Options}
65
+ --no-build-cache Clear the native build cache
66
+ --no-install Skip installing dependencies
67
+ --no-bundler Skip starting the bundler
68
+ --variant <name> Build variant. {dim Default: debug}
69
+ -d, --device [device] Device name to run the app on
70
+ -p, --port <port> Port to start the dev server on. {dim Default: 8081}
71
+ -h, --help Output usage information
72
+ `, 0);
73
+ }
74
+ const { resolveStringOrBooleanArgsAsync } = await Promise.resolve().then(function() {
75
+ return _interopRequireWildcard(require("../../utils/resolveArgs"));
76
+ });
77
+ const parsed = await resolveStringOrBooleanArgsAsync(argv != null ? argv : [], rawArgsMap, {
78
+ "--device": Boolean,
79
+ "-d": "--device"
80
+ }).catch(_errors.logCmdError);
81
+ const { runAndroidAsync } = await Promise.resolve().then(function() {
82
+ return _interopRequireWildcard(require("./runAndroidAsync"));
83
+ });
84
+ return runAndroidAsync(_path.default.resolve(parsed.projectRoot), {
85
+ // Parsed options
86
+ buildCache: !args["--no-build-cache"],
87
+ install: !args["--no-install"],
88
+ bundler: !args["--no-bundler"],
89
+ port: args["--port"],
90
+ variant: args["--variant"],
91
+ // Custom parsed args
92
+ device: parsed.args["--device"]
93
+ }).catch(_errors.logCmdError);
94
+ };
95
+ exports.expoRunAndroid = expoRunAndroid;
96
+
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport path from 'path';\n\nimport { Command } from '../../../bin/cli';\nimport * as Log from '../../log';\nimport { assertWithOptionsArgs } from '../../utils/args';\nimport { logCmdError } from '../../utils/errors';\n\nexport const expoRunAndroid: Command = async (argv) => {\n const rawArgsMap: arg.Spec = {\n // Types\n '--help': Boolean,\n '--no-build-cache': Boolean,\n '--no-install': Boolean,\n '--no-bundler': Boolean,\n '--variant': String,\n\n '--port': Number,\n // Aliases\n '-p': '--port',\n\n '-h': '--help',\n };\n const args = assertWithOptionsArgs(rawArgsMap, {\n argv,\n\n permissive: true,\n });\n\n // '-d' -> '--device': Boolean,\n\n if (args['--help']) {\n Log.exit(\n chalk`\n {bold Description}\n Run the native Android app locally\n\n {bold Usage}\n $ npx expo run:android <dir>\n\n {bold Options} \n --no-build-cache Clear the native build cache\n --no-install Skip installing dependencies\n --no-bundler Skip starting the bundler\n --variant <name> Build variant. {dim Default: debug}\n -d, --device [device] Device name to run the app on\n -p, --port <port> Port to start the dev server on. {dim Default: 8081}\n -h, --help Output usage information\n`,\n 0\n );\n }\n\n const { resolveStringOrBooleanArgsAsync } = await import('../../utils/resolveArgs');\n const parsed = await resolveStringOrBooleanArgsAsync(argv ?? [], rawArgsMap, {\n '--device': Boolean,\n '-d': '--device',\n }).catch(logCmdError);\n\n const { runAndroidAsync } = await import('./runAndroidAsync');\n\n return runAndroidAsync(path.resolve(parsed.projectRoot), {\n // Parsed options\n buildCache: !args['--no-build-cache'],\n install: !args['--no-install'],\n bundler: !args['--no-bundler'],\n port: args['--port'],\n variant: args['--variant'],\n\n // Custom parsed args\n device: parsed.args['--device'],\n }).catch(logCmdError);\n};\n"],"names":["Log","expoRunAndroid","argv","rawArgsMap","Boolean","String","Number","args","assertWithOptionsArgs","permissive","exit","chalk","resolveStringOrBooleanArgsAsync","parsed","catch","logCmdError","runAndroidAsync","path","resolve","projectRoot","buildCache","install","bundler","port","variant","device"],"mappings":"AAAA;;;;;;AAEkB,IAAA,MAAO,kCAAP,OAAO,EAAA;AACR,IAAA,KAAM,kCAAN,MAAM,EAAA;AAGXA,IAAAA,GAAG,mCAAM,WAAW,EAAjB;AACuB,IAAA,KAAkB,WAAlB,kBAAkB,CAAA;AAC5B,IAAA,OAAoB,WAApB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,MAAMC,cAAc,GAAY,OAAOC,IAAI,GAAK;IACrD,MAAMC,UAAU,GAAa;QAC3B,QAAQ;QACR,QAAQ,EAAEC,OAAO;QACjB,kBAAkB,EAAEA,OAAO;QAC3B,cAAc,EAAEA,OAAO;QACvB,cAAc,EAAEA,OAAO;QACvB,WAAW,EAAEC,MAAM;QAEnB,QAAQ,EAAEC,MAAM;QAChB,UAAU;QACV,IAAI,EAAE,QAAQ;QAEd,IAAI,EAAE,QAAQ;KACf,AAAC;IACF,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,KAAqB,AAIhC,CAAA,sBAJgC,CAACL,UAAU,EAAE;QAC7CD,IAAI;QAEJO,UAAU,EAAE,IAAI;KACjB,CAAC,AAAC;IAEH,+BAA+B;IAE/B,IAAIF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBP,GAAG,CAACU,IAAI,CACNC,MAAK,QAAA,CAAC;;;;;;;;;;;;;;;AAeZ,CAAC,EACK,CAAC,CACF,CAAC;KACH;IAED,MAAM,EAAEC,+BAA+B,CAAA,EAAE,GAAG,MAAM;+CAAO,yBAAyB;MAAC,AAAC;IACpF,MAAMC,MAAM,GAAG,MAAMD,+BAA+B,CAACV,IAAI,WAAJA,IAAI,GAAI,EAAE,EAAEC,UAAU,EAAE;QAC3E,UAAU,EAAEC,OAAO;QACnB,IAAI,EAAE,UAAU;KACjB,CAAC,CAACU,KAAK,CAACC,OAAW,YAAA,CAAC,AAAC;IAEtB,MAAM,EAAEC,eAAe,CAAA,EAAE,GAAG,MAAM;+CAAO,mBAAmB;MAAC,AAAC;IAE9D,OAAOA,eAAe,CAACC,KAAI,QAAA,CAACC,OAAO,CAACL,MAAM,CAACM,WAAW,CAAC,EAAE;QACvD,iBAAiB;QACjBC,UAAU,EAAE,CAACb,IAAI,CAAC,kBAAkB,CAAC;QACrCc,OAAO,EAAE,CAACd,IAAI,CAAC,cAAc,CAAC;QAC9Be,OAAO,EAAE,CAACf,IAAI,CAAC,cAAc,CAAC;QAC9BgB,IAAI,EAAEhB,IAAI,CAAC,QAAQ,CAAC;QACpBiB,OAAO,EAAEjB,IAAI,CAAC,WAAW,CAAC;QAE1B,qBAAqB;QACrBkB,MAAM,EAAEZ,MAAM,CAACN,IAAI,CAAC,UAAU,CAAC;KAChC,CAAC,CAACO,KAAK,CAACC,OAAW,YAAA,CAAC,CAAC;CACvB,AAAC;QAhEWd,cAAc,GAAdA,cAAc"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveDeviceAsync = resolveDeviceAsync;
6
+ var _androidDeviceManager = require("../../start/platforms/android/AndroidDeviceManager");
7
+ var _hints = require("../hints");
8
+ const debug = require("debug")("expo:android:resolveDevice");
9
+ async function resolveDeviceAsync(device) {
10
+ if (!device) {
11
+ const manager = await _androidDeviceManager.AndroidDeviceManager.resolveAsync();
12
+ debug(`Resolved default device (name: ${manager.device.name}, pid: ${manager.device.pid})`);
13
+ return manager;
14
+ }
15
+ debug(`Resolving device from argument: ${device}`);
16
+ const manager = device === true ? await _androidDeviceManager.AndroidDeviceManager.resolveAsync({
17
+ shouldPrompt: true
18
+ }) : await _androidDeviceManager.AndroidDeviceManager.resolveFromNameAsync(device);
19
+ (0, _hints).logDeviceArgument(manager.device.name);
20
+ return manager;
21
+ }
22
+
23
+ //# sourceMappingURL=resolveDevice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/resolveDevice.ts"],"sourcesContent":["import { AndroidDeviceManager } from '../../start/platforms/android/AndroidDeviceManager';\nimport { logDeviceArgument } from '../hints';\n\nconst debug = require('debug')('expo:android:resolveDevice');\n\n/** Given a `device` argument from the CLI, parse and prompt our way to a usable device for building. */\nexport async function resolveDeviceAsync(device?: string | boolean) {\n if (!device) {\n const manager = await AndroidDeviceManager.resolveAsync();\n debug(`Resolved default device (name: ${manager.device.name}, pid: ${manager.device.pid})`);\n return manager;\n }\n\n debug(`Resolving device from argument: ${device}`);\n const manager =\n device === true\n ? // `--device` (no props after)\n await AndroidDeviceManager.resolveAsync({ shouldPrompt: true })\n : // `--device <name>`\n await AndroidDeviceManager.resolveFromNameAsync(device);\n logDeviceArgument(manager.device.name);\n return manager;\n}\n"],"names":["resolveDeviceAsync","debug","require","device","manager","AndroidDeviceManager","resolveAsync","name","pid","shouldPrompt","resolveFromNameAsync","logDeviceArgument"],"mappings":"AAAA;;;;QAMsBA,kBAAkB,GAAlBA,kBAAkB;AANH,IAAA,qBAAoD,WAApD,oDAAoD,CAAA;AACvD,IAAA,MAAU,WAAV,UAAU,CAAA;AAE5C,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,4BAA4B,CAAC,AAAC;AAGtD,eAAeF,kBAAkB,CAACG,MAAyB,EAAE;IAClE,IAAI,CAACA,MAAM,EAAE;QACX,MAAMC,OAAO,GAAG,MAAMC,qBAAoB,qBAAA,CAACC,YAAY,EAAE,AAAC;QAC1DL,KAAK,CAAC,CAAC,+BAA+B,EAAEG,OAAO,CAACD,MAAM,CAACI,IAAI,CAAC,OAAO,EAAEH,OAAO,CAACD,MAAM,CAACK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAOJ,OAAO,CAAC;KAChB;IAEDH,KAAK,CAAC,CAAC,gCAAgC,EAAEE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,MAAMC,OAAO,GACXD,MAAM,KAAK,IAAI,GAEX,MAAME,qBAAoB,qBAAA,CAACC,YAAY,CAAC;QAAEG,YAAY,EAAE,IAAI;KAAE,CAAC,GAE/D,MAAMJ,qBAAoB,qBAAA,CAACK,oBAAoB,CAACP,MAAM,CAAC,AAAC;IAC9DQ,CAAAA,GAAAA,MAAiB,AAAqB,CAAA,kBAArB,CAACP,OAAO,CAACD,MAAM,CAACI,IAAI,CAAC,CAAC;IACvC,OAAOH,OAAO,CAAC;CAChB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveGradleProps = resolveGradleProps;
6
+ var _path = _interopRequireDefault(require("path"));
7
+ var _errors = require("../../utils/errors");
8
+ function _interopRequireDefault(obj) {
9
+ return obj && obj.__esModule ? obj : {
10
+ default: obj
11
+ };
12
+ }
13
+ function assertVariant(variant) {
14
+ if (variant && typeof variant !== "string") {
15
+ throw new _errors.CommandError("BAD_ARGS", "--variant must be a string");
16
+ }
17
+ return variant != null ? variant : "debug";
18
+ }
19
+ function resolveGradleProps(projectRoot, options) {
20
+ const variant = assertVariant(options.variant);
21
+ // NOTE(EvanBacon): Why would this be different? Can we get the different name?
22
+ const appName = "app";
23
+ const apkDirectory = _path.default.join(projectRoot, "android", appName, "build", "outputs", "apk");
24
+ // buildDeveloperTrust -> build, developer, trust (where developer, and trust are flavors).
25
+ // This won't work for non-standard flavor names like "myFlavor" would be treated as "my", "flavor".
26
+ const [buildType, ...flavors] = variant.split(/(?=[A-Z])/).map((v)=>v.toLowerCase()
27
+ );
28
+ const apkVariantDirectory = _path.default.join(apkDirectory, ...flavors, buildType);
29
+ return {
30
+ appName,
31
+ buildType,
32
+ flavors,
33
+ apkVariantDirectory
34
+ };
35
+ }
36
+
37
+ //# sourceMappingURL=resolveGradleProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/resolveGradleProps.ts"],"sourcesContent":["import path from 'path';\n\nimport { CommandError } from '../../utils/errors';\n\nexport type GradleProps = {\n /** Directory for the APK based on the `variant`. */\n apkVariantDirectory: string;\n /** Name of the app, used in the `apkVariantDirectory`. */\n appName: string;\n /** First section of the provided `variant`, indicates the last part of the file name for the output APK. */\n buildType: string;\n /** Used to assemble the APK, also included in the output APK filename. */\n flavors?: string[];\n};\n\nfunction assertVariant(variant?: string) {\n if (variant && typeof variant !== 'string') {\n throw new CommandError('BAD_ARGS', '--variant must be a string');\n }\n return variant ?? 'debug';\n}\n\nexport function resolveGradleProps(\n projectRoot: string,\n options: { variant?: string }\n): GradleProps {\n const variant = assertVariant(options.variant);\n // NOTE(EvanBacon): Why would this be different? Can we get the different name?\n const appName = 'app';\n\n const apkDirectory = path.join(projectRoot, 'android', appName, 'build', 'outputs', 'apk');\n\n // buildDeveloperTrust -> build, developer, trust (where developer, and trust are flavors).\n // This won't work for non-standard flavor names like \"myFlavor\" would be treated as \"my\", \"flavor\".\n const [buildType, ...flavors] = variant.split(/(?=[A-Z])/).map((v) => v.toLowerCase());\n const apkVariantDirectory = path.join(apkDirectory, ...flavors, buildType);\n\n return {\n appName,\n buildType,\n flavors,\n apkVariantDirectory,\n };\n}\n"],"names":["resolveGradleProps","assertVariant","variant","CommandError","projectRoot","options","appName","apkDirectory","path","join","buildType","flavors","split","map","v","toLowerCase","apkVariantDirectory"],"mappings":"AAAA;;;;QAsBgBA,kBAAkB,GAAlBA,kBAAkB;AAtBjB,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEM,IAAA,OAAoB,WAApB,oBAAoB,CAAA;;;;;;AAajD,SAASC,aAAa,CAACC,OAAgB,EAAE;IACvC,IAAIA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;QAC1C,MAAM,IAAIC,OAAY,aAAA,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;KAClE;IACD,OAAOD,OAAO,WAAPA,OAAO,GAAI,OAAO,CAAC;CAC3B;AAEM,SAASF,kBAAkB,CAChCI,WAAmB,EACnBC,OAA6B,EAChB;IACb,MAAMH,OAAO,GAAGD,aAAa,CAACI,OAAO,CAACH,OAAO,CAAC,AAAC;IAC/C,+EAA+E;IAC/E,MAAMI,OAAO,GAAG,KAAK,AAAC;IAEtB,MAAMC,YAAY,GAAGC,KAAI,QAAA,CAACC,IAAI,CAACL,WAAW,EAAE,SAAS,EAAEE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,AAAC;IAE3F,2FAA2F;IAC3F,oGAAoG;IACpG,MAAM,CAACI,SAAS,EAAE,GAAGC,OAAO,CAAC,GAAGT,OAAO,CAACU,KAAK,aAAa,CAACC,GAAG,CAAC,CAACC,CAAC,GAAKA,CAAC,CAACC,WAAW,EAAE;IAAA,CAAC,AAAC;IACvF,MAAMC,mBAAmB,GAAGR,KAAI,QAAA,CAACC,IAAI,CAACF,YAAY,KAAKI,OAAO,EAAED,SAAS,CAAC,AAAC;IAE3E,OAAO;QACLJ,OAAO;QACPI,SAAS;QACTC,OAAO;QACPK,mBAAmB;KACpB,CAAC;CACH"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveInstallApkNameAsync = resolveInstallApkNameAsync;
6
+ var _fs = _interopRequireDefault(require("fs"));
7
+ var _path = _interopRequireDefault(require("path"));
8
+ var Log = _interopRequireWildcard(require("../../log"));
9
+ var _adb = require("../../start/platforms/android/adb");
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
+ async function resolveInstallApkNameAsync(device, { appName , buildType , flavors , apkVariantDirectory }) {
37
+ const availableCPUs = await (0, _adb).getDeviceABIsAsync(device);
38
+ availableCPUs.push(_adb.DeviceABI.universal);
39
+ Log.debug("Supported ABIs: " + availableCPUs.join(", "));
40
+ Log.debug("Searching for APK: " + apkVariantDirectory);
41
+ // Check for cpu specific builds first
42
+ for (const availableCPU of availableCPUs){
43
+ const apkName = getApkFileName(appName, buildType, flavors, availableCPU);
44
+ const apkPath = _path.default.join(apkVariantDirectory, apkName);
45
+ Log.debug("Checking for APK at:", apkPath);
46
+ if (_fs.default.existsSync(apkPath)) {
47
+ return apkName;
48
+ }
49
+ }
50
+ // Otherwise use the default apk named after the variant: app-debug.apk
51
+ const apkName = getApkFileName(appName, buildType, flavors);
52
+ const apkPath = _path.default.join(apkVariantDirectory, apkName);
53
+ Log.debug("Checking for fallback APK at:", apkPath);
54
+ if (_fs.default.existsSync(apkPath)) {
55
+ return apkName;
56
+ }
57
+ return null;
58
+ }
59
+ function getApkFileName(appName, buildType, flavors, cpuArch) {
60
+ let apkName = `${appName}-`;
61
+ if (flavors) {
62
+ apkName += flavors.reduce((rest, flavor)=>`${rest}${flavor}-`
63
+ , "");
64
+ }
65
+ if (cpuArch) {
66
+ apkName += `${cpuArch}-`;
67
+ }
68
+ apkName += `${buildType}.apk`;
69
+ return apkName;
70
+ }
71
+
72
+ //# sourceMappingURL=resolveInstallApkName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/resolveInstallApkName.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../../log';\nimport { Device, DeviceABI, getDeviceABIsAsync } from '../../start/platforms/android/adb';\nimport { GradleProps } from './resolveGradleProps';\n\nexport async function resolveInstallApkNameAsync(\n device: Pick<Device, 'name' | 'pid'>,\n { appName, buildType, flavors, apkVariantDirectory }: GradleProps\n) {\n const availableCPUs = await getDeviceABIsAsync(device);\n availableCPUs.push(DeviceABI.universal);\n\n Log.debug('Supported ABIs: ' + availableCPUs.join(', '));\n Log.debug('Searching for APK: ' + apkVariantDirectory);\n\n // Check for cpu specific builds first\n for (const availableCPU of availableCPUs) {\n const apkName = getApkFileName(appName, buildType, flavors, availableCPU);\n const apkPath = path.join(apkVariantDirectory, apkName);\n Log.debug('Checking for APK at:', apkPath);\n if (fs.existsSync(apkPath)) {\n return apkName;\n }\n }\n\n // Otherwise use the default apk named after the variant: app-debug.apk\n const apkName = getApkFileName(appName, buildType, flavors);\n const apkPath = path.join(apkVariantDirectory, apkName);\n Log.debug('Checking for fallback APK at:', apkPath);\n if (fs.existsSync(apkPath)) {\n return apkName;\n }\n\n return null;\n}\n\nfunction getApkFileName(\n appName: string,\n buildType: string,\n flavors?: string[] | null,\n cpuArch?: string | null\n) {\n let apkName = `${appName}-`;\n if (flavors) {\n apkName += flavors.reduce((rest, flavor) => `${rest}${flavor}-`, '');\n }\n if (cpuArch) {\n apkName += `${cpuArch}-`;\n }\n apkName += `${buildType}.apk`;\n\n return apkName;\n}\n"],"names":["resolveInstallApkNameAsync","Log","device","appName","buildType","flavors","apkVariantDirectory","availableCPUs","getDeviceABIsAsync","push","DeviceABI","universal","debug","join","availableCPU","apkName","getApkFileName","apkPath","path","fs","existsSync","cpuArch","reduce","rest","flavor"],"mappings":"AAAA;;;;QAOsBA,0BAA0B,GAA1BA,0BAA0B;AAPjC,IAAA,GAAI,kCAAJ,IAAI,EAAA;AACF,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEXC,IAAAA,GAAG,mCAAM,WAAW,EAAjB;AACuC,IAAA,IAAmC,WAAnC,mCAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGlF,eAAeD,0BAA0B,CAC9CE,MAAoC,EACpC,EAAEC,OAAO,CAAA,EAAEC,SAAS,CAAA,EAAEC,OAAO,CAAA,EAAEC,mBAAmB,CAAA,EAAe,EACjE;IACA,MAAMC,aAAa,GAAG,MAAMC,CAAAA,GAAAA,IAAkB,AAAQ,CAAA,mBAAR,CAACN,MAAM,CAAC,AAAC;IACvDK,aAAa,CAACE,IAAI,CAACC,IAAS,UAAA,CAACC,SAAS,CAAC,CAAC;IAExCV,GAAG,CAACW,KAAK,CAAC,kBAAkB,GAAGL,aAAa,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzDZ,GAAG,CAACW,KAAK,CAAC,qBAAqB,GAAGN,mBAAmB,CAAC,CAAC;IAEvD,sCAAsC;IACtC,KAAK,MAAMQ,YAAY,IAAIP,aAAa,CAAE;QACxC,MAAMQ,OAAO,GAAGC,cAAc,CAACb,OAAO,EAAEC,SAAS,EAAEC,OAAO,EAAES,YAAY,CAAC,AAAC;QAC1E,MAAMG,OAAO,GAAGC,KAAI,QAAA,CAACL,IAAI,CAACP,mBAAmB,EAAES,OAAO,CAAC,AAAC;QACxDd,GAAG,CAACW,KAAK,CAAC,sBAAsB,EAAEK,OAAO,CAAC,CAAC;QAC3C,IAAIE,GAAE,QAAA,CAACC,UAAU,CAACH,OAAO,CAAC,EAAE;YAC1B,OAAOF,OAAO,CAAC;SAChB;KACF;IAED,uEAAuE;IACvE,MAAMA,OAAO,GAAGC,cAAc,CAACb,OAAO,EAAEC,SAAS,EAAEC,OAAO,CAAC,AAAC;IAC5D,MAAMY,OAAO,GAAGC,KAAI,QAAA,CAACL,IAAI,CAACP,mBAAmB,EAAES,OAAO,CAAC,AAAC;IACxDd,GAAG,CAACW,KAAK,CAAC,+BAA+B,EAAEK,OAAO,CAAC,CAAC;IACpD,IAAIE,GAAE,QAAA,CAACC,UAAU,CAACH,OAAO,CAAC,EAAE;QAC1B,OAAOF,OAAO,CAAC;KAChB;IAED,OAAO,IAAI,CAAC;CACb;AAED,SAASC,cAAc,CACrBb,OAAe,EACfC,SAAiB,EACjBC,OAAyB,EACzBgB,OAAuB,EACvB;IACA,IAAIN,OAAO,GAAG,CAAC,EAAEZ,OAAO,CAAC,CAAC,CAAC,AAAC;IAC5B,IAAIE,OAAO,EAAE;QACXU,OAAO,IAAIV,OAAO,CAACiB,MAAM,CAAC,CAACC,IAAI,EAAEC,MAAM,GAAK,CAAC,EAAED,IAAI,CAAC,EAAEC,MAAM,CAAC,CAAC,CAAC;QAAA,EAAE,EAAE,CAAC,CAAC;KACtE;IACD,IAAIH,OAAO,EAAE;QACXN,OAAO,IAAI,CAAC,EAAEM,OAAO,CAAC,CAAC,CAAC,CAAC;KAC1B;IACDN,OAAO,IAAI,CAAC,EAAEX,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9B,OAAOW,OAAO,CAAC;CAChB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveLaunchPropsAsync = resolveLaunchPropsAsync;
6
+ var _configPlugins = require("@expo/config-plugins");
7
+ var _androidAppIdResolver = require("../../start/platforms/android/AndroidAppIdResolver");
8
+ var _errors = require("../../utils/errors");
9
+ async function getMainActivityAsync(projectRoot) {
10
+ const filePath = await _configPlugins.AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);
11
+ const androidManifest = await _configPlugins.AndroidConfig.Manifest.readAndroidManifestAsync(filePath);
12
+ // Assert MainActivity defined.
13
+ const activity = await _configPlugins.AndroidConfig.Manifest.getRunnableActivity(androidManifest);
14
+ if (!activity) {
15
+ throw new _errors.CommandError("ANDROID_MALFORMED", `${filePath} is missing a runnable activity element.`);
16
+ }
17
+ // Often this is ".MainActivity"
18
+ return activity.$["android:name"];
19
+ }
20
+ async function resolveLaunchPropsAsync(projectRoot) {
21
+ // Often this is ".MainActivity"
22
+ const mainActivity = await getMainActivityAsync(projectRoot);
23
+ const packageName = await new _androidAppIdResolver.AndroidAppIdResolver(projectRoot).getAppIdFromNativeAsync();
24
+ const launchActivity = `${packageName}/${mainActivity}`;
25
+ return {
26
+ mainActivity,
27
+ launchActivity,
28
+ packageName
29
+ };
30
+ }
31
+
32
+ //# sourceMappingURL=resolveLaunchProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/resolveLaunchProps.ts"],"sourcesContent":["import { AndroidConfig } from '@expo/config-plugins';\n\nimport { AndroidAppIdResolver } from '../../start/platforms/android/AndroidAppIdResolver';\nimport { CommandError } from '../../utils/errors';\n\nexport interface LaunchProps {\n packageName: string;\n mainActivity: string;\n launchActivity: string;\n}\n\nasync function getMainActivityAsync(projectRoot: string): Promise<string> {\n const filePath = await AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(filePath);\n\n // Assert MainActivity defined.\n const activity = await AndroidConfig.Manifest.getRunnableActivity(androidManifest);\n if (!activity) {\n throw new CommandError(\n 'ANDROID_MALFORMED',\n `${filePath} is missing a runnable activity element.`\n );\n }\n // Often this is \".MainActivity\"\n return activity.$['android:name'];\n}\n\nexport async function resolveLaunchPropsAsync(projectRoot: string): Promise<LaunchProps> {\n // Often this is \".MainActivity\"\n const mainActivity = await getMainActivityAsync(projectRoot);\n\n const packageName = await new AndroidAppIdResolver(projectRoot).getAppIdFromNativeAsync();\n const launchActivity = `${packageName}/${mainActivity}`;\n\n return {\n mainActivity,\n launchActivity,\n packageName,\n };\n}\n"],"names":["resolveLaunchPropsAsync","getMainActivityAsync","projectRoot","filePath","AndroidConfig","Paths","getAndroidManifestAsync","androidManifest","Manifest","readAndroidManifestAsync","activity","getRunnableActivity","CommandError","$","mainActivity","packageName","AndroidAppIdResolver","getAppIdFromNativeAsync","launchActivity"],"mappings":"AAAA;;;;QA2BsBA,uBAAuB,GAAvBA,uBAAuB;AA3Bf,IAAA,cAAsB,WAAtB,sBAAsB,CAAA;AAEf,IAAA,qBAAoD,WAApD,oDAAoD,CAAA;AAC5D,IAAA,OAAoB,WAApB,oBAAoB,CAAA;AAQjD,eAAeC,oBAAoB,CAACC,WAAmB,EAAmB;IACxE,MAAMC,QAAQ,GAAG,MAAMC,cAAa,cAAA,CAACC,KAAK,CAACC,uBAAuB,CAACJ,WAAW,CAAC,AAAC;IAChF,MAAMK,eAAe,GAAG,MAAMH,cAAa,cAAA,CAACI,QAAQ,CAACC,wBAAwB,CAACN,QAAQ,CAAC,AAAC;IAExF,+BAA+B;IAC/B,MAAMO,QAAQ,GAAG,MAAMN,cAAa,cAAA,CAACI,QAAQ,CAACG,mBAAmB,CAACJ,eAAe,CAAC,AAAC;IACnF,IAAI,CAACG,QAAQ,EAAE;QACb,MAAM,IAAIE,OAAY,aAAA,CACpB,mBAAmB,EACnB,CAAC,EAAET,QAAQ,CAAC,wCAAwC,CAAC,CACtD,CAAC;KACH;IACD,gCAAgC;IAChC,OAAOO,QAAQ,CAACG,CAAC,CAAC,cAAc,CAAC,CAAC;CACnC;AAEM,eAAeb,uBAAuB,CAACE,WAAmB,EAAwB;IACvF,gCAAgC;IAChC,MAAMY,YAAY,GAAG,MAAMb,oBAAoB,CAACC,WAAW,CAAC,AAAC;IAE7D,MAAMa,WAAW,GAAG,MAAM,IAAIC,qBAAoB,qBAAA,CAACd,WAAW,CAAC,CAACe,uBAAuB,EAAE,AAAC;IAC1F,MAAMC,cAAc,GAAG,CAAC,EAAEH,WAAW,CAAC,CAAC,EAAED,YAAY,CAAC,CAAC,AAAC;IAExD,OAAO;QACLA,YAAY;QACZI,cAAc;QACdH,WAAW;KACZ,CAAC;CACH"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveOptionsAsync = resolveOptionsAsync;
6
+ var _resolveBundlerProps = require("../resolveBundlerProps");
7
+ var _resolveDevice = require("./resolveDevice");
8
+ var _resolveGradleProps = require("./resolveGradleProps");
9
+ var _resolveLaunchProps = require("./resolveLaunchProps");
10
+ async function resolveOptionsAsync(projectRoot, options) {
11
+ var _variant;
12
+ return {
13
+ ...await (0, _resolveBundlerProps).resolveBundlerPropsAsync(projectRoot, options),
14
+ ...(0, _resolveGradleProps).resolveGradleProps(projectRoot, options),
15
+ ...await (0, _resolveLaunchProps).resolveLaunchPropsAsync(projectRoot),
16
+ variant: (_variant = options.variant) != null ? _variant : "debug",
17
+ // Resolve the device based on the provided device id or prompt
18
+ // from a list of devices (connected or simulated) that are filtered by the scheme.
19
+ device: await (0, _resolveDevice).resolveDeviceAsync(options.device),
20
+ buildCache: !!options.buildCache,
21
+ install: !!options.install
22
+ };
23
+ }
24
+
25
+ //# sourceMappingURL=resolveOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/run/android/resolveOptions.ts"],"sourcesContent":["import { AndroidDeviceManager } from '../../start/platforms/android/AndroidDeviceManager';\nimport { BundlerProps, resolveBundlerPropsAsync } from '../resolveBundlerProps';\nimport { resolveDeviceAsync } from './resolveDevice';\nimport { GradleProps, resolveGradleProps } from './resolveGradleProps';\nimport { LaunchProps, resolveLaunchPropsAsync } from './resolveLaunchProps';\n\nexport type Options = {\n variant?: string;\n device?: boolean | string;\n port?: number;\n bundler?: boolean;\n install?: boolean;\n buildCache?: boolean;\n};\n\nexport type ResolvedOptions = GradleProps &\n BundlerProps &\n LaunchProps & {\n variant: string;\n buildCache: boolean;\n device: AndroidDeviceManager;\n install: boolean;\n };\n\nexport async function resolveOptionsAsync(\n projectRoot: string,\n options: Options\n): Promise<ResolvedOptions> {\n return {\n ...(await resolveBundlerPropsAsync(projectRoot, options)),\n ...resolveGradleProps(projectRoot, options),\n ...(await resolveLaunchPropsAsync(projectRoot)),\n variant: options.variant ?? 'debug',\n // Resolve the device based on the provided device id or prompt\n // from a list of devices (connected or simulated) that are filtered by the scheme.\n device: await resolveDeviceAsync(options.device),\n buildCache: !!options.buildCache,\n install: !!options.install,\n };\n}\n"],"names":["resolveOptionsAsync","projectRoot","options","resolveBundlerPropsAsync","resolveGradleProps","resolveLaunchPropsAsync","variant","device","resolveDeviceAsync","buildCache","install"],"mappings":"AAAA;;;;QAwBsBA,mBAAmB,GAAnBA,mBAAmB;AAvBc,IAAA,oBAAwB,WAAxB,wBAAwB,CAAA;AAC5C,IAAA,cAAiB,WAAjB,iBAAiB,CAAA;AACJ,IAAA,mBAAsB,WAAtB,sBAAsB,CAAA;AACjB,IAAA,mBAAsB,WAAtB,sBAAsB,CAAA;AAoBpE,eAAeA,mBAAmB,CACvCC,WAAmB,EACnBC,OAAgB,EACU;QAKfA,QAAe;IAJ1B,OAAO;QACL,GAAI,MAAMC,CAAAA,GAAAA,oBAAwB,AAAsB,CAAA,yBAAtB,CAACF,WAAW,EAAEC,OAAO,CAAC;QACxD,GAAGE,CAAAA,GAAAA,mBAAkB,AAAsB,CAAA,mBAAtB,CAACH,WAAW,EAAEC,OAAO,CAAC;QAC3C,GAAI,MAAMG,CAAAA,GAAAA,mBAAuB,AAAa,CAAA,wBAAb,CAACJ,WAAW,CAAC;QAC9CK,OAAO,EAAEJ,CAAAA,QAAe,GAAfA,OAAO,CAACI,OAAO,YAAfJ,QAAe,GAAI,OAAO;QACnC,+DAA+D;QAC/D,mFAAmF;QACnFK,MAAM,EAAE,MAAMC,CAAAA,GAAAA,cAAkB,AAAgB,CAAA,mBAAhB,CAACN,OAAO,CAACK,MAAM,CAAC;QAChDE,UAAU,EAAE,CAAC,CAACP,OAAO,CAACO,UAAU;QAChCC,OAAO,EAAE,CAAC,CAACR,OAAO,CAACQ,OAAO;KAC3B,CAAC;CACH"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.runAndroidAsync = runAndroidAsync;
6
+ var _path = _interopRequireDefault(require("path"));
7
+ var _log = require("../../log");
8
+ var _gradle = require("../../start/platforms/android/gradle");
9
+ var _scheme = require("../../utils/scheme");
10
+ var _ensureNativeProject = require("../ensureNativeProject");
11
+ var _hints = require("../hints");
12
+ var _startBundler = require("../startBundler");
13
+ var _resolveInstallApkName = require("./resolveInstallApkName");
14
+ var _resolveOptions = require("./resolveOptions");
15
+ function _interopRequireDefault(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ const debug = require("debug")("expo:run:android");
21
+ async function runAndroidAsync(projectRoot, { install , ...options }) {
22
+ var ref;
23
+ await (0, _ensureNativeProject).ensureNativeProjectAsync(projectRoot, {
24
+ platform: "android",
25
+ install
26
+ });
27
+ const props = await (0, _resolveOptions).resolveOptionsAsync(projectRoot, options);
28
+ debug("Package name: " + props.packageName);
29
+ _log.Log.log("\u203A Building app...");
30
+ const androidProjectRoot = _path.default.join(projectRoot, "android");
31
+ await (0, _gradle).assembleAsync(androidProjectRoot, {
32
+ variant: props.variant,
33
+ port: props.port,
34
+ appName: props.appName,
35
+ buildCache: props.buildCache
36
+ });
37
+ const manager = await (0, _startBundler).startBundlerAsync(projectRoot, {
38
+ port: props.port,
39
+ headless: !props.shouldStartBundler
40
+ });
41
+ await installAppAsync(androidProjectRoot, props);
42
+ await manager.getDefaultDevServer().openCustomRuntimeAsync("emulator", {
43
+ applicationId: props.packageName,
44
+ // If a scheme is specified then use that instead of the package name.
45
+ scheme: (ref = await (0, _scheme).getSchemesForAndroidAsync(projectRoot)) == null ? void 0 : ref[0]
46
+ }, {
47
+ device: props.device.device
48
+ });
49
+ if (props.shouldStartBundler) {
50
+ (0, _hints).logProjectLogsLocation();
51
+ }
52
+ }
53
+ async function installAppAsync(androidProjectRoot, props) {
54
+ // Find the APK file path
55
+ const apkFile = await (0, _resolveInstallApkName).resolveInstallApkNameAsync(props.device.device, props);
56
+ if (apkFile) {
57
+ // Attempt to install the APK from the file path
58
+ const binaryPath = _path.default.join(props.apkVariantDirectory, apkFile);
59
+ debug("Installing:", binaryPath);
60
+ await props.device.installAppAsync(binaryPath);
61
+ } else {
62
+ // If we cannot resolve the APK file path then we can attempt to install using Gradle.
63
+ // This offers more advanced resolution that we may not have first class support for.
64
+ _log.Log.log("\u203A Failed to locate binary file, installing with Gradle...");
65
+ var _variant, _appName;
66
+ await (0, _gradle).installAsync(androidProjectRoot, {
67
+ variant: (_variant = props.variant) != null ? _variant : "debug",
68
+ appName: (_appName = props.appName) != null ? _appName : "app",
69
+ port: props.port
70
+ });
71
+ }
72
+ }
73
+
74
+ //# sourceMappingURL=runAndroidAsync.js.map