@expo/cli 0.22.25 → 0.22.26

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 (722) hide show
  1. package/build/bin/cli +91 -93
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +52 -53
  4. package/build/src/api/endpoint.js +2 -6
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +3 -5
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +12 -16
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +4 -6
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +3 -5
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +5 -7
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +26 -32
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +4 -6
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +3 -5
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +1 -3
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +8 -10
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +12 -20
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +11 -13
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +35 -53
  31. package/build/src/api/rest/client.js.map +1 -1
  32. package/build/src/api/rest/client.types.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithBaseUrl.js +3 -5
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +3 -5
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +7 -11
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +3 -5
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +6 -8
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +5 -7
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +17 -23
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +21 -39
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +21 -27
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +26 -30
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +29 -35
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +30 -44
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +23 -29
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +21 -25
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +6 -8
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +16 -20
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +12 -14
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +2 -4
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +54 -58
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +7 -11
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +9 -11
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +6 -8
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +61 -71
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +55 -57
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +40 -44
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +36 -44
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +27 -39
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +63 -67
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +27 -35
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +9 -13
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +45 -53
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +63 -85
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +62 -72
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +27 -33
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +5 -7
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +9 -11
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +6 -10
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +28 -32
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +30 -36
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +34 -42
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +6 -10
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +24 -28
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +46 -50
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +11 -13
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +15 -19
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +3 -5
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +2 -4
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +274 -400
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +7 -11
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +22 -26
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +12 -16
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +16 -18
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +26 -32
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +18 -22
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +19 -21
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +14 -18
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +11 -13
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +44 -50
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +8 -12
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +8 -10
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +16 -36
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +20 -24
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +7 -11
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +26 -38
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +14 -18
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +13 -17
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +4 -6
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +32 -36
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +25 -29
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +40 -46
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +52 -66
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +32 -36
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +13 -19
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +39 -53
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +8 -12
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +7 -11
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +3 -5
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +32 -36
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +8 -10
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +16 -18
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +15 -17
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +10 -12
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +2 -4
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +21 -23
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +5 -7
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +7 -13
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +23 -27
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +56 -74
  208. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  209. package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
  210. package/build/src/run/ios/appleDevice/AppleDevice.js +63 -69
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +26 -29
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +25 -28
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +26 -29
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -22
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +29 -32
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +24 -28
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +4 -7
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +27 -28
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +17 -23
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +132 -146
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +21 -29
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +21 -29
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +22 -34
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +17 -27
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +39 -53
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +9 -13
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +19 -27
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +5 -9
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +12 -14
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +21 -27
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +36 -40
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +17 -23
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +36 -38
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +16 -20
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +24 -30
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +23 -31
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +5 -7
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +5 -7
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +44 -48
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +22 -24
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +2 -4
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +12 -16
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +16 -20
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +32 -36
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +9 -13
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +7 -12
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +11 -13
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +19 -23
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +19 -23
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +45 -51
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +16 -18
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +19 -23
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +25 -31
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -25
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +32 -40
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +26 -32
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +31 -41
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +29 -34
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +8 -12
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +28 -32
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +17 -23
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +27 -33
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +42 -46
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +14 -18
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +80 -94
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +40 -44
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +61 -65
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +4 -6
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +6 -10
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +20 -25
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +15 -17
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +35 -39
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +16 -18
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +20 -24
  339. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  340. package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
  341. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  342. package/build/src/start/platforms/android/AndroidSdk.js +9 -11
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +22 -26
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +83 -121
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +12 -20
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +26 -36
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +5 -7
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +28 -36
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +15 -19
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +19 -21
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +31 -37
  361. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  362. package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
  363. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  364. package/build/src/start/platforms/ios/assertSystemRequirements.js +7 -9
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +73 -87
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +18 -22
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +19 -29
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +10 -14
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +74 -102
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +52 -57
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +18 -22
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +9 -19
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +11 -15
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +2 -4
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +40 -48
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +51 -55
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +36 -40
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +79 -81
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +38 -42
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +14 -18
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +14 -18
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +10 -16
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +33 -36
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +21 -29
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +4 -6
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +271 -269
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +56 -63
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +33 -39
  413. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  414. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  415. package/build/src/start/server/metro/createExpoMetroResolver.js +40 -46
  416. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createJResolver.js +28 -32
  418. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createServerComponentsMiddleware.js +92 -96
  420. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  421. package/build/src/start/server/metro/createServerRouteMiddleware.js +30 -32
  422. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +11 -13
  424. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/MessageHandler.js +1 -3
  426. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/attachAtlas.js +22 -26
  428. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +17 -19
  430. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createHandlersFactory.js +31 -25
  432. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/getDebuggerType.js +4 -6
  434. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +8 -14
  436. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +5 -7
  438. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +6 -8
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +5 -7
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +12 -14
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +10 -14
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -6
  448. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  450. package/build/src/start/server/metro/dev-server/createEventSocket.js +16 -18
  451. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createMessageSocket.js +21 -23
  453. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +21 -23
  455. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +2 -4
  457. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +2 -4
  459. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +4 -8
  461. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  462. package/build/src/start/server/metro/externals.js +25 -33
  463. package/build/src/start/server/metro/externals.js.map +1 -1
  464. package/build/src/start/server/metro/fetchRouterManifest.js +12 -16
  465. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  466. package/build/src/start/server/metro/formatFileCandidates.js +9 -11
  467. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  468. package/build/src/start/server/metro/getCssModulesFromBundler.js +18 -22
  469. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  470. package/build/src/start/server/metro/instantiateMetro.js +79 -85
  471. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  472. package/build/src/start/server/metro/log-box/LogBoxLog.js +36 -40
  473. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +14 -20
  475. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +6 -10
  477. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  478. package/build/src/start/server/metro/metroErrorInterface.js +78 -88
  479. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrors.js +4 -8
  481. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  482. package/build/src/start/server/metro/metroPrivateServer.js +7 -9
  483. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  484. package/build/src/start/server/metro/metroVirtualModules.js +8 -10
  485. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  486. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +22 -24
  487. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  488. package/build/src/start/server/metro/router.js +32 -48
  489. package/build/src/start/server/metro/router.js.map +1 -1
  490. package/build/src/start/server/metro/runServer-fork.js +22 -24
  491. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  492. package/build/src/start/server/metro/serializeHtml.js +22 -24
  493. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  494. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  495. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +29 -35
  496. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  497. package/build/src/start/server/metro/withMetroMultiPlatform.js +139 -149
  498. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroResolvers.js +39 -49
  500. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  501. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +6 -8
  502. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  503. package/build/src/start/server/middleware/CorsMiddleware.js +15 -17
  504. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CreateFileMiddleware.js +31 -32
  506. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +19 -22
  508. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DomComponentsMiddleware.js +27 -33
  510. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +60 -64
  512. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoMiddleware.js +9 -15
  514. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/FaviconMiddleware.js +14 -15
  516. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +2 -4
  518. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +31 -34
  520. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/ManifestMiddleware.js +56 -64
  522. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +19 -23
  524. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +19 -20
  526. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/ServeStaticMiddleware.js +9 -11
  528. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +11 -17
  530. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  531. package/build/src/start/server/middleware/inspector/CdpClient.js +10 -12
  532. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/JsInspector.js +27 -35
  534. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +19 -21
  536. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/middlwareMutations.js +2 -6
  538. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  539. package/build/src/start/server/middleware/metroOptions.js +96 -120
  540. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  541. package/build/src/start/server/middleware/mutations.js +3 -7
  542. package/build/src/start/server/middleware/mutations.js.map +1 -1
  543. package/build/src/start/server/middleware/resolveAssets.js +18 -26
  544. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  545. package/build/src/start/server/middleware/resolvePlatform.js +15 -23
  546. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  547. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +9 -11
  548. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  549. package/build/src/start/server/middleware/server.types.js.map +1 -1
  550. package/build/src/start/server/openPlatforms.js +8 -10
  551. package/build/src/start/server/openPlatforms.js.map +1 -1
  552. package/build/src/start/server/platformBundlers.js +11 -13
  553. package/build/src/start/server/platformBundlers.js.map +1 -1
  554. package/build/src/start/server/serverLogLikeMetro.js +50 -58
  555. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  556. package/build/src/start/server/type-generation/expo-env.js +7 -11
  557. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  558. package/build/src/start/server/type-generation/routes.js +54 -76
  559. package/build/src/start/server/type-generation/routes.js.map +1 -1
  560. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +19 -21
  561. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  562. package/build/src/start/server/type-generation/tsconfig.js +28 -36
  563. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  564. package/build/src/start/server/webTemplate.js +24 -28
  565. package/build/src/start/server/webTemplate.js.map +1 -1
  566. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +46 -52
  567. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  568. package/build/src/start/server/webpack/compile.js +11 -15
  569. package/build/src/start/server/webpack/compile.js.map +1 -1
  570. package/build/src/start/server/webpack/formatWebpackMessages.js +26 -28
  571. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  572. package/build/src/start/server/webpack/resolveFromProject.js +12 -18
  573. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  574. package/build/src/start/server/webpack/tls.js +12 -18
  575. package/build/src/start/server/webpack/tls.js.map +1 -1
  576. package/build/src/start/startAsync.js +27 -31
  577. package/build/src/start/startAsync.js.map +1 -1
  578. package/build/src/utils/FileNotifier.js +17 -20
  579. package/build/src/utils/FileNotifier.js.map +1 -1
  580. package/build/src/utils/ansi.js +5 -7
  581. package/build/src/utils/ansi.js.map +1 -1
  582. package/build/src/utils/args.js +14 -24
  583. package/build/src/utils/args.js.map +1 -1
  584. package/build/src/utils/array.js +6 -18
  585. package/build/src/utils/array.js.map +1 -1
  586. package/build/src/utils/cocoapods.js +46 -54
  587. package/build/src/utils/cocoapods.js.map +1 -1
  588. package/build/src/utils/codesigning.js +68 -78
  589. package/build/src/utils/codesigning.js.map +1 -1
  590. package/build/src/utils/createFileTransform.js +12 -16
  591. package/build/src/utils/createFileTransform.js.map +1 -1
  592. package/build/src/utils/createTempPath.js +13 -17
  593. package/build/src/utils/createTempPath.js.map +1 -1
  594. package/build/src/utils/delay.js +6 -12
  595. package/build/src/utils/delay.js.map +1 -1
  596. package/build/src/utils/dir.js +28 -46
  597. package/build/src/utils/dir.js.map +1 -1
  598. package/build/src/utils/downloadAppAsync.js +8 -10
  599. package/build/src/utils/downloadAppAsync.js.map +1 -1
  600. package/build/src/utils/downloadExpoGoAsync.js +21 -25
  601. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  602. package/build/src/utils/editor.js +35 -41
  603. package/build/src/utils/editor.js.map +1 -1
  604. package/build/src/utils/env.js +59 -63
  605. package/build/src/utils/env.js.map +1 -1
  606. package/build/src/utils/errors.js +30 -37
  607. package/build/src/utils/errors.js.map +1 -1
  608. package/build/src/utils/exit.js +31 -35
  609. package/build/src/utils/exit.js.map +1 -1
  610. package/build/src/utils/expoUpdatesCli.js +22 -32
  611. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  612. package/build/src/utils/fetch.js +4 -8
  613. package/build/src/utils/fetch.js.map +1 -1
  614. package/build/src/utils/filePath.js +6 -10
  615. package/build/src/utils/filePath.js.map +1 -1
  616. package/build/src/utils/findUp.js +9 -13
  617. package/build/src/utils/findUp.js.map +1 -1
  618. package/build/src/utils/fn.js +2 -6
  619. package/build/src/utils/fn.js.map +1 -1
  620. package/build/src/utils/getOrPromptApplicationId.js +26 -32
  621. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  622. package/build/src/utils/getRunningProcess.js +21 -29
  623. package/build/src/utils/getRunningProcess.js.map +1 -1
  624. package/build/src/utils/git.js +20 -26
  625. package/build/src/utils/git.js.map +1 -1
  626. package/build/src/utils/glob.js +4 -8
  627. package/build/src/utils/glob.js.map +1 -1
  628. package/build/src/utils/interactive.js +1 -3
  629. package/build/src/utils/interactive.js.map +1 -1
  630. package/build/src/utils/ip.js +19 -21
  631. package/build/src/utils/ip.js.map +1 -1
  632. package/build/src/utils/isModuleSymlinked.js +9 -11
  633. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  634. package/build/src/utils/jsonSchemaDeref.js +18 -20
  635. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  636. package/build/src/utils/link.js +13 -17
  637. package/build/src/utils/link.js.map +1 -1
  638. package/build/src/utils/mergeGitIgnorePaths.js +28 -46
  639. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  640. package/build/src/utils/modifyConfigAsync.js +10 -16
  641. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  642. package/build/src/utils/modifyConfigPlugins.js +6 -10
  643. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  644. package/build/src/utils/nodeEnv.js +6 -12
  645. package/build/src/utils/nodeEnv.js.map +1 -1
  646. package/build/src/utils/nodeModules.js +8 -10
  647. package/build/src/utils/nodeModules.js.map +1 -1
  648. package/build/src/utils/npm.js +36 -50
  649. package/build/src/utils/npm.js.map +1 -1
  650. package/build/src/utils/obj.js +5 -11
  651. package/build/src/utils/obj.js.map +1 -1
  652. package/build/src/utils/open.js +8 -10
  653. package/build/src/utils/open.js.map +1 -1
  654. package/build/src/utils/ora.js +7 -13
  655. package/build/src/utils/ora.js.map +1 -1
  656. package/build/src/utils/plist.js +15 -21
  657. package/build/src/utils/plist.js.map +1 -1
  658. package/build/src/utils/port.js +33 -43
  659. package/build/src/utils/port.js.map +1 -1
  660. package/build/src/utils/profile.js +7 -11
  661. package/build/src/utils/profile.js.map +1 -1
  662. package/build/src/utils/progress.js +5 -11
  663. package/build/src/utils/progress.js.map +1 -1
  664. package/build/src/utils/prompts.js +29 -47
  665. package/build/src/utils/prompts.js.map +1 -1
  666. package/build/src/utils/resolveArgs.js +24 -36
  667. package/build/src/utils/resolveArgs.js.map +1 -1
  668. package/build/src/utils/scheme.js +32 -40
  669. package/build/src/utils/scheme.js.map +1 -1
  670. package/build/src/utils/stream.js +3 -5
  671. package/build/src/utils/stream.js.map +1 -1
  672. package/build/src/utils/strings.js +4 -6
  673. package/build/src/utils/strings.js.map +1 -1
  674. package/build/src/utils/tar.js +15 -19
  675. package/build/src/utils/tar.js.map +1 -1
  676. package/build/src/utils/telemetry/Telemetry.js +27 -29
  677. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  678. package/build/src/utils/telemetry/clients/FetchClient.js +13 -15
  679. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  680. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +22 -26
  681. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/RudderClient.js +8 -10
  683. package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/RudderDetachedClient.js +22 -26
  685. package/build/src/utils/telemetry/clients/RudderDetachedClient.js.map +1 -1
  686. package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
  687. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  688. package/build/src/utils/telemetry/clients/flushRudderDetached.js +10 -10
  689. package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
  690. package/build/src/utils/telemetry/events.js +2 -4
  691. package/build/src/utils/telemetry/events.js.map +1 -1
  692. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  693. package/build/src/utils/telemetry/index.js +29 -25
  694. package/build/src/utils/telemetry/index.js.map +1 -1
  695. package/build/src/utils/telemetry/types.js.map +1 -1
  696. package/build/src/utils/telemetry/utils/constants.js +4 -8
  697. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  698. package/build/src/utils/telemetry/utils/context.js +14 -18
  699. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  700. package/build/src/utils/template.js +4 -6
  701. package/build/src/utils/template.js.map +1 -1
  702. package/build/src/utils/terminal.js +2 -4
  703. package/build/src/utils/terminal.js.map +1 -1
  704. package/build/src/utils/tsconfig/evaluateTsConfig.js +17 -21
  705. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  706. package/build/src/utils/tsconfig/loadTsConfigPaths.js +14 -18
  707. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  708. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +5 -7
  709. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  710. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -14
  711. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  712. package/build/src/utils/url.js +13 -23
  713. package/build/src/utils/url.js.map +1 -1
  714. package/build/src/utils/validateApplicationId.js +86 -108
  715. package/build/src/utils/validateApplicationId.js.map +1 -1
  716. package/build/src/utils/variadic.js +16 -22
  717. package/build/src/utils/variadic.js.map +1 -1
  718. package/build/src/whoami/index.js +7 -11
  719. package/build/src/whoami/index.js.map +1 -1
  720. package/build/src/whoami/whoamiAsync.js +7 -11
  721. package/build/src/whoami/whoamiAsync.js.map +1 -1
  722. package/package.json +3 -3
