@expo/cli 0.17.10 → 0.18.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 (570) hide show
  1. package/build/bin/cli +11 -7
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/getExpoSchema.js +23 -5
  4. package/build/src/api/getExpoSchema.js.map +1 -1
  5. package/build/src/api/graphql/client.js +28 -10
  6. package/build/src/api/graphql/client.js.map +1 -1
  7. package/build/src/api/graphql/queries/AppQuery.js +16 -4
  8. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  9. package/build/src/api/graphql/queries/UserQuery.js +8 -2
  10. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  11. package/build/src/api/graphql/types/App.js +8 -2
  12. package/build/src/api/graphql/types/App.js.map +1 -1
  13. package/build/src/api/rest/cache/FileSystemCache.js +21 -9
  14. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  15. package/build/src/api/rest/cache/response.js +9 -3
  16. package/build/src/api/rest/cache/response.js.map +1 -1
  17. package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
  18. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  19. package/build/src/api/rest/client.js +23 -5
  20. package/build/src/api/rest/client.js.map +1 -1
  21. package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
  22. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  23. package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
  24. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  25. package/build/src/api/settings.js +8 -2
  26. package/build/src/api/settings.js.map +1 -1
  27. package/build/src/api/updateDevelopmentSession.js +18 -6
  28. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  29. package/build/src/api/user/UserSettings.js +26 -8
  30. package/build/src/api/user/UserSettings.js.map +1 -1
  31. package/build/src/api/user/actions.js +17 -5
  32. package/build/src/api/user/actions.js.map +1 -1
  33. package/build/src/api/user/expoSsoLauncher.js +32 -8
  34. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  35. package/build/src/api/user/otp.js +17 -5
  36. package/build/src/api/user/otp.js.map +1 -1
  37. package/build/src/api/user/user.js +19 -12
  38. package/build/src/api/user/user.js.map +1 -1
  39. package/build/src/config/configAsync.js +25 -7
  40. package/build/src/config/configAsync.js.map +1 -1
  41. package/build/src/config/index.js +9 -3
  42. package/build/src/config/index.js.map +1 -1
  43. package/build/src/customize/customizeAsync.js +8 -2
  44. package/build/src/customize/customizeAsync.js.map +1 -1
  45. package/build/src/customize/generate.js +16 -4
  46. package/build/src/customize/generate.js.map +1 -1
  47. package/build/src/customize/index.js +10 -4
  48. package/build/src/customize/index.js.map +1 -1
  49. package/build/src/customize/templates.js +33 -9
  50. package/build/src/customize/templates.js.map +1 -1
  51. package/build/src/customize/typescript.js +8 -2
  52. package/build/src/customize/typescript.js.map +1 -1
  53. package/build/src/export/createMetadataJson.js +8 -2
  54. package/build/src/export/createMetadataJson.js.map +1 -1
  55. package/build/src/export/embed/exportEmbedAsync.js +58 -18
  56. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  57. package/build/src/export/embed/index.js +17 -5
  58. package/build/src/export/embed/index.js.map +1 -1
  59. package/build/src/export/embed/resolveOptions.js +8 -2
  60. package/build/src/export/embed/resolveOptions.js.map +1 -1
  61. package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
  62. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  63. package/build/src/export/exportApp.js +32 -12
  64. package/build/src/export/exportApp.js.map +1 -1
  65. package/build/src/export/exportAssets.js +27 -9
  66. package/build/src/export/exportAssets.js.map +1 -1
  67. package/build/src/export/exportAsync.js +10 -2
  68. package/build/src/export/exportAsync.js.map +1 -1
  69. package/build/src/export/exportHermes.js +29 -17
  70. package/build/src/export/exportHermes.js.map +1 -1
  71. package/build/src/export/exportStaticAsync.js +69 -37
  72. package/build/src/export/exportStaticAsync.js.map +1 -1
  73. package/build/src/export/favicon.js +33 -9
  74. package/build/src/export/favicon.js.map +1 -1
  75. package/build/src/export/fork-bundleAsync.js +61 -16
  76. package/build/src/export/fork-bundleAsync.js.map +1 -1
  77. package/build/src/export/getPublicExpoManifest.js +8 -2
  78. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  79. package/build/src/export/getResolvedLocales.js +15 -3
  80. package/build/src/export/getResolvedLocales.js.map +1 -1
  81. package/build/src/export/index.js +11 -5
  82. package/build/src/export/index.js.map +1 -1
  83. package/build/src/export/metroAssetLocalPath.js +9 -3
  84. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  85. package/build/src/export/persistMetroAssets.js +27 -15
  86. package/build/src/export/persistMetroAssets.js.map +1 -1
  87. package/build/src/export/publicFolder.js +18 -6
  88. package/build/src/export/publicFolder.js.map +1 -1
  89. package/build/src/export/resolveOptions.js +8 -2
  90. package/build/src/export/resolveOptions.js.map +1 -1
  91. package/build/src/export/saveAssets.js +43 -19
  92. package/build/src/export/saveAssets.js.map +1 -1
  93. package/build/src/export/web/exportWebAsync.js +16 -4
  94. package/build/src/export/web/exportWebAsync.js.map +1 -1
  95. package/build/src/export/web/index.js +9 -3
  96. package/build/src/export/web/index.js.map +1 -1
  97. package/build/src/install/applyPlugins.js +8 -2
  98. package/build/src/install/applyPlugins.js.map +1 -1
  99. package/build/src/install/checkPackages.js +18 -6
  100. package/build/src/install/checkPackages.js.map +1 -1
  101. package/build/src/install/fixPackages.js +8 -2
  102. package/build/src/install/fixPackages.js.map +1 -1
  103. package/build/src/install/index.js +14 -8
  104. package/build/src/install/index.js.map +1 -1
  105. package/build/src/install/installAsync.js +27 -9
  106. package/build/src/install/installAsync.js.map +1 -1
  107. package/build/src/install/installExpoPackage.js +17 -5
  108. package/build/src/install/installExpoPackage.js.map +1 -1
  109. package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
  110. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  111. package/build/src/log.js +9 -3
  112. package/build/src/log.js.map +1 -1
  113. package/build/src/prebuild/clearNativeFolder.js +37 -13
  114. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  115. package/build/src/prebuild/configureProjectAsync.js +16 -4
  116. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  117. package/build/src/prebuild/copyTemplateFiles.js +29 -11
  118. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  119. package/build/src/prebuild/ensureConfigAsync.js +24 -6
  120. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  121. package/build/src/prebuild/index.js +14 -8
  122. package/build/src/prebuild/index.js.map +1 -1
  123. package/build/src/prebuild/prebuildAsync.js +9 -3
  124. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  125. package/build/src/prebuild/renameTemplateAppName.js +119 -0
  126. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  127. package/build/src/prebuild/resolveOptions.js +32 -8
  128. package/build/src/prebuild/resolveOptions.js.map +1 -1
  129. package/build/src/prebuild/resolveTemplate.js +44 -14
  130. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  131. package/build/src/prebuild/updateFromTemplate.js +18 -2
  132. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  133. package/build/src/prebuild/updatePackageJson.js +49 -13
  134. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  135. package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
  136. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  137. package/build/src/run/android/index.js +20 -4
  138. package/build/src/run/android/index.js.map +1 -1
  139. package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
  140. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  141. package/build/src/run/android/resolveInstallApkName.js +18 -6
  142. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  143. package/build/src/run/android/resolveLaunchProps.js +10 -4
  144. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  145. package/build/src/run/android/resolveOptions.js +5 -3
  146. package/build/src/run/android/resolveOptions.js.map +1 -1
  147. package/build/src/run/android/runAndroidAsync.js +13 -4
  148. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  149. package/build/src/run/ensureNativeProject.js +15 -3
  150. package/build/src/run/ensureNativeProject.js.map +1 -1
  151. package/build/src/run/hints.js +10 -4
  152. package/build/src/run/hints.js.map +1 -1
  153. package/build/src/run/index.js +8 -2
  154. package/build/src/run/index.js.map +1 -1
  155. package/build/src/run/ios/XcodeBuild.js +57 -21
  156. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  157. package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
  158. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  159. package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
  160. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  161. package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
  162. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  163. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
  164. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  165. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
  166. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  167. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
  168. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  169. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
  170. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  171. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
  172. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  173. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
  174. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  175. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
  176. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  177. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
  178. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  179. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
  180. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  181. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
  182. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  183. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
  184. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  185. package/build/src/run/ios/codeSigning/Security.js +17 -5
  186. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  187. package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
  188. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  189. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
  190. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  191. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
  192. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  193. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
  194. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  195. package/build/src/run/ios/index.js +19 -7
  196. package/build/src/run/ios/index.js.map +1 -1
  197. package/build/src/run/ios/launchApp.js +17 -5
  198. package/build/src/run/ios/launchApp.js.map +1 -1
  199. package/build/src/run/ios/options/promptDevice.js +9 -3
  200. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  201. package/build/src/run/ios/options/resolveDevice.js +1 -2
  202. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  203. package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
  204. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  205. package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
  206. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  207. package/build/src/run/ios/runIosAsync.js +10 -2
  208. package/build/src/run/ios/runIosAsync.js.map +1 -1
  209. package/build/src/run/startBundler.js +16 -4
  210. package/build/src/run/startBundler.js.map +1 -1
  211. package/build/src/start/detectDevClient.js +29 -0
  212. package/build/src/start/detectDevClient.js.map +1 -0
  213. package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
  214. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  215. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
  216. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  217. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
  218. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  219. package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
  220. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  221. package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
  222. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  223. package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
  224. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  225. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
  226. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  227. package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
  228. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  229. package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
  230. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  231. package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
  232. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  233. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
  234. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  235. package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
  236. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  237. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
  238. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  239. package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
  240. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  241. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
  242. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  243. package/build/src/start/index.js +17 -11
  244. package/build/src/start/index.js.map +1 -1
  245. package/build/src/start/interface/commandsTable.js +27 -9
  246. package/build/src/start/interface/commandsTable.js.map +1 -1
  247. package/build/src/start/interface/interactiveActions.js +17 -11
  248. package/build/src/start/interface/interactiveActions.js.map +1 -1
  249. package/build/src/start/interface/startInterface.js +8 -2
  250. package/build/src/start/interface/startInterface.js.map +1 -1
  251. package/build/src/start/platforms/AppIdResolver.js +9 -3
  252. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  253. package/build/src/start/platforms/DeviceManager.js +8 -2
  254. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  255. package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
  256. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  257. package/build/src/start/platforms/PlatformManager.js +33 -13
  258. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  259. package/build/src/start/platforms/android/ADBServer.js +17 -5
  260. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  261. package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
  262. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  263. package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
  264. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  265. package/build/src/start/platforms/android/AndroidSdk.js +34 -10
  266. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  267. package/build/src/start/platforms/android/activateWindow.js +16 -4
  268. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  269. package/build/src/start/platforms/android/adb.js +21 -4
  270. package/build/src/start/platforms/android/adb.js.map +1 -1
  271. package/build/src/start/platforms/android/emulator.js +32 -8
  272. package/build/src/start/platforms/android/emulator.js.map +1 -1
  273. package/build/src/start/platforms/android/gradle.js +23 -6
  274. package/build/src/start/platforms/android/gradle.js.map +1 -1
  275. package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
  276. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  277. package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
  278. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  279. package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
  280. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  281. package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
  282. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  283. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
  284. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  285. package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
  286. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  287. package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
  288. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  289. package/build/src/start/platforms/ios/simctl.js +12 -6
  290. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  291. package/build/src/start/platforms/ios/simctlLogging.js +40 -10
  292. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  293. package/build/src/start/platforms/ios/xcrun.js +16 -4
  294. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  295. package/build/src/start/project/dotExpo.js +27 -9
  296. package/build/src/start/project/dotExpo.js.map +1 -1
  297. package/build/src/start/resolveOptions.js +33 -15
  298. package/build/src/start/resolveOptions.js.map +1 -1
  299. package/build/src/start/server/AsyncNgrok.js +34 -10
  300. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  301. package/build/src/start/server/BundlerDevServer.js +16 -4
  302. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  303. package/build/src/start/server/DevServerManager.js +28 -10
  304. package/build/src/start/server/DevServerManager.js.map +1 -1
  305. package/build/src/start/server/DevToolsPluginManager.js +16 -4
  306. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  307. package/build/src/start/server/DevelopmentSession.js +9 -3
  308. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  309. package/build/src/start/server/ReactDevToolsProxy.js +26 -8
  310. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  311. package/build/src/start/server/UrlCreator.js +19 -6
  312. package/build/src/start/server/UrlCreator.js.map +1 -1
  313. package/build/src/start/server/getStaticRenderFunctions.js +91 -55
  314. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  315. package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
  316. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  317. package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
  318. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  319. package/build/src/start/server/metro/TerminalReporter.js +26 -8
  320. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  321. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  322. package/build/src/start/server/metro/createExpoMetroResolver.js +56 -20
  323. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  324. package/build/src/start/server/metro/createJResolver.js +90 -45
  325. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  326. package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
  327. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  328. package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
  329. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  330. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
  331. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  332. package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
  333. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  334. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
  335. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  336. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
  337. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  338. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
  339. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  340. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
  341. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  342. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
  343. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  344. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
  345. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  346. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
  347. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  348. package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
  349. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  350. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  351. package/build/src/start/server/metro/externals.js +51 -64
  352. package/build/src/start/server/metro/externals.js.map +1 -1
  353. package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
  354. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  355. package/build/src/start/server/metro/formatFileCandidates.js +8 -2
  356. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  357. package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
  358. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  359. package/build/src/start/server/metro/instantiateMetro.js +96 -30
  360. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  361. package/build/src/start/server/metro/metroErrorInterface.js +40 -21
  362. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  363. package/build/src/start/server/metro/metroVirtualModules.js +82 -0
  364. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  365. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
  366. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  367. package/build/src/start/server/metro/router.js +44 -17
  368. package/build/src/start/server/metro/router.js.map +1 -1
  369. package/build/src/start/server/metro/runServer-fork.js +56 -14
  370. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  371. package/build/src/start/server/metro/serializeHtml.js +25 -12
  372. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  373. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
  374. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  375. package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
  376. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  377. package/build/src/start/server/metro/withMetroResolvers.js +31 -13
  378. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  379. package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
  380. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  381. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
  382. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  383. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
  384. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  385. package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
  386. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  387. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
  388. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  389. package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
  390. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  391. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
  392. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  393. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
  394. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  395. package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
  396. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  397. package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
  398. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  399. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
  400. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  401. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
  402. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  403. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
  404. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  405. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
  406. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  407. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
  408. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  409. package/build/src/start/server/middleware/metroOptions.js +12 -2
  410. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  411. package/build/src/start/server/middleware/resolveAssets.js +17 -5
  412. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  413. package/build/src/start/server/middleware/resolvePlatform.js +8 -2
  414. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  415. package/build/src/start/server/platformBundlers.js +8 -2
  416. package/build/src/start/server/platformBundlers.js.map +1 -1
  417. package/build/src/start/server/serverLogLikeMetro.js +37 -13
  418. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  419. package/build/src/start/server/type-generation/expo-env.js +16 -4
  420. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  421. package/build/src/start/server/type-generation/routes.js +91 -37
  422. package/build/src/start/server/type-generation/routes.js.map +1 -1
  423. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
  424. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  425. package/build/src/start/server/type-generation/tsconfig.js +27 -9
  426. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  427. package/build/src/start/server/webTemplate.js +26 -8
  428. package/build/src/start/server/webTemplate.js.map +1 -1
  429. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
  430. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  431. package/build/src/start/server/webpack/compile.js +17 -5
  432. package/build/src/start/server/webpack/compile.js.map +1 -1
  433. package/build/src/start/server/webpack/resolveFromProject.js +8 -2
  434. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  435. package/build/src/start/server/webpack/tls.js +35 -11
  436. package/build/src/start/server/webpack/tls.js.map +1 -1
  437. package/build/src/start/startAsync.js +36 -11
  438. package/build/src/start/startAsync.js.map +1 -1
  439. package/build/src/utils/FileNotifier.js +32 -8
  440. package/build/src/utils/FileNotifier.js.map +1 -1
  441. package/build/src/utils/analytics/getDevClientProperties.js +26 -8
  442. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  443. package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
  444. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  445. package/build/src/utils/args.js +32 -8
  446. package/build/src/utils/args.js.map +1 -1
  447. package/build/src/utils/cocoapods.js +64 -28
  448. package/build/src/utils/cocoapods.js.map +1 -1
  449. package/build/src/utils/codesigning.js +79 -29
  450. package/build/src/utils/codesigning.js.map +1 -1
  451. package/build/src/utils/createFileTransform.js +24 -69
  452. package/build/src/utils/createFileTransform.js.map +1 -1
  453. package/build/src/utils/dir.js +33 -26
  454. package/build/src/utils/dir.js.map +1 -1
  455. package/build/src/utils/downloadAppAsync.js +40 -10
  456. package/build/src/utils/downloadAppAsync.js.map +1 -1
  457. package/build/src/utils/downloadExpoGoAsync.js +26 -11
  458. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  459. package/build/src/utils/editor.js +18 -6
  460. package/build/src/utils/editor.js.map +1 -1
  461. package/build/src/utils/env.js +40 -31
  462. package/build/src/utils/env.js.map +1 -1
  463. package/build/src/utils/errors.js +20 -5
  464. package/build/src/utils/errors.js.map +1 -1
  465. package/build/src/utils/findUp.js +18 -6
  466. package/build/src/utils/findUp.js.map +1 -1
  467. package/build/src/utils/getOrPromptApplicationId.js +19 -7
  468. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  469. package/build/src/utils/getRunningProcess.js +18 -6
  470. package/build/src/utils/getRunningProcess.js.map +1 -1
  471. package/build/src/utils/git.js +18 -6
  472. package/build/src/utils/git.js.map +1 -1
  473. package/build/src/utils/glob.js +9 -3
  474. package/build/src/utils/glob.js.map +1 -1
  475. package/build/src/utils/ip.js +8 -2
  476. package/build/src/utils/ip.js.map +1 -1
  477. package/build/src/utils/isModuleSymlinked.js +16 -4
  478. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  479. package/build/src/utils/link.js +18 -6
  480. package/build/src/utils/link.js.map +1 -1
  481. package/build/src/utils/mergeGitIgnorePaths.js +25 -13
  482. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  483. package/build/src/utils/modifyConfigAsync.js +18 -6
  484. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  485. package/build/src/utils/modifyConfigPlugins.js +8 -2
  486. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  487. package/build/src/utils/nodeEnv.js +2 -0
  488. package/build/src/utils/nodeEnv.js.map +1 -1
  489. package/build/src/utils/nodeModules.js +23 -5
  490. package/build/src/utils/nodeModules.js.map +1 -1
  491. package/build/src/utils/npm.js +64 -17
  492. package/build/src/utils/npm.js.map +1 -1
  493. package/build/src/utils/open.js +9 -3
  494. package/build/src/utils/open.js.map +1 -1
  495. package/build/src/utils/ora.js +16 -4
  496. package/build/src/utils/ora.js.map +1 -1
  497. package/build/src/utils/plist.js +24 -6
  498. package/build/src/utils/plist.js.map +1 -1
  499. package/build/src/utils/port.js +22 -10
  500. package/build/src/utils/port.js.map +1 -1
  501. package/build/src/utils/profile.js +8 -2
  502. package/build/src/utils/profile.js.map +1 -1
  503. package/build/src/utils/progress.js +8 -2
  504. package/build/src/utils/progress.js.map +1 -1
  505. package/build/src/utils/prompts.js +16 -4
  506. package/build/src/utils/prompts.js.map +1 -1
  507. package/build/src/utils/scheme.js +75 -23
  508. package/build/src/utils/scheme.js.map +1 -1
  509. package/build/src/utils/tar.js +16 -4
  510. package/build/src/utils/tar.js.map +1 -1
  511. package/build/src/utils/telemetry/DetachedClient.js +87 -0
  512. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  513. package/build/src/utils/telemetry/RudderClient.js +98 -0
  514. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  515. package/build/src/utils/telemetry/flushDetached.js +43 -0
  516. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  517. package/build/src/utils/telemetry/getContext.js +92 -0
  518. package/build/src/utils/telemetry/getContext.js.map +1 -0
  519. package/build/src/utils/telemetry/index.js +32 -0
  520. package/build/src/utils/telemetry/index.js.map +1 -0
  521. package/build/src/utils/telemetry/types.js +6 -0
  522. package/build/src/utils/telemetry/types.js.map +1 -0
  523. package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
  524. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  525. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
  526. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  527. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
  528. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  529. package/build/src/utils/url.js +19 -10
  530. package/build/src/utils/url.js.map +1 -1
  531. package/build/src/utils/validateApplicationId.js +18 -6
  532. package/build/src/utils/validateApplicationId.js.map +1 -1
  533. package/build/src/whoami/whoamiAsync.js +8 -2
  534. package/build/src/whoami/whoamiAsync.js.map +1 -1
  535. package/package.json +15 -16
  536. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  537. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  538. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  539. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  540. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  541. package/build/src/run/android/resolveGradleProps.js +0 -37
  542. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  543. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  544. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  545. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  546. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  547. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  548. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  549. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  550. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  551. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  552. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  553. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  554. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  555. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  556. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  557. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  558. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  559. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  560. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  561. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  562. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  563. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  564. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  565. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  566. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  567. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  568. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  569. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  570. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -7,13 +7,38 @@ exports.withExtendedResolver = withExtendedResolver;
