@depup/expo__cli 55.0.22-depup.1 → 57.0.9-depup.0

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 (600) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -18
  3. package/build/bin/cli +4 -4
  4. package/build/bin/cli.map +1 -1
  5. package/build/src/api/endpoint.js +4 -4
  6. package/build/src/api/endpoint.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +3 -3
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/graphql/client.js +26 -14
  10. package/build/src/api/graphql/client.js.map +1 -1
  11. package/build/src/api/graphql/mutations/TunnelMutation.js +31 -0
  12. package/build/src/api/graphql/mutations/TunnelMutation.js.map +1 -0
  13. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  14. package/build/src/api/rest/cache/ResponseCache.js +5 -5
  15. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  16. package/build/src/api/rest/client.js +35 -20
  17. package/build/src/api/rest/client.js.map +1 -1
  18. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  19. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  20. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  21. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  22. package/build/src/api/updateDevelopmentSession.js +6 -5
  23. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  24. package/build/src/api/user/UserSettings.js +28 -15
  25. package/build/src/api/user/UserSettings.js.map +1 -1
  26. package/build/src/api/user/actions.js +10 -3
  27. package/build/src/api/user/actions.js.map +1 -1
  28. package/build/src/api/user/expoSsoLauncher.js +76 -24
  29. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  30. package/build/src/api/user/otp.js +4 -4
  31. package/build/src/api/user/otp.js.map +1 -1
  32. package/build/src/api/user/user.js +19 -7
  33. package/build/src/api/user/user.js.map +1 -1
  34. package/build/src/config/configAsync.js +3 -3
  35. package/build/src/config/configAsync.js.map +1 -1
  36. package/build/src/config/index.js.map +1 -1
  37. package/build/src/customize/customizeAsync.js.map +1 -1
  38. package/build/src/customize/generate.js +7 -4
  39. package/build/src/customize/generate.js.map +1 -1
  40. package/build/src/customize/index.js.map +1 -1
  41. package/build/src/customize/templates.js +4 -6
  42. package/build/src/customize/templates.js.map +1 -1
  43. package/build/src/customize/typescript.js.map +1 -1
  44. package/build/src/events/index.js +19 -15
  45. package/build/src/events/index.js.map +1 -1
  46. package/build/src/events/stream.js +94 -24
  47. package/build/src/events/stream.js.map +1 -1
  48. package/build/src/expoUpdatesExports.js +50 -7
  49. package/build/src/expoUpdatesExports.js.map +1 -1
  50. package/build/src/export/createMetadataJson.js +2 -1
  51. package/build/src/export/createMetadataJson.js.map +1 -1
  52. package/build/src/export/embed/exportEmbedAsync.js +58 -24
  53. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  54. package/build/src/export/embed/exportServer.js +1 -1
  55. package/build/src/export/embed/exportServer.js.map +1 -1
  56. package/build/src/export/embed/index.js +1 -1
  57. package/build/src/export/embed/index.js.map +1 -1
  58. package/build/src/export/embed/resolveOptions.js +7 -6
  59. package/build/src/export/embed/resolveOptions.js.map +1 -1
  60. package/build/src/export/embed/xcodeCompilerLogger.js +7 -7
  61. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  62. package/build/src/export/exportApp.js +40 -30
  63. package/build/src/export/exportApp.js.map +1 -1
  64. package/build/src/export/exportAssets.js +5 -5
  65. package/build/src/export/exportAssets.js.map +1 -1
  66. package/build/src/export/exportAsync.js.map +1 -1
  67. package/build/src/export/exportDomComponents.js +16 -9
  68. package/build/src/export/exportDomComponents.js.map +1 -1
  69. package/build/src/export/exportHermes.js +23 -13
  70. package/build/src/export/exportHermes.js.map +1 -1
  71. package/build/src/export/exportStaticAsync.js +30 -21
  72. package/build/src/export/exportStaticAsync.js.map +1 -1
  73. package/build/src/export/favicon.js +26 -34
  74. package/build/src/export/favicon.js.map +1 -1
  75. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  76. package/build/src/export/getResolvedLocales.js.map +1 -1
  77. package/build/src/export/html.js +3 -3
  78. package/build/src/export/html.js.map +1 -1
  79. package/build/src/export/index.js +2 -0
  80. package/build/src/export/index.js.map +1 -1
  81. package/build/src/export/metroAssetLocalPath.js +4 -4
  82. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  83. package/build/src/export/persistMetroAssets.js +6 -6
  84. package/build/src/export/persistMetroAssets.js.map +1 -1
  85. package/build/src/export/publicFolder.js +16 -4
  86. package/build/src/export/publicFolder.js.map +1 -1
  87. package/build/src/export/resolveOptions.js +12 -13
  88. package/build/src/export/resolveOptions.js.map +1 -1
  89. package/build/src/export/saveAssets.js +3 -3
  90. package/build/src/export/saveAssets.js.map +1 -1
  91. package/build/src/export/static.js +6 -0
  92. package/build/src/export/static.js.map +1 -0
  93. package/build/src/export/web/exportWebAsync.js.map +1 -1
  94. package/build/src/export/web/index.js.map +1 -1
  95. package/build/src/export/writeContents.js.map +1 -1
  96. package/build/src/install/checkPackages.js +1 -28
  97. package/build/src/install/checkPackages.js.map +1 -1
  98. package/build/src/install/fixPackages.js.map +1 -1
  99. package/build/src/install/index.js.map +1 -1
  100. package/build/src/install/installAsync.js +3 -3
  101. package/build/src/install/installAsync.js.map +1 -1
  102. package/build/src/install/installExpoPackage.js.map +1 -1
  103. package/build/src/install/resolveOptions.js.map +1 -1
  104. package/build/src/install/utils/autoAddConfigPlugins.js +3 -3
  105. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  106. package/build/src/install/utils/checkPackagesCompatibility.js +32 -16
  107. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  108. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  109. package/build/src/log.js +32 -14
  110. package/build/src/log.js.map +1 -1
  111. package/build/src/login/index.js +25 -5
  112. package/build/src/login/index.js.map +1 -1
  113. package/build/src/logout/index.js.map +1 -1
  114. package/build/src/prebuild/clearNativeFolder.js +49 -14
  115. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  116. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  117. package/build/src/prebuild/copyTemplateFiles.js +3 -3
  118. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  119. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  120. package/build/src/prebuild/index.js +3 -2
  121. package/build/src/prebuild/index.js.map +1 -1
  122. package/build/src/prebuild/prebuildAsync.js +31 -6
  123. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  124. package/build/src/prebuild/renameTemplateAppName.js +8 -5
  125. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  126. package/build/src/prebuild/resolveOptions.js +7 -7
  127. package/build/src/prebuild/resolveOptions.js.map +1 -1
  128. package/build/src/prebuild/resolveTemplate.js +10 -5
  129. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  130. package/build/src/prebuild/updateFromTemplate.js +3 -3
  131. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  132. package/build/src/prebuild/updatePackageJson.js +7 -7
  133. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  134. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  135. package/build/src/register/index.js.map +1 -1
  136. package/build/src/run/android/index.js.map +1 -1
  137. package/build/src/run/android/resolveGradlePropsAsync.js +3 -4
  138. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  139. package/build/src/run/android/resolveInstallApkName.js +48 -1
  140. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  141. package/build/src/run/android/resolveLaunchProps.js +4 -1
  142. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  143. package/build/src/run/android/resolveOptions.js.map +1 -1
  144. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  145. package/build/src/run/ensureNativeProject.js.map +1 -1
  146. package/build/src/run/hints.js +4 -4
  147. package/build/src/run/hints.js.map +1 -1
  148. package/build/src/run/index.js.map +1 -1
  149. package/build/src/run/ios/XcodeBuild.js +163 -23
  150. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  151. package/build/src/run/ios/appleDevice/AppleDevice.js +6 -5
  152. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  153. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  154. package/build/src/run/ios/appleDevice/client/AFCClient.js +10 -16
  155. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  156. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +1 -1
  157. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  158. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +2 -1
  159. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  160. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +1 -1
  161. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  162. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  163. package/build/src/run/ios/appleDevice/client/ServiceClient.js +3 -3
  164. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  165. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  166. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +3 -3
  167. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  168. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +16 -13
  169. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  170. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +6 -6
  171. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  172. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +5 -5
  173. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  174. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +7 -7
  175. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  176. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +5 -5
  177. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  178. package/build/src/run/ios/codeSigning/Security.js +8 -8
  179. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  180. package/build/src/run/ios/codeSigning/configureCodeSigning.js +5 -3
  181. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  182. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +7 -5
  183. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  184. package/build/src/run/ios/codeSigning/settings.js +3 -3
  185. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  186. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +4 -4
  187. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  188. package/build/src/run/ios/index.js +8 -1
  189. package/build/src/run/ios/index.js.map +1 -1
  190. package/build/src/run/ios/launchApp.js +3 -3
  191. package/build/src/run/ios/launchApp.js.map +1 -1
  192. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  193. package/build/src/run/ios/options/promptDevice.js +3 -3
  194. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  195. package/build/src/run/ios/options/resolveDevice.js +8 -3
  196. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  197. package/build/src/run/ios/options/resolveNativeScheme.js +4 -4
  198. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  199. package/build/src/run/ios/options/resolveOptions.js +9 -4
  200. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  201. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  202. package/build/src/run/ios/runIosAsync.js +39 -0
  203. package/build/src/run/ios/runIosAsync.js.map +1 -1
  204. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  205. package/build/src/run/startBundler.js +4 -0
  206. package/build/src/run/startBundler.js.map +1 -1
  207. package/build/src/serve/index.js +4 -1
  208. package/build/src/serve/index.js.map +1 -1
  209. package/build/src/serve/serveAsync.js +23 -11
  210. package/build/src/serve/serveAsync.js.map +1 -1
  211. package/build/src/serve/static.js +69 -0
  212. package/build/src/serve/static.js.map +1 -0
  213. package/build/src/start/checkDependenciesOnStart.js +131 -0
  214. package/build/src/start/checkDependenciesOnStart.js.map +1 -0
  215. package/build/src/start/detectDevClient.js +3 -3
  216. package/build/src/start/detectDevClient.js.map +1 -1
  217. package/build/src/start/doctor/Prerequisite.js +4 -4
  218. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  219. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +53 -91
  220. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  221. package/build/src/start/doctor/apple/XcodePrerequisite.js +3 -3
  222. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  223. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +3 -3
  224. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  225. package/build/src/start/doctor/dependencies/getMissingPackages.js +5 -5
  226. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  227. package/build/src/start/doctor/dependencies/getVersionedPackages.js +5 -5
  228. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  229. package/build/src/start/doctor/dependencies/reactNativeTv.js +149 -0
  230. package/build/src/start/doctor/dependencies/reactNativeTv.js.map +1 -0
  231. package/build/src/start/doctor/dependencies/resolvePackages.js +4 -4
  232. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  233. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +33 -8
  234. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  235. package/build/src/start/doctor/ngrok/ExternalModule.js +14 -9
  236. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  237. package/build/src/start/doctor/ngrok/NgrokResolver.js +3 -3
  238. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  239. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  240. package/build/src/start/doctor/typescript/updateTSConfig.js +3 -3
  241. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  242. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +5 -12
  243. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  244. package/build/src/start/index.js +2 -0
  245. package/build/src/start/index.js.map +1 -1
  246. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  247. package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -1
  248. package/build/src/start/interface/commandsTable.js +6 -6
  249. package/build/src/start/interface/commandsTable.js.map +1 -1
  250. package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -1
  251. package/build/src/start/interface/interactiveActions.js +49 -6
  252. package/build/src/start/interface/interactiveActions.js.map +1 -1
  253. package/build/src/start/interface/startInterface.js +13 -4
  254. package/build/src/start/interface/startInterface.js.map +1 -1
  255. package/build/src/start/platforms/AppIdResolver.js +4 -0
  256. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  257. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  258. package/build/src/start/platforms/ExpoGoInstaller.js +13 -4
  259. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  260. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  261. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  262. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  263. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  264. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  265. package/build/src/start/platforms/android/adb.js +36 -34
  266. package/build/src/start/platforms/android/adb.js.map +1 -1
  267. package/build/src/start/platforms/android/adbReverse.js +4 -4
  268. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  269. package/build/src/start/platforms/android/emulator.js +5 -5
  270. package/build/src/start/platforms/android/emulator.js.map +1 -1
  271. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  272. package/build/src/start/platforms/android/gradle.js +5 -5
  273. package/build/src/start/platforms/android/gradle.js.map +1 -1
  274. package/build/src/start/platforms/android/promptAndroidDevice.js +3 -3
  275. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  276. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  277. package/build/src/start/platforms/ios/AppleDeviceManager.js +20 -6
  278. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  279. package/build/src/start/platforms/ios/ApplePlatformManager.js +11 -0
  280. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  281. package/build/src/start/platforms/ios/devicectl.js +7 -7
  282. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  283. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +26 -11
  284. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  285. package/build/src/start/platforms/ios/getBestSimulator.js +5 -5
  286. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  287. package/build/src/start/platforms/ios/promptAppleDevice.js +5 -4
  288. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  289. package/build/src/start/platforms/ios/simctl.js +25 -19
  290. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  291. package/build/src/start/platforms/ios/simctlLogging.js +3 -3
  292. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  293. package/build/src/start/platforms/ios/xcrun.js +3 -3
  294. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  295. package/build/src/start/project/devices.js +6 -6
  296. package/build/src/start/project/devices.js.map +1 -1
  297. package/build/src/start/project/dotExpo.js +4 -3
  298. package/build/src/start/project/dotExpo.js.map +1 -1
  299. package/build/src/start/resolveOptions.js +7 -7
  300. package/build/src/start/resolveOptions.js.map +1 -1
  301. package/build/src/start/server/AsyncNgrok.js +1 -1
  302. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  303. package/build/src/start/server/AsyncWsTunnel.js +120 -35
  304. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  305. package/build/src/start/server/Bonjour.js +8 -3
  306. package/build/src/start/server/Bonjour.js.map +1 -1
  307. package/build/src/start/server/BundlerDevServer.js +23 -9
  308. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  309. package/build/src/start/server/DevServerManager.js.map +1 -1
  310. package/build/src/start/server/DevToolsPlugin.js +63 -3
  311. package/build/src/start/server/DevToolsPlugin.js.map +1 -1
  312. package/build/src/start/server/DevToolsPlugin.schema.js +8 -3
  313. package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -1
  314. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +58 -23
  315. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -1
  316. package/build/src/start/server/DevToolsPluginCliExtensionResults.js +29 -0
  317. package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -1
  318. package/build/src/start/server/DevToolsPluginManager.js +20 -6
  319. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  320. package/build/src/start/server/DevToolsPluginServerHelpers.js +83 -0
  321. package/build/src/start/server/DevToolsPluginServerHelpers.js.map +1 -0
  322. package/build/src/start/server/DevelopmentSession.js +41 -24
  323. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  324. package/build/src/start/server/MCP.js +10 -3
  325. package/build/src/start/server/MCP.js.map +1 -1
  326. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +15 -5
  327. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -1
  328. package/build/src/start/server/UrlCreator.js +14 -1
  329. package/build/src/start/server/UrlCreator.js.map +1 -1
  330. package/build/src/start/server/createMCPDevToolsExtensionSchema.js +18 -4
  331. package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -1
  332. package/build/src/start/server/getStaticRenderFunctions.js +13 -24
  333. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  334. package/build/src/start/server/metro/MetroBundlerDevServer.js +245 -114
  335. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  336. package/build/src/start/server/metro/MetroTerminalReporter.js +67 -16
  337. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  338. package/build/src/start/server/metro/TerminalReporter.js +22 -4
  339. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  340. package/build/src/start/server/metro/createExpoAutolinkingResolver.js +25 -12
  341. package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -1
  342. package/build/src/start/server/metro/createExpoFallbackResolver.js +39 -0
  343. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
  344. package/build/src/start/server/metro/createFileMap-fork.js +196 -0
  345. package/build/src/start/server/metro/createFileMap-fork.js.map +1 -0
  346. package/build/src/start/server/metro/createServerComponentsMiddleware.js +22 -22
  347. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  348. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  349. package/build/src/start/server/metro/createTypescriptResolver.js +410 -0
  350. package/build/src/start/server/metro/createTypescriptResolver.js.map +1 -0
  351. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  352. package/build/src/start/server/metro/debugging/attachAtlas.js +3 -3
  353. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  354. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +6 -5
  355. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  356. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  357. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +20 -4
  358. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  359. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  360. package/build/src/start/server/metro/dev-server/compression.js.map +1 -1
  361. package/build/src/start/server/metro/dev-server/createMessageSocket.js +13 -2
  362. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  363. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +9 -2
  364. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  365. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +3 -3
  366. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  367. package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -1
  368. package/build/src/start/server/metro/externals.js +4 -4
  369. package/build/src/start/server/metro/externals.js.map +1 -1
  370. package/build/src/start/server/metro/fetchRouterManifest.js +3 -3
  371. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  372. package/build/src/start/server/metro/getCssModulesFromBundler.js +3 -3
  373. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  374. package/build/src/start/server/metro/instantiateMetro.js +141 -57
  375. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  376. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  377. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +4 -4
  378. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  379. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +3 -3
  380. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  381. package/build/src/start/server/metro/metroErrorInterface.js +16 -13
  382. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  383. package/build/src/start/server/metro/metroErrors.js +3 -3
  384. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  385. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +48 -16
  386. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  387. package/build/src/start/server/metro/resolveLoader.js +3 -3
  388. package/build/src/start/server/metro/resolveLoader.js.map +1 -1
  389. package/build/src/start/server/metro/router.js +23 -14
  390. package/build/src/start/server/metro/router.js.map +1 -1
  391. package/build/src/start/server/metro/runServer-fork.js +13 -10
  392. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  393. package/build/src/start/server/metro/serializeHtml.js +29 -13
  394. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  395. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +36 -34
  396. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  397. package/build/src/start/server/metro/withMetroErrorReportingResolver.js +53 -30
  398. package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -1
  399. package/build/src/start/server/metro/withMetroMultiPlatform.js +187 -126
  400. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  401. package/build/src/start/server/metro/withMetroResolvers.js +4 -4
  402. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  403. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  404. package/build/src/start/server/middleware/CorsMiddleware.js +3 -3
  405. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  406. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  407. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +60 -9
  408. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  409. package/build/src/start/server/middleware/DomComponentsMiddleware.js +30 -17
  410. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  411. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +6 -4
  412. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  413. package/build/src/start/server/middleware/ExpoMiddleware.js +3 -3
  414. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  415. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  416. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  417. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +13 -8
  418. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  419. package/build/src/start/server/middleware/ManifestMiddleware.js +19 -47
  420. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  421. package/build/src/start/server/middleware/OpenMiddleware.js +150 -0
  422. package/build/src/start/server/middleware/OpenMiddleware.js.map +1 -0
  423. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +13 -4
  424. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  425. package/build/src/start/server/middleware/ServeStaticMiddleware.js +2 -9
  426. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  427. package/build/src/start/server/middleware/domPolyfills.js +60 -0
  428. package/build/src/start/server/middleware/domPolyfills.js.map +1 -0
  429. package/build/src/start/server/middleware/inspector/JsInspector.js +6 -31
  430. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  431. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +14 -24
  432. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  433. package/build/src/start/server/middleware/inspector/middlwareMutations.js +3 -3
  434. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  435. package/build/src/start/server/middleware/metroOptions.js +15 -14
  436. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  437. package/build/src/start/server/middleware/mutations.js +3 -3
  438. package/build/src/start/server/middleware/mutations.js.map +1 -1
  439. package/build/src/start/server/middleware/openHandlers.js +157 -0
  440. package/build/src/start/server/middleware/openHandlers.js.map +1 -0
  441. package/build/src/start/server/middleware/resolveAssets.js +4 -4
  442. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  443. package/build/src/start/server/middleware/resolvePlatform.js +9 -7
  444. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  445. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  446. package/build/src/start/server/openPlatforms.js.map +1 -1
  447. package/build/src/start/server/platformBundlers.js +3 -1
  448. package/build/src/start/server/platformBundlers.js.map +1 -1
  449. package/build/src/start/server/serverLogLikeMetro.js +13 -36
  450. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  451. package/build/src/start/server/type-generation/expo-env.js +3 -3
  452. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  453. package/build/src/start/server/type-generation/routes.js +14 -55
  454. package/build/src/start/server/type-generation/routes.js.map +1 -1
  455. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  456. package/build/src/start/server/type-generation/tsconfig.js +5 -5
  457. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  458. package/build/src/start/server/webTemplate.js +12 -10
  459. package/build/src/start/server/webTemplate.js.map +1 -1
  460. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +3 -3
  461. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  462. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  463. package/build/src/start/server/webpack/resolveFromProject.js +4 -4
  464. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  465. package/build/src/start/server/webpack/tls.js +3 -3
  466. package/build/src/start/server/webpack/tls.js.map +1 -1
  467. package/build/src/start/startAsync.js +21 -11
  468. package/build/src/start/startAsync.js.map +1 -1
  469. package/build/src/types.d.ts +2 -0
  470. package/build/src/utils/FileNotifier.js +1 -1
  471. package/build/src/utils/FileNotifier.js.map +1 -1
  472. package/build/src/utils/args.js +5 -5
  473. package/build/src/utils/args.js.map +1 -1
  474. package/build/src/utils/array.js +8 -8
  475. package/build/src/utils/array.js.map +1 -1
  476. package/build/src/utils/build-cache-providers/helpers.js +4 -4
  477. package/build/src/utils/build-cache-providers/helpers.js.map +1 -1
  478. package/build/src/utils/build-cache-providers/index.js +5 -5
  479. package/build/src/utils/build-cache-providers/index.js.map +1 -1
  480. package/build/src/utils/cocoapods.js +5 -5
  481. package/build/src/utils/cocoapods.js.map +1 -1
  482. package/build/src/utils/codesigning.js +12 -6
  483. package/build/src/utils/codesigning.js.map +1 -1
  484. package/build/src/utils/composeMetroIgnorePatterns.js +69 -0
  485. package/build/src/utils/composeMetroIgnorePatterns.js.map +1 -0
  486. package/build/src/utils/createTempPath.js +3 -3
  487. package/build/src/utils/createTempPath.js.map +1 -1
  488. package/build/src/utils/delay.js +4 -4
  489. package/build/src/utils/delay.js.map +1 -1
  490. package/build/src/utils/dir.js +21 -11
  491. package/build/src/utils/dir.js.map +1 -1
  492. package/build/src/utils/downloadAppAsync.js.map +1 -1
  493. package/build/src/utils/downloadExpoGoAsync.js +4 -4
  494. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  495. package/build/src/utils/editor.js +4 -4
  496. package/build/src/utils/editor.js.map +1 -1
  497. package/build/src/utils/env.js +39 -13
  498. package/build/src/utils/env.js.map +1 -1
  499. package/build/src/utils/errors.js +6 -6
  500. package/build/src/utils/errors.js.map +1 -1
  501. package/build/src/utils/exit.js +15 -19
  502. package/build/src/utils/exit.js.map +1 -1
  503. package/build/src/utils/expoUpdatesCli.js +5 -5
  504. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  505. package/build/src/utils/fetch.js +4 -4
  506. package/build/src/utils/fetch.js.map +1 -1
  507. package/build/src/utils/filePath.js +3 -29
  508. package/build/src/utils/filePath.js.map +1 -1
  509. package/build/src/utils/findUp.js +3 -3
  510. package/build/src/utils/findUp.js.map +1 -1
  511. package/build/src/utils/fn.js +3 -3
  512. package/build/src/utils/fn.js.map +1 -1
  513. package/build/src/utils/freeport.js +3 -3
  514. package/build/src/utils/freeport.js.map +1 -1
  515. package/build/src/utils/getOrPromptApplicationId.js +3 -5
  516. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  517. package/build/src/utils/getRunningProcess.js +5 -5
  518. package/build/src/utils/getRunningProcess.js.map +1 -1
  519. package/build/src/utils/git.js +3 -3
  520. package/build/src/utils/git.js.map +1 -1
  521. package/build/src/utils/glob.js +3 -3
  522. package/build/src/utils/glob.js.map +1 -1
  523. package/build/src/utils/ip.js +4 -4
  524. package/build/src/utils/ip.js.map +1 -1
  525. package/build/src/utils/link.js +3 -3
  526. package/build/src/utils/link.js.map +1 -1
  527. package/build/src/utils/mergeGitIgnorePaths.js +10 -10
  528. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  529. package/build/src/utils/modifyConfigAsync.js +3 -3
  530. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  531. package/build/src/utils/net.js +23 -4
  532. package/build/src/utils/net.js.map +1 -1
  533. package/build/src/utils/nodeEnv.js +6 -6
  534. package/build/src/utils/nodeEnv.js.map +1 -1
  535. package/build/src/utils/npm.js +10 -9
  536. package/build/src/utils/npm.js.map +1 -1
  537. package/build/src/utils/obj.js +4 -4
  538. package/build/src/utils/obj.js.map +1 -1
  539. package/build/src/utils/open.js +240 -11
  540. package/build/src/utils/open.js.map +1 -1
  541. package/build/src/utils/ora.js +4 -4
  542. package/build/src/utils/ora.js.map +1 -1
  543. package/build/src/utils/plist.js +5 -4
  544. package/build/src/utils/plist.js.map +1 -1
  545. package/build/src/utils/port.js +12 -5
  546. package/build/src/utils/port.js.map +1 -1
  547. package/build/src/utils/progress.js +4 -4
  548. package/build/src/utils/progress.js.map +1 -1
  549. package/build/src/utils/prompts.js +11 -11
  550. package/build/src/utils/prompts.js.map +1 -1
  551. package/build/src/utils/qr.js +5 -4
  552. package/build/src/utils/qr.js.map +1 -1
  553. package/build/src/utils/resolveArgs.js +10 -9
  554. package/build/src/utils/resolveArgs.js.map +1 -1
  555. package/build/src/utils/scheme.js +4 -4
  556. package/build/src/utils/scheme.js.map +1 -1
  557. package/build/src/utils/strings.js.map +1 -1
  558. package/build/src/utils/tar.js +8 -7
  559. package/build/src/utils/tar.js.map +1 -1
  560. package/build/src/utils/telemetry/Telemetry.js +5 -0
  561. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  562. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  563. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  564. package/build/src/utils/telemetry/clients/flushFetchDetached.js +5 -1
  565. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  566. package/build/src/utils/telemetry/index.js +4 -4
  567. package/build/src/utils/telemetry/index.js.map +1 -1
  568. package/build/src/utils/telemetry/utils/agent.js +42 -0
  569. package/build/src/utils/telemetry/utils/agent.js.map +1 -0
  570. package/build/src/utils/telemetry/utils/constants.js +3 -3
  571. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  572. package/build/src/utils/telemetry/utils/context.js +3 -2
  573. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  574. package/build/src/utils/url.js +5 -17
  575. package/build/src/utils/url.js.map +1 -1
  576. package/build/src/utils/validateApplicationId.js +12 -12
  577. package/build/src/utils/validateApplicationId.js.map +1 -1
  578. package/build/src/utils/variadic.js +4 -4
  579. package/build/src/utils/variadic.js.map +1 -1
  580. package/build/src/whoami/index.js.map +1 -1
  581. package/changes.json +16 -36
  582. package/main.js +3 -0
  583. package/package.json +86 -90
  584. package/static/loading-page/index.html +45 -3
  585. package/static/template/+html.tsx +14 -5
  586. package/add-module.js +0 -8
  587. package/build/src/start/server/middleware/inspector/CdpClient.js +0 -81
  588. package/build/src/start/server/middleware/inspector/CdpClient.js.map +0 -1
  589. package/build/src/utils/resolveGlobal.js +0 -195
  590. package/build/src/utils/resolveGlobal.js.map +0 -1
  591. package/build/src/utils/resolveWatchFolders.js +0 -67
  592. package/build/src/utils/resolveWatchFolders.js.map +0 -1
  593. package/build/src/utils/tsconfig/evaluateTsConfig.js +0 -87
  594. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +0 -1
  595. package/build/src/utils/tsconfig/loadTsConfigPaths.js +0 -84
  596. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +0 -1
  597. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +0 -94
  598. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +0 -1
  599. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +0 -62
  600. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +0 -1
