@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b

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 (719) hide show
  1. package/build/bin/cli +93 -91
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +53 -52
  4. package/build/src/api/endpoint.js +6 -2
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +16 -12
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +6 -4
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +7 -5
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +32 -26
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +6 -4
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +5 -3
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +3 -1
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +20 -12
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +55 -37
  31. package/build/src/api/rest/client.js.map +1 -1
  32. package/build/src/api/rest/client.types.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +7 -5
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +23 -17
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +53 -31
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +27 -21
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +30 -26
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +35 -29
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +44 -30
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +29 -23
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +25 -21
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +8 -6
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +20 -16
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +14 -12
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +4 -2
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +58 -54
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +11 -7
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +11 -9
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +8 -6
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +72 -62
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +57 -55
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +44 -40
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +44 -36
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +68 -64
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +34 -26
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +13 -9
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +53 -45
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +75 -53
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +73 -62
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +33 -27
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +7 -5
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +11 -9
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +10 -6
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +32 -28
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +36 -30
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +64 -34
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +10 -6
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +28 -24
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +50 -46
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +13 -11
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +19 -15
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +5 -3
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +4 -2
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +705 -479
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +11 -7
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +26 -22
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +16 -12
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +18 -16
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +32 -26
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +22 -18
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +21 -19
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +50 -44
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +12 -8
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +10 -8
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +36 -16
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +24 -20
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +11 -7
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +38 -26
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +18 -14
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +17 -13
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +6 -4
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +36 -32
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +29 -25
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +43 -37
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +70 -53
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +36 -32
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +19 -13
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +53 -39
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +11 -7
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +5 -3
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +36 -32
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +10 -8
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +17 -15
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +12 -10
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +4 -2
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +23 -21
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +7 -5
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +13 -7
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +27 -23
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +80 -60
  208. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  209. package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
  210. package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +53 -39
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +9 -5
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +40 -36
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +23 -17
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +38 -36
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +20 -16
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +30 -24
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +7 -5
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +48 -44
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +24 -22
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +4 -2
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +16 -12
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +20 -16
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +36 -32
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +13 -9
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +12 -7
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +46 -42
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +18 -14
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +94 -80
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +44 -40
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +65 -61
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +6 -4
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +10 -6
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +17 -15
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +39 -35
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
  339. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  340. package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
  341. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  342. package/build/src/start/platforms/android/AndroidSdk.js +11 -9
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +26 -22
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +121 -83
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +20 -12
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +36 -26
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +7 -5
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +36 -28
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
  361. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  362. package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
  363. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  364. package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +88 -74
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +102 -74
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +57 -52
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +22 -18
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +19 -9
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +15 -11
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +4 -2
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +48 -40
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +55 -51
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +37 -33
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +81 -79
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +42 -38
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +18 -14
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +18 -14
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +16 -10
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +36 -33
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +30 -22
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +39 -33
  413. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  414. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  415. package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
  416. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
  418. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createJResolver.js +31 -27
  420. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  421. package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
  422. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
  424. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
  426. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
  428. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
  430. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
  432. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
  434. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
  436. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
  438. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
  448. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
  450. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  451. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
  453. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
  455. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
  457. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
  459. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
  461. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  462. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
  463. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  464. package/build/src/start/server/metro/externals.js +33 -25
  465. package/build/src/start/server/metro/externals.js.map +1 -1
  466. package/build/src/start/server/metro/fetchRouterManifest.js +28 -12
  467. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  468. package/build/src/start/server/metro/formatFileCandidates.js +11 -9
  469. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  470. package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
  471. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  472. package/build/src/start/server/metro/instantiateMetro.js +87 -81
  473. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
  475. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
  477. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  478. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
  479. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrorInterface.js +88 -78
  481. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  482. package/build/src/start/server/metro/metroErrors.js +8 -4
  483. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  484. package/build/src/start/server/metro/metroPrivateServer.js +9 -7
  485. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  486. package/build/src/start/server/metro/metroVirtualModules.js +10 -8
  487. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  488. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
  489. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  490. package/build/src/start/server/metro/router.js +48 -32
  491. package/build/src/start/server/metro/router.js.map +1 -1
  492. package/build/src/start/server/metro/runServer-fork.js +24 -22
  493. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  494. package/build/src/start/server/metro/serializeHtml.js +24 -22
  495. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  496. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  497. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
  498. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroMultiPlatform.js +150 -140
  500. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  501. package/build/src/start/server/metro/withMetroResolvers.js +49 -39
  502. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  503. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
  504. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
  506. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
  508. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
  510. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
  512. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
  514. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
  516. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/FaviconMiddleware.js +16 -15
  518. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
  520. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
  522. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
  524. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
  526. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
  528. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
  530. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  531. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
  532. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
  534. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
  536. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
  538. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  539. package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
  540. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  541. package/build/src/start/server/middleware/metroOptions.js +120 -96
  542. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  543. package/build/src/start/server/middleware/mutations.js +7 -3
  544. package/build/src/start/server/middleware/mutations.js.map +1 -1
  545. package/build/src/start/server/middleware/resolveAssets.js +26 -18
  546. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  547. package/build/src/start/server/middleware/resolvePlatform.js +23 -15
  548. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  549. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
  550. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  551. package/build/src/start/server/middleware/server.types.js.map +1 -1
  552. package/build/src/start/server/openPlatforms.js +10 -8
  553. package/build/src/start/server/openPlatforms.js.map +1 -1
  554. package/build/src/start/server/platformBundlers.js +13 -11
  555. package/build/src/start/server/platformBundlers.js.map +1 -1
  556. package/build/src/start/server/serverLogLikeMetro.js +58 -50
  557. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  558. package/build/src/start/server/type-generation/expo-env.js +11 -7
  559. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  560. package/build/src/start/server/type-generation/routes.js +72 -50
  561. package/build/src/start/server/type-generation/routes.js.map +1 -1
  562. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
  563. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  564. package/build/src/start/server/type-generation/tsconfig.js +36 -28
  565. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  566. package/build/src/start/server/webTemplate.js +28 -24
  567. package/build/src/start/server/webTemplate.js.map +1 -1
  568. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
  569. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  570. package/build/src/start/server/webpack/compile.js +15 -11
  571. package/build/src/start/server/webpack/compile.js.map +1 -1
  572. package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
  573. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  574. package/build/src/start/server/webpack/resolveFromProject.js +18 -12
  575. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  576. package/build/src/start/server/webpack/tls.js +18 -12
  577. package/build/src/start/server/webpack/tls.js.map +1 -1
  578. package/build/src/start/startAsync.js +31 -27
  579. package/build/src/start/startAsync.js.map +1 -1
  580. package/build/src/utils/FileNotifier.js +20 -17
  581. package/build/src/utils/FileNotifier.js.map +1 -1
  582. package/build/src/utils/ansi.js +7 -5
  583. package/build/src/utils/ansi.js.map +1 -1
  584. package/build/src/utils/args.js +24 -14
  585. package/build/src/utils/args.js.map +1 -1
  586. package/build/src/utils/array.js +18 -6
  587. package/build/src/utils/array.js.map +1 -1
  588. package/build/src/utils/cocoapods.js +54 -46
  589. package/build/src/utils/cocoapods.js.map +1 -1
  590. package/build/src/utils/codesigning.js +79 -69
  591. package/build/src/utils/codesigning.js.map +1 -1
  592. package/build/src/utils/createFileTransform.js +16 -12
  593. package/build/src/utils/createFileTransform.js.map +1 -1
  594. package/build/src/utils/createTempPath.js +12 -8
  595. package/build/src/utils/createTempPath.js.map +1 -1
  596. package/build/src/utils/delay.js +12 -6
  597. package/build/src/utils/delay.js.map +1 -1
  598. package/build/src/utils/dir.js +40 -22
  599. package/build/src/utils/dir.js.map +1 -1
  600. package/build/src/utils/downloadAppAsync.js +10 -8
  601. package/build/src/utils/downloadAppAsync.js.map +1 -1
  602. package/build/src/utils/downloadExpoGoAsync.js +27 -23
  603. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  604. package/build/src/utils/editor.js +41 -35
  605. package/build/src/utils/editor.js.map +1 -1
  606. package/build/src/utils/env.js +63 -59
  607. package/build/src/utils/env.js.map +1 -1
  608. package/build/src/utils/errors.js +37 -30
  609. package/build/src/utils/errors.js.map +1 -1
  610. package/build/src/utils/exit.js +35 -31
  611. package/build/src/utils/exit.js.map +1 -1
  612. package/build/src/utils/expoUpdatesCli.js +32 -22
  613. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  614. package/build/src/utils/fetch.js +8 -4
  615. package/build/src/utils/fetch.js.map +1 -1
  616. package/build/src/utils/filePath.js +10 -6
  617. package/build/src/utils/filePath.js.map +1 -1
  618. package/build/src/utils/findUp.js +13 -9
  619. package/build/src/utils/findUp.js.map +1 -1
  620. package/build/src/utils/fn.js +6 -2
  621. package/build/src/utils/fn.js.map +1 -1
  622. package/build/src/utils/getOrPromptApplicationId.js +41 -35
  623. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  624. package/build/src/utils/getRunningProcess.js +29 -21
  625. package/build/src/utils/getRunningProcess.js.map +1 -1
  626. package/build/src/utils/git.js +26 -20
  627. package/build/src/utils/git.js.map +1 -1
  628. package/build/src/utils/glob.js +8 -4
  629. package/build/src/utils/glob.js.map +1 -1
  630. package/build/src/utils/interactive.js +3 -1
  631. package/build/src/utils/interactive.js.map +1 -1
  632. package/build/src/utils/ip.js +21 -19
  633. package/build/src/utils/ip.js.map +1 -1
  634. package/build/src/utils/isModuleSymlinked.js +11 -9
  635. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  636. package/build/src/utils/jsonSchemaDeref.js +20 -18
  637. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  638. package/build/src/utils/link.js +17 -13
  639. package/build/src/utils/link.js.map +1 -1
  640. package/build/src/utils/mergeGitIgnorePaths.js +46 -28
  641. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  642. package/build/src/utils/modifyConfigAsync.js +16 -10
  643. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  644. package/build/src/utils/modifyConfigPlugins.js +10 -6
  645. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  646. package/build/src/utils/multipartMixed.js +13 -11
  647. package/build/src/utils/multipartMixed.js.map +1 -1
  648. package/build/src/utils/nodeEnv.js +12 -6
  649. package/build/src/utils/nodeEnv.js.map +1 -1
  650. package/build/src/utils/nodeModules.js +10 -8
  651. package/build/src/utils/nodeModules.js.map +1 -1
  652. package/build/src/utils/npm.js +49 -35
  653. package/build/src/utils/npm.js.map +1 -1
  654. package/build/src/utils/obj.js +11 -5
  655. package/build/src/utils/obj.js.map +1 -1
  656. package/build/src/utils/open.js +10 -8
  657. package/build/src/utils/open.js.map +1 -1
  658. package/build/src/utils/ora.js +13 -7
  659. package/build/src/utils/ora.js.map +1 -1
  660. package/build/src/utils/plist.js +21 -15
  661. package/build/src/utils/plist.js.map +1 -1
  662. package/build/src/utils/port.js +43 -33
  663. package/build/src/utils/port.js.map +1 -1
  664. package/build/src/utils/profile.js +11 -7
  665. package/build/src/utils/profile.js.map +1 -1
  666. package/build/src/utils/progress.js +11 -5
  667. package/build/src/utils/progress.js.map +1 -1
  668. package/build/src/utils/prompts.js +47 -29
  669. package/build/src/utils/prompts.js.map +1 -1
  670. package/build/src/utils/resolveArgs.js +36 -24
  671. package/build/src/utils/resolveArgs.js.map +1 -1
  672. package/build/src/utils/scheme.js +40 -32
  673. package/build/src/utils/scheme.js.map +1 -1
  674. package/build/src/utils/stream.js +5 -3
  675. package/build/src/utils/stream.js.map +1 -1
  676. package/build/src/utils/strings.js +6 -4
  677. package/build/src/utils/strings.js.map +1 -1
  678. package/build/src/utils/tar.js +18 -14
  679. package/build/src/utils/tar.js.map +1 -1
  680. package/build/src/utils/telemetry/Telemetry.js +29 -27
  681. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
  683. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
  685. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  686. package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
  687. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  688. package/build/src/utils/telemetry/events.js +4 -2
  689. package/build/src/utils/telemetry/events.js.map +1 -1
  690. package/build/src/utils/telemetry/index.js +25 -29
  691. package/build/src/utils/telemetry/index.js.map +1 -1
  692. package/build/src/utils/telemetry/types.js.map +1 -1
  693. package/build/src/utils/telemetry/utils/constants.js +8 -4
  694. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  695. package/build/src/utils/telemetry/utils/context.js +18 -14
  696. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  697. package/build/src/utils/template.js +6 -4
  698. package/build/src/utils/template.js.map +1 -1
  699. package/build/src/utils/terminal.js +4 -2
  700. package/build/src/utils/terminal.js.map +1 -1
  701. package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
  702. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  703. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
  704. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  705. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
  706. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  707. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
  708. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  709. package/build/src/utils/url.js +23 -13
  710. package/build/src/utils/url.js.map +1 -1
  711. package/build/src/utils/validateApplicationId.js +108 -86
  712. package/build/src/utils/validateApplicationId.js.map +1 -1
  713. package/build/src/utils/variadic.js +22 -16
  714. package/build/src/utils/variadic.js.map +1 -1
  715. package/build/src/whoami/index.js +11 -7
  716. package/build/src/whoami/index.js.map +1 -1
  717. package/build/src/whoami/whoamiAsync.js +11 -7
  718. package/build/src/whoami/whoamiAsync.js.map +1 -1
  719. package/package.json +17 -16