@@ -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 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, FailedToResolvePathError } 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 { CommandError } from '../../../utils/errors';\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 ASSET_REGISTRY_SRC = `const assets=[];module.exports={registerAsset:s=>assets.push(s),getAssetByID:s=>assets[s-1]};`;\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 virtualEnvVarId = `\\0polyfill:environment-variables`;\n\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualEnvVarId,\n (() => {\n return `//`;\n })()\n );\n\n const virtualModuleId = `\\0polyfill:external-require`;\n\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n (() => {\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\" ? 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 );\n\n if (ctx.platform === 'web') {\n return [\n virtualModuleId,\n virtualEnvVarId,\n // Ensure that the error-guard polyfill is included in the web polyfills to\n // make metro-runtime work correctly.\n // TODO: This module is pretty big for a function that simply re-throws an error that doesn't need to be caught.\n require.resolve('@react-native/js-polyfills/error-guard'),\n ];\n }\n\n // Generally uses `rn-get-polyfills`\n const polyfills = originalGetPolyfills(ctx);\n return [...polyfills, virtualModuleId, virtualEnvVarId];\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 isReactServerComponentsEnabled,\n getMetroBundler,\n }: {\n tsconfig: TsConfigPaths | null;\n isTsconfigPathsEnabled?: boolean;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled?: boolean;\n isReactServerComponentsEnabled?: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (isReactServerComponentsEnabled) {\n Log.warn(\n `Experimental React Server Components is enabled. Production exports are not supported yet.`\n );\n }\n if (isFastResolverEnabled) {\n Log.warn(`Experimental module resolution is enabled.`);\n }\n\n if (isReactCanaryEnabled) {\n Log.warn(`Experimental React Canary version is enabled.`);\n }\n\n const defaultResolver = metroResolver.resolve;\n const resolver = isFastResolverEnabled\n ? createFastResolver({\n preserveSymlinks: true,\n blockList: !config.resolver?.blockList\n ? []\n : 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 'react-native/Libraries/Image/resolveAssetSource': 'expo-asset/build/resolveAssetSource',\n },\n };\n\n let _universalAliases: [RegExp, string][] | null;\n\n function getUniversalAliases() {\n if (_universalAliases) {\n return _universalAliases;\n }\n\n _universalAliases = [];\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 if (isReactServerComponentsEnabled) {\n if (resolveFrom.silent(config.projectRoot, 'expo-router/rsc')) {\n debug('Enabling bridge alias: expo-router -> expo-router/rsc');\n _universalAliases.push([/^expo-router$/, 'expo-router/rsc']);\n // Bridge the internal entry point which is a standalone import to ensure package.json resolution works as expected.\n _universalAliases.push([/^expo-router\\/entry-classic$/, 'expo-router/rsc/entry']);\n }\n }\n return _universalAliases;\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 // TODO: This is a hack to get resolveWeak working.\n const idFactory = (config.serializer?.createModuleIdFactory?.() ??\n ((id: number | string, context: { platform: string; environment?: string }): number | string =>\n id)) as (\n id: number | string,\n context: { platform: string; environment?: string }\n ) => number | string;\n\n const getAssetRegistryModule = () => {\n const virtualModuleId = `\\0polyfill:assets-registry`;\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n ASSET_REGISTRY_SRC\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n } as const;\n };\n\n // If Node.js pass-through, then remap to a module like `module.exports = $$require_external(<module>)`.\n // If module should be shimmed, remap to an empty module.\n const externals: {\n match: (context: ResolutionContext, moduleName: string, platform: string | null) => boolean;\n replace: 'empty' | 'node' | 'weak';\n }[] = [\n {\n match: (context: ResolutionContext, moduleName: string) => {\n if (\n // Disable internal externals when exporting for production.\n context.customResolverOptions.exporting ||\n // These externals are only for Node.js environments.\n !isServerEnvironment(context.customResolverOptions?.environment)\n ) {\n return false;\n }\n\n if (context.customResolverOptions?.environment === 'react-server') {\n // Ensure these non-react-server modules are excluded when bundling for React Server Components in development.\n return /^(source-map-support(\\/.*)?|@babel\\/runtime\\/.+|debug|metro-runtime\\/src\\/modules\\/HMRClient|metro|acorn-loose|acorn|chalk|ws|ansi-styles|supports-color|color-convert|has-flag|utf-8-validate|color-name|react-refresh\\/runtime|@remix-run\\/node\\/.+)$/.test(\n moduleName\n );\n }\n\n // TODO: Windows doesn't support externals somehow.\n if (process.platform === 'win32') {\n return /^(source-map-support(\\/.*)?)$/.test(moduleName);\n }\n\n // Extern these modules in standard Node.js environments in development to prevent API routes side-effects\n // from leaking into the dev server process.\n return /^(source-map-support(\\/.*)?|react|react-native-helmet-async|@radix-ui\\/.+|@babel\\/runtime\\/.+|react-dom(\\/.+)?|debug|acorn-loose|acorn|css-in-js-utils\\/lib\\/.+|hyphenate-style-name|color|color-string|color-convert|color-name|fontfaceobserver|fast-deep-equal|query-string|escape-string-regexp|invariant|postcss-value-parser|memoize-one|nullthrows|strict-uri-encode|decode-uri-component|split-on-first|filter-obj|warn-once|simple-swizzle|is-arrayish|inline-style-prefixer\\/.+)$/.test(\n moduleName\n );\n },\n replace: 'node',\n },\n // Externals to speed up async split chunks by extern-ing common packages that appear in the root client chunk.\n {\n match: (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (\n // Disable internal externals when exporting for production.\n context.customResolverOptions.exporting ||\n // These externals are only for client environments.\n isServerEnvironment(context.customResolverOptions?.environment) ||\n // Only enable for client boundaries\n !context.customResolverOptions.clientboundary\n ) {\n return false;\n }\n\n // We don't support this in the resolver at the moment.\n if (moduleName.endsWith('/package.json')) {\n return false;\n }\n\n const isExternal = // Extern these modules in standard Node.js environments.\n /^(deprecated-react-native-prop-types|react|react\\/jsx-dev-runtime|scheduler|react-native|react-dom(\\/.+)?|metro-runtime(\\/.+)?)$/.test(\n moduleName\n ) ||\n // TODO: Add more\n /^@babel\\/runtime\\/helpers\\/(wrapNativeSuper)$/.test(moduleName);\n\n return isExternal;\n },\n replace: 'weak',\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 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 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\n if (!result && platform !== 'web') {\n // Preserve previous behavior where native throws an error on node.js internals.\n return null;\n }\n\n return (\n result ?? {\n // In this case, mock the file to use an empty module.\n type: 'empty',\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 // Custom externals support\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // We don't support this in the resolver at the moment.\n if (moduleName.endsWith('/package.json')) {\n return null;\n }\n const environment = context.customResolverOptions?.environment;\n\n const strictResolve = getStrictResolver(context, platform);\n\n for (const external of externals) {\n if (external.match(context, moduleName, platform)) {\n if (external.replace === 'empty') {\n debug(`Redirecting external \"${moduleName}\" to \"${external.replace}\"`);\n return {\n type: external.replace,\n };\n } else if (external.replace === 'weak') {\n // TODO: Make this use require.resolveWeak again. Previously this was just resolving to the same path.\n const realModule = strictResolve(moduleName);\n const realPath = realModule.type === 'sourceFile' ? realModule.filePath : moduleName;\n const opaqueId = idFactory(realPath, {\n platform: platform!,\n environment,\n });\n\n const contents =\n typeof opaqueId === 'number'\n ? `module.exports=/*${moduleName}*/__r(${opaqueId})`\n : `module.exports=/*${moduleName}*/__r(${JSON.stringify(opaqueId)})`;\n // const contents = `module.exports=/*${moduleName}*/__r(require.resolveWeak('${moduleName}'))`;\n // const generatedModuleId = fastHashMemoized(contents);\n const virtualModuleId = `\\0weak:${opaqueId}`;\n debug('Virtualizing module:', moduleName, '->', virtualModuleId);\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n };\n } else if (external.replace === 'node') {\n const contents = `module.exports=$$require_external('${moduleName}')`;\n const virtualModuleId = `\\0node:${moduleName}`;\n debug('Virtualizing Node.js (custom):', moduleName, '->', virtualModuleId);\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n };\n } else {\n throw new CommandError(\n `Invalid external alias type: \"${external.replace}\" for module \"${moduleName}\" (platform: ${platform}, originModulePath: ${context.originModulePath})`\n );\n }\n }\n }\n return null;\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 getUniversalAliases()) {\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 // Polyfill for asset registry\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (/^@react-native\\/assets-registry\\/registry(\\.js)?$/.test(moduleName)) {\n return getAssetRegistryModule();\n }\n\n if (\n platform === 'web' &&\n context.originModulePath.match(/node_modules[\\\\/]react-native-web[\\\\/]/) &&\n moduleName.includes('/modules/AssetRegistry')\n ) {\n return getAssetRegistryModule();\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 if (result.filePath.includes('node_modules')) {\n // // Disallow importing confusing native modules on web\n if (moduleName.includes('react-native/Libraries/Utilities/codegenNativeCommands')) {\n throw new FailedToResolvePathError(\n `Importing native-only module \"${moduleName}\" on web from: ${context.originModulePath}`\n );\n }\n\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 const isServer =\n context.customResolverOptions?.environment === 'node' ||\n context.customResolverOptions?.environment === 'react-server';\n\n // react-native/Libraries/Core/InitializeCore\n const normal = normalizeSlashes(result.filePath);\n\n // Shim out React Native native runtime globals in server mode for native.\n if (isServer) {\n if (normal.endsWith('react-native/Libraries/Core/InitializeCore.js')) {\n console.log('Shimming out InitializeCore for React Native in native SSR bundle');\n return {\n type: 'empty',\n };\n }\n }\n\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 // TODO: Remove this when we have React 19 in the expo/expo monorepo.\n if (\n isReactCanaryEnabled &&\n // Change the node modules path for react and react-dom to use the vendor in Expo CLI.\n /^(react|react\\/.*|react-dom|react-dom\\/.*)$/.test(moduleName)\n ) {\n context.nodeModulesPaths = [\n path.join(require.resolve('@expo/cli/package.json'), '../static/canary-full'),\n ];\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_conditionsByPlatform = {};\n\n const isReactServerComponents =\n context.customResolverOptions?.environment === 'react-server';\n\n if (isReactServerComponents) {\n // NOTE: Align the behavior across server and client. This is a breaking change so we'll just roll it out with React Server Components.\n // This ensures that react-server and client code both resolve `module` and `main` in the same order.\n if (platform === 'web') {\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 = ['module', 'main'];\n } else {\n // In Node.js + native, use the standard main fields.\n context.mainFields = ['react-native', 'module', 'main'];\n }\n } else {\n if (platform === 'web') {\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 // In Node.js + native, use the standard main fields.\n context.mainFields = ['react-native', 'main', 'module'];\n }\n }\n\n // Enable react-server import conditions.\n if (context.customResolverOptions?.environment === 'react-server') {\n context.unstable_conditionNames = [\n 'node',\n 'import',\n 'require',\n 'react-server',\n 'workerd',\n ];\n } else {\n context.unstable_conditionNames = ['node', 'require'];\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. */\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 isFastResolverEnabled,\n isExporting,\n isReactCanaryEnabled,\n isNamedRequiresEnabled,\n isReactServerComponentsEnabled,\n getMetroBundler,\n }: {\n config: ConfigT;\n exp: ExpoConfig;\n isTsconfigPathsEnabled: boolean;\n platformBundlers: PlatformBundlers;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled: boolean;\n isReactServerComponentsEnabled: boolean;\n isNamedRequiresEnabled: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (isNamedRequiresEnabled) {\n debug('Using Expo metro require runtime.');\n // Change the default metro-runtime to a custom one that supports bundle splitting.\n require('metro-config/src/defaults/defaults').moduleSystem = require.resolve(\n '@expo/cli/build/metro-require/require'\n );\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 // 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 if (isReactCanaryEnabled) {\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders.push(path.join(require.resolve('@expo/cli/package.json'), '..'));\n }\n }\n\n // TODO: Remove this\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 isReactServerComponentsEnabled,\n getMetroBundler,\n });\n}\n\nfunction isDirectoryIn(targetPath: string, rootPath: string) {\n return targetPath.startsWith(rootPath) && targetPath.length >= rootPath.length;\n}\n"],"names":["getNodejsExtensions","shouldAliasModule","withExtendedResolver","withMetroMultiPlatformAsync","ASSET_REGISTRY_SRC","debug","require","withWebPolyfills","config","getMetroBundler","originalGetPolyfills","serializer","getPolyfills","bind","ctx","virtualEnvVarId","getMetroBundlerWithVirtualModules","setVirtualModule","virtualModuleId","platform","resolve","polyfills","normalizeSlashes","p","replace","srcExts","mjsExts","filter","ext","test","nodejsSourceExtensions","jsIndex","reduce","index","i","splice","tsconfig","isTsconfigPathsEnabled","isFastResolverEnabled","isExporting","isReactCanaryEnabled","isReactServerComponentsEnabled","Log","warn","defaultResolver","metroResolver","resolver","createFastResolver","preserveSymlinks","blockList","Array","isArray","aliases","web","_universalAliases","getUniversalAliases","resolveFrom","silent","projectRoot","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","idFactory","createModuleIdFactory","id","getAssetRegistryModule","type","filePath","externals","match","customResolverOptions","exporting","isServerEnvironment","environment","process","clientboundary","endsWith","isExternal","metroConfigWithCustomResolver","withMetroResolvers","dev","originModulePath","isServer","moduleId","isNodeExternal","result","contents","strictResolve","external","realModule","realPath","opaqueId","JSON","stringify","CommandError","redirectedModuleName","matcher","alias","aliasedModule","_","parseInt","includes","FailedToResolvePathError","normalName","shimFile","shouldCreateVirtualShim","virtualId","bundler","hasVirtualModule","fs","readFileSync","normal","console","log","canaryFile","shouldCreateVirtualCanary","metroConfigWithCustomContext","withMetroMutatedResolverContext","immutableContext","preferNativePlatform","nodeModulesPaths","path","join","sourceExts","unstable_enablePackageExports","unstable_conditionsByPlatform","isReactServerComponents","mainFields","unstable_conditionNames","env","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","withMetroErrorReportingResolver","input","output","exp","platformBundlers","isNamedRequiresEnabled","moduleSystem","EXPO_PUBLIC_PROJECT_ROOT","isDirectoryIn","__dirname","watchFolders","transformer","_expoRouterPath","expoConfigPlatforms","entries","platforms","map","Set","concat","targetPath","rootPath","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, FailedToResolvePathError } 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 { CommandError } from '../../../utils/errors';\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 ASSET_REGISTRY_SRC = `const assets=[];module.exports={registerAsset:s=>assets.push(s),getAssetByID:s=>assets[s-1]};`;\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 virtualEnvVarId = `\\0polyfill:environment-variables`;\n\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualEnvVarId,\n (() => {\n return `//`;\n })()\n );\n\n const virtualModuleId = `\\0polyfill:external-require`;\n\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n (() => {\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\" ? 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 );\n\n if (ctx.platform === 'web') {\n return [\n virtualModuleId,\n virtualEnvVarId,\n // Ensure that the error-guard polyfill is included in the web polyfills to\n // make metro-runtime work correctly.\n // TODO: This module is pretty big for a function that simply re-throws an error that doesn't need to be caught.\n require.resolve('@react-native/js-polyfills/error-guard'),\n ];\n }\n\n // Generally uses `rn-get-polyfills`\n const polyfills = originalGetPolyfills(ctx);\n return [...polyfills, virtualModuleId, virtualEnvVarId];\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 isReactServerComponentsEnabled,\n getMetroBundler,\n }: {\n tsconfig: TsConfigPaths | null;\n isTsconfigPathsEnabled?: boolean;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled?: boolean;\n isReactServerComponentsEnabled?: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (isReactServerComponentsEnabled) {\n Log.warn(\n `Experimental React Server Components is enabled. Production exports are not supported yet.`\n );\n }\n if (isFastResolverEnabled) {\n Log.warn(`Experimental module resolution is enabled.`);\n }\n\n if (isReactCanaryEnabled) {\n Log.warn(`Experimental React Canary version is enabled.`);\n }\n\n const defaultResolver = metroResolver.resolve;\n const resolver = isFastResolverEnabled\n ? createFastResolver({\n preserveSymlinks: true,\n blockList: !config.resolver?.blockList\n ? []\n : 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 'react-native/Libraries/Image/resolveAssetSource': 'expo-asset/build/resolveAssetSource',\n },\n };\n\n let _universalAliases: [RegExp, string][] | null;\n\n function getUniversalAliases() {\n if (_universalAliases) {\n return _universalAliases;\n }\n\n _universalAliases = [];\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 if (isReactServerComponentsEnabled) {\n if (resolveFrom.silent(config.projectRoot, 'expo-router/rsc')) {\n debug('Enabling bridge alias: expo-router -> expo-router/rsc');\n _universalAliases.push([/^expo-router$/, 'expo-router/rsc']);\n // Bridge the internal entry point which is a standalone import to ensure package.json resolution works as expected.\n _universalAliases.push([/^expo-router\\/entry-classic$/, 'expo-router/rsc/entry']);\n }\n }\n return _universalAliases;\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 // TODO: This is a hack to get resolveWeak working.\n const idFactory = (config.serializer?.createModuleIdFactory?.() ??\n ((id: number | string, context: { platform: string; environment?: string }): number | string =>\n id)) as (\n id: number | string,\n context: { platform: string; environment?: string }\n ) => number | string;\n\n const getAssetRegistryModule = () => {\n const virtualModuleId = `\\0polyfill:assets-registry`;\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n ASSET_REGISTRY_SRC\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n } as const;\n };\n\n // If Node.js pass-through, then remap to a module like `module.exports = $$require_external(<module>)`.\n // If module should be shimmed, remap to an empty module.\n const externals: {\n match: (context: ResolutionContext, moduleName: string, platform: string | null) => boolean;\n replace: 'empty' | 'node' | 'weak';\n }[] = [\n {\n match: (context: ResolutionContext, moduleName: string) => {\n if (\n // Disable internal externals when exporting for production.\n context.customResolverOptions.exporting ||\n // These externals are only for Node.js environments.\n !isServerEnvironment(context.customResolverOptions?.environment)\n ) {\n return false;\n }\n\n if (context.customResolverOptions?.environment === 'react-server') {\n // Ensure these non-react-server modules are excluded when bundling for React Server Components in development.\n return /^(source-map-support(\\/.*)?|@babel\\/runtime\\/.+|debug|metro-runtime\\/src\\/modules\\/HMRClient|metro|acorn-loose|acorn|chalk|ws|ansi-styles|supports-color|color-convert|has-flag|utf-8-validate|color-name|react-refresh\\/runtime|@remix-run\\/node\\/.+)$/.test(\n moduleName\n );\n }\n\n // TODO: Windows doesn't support externals somehow.\n if (process.platform === 'win32') {\n return /^(source-map-support(\\/.*)?)$/.test(moduleName);\n }\n\n // Extern these modules in standard Node.js environments in development to prevent API routes side-effects\n // from leaking into the dev server process.\n return /^(source-map-support(\\/.*)?|react|react-native-helmet-async|@radix-ui\\/.+|@babel\\/runtime\\/.+|react-dom(\\/.+)?|debug|acorn-loose|acorn|css-in-js-utils\\/lib\\/.+|hyphenate-style-name|color|color-string|color-convert|color-name|fontfaceobserver|fast-deep-equal|query-string|escape-string-regexp|invariant|postcss-value-parser|memoize-one|nullthrows|strict-uri-encode|decode-uri-component|split-on-first|filter-obj|warn-once|simple-swizzle|is-arrayish|inline-style-prefixer\\/.+)$/.test(\n moduleName\n );\n },\n replace: 'node',\n },\n // Externals to speed up async split chunks by extern-ing common packages that appear in the root client chunk.\n {\n match: (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (\n // Disable internal externals when exporting for production.\n context.customResolverOptions.exporting ||\n // These externals are only for client environments.\n isServerEnvironment(context.customResolverOptions?.environment) ||\n // Only enable for client boundaries\n !context.customResolverOptions.clientboundary\n ) {\n return false;\n }\n\n // We don't support this in the resolver at the moment.\n if (moduleName.endsWith('/package.json')) {\n return false;\n }\n\n const isExternal = // Extern these modules in standard Node.js environments.\n /^(deprecated-react-native-prop-types|react|react\\/jsx-dev-runtime|scheduler|react-native|react-dom(\\/.+)?|metro-runtime(\\/.+)?)$/.test(\n moduleName\n ) ||\n // TODO: Add more\n /^@babel\\/runtime\\/helpers\\/(wrapNativeSuper)$/.test(moduleName);\n\n return isExternal;\n },\n replace: 'weak',\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 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 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\n if (!result && platform !== 'web') {\n // Preserve previous behavior where native throws an error on node.js internals.\n return null;\n }\n\n return (\n result ?? {\n // In this case, mock the file to use an empty module.\n type: 'empty',\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 // Custom externals support\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n // We don't support this in the resolver at the moment.\n if (moduleName.endsWith('/package.json')) {\n return null;\n }\n const environment = context.customResolverOptions?.environment;\n\n const strictResolve = getStrictResolver(context, platform);\n\n for (const external of externals) {\n if (external.match(context, moduleName, platform)) {\n if (external.replace === 'empty') {\n debug(`Redirecting external \"${moduleName}\" to \"${external.replace}\"`);\n return {\n type: external.replace,\n };\n } else if (external.replace === 'weak') {\n // TODO: Make this use require.resolveWeak again. Previously this was just resolving to the same path.\n const realModule = strictResolve(moduleName);\n const realPath = realModule.type === 'sourceFile' ? realModule.filePath : moduleName;\n const opaqueId = idFactory(realPath, {\n platform: platform!,\n environment,\n });\n\n const contents =\n typeof opaqueId === 'number'\n ? `module.exports=/*${moduleName}*/__r(${opaqueId})`\n : `module.exports=/*${moduleName}*/__r(${JSON.stringify(opaqueId)})`;\n // const contents = `module.exports=/*${moduleName}*/__r(require.resolveWeak('${moduleName}'))`;\n // const generatedModuleId = fastHashMemoized(contents);\n const virtualModuleId = `\\0weak:${opaqueId}`;\n debug('Virtualizing module:', moduleName, '->', virtualModuleId);\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n };\n } else if (external.replace === 'node') {\n const contents = `module.exports=$$require_external('${moduleName}')`;\n const virtualModuleId = `\\0node:${moduleName}`;\n debug('Virtualizing Node.js (custom):', moduleName, '->', virtualModuleId);\n getMetroBundlerWithVirtualModules(getMetroBundler()).setVirtualModule(\n virtualModuleId,\n contents\n );\n return {\n type: 'sourceFile',\n filePath: virtualModuleId,\n };\n } else {\n throw new CommandError(\n `Invalid external alias type: \"${external.replace}\" for module \"${moduleName}\" (platform: ${platform}, originModulePath: ${context.originModulePath})`\n );\n }\n }\n }\n return null;\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 getUniversalAliases()) {\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 // Polyfill for asset registry\n (context: ResolutionContext, moduleName: string, platform: string | null) => {\n if (/^@react-native\\/assets-registry\\/registry(\\.js)?$/.test(moduleName)) {\n return getAssetRegistryModule();\n }\n\n if (\n platform === 'web' &&\n context.originModulePath.match(/node_modules[\\\\/]react-native-web[\\\\/]/) &&\n moduleName.includes('/modules/AssetRegistry')\n ) {\n return getAssetRegistryModule();\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 if (result.filePath.includes('node_modules')) {\n // // Disallow importing confusing native modules on web\n if (moduleName.includes('react-native/Libraries/Utilities/codegenNativeCommands')) {\n throw new FailedToResolvePathError(\n `Importing native-only module \"${moduleName}\" on web from: ${context.originModulePath}`\n );\n }\n\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 const isServer =\n context.customResolverOptions?.environment === 'node' ||\n context.customResolverOptions?.environment === 'react-server';\n\n // react-native/Libraries/Core/InitializeCore\n const normal = normalizeSlashes(result.filePath);\n\n // Shim out React Native native runtime globals in server mode for native.\n if (isServer) {\n if (normal.endsWith('react-native/Libraries/Core/InitializeCore.js')) {\n console.log('Shimming out InitializeCore for React Native in native SSR bundle');\n return {\n type: 'empty',\n };\n }\n }\n\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 // TODO: Remove this when we have React 19 in the expo/expo monorepo.\n if (\n isReactCanaryEnabled &&\n // Change the node modules path for react and react-dom to use the vendor in Expo CLI.\n /^(react|react\\/.*|react-dom|react-dom\\/.*)$/.test(moduleName)\n ) {\n context.nodeModulesPaths = [\n path.join(require.resolve('@expo/cli/package.json'), '../static/canary-full'),\n ];\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_conditionsByPlatform = {};\n\n const isReactServerComponents =\n context.customResolverOptions?.environment === 'react-server';\n\n if (isReactServerComponents) {\n // NOTE: Align the behavior across server and client. This is a breaking change so we'll just roll it out with React Server Components.\n // This ensures that react-server and client code both resolve `module` and `main` in the same order.\n if (platform === 'web') {\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 = ['module', 'main'];\n } else {\n // In Node.js + native, use the standard main fields.\n context.mainFields = ['react-native', 'module', 'main'];\n }\n } else {\n if (platform === 'web') {\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 // In Node.js + native, use the standard main fields.\n context.mainFields = ['react-native', 'main', 'module'];\n }\n }\n\n // Enable react-server import conditions.\n if (context.customResolverOptions?.environment === 'react-server') {\n context.unstable_conditionNames = [\n 'node',\n 'import',\n 'require',\n 'react-server',\n 'workerd',\n ];\n } else {\n context.unstable_conditionNames = ['node', 'require'];\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. */\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 isFastResolverEnabled,\n isExporting,\n isReactCanaryEnabled,\n isNamedRequiresEnabled,\n isReactServerComponentsEnabled,\n getMetroBundler,\n }: {\n config: ConfigT;\n exp: ExpoConfig;\n isTsconfigPathsEnabled: boolean;\n platformBundlers: PlatformBundlers;\n isFastResolverEnabled?: boolean;\n isExporting?: boolean;\n isReactCanaryEnabled: boolean;\n isReactServerComponentsEnabled: boolean;\n isNamedRequiresEnabled: boolean;\n getMetroBundler: () => Bundler;\n }\n) {\n if (isNamedRequiresEnabled) {\n debug('Using Expo metro require runtime.');\n // Change the default metro-runtime to a custom one that supports bundle splitting.\n require('metro-config/src/defaults/defaults').moduleSystem = require.resolve(\n '@expo/cli/build/metro-require/require'\n );\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 // 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 if (isReactCanaryEnabled) {\n // @ts-expect-error: watchFolders is readonly\n config.watchFolders.push(path.join(require.resolve('@expo/cli/package.json'), '..'));\n }\n }\n\n // TODO: Remove this\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 isReactServerComponentsEnabled,\n getMetroBundler,\n });\n}\n\nfunction isDirectoryIn(targetPath: string, rootPath: string) {\n return targetPath.startsWith(rootPath) && targetPath.length >= rootPath.length;\n}\n"],"names":["getNodejsExtensions","withExtendedResolver","shouldAliasModule","withMetroMultiPlatformAsync","ASSET_REGISTRY_SRC","debug","require","withWebPolyfills","config","getMetroBundler","originalGetPolyfills","serializer","getPolyfills","bind","ctx","virtualEnvVarId","getMetroBundlerWithVirtualModules","setVirtualModule","virtualModuleId","platform","resolve","polyfills","normalizeSlashes","p","replace","srcExts","mjsExts","filter","ext","test","nodejsSourceExtensions","jsIndex","reduce","index","i","splice","tsconfig","isTsconfigPathsEnabled","isFastResolverEnabled","isExporting","isReactCanaryEnabled","isReactServerComponentsEnabled","Log","warn","defaultResolver","metroResolver","resolver","createFastResolver","preserveSymlinks","blockList","Array","isArray","aliases","web","_universalAliases","getUniversalAliases","resolveFrom","silent","projectRoot","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","idFactory","createModuleIdFactory","id","getAssetRegistryModule","type","filePath","externals","match","customResolverOptions","exporting","isServerEnvironment","environment","process","clientboundary","endsWith","isExternal","metroConfigWithCustomResolver","withMetroResolvers","dev","originModulePath","isServer","moduleId","isNodeExternal","result","contents","strictResolve","external","realModule","realPath","opaqueId","JSON","stringify","CommandError","redirectedModuleName","matcher","alias","aliasedModule","_","parseInt","includes","FailedToResolvePathError","normalName","shimFile","shouldCreateVirtualShim","virtualId","bundler","hasVirtualModule","fs","readFileSync","normal","console","log","canaryFile","shouldCreateVirtualCanary","metroConfigWithCustomContext","withMetroMutatedResolverContext","immutableContext","preferNativePlatform","nodeModulesPaths","path","join","sourceExts","unstable_enablePackageExports","unstable_conditionsByPlatform","isReactServerComponents","mainFields","unstable_conditionNames","env","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","withMetroErrorReportingResolver","input","output","exp","platformBundlers","isNamedRequiresEnabled","moduleSystem","EXPO_PUBLIC_PROJECT_ROOT","isDirectoryIn","__dirname","watchFolders","transformer","_expoRouterPath","expoConfigPlatforms","entries","platforms","map","Set","concat","targetPath","rootPath","startsWith"],"mappings":"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"}
@@ -14,35 +14,27 @@ function _export(target, all) {
14
14
  });
15
15
  }
16
16
  _export(exports, {
17
- getDefaultMetroResolver: function() {
18
- return getDefaultMetroResolver;
19
- },
20
- withMetroErrorReportingResolver: function() {
21
- return withMetroErrorReportingResolver;
22
- },
23
- withMetroMutatedResolverContext: function() {
24
- return withMetroMutatedResolverContext;
25
- },
26
- withMetroResolvers: function() {
27
- return withMetroResolvers;
28
- }
17
+ getDefaultMetroResolver: ()=>getDefaultMetroResolver,
18
+ withMetroResolvers: ()=>withMetroResolvers,
19
+ withMetroMutatedResolverContext: ()=>withMetroMutatedResolverContext,
20
+ withMetroErrorReportingResolver: ()=>withMetroErrorReportingResolver
29
21
  });
30
22
  function _chalk() {
31
- const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
32
24
  _chalk = function() {
33
25
  return data;
34
26
  };
35
27
  return data;
36
28
  }
37
- function _metroresolver() {
38
- const data = /*#__PURE__*/ _interop_require_wildcard(require("metro-resolver"));
39
- _metroresolver = function() {
29
+ function _metroResolver() {
30
+ const data = /*#__PURE__*/ _interopRequireWildcard(require("metro-resolver"));
31
+ _metroResolver = function() {
40
32
  return data;
41
33
  };
42
34
  return data;
43
35
  }
44
36
  function _path() {
45
- const data = /*#__PURE__*/ _interop_require_default(require("path"));
37
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
46
38
  _path = function() {
47
39
  return data;
48
40
  };
@@ -50,7 +42,7 @@ function _path() {
50
42
  }
51
43
  const _metroErrors = require("./metroErrors");
52
44
  const _env = require("../../../utils/env");
53
- function _interop_require_default(obj) {
45
+ function _interopRequireDefault(obj) {
54
46
  return obj && obj.__esModule ? obj : {
55
47
  default: obj
56
48
  };
@@ -63,7 +55,7 @@ function _getRequireWildcardCache(nodeInterop) {
63
55
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
64
56
  })(nodeInterop);
65
57
  }
66
- function _interop_require_wildcard(obj, nodeInterop) {
58
+ function _interopRequireWildcard(obj, nodeInterop) {
67
59
  if (!nodeInterop && obj && obj.__esModule) {
68
60
  return obj;
69
61
  }
@@ -76,9 +68,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
76
68
  if (cache && cache.has(obj)) {
77
69
  return cache.get(obj);
78
70
  }
79
- var newObj = {
80
- __proto__: null
81
- };
71
+ var newObj = {};
82
72
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
83
73
  for(var key in obj){
84
74
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -96,23 +86,23 @@ function _interop_require_wildcard(obj, nodeInterop) {
96
86
  }
97
87
  return newObj;
98
88
  }
99
- const debug = require('debug')('expo:metro:withMetroResolvers');
89
+ const debug = require("debug")("expo:metro:withMetroResolvers");
100
90
  function getDefaultMetroResolver(projectRoot) {
101
91
  return (context, moduleName, platform)=>{
102
- return _metroresolver().resolve(context, moduleName, platform);
92
+ return _metroResolver().resolve(context, moduleName, platform);
103
93
  };
104
94
  }
105
95
  function optionsKeyForContext(context) {
106
- const canonicalize = require('metro-core/src/canonicalize');
96
+ const canonicalize = require("metro-core/src/canonicalize");
107
97
  // Compound key for the resolver cache
108
- return JSON.stringify(context.customResolverOptions ?? {}, canonicalize) ?? '';
98
+ return JSON.stringify(context.customResolverOptions ?? {}, canonicalize) ?? "";
109
99
  }
110
100
  function withMetroResolvers(config, resolvers) {
111
- var _config_resolver, _config_resolver1;
112
- debug(`Appending ${resolvers.length} custom resolvers to Metro config. (has custom resolver: ${!!((_config_resolver = config.resolver) == null ? void 0 : _config_resolver.resolveRequest)})`);
101
+ var ref, ref1;
102
+ debug(`Appending ${resolvers.length} custom resolvers to Metro config. (has custom resolver: ${!!((ref = config.resolver) == null ? void 0 : ref.resolveRequest)})`);
113
103
  // const hasUserDefinedResolver = !!config.resolver?.resolveRequest;
114
104
  // const defaultResolveRequest = getDefaultMetroResolver(projectRoot);
115
- const originalResolveRequest = (_config_resolver1 = config.resolver) == null ? void 0 : _config_resolver1.resolveRequest;
105
+ const originalResolveRequest = (ref1 = config.resolver) == null ? void 0 : ref1.resolveRequest;
116
106
  return {
117
107
  ...config,
118
108
  resolver: {
@@ -129,14 +119,14 @@ function withMetroResolvers(config, resolvers) {
129
119
  return res;
130
120
  }
131
121
  } catch (error) {
132
- var _ctx_customResolverOptions;
122
+ var ref;
133
123
  // If the error is directly related to a resolver not being able to resolve a module, then
134
124
  // we can ignore the error and try the next resolver. Otherwise, we should throw the error.
135
125
  const isResolutionError = (0, _metroErrors.isFailedToResolveNameError)(error) || (0, _metroErrors.isFailedToResolvePathError)(error);
136
126
  if (!isResolutionError) {
137
127
  throw error;
138
128
  }
139
- debug(`Custom resolver threw: ${error.constructor.name}. (module: ${moduleName}, platform: ${platform}, env: ${(_ctx_customResolverOptions = ctx.customResolverOptions) == null ? void 0 : _ctx_customResolverOptions.environment}, origin: ${ctx.originModulePath})`);
129
+ debug(`Custom resolver threw: ${error.constructor.name}. (module: ${moduleName}, platform: ${platform}, env: ${(ref = ctx.customResolverOptions) == null ? void 0 : ref.environment}, origin: ${ctx.originModulePath})`);
140
130
  }
141
131
  }
142
132
  // If we haven't returned by now, use the original resolver or upstream resolver.
@@ -159,9 +149,9 @@ function withMetroResolvers(config, resolvers) {
159
149
  };
160
150
  }
161
151
  function withMetroMutatedResolverContext(config, getContext) {
162
- var _config_resolver;
152
+ var ref;
163
153
  const defaultResolveRequest = getDefaultMetroResolver(config.projectRoot);
164
- const originalResolveRequest = (_config_resolver = config.resolver) == null ? void 0 : _config_resolver.resolveRequest;
154
+ const originalResolveRequest = (ref = config.resolver) == null ? void 0 : ref.resolveRequest;
165
155
  return {
166
156
  ...config,
167
157
  resolver: {
@@ -175,14 +165,14 @@ function withMetroMutatedResolverContext(config, getContext) {
175
165
  };
176
166
  }
177
167
  function withMetroErrorReportingResolver(config) {
178
- var _config_resolver;
168
+ var ref;
179
169
  if (!_env.env.EXPO_METRO_UNSTABLE_ERRORS) {
180
170
  return config;
181
171
  }
182
- const originalResolveRequest = (_config_resolver = config.resolver) == null ? void 0 : _config_resolver.resolveRequest;
172
+ const originalResolveRequest = (ref = config.resolver) == null ? void 0 : ref.resolveRequest;
183
173
  function mutateResolutionError(error, context, moduleName, platform) {
184
- var _config_server;
185
- const inputPlatform = platform ?? 'null';
174
+ var ref;
175
+ const inputPlatform = platform ?? "null";
186
176
  const mapByOrigin = depGraph.get(optionsKeyForContext(context));
187
177
  const mapByPlatform = mapByOrigin == null ? void 0 : mapByOrigin.get(inputPlatform);
188
178
  if (!mapByPlatform) {
@@ -210,9 +200,9 @@ function withMetroErrorReportingResolver(config) {
210
200
  return inverseOrigin;
211
201
  };
212
202
  const pad = (num)=>{
213
- return new Array(num).fill(' ').join('');
203
+ return new Array(num).fill(" ").join("");
214
204
  };
215
- const root = ((_config_server = config.server) == null ? void 0 : _config_server.unstable_serverRoot) ?? config.projectRoot;
205
+ const root = ((ref = config.server) == null ? void 0 : ref.unstable_serverRoot) ?? config.projectRoot;
216
206
  const recurseBackWithLimit = (req, limit, count = 0)=>{
217
207
  const results = {
218
208
  origin: req.origin,
@@ -243,26 +233,26 @@ function withMetroErrorReportingResolver(config) {
243
233
  }, // TODO: Do we need to expose this?
244
234
  35);
245
235
  if (inverseTree.previous.length > 0) {
246
- debug('Found inverse graph:', JSON.stringify(inverseTree, null, 2));
247
- let extraMessage = _chalk().default.bold('Import stack:');
236
+ debug("Found inverse graph:", JSON.stringify(inverseTree, null, 2));
237
+ let extraMessage = _chalk().default.bold("Import stack:");
248
238
  const printRecursive = (tree, depth = 0)=>{
249
239
  let filename = _path().default.relative(root, tree.origin);
250
240
  if (filename.match(/\?ctx=[\w\d]+$/)) {
251
- filename = filename.replace(/\?ctx=[\w\d]+$/, _chalk().default.dim(' (require.context)'));
241
+ filename = filename.replace(/\?ctx=[\w\d]+$/, _chalk().default.dim(" (require.context)"));
252
242
  } else {
253
243
  let formattedRequest = _chalk().default.green(`"${tree.request}"`);
254
244
  if (// If bundling for web and the import is pulling internals from outside of react-native
255
245
  // then mark it as an invalid import.
256
- inputPlatform === 'web' && !/^(node_modules\/)?react-native\//.test(filename) && tree.request.match(/^react-native\/.*/)) {
246
+ inputPlatform === "web" && !/^(node_modules\/)?react-native\//.test(filename) && tree.request.match(/^react-native\/.*/)) {
257
247
  formattedRequest = formattedRequest + (0, _chalk().default)`\n {yellow Importing react-native internals is not supported on web.}`;
258
248
  }
259
249
  filename = filename + (0, _chalk().default)`\n{gray |} {cyan import} ${formattedRequest}\n`;
260
250
  }
261
- let line = '\n' + pad(depth) + _chalk().default.gray(' ') + filename;
251
+ let line = "\n" + pad(depth) + _chalk().default.gray(" ") + filename;
262
252
  if (filename.match(/node_modules/)) {
263
253
  line = _chalk().default.gray(// Bold the node module name
264
254
  line.replace(/node_modules\/([^/]+)/, (_match, p1)=>{
265
- return 'node_modules/' + _chalk().default.bold(p1);
255
+ return "node_modules/" + _chalk().default.bold(p1);
266
256
  }));
267
257
  }
268
258
  extraMessage += line;
@@ -272,11 +262,11 @@ function withMetroErrorReportingResolver(config) {
272
262
  }
273
263
  };
274
264
  printRecursive(inverseTree);
275
- debug('inverse graph message:', extraMessage);
265
+ debug("inverse graph message:", extraMessage);
276
266
  // @ts-expect-error
277
267
  error._expoImportStack = extraMessage;
278
268
  } else {
279
- debug('Found no inverse tree for:', context.originModulePath);
269
+ debug("Found no inverse tree for:", context.originModulePath);
280
270
  }
281
271
  return error;
282
272
  }
@@ -287,7 +277,7 @@ function withMetroErrorReportingResolver(config) {
287
277
  ...config.resolver,
288
278
  resolveRequest (context, moduleName, platform) {
289
279
  const storeResult = (res)=>{
290
- const inputPlatform = platform ?? 'null';
280
+ const inputPlatform = platform ?? "null";
291
281
  const key = optionsKeyForContext(context);
292
282
  if (!depGraph.has(key)) depGraph.set(key, new Map());
293
283
  const mapByTarget = depGraph.get(key);
@@ -295,7 +285,7 @@ function withMetroErrorReportingResolver(config) {
295
285
  const mapByPlatform = mapByTarget.get(inputPlatform);
296
286
  if (!mapByPlatform.has(context.originModulePath)) mapByPlatform.set(context.originModulePath, new Set());
297
287
  const setForModule = mapByPlatform.get(context.originModulePath);
298
- const qualifiedModuleName = (res == null ? void 0 : res.type) === 'sourceFile' ? res.filePath : moduleName;
288
+ const qualifiedModuleName = (res == null ? void 0 : res.type) === "sourceFile" ? res.filePath : moduleName;
299
289
  setForModule.add({
300
290
  path: qualifiedModuleName,
301
291
  request: moduleName