@expo/cli 0.18.0 → 0.18.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 (653) hide show
  1. package/build/bin/cli +90 -114
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/endpoint.js +11 -3
  4. package/build/src/api/endpoint.js.map +1 -1
  5. package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
  6. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +13 -11
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/getNativeModuleVersions.js +7 -4
  10. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  11. package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
  12. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  13. package/build/src/api/getVersions.js +7 -4
  14. package/build/src/api/getVersions.js.map +1 -1
  15. package/build/src/api/graphql/client.js +55 -35
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +9 -7
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +7 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +6 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +6 -4
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +4 -1
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +21 -12
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +36 -29
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +4 -1
  32. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
  34. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
  36. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProxy.js +7 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +9 -4
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +16 -8
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +10 -8
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +66 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +46 -25
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +70 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +66 -41
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +62 -43
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +46 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +14 -11
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +61 -46
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +10 -8
  62. package/build/src/customize/index.js.map +1 -1
  63. package/build/src/customize/resolveOptions.js +7 -4
  64. package/build/src/customize/resolveOptions.js.map +1 -1
  65. package/build/src/customize/templates.js +31 -34
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +43 -28
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +7 -6
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +51 -38
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +48 -36
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +7 -4
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +20 -8
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +84 -67
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +62 -43
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +47 -26
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +19 -11
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +49 -38
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +19 -11
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +42 -39
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +9 -6
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +7 -4
  96. package/build/src/export/getResolvedLocales.js.map +1 -1
  97. package/build/src/export/html.js +12 -4
  98. package/build/src/export/html.js.map +1 -1
  99. package/build/src/export/index.js +49 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +22 -6
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +38 -24
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +15 -7
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +19 -15
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +42 -38
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +15 -12
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +47 -31
  114. package/build/src/export/web/index.js.map +1 -1
  115. package/build/src/export/web/resolveOptions.js +4 -1
  116. package/build/src/export/web/resolveOptions.js.map +1 -1
  117. package/build/src/export/writeContents.js +12 -7
  118. package/build/src/export/writeContents.js.map +1 -1
  119. package/build/src/graphql/generated.js +141 -128
  120. package/build/src/graphql/generated.js.map +1 -1
  121. package/build/src/install/applyPlugins.js +43 -25
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +55 -35
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +52 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +15 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +90 -65
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +48 -27
  132. package/build/src/install/installExpoPackage.js.map +1 -1
  133. package/build/src/install/resolveOptions.js +8 -5
  134. package/build/src/install/resolveOptions.js.map +1 -1
  135. package/build/src/install/utils/autoAddConfigPlugins.js +15 -7
  136. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  137. package/build/src/lint/ESlintPrerequisite.js +174 -0
  138. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  139. package/build/src/lint/index.js +66 -0
  140. package/build/src/lint/index.js.map +1 -0
  141. package/build/src/lint/lintAsync.js +33 -0
  142. package/build/src/lint/lintAsync.js.map +1 -0
  143. package/build/src/log.js +20 -14
  144. package/build/src/log.js.map +1 -1
  145. package/build/src/login/index.js +43 -25
  146. package/build/src/login/index.js.map +1 -1
  147. package/build/src/logout/index.js +43 -25
  148. package/build/src/logout/index.js.map +1 -1
  149. package/build/src/prebuild/clearNativeFolder.js +65 -42
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +50 -29
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +19 -13
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +54 -28
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +52 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +68 -51
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +15 -10
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  163. package/build/src/prebuild/resolveOptions.js +60 -35
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +66 -40
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +67 -44
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +70 -49
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +44 -23
  172. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  173. package/build/src/register/index.js +43 -25
  174. package/build/src/register/index.js.map +1 -1
  175. package/build/src/register/registerAsync.js +14 -11
  176. package/build/src/register/registerAsync.js.map +1 -1
  177. package/build/src/run/android/index.js +47 -31
  178. package/build/src/run/android/index.js.map +1 -1
  179. package/build/src/run/android/resolveDevice.js +9 -6
  180. package/build/src/run/android/resolveDevice.js.map +1 -1
  181. package/build/src/run/android/resolveGradlePropsAsync.js +10 -9
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  183. package/build/src/run/android/resolveInstallApkName.js +14 -12
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +6 -3
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +12 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +27 -24
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +11 -8
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +15 -7
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +49 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +75 -51
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +31 -24
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +66 -33
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +73 -47
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +53 -26
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +15 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +54 -27
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +56 -30
  212. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  213. package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
  214. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  215. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +22 -13
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +57 -31
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +79 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +28 -14
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +24 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +26 -13
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +23 -10
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +27 -20
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +49 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +61 -36
  234. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  235. package/build/src/run/ios/codeSigning/settings.js +11 -3
  236. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  237. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +7 -5
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +14 -8
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +50 -34
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +52 -31
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +17 -13
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +63 -39
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +57 -34
  250. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  251. package/build/src/run/ios/options/resolveOptions.js +15 -12
  252. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  253. package/build/src/run/ios/options/resolveXcodeProject.js +6 -3
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +63 -42
  256. package/build/src/run/ios/runIosAsync.js.map +1 -1
  257. package/build/src/run/resolveBundlerProps.js +8 -5
  258. package/build/src/run/resolveBundlerProps.js.map +1 -1
  259. package/build/src/run/startBundler.js +47 -26
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +6 -3
  262. package/build/src/start/detectDevClient.js.map +1 -1
  263. package/build/src/start/doctor/Prerequisite.js +15 -7
  264. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  265. package/build/src/start/doctor/SecurityBinPrerequisite.js +7 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +44 -23
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +44 -23
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +61 -36
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +15 -12
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +49 -28
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +98 -53
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -9
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +23 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +19 -13
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +63 -41
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +64 -39
  288. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  289. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
  290. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  291. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +59 -41
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +59 -36
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +57 -31
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +56 -42
  298. package/build/src/start/index.js.map +1 -1
  299. package/build/src/start/interface/KeyPressHandler.js +43 -22
  300. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  301. package/build/src/start/interface/commandsTable.js +60 -38
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +85 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +78 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +9 -6
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +41 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +55 -35
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +19 -17
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +15 -12
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +6 -4
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +70 -50
  320. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  321. package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
  322. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  323. package/build/src/start/platforms/android/AndroidSdk.js +11 -8
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +43 -22
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +73 -52
  328. package/build/src/start/platforms/android/adb.js.map +1 -1
  329. package/build/src/start/platforms/android/adbReverse.js +57 -31
  330. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  331. package/build/src/start/platforms/android/emulator.js +63 -42
  332. package/build/src/start/platforms/android/emulator.js.map +1 -1
  333. package/build/src/start/platforms/android/getDevices.js +11 -10
  334. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  335. package/build/src/start/platforms/android/gradle.js +18 -11
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +14 -14
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +7 -4
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +80 -54
  342. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  343. package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
  344. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  345. package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -8
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +50 -29
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +53 -29
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +18 -12
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +65 -42
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +67 -44
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +8 -5
  358. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  359. package/build/src/start/project/devices.js +19 -16
  360. package/build/src/start/project/devices.js.map +1 -1
  361. package/build/src/start/project/dotExpo.js +13 -5
  362. package/build/src/start/project/dotExpo.js.map +1 -1
  363. package/build/src/start/project/settings.js +6 -4
  364. package/build/src/start/project/settings.js.map +1 -1
  365. package/build/src/start/resolveOptions.js +26 -19
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +66 -46
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +64 -44
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +81 -69
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +21 -16
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +49 -31
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +14 -6
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +44 -23
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +46 -34
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +135 -108
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +24 -17
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +18 -8
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/createExpoMetroResolver.js +31 -20
  390. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  391. package/build/src/start/server/metro/createJResolver.js +76 -51
  392. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  393. package/build/src/start/server/metro/createServerRouteMiddleware.js +22 -14
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  395. package/build/src/start/server/metro/debugging/MessageHandler.js +4 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  397. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +10 -9
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  399. package/build/src/start/server/metro/debugging/createHandlersFactory.js +14 -13
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  401. package/build/src/start/server/metro/debugging/getDebuggerType.js +5 -2
  402. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  403. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +5 -2
  404. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  405. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +5 -2
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -1
  407. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -4
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +7 -4
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -4
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +7 -4
  414. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  415. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -1
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  417. package/build/src/start/server/metro/externals.js +21 -10
  418. package/build/src/start/server/metro/externals.js.map +1 -1
  419. package/build/src/start/server/metro/fetchRouterManifest.js +20 -7
  420. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  421. package/build/src/start/server/metro/formatFileCandidates.js +21 -17
  422. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  423. package/build/src/start/server/metro/getCssModulesFromBundler.js +15 -7
  424. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  425. package/build/src/start/server/metro/instantiateMetro.js +57 -44
  426. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  427. package/build/src/start/server/metro/metroErrorInterface.js +43 -34
  428. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrors.js +11 -2
  430. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  431. package/build/src/start/server/metro/metroVirtualModules.js +10 -2
  432. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  433. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +5 -2
  434. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  435. package/build/src/start/server/metro/router.js +27 -20
  436. package/build/src/start/server/metro/router.js.map +1 -1
  437. package/build/src/start/server/metro/runServer-fork.js +21 -14
  438. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  439. package/build/src/start/server/metro/serializeHtml.js +7 -7
  440. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  441. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +12 -4
  442. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  443. package/build/src/start/server/metro/withMetroMultiPlatform.js +107 -81
  444. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroResolvers.js +72 -42
  446. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  447. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  448. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  449. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CreateFileMiddleware.js +13 -5
  452. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +15 -12
  454. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +30 -23
  456. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoMiddleware.js +47 -21
  458. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  460. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  462. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +23 -16
  464. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/ManifestMiddleware.js +84 -60
  466. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +14 -7
  468. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +47 -26
  470. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -8
  472. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/inspector/JsInspector.js +30 -24
  474. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +16 -8
  476. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +16 -12
  480. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +59 -37
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +22 -16
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +9 -6
  486. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  488. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  489. package/build/src/start/server/middleware/metroOptions.js +26 -18
  490. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  491. package/build/src/start/server/middleware/mutations.js +11 -4
  492. package/build/src/start/server/middleware/mutations.js.map +1 -1
  493. package/build/src/start/server/middleware/resolveAssets.js +65 -41
  494. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  495. package/build/src/start/server/middleware/resolvePlatform.js +14 -6
  496. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  497. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  498. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  499. package/build/src/start/server/openPlatforms.js +7 -6
  500. package/build/src/start/server/openPlatforms.js.map +1 -1
  501. package/build/src/start/server/platformBundlers.js +5 -2
  502. package/build/src/start/server/platformBundlers.js.map +1 -1
  503. package/build/src/start/server/serverLogLikeMetro.js +62 -33
  504. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  505. package/build/src/start/server/type-generation/expo-env.js +12 -4
  506. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  507. package/build/src/start/server/type-generation/routes.js +52 -51
  508. package/build/src/start/server/type-generation/routes.js.map +1 -1
  509. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +22 -19
  510. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  511. package/build/src/start/server/type-generation/tsconfig.js +18 -11
  512. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  513. package/build/src/start/server/webTemplate.js +21 -15
  514. package/build/src/start/server/webTemplate.js.map +1 -1
  515. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +81 -56
  516. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  517. package/build/src/start/server/webpack/compile.js +47 -26
  518. package/build/src/start/server/webpack/compile.js.map +1 -1
  519. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  520. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  521. package/build/src/start/server/webpack/resolveFromProject.js +13 -5
  522. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  523. package/build/src/start/server/webpack/tls.js +54 -28
  524. package/build/src/start/server/webpack/tls.js.map +1 -1
  525. package/build/src/start/startAsync.js +73 -52
  526. package/build/src/start/startAsync.js.map +1 -1
  527. package/build/src/utils/FileNotifier.js +46 -25
  528. package/build/src/utils/FileNotifier.js.map +1 -1
  529. package/build/src/utils/analytics/getDevClientProperties.js +29 -21
  530. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  531. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  532. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  535. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  536. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  537. package/build/src/utils/ansi.js +5 -2
  538. package/build/src/utils/ansi.js.map +1 -1
  539. package/build/src/utils/args.js +57 -29
  540. package/build/src/utils/args.js.map +1 -1
  541. package/build/src/utils/array.js +16 -9
  542. package/build/src/utils/array.js.map +1 -1
  543. package/build/src/utils/cocoapods.js +77 -53
  544. package/build/src/utils/cocoapods.js.map +1 -1
  545. package/build/src/utils/codesigning.js +80 -58
  546. package/build/src/utils/codesigning.js.map +1 -1
  547. package/build/src/utils/createFileTransform.js +13 -5
  548. package/build/src/utils/createFileTransform.js.map +1 -1
  549. package/build/src/utils/delay.js +13 -6
  550. package/build/src/utils/delay.js.map +1 -1
  551. package/build/src/utils/dir.js +24 -21
  552. package/build/src/utils/dir.js.map +1 -1
  553. package/build/src/utils/downloadAppAsync.js +16 -13
  554. package/build/src/utils/downloadAppAsync.js.map +1 -1
  555. package/build/src/utils/downloadExpoGoAsync.js +26 -20
  556. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  557. package/build/src/utils/editor.js +50 -24
  558. package/build/src/utils/editor.js.map +1 -1
  559. package/build/src/utils/env.js +35 -33
  560. package/build/src/utils/env.js.map +1 -1
  561. package/build/src/utils/errors.js +17 -9
  562. package/build/src/utils/errors.js.map +1 -1
  563. package/build/src/utils/exit.js +10 -7
  564. package/build/src/utils/exit.js.map +1 -1
  565. package/build/src/utils/findUp.js +22 -4
  566. package/build/src/utils/findUp.js.map +1 -1
  567. package/build/src/utils/fn.js +11 -3
  568. package/build/src/utils/fn.js.map +1 -1
  569. package/build/src/utils/getOrPromptApplicationId.js +71 -45
  570. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  571. package/build/src/utils/getRunningProcess.js +52 -26
  572. package/build/src/utils/getRunningProcess.js.map +1 -1
  573. package/build/src/utils/git.js +64 -38
  574. package/build/src/utils/git.js.map +1 -1
  575. package/build/src/utils/glob.js +14 -9
  576. package/build/src/utils/glob.js.map +1 -1
  577. package/build/src/utils/interactive.js +5 -2
  578. package/build/src/utils/interactive.js.map +1 -1
  579. package/build/src/utils/ip.js +5 -2
  580. package/build/src/utils/ip.js.map +1 -1
  581. package/build/src/utils/isModuleSymlinked.js +7 -4
  582. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  583. package/build/src/utils/link.js +13 -5
  584. package/build/src/utils/link.js.map +1 -1
  585. package/build/src/utils/mergeGitIgnorePaths.js +22 -17
  586. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  587. package/build/src/utils/modifyConfigAsync.js +56 -30
  588. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  589. package/build/src/utils/modifyConfigPlugins.js +43 -22
  590. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  591. package/build/src/utils/nodeEnv.js +6 -1
  592. package/build/src/utils/nodeEnv.js.map +1 -1
  593. package/build/src/utils/nodeModules.js +9 -6
  594. package/build/src/utils/nodeModules.js.map +1 -1
  595. package/build/src/utils/npm.js +32 -24
  596. package/build/src/utils/npm.js.map +1 -1
  597. package/build/src/utils/obj.js +12 -4
  598. package/build/src/utils/obj.js.map +1 -1
  599. package/build/src/utils/open.js +7 -4
  600. package/build/src/utils/open.js.map +1 -1
  601. package/build/src/utils/ora.js +25 -21
  602. package/build/src/utils/ora.js.map +1 -1
  603. package/build/src/utils/plist.js +53 -27
  604. package/build/src/utils/plist.js.map +1 -1
  605. package/build/src/utils/port.js +58 -32
  606. package/build/src/utils/port.js.map +1 -1
  607. package/build/src/utils/profile.js +49 -28
  608. package/build/src/utils/profile.js.map +1 -1
  609. package/build/src/utils/progress.js +16 -12
  610. package/build/src/utils/progress.js.map +1 -1
  611. package/build/src/utils/prompts.js +33 -28
  612. package/build/src/utils/prompts.js.map +1 -1
  613. package/build/src/utils/resolveArgs.js +23 -20
  614. package/build/src/utils/resolveArgs.js.map +1 -1
  615. package/build/src/utils/scheme.js +61 -37
  616. package/build/src/utils/scheme.js.map +1 -1
  617. package/build/src/utils/strings.js +11 -4
  618. package/build/src/utils/strings.js.map +1 -1
  619. package/build/src/utils/tar.js +43 -22
  620. package/build/src/utils/tar.js.map +1 -1
  621. package/build/src/utils/telemetry/DetachedClient.js +8 -5
  622. package/build/src/utils/telemetry/DetachedClient.js.map +1 -1
  623. package/build/src/utils/telemetry/RudderClient.js +12 -9
  624. package/build/src/utils/telemetry/RudderClient.js.map +1 -1
  625. package/build/src/utils/telemetry/flushDetached.js +8 -7
  626. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  627. package/build/src/utils/telemetry/getContext.js +48 -28
  628. package/build/src/utils/telemetry/getContext.js.map +1 -1
  629. package/build/src/utils/telemetry/index.js +16 -11
  630. package/build/src/utils/telemetry/index.js.map +1 -1
  631. package/build/src/utils/template.js +27 -2
  632. package/build/src/utils/template.js.map +1 -1
  633. package/build/src/utils/terminal.js +5 -2
  634. package/build/src/utils/terminal.js.map +1 -1
  635. package/build/src/utils/tsconfig/evaluateTsConfig.js +18 -12
  636. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  637. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -10
  638. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  639. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  640. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  641. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -9
  642. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/url.js +17 -10
  644. package/build/src/utils/url.js.map +1 -1
  645. package/build/src/utils/validateApplicationId.js +32 -25
  646. package/build/src/utils/validateApplicationId.js.map +1 -1
  647. package/build/src/utils/variadic.js +15 -11
  648. package/build/src/utils/variadic.js.map +1 -1
  649. package/build/src/whoami/index.js +43 -25
  650. package/build/src/whoami/index.js.map +1 -1
  651. package/build/src/whoami/whoamiAsync.js +44 -23
  652. package/build/src/whoami/whoamiAsync.js.map +1 -1
  653. package/package.json +4 -4
@@ -2,60 +2,81 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ Object.defineProperty(exports, "BundlerDevServer", {
6
+ enumerable: true,
7
+ get: ()=>BundlerDevServer
8
+ });
5
9
  function _assert() {
6
- const data = _interopRequireDefault(require("assert"));
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
7
11
  _assert = function() {
8
12
  return data;
9
13
  };
10
14
  return data;
11
15
  }
12
16
  function _resolveFrom() {
13
- const data = _interopRequireDefault(require("resolve-from"));
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
14
18
  _resolveFrom = function() {
15
19
  return data;
16
20
  };
17
21
  return data;
18
22
  }
19
- var _asyncNgrok = require("./AsyncNgrok");
20
- var _devToolsPluginManager = _interopRequireDefault(require("./DevToolsPluginManager"));
21
- var _developmentSession = require("./DevelopmentSession");
22
- var _urlCreator = require("./UrlCreator");
23
- var Log = _interopRequireWildcard(require("../../log"));
24
- var _fileNotifier = require("../../utils/FileNotifier");
25
- var _delay = require("../../utils/delay");
26
- var _env = require("../../utils/env");
27
- var _errors = require("../../utils/errors");
28
- var _open = require("../../utils/open");
23
+ const _asyncNgrok = require("./AsyncNgrok");
24
+ const _devToolsPluginManager = /*#__PURE__*/ _interopRequireDefault(require("./DevToolsPluginManager"));
25
+ const _developmentSession = require("./DevelopmentSession");
26
+ const _urlCreator = require("./UrlCreator");
27
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../log"));
28
+ const _fileNotifier = require("../../utils/FileNotifier");
29
+ const _delay = require("../../utils/delay");
30
+ const _env = require("../../utils/env");
31
+ const _errors = require("../../utils/errors");
32
+ const _open = require("../../utils/open");
29
33
  function _interopRequireDefault(obj) {
30
34
  return obj && obj.__esModule ? obj : {
31
35
  default: obj
32
36
  };
33
37
  }
34
- function _interopRequireWildcard(obj) {
35
- if (obj && obj.__esModule) {
38
+ function _getRequireWildcardCache(nodeInterop) {
39
+ if (typeof WeakMap !== "function") return null;
40
+ var cacheBabelInterop = new WeakMap();
41
+ var cacheNodeInterop = new WeakMap();
42
+ return (_getRequireWildcardCache = function(nodeInterop) {
43
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
44
+ })(nodeInterop);
45
+ }
46
+ function _interopRequireWildcard(obj, nodeInterop) {
47
+ if (!nodeInterop && obj && obj.__esModule) {
36
48
  return obj;
37
- } else {
38
- var newObj = {};
39
- if (obj != null) {
40
- for(var key in obj){
41
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
42
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
43
- if (desc.get || desc.set) {
44
- Object.defineProperty(newObj, key, desc);
45
- } else {
46
- newObj[key] = obj[key];
47
- }
48
- }
49
+ }
50
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
51
+ return {
52
+ default: obj
53
+ };
54
+ }
55
+ var cache = _getRequireWildcardCache(nodeInterop);
56
+ if (cache && cache.has(obj)) {
57
+ return cache.get(obj);
58
+ }
59
+ var newObj = {};
60
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
61
+ for(var key in obj){
62
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
63
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
64
+ if (desc && (desc.get || desc.set)) {
65
+ Object.defineProperty(newObj, key, desc);
66
+ } else {
67
+ newObj[key] = obj[key];
49
68
  }
50
69
  }
51
- newObj.default = obj;
52
- return newObj;
53
70
  }
71
+ newObj.default = obj;
72
+ if (cache) {
73
+ cache.set(obj, newObj);
74
+ }
75
+ return newObj;
54
76
  }
55
77
  const debug = require("debug")("expo:start:server:devServer");
56
78
  const PLATFORM_MANAGERS = {
57
- simulator: ()=>require("../platforms/ios/ApplePlatformManager").ApplePlatformManager
58
- ,
79
+ simulator: ()=>require("../platforms/ios/ApplePlatformManager").ApplePlatformManager,
59
80
  emulator: ()=>require("../platforms/android/AndroidPlatformManager").AndroidPlatformManager
60
81
  };
61
82
  class BundlerDevServer {
@@ -166,8 +187,8 @@ class BundlerDevServer {
166
187
  async startDevSessionAsync() {
167
188
  var // This is used to make Expo Go open the project in either Expo Go, or the web browser.
168
189
  // Must come after ngrok (`startTunnelAsync`) setup.
169
- ref2;
170
- (ref2 = this.devSession) == null ? void 0 : ref2.stopNotifying == null ? void 0 : ref2.stopNotifying();
190
+ ref;
191
+ (ref = this.devSession) == null ? void 0 : ref.stopNotifying == null ? void 0 : ref.stopNotifying();
171
192
  this.devSession = new _developmentSession.DevelopmentSession(this.projectRoot, // This URL will be used on external devices so the computer IP won't be relevant.
172
193
  this.isTargetingNative() ? this.getNativeRuntimeUrl() : this.getDevServerUrl({
173
194
  hostType: "localhost"
@@ -211,16 +232,16 @@ class BundlerDevServer {
211
232
  }
212
233
  /** Stop the running dev server instance. */ async stopAsync() {
213
234
  var // Stop file watching.
214
- ref5, ref3, ref4;
215
- (ref5 = this.notifier) == null ? void 0 : ref5.stopObserving();
235
+ ref, ref1, ref2;
236
+ (ref = this.notifier) == null ? void 0 : ref.stopObserving();
216
237
  // Stop the dev session timer and tell Expo API to remove dev session.
217
- await ((ref3 = this.devSession) == null ? void 0 : ref3.closeAsync());
238
+ await ((ref1 = this.devSession) == null ? void 0 : ref1.closeAsync());
218
239
  // Stop ngrok if running.
219
- await ((ref4 = this.ngrok) == null ? void 0 : ref4.stopAsync().catch((e)=>{
220
- Log.error(`Error stopping ngrok:`);
221
- Log.exception(e);
240
+ await ((ref2 = this.ngrok) == null ? void 0 : ref2.stopAsync().catch((e)=>{
241
+ _log.error(`Error stopping ngrok:`);
242
+ _log.exception(e);
222
243
  }));
223
- return (0, _delay).resolveWithTimeout(()=>{
244
+ return (0, _delay.resolveWithTimeout)(()=>{
224
245
  return new Promise((resolve, reject)=>{
225
246
  var ref;
226
247
  // Close the server.
@@ -249,7 +270,7 @@ class BundlerDevServer {
249
270
  }
250
271
  getUrlCreator(options = {}) {
251
272
  if (!this.urlCreator) {
252
- _assert().default(options == null ? void 0 : options.port, "Dev server instance not found");
273
+ (0, _assert().default)(options == null ? void 0 : options.port, "Dev server instance not found");
253
274
  this.urlCreator = new _urlCreator.UrlCreator(options.location, {
254
275
  port: options.port,
255
276
  getTunnelUrl: this.getTunnelUrl.bind(this)
@@ -286,8 +307,8 @@ class BundlerDevServer {
286
307
  }
287
308
  /** Get the tunnel URL from ngrok. */ getTunnelUrl() {
288
309
  var ref;
289
- var ref6;
290
- return (ref6 = (ref = this.ngrok) == null ? void 0 : ref.getActiveUrl()) != null ? ref6 : null;
310
+ var ref1;
311
+ return (ref1 = (ref = this.ngrok) == null ? void 0 : ref.getActiveUrl()) != null ? ref1 : null;
291
312
  }
292
313
  /** Open the dev server in a runtime. */ async openPlatformAsync(launchTarget, resolver = {}) {
293
314
  if (launchTarget === "desktop") {
@@ -297,7 +318,7 @@ class BundlerDevServer {
297
318
  var ref;
298
319
  // Allow opening the tunnel URL when using Metro web.
299
320
  const url = this.name === "metro" ? (ref = this.getTunnelUrl()) != null ? ref : serverUrl : serverUrl;
300
- await (0, _open).openBrowserAsync(url);
321
+ await (0, _open.openBrowserAsync)(url);
301
322
  return {
302
323
  url
303
324
  };
@@ -363,6 +384,5 @@ class BundlerDevServer {
363
384
  return this.platformManagers[platform];
364
385
  }
365
386
  }
366
- exports.BundlerDevServer = BundlerDevServer;
367
387
 
368
388
  //# sourceMappingURL=BundlerDevServer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/start/server/BundlerDevServer.ts"],"sourcesContent":["import assert from 'assert';\nimport resolveFrom from 'resolve-from';\n\nimport { AsyncNgrok } from './AsyncNgrok';\nimport DevToolsPluginManager from './DevToolsPluginManager';\nimport { DevelopmentSession } from './DevelopmentSession';\nimport { CreateURLOptions, UrlCreator } from './UrlCreator';\nimport { PlatformBundlers } from './platformBundlers';\nimport * as Log from '../../log';\nimport { FileNotifier } from '../../utils/FileNotifier';\nimport { resolveWithTimeout } from '../../utils/delay';\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { openBrowserAsync } from '../../utils/open';\nimport {\n BaseOpenInCustomProps,\n BaseResolveDeviceProps,\n PlatformManager,\n} from '../platforms/PlatformManager';\n\nconst debug = require('debug')('expo:start:server:devServer') as typeof console.log;\n\nexport type MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\nexport type ServerLike = {\n close(callback?: (err?: Error) => void): void;\n addListener?(event: string, listener: (...args: any[]) => void): unknown;\n};\n\nexport type DevServerInstance = {\n /** Bundler dev server instance. */\n server: ServerLike;\n /** Dev server URL location properties. */\n location: {\n url: string;\n port: number;\n protocol: 'http' | 'https';\n host?: string;\n };\n /** Additional middleware that's attached to the `server`. */\n middleware: any;\n /** Message socket for communicating with the runtime. */\n messageSocket: MessageSocket;\n};\n\nexport interface BundlerStartOptions {\n /** Should the dev server use `https` protocol. */\n https?: boolean;\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Is dev client enabled. */\n devClient?: boolean;\n /** Should run dev servers with clean caches. */\n resetDevServer?: boolean;\n /** Code signing private key path (defaults to same directory as certificate) */\n privateKeyPath?: string;\n\n /** Max amount of workers (threads) to use with Metro bundler, defaults to undefined for max workers. */\n maxWorkers?: number;\n /** Port to start the dev server on. */\n port?: number;\n\n /** Should start a headless dev server e.g. mock representation to approximate info from a server running in a different process. */\n headless?: boolean;\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n\n /** Will the bundler be used for exporting. NOTE: This is an odd option to pass to the dev server. */\n isExporting?: boolean;\n\n // Webpack options\n /** Should modify and create PWA icons. */\n isImageEditingEnabled?: boolean;\n\n location: CreateURLOptions;\n}\n\nconst PLATFORM_MANAGERS = {\n simulator: () =>\n require('../platforms/ios/ApplePlatformManager')\n .ApplePlatformManager as typeof import('../platforms/ios/ApplePlatformManager').ApplePlatformManager,\n emulator: () =>\n require('../platforms/android/AndroidPlatformManager')\n .AndroidPlatformManager as typeof import('../platforms/android/AndroidPlatformManager').AndroidPlatformManager,\n};\n\nexport abstract class BundlerDevServer {\n /** Name of the bundler. */\n abstract get name(): string;\n\n /** Ngrok instance for managing tunnel connections. */\n protected ngrok: AsyncNgrok | null = null;\n /** Interfaces with the Expo 'Development Session' API. */\n protected devSession: DevelopmentSession | null = null;\n /** Http server and related info. */\n protected instance: DevServerInstance | null = null;\n /** Native platform interfaces for opening projects. */\n private platformManagers: Record<string, PlatformManager<any>> = {};\n /** Manages the creation of dev server URLs. */\n protected urlCreator?: UrlCreator | null = null;\n\n private notifier: FileNotifier | null = null;\n protected readonly devToolsPluginManager: DevToolsPluginManager;\n public isDevClient: boolean;\n\n constructor(\n /** Project root folder. */\n public projectRoot: string,\n /** A mapping of bundlers to platforms. */\n public platformBundlers: PlatformBundlers,\n /** Advanced options */\n options?: {\n /**\n * The instance of DevToolsPluginManager\n * @default new DevToolsPluginManager(projectRoot)\n */\n devToolsPluginManager?: DevToolsPluginManager;\n // TODO: Replace with custom scheme maybe...\n isDevClient?: boolean;\n }\n ) {\n this.devToolsPluginManager =\n options?.devToolsPluginManager ?? new DevToolsPluginManager(projectRoot);\n this.isDevClient = options?.isDevClient ?? false;\n }\n\n protected setInstance(instance: DevServerInstance) {\n this.instance = instance;\n }\n\n /** Get the manifest middleware function. */\n protected async getManifestMiddlewareAsync(\n options: Pick<BundlerStartOptions, 'minify' | 'mode' | 'privateKeyPath'> = {}\n ) {\n const Middleware = require('./middleware/ExpoGoManifestHandlerMiddleware')\n .ExpoGoManifestHandlerMiddleware as typeof import('./middleware/ExpoGoManifestHandlerMiddleware').ExpoGoManifestHandlerMiddleware;\n\n const urlCreator = this.getUrlCreator();\n const middleware = new Middleware(this.projectRoot, {\n constructUrl: urlCreator.constructUrl.bind(urlCreator),\n mode: options.mode,\n minify: options.minify,\n isNativeWebpack: this.name === 'webpack' && this.isTargetingNative(),\n privateKeyPath: options.privateKeyPath,\n });\n return middleware;\n }\n\n /** Start the dev server using settings defined in the start command. */\n public async startAsync(options: BundlerStartOptions): Promise<DevServerInstance> {\n await this.stopAsync();\n\n let instance: DevServerInstance;\n if (options.headless) {\n instance = await this.startHeadlessAsync(options);\n } else {\n instance = await this.startImplementationAsync(options);\n }\n\n this.setInstance(instance);\n await this.postStartAsync(options);\n return instance;\n }\n\n protected abstract startImplementationAsync(\n options: BundlerStartOptions\n ): Promise<DevServerInstance>;\n\n public async waitForTypeScriptAsync(): Promise<boolean> {\n return false;\n }\n\n public abstract startTypeScriptServices(): Promise<void>;\n\n public async watchEnvironmentVariables(): Promise<void> {\n // noop -- We've only implemented this functionality in Metro.\n }\n\n /**\n * Creates a mock server representation that can be used to estimate URLs for a server started in another process.\n * This is used for the run commands where you can reuse the server from a previous run.\n */\n private async startHeadlessAsync(options: BundlerStartOptions): Promise<DevServerInstance> {\n if (!options.port)\n throw new CommandError('HEADLESS_SERVER', 'headless dev server requires a port option');\n this.urlCreator = this.getUrlCreator(options);\n\n return {\n // Create a mock server\n server: {\n close: () => {\n this.instance = null;\n },\n addListener() {},\n },\n location: {\n // The port is the main thing we want to send back.\n port: options.port,\n // localhost isn't always correct.\n host: 'localhost',\n // http is the only supported protocol on native.\n url: `http://localhost:${options.port}`,\n protocol: 'http',\n },\n middleware: {},\n messageSocket: {\n broadcast: () => {\n throw new CommandError('HEADLESS_SERVER', 'Cannot broadcast messages to headless server');\n },\n },\n };\n }\n\n /**\n * Runs after the `startAsync` function, performing any additional common operations.\n * You can assume the dev server is started by the time this function is called.\n */\n protected async postStartAsync(options: BundlerStartOptions) {\n if (\n options.location.hostType === 'tunnel' &&\n !env.EXPO_OFFLINE &&\n // This is a hack to prevent using tunnel on web since we block it upstream for some reason.\n this.isTargetingNative()\n ) {\n await this._startTunnelAsync();\n }\n await this.startDevSessionAsync();\n\n this.watchConfig();\n }\n\n protected abstract getConfigModuleIds(): string[];\n\n protected watchConfig() {\n this.notifier?.stopObserving();\n this.notifier = new FileNotifier(this.projectRoot, this.getConfigModuleIds());\n this.notifier.startObserving();\n }\n\n /** Create ngrok instance and start the tunnel server. Exposed for testing. */\n public async _startTunnelAsync(): Promise<AsyncNgrok | null> {\n const port = this.getInstance()?.location.port;\n if (!port) return null;\n debug('[ngrok] connect to port: ' + port);\n this.ngrok = new AsyncNgrok(this.projectRoot, port);\n await this.ngrok.startAsync();\n return this.ngrok;\n }\n\n protected async startDevSessionAsync() {\n // This is used to make Expo Go open the project in either Expo Go, or the web browser.\n // Must come after ngrok (`startTunnelAsync`) setup.\n this.devSession?.stopNotifying?.();\n this.devSession = new DevelopmentSession(\n this.projectRoot,\n // This URL will be used on external devices so the computer IP won't be relevant.\n this.isTargetingNative()\n ? this.getNativeRuntimeUrl()\n : this.getDevServerUrl({ hostType: 'localhost' }),\n () => {\n // TODO: This appears to be happening consistently after an hour.\n // We should investigate why this is happening and fix it on our servers.\n // Log.error(\n // chalk.red(\n // '\\nAn unexpected error occurred while updating the Dev Session API. This project will not appear in the \"Development servers\" section of the Expo Go app until this process has been restarted.'\n // )\n // );\n // Log.exception(error);\n this.devSession?.closeAsync().catch((error) => {\n debug('[dev-session] error closing: ' + error.message);\n });\n }\n );\n\n await this.devSession.startAsync({\n runtime: this.isTargetingNative() ? 'native' : 'web',\n });\n }\n\n public isTargetingNative() {\n // Temporary hack while we implement multi-bundler dev server proxy.\n return true;\n }\n\n public isTargetingWeb() {\n return this.platformBundlers.web === this.name;\n }\n\n /**\n * Sends a message over web sockets to any connected device,\n * does nothing when the dev server is not running.\n *\n * @param method name of the command. In RN projects `reload`, and `devMenu` are available. In Expo Go, `sendDevCommand` is available.\n * @param params\n */\n public broadcastMessage(\n method: 'reload' | 'devMenu' | 'sendDevCommand',\n params?: Record<string, any>\n ) {\n this.getInstance()?.messageSocket.broadcast(method, params);\n }\n\n /** Get the running dev server instance. */\n public getInstance() {\n return this.instance;\n }\n\n /** Stop the running dev server instance. */\n async stopAsync() {\n // Stop file watching.\n this.notifier?.stopObserving();\n\n // Stop the dev session timer and tell Expo API to remove dev session.\n await this.devSession?.closeAsync();\n\n // Stop ngrok if running.\n await this.ngrok?.stopAsync().catch((e) => {\n Log.error(`Error stopping ngrok:`);\n Log.exception(e);\n });\n\n return resolveWithTimeout(\n () =>\n new Promise<void>((resolve, reject) => {\n // Close the server.\n debug(`Stopping dev server (bundler: ${this.name})`);\n\n if (this.instance?.server) {\n this.instance.server.close((error) => {\n debug(`Stopped dev server (bundler: ${this.name})`);\n this.instance = null;\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n } else {\n debug(`Stopped dev server (bundler: ${this.name})`);\n this.instance = null;\n resolve();\n }\n }),\n {\n // NOTE(Bacon): Metro dev server doesn't seem to be closing in time.\n timeout: 1000,\n errorMessage: `Timeout waiting for '${this.name}' dev server to close`,\n }\n );\n }\n\n public getUrlCreator(options: Partial<Pick<BundlerStartOptions, 'port' | 'location'>> = {}) {\n if (!this.urlCreator) {\n assert(options?.port, 'Dev server instance not found');\n this.urlCreator = new UrlCreator(options.location, {\n port: options.port,\n getTunnelUrl: this.getTunnelUrl.bind(this),\n });\n }\n return this.urlCreator;\n }\n\n public getNativeRuntimeUrl(opts: Partial<CreateURLOptions> = {}) {\n return this.isDevClient\n ? this.getUrlCreator().constructDevClientUrl(opts) ?? this.getDevServerUrl()\n : this.getUrlCreator().constructUrl({ ...opts, scheme: 'exp' });\n }\n\n /** Get the URL for the running instance of the dev server. */\n public getDevServerUrl(options: { hostType?: 'localhost' } = {}): string | null {\n const instance = this.getInstance();\n if (!instance?.location) {\n return null;\n }\n const { location } = instance;\n if (options.hostType === 'localhost') {\n return `${location.protocol}://localhost:${location.port}`;\n }\n return location.url ?? null;\n }\n\n /** Get the base URL for JS inspector */\n public getJsInspectorBaseUrl(): string {\n if (this.name !== 'metro') {\n throw new CommandError(\n 'DEV_SERVER',\n `Cannot get the JS inspector base url - bundler[${this.name}]`\n );\n }\n return this.getUrlCreator().constructUrl({ scheme: 'http' });\n }\n\n /** Get the tunnel URL from ngrok. */\n public getTunnelUrl(): string | null {\n return this.ngrok?.getActiveUrl() ?? null;\n }\n\n /** Open the dev server in a runtime. */\n public async openPlatformAsync(\n launchTarget: keyof typeof PLATFORM_MANAGERS | 'desktop',\n resolver: BaseResolveDeviceProps<any> = {}\n ) {\n if (launchTarget === 'desktop') {\n const serverUrl = this.getDevServerUrl({ hostType: 'localhost' });\n // Allow opening the tunnel URL when using Metro web.\n const url = this.name === 'metro' ? this.getTunnelUrl() ?? serverUrl : serverUrl;\n await openBrowserAsync(url!);\n return { url };\n }\n\n const runtime = this.isTargetingNative() ? (this.isDevClient ? 'custom' : 'expo') : 'web';\n const manager = await this.getPlatformManagerAsync(launchTarget);\n return manager.openAsync({ runtime }, resolver);\n }\n\n /** Open the dev server in a runtime. */\n public async openCustomRuntimeAsync(\n launchTarget: keyof typeof PLATFORM_MANAGERS,\n launchProps: Partial<BaseOpenInCustomProps> = {},\n resolver: BaseResolveDeviceProps<any> = {}\n ) {\n const runtime = this.isTargetingNative() ? (this.isDevClient ? 'custom' : 'expo') : 'web';\n if (runtime !== 'custom') {\n throw new CommandError(\n `dev server cannot open custom runtimes either because it does not target native platforms or because it is not targeting dev clients. (target: ${runtime})`\n );\n }\n\n const manager = await this.getPlatformManagerAsync(launchTarget);\n return manager.openAsync({ runtime: 'custom', props: launchProps }, resolver);\n }\n\n /** Get the URL for opening in Expo Go. */\n protected getExpoGoUrl(): string {\n return this.getUrlCreator().constructUrl({ scheme: 'exp' });\n }\n\n /** Should use the interstitial page for selecting which runtime to use. */\n protected isRedirectPageEnabled(): boolean {\n return (\n !env.EXPO_NO_REDIRECT_PAGE &&\n // if user passed --dev-client flag, skip interstitial page\n !this.isDevClient &&\n // Checks if dev client is installed.\n !!resolveFrom.silent(this.projectRoot, 'expo-dev-client')\n );\n }\n\n /** Get the redirect URL when redirecting is enabled. */\n public getRedirectUrl(platform: keyof typeof PLATFORM_MANAGERS | null = null): string | null {\n if (!this.isRedirectPageEnabled()) {\n debug('Redirect page is disabled');\n return null;\n }\n\n return (\n this.getUrlCreator().constructLoadingUrl(\n {},\n platform === 'emulator' ? 'android' : platform === 'simulator' ? 'ios' : null\n ) ?? null\n );\n }\n\n public getReactDevToolsUrl(): string {\n return new URL(\n '_expo/react-devtools',\n this.getUrlCreator().constructUrl({ scheme: 'http' })\n ).toString();\n }\n\n protected async getPlatformManagerAsync(platform: keyof typeof PLATFORM_MANAGERS) {\n if (!this.platformManagers[platform]) {\n const Manager = PLATFORM_MANAGERS[platform]();\n const port = this.getInstance()?.location.port;\n if (!port || !this.urlCreator) {\n throw new CommandError(\n 'DEV_SERVER',\n 'Cannot interact with native platforms until dev server has started'\n );\n }\n debug(`Creating platform manager (platform: ${platform}, port: ${port})`);\n this.platformManagers[platform] = new Manager(this.projectRoot, port, {\n getCustomRuntimeUrl: this.urlCreator.constructDevClientUrl.bind(this.urlCreator),\n getExpoGoUrl: this.getExpoGoUrl.bind(this),\n getRedirectUrl: this.getRedirectUrl.bind(this, platform),\n getDevServerUrl: this.getDevServerUrl.bind(this, { hostType: 'localhost' }),\n });\n }\n return this.platformManagers[platform];\n }\n}\n"],"names":["Log","debug","require","PLATFORM_MANAGERS","simulator","ApplePlatformManager","emulator","AndroidPlatformManager","BundlerDevServer","constructor","projectRoot","platformBundlers","options","ngrok","devSession","instance","platformManagers","urlCreator","notifier","devToolsPluginManager","DevToolsPluginManager","isDevClient","setInstance","getManifestMiddlewareAsync","Middleware","ExpoGoManifestHandlerMiddleware","getUrlCreator","middleware","constructUrl","bind","mode","minify","isNativeWebpack","name","isTargetingNative","privateKeyPath","startAsync","stopAsync","headless","startHeadlessAsync","startImplementationAsync","postStartAsync","waitForTypeScriptAsync","watchEnvironmentVariables","port","CommandError","server","close","addListener","location","host","url","protocol","messageSocket","broadcast","hostType","env","EXPO_OFFLINE","_startTunnelAsync","startDevSessionAsync","watchConfig","stopObserving","FileNotifier","getConfigModuleIds","startObserving","getInstance","AsyncNgrok","stopNotifying","DevelopmentSession","getNativeRuntimeUrl","getDevServerUrl","closeAsync","catch","error","message","runtime","isTargetingWeb","web","broadcastMessage","method","params","e","exception","resolveWithTimeout","Promise","resolve","reject","timeout","errorMessage","assert","UrlCreator","getTunnelUrl","opts","constructDevClientUrl","scheme","getJsInspectorBaseUrl","getActiveUrl","openPlatformAsync","launchTarget","resolver","serverUrl","openBrowserAsync","manager","getPlatformManagerAsync","openAsync","openCustomRuntimeAsync","launchProps","props","getExpoGoUrl","isRedirectPageEnabled","EXPO_NO_REDIRECT_PAGE","resolveFrom","silent","getRedirectUrl","platform","constructLoadingUrl","getReactDevToolsUrl","URL","toString","Manager","getCustomRuntimeUrl"],"mappings":"AAAA;;;;SAAmB,OAAQ;gDAAR,QAAQ;IAAR,OAAQ;;;;;SACH,YAAc;gDAAd,cAAc;IAAd,YAAc;;;;;AAEX,IAAA,WAAc,WAAd,cAAc,CAAA;AACP,IAAA,sBAAyB,kCAAzB,yBAAyB,EAAA;AACxB,IAAA,mBAAsB,WAAtB,sBAAsB,CAAA;AACZ,IAAA,WAAc,WAAd,cAAc,CAAA;AAE/CA,IAAAA,GAAG,mCAAM,WAAW,EAAjB;AACc,IAAA,aAA0B,WAA1B,0BAA0B,CAAA;AACpB,IAAA,MAAmB,WAAnB,mBAAmB,CAAA;AAClC,IAAA,IAAiB,WAAjB,iBAAiB,CAAA;AACR,IAAA,OAAoB,WAApB,oBAAoB,CAAA;AAChB,IAAA,KAAkB,WAAlB,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOnD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,6BAA6B,CAAC,AAAsB,AAAC;AA2DpF,MAAMC,iBAAiB,GAAG;IACxBC,SAAS,EAAE,IACTF,OAAO,CAAC,uCAAuC,CAAC,CAC7CG,oBAAoB;IAA+E;IACxGC,QAAQ,EAAE,IACRJ,OAAO,CAAC,6CAA6C,CAAC,CACnDK,sBAAsB;CAC5B,AAAC;AAEK,MAAeC,gBAAgB;IAmBpCC,YAESC,WAAmB,EAEnBC,gBAAkC,EACzC,uBAAuB,CACvBC,OAQC,CACD;aAbOF,WAAmB,GAAnBA,WAAmB;aAEnBC,gBAAkC,GAAlCA,gBAAkC;aAlBjCE,KAAK,GAAsB,IAAI;aAE/BC,UAAU,GAA8B,IAAI;aAE5CC,QAAQ,GAA6B,IAAI;aAE3CC,gBAAgB,GAAyC,EAAE;aAEzDC,UAAU,GAAuB,IAAI;aAEvCC,QAAQ,GAAwB,IAAI;YAqBxCN,GAA8B;QADhC,IAAI,CAACO,qBAAqB,GACxBP,CAAAA,GAA8B,GAA9BA,OAAO,QAAuB,GAA9BA,KAAAA,CAA8B,GAA9BA,OAAO,CAAEO,qBAAqB,YAA9BP,GAA8B,GAAI,IAAIQ,sBAAqB,QAAA,CAACV,WAAW,CAAC,CAAC;YACxDE,IAAoB;QAAvC,IAAI,CAACS,WAAW,GAAGT,CAAAA,IAAoB,GAApBA,OAAO,QAAa,GAApBA,KAAAA,CAAoB,GAApBA,OAAO,CAAES,WAAW,YAApBT,IAAoB,GAAI,KAAK,CAAC;KAClD;IAED,AAAUU,WAAW,CAACP,QAA2B,EAAE;QACjD,IAAI,CAACA,QAAQ,GAAGA,QAAQ,CAAC;KAC1B;IAED,4CAA4C,CAC5C,MAAgBQ,0BAA0B,CACxCX,OAAwE,GAAG,EAAE,EAC7E;QACA,MAAMY,UAAU,GAAGtB,OAAO,CAAC,8CAA8C,CAAC,CACvEuB,+BAA+B,AAAiG,AAAC;QAEpI,MAAMR,UAAU,GAAG,IAAI,CAACS,aAAa,EAAE,AAAC;QACxC,MAAMC,UAAU,GAAG,IAAIH,UAAU,CAAC,IAAI,CAACd,WAAW,EAAE;YAClDkB,YAAY,EAAEX,UAAU,CAACW,YAAY,CAACC,IAAI,CAACZ,UAAU,CAAC;YACtDa,IAAI,EAAElB,OAAO,CAACkB,IAAI;YAClBC,MAAM,EAAEnB,OAAO,CAACmB,MAAM;YACtBC,eAAe,EAAE,IAAI,CAACC,IAAI,KAAK,SAAS,IAAI,IAAI,CAACC,iBAAiB,EAAE;YACpEC,cAAc,EAAEvB,OAAO,CAACuB,cAAc;SACvC,CAAC,AAAC;QACH,OAAOR,UAAU,CAAC;KACnB;IAED,wEAAwE,CACxE,MAAaS,UAAU,CAACxB,OAA4B,EAA8B;QAChF,MAAM,IAAI,CAACyB,SAAS,EAAE,CAAC;QAEvB,IAAItB,QAAQ,AAAmB,AAAC;QAChC,IAAIH,OAAO,CAAC0B,QAAQ,EAAE;YACpBvB,QAAQ,GAAG,MAAM,IAAI,CAACwB,kBAAkB,CAAC3B,OAAO,CAAC,CAAC;SACnD,MAAM;YACLG,QAAQ,GAAG,MAAM,IAAI,CAACyB,wBAAwB,CAAC5B,OAAO,CAAC,CAAC;SACzD;QAED,IAAI,CAACU,WAAW,CAACP,QAAQ,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC0B,cAAc,CAAC7B,OAAO,CAAC,CAAC;QACnC,OAAOG,QAAQ,CAAC;KACjB;IAMD,MAAa2B,sBAAsB,GAAqB;QACtD,OAAO,KAAK,CAAC;KACd;IAID,MAAaC,yBAAyB,GAAkB;IACtD,8DAA8D;KAC/D;IAED;;;KAGG,CACH,MAAcJ,kBAAkB,CAAC3B,OAA4B,EAA8B;QACzF,IAAI,CAACA,OAAO,CAACgC,IAAI,EACf,MAAM,IAAIC,OAAY,aAAA,CAAC,iBAAiB,EAAE,4CAA4C,CAAC,CAAC;QAC1F,IAAI,CAAC5B,UAAU,GAAG,IAAI,CAACS,aAAa,CAACd,OAAO,CAAC,CAAC;QAE9C,OAAO;YACL,uBAAuB;YACvBkC,MAAM,EAAE;gBACNC,KAAK,EAAE,IAAM;oBACX,IAAI,CAAChC,QAAQ,GAAG,IAAI,CAAC;iBACtB;gBACDiC,WAAW,IAAG,EAAE;aACjB;YACDC,QAAQ,EAAE;gBACR,mDAAmD;gBACnDL,IAAI,EAAEhC,OAAO,CAACgC,IAAI;gBAClB,kCAAkC;gBAClCM,IAAI,EAAE,WAAW;gBACjB,iDAAiD;gBACjDC,GAAG,EAAE,CAAC,iBAAiB,EAAEvC,OAAO,CAACgC,IAAI,CAAC,CAAC;gBACvCQ,QAAQ,EAAE,MAAM;aACjB;YACDzB,UAAU,EAAE,EAAE;YACd0B,aAAa,EAAE;gBACbC,SAAS,EAAE,IAAM;oBACf,MAAM,IAAIT,OAAY,aAAA,CAAC,iBAAiB,EAAE,8CAA8C,CAAC,CAAC;iBAC3F;aACF;SACF,CAAC;KACH;IAED;;;KAGG,CACH,MAAgBJ,cAAc,CAAC7B,OAA4B,EAAE;QAC3D,IACEA,OAAO,CAACqC,QAAQ,CAACM,QAAQ,KAAK,QAAQ,IACtC,CAACC,IAAG,IAAA,CAACC,YAAY,IACjB,4FAA4F;QAC5F,IAAI,CAACvB,iBAAiB,EAAE,EACxB;YACA,MAAM,IAAI,CAACwB,iBAAiB,EAAE,CAAC;SAChC;QACD,MAAM,IAAI,CAACC,oBAAoB,EAAE,CAAC;QAElC,IAAI,CAACC,WAAW,EAAE,CAAC;KACpB;IAID,AAAUA,WAAW,GAAG;YACtB,GAAa;QAAb,CAAA,GAAa,GAAb,IAAI,CAAC1C,QAAQ,SAAe,GAA5B,KAAA,CAA4B,GAA5B,GAAa,CAAE2C,aAAa,EAAE,AA5OlC,CA4OmC;QAC/B,IAAI,CAAC3C,QAAQ,GAAG,IAAI4C,aAAY,aAAA,CAAC,IAAI,CAACpD,WAAW,EAAE,IAAI,CAACqD,kBAAkB,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC7C,QAAQ,CAAC8C,cAAc,EAAE,CAAC;KAChC;IAED,8EAA8E,CAC9E,MAAaN,iBAAiB,GAA+B;YAC9C,GAAkB;QAA/B,MAAMd,IAAI,GAAG,CAAA,GAAkB,GAAlB,IAAI,CAACqB,WAAW,EAAE,SAAU,GAA5B,KAAA,CAA4B,GAA5B,GAAkB,CAAEhB,QAAQ,CAACL,IAAI,AAAC;QAC/C,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI,CAAC;QACvB3C,KAAK,CAAC,2BAA2B,GAAG2C,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC/B,KAAK,GAAG,IAAIqD,WAAU,WAAA,CAAC,IAAI,CAACxD,WAAW,EAAEkC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC/B,KAAK,CAACuB,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAACvB,KAAK,CAAC;KACnB;IAED,MAAgB8C,oBAAoB,GAAG;YACrC,uFAAuF;QACvF,oDAAoD;QACpD,IAAe;QAAf,CAAA,IAAe,GAAf,IAAI,CAAC7C,UAAU,SAAe,GAA9B,KAAA,CAA8B,GAA9B,IAAe,CAAEqD,aAAa,QAAI,GAAlC,KAAA,CAAkC,GAAlC,IAAe,CAAEA,aAAa,EAAI,AA9PtC,CA8PuC;QACnC,IAAI,CAACrD,UAAU,GAAG,IAAIsD,mBAAkB,mBAAA,CACtC,IAAI,CAAC1D,WAAW,EAChB,kFAAkF;QAClF,IAAI,CAACwB,iBAAiB,EAAE,GACpB,IAAI,CAACmC,mBAAmB,EAAE,GAC1B,IAAI,CAACC,eAAe,CAAC;YAAEf,QAAQ,EAAE,WAAW;SAAE,CAAC,EACnD,IAAM;gBACJ,iEAAiE;YACjE,yEAAyE;YACzE,aAAa;YACb,eAAe;YACf,uMAAuM;YACvM,MAAM;YACN,KAAK;YACL,wBAAwB;YACxB,GAAe;YAAf,CAAA,GAAe,GAAf,IAAI,CAACzC,UAAU,SAAY,GAA3B,KAAA,CAA2B,GAA3B,GAAe,CAAEyD,UAAU,EAAE,CAACC,KAAK,CAAC,CAACC,KAAK,GAAK;gBAC7CxE,KAAK,CAAC,+BAA+B,GAAGwE,KAAK,CAACC,OAAO,CAAC,CAAC;aACxD,CAAC,CAAC;SACJ,CACF,CAAC;QAEF,MAAM,IAAI,CAAC5D,UAAU,CAACsB,UAAU,CAAC;YAC/BuC,OAAO,EAAE,IAAI,CAACzC,iBAAiB,EAAE,GAAG,QAAQ,GAAG,KAAK;SACrD,CAAC,CAAC;KACJ;IAED,AAAOA,iBAAiB,GAAG;QACzB,oEAAoE;QACpE,OAAO,IAAI,CAAC;KACb;IAED,AAAO0C,cAAc,GAAG;QACtB,OAAO,IAAI,CAACjE,gBAAgB,CAACkE,GAAG,KAAK,IAAI,CAAC5C,IAAI,CAAC;KAChD;IAED;;;;;;KAMG,CACH,AAAO6C,gBAAgB,CACrBC,MAA+C,EAC/CC,MAA4B,EAC5B;YACA,GAAkB;QAAlB,CAAA,GAAkB,GAAlB,IAAI,CAACf,WAAW,EAAE,SAAe,GAAjC,KAAA,CAAiC,GAAjC,GAAkB,CAAEZ,aAAa,CAACC,SAAS,CAACyB,MAAM,EAAEC,MAAM,CAAC,CAAC;KAC7D;IAED,2CAA2C,CAC3C,AAAOf,WAAW,GAAG;QACnB,OAAO,IAAI,CAAClD,QAAQ,CAAC;KACtB;IAED,4CAA4C,CAC5C,MAAMsB,SAAS,GAAG;YAChB,sBAAsB;QACtB,IAAa,EAGP,IAAe,EAGf,IAAU;QANhB,CAAA,IAAa,GAAb,IAAI,CAACnB,QAAQ,SAAe,GAA5B,KAAA,CAA4B,GAA5B,IAAa,CAAE2C,aAAa,EAAE,AAxTlC,CAwTmC;QAE/B,sEAAsE;QACtE,OAAM,CAAA,IAAe,GAAf,IAAI,CAAC/C,UAAU,SAAY,GAA3B,KAAA,CAA2B,GAA3B,IAAe,CAAEyD,UAAU,EAAE,CAAA,CAAC;QAEpC,yBAAyB;QACzB,MAAM,CAAA,CAAA,IAAU,GAAV,IAAI,CAAC1D,KAAK,SAAW,GAArB,KAAA,CAAqB,GAArB,IAAU,CAAEwB,SAAS,EAAE,CAACmC,KAAK,CAAC,CAACS,CAAC,GAAK;YACzCjF,GAAG,CAACyE,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACnCzE,GAAG,CAACkF,SAAS,CAACD,CAAC,CAAC,CAAC;SAClB,CAAC,CAAA,CAAC;QAEH,OAAOE,CAAAA,GAAAA,MAAkB,AA2BxB,CAAA,mBA3BwB,CACvB;YACE,OAAA,IAAIC,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,GAAK;oBAIjC,GAAa;gBAHjB,oBAAoB;gBACpBrF,KAAK,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAACgC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAErD,IAAI,CAAA,GAAa,GAAb,IAAI,CAAClB,QAAQ,SAAQ,GAArB,KAAA,CAAqB,GAArB,GAAa,CAAE+B,MAAM,EAAE;oBACzB,IAAI,CAAC/B,QAAQ,CAAC+B,MAAM,CAACC,KAAK,CAAC,CAAC0B,KAAK,GAAK;wBACpCxE,KAAK,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAACgC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,IAAI,CAAClB,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI0D,KAAK,EAAE;4BACTa,MAAM,CAACb,KAAK,CAAC,CAAC;yBACf,MAAM;4BACLY,OAAO,EAAE,CAAC;yBACX;qBACF,CAAC,CAAC;iBACJ,MAAM;oBACLpF,KAAK,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAACgC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAClB,QAAQ,GAAG,IAAI,CAAC;oBACrBsE,OAAO,EAAE,CAAC;iBACX;aACF,CAAC,CAAA;SAAA,EACJ;YACE,oEAAoE;YACpEE,OAAO,EAAE,IAAI;YACbC,YAAY,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAACvD,IAAI,CAAC,qBAAqB,CAAC;SACvE,CACF,CAAC;KACH;IAED,AAAOP,aAAa,CAACd,OAAgE,GAAG,EAAE,EAAE;QAC1F,IAAI,CAAC,IAAI,CAACK,UAAU,EAAE;YACpBwE,OAAM,UAAA,CAAC7E,OAAO,QAAM,GAAbA,KAAAA,CAAa,GAAbA,OAAO,CAAEgC,IAAI,EAAE,+BAA+B,CAAC,CAAC;YACvD,IAAI,CAAC3B,UAAU,GAAG,IAAIyE,WAAU,WAAA,CAAC9E,OAAO,CAACqC,QAAQ,EAAE;gBACjDL,IAAI,EAAEhC,OAAO,CAACgC,IAAI;gBAClB+C,YAAY,EAAE,IAAI,CAACA,YAAY,CAAC9D,IAAI,CAAC,IAAI,CAAC;aAC3C,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAACZ,UAAU,CAAC;KACxB;IAED,AAAOoD,mBAAmB,CAACuB,IAA+B,GAAG,EAAE,EAAE;YAE3D,GAAgD;QADpD,OAAO,IAAI,CAACvE,WAAW,GACnB,CAAA,GAAgD,GAAhD,IAAI,CAACK,aAAa,EAAE,CAACmE,qBAAqB,CAACD,IAAI,CAAC,YAAhD,GAAgD,GAAI,IAAI,CAACtB,eAAe,EAAE,GAC1E,IAAI,CAAC5C,aAAa,EAAE,CAACE,YAAY,CAAC;YAAE,GAAGgE,IAAI;YAAEE,MAAM,EAAE,KAAK;SAAE,CAAC,CAAC;KACnE;IAED,8DAA8D,CAC9D,AAAOxB,eAAe,CAAC1D,OAAmC,GAAG,EAAE,EAAiB;QAC9E,MAAMG,QAAQ,GAAG,IAAI,CAACkD,WAAW,EAAE,AAAC;QACpC,IAAI,CAAClD,CAAAA,QAAQ,QAAU,GAAlBA,KAAAA,CAAkB,GAAlBA,QAAQ,CAAEkC,QAAQ,CAAA,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAEA,QAAQ,CAAA,EAAE,GAAGlC,QAAQ,AAAC;QAC9B,IAAIH,OAAO,CAAC2C,QAAQ,KAAK,WAAW,EAAE;YACpC,OAAO,CAAC,EAAEN,QAAQ,CAACG,QAAQ,CAAC,aAAa,EAAEH,QAAQ,CAACL,IAAI,CAAC,CAAC,CAAC;SAC5D;YACMK,IAAY;QAAnB,OAAOA,CAAAA,IAAY,GAAZA,QAAQ,CAACE,GAAG,YAAZF,IAAY,GAAI,IAAI,CAAC;KAC7B;IAED,wCAAwC,CACxC,AAAO8C,qBAAqB,GAAW;QACrC,IAAI,IAAI,CAAC9D,IAAI,KAAK,OAAO,EAAE;YACzB,MAAM,IAAIY,OAAY,aAAA,CACpB,YAAY,EACZ,CAAC,+CAA+C,EAAE,IAAI,CAACZ,IAAI,CAAC,CAAC,CAAC,CAC/D,CAAC;SACH;QACD,OAAO,IAAI,CAACP,aAAa,EAAE,CAACE,YAAY,CAAC;YAAEkE,MAAM,EAAE,MAAM;SAAE,CAAC,CAAC;KAC9D;IAED,qCAAqC,CACrC,AAAOH,YAAY,GAAkB;YAC5B,GAAU;YAAV,IAA0B;QAAjC,OAAO,CAAA,IAA0B,GAA1B,CAAA,GAAU,GAAV,IAAI,CAAC9E,KAAK,SAAc,GAAxB,KAAA,CAAwB,GAAxB,GAAU,CAAEmF,YAAY,EAAE,YAA1B,IAA0B,GAAI,IAAI,CAAC;KAC3C;IAED,wCAAwC,CACxC,MAAaC,iBAAiB,CAC5BC,YAAwD,EACxDC,QAAqC,GAAG,EAAE,EAC1C;QACA,IAAID,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAME,SAAS,GAAG,IAAI,CAAC9B,eAAe,CAAC;gBAAEf,QAAQ,EAAE,WAAW;aAAE,CAAC,AAAC;gBAE9B,GAAmB;YADvD,qDAAqD;YACrD,MAAMJ,GAAG,GAAG,IAAI,CAAClB,IAAI,KAAK,OAAO,GAAG,CAAA,GAAmB,GAAnB,IAAI,CAAC0D,YAAY,EAAE,YAAnB,GAAmB,GAAIS,SAAS,GAAGA,SAAS,AAAC;YACjF,MAAMC,CAAAA,GAAAA,KAAgB,AAAM,CAAA,iBAAN,CAAClD,GAAG,CAAE,CAAC;YAC7B,OAAO;gBAAEA,GAAG;aAAE,CAAC;SAChB;QAED,MAAMwB,OAAO,GAAG,IAAI,CAACzC,iBAAiB,EAAE,GAAI,IAAI,CAACb,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAI,KAAK,AAAC;QAC1F,MAAMiF,OAAO,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACL,YAAY,CAAC,AAAC;QACjE,OAAOI,OAAO,CAACE,SAAS,CAAC;YAAE7B,OAAO;SAAE,EAAEwB,QAAQ,CAAC,CAAC;KACjD;IAED,wCAAwC,CACxC,MAAaM,sBAAsB,CACjCP,YAA4C,EAC5CQ,WAA2C,GAAG,EAAE,EAChDP,QAAqC,GAAG,EAAE,EAC1C;QACA,MAAMxB,OAAO,GAAG,IAAI,CAACzC,iBAAiB,EAAE,GAAI,IAAI,CAACb,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAI,KAAK,AAAC;QAC1F,IAAIsD,OAAO,KAAK,QAAQ,EAAE;YACxB,MAAM,IAAI9B,OAAY,aAAA,CACpB,CAAC,+IAA+I,EAAE8B,OAAO,CAAC,CAAC,CAAC,CAC7J,CAAC;SACH;QAED,MAAM2B,OAAO,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACL,YAAY,CAAC,AAAC;QACjE,OAAOI,OAAO,CAACE,SAAS,CAAC;YAAE7B,OAAO,EAAE,QAAQ;YAAEgC,KAAK,EAAED,WAAW;SAAE,EAAEP,QAAQ,CAAC,CAAC;KAC/E;IAED,0CAA0C,CAC1C,AAAUS,YAAY,GAAW;QAC/B,OAAO,IAAI,CAAClF,aAAa,EAAE,CAACE,YAAY,CAAC;YAAEkE,MAAM,EAAE,KAAK;SAAE,CAAC,CAAC;KAC7D;IAED,2EAA2E,CAC3E,AAAUe,qBAAqB,GAAY;QACzC,OACE,CAACrD,IAAG,IAAA,CAACsD,qBAAqB,IAC1B,2DAA2D;QAC3D,CAAC,IAAI,CAACzF,WAAW,IACjB,qCAAqC;QACrC,CAAC,CAAC0F,YAAW,UAAA,CAACC,MAAM,CAAC,IAAI,CAACtG,WAAW,EAAE,iBAAiB,CAAC,CACzD;KACH;IAED,wDAAwD,CACxD,AAAOuG,cAAc,CAACC,QAA+C,GAAG,IAAI,EAAiB;QAC3F,IAAI,CAAC,IAAI,CAACL,qBAAqB,EAAE,EAAE;YACjC5G,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACb;YAGC,GAGC;QAJH,OACE,CAAA,GAGC,GAHD,IAAI,CAACyB,aAAa,EAAE,CAACyF,mBAAmB,CACtC,EAAE,EACFD,QAAQ,KAAK,UAAU,GAAG,SAAS,GAAGA,QAAQ,KAAK,WAAW,GAAG,KAAK,GAAG,IAAI,CAC9E,YAHD,GAGC,GAAI,IAAI,CACT;KACH;IAED,AAAOE,mBAAmB,GAAW;QACnC,OAAO,IAAIC,GAAG,CACZ,sBAAsB,EACtB,IAAI,CAAC3F,aAAa,EAAE,CAACE,YAAY,CAAC;YAAEkE,MAAM,EAAE,MAAM;SAAE,CAAC,CACtD,CAACwB,QAAQ,EAAE,CAAC;KACd;IAED,MAAgBf,uBAAuB,CAACW,QAAwC,EAAE;QAChF,IAAI,CAAC,IAAI,CAAClG,gBAAgB,CAACkG,QAAQ,CAAC,EAAE;gBAEvB,GAAkB;YAD/B,MAAMK,OAAO,GAAGpH,iBAAiB,CAAC+G,QAAQ,CAAC,EAAE,AAAC;YAC9C,MAAMtE,IAAI,GAAG,CAAA,GAAkB,GAAlB,IAAI,CAACqB,WAAW,EAAE,SAAU,GAA5B,KAAA,CAA4B,GAA5B,GAAkB,CAAEhB,QAAQ,CAACL,IAAI,AAAC;YAC/C,IAAI,CAACA,IAAI,IAAI,CAAC,IAAI,CAAC3B,UAAU,EAAE;gBAC7B,MAAM,IAAI4B,OAAY,aAAA,CACpB,YAAY,EACZ,oEAAoE,CACrE,CAAC;aACH;YACD5C,KAAK,CAAC,CAAC,qCAAqC,EAAEiH,QAAQ,CAAC,QAAQ,EAAEtE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC5B,gBAAgB,CAACkG,QAAQ,CAAC,GAAG,IAAIK,OAAO,CAAC,IAAI,CAAC7G,WAAW,EAAEkC,IAAI,EAAE;gBACpE4E,mBAAmB,EAAE,IAAI,CAACvG,UAAU,CAAC4E,qBAAqB,CAAChE,IAAI,CAAC,IAAI,CAACZ,UAAU,CAAC;gBAChF2F,YAAY,EAAE,IAAI,CAACA,YAAY,CAAC/E,IAAI,CAAC,IAAI,CAAC;gBAC1CoF,cAAc,EAAE,IAAI,CAACA,cAAc,CAACpF,IAAI,CAAC,IAAI,EAAEqF,QAAQ,CAAC;gBACxD5C,eAAe,EAAE,IAAI,CAACA,eAAe,CAACzC,IAAI,CAAC,IAAI,EAAE;oBAAE0B,QAAQ,EAAE,WAAW;iBAAE,CAAC;aAC5E,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAACvC,gBAAgB,CAACkG,QAAQ,CAAC,CAAC;KACxC;CACF;QApZqB1G,gBAAgB,GAAhBA,gBAAgB"}
1
+ {"version":3,"sources":["../../../../src/start/server/BundlerDevServer.ts"],"sourcesContent":["import assert from 'assert';\nimport resolveFrom from 'resolve-from';\n\nimport { AsyncNgrok } from './AsyncNgrok';\nimport DevToolsPluginManager from './DevToolsPluginManager';\nimport { DevelopmentSession } from './DevelopmentSession';\nimport { CreateURLOptions, UrlCreator } from './UrlCreator';\nimport { PlatformBundlers } from './platformBundlers';\nimport * as Log from '../../log';\nimport { FileNotifier } from '../../utils/FileNotifier';\nimport { resolveWithTimeout } from '../../utils/delay';\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { openBrowserAsync } from '../../utils/open';\nimport {\n BaseOpenInCustomProps,\n BaseResolveDeviceProps,\n PlatformManager,\n} from '../platforms/PlatformManager';\n\nconst debug = require('debug')('expo:start:server:devServer') as typeof console.log;\n\nexport type MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\nexport type ServerLike = {\n close(callback?: (err?: Error) => void): void;\n addListener?(event: string, listener: (...args: any[]) => void): unknown;\n};\n\nexport type DevServerInstance = {\n /** Bundler dev server instance. */\n server: ServerLike;\n /** Dev server URL location properties. */\n location: {\n url: string;\n port: number;\n protocol: 'http' | 'https';\n host?: string;\n };\n /** Additional middleware that's attached to the `server`. */\n middleware: any;\n /** Message socket for communicating with the runtime. */\n messageSocket: MessageSocket;\n};\n\nexport interface BundlerStartOptions {\n /** Should the dev server use `https` protocol. */\n https?: boolean;\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Is dev client enabled. */\n devClient?: boolean;\n /** Should run dev servers with clean caches. */\n resetDevServer?: boolean;\n /** Code signing private key path (defaults to same directory as certificate) */\n privateKeyPath?: string;\n\n /** Max amount of workers (threads) to use with Metro bundler, defaults to undefined for max workers. */\n maxWorkers?: number;\n /** Port to start the dev server on. */\n port?: number;\n\n /** Should start a headless dev server e.g. mock representation to approximate info from a server running in a different process. */\n headless?: boolean;\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n\n /** Will the bundler be used for exporting. NOTE: This is an odd option to pass to the dev server. */\n isExporting?: boolean;\n\n // Webpack options\n /** Should modify and create PWA icons. */\n isImageEditingEnabled?: boolean;\n\n location: CreateURLOptions;\n}\n\nconst PLATFORM_MANAGERS = {\n simulator: () =>\n require('../platforms/ios/ApplePlatformManager')\n .ApplePlatformManager as typeof import('../platforms/ios/ApplePlatformManager').ApplePlatformManager,\n emulator: () =>\n require('../platforms/android/AndroidPlatformManager')\n .AndroidPlatformManager as typeof import('../platforms/android/AndroidPlatformManager').AndroidPlatformManager,\n};\n\nexport abstract class BundlerDevServer {\n /** Name of the bundler. */\n abstract get name(): string;\n\n /** Ngrok instance for managing tunnel connections. */\n protected ngrok: AsyncNgrok | null = null;\n /** Interfaces with the Expo 'Development Session' API. */\n protected devSession: DevelopmentSession | null = null;\n /** Http server and related info. */\n protected instance: DevServerInstance | null = null;\n /** Native platform interfaces for opening projects. */\n private platformManagers: Record<string, PlatformManager<any>> = {};\n /** Manages the creation of dev server URLs. */\n protected urlCreator?: UrlCreator | null = null;\n\n private notifier: FileNotifier | null = null;\n protected readonly devToolsPluginManager: DevToolsPluginManager;\n public isDevClient: boolean;\n\n constructor(\n /** Project root folder. */\n public projectRoot: string,\n /** A mapping of bundlers to platforms. */\n public platformBundlers: PlatformBundlers,\n /** Advanced options */\n options?: {\n /**\n * The instance of DevToolsPluginManager\n * @default new DevToolsPluginManager(projectRoot)\n */\n devToolsPluginManager?: DevToolsPluginManager;\n // TODO: Replace with custom scheme maybe...\n isDevClient?: boolean;\n }\n ) {\n this.devToolsPluginManager =\n options?.devToolsPluginManager ?? new DevToolsPluginManager(projectRoot);\n this.isDevClient = options?.isDevClient ?? false;\n }\n\n protected setInstance(instance: DevServerInstance) {\n this.instance = instance;\n }\n\n /** Get the manifest middleware function. */\n protected async getManifestMiddlewareAsync(\n options: Pick<BundlerStartOptions, 'minify' | 'mode' | 'privateKeyPath'> = {}\n ) {\n const Middleware = require('./middleware/ExpoGoManifestHandlerMiddleware')\n .ExpoGoManifestHandlerMiddleware as typeof import('./middleware/ExpoGoManifestHandlerMiddleware').ExpoGoManifestHandlerMiddleware;\n\n const urlCreator = this.getUrlCreator();\n const middleware = new Middleware(this.projectRoot, {\n constructUrl: urlCreator.constructUrl.bind(urlCreator),\n mode: options.mode,\n minify: options.minify,\n isNativeWebpack: this.name === 'webpack' && this.isTargetingNative(),\n privateKeyPath: options.privateKeyPath,\n });\n return middleware;\n }\n\n /** Start the dev server using settings defined in the start command. */\n public async startAsync(options: BundlerStartOptions): Promise<DevServerInstance> {\n await this.stopAsync();\n\n let instance: DevServerInstance;\n if (options.headless) {\n instance = await this.startHeadlessAsync(options);\n } else {\n instance = await this.startImplementationAsync(options);\n }\n\n this.setInstance(instance);\n await this.postStartAsync(options);\n return instance;\n }\n\n protected abstract startImplementationAsync(\n options: BundlerStartOptions\n ): Promise<DevServerInstance>;\n\n public async waitForTypeScriptAsync(): Promise<boolean> {\n return false;\n }\n\n public abstract startTypeScriptServices(): Promise<void>;\n\n public async watchEnvironmentVariables(): Promise<void> {\n // noop -- We've only implemented this functionality in Metro.\n }\n\n /**\n * Creates a mock server representation that can be used to estimate URLs for a server started in another process.\n * This is used for the run commands where you can reuse the server from a previous run.\n */\n private async startHeadlessAsync(options: BundlerStartOptions): Promise<DevServerInstance> {\n if (!options.port)\n throw new CommandError('HEADLESS_SERVER', 'headless dev server requires a port option');\n this.urlCreator = this.getUrlCreator(options);\n\n return {\n // Create a mock server\n server: {\n close: () => {\n this.instance = null;\n },\n addListener() {},\n },\n location: {\n // The port is the main thing we want to send back.\n port: options.port,\n // localhost isn't always correct.\n host: 'localhost',\n // http is the only supported protocol on native.\n url: `http://localhost:${options.port}`,\n protocol: 'http',\n },\n middleware: {},\n messageSocket: {\n broadcast: () => {\n throw new CommandError('HEADLESS_SERVER', 'Cannot broadcast messages to headless server');\n },\n },\n };\n }\n\n /**\n * Runs after the `startAsync` function, performing any additional common operations.\n * You can assume the dev server is started by the time this function is called.\n */\n protected async postStartAsync(options: BundlerStartOptions) {\n if (\n options.location.hostType === 'tunnel' &&\n !env.EXPO_OFFLINE &&\n // This is a hack to prevent using tunnel on web since we block it upstream for some reason.\n this.isTargetingNative()\n ) {\n await this._startTunnelAsync();\n }\n await this.startDevSessionAsync();\n\n this.watchConfig();\n }\n\n protected abstract getConfigModuleIds(): string[];\n\n protected watchConfig() {\n this.notifier?.stopObserving();\n this.notifier = new FileNotifier(this.projectRoot, this.getConfigModuleIds());\n this.notifier.startObserving();\n }\n\n /** Create ngrok instance and start the tunnel server. Exposed for testing. */\n public async _startTunnelAsync(): Promise<AsyncNgrok | null> {\n const port = this.getInstance()?.location.port;\n if (!port) return null;\n debug('[ngrok] connect to port: ' + port);\n this.ngrok = new AsyncNgrok(this.projectRoot, port);\n await this.ngrok.startAsync();\n return this.ngrok;\n }\n\n protected async startDevSessionAsync() {\n // This is used to make Expo Go open the project in either Expo Go, or the web browser.\n // Must come after ngrok (`startTunnelAsync`) setup.\n this.devSession?.stopNotifying?.();\n this.devSession = new DevelopmentSession(\n this.projectRoot,\n // This URL will be used on external devices so the computer IP won't be relevant.\n this.isTargetingNative()\n ? this.getNativeRuntimeUrl()\n : this.getDevServerUrl({ hostType: 'localhost' }),\n () => {\n // TODO: This appears to be happening consistently after an hour.\n // We should investigate why this is happening and fix it on our servers.\n // Log.error(\n // chalk.red(\n // '\\nAn unexpected error occurred while updating the Dev Session API. This project will not appear in the \"Development servers\" section of the Expo Go app until this process has been restarted.'\n // )\n // );\n // Log.exception(error);\n this.devSession?.closeAsync().catch((error) => {\n debug('[dev-session] error closing: ' + error.message);\n });\n }\n );\n\n await this.devSession.startAsync({\n runtime: this.isTargetingNative() ? 'native' : 'web',\n });\n }\n\n public isTargetingNative() {\n // Temporary hack while we implement multi-bundler dev server proxy.\n return true;\n }\n\n public isTargetingWeb() {\n return this.platformBundlers.web === this.name;\n }\n\n /**\n * Sends a message over web sockets to any connected device,\n * does nothing when the dev server is not running.\n *\n * @param method name of the command. In RN projects `reload`, and `devMenu` are available. In Expo Go, `sendDevCommand` is available.\n * @param params\n */\n public broadcastMessage(\n method: 'reload' | 'devMenu' | 'sendDevCommand',\n params?: Record<string, any>\n ) {\n this.getInstance()?.messageSocket.broadcast(method, params);\n }\n\n /** Get the running dev server instance. */\n public getInstance() {\n return this.instance;\n }\n\n /** Stop the running dev server instance. */\n async stopAsync() {\n // Stop file watching.\n this.notifier?.stopObserving();\n\n // Stop the dev session timer and tell Expo API to remove dev session.\n await this.devSession?.closeAsync();\n\n // Stop ngrok if running.\n await this.ngrok?.stopAsync().catch((e) => {\n Log.error(`Error stopping ngrok:`);\n Log.exception(e);\n });\n\n return resolveWithTimeout(\n () =>\n new Promise<void>((resolve, reject) => {\n // Close the server.\n debug(`Stopping dev server (bundler: ${this.name})`);\n\n if (this.instance?.server) {\n this.instance.server.close((error) => {\n debug(`Stopped dev server (bundler: ${this.name})`);\n this.instance = null;\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n } else {\n debug(`Stopped dev server (bundler: ${this.name})`);\n this.instance = null;\n resolve();\n }\n }),\n {\n // NOTE(Bacon): Metro dev server doesn't seem to be closing in time.\n timeout: 1000,\n errorMessage: `Timeout waiting for '${this.name}' dev server to close`,\n }\n );\n }\n\n public getUrlCreator(options: Partial<Pick<BundlerStartOptions, 'port' | 'location'>> = {}) {\n if (!this.urlCreator) {\n assert(options?.port, 'Dev server instance not found');\n this.urlCreator = new UrlCreator(options.location, {\n port: options.port,\n getTunnelUrl: this.getTunnelUrl.bind(this),\n });\n }\n return this.urlCreator;\n }\n\n public getNativeRuntimeUrl(opts: Partial<CreateURLOptions> = {}) {\n return this.isDevClient\n ? this.getUrlCreator().constructDevClientUrl(opts) ?? this.getDevServerUrl()\n : this.getUrlCreator().constructUrl({ ...opts, scheme: 'exp' });\n }\n\n /** Get the URL for the running instance of the dev server. */\n public getDevServerUrl(options: { hostType?: 'localhost' } = {}): string | null {\n const instance = this.getInstance();\n if (!instance?.location) {\n return null;\n }\n const { location } = instance;\n if (options.hostType === 'localhost') {\n return `${location.protocol}://localhost:${location.port}`;\n }\n return location.url ?? null;\n }\n\n /** Get the base URL for JS inspector */\n public getJsInspectorBaseUrl(): string {\n if (this.name !== 'metro') {\n throw new CommandError(\n 'DEV_SERVER',\n `Cannot get the JS inspector base url - bundler[${this.name}]`\n );\n }\n return this.getUrlCreator().constructUrl({ scheme: 'http' });\n }\n\n /** Get the tunnel URL from ngrok. */\n public getTunnelUrl(): string | null {\n return this.ngrok?.getActiveUrl() ?? null;\n }\n\n /** Open the dev server in a runtime. */\n public async openPlatformAsync(\n launchTarget: keyof typeof PLATFORM_MANAGERS | 'desktop',\n resolver: BaseResolveDeviceProps<any> = {}\n ) {\n if (launchTarget === 'desktop') {\n const serverUrl = this.getDevServerUrl({ hostType: 'localhost' });\n // Allow opening the tunnel URL when using Metro web.\n const url = this.name === 'metro' ? this.getTunnelUrl() ?? serverUrl : serverUrl;\n await openBrowserAsync(url!);\n return { url };\n }\n\n const runtime = this.isTargetingNative() ? (this.isDevClient ? 'custom' : 'expo') : 'web';\n const manager = await this.getPlatformManagerAsync(launchTarget);\n return manager.openAsync({ runtime }, resolver);\n }\n\n /** Open the dev server in a runtime. */\n public async openCustomRuntimeAsync(\n launchTarget: keyof typeof PLATFORM_MANAGERS,\n launchProps: Partial<BaseOpenInCustomProps> = {},\n resolver: BaseResolveDeviceProps<any> = {}\n ) {\n const runtime = this.isTargetingNative() ? (this.isDevClient ? 'custom' : 'expo') : 'web';\n if (runtime !== 'custom') {\n throw new CommandError(\n `dev server cannot open custom runtimes either because it does not target native platforms or because it is not targeting dev clients. (target: ${runtime})`\n );\n }\n\n const manager = await this.getPlatformManagerAsync(launchTarget);\n return manager.openAsync({ runtime: 'custom', props: launchProps }, resolver);\n }\n\n /** Get the URL for opening in Expo Go. */\n protected getExpoGoUrl(): string {\n return this.getUrlCreator().constructUrl({ scheme: 'exp' });\n }\n\n /** Should use the interstitial page for selecting which runtime to use. */\n protected isRedirectPageEnabled(): boolean {\n return (\n !env.EXPO_NO_REDIRECT_PAGE &&\n // if user passed --dev-client flag, skip interstitial page\n !this.isDevClient &&\n // Checks if dev client is installed.\n !!resolveFrom.silent(this.projectRoot, 'expo-dev-client')\n );\n }\n\n /** Get the redirect URL when redirecting is enabled. */\n public getRedirectUrl(platform: keyof typeof PLATFORM_MANAGERS | null = null): string | null {\n if (!this.isRedirectPageEnabled()) {\n debug('Redirect page is disabled');\n return null;\n }\n\n return (\n this.getUrlCreator().constructLoadingUrl(\n {},\n platform === 'emulator' ? 'android' : platform === 'simulator' ? 'ios' : null\n ) ?? null\n );\n }\n\n public getReactDevToolsUrl(): string {\n return new URL(\n '_expo/react-devtools',\n this.getUrlCreator().constructUrl({ scheme: 'http' })\n ).toString();\n }\n\n protected async getPlatformManagerAsync(platform: keyof typeof PLATFORM_MANAGERS) {\n if (!this.platformManagers[platform]) {\n const Manager = PLATFORM_MANAGERS[platform]();\n const port = this.getInstance()?.location.port;\n if (!port || !this.urlCreator) {\n throw new CommandError(\n 'DEV_SERVER',\n 'Cannot interact with native platforms until dev server has started'\n );\n }\n debug(`Creating platform manager (platform: ${platform}, port: ${port})`);\n this.platformManagers[platform] = new Manager(this.projectRoot, port, {\n getCustomRuntimeUrl: this.urlCreator.constructDevClientUrl.bind(this.urlCreator),\n getExpoGoUrl: this.getExpoGoUrl.bind(this),\n getRedirectUrl: this.getRedirectUrl.bind(this, platform),\n getDevServerUrl: this.getDevServerUrl.bind(this, { hostType: 'localhost' }),\n });\n }\n return this.platformManagers[platform];\n }\n}\n"],"names":["BundlerDevServer","debug","require","PLATFORM_MANAGERS","simulator","ApplePlatformManager","emulator","AndroidPlatformManager","constructor","projectRoot","platformBundlers","options","ngrok","devSession","instance","platformManagers","urlCreator","notifier","devToolsPluginManager","DevToolsPluginManager","isDevClient","setInstance","getManifestMiddlewareAsync","Middleware","ExpoGoManifestHandlerMiddleware","getUrlCreator","middleware","constructUrl","bind","mode","minify","isNativeWebpack","name","isTargetingNative","privateKeyPath","startAsync","stopAsync","headless","startHeadlessAsync","startImplementationAsync","postStartAsync","waitForTypeScriptAsync","watchEnvironmentVariables","port","CommandError","server","close","addListener","location","host","url","protocol","messageSocket","broadcast","hostType","env","EXPO_OFFLINE","_startTunnelAsync","startDevSessionAsync","watchConfig","stopObserving","FileNotifier","getConfigModuleIds","startObserving","getInstance","AsyncNgrok","stopNotifying","DevelopmentSession","getNativeRuntimeUrl","getDevServerUrl","closeAsync","catch","error","message","runtime","isTargetingWeb","web","broadcastMessage","method","params","e","Log","exception","resolveWithTimeout","Promise","resolve","reject","timeout","errorMessage","assert","UrlCreator","getTunnelUrl","opts","constructDevClientUrl","scheme","getJsInspectorBaseUrl","getActiveUrl","openPlatformAsync","launchTarget","resolver","serverUrl","openBrowserAsync","manager","getPlatformManagerAsync","openAsync","openCustomRuntimeAsync","launchProps","props","getExpoGoUrl","isRedirectPageEnabled","EXPO_NO_REDIRECT_PAGE","resolveFrom","silent","getRedirectUrl","platform","constructLoadingUrl","getReactDevToolsUrl","URL","toString","Manager","getCustomRuntimeUrl"],"mappings":"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"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ Object.defineProperty(exports, "DevServerManager", {
6
+ enumerable: true,
7
+ get: ()=>DevServerManager
8
+ });
5
9
  function _config() {
6
10
  const data = require("@expo/config");
7
11
  _config = function() {
@@ -10,61 +14,78 @@ function _config() {
10
14
  return data;
11
15
  }
12
16
  function _assert() {
13
- const data = _interopRequireDefault(require("assert"));
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
14
18
  _assert = function() {
15
19
  return data;
16
20
  };
17
21
  return data;
18
22
  }
19
23
  function _chalk() {
20
- const data = _interopRequireDefault(require("chalk"));
24
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
21
25
  _chalk = function() {
22
26
  return data;
23
27
  };
24
28
  return data;
25
29
  }
26
- var _devToolsPluginManager = _interopRequireDefault(require("./DevToolsPluginManager"));
27
- var _platformBundlers = require("./platformBundlers");
28
- var _log = require("../../log");
29
- var _fileNotifier = require("../../utils/FileNotifier");
30
- var _env = require("../../utils/env");
31
- var _telemetry = require("../../utils/telemetry");
32
- var _typeScriptProjectPrerequisite = require("../doctor/typescript/TypeScriptProjectPrerequisite");
33
- var _commandsTable = require("../interface/commandsTable");
34
- var AndroidDebugBridge = _interopRequireWildcard(require("../platforms/android/adb"));
35
- var _resolveOptions = require("../resolveOptions");
30
+ const _devToolsPluginManager = /*#__PURE__*/ _interopRequireDefault(require("./DevToolsPluginManager"));
31
+ const _platformBundlers = require("./platformBundlers");
32
+ const _log = require("../../log");
33
+ const _fileNotifier = require("../../utils/FileNotifier");
34
+ const _env = require("../../utils/env");
35
+ const _telemetry = require("../../utils/telemetry");
36
+ const _typeScriptProjectPrerequisite = require("../doctor/typescript/TypeScriptProjectPrerequisite");
37
+ const _commandsTable = require("../interface/commandsTable");
38
+ const _adb = /*#__PURE__*/ _interopRequireWildcard(require("../platforms/android/adb"));
39
+ const _resolveOptions = require("../resolveOptions");
36
40
  function _interopRequireDefault(obj) {
37
41
  return obj && obj.__esModule ? obj : {
38
42
  default: obj
39
43
  };
40
44
  }
41
- function _interopRequireWildcard(obj) {
42
- if (obj && obj.__esModule) {
45
+ function _getRequireWildcardCache(nodeInterop) {
46
+ if (typeof WeakMap !== "function") return null;
47
+ var cacheBabelInterop = new WeakMap();
48
+ var cacheNodeInterop = new WeakMap();
49
+ return (_getRequireWildcardCache = function(nodeInterop) {
50
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
51
+ })(nodeInterop);
52
+ }
53
+ function _interopRequireWildcard(obj, nodeInterop) {
54
+ if (!nodeInterop && obj && obj.__esModule) {
43
55
  return obj;
44
- } else {
45
- var newObj = {};
46
- if (obj != null) {
47
- for(var key in obj){
48
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
49
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
50
- if (desc.get || desc.set) {
51
- Object.defineProperty(newObj, key, desc);
52
- } else {
53
- newObj[key] = obj[key];
54
- }
55
- }
56
+ }
57
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
58
+ return {
59
+ default: obj
60
+ };
61
+ }
62
+ var cache = _getRequireWildcardCache(nodeInterop);
63
+ if (cache && cache.has(obj)) {
64
+ return cache.get(obj);
65
+ }
66
+ var newObj = {};
67
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
68
+ for(var key in obj){
69
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
70
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
71
+ if (desc && (desc.get || desc.set)) {
72
+ Object.defineProperty(newObj, key, desc);
73
+ } else {
74
+ newObj[key] = obj[key];
56
75
  }
57
76
  }
58
- newObj.default = obj;
59
- return newObj;
60
77
  }
78
+ newObj.default = obj;
79
+ if (cache) {
80
+ cache.set(obj, newObj);
81
+ }
82
+ return newObj;
61
83
  }
62
84
  var _urlCreator;
63
85
  const debug = require("debug")("expo:start:server:devServerManager");
64
86
  const devServers = [];
65
87
  const BUNDLERS = {
66
- webpack: ()=>require("./webpack/WebpackBundlerDevServer").WebpackBundlerDevServer
67
- ,
88
+ webpack: ()=>require("./webpack/WebpackBundlerDevServer").WebpackBundlerDevServer,
68
89
  metro: ()=>require("./metro/MetroBundlerDevServer").MetroBundlerDevServer
69
90
  };
70
91
  class DevServerManager {
@@ -84,19 +105,18 @@ class DevServerManager {
84
105
  "./.babelrc",
85
106
  "./.babelrc.js",
86
107
  ], {
87
- additionalWarning: _chalk().default` You may need to clear the bundler cache with the {bold --clear} flag for your changes to take effect.`
108
+ additionalWarning: (0, _chalk().default)` You may need to clear the bundler cache with the {bold --clear} flag for your changes to take effect.`
88
109
  });
89
110
  notifier.startObserving();
90
111
  return notifier;
91
112
  }
92
113
  /** Lazily load and assert a project-level prerequisite. */ async ensureProjectPrerequisiteAsync(PrerequisiteClass) {
93
- let prerequisite1 = this.projectPrerequisites.find((prerequisite)=>prerequisite instanceof PrerequisiteClass
94
- );
95
- if (!prerequisite1) {
96
- prerequisite1 = new PrerequisiteClass(this.projectRoot);
97
- this.projectPrerequisites.push(prerequisite1);
114
+ let prerequisite = this.projectPrerequisites.find((prerequisite)=>prerequisite instanceof PrerequisiteClass);
115
+ if (!prerequisite) {
116
+ prerequisite = new PrerequisiteClass(this.projectRoot);
117
+ this.projectPrerequisites.push(prerequisite);
98
118
  }
99
- return await prerequisite1.assertAsync();
119
+ return await prerequisite.assertAsync();
100
120
  }
101
121
  /**
102
122
  * Sends a message over web sockets to all connected devices,
@@ -111,35 +131,31 @@ class DevServerManager {
111
131
  }
112
132
  /** Get the port for the dev server (either Webpack or Metro) that is hosting code for React Native runtimes. */ getNativeDevServerPort() {
113
133
  var ref;
114
- const server1 = devServers.find((server)=>server.isTargetingNative()
115
- );
134
+ const server = devServers.find((server)=>server.isTargetingNative());
116
135
  var _port;
117
- return (_port = (ref = server1 == null ? void 0 : server1.getInstance()) == null ? void 0 : ref.location.port) != null ? _port : null;
136
+ return (_port = (ref = server == null ? void 0 : server.getInstance()) == null ? void 0 : ref.location.port) != null ? _port : null;
118
137
  }
119
138
  /** Get the first server that targets web. */ getWebDevServer() {
120
- const server2 = devServers.find((server)=>server.isTargetingWeb()
121
- );
122
- return server2 != null ? server2 : null;
139
+ const server = devServers.find((server)=>server.isTargetingWeb());
140
+ return server != null ? server : null;
123
141
  }
124
142
  getDefaultDevServer() {
125
143
  // Return the first native dev server otherwise return the first dev server.
126
- const server3 = devServers.find((server)=>server.isTargetingNative()
127
- );
128
- const defaultServer = server3 != null ? server3 : devServers[0];
129
- _assert().default(defaultServer, "No dev servers are running");
144
+ const server = devServers.find((server)=>server.isTargetingNative());
145
+ const defaultServer = server != null ? server : devServers[0];
146
+ (0, _assert().default)(defaultServer, "No dev servers are running");
130
147
  return defaultServer;
131
148
  }
132
149
  async ensureWebDevServerRunningAsync() {
133
- const [server4] = devServers.filter((server)=>server.isTargetingWeb()
134
- );
135
- if (server4) {
150
+ const [server] = devServers.filter((server)=>server.isTargetingWeb());
151
+ if (server) {
136
152
  return;
137
153
  }
138
- const { exp } = _config().getConfig(this.projectRoot, {
154
+ const { exp } = (0, _config().getConfig)(this.projectRoot, {
139
155
  skipPlugins: true,
140
156
  skipSDKVersionRequirement: true
141
157
  });
142
- const bundler = (0, _platformBundlers).getPlatformBundlers(this.projectRoot, exp).web;
158
+ const bundler = (0, _platformBundlers.getPlatformBundlers)(this.projectRoot, exp).web;
143
159
  debug(`Starting ${bundler} dev server for web`);
144
160
  return this.startAsync([
145
161
  {
@@ -150,8 +166,8 @@ class DevServerManager {
150
166
  }
151
167
  /** Switch between Expo Go and Expo Dev Clients. */ async toggleRuntimeMode(isUsingDevClient = !this.options.devClient) {
152
168
  const nextMode = isUsingDevClient ? "--dev-client" : "--go";
153
- _log.Log.log((0, _commandsTable).printItem(_chalk().default`Switching to {bold ${nextMode}}`));
154
- const nextScheme = await (0, _resolveOptions).resolveSchemeAsync(this.projectRoot, {
169
+ _log.Log.log((0, _commandsTable.printItem)((0, _chalk().default)`Switching to {bold ${nextMode}}`));
170
+ const nextScheme = await (0, _resolveOptions.resolveSchemeAsync)(this.projectRoot, {
155
171
  devClient: isUsingDevClient
156
172
  });
157
173
  this.options.location.scheme = nextScheme;
@@ -167,14 +183,14 @@ class DevServerManager {
167
183
  return true;
168
184
  }
169
185
  /** Start all dev servers. */ async startAsync(startOptions) {
170
- const { exp } = _config().getConfig(this.projectRoot, {
186
+ const { exp } = (0, _config().getConfig)(this.projectRoot, {
171
187
  skipSDKVersionRequirement: true
172
188
  });
173
189
  var _sdkVersion;
174
- await (0, _telemetry).logEventAsync("Start Project", {
190
+ await (0, _telemetry.logEventAsync)("Start Project", {
175
191
  sdkVersion: (_sdkVersion = exp.sdkVersion) != null ? _sdkVersion : null
176
192
  });
177
- const platformBundlers = (0, _platformBundlers).getPlatformBundlers(this.projectRoot, exp);
193
+ const platformBundlers = (0, _platformBundlers.getPlatformBundlers)(this.projectRoot, exp);
178
194
  // Start all dev servers...
179
195
  for (const { type , options } of startOptions){
180
196
  const BundlerDevServerClass = await BUNDLERS[type]();
@@ -194,39 +210,35 @@ class DevServerManager {
194
210
  }
195
211
  // Optionally, wait for the user to add TypeScript during the
196
212
  // development cycle.
197
- const server5 = devServers.find((server)=>server.name === "metro"
198
- );
199
- if (!server5) {
213
+ const server = devServers.find((server)=>server.name === "metro");
214
+ if (!server) {
200
215
  return;
201
216
  }
202
217
  // The dev server shouldn't wait for the typescript services
203
218
  if (!typescriptPrerequisite) {
204
- server5.waitForTypeScriptAsync().then(async (success)=>{
219
+ server.waitForTypeScriptAsync().then(async (success)=>{
205
220
  if (success) {
206
- server5.startTypeScriptServices();
221
+ server.startTypeScriptServices();
207
222
  }
208
223
  });
209
224
  } else {
210
- server5.startTypeScriptServices();
225
+ server.startTypeScriptServices();
211
226
  }
212
227
  }
213
228
  async watchEnvironmentVariables() {
214
229
  var ref;
215
- await ((ref = devServers.find((server)=>server.name === "metro"
216
- )) == null ? void 0 : ref.watchEnvironmentVariables());
230
+ await ((ref = devServers.find((server)=>server.name === "metro")) == null ? void 0 : ref.watchEnvironmentVariables());
217
231
  }
218
232
  /** Stop all servers including ADB. */ async stopAsync() {
219
233
  var ref;
220
234
  await Promise.allSettled([
221
235
  (ref = this.notifier) == null ? void 0 : ref.stopObserving(),
222
236
  // Stop all dev servers
223
- ...devServers.map((server)=>server.stopAsync()
224
- ),
237
+ ...devServers.map((server)=>server.stopAsync()),
225
238
  // Stop ADB
226
- AndroidDebugBridge.getServer().stopAsync(),
239
+ _adb.getServer().stopAsync(),
227
240
  ]);
228
241
  }
229
242
  }
230
- exports.DevServerManager = DevServerManager;
231
243
 
232
244
  //# sourceMappingURL=DevServerManager.js.map