@@ -9,7 +9,9 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  Object.defineProperty(exports, "MetroBundlerDevServer", {
11
11
  enumerable: true,
12
- get: ()=>MetroBundlerDevServer
12
+ get: function() {
13
+ return MetroBundlerDevServer;
14
+ }
13
15
  });
14
16
  function _config() {
15
17
  const data = require("@expo/config");
@@ -26,28 +28,28 @@ function _paths() {
26
28
  return data;
27
29
  }
28
30
  function _env() {
29
- const data = /*#__PURE__*/ _interopRequireWildcard(require("@expo/env"));
31
+ const data = /*#__PURE__*/ _interop_require_wildcard(require("@expo/env"));
30
32
  _env = function() {
31
33
  return data;
32
34
  };
33
35
  return data;
34
36
  }
35
37
  function _assert() {
36
- const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
38
+ const data = /*#__PURE__*/ _interop_require_default(require("assert"));
37
39
  _assert = function() {
38
40
  return data;
39
41
  };
40
42
  return data;
41
43
  }
42
44
  function _chalk() {
43
- const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
45
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
44
46
  _chalk = function() {
45
47
  return data;
46
48
  };
47
49
  return data;
48
50
  }
49
51
  function _baseJSBundle() {
50
- const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/DeltaBundler/Serializers/baseJSBundle"));
52
+ const data = /*#__PURE__*/ _interop_require_default(require("metro/src/DeltaBundler/Serializers/baseJSBundle"));
51
53
  _baseJSBundle = function() {
52
54
  return data;
53
55
  };
@@ -61,29 +63,29 @@ function _sourceMapGenerator() {
61
63
  return data;
62
64
  }
63
65
  function _bundleToString() {
64
- const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/lib/bundleToString"));
66
+ const data = /*#__PURE__*/ _interop_require_default(require("metro/src/lib/bundleToString"));
65
67
  _bundleToString = function() {
66
68
  return data;
67
69
  };
68
70
  return data;
69
71
  }
70
72
  function _getGraphId() {
71
- const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/lib/getGraphId"));
73
+ const data = /*#__PURE__*/ _interop_require_default(require("metro/src/lib/getGraphId"));
72
74
  _getGraphId = function() {
73
75
  return data;
74
76
  };
75
77
  return data;
76
78
  }
77
79
  function _path() {
78
- const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
80
+ const data = /*#__PURE__*/ _interop_require_default(require("path"));
79
81
  _path = function() {
80
82
  return data;
81
83
  };
82
84
  return data;
83
85
  }
84
- function _resolveFrom() {
85
- const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
86
- _resolveFrom = function() {
86
+ function _resolvefrom() {
87
+ const data = /*#__PURE__*/ _interop_require_default(require("resolve-from"));
88
+ _resolvefrom = function() {
87
89
  return data;
88
90
  };
89
91
  return data;
@@ -103,23 +105,23 @@ const _env1 = require("../../../utils/env");
103
105
  const _errors = require("../../../utils/errors");
104
106
  const _filePath = require("../../../utils/filePath");
105
107
  const _port = require("../../../utils/port");
106
- const _bundlerDevServer = require("../BundlerDevServer");
108
+ const _BundlerDevServer = require("../BundlerDevServer");
107
109
  const _getStaticRenderFunctions = require("../getStaticRenderFunctions");
108
- const _contextModuleSourceMapsMiddleware = require("../middleware/ContextModuleSourceMapsMiddleware");
109
- const _createFileMiddleware = require("../middleware/CreateFileMiddleware");
110
- const _devToolsPluginMiddleware = require("../middleware/DevToolsPluginMiddleware");
111
- const _domComponentsMiddleware = require("../middleware/DomComponentsMiddleware");
112
- const _faviconMiddleware = require("../middleware/FaviconMiddleware");
113
- const _historyFallbackMiddleware = require("../middleware/HistoryFallbackMiddleware");
114
- const _interstitialPageMiddleware = require("../middleware/InterstitialPageMiddleware");
115
- const _manifestMiddleware = require("../middleware/ManifestMiddleware");
116
- const _reactDevToolsPageMiddleware = require("../middleware/ReactDevToolsPageMiddleware");
117
- const _runtimeRedirectMiddleware = require("../middleware/RuntimeRedirectMiddleware");
118
- const _serveStaticMiddleware = require("../middleware/ServeStaticMiddleware");
110
+ const _ContextModuleSourceMapsMiddleware = require("../middleware/ContextModuleSourceMapsMiddleware");
111
+ const _CreateFileMiddleware = require("../middleware/CreateFileMiddleware");
112
+ const _DevToolsPluginMiddleware = require("../middleware/DevToolsPluginMiddleware");
113
+ const _DomComponentsMiddleware = require("../middleware/DomComponentsMiddleware");
114
+ const _FaviconMiddleware = require("../middleware/FaviconMiddleware");
115
+ const _HistoryFallbackMiddleware = require("../middleware/HistoryFallbackMiddleware");
116
+ const _InterstitialPageMiddleware = require("../middleware/InterstitialPageMiddleware");
117
+ const _ManifestMiddleware = require("../middleware/ManifestMiddleware");
118
+ const _ReactDevToolsPageMiddleware = require("../middleware/ReactDevToolsPageMiddleware");
119
+ const _RuntimeRedirectMiddleware = require("../middleware/RuntimeRedirectMiddleware");
120
+ const _ServeStaticMiddleware = require("../middleware/ServeStaticMiddleware");
119
121
  const _metroOptions = require("../middleware/metroOptions");
120
122
  const _mutations = require("../middleware/mutations");
121
123
  const _startTypescriptTypeGeneration = require("../type-generation/startTypescriptTypeGeneration");
122
- function _interopRequireDefault(obj) {
124
+ function _interop_require_default(obj) {
123
125
  return obj && obj.__esModule ? obj : {
124
126
  default: obj
125
127
  };
@@ -132,7 +134,7 @@ function _getRequireWildcardCache(nodeInterop) {
132
134
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
133
135
  })(nodeInterop);
134
136
  }
135
- function _interopRequireWildcard(obj, nodeInterop) {
137
+ function _interop_require_wildcard(obj, nodeInterop) {
136
138
  if (!nodeInterop && obj && obj.__esModule) {
137
139
  return obj;
138
140
  }
@@ -145,7 +147,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
145
147
  if (cache && cache.has(obj)) {
146
148
  return cache.get(obj);
147
149
  }
148
- var newObj = {};
150
+ var newObj = {
151
+ __proto__: null
152
+ };
149
153
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
150
154
  for(var key in obj){
151
155
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -163,15 +167,12 @@ function _interopRequireWildcard(obj, nodeInterop) {
163
167
  }
164
168
  return newObj;
165
169
  }
166
- const debug = require("debug")("expo:start:server:metro");
170
+ const debug = require('debug')('expo:start:server:metro');
167
171
  /** Default port to use for apps running in Expo Go. */ const EXPO_GO_METRO_PORT = 8081;
168
172
  /** Default port to use for apps that run in standard React Native projects or Expo Dev Clients. */ const DEV_CLIENT_METRO_PORT = 8081;
169
- class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
170
- metro = null;
171
- hmrServer = null;
172
- ssrHmrClients = new Map();
173
+ class MetroBundlerDevServer extends _BundlerDevServer.BundlerDevServer {
173
174
  get name() {
174
- return "metro";
175
+ return 'metro';
175
176
  }
176
177
  async resolvePortAsync(options = {}) {
177
178
  const port = // If the manually defined port is busy then an error should be thrown...
@@ -179,26 +180,26 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
179
180
  (options.devClient ? Number(process.env.RCT_METRO_PORT) || DEV_CLIENT_METRO_PORT : await (0, _port.getFreePortAsync)(EXPO_GO_METRO_PORT));
180
181
  return port;
181
182
  }
182
- async exportExpoRouterApiRoutesAsync({ includeSourceMaps , outputDir , prerenderManifest , platform }) {
183
- const { routerRoot } = this.instanceMetroOptions;
184
- (0, _assert().default)(routerRoot != null, "The server must be started before calling exportExpoRouterApiRoutesAsync.");
183
+ async exportExpoRouterApiRoutesAsync({ includeSourceMaps, outputDir, prerenderManifest, platform }) {
184
+ const { routerRoot } = this.instanceMetroOptions;
185
+ (0, _assert().default)(routerRoot != null, 'The server must be started before calling exportExpoRouterApiRoutesAsync.');
185
186
  const appDir = _path().default.join(this.projectRoot, routerRoot);
186
187
  const manifest = await this.getExpoRouterRoutesManifestAsync({
187
188
  appDir
188
189
  });
189
190
  const files = new Map();
190
191
  // Inject RSC middleware.
191
- const rscPath = "/_flight/[...rsc]";
192
+ const rscPath = '/_flight/[...rsc]';
192
193
  if (this.isReactServerComponentsEnabled && // If the RSC route is not already in the manifest, add it.
193
- !manifest.apiRoutes.find((route)=>route.page.startsWith("/_flight/"))) {
194
- debug("Adding RSC route to the manifest:", rscPath);
194
+ !manifest.apiRoutes.find((route)=>route.page.startsWith('/_flight/'))) {
195
+ debug('Adding RSC route to the manifest:', rscPath);
195
196
  // NOTE: This might need to be sorted to the correct spot in the future.
196
197
  manifest.apiRoutes.push({
197
- file: (0, _resolveFrom().default)(this.projectRoot, "@expo/cli/static/template/[...rsc]+api.ts"),
198
+ file: (0, _resolvefrom().default)(this.projectRoot, '@expo/cli/static/template/[...rsc]+api.ts'),
198
199
  page: rscPath,
199
- namedRegex: "^/_flight(?:/(?<rsc>.+?))?(?:/)?$",
200
+ namedRegex: '^/_flight(?:/(?<rsc>.+?))?(?:/)?$',
200
201
  routeKeys: {
201
- rsc: "rsc"
202
+ rsc: 'rsc'
202
203
  }
203
204
  });
204
205
  }
@@ -207,21 +208,21 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
207
208
  const contents = await this.bundleApiRoute(filepath, {
208
209
  platform
209
210
  });
210
- const artifactFilename = route.page === rscPath ? (0, _metroOptions.convertPathToModuleSpecifier)(_path().default.join(outputDir, "." + rscPath + ".js")) : (0, _metroOptions.convertPathToModuleSpecifier)(_path().default.join(outputDir, _path().default.relative(appDir, filepath.replace(/\.[tj]sx?$/, ".js"))));
211
+ const artifactFilename = route.page === rscPath ? (0, _metroOptions.convertPathToModuleSpecifier)(_path().default.join(outputDir, '.' + rscPath + '.js')) : (0, _metroOptions.convertPathToModuleSpecifier)(_path().default.join(outputDir, _path().default.relative(appDir, filepath.replace(/\.[tj]sx?$/, '.js'))));
211
212
  if (contents) {
212
213
  let src = contents.src;
213
214
  if (includeSourceMaps && contents.map) {
214
215
  // TODO(kitten): Merge the source map transformer in the future
215
216
  // https://github.com/expo/expo/blob/0dffdb15/packages/%40expo/metro-config/src/serializer/serializeChunks.ts#L422-L439
216
217
  // Alternatively, check whether `sourcesRoot` helps here
217
- const artifactBasename = encodeURIComponent(_path().default.basename(artifactFilename) + ".map");
218
+ const artifactBasename = encodeURIComponent(_path().default.basename(artifactFilename) + '.map');
218
219
  src = src.replace(/\/\/# sourceMappingURL=.*/g, `//# sourceMappingURL=${artifactBasename}`);
219
- const parsedMap = typeof contents.map === "string" ? JSON.parse(contents.map) : contents.map;
220
- files.set(artifactFilename + ".map", {
220
+ const parsedMap = typeof contents.map === 'string' ? JSON.parse(contents.map) : contents.map;
221
+ files.set(artifactFilename + '.map', {
221
222
  contents: JSON.stringify({
222
223
  version: parsedMap.version,
223
224
  sources: parsedMap.sources.map((source)=>{
224
- source = typeof source === "string" && source.startsWith(this.projectRoot) ? _path().default.relative(this.projectRoot, source) : source;
225
+ source = typeof source === 'string' && source.startsWith(this.projectRoot) ? _path().default.relative(this.projectRoot, source) : source;
225
226
  return (0, _metroOptions.convertPathToModuleSpecifier)(source);
226
227
  }),
227
228
  sourcesContent: new Array(parsedMap.sources.length).fill(null),
@@ -229,13 +230,13 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
229
230
  mappings: parsedMap.mappings
230
231
  }),
231
232
  apiRouteId: route.page,
232
- targetDomain: "server"
233
+ targetDomain: 'server'
233
234
  });
234
235
  }
235
236
  files.set(artifactFilename, {
236
237
  contents: src,
237
238
  apiRouteId: route.page,
238
- targetDomain: "server"
239
+ targetDomain: 'server'
239
240
  });
240
241
  }
241
242
  // Remap the manifest files to represent the output files.
@@ -249,46 +250,55 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
249
250
  files
250
251
  };
251
252
  }
252
- async getExpoRouterRoutesManifestAsync({ appDir }) {
253
- var ref, ref1;
253
+ async getExpoRouterRoutesManifestAsync({ appDir }) {
254
+ var _exp_extra;
254
255
  // getBuiltTimeServerManifest
255
- const { exp } = (0, _config().getConfig)(this.projectRoot);
256
+ const { exp } = (0, _config().getConfig)(this.projectRoot);
256
257
  const manifest = await (0, _fetchRouterManifest.fetchManifest)(this.projectRoot, {
257
- ...(ref = exp.extra) == null ? void 0 : (ref1 = ref.router) == null ? void 0 : ref1.platformRoutes,
258
+ ...(_exp_extra = exp.extra) == null ? void 0 : _exp_extra.router,
259
+ preserveRedirectAndRewrites: true,
258
260
  asJson: true,
259
261
  appDir
260
262
  });
261
263
  if (!manifest) {
262
- throw new _errors.CommandError("EXPO_ROUTER_SERVER_MANIFEST", "Unexpected error: server manifest could not be fetched.");
264
+ throw new _errors.CommandError('EXPO_ROUTER_SERVER_MANIFEST', 'Unexpected error: server manifest could not be fetched.');
263
265
  }
264
266
  return manifest;
265
267
  }
266
268
  async getServerManifestAsync() {
269
+ var _exp_extra, _exp_extra1;
270
+ const { exp } = (0, _config().getConfig)(this.projectRoot);
267
271
  // NOTE: This could probably be folded back into `renderStaticContent` when expo-asset and font support RSC.
268
- const { getBuildTimeServerManifestAsync , getManifest } = await this.ssrLoadModule("expo-router/build/static/getServerManifest.js", {
272
+ const { getBuildTimeServerManifestAsync, getManifest } = await this.ssrLoadModule('expo-router/build/static/getServerManifest.js', {
269
273
  // Only use react-server environment when the routes are using react-server rendering by default.
270
- environment: this.isReactServerRoutesEnabled ? "react-server" : "node"
274
+ environment: this.isReactServerRoutesEnabled ? 'react-server' : 'node'
271
275
  });
272
276
  return {
273
- serverManifest: await getBuildTimeServerManifestAsync(),
274
- htmlManifest: await getManifest()
277
+ serverManifest: await getBuildTimeServerManifestAsync({
278
+ ...(_exp_extra = exp.extra) == null ? void 0 : _exp_extra.router
279
+ }),
280
+ htmlManifest: await getManifest({
281
+ ...(_exp_extra1 = exp.extra) == null ? void 0 : _exp_extra1.router
282
+ })
275
283
  };
276
284
  }
277
285
  async getStaticRenderFunctionAsync() {
278
- var ref;
286
+ var _exp_extra, _exp_extra1;
279
287
  const url = this.getDevServerUrlOrAssert();
280
- const { getStaticContent , getManifest , getBuildTimeServerManifestAsync } = await this.ssrLoadModule("expo-router/node/render.js", {
288
+ const { getStaticContent, getManifest, getBuildTimeServerManifestAsync } = await this.ssrLoadModule('expo-router/node/render.js', {
281
289
  // This must always use the legacy rendering resolution (no `react-server`) because it leverages
282
290
  // the previous React SSG utilities which aren't available in React 19.
283
- environment: "node"
291
+ environment: 'node'
284
292
  });
285
- const { exp } = (0, _config().getConfig)(this.projectRoot);
293
+ const { exp } = (0, _config().getConfig)(this.projectRoot);
286
294
  return {
287
- serverManifest: await getBuildTimeServerManifestAsync(),
295
+ serverManifest: await getBuildTimeServerManifestAsync({
296
+ ...(_exp_extra = exp.extra) == null ? void 0 : _exp_extra.router
297
+ }),
288
298
  // Get routes from Expo Router.
289
299
  manifest: await getManifest({
290
300
  preserveApiRoutes: false,
291
- ...(ref = exp.extra) == null ? void 0 : ref.router
301
+ ...(_exp_extra1 = exp.extra) == null ? void 0 : _exp_extra1.router
292
302
  }),
293
303
  // Get route generating function
294
304
  async renderAsync (path) {
@@ -296,10 +306,10 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
296
306
  }
297
307
  };
298
308
  }
299
- async getStaticResourcesAsync({ includeSourceMaps , mainModuleName , clientBoundaries =this.instanceMetroOptions.clientBoundaries ?? [] , platform ="web" } = {}) {
300
- const { mode , minify , isExporting , baseUrl , reactCompiler , routerRoot , asyncRoutes } = this.instanceMetroOptions;
301
- (0, _assert().default)(mode != null && isExporting != null && baseUrl != null && routerRoot != null && reactCompiler != null && asyncRoutes != null, "The server must be started before calling getStaticResourcesAsync.");
302
- const resolvedMainModuleName = mainModuleName ?? "./" + (0, _manifestMiddleware.resolveMainModuleName)(this.projectRoot, {
309
+ async getStaticResourcesAsync({ includeSourceMaps, mainModuleName, clientBoundaries = this.instanceMetroOptions.clientBoundaries ?? [], platform = 'web' } = {}) {
310
+ const { mode, minify, isExporting, baseUrl, reactCompiler, routerRoot, asyncRoutes } = this.instanceMetroOptions;
311
+ (0, _assert().default)(mode != null && isExporting != null && baseUrl != null && routerRoot != null && reactCompiler != null && asyncRoutes != null, 'The server must be started before calling getStaticResourcesAsync.');
312
+ const resolvedMainModuleName = mainModuleName ?? './' + (0, _ManifestMiddleware.resolveMainModuleName)(this.projectRoot, {
303
313
  platform
304
314
  });
305
315
  return await this.metroImportAsArtifactsAsync(resolvedMainModuleName, {
@@ -307,7 +317,7 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
307
317
  platform,
308
318
  mode,
309
319
  minify,
310
- environment: "client",
320
+ environment: 'client',
311
321
  serializerIncludeMaps: includeSourceMaps,
312
322
  mainModuleName: resolvedMainModuleName,
313
323
  lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
@@ -321,16 +331,16 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
321
331
  });
322
332
  }
323
333
  async getStaticPageAsync(pathname) {
324
- const { mode , isExporting , clientBoundaries , baseUrl , reactCompiler , routerRoot , asyncRoutes } = this.instanceMetroOptions;
325
- (0, _assert().default)(mode != null && isExporting != null && baseUrl != null && reactCompiler != null && routerRoot != null && asyncRoutes != null, "The server must be started before calling getStaticPageAsync.");
326
- const platform = "web";
334
+ const { mode, isExporting, clientBoundaries, baseUrl, reactCompiler, routerRoot, asyncRoutes } = this.instanceMetroOptions;
335
+ (0, _assert().default)(mode != null && isExporting != null && baseUrl != null && reactCompiler != null && routerRoot != null && asyncRoutes != null, 'The server must be started before calling getStaticPageAsync.');
336
+ const platform = 'web';
327
337
  const devBundleUrlPathname = (0, _metroOptions.createBundleUrlPath)({
328
338
  splitChunks: isExporting && !_env1.env.EXPO_NO_BUNDLE_SPLITTING,
329
339
  platform,
330
340
  mode,
331
- environment: "client",
341
+ environment: 'client',
332
342
  reactCompiler,
333
- mainModuleName: (0, _manifestMiddleware.resolveMainModuleName)(this.projectRoot, {
343
+ mainModuleName: (0, _ManifestMiddleware.resolveMainModuleName)(this.projectRoot, {
334
344
  platform
335
345
  }),
336
346
  lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
@@ -342,10 +352,10 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
342
352
  bytecode: false
343
353
  });
344
354
  const bundleStaticHtml = async ()=>{
345
- const { getStaticContent } = await this.ssrLoadModule("expo-router/node/render.js", {
355
+ const { getStaticContent } = await this.ssrLoadModule('expo-router/node/render.js', {
346
356
  // This must always use the legacy rendering resolution (no `react-server`) because it leverages
347
357
  // the previous React SSG utilities which aren't available in React 19.
348
- environment: "node",
358
+ environment: 'node',
349
359
  minify: false,
350
360
  isExporting,
351
361
  platform
@@ -353,11 +363,11 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
353
363
  const location = new URL(pathname, this.getDevServerUrlOrAssert());
354
364
  return await getStaticContent(location);
355
365
  };
356
- const [{ artifacts: resources }, staticHtml] = await Promise.all([
366
+ const [{ artifacts: resources }, staticHtml] = await Promise.all([
357
367
  this.getStaticResourcesAsync({
358
368
  clientBoundaries: []
359
369
  }),
360
- bundleStaticHtml(),
370
+ bundleStaticHtml()
361
371
  ]);
362
372
  const content = (0, _serializeHtml.serializeHtmlWithAssets)({
363
373
  isExporting,
@@ -372,23 +382,9 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
372
382
  resources
373
383
  };
374
384
  }
375
- // Set when the server is started.
376
- instanceMetroOptions = {};
377
- ssrLoadModule = async (filePath, specificOptions = {}, extras = {})=>{
378
- const res = await this.ssrLoadModuleContents(filePath, specificOptions);
379
- if (// TODO: hot should be a callback function for invalidating the related SSR module.
380
- extras.hot && this.instanceMetroOptions.isExporting !== true) {
381
- // Register SSR HMR
382
- const serverRoot = (0, _paths().getMetroServerRoot)(this.projectRoot);
383
- const relativePath = _path().default.relative(serverRoot, res.filename);
384
- const url = new URL(relativePath, this.getDevServerUrlOrAssert());
385
- this.setupHmr(url);
386
- }
387
- return (0, _getStaticRenderFunctions.evalMetroAndWrapFunctions)(this.projectRoot, res.src, res.filename, specificOptions.isExporting ?? this.instanceMetroOptions.isExporting);
388
- };
389
385
  async metroImportAsArtifactsAsync(filePath, specificOptions = {}) {
390
386
  const results = await this.ssrLoadModuleContents(filePath, {
391
- serializerOutput: "static",
387
+ serializerOutput: 'static',
392
388
  ...specificOptions
393
389
  });
394
390
  // NOTE: This could potentially need more validation in the future.
@@ -401,22 +397,22 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
401
397
  map: results.map
402
398
  };
403
399
  }
404
- throw new _errors.CommandError("Invalid bundler results: " + results);
400
+ throw new _errors.CommandError('Invalid bundler results: ' + results);
405
401
  }
406
402
  async metroLoadModuleContents(filePath, specificOptions, extraOptions = {}) {
407
- const { baseUrl } = this.instanceMetroOptions;
408
- (0, _assert().default)(baseUrl != null, "The server must be started before calling metroLoadModuleContents.");
403
+ const { baseUrl } = this.instanceMetroOptions;
404
+ (0, _assert().default)(baseUrl != null, 'The server must be started before calling metroLoadModuleContents.');
409
405
  const opts = {
410
406
  // TODO: Possibly issues with using an absolute path here...
411
407
  // mainModuleName: filePath,
412
408
  lazy: false,
413
409
  asyncRoutes: false,
414
410
  inlineSourceMap: false,
415
- engine: "hermes",
411
+ engine: 'hermes',
416
412
  minify: false,
417
413
  // bytecode: false,
418
414
  // Bundle in Node.js mode for SSR.
419
- environment: "node",
415
+ environment: 'node',
420
416
  // platform: 'web',
421
417
  // mode: 'development',
422
418
  //
@@ -435,10 +431,10 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
435
431
  dev: expoBundleOptions.dev ?? true,
436
432
  hot: true,
437
433
  minify: expoBundleOptions.minify ?? false,
438
- type: "module",
439
- unstable_transformProfile: extraOptions.unstable_transformProfile ?? expoBundleOptions.unstable_transformProfile ?? "default",
434
+ type: 'module',
435
+ unstable_transformProfile: extraOptions.unstable_transformProfile ?? expoBundleOptions.unstable_transformProfile ?? 'default',
440
436
  customTransformOptions: expoBundleOptions.customTransformOptions ?? Object.create(null),
441
- platform: expoBundleOptions.platform ?? "web",
437
+ platform: expoBundleOptions.platform ?? 'web',
442
438
  // @ts-expect-error: `runtimeBytecodeVersion` does not exist in `expoBundleOptions` or `TransformInputOptions`
443
439
  runtimeBytecodeVersion: expoBundleOptions.runtimeBytecodeVersion
444
440
  };
@@ -475,21 +471,21 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
475
471
  };
476
472
  }
477
473
  async ssrLoadModuleContents(filePath, specificOptions = {}) {
478
- const { baseUrl , routerRoot , isExporting } = this.instanceMetroOptions;
479
- (0, _assert().default)(baseUrl != null && routerRoot != null && isExporting != null, "The server must be started before calling ssrLoadModuleContents.");
474
+ const { baseUrl, routerRoot, isExporting } = this.instanceMetroOptions;
475
+ (0, _assert().default)(baseUrl != null && routerRoot != null && isExporting != null, 'The server must be started before calling ssrLoadModuleContents.');
480
476
  const opts = {
481
477
  // TODO: Possibly issues with using an absolute path here...
482
478
  mainModuleName: (0, _metroOptions.convertPathToModuleSpecifier)(filePath),
483
479
  lazy: false,
484
480
  asyncRoutes: false,
485
481
  inlineSourceMap: false,
486
- engine: "hermes",
482
+ engine: 'hermes',
487
483
  minify: false,
488
484
  bytecode: false,
489
485
  // Bundle in Node.js mode for SSR unless RSC is enabled.
490
- environment: this.isReactServerComponentsEnabled ? "react-server" : "node",
491
- platform: "web",
492
- mode: "development",
486
+ environment: this.isReactServerComponentsEnabled ? 'react-server' : 'node',
487
+ platform: 'web',
488
+ mode: 'development',
493
489
  //
494
490
  ...this.instanceMetroOptions,
495
491
  // Mostly disable compiler in SSR bundles.
@@ -500,16 +496,16 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
500
496
  ...specificOptions
501
497
  };
502
498
  // https://github.com/facebook/metro/blob/2405f2f6c37a1b641cc379b9c733b1eff0c1c2a1/packages/metro/src/lib/parseOptionsFromUrl.js#L55-L87
503
- const { filename , bundle , map , ...rest } = await this.metroLoadModuleContents(filePath, opts);
499
+ const { filename, bundle, map, ...rest } = await this.metroLoadModuleContents(filePath, opts);
504
500
  const scriptContents = wrapBundle(bundle);
505
501
  if (map) {
506
- debug("Registering SSR source map for:", filename);
502
+ debug('Registering SSR source map for:', filename);
507
503
  _getStaticRenderFunctions.cachedSourceMaps.set(filename, {
508
504
  url: this.projectRoot,
509
505
  map
510
506
  });
511
507
  } else {
512
- debug("No SSR source map found for:", filename);
508
+ debug('No SSR source map found for:', filename);
513
509
  }
514
510
  return {
515
511
  ...rest,
@@ -518,29 +514,30 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
518
514
  map
519
515
  };
520
516
  }
521
- async nativeExportBundleAsync(options, files, extraOptions = {}) {
517
+ async nativeExportBundleAsync(exp, options, files, extraOptions = {}) {
522
518
  if (this.isReactServerComponentsEnabled) {
523
- return this.singlePageReactServerComponentExportAsync(options, files, extraOptions);
519
+ return this.singlePageReactServerComponentExportAsync(exp, options, files, extraOptions);
524
520
  }
525
521
  return this.legacySinglePageExportBundleAsync(options, extraOptions);
526
522
  }
527
- async singlePageReactServerComponentExportAsync(options, files, extraOptions = {}) {
523
+ async singlePageReactServerComponentExportAsync(exp, options, files, extraOptions = {}) {
524
+ var _exp_extra;
528
525
  const getReactServerReferences = (artifacts)=>{
529
526
  // Get the React server action boundaries from the client bundle.
530
- return unique(artifacts.filter((a)=>a.type === "js").map((artifact)=>{
531
- var ref;
532
- return (ref = artifact.metadata.reactServerReferences) == null ? void 0 : ref.map((ref)=>(0, _createServerComponentsMiddleware.fileURLToFilePath)(ref));
527
+ return unique(artifacts.filter((a)=>a.type === 'js').map((artifact)=>{
528
+ var _artifact_metadata_reactServerReferences;
529
+ return (_artifact_metadata_reactServerReferences = artifact.metadata.reactServerReferences) == null ? void 0 : _artifact_metadata_reactServerReferences.map((ref)=>(0, _createServerComponentsMiddleware.fileURLToFilePath)(ref));
533
530
  })// TODO: Segment by module for splitting.
534
531
  .flat().filter(Boolean));
535
532
  };
536
533
  // NOTE(EvanBacon): This will not support any code elimination since it's a static pass.
537
- let { reactClientReferences: clientBoundaries , reactServerReferences: serverActionReferencesInServer , cssModules , } = await this.rscRenderer.getExpoRouterClientReferencesAsync({
534
+ let { reactClientReferences: clientBoundaries, reactServerReferences: serverActionReferencesInServer, cssModules } = await this.rscRenderer.getExpoRouterClientReferencesAsync({
538
535
  platform: options.platform,
539
536
  domRoot: options.domRoot
540
537
  }, files);
541
538
  // TODO: The output keys should be in production format or use a lookup manifest.
542
539
  const processClientBoundaries = async (reactServerReferences)=>{
543
- debug("Evaluated client boundaries:", clientBoundaries);
540
+ debug('Evaluated client boundaries:', clientBoundaries);
544
541
  // Run metro bundler and create the JS bundles/source maps.
545
542
  const bundle = await this.legacySinglePageExportBundleAsync({
546
543
  ...options,
@@ -550,15 +547,15 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
550
547
  const newReactServerReferences = getReactServerReferences(bundle.artifacts);
551
548
  if (!newReactServerReferences) {
552
549
  // Possible issue with babel plugin / metro-config.
553
- throw new Error("Static server action references were not returned from the Metro client bundle");
550
+ throw new Error('Static server action references were not returned from the Metro client bundle');
554
551
  }
555
- debug("React server action boundaries from client:", newReactServerReferences);
552
+ debug('React server action boundaries from client:', newReactServerReferences);
556
553
  const allKnownReactServerReferences = unique([
557
554
  ...reactServerReferences,
558
- ...newReactServerReferences,
555
+ ...newReactServerReferences
559
556
  ]);
560
557
  // When we export the server actions that were imported from the client, we may need to re-bundle the client with the new client boundaries.
561
- const { clientBoundaries: nestedClientBoundaries } = await this.rscRenderer.exportServerActionsAsync({
558
+ const { clientBoundaries: nestedClientBoundaries } = await this.rscRenderer.exportServerActionsAsync({
562
559
  platform: options.platform,
563
560
  domRoot: options.domRoot,
564
561
  entryPoints: allKnownReactServerReferences
@@ -568,7 +565,7 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
568
565
  if (!hasUniqueClientBoundaries) {
569
566
  return bundle;
570
567
  }
571
- debug("Re-bundling client with nested client boundaries:", nestedClientBoundaries);
568
+ debug('Re-bundling client with nested client boundaries:', nestedClientBoundaries);
572
569
  clientBoundaries = unique(clientBoundaries.concat(nestedClientBoundaries));
573
570
  // Re-bundle the client with the new client boundaries that only exist in server actions that were imported from the client.
574
571
  // Run metro bundler and create the JS bundles/source maps.
@@ -582,45 +579,47 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
582
579
  const clientBoundariesAsOpaqueIds = clientBoundaries.map((boundary)=>// NOTE(cedric): relative module specifiers / IDs should always be POSIX formatted
583
580
  (0, _filePath.toPosixPath)(_path().default.relative(serverRoot, boundary)));
584
581
  const moduleIdToSplitBundle = bundle.artifacts.map((artifact)=>{
585
- var ref;
586
- return (artifact == null ? void 0 : (ref = artifact.metadata) == null ? void 0 : ref.paths) && Object.values(artifact.metadata.paths);
582
+ var _artifact_metadata;
583
+ return (artifact == null ? void 0 : (_artifact_metadata = artifact.metadata) == null ? void 0 : _artifact_metadata.paths) && Object.values(artifact.metadata.paths);
587
584
  }).filter(Boolean).flat().reduce((acc, paths)=>({
588
585
  ...acc,
589
586
  ...paths
590
587
  }), {});
591
- debug("SSR Manifest:", moduleIdToSplitBundle, clientBoundariesAsOpaqueIds);
588
+ debug('SSR Manifest:', moduleIdToSplitBundle, clientBoundariesAsOpaqueIds);
592
589
  const ssrManifest = new Map();
593
590
  if (Object.keys(moduleIdToSplitBundle).length) {
594
591
  clientBoundariesAsOpaqueIds.forEach((boundary)=>{
595
592
  if (boundary in moduleIdToSplitBundle) {
596
593
  ssrManifest.set(boundary, moduleIdToSplitBundle[boundary]);
597
594
  } else {
598
- throw new Error(`Could not find boundary "${boundary}" in the SSR manifest. Available: ${Object.keys(moduleIdToSplitBundle).join(", ")}`);
595
+ throw new Error(`Could not find boundary "${boundary}" in the SSR manifest. Available: ${Object.keys(moduleIdToSplitBundle).join(', ')}`);
599
596
  }
600
597
  });
601
598
  } else {
602
599
  // Native apps with bundle splitting disabled.
603
- debug("No split bundles");
600
+ debug('No split bundles');
604
601
  clientBoundariesAsOpaqueIds.forEach((boundary)=>{
605
602
  // @ts-expect-error
606
603
  ssrManifest.set(boundary, null);
607
604
  });
608
605
  }
606
+ const routerOptions = (_exp_extra = exp.extra) == null ? void 0 : _exp_extra.router;
609
607
  // Export the static RSC files
610
608
  await this.rscRenderer.exportRoutesAsync({
611
609
  platform: options.platform,
612
- ssrManifest
610
+ ssrManifest,
611
+ routerOptions
613
612
  }, files);
614
613
  // Save the SSR manifest so we can perform more replacements in the server renderer and with server actions.
615
614
  files.set(`_expo/rsc/${options.platform}/ssr-manifest.js`, {
616
- targetDomain: "server",
617
- contents: "module.exports = " + JSON.stringify(// TODO: Add a less leaky version of this across the framework with just [key, value] (module ID, chunk).
615
+ targetDomain: 'server',
616
+ contents: 'module.exports = ' + JSON.stringify(// TODO: Add a less leaky version of this across the framework with just [key, value] (module ID, chunk).
618
617
  Object.fromEntries(Array.from(ssrManifest.entries()).map(([key, value])=>[
619
618
  _path().default.join(serverRoot, key),
620
619
  [
621
620
  key,
622
621
  value
623
- ],
622
+ ]
624
623
  ])))
625
624
  });
626
625
  return {
@@ -629,21 +628,21 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
629
628
  };
630
629
  }
631
630
  async legacySinglePageExportBundleAsync(options, extraOptions = {}) {
632
- const { baseUrl , routerRoot , isExporting } = this.instanceMetroOptions;
633
- (0, _assert().default)(options.mainModuleName != null, "mainModuleName must be provided in options.");
634
- (0, _assert().default)(baseUrl != null && routerRoot != null && isExporting != null, "The server must be started before calling legacySinglePageExportBundleAsync.");
631
+ const { baseUrl, routerRoot, isExporting } = this.instanceMetroOptions;
632
+ (0, _assert().default)(options.mainModuleName != null, 'mainModuleName must be provided in options.');
633
+ (0, _assert().default)(baseUrl != null && routerRoot != null && isExporting != null, 'The server must be started before calling legacySinglePageExportBundleAsync.');
635
634
  const opts = {
636
635
  ...this.instanceMetroOptions,
637
636
  baseUrl,
638
637
  routerRoot,
639
638
  isExporting,
640
639
  ...options,
641
- environment: "client",
642
- serializerOutput: "static"
640
+ environment: 'client',
641
+ serializerOutput: 'static'
643
642
  };
644
643
  // https://github.com/facebook/metro/blob/2405f2f6c37a1b641cc379b9c733b1eff0c1c2a1/packages/metro/src/lib/parseOptionsFromUrl.js#L55-L87
645
- if (!opts.mainModuleName.startsWith("/") && !_path().default.isAbsolute(opts.mainModuleName)) {
646
- opts.mainModuleName = "./" + opts.mainModuleName;
644
+ if (!opts.mainModuleName.startsWith('/') && !_path().default.isAbsolute(opts.mainModuleName)) {
645
+ opts.mainModuleName = './' + opts.mainModuleName;
647
646
  }
648
647
  const output = await this.metroLoadModuleContents(opts.mainModuleName, opts, extraOptions);
649
648
  return {
@@ -653,12 +652,12 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
653
652
  }
654
653
  async watchEnvironmentVariables() {
655
654
  if (!this.instance) {
656
- throw new Error("Cannot observe environment variable changes without a running Metro instance.");
655
+ throw new Error('Cannot observe environment variable changes without a running Metro instance.');
657
656
  }
658
657
  if (!this.metro) {
659
658
  // This can happen when the run command is used and the server is already running in another
660
659
  // process.
661
- debug("Skipping Environment Variable observation because Metro is not running (headless).");
660
+ debug('Skipping Environment Variable observation because Metro is not running (headless).');
662
661
  return;
663
662
  }
664
663
  const envFiles = _env().getFiles(process.env.NODE_ENV).map((fileName)=>_path().default.join(this.projectRoot, fileName));
@@ -666,44 +665,44 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
666
665
  metro: this.metro,
667
666
  server: this.instance.server
668
667
  }, envFiles, ()=>{
669
- debug("Reloading environment variables...");
668
+ debug('Reloading environment variables...');
670
669
  // Force reload the environment variables.
671
670
  _env().load(this.projectRoot, {
672
671
  force: true
673
672
  });
674
673
  });
675
674
  }
676
- rscRenderer = null;
677
675
  async startImplementationAsync(options) {
678
- var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10;
676
+ var _exp_experiments, _exp_experiments1, _exp_experiments2, _exp_experiments3, _exp_experiments4, _exp_web, _exp_web1, _exp_experiments5, _exp_extra, _exp_web2, _exp_extra_router, _exp_extra1;
679
677
  options.port = await this.resolvePortAsync(options);
680
678
  this.urlCreator = this.getUrlCreator(options);
681
679
  const config = (0, _config().getConfig)(this.projectRoot, {
682
680
  skipSDKVersionRequirement: true
683
681
  });
684
- const { exp } = config;
682
+ const { exp } = config;
685
683
  // NOTE: This will change in the future when it's less experimental, we enable React 19, and turn on more RSC flags by default.
686
- const isReactServerComponentsEnabled = !!((ref = exp.experiments) == null ? void 0 : ref.reactServerComponentRoutes) || !!((ref1 = exp.experiments) == null ? void 0 : ref1.reactServerFunctions);
687
- const isReactServerActionsOnlyEnabled = !((ref2 = exp.experiments) == null ? void 0 : ref2.reactServerComponentRoutes) && !!((ref3 = exp.experiments) == null ? void 0 : ref3.reactServerFunctions);
684
+ const isReactServerComponentsEnabled = !!((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactServerComponentRoutes) || !!((_exp_experiments1 = exp.experiments) == null ? void 0 : _exp_experiments1.reactServerFunctions);
685
+ const isReactServerActionsOnlyEnabled = !((_exp_experiments2 = exp.experiments) == null ? void 0 : _exp_experiments2.reactServerComponentRoutes) && !!((_exp_experiments3 = exp.experiments) == null ? void 0 : _exp_experiments3.reactServerFunctions);
688
686
  this.isReactServerComponentsEnabled = isReactServerComponentsEnabled;
689
- this.isReactServerRoutesEnabled = !!((ref4 = exp.experiments) == null ? void 0 : ref4.reactServerComponentRoutes);
687
+ this.isReactServerRoutesEnabled = !!((_exp_experiments4 = exp.experiments) == null ? void 0 : _exp_experiments4.reactServerComponentRoutes);
690
688
  const useServerRendering = [
691
- "static",
692
- "server"
693
- ].includes(((ref5 = exp.web) == null ? void 0 : ref5.output) ?? "");
694
- const hasApiRoutes = isReactServerComponentsEnabled || ((ref6 = exp.web) == null ? void 0 : ref6.output) === "server";
689
+ 'static',
690
+ 'server'
691
+ ].includes(((_exp_web = exp.web) == null ? void 0 : _exp_web.output) ?? '');
692
+ const hasApiRoutes = isReactServerComponentsEnabled || ((_exp_web1 = exp.web) == null ? void 0 : _exp_web1.output) === 'server';
695
693
  const baseUrl = (0, _metroOptions.getBaseUrlFromExpoConfig)(exp);
696
- const asyncRoutes = (0, _metroOptions.getAsyncRoutesFromExpoConfig)(exp, options.mode ?? "development", "web");
694
+ const asyncRoutes = (0, _metroOptions.getAsyncRoutesFromExpoConfig)(exp, options.mode ?? 'development', 'web');
697
695
  const routerRoot = (0, _router.getRouterDirectoryModuleIdWithManifest)(this.projectRoot, exp);
698
- const reactCompiler = !!((ref7 = exp.experiments) == null ? void 0 : ref7.reactCompiler);
696
+ const reactCompiler = !!((_exp_experiments5 = exp.experiments) == null ? void 0 : _exp_experiments5.reactCompiler);
699
697
  const appDir = _path().default.join(this.projectRoot, routerRoot);
700
- const mode = options.mode ?? "development";
701
- if (isReactServerComponentsEnabled && ((ref8 = exp.web) == null ? void 0 : ref8.output) === "static") {
698
+ const mode = options.mode ?? 'development';
699
+ const routerOptions = (_exp_extra = exp.extra) == null ? void 0 : _exp_extra.router;
700
+ if (isReactServerComponentsEnabled && ((_exp_web2 = exp.web) == null ? void 0 : _exp_web2.output) === 'static') {
702
701
  throw new _errors.CommandError(`Experimental server component support does not support 'web.output: ${exp.web.output}' yet. Use 'web.output: "server"' during the experimental phase.`);
703
702
  }
704
703
  // Error early about the window.location polyfill when React Server Components are enabled.
705
- if (isReactServerComponentsEnabled && (exp == null ? void 0 : (ref9 = exp.extra) == null ? void 0 : (ref10 = ref9.router) == null ? void 0 : ref10.origin) === false) {
706
- const configPath = config.dynamicConfigPath ?? config.staticConfigPath ?? "/app.json";
704
+ if (isReactServerComponentsEnabled && (exp == null ? void 0 : (_exp_extra1 = exp.extra) == null ? void 0 : (_exp_extra_router = _exp_extra1.router) == null ? void 0 : _exp_extra_router.origin) === false) {
705
+ const configPath = config.dynamicConfigPath ?? config.staticConfigPath ?? '/app.json';
707
706
  const configFileName = _path().default.basename(configPath);
708
707
  throw new _errors.CommandError(`The Expo Router "origin" property in the Expo config (${configFileName}) cannot be "false" when React Server Components is enabled. Remove it from the ${configFileName} file and try again.`);
709
708
  }
@@ -724,14 +723,14 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
724
723
  };
725
724
  // Required for symbolication:
726
725
  process.env.EXPO_DEV_SERVER_ORIGIN = `http://localhost:${options.port}`;
727
- const { metro , hmrServer , server , middleware , messageSocket } = await (0, _instantiateMetro.instantiateMetroAsync)(this, parsedOptions, {
726
+ const { metro, hmrServer, server, middleware, messageSocket } = await (0, _instantiateMetro.instantiateMetroAsync)(this, parsedOptions, {
728
727
  isExporting: !!options.isExporting,
729
728
  exp
730
729
  });
731
730
  if (!options.isExporting) {
732
731
  const manifestMiddleware = await this.getManifestMiddlewareAsync(options);
733
732
  // Important that we noop source maps for context modules as soon as possible.
734
- (0, _mutations.prependMiddleware)(middleware, new _contextModuleSourceMapsMiddleware.ContextModuleSourceMapsMiddleware().getHandler());
733
+ (0, _mutations.prependMiddleware)(middleware, new _ContextModuleSourceMapsMiddleware.ContextModuleSourceMapsMiddleware().getHandler());
735
734
  // We need the manifest handler to be the first middleware to run so our
736
735
  // routes take precedence over static files. For example, the manifest is
737
736
  // served from '/' and if the user has an index.html file in their project
@@ -739,41 +738,41 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
739
738
  // and serve index.html instead of the manifest.
740
739
  // https://github.com/expo/expo/issues/13114
741
740
  (0, _mutations.prependMiddleware)(middleware, manifestMiddleware.getHandler());
742
- middleware.use(new _interstitialPageMiddleware.InterstitialPageMiddleware(this.projectRoot, {
741
+ middleware.use(new _InterstitialPageMiddleware.InterstitialPageMiddleware(this.projectRoot, {
743
742
  // TODO: Prevent this from becoming stale.
744
743
  scheme: options.location.scheme ?? null
745
744
  }).getHandler());
746
- middleware.use(new _reactDevToolsPageMiddleware.ReactDevToolsPageMiddleware(this.projectRoot).getHandler());
747
- middleware.use(new _devToolsPluginMiddleware.DevToolsPluginMiddleware(this.projectRoot, this.devToolsPluginManager).getHandler());
748
- const deepLinkMiddleware = new _runtimeRedirectMiddleware.RuntimeRedirectMiddleware(this.projectRoot, {
749
- getLocation: ({ runtime })=>{
750
- if (runtime === "custom") {
751
- var ref;
752
- return (ref = this.urlCreator) == null ? void 0 : ref.constructDevClientUrl();
745
+ middleware.use(new _ReactDevToolsPageMiddleware.ReactDevToolsPageMiddleware(this.projectRoot).getHandler());
746
+ middleware.use(new _DevToolsPluginMiddleware.DevToolsPluginMiddleware(this.projectRoot, this.devToolsPluginManager).getHandler());
747
+ const deepLinkMiddleware = new _RuntimeRedirectMiddleware.RuntimeRedirectMiddleware(this.projectRoot, {
748
+ getLocation: ({ runtime })=>{
749
+ if (runtime === 'custom') {
750
+ var _this_urlCreator;
751
+ return (_this_urlCreator = this.urlCreator) == null ? void 0 : _this_urlCreator.constructDevClientUrl();
753
752
  } else {
754
- var ref1;
755
- return (ref1 = this.urlCreator) == null ? void 0 : ref1.constructUrl({
756
- scheme: "exp"
753
+ var _this_urlCreator1;
754
+ return (_this_urlCreator1 = this.urlCreator) == null ? void 0 : _this_urlCreator1.constructUrl({
755
+ scheme: 'exp'
757
756
  });
758
757
  }
759
758
  }
760
759
  });
761
760
  middleware.use(deepLinkMiddleware.getHandler());
762
761
  const serverRoot = (0, _paths().getMetroServerRoot)(this.projectRoot);
763
- const domComponentRenderer = (0, _domComponentsMiddleware.createDomComponentsMiddleware)({
762
+ const domComponentRenderer = (0, _DomComponentsMiddleware.createDomComponentsMiddleware)({
764
763
  metroRoot: serverRoot,
765
764
  projectRoot: this.projectRoot
766
765
  }, instanceMetroOptions);
767
766
  // Add support for DOM components.
768
767
  // TODO: Maybe put behind a flag for now?
769
768
  middleware.use(domComponentRenderer);
770
- middleware.use(new _createFileMiddleware.CreateFileMiddleware(this.projectRoot).getHandler());
769
+ middleware.use(new _CreateFileMiddleware.CreateFileMiddleware(this.projectRoot).getHandler());
771
770
  // Append support for redirecting unhandled requests to the index.html page on web.
772
771
  if (this.isTargetingWeb()) {
773
772
  // This MUST be after the manifest middleware so it doesn't have a chance to serve the template `public/index.html`.
774
- middleware.use(new _serveStaticMiddleware.ServeStaticMiddleware(this.projectRoot).getHandler());
773
+ middleware.use(new _ServeStaticMiddleware.ServeStaticMiddleware(this.projectRoot).getHandler());
775
774
  // This should come after the static middleware so it doesn't serve the favicon from `public/favicon.ico`.
776
- middleware.use(new _faviconMiddleware.FaviconMiddleware(this.projectRoot).getHandler());
775
+ middleware.use(new _FaviconMiddleware.FaviconMiddleware(this.projectRoot).getHandler());
777
776
  }
778
777
  if (useServerRendering || isReactServerComponentsEnabled) {
779
778
  (0, _waitForMetroToObserveTypeScriptFile.observeAnyFileChanges)({
@@ -791,8 +790,8 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
791
790
  for (const event of events){
792
791
  var // If the user did not delete a file that matches the Expo Router API Route convention, then we should warn that
793
792
  // API Routes are not enabled in the project.
794
- ref;
795
- if (((ref = event.metadata) == null ? void 0 : ref.type) !== "d" && // Ensure the file is in the project's routes directory to prevent false positives in monorepos.
793
+ _event_metadata;
794
+ if (((_event_metadata = event.metadata) == null ? void 0 : _event_metadata.type) !== 'd' && // Ensure the file is in the project's routes directory to prevent false positives in monorepos.
796
795
  event.filePath.startsWith(appDir) && (0, _router.isApiRouteConvention)(event.filePath)) {
797
796
  (0, _router.warnInvalidWebOutput)();
798
797
  }
@@ -805,11 +804,12 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
805
804
  this.bindRSCDevModuleInjectionHandler();
806
805
  const rscMiddleware = (0, _createServerComponentsMiddleware.createServerComponentsMiddleware)(this.projectRoot, {
807
806
  instanceMetroOptions: this.instanceMetroOptions,
808
- rscPath: "/_flight",
807
+ rscPath: '/_flight',
809
808
  ssrLoadModule: this.ssrLoadModule.bind(this),
810
809
  ssrLoadModuleArtifacts: this.metroImportAsArtifactsAsync.bind(this),
811
810
  useClientRouter: isReactServerActionsOnlyEnabled,
812
- createModuleId: metro._createModuleId.bind(metro)
811
+ createModuleId: metro._createModuleId.bind(metro),
812
+ routerOptions
813
813
  });
814
814
  this.rscRenderer = rscMiddleware;
815
815
  middleware.use(rscMiddleware.middleware);
@@ -819,16 +819,16 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
819
819
  if (this.isTargetingWeb()) {
820
820
  if (!useServerRendering) {
821
821
  // This MUST run last since it's the fallback.
822
- middleware.use(new _historyFallbackMiddleware.HistoryFallbackMiddleware(manifestMiddleware.getHandler().internal).getHandler());
822
+ middleware.use(new _HistoryFallbackMiddleware.HistoryFallbackMiddleware(manifestMiddleware.getHandler().internal).getHandler());
823
823
  } else {
824
- var ref11;
824
+ var _config_exp_extra;
825
825
  middleware.use((0, _createServerRouteMiddleware.createRouteHandlerMiddleware)(this.projectRoot, {
826
826
  appDir,
827
827
  routerRoot,
828
828
  config,
829
- ...(ref11 = config.exp.extra) == null ? void 0 : ref11.router,
829
+ ...(_config_exp_extra = config.exp.extra) == null ? void 0 : _config_exp_extra.router,
830
830
  bundleApiRoute: (functionFilePath)=>this.ssrImportApiRoute(functionFilePath, {
831
- platform: "web"
831
+ platform: 'web'
832
832
  }),
833
833
  getStaticPageAsync: async (pathname)=>{
834
834
  // TODO: Add server rendering when RSC is enabled.
@@ -850,15 +850,16 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
850
850
  // If React 19 is enabled, then add RSC middleware to the dev server.
851
851
  if (isReactServerComponentsEnabled) {
852
852
  this.bindRSCDevModuleInjectionHandler();
853
- const rscMiddleware1 = (0, _createServerComponentsMiddleware.createServerComponentsMiddleware)(this.projectRoot, {
853
+ const rscMiddleware = (0, _createServerComponentsMiddleware.createServerComponentsMiddleware)(this.projectRoot, {
854
854
  instanceMetroOptions: this.instanceMetroOptions,
855
- rscPath: "/_flight",
855
+ rscPath: '/_flight',
856
856
  ssrLoadModule: this.ssrLoadModule.bind(this),
857
857
  ssrLoadModuleArtifacts: this.metroImportAsArtifactsAsync.bind(this),
858
858
  useClientRouter: isReactServerActionsOnlyEnabled,
859
- createModuleId: metro._createModuleId.bind(metro)
859
+ createModuleId: metro._createModuleId.bind(metro),
860
+ routerOptions
860
861
  });
861
- this.rscRenderer = rscMiddleware1;
862
+ this.rscRenderer = rscMiddleware;
862
863
  }
863
864
  }
864
865
  // Extend the close method to ensure that we clean up the local info.
@@ -881,66 +882,65 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
881
882
  // The port is the main thing we want to send back.
882
883
  port: options.port,
883
884
  // localhost isn't always correct.
884
- host: "localhost",
885
+ host: 'localhost',
885
886
  // http is the only supported protocol on native.
886
887
  url: `http://localhost:${options.port}`,
887
- protocol: "http"
888
+ protocol: 'http'
888
889
  },
889
890
  middleware,
890
891
  messageSocket
891
892
  };
892
893
  }
893
- onReloadRscEvent = null;
894
894
  async registerSsrHmrAsync(url, onReload) {
895
895
  if (!this.hmrServer || this.ssrHmrClients.has(url)) {
896
896
  return;
897
897
  }
898
- debug("[SSR] Register HMR:", url);
898
+ debug('[SSR] Register HMR:', url);
899
899
  const sendFn = (message)=>{
900
900
  const data = JSON.parse(String(message));
901
901
  switch(data.type){
902
- case "bundle-registered":
903
- case "update-done":
904
- case "update-start":
902
+ case 'bundle-registered':
903
+ case 'update-done':
904
+ case 'update-start':
905
905
  break;
906
- case "update":
906
+ case 'update':
907
907
  {
908
908
  const update = data.body;
909
- const { isInitialUpdate , added , modified , deleted , } = update;
909
+ const { isInitialUpdate, added, modified, deleted } = update;
910
910
  const hasUpdate = added.length || modified.length || deleted.length;
911
911
  // NOTE: We throw away the updates and instead simply send a trigger to the client to re-fetch the server route.
912
912
  if (!isInitialUpdate && hasUpdate) {
913
913
  // Clear all SSR modules before sending the reload event. This ensures that the next event will rebuild the in-memory state from scratch.
914
914
  // @ts-expect-error
915
- if (typeof globalThis.__c === "function") globalThis.__c();
915
+ if (typeof globalThis.__c === 'function') globalThis.__c();
916
916
  const allModuleIds = new Set([
917
917
  ...added,
918
918
  ...modified
919
919
  ].map((m)=>m.module[0]).concat(deleted));
920
920
  const platforms = unique(Array.from(allModuleIds).map((moduleId)=>{
921
- var ref;
922
- if (typeof moduleId !== "string") {
921
+ var _moduleId_match;
922
+ if (typeof moduleId !== 'string') {
923
923
  return null;
924
924
  }
925
925
  // Extract platforms from the module IDs.
926
- return ((ref = moduleId.match(/[?&]platform=([\w]+)/)) == null ? void 0 : ref[1]) ?? null;
926
+ return ((_moduleId_match = moduleId.match(/[?&]platform=([\w]+)/)) == null ? void 0 : _moduleId_match[1]) ?? null;
927
927
  }).filter(Boolean));
928
928
  onReload(platforms);
929
929
  }
930
930
  }
931
931
  break;
932
- case "error":
933
- var ref;
932
+ case 'error':
933
+ var _data_body;
934
934
  // GraphNotFound can mean that we have an issue in metroOptions where the URL doesn't match the object props.
935
- _log.Log.error("[SSR] HMR Error: " + JSON.stringify(data, null, 2));
936
- if (((ref = data.body) == null ? void 0 : ref.type) === "GraphNotFoundError") {
937
- var ref1;
938
- _log.Log.error("Available SSR HMR keys:", // @ts-expect-error
939
- ((ref1 = this.metro) == null ? void 0 : ref1._bundler._revisionsByGraphId).keys());
935
+ _log.Log.error('[SSR] HMR Error: ' + JSON.stringify(data, null, 2));
936
+ if (((_data_body = data.body) == null ? void 0 : _data_body.type) === 'GraphNotFoundError') {
937
+ var // @ts-expect-error
938
+ _this_metro;
939
+ _log.Log.error('Available SSR HMR keys:', ((_this_metro = this.metro) == null ? void 0 : _this_metro._bundler._revisionsByGraphId).keys());
940
940
  }
941
941
  break;
942
942
  default:
943
- debug("Unknown HMR message:", data);
943
+ debug('Unknown HMR message:', data);
944
944
  break;
945
945
  }
946
946
  };
@@ -952,14 +952,14 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
952
952
  }
953
953
  async waitForTypeScriptAsync() {
954
954
  if (!this.instance) {
955
- throw new Error("Cannot wait for TypeScript without a running server.");
955
+ throw new Error('Cannot wait for TypeScript without a running server.');
956
956
  }
957
957
  return new Promise((resolve)=>{
958
958
  if (!this.metro) {
959
959
  // This can happen when the run command is used and the server is already running in another
960
960
  // process. In this case we can't wait for the TypeScript check to complete because we don't
961
961
  // have access to the Metro server.
962
- debug("Skipping TypeScript check because Metro is not running (headless).");
962
+ debug('Skipping TypeScript check because Metro is not running (headless).');
963
963
  return resolve(false);
964
964
  }
965
965
  const off = (0, _metroWatchTypeScriptFiles.metroWatchTypeScriptFiles)({
@@ -969,13 +969,13 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
969
969
  tsconfig: true,
970
970
  throttle: true,
971
971
  eventTypes: [
972
- "change",
973
- "add"
972
+ 'change',
973
+ 'add'
974
974
  ],
975
975
  callback: async ()=>{
976
976
  // Run once, this prevents the TypeScript project prerequisite from running on every file change.
977
977
  off();
978
- const { TypeScriptProjectPrerequisite } = await Promise.resolve().then(()=>/*#__PURE__*/ _interopRequireWildcard(require("../../doctor/typescript/TypeScriptProjectPrerequisite.js")));
978
+ const { TypeScriptProjectPrerequisite } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../../doctor/typescript/TypeScriptProjectPrerequisite.js")));
979
979
  try {
980
980
  const req = new TypeScriptProjectPrerequisite(this.projectRoot);
981
981
  await req.bootstrapAsync();
@@ -993,41 +993,39 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
993
993
  });
994
994
  }
995
995
  async startTypeScriptServices() {
996
- var ref;
996
+ var _this_instance;
997
997
  return (0, _startTypescriptTypeGeneration.startTypescriptTypeGenerationAsync)({
998
- server: (ref = this.instance) == null ? void 0 : ref.server,
998
+ server: (_this_instance = this.instance) == null ? void 0 : _this_instance.server,
999
999
  metro: this.metro,
1000
1000
  projectRoot: this.projectRoot
1001
1001
  });
1002
1002
  }
1003
1003
  getConfigModuleIds() {
1004
1004
  return [
1005
- "./metro.config.js",
1006
- "./metro.config.json",
1007
- "./rn-cli.config.js"
1005
+ './metro.config.js',
1006
+ './metro.config.json',
1007
+ './rn-cli.config.js'
1008
1008
  ];
1009
1009
  }
1010
- // API Routes
1011
- pendingRouteOperations = new Map();
1012
1010
  // Bundle the API Route with Metro and return the string contents to be evaluated in the server.
1013
- async bundleApiRoute(filePath, { platform }) {
1011
+ async bundleApiRoute(filePath, { platform }) {
1014
1012
  if (this.pendingRouteOperations.has(filePath)) {
1015
1013
  return this.pendingRouteOperations.get(filePath);
1016
1014
  }
1017
1015
  const bundleAsync = async ()=>{
1018
1016
  try {
1019
- debug("Bundle API route:", this.instanceMetroOptions.routerRoot, filePath);
1017
+ debug('Bundle API route:', this.instanceMetroOptions.routerRoot, filePath);
1020
1018
  return await this.ssrLoadModuleContents(filePath, {
1021
1019
  isExporting: this.instanceMetroOptions.isExporting,
1022
1020
  platform
1023
1021
  });
1024
1022
  } catch (error) {
1025
- var ref;
1026
- const appDir = ((ref = this.instanceMetroOptions) == null ? void 0 : ref.routerRoot) ? _path().default.join(this.projectRoot, this.instanceMetroOptions.routerRoot) : undefined;
1023
+ var _this_instanceMetroOptions;
1024
+ const appDir = ((_this_instanceMetroOptions = this.instanceMetroOptions) == null ? void 0 : _this_instanceMetroOptions.routerRoot) ? _path().default.join(this.projectRoot, this.instanceMetroOptions.routerRoot) : undefined;
1027
1025
  const relativePath = appDir ? _path().default.relative(appDir, filePath) : filePath;
1028
1026
  // Expected errors: invalid syntax, missing resolutions.
1029
1027
  // Wrap with command error for better error messages.
1030
- const err = new _errors.CommandError("API_ROUTE", (0, _chalk().default)`Failed to bundle API Route: {bold ${relativePath}}\n\n` + error.message);
1028
+ const err = new _errors.CommandError('API_ROUTE', (0, _chalk().default)`Failed to bundle API Route: {bold ${relativePath}}\n\n` + error.message);
1031
1029
  for(const key in error){
1032
1030
  // @ts-expect-error
1033
1031
  err[key] = error[key];
@@ -1041,7 +1039,7 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1041
1039
  this.pendingRouteOperations.set(filePath, route);
1042
1040
  return route;
1043
1041
  }
1044
- async ssrImportApiRoute(filePath, { platform }) {
1042
+ async ssrImportApiRoute(filePath, { platform }) {
1045
1043
  // TODO: Cache the evaluated function.
1046
1044
  try {
1047
1045
  const apiRoute = await this.bundleApiRoute(filePath, {
@@ -1063,11 +1061,11 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1063
1061
  return new Response(htmlServerError, {
1064
1062
  status: 500,
1065
1063
  headers: {
1066
- "Content-Type": "text/html"
1064
+ 'Content-Type': 'text/html'
1067
1065
  }
1068
1066
  });
1069
1067
  } catch (internalError) {
1070
- debug("Failed to generate Metro server error UI for API Route error:", internalError);
1068
+ debug('Failed to generate Metro server error UI for API Route error:', internalError);
1071
1069
  throw error;
1072
1070
  }
1073
1071
  } else {
@@ -1086,9 +1084,9 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1086
1084
  }
1087
1085
  // NOTE: This can only target a single platform at a time (web).
1088
1086
  // used for sending RSC CSS to the root client in development.
1089
- sendClientModule({ code , id }) {
1090
- this.broadcastMessage("sendDevCommand", {
1091
- name: "module-import",
1087
+ sendClientModule({ code, id }) {
1088
+ this.broadcastMessage('sendDevCommand', {
1089
+ name: 'module-import',
1092
1090
  data: {
1093
1091
  code,
1094
1092
  id
@@ -1101,15 +1099,14 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1101
1099
  // Send reload command to client from Fast Refresh code.
1102
1100
  if (!platforms.length) {
1103
1101
  // TODO: When is this called?
1104
- this.broadcastMessage("sendDevCommand", {
1105
- name: "rsc-reload"
1102
+ this.broadcastMessage('sendDevCommand', {
1103
+ name: 'rsc-reload'
1106
1104
  });
1107
1105
  } else {
1108
1106
  for (const platform of platforms){
1109
- var _obj, ref;
1110
- (ref = (_obj = this).onReloadRscEvent) == null ? void 0 : ref.call(_obj, platform);
1111
- this.broadcastMessage("sendDevCommand", {
1112
- name: "rsc-reload",
1107
+ this.onReloadRscEvent == null ? void 0 : this.onReloadRscEvent.call(this, platform);
1108
+ this.broadcastMessage('sendDevCommand', {
1109
+ name: 'rsc-reload',
1113
1110
  platform
1114
1111
  });
1115
1112
  }
@@ -1119,19 +1116,19 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1119
1116
  }
1120
1117
  // Direct Metro access
1121
1118
  // Emulates the Metro dev server .bundle endpoint without having to go through a server.
1122
- async _bundleDirectAsync(resolvedEntryFilePath, { transformOptions , resolverOptions , graphOptions , serializerOptions }) {
1123
- var ref;
1124
- (0, _assert().default)(this.metro, "Metro server must be running to bundle directly.");
1119
+ async _bundleDirectAsync(resolvedEntryFilePath, { transformOptions, resolverOptions, graphOptions, serializerOptions }) {
1120
+ var _this_metro;
1121
+ (0, _assert().default)(this.metro, 'Metro server must be running to bundle directly.');
1125
1122
  const config = this.metro._config;
1126
1123
  const buildNumber = this.metro.getNewBuildNumber();
1127
- const bundlePerfLogger = config.unstable_perfLoggerFactory == null ? void 0 : config.unstable_perfLoggerFactory("BUNDLING_REQUEST", {
1124
+ const bundlePerfLogger = config.unstable_perfLoggerFactory == null ? void 0 : config.unstable_perfLoggerFactory.call(config, 'BUNDLING_REQUEST', {
1128
1125
  key: buildNumber
1129
1126
  });
1130
1127
  const onProgress = (transformedFileCount, totalFileCount)=>{
1131
- var ref, ref1;
1132
- (ref = this.metro) == null ? void 0 : (ref1 = ref._reporter) == null ? void 0 : ref1.update == null ? void 0 : ref1.update({
1128
+ var _this_metro__reporter_update, _this_metro__reporter, _this_metro;
1129
+ (_this_metro = this.metro) == null ? void 0 : (_this_metro__reporter = _this_metro._reporter) == null ? void 0 : (_this_metro__reporter_update = _this_metro__reporter.update) == null ? void 0 : _this_metro__reporter_update.call(_this_metro__reporter, {
1133
1130
  buildID: getBuildID(buildNumber),
1134
- type: "bundle_transform_progressed",
1131
+ type: 'bundle_transform_progressed',
1135
1132
  transformedFileCount,
1136
1133
  totalFileCount
1137
1134
  });
@@ -1141,13 +1138,13 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1141
1138
  transformOptions,
1142
1139
  resolverOptions
1143
1140
  });
1144
- bundlePerfLogger == null ? void 0 : bundlePerfLogger.point("resolvingAndTransformingDependencies_start");
1141
+ bundlePerfLogger == null ? void 0 : bundlePerfLogger.point('resolvingAndTransformingDependencies_start');
1145
1142
  bundlePerfLogger == null ? void 0 : bundlePerfLogger.annotate({
1146
1143
  bool: {
1147
1144
  initial_build: revPromise == null
1148
1145
  }
1149
1146
  });
1150
- (ref = this.metro) == null ? void 0 : ref._reporter.update({
1147
+ (_this_metro = this.metro) == null ? void 0 : _this_metro._reporter.update({
1151
1148
  buildID: getBuildID(buildNumber),
1152
1149
  bundleDetails: {
1153
1150
  bundleType: transformOptions.type,
@@ -1159,15 +1156,15 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1159
1156
  customTransformOptions: transformOptions.customTransformOptions ?? {}
1160
1157
  },
1161
1158
  isPrefetch: false,
1162
- type: "bundle_build_started"
1159
+ type: 'bundle_build_started'
1163
1160
  });
1164
1161
  try {
1165
- var ref1;
1162
+ var _transformOptions_customTransformOptions;
1166
1163
  let delta;
1167
1164
  let revision;
1168
1165
  // TODO: Some bug in Metro/RSC causes this to break when changing imports in server components.
1169
1166
  // We should resolve the bug because it results in ~6x faster bundling to reuse the graph revision.
1170
- if (((ref1 = transformOptions.customTransformOptions) == null ? void 0 : ref1.environment) === "react-server") {
1167
+ if (((_transformOptions_customTransformOptions = transformOptions.customTransformOptions) == null ? void 0 : _transformOptions_customTransformOptions.environment) === 'react-server') {
1171
1168
  const props = await this.metro.getBundler().initializeGraph(// NOTE: Using absolute path instead of relative input path is a breaking change.
1172
1169
  // entryFile,
1173
1170
  resolvedEntryFilePath, transformOptions, resolverOptions, {
@@ -1178,30 +1175,30 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1178
1175
  delta = props.delta;
1179
1176
  revision = props.revision;
1180
1177
  } else {
1181
- const props1 = await (revPromise != null ? this.metro.getBundler().updateGraph(await revPromise, false) : this.metro.getBundler().initializeGraph(// NOTE: Using absolute path instead of relative input path is a breaking change.
1178
+ const props = await (revPromise != null ? this.metro.getBundler().updateGraph(await revPromise, false) : this.metro.getBundler().initializeGraph(// NOTE: Using absolute path instead of relative input path is a breaking change.
1182
1179
  // entryFile,
1183
1180
  resolvedEntryFilePath, transformOptions, resolverOptions, {
1184
1181
  onProgress,
1185
1182
  shallow: graphOptions.shallow,
1186
1183
  lazy: graphOptions.lazy
1187
1184
  }));
1188
- delta = props1.delta;
1189
- revision = props1.revision;
1185
+ delta = props.delta;
1186
+ revision = props.revision;
1190
1187
  }
1191
1188
  bundlePerfLogger == null ? void 0 : bundlePerfLogger.annotate({
1192
1189
  int: {
1193
1190
  graph_node_count: revision.graph.dependencies.size
1194
1191
  }
1195
1192
  });
1196
- bundlePerfLogger == null ? void 0 : bundlePerfLogger.point("resolvingAndTransformingDependencies_end");
1197
- bundlePerfLogger == null ? void 0 : bundlePerfLogger.point("serializingBundle_start");
1193
+ bundlePerfLogger == null ? void 0 : bundlePerfLogger.point('resolvingAndTransformingDependencies_end');
1194
+ bundlePerfLogger == null ? void 0 : bundlePerfLogger.point('serializingBundle_start');
1198
1195
  const shouldAddToIgnoreList = this.metro._shouldAddModuleToIgnoreList.bind(this.metro);
1199
1196
  const serializer = this.getMetroSerializer();
1200
1197
  const bundle = await serializer(// NOTE: Using absolute path instead of relative input path is a breaking change.
1201
1198
  // entryFile,
1202
1199
  resolvedEntryFilePath, revision.prepend, revision.graph, {
1203
1200
  asyncRequireModulePath: await this.metro._resolveRelativePath(config.transformer.asyncRequireModulePath, {
1204
- relativeTo: "project",
1201
+ relativeTo: 'project',
1205
1202
  resolverOptions,
1206
1203
  transformOptions
1207
1204
  }),
@@ -1225,45 +1222,45 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1225
1222
  });
1226
1223
  this.metro._reporter.update({
1227
1224
  buildID: getBuildID(buildNumber),
1228
- type: "bundle_build_done"
1225
+ type: 'bundle_build_done'
1229
1226
  });
1230
- bundlePerfLogger == null ? void 0 : bundlePerfLogger.point("serializingBundle_end");
1227
+ bundlePerfLogger == null ? void 0 : bundlePerfLogger.point('serializingBundle_end');
1231
1228
  let bundleCode = null;
1232
1229
  let bundleMap = null;
1233
1230
  // @ts-expect-error: If the output is multi-bundle...
1234
- if (serializerOptions.output === "static") {
1231
+ if (serializerOptions.output === 'static') {
1235
1232
  try {
1236
- var ref2, ref3;
1237
- const parsed = typeof bundle === "string" ? JSON.parse(bundle) : bundle;
1238
- (0, _assert().default)("artifacts" in parsed && Array.isArray(parsed.artifacts), "Expected serializer to return an object with key artifacts to contain an array of serial assets.");
1233
+ var _artifacts_filter_, _artifacts_filter;
1234
+ const parsed = typeof bundle === 'string' ? JSON.parse(bundle) : bundle;
1235
+ (0, _assert().default)('artifacts' in parsed && Array.isArray(parsed.artifacts), 'Expected serializer to return an object with key artifacts to contain an array of serial assets.');
1239
1236
  const artifacts = parsed.artifacts;
1240
1237
  const assets = parsed.assets;
1241
- const bundleCode1 = artifacts.filter((asset)=>asset.type === "js")[0];
1242
- const bundleMap1 = ((ref2 = artifacts.filter((asset)=>asset.type === "map")) == null ? void 0 : (ref3 = ref2[0]) == null ? void 0 : ref3.source) ?? "";
1238
+ const bundleCode = artifacts.filter((asset)=>asset.type === 'js')[0];
1239
+ const bundleMap = ((_artifacts_filter = artifacts.filter((asset)=>asset.type === 'map')) == null ? void 0 : (_artifacts_filter_ = _artifacts_filter[0]) == null ? void 0 : _artifacts_filter_.source) ?? '';
1243
1240
  return {
1244
1241
  numModifiedFiles: delta.reset ? delta.added.size + revision.prepend.length : delta.added.size + delta.modified.size + delta.deleted.size,
1245
1242
  lastModifiedDate: revision.date,
1246
1243
  nextRevId: revision.id,
1247
- bundle: bundleCode1.source,
1248
- map: bundleMap1,
1244
+ bundle: bundleCode.source,
1245
+ map: bundleMap,
1249
1246
  artifacts,
1250
1247
  assets
1251
1248
  };
1252
1249
  } catch (error) {
1253
- throw new Error("Serializer did not return expected format. The project copy of `expo/metro-config` may be out of date. Error: " + error.message);
1250
+ throw new Error('Serializer did not return expected format. The project copy of `expo/metro-config` may be out of date. Error: ' + error.message);
1254
1251
  }
1255
1252
  }
1256
- if (typeof bundle === "string") {
1253
+ if (typeof bundle === 'string') {
1257
1254
  bundleCode = bundle;
1258
1255
  // Create the source map in a second pass...
1259
- let { prepend , graph } = revision;
1256
+ let { prepend, graph } = revision;
1260
1257
  if (serializerOptions.modulesOnly) {
1261
1258
  prepend = [];
1262
1259
  }
1263
1260
  bundleMap = await sourceMapStringAsync([
1264
1261
  //
1265
1262
  ...prepend,
1266
- ...this.metro._getSortedModules(graph),
1263
+ ...this.metro._getSortedModules(graph)
1267
1264
  ], {
1268
1265
  excludeSource: serializerOptions.excludeSource,
1269
1266
  processModuleFilter: config.serializer.processModuleFilter,
@@ -1280,23 +1277,23 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1280
1277
  bundle: bundleCode,
1281
1278
  map: bundleMap
1282
1279
  };
1283
- } catch (error1) {
1280
+ } catch (error) {
1284
1281
  // Mark the error so we know how to format and return it later.
1285
1282
  // @ts-expect-error
1286
- error1[_metroErrorInterface.IS_METRO_BUNDLE_ERROR_SYMBOL] = true;
1283
+ error[_metroErrorInterface.IS_METRO_BUNDLE_ERROR_SYMBOL] = true;
1287
1284
  this.metro._reporter.update({
1288
1285
  buildID: getBuildID(buildNumber),
1289
- type: "bundle_build_failed"
1286
+ type: 'bundle_build_failed'
1290
1287
  });
1291
- throw error1;
1288
+ throw error;
1292
1289
  }
1293
1290
  }
1294
1291
  getMetroSerializer() {
1295
- var ref, ref1;
1296
- return ((ref = this.metro) == null ? void 0 : (ref1 = ref._config) == null ? void 0 : ref1.serializer.customSerializer) || ((entryPoint, preModules, graph, options)=>(0, _bundleToString().default)((0, _baseJSBundle().default)(entryPoint, preModules, graph, options)).code);
1292
+ var _this_metro__config, _this_metro;
1293
+ return ((_this_metro = this.metro) == null ? void 0 : (_this_metro__config = _this_metro._config) == null ? void 0 : _this_metro__config.serializer.customSerializer) || ((entryPoint, preModules, graph, options)=>(0, _bundleToString().default)((0, _baseJSBundle().default)(entryPoint, preModules, graph, options)).code);
1297
1294
  }
1298
- getMetroRevision(resolvedEntryFilePath, { graphOptions , transformOptions , resolverOptions }) {
1299
- (0, _assert().default)(this.metro, "Metro server must be running to bundle directly.");
1295
+ getMetroRevision(resolvedEntryFilePath, { graphOptions, transformOptions, resolverOptions }) {
1296
+ (0, _assert().default)(this.metro, 'Metro server must be running to bundle directly.');
1300
1297
  const config = this.metro._config;
1301
1298
  const graphId = (0, _getGraphId().default)(resolvedEntryFilePath, transformOptions, {
1302
1299
  unstable_allowRequireContext: config.transformer.unstable_allowRequireContext,
@@ -1306,14 +1303,30 @@ class MetroBundlerDevServer extends _bundlerDevServer.BundlerDevServer {
1306
1303
  });
1307
1304
  return this.metro.getBundler().getRevisionByGraphId(graphId);
1308
1305
  }
1309
- async resolveRelativePathAsync(moduleId, { resolverOptions , transformOptions }) {
1310
- (0, _assert().default)(this.metro, "cannot invoke resolveRelativePathAsync without metro instance");
1306
+ async resolveRelativePathAsync(moduleId, { resolverOptions, transformOptions }) {
1307
+ (0, _assert().default)(this.metro, 'cannot invoke resolveRelativePathAsync without metro instance');
1311
1308
  return await this.metro._resolveRelativePath((0, _metroOptions.convertPathToModuleSpecifier)(moduleId), {
1312
- relativeTo: "server",
1309
+ relativeTo: 'server',
1313
1310
  resolverOptions,
1314
1311
  transformOptions
1315
1312
  });
1316
1313
  }
1314
+ constructor(...args){
1315
+ super(...args), this.metro = null, this.hmrServer = null, this.ssrHmrClients = new Map(), // Set when the server is started.
1316
+ this.instanceMetroOptions = {}, this.ssrLoadModule = async (filePath, specificOptions = {}, extras = {})=>{
1317
+ const res = await this.ssrLoadModuleContents(filePath, specificOptions);
1318
+ if (// TODO: hot should be a callback function for invalidating the related SSR module.
1319
+ extras.hot && this.instanceMetroOptions.isExporting !== true) {
1320
+ // Register SSR HMR
1321
+ const serverRoot = (0, _paths().getMetroServerRoot)(this.projectRoot);
1322
+ const relativePath = _path().default.relative(serverRoot, res.filename);
1323
+ const url = new URL(relativePath, this.getDevServerUrlOrAssert());
1324
+ this.setupHmr(url);
1325
+ }
1326
+ return (0, _getStaticRenderFunctions.evalMetroAndWrapFunctions)(this.projectRoot, res.src, res.filename, specificOptions.isExporting ?? this.instanceMetroOptions.isExporting);
1327
+ }, this.rscRenderer = null, this.onReloadRscEvent = null, // API Routes
1328
+ this.pendingRouteOperations = new Map();
1329
+ }
1317
1330
  }
1318
1331
  function getBuildID(buildNumber) {
1319
1332
  return buildNumber.toString(36);
@@ -1322,7 +1335,7 @@ function wrapBundle(str) {
1322
1335
  // Skip the metro runtime so debugging is a bit easier.
1323
1336
  // Replace the __r() call with an export statement.
1324
1337
  // Use gm to apply to the last require line. This is needed when the bundle has side-effects.
1325
- return str.replace(/^(__r\(.*\);)$/gm, "module.exports = $1");
1338
+ return str.replace(/^(__r\(.*\);)$/gm, 'module.exports = $1');
1326
1339
  }
1327
1340
  async function sourceMapStringAsync(modules, options) {
1328
1341
  return (await (0, _sourceMapGenerator().sourceMapGeneratorNonBlocking)(modules, options)).toString(undefined, {