@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/start/server/middleware/server.types.ts"],"sourcesContent":["import express from 'express';\nimport http from 'http';\n\n/** Headers */\nexport type ServerHeaders = Map<string, number | string | readonly string[]>;\n/** Request */\nexport type ServerRequest = express.Request | http.IncomingMessage;\n/** Response */\nexport type ServerResponse = express.Response | http.ServerResponse;\n/** Next function */\nexport type ServerNext = (err?: Error) => void;\n"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.openPlatformsAsync = openPlatformsAsync;
6
+ var _errors = require("../../utils/errors");
7
+ async function openPlatformsAsync(devServerManager, options) {
8
+ const results = await Promise.allSettled([
9
+ options.android ? devServerManager.getDefaultDevServer().openPlatformAsync("emulator") : null,
10
+ options.ios ? devServerManager.getDefaultDevServer().openPlatformAsync("simulator") : null,
11
+ options.web ? devServerManager.ensureWebDevServerRunningAsync().then(()=>{
12
+ var ref;
13
+ return (ref = devServerManager.getWebDevServer()) == null ? void 0 : ref.openPlatformAsync("desktop");
14
+ }) : null,
15
+ ]);
16
+ const errors = results.map((result)=>result.status === "rejected" ? result.reason : null
17
+ ).filter(Boolean);
18
+ if (errors.length) {
19
+ // ctrl+c
20
+ const isEscapedError = errors.some((error)=>error.code === "ABORTED"
21
+ );
22
+ if (isEscapedError) {
23
+ throw new _errors.AbortCommandError();
24
+ }
25
+ throw errors[0];
26
+ }
27
+ return !!options.android || !!options.ios;
28
+ }
29
+
30
+ //# sourceMappingURL=openPlatforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/start/server/openPlatforms.ts"],"sourcesContent":["import { AbortCommandError } from '../../utils/errors';\nimport { Options } from '../resolveOptions';\nimport { DevServerManager } from './DevServerManager';\n\n/** Launch the app on various platforms in parallel. */\nexport async function openPlatformsAsync(\n devServerManager: DevServerManager,\n options: Pick<Options, 'ios' | 'android' | 'web'>\n) {\n const results = await Promise.allSettled([\n options.android ? devServerManager.getDefaultDevServer().openPlatformAsync('emulator') : null,\n options.ios ? devServerManager.getDefaultDevServer().openPlatformAsync('simulator') : null,\n options.web\n ? devServerManager\n .ensureWebDevServerRunningAsync()\n .then(() => devServerManager.getWebDevServer()?.openPlatformAsync('desktop'))\n : null,\n ]);\n\n const errors = results\n .map((result) => (result.status === 'rejected' ? result.reason : null))\n .filter(Boolean);\n\n if (errors.length) {\n // ctrl+c\n const isEscapedError = errors.some((error: any) => error.code === 'ABORTED');\n if (isEscapedError) {\n throw new AbortCommandError();\n }\n throw errors[0];\n }\n\n return !!options.android || !!options.ios;\n}\n"],"names":["openPlatformsAsync","devServerManager","options","results","Promise","allSettled","android","getDefaultDevServer","openPlatformAsync","ios","web","ensureWebDevServerRunningAsync","then","getWebDevServer","errors","map","result","status","reason","filter","Boolean","length","isEscapedError","some","error","code","AbortCommandError"],"mappings":"AAAA;;;;QAKsBA,kBAAkB,GAAlBA,kBAAkB;AALN,IAAA,OAAoB,WAApB,oBAAoB,CAAA;AAK/C,eAAeA,kBAAkB,CACtCC,gBAAkC,EAClCC,OAAiD,EACjD;IACA,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CAAC;QACvCH,OAAO,CAACI,OAAO,GAAGL,gBAAgB,CAACM,mBAAmB,EAAE,CAACC,iBAAiB,CAAC,UAAU,CAAC,GAAG,IAAI;QAC7FN,OAAO,CAACO,GAAG,GAAGR,gBAAgB,CAACM,mBAAmB,EAAE,CAACC,iBAAiB,CAAC,WAAW,CAAC,GAAG,IAAI;QAC1FN,OAAO,CAACQ,GAAG,GACPT,gBAAgB,CACbU,8BAA8B,EAAE,CAChCC,IAAI,CAAC;gBAAMX,GAAkC;YAAlCA,OAAAA,CAAAA,GAAkC,GAAlCA,gBAAgB,CAACY,eAAe,EAAE,SAAmB,GAArDZ,KAAAA,CAAqD,GAArDA,GAAkC,CAAEO,iBAAiB,CAAC,SAAS,CAAC,CAAA;SAAA,CAAC,GAC/E,IAAI;KACT,CAAC,AAAC;IAEH,MAAMM,MAAM,GAAGX,OAAO,CACnBY,GAAG,CAAC,CAACC,MAAM,GAAMA,MAAM,CAACC,MAAM,KAAK,UAAU,GAAGD,MAAM,CAACE,MAAM,GAAG,IAAI;IAAC,CAAC,CACtEC,MAAM,CAACC,OAAO,CAAC,AAAC;IAEnB,IAAIN,MAAM,CAACO,MAAM,EAAE;QACjB,SAAS;QACT,MAAMC,cAAc,GAAGR,MAAM,CAACS,IAAI,CAAC,CAACC,KAAU,GAAKA,KAAK,CAACC,IAAI,KAAK,SAAS;QAAA,CAAC,AAAC;QAC7E,IAAIH,cAAc,EAAE;YAClB,MAAM,IAAII,OAAiB,kBAAA,EAAE,CAAC;SAC/B;QACD,MAAMZ,MAAM,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,OAAO,CAAC,CAACZ,OAAO,CAACI,OAAO,IAAI,CAAC,CAACJ,OAAO,CAACO,GAAG,CAAC;CAC3C"}
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.getProjectWebpackConfigFilePath = getProjectWebpackConfigFilePath;
6
+ var _symbolicateMiddleware = require("@expo/dev-server/build/webpack/symbolicateMiddleware");
7
+ var _chalk = _interopRequireDefault(require("chalk"));
8
+ var _fs = _interopRequireDefault(require("fs"));
9
+ var path = _interopRequireWildcard(require("path"));
10
+ var _resolveFrom = _interopRequireDefault(require("resolve-from"));
11
+ var Log = _interopRequireWildcard(require("../../../log"));
12
+ var _env = require("../../../utils/env");
13
+ var _errors = require("../../../utils/errors");
14
+ var _ip = require("../../../utils/ip");
15
+ var _port = require("../../../utils/port");
16
+ var _dotExpo = require("../../project/dotExpo");
17
+ var _bundlerDevServer = require("../BundlerDevServer");
18
+ var _resolveFromProject = require("./resolveFromProject");
19
+ var _tls = require("./tls");
20
+ function _interopRequireDefault(obj) {
21
+ return obj && obj.__esModule ? obj : {
22
+ default: obj
23
+ };
24
+ }
25
+ function _interopRequireWildcard(obj) {
26
+ if (obj && obj.__esModule) {
27
+ return obj;
28
+ } else {
29
+ var newObj = {};
30
+ if (obj != null) {
31
+ for(var key in obj){
32
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
33
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
34
+ if (desc.get || desc.set) {
35
+ Object.defineProperty(newObj, key, desc);
36
+ } else {
37
+ newObj[key] = obj[key];
38
+ }
39
+ }
40
+ }
41
+ }
42
+ newObj.default = obj;
43
+ return newObj;
44
+ }
45
+ }
46
+ function assertIsWebpackDevServer(value) {
47
+ if (!(value == null ? void 0 : value.sockWrite)) {
48
+ var ref;
49
+ var ref1;
50
+ throw new _errors.CommandError("WEBPACK", value ? "Expected Webpack dev server, found: " + ((ref1 = (ref = value.constructor) == null ? void 0 : ref.name) != null ? ref1 : value) : "Webpack dev server not started yet.");
51
+ }
52
+ }
53
+ class WebpackBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
54
+ get name() {
55
+ return "webpack";
56
+ }
57
+ broadcastMessage(method, params) {
58
+ var ref;
59
+ if (!this.instance) {
60
+ return;
61
+ }
62
+ assertIsWebpackDevServer((ref = this.instance) == null ? void 0 : ref.server);
63
+ // Allow any message on native
64
+ if (this.customMessageSocketBroadcaster) {
65
+ this.customMessageSocketBroadcaster(method, params);
66
+ return;
67
+ }
68
+ // TODO(EvanBacon): Custom Webpack overlay.
69
+ // Default webpack-dev-server sockets use "content-changed" instead of "reload" (what we use on native).
70
+ // For now, just manually convert the value so our CLI interface can be unified.
71
+ const hackyConvertedMessage = method === "reload" ? "content-changed" : method;
72
+ this.instance.server.sockWrite(this.instance.server.sockets, hackyConvertedMessage, params);
73
+ }
74
+ async attachNativeDevServerMiddlewareToDevServer({ server , middleware , attachToServer , logger }) {
75
+ const { attachInspectorProxy , LogReporter } = await Promise.resolve().then(function() {
76
+ return _interopRequireWildcard(require("@expo/dev-server"));
77
+ });
78
+ // Hook up the React Native WebSockets to the Webpack dev server.
79
+ const { messageSocket , debuggerProxy , eventsSocket } = attachToServer(server);
80
+ this.customMessageSocketBroadcaster = messageSocket.broadcast;
81
+ const logReporter = new LogReporter(logger);
82
+ logReporter.reportEvent = eventsSocket.reportEvent;
83
+ const { inspectorProxy } = attachInspectorProxy(this.projectRoot, {
84
+ middleware,
85
+ server
86
+ });
87
+ return {
88
+ messageSocket,
89
+ eventsSocket,
90
+ debuggerProxy,
91
+ logReporter,
92
+ inspectorProxy
93
+ };
94
+ }
95
+ isTargetingNative() {
96
+ // Temporary hack while we implement multi-bundler dev server proxy.
97
+ return [
98
+ "ios",
99
+ "android"
100
+ ].includes(process.env.EXPO_WEBPACK_PLATFORM || "");
101
+ }
102
+ isTargetingWeb() {
103
+ return true;
104
+ }
105
+ async createNativeDevServerMiddleware({ port , compiler , options }) {
106
+ if (!this.isTargetingNative()) {
107
+ return null;
108
+ }
109
+ const { createDevServerMiddleware } = await Promise.resolve().then(function() {
110
+ return _interopRequireWildcard(require("../middleware/createDevServerMiddleware"));
111
+ });
112
+ const nativeMiddleware = createDevServerMiddleware(this.projectRoot, {
113
+ port,
114
+ watchFolders: [
115
+ this.projectRoot
116
+ ]
117
+ });
118
+ // Add manifest middleware to the other middleware.
119
+ // TODO: Move this in to expo/dev-server.
120
+ const middleware = await this.getManifestMiddlewareAsync(options);
121
+ nativeMiddleware.middleware.use(middleware).use("/symbolicate", (0, _symbolicateMiddleware).createSymbolicateMiddleware({
122
+ projectRoot: this.projectRoot,
123
+ compiler,
124
+ logger: nativeMiddleware.logger
125
+ }));
126
+ return nativeMiddleware;
127
+ }
128
+ async getAvailablePortAsync(options) {
129
+ try {
130
+ var ref;
131
+ const defaultPort = (ref = options == null ? void 0 : options.defaultPort) != null ? ref : 19006;
132
+ const port = await (0, _port).choosePortAsync(this.projectRoot, {
133
+ defaultPort,
134
+ host: _env.env.WEB_HOST
135
+ });
136
+ if (!port) {
137
+ throw new _errors.CommandError("NO_PORT_FOUND", `Port ${defaultPort} not available.`);
138
+ }
139
+ return port;
140
+ } catch (error) {
141
+ throw new _errors.CommandError("NO_PORT_FOUND", error.message);
142
+ }
143
+ }
144
+ async startImplementationAsync(options) {
145
+ var ref;
146
+ // Do this first to fail faster.
147
+ const webpack = (0, _resolveFromProject).importWebpackFromProject(this.projectRoot);
148
+ const WebpackDevServer = (0, _resolveFromProject).importWebpackDevServerFromProject(this.projectRoot);
149
+ await this.stopAsync();
150
+ options.port = await this.getAvailablePortAsync({
151
+ defaultPort: options.port
152
+ });
153
+ const { resetDevServer , https , port , mode } = options;
154
+ this.urlCreator = this.getUrlCreator({
155
+ port,
156
+ location: {
157
+ scheme: https ? "https" : "http"
158
+ }
159
+ });
160
+ Log.debug("Starting webpack on port: " + port);
161
+ if (resetDevServer) {
162
+ await clearWebProjectCacheAsync(this.projectRoot, mode);
163
+ }
164
+ if (https) {
165
+ Log.debug("Configuring TLS to enable HTTPS support");
166
+ await (0, _tls).ensureEnvironmentSupportsTLSAsync(this.projectRoot).catch((error)=>{
167
+ Log.error(`Error creating TLS certificates: ${error}`);
168
+ });
169
+ }
170
+ const config = await this.loadConfigAsync(options);
171
+ Log.log(_chalk.default`Starting Webpack on port ${port} in {underline ${mode}} mode.`);
172
+ // Create a webpack compiler that is configured with custom messages.
173
+ const compiler1 = webpack(config);
174
+ let nativeMiddleware = null;
175
+ if ((ref = config.devServer) == null ? void 0 : ref.before) {
176
+ // Create the middleware required for interacting with a native runtime (Expo Go, or a development build).
177
+ nativeMiddleware = await this.createNativeDevServerMiddleware({
178
+ port,
179
+ compiler: compiler1,
180
+ options
181
+ });
182
+ // Inject the native manifest middleware.
183
+ const originalBefore = config.devServer.before.bind(config.devServer.before);
184
+ config.devServer.before = (app, server, compiler)=>{
185
+ originalBefore(app, server, compiler);
186
+ if (nativeMiddleware == null ? void 0 : nativeMiddleware.middleware) {
187
+ app.use(nativeMiddleware.middleware);
188
+ }
189
+ };
190
+ }
191
+ const { attachNativeDevServerMiddlewareToDevServer } = this;
192
+ const server1 = new WebpackDevServer(// @ts-expect-error: type mismatch -- Webpack types aren't great.
193
+ compiler1, config.devServer);
194
+ // Launch WebpackDevServer.
195
+ server1.listen(port, _env.env.WEB_HOST, function(error) {
196
+ if (nativeMiddleware) {
197
+ attachNativeDevServerMiddlewareToDevServer({
198
+ server: this,
199
+ ...nativeMiddleware
200
+ });
201
+ }
202
+ if (error) {
203
+ Log.error(error.message);
204
+ }
205
+ });
206
+ // Extend the close method to ensure that we clean up the local info.
207
+ const originalClose = server1.close.bind(server1);
208
+ server1.close = (callback)=>{
209
+ return originalClose((err)=>{
210
+ this.instance = null;
211
+ callback == null ? void 0 : callback(err);
212
+ });
213
+ };
214
+ const _host = (0, _ip).getIpAddress();
215
+ const protocol = https ? "https" : "http";
216
+ return {
217
+ // Server instance
218
+ server: server1,
219
+ // URL Info
220
+ location: {
221
+ url: `${protocol}://${_host}:${port}`,
222
+ port,
223
+ protocol,
224
+ host: _host
225
+ },
226
+ middleware: nativeMiddleware == null ? void 0 : nativeMiddleware.middleware,
227
+ // Match the native protocol.
228
+ messageSocket: {
229
+ broadcast: this.broadcastMessage
230
+ }
231
+ };
232
+ }
233
+ /** Load the Webpack config. Exposed for testing. */ getProjectConfigFilePath() {
234
+ var ref;
235
+ // Check if the project has a webpack.config.js in the root.
236
+ return (ref = this.getConfigModuleIds().reduce((prev, moduleId)=>prev || _resolveFrom.default.silent(this.projectRoot, moduleId)
237
+ , null)) != null ? ref : null;
238
+ }
239
+ async loadConfigAsync(options, argv) {
240
+ // let bar: ProgressBar | null = null;
241
+ const env = {
242
+ projectRoot: this.projectRoot,
243
+ pwa: !!options.isImageEditingEnabled,
244
+ // TODO: Use a new loader in Webpack config...
245
+ logger: {
246
+ info () {}
247
+ },
248
+ mode: options.mode,
249
+ https: options.https
250
+ };
251
+ var _mode;
252
+ setMode((_mode = env.mode) != null ? _mode : "development");
253
+ // Check if the project has a webpack.config.js in the root.
254
+ const projectWebpackConfig = this.getProjectConfigFilePath();
255
+ let config;
256
+ if (projectWebpackConfig) {
257
+ const webpackConfig = require(projectWebpackConfig);
258
+ if (typeof webpackConfig === "function") {
259
+ config = await webpackConfig(env, argv);
260
+ } else {
261
+ config = webpackConfig;
262
+ }
263
+ } else {
264
+ // Fallback to the default expo webpack config.
265
+ const loadDefaultConfigAsync = (0, _resolveFromProject).importExpoWebpackConfigFromProject(this.projectRoot);
266
+ // @ts-expect-error: types appear to be broken
267
+ config = await loadDefaultConfigAsync(env, argv);
268
+ }
269
+ return config;
270
+ }
271
+ getConfigModuleIds() {
272
+ return [
273
+ "./webpack.config.js"
274
+ ];
275
+ }
276
+ }
277
+ exports.WebpackBundlerDevServer = WebpackBundlerDevServer;
278
+ function setMode(mode) {
279
+ process.env.BABEL_ENV = mode;
280
+ process.env.NODE_ENV = mode;
281
+ }
282
+ function getProjectWebpackConfigFilePath(projectRoot) {
283
+ return _resolveFrom.default.silent(projectRoot, "./webpack.config.js");
284
+ }
285
+ async function clearWebProjectCacheAsync(projectRoot, mode = "development") {
286
+ Log.log(_chalk.default.dim(`Clearing Webpack ${mode} cache directory...`));
287
+ const dir = await (0, _dotExpo).ensureDotExpoProjectDirectoryInitialized(projectRoot);
288
+ const cacheFolder = path.join(dir, "web/cache", mode);
289
+ try {
290
+ await _fs.default.promises.rm(cacheFolder, {
291
+ recursive: true,
292
+ force: true
293
+ });
294
+ } catch (error) {
295
+ Log.error(`Could not clear ${mode} web cache directory: ${error.message}`);
296
+ }
297
+ }
298
+
299
+ //# sourceMappingURL=WebpackBundlerDevServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/start/server/webpack/WebpackBundlerDevServer.ts"],"sourcesContent":["import { createSymbolicateMiddleware } from '@expo/dev-server/build/webpack/symbolicateMiddleware';\nimport chalk from 'chalk';\nimport type { Application } from 'express';\nimport fs from 'fs';\nimport http from 'http';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\nimport type webpack from 'webpack';\nimport type WebpackDevServer from 'webpack-dev-server';\n\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { getIpAddress } from '../../../utils/ip';\nimport { choosePortAsync } from '../../../utils/port';\nimport { ensureDotExpoProjectDirectoryInitialized } from '../../project/dotExpo';\nimport { BundlerDevServer, BundlerStartOptions, DevServerInstance } from '../BundlerDevServer';\nimport {\n importExpoWebpackConfigFromProject,\n importWebpackDevServerFromProject,\n importWebpackFromProject,\n} from './resolveFromProject';\nimport { ensureEnvironmentSupportsTLSAsync } from './tls';\n\ntype AnyCompiler = webpack.Compiler | webpack.MultiCompiler;\n\nexport type WebpackConfiguration = webpack.Configuration & {\n devServer?: {\n before?: (app: Application, server: WebpackDevServer, compiler: webpack.Compiler) => void;\n };\n};\n\nfunction assertIsWebpackDevServer(value: any): asserts value is WebpackDevServer {\n if (!value?.sockWrite) {\n throw new CommandError(\n 'WEBPACK',\n value\n ? 'Expected Webpack dev server, found: ' + (value.constructor?.name ?? value)\n : 'Webpack dev server not started yet.'\n );\n }\n}\n\nexport class WebpackBundlerDevServer extends BundlerDevServer {\n get name(): string {\n return 'webpack';\n }\n\n // A custom message websocket broadcaster used to send messages to a React Native runtime.\n private customMessageSocketBroadcaster:\n | undefined\n | ((message: string, data?: Record<string, any>) => void);\n\n public broadcastMessage(\n method: string | 'reload' | 'devMenu' | 'sendDevCommand',\n params?: Record<string, any>\n ): void {\n if (!this.instance) {\n return;\n }\n\n assertIsWebpackDevServer(this.instance?.server);\n\n // Allow any message on native\n if (this.customMessageSocketBroadcaster) {\n this.customMessageSocketBroadcaster(method, params);\n return;\n }\n\n // TODO(EvanBacon): Custom Webpack overlay.\n // Default webpack-dev-server sockets use \"content-changed\" instead of \"reload\" (what we use on native).\n // For now, just manually convert the value so our CLI interface can be unified.\n const hackyConvertedMessage = method === 'reload' ? 'content-changed' : method;\n\n this.instance.server.sockWrite(this.instance.server.sockets, hackyConvertedMessage, params);\n }\n\n private async attachNativeDevServerMiddlewareToDevServer({\n server,\n middleware,\n attachToServer,\n logger,\n }: { server: http.Server } & Awaited<ReturnType<typeof this.createNativeDevServerMiddleware>>) {\n const { attachInspectorProxy, LogReporter } = await import('@expo/dev-server');\n\n // Hook up the React Native WebSockets to the Webpack dev server.\n const { messageSocket, debuggerProxy, eventsSocket } = attachToServer(server);\n\n this.customMessageSocketBroadcaster = messageSocket.broadcast;\n\n const logReporter = new LogReporter(logger);\n logReporter.reportEvent = eventsSocket.reportEvent;\n\n const { inspectorProxy } = attachInspectorProxy(this.projectRoot, {\n middleware,\n server,\n });\n\n return {\n messageSocket,\n eventsSocket,\n debuggerProxy,\n logReporter,\n inspectorProxy,\n };\n }\n\n isTargetingNative(): boolean {\n // Temporary hack while we implement multi-bundler dev server proxy.\n return ['ios', 'android'].includes(process.env.EXPO_WEBPACK_PLATFORM || '');\n }\n\n isTargetingWeb(): boolean {\n return true;\n }\n\n private async createNativeDevServerMiddleware({\n port,\n compiler,\n options,\n }: {\n port: number;\n compiler: AnyCompiler;\n options: BundlerStartOptions;\n }) {\n if (!this.isTargetingNative()) {\n return null;\n }\n\n const { createDevServerMiddleware } = await import('../middleware/createDevServerMiddleware');\n\n const nativeMiddleware = createDevServerMiddleware(this.projectRoot, {\n port,\n watchFolders: [this.projectRoot],\n });\n // Add manifest middleware to the other middleware.\n // TODO: Move this in to expo/dev-server.\n\n const middleware = await this.getManifestMiddlewareAsync(options);\n\n nativeMiddleware.middleware.use(middleware).use(\n '/symbolicate',\n createSymbolicateMiddleware({\n projectRoot: this.projectRoot,\n compiler,\n logger: nativeMiddleware.logger,\n })\n );\n return nativeMiddleware;\n }\n\n private async getAvailablePortAsync(options: { defaultPort?: number }): Promise<number> {\n try {\n const defaultPort = options?.defaultPort ?? 19006;\n const port = await choosePortAsync(this.projectRoot, {\n defaultPort,\n host: env.WEB_HOST,\n });\n if (!port) {\n throw new CommandError('NO_PORT_FOUND', `Port ${defaultPort} not available.`);\n }\n return port;\n } catch (error: any) {\n throw new CommandError('NO_PORT_FOUND', error.message);\n }\n }\n\n protected async startImplementationAsync(\n options: BundlerStartOptions\n ): Promise<DevServerInstance> {\n // Do this first to fail faster.\n const webpack = importWebpackFromProject(this.projectRoot);\n const WebpackDevServer = importWebpackDevServerFromProject(this.projectRoot);\n\n await this.stopAsync();\n\n options.port = await this.getAvailablePortAsync({\n defaultPort: options.port,\n });\n const { resetDevServer, https, port, mode } = options;\n\n this.urlCreator = this.getUrlCreator({\n port,\n location: {\n scheme: https ? 'https' : 'http',\n },\n });\n\n Log.debug('Starting webpack on port: ' + port);\n\n if (resetDevServer) {\n await clearWebProjectCacheAsync(this.projectRoot, mode);\n }\n\n if (https) {\n Log.debug('Configuring TLS to enable HTTPS support');\n await ensureEnvironmentSupportsTLSAsync(this.projectRoot).catch((error) => {\n Log.error(`Error creating TLS certificates: ${error}`);\n });\n }\n\n const config = await this.loadConfigAsync(options);\n\n Log.log(chalk`Starting Webpack on port ${port} in {underline ${mode}} mode.`);\n\n // Create a webpack compiler that is configured with custom messages.\n const compiler = webpack(config);\n\n let nativeMiddleware: Awaited<ReturnType<typeof this.createNativeDevServerMiddleware>> | null =\n null;\n if (config.devServer?.before) {\n // Create the middleware required for interacting with a native runtime (Expo Go, or a development build).\n nativeMiddleware = await this.createNativeDevServerMiddleware({\n port,\n compiler,\n options,\n });\n // Inject the native manifest middleware.\n const originalBefore = config.devServer.before.bind(config.devServer.before);\n config.devServer.before = (\n app: Application,\n server: WebpackDevServer,\n compiler: webpack.Compiler\n ) => {\n originalBefore(app, server, compiler);\n\n if (nativeMiddleware?.middleware) {\n app.use(nativeMiddleware.middleware);\n }\n };\n }\n const { attachNativeDevServerMiddlewareToDevServer } = this;\n\n const server = new WebpackDevServer(\n // @ts-expect-error: type mismatch -- Webpack types aren't great.\n compiler,\n config.devServer\n );\n // Launch WebpackDevServer.\n server.listen(port, env.WEB_HOST, function (this: http.Server, error) {\n if (nativeMiddleware) {\n attachNativeDevServerMiddlewareToDevServer({\n server: this,\n ...nativeMiddleware,\n });\n }\n if (error) {\n Log.error(error.message);\n }\n });\n\n // Extend the close method to ensure that we clean up the local info.\n const originalClose = server.close.bind(server);\n\n server.close = (callback?: (err?: Error) => void) => {\n return originalClose((err?: Error) => {\n this.instance = null;\n callback?.(err);\n });\n };\n\n const _host = getIpAddress();\n const protocol = https ? 'https' : 'http';\n\n return {\n // Server instance\n server,\n // URL Info\n location: {\n url: `${protocol}://${_host}:${port}`,\n port,\n protocol,\n host: _host,\n },\n middleware: nativeMiddleware?.middleware,\n // Match the native protocol.\n messageSocket: {\n broadcast: this.broadcastMessage,\n },\n };\n }\n\n /** Load the Webpack config. Exposed for testing. */\n getProjectConfigFilePath(): string | null {\n // Check if the project has a webpack.config.js in the root.\n return (\n this.getConfigModuleIds().reduce<string | null | undefined>(\n (prev, moduleId) => prev || resolveFrom.silent(this.projectRoot, moduleId),\n null\n ) ?? null\n );\n }\n\n async loadConfigAsync(\n options: BundlerStartOptions,\n argv?: string[]\n ): Promise<WebpackConfiguration> {\n // let bar: ProgressBar | null = null;\n\n const env = {\n projectRoot: this.projectRoot,\n pwa: !!options.isImageEditingEnabled,\n // TODO: Use a new loader in Webpack config...\n logger: {\n info() {},\n },\n mode: options.mode,\n https: options.https,\n };\n setMode(env.mode ?? 'development');\n // Check if the project has a webpack.config.js in the root.\n const projectWebpackConfig = this.getProjectConfigFilePath();\n let config: WebpackConfiguration;\n if (projectWebpackConfig) {\n const webpackConfig = require(projectWebpackConfig);\n if (typeof webpackConfig === 'function') {\n config = await webpackConfig(env, argv);\n } else {\n config = webpackConfig;\n }\n } else {\n // Fallback to the default expo webpack config.\n const loadDefaultConfigAsync = importExpoWebpackConfigFromProject(this.projectRoot);\n // @ts-expect-error: types appear to be broken\n config = await loadDefaultConfigAsync(env, argv);\n }\n return config;\n }\n\n protected getConfigModuleIds(): string[] {\n return ['./webpack.config.js'];\n }\n}\n\nfunction setMode(mode: 'development' | 'production' | 'test' | 'none'): void {\n process.env.BABEL_ENV = mode;\n process.env.NODE_ENV = mode;\n}\n\nexport function getProjectWebpackConfigFilePath(projectRoot: string) {\n return resolveFrom.silent(projectRoot, './webpack.config.js');\n}\n\nasync function clearWebProjectCacheAsync(\n projectRoot: string,\n mode: string = 'development'\n): Promise<void> {\n Log.log(chalk.dim(`Clearing Webpack ${mode} cache directory...`));\n\n const dir = await ensureDotExpoProjectDirectoryInitialized(projectRoot);\n const cacheFolder = path.join(dir, 'web/cache', mode);\n try {\n await fs.promises.rm(cacheFolder, { recursive: true, force: true });\n } catch (error: any) {\n Log.error(`Could not clear ${mode} web cache directory: ${error.message}`);\n }\n}\n"],"names":["getProjectWebpackConfigFilePath","path","Log","assertIsWebpackDevServer","value","sockWrite","CommandError","constructor","name","WebpackBundlerDevServer","BundlerDevServer","broadcastMessage","method","params","instance","server","customMessageSocketBroadcaster","hackyConvertedMessage","sockets","attachNativeDevServerMiddlewareToDevServer","middleware","attachToServer","logger","attachInspectorProxy","LogReporter","messageSocket","debuggerProxy","eventsSocket","broadcast","logReporter","reportEvent","inspectorProxy","projectRoot","isTargetingNative","includes","process","env","EXPO_WEBPACK_PLATFORM","isTargetingWeb","createNativeDevServerMiddleware","port","compiler","options","createDevServerMiddleware","nativeMiddleware","watchFolders","getManifestMiddlewareAsync","use","createSymbolicateMiddleware","getAvailablePortAsync","defaultPort","choosePortAsync","host","WEB_HOST","error","message","startImplementationAsync","config","webpack","importWebpackFromProject","WebpackDevServer","importWebpackDevServerFromProject","stopAsync","resetDevServer","https","mode","urlCreator","getUrlCreator","location","scheme","debug","clearWebProjectCacheAsync","ensureEnvironmentSupportsTLSAsync","catch","loadConfigAsync","log","chalk","devServer","before","originalBefore","bind","app","listen","originalClose","close","callback","err","_host","getIpAddress","protocol","url","getProjectConfigFilePath","getConfigModuleIds","reduce","prev","moduleId","resolveFrom","silent","argv","pwa","isImageEditingEnabled","info","setMode","projectWebpackConfig","webpackConfig","require","loadDefaultConfigAsync","importExpoWebpackConfigFromProject","BABEL_ENV","NODE_ENV","dim","dir","ensureDotExpoProjectDirectoryInitialized","cacheFolder","join","fs","promises","rm","recursive","force"],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.formatWebpackMessages = formatWebpackMessages;
6
+ const friendlySyntaxErrorLabel = "Syntax error:";
7
+ function isLikelyASyntaxError(message) {
8
+ return message.indexOf(friendlySyntaxErrorLabel) !== -1;
9
+ }
10
+ // Cleans up webpack error messages.
11
+ function formatMessage(message1) {
12
+ let lines = [];
13
+ if (typeof message1 === "string") {
14
+ lines = message1.split("\n");
15
+ } else if ("message" in message1) {
16
+ lines = message1["message"].split("\n");
17
+ } else if (Array.isArray(message1)) {
18
+ message1.forEach((message)=>{
19
+ if ("message" in message) {
20
+ lines = message["message"].split("\n");
21
+ }
22
+ });
23
+ }
24
+ // Strip webpack-added headers off errors/warnings
25
+ // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js
26
+ lines = lines.filter((line)=>!/Module [A-z ]+\(from/.test(line)
27
+ );
28
+ // Transform parsing error into syntax error
29
+ // TODO: move this to our ESLint formatter?
30
+ lines = lines.map((line)=>{
31
+ const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(line);
32
+ if (!parsingError) {
33
+ return line;
34
+ }
35
+ const [, errorLine, errorColumn, errorMessage] = parsingError;
36
+ return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`;
37
+ });
38
+ message1 = lines.join("\n");
39
+ // Smoosh syntax errors (commonly found in CSS)
40
+ message1 = message1.replace(/SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)\n`);
41
+ // Clean up export errors
42
+ message1 = message1.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$2'.`);
43
+ message1 = message1.replace(/^.*export 'default' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$2' does not contain a default export (imported as '$1').`);
44
+ message1 = message1.replace(/^.*export '(.+?)' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$3' (imported as '$2').`);
45
+ lines = message1.split("\n");
46
+ // Remove leading newline
47
+ if (lines.length > 2 && lines[1].trim() === "") {
48
+ lines.splice(1, 1);
49
+ }
50
+ // Clean up file name
51
+ lines[0] = lines[0].replace(/^(.*) \d+:\d+-\d+$/, "$1");
52
+ // Cleans up verbose "module not found" messages for files and packages.
53
+ if (lines[1] && lines[1].indexOf("Module not found: ") === 0) {
54
+ lines = [
55
+ lines[0],
56
+ lines[1].replace("Error: ", "").replace("Module not found: Cannot find file:", "Cannot find file:"),
57
+ ];
58
+ }
59
+ // Add helpful message for users trying to use Sass for the first time
60
+ if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {
61
+ lines[1] = "To import Sass files, you first need to install sass.\n";
62
+ lines[1] += "Run `npm install sass` or `yarn add sass` inside your workspace.";
63
+ }
64
+ message1 = lines.join("\n");
65
+ // Internal stacks are generally useless so we strip them... with the
66
+ // exception of stacks containing `webpack:` because they're normally
67
+ // from user code generated by webpack. For more information see
68
+ // https://github.com/facebook/create-react-app/pull/1050
69
+ message1 = message1.replace(/^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, ""); // at ... ...:x:y
70
+ message1 = message1.replace(/^\s*at\s<anonymous>(\n|$)/gm, ""); // at <anonymous>
71
+ lines = message1.split("\n");
72
+ // Remove duplicated newlines
73
+ lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== "" || line.trim() !== arr[index - 1].trim()
74
+ );
75
+ // Reassemble the message
76
+ message1 = lines.join("\n");
77
+ return message1.trim();
78
+ }
79
+ function formatWebpackMessages(json) {
80
+ var ref, ref1, ref2;
81
+ const formattedErrors = json == null ? void 0 : (ref = json.errors) == null ? void 0 : ref.map(formatMessage);
82
+ const formattedWarnings = json == null ? void 0 : (ref1 = json.warnings) == null ? void 0 : ref1.map(formatMessage);
83
+ const result = {
84
+ errors: formattedErrors,
85
+ warnings: formattedWarnings
86
+ };
87
+ if ((ref2 = result.errors) == null ? void 0 : ref2.some(isLikelyASyntaxError)) {
88
+ // If there are any syntax errors, show just them.
89
+ result.errors = result.errors.filter(isLikelyASyntaxError);
90
+ }
91
+ return result;
92
+ }
93
+
94
+ //# sourceMappingURL=formatWebpackMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/start/server/webpack/formatWebpackMessages.ts"],"sourcesContent":["/**\n * Copyright (c) 2022 Expo, Inc.\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Based on https://github.com/facebook/create-react-app/blob/b172b5e/packages/react-dev-utils/ModuleNotFoundPlugin.js\n * But with Node LTS support.\n */\n\nimport type { Stats } from 'webpack';\n\nconst friendlySyntaxErrorLabel = 'Syntax error:';\n\nfunction isLikelyASyntaxError(message: string): boolean {\n return message.indexOf(friendlySyntaxErrorLabel) !== -1;\n}\n\n// Cleans up webpack error messages.\nfunction formatMessage(message: string | { message: string } | { message: string }[]) {\n let lines: string[] = [];\n\n if (typeof message === 'string') {\n lines = message.split('\\n');\n } else if ('message' in message) {\n lines = message['message'].split('\\n');\n } else if (Array.isArray(message)) {\n message.forEach((message) => {\n if ('message' in message) {\n lines = message['message'].split('\\n');\n }\n });\n }\n\n // Strip webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line) => !/Module [A-z ]+\\(from/.test(line));\n\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line) => {\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`;\n });\n\n message = lines.join('\\n');\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(\n /SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g,\n `${friendlySyntaxErrorLabel} $3 ($1:$2)\\n`\n );\n // Clean up export errors\n message = message.replace(\n /^.*export '(.+?)' was not found in '(.+?)'.*$/gm,\n `Attempted import error: '$1' is not exported from '$2'.`\n );\n message = message.replace(\n /^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm,\n `Attempted import error: '$2' does not contain a default export (imported as '$1').`\n );\n message = message.replace(\n /^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm,\n `Attempted import error: '$1' is not exported from '$3' (imported as '$2').`\n );\n lines = message.split('\\n');\n\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n // Clean up file name\n lines[0] = lines[0].replace(/^(.*) \\d+:\\d+-\\d+$/, '$1');\n\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {\n lines = [\n lines[0],\n lines[1]\n .replace('Error: ', '')\n .replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ];\n }\n\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n lines[1] = 'To import Sass files, you first need to install sass.\\n';\n lines[1] += 'Run `npm install sass` or `yarn add sass` inside your workspace.';\n }\n\n message = lines.join('\\n');\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, ''); // at ... ...:x:y\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, ''); // at <anonymous>\n lines = message.split('\\n');\n\n // Remove duplicated newlines\n lines = lines.filter(\n (line, index, arr) => index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim()\n );\n\n // Reassemble the message\n message = lines.join('\\n');\n return message.trim();\n}\n\nexport function formatWebpackMessages(json?: Stats.ToJsonOutput) {\n const formattedErrors = json?.errors?.map(formatMessage);\n const formattedWarnings = json?.warnings?.map(formatMessage);\n const result = { errors: formattedErrors, warnings: formattedWarnings };\n if (result.errors?.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n }\n return result;\n}\n"],"names":["formatWebpackMessages","friendlySyntaxErrorLabel","isLikelyASyntaxError","message","indexOf","formatMessage","lines","split","Array","isArray","forEach","filter","line","test","map","parsingError","exec","errorLine","errorColumn","errorMessage","join","replace","length","trim","splice","match","index","arr","json","result","formattedErrors","errors","formattedWarnings","warnings","some"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.importWebpackFromProject = importWebpackFromProject;
6
+ exports.importExpoWebpackConfigFromProject = importExpoWebpackConfigFromProject;
7
+ exports.importWebpackDevServerFromProject = importWebpackDevServerFromProject;
8
+ var _resolveFrom = _interopRequireDefault(require("resolve-from"));
9
+ var _errors = require("../../../utils/errors");
10
+ function _interopRequireDefault(obj) {
11
+ return obj && obj.__esModule ? obj : {
12
+ default: obj
13
+ };
14
+ }
15
+ // These resolvers enable us to test the CLI in older projects.
16
+ // We may be able to get rid of this in the future.
17
+ // TODO: Maybe combine with AsyncResolver?
18
+ class WebpackImportError extends _errors.CommandError {
19
+ constructor(projectRoot, moduleId){
20
+ super("WEBPACK_IMPORT", `Missing package "${moduleId}" in the project. Try running the command again. (cwd: ${projectRoot})`);
21
+ }
22
+ }
23
+ function resolveFromProject(projectRoot, moduleId) {
24
+ const resolvedPath = _resolveFrom.default.silent(projectRoot, moduleId);
25
+ if (!resolvedPath) {
26
+ throw new WebpackImportError(projectRoot, moduleId);
27
+ }
28
+ return resolvedPath;
29
+ }
30
+ function importFromProject(projectRoot, moduleId) {
31
+ return require(resolveFromProject(projectRoot, moduleId));
32
+ }
33
+ function importWebpackFromProject(projectRoot) {
34
+ return importFromProject(projectRoot, "webpack");
35
+ }
36
+ function importExpoWebpackConfigFromProject(projectRoot) {
37
+ return importFromProject(projectRoot, "@expo/webpack-config");
38
+ }
39
+ function importWebpackDevServerFromProject(projectRoot) {
40
+ return importFromProject(projectRoot, "webpack-dev-server");
41
+ }
42
+
43
+ //# sourceMappingURL=resolveFromProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/start/server/webpack/resolveFromProject.ts"],"sourcesContent":["import resolveFrom from 'resolve-from';\n\nimport { CommandError } from '../../../utils/errors';\n\n// These resolvers enable us to test the CLI in older projects.\n// We may be able to get rid of this in the future.\n// TODO: Maybe combine with AsyncResolver?\nclass WebpackImportError extends CommandError {\n constructor(projectRoot: string, moduleId: string) {\n super(\n 'WEBPACK_IMPORT',\n `Missing package \"${moduleId}\" in the project. Try running the command again. (cwd: ${projectRoot})`\n );\n }\n}\n\nfunction resolveFromProject(projectRoot: string, moduleId: string) {\n const resolvedPath = resolveFrom.silent(projectRoot, moduleId);\n if (!resolvedPath) {\n throw new WebpackImportError(projectRoot, moduleId);\n }\n return resolvedPath;\n}\n\nfunction importFromProject(projectRoot: string, moduleId: string) {\n return require(resolveFromProject(projectRoot, moduleId));\n}\n\n/** Import `webpack` from the project. */\nexport function importWebpackFromProject(projectRoot: string): typeof import('webpack') {\n return importFromProject(projectRoot, 'webpack');\n}\n\n/** Import `@expo/webpack-config` from the project. */\nexport function importExpoWebpackConfigFromProject(\n projectRoot: string\n): typeof import('@expo/webpack-config') {\n return importFromProject(projectRoot, '@expo/webpack-config');\n}\n\n/** Import `webpack-dev-server` from the project. */\nexport function importWebpackDevServerFromProject(\n projectRoot: string\n): typeof import('webpack-dev-server') {\n return importFromProject(projectRoot, 'webpack-dev-server');\n}\n"],"names":["importWebpackFromProject","importExpoWebpackConfigFromProject","importWebpackDevServerFromProject","WebpackImportError","CommandError","constructor","projectRoot","moduleId","resolveFromProject","resolvedPath","resolveFrom","silent","importFromProject","require"],"mappings":"AAAA;;;;QA6BgBA,wBAAwB,GAAxBA,wBAAwB;QAKxBC,kCAAkC,GAAlCA,kCAAkC;QAOlCC,iCAAiC,GAAjCA,iCAAiC;AAzCzB,IAAA,YAAc,kCAAd,cAAc,EAAA;AAET,IAAA,OAAuB,WAAvB,uBAAuB,CAAA;;;;;;AAEpD,+DAA+D;AAC/D,mDAAmD;AACnD,0CAA0C;AAC1C,MAAMC,kBAAkB,SAASC,OAAY,aAAA;IAC3CC,YAAYC,WAAmB,EAAEC,QAAgB,CAAE;QACjD,KAAK,CACH,gBAAgB,EAChB,CAAC,iBAAiB,EAAEA,QAAQ,CAAC,uDAAuD,EAAED,WAAW,CAAC,CAAC,CAAC,CACrG,CAAC;KACH;CACF;AAED,SAASE,kBAAkB,CAACF,WAAmB,EAAEC,QAAgB,EAAE;IACjE,MAAME,YAAY,GAAGC,YAAW,QAAA,CAACC,MAAM,CAACL,WAAW,EAAEC,QAAQ,CAAC,AAAC;IAC/D,IAAI,CAACE,YAAY,EAAE;QACjB,MAAM,IAAIN,kBAAkB,CAACG,WAAW,EAAEC,QAAQ,CAAC,CAAC;KACrD;IACD,OAAOE,YAAY,CAAC;CACrB;AAED,SAASG,iBAAiB,CAACN,WAAmB,EAAEC,QAAgB,EAAE;IAChE,OAAOM,OAAO,CAACL,kBAAkB,CAACF,WAAW,EAAEC,QAAQ,CAAC,CAAC,CAAC;CAC3D;AAGM,SAASP,wBAAwB,CAACM,WAAmB,EAA4B;IACtF,OAAOM,iBAAiB,CAACN,WAAW,EAAE,SAAS,CAAC,CAAC;CAClD;AAGM,SAASL,kCAAkC,CAChDK,WAAmB,EACoB;IACvC,OAAOM,iBAAiB,CAACN,WAAW,EAAE,sBAAsB,CAAC,CAAC;CAC/D;AAGM,SAASJ,iCAAiC,CAC/CI,WAAmB,EACkB;IACrC,OAAOM,iBAAiB,CAACN,WAAW,EAAE,oBAAoB,CAAC,CAAC;CAC7D"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.ensureEnvironmentSupportsTLSAsync = ensureEnvironmentSupportsTLSAsync;
6
+ exports.getTLSCertAsync = getTLSCertAsync;
7
+ var _devcert = require("@expo/devcert");
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+ var _promises = _interopRequireDefault(require("fs/promises"));
10
+ var _path = _interopRequireDefault(require("path"));
11
+ var Log = _interopRequireWildcard(require("../../../log"));
12
+ var _dir = require("../../../utils/dir");
13
+ var _dotExpo = require("../../project/dotExpo");
14
+ function _interopRequireDefault(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function _interopRequireWildcard(obj) {
20
+ if (obj && obj.__esModule) {
21
+ return obj;
22
+ } else {
23
+ var newObj = {};
24
+ if (obj != null) {
25
+ for(var key in obj){
26
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
27
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
28
+ if (desc.get || desc.set) {
29
+ Object.defineProperty(newObj, key, desc);
30
+ } else {
31
+ newObj[key] = obj[key];
32
+ }
33
+ }
34
+ }
35
+ }
36
+ newObj.default = obj;
37
+ return newObj;
38
+ }
39
+ }
40
+ async function ensureEnvironmentSupportsTLSAsync(projectRoot) {
41
+ if (!process.env.SSL_CRT_FILE || !process.env.SSL_KEY_FILE) {
42
+ const tls = await getTLSCertAsync(projectRoot);
43
+ if (tls) {
44
+ process.env.SSL_CRT_FILE = tls.certPath;
45
+ process.env.SSL_KEY_FILE = tls.keyPath;
46
+ }
47
+ }
48
+ }
49
+ async function getTLSCertAsync(projectRoot) {
50
+ Log.log(_chalk.default`Creating TLS certificate for localhost. {dim This functionality may not work on all computers.}`);
51
+ const name = "localhost";
52
+ const result = await (0, _devcert).certificateFor(name);
53
+ if (result) {
54
+ const dotExpoDir = (0, _dotExpo).ensureDotExpoProjectDirectoryInitialized(projectRoot);
55
+ const { key , cert } = result;
56
+ const folder = _path.default.join(dotExpoDir, "tls");
57
+ const keyPath = _path.default.join(folder, `key-${name}.pem`);
58
+ const certPath = _path.default.join(folder, `cert-${name}.pem`);
59
+ await (0, _dir).ensureDirectoryAsync(folder);
60
+ await Promise.allSettled([
61
+ _promises.default.writeFile(keyPath, key),
62
+ _promises.default.writeFile(certPath, cert)
63
+ ]);
64
+ return {
65
+ keyPath,
66
+ certPath
67
+ };
68
+ }
69
+ return result;
70
+ }
71
+
72
+ //# sourceMappingURL=tls.js.map