@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 @@
1
+ {"version":3,"sources":["../../../src/prebuild/configureProjectAsync.ts"],"sourcesContent":["import { ExpoConfig, getAccountUsername } from '@expo/config';\nimport { compileModsAsync, ModPlatform } from '@expo/config-plugins';\nimport { getPrebuildConfigAsync } from '@expo/prebuild-config';\n\nimport { logConfig } from '../config/configAsync';\nimport * as Log from '../log';\nimport { env } from '../utils/env';\nimport {\n getOrPromptForBundleIdentifier,\n getOrPromptForPackage,\n} from '../utils/getOrPromptApplicationId';\n\nexport async function configureProjectAsync(\n projectRoot: string,\n {\n platforms,\n }: {\n platforms: ModPlatform[];\n }\n): Promise<ExpoConfig> {\n let bundleIdentifier: string | undefined;\n if (platforms.includes('ios')) {\n // Check bundle ID before reading the config because it may mutate the config if the user is prompted to define it.\n bundleIdentifier = await getOrPromptForBundleIdentifier(projectRoot);\n }\n let packageName: string | undefined;\n if (platforms.includes('android')) {\n // Check package before reading the config because it may mutate the config if the user is prompted to define it.\n packageName = await getOrPromptForPackage(projectRoot);\n }\n\n let { exp: config } = await getPrebuildConfigAsync(projectRoot, {\n platforms,\n packageName,\n bundleIdentifier,\n expoUsername(config) {\n return getAccountUsername(config);\n },\n });\n\n // compile all plugins and mods\n config = await compileModsAsync(config, {\n projectRoot,\n platforms,\n assertMissingModProviders: false,\n });\n\n if (env.EXPO_DEBUG) {\n Log.log();\n Log.log('Evaluated config:');\n logConfig(config);\n Log.log();\n }\n\n return config;\n}\n"],"names":["configureProjectAsync","Log","projectRoot","platforms","bundleIdentifier","includes","getOrPromptForBundleIdentifier","packageName","getOrPromptForPackage","exp","config","getPrebuildConfigAsync","expoUsername","getAccountUsername","compileModsAsync","assertMissingModProviders","env","EXPO_DEBUG","log","logConfig"],"mappings":"AAAA;;;;QAYsBA,qBAAqB,GAArBA,qBAAqB;AAZI,IAAA,OAAc,WAAd,cAAc,CAAA;AACf,IAAA,cAAsB,WAAtB,sBAAsB,CAAA;AAC7B,IAAA,eAAuB,WAAvB,uBAAuB,CAAA;AAEpC,IAAA,YAAuB,WAAvB,uBAAuB,CAAA;AACrCC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACK,IAAA,IAAc,WAAd,cAAc,CAAA;AAI3B,IAAA,yBAAmC,WAAnC,mCAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;AAEnC,eAAeD,qBAAqB,CACzCE,WAAmB,EACnB,EACEC,SAAS,CAAA,EAGV,EACoB;IACrB,IAAIC,gBAAgB,AAAoB,AAAC;IACzC,IAAID,SAAS,CAACE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7B,mHAAmH;QACnHD,gBAAgB,GAAG,MAAME,CAAAA,GAAAA,yBAA8B,AAAa,CAAA,+BAAb,CAACJ,WAAW,CAAC,CAAC;KACtE;IACD,IAAIK,WAAW,AAAoB,AAAC;IACpC,IAAIJ,SAAS,CAACE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACjC,iHAAiH;QACjHE,WAAW,GAAG,MAAMC,CAAAA,GAAAA,yBAAqB,AAAa,CAAA,sBAAb,CAACN,WAAW,CAAC,CAAC;KACxD;IAED,IAAI,EAAEO,GAAG,EAAEC,OAAM,CAAA,EAAE,GAAG,MAAMC,CAAAA,GAAAA,eAAsB,AAOhD,CAAA,uBAPgD,CAACT,WAAW,EAAE;QAC9DC,SAAS;QACTI,WAAW;QACXH,gBAAgB;QAChBQ,YAAY,EAACF,MAAM,EAAE;YACnB,OAAOG,CAAAA,GAAAA,OAAkB,AAAQ,CAAA,mBAAR,CAACH,MAAM,CAAC,CAAC;SACnC;KACF,CAAC,AAAC;IAEH,+BAA+B;IAC/BA,OAAM,GAAG,MAAMI,CAAAA,GAAAA,cAAgB,AAI7B,CAAA,iBAJ6B,CAACJ,OAAM,EAAE;QACtCR,WAAW;QACXC,SAAS;QACTY,yBAAyB,EAAE,KAAK;KACjC,CAAC,CAAC;IAEH,IAAIC,IAAG,IAAA,CAACC,UAAU,EAAE;QAClBhB,GAAG,CAACiB,GAAG,EAAE,CAAC;QACVjB,GAAG,CAACiB,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC7BC,CAAAA,GAAAA,YAAS,AAAQ,CAAA,UAAR,CAACT,OAAM,CAAC,CAAC;QAClBT,GAAG,CAACiB,GAAG,EAAE,CAAC;KACX;IAED,OAAOR,OAAM,CAAC;CACf"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.createCopyFilesSuccessMessage = createCopyFilesSuccessMessage;
6
+ exports.copyTemplateFilesAsync = copyTemplateFilesAsync;
7
+ exports.resolveBareEntryFile = resolveBareEntryFile;
8
+ var _paths = require("@expo/config/paths");
9
+ var _chalk = _interopRequireDefault(require("chalk"));
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+ var _path = _interopRequireDefault(require("path"));
12
+ var Log = _interopRequireWildcard(require("../log"));
13
+ var _dir = require("../utils/dir");
14
+ var _mergeGitIgnorePaths = require("../utils/mergeGitIgnorePaths");
15
+ var _updatePackageJson = require("./updatePackageJson");
16
+ function _interopRequireDefault(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ function _interopRequireWildcard(obj) {
22
+ if (obj && obj.__esModule) {
23
+ return obj;
24
+ } else {
25
+ var newObj = {};
26
+ if (obj != null) {
27
+ for(var key in obj){
28
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
29
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
30
+ if (desc.get || desc.set) {
31
+ Object.defineProperty(newObj, key, desc);
32
+ } else {
33
+ newObj[key] = obj[key];
34
+ }
35
+ }
36
+ }
37
+ }
38
+ newObj.default = obj;
39
+ return newObj;
40
+ }
41
+ }
42
+ /**
43
+ * Return true if the given platforms all have an internal `.gitignore` file.
44
+ *
45
+ * @param projectRoot
46
+ * @param platforms
47
+ */ function hasAllPlatformSpecificGitIgnores(projectRoot, platforms) {
48
+ return platforms.reduce((p, platform)=>p && _fs.default.existsSync(_path.default.join(projectRoot, platform, ".gitignore"))
49
+ , true);
50
+ }
51
+ function createCopyFilesSuccessMessage(platforms, { skippedPaths , gitignore }) {
52
+ let message = `Created native project${platforms.length > 1 ? "s" : ""}`;
53
+ if (skippedPaths.length) {
54
+ message += _chalk.default.dim(` | ${skippedPaths.map((path)=>_chalk.default.bold(`/${path}`)
55
+ ).join(", ")} already created`);
56
+ }
57
+ if (!gitignore) {
58
+ message += _chalk.default.dim(` | gitignore skipped`);
59
+ } else if (!gitignore.didMerge) {
60
+ message += _chalk.default.dim(` | gitignore already synced`);
61
+ } else if (gitignore.didMerge && gitignore.didClear) {
62
+ message += _chalk.default.dim(` | synced gitignore`);
63
+ }
64
+ return message;
65
+ }
66
+ async function copyTemplateFilesAsync(projectRoot, { pkg , templateDirectory , platforms }) {
67
+ const copyFilePaths = getFilePathsToCopy(projectRoot, pkg, platforms);
68
+ const copyResults = await copyPathsFromTemplateAsync(projectRoot, {
69
+ templateDirectory,
70
+ copyFilePaths
71
+ });
72
+ const hasPlatformSpecificGitIgnores = hasAllPlatformSpecificGitIgnores(templateDirectory, platforms);
73
+ Log.debug(`All platforms have an internal gitignore: ${hasPlatformSpecificGitIgnores}`);
74
+ const gitignore = hasPlatformSpecificGitIgnores ? null : (0, _mergeGitIgnorePaths).mergeGitIgnorePaths(_path.default.join(projectRoot, ".gitignore"), _path.default.join(templateDirectory, ".gitignore"));
75
+ return {
76
+ ...copyResults,
77
+ gitignore
78
+ };
79
+ }
80
+ async function copyPathsFromTemplateAsync(/** File path to the project. */ projectRoot, { templateDirectory , copyFilePaths }) {
81
+ const copiedPaths = [];
82
+ const skippedPaths = [];
83
+ for (const copyFilePath of copyFilePaths){
84
+ const projectPath = _path.default.join(projectRoot, copyFilePath);
85
+ if (!await (0, _dir).directoryExistsAsync(projectPath)) {
86
+ copiedPaths.push(copyFilePath);
87
+ (0, _dir).copySync(_path.default.join(templateDirectory, copyFilePath), projectPath);
88
+ } else {
89
+ skippedPaths.push(copyFilePath);
90
+ }
91
+ }
92
+ return {
93
+ copiedPaths,
94
+ skippedPaths
95
+ };
96
+ }
97
+ /** Get a list of relative file paths to copy from the template folder. Example: `['ios', 'android', 'index.js']` */ function getFilePathsToCopy(projectRoot, pkg, platforms) {
98
+ const targetPaths = [
99
+ ...platforms
100
+ ];
101
+ const bareEntryFile = resolveBareEntryFile(projectRoot, pkg.main);
102
+ // Only create index.js if we cannot resolve the existing entry point (after replacing the expo entry).
103
+ if (!bareEntryFile) {
104
+ targetPaths.push("index.js");
105
+ }
106
+ return targetPaths;
107
+ }
108
+ function resolveBareEntryFile(projectRoot, main) {
109
+ // expo app entry is not needed for bare projects.
110
+ if ((0, _updatePackageJson).isPkgMainExpoAppEntry(main)) {
111
+ return null;
112
+ }
113
+ // Look at the `package.json`s `main` field for the main file.
114
+ const resolvedMainField = main != null ? main : "./index";
115
+ // Get a list of possible extensions for the main file.
116
+ const extensions = (0, _paths).getBareExtensions([
117
+ "ios",
118
+ "android"
119
+ ]);
120
+ // Testing the main field against all of the provided extensions - for legacy reasons we can't use node module resolution as the package.json allows you to pass in a file without a relative path and expect it as a relative path.
121
+ return (0, _paths).getFileWithExtensions(projectRoot, resolvedMainField, extensions);
122
+ }
123
+
124
+ //# sourceMappingURL=copyTemplateFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/copyTemplateFiles.ts"],"sourcesContent":["import { PackageJSONConfig } from '@expo/config';\nimport { ModPlatform } from '@expo/config-plugins';\nimport { MergeResults } from '@expo/config-plugins/build/utils/generateCode';\nimport { getBareExtensions, getFileWithExtensions } from '@expo/config/paths';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../log';\nimport { copySync, directoryExistsAsync } from '../utils/dir';\nimport { mergeGitIgnorePaths } from '../utils/mergeGitIgnorePaths';\nimport { isPkgMainExpoAppEntry } from './updatePackageJson';\n\ntype CopyFilesResults = {\n /** Merge results for the root `.gitignore` file */\n gitignore: MergeResults | null;\n /** List of file paths that were copied from the template into the project. */\n copiedPaths: string[];\n /** List of file paths that were skipped due to a number of factors. */\n skippedPaths: string[];\n};\n\n/**\n * Return true if the given platforms all have an internal `.gitignore` file.\n *\n * @param projectRoot\n * @param platforms\n */\nfunction hasAllPlatformSpecificGitIgnores(projectRoot: string, platforms: ModPlatform[]): boolean {\n return platforms.reduce<boolean>(\n (p, platform) => p && fs.existsSync(path.join(projectRoot, platform, '.gitignore')),\n true\n );\n}\n\n/** Create a custom log message based on the copy file results. */\nexport function createCopyFilesSuccessMessage(\n platforms: ModPlatform[],\n { skippedPaths, gitignore }: CopyFilesResults\n): string {\n let message = `Created native project${platforms.length > 1 ? 's' : ''}`;\n\n if (skippedPaths.length) {\n message += chalk.dim(\n ` | ${skippedPaths.map((path) => chalk.bold(`/${path}`)).join(', ')} already created`\n );\n }\n if (!gitignore) {\n message += chalk.dim(` | gitignore skipped`);\n } else if (!gitignore.didMerge) {\n message += chalk.dim(` | gitignore already synced`);\n } else if (gitignore.didMerge && gitignore.didClear) {\n message += chalk.dim(` | synced gitignore`);\n }\n return message;\n}\n\n/** Copy template files into the project and possibly merge the `.gitignore` files. */\nexport async function copyTemplateFilesAsync(\n projectRoot: string,\n {\n pkg,\n templateDirectory,\n platforms,\n }: {\n /** Project `package.json` as JSON. */\n pkg: PackageJSONConfig;\n /** File path to the template directory. */\n templateDirectory: string;\n /** List of platforms to copy against. */\n platforms: ModPlatform[];\n }\n): Promise<CopyFilesResults> {\n const copyFilePaths = getFilePathsToCopy(projectRoot, pkg, platforms);\n\n const copyResults = await copyPathsFromTemplateAsync(projectRoot, {\n templateDirectory,\n copyFilePaths,\n });\n\n const hasPlatformSpecificGitIgnores = hasAllPlatformSpecificGitIgnores(\n templateDirectory,\n platforms\n );\n Log.debug(`All platforms have an internal gitignore: ${hasPlatformSpecificGitIgnores}`);\n const gitignore = hasPlatformSpecificGitIgnores\n ? null\n : mergeGitIgnorePaths(\n path.join(projectRoot, '.gitignore'),\n path.join(templateDirectory, '.gitignore')\n );\n\n return { ...copyResults, gitignore };\n}\n\nasync function copyPathsFromTemplateAsync(\n /** File path to the project. */\n projectRoot: string,\n {\n templateDirectory,\n copyFilePaths,\n }: {\n /** File path to the template project. */\n templateDirectory: string;\n /** List of relative paths to copy from the template to the project. */\n copyFilePaths: string[];\n }\n): Promise<Pick<CopyFilesResults, 'copiedPaths' | 'skippedPaths'>> {\n const copiedPaths = [];\n const skippedPaths = [];\n for (const copyFilePath of copyFilePaths) {\n const projectPath = path.join(projectRoot, copyFilePath);\n if (!(await directoryExistsAsync(projectPath))) {\n copiedPaths.push(copyFilePath);\n copySync(path.join(templateDirectory, copyFilePath), projectPath);\n } else {\n skippedPaths.push(copyFilePath);\n }\n }\n return { copiedPaths, skippedPaths };\n}\n\n/** Get a list of relative file paths to copy from the template folder. Example: `['ios', 'android', 'index.js']` */\nfunction getFilePathsToCopy(projectRoot: string, pkg: PackageJSONConfig, platforms: ModPlatform[]) {\n const targetPaths: string[] = [...platforms];\n\n const bareEntryFile = resolveBareEntryFile(projectRoot, pkg.main);\n // Only create index.js if we cannot resolve the existing entry point (after replacing the expo entry).\n if (!bareEntryFile) {\n targetPaths.push('index.js');\n }\n\n return targetPaths;\n}\n\nexport function resolveBareEntryFile(projectRoot: string, main: any) {\n // expo app entry is not needed for bare projects.\n if (isPkgMainExpoAppEntry(main)) {\n return null;\n }\n // Look at the `package.json`s `main` field for the main file.\n const resolvedMainField = main ?? './index';\n // Get a list of possible extensions for the main file.\n const extensions = getBareExtensions(['ios', 'android']);\n // Testing the main field against all of the provided extensions - for legacy reasons we can't use node module resolution as the package.json allows you to pass in a file without a relative path and expect it as a relative path.\n return getFileWithExtensions(projectRoot, resolvedMainField, extensions);\n}\n"],"names":["createCopyFilesSuccessMessage","copyTemplateFilesAsync","resolveBareEntryFile","Log","hasAllPlatformSpecificGitIgnores","projectRoot","platforms","reduce","p","platform","fs","existsSync","path","join","skippedPaths","gitignore","message","length","chalk","dim","map","bold","didMerge","didClear","pkg","templateDirectory","copyFilePaths","getFilePathsToCopy","copyResults","copyPathsFromTemplateAsync","hasPlatformSpecificGitIgnores","debug","mergeGitIgnorePaths","copiedPaths","copyFilePath","projectPath","directoryExistsAsync","push","copySync","targetPaths","bareEntryFile","main","isPkgMainExpoAppEntry","resolvedMainField","extensions","getBareExtensions","getFileWithExtensions"],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.ensureConfigExistsAsync = ensureConfigExistsAsync;
6
+ exports.ensureConfigAsync = ensureConfigAsync;
7
+ var _config = require("@expo/config");
8
+ var _jsonFile = _interopRequireDefault(require("@expo/json-file"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ var Log = _interopRequireWildcard(require("../log"));
11
+ var _errors = require("../utils/errors");
12
+ var _getOrPromptApplicationId = require("../utils/getOrPromptApplicationId");
13
+ function _interopRequireDefault(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function _interopRequireWildcard(obj) {
19
+ if (obj && obj.__esModule) {
20
+ return obj;
21
+ } else {
22
+ var newObj = {};
23
+ if (obj != null) {
24
+ for(var key in obj){
25
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
26
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
27
+ if (desc.get || desc.set) {
28
+ Object.defineProperty(newObj, key, desc);
29
+ } else {
30
+ newObj[key] = obj[key];
31
+ }
32
+ }
33
+ }
34
+ }
35
+ newObj.default = obj;
36
+ return newObj;
37
+ }
38
+ }
39
+ async function ensureConfigExistsAsync(projectRoot) {
40
+ try {
41
+ const config = (0, _config).getConfig(projectRoot, {
42
+ skipSDKVersionRequirement: false
43
+ });
44
+ // If no config exists in the file system then we should generate one so the process doesn't fail.
45
+ if (!config.dynamicConfigPath && !config.staticConfigPath) {
46
+ // Remove the internal object before writing.
47
+ delete config.exp._internal;
48
+ // Write the generated config.
49
+ await _jsonFile.default.writeAsync(_path.default.join(projectRoot, "app.json"), {
50
+ expo: config.exp
51
+ }, {
52
+ json5: false
53
+ });
54
+ }
55
+ } catch (error) {
56
+ // TODO(Bacon): Currently this is already handled in the command
57
+ Log.log();
58
+ throw new _errors.CommandError(`${error.message}\n`);
59
+ }
60
+ }
61
+ async function ensureConfigAsync(projectRoot, { platforms }) {
62
+ await ensureConfigExistsAsync(projectRoot);
63
+ // Prompt for the Android package first because it's more strict than the bundle identifier
64
+ // this means you'll have a better chance at matching the bundle identifier with the package name.
65
+ if (platforms.includes("android")) {
66
+ await (0, _getOrPromptApplicationId).getOrPromptForPackage(projectRoot);
67
+ }
68
+ if (platforms.includes("ios")) {
69
+ await (0, _getOrPromptApplicationId).getOrPromptForBundleIdentifier(projectRoot);
70
+ }
71
+ // We need the SDK version to proceed
72
+ const { exp , pkg } = (0, _config).getConfig(projectRoot);
73
+ // TODO(EvanBacon): Remove the requirement for this once we have a
74
+ // custom bundle script that respects Expo entry point resolution.
75
+ if (exp.entryPoint) {
76
+ delete exp.entryPoint;
77
+ Log.log(`\u203A expo.entryPoint is not needed and has been removed.`);
78
+ }
79
+ // Read config again because prompting for bundle id or package name may have mutated the results.
80
+ return {
81
+ exp,
82
+ pkg
83
+ };
84
+ }
85
+
86
+ //# sourceMappingURL=ensureConfigAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/ensureConfigAsync.ts"],"sourcesContent":["import { ExpoConfig, getConfig, PackageJSONConfig } from '@expo/config';\nimport { ModPlatform } from '@expo/config-plugins';\nimport JsonFile, { JSONObject } from '@expo/json-file';\nimport path from 'path';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\nimport {\n getOrPromptForBundleIdentifier,\n getOrPromptForPackage,\n} from '../utils/getOrPromptApplicationId';\n\n/**\n * If an Expo config file does not exist, write a new one using the in-memory config.\n *\n * @param projectRoot\n */\nexport async function ensureConfigExistsAsync(projectRoot: string) {\n try {\n const config = getConfig(projectRoot, { skipSDKVersionRequirement: false });\n // If no config exists in the file system then we should generate one so the process doesn't fail.\n if (!config.dynamicConfigPath && !config.staticConfigPath) {\n // Remove the internal object before writing.\n delete config.exp._internal;\n\n // Write the generated config.\n await JsonFile.writeAsync(\n path.join(projectRoot, 'app.json'),\n { expo: config.exp as unknown as JSONObject },\n { json5: false }\n );\n }\n } catch (error: any) {\n // TODO(Bacon): Currently this is already handled in the command\n Log.log();\n throw new CommandError(`${error.message}\\n`);\n }\n}\n\n/** Ensure config is written, prompts for application identifiers, and removes entryPoint value. */\nexport async function ensureConfigAsync(\n projectRoot: string,\n {\n platforms,\n }: {\n platforms: ModPlatform[];\n }\n): Promise<{ exp: ExpoConfig; pkg: PackageJSONConfig }> {\n await ensureConfigExistsAsync(projectRoot);\n\n // Prompt for the Android package first because it's more strict than the bundle identifier\n // this means you'll have a better chance at matching the bundle identifier with the package name.\n if (platforms.includes('android')) {\n await getOrPromptForPackage(projectRoot);\n }\n\n if (platforms.includes('ios')) {\n await getOrPromptForBundleIdentifier(projectRoot);\n }\n\n // We need the SDK version to proceed\n const { exp, pkg } = getConfig(projectRoot);\n\n // TODO(EvanBacon): Remove the requirement for this once we have a\n // custom bundle script that respects Expo entry point resolution.\n if (exp.entryPoint) {\n delete exp.entryPoint;\n Log.log(`\\u203A expo.entryPoint is not needed and has been removed.`);\n }\n\n // Read config again because prompting for bundle id or package name may have mutated the results.\n return { exp, pkg };\n}\n"],"names":["ensureConfigExistsAsync","ensureConfigAsync","Log","projectRoot","config","getConfig","skipSDKVersionRequirement","dynamicConfigPath","staticConfigPath","exp","_internal","JsonFile","writeAsync","path","join","expo","json5","error","log","CommandError","message","platforms","includes","getOrPromptForPackage","getOrPromptForBundleIdentifier","pkg","entryPoint"],"mappings":"AAAA;;;;QAiBsBA,uBAAuB,GAAvBA,uBAAuB;QAuBvBC,iBAAiB,GAAjBA,iBAAiB;AAxCkB,IAAA,OAAc,WAAd,cAAc,CAAA;AAElC,IAAA,SAAiB,kCAAjB,iBAAiB,EAAA;AACrC,IAAA,KAAM,kCAAN,MAAM,EAAA;AAEXC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACc,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AAIvC,IAAA,yBAAmC,WAAnC,mCAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOnC,eAAeF,uBAAuB,CAACG,WAAmB,EAAE;IACjE,IAAI;QACF,MAAMC,MAAM,GAAGC,CAAAA,GAAAA,OAAS,AAAmD,CAAA,UAAnD,CAACF,WAAW,EAAE;YAAEG,yBAAyB,EAAE,KAAK;SAAE,CAAC,AAAC;QAC5E,kGAAkG;QAClG,IAAI,CAACF,MAAM,CAACG,iBAAiB,IAAI,CAACH,MAAM,CAACI,gBAAgB,EAAE;YACzD,6CAA6C;YAC7C,OAAOJ,MAAM,CAACK,GAAG,CAACC,SAAS,CAAC;YAE5B,8BAA8B;YAC9B,MAAMC,SAAQ,QAAA,CAACC,UAAU,CACvBC,KAAI,QAAA,CAACC,IAAI,CAACX,WAAW,EAAE,UAAU,CAAC,EAClC;gBAAEY,IAAI,EAAEX,MAAM,CAACK,GAAG;aAA2B,EAC7C;gBAAEO,KAAK,EAAE,KAAK;aAAE,CACjB,CAAC;SACH;KACF,CAAC,OAAOC,KAAK,EAAO;QACnB,gEAAgE;QAChEf,GAAG,CAACgB,GAAG,EAAE,CAAC;QACV,MAAM,IAAIC,OAAY,aAAA,CAAC,CAAC,EAAEF,KAAK,CAACG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9C;CACF;AAGM,eAAenB,iBAAiB,CACrCE,WAAmB,EACnB,EACEkB,SAAS,CAAA,EAGV,EACqD;IACtD,MAAMrB,uBAAuB,CAACG,WAAW,CAAC,CAAC;IAE3C,2FAA2F;IAC3F,kGAAkG;IAClG,IAAIkB,SAAS,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACjC,MAAMC,CAAAA,GAAAA,yBAAqB,AAAa,CAAA,sBAAb,CAACpB,WAAW,CAAC,CAAC;KAC1C;IAED,IAAIkB,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7B,MAAME,CAAAA,GAAAA,yBAA8B,AAAa,CAAA,+BAAb,CAACrB,WAAW,CAAC,CAAC;KACnD;IAED,qCAAqC;IACrC,MAAM,EAAEM,GAAG,CAAA,EAAEgB,GAAG,CAAA,EAAE,GAAGpB,CAAAA,GAAAA,OAAS,AAAa,CAAA,UAAb,CAACF,WAAW,CAAC,AAAC;IAE5C,kEAAkE;IAClE,kEAAkE;IAClE,IAAIM,GAAG,CAACiB,UAAU,EAAE;QAClB,OAAOjB,GAAG,CAACiB,UAAU,CAAC;QACtBxB,GAAG,CAACgB,GAAG,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC;KACvE;IAED,kGAAkG;IAClG,OAAO;QAAET,GAAG;QAAEgB,GAAG;KAAE,CAAC;CACrB"}
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.expoPrebuild = void 0;
7
+ var _chalk = _interopRequireDefault(require("chalk"));
8
+ var _args = require("../utils/args");
9
+ function _interopRequireDefault(obj) {
10
+ return obj && obj.__esModule ? obj : {
11
+ default: obj
12
+ };
13
+ }
14
+ function _interopRequireWildcard(obj) {
15
+ if (obj && obj.__esModule) {
16
+ return obj;
17
+ } else {
18
+ var newObj = {};
19
+ if (obj != null) {
20
+ for(var key in obj){
21
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
22
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
23
+ if (desc.get || desc.set) {
24
+ Object.defineProperty(newObj, key, desc);
25
+ } else {
26
+ newObj[key] = obj[key];
27
+ }
28
+ }
29
+ }
30
+ }
31
+ newObj.default = obj;
32
+ return newObj;
33
+ }
34
+ }
35
+ const expoPrebuild = async (argv)=>{
36
+ const args = (0, _args).assertArgs({
37
+ // Types
38
+ "--help": Boolean,
39
+ "--clean": Boolean,
40
+ "--npm": Boolean,
41
+ "--no-install": Boolean,
42
+ "--template": String,
43
+ "--platform": String,
44
+ "--skip-dependency-update": String,
45
+ // Aliases
46
+ "-h": "--help",
47
+ "-p": "--platform",
48
+ "-t": "--type"
49
+ }, argv);
50
+ if (args["--help"]) {
51
+ (0, _args).printHelp(`Create native iOS and Android project files for building natively`, _chalk.default`npx expo prebuild {dim <dir>}`, [
52
+ _chalk.default`<dir> Directory of the Expo project. {dim Default: Current working directory}`,
53
+ `--no-install Skip installing npm packages and CocoaPods`,
54
+ `--clean Delete the native folders and regenerate them before applying changes`,
55
+ _chalk.default`--npm Use npm to install dependencies. {dim Default when Yarn is not installed}`,
56
+ `--template <template> Project template to clone from. File path pointing to a local tar file or a github repo`,
57
+ _chalk.default`-p, --platform <all|android|ios> Platforms to sync: ios, android, all. {dim Default: all}`,
58
+ `--skip-dependency-update <dependencies> Preserves versions of listed packages in package.json (comma separated list)`,
59
+ `-h, --help Usage info`,
60
+ ].join("\n"));
61
+ }
62
+ // Load modules after the help prompt so `npx expo prebuild -h` shows as fast as possible.
63
+ const [// ./prebuildAsync
64
+ { prebuildAsync }, // ./resolveOptions
65
+ { resolvePlatformOption , resolveSkipDependencyUpdate }, // ../utils/errors
66
+ { logCmdError }, ] = await Promise.all([
67
+ Promise.resolve().then(function() {
68
+ return _interopRequireWildcard(require("./prebuildAsync"));
69
+ }),
70
+ Promise.resolve().then(function() {
71
+ return _interopRequireWildcard(require("./resolveOptions"));
72
+ }),
73
+ Promise.resolve().then(function() {
74
+ return _interopRequireWildcard(require("../utils/errors"));
75
+ }),
76
+ ]);
77
+ return prebuildAsync((0, _args).getProjectRoot(args), {
78
+ // Parsed options
79
+ clean: args["--clean"],
80
+ packageManager: args["--npm"] ? "npm" : "yarn",
81
+ install: !args["--no-install"],
82
+ platforms: resolvePlatformOption(args["--platform"]),
83
+ // TODO: Parse
84
+ skipDependencyUpdate: resolveSkipDependencyUpdate(args["--skip-dependency-update"]),
85
+ template: args["--template"]
86
+ }).catch(logCmdError);
87
+ };
88
+ exports.expoPrebuild = expoPrebuild;
89
+
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk';\n\nimport { Command } from '../../bin/cli';\nimport { assertArgs, getProjectRoot, printHelp } from '../utils/args';\n\nexport const expoPrebuild: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n '--clean': Boolean,\n '--npm': Boolean,\n '--no-install': Boolean,\n '--template': String,\n '--platform': String,\n '--skip-dependency-update': String,\n // Aliases\n '-h': '--help',\n '-p': '--platform',\n '-t': '--type',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n `Create native iOS and Android project files for building natively`,\n chalk`npx expo prebuild {dim <dir>}`,\n [\n chalk`<dir> Directory of the Expo project. {dim Default: Current working directory}`,\n `--no-install Skip installing npm packages and CocoaPods`,\n `--clean Delete the native folders and regenerate them before applying changes`,\n chalk`--npm Use npm to install dependencies. {dim Default when Yarn is not installed}`,\n `--template <template> Project template to clone from. File path pointing to a local tar file or a github repo`,\n chalk`-p, --platform <all|android|ios> Platforms to sync: ios, android, all. {dim Default: all}`,\n `--skip-dependency-update <dependencies> Preserves versions of listed packages in package.json (comma separated list)`,\n `-h, --help Usage info`,\n ].join('\\n')\n );\n }\n\n // Load modules after the help prompt so `npx expo prebuild -h` shows as fast as possible.\n const [\n // ./prebuildAsync\n { prebuildAsync },\n // ./resolveOptions\n { resolvePlatformOption, resolveSkipDependencyUpdate },\n // ../utils/errors\n { logCmdError },\n ] = await Promise.all([\n import('./prebuildAsync'),\n import('./resolveOptions'),\n import('../utils/errors'),\n ]);\n\n return prebuildAsync(getProjectRoot(args), {\n // Parsed options\n clean: args['--clean'],\n packageManager: args['--npm'] ? 'npm' : 'yarn',\n install: !args['--no-install'],\n platforms: resolvePlatformOption(args['--platform']),\n // TODO: Parse\n skipDependencyUpdate: resolveSkipDependencyUpdate(args['--skip-dependency-update']),\n template: args['--template'],\n }).catch(logCmdError);\n};\n"],"names":["expoPrebuild","argv","args","assertArgs","Boolean","String","printHelp","chalk","join","prebuildAsync","resolvePlatformOption","resolveSkipDependencyUpdate","logCmdError","Promise","all","getProjectRoot","clean","packageManager","install","platforms","skipDependencyUpdate","template","catch"],"mappings":"AAAA;;;;;;AACkB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAG6B,IAAA,KAAe,WAAf,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9D,MAAMA,YAAY,GAAY,OAAOC,IAAI,GAAK;IACnD,MAAMC,IAAI,GAAGC,CAAAA,GAAAA,KAAU,AAgBtB,CAAA,WAhBsB,CACrB;QACE,QAAQ;QACR,QAAQ,EAAEC,OAAO;QACjB,SAAS,EAAEA,OAAO;QAClB,OAAO,EAAEA,OAAO;QAChB,cAAc,EAAEA,OAAO;QACvB,YAAY,EAAEC,MAAM;QACpB,YAAY,EAAEA,MAAM;QACpB,0BAA0B,EAAEA,MAAM;QAClC,UAAU;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,QAAQ;KACf,EACDJ,IAAI,CACL,AAAC;IAEF,IAAIC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBI,CAAAA,GAAAA,KAAS,AAaR,CAAA,UAbQ,CACP,CAAC,iEAAiE,CAAC,EACnEC,MAAK,QAAA,CAAC,6BAA6B,CAAC,EACpC;YACEA,MAAK,QAAA,CAAC,gHAAgH,CAAC;YACvH,CAAC,mFAAmF,CAAC;YACrF,CAAC,8GAA8G,CAAC;YAChHA,MAAK,QAAA,CAAC,kHAAkH,CAAC;YACzH,CAAC,gIAAgI,CAAC;YAClIA,MAAK,QAAA,CAAC,iGAAiG,CAAC;YACxG,CAAC,qHAAqH,CAAC;YACvH,CAAC,mDAAmD,CAAC;SACtD,CAACC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,0FAA0F;IAC1F,MAAM,CACJ,kBAAkB;IAClB,EAAEC,aAAa,CAAA,EAAE,EACjB,mBAAmB;IACnB,EAAEC,qBAAqB,CAAA,EAAEC,2BAA2B,CAAA,EAAE,EACtD,kBAAkB;IAClB,EAAEC,WAAW,CAAA,EAAE,GAChB,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC;QACpB;mDAAO,iBAAiB;UAAC;QACzB;mDAAO,kBAAkB;UAAC;QAC1B;mDAAO,iBAAiB;UAAC;KAC1B,CAAC,AAAC;IAEH,OAAOL,aAAa,CAACM,CAAAA,GAAAA,KAAc,AAAM,CAAA,eAAN,CAACb,IAAI,CAAC,EAAE;QACzC,iBAAiB;QACjBc,KAAK,EAAEd,IAAI,CAAC,SAAS,CAAC;QACtBe,cAAc,EAAEf,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,MAAM;QAC9CgB,OAAO,EAAE,CAAChB,IAAI,CAAC,cAAc,CAAC;QAC9BiB,SAAS,EAAET,qBAAqB,CAACR,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,cAAc;QACdkB,oBAAoB,EAAET,2BAA2B,CAACT,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnFmB,QAAQ,EAAEnB,IAAI,CAAC,YAAY,CAAC;KAC7B,CAAC,CAACoB,KAAK,CAACV,WAAW,CAAC,CAAC;CACvB,AAAC;QA5DWZ,YAAY,GAAZA,YAAY"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.prebuildAsync = prebuildAsync;
6
+ var Log = _interopRequireWildcard(require("../log"));
7
+ var _nodeModules = require("../utils/nodeModules");
8
+ var _ora = require("../utils/ora");
9
+ var _profile = require("../utils/profile");
10
+ var _clearNativeFolder = require("./clearNativeFolder");
11
+ var _configureProjectAsync = require("./configureProjectAsync");
12
+ var _ensureConfigAsync = require("./ensureConfigAsync");
13
+ var _resolveOptions = require("./resolveOptions");
14
+ var _updateFromTemplate = require("./updateFromTemplate");
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 prebuildAsync(projectRoot, options) {
37
+ if (options.clean) {
38
+ const { maybeBailOnGitStatusAsync } = await Promise.resolve().then(function() {
39
+ return _interopRequireWildcard(require("../utils/git"));
40
+ });
41
+ // Clean the project folders...
42
+ if (await maybeBailOnGitStatusAsync()) {
43
+ return null;
44
+ }
45
+ // Clear the native folders before syncing
46
+ await (0, _clearNativeFolder).clearNativeFolder(projectRoot, options.platforms);
47
+ } else {
48
+ // Check if the existing project folders are malformed.
49
+ await (0, _clearNativeFolder).promptToClearMalformedNativeProjectsAsync(projectRoot, options.platforms);
50
+ }
51
+ // Warn if the project is attempting to prebuild an unsupported platform (iOS on Windows).
52
+ options.platforms = (0, _resolveOptions).ensureValidPlatforms(options.platforms);
53
+ // Assert if no platforms are left over after filtering.
54
+ (0, _resolveOptions).assertPlatforms(options.platforms);
55
+ // Get the Expo config, create it if missing.
56
+ const { exp , pkg } = await (0, _ensureConfigAsync).ensureConfigAsync(projectRoot, {
57
+ platforms: options.platforms
58
+ });
59
+ // Create native projects from template.
60
+ const { hasNewProjectFiles , needsPodInstall , hasNewDependencies } = await (0, _updateFromTemplate).updateFromTemplateAsync(projectRoot, {
61
+ exp,
62
+ pkg,
63
+ template: options.template != null ? (0, _resolveOptions).resolveTemplateOption(options.template) : undefined,
64
+ platforms: options.platforms,
65
+ skipDependencyUpdate: options.skipDependencyUpdate
66
+ });
67
+ // Install node modules
68
+ const packageManager = (0, _nodeModules).resolvePackageManager({
69
+ install: options.install,
70
+ npm: options.packageManager === "npm",
71
+ yarn: options.packageManager === "yarn"
72
+ });
73
+ if (options.install) {
74
+ await (0, _nodeModules).installNodeDependenciesAsync(projectRoot, packageManager, {
75
+ // We delete the dependencies when new ones are added because native packages are more fragile.
76
+ // npm doesn't work well so we always run the cleaning step when npm is used in favor of yarn.
77
+ clean: hasNewDependencies || packageManager === "npm"
78
+ });
79
+ }
80
+ // Apply Expo config to native projects
81
+ const configSyncingStep = (0, _ora).logNewSection("Config syncing");
82
+ try {
83
+ await (0, _profile).profile(_configureProjectAsync.configureProjectAsync)(projectRoot, {
84
+ platforms: options.platforms
85
+ });
86
+ configSyncingStep.succeed("Config synced");
87
+ } catch (error) {
88
+ configSyncingStep.fail("Config sync failed");
89
+ throw error;
90
+ }
91
+ // Install CocoaPods
92
+ let podsInstalled = false;
93
+ // err towards running pod install less because it's slow and users can easily run npx pod-install afterwards.
94
+ if (options.platforms.includes("ios") && options.install && needsPodInstall) {
95
+ const { installCocoaPodsAsync } = await Promise.resolve().then(function() {
96
+ return _interopRequireWildcard(require("../utils/cocoapods"));
97
+ });
98
+ podsInstalled = await installCocoaPodsAsync(projectRoot);
99
+ } else {
100
+ Log.debug("Skipped pod install");
101
+ }
102
+ return {
103
+ packageManager,
104
+ nodeInstall: !!options.install,
105
+ podInstall: !podsInstalled,
106
+ platforms: options.platforms,
107
+ hasNewProjectFiles,
108
+ exp
109
+ };
110
+ }
111
+
112
+ //# sourceMappingURL=prebuildAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/prebuildAsync.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { ModPlatform } from '@expo/config-plugins';\n\nimport * as Log from '../log';\nimport { installNodeDependenciesAsync, resolvePackageManager } from '../utils/nodeModules';\nimport { logNewSection } from '../utils/ora';\nimport { profile } from '../utils/profile';\nimport { clearNativeFolder, promptToClearMalformedNativeProjectsAsync } from './clearNativeFolder';\nimport { configureProjectAsync } from './configureProjectAsync';\nimport { ensureConfigAsync } from './ensureConfigAsync';\nimport { assertPlatforms, ensureValidPlatforms, resolveTemplateOption } from './resolveOptions';\nimport { updateFromTemplateAsync } from './updateFromTemplate';\n\nexport type PrebuildResults = {\n /** Expo config. */\n exp: ExpoConfig;\n /** Indicates if the process created new files. */\n hasNewProjectFiles: boolean;\n /** The platforms that were prebuilt. */\n platforms: ModPlatform[];\n /** Indicates if pod install was run. */\n podInstall: boolean;\n /** Indicates if node modules were installed. */\n nodeInstall: boolean;\n /** Indicates which package manager the project is using. */\n packageManager: string;\n};\n\n/**\n * Entry point into the prebuild process, delegates to other helpers to perform various steps.\n *\n * 0. Attempt to clean the project folders.\n * 1. Create native projects (ios, android).\n * 2. Install node modules.\n * 3. Apply config to native projects.\n * 4. Install CocoaPods.\n */\nexport async function prebuildAsync(\n projectRoot: string,\n options: {\n /** Should install node modules and cocoapods. */\n install?: boolean;\n /** List of platforms to prebuild. */\n platforms: ModPlatform[];\n /** Should delete the native folders before attempting to prebuild. */\n clean?: boolean;\n /** URL or file path to the prebuild template. */\n template?: string;\n /** Name of the node package manager to install with. */\n packageManager?: 'npm' | 'yarn';\n /** List of node modules to skip updating. */\n skipDependencyUpdate?: string[];\n }\n): Promise<PrebuildResults | null> {\n if (options.clean) {\n const { maybeBailOnGitStatusAsync } = await import('../utils/git');\n // Clean the project folders...\n if (await maybeBailOnGitStatusAsync()) {\n return null;\n }\n // Clear the native folders before syncing\n await clearNativeFolder(projectRoot, options.platforms);\n } else {\n // Check if the existing project folders are malformed.\n await promptToClearMalformedNativeProjectsAsync(projectRoot, options.platforms);\n }\n\n // Warn if the project is attempting to prebuild an unsupported platform (iOS on Windows).\n options.platforms = ensureValidPlatforms(options.platforms);\n // Assert if no platforms are left over after filtering.\n assertPlatforms(options.platforms);\n\n // Get the Expo config, create it if missing.\n const { exp, pkg } = await ensureConfigAsync(projectRoot, { platforms: options.platforms });\n\n // Create native projects from template.\n const { hasNewProjectFiles, needsPodInstall, hasNewDependencies } = await updateFromTemplateAsync(\n projectRoot,\n {\n exp,\n pkg,\n template: options.template != null ? resolveTemplateOption(options.template) : undefined,\n platforms: options.platforms,\n skipDependencyUpdate: options.skipDependencyUpdate,\n }\n );\n\n // Install node modules\n const packageManager = resolvePackageManager({\n install: options.install,\n npm: options.packageManager === 'npm',\n yarn: options.packageManager === 'yarn',\n });\n\n if (options.install) {\n await installNodeDependenciesAsync(projectRoot, packageManager, {\n // We delete the dependencies when new ones are added because native packages are more fragile.\n // npm doesn't work well so we always run the cleaning step when npm is used in favor of yarn.\n clean: hasNewDependencies || packageManager === 'npm',\n });\n }\n\n // Apply Expo config to native projects\n const configSyncingStep = logNewSection('Config syncing');\n try {\n await profile(configureProjectAsync)(projectRoot, {\n platforms: options.platforms,\n });\n configSyncingStep.succeed('Config synced');\n } catch (error) {\n configSyncingStep.fail('Config sync failed');\n throw error;\n }\n\n // Install CocoaPods\n let podsInstalled: boolean = false;\n // err towards running pod install less because it's slow and users can easily run npx pod-install afterwards.\n if (options.platforms.includes('ios') && options.install && needsPodInstall) {\n const { installCocoaPodsAsync } = await import('../utils/cocoapods');\n\n podsInstalled = await installCocoaPodsAsync(projectRoot);\n } else {\n Log.debug('Skipped pod install');\n }\n\n return {\n packageManager,\n nodeInstall: !!options.install,\n podInstall: !podsInstalled,\n platforms: options.platforms,\n hasNewProjectFiles,\n exp,\n };\n}\n"],"names":["prebuildAsync","Log","projectRoot","options","clean","maybeBailOnGitStatusAsync","clearNativeFolder","platforms","promptToClearMalformedNativeProjectsAsync","ensureValidPlatforms","assertPlatforms","exp","pkg","ensureConfigAsync","hasNewProjectFiles","needsPodInstall","hasNewDependencies","updateFromTemplateAsync","template","resolveTemplateOption","undefined","skipDependencyUpdate","packageManager","resolvePackageManager","install","npm","yarn","installNodeDependenciesAsync","configSyncingStep","logNewSection","profile","configureProjectAsync","succeed","error","fail","podsInstalled","includes","installCocoaPodsAsync","debug","nodeInstall","podInstall"],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.resolveTemplateOption = resolveTemplateOption;
6
+ exports.resolveSkipDependencyUpdate = resolveSkipDependencyUpdate;
7
+ exports.resolvePlatformOption = resolvePlatformOption;
8
+ exports.ensureValidPlatforms = ensureValidPlatforms;
9
+ exports.assertPlatforms = assertPlatforms;
10
+ var _assert = _interopRequireDefault(require("assert"));
11
+ var _chalk = _interopRequireDefault(require("chalk"));
12
+ var _fs = _interopRequireDefault(require("fs"));
13
+ var _path = _interopRequireDefault(require("path"));
14
+ var Log = _interopRequireWildcard(require("../log"));
15
+ var _errors = require("../utils/errors");
16
+ var _url = require("../utils/url");
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
+ function resolveTemplateOption(template) {
44
+ if ((0, _url).validateUrl(template)) {
45
+ return template;
46
+ }
47
+ const templatePath = _path.default.resolve(template);
48
+ (0, _assert).default(_fs.default.existsSync(templatePath), "template file does not exist: " + templatePath);
49
+ (0, _assert).default(_fs.default.statSync(templatePath).isFile(), "template must be a tar file created by running `npm pack` in a project: " + templatePath);
50
+ return templatePath;
51
+ }
52
+ function resolveSkipDependencyUpdate(value) {
53
+ if (!value || typeof value !== "string") {
54
+ return [];
55
+ }
56
+ return value.split(",");
57
+ }
58
+ function resolvePlatformOption(platform = "all", { loose } = {}) {
59
+ switch(platform){
60
+ case "ios":
61
+ return [
62
+ "ios"
63
+ ];
64
+ case "android":
65
+ return [
66
+ "android"
67
+ ];
68
+ case "all":
69
+ if (loose || process.platform !== "win32") {
70
+ return [
71
+ "android",
72
+ "ios"
73
+ ];
74
+ }
75
+ return [
76
+ "android"
77
+ ];
78
+ default:
79
+ throw new _errors.CommandError(`Unsupported platform "${platform}". Options are: ios, android, all`);
80
+ }
81
+ }
82
+ function ensureValidPlatforms(platforms) {
83
+ // Skip ejecting for iOS on Windows
84
+ if (process.platform === "win32" && platforms.includes("ios")) {
85
+ Log.warn(_chalk.default`⚠️ Skipping generating the iOS native project files. Run {bold expo eject} again from macOS or Linux to generate the iOS project.\n`);
86
+ return platforms.filter((platform)=>platform !== "ios"
87
+ );
88
+ }
89
+ return platforms;
90
+ }
91
+ function assertPlatforms(platforms) {
92
+ if (!(platforms == null ? void 0 : platforms.length)) {
93
+ throw new _errors.CommandError("At least one platform must be enabled when syncing");
94
+ }
95
+ }
96
+
97
+ //# sourceMappingURL=resolveOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prebuild/resolveOptions.ts"],"sourcesContent":["import { ModPlatform } from '@expo/config-plugins';\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\nimport { validateUrl } from '../utils/url';\n\n/** Resolves a template option as a URL or file path pointing to a tar file. */\nexport function resolveTemplateOption(template: string) {\n if (validateUrl(template)) {\n return template;\n }\n const templatePath = path.resolve(template);\n assert(fs.existsSync(templatePath), 'template file does not exist: ' + templatePath);\n assert(\n fs.statSync(templatePath).isFile(),\n 'template must be a tar file created by running `npm pack` in a project: ' + templatePath\n );\n\n return templatePath;\n}\n\n/** Resolves dependencies to skip from a string joined by `,`. Example: `react-native,expo,lodash` */\nexport function resolveSkipDependencyUpdate(value: any) {\n if (!value || typeof value !== 'string') {\n return [];\n }\n return value.split(',');\n}\n\n/** Returns an array of platforms based on the input platform identifier and runtime constraints. */\nexport function resolvePlatformOption(\n platform: string = 'all',\n { loose }: { loose?: boolean } = {}\n): ModPlatform[] {\n switch (platform) {\n case 'ios':\n return ['ios'];\n case 'android':\n return ['android'];\n case 'all':\n if (loose || process.platform !== 'win32') {\n return ['android', 'ios'];\n }\n return ['android'];\n default:\n throw new CommandError(`Unsupported platform \"${platform}\". Options are: ios, android, all`);\n }\n}\n\n/** Warns and filters out unsupported platforms based on the runtime constraints. Essentially this means no iOS on Windows devices. */\nexport function ensureValidPlatforms(platforms: ModPlatform[]): ModPlatform[] {\n // Skip ejecting for iOS on Windows\n if (process.platform === 'win32' && platforms.includes('ios')) {\n Log.warn(\n chalk`⚠️ Skipping generating the iOS native project files. Run {bold expo eject} again from macOS or Linux to generate the iOS project.\\n`\n );\n return platforms.filter((platform) => platform !== 'ios');\n }\n return platforms;\n}\n\n/** Asserts platform length must be greater than zero. */\nexport function assertPlatforms(platforms: ModPlatform[]) {\n if (!platforms?.length) {\n throw new CommandError('At least one platform must be enabled when syncing');\n }\n}\n"],"names":["resolveTemplateOption","resolveSkipDependencyUpdate","resolvePlatformOption","ensureValidPlatforms","assertPlatforms","Log","template","validateUrl","templatePath","path","resolve","assert","fs","existsSync","statSync","isFile","value","split","platform","loose","process","CommandError","platforms","includes","warn","chalk","filter","length"],"mappings":"AAAA;;;;QAWgBA,qBAAqB,GAArBA,qBAAqB;QAerBC,2BAA2B,GAA3BA,2BAA2B;QAQ3BC,qBAAqB,GAArBA,qBAAqB;QAoBrBC,oBAAoB,GAApBA,oBAAoB;QAYpBC,eAAe,GAAfA,eAAe;AAjEZ,IAAA,OAAQ,kCAAR,QAAQ,EAAA;AACT,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;AAClB,IAAA,IAAc,WAAd,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnC,SAASL,qBAAqB,CAACM,QAAgB,EAAE;IACtD,IAAIC,CAAAA,GAAAA,IAAW,AAAU,CAAA,YAAV,CAACD,QAAQ,CAAC,EAAE;QACzB,OAAOA,QAAQ,CAAC;KACjB;IACD,MAAME,YAAY,GAAGC,KAAI,QAAA,CAACC,OAAO,CAACJ,QAAQ,CAAC,AAAC;IAC5CK,CAAAA,GAAAA,OAAM,AAA8E,CAAA,QAA9E,CAACC,GAAE,QAAA,CAACC,UAAU,CAACL,YAAY,CAAC,EAAE,gCAAgC,GAAGA,YAAY,CAAC,CAAC;IACrFG,CAAAA,GAAAA,OAAM,AAGL,CAAA,QAHK,CACJC,GAAE,QAAA,CAACE,QAAQ,CAACN,YAAY,CAAC,CAACO,MAAM,EAAE,EAClC,0EAA0E,GAAGP,YAAY,CAC1F,CAAC;IAEF,OAAOA,YAAY,CAAC;CACrB;AAGM,SAASP,2BAA2B,CAACe,KAAU,EAAE;IACtD,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;IACD,OAAOA,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC;CACzB;AAGM,SAASf,qBAAqB,CACnCgB,QAAgB,GAAG,KAAK,EACxB,EAAEC,KAAK,CAAA,EAAuB,GAAG,EAAE,EACpB;IACf,OAAQD,QAAQ;QACd,KAAK,KAAK;YACR,OAAO;gBAAC,KAAK;aAAC,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO;gBAAC,SAAS;aAAC,CAAC;QACrB,KAAK,KAAK;YACR,IAAIC,KAAK,IAAIC,OAAO,CAACF,QAAQ,KAAK,OAAO,EAAE;gBACzC,OAAO;oBAAC,SAAS;oBAAE,KAAK;iBAAC,CAAC;aAC3B;YACD,OAAO;gBAAC,SAAS;aAAC,CAAC;QACrB;YACE,MAAM,IAAIG,OAAY,aAAA,CAAC,CAAC,sBAAsB,EAAEH,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC;KAChG;CACF;AAGM,SAASf,oBAAoB,CAACmB,SAAwB,EAAiB;IAC5E,mCAAmC;IACnC,IAAIF,OAAO,CAACF,QAAQ,KAAK,OAAO,IAAII,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7DlB,GAAG,CAACmB,IAAI,CACNC,MAAK,QAAA,CAAC,wIAAoI,CAAC,CAC5I,CAAC;QACF,OAAOH,SAAS,CAACI,MAAM,CAAC,CAACR,QAAQ,GAAKA,QAAQ,KAAK,KAAK;QAAA,CAAC,CAAC;KAC3D;IACD,OAAOI,SAAS,CAAC;CAClB;AAGM,SAASlB,eAAe,CAACkB,SAAwB,EAAE;IACxD,IAAI,CAACA,CAAAA,SAAS,QAAQ,GAAjBA,KAAAA,CAAiB,GAAjBA,SAAS,CAAEK,MAAM,CAAA,EAAE;QACtB,MAAM,IAAIN,OAAY,aAAA,CAAC,oDAAoD,CAAC,CAAC;KAC9E;CACF"}