@@ -10,23 +10,37 @@ Object.defineProperty(exports, "__esModule", {
10
10
  function _export(target, all) {
11
11
  for(var name in all)Object.defineProperty(target, name, {
12
12
  enumerable: true,
13
- get: all[name]
13
+ get: Object.getOwnPropertyDescriptor(all, name).get
14
14
  });
15
15
  }
16
16
  _export(exports, {
17
- getNodejsExtensions: function() {
17
+ get getNodejsExtensions () {
18
18
  return getNodejsExtensions;
19
19
  },
20
- shouldAliasModule: function() {
20
+ get shouldAliasModule () {
21
21
  return shouldAliasModule;
22
22
  },
23
- withExtendedResolver: function() {
23
+ get withExtendedResolver () {
24
24
  return withExtendedResolver;
25
25
  },
26
- withMetroMultiPlatformAsync: function() {
26
+ get withMetroMultiPlatformAsync () {
27
27
  return withMetroMultiPlatformAsync;
28
28
  }
29
29
  });
30
+ function _config() {
31
+ const data = require("@expo/config");
32
+ _config = function() {
33
+ return data;
34
+ };
35
+ return data;
36
+ }
37
+ function _paths() {
38
+ const data = require("@expo/config/paths");
39
+ _paths = function() {
40
+ return data;
41
+ };
42
+ return data;
43
+ }
30
44
  function _metroresolver() {
31
45
  const data = require("@expo/metro/metro-resolver");
32
46
  _metroresolver = function() {
@@ -34,6 +48,13 @@ function _metroresolver() {
34
48
  };
35
49
  return data;
36
50
  }
51
+ function _requireutils() {
52
+ const data = require("@expo/require-utils");
53
+ _requireutils = function() {
54
+ return data;
55
+ };
56
+ return data;
57
+ }
37
58
  function _fs() {
38
59
  const data = /*#__PURE__*/ _interop_require_default(require("fs"));
39
60
  _fs = function() {
@@ -48,13 +69,6 @@ function _path() {
48
69
  };
49
70
  return data;
50
71
  }
51
- function _resolvefrom() {
52
- const data = /*#__PURE__*/ _interop_require_default(require("resolve-from"));
53
- _resolvefrom = function() {
54
- return data;
55
- };
56
- return data;
57
- }
58
72
  const _createExpoAutolinkingResolver = require("./createExpoAutolinkingResolver");
59
73
  const _createExpoFallbackResolver = require("./createExpoFallbackResolver");
60
74
  const _FailedToResolveNativeOnlyModuleError = require("./errors/FailedToResolveNativeOnlyModuleError");
@@ -65,24 +79,77 @@ const _withMetroErrorReportingResolver = require("./withMetroErrorReportingResol
65
79
  const _withMetroResolvers = require("./withMetroResolvers");
66
80
  const _withMetroSupervisingTransformWorker = require("./withMetroSupervisingTransformWorker");
67
81
  const _log = require("../../../log");
68
- const _FileNotifier = require("../../../utils/FileNotifier");
69
82
  const _env = require("../../../utils/env");
70
- const _errors = require("../../../utils/errors");
71
- const _exit = require("../../../utils/exit");
72
- const _resolveWatchFolders = require("../../../utils/resolveWatchFolders");
73
- const _loadTsConfigPaths = require("../../../utils/tsconfig/loadTsConfigPaths");
74
- const _resolveWithTsConfigPaths = require("../../../utils/tsconfig/resolveWithTsConfigPaths");
75
83
  const _metroOptions = require("../middleware/metroOptions");
84
+ const _createTypescriptResolver = require("./createTypescriptResolver");
76
85
  function _interop_require_default(obj) {
77
86
  return obj && obj.__esModule ? obj : {
78
87
  default: obj
79
88
  };
80
89
  }
81
90
  const ASSET_REGISTRY_SRC = `const assets=[];module.exports={registerAsset:s=>assets.push(s),getAssetByID:s=>assets[s-1]};`;
91
+ function constructPlatformExtensions(config) {
92
+ var _config_resolver;
93
+ const platformExtensions = Object.create(null);
94
+ // TODO(@kitten): Temporary internal override config for per-platform extensions
95
+ let unstable_platformExtensions;
96
+ if (config.resolver && 'unstable_platformExtensions' in config.resolver && config.resolver.unstable_platformExtensions && typeof config.resolver.unstable_platformExtensions === 'object') {
97
+ unstable_platformExtensions = config.resolver.unstable_platformExtensions;
98
+ }
99
+ for (const platform of ((_config_resolver = config.resolver) == null ? void 0 : _config_resolver.platforms) ?? []){
100
+ const customPlatformExtensions = unstable_platformExtensions == null ? void 0 : unstable_platformExtensions[platform];
101
+ const sourceExts = (0, _paths().getPlatformExtensions)(platform, config.resolver.sourceExts, customPlatformExtensions);
102
+ // Platform-less resolution drops the platform's package-exports conditions, so fold them in.
103
+ const unstable_conditionNames = [
104
+ ...config.resolver.unstable_conditionNames,
105
+ ...config.resolver.unstable_conditionsByPlatform[platform] ?? []
106
+ ];
107
+ if (sourceExts) {
108
+ platformExtensions[platform] = {
109
+ sourceExts,
110
+ unstable_conditionNames
111
+ };
112
+ }
113
+ }
114
+ return platformExtensions;
115
+ }
116
+ function resolveWithPlatformExtensions(platformExtensions, context, moduleName) {
117
+ const platformContext = asWritable(context);
118
+ platformContext.preferNativePlatform = false;
119
+ platformContext.sourceExts = platformExtensions.sourceExts;
120
+ platformContext.unstable_conditionNames = platformExtensions.unstable_conditionNames;
121
+ return (0, _metroresolver().resolve)(platformContext, moduleName, null);
122
+ }
82
123
  const debug = require('debug')('expo:start:server:metro:multi-platform');
83
124
  function asWritable(input) {
84
125
  return input;
85
126
  }
127
+ const _reactNativeHostPackages = new Map();
128
+ const _reactNativeHostPathPatterns = new Map();
129
+ function getReactNativeHostPackage(platform) {
130
+ if (!platform) {
131
+ return null;
132
+ }
133
+ let supportPackage = _reactNativeHostPackages.get(platform);
134
+ if (supportPackage === undefined) {
135
+ const { getSupportPackageForPlatform } = require('expo/internal/unstable-autolinking-exports');
136
+ supportPackage = getSupportPackageForPlatform(platform);
137
+ _reactNativeHostPackages.set(platform, supportPackage);
138
+ }
139
+ return supportPackage;
140
+ }
141
+ function getReactNativeHostPathPattern(platform) {
142
+ if (!platform) {
143
+ return null;
144
+ }
145
+ let pattern = _reactNativeHostPathPatterns.get(platform);
146
+ if (pattern === undefined) {
147
+ const supportPackage = getReactNativeHostPackage(platform);
148
+ pattern = supportPackage ? new RegExp(`[\\\\/]node_modules[\\\\/]${supportPackage}[\\\\/]`) : null;
149
+ _reactNativeHostPathPatterns.set(platform, pattern);
150
+ }
151
+ return pattern;
152
+ }
86
153
  function withWebPolyfills(config, { getMetroBundler }) {
87
154
  const originalGetPolyfills = config.serializer.getPolyfills ? config.serializer.getPolyfills.bind(config.serializer) : ()=>[];
88
155
  const getPolyfills = (ctx)=>{
@@ -160,7 +227,7 @@ function getNodejsExtensions(srcExts) {
160
227
  nodejsSourceExtensions.splice(jsIndex + 1, 0, ...mjsExts);
161
228
  return nodejsSourceExtensions;
162
229
  }
163
- function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput, isTsconfigPathsEnabled, isExporting, isReactServerComponentsEnabled, getMetroBundler }) {
230
+ function withExtendedResolver(config, { autolinkingModuleResolverInput, isTsconfigPathsEnabled, isExporting, isReactServerComponentsEnabled, getMetroBundler }) {
164
231
  var _config_serializer_createModuleIdFactory, _config_serializer;
165
232
  if (isReactServerComponentsEnabled) {
166
233
  _log.Log.warn(`React Server Components (beta) is enabled.`);
@@ -172,6 +239,7 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
172
239
  'react-native/Libraries/Image/resolveAssetSource': 'expo-asset/build/resolveAssetSource'
173
240
  }
174
241
  };
242
+ const isExpoRouterInstalled = hasExpoRouterModule(config.projectRoot, autolinkingModuleResolverInput);
175
243
  let _universalAliases;
176
244
  function getUniversalAliases() {
177
245
  if (_universalAliases) {
@@ -179,7 +247,7 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
179
247
  }
180
248
  _universalAliases = [];
181
249
  // This package is currently always installed as it is included in the `expo` package.
182
- if (_resolvefrom().default.silent(config.projectRoot, '@expo/vector-icons')) {
250
+ if ((0, _requireutils().resolveFrom)(config.projectRoot, '@expo/vector-icons/package.json')) {
183
251
  debug('Enabling alias: react-native-vector-icons -> @expo/vector-icons');
184
252
  _universalAliases.push([
185
253
  /^react-native-vector-icons(\/.*)?/,
@@ -187,7 +255,7 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
187
255
  ]);
188
256
  }
189
257
  if (isReactServerComponentsEnabled) {
190
- if (_resolvefrom().default.silent(config.projectRoot, 'expo-router/rsc')) {
258
+ if ((0, _requireutils().resolveFrom)(config.projectRoot, 'expo-router/rsc')) {
191
259
  debug('Enabling bridge alias: expo-router -> expo-router/rsc');
192
260
  _universalAliases.push([
193
261
  /^expo-router$/,
@@ -214,49 +282,15 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
214
282
  'main'
215
283
  ]
216
284
  };
217
- let tsConfigResolve = isTsconfigPathsEnabled && ((tsconfig == null ? void 0 : tsconfig.paths) || (tsconfig == null ? void 0 : tsconfig.baseUrl) != null) ? _resolveWithTsConfigPaths.resolveWithTsConfigPaths.bind(_resolveWithTsConfigPaths.resolveWithTsConfigPaths, {
218
- paths: tsconfig.paths ?? {},
219
- baseUrl: tsconfig.baseUrl ?? config.projectRoot,
220
- hasBaseUrl: !!tsconfig.baseUrl
221
- }) : null;
222
- // TODO: Move this to be a transform key for invalidation.
223
- if (!isExporting && !_env.env.CI) {
224
- if (isTsconfigPathsEnabled) {
225
- // TODO: We should track all the files that used imports and invalidate them
226
- // currently the user will need to save all the files that use imports to
227
- // use the new aliases.
228
- const configWatcher = new _FileNotifier.FileNotifier(config.projectRoot, [
229
- './tsconfig.json',
230
- './jsconfig.json'
231
- ]);
232
- configWatcher.startObserving(()=>{
233
- debug('Reloading tsconfig.json');
234
- (0, _loadTsConfigPaths.loadTsConfigPathsAsync)(config.projectRoot).then((tsConfigPaths)=>{
235
- if ((tsConfigPaths == null ? void 0 : tsConfigPaths.paths) && !!Object.keys(tsConfigPaths.paths).length) {
236
- debug('Enabling tsconfig.json paths support');
237
- tsConfigResolve = _resolveWithTsConfigPaths.resolveWithTsConfigPaths.bind(_resolveWithTsConfigPaths.resolveWithTsConfigPaths, {
238
- paths: tsConfigPaths.paths ?? {},
239
- baseUrl: tsConfigPaths.baseUrl ?? config.projectRoot,
240
- hasBaseUrl: !!tsConfigPaths.baseUrl
241
- });
242
- } else {
243
- debug('Disabling tsconfig.json paths support');
244
- tsConfigResolve = null;
245
- }
246
- });
247
- });
248
- // TODO: This probably prevents the process from exiting.
249
- (0, _exit.installExitHooks)(()=>{
250
- configWatcher.stopObserving();
251
- });
252
- } else {
253
- debug('Skipping tsconfig.json paths support');
254
- }
255
- }
256
285
  let nodejsSourceExtensions = null;
286
+ const platformExtensions = constructPlatformExtensions(config);
257
287
  const getStrictResolver = ({ resolveRequest, ...context }, platform)=>{
258
288
  return function doResolve(moduleName) {
259
- return (0, _metroresolver().resolve)(context, moduleName, platform);
289
+ if (platform != null && platformExtensions[platform]) {
290
+ return resolveWithPlatformExtensions(platformExtensions[platform], context, moduleName);
291
+ } else {
292
+ return (0, _metroresolver().resolve)(context, moduleName, platform);
293
+ }
260
294
  };
261
295
  };
262
296
  function getOptionalResolver(context, platform) {
@@ -283,7 +317,7 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
283
317
  let _asyncRequireModuleResolvedPath;
284
318
  const getAsyncRequireModule = ()=>{
285
319
  if (_asyncRequireModuleResolvedPath === undefined) {
286
- _asyncRequireModuleResolvedPath = _resolvefrom().default.silent(config.projectRoot, config.transformer.asyncRequireModulePath) ?? null;
320
+ _asyncRequireModuleResolvedPath = (0, _requireutils().resolveFrom)(config.projectRoot, config.transformer.asyncRequireModulePath) ?? null;
287
321
  }
288
322
  return _asyncRequireModuleResolvedPath ? {
289
323
  type: 'sourceFile',
@@ -311,15 +345,15 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
311
345
  }
312
346
  if (((_context_customResolverOptions1 = context.customResolverOptions) == null ? void 0 : _context_customResolverOptions1.environment) === 'react-server') {
313
347
  // Ensure these non-react-server modules are excluded when bundling for React Server Components in development.
314
- return /^(source-map-support(\/.*)?|@babel\/runtime\/.+|debug|metro-runtime\/src\/modules\/HMRClient|metro|acorn-loose|acorn|chalk|ws|ansi-styles|supports-color|color-convert|has-flag|utf-8-validate|color-name|react-refresh\/runtime|@remix-run\/node\/.+)$/.test(moduleName);
348
+ return /^(@babel\/runtime\/.+|debug|metro-runtime\/src\/modules\/HMRClient|metro|acorn-loose|acorn|chalk|ws|ansi-styles|supports-color|color-convert|has-flag|utf-8-validate|color-name|react-refresh\/runtime|@remix-run\/node\/.+)$/.test(moduleName);
315
349
  }
316
350
  // TODO: Windows doesn't support externals somehow.
317
351
  if (process.platform === 'win32') {
318
- return /^(source-map-support(\/.*)?)$/.test(moduleName);
352
+ return false;
319
353
  }
320
354
  // Extern these modules in standard Node.js environments in development to prevent API routes side-effects
321
355
  // from leaking into the dev server process.
322
- return /^(source-map-support(\/.*)?|react|@radix-ui\/.+|@babel\/runtime\/.+|react-dom(\/.+)?|debug|acorn-loose|acorn|css-in-js-utils\/lib\/.+|hyphenate-style-name|color|color-string|color-convert|color-name|fontfaceobserver|fast-deep-equal|query-string|escape-string-regexp|invariant|postcss-value-parser|memoize-one|nullthrows|strict-uri-encode|decode-uri-component|split-on-first|filter-obj|warn-once|simple-swizzle|is-arrayish|inline-style-prefixer\/.+)$/.test(moduleName);
356
+ return /^(react|@radix-ui\/.+|@babel\/runtime\/.+|react-dom(\/.+)?|debug|acorn-loose|acorn|css-in-js-utils\/lib\/.+|hyphenate-style-name|color|color-string|color-convert|color-name|fontfaceobserver|fast-deep-equal|query-string|escape-string-regexp|invariant|postcss-value-parser|memoize-one|nullthrows|strict-uri-encode|decode-uri-component|split-on-first|filter-obj|warn-once|simple-swizzle|is-arrayish|inline-style-prefixer\/.+)$/.test(moduleName);
323
357
  },
324
358
  replace: 'node'
325
359
  },
@@ -344,13 +378,19 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
344
378
  replace: 'weak'
345
379
  }
346
380
  ];
381
+ const skipMetroMainFieldOverride = _env.env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE;
382
+ const useExpoUnstableWebModule = _env.env.EXPO_UNSTABLE_WEB_MODAL;
383
+ const useExpoUnstableLogBox = _env.env.EXPO_UNSTABLE_LOG_BOX;
384
+ const disableReactNavigationCheck = _env.env.EXPO_ROUTER_DISABLE_RN_NAVIGATION_CHECK;
385
+ const disableNativeTabsMaterialSymbols = _env.env.EXPO_ROUTER_DISABLE_NATIVE_TABS_MD;
347
386
  const metroConfigWithCustomResolver = (0, _withMetroResolvers.withMetroResolvers)(config, [
348
387
  // Mock out production react imports in development.
349
388
  function requestDevMockProdReact(context, moduleName, platform) {
389
+ var _getReactNativeHostPathPattern;
350
390
  // This resolution is dev-only to prevent bundling the production React packages in development.
351
391
  if (!context.dev) return null;
352
- if (// Match react-native renderers.
353
- platform !== 'web' && context.originModulePath.match(/[\\/]node_modules[\\/]react-native[\\/]/) && moduleName.match(/([\\/]ReactFabric|ReactNativeRenderer)-prod/) || // Match react production imports.
392
+ if (// Match react-native renderers (in the platform's react-native host package).
393
+ platform !== 'web' && ((_getReactNativeHostPathPattern = getReactNativeHostPathPattern(platform)) == null ? void 0 : _getReactNativeHostPathPattern.test(context.originModulePath)) && moduleName.match(/([\\/]ReactFabric|ReactNativeRenderer)-prod/) || // Match react production imports.
354
394
  moduleName.match(/\.production(\.min)?\.js$/) && // Match if the import originated from a react package.
355
395
  context.originModulePath.match(/[\\/]node_modules[\\/](react[-\\/]|scheduler[\\/])/)) {
356
396
  debug(`Skipping production module: ${moduleName}`);
@@ -366,13 +406,12 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
366
406
  }
367
407
  return null;
368
408
  },
369
- // tsconfig paths
370
- function requestTsconfigPaths(context, moduleName, platform) {
371
- return (tsConfigResolve == null ? void 0 : tsConfigResolve({
372
- originModulePath: context.originModulePath,
373
- moduleName
374
- }, getOptionalResolver(context, platform))) ?? null;
375
- },
409
+ isTsconfigPathsEnabled ? (0, _createTypescriptResolver.createTypescriptResolver)({
410
+ getStrictResolver,
411
+ projectRoot: config.projectRoot,
412
+ getMetroBundler,
413
+ watch: !isExporting && !_env.env.CI
414
+ }) : undefined,
376
415
  // Node.js externals support
377
416
  function requestNodeExternals(context, moduleName, platform) {
378
417
  var _context_customResolverOptions, _context_customResolverOptions1;
@@ -510,8 +549,17 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
510
549
  // TODO: Reduce these as much as possible in the future.
511
550
  // Complex post-resolution rewrites.
512
551
  function requestPostRewrites(context, moduleName, platform) {
513
- const doResolve = getStrictResolver(context, platform);
514
- const result = doResolve(moduleName);
552
+ // TODO(@kitten): replace and abstract doResolve logic, since it's unsafe and inefficient
553
+ function doResolve(moduleName) {
554
+ const projectRootContext = {
555
+ ...context,
556
+ nodeModulesPaths: [],
557
+ originModulePath: projectRootOriginPath,
558
+ disableHierarchicalLookup: false
559
+ };
560
+ return getStrictResolver(projectRootContext, platform)(moduleName);
561
+ }
562
+ const result = getStrictResolver(context, platform)(moduleName);
515
563
  if (result.type !== 'sourceFile') {
516
564
  return result;
517
565
  }
@@ -524,13 +572,46 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
524
572
  const doReplaceStrict = (from, to)=>doReplace(from, to, {
525
573
  throws: true
526
574
  });
527
- if (_env.env.EXPO_UNSTABLE_WEB_MODAL) {
575
+ if (useExpoUnstableWebModule) {
528
576
  const webModalModule = doReplace('expo-router/build/layouts/_web-modal.js', 'expo-router/build/layouts/ExperimentalModalStack.js');
529
577
  if (webModalModule) {
530
578
  debug('Using `_unstable-web-modal` implementation.');
531
579
  return webModalModule;
532
580
  }
533
581
  }
582
+ if (disableNativeTabsMaterialSymbols && platform === 'android') {
583
+ const materialIconConverterModule = doReplace('expo-router/build/native-tabs/utils/materialIconConverter.android.js', 'expo-router/build/native-tabs/utils/materialIconConverter-not-implemented.js');
584
+ if (materialIconConverterModule) {
585
+ debug('Disabling md support in NativeTabs to tree-shake `expo-symbols` from the Android bundle.');
586
+ return materialIconConverterModule;
587
+ }
588
+ }
589
+ if (!disableReactNavigationCheck) {
590
+ // TODO(@ubax): Remove this rewrite once we published migration guide for library authors
591
+ if (isExpoRouterInstalled && moduleName.startsWith('@react-navigation/')) {
592
+ const filePath = context.originModulePath;
593
+ if (!filePath.includes('node_modules')) {
594
+ if (moduleName === '@react-navigation/native-stack' || moduleName === '@react-navigation/drawer') {
595
+ throw new Error([
596
+ 'As of SDK 56, expo-router is no longer compatible with react-navigation.',
597
+ '',
598
+ `Instead of ${moduleName}, use Stack or Drawer from expo-router instead:`,
599
+ '',
600
+ " import { Stack } from 'expo-router';",
601
+ " import { Drawer } from 'expo-router/drawer';",
602
+ '',
603
+ 'For more information, see https://docs.expo.dev/router/migrate/sdk-55-to-56/.',
604
+ 'You can disable this check by setting the environment variable EXPO_ROUTER_DISABLE_RN_NAVIGATION_CHECK=1.'
605
+ ].join('\n'));
606
+ }
607
+ throw new Error('As of SDK 56, expo-router is no longer compatible with react-navigation. For more information, see https://docs.expo.dev/router/migrate/sdk-55-to-56/. You can disable this check by setting the environment variable EXPO_ROUTER_DISABLE_RN_NAVIGATION_CHECK=1.');
608
+ }
609
+ if (moduleName === '@react-navigation/core') {
610
+ // We already checked if expo-router resolves
611
+ return doResolve('expo-router/react-navigation');
612
+ }
613
+ }
614
+ }
534
615
  if (platform === 'web') {
535
616
  if (result.filePath.includes('node_modules')) {
536
617
  // Disallow importing confusing native modules on web
@@ -562,20 +643,22 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
562
643
  } else {
563
644
  var _context_customResolverOptions, _context_customResolverOptions1;
564
645
  const isServer = ((_context_customResolverOptions = context.customResolverOptions) == null ? void 0 : _context_customResolverOptions.environment) === 'node' || ((_context_customResolverOptions1 = context.customResolverOptions) == null ? void 0 : _context_customResolverOptions1.environment) === 'react-server';
646
+ const hostPackage = getReactNativeHostPackage(platform) ?? 'react-native';
565
647
  // Shim out React Native native runtime globals in server mode for native.
566
648
  if (isServer) {
567
- const emptyModule = doReplace('react-native/Libraries/Core/InitializeCore.js', undefined);
649
+ const emptyModule = doReplace(`${hostPackage}/Libraries/Core/InitializeCore.js`, undefined);
568
650
  if (emptyModule) {
569
651
  debug('Shimming out InitializeCore for React Native in native SSR bundle');
570
652
  return emptyModule;
571
653
  }
572
654
  }
573
- const hmrModule = doReplaceStrict('react-native/Libraries/Utilities/HMRClient.js', 'expo/src/async-require/hmr.ts');
655
+ const hmrModule = doReplaceStrict(`${hostPackage}/Libraries/Utilities/HMRClient.js`, 'expo/src/async-require/hmr.ts');
574
656
  if (hmrModule) return hmrModule;
575
- if (_env.env.EXPO_UNSTABLE_LOG_BOX) {
576
- const logBoxModule = doReplace('react-native/Libraries/LogBox/LogBoxInspectorContainer.js', '@expo/log-box/swap-rn-logbox.js');
657
+ if (useExpoUnstableLogBox) {
658
+ // TODO(@kitten): This can never resolve with isolated dependencies
659
+ const logBoxModule = doReplace(`${hostPackage}/Libraries/LogBox/LogBoxInspectorContainer.js`, '@expo/log-box/swap-rn-logbox.js');
577
660
  if (logBoxModule) return logBoxModule;
578
- const logBoxParserModule = doReplace('react-native/Libraries/LogBox/Data/parseLogBoxLog.js', '@expo/log-box/swap-rn-logbox-parser.js');
661
+ const logBoxParserModule = doReplace(`${hostPackage}/Libraries/LogBox/Data/parseLogBoxLog.js`, '@expo/log-box/swap-rn-logbox-parser.js');
579
662
  if (logBoxParserModule) return logBoxParserModule;
580
663
  }
581
664
  }
@@ -658,7 +741,7 @@ function withExtendedResolver(config, { tsconfig, autolinkingModuleResolverInput
658
741
  }
659
742
  } else {
660
743
  // Non-server changes
661
- if (!_env.env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE && platform && platform in preferredMainFields) {
744
+ if (!skipMetroMainFieldOverride && platform && platform in preferredMainFields) {
662
745
  context.mainFields = preferredMainFields[platform];
663
746
  }
664
747
  }
@@ -695,55 +778,25 @@ function shouldAliasModule(input, alias) {
695
778
  var _input_result, _input_result1;
696
779
  return input.platform === alias.platform && ((_input_result = input.result) == null ? void 0 : _input_result.type) === 'sourceFile' && typeof ((_input_result1 = input.result) == null ? void 0 : _input_result1.filePath) === 'string' && normalizeSlashes(input.result.filePath).endsWith(alias.output);
697
780
  }
698
- async function withMetroMultiPlatformAsync(projectRoot, { config, exp, platformBundlers, serverRoot, isTsconfigPathsEnabled, isAutolinkingResolverEnabled, isExporting, isReactServerComponentsEnabled, getMetroBundler }) {
781
+ async function withMetroMultiPlatformAsync(projectRoot, { config, exp, platformBundlers, isTsconfigPathsEnabled, isAutolinkingResolverEnabled, isExporting, isReactServerComponentsEnabled, getMetroBundler }) {
699
782
  const watchFolders = config.watchFolders || [];
700
783
  asWritable(config).watchFolders = watchFolders;
784
+ // NOTE(@kitten): If the on-demand filesystem is enabled, we can aggressively cut down the `watchFolders`
785
+ // to a minimum, since the files will be read lazily. This almost always speeds up exports
786
+ if (isExporting && !!config.resolver.unstable_onDemandFilesystem) {
787
+ watchFolders.length = 0;
788
+ watchFolders.push(projectRoot);
789
+ }
701
790
  // Change the default metro-runtime to a custom one that supports bundle splitting.
702
791
  // NOTE(@kitten): This is now always active and EXPO_USE_METRO_REQUIRE / isNamedRequiresEnabled is disregarded
703
792
  const metroDefaults = require('@expo/metro/metro-config/defaults/defaults');
704
793
  const metroRequirePolyfill = require.resolve('@expo/cli/build/metro-require/require');
705
- const metroOriginalModuleSystem = metroDefaults.moduleSystem;
706
794
  asWritable(metroDefaults).moduleSystem = metroRequirePolyfill;
707
795
  watchFolders.push(_path().default.dirname(metroRequirePolyfill));
708
796
  // Required for @expo/metro-runtime to format paths in the web LogBox.
709
797
  process.env.EXPO_PUBLIC_PROJECT_ROOT = process.env.EXPO_PUBLIC_PROJECT_ROOT ?? projectRoot;
710
- // This is used for running Expo CLI in development against projects outside the monorepo.
711
- // NOTE(@kitten): If `projectRoot` is used without `serverRoot` being available this can mistrigger for user monorepos!
712
- if (!isDirectoryIn(__dirname, serverRoot ?? projectRoot)) {
713
- var _exp_platforms, _exp_platforms1;
714
- let reactNativePolyfills = [];
715
- // Support web-only `expo start`
716
- if (((_exp_platforms = exp.platforms) == null ? void 0 : _exp_platforms.includes('ios')) || ((_exp_platforms1 = exp.platforms) == null ? void 0 : _exp_platforms1.includes('android'))) {
717
- try {
718
- reactNativePolyfills = require('react-native/rn-get-polyfills')();
719
- watchFolders.push(...(0, _resolveWatchFolders.resolveWatchFolders)('react-native', {
720
- deep: false
721
- }));
722
- } catch (error) {
723
- // If the project targets native platforms, react-native is required.
724
- throw new _errors.CommandError('REACT_NATIVE_NOT_FOUND', 'Failed to resolve react-native. Make sure it is installed in the project dependencies. Remove native platforms from the Expo config if you do not intend to target native platforms.');
725
- }
726
- }
727
- watchFolders.push(...(0, _resolveWatchFolders.resolveWatchFolders)('expo', {
728
- deep: true
729
- }), ...(0, _resolveWatchFolders.resolveWatchFolders)('@expo/metro', {
730
- deep: true
731
- }), ...(0, _resolveWatchFolders.resolveWatchFolders)('@expo/metro-runtime', {
732
- deep: true
733
- }), ...[
734
- config.resolver.emptyModulePath,
735
- metroOriginalModuleSystem,
736
- ...reactNativePolyfills
737
- ].map((targetPath)=>_fs().default.existsSync(targetPath) ? _path().default.dirname(targetPath) : null).filter((targetPath)=>targetPath != null));
738
- }
739
- let tsconfig = null;
740
- if (isTsconfigPathsEnabled) {
741
- tsconfig = await (0, _loadTsConfigPaths.loadTsConfigPathsAsync)(projectRoot);
742
- }
743
- let expoConfigPlatforms = Object.entries(platformBundlers).filter(([platform, bundler])=>{
744
- var _exp_platforms;
745
- return bundler === 'metro' && ((_exp_platforms = exp.platforms) == null ? void 0 : _exp_platforms.includes(platform));
746
- }).map(([platform])=>platform);
798
+ const configPlatforms = (0, _config().getPlatformsFromConfig)(projectRoot, exp);
799
+ let expoConfigPlatforms = Object.entries(platformBundlers).filter(([platform, bundler])=>bundler === 'metro' && configPlatforms.includes(platform)).map(([platform])=>platform);
747
800
  if (Array.isArray(config.resolver.platforms)) {
748
801
  expoConfigPlatforms = [
749
802
  ...new Set(expoConfigPlatforms.concat(config.resolver.platforms))
@@ -762,15 +815,23 @@ async function withMetroMultiPlatformAsync(projectRoot, { config, exp, platformB
762
815
  }
763
816
  return withExtendedResolver(config, {
764
817
  autolinkingModuleResolverInput,
765
- tsconfig,
766
- isExporting,
767
818
  isTsconfigPathsEnabled,
819
+ isExporting,
768
820
  isReactServerComponentsEnabled,
769
821
  getMetroBundler
770
822
  });
771
823
  }
772
- function isDirectoryIn(targetPath, rootPath) {
773
- return targetPath.startsWith(rootPath) && targetPath.length >= rootPath.length;
824
+ function hasExpoRouterModule(projectRoot, autolinkingModuleResolverInput) {
825
+ if (autolinkingModuleResolverInput) {
826
+ var _autolinkingModuleResolverInput_platform;
827
+ // If we have autolinking enabled, we can skip resolution
828
+ const platform = Object.keys(autolinkingModuleResolverInput)[0];
829
+ return !!((_autolinkingModuleResolverInput_platform = autolinkingModuleResolverInput[platform]) == null ? void 0 : _autolinkingModuleResolverInput_platform.resolvedModulePaths['expo-router']);
830
+ } else {
831
+ return !!(0, _requireutils().resolveFrom)(projectRoot, 'expo-router/package.json', {
832
+ skipNodePath: true
833
+ });
834
+ }
774
835
  }
775
836
 
776
837
  //# sourceMappingURL=withMetroMultiPlatform.js.map