7
7
  exports.shouldAliasAssetRegistryForWeb = shouldAliasAssetRegistryForWeb;
8
8
  exports.shouldAliasModule = shouldAliasModule;
9
9
  exports.withMetroMultiPlatformAsync = withMetroMultiPlatformAsync;
10
- var _fs = _interopRequireDefault(require("fs"));
11
- var metroResolver = _interopRequireWildcard(require("metro-resolver"));
12
- var _path = _interopRequireDefault(require("path"));
13
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
10
+ function _fs() {
11
+ const data = _interopRequireDefault(require("fs"));
12
+ _fs = function() {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function metroResolver() {
18
+ const data = _interopRequireWildcard(require("metro-resolver"));
19
+ metroResolver = function() {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _path() {
25
+ const data = _interopRequireDefault(require("path"));
26
+ _path = function() {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _resolveFrom() {
32
+ const data = _interopRequireDefault(require("resolve-from"));
33
+ _resolveFrom = function() {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
14
38
  var _createExpoMetroResolver = require("./createExpoMetroResolver");
15
39
  var _externals = require("./externals");
16
40
  var _metroErrors = require("./metroErrors");
41
+ var _metroVirtualModules = require("./metroVirtualModules");
17
42
  var _withMetroResolvers = require("./withMetroResolvers");
18
43
  var _log = require("../../../log");
19
44
  var _fileNotifier = require("../../../utils/FileNotifier");
@@ -22,6 +47,7 @@ var _exit = require("../../../utils/exit");
22
47
  var _interactive = require("../../../utils/interactive");
23
48
  var _loadTsConfigPaths = require("../../../utils/tsconfig/loadTsConfigPaths");
24
49
  var _resolveWithTsConfigPaths = require("../../../utils/tsconfig/resolveWithTsConfigPaths");
50
+ var _metroOptions = require("../middleware/metroOptions");
25
51
  function _interopRequireDefault(obj) {
26
52
  return obj && obj.__esModule ? obj : {
27
53
  default: obj
@@ -49,21 +75,30 @@ function _interopRequireWildcard(obj) {
49
75
  }
50
76
  }
51
77
  const debug = require("debug")("expo:start:server:metro:multi-platform");
52
- function withWebPolyfills(config) {
78
+ function withWebPolyfills(config, { getMetroBundler }) {
53
79
  const originalGetPolyfills = config.serializer.getPolyfills ? config.serializer.getPolyfills.bind(config.serializer) : ()=>[]
54
80
  ;
55
81
  const getPolyfills = (ctx)=>{
82
+ const virtualModuleId = `\0polyfill:external-require`;
83
+ const contents = (()=>{
84
+ if (ctx.platform === "web") {
85
+ return `global.$$require_external = typeof window === "undefined" ? require : () => null;`;
86
+ } else {
87
+ // Wrap in try/catch to support Android.
88
+ return 'try { global.$$require_external = typeof expo === "undefined" ? eval("require") : (moduleId) => { throw new Error(`Node.js standard library module ${moduleId} is not available in this JavaScript environment`);} } catch { global.$$require_external = (moduleId) => { throw new Error(`Node.js standard library module ${moduleId} is not available in this JavaScript environment`);} }';
89
+ }
90
+ })();
91
+ (0, _metroVirtualModules).getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(virtualModuleId, contents);
56
92
  if (ctx.platform === "web") {
57
93
  return [
58
- // NOTE: We might need this for all platforms
59
- _path.default.join(config.projectRoot, _externals.EXTERNAL_REQUIRE_POLYFILL)
94
+ virtualModuleId
60
95
  ];
61
96
  }
62
97
  // Generally uses `rn-get-polyfills`
63
98
  const polyfills = originalGetPolyfills(ctx);
64
99
  return [
65
100
  ...polyfills,
66
- _path.default.join(config.projectRoot, _externals.EXTERNAL_REQUIRE_NATIVE_POLYFILL)
101
+ virtualModuleId
67
102
  ];
68
103
  };
69
104
  return {
@@ -90,16 +125,19 @@ function getNodejsExtensions(srcExts) {
90
125
  nodejsSourceExtensions.splice(jsIndex + 1, 0, ...mjsExts);
91
126
  return nodejsSourceExtensions;
92
127
  }
93
- function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFastResolverEnabled , isExporting }) {
128
+ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFastResolverEnabled , isExporting , isReactCanaryEnabled , getMetroBundler }) {
94
129
  var ref5, ref1, ref2, ref3;
95
130
  if (isFastResolverEnabled) {
96
131
  _log.Log.warn(`Experimental bundling features are enabled.`);
97
132
  }
133
+ if (isReactCanaryEnabled) {
134
+ _log.Log.warn(`Experimental React Canary version is enabled.`);
135
+ }
98
136
  // Get the `transformer.assetRegistryPath`
99
137
  // this needs to be unified since you can't dynamically
100
138
  // swap out the transformer based on platform.
101
- const assetRegistryPath = _fs.default.realpathSync(_path.default.resolve((0, _resolveFrom).default(config.projectRoot, "@react-native/assets-registry/registry.js")));
102
- const defaultResolver = metroResolver.resolve;
139
+ const assetRegistryPath = _fs().default.realpathSync(_path().default.resolve(_resolveFrom().default(config.projectRoot, "@react-native/assets-registry/registry.js")));
140
+ const defaultResolver = metroResolver().resolve;
103
141
  var ref4;
104
142
  const resolver = isFastResolverEnabled ? (0, _createExpoMetroResolver).createFastResolver({
105
143
  preserveSymlinks: (ref4 = (ref5 = config.resolver) == null ? void 0 : ref5.unstable_enableSymlinks) != null ? ref4 : true,
@@ -115,7 +153,7 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
115
153
  };
116
154
  const universalAliases = [];
117
155
  // This package is currently always installed as it is included in the `expo` package.
118
- if (_resolveFrom.default.silent(config.projectRoot, "@expo/vector-icons")) {
156
+ if (_resolveFrom().default.silent(config.projectRoot, "@expo/vector-icons")) {
119
157
  debug("Enabling alias: react-native-vector-icons -> @expo/vector-icons");
120
158
  universalAliases.push([
121
159
  /^react-native-vector-icons(\/.*)?/,
@@ -174,7 +212,6 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
174
212
  }
175
213
  }
176
214
  let nodejsSourceExtensions = null;
177
- const shimsFolder = _path.default.join(config.projectRoot, _externals.METRO_SHIMS_FOLDER);
178
215
  function getStrictResolver({ resolveRequest , ...context }, platform) {
179
216
  return function doResolve(moduleName) {
180
217
  return resolver(context, moduleName, platform);
@@ -197,6 +234,28 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
197
234
  };
198
235
  }
199
236
  const metroConfigWithCustomResolver = (0, _withMetroResolvers).withMetroResolvers(config, [
237
+ // Mock out production react imports in development.
238
+ (context, moduleName, platform)=>{
239
+ // This resolution is dev-only to prevent bundling the production React packages in development.
240
+ // @ts-expect-error: dev is not on type.
241
+ if (!context.dev) return null;
242
+ if (// Match react-native renderers.
243
+ (platform !== "web" && context.originModulePath.match(/[\\/]node_modules[\\/]react-native[\\/]/) && moduleName.match(/([\\/]ReactFabric|ReactNativeRenderer)-prod/)) || // Match react production imports.
244
+ (moduleName.match(/\.production(\.min)?\.js$/) && // Match if the import originated from a react package.
245
+ context.originModulePath.match(/[\\/]node_modules[\\/](react[-\\/]|scheduler[\\/])/))) {
246
+ debug(`Skipping production module: ${moduleName}`);
247
+ // /Users/path/to/expo/node_modules/react/index.js ./cjs/react.production.min.js
248
+ // /Users/path/to/expo/node_modules/react/jsx-dev-runtime.js ./cjs/react-jsx-dev-runtime.production.min.js
249
+ // /Users/path/to/expo/node_modules/react-is/index.js ./cjs/react-is.production.min.js
250
+ // /Users/path/to/expo/node_modules/react-refresh/runtime.js ./cjs/react-refresh-runtime.production.min.js
251
+ // /Users/path/to/expo/node_modules/react-native/node_modules/scheduler/index.native.js ./cjs/scheduler.native.production.min.js
252
+ // /Users/path/to/expo/node_modules/react-native/node_modules/react-is/index.js ./cjs/react-is.production.min.js
253
+ return {
254
+ type: "empty"
255
+ };
256
+ }
257
+ return null;
258
+ },
200
259
  // tsconfig paths
201
260
  (context, moduleName, platform)=>{
202
261
  var ref;
@@ -207,18 +266,19 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
207
266
  },
208
267
  // Node.js externals support
209
268
  (context, moduleName, platform)=>{
210
- var // In browser runtimes, we want to either resolve a local node module by the same name, or shim the module to
211
- // prevent crashing when Node.js built-ins are imported.
212
- ref;
213
- // This is a web-only feature, we may extend the shimming to native platforms in the future.
214
- if (platform !== "web") {
269
+ var ref, ref6;
270
+ const isServer = ((ref = context.customResolverOptions) == null ? void 0 : ref.environment) === "node" || ((ref6 = context.customResolverOptions) == null ? void 0 : ref6.environment) === "react-server";
271
+ if (platform !== "web" && !isServer) {
272
+ // This is a web/server-only feature, we may extend the shimming to native platforms in the future.
215
273
  return null;
216
274
  }
217
275
  const moduleId = (0, _externals).isNodeExternal(moduleName);
218
276
  if (!moduleId) {
219
277
  return null;
220
278
  }
221
- if (((ref = context.customResolverOptions) == null ? void 0 : ref.environment) !== "node") {
279
+ if (// In browser runtimes, we want to either resolve a local node module by the same name, or shim the module to
280
+ // prevent crashing when Node.js built-ins are imported.
281
+ !isServer) {
222
282
  // Perform optional resolve first. If the module doesn't exist (no module in the node_modules)
223
283
  // then we can mock the file to use an empty module.
224
284
  const result = getOptionalResolver(context, platform)(moduleName);
@@ -227,9 +287,14 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
227
287
  type: "empty"
228
288
  };
229
289
  }
230
- const redirectedModuleName = (0, _externals).getNodeExternalModuleId(context.originModulePath, moduleId);
231
- debug(`Redirecting Node.js external "${moduleId}" to "${redirectedModuleName}"`);
232
- return getStrictResolver(context, platform)(redirectedModuleName);
290
+ const contents = `module.exports=$$require_external('node:${moduleId}');`;
291
+ debug(`Virtualizing Node.js "${moduleId}"`);
292
+ const virtualModuleId = `\0node:${moduleId}`;
293
+ (0, _metroVirtualModules).getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(virtualModuleId, contents);
294
+ return {
295
+ type: "sourceFile",
296
+ filePath: virtualModuleId
297
+ };
233
298
  },
234
299
  // Basic moduleId aliases
235
300
  (context, moduleName, platform)=>{
@@ -272,21 +337,46 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
272
337
  if (result.type !== "sourceFile") {
273
338
  return result;
274
339
  }
275
- // Replace the web resolver with the original one.
276
- // This is basically an alias for web-only.
277
- // TODO: Drop this in favor of the standalone asset registry module.
278
- if (shouldAliasAssetRegistryForWeb(platform, result)) {
279
- // @ts-expect-error: `readonly` for some reason.
280
- result.filePath = assetRegistryPath;
281
- }
282
- if (platform === "web" && result.filePath.includes("node_modules")) {
283
- // Replace with static shims
284
- const normalName = normalizeSlashes(result.filePath)// Drop everything up until the `node_modules` folder.
285
- .replace(/.*node_modules\//, "");
286
- const shimPath = _path.default.join(shimsFolder, normalName);
287
- if (_fs.default.existsSync(shimPath)) {
340
+ if (platform === "web") {
341
+ // Replace the web resolver with the original one.
342
+ // This is basically an alias for web-only.
343
+ // TODO: Drop this in favor of the standalone asset registry module.
344
+ if (shouldAliasAssetRegistryForWeb(platform, result)) {
288
345
  // @ts-expect-error: `readonly` for some reason.
289
- result.filePath = shimPath;
346
+ result.filePath = assetRegistryPath;
347
+ }
348
+ if (platform === "web" && result.filePath.includes("node_modules")) {
349
+ // Replace with static shims
350
+ const normalName = normalizeSlashes(result.filePath)// Drop everything up until the `node_modules` folder.
351
+ .replace(/.*node_modules\//, "");
352
+ const shimFile = (0, _externals).shouldCreateVirtualShim(normalName);
353
+ if (shimFile) {
354
+ const virtualId = `\0shim:${normalName}`;
355
+ const bundler = (0, _metroVirtualModules).getMetroBundlerWithVirtualModules(getMetroBundler());
356
+ if (!bundler.hasVirtualModule(virtualId)) {
357
+ bundler.setVirtualModule(virtualId, _fs().default.readFileSync(shimFile, "utf8"));
358
+ }
359
+ debug(`Redirecting module "${result.filePath}" to shim`);
360
+ return {
361
+ ...result,
362
+ filePath: virtualId
363
+ };
364
+ }
365
+ }
366
+ } else {
367
+ // When server components are enabled, redirect React Native's renderer to the canary build
368
+ // this will enable the use hook and other requisite features from React 19.
369
+ if (isReactCanaryEnabled && result.filePath.includes("node_modules")) {
370
+ const normalName = normalizeSlashes(result.filePath)// Drop everything up until the `node_modules` folder.
371
+ .replace(/.*node_modules\//, "");
372
+ const canaryFile = (0, _externals).shouldCreateVirtualCanary(normalName);
373
+ if (canaryFile) {
374
+ debug(`Redirecting React Native module "${result.filePath}" to canary build`);
375
+ return {
376
+ ...result,
377
+ filePath: canaryFile
378
+ };
379
+ }
290
380
  }
291
381
  }
292
382
  return result;
@@ -299,7 +389,8 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
299
389
  ...immutableContext,
300
390
  preferNativePlatform: platform !== "web"
301
391
  };
302
- if (((ref = context.customResolverOptions) == null ? void 0 : ref.environment) === "node") {
392
+ if ((0, _metroOptions).isServerEnvironment((ref = context.customResolverOptions) == null ? void 0 : ref.environment)) {
393
+ var ref7;
303
394
  // Adjust nodejs source extensions to sort mjs after js, including platform variants.
304
395
  if (nodejsSourceExtensions === null) {
305
396
  nodejsSourceExtensions = getNodejsExtensions(context.sourceExts);
@@ -317,6 +408,15 @@ function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFa
317
408
  "main",
318
409
  "module"
319
410
  ];
411
+ // Enable react-server import conditions.
412
+ if (((ref7 = context.customResolverOptions) == null ? void 0 : ref7.environment) === "react-server") {
413
+ context.unstable_conditionNames = [
414
+ "node",
415
+ "require",
416
+ "react-server",
417
+ "server"
418
+ ];
419
+ }
320
420
  } else {
321
421
  // Non-server changes
322
422
  if (!_env.env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE && platform && platform in preferredMainFields) {
@@ -331,10 +431,10 @@ function shouldAliasAssetRegistryForWeb(platform, result) {
331
431
  return platform === "web" && (result == null ? void 0 : result.type) === "sourceFile" && typeof (result == null ? void 0 : result.filePath) === "string" && normalizeSlashes(result.filePath).endsWith("react-native-web/dist/modules/AssetRegistry/index.js");
332
432
  }
333
433
  function shouldAliasModule(input, alias) {
334
- var ref, ref6;
335
- return input.platform === alias.platform && ((ref = input.result) == null ? void 0 : ref.type) === "sourceFile" && typeof ((ref6 = input.result) == null ? void 0 : ref6.filePath) === "string" && normalizeSlashes(input.result.filePath).endsWith(alias.output);
434
+ var ref, ref8;
435
+ return input.platform === alias.platform && ((ref = input.result) == null ? void 0 : ref.type) === "sourceFile" && typeof ((ref8 = input.result) == null ? void 0 : ref8.filePath) === "string" && normalizeSlashes(input.result.filePath).endsWith(alias.output);
336
436
  }
337
- async function withMetroMultiPlatformAsync(projectRoot, { config , exp , platformBundlers , isTsconfigPathsEnabled , webOutput , isFastResolverEnabled , isExporting }) {
437
+ async function withMetroMultiPlatformAsync(projectRoot, { config , exp , platformBundlers , isTsconfigPathsEnabled , webOutput , isFastResolverEnabled , isExporting , isReactCanaryEnabled , getMetroBundler }) {
338
438
  if (!config.projectRoot) {
339
439
  // @ts-expect-error: read-only types
340
440
  config.projectRoot = projectRoot;
@@ -356,18 +456,16 @@ async function withMetroMultiPlatformAsync(projectRoot, { config , exp , platfor
356
456
  config.watchFolders = [];
357
457
  }
358
458
  // @ts-expect-error: watchFolders is readonly
359
- config.watchFolders.push(_path.default.join(require.resolve("metro-runtime/package.json"), "../.."));
459
+ config.watchFolders.push(_path().default.join(require.resolve("metro-runtime/package.json"), "../.."));
360
460
  }
361
461
  // @ts-expect-error
362
462
  config.transformer._expoRouterWebRendering = webOutput;
363
463
  // @ts-expect-error: Invalidate the cache when the location of expo-router changes on-disk.
364
- config.transformer._expoRouterPath = _resolveFrom.default.silent(projectRoot, "expo-router");
464
+ config.transformer._expoRouterPath = _resolveFrom().default.silent(projectRoot, "expo-router");
365
465
  let tsconfig = null;
366
466
  if (isTsconfigPathsEnabled) {
367
467
  tsconfig = await (0, _loadTsConfigPaths).loadTsConfigPathsAsync(projectRoot);
368
468
  }
369
- await (0, _externals).setupShimFiles(projectRoot);
370
- await (0, _externals).setupNodeExternals(projectRoot);
371
469
  let expoConfigPlatforms = Object.entries(platformBundlers).filter(([platform, bundler])=>{
372
470
  var ref;
373
471
  return bundler === "metro" && ((ref = exp.platforms) == null ? void 0 : ref.includes(platform));
@@ -380,12 +478,16 @@ async function withMetroMultiPlatformAsync(projectRoot, { config , exp , platfor
380
478
  }
381
479
  // @ts-expect-error: typed as `readonly`.
382
480
  config.resolver.platforms = expoConfigPlatforms;
383
- config = withWebPolyfills(config);
481
+ config = withWebPolyfills(config, {
482
+ getMetroBundler
483
+ });
384
484
  return withExtendedResolver(config, {
385
485
  tsconfig,
386
486
  isExporting,
387
487
  isTsconfigPathsEnabled,
388
- isFastResolverEnabled
488
+ isFastResolverEnabled,
489
+ isReactCanaryEnabled,
490
+ getMetroBundler
389
491
  });
390
492
  }
391
493
  function isDirectoryIn(a, b) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/withMetroMultiPlatform.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ExpoConfig, Platform } from '@expo/config';\nimport fs from 'fs';\nimport { ConfigT } from 'metro-config';\nimport { Resolution, ResolutionContext, CustomResolutionContext } from 'metro-resolver';\nimport * as metroResolver from 'metro-resolver';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { createFastResolver } from './createExpoMetroResolver';\nimport {\n EXTERNAL_REQUIRE_NATIVE_POLYFILL,\n EXTERNAL_REQUIRE_POLYFILL,\n METRO_SHIMS_FOLDER,\n getNodeExternalModuleId,\n isNodeExternal,\n setupNodeExternals,\n setupShimFiles,\n} from './externals';\nimport { isFailedToResolveNameError, isFailedToResolvePathError } from './metroErrors';\nimport {\n withMetroErrorReportingResolver,\n withMetroMutatedResolverContext,\n withMetroResolvers,\n} from './withMetroResolvers';\nimport { Log } from '../../../log';\nimport { FileNotifier } from '../../../utils/FileNotifier';\nimport { env } from '../../../utils/env';\nimport { installExitHooks } from '../../../utils/exit';\nimport { isInteractive } from '../../../utils/interactive';\nimport { loadTsConfigPathsAsync, TsConfigPaths } from '../../../utils/tsconfig/loadTsConfigPaths';\nimport { resolveWithTsConfigPaths } from '../../../utils/tsconfig/resolveWithTsConfigPaths';\nimport { PlatformBundlers } from '../platformBundlers';\n\ntype Mutable<T> = { -readonly [K in keyof T]: T[K] };\n\nconst debug = require('debug')('expo:start:server:metro:multi-platform') as typeof console.log;\n\nfunction withWebPolyfills(config: ConfigT): ConfigT {\n const originalGetPolyfills = config.serializer.getPolyfills\n ? config.serializer.getPolyfills.bind(config.serializer)\n : () => [];\n\n const getPolyfills = (ctx: { platform: string | null }): readonly string[] => {\n if (ctx.platform === 'web') {\n return [\n // NOTE: We might need this for all platforms\n path.join(config.projectRoot, EXTERNAL_REQUIRE_POLYFILL),\n // TODO: runtime polyfills, i.e. Fast Refresh, error overlay, React Dev Tools...\n ];\n }\n // Generally uses `rn-get-polyfills`\n const polyfills = originalGetPolyfills(ctx);\n\n return [...polyfills, path.join(config.projectRoot, EXTERNAL_REQUIRE_NATIVE_POLYFILL)];\n };\n\n return {\n ...config,\n serializer: {\n ...config.serializer,\n getPolyfills,\n },\n };\n}\n\nfunction normalizeSlashes(p: string) {\n return p.replace(/\\\\/g, '/');\n}\n\nexport function getNodejsExtensions(srcExts: readonly string[]): string[] {\n const mjsExts = srcExts.filter((ext) => /mjs$/.test(ext));\n const nodejsSourceExtensions = srcExts.filter((ext) => !/mjs$/.test(ext));\n // find index of last `*.js` extension\n const jsIndex = nodejsSourceExtensions.reduce((index, ext, i) => {\n return /jsx?$/.test(ext) ? i : index;\n }, -1);\n\n // insert `*.mjs` extensions after `*.js` extensions\n nodejsSourceExtensions.splice(jsIndex + 1, 0, ...mjsExts);\n\n return nodejsSourceExtensions;\n}\n\n/**\n * Apply custom resolvers to do the following:\n * - Disable `.native.js` extensions on web.\n * - Alias `react-native` to `react-native-web` on web.\n * - Redirect `react-native-web/dist/modules/AssetRegistry/index.js` to `@react-native/assets/registry.js` on web.\n * - Add support for `tsconfig.json`/`jsconfig.json` aliases via `compilerOptions.paths`.\n */\nexport function withExtendedResolver(\n config: ConfigT,\n {\n tsconfig,\n isTsconfigPathsEnabled,\n isFastResolverEnabled,\n isExporting,\n }: {\n tsconfig: TsConfigPaths | null;\n isTsconfigPathsEnabled?: boolean;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n }\n) {\n if (isFastResolverEnabled) {\n Log.warn(`Experimental bundling features are enabled.`);\n }\n\n // Get the `transformer.assetRegistryPath`\n // this needs to be unified since you can't dynamically\n // swap out the transformer based on platform.\n const assetRegistryPath = fs.realpathSync(\n path.resolve(resolveFrom(config.projectRoot, '@react-native/assets-registry/registry.js'))\n );\n\n const defaultResolver = metroResolver.resolve;\n const resolver = isFastResolverEnabled\n ? createFastResolver({\n preserveSymlinks: config.resolver?.unstable_enableSymlinks ?? true,\n blockList: Array.isArray(config.resolver?.blockList)\n ? config.resolver?.blockList\n : [config.resolver?.blockList],\n })\n : defaultResolver;\n\n const aliases: { [key: string]: Record<string, string> } = {\n web: {\n 'react-native': 'react-native-web',\n 'react-native/index': 'react-native-web',\n },\n };\n\n const universalAliases: [RegExp, string][] = [];\n\n // This package is currently always installed as it is included in the `expo` package.\n if (resolveFrom.silent(config.projectRoot, '@expo/vector-icons')) {\n debug('Enabling alias: react-native-vector-icons -> @expo/vector-icons');\n universalAliases.push([/^react-native-vector-icons(\\/.*)?/, '@expo/vector-icons$1']);\n }\n\n const preferredMainFields: { [key: string]: string[] } = {\n // Defaults from Expo Webpack. Most packages using `react-native` don't support web\n // in the `react-native` field, so we should prefer the `browser` field.\n // https://github.com/expo/router/issues/37\n web: ['browser', 'module', 'main'],\n };\n\n let tsConfigResolve =\n isTsconfigPathsEnabled && (tsconfig?.paths || tsconfig?.baseUrl != null)\n ? resolveWithTsConfigPaths.bind(resolveWithTsConfigPaths, {\n paths: tsconfig.paths ?? {},\n baseUrl: tsconfig.baseUrl ?? config.projectRoot,\n hasBaseUrl: !!tsconfig.baseUrl,\n })\n : null;\n\n // TODO: Move this to be a transform key for invalidation.\n if (!isExporting && isInteractive()) {\n if (isTsconfigPathsEnabled) {\n // TODO: We should track all the files that used imports and invalidate them\n // currently the user will need to save all the files that use imports to\n // use the new aliases.\n const configWatcher = new FileNotifier(config.projectRoot, [\n './tsconfig.json',\n './jsconfig.json',\n ]);\n configWatcher.startObserving(() => {\n debug('Reloading tsconfig.json');\n loadTsConfigPathsAsync(config.projectRoot).then((tsConfigPaths) => {\n if (tsConfigPaths?.paths && !!Object.keys(tsConfigPaths.paths).length) {\n debug('Enabling tsconfig.json paths support');\n tsConfigResolve = resolveWithTsConfigPaths.bind(resolveWithTsConfigPaths, {\n paths: tsConfigPaths.paths ?? {},\n baseUrl: tsConfigPaths.baseUrl ?? config.projectRoot,\n hasBaseUrl: !!tsConfigPaths.baseUrl,\n });\n } else {\n debug('Disabling tsconfig.json paths support');\n tsConfigResolve = null;\n }\n });\n });\n\n // TODO: This probably prevents the process from exiting.\n installExitHooks(() => {\n configWatcher.stopObserving();\n });\n } else {\n debug('Skipping tsconfig.json paths support');\n }\n }\n\n let nodejsSourceExtensions: string[] | null = null;\n\n const shimsFolder = path.join(config.projectRoot, METRO_SHIMS_FOLDER);\n\n function getStrictResolver(\n { resolveRequest, ...context }: ResolutionContext,\n platform: string | null\n ) {\n return function doResolve(moduleName: string): Resolution {\n return resolver(context, moduleName, platform);\n };\n }\n\n function getOptionalResolver(context: ResolutionContext, platform: string | null) {\n const doResolve = getStrictResolver(context, platform);\n return function optionalResolve(moduleName: string): Resolution | null {\n try {\n return doResolve(moduleName);\n } catch (error) {\n // If the error is directly related to a resolver not being able to resolve a module, then\n // we can ignore the error and try the next resolver. Otherwise, we should throw the error.\n const isResolutionError =\n isFailedToResolveNameError(error) || isFailedToResolvePathError(error);\n if (!isResolutionError) {\n throw error;\n }\n }\n return null;\n };\n }\n\n const metroConfigWithCustomResolver = withMetroResolvers(config, [\n // tsconfig paths\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n return (\n tsConfigResolve?.(\n {\n originModulePath: context.originModulePath,\n moduleName,\n },\n getOptionalResolver(context, platform)\n ) ?? null\n );\n },\n\n // Node.js externals support\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // This is a web-only feature, we may extend the shimming to native platforms in the future.\n if (platform !== 'web') {\n return null;\n }\n\n const moduleId = isNodeExternal(moduleName);\n if (!moduleId) {\n return null;\n }\n\n if (\n // In browser runtimes, we want to either resolve a local node module by the same name, or shim the module to\n // prevent crashing when Node.js built-ins are imported.\n context.customResolverOptions?.environment !== 'node'\n ) {\n // Perform optional resolve first. If the module doesn't exist (no module in the node_modules)\n // then we can mock the file to use an empty module.\n const result = getOptionalResolver(context, platform)(moduleName);\n return (\n result ?? {\n // In this case, mock the file to use an empty module.\n type: 'empty',\n }\n );\n }\n\n const redirectedModuleName = getNodeExternalModuleId(context.originModulePath, moduleId);\n debug(`Redirecting Node.js external \"${moduleId}\" to \"${redirectedModuleName}\"`);\n return getStrictResolver(context, platform)(redirectedModuleName);\n },\n\n // Basic moduleId aliases\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // Conditionally remap `react-native` to `react-native-web` on web in\n // a way that doesn't require Babel to resolve the alias.\n if (platform && platform in aliases && aliases[platform][moduleName]) {\n const redirectedModuleName = aliases[platform][moduleName];\n return getStrictResolver(context, platform)(redirectedModuleName);\n }\n\n for (const [matcher, alias] of universalAliases) {\n const match = moduleName.match(matcher);\n if (match) {\n const aliasedModule = alias.replace(\n /\\$(\\d+)/g,\n (_, index) => match[parseInt(index, 10)] ?? ''\n );\n const doResolve = getStrictResolver(context, platform);\n debug(`Alias \"${moduleName}\" to \"${aliasedModule}\"`);\n return doResolve(aliasedModule);\n }\n }\n\n return null;\n },\n\n // HACK(EvanBacon):\n // React Native uses `event-target-shim` incorrectly and this causes the native runtime\n // to fail to load. This is a temporary workaround until we can fix this upstream.\n // https://github.com/facebook/react-native/pull/38628\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (platform !== 'web' && moduleName === 'event-target-shim') {\n debug('For event-target-shim to use js:', context.originModulePath);\n const doResolve = getStrictResolver(context, platform);\n return doResolve('event-target-shim/dist/event-target-shim.js');\n }\n\n return null;\n },\n\n // TODO: Reduce these as much as possible in the future.\n // Complex post-resolution rewrites.\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n const doResolve = getStrictResolver(context, platform);\n\n const result = doResolve(moduleName);\n\n if (result.type !== 'sourceFile') {\n return result;\n }\n\n // Replace the web resolver with the original one.\n // This is basically an alias for web-only.\n // TODO: Drop this in favor of the standalone asset registry module.\n if (shouldAliasAssetRegistryForWeb(platform, result)) {\n // @ts-expect-error: `readonly` for some reason.\n result.filePath = assetRegistryPath;\n }\n\n if (platform === 'web' && result.filePath.includes('node_modules')) {\n // Replace with static shims\n\n const normalName = normalizeSlashes(result.filePath)\n // Drop everything up until the `node_modules` folder.\n .replace(/.*node_modules\\//, '');\n\n const shimPath = path.join(shimsFolder, normalName);\n if (fs.existsSync(shimPath)) {\n // @ts-expect-error: `readonly` for some reason.\n result.filePath = shimPath;\n }\n }\n\n return result;\n },\n ]);\n\n // Ensure we mutate the resolution context to include the custom resolver options for server and web.\n const metroConfigWithCustomContext = withMetroMutatedResolverContext(\n metroConfigWithCustomResolver,\n (\n immutableContext: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ): CustomResolutionContext => {\n const context: Mutable<CustomResolutionContext> = {\n ...immutableContext,\n preferNativePlatform: platform !== 'web',\n };\n\n if (context.customResolverOptions?.environment === 'node') {\n // Adjust nodejs source extensions to sort mjs after js, including platform variants.\n if (nodejsSourceExtensions === null) {\n nodejsSourceExtensions = getNodejsExtensions(context.sourceExts);\n }\n context.sourceExts = nodejsSourceExtensions;\n\n context.unstable_enablePackageExports = true;\n context.unstable_conditionNames = ['node', 'require'];\n context.unstable_conditionsByPlatform = {};\n // Node.js runtimes should only be importing main at the moment.\n // This is a temporary fix until we can support the package.json exports.\n context.mainFields = ['main', 'module'];\n } else {\n // Non-server changes\n\n if (!env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE && platform && platform in preferredMainFields) {\n context.mainFields = preferredMainFields[platform];\n }\n }\n\n return context;\n }\n );\n\n return withMetroErrorReportingResolver(metroConfigWithCustomContext);\n}\n\n/** @returns `true` if the incoming resolution should be swapped on web. */\nexport function shouldAliasAssetRegistryForWeb(\n platform: string | null,\n result: Resolution\n): boolean {\n return (\n platform === 'web' &&\n result?.type === 'sourceFile' &&\n typeof result?.filePath === 'string' &&\n normalizeSlashes(result.filePath).endsWith(\n 'react-native-web/dist/modules/AssetRegistry/index.js'\n )\n );\n}\n/** @returns `true` if the incoming resolution should be swapped. */\nexport function shouldAliasModule(\n input: {\n platform: string | null;\n result: Resolution;\n },\n alias: { platform: string; output: string }\n): boolean {\n return (\n input.platform === alias.platform &&\n input.result?.type === 'sourceFile' &&\n typeof input.result?.filePath === 'string' &&\n normalizeSlashes(input.result.filePath).endsWith(alias.output)\n );\n}\n\n/** Add support for `react-native-web` and the Web platform. */\nexport async function withMetroMultiPlatformAsync(\n projectRoot: string,\n {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled,\n webOutput,\n isFastResolverEnabled,\n isExporting,\n }: {\n config: ConfigT;\n exp: ExpoConfig;\n isTsconfigPathsEnabled: boolean;\n platformBundlers: PlatformBundlers;\n webOutput?: 'single' | 'static' | 'server';\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n }\n) {\n if (!config.projectRoot) {\n // @ts-expect-error: read-only types\n config.projectRoot = projectRoot;\n }\n\n // Required for @expo/metro-runtime to format paths in the web LogBox.\n process.env.EXPO_PUBLIC_PROJECT_ROOT = process.env.EXPO_PUBLIC_PROJECT_ROOT ?? projectRoot;\n\n if (['static', 'server'].includes(webOutput ?? '')) {\n // Enable static rendering in runtime space.\n process.env.EXPO_PUBLIC_USE_STATIC = '1';\n }\n\n // This is used for running Expo CLI in development against projects outside the monorepo.\n if (!isDirectoryIn(__dirname, projectRoot)) {\n if (!config.watchFolders) {\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders = [];\n }\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders.push(path.join(require.resolve('metro-runtime/package.json'), '../..'));\n }\n\n // @ts-expect-error\n config.transformer._expoRouterWebRendering = webOutput;\n // @ts-expect-error: Invalidate the cache when the location of expo-router changes on-disk.\n config.transformer._expoRouterPath = resolveFrom.silent(projectRoot, 'expo-router');\n\n let tsconfig: null | TsConfigPaths = null;\n\n if (isTsconfigPathsEnabled) {\n tsconfig = await loadTsConfigPathsAsync(projectRoot);\n }\n\n await setupShimFiles(projectRoot);\n await setupNodeExternals(projectRoot);\n\n let expoConfigPlatforms = Object.entries(platformBundlers)\n .filter(\n ([platform, bundler]) => bundler === 'metro' && exp.platforms?.includes(platform as Platform)\n )\n .map(([platform]) => platform);\n\n if (Array.isArray(config.resolver.platforms)) {\n expoConfigPlatforms = [...new Set(expoConfigPlatforms.concat(config.resolver.platforms))];\n }\n\n // @ts-expect-error: typed as `readonly`.\n config.resolver.platforms = expoConfigPlatforms;\n\n config = withWebPolyfills(config);\n\n return withExtendedResolver(config, {\n tsconfig,\n isExporting,\n isTsconfigPathsEnabled,\n isFastResolverEnabled,\n });\n}\n\nfunction isDirectoryIn(a: string, b: string) {\n return b.startsWith(a) && b.length > a.length;\n}\n"],"names":["getNodejsExtensions","withExtendedResolver","shouldAliasAssetRegistryForWeb","shouldAliasModule","withMetroMultiPlatformAsync","metroResolver","debug","require","withWebPolyfills","config","originalGetPolyfills","serializer","getPolyfills","bind","ctx","platform","path","join","projectRoot","EXTERNAL_REQUIRE_POLYFILL","polyfills","EXTERNAL_REQUIRE_NATIVE_POLYFILL","normalizeSlashes","p","replace","srcExts","mjsExts","filter","ext","test","nodejsSourceExtensions","jsIndex","reduce","index","i","splice","tsconfig","isTsconfigPathsEnabled","isFastResolverEnabled","isExporting","Log","warn","assetRegistryPath","fs","realpathSync","resolve","resolveFrom","defaultResolver","resolver","createFastResolver","preserveSymlinks","unstable_enableSymlinks","blockList","Array","isArray","aliases","web","universalAliases","silent","push","preferredMainFields","tsConfigResolve","paths","baseUrl","resolveWithTsConfigPaths","hasBaseUrl","isInteractive","configWatcher","FileNotifier","startObserving","loadTsConfigPathsAsync","then","tsConfigPaths","Object","keys","length","installExitHooks","stopObserving","shimsFolder","METRO_SHIMS_FOLDER","getStrictResolver","resolveRequest","context","doResolve","moduleName","getOptionalResolver","optionalResolve","error","isResolutionError","isFailedToResolveNameError","isFailedToResolvePathError","metroConfigWithCustomResolver","withMetroResolvers","originModulePath","moduleId","isNodeExternal","customResolverOptions","environment","result","type","redirectedModuleName","getNodeExternalModuleId","matcher","alias","match","aliasedModule","_","parseInt","filePath","includes","normalName","shimPath","existsSync","metroConfigWithCustomContext","withMetroMutatedResolverContext","immutableContext","preferNativePlatform","sourceExts","unstable_enablePackageExports","unstable_conditionNames","unstable_conditionsByPlatform","mainFields","env","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","withMetroErrorReportingResolver","endsWith","input","output","exp","platformBundlers","webOutput","process","EXPO_PUBLIC_PROJECT_ROOT","EXPO_PUBLIC_USE_STATIC","isDirectoryIn","__dirname","watchFolders","transformer","_expoRouterWebRendering","_expoRouterPath","setupShimFiles","setupNodeExternals","expoConfigPlatforms","entries","bundler","platforms","map","Set","concat","a","b","startsWith"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/withMetroMultiPlatform.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ExpoConfig, Platform } from '@expo/config';\nimport fs from 'fs';\nimport Bundler from 'metro/src/Bundler';\nimport { ConfigT } from 'metro-config';\nimport { Resolution, ResolutionContext, CustomResolutionContext } from 'metro-resolver';\nimport * as metroResolver from 'metro-resolver';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { createFastResolver } from './createExpoMetroResolver';\nimport { isNodeExternal, shouldCreateVirtualCanary, shouldCreateVirtualShim } from './externals';\nimport { isFailedToResolveNameError, isFailedToResolvePathError } from './metroErrors';\nimport { getMetroBundlerWithVirtualModules } from './metroVirtualModules';\nimport {\n withMetroErrorReportingResolver,\n withMetroMutatedResolverContext,\n withMetroResolvers,\n} from './withMetroResolvers';\nimport { Log } from '../../../log';\nimport { FileNotifier } from '../../../utils/FileNotifier';\nimport { env } from '../../../utils/env';\nimport { installExitHooks } from '../../../utils/exit';\nimport { isInteractive } from '../../../utils/interactive';\nimport { loadTsConfigPathsAsync, TsConfigPaths } from '../../../utils/tsconfig/loadTsConfigPaths';\nimport { resolveWithTsConfigPaths } from '../../../utils/tsconfig/resolveWithTsConfigPaths';\nimport { isServerEnvironment } from '../middleware/metroOptions';\nimport { PlatformBundlers } from '../platformBundlers';\n\ntype Mutable<T> = { -readonly [K in keyof T]: T[K] };\n\nconst debug = require('debug')('expo:start:server:metro:multi-platform') as typeof console.log;\n\nfunction withWebPolyfills(\n config: ConfigT,\n {\n getMetroBundler,\n }: {\n getMetroBundler: () => Bundler;\n }\n): ConfigT {\n const originalGetPolyfills = config.serializer.getPolyfills\n ? config.serializer.getPolyfills.bind(config.serializer)\n : () => [];\n\n const getPolyfills = (ctx: { platform: string | null }): readonly string[] => {\n const virtualModuleId = `\\0polyfill:external-require`;\n\n const contents = (() => {\n if (ctx.platform === 'web') {\n return `global.$$require_external = typeof window === \"undefined\" ? require : () => null;`;\n } else {\n // Wrap in try/catch to support Android.\n return 'try { global.$$require_external = typeof expo === \"undefined\" ? eval(\"require\") : (moduleId) => { throw new Error(`Node.js standard library module ${moduleId} is not available in this JavaScript environment`);} } catch { global.$$require_external = (moduleId) => { throw new Error(`Node.js standard library module ${moduleId} is not available in this JavaScript environment`);} }';\n }\n })();\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n\n if (ctx.platform === 'web') {\n return [virtualModuleId];\n }\n\n // Generally uses `rn-get-polyfills`\n const polyfills = originalGetPolyfills(ctx);\n return [...polyfills, virtualModuleId];\n };\n\n return {\n ...config,\n serializer: {\n ...config.serializer,\n getPolyfills,\n },\n };\n}\n\nfunction normalizeSlashes(p: string) {\n return p.replace(/\\\\/g, '/');\n}\n\nexport function getNodejsExtensions(srcExts: readonly string[]): string[] {\n const mjsExts = srcExts.filter((ext) => /mjs$/.test(ext));\n const nodejsSourceExtensions = srcExts.filter((ext) => !/mjs$/.test(ext));\n // find index of last `*.js` extension\n const jsIndex = nodejsSourceExtensions.reduce((index, ext, i) => {\n return /jsx?$/.test(ext) ? i : index;\n }, -1);\n\n // insert `*.mjs` extensions after `*.js` extensions\n nodejsSourceExtensions.splice(jsIndex + 1, 0, ...mjsExts);\n\n return nodejsSourceExtensions;\n}\n\n/**\n * Apply custom resolvers to do the following:\n * - Disable `.native.js` extensions on web.\n * - Alias `react-native` to `react-native-web` on web.\n * - Redirect `react-native-web/dist/modules/AssetRegistry/index.js` to `@react-native/assets/registry.js` on web.\n * - Add support for `tsconfig.json`/`jsconfig.json` aliases via `compilerOptions.paths`.\n * - Alias react-native renderer code to a vendored React canary build on native.\n */\nexport function withExtendedResolver(\n config: ConfigT,\n {\n tsconfig,\n isTsconfigPathsEnabled,\n isFastResolverEnabled,\n isExporting,\n isReactCanaryEnabled,\n getMetroBundler,\n }: {\n tsconfig: TsConfigPaths | null;\n isTsconfigPathsEnabled?: boolean;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled?: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (isFastResolverEnabled) {\n Log.warn(`Experimental bundling features are enabled.`);\n }\n if (isReactCanaryEnabled) {\n Log.warn(`Experimental React Canary version is enabled.`);\n }\n\n // Get the `transformer.assetRegistryPath`\n // this needs to be unified since you can't dynamically\n // swap out the transformer based on platform.\n const assetRegistryPath = fs.realpathSync(\n path.resolve(resolveFrom(config.projectRoot, '@react-native/assets-registry/registry.js'))\n );\n\n const defaultResolver = metroResolver.resolve;\n const resolver = isFastResolverEnabled\n ? createFastResolver({\n preserveSymlinks: config.resolver?.unstable_enableSymlinks ?? true,\n blockList: Array.isArray(config.resolver?.blockList)\n ? config.resolver?.blockList\n : [config.resolver?.blockList],\n })\n : defaultResolver;\n\n const aliases: { [key: string]: Record<string, string> } = {\n web: {\n 'react-native': 'react-native-web',\n 'react-native/index': 'react-native-web',\n },\n };\n\n const universalAliases: [RegExp, string][] = [];\n\n // This package is currently always installed as it is included in the `expo` package.\n if (resolveFrom.silent(config.projectRoot, '@expo/vector-icons')) {\n debug('Enabling alias: react-native-vector-icons -> @expo/vector-icons');\n universalAliases.push([/^react-native-vector-icons(\\/.*)?/, '@expo/vector-icons$1']);\n }\n\n const preferredMainFields: { [key: string]: string[] } = {\n // Defaults from Expo Webpack. Most packages using `react-native` don't support web\n // in the `react-native` field, so we should prefer the `browser` field.\n // https://github.com/expo/router/issues/37\n web: ['browser', 'module', 'main'],\n };\n\n let tsConfigResolve =\n isTsconfigPathsEnabled && (tsconfig?.paths || tsconfig?.baseUrl != null)\n ? resolveWithTsConfigPaths.bind(resolveWithTsConfigPaths, {\n paths: tsconfig.paths ?? {},\n baseUrl: tsconfig.baseUrl ?? config.projectRoot,\n hasBaseUrl: !!tsconfig.baseUrl,\n })\n : null;\n\n // TODO: Move this to be a transform key for invalidation.\n if (!isExporting && isInteractive()) {\n if (isTsconfigPathsEnabled) {\n // TODO: We should track all the files that used imports and invalidate them\n // currently the user will need to save all the files that use imports to\n // use the new aliases.\n const configWatcher = new FileNotifier(config.projectRoot, [\n './tsconfig.json',\n './jsconfig.json',\n ]);\n configWatcher.startObserving(() => {\n debug('Reloading tsconfig.json');\n loadTsConfigPathsAsync(config.projectRoot).then((tsConfigPaths) => {\n if (tsConfigPaths?.paths && !!Object.keys(tsConfigPaths.paths).length) {\n debug('Enabling tsconfig.json paths support');\n tsConfigResolve = resolveWithTsConfigPaths.bind(resolveWithTsConfigPaths, {\n paths: tsConfigPaths.paths ?? {},\n baseUrl: tsConfigPaths.baseUrl ?? config.projectRoot,\n hasBaseUrl: !!tsConfigPaths.baseUrl,\n });\n } else {\n debug('Disabling tsconfig.json paths support');\n tsConfigResolve = null;\n }\n });\n });\n\n // TODO: This probably prevents the process from exiting.\n installExitHooks(() => {\n configWatcher.stopObserving();\n });\n } else {\n debug('Skipping tsconfig.json paths support');\n }\n }\n\n let nodejsSourceExtensions: string[] | null = null;\n\n function getStrictResolver(\n { resolveRequest, ...context }: ResolutionContext,\n platform: string | null\n ) {\n return function doResolve(moduleName: string): Resolution {\n return resolver(context, moduleName, platform);\n };\n }\n\n function getOptionalResolver(context: ResolutionContext, platform: string | null) {\n const doResolve = getStrictResolver(context, platform);\n return function optionalResolve(moduleName: string): Resolution | null {\n try {\n return doResolve(moduleName);\n } catch (error) {\n // If the error is directly related to a resolver not being able to resolve a module, then\n // we can ignore the error and try the next resolver. Otherwise, we should throw the error.\n const isResolutionError =\n isFailedToResolveNameError(error) || isFailedToResolvePathError(error);\n if (!isResolutionError) {\n throw error;\n }\n }\n return null;\n };\n }\n\n const metroConfigWithCustomResolver = withMetroResolvers(config, [\n // Mock out production react imports in development.\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // This resolution is dev-only to prevent bundling the production React packages in development.\n // @ts-expect-error: dev is not on type.\n if (!context.dev) return null;\n\n if (\n // Match react-native renderers.\n (platform !== 'web' &&\n context.originModulePath.match(/[\\\\/]node_modules[\\\\/]react-native[\\\\/]/) &&\n moduleName.match(/([\\\\/]ReactFabric|ReactNativeRenderer)-prod/)) ||\n // Match react production imports.\n (moduleName.match(/\\.production(\\.min)?\\.js$/) &&\n // Match if the import originated from a react package.\n context.originModulePath.match(/[\\\\/]node_modules[\\\\/](react[-\\\\/]|scheduler[\\\\/])/))\n ) {\n debug(`Skipping production module: ${moduleName}`);\n // /Users/path/to/expo/node_modules/react/index.js ./cjs/react.production.min.js\n // /Users/path/to/expo/node_modules/react/jsx-dev-runtime.js ./cjs/react-jsx-dev-runtime.production.min.js\n // /Users/path/to/expo/node_modules/react-is/index.js ./cjs/react-is.production.min.js\n // /Users/path/to/expo/node_modules/react-refresh/runtime.js ./cjs/react-refresh-runtime.production.min.js\n // /Users/path/to/expo/node_modules/react-native/node_modules/scheduler/index.native.js ./cjs/scheduler.native.production.min.js\n // /Users/path/to/expo/node_modules/react-native/node_modules/react-is/index.js ./cjs/react-is.production.min.js\n return {\n type: 'empty',\n };\n }\n return null;\n },\n // tsconfig paths\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n return (\n tsConfigResolve?.(\n {\n originModulePath: context.originModulePath,\n moduleName,\n },\n getOptionalResolver(context, platform)\n ) ?? null\n );\n },\n\n // Node.js externals support\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n const isServer =\n context.customResolverOptions?.environment === 'node' ||\n context.customResolverOptions?.environment === 'react-server';\n\n if (platform !== 'web' && !isServer) {\n // This is a web/server-only feature, we may extend the shimming to native platforms in the future.\n return null;\n }\n\n const moduleId = isNodeExternal(moduleName);\n if (!moduleId) {\n return null;\n }\n\n if (\n // In browser runtimes, we want to either resolve a local node module by the same name, or shim the module to\n // prevent crashing when Node.js built-ins are imported.\n !isServer\n ) {\n // Perform optional resolve first. If the module doesn't exist (no module in the node_modules)\n // then we can mock the file to use an empty module.\n const result = getOptionalResolver(context, platform)(moduleName);\n return (\n result ?? {\n // In this case, mock the file to use an empty module.\n type: 'empty',\n }\n );\n }\n\n const contents = `module.exports=$$require_external('node:${moduleId}');`;\n debug(`Virtualizing Node.js \"${moduleId}\"`);\n const virtualModuleId = `\\0node:${moduleId}`;\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n };\n },\n\n // Basic moduleId aliases\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // Conditionally remap `react-native` to `react-native-web` on web in\n // a way that doesn't require Babel to resolve the alias.\n if (platform && platform in aliases && aliases[platform][moduleName]) {\n const redirectedModuleName = aliases[platform][moduleName];\n return getStrictResolver(context, platform)(redirectedModuleName);\n }\n\n for (const [matcher, alias] of universalAliases) {\n const match = moduleName.match(matcher);\n if (match) {\n const aliasedModule = alias.replace(\n /\\$(\\d+)/g,\n (_, index) => match[parseInt(index, 10)] ?? ''\n );\n const doResolve = getStrictResolver(context, platform);\n debug(`Alias \"${moduleName}\" to \"${aliasedModule}\"`);\n return doResolve(aliasedModule);\n }\n }\n\n return null;\n },\n\n // HACK(EvanBacon):\n // React Native uses `event-target-shim` incorrectly and this causes the native runtime\n // to fail to load. This is a temporary workaround until we can fix this upstream.\n // https://github.com/facebook/react-native/pull/38628\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (platform !== 'web' && moduleName === 'event-target-shim') {\n debug('For event-target-shim to use js:', context.originModulePath);\n const doResolve = getStrictResolver(context, platform);\n return doResolve('event-target-shim/dist/event-target-shim.js');\n }\n\n return null;\n },\n\n // TODO: Reduce these as much as possible in the future.\n // Complex post-resolution rewrites.\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n const doResolve = getStrictResolver(context, platform);\n\n const result = doResolve(moduleName);\n\n if (result.type !== 'sourceFile') {\n return result;\n }\n\n if (platform === 'web') {\n // Replace the web resolver with the original one.\n // This is basically an alias for web-only.\n // TODO: Drop this in favor of the standalone asset registry module.\n if (shouldAliasAssetRegistryForWeb(platform, result)) {\n // @ts-expect-error: `readonly` for some reason.\n result.filePath = assetRegistryPath;\n }\n\n if (platform === 'web' && result.filePath.includes('node_modules')) {\n // Replace with static shims\n\n const normalName = normalizeSlashes(result.filePath)\n // Drop everything up until the `node_modules` folder.\n .replace(/.*node_modules\\//, '');\n\n const shimFile = shouldCreateVirtualShim(normalName);\n if (shimFile) {\n const virtualId = `\\0shim:${normalName}`;\n const bundler = getMetroBundlerWithVirtualModules(getMetroBundler());\n if (!bundler.hasVirtualModule(virtualId)) {\n bundler.setVirtualModule(virtualId, fs.readFileSync(shimFile, 'utf8'));\n }\n debug(`Redirecting module \"${result.filePath}\" to shim`);\n\n return {\n ...result,\n filePath: virtualId,\n };\n }\n }\n } else {\n // When server components are enabled, redirect React Native's renderer to the canary build\n // this will enable the use hook and other requisite features from React 19.\n if (isReactCanaryEnabled && result.filePath.includes('node_modules')) {\n const normalName = normalizeSlashes(result.filePath)\n // Drop everything up until the `node_modules` folder.\n .replace(/.*node_modules\\//, '');\n\n const canaryFile = shouldCreateVirtualCanary(normalName);\n if (canaryFile) {\n debug(`Redirecting React Native module \"${result.filePath}\" to canary build`);\n return {\n ...result,\n filePath: canaryFile,\n };\n }\n }\n }\n\n return result;\n },\n ]);\n\n // Ensure we mutate the resolution context to include the custom resolver options for server and web.\n const metroConfigWithCustomContext = withMetroMutatedResolverContext(\n metroConfigWithCustomResolver,\n (\n immutableContext: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ): CustomResolutionContext => {\n const context: Mutable<CustomResolutionContext> = {\n ...immutableContext,\n preferNativePlatform: platform !== 'web',\n };\n\n if (isServerEnvironment(context.customResolverOptions?.environment)) {\n // Adjust nodejs source extensions to sort mjs after js, including platform variants.\n if (nodejsSourceExtensions === null) {\n nodejsSourceExtensions = getNodejsExtensions(context.sourceExts);\n }\n context.sourceExts = nodejsSourceExtensions;\n\n context.unstable_enablePackageExports = true;\n context.unstable_conditionNames = ['node', 'require'];\n context.unstable_conditionsByPlatform = {};\n // Node.js runtimes should only be importing main at the moment.\n // This is a temporary fix until we can support the package.json exports.\n context.mainFields = ['main', 'module'];\n\n // Enable react-server import conditions.\n if (context.customResolverOptions?.environment === 'react-server') {\n context.unstable_conditionNames = ['node', 'require', 'react-server', 'server'];\n }\n } else {\n // Non-server changes\n\n if (!env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE && platform && platform in preferredMainFields) {\n context.mainFields = preferredMainFields[platform];\n }\n }\n\n return context;\n }\n );\n\n return withMetroErrorReportingResolver(metroConfigWithCustomContext);\n}\n\n/** @returns `true` if the incoming resolution should be swapped on web. */\nexport function shouldAliasAssetRegistryForWeb(\n platform: string | null,\n result: Resolution\n): boolean {\n return (\n platform === 'web' &&\n result?.type === 'sourceFile' &&\n typeof result?.filePath === 'string' &&\n normalizeSlashes(result.filePath).endsWith(\n 'react-native-web/dist/modules/AssetRegistry/index.js'\n )\n );\n}\n/** @returns `true` if the incoming resolution should be swapped. */\nexport function shouldAliasModule(\n input: {\n platform: string | null;\n result: Resolution;\n },\n alias: { platform: string; output: string }\n): boolean {\n return (\n input.platform === alias.platform &&\n input.result?.type === 'sourceFile' &&\n typeof input.result?.filePath === 'string' &&\n normalizeSlashes(input.result.filePath).endsWith(alias.output)\n );\n}\n\n/** Add support for `react-native-web` and the Web platform. */\nexport async function withMetroMultiPlatformAsync(\n projectRoot: string,\n {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled,\n webOutput,\n isFastResolverEnabled,\n isExporting,\n isReactCanaryEnabled,\n getMetroBundler,\n }: {\n config: ConfigT;\n exp: ExpoConfig;\n isTsconfigPathsEnabled: boolean;\n platformBundlers: PlatformBundlers;\n webOutput?: 'single' | 'static' | 'server';\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (!config.projectRoot) {\n // @ts-expect-error: read-only types\n config.projectRoot = projectRoot;\n }\n\n // Required for @expo/metro-runtime to format paths in the web LogBox.\n process.env.EXPO_PUBLIC_PROJECT_ROOT = process.env.EXPO_PUBLIC_PROJECT_ROOT ?? projectRoot;\n\n if (['static', 'server'].includes(webOutput ?? '')) {\n // Enable static rendering in runtime space.\n process.env.EXPO_PUBLIC_USE_STATIC = '1';\n }\n\n // This is used for running Expo CLI in development against projects outside the monorepo.\n if (!isDirectoryIn(__dirname, projectRoot)) {\n if (!config.watchFolders) {\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders = [];\n }\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders.push(path.join(require.resolve('metro-runtime/package.json'), '../..'));\n }\n\n // @ts-expect-error\n config.transformer._expoRouterWebRendering = webOutput;\n // @ts-expect-error: Invalidate the cache when the location of expo-router changes on-disk.\n config.transformer._expoRouterPath = resolveFrom.silent(projectRoot, 'expo-router');\n\n let tsconfig: null | TsConfigPaths = null;\n\n if (isTsconfigPathsEnabled) {\n tsconfig = await loadTsConfigPathsAsync(projectRoot);\n }\n\n let expoConfigPlatforms = Object.entries(platformBundlers)\n .filter(\n ([platform, bundler]) => bundler === 'metro' && exp.platforms?.includes(platform as Platform)\n )\n .map(([platform]) => platform);\n\n if (Array.isArray(config.resolver.platforms)) {\n expoConfigPlatforms = [...new Set(expoConfigPlatforms.concat(config.resolver.platforms))];\n }\n\n // @ts-expect-error: typed as `readonly`.\n config.resolver.platforms = expoConfigPlatforms;\n\n config = withWebPolyfills(config, { getMetroBundler });\n\n return withExtendedResolver(config, {\n tsconfig,\n isExporting,\n isTsconfigPathsEnabled,\n isFastResolverEnabled,\n isReactCanaryEnabled,\n getMetroBundler,\n });\n}\n\nfunction isDirectoryIn(a: string, b: string) {\n return b.startsWith(a) && b.length > a.length;\n}\n"],"names":["getNodejsExtensions","withExtendedResolver","shouldAliasAssetRegistryForWeb","shouldAliasModule","withMetroMultiPlatformAsync","metroResolver","debug","require","withWebPolyfills","config","getMetroBundler","originalGetPolyfills","serializer","getPolyfills","bind","ctx","virtualModuleId","contents","platform","getMetroBundlerWithVirtualModules","setVirtualModule","polyfills","normalizeSlashes","p","replace","srcExts","mjsExts","filter","ext","test","nodejsSourceExtensions","jsIndex","reduce","index","i","splice","tsconfig","isTsconfigPathsEnabled","isFastResolverEnabled","isExporting","isReactCanaryEnabled","Log","warn","assetRegistryPath","fs","realpathSync","path","resolve","resolveFrom","projectRoot","defaultResolver","resolver","createFastResolver","preserveSymlinks","unstable_enableSymlinks","blockList","Array","isArray","aliases","web","universalAliases","silent","push","preferredMainFields","tsConfigResolve","paths","baseUrl","resolveWithTsConfigPaths","hasBaseUrl","isInteractive","configWatcher","FileNotifier","startObserving","loadTsConfigPathsAsync","then","tsConfigPaths","Object","keys","length","installExitHooks","stopObserving","getStrictResolver","resolveRequest","context","doResolve","moduleName","getOptionalResolver","optionalResolve","error","isResolutionError","isFailedToResolveNameError","isFailedToResolvePathError","metroConfigWithCustomResolver","withMetroResolvers","dev","originModulePath","match","type","isServer","customResolverOptions","environment","moduleId","isNodeExternal","result","filePath","redirectedModuleName","matcher","alias","aliasedModule","_","parseInt","includes","normalName","shimFile","shouldCreateVirtualShim","virtualId","bundler","hasVirtualModule","readFileSync","canaryFile","shouldCreateVirtualCanary","metroConfigWithCustomContext","withMetroMutatedResolverContext","immutableContext","preferNativePlatform","isServerEnvironment","sourceExts","unstable_enablePackageExports","unstable_conditionNames","unstable_conditionsByPlatform","mainFields","env","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","withMetroErrorReportingResolver","endsWith","input","output","exp","platformBundlers","webOutput","process","EXPO_PUBLIC_PROJECT_ROOT","EXPO_PUBLIC_USE_STATIC","isDirectoryIn","__dirname","watchFolders","join","transformer","_expoRouterWebRendering","_expoRouterPath","expoConfigPlatforms","entries","platforms","map","Set","concat","a","b","startsWith"],"mappings":"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"}
@@ -6,9 +6,27 @@ exports.getDefaultMetroResolver = getDefaultMetroResolver;
6
6
  exports.withMetroResolvers = withMetroResolvers;
7
7
  exports.withMetroMutatedResolverContext = withMetroMutatedResolverContext;
8
8
  exports.withMetroErrorReportingResolver = withMetroErrorReportingResolver;
9
- var _chalk = _interopRequireDefault(require("chalk"));
10
- var metroResolver = _interopRequireWildcard(require("metro-resolver"));
11
- var _path = _interopRequireDefault(require("path"));
9
+ function _chalk() {
10
+ const data = _interopRequireDefault(require("chalk"));
11
+ _chalk = function() {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function metroResolver() {
17
+ const data = _interopRequireWildcard(require("metro-resolver"));
18
+ metroResolver = function() {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ function _path() {
24
+ const data = _interopRequireDefault(require("path"));
25
+ _path = function() {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
12
30
  var _metroErrors = require("./metroErrors");
13
31
  var _env = require("../../../utils/env");
14
32
  function _interopRequireDefault(obj) {
@@ -40,7 +58,7 @@ function _interopRequireWildcard(obj) {
40
58
  const debug = require("debug")("expo:metro:withMetroResolvers");
41
59
  function getDefaultMetroResolver(projectRoot) {
42
60
  return (context, moduleName, platform)=>{
43
- return metroResolver.resolve(context, moduleName, platform);
61
+ return metroResolver().resolve(context, moduleName, platform);
44
62
  };
45
63
  }
46
64
  function optionsKeyForContext(context) {
@@ -191,25 +209,25 @@ function withMetroErrorReportingResolver(config) {
191
209
  35);
192
210
  if (inverseTree.previous.length > 0) {
193
211
  debug("Found inverse graph:", JSON.stringify(inverseTree, null, 2));
194
- let extraMessage = _chalk.default.bold("Import stack:");
212
+ let extraMessage = _chalk().default.bold("Import stack:");
195
213
  const printRecursive = (tree, depth = 0)=>{
196
- let filename = _path.default.relative(root, tree.origin);
214
+ let filename = _path().default.relative(root, tree.origin);
197
215
  if (filename.match(/\?ctx=[\w\d]+$/)) {
198
- filename = filename.replace(/\?ctx=[\w\d]+$/, _chalk.default.dim(" (require.context)"));
216
+ filename = filename.replace(/\?ctx=[\w\d]+$/, _chalk().default.dim(" (require.context)"));
199
217
  } else {
200
- let formattedRequest = _chalk.default.green(`"${tree.request}"`);
218
+ let formattedRequest = _chalk().default.green(`"${tree.request}"`);
201
219
  if (// If bundling for web and the import is pulling internals from outside of react-native
202
220
  // then mark it as an invalid import.
203
221
  platform === "web" && !/^(node_modules\/)?react-native\//.test(filename) && tree.request.match(/^react-native\/.*/)) {
204
- formattedRequest = formattedRequest + _chalk.default`\n {yellow Importing react-native internals is not supported on web.}`;
222
+ formattedRequest = formattedRequest + _chalk().default`\n {yellow Importing react-native internals is not supported on web.}`;
205
223
  }
206
- filename = filename + _chalk.default`\n{gray |} {cyan import} ${formattedRequest}\n`;
224
+ filename = filename + _chalk().default`\n{gray |} {cyan import} ${formattedRequest}\n`;
207
225
  }
208
- let line = "\n" + pad(depth) + _chalk.default.gray(" ") + filename;
226
+ let line = "\n" + pad(depth) + _chalk().default.gray(" ") + filename;
209
227
  if (filename.match(/node_modules/)) {
210
- line = _chalk.default.gray(// Bold the node module name
228
+ line = _chalk().default.gray(// Bold the node module name
211
229
  line.replace(/node_modules\/([^/]+)/, (_match, p1)=>{
212
- return "node_modules/" + _chalk.default.bold(p1);
230
+ return "node_modules/" + _chalk().default.bold(p1);
213
231
  }));
214
232
  }
215
233
  extraMessage += line;