@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,11 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.getWorkspaceRoot = getWorkspaceRoot;
6
- exports.getEntryWithServerRoot = getEntryWithServerRoot;
7
- exports.getMetroServerRoot = getMetroServerRoot;
8
- exports.resolveMainModuleName = resolveMainModuleName;
9
- exports.DEVELOPER_TOOL = void 0;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ getWorkspaceRoot: ()=>getWorkspaceRoot,
13
+ getEntryWithServerRoot: ()=>getEntryWithServerRoot,
14
+ getMetroServerRoot: ()=>getMetroServerRoot,
15
+ resolveMainModuleName: ()=>resolveMainModuleName,
16
+ DEVELOPER_TOOL: ()=>DEVELOPER_TOOL,
17
+ ManifestMiddleware: ()=>ManifestMiddleware
18
+ });
10
19
  function _config() {
11
20
  const data = require("@expo/config");
12
21
  _config = function() {
@@ -22,14 +31,14 @@ function _paths() {
22
31
  return data;
23
32
  }
24
33
  function _findYarnWorkspaceRoot() {
25
- const data = _interopRequireDefault(require("find-yarn-workspace-root"));
34
+ const data = /*#__PURE__*/ _interopRequireDefault(require("find-yarn-workspace-root"));
26
35
  _findYarnWorkspaceRoot = function() {
27
36
  return data;
28
37
  };
29
38
  return data;
30
39
  }
31
40
  function _path() {
32
- const data = _interopRequireDefault(require("path"));
41
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
33
42
  _path = function() {
34
43
  return data;
35
44
  };
@@ -42,49 +51,67 @@ function _url() {
42
51
  };
43
52
  return data;
44
53
  }
45
- var _expoMiddleware = require("./ExpoMiddleware");
46
- var _metroOptions = require("./metroOptions");
47
- var _resolveAssets = require("./resolveAssets");
48
- var _resolvePlatform = require("./resolvePlatform");
49
- var _exportHermes = require("../../../export/exportHermes");
50
- var Log = _interopRequireWildcard(require("../../../log"));
51
- var _env = require("../../../utils/env");
52
- var _errors = require("../../../utils/errors");
53
- var _url1 = require("../../../utils/url");
54
- var ProjectDevices = _interopRequireWildcard(require("../../project/devices"));
55
- var _router = require("../metro/router");
56
- var _platformBundlers = require("../platformBundlers");
57
- var _webTemplate = require("../webTemplate");
54
+ const _expoMiddleware = require("./ExpoMiddleware");
55
+ const _metroOptions = require("./metroOptions");
56
+ const _resolveAssets = require("./resolveAssets");
57
+ const _resolvePlatform = require("./resolvePlatform");
58
+ const _exportHermes = require("../../../export/exportHermes");
59
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
60
+ const _env = require("../../../utils/env");
61
+ const _errors = require("../../../utils/errors");
62
+ const _url1 = require("../../../utils/url");
63
+ const _devices = /*#__PURE__*/ _interopRequireWildcard(require("../../project/devices"));
64
+ const _router = require("../metro/router");
65
+ const _platformBundlers = require("../platformBundlers");
66
+ const _webTemplate = require("../webTemplate");
58
67
  function _interopRequireDefault(obj) {
59
68
  return obj && obj.__esModule ? obj : {
60
69
  default: obj
61
70
  };
62
71
  }
63
- function _interopRequireWildcard(obj) {
64
- if (obj && obj.__esModule) {
72
+ function _getRequireWildcardCache(nodeInterop) {
73
+ if (typeof WeakMap !== "function") return null;
74
+ var cacheBabelInterop = new WeakMap();
75
+ var cacheNodeInterop = new WeakMap();
76
+ return (_getRequireWildcardCache = function(nodeInterop) {
77
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
78
+ })(nodeInterop);
79
+ }
80
+ function _interopRequireWildcard(obj, nodeInterop) {
81
+ if (!nodeInterop && obj && obj.__esModule) {
65
82
  return obj;
66
- } else {
67
- var newObj = {};
68
- if (obj != null) {
69
- for(var key in obj){
70
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
71
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
72
- if (desc.get || desc.set) {
73
- Object.defineProperty(newObj, key, desc);
74
- } else {
75
- newObj[key] = obj[key];
76
- }
77
- }
83
+ }
84
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
85
+ return {
86
+ default: obj
87
+ };
88
+ }
89
+ var cache = _getRequireWildcardCache(nodeInterop);
90
+ if (cache && cache.has(obj)) {
91
+ return cache.get(obj);
92
+ }
93
+ var newObj = {};
94
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
95
+ for(var key in obj){
96
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
97
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
98
+ if (desc && (desc.get || desc.set)) {
99
+ Object.defineProperty(newObj, key, desc);
100
+ } else {
101
+ newObj[key] = obj[key];
78
102
  }
79
103
  }
80
- newObj.default = obj;
81
- return newObj;
82
104
  }
105
+ newObj.default = obj;
106
+ if (cache) {
107
+ cache.set(obj, newObj);
108
+ }
109
+ return newObj;
83
110
  }
84
111
  const debug = require("debug")("expo:start:server:middleware:manifest");
85
112
  function getWorkspaceRoot(projectRoot) {
86
113
  try {
87
- return _findYarnWorkspaceRoot().default(projectRoot);
114
+ return (0, _findYarnWorkspaceRoot().default)(projectRoot);
88
115
  } catch (error) {
89
116
  if (error.message.includes("Unexpected end of JSON input")) {
90
117
  return null;
@@ -102,7 +129,7 @@ function getEntryWithServerRoot(projectRoot, props) {
102
129
  if (!supportedPlatforms.includes(props.platform)) {
103
130
  throw new _errors.CommandError(`Failed to resolve the project's entry file: The platform "${props.platform}" is not supported.`);
104
131
  }
105
- return _path().default.relative(getMetroServerRoot(projectRoot), _paths().resolveEntryPoint(projectRoot, props));
132
+ return _path().default.relative(getMetroServerRoot(projectRoot), (0, _paths().resolveEntryPoint)(projectRoot, props));
106
133
  }
107
134
  function getMetroServerRoot(projectRoot) {
108
135
  if (_env.env.EXPO_USE_METRO_WORKSPACE_ROOT) {
@@ -114,10 +141,9 @@ function getMetroServerRoot(projectRoot) {
114
141
  function resolveMainModuleName(projectRoot, props) {
115
142
  const entryPoint = getEntryWithServerRoot(projectRoot, props);
116
143
  debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);
117
- return (0, _url1).stripExtension(entryPoint, "js");
144
+ return (0, _url1.stripExtension)(entryPoint, "js");
118
145
  }
119
146
  const DEVELOPER_TOOL = "expo-cli";
120
- exports.DEVELOPER_TOOL = DEVELOPER_TOOL;
121
147
  class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
122
148
  constructor(projectRoot, options){
123
149
  super(projectRoot, /**
@@ -129,18 +155,18 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
129
155
  ]);
130
156
  this.projectRoot = projectRoot;
131
157
  this.options = options;
132
- this.initialProjectConfig = _config().getConfig(projectRoot);
133
- this.platformBundlers = (0, _platformBundlers).getPlatformBundlers(projectRoot, this.initialProjectConfig.exp);
158
+ this.initialProjectConfig = (0, _config().getConfig)(projectRoot);
159
+ this.platformBundlers = (0, _platformBundlers.getPlatformBundlers)(projectRoot, this.initialProjectConfig.exp);
134
160
  }
135
161
  /** Exposed for testing. */ async _resolveProjectSettingsAsync({ platform , hostname , protocol }) {
136
162
  // Read the config
137
- const projectConfig = _config().getConfig(this.projectRoot);
163
+ const projectConfig = (0, _config().getConfig)(this.projectRoot);
138
164
  // Read from headers
139
165
  const mainModuleName = this.resolveMainModuleName({
140
166
  pkg: projectConfig.pkg,
141
167
  platform
142
168
  });
143
- const isHermesEnabled = (0, _exportHermes).isEnableHermesManaged(projectConfig.exp, platform);
169
+ const isHermesEnabled = (0, _exportHermes.isEnableHermesManaged)(projectConfig.exp, platform);
144
170
  // Create the manifest and set fields within it
145
171
  const expoGoConfig = this.getExpoGoConfig({
146
172
  mainModuleName,
@@ -156,9 +182,9 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
156
182
  mainModuleName,
157
183
  hostname,
158
184
  engine: isHermesEnabled ? "hermes" : undefined,
159
- baseUrl: (0, _metroOptions).getBaseUrlFromExpoConfig(projectConfig.exp),
160
- asyncRoutes: (0, _metroOptions).getAsyncRoutesFromExpoConfig(projectConfig.exp, (_mode = this.options.mode) != null ? _mode : "development", platform),
161
- routerRoot: (0, _router).getRouterDirectoryModuleIdWithManifest(this.projectRoot, projectConfig.exp),
185
+ baseUrl: (0, _metroOptions.getBaseUrlFromExpoConfig)(projectConfig.exp),
186
+ asyncRoutes: (0, _metroOptions.getAsyncRoutesFromExpoConfig)(projectConfig.exp, (_mode = this.options.mode) != null ? _mode : "development", platform),
187
+ routerRoot: (0, _router.getRouterDirectoryModuleIdWithManifest)(this.projectRoot, projectConfig.exp),
162
188
  protocol
163
189
  });
164
190
  // Resolve all assets and set them on the manifest as URLs
@@ -182,24 +208,23 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
182
208
  if (this.options.isNativeWebpack) {
183
209
  entryPoint = "index.js";
184
210
  }
185
- return (0, _url1).stripExtension(entryPoint, "js");
211
+ return (0, _url1.stripExtension)(entryPoint, "js");
186
212
  }
187
213
  /** Store device IDs that were sent in the request headers. */ async saveDevicesAsync(req) {
188
214
  var ref;
189
215
  const deviceIds = (ref = req.headers) == null ? void 0 : ref["expo-dev-client-id"];
190
216
  if (deviceIds) {
191
- await ProjectDevices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e)=>Log.exception(e)
192
- );
217
+ await _devices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e)=>_log.exception(e));
193
218
  }
194
219
  }
195
220
  /** Create the bundle URL (points to the single JS entry file). Exposed for testing. */ _getBundleUrl({ platform , mainModuleName , hostname , engine , baseUrl , isExporting , asyncRoutes , routerRoot , protocol }) {
196
221
  var _mode;
197
- const path = (0, _metroOptions).createBundleUrlPath({
222
+ const path = (0, _metroOptions.createBundleUrlPath)({
198
223
  mode: (_mode = this.options.mode) != null ? _mode : "development",
199
224
  minify: this.options.minify,
200
225
  platform,
201
226
  mainModuleName,
202
- lazy: (0, _metroOptions).shouldEnableAsyncImports(this.projectRoot),
227
+ lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
203
228
  engine,
204
229
  bytecode: engine === "hermes",
205
230
  baseUrl,
@@ -239,19 +264,19 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
239
264
  };
240
265
  }
241
266
  /** Resolve all assets and set them on the manifest as URLs */ async mutateManifestWithAssetsAsync(manifest, bundleUrl) {
242
- await (0, _resolveAssets).resolveManifestAssets(this.projectRoot, {
267
+ await (0, _resolveAssets.resolveManifestAssets)(this.projectRoot, {
243
268
  manifest,
244
269
  resolver: async (path)=>{
245
270
  if (this.options.isNativeWebpack) {
246
271
  // When using our custom dev server, just do assets normally
247
272
  // without the `assets/` subpath redirect.
248
- return _url().resolve(bundleUrl.match(/^https?:\/\/.*?\//)[0], path);
273
+ return (0, _url().resolve)(bundleUrl.match(/^https?:\/\/.*?\//)[0], path);
249
274
  }
250
275
  return bundleUrl.match(/^https?:\/\/.*?\//)[0] + "assets/" + path;
251
276
  }
252
277
  });
253
278
  // The server normally inserts this but if we're offline we'll do it here
254
- await (0, _resolveAssets).resolveGoogleServicesFile(this.projectRoot, manifest);
279
+ await (0, _resolveAssets.resolveGoogleServicesFile)(this.projectRoot, manifest);
255
280
  }
256
281
  getWebBundleUrl() {
257
282
  const platform = "web";
@@ -261,11 +286,11 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
261
286
  platform
262
287
  });
263
288
  var _mode;
264
- return (0, _metroOptions).createBundleUrlPathFromExpoConfig(this.projectRoot, this.initialProjectConfig.exp, {
289
+ return (0, _metroOptions.createBundleUrlPathFromExpoConfig)(this.projectRoot, this.initialProjectConfig.exp, {
265
290
  platform,
266
291
  mainModuleName,
267
292
  minify: this.options.minify,
268
- lazy: (0, _metroOptions).shouldEnableAsyncImports(this.projectRoot),
293
+ lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
269
294
  mode: (_mode = this.options.mode) != null ? _mode : "development",
270
295
  // Hermes doesn't support more modern JS features than most, if not all, modern browser.
271
296
  engine: "hermes",
@@ -282,7 +307,7 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
282
307
  // Read from headers
283
308
  const bundleUrl = this.getWebBundleUrl();
284
309
  res.setHeader("Content-Type", "text/html");
285
- res.end(await (0, _webTemplate).createTemplateHtmlFromExpoConfigAsync(this.projectRoot, {
310
+ res.end(await (0, _webTemplate.createTemplateHtmlFromExpoConfigAsync)(this.projectRoot, {
286
311
  exp: this.initialProjectConfig.exp,
287
312
  scripts: [
288
313
  bundleUrl
@@ -295,7 +320,7 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
295
320
  // NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure
296
321
  // the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo
297
322
  // code loading then they'll get a web bundle without a clear assertion of platform support.
298
- const platform = (0, _resolvePlatform).parsePlatformHeader(req);
323
+ const platform = (0, _resolvePlatform.parsePlatformHeader)(req);
299
324
  // On web, serve the public folder
300
325
  if (!platform || platform === "web") {
301
326
  var ref1;
@@ -333,6 +358,5 @@ class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
333
358
  this.trackManifest(version != null ? version : null);
334
359
  }
335
360
  }
336
- exports.ManifestMiddleware = ManifestMiddleware;
337
361
 
338
362
  //# sourceMappingURL=ManifestMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/ManifestMiddleware.ts"],"sourcesContent":["import {\n ExpoConfig,\n ExpoGoConfig,\n getConfig,\n PackageJSONConfig,\n ProjectConfig,\n} from '@expo/config';\nimport { resolveEntryPoint } from '@expo/config/paths';\nimport findWorkspaceRoot from 'find-yarn-workspace-root';\nimport path from 'path';\nimport { resolve } from 'url';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport {\n shouldEnableAsyncImports,\n createBundleUrlPath,\n getBaseUrlFromExpoConfig,\n getAsyncRoutesFromExpoConfig,\n createBundleUrlPathFromExpoConfig,\n} from './metroOptions';\nimport { resolveGoogleServicesFile, resolveManifestAssets } from './resolveAssets';\nimport { parsePlatformHeader, RuntimePlatform } from './resolvePlatform';\nimport { ServerHeaders, ServerNext, ServerRequest, ServerResponse } from './server.types';\nimport { isEnableHermesManaged } from '../../../export/exportHermes';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { stripExtension } from '../../../utils/url';\nimport * as ProjectDevices from '../../project/devices';\nimport { UrlCreator } from '../UrlCreator';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\nimport { getPlatformBundlers, PlatformBundlers } from '../platformBundlers';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../webTemplate';\n\nconst debug = require('debug')('expo:start:server:middleware:manifest') as typeof console.log;\n\n/** Wraps `findWorkspaceRoot` and guards against having an empty `package.json` file in an upper directory. */\nexport function getWorkspaceRoot(projectRoot: string): string | null {\n try {\n return findWorkspaceRoot(projectRoot);\n } catch (error: any) {\n if (error.message.includes('Unexpected end of JSON input')) {\n return null;\n }\n throw error;\n }\n}\n\nconst supportedPlatforms = ['ios', 'android', 'web', 'none'];\n\nexport function getEntryWithServerRoot(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n) {\n if (!supportedPlatforms.includes(props.platform)) {\n throw new CommandError(\n `Failed to resolve the project's entry file: The platform \"${props.platform}\" is not supported.`\n );\n }\n return path.relative(getMetroServerRoot(projectRoot), resolveEntryPoint(projectRoot, props));\n}\n\nexport function getMetroServerRoot(projectRoot: string) {\n if (env.EXPO_USE_METRO_WORKSPACE_ROOT) {\n return getWorkspaceRoot(projectRoot) ?? projectRoot;\n }\n\n return projectRoot;\n}\n\n/** Get the main entry module ID (file) relative to the project root. */\nexport function resolveMainModuleName(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n): string {\n const entryPoint = getEntryWithServerRoot(projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);\n\n return stripExtension(entryPoint, 'js');\n}\n\n/** Info about the computer hosting the dev server. */\nexport interface HostInfo {\n host: string;\n server: 'expo';\n serverVersion: string;\n serverDriver: string | null;\n serverOS: NodeJS.Platform;\n serverOSVersion: string;\n}\n\n/** Parsed values from the supported request headers. */\nexport interface ManifestRequestInfo {\n /** Platform to serve. */\n platform: RuntimePlatform;\n /** Requested host name. */\n hostname?: string | null;\n /** The protocol used to request the manifest */\n protocol?: 'http' | 'https';\n}\n\n/** Project related info. */\nexport type ResponseProjectSettings = {\n expoGoConfig: ExpoGoConfig;\n hostUri: string;\n bundleUrl: string;\n exp: ExpoConfig;\n};\n\nexport const DEVELOPER_TOOL = 'expo-cli';\n\nexport type ManifestMiddlewareOptions = {\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n constructUrl: UrlCreator['constructUrl'];\n isNativeWebpack?: boolean;\n privateKeyPath?: string;\n};\n\n/** Base middleware creator for serving the Expo manifest (like the index.html but for native runtimes). */\nexport abstract class ManifestMiddleware<\n TManifestRequestInfo extends ManifestRequestInfo,\n> extends ExpoMiddleware {\n private initialProjectConfig: ProjectConfig;\n private platformBundlers: PlatformBundlers;\n\n constructor(\n protected projectRoot: string,\n protected options: ManifestMiddlewareOptions\n ) {\n super(\n projectRoot,\n /**\n * Only support `/`, `/manifest`, `/index.exp` for the manifest middleware.\n */\n ['/', '/manifest', '/index.exp']\n );\n this.initialProjectConfig = getConfig(projectRoot);\n this.platformBundlers = getPlatformBundlers(projectRoot, this.initialProjectConfig.exp);\n }\n\n /** Exposed for testing. */\n public async _resolveProjectSettingsAsync({\n platform,\n hostname,\n protocol,\n }: Pick<\n TManifestRequestInfo,\n 'hostname' | 'platform' | 'protocol'\n >): Promise<ResponseProjectSettings> {\n // Read the config\n const projectConfig = getConfig(this.projectRoot);\n\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: projectConfig.pkg,\n platform,\n });\n\n const isHermesEnabled = isEnableHermesManaged(projectConfig.exp, platform);\n\n // Create the manifest and set fields within it\n const expoGoConfig = this.getExpoGoConfig({\n mainModuleName,\n hostname,\n });\n\n const hostUri = this.options.constructUrl({ scheme: '', hostname });\n\n const bundleUrl = this._getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine: isHermesEnabled ? 'hermes' : undefined,\n baseUrl: getBaseUrlFromExpoConfig(projectConfig.exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(\n projectConfig.exp,\n this.options.mode ?? 'development',\n platform\n ),\n routerRoot: getRouterDirectoryModuleIdWithManifest(this.projectRoot, projectConfig.exp),\n protocol,\n });\n\n // Resolve all assets and set them on the manifest as URLs\n await this.mutateManifestWithAssetsAsync(projectConfig.exp, bundleUrl);\n\n return {\n expoGoConfig,\n hostUri,\n bundleUrl,\n exp: projectConfig.exp,\n };\n }\n\n /** Get the main entry module ID (file) relative to the project root. */\n private resolveMainModuleName(props: { pkg: PackageJSONConfig; platform: string }): string {\n let entryPoint = getEntryWithServerRoot(this.projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${this.projectRoot})`);\n\n // NOTE(Bacon): Webpack is currently hardcoded to index.bundle on native\n // in the future (TODO) we should move this logic into a Webpack plugin and use\n // a generated file name like we do on web.\n // const server = getDefaultDevServer();\n // // TODO: Move this into BundlerDevServer and read this info from self.\n // const isNativeWebpack = server instanceof WebpackBundlerDevServer && server.isTargetingNative();\n if (this.options.isNativeWebpack) {\n entryPoint = 'index.js';\n }\n\n return stripExtension(entryPoint, 'js');\n }\n\n /** Parse request headers into options. */\n public abstract getParsedHeaders(req: ServerRequest): TManifestRequestInfo;\n\n /** Store device IDs that were sent in the request headers. */\n private async saveDevicesAsync(req: ServerRequest) {\n const deviceIds = req.headers?.['expo-dev-client-id'];\n if (deviceIds) {\n await ProjectDevices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e) =>\n Log.exception(e)\n );\n }\n }\n\n /** Create the bundle URL (points to the single JS entry file). Exposed for testing. */\n public _getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine,\n baseUrl,\n isExporting,\n asyncRoutes,\n routerRoot,\n protocol,\n }: {\n platform: string;\n hostname?: string | null;\n mainModuleName: string;\n engine?: 'hermes';\n baseUrl?: string;\n asyncRoutes: boolean;\n isExporting?: boolean;\n routerRoot: string;\n protocol?: 'http' | 'https';\n }): string {\n const path = createBundleUrlPath({\n mode: this.options.mode ?? 'development',\n minify: this.options.minify,\n platform,\n mainModuleName,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n engine,\n bytecode: engine === 'hermes',\n baseUrl,\n isExporting: !!isExporting,\n asyncRoutes,\n routerRoot,\n });\n\n return (\n this.options.constructUrl({\n scheme: protocol ?? 'http',\n // hostType: this.options.location.hostType,\n hostname,\n }) + path\n );\n }\n\n /** Log telemetry. */\n protected abstract trackManifest(version?: string): void;\n\n /** Get the manifest response to return to the runtime. This file contains info regarding where the assets can be loaded from. Exposed for testing. */\n public abstract _getManifestResponseAsync(options: TManifestRequestInfo): Promise<{\n body: string;\n version: string;\n headers: ServerHeaders;\n }>;\n\n private getExpoGoConfig({\n mainModuleName,\n hostname,\n }: {\n mainModuleName: string;\n hostname?: string | null;\n }): ExpoGoConfig {\n return {\n // localhost:8081\n debuggerHost: this.options.constructUrl({ scheme: '', hostname }),\n // Required for Expo Go to function.\n developer: {\n tool: DEVELOPER_TOOL,\n projectRoot: this.projectRoot,\n },\n packagerOpts: {\n // Required for dev client.\n dev: this.options.mode !== 'production',\n },\n // Indicates the name of the main bundle.\n mainModuleName,\n // Add this string to make Flipper register React Native / Metro as \"running\".\n // Can be tested by running:\n // `METRO_SERVER_PORT=8081 open -a flipper.app`\n // Where 8081 is the port where the Expo project is being hosted.\n __flipperHack: 'React Native packager is running',\n };\n }\n\n /** Resolve all assets and set them on the manifest as URLs */\n private async mutateManifestWithAssetsAsync(manifest: ExpoConfig, bundleUrl: string) {\n await resolveManifestAssets(this.projectRoot, {\n manifest,\n resolver: async (path) => {\n if (this.options.isNativeWebpack) {\n // When using our custom dev server, just do assets normally\n // without the `assets/` subpath redirect.\n return resolve(bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0], path);\n }\n return bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0] + 'assets/' + path;\n },\n });\n // The server normally inserts this but if we're offline we'll do it here\n await resolveGoogleServicesFile(this.projectRoot, manifest);\n }\n\n public getWebBundleUrl() {\n const platform = 'web';\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: this.initialProjectConfig.pkg,\n platform,\n });\n\n return createBundleUrlPathFromExpoConfig(this.projectRoot, this.initialProjectConfig.exp, {\n platform,\n mainModuleName,\n minify: this.options.minify,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n mode: this.options.mode ?? 'development',\n // Hermes doesn't support more modern JS features than most, if not all, modern browser.\n engine: 'hermes',\n isExporting: false,\n bytecode: false,\n });\n }\n\n /**\n * Web platforms should create an index.html response using the same script resolution as native.\n *\n * Instead of adding a `bundleUrl` to a `manifest.json` (native) we'll add a `<script src=\"\">`\n * to an `index.html`, this enables the web platform to load JavaScript from the server.\n */\n private async handleWebRequestAsync(req: ServerRequest, res: ServerResponse) {\n // Read from headers\n const bundleUrl = this.getWebBundleUrl();\n\n res.setHeader('Content-Type', 'text/html');\n\n res.end(\n await createTemplateHtmlFromExpoConfigAsync(this.projectRoot, {\n exp: this.initialProjectConfig.exp,\n scripts: [bundleUrl],\n })\n );\n }\n\n /** Exposed for testing. */\n async checkBrowserRequestAsync(req: ServerRequest, res: ServerResponse, next: ServerNext) {\n if (\n this.platformBundlers.web === 'metro' &&\n this.initialProjectConfig.exp.platforms?.includes('web')\n ) {\n // NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure\n // the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo\n // code loading then they'll get a web bundle without a clear assertion of platform support.\n const platform = parsePlatformHeader(req);\n // On web, serve the public folder\n if (!platform || platform === 'web') {\n if (['static', 'server'].includes(this.initialProjectConfig.exp.web?.output ?? '')) {\n // Skip the spa-styled index.html when static generation is enabled.\n next();\n return true;\n } else {\n await this.handleWebRequestAsync(req, res);\n return true;\n }\n }\n }\n return false;\n }\n\n async handleRequestAsync(\n req: ServerRequest,\n res: ServerResponse,\n next: ServerNext\n ): Promise<void> {\n // First check for standard JavaScript runtimes (aka legacy browsers like Chrome).\n if (await this.checkBrowserRequestAsync(req, res, next)) {\n return;\n }\n\n // Save device IDs for dev client.\n await this.saveDevicesAsync(req);\n\n // Read from headers\n const options = this.getParsedHeaders(req);\n const { body, version, headers } = await this._getManifestResponseAsync(options);\n for (const [headerName, headerValue] of headers) {\n res.setHeader(headerName, headerValue);\n }\n res.end(body);\n\n // Log analytics\n this.trackManifest(version ?? null);\n }\n}\n"],"names":["getWorkspaceRoot","getEntryWithServerRoot","getMetroServerRoot","resolveMainModuleName","Log","ProjectDevices","debug","require","projectRoot","findWorkspaceRoot","error","message","includes","supportedPlatforms","props","platform","CommandError","path","relative","resolveEntryPoint","env","EXPO_USE_METRO_WORKSPACE_ROOT","entryPoint","stripExtension","DEVELOPER_TOOL","ManifestMiddleware","ExpoMiddleware","constructor","options","initialProjectConfig","getConfig","platformBundlers","getPlatformBundlers","exp","_resolveProjectSettingsAsync","hostname","protocol","projectConfig","mainModuleName","pkg","isHermesEnabled","isEnableHermesManaged","expoGoConfig","getExpoGoConfig","hostUri","constructUrl","scheme","bundleUrl","_getBundleUrl","engine","undefined","baseUrl","getBaseUrlFromExpoConfig","asyncRoutes","getAsyncRoutesFromExpoConfig","mode","routerRoot","getRouterDirectoryModuleIdWithManifest","mutateManifestWithAssetsAsync","isNativeWebpack","saveDevicesAsync","req","deviceIds","headers","catch","e","exception","isExporting","createBundleUrlPath","minify","lazy","shouldEnableAsyncImports","bytecode","debuggerHost","developer","tool","packagerOpts","dev","__flipperHack","manifest","resolveManifestAssets","resolver","resolve","match","resolveGoogleServicesFile","getWebBundleUrl","createBundleUrlPathFromExpoConfig","handleWebRequestAsync","res","setHeader","end","createTemplateHtmlFromExpoConfigAsync","scripts","checkBrowserRequestAsync","next","web","platforms","parsePlatformHeader","output","handleRequestAsync","getParsedHeaders","body","version","_getManifestResponseAsync","headerName","headerValue","trackManifest"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/ManifestMiddleware.ts"],"sourcesContent":["import {\n ExpoConfig,\n ExpoGoConfig,\n getConfig,\n PackageJSONConfig,\n ProjectConfig,\n} from '@expo/config';\nimport { resolveEntryPoint } from '@expo/config/paths';\nimport findWorkspaceRoot from 'find-yarn-workspace-root';\nimport path from 'path';\nimport { resolve } from 'url';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport {\n shouldEnableAsyncImports,\n createBundleUrlPath,\n getBaseUrlFromExpoConfig,\n getAsyncRoutesFromExpoConfig,\n createBundleUrlPathFromExpoConfig,\n} from './metroOptions';\nimport { resolveGoogleServicesFile, resolveManifestAssets } from './resolveAssets';\nimport { parsePlatformHeader, RuntimePlatform } from './resolvePlatform';\nimport { ServerHeaders, ServerNext, ServerRequest, ServerResponse } from './server.types';\nimport { isEnableHermesManaged } from '../../../export/exportHermes';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { stripExtension } from '../../../utils/url';\nimport * as ProjectDevices from '../../project/devices';\nimport { UrlCreator } from '../UrlCreator';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\nimport { getPlatformBundlers, PlatformBundlers } from '../platformBundlers';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../webTemplate';\n\nconst debug = require('debug')('expo:start:server:middleware:manifest') as typeof console.log;\n\n/** Wraps `findWorkspaceRoot` and guards against having an empty `package.json` file in an upper directory. */\nexport function getWorkspaceRoot(projectRoot: string): string | null {\n try {\n return findWorkspaceRoot(projectRoot);\n } catch (error: any) {\n if (error.message.includes('Unexpected end of JSON input')) {\n return null;\n }\n throw error;\n }\n}\n\nconst supportedPlatforms = ['ios', 'android', 'web', 'none'];\n\nexport function getEntryWithServerRoot(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n) {\n if (!supportedPlatforms.includes(props.platform)) {\n throw new CommandError(\n `Failed to resolve the project's entry file: The platform \"${props.platform}\" is not supported.`\n );\n }\n return path.relative(getMetroServerRoot(projectRoot), resolveEntryPoint(projectRoot, props));\n}\n\nexport function getMetroServerRoot(projectRoot: string) {\n if (env.EXPO_USE_METRO_WORKSPACE_ROOT) {\n return getWorkspaceRoot(projectRoot) ?? projectRoot;\n }\n\n return projectRoot;\n}\n\n/** Get the main entry module ID (file) relative to the project root. */\nexport function resolveMainModuleName(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n): string {\n const entryPoint = getEntryWithServerRoot(projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);\n\n return stripExtension(entryPoint, 'js');\n}\n\n/** Info about the computer hosting the dev server. */\nexport interface HostInfo {\n host: string;\n server: 'expo';\n serverVersion: string;\n serverDriver: string | null;\n serverOS: NodeJS.Platform;\n serverOSVersion: string;\n}\n\n/** Parsed values from the supported request headers. */\nexport interface ManifestRequestInfo {\n /** Platform to serve. */\n platform: RuntimePlatform;\n /** Requested host name. */\n hostname?: string | null;\n /** The protocol used to request the manifest */\n protocol?: 'http' | 'https';\n}\n\n/** Project related info. */\nexport type ResponseProjectSettings = {\n expoGoConfig: ExpoGoConfig;\n hostUri: string;\n bundleUrl: string;\n exp: ExpoConfig;\n};\n\nexport const DEVELOPER_TOOL = 'expo-cli';\n\nexport type ManifestMiddlewareOptions = {\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n constructUrl: UrlCreator['constructUrl'];\n isNativeWebpack?: boolean;\n privateKeyPath?: string;\n};\n\n/** Base middleware creator for serving the Expo manifest (like the index.html but for native runtimes). */\nexport abstract class ManifestMiddleware<\n TManifestRequestInfo extends ManifestRequestInfo,\n> extends ExpoMiddleware {\n private initialProjectConfig: ProjectConfig;\n private platformBundlers: PlatformBundlers;\n\n constructor(\n protected projectRoot: string,\n protected options: ManifestMiddlewareOptions\n ) {\n super(\n projectRoot,\n /**\n * Only support `/`, `/manifest`, `/index.exp` for the manifest middleware.\n */\n ['/', '/manifest', '/index.exp']\n );\n this.initialProjectConfig = getConfig(projectRoot);\n this.platformBundlers = getPlatformBundlers(projectRoot, this.initialProjectConfig.exp);\n }\n\n /** Exposed for testing. */\n public async _resolveProjectSettingsAsync({\n platform,\n hostname,\n protocol,\n }: Pick<\n TManifestRequestInfo,\n 'hostname' | 'platform' | 'protocol'\n >): Promise<ResponseProjectSettings> {\n // Read the config\n const projectConfig = getConfig(this.projectRoot);\n\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: projectConfig.pkg,\n platform,\n });\n\n const isHermesEnabled = isEnableHermesManaged(projectConfig.exp, platform);\n\n // Create the manifest and set fields within it\n const expoGoConfig = this.getExpoGoConfig({\n mainModuleName,\n hostname,\n });\n\n const hostUri = this.options.constructUrl({ scheme: '', hostname });\n\n const bundleUrl = this._getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine: isHermesEnabled ? 'hermes' : undefined,\n baseUrl: getBaseUrlFromExpoConfig(projectConfig.exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(\n projectConfig.exp,\n this.options.mode ?? 'development',\n platform\n ),\n routerRoot: getRouterDirectoryModuleIdWithManifest(this.projectRoot, projectConfig.exp),\n protocol,\n });\n\n // Resolve all assets and set them on the manifest as URLs\n await this.mutateManifestWithAssetsAsync(projectConfig.exp, bundleUrl);\n\n return {\n expoGoConfig,\n hostUri,\n bundleUrl,\n exp: projectConfig.exp,\n };\n }\n\n /** Get the main entry module ID (file) relative to the project root. */\n private resolveMainModuleName(props: { pkg: PackageJSONConfig; platform: string }): string {\n let entryPoint = getEntryWithServerRoot(this.projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${this.projectRoot})`);\n\n // NOTE(Bacon): Webpack is currently hardcoded to index.bundle on native\n // in the future (TODO) we should move this logic into a Webpack plugin and use\n // a generated file name like we do on web.\n // const server = getDefaultDevServer();\n // // TODO: Move this into BundlerDevServer and read this info from self.\n // const isNativeWebpack = server instanceof WebpackBundlerDevServer && server.isTargetingNative();\n if (this.options.isNativeWebpack) {\n entryPoint = 'index.js';\n }\n\n return stripExtension(entryPoint, 'js');\n }\n\n /** Parse request headers into options. */\n public abstract getParsedHeaders(req: ServerRequest): TManifestRequestInfo;\n\n /** Store device IDs that were sent in the request headers. */\n private async saveDevicesAsync(req: ServerRequest) {\n const deviceIds = req.headers?.['expo-dev-client-id'];\n if (deviceIds) {\n await ProjectDevices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e) =>\n Log.exception(e)\n );\n }\n }\n\n /** Create the bundle URL (points to the single JS entry file). Exposed for testing. */\n public _getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine,\n baseUrl,\n isExporting,\n asyncRoutes,\n routerRoot,\n protocol,\n }: {\n platform: string;\n hostname?: string | null;\n mainModuleName: string;\n engine?: 'hermes';\n baseUrl?: string;\n asyncRoutes: boolean;\n isExporting?: boolean;\n routerRoot: string;\n protocol?: 'http' | 'https';\n }): string {\n const path = createBundleUrlPath({\n mode: this.options.mode ?? 'development',\n minify: this.options.minify,\n platform,\n mainModuleName,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n engine,\n bytecode: engine === 'hermes',\n baseUrl,\n isExporting: !!isExporting,\n asyncRoutes,\n routerRoot,\n });\n\n return (\n this.options.constructUrl({\n scheme: protocol ?? 'http',\n // hostType: this.options.location.hostType,\n hostname,\n }) + path\n );\n }\n\n /** Log telemetry. */\n protected abstract trackManifest(version?: string): void;\n\n /** Get the manifest response to return to the runtime. This file contains info regarding where the assets can be loaded from. Exposed for testing. */\n public abstract _getManifestResponseAsync(options: TManifestRequestInfo): Promise<{\n body: string;\n version: string;\n headers: ServerHeaders;\n }>;\n\n private getExpoGoConfig({\n mainModuleName,\n hostname,\n }: {\n mainModuleName: string;\n hostname?: string | null;\n }): ExpoGoConfig {\n return {\n // localhost:8081\n debuggerHost: this.options.constructUrl({ scheme: '', hostname }),\n // Required for Expo Go to function.\n developer: {\n tool: DEVELOPER_TOOL,\n projectRoot: this.projectRoot,\n },\n packagerOpts: {\n // Required for dev client.\n dev: this.options.mode !== 'production',\n },\n // Indicates the name of the main bundle.\n mainModuleName,\n // Add this string to make Flipper register React Native / Metro as \"running\".\n // Can be tested by running:\n // `METRO_SERVER_PORT=8081 open -a flipper.app`\n // Where 8081 is the port where the Expo project is being hosted.\n __flipperHack: 'React Native packager is running',\n };\n }\n\n /** Resolve all assets and set them on the manifest as URLs */\n private async mutateManifestWithAssetsAsync(manifest: ExpoConfig, bundleUrl: string) {\n await resolveManifestAssets(this.projectRoot, {\n manifest,\n resolver: async (path) => {\n if (this.options.isNativeWebpack) {\n // When using our custom dev server, just do assets normally\n // without the `assets/` subpath redirect.\n return resolve(bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0], path);\n }\n return bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0] + 'assets/' + path;\n },\n });\n // The server normally inserts this but if we're offline we'll do it here\n await resolveGoogleServicesFile(this.projectRoot, manifest);\n }\n\n public getWebBundleUrl() {\n const platform = 'web';\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: this.initialProjectConfig.pkg,\n platform,\n });\n\n return createBundleUrlPathFromExpoConfig(this.projectRoot, this.initialProjectConfig.exp, {\n platform,\n mainModuleName,\n minify: this.options.minify,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n mode: this.options.mode ?? 'development',\n // Hermes doesn't support more modern JS features than most, if not all, modern browser.\n engine: 'hermes',\n isExporting: false,\n bytecode: false,\n });\n }\n\n /**\n * Web platforms should create an index.html response using the same script resolution as native.\n *\n * Instead of adding a `bundleUrl` to a `manifest.json` (native) we'll add a `<script src=\"\">`\n * to an `index.html`, this enables the web platform to load JavaScript from the server.\n */\n private async handleWebRequestAsync(req: ServerRequest, res: ServerResponse) {\n // Read from headers\n const bundleUrl = this.getWebBundleUrl();\n\n res.setHeader('Content-Type', 'text/html');\n\n res.end(\n await createTemplateHtmlFromExpoConfigAsync(this.projectRoot, {\n exp: this.initialProjectConfig.exp,\n scripts: [bundleUrl],\n })\n );\n }\n\n /** Exposed for testing. */\n async checkBrowserRequestAsync(req: ServerRequest, res: ServerResponse, next: ServerNext) {\n if (\n this.platformBundlers.web === 'metro' &&\n this.initialProjectConfig.exp.platforms?.includes('web')\n ) {\n // NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure\n // the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo\n // code loading then they'll get a web bundle without a clear assertion of platform support.\n const platform = parsePlatformHeader(req);\n // On web, serve the public folder\n if (!platform || platform === 'web') {\n if (['static', 'server'].includes(this.initialProjectConfig.exp.web?.output ?? '')) {\n // Skip the spa-styled index.html when static generation is enabled.\n next();\n return true;\n } else {\n await this.handleWebRequestAsync(req, res);\n return true;\n }\n }\n }\n return false;\n }\n\n async handleRequestAsync(\n req: ServerRequest,\n res: ServerResponse,\n next: ServerNext\n ): Promise<void> {\n // First check for standard JavaScript runtimes (aka legacy browsers like Chrome).\n if (await this.checkBrowserRequestAsync(req, res, next)) {\n return;\n }\n\n // Save device IDs for dev client.\n await this.saveDevicesAsync(req);\n\n // Read from headers\n const options = this.getParsedHeaders(req);\n const { body, version, headers } = await this._getManifestResponseAsync(options);\n for (const [headerName, headerValue] of headers) {\n res.setHeader(headerName, headerValue);\n }\n res.end(body);\n\n // Log analytics\n this.trackManifest(version ?? null);\n }\n}\n"],"names":["getWorkspaceRoot","getEntryWithServerRoot","getMetroServerRoot","resolveMainModuleName","DEVELOPER_TOOL","ManifestMiddleware","debug","require","projectRoot","findWorkspaceRoot","error","message","includes","supportedPlatforms","props","platform","CommandError","path","relative","resolveEntryPoint","env","EXPO_USE_METRO_WORKSPACE_ROOT","entryPoint","stripExtension","ExpoMiddleware","constructor","options","initialProjectConfig","getConfig","platformBundlers","getPlatformBundlers","exp","_resolveProjectSettingsAsync","hostname","protocol","projectConfig","mainModuleName","pkg","isHermesEnabled","isEnableHermesManaged","expoGoConfig","getExpoGoConfig","hostUri","constructUrl","scheme","bundleUrl","_getBundleUrl","engine","undefined","baseUrl","getBaseUrlFromExpoConfig","asyncRoutes","getAsyncRoutesFromExpoConfig","mode","routerRoot","getRouterDirectoryModuleIdWithManifest","mutateManifestWithAssetsAsync","isNativeWebpack","saveDevicesAsync","req","deviceIds","headers","ProjectDevices","catch","e","Log","exception","isExporting","createBundleUrlPath","minify","lazy","shouldEnableAsyncImports","bytecode","debuggerHost","developer","tool","packagerOpts","dev","__flipperHack","manifest","resolveManifestAssets","resolver","resolve","match","resolveGoogleServicesFile","getWebBundleUrl","createBundleUrlPathFromExpoConfig","handleWebRequestAsync","res","setHeader","end","createTemplateHtmlFromExpoConfigAsync","scripts","checkBrowserRequestAsync","next","web","platforms","parsePlatformHeader","output","handleRequestAsync","getParsedHeaders","body","version","_getManifestResponseAsync","headerName","headerValue","trackManifest"],"mappings":"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"}
@@ -2,7 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.ReactDevToolsEndpoint = void 0;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ ReactDevToolsEndpoint: ()=>ReactDevToolsEndpoint,
13
+ ReactDevToolsPageMiddleware: ()=>ReactDevToolsPageMiddleware
14
+ });
6
15
  function _promises() {
7
16
  const data = require("fs/promises");
8
17
  _promises = function() {
@@ -11,27 +20,26 @@ function _promises() {
11
20
  return data;
12
21
  }
13
22
  function _path() {
14
- const data = _interopRequireDefault(require("path"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
15
24
  _path = function() {
16
25
  return data;
17
26
  };
18
27
  return data;
19
28
  }
20
29
  function _resolveFrom() {
21
- const data = _interopRequireDefault(require("resolve-from"));
30
+ const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
22
31
  _resolveFrom = function() {
23
32
  return data;
24
33
  };
25
34
  return data;
26
35
  }
27
- var _expoMiddleware = require("./ExpoMiddleware");
36
+ const _expoMiddleware = require("./ExpoMiddleware");
28
37
  function _interopRequireDefault(obj) {
29
38
  return obj && obj.__esModule ? obj : {
30
39
  default: obj
31
40
  };
32
41
  }
33
42
  const ReactDevToolsEndpoint = "/_expo/react-devtools";
34
- exports.ReactDevToolsEndpoint = ReactDevToolsEndpoint;
35
43
  class ReactDevToolsPageMiddleware extends _expoMiddleware.ExpoMiddleware {
36
44
  constructor(projectRoot){
37
45
  super(projectRoot, [
@@ -43,11 +51,10 @@ class ReactDevToolsPageMiddleware extends _expoMiddleware.ExpoMiddleware {
43
51
  ref;
44
52
  const templatePath = (ref = _resolveFrom().default.silent(this.projectRoot, "expo/static/react-devtools-page/index.html")) != null ? ref : // Development: This will resolve when testing locally.
45
53
  _path().default.resolve(__dirname, "../../../../../static/react-devtools-page/index.html");
46
- const content = (await _promises().readFile(templatePath)).toString("utf-8");
54
+ const content = (await (0, _promises().readFile)(templatePath)).toString("utf-8");
47
55
  res.setHeader("Content-Type", "text/html");
48
56
  res.end(content);
49
57
  }
50
58
  }
51
- exports.ReactDevToolsPageMiddleware = ReactDevToolsPageMiddleware;
52
59
 
53
60
  //# sourceMappingURL=ReactDevToolsPageMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import { readFile } from 'fs/promises';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n const templatePath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n const content = (await readFile(templatePath)).toString('utf-8');\n\n res.setHeader('Content-Type', 'text/html');\n res.end(content);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","handleRequestAsync","req","res","resolveFrom","templatePath","silent","path","resolve","__dirname","content","readFile","toString","setHeader","end"],"mappings":"AAAA;;;;;SAAyB,SAAa;yBAAb,aAAa;IAAb,SAAa;;;;;SACrB,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;SACC,YAAc;gDAAd,cAAc;IAAd,YAAc;;;;;AAEP,IAAA,eAAkB,WAAlB,kBAAkB,CAAA;;;;;;AAG1C,MAAMA,qBAAqB,GAAG,uBAAuB,AAAC;QAAhDA,qBAAqB,GAArBA,qBAAqB;AAE3B,MAAMC,2BAA2B,SAASC,eAAc,eAAA;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE;YAACJ,qBAAqB;SAAC,CAAC,CAAC;KAC7C;IAED,MAAMK,kBAAkB,CAACC,GAAkB,EAAEC,GAAmB,EAAiB;YAE7E,+DAA+D;QAC/DC,GAAkF;QAFpF,MAAMC,YAAY,GAEhBD,CAAAA,GAAkF,GAAlFA,YAAW,UAAA,CAACE,MAAM,CAAC,IAAI,CAACN,WAAW,EAAE,4CAA4C,CAAC,YAAlFI,GAAkF,GAClF,uDAAuD;QACvDG,KAAI,UAAA,CAACC,OAAO,CAACC,SAAS,EAAE,sDAAsD,CAAC,AAAC;QAClF,MAAMC,OAAO,GAAG,CAAC,MAAMC,SAAQ,WAAA,CAACN,YAAY,CAAC,CAAC,CAACO,QAAQ,CAAC,OAAO,CAAC,AAAC;QAEjET,GAAG,CAACU,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3CV,GAAG,CAACW,GAAG,CAACJ,OAAO,CAAC,CAAC;KAClB;CACF;QAhBYb,2BAA2B,GAA3BA,2BAA2B"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import { readFile } from 'fs/promises';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n const templatePath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n const content = (await readFile(templatePath)).toString('utf-8');\n\n res.setHeader('Content-Type', 'text/html');\n res.end(content);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","handleRequestAsync","req","res","resolveFrom","templatePath","silent","path","resolve","__dirname","content","readFile","toString","setHeader","end"],"mappings":"AAAA;;;;;;;;;;;IAOaA,qBAAqB,MAArBA,qBAAqB;IAErBC,2BAA2B,MAA3BA,2BAA2B;;;yBATf,aAAa;;;;;;;8DACrB,MAAM;;;;;;;8DACC,cAAc;;;;;;gCAEP,kBAAkB;;;;;;AAG1C,MAAMD,qBAAqB,GAAG,uBAAuB,AAAC;AAEtD,MAAMC,2BAA2B,SAASC,eAAc,eAAA;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE;YAACJ,qBAAqB;SAAC,CAAC,CAAC;IAC9C;UAEMK,kBAAkB,CAACC,GAAkB,EAAEC,GAAmB,EAAiB;YAE7E,+DAA+D;QAC/DC,GAAkF;QAFpF,MAAMC,YAAY,GAEhBD,CAAAA,GAAkF,GAAlFA,YAAW,EAAA,QAAA,CAACE,MAAM,CAAC,IAAI,CAACN,WAAW,EAAE,4CAA4C,CAAC,YAAlFI,GAAkF,GAClF,uDAAuD;QACvDG,KAAI,EAAA,QAAA,CAACC,OAAO,CAACC,SAAS,EAAE,sDAAsD,CAAC,AAAC;QAClF,MAAMC,OAAO,GAAG,CAAC,MAAMC,IAAAA,SAAQ,EAAA,SAAA,EAACN,YAAY,CAAC,CAAC,CAACO,QAAQ,CAAC,OAAO,CAAC,AAAC;QAEjET,GAAG,CAACU,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3CV,GAAG,CAACW,GAAG,CAACJ,OAAO,CAAC,CAAC;IACnB;CACD"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ Object.defineProperty(exports, "RuntimeRedirectMiddleware", {
6
+ enumerable: true,
7
+ get: ()=>RuntimeRedirectMiddleware
8
+ });
5
9
  function _url() {
6
10
  const data = require("url");
7
11
  _url = function() {
@@ -9,29 +13,47 @@ function _url() {
9
13
  };
10
14
  return data;
11
15
  }
12
- var _expoMiddleware = require("./ExpoMiddleware");
13
- var _resolvePlatform = require("./resolvePlatform");
14
- var Log = _interopRequireWildcard(require("../../../log"));
15
- function _interopRequireWildcard(obj) {
16
- if (obj && obj.__esModule) {
16
+ const _expoMiddleware = require("./ExpoMiddleware");
17
+ const _resolvePlatform = require("./resolvePlatform");
18
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
19
+ function _getRequireWildcardCache(nodeInterop) {
20
+ if (typeof WeakMap !== "function") return null;
21
+ var cacheBabelInterop = new WeakMap();
22
+ var cacheNodeInterop = new WeakMap();
23
+ return (_getRequireWildcardCache = function(nodeInterop) {
24
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
25
+ })(nodeInterop);
26
+ }
27
+ function _interopRequireWildcard(obj, nodeInterop) {
28
+ if (!nodeInterop && obj && obj.__esModule) {
17
29
  return obj;
18
- } else {
19
- var newObj = {};
20
- if (obj != null) {
21
- for(var key in obj){
22
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
23
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
24
- if (desc.get || desc.set) {
25
- Object.defineProperty(newObj, key, desc);
26
- } else {
27
- newObj[key] = obj[key];
28
- }
29
- }
30
+ }
31
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
32
+ return {
33
+ default: obj
34
+ };
35
+ }
36
+ var cache = _getRequireWildcardCache(nodeInterop);
37
+ if (cache && cache.has(obj)) {
38
+ return cache.get(obj);
39
+ }
40
+ var newObj = {};
41
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
42
+ for(var key in obj){
43
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
44
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
45
+ if (desc && (desc.get || desc.set)) {
46
+ Object.defineProperty(newObj, key, desc);
47
+ } else {
48
+ newObj[key] = obj[key];
30
49
  }
31
50
  }
32
- newObj.default = obj;
33
- return newObj;
34
51
  }
52
+ newObj.default = obj;
53
+ if (cache) {
54
+ cache.set(obj, newObj);
55
+ }
56
+ return newObj;
35
57
  }
36
58
  const debug = require("debug")("expo:start:server:middleware:runtimeRedirect");
37
59
  class RuntimeRedirectMiddleware extends _expoMiddleware.ExpoMiddleware {
@@ -43,12 +65,12 @@ class RuntimeRedirectMiddleware extends _expoMiddleware.ExpoMiddleware {
43
65
  this.options = options;
44
66
  }
45
67
  async handleRequestAsync(req, res) {
46
- const { query } = _url().parse(req.url, true);
68
+ const { query } = (0, _url().parse)(req.url, true);
47
69
  const isDevClient = query["choice"] === "expo-dev-client";
48
70
  var ref;
49
- const platform = (ref = (0, _resolvePlatform).parsePlatformHeader(req)) != null ? ref : (0, _resolvePlatform).resolvePlatformFromUserAgentHeader(req);
50
- (0, _resolvePlatform).assertMissingRuntimePlatform(platform);
51
- (0, _resolvePlatform).assertRuntimePlatform(platform);
71
+ const platform = (ref = (0, _resolvePlatform.parsePlatformHeader)(req)) != null ? ref : (0, _resolvePlatform.resolvePlatformFromUserAgentHeader)(req);
72
+ (0, _resolvePlatform.assertMissingRuntimePlatform)(platform);
73
+ (0, _resolvePlatform.assertRuntimePlatform)(platform);
52
74
  const runtime = isDevClient ? "custom" : "expo";
53
75
  debug(`props:`, {
54
76
  platform,
@@ -62,7 +84,7 @@ class RuntimeRedirectMiddleware extends _expoMiddleware.ExpoMiddleware {
62
84
  runtime
63
85
  });
64
86
  if (!redirect) {
65
- Log.warn(`[redirect middleware]: Unable to determine redirect location for runtime '${runtime}' and platform '${platform}'`);
87
+ _log.warn(`[redirect middleware]: Unable to determine redirect location for runtime '${runtime}' and platform '${platform}'`);
66
88
  res.statusCode = 404;
67
89
  res.end();
68
90
  return;
@@ -70,12 +92,11 @@ class RuntimeRedirectMiddleware extends _expoMiddleware.ExpoMiddleware {
70
92
  debug("Redirect ->", redirect);
71
93
  res.setHeader("Location", redirect);
72
94
  // Disable caching
73
- (0, _expoMiddleware).disableResponseCache(res);
95
+ (0, _expoMiddleware.disableResponseCache)(res);
74
96
  // 'Temporary Redirect'
75
97
  res.statusCode = 307;
76
98
  res.end();
77
99
  }
78
100
  }
79
- exports.RuntimeRedirectMiddleware = RuntimeRedirectMiddleware;
80
101
 
81
102
  //# sourceMappingURL=RuntimeRedirectMiddleware.js.map