@expo/cli 0.17.9 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/build/bin/cli +11 -7
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/getExpoSchema.js +23 -5
  4. package/build/src/api/getExpoSchema.js.map +1 -1
  5. package/build/src/api/graphql/client.js +28 -10
  6. package/build/src/api/graphql/client.js.map +1 -1
  7. package/build/src/api/graphql/queries/AppQuery.js +16 -4
  8. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  9. package/build/src/api/graphql/queries/UserQuery.js +8 -2
  10. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  11. package/build/src/api/graphql/types/App.js +8 -2
  12. package/build/src/api/graphql/types/App.js.map +1 -1
  13. package/build/src/api/rest/cache/FileSystemCache.js +21 -9
  14. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  15. package/build/src/api/rest/cache/response.js +9 -3
  16. package/build/src/api/rest/cache/response.js.map +1 -1
  17. package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
  18. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  19. package/build/src/api/rest/client.js +23 -5
  20. package/build/src/api/rest/client.js.map +1 -1
  21. package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
  22. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  23. package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
  24. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  25. package/build/src/api/settings.js +8 -2
  26. package/build/src/api/settings.js.map +1 -1
  27. package/build/src/api/updateDevelopmentSession.js +18 -6
  28. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  29. package/build/src/api/user/UserSettings.js +26 -8
  30. package/build/src/api/user/UserSettings.js.map +1 -1
  31. package/build/src/api/user/actions.js +17 -5
  32. package/build/src/api/user/actions.js.map +1 -1
  33. package/build/src/api/user/expoSsoLauncher.js +32 -8
  34. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  35. package/build/src/api/user/otp.js +17 -5
  36. package/build/src/api/user/otp.js.map +1 -1
  37. package/build/src/api/user/user.js +19 -12
  38. package/build/src/api/user/user.js.map +1 -1
  39. package/build/src/config/configAsync.js +25 -7
  40. package/build/src/config/configAsync.js.map +1 -1
  41. package/build/src/config/index.js +9 -3
  42. package/build/src/config/index.js.map +1 -1
  43. package/build/src/customize/customizeAsync.js +8 -2
  44. package/build/src/customize/customizeAsync.js.map +1 -1
  45. package/build/src/customize/generate.js +16 -4
  46. package/build/src/customize/generate.js.map +1 -1
  47. package/build/src/customize/index.js +10 -4
  48. package/build/src/customize/index.js.map +1 -1
  49. package/build/src/customize/templates.js +33 -9
  50. package/build/src/customize/templates.js.map +1 -1
  51. package/build/src/customize/typescript.js +8 -2
  52. package/build/src/customize/typescript.js.map +1 -1
  53. package/build/src/export/createMetadataJson.js +8 -2
  54. package/build/src/export/createMetadataJson.js.map +1 -1
  55. package/build/src/export/embed/exportEmbedAsync.js +58 -18
  56. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  57. package/build/src/export/embed/index.js +17 -5
  58. package/build/src/export/embed/index.js.map +1 -1
  59. package/build/src/export/embed/resolveOptions.js +8 -2
  60. package/build/src/export/embed/resolveOptions.js.map +1 -1
  61. package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
  62. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  63. package/build/src/export/exportApp.js +32 -12
  64. package/build/src/export/exportApp.js.map +1 -1
  65. package/build/src/export/exportAssets.js +27 -9
  66. package/build/src/export/exportAssets.js.map +1 -1
  67. package/build/src/export/exportAsync.js +10 -2
  68. package/build/src/export/exportAsync.js.map +1 -1
  69. package/build/src/export/exportHermes.js +29 -17
  70. package/build/src/export/exportHermes.js.map +1 -1
  71. package/build/src/export/exportStaticAsync.js +69 -37
  72. package/build/src/export/exportStaticAsync.js.map +1 -1
  73. package/build/src/export/favicon.js +33 -9
  74. package/build/src/export/favicon.js.map +1 -1
  75. package/build/src/export/fork-bundleAsync.js +61 -16
  76. package/build/src/export/fork-bundleAsync.js.map +1 -1
  77. package/build/src/export/getPublicExpoManifest.js +8 -2
  78. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  79. package/build/src/export/getResolvedLocales.js +15 -3
  80. package/build/src/export/getResolvedLocales.js.map +1 -1
  81. package/build/src/export/index.js +11 -5
  82. package/build/src/export/index.js.map +1 -1
  83. package/build/src/export/metroAssetLocalPath.js +9 -3
  84. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  85. package/build/src/export/persistMetroAssets.js +27 -15
  86. package/build/src/export/persistMetroAssets.js.map +1 -1
  87. package/build/src/export/publicFolder.js +18 -6
  88. package/build/src/export/publicFolder.js.map +1 -1
  89. package/build/src/export/resolveOptions.js +8 -2
  90. package/build/src/export/resolveOptions.js.map +1 -1
  91. package/build/src/export/saveAssets.js +43 -19
  92. package/build/src/export/saveAssets.js.map +1 -1
  93. package/build/src/export/web/exportWebAsync.js +16 -4
  94. package/build/src/export/web/exportWebAsync.js.map +1 -1
  95. package/build/src/export/web/index.js +9 -3
  96. package/build/src/export/web/index.js.map +1 -1
  97. package/build/src/install/applyPlugins.js +8 -2
  98. package/build/src/install/applyPlugins.js.map +1 -1
  99. package/build/src/install/checkPackages.js +18 -6
  100. package/build/src/install/checkPackages.js.map +1 -1
  101. package/build/src/install/fixPackages.js +8 -2
  102. package/build/src/install/fixPackages.js.map +1 -1
  103. package/build/src/install/index.js +14 -8
  104. package/build/src/install/index.js.map +1 -1
  105. package/build/src/install/installAsync.js +27 -9
  106. package/build/src/install/installAsync.js.map +1 -1
  107. package/build/src/install/installExpoPackage.js +17 -5
  108. package/build/src/install/installExpoPackage.js.map +1 -1
  109. package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
  110. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  111. package/build/src/log.js +9 -3
  112. package/build/src/log.js.map +1 -1
  113. package/build/src/prebuild/clearNativeFolder.js +37 -13
  114. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  115. package/build/src/prebuild/configureProjectAsync.js +16 -4
  116. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  117. package/build/src/prebuild/copyTemplateFiles.js +29 -11
  118. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  119. package/build/src/prebuild/ensureConfigAsync.js +24 -6
  120. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  121. package/build/src/prebuild/index.js +14 -8
  122. package/build/src/prebuild/index.js.map +1 -1
  123. package/build/src/prebuild/prebuildAsync.js +9 -3
  124. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  125. package/build/src/prebuild/renameTemplateAppName.js +119 -0
  126. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  127. package/build/src/prebuild/resolveOptions.js +32 -8
  128. package/build/src/prebuild/resolveOptions.js.map +1 -1
  129. package/build/src/prebuild/resolveTemplate.js +44 -14
  130. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  131. package/build/src/prebuild/updateFromTemplate.js +18 -2
  132. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  133. package/build/src/prebuild/updatePackageJson.js +49 -13
  134. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  135. package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
  136. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  137. package/build/src/run/android/index.js +20 -4
  138. package/build/src/run/android/index.js.map +1 -1
  139. package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
  140. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  141. package/build/src/run/android/resolveInstallApkName.js +18 -6
  142. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  143. package/build/src/run/android/resolveLaunchProps.js +10 -4
  144. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  145. package/build/src/run/android/resolveOptions.js +5 -3
  146. package/build/src/run/android/resolveOptions.js.map +1 -1
  147. package/build/src/run/android/runAndroidAsync.js +13 -4
  148. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  149. package/build/src/run/ensureNativeProject.js +15 -3
  150. package/build/src/run/ensureNativeProject.js.map +1 -1
  151. package/build/src/run/hints.js +10 -4
  152. package/build/src/run/hints.js.map +1 -1
  153. package/build/src/run/index.js +8 -2
  154. package/build/src/run/index.js.map +1 -1
  155. package/build/src/run/ios/XcodeBuild.js +57 -21
  156. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  157. package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
  158. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  159. package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
  160. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  161. package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
  162. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  163. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
  164. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  165. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
  166. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  167. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
  168. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  169. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
  170. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  171. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
  172. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  173. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
  174. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  175. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
  176. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  177. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
  178. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  179. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
  180. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  181. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
  182. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  183. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
  184. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  185. package/build/src/run/ios/codeSigning/Security.js +17 -5
  186. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  187. package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
  188. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  189. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
  190. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  191. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
  192. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  193. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
  194. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  195. package/build/src/run/ios/index.js +19 -7
  196. package/build/src/run/ios/index.js.map +1 -1
  197. package/build/src/run/ios/launchApp.js +17 -5
  198. package/build/src/run/ios/launchApp.js.map +1 -1
  199. package/build/src/run/ios/options/promptDevice.js +9 -3
  200. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  201. package/build/src/run/ios/options/resolveDevice.js +1 -2
  202. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  203. package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
  204. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  205. package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
  206. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  207. package/build/src/run/ios/runIosAsync.js +10 -2
  208. package/build/src/run/ios/runIosAsync.js.map +1 -1
  209. package/build/src/run/startBundler.js +16 -4
  210. package/build/src/run/startBundler.js.map +1 -1
  211. package/build/src/start/detectDevClient.js +29 -0
  212. package/build/src/start/detectDevClient.js.map +1 -0
  213. package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
  214. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  215. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
  216. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  217. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
  218. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  219. package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
  220. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  221. package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
  222. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  223. package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
  224. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  225. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
  226. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  227. package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
  228. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  229. package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
  230. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  231. package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
  232. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  233. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
  234. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  235. package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
  236. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  237. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
  238. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  239. package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
  240. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  241. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
  242. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  243. package/build/src/start/index.js +17 -11
  244. package/build/src/start/index.js.map +1 -1
  245. package/build/src/start/interface/commandsTable.js +27 -9
  246. package/build/src/start/interface/commandsTable.js.map +1 -1
  247. package/build/src/start/interface/interactiveActions.js +17 -11
  248. package/build/src/start/interface/interactiveActions.js.map +1 -1
  249. package/build/src/start/interface/startInterface.js +8 -2
  250. package/build/src/start/interface/startInterface.js.map +1 -1
  251. package/build/src/start/platforms/AppIdResolver.js +9 -3
  252. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  253. package/build/src/start/platforms/DeviceManager.js +8 -2
  254. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  255. package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
  256. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  257. package/build/src/start/platforms/PlatformManager.js +33 -13
  258. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  259. package/build/src/start/platforms/android/ADBServer.js +17 -5
  260. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  261. package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
  262. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  263. package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
  264. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  265. package/build/src/start/platforms/android/AndroidSdk.js +34 -10
  266. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  267. package/build/src/start/platforms/android/activateWindow.js +16 -4
  268. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  269. package/build/src/start/platforms/android/adb.js +21 -4
  270. package/build/src/start/platforms/android/adb.js.map +1 -1
  271. package/build/src/start/platforms/android/emulator.js +32 -8
  272. package/build/src/start/platforms/android/emulator.js.map +1 -1
  273. package/build/src/start/platforms/android/gradle.js +23 -6
  274. package/build/src/start/platforms/android/gradle.js.map +1 -1
  275. package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
  276. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  277. package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
  278. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  279. package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
  280. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  281. package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
  282. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  283. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
  284. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  285. package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
  286. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  287. package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
  288. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  289. package/build/src/start/platforms/ios/simctl.js +12 -6
  290. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  291. package/build/src/start/platforms/ios/simctlLogging.js +40 -10
  292. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  293. package/build/src/start/platforms/ios/xcrun.js +16 -4
  294. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  295. package/build/src/start/project/dotExpo.js +27 -9
  296. package/build/src/start/project/dotExpo.js.map +1 -1
  297. package/build/src/start/resolveOptions.js +33 -15
  298. package/build/src/start/resolveOptions.js.map +1 -1
  299. package/build/src/start/server/AsyncNgrok.js +34 -10
  300. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  301. package/build/src/start/server/BundlerDevServer.js +16 -4
  302. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  303. package/build/src/start/server/DevServerManager.js +28 -10
  304. package/build/src/start/server/DevServerManager.js.map +1 -1
  305. package/build/src/start/server/DevToolsPluginManager.js +16 -4
  306. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  307. package/build/src/start/server/DevelopmentSession.js +9 -3
  308. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  309. package/build/src/start/server/ReactDevToolsProxy.js +26 -8
  310. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  311. package/build/src/start/server/UrlCreator.js +19 -6
  312. package/build/src/start/server/UrlCreator.js.map +1 -1
  313. package/build/src/start/server/getStaticRenderFunctions.js +91 -55
  314. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  315. package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
  316. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  317. package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
  318. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  319. package/build/src/start/server/metro/TerminalReporter.js +26 -8
  320. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  321. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  322. package/build/src/start/server/metro/createExpoMetroResolver.js +56 -20
  323. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  324. package/build/src/start/server/metro/createJResolver.js +90 -45
  325. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  326. package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
  327. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  328. package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
  329. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  330. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
  331. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  332. package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
  333. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  334. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
  335. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  336. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
  337. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  338. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
  339. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  340. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
  341. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  342. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
  343. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  344. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
  345. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  346. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
  347. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  348. package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
  349. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  350. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  351. package/build/src/start/server/metro/externals.js +51 -64
  352. package/build/src/start/server/metro/externals.js.map +1 -1
  353. package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
  354. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  355. package/build/src/start/server/metro/formatFileCandidates.js +8 -2
  356. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  357. package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
  358. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  359. package/build/src/start/server/metro/instantiateMetro.js +96 -30
  360. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  361. package/build/src/start/server/metro/metroErrorInterface.js +40 -21
  362. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  363. package/build/src/start/server/metro/metroVirtualModules.js +82 -0
  364. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  365. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
  366. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  367. package/build/src/start/server/metro/router.js +44 -17
  368. package/build/src/start/server/metro/router.js.map +1 -1
  369. package/build/src/start/server/metro/runServer-fork.js +56 -14
  370. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  371. package/build/src/start/server/metro/serializeHtml.js +25 -12
  372. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  373. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
  374. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  375. package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
  376. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  377. package/build/src/start/server/metro/withMetroResolvers.js +31 -13
  378. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  379. package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
  380. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  381. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
  382. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  383. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
  384. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  385. package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
  386. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  387. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
  388. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  389. package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
  390. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  391. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
  392. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  393. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
  394. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  395. package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
  396. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  397. package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
  398. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  399. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
  400. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  401. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
  402. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  403. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
  404. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  405. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
  406. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  407. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
  408. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  409. package/build/src/start/server/middleware/metroOptions.js +12 -2
  410. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  411. package/build/src/start/server/middleware/resolveAssets.js +17 -5
  412. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  413. package/build/src/start/server/middleware/resolvePlatform.js +8 -2
  414. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  415. package/build/src/start/server/platformBundlers.js +8 -2
  416. package/build/src/start/server/platformBundlers.js.map +1 -1
  417. package/build/src/start/server/serverLogLikeMetro.js +37 -13
  418. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  419. package/build/src/start/server/type-generation/expo-env.js +16 -4
  420. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  421. package/build/src/start/server/type-generation/routes.js +91 -37
  422. package/build/src/start/server/type-generation/routes.js.map +1 -1
  423. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
  424. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  425. package/build/src/start/server/type-generation/tsconfig.js +27 -9
  426. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  427. package/build/src/start/server/webTemplate.js +26 -8
  428. package/build/src/start/server/webTemplate.js.map +1 -1
  429. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
  430. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  431. package/build/src/start/server/webpack/compile.js +17 -5
  432. package/build/src/start/server/webpack/compile.js.map +1 -1
  433. package/build/src/start/server/webpack/resolveFromProject.js +8 -2
  434. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  435. package/build/src/start/server/webpack/tls.js +35 -11
  436. package/build/src/start/server/webpack/tls.js.map +1 -1
  437. package/build/src/start/startAsync.js +36 -11
  438. package/build/src/start/startAsync.js.map +1 -1
  439. package/build/src/utils/FileNotifier.js +32 -8
  440. package/build/src/utils/FileNotifier.js.map +1 -1
  441. package/build/src/utils/analytics/getDevClientProperties.js +26 -8
  442. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  443. package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
  444. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  445. package/build/src/utils/args.js +32 -8
  446. package/build/src/utils/args.js.map +1 -1
  447. package/build/src/utils/cocoapods.js +64 -28
  448. package/build/src/utils/cocoapods.js.map +1 -1
  449. package/build/src/utils/codesigning.js +79 -29
  450. package/build/src/utils/codesigning.js.map +1 -1
  451. package/build/src/utils/createFileTransform.js +24 -69
  452. package/build/src/utils/createFileTransform.js.map +1 -1
  453. package/build/src/utils/dir.js +33 -26
  454. package/build/src/utils/dir.js.map +1 -1
  455. package/build/src/utils/downloadAppAsync.js +40 -10
  456. package/build/src/utils/downloadAppAsync.js.map +1 -1
  457. package/build/src/utils/downloadExpoGoAsync.js +26 -11
  458. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  459. package/build/src/utils/editor.js +18 -6
  460. package/build/src/utils/editor.js.map +1 -1
  461. package/build/src/utils/env.js +40 -31
  462. package/build/src/utils/env.js.map +1 -1
  463. package/build/src/utils/errors.js +20 -5
  464. package/build/src/utils/errors.js.map +1 -1
  465. package/build/src/utils/findUp.js +18 -6
  466. package/build/src/utils/findUp.js.map +1 -1
  467. package/build/src/utils/getOrPromptApplicationId.js +19 -7
  468. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  469. package/build/src/utils/getRunningProcess.js +18 -6
  470. package/build/src/utils/getRunningProcess.js.map +1 -1
  471. package/build/src/utils/git.js +18 -6
  472. package/build/src/utils/git.js.map +1 -1
  473. package/build/src/utils/glob.js +9 -3
  474. package/build/src/utils/glob.js.map +1 -1
  475. package/build/src/utils/ip.js +8 -2
  476. package/build/src/utils/ip.js.map +1 -1
  477. package/build/src/utils/isModuleSymlinked.js +16 -4
  478. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  479. package/build/src/utils/link.js +18 -6
  480. package/build/src/utils/link.js.map +1 -1
  481. package/build/src/utils/mergeGitIgnorePaths.js +25 -13
  482. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  483. package/build/src/utils/modifyConfigAsync.js +18 -6
  484. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  485. package/build/src/utils/modifyConfigPlugins.js +8 -2
  486. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  487. package/build/src/utils/nodeEnv.js +2 -0
  488. package/build/src/utils/nodeEnv.js.map +1 -1
  489. package/build/src/utils/nodeModules.js +23 -5
  490. package/build/src/utils/nodeModules.js.map +1 -1
  491. package/build/src/utils/npm.js +64 -17
  492. package/build/src/utils/npm.js.map +1 -1
  493. package/build/src/utils/open.js +9 -3
  494. package/build/src/utils/open.js.map +1 -1
  495. package/build/src/utils/ora.js +16 -4
  496. package/build/src/utils/ora.js.map +1 -1
  497. package/build/src/utils/plist.js +24 -6
  498. package/build/src/utils/plist.js.map +1 -1
  499. package/build/src/utils/port.js +22 -10
  500. package/build/src/utils/port.js.map +1 -1
  501. package/build/src/utils/profile.js +8 -2
  502. package/build/src/utils/profile.js.map +1 -1
  503. package/build/src/utils/progress.js +8 -2
  504. package/build/src/utils/progress.js.map +1 -1
  505. package/build/src/utils/prompts.js +16 -4
  506. package/build/src/utils/prompts.js.map +1 -1
  507. package/build/src/utils/scheme.js +75 -23
  508. package/build/src/utils/scheme.js.map +1 -1
  509. package/build/src/utils/tar.js +16 -4
  510. package/build/src/utils/tar.js.map +1 -1
  511. package/build/src/utils/telemetry/DetachedClient.js +87 -0
  512. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  513. package/build/src/utils/telemetry/RudderClient.js +98 -0
  514. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  515. package/build/src/utils/telemetry/flushDetached.js +43 -0
  516. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  517. package/build/src/utils/telemetry/getContext.js +92 -0
  518. package/build/src/utils/telemetry/getContext.js.map +1 -0
  519. package/build/src/utils/telemetry/index.js +32 -0
  520. package/build/src/utils/telemetry/index.js.map +1 -0
  521. package/build/src/utils/telemetry/types.js +6 -0
  522. package/build/src/utils/telemetry/types.js.map +1 -0
  523. package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
  524. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  525. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
  526. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  527. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
  528. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  529. package/build/src/utils/url.js +19 -10
  530. package/build/src/utils/url.js.map +1 -1
  531. package/build/src/utils/validateApplicationId.js +18 -6
  532. package/build/src/utils/validateApplicationId.js.map +1 -1
  533. package/build/src/whoami/whoamiAsync.js +8 -2
  534. package/build/src/whoami/whoamiAsync.js.map +1 -1
  535. package/package.json +15 -16
  536. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  537. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  538. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  539. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  540. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  541. package/build/src/run/android/resolveGradleProps.js +0 -37
  542. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  543. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  544. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  545. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  546. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  547. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  548. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  549. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  550. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  551. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  552. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  553. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  554. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  555. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  556. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  557. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  558. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  559. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  560. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  561. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  562. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  563. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  564. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  565. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  566. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  567. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  568. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  569. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  570. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -3,21 +3,39 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.createFastResolver = createFastResolver;
6
- var _fs = _interopRequireDefault(require("fs"));
7
- var _path = _interopRequireDefault(require("path"));
6
+ function _fs() {
7
+ const data = _interopRequireDefault(require("fs"));
8
+ _fs = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _path() {
14
+ const data = _interopRequireDefault(require("path"));
15
+ _path = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
8
20
  var _createJResolver = _interopRequireDefault(require("./createJResolver"));
9
21
  var _externals = require("./externals");
10
22
  var _formatFileCandidates = require("./formatFileCandidates");
23
+ var _metroOptions = require("../middleware/metroOptions");
11
24
  function _interopRequireDefault(obj) {
12
25
  return obj && obj.__esModule ? obj : {
13
26
  default: obj
14
27
  };
15
28
  }
16
29
  class FailedToResolvePathError extends Error {
30
+ // Added to ensure the error is matched by our tooling.
31
+ // TODO: Test that this matches `isFailedToResolvePathError`
32
+ candidates = {};
17
33
  }
34
+ exports.FailedToResolvePathError = FailedToResolvePathError;
18
35
  class ShimModuleError extends Error {
19
36
  }
20
- const realpathFS = process.platform !== "win32" && _fs.default.realpathSync && typeof _fs.default.realpathSync.native === "function" ? _fs.default.realpathSync.native : _fs.default.realpathSync;
37
+ const debug = require("debug")("expo:metro:resolve");
38
+ const realpathFS = process.platform !== "win32" && _fs().default.realpathSync && typeof _fs().default.realpathSync.native === "function" ? _fs().default.realpathSync.native : _fs().default.realpathSync;
21
39
  function realpathSync(x) {
22
40
  try {
23
41
  return realpathFS(x);
@@ -29,6 +47,10 @@ function realpathSync(x) {
29
47
  return x;
30
48
  }
31
49
  function createFastResolver({ preserveSymlinks , blockList }) {
50
+ debug("Creating with settings:", {
51
+ preserveSymlinks,
52
+ blockList
53
+ });
32
54
  const cachedExtensions = new Map();
33
55
  function getAdjustedExtensions({ metroSourceExtensions , platform , isNative }) {
34
56
  const key = JSON.stringify({
@@ -61,32 +83,40 @@ function createFastResolver({ preserveSymlinks , blockList }) {
61
83
  function fastResolve(context, moduleName, platform) {
62
84
  var ref2;
63
85
  const environment = (ref2 = context.customResolverOptions) == null ? void 0 : ref2.environment;
64
- const isServer = environment === "node";
86
+ const isServer = (0, _metroOptions).isServerEnvironment(environment);
65
87
  const extensions = getAdjustedExtensions({
66
88
  metroSourceExtensions: context.sourceExts,
67
89
  platform,
68
90
  isNative: context.preferNativePlatform
69
91
  });
70
92
  let fp;
93
+ var _platform;
94
+ const conditions = context.unstable_enablePackageExports ? [
95
+ ...new Set([
96
+ "default",
97
+ ...context.unstable_conditionNames,
98
+ ...platform != null ? (_platform = context.unstable_conditionsByPlatform[platform]) != null ? _platform : [] : [],
99
+ ]),
100
+ ] : [];
71
101
  try {
72
- var _platform;
73
- const conditions = context.unstable_enablePackageExports ? [
74
- ...new Set([
75
- "default",
76
- ...context.unstable_conditionNames,
77
- ...platform != null ? (_platform = context.unstable_conditionsByPlatform[platform]) != null ? _platform : [] : [],
78
- ]),
79
- ] : [];
80
102
  fp = (0, _createJResolver).default(moduleName, {
81
103
  blockList,
82
104
  enablePackageExports: context.unstable_enablePackageExports,
83
- basedir: _path.default.dirname(context.originModulePath),
105
+ basedir: _path().default.dirname(context.originModulePath),
84
106
  paths: context.nodeModulesPaths.length ? context.nodeModulesPaths : undefined,
85
107
  extensions,
86
108
  conditions,
87
109
  realpathSync (file) {
88
- // @ts-expect-error: Missing on type.
89
- const metroRealPath = context.unstable_getRealPath == null ? void 0 : context.unstable_getRealPath(file);
110
+ let metroRealPath = null;
111
+ try {
112
+ // @ts-expect-error: Missing on type.
113
+ metroRealPath = context.unstable_getRealPath == null ? void 0 : context.unstable_getRealPath(file);
114
+ } catch (error) {
115
+ // If invariant
116
+ if (error.message !== "Unexpectedly escaped traversal") {
117
+ throw error;
118
+ }
119
+ }
90
120
  if (metroRealPath == null && preserveSymlinks) {
91
121
  return realpathSync(file);
92
122
  }
@@ -110,8 +140,7 @@ function createFastResolver({ preserveSymlinks , blockList }) {
110
140
  preserveSymlinks,
111
141
  readPackageSync (readFileSync, pkgFile) {
112
142
  var ref;
113
- return (ref = context.getPackage(pkgFile)) != null ? ref : JSON.parse(// @ts-expect-error
114
- readFileSync(pkgfile));
143
+ return (ref = context.getPackage(pkgFile)) != null ? ref : JSON.parse(_fs().default.readFileSync(pkgFile, "utf8"));
115
144
  },
116
145
  includeCoreModules: isServer,
117
146
  pathFilter: // Disable `browser` field for server environments.
@@ -147,6 +176,13 @@ function createFastResolver({ preserveSymlinks , blockList }) {
147
176
  type: "empty"
148
177
  };
149
178
  }
179
+ debug({
180
+ moduleName,
181
+ platform,
182
+ conditions,
183
+ isServer,
184
+ preserveSymlinks
185
+ }, context);
150
186
  throw new FailedToResolvePathError("The module could not be resolved because no file or module matched the pattern:\n" + ` ${(0, _formatFileCandidates).formatFileCandidates({
151
187
  type: "sourceFile",
152
188
  filePathPrefix: moduleName,
@@ -186,9 +222,9 @@ function createFastResolver({ preserveSymlinks , blockList }) {
186
222
  ]
187
223
  };
188
224
  }
189
- const dirPath = _path.default.dirname(fp);
190
- const extension = _path.default.extname(fp);
191
- const basename = _path.default.basename(fp, extension);
225
+ const dirPath = _path().default.dirname(fp);
226
+ const extension = _path().default.extname(fp);
227
+ const basename = _path().default.basename(fp, extension);
192
228
  var ref1;
193
229
  return {
194
230
  type: "assetFiles",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/createExpoMetroResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 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 fs from 'fs';\nimport { Resolution, ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport jestResolver from './createJResolver';\nimport { isNodeExternal } from './externals';\nimport { formatFileCandidates } from './formatFileCandidates';\n\nclass FailedToResolvePathError extends Error {}\n\nclass ShimModuleError extends Error {}\n\nconst realpathFS =\n process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function'\n ? fs.realpathSync.native\n : fs.realpathSync;\n\nfunction realpathSync(x: string) {\n try {\n return realpathFS(x);\n } catch (realpathErr: any) {\n if (realpathErr.code !== 'ENOENT') {\n throw realpathErr;\n }\n }\n return x;\n}\n\nexport function createFastResolver({\n preserveSymlinks,\n blockList,\n}: {\n preserveSymlinks: boolean;\n blockList: RegExp[];\n}) {\n const cachedExtensions: Map<string, readonly string[]> = new Map();\n\n function getAdjustedExtensions({\n metroSourceExtensions,\n platform,\n isNative,\n }: {\n metroSourceExtensions: readonly string[];\n platform: string | null;\n isNative: boolean;\n }): readonly string[] {\n const key = JSON.stringify({ metroSourceExtensions, platform, isNative });\n if (cachedExtensions.has(key)) {\n return cachedExtensions.get(key)!;\n }\n\n let output = metroSourceExtensions;\n if (platform) {\n const nextOutput: string[] = [];\n\n output.forEach((ext) => {\n nextOutput.push(`${platform}.${ext}`);\n if (isNative) {\n nextOutput.push(`native.${ext}`);\n }\n nextOutput.push(ext);\n });\n\n output = nextOutput;\n }\n\n output = Array.from(new Set<string>(output));\n\n // resolve expects these to start with a dot.\n output = output.map((ext) => `.${ext}`);\n\n cachedExtensions.set(key, output);\n\n return output;\n }\n\n function fastResolve(\n context: Pick<\n ResolutionContext,\n | 'unstable_enablePackageExports'\n | 'customResolverOptions'\n | 'sourceExts'\n | 'preferNativePlatform'\n | 'originModulePath'\n | 'getPackage'\n | 'nodeModulesPaths'\n | 'mainFields'\n | 'resolveAsset'\n | 'unstable_conditionNames'\n | 'unstable_conditionsByPlatform'\n >,\n moduleName: string,\n platform: string | null\n ): Resolution {\n const environment = context.customResolverOptions?.environment;\n const isServer = environment === 'node';\n\n const extensions = getAdjustedExtensions({\n metroSourceExtensions: context.sourceExts,\n platform,\n isNative: context.preferNativePlatform,\n }) as string[];\n\n let fp: string;\n\n try {\n const conditions = context.unstable_enablePackageExports\n ? [\n ...new Set([\n 'default',\n ...context.unstable_conditionNames,\n ...(platform != null ? context.unstable_conditionsByPlatform[platform] ?? [] : []),\n ]),\n ]\n : [];\n\n fp = jestResolver(moduleName, {\n blockList,\n enablePackageExports: context.unstable_enablePackageExports,\n basedir: path.dirname(context.originModulePath),\n paths: context.nodeModulesPaths.length ? (context.nodeModulesPaths as string[]) : undefined,\n extensions,\n conditions,\n realpathSync(file: string): string {\n // @ts-expect-error: Missing on type.\n const metroRealPath = context.unstable_getRealPath?.(file);\n if (metroRealPath == null && preserveSymlinks) {\n return realpathSync(file);\n }\n return metroRealPath ?? file;\n },\n packageFilter(pkg) {\n // set the pkg.main to the first available field in context.mainFields\n for (const field of context.mainFields) {\n if (\n pkg[field] &&\n // object-inspect uses browser: {} in package.json\n typeof pkg[field] === 'string'\n ) {\n return {\n ...pkg,\n main: pkg[field],\n };\n }\n }\n return pkg;\n },\n // Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and\n // the app doesn't finish without it.\n preserveSymlinks,\n readPackageSync(readFileSync, pkgFile) {\n return (\n context.getPackage(pkgFile) ??\n JSON.parse(\n // @ts-expect-error\n readFileSync(pkgfile)\n )\n );\n },\n includeCoreModules: isServer,\n\n pathFilter:\n // Disable `browser` field for server environments.\n isServer\n ? undefined\n : // Enable `browser` field support\n (pkg: any, _resolvedPath: string, relativePathIn: string): string => {\n let relativePath = relativePathIn;\n if (relativePath[0] !== '.') {\n relativePath = `./${relativePath}`;\n }\n\n const replacements = pkg.browser;\n if (replacements === undefined) {\n return '';\n }\n\n // TODO: Probably use a better extension matching system here.\n // This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`\n const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];\n if (mappedPath === false) {\n throw new ShimModuleError();\n }\n return mappedPath;\n },\n });\n } catch (error: any) {\n if (error instanceof ShimModuleError) {\n return {\n type: 'empty',\n };\n }\n\n if ('code' in error && error.code === 'MODULE_NOT_FOUND') {\n if (isNodeExternal(moduleName)) {\n // In this case, mock the file to use an empty module.\n return {\n type: 'empty',\n };\n }\n\n throw new FailedToResolvePathError(\n 'The module could not be resolved because no file or module matched the pattern:\\n' +\n ` ${formatFileCandidates(\n {\n type: 'sourceFile',\n filePathPrefix: moduleName,\n candidateExts: extensions,\n },\n true\n )}\\n\\nFrom:\\n ${context.originModulePath}\\n`\n );\n }\n throw error;\n }\n\n if (context.sourceExts.some((ext) => fp.endsWith(ext))) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n\n if (isNodeExternal(fp)) {\n if (isServer) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n // NOTE: This shouldn't happen, the module should throw.\n // Mock non-server built-in modules to empty.\n return {\n type: 'empty',\n };\n }\n\n // NOTE: platform extensions may not be supported on assets.\n\n if (platform === 'web') {\n // Skip multi-resolution on web/server bundles. Only consideration here is that\n // we may still need it in case the only image is a multi-resolution image.\n return {\n type: 'assetFiles',\n filePaths: [fp],\n };\n }\n\n const dirPath = path.dirname(fp);\n const extension = path.extname(fp);\n const basename = path.basename(fp, extension);\n return {\n type: 'assetFiles',\n // Support multi-resolution asset extensions...\n filePaths: context.resolveAsset(dirPath, basename, extension) ?? [fp],\n };\n }\n\n return fastResolve;\n}\n"],"names":["createFastResolver","FailedToResolvePathError","Error","ShimModuleError","realpathFS","process","platform","fs","realpathSync","native","x","realpathErr","code","preserveSymlinks","blockList","cachedExtensions","Map","getAdjustedExtensions","metroSourceExtensions","isNative","key","JSON","stringify","has","get","output","nextOutput","forEach","ext","push","Array","from","Set","map","set","fastResolve","context","moduleName","environment","customResolverOptions","isServer","extensions","sourceExts","preferNativePlatform","fp","conditions","unstable_enablePackageExports","unstable_conditionNames","unstable_conditionsByPlatform","jestResolver","enablePackageExports","basedir","path","dirname","originModulePath","paths","nodeModulesPaths","length","undefined","file","metroRealPath","unstable_getRealPath","packageFilter","pkg","field","mainFields","main","readPackageSync","readFileSync","pkgFile","getPackage","parse","pkgfile","includeCoreModules","pathFilter","_resolvedPath","relativePathIn","relativePath","replacements","browser","mappedPath","error","type","isNodeExternal","formatFileCandidates","filePathPrefix","candidateExts","some","endsWith","filePath","filePaths","dirPath","extension","extname","basename","resolveAsset"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/createExpoMetroResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 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 fs from 'fs';\nimport { Resolution, ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport jestResolver from './createJResolver';\nimport { isNodeExternal } from './externals';\nimport { formatFileCandidates } from './formatFileCandidates';\nimport { isServerEnvironment } from '../middleware/metroOptions';\n\nexport class FailedToResolvePathError extends Error {\n // Added to ensure the error is matched by our tooling.\n // TODO: Test that this matches `isFailedToResolvePathError`\n candidates = {};\n}\n\nclass ShimModuleError extends Error {}\n\nconst debug = require('debug')('expo:metro:resolve') as typeof console.log;\n\nconst realpathFS =\n process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function'\n ? fs.realpathSync.native\n : fs.realpathSync;\n\nfunction realpathSync(x: string) {\n try {\n return realpathFS(x);\n } catch (realpathErr: any) {\n if (realpathErr.code !== 'ENOENT') {\n throw realpathErr;\n }\n }\n return x;\n}\n\nexport function createFastResolver({\n preserveSymlinks,\n blockList,\n}: {\n preserveSymlinks: boolean;\n blockList: RegExp[];\n}) {\n debug('Creating with settings:', { preserveSymlinks, blockList });\n const cachedExtensions: Map<string, readonly string[]> = new Map();\n\n function getAdjustedExtensions({\n metroSourceExtensions,\n platform,\n isNative,\n }: {\n metroSourceExtensions: readonly string[];\n platform: string | null;\n isNative: boolean;\n }): readonly string[] {\n const key = JSON.stringify({ metroSourceExtensions, platform, isNative });\n if (cachedExtensions.has(key)) {\n return cachedExtensions.get(key)!;\n }\n\n let output = metroSourceExtensions;\n if (platform) {\n const nextOutput: string[] = [];\n\n output.forEach((ext) => {\n nextOutput.push(`${platform}.${ext}`);\n if (isNative) {\n nextOutput.push(`native.${ext}`);\n }\n nextOutput.push(ext);\n });\n\n output = nextOutput;\n }\n\n output = Array.from(new Set<string>(output));\n\n // resolve expects these to start with a dot.\n output = output.map((ext) => `.${ext}`);\n\n cachedExtensions.set(key, output);\n\n return output;\n }\n\n function fastResolve(\n context: Pick<\n ResolutionContext,\n | 'unstable_enablePackageExports'\n | 'customResolverOptions'\n | 'sourceExts'\n | 'preferNativePlatform'\n | 'originModulePath'\n | 'getPackage'\n | 'nodeModulesPaths'\n | 'mainFields'\n | 'resolveAsset'\n | 'unstable_conditionNames'\n | 'unstable_conditionsByPlatform'\n >,\n moduleName: string,\n platform: string | null\n ): Resolution {\n const environment = context.customResolverOptions?.environment;\n const isServer = isServerEnvironment(environment);\n\n const extensions = getAdjustedExtensions({\n metroSourceExtensions: context.sourceExts,\n platform,\n isNative: context.preferNativePlatform,\n }) as string[];\n\n let fp: string;\n\n const conditions = context.unstable_enablePackageExports\n ? [\n ...new Set([\n 'default',\n ...context.unstable_conditionNames,\n ...(platform != null ? context.unstable_conditionsByPlatform[platform] ?? [] : []),\n ]),\n ]\n : [];\n try {\n fp = jestResolver(moduleName, {\n blockList,\n enablePackageExports: context.unstable_enablePackageExports,\n basedir: path.dirname(context.originModulePath),\n paths: context.nodeModulesPaths.length ? (context.nodeModulesPaths as string[]) : undefined,\n extensions,\n conditions,\n realpathSync(file: string): string {\n let metroRealPath: string | null = null;\n\n try {\n // @ts-expect-error: Missing on type.\n metroRealPath = context.unstable_getRealPath?.(file);\n } catch (error: any) {\n // If invariant\n if (error.message !== 'Unexpectedly escaped traversal') {\n throw error;\n }\n }\n\n if (metroRealPath == null && preserveSymlinks) {\n return realpathSync(file);\n }\n return metroRealPath ?? file;\n },\n packageFilter(pkg) {\n // set the pkg.main to the first available field in context.mainFields\n for (const field of context.mainFields) {\n if (\n pkg[field] &&\n // object-inspect uses browser: {} in package.json\n typeof pkg[field] === 'string'\n ) {\n return {\n ...pkg,\n main: pkg[field],\n };\n }\n }\n return pkg;\n },\n // Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and\n // the app doesn't finish without it.\n preserveSymlinks,\n readPackageSync(readFileSync, pkgFile) {\n return context.getPackage(pkgFile) ?? JSON.parse(fs.readFileSync(pkgFile, 'utf8'));\n },\n includeCoreModules: isServer,\n\n pathFilter:\n // Disable `browser` field for server environments.\n isServer\n ? undefined\n : // Enable `browser` field support\n (pkg: any, _resolvedPath: string, relativePathIn: string): string => {\n let relativePath = relativePathIn;\n if (relativePath[0] !== '.') {\n relativePath = `./${relativePath}`;\n }\n\n const replacements = pkg.browser;\n if (replacements === undefined) {\n return '';\n }\n\n // TODO: Probably use a better extension matching system here.\n // This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`\n const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];\n if (mappedPath === false) {\n throw new ShimModuleError();\n }\n return mappedPath;\n },\n });\n } catch (error: any) {\n if (error instanceof ShimModuleError) {\n return {\n type: 'empty',\n };\n }\n\n if ('code' in error && error.code === 'MODULE_NOT_FOUND') {\n if (isNodeExternal(moduleName)) {\n // In this case, mock the file to use an empty module.\n return {\n type: 'empty',\n };\n }\n\n debug({ moduleName, platform, conditions, isServer, preserveSymlinks }, context);\n\n throw new FailedToResolvePathError(\n 'The module could not be resolved because no file or module matched the pattern:\\n' +\n ` ${formatFileCandidates(\n {\n type: 'sourceFile',\n filePathPrefix: moduleName,\n candidateExts: extensions,\n },\n true\n )}\\n\\nFrom:\\n ${context.originModulePath}\\n`\n );\n }\n throw error;\n }\n\n if (context.sourceExts.some((ext) => fp.endsWith(ext))) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n\n if (isNodeExternal(fp)) {\n if (isServer) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n // NOTE: This shouldn't happen, the module should throw.\n // Mock non-server built-in modules to empty.\n return {\n type: 'empty',\n };\n }\n\n // NOTE: platform extensions may not be supported on assets.\n\n if (platform === 'web') {\n // Skip multi-resolution on web/server bundles. Only consideration here is that\n // we may still need it in case the only image is a multi-resolution image.\n return {\n type: 'assetFiles',\n filePaths: [fp],\n };\n }\n\n const dirPath = path.dirname(fp);\n const extension = path.extname(fp);\n const basename = path.basename(fp, extension);\n return {\n type: 'assetFiles',\n // Support multi-resolution asset extensions...\n filePaths: context.resolveAsset(dirPath, basename, extension) ?? [fp],\n };\n }\n\n return fastResolve;\n}\n"],"names":["createFastResolver","FailedToResolvePathError","Error","candidates","ShimModuleError","debug","require","realpathFS","process","platform","fs","realpathSync","native","x","realpathErr","code","preserveSymlinks","blockList","cachedExtensions","Map","getAdjustedExtensions","metroSourceExtensions","isNative","key","JSON","stringify","has","get","output","nextOutput","forEach","ext","push","Array","from","Set","map","set","fastResolve","context","moduleName","environment","customResolverOptions","isServer","isServerEnvironment","extensions","sourceExts","preferNativePlatform","fp","conditions","unstable_enablePackageExports","unstable_conditionNames","unstable_conditionsByPlatform","jestResolver","enablePackageExports","basedir","path","dirname","originModulePath","paths","nodeModulesPaths","length","undefined","file","metroRealPath","unstable_getRealPath","error","message","packageFilter","pkg","field","mainFields","main","readPackageSync","readFileSync","pkgFile","getPackage","parse","includeCoreModules","pathFilter","_resolvedPath","relativePathIn","relativePath","replacements","browser","mappedPath","type","isNodeExternal","formatFileCandidates","filePathPrefix","candidateExts","some","endsWith","filePath","filePaths","dirPath","extension","extname","basename","resolveAsset"],"mappings":"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"}
@@ -3,10 +3,41 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _assert = _interopRequireDefault(require("assert"));
7
- var _path = require("path");
8
- var _resolve = require("resolve");
9
- var resolve = _interopRequireWildcard(require("resolve.exports"));
6
+ function _assert() {
7
+ const data = _interopRequireDefault(require("assert"));
8
+ _assert = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _fs() {
14
+ const data = _interopRequireDefault(require("fs"));
15
+ _fs = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _path() {
21
+ const data = require("path");
22
+ _path = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
27
+ function _resolve() {
28
+ const data = require("resolve");
29
+ _resolve = function() {
30
+ return data;
31
+ };
32
+ return data;
33
+ }
34
+ function resolve() {
35
+ const data = _interopRequireWildcard(require("resolve.exports"));
36
+ resolve = function() {
37
+ return data;
38
+ };
39
+ return data;
40
+ }
10
41
  var _dir = require("../../../utils/dir");
11
42
  function _interopRequireDefault(obj) {
12
43
  return obj && obj.__esModule ? obj : {
@@ -52,12 +83,24 @@ const defaultResolver = (path, { enablePackageExports , blockList =[] , ...optio
52
83
  }
53
84
  return (0, _dir).fileExistsSync(file);
54
85
  },
86
+ pathExists (file) {
87
+ if (blockList.some((regex)=>regex.test(file)
88
+ )) {
89
+ return false;
90
+ }
91
+ try {
92
+ _fs().default.accessSync(path, _fs().default.constants.F_OK);
93
+ return true; // File exists
94
+ } catch {
95
+ return false; // File doesn't exist
96
+ }
97
+ },
55
98
  preserveSymlinks: options.preserveSymlinks,
56
99
  defaultResolver
57
100
  };
58
101
  // resolveSync dereferences symlinks to ensure we don't create a separate
59
102
  // module instance depending on how it was referenced.
60
- const result = (0, _resolve).sync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {
103
+ const result = _resolve().sync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {
61
104
  ...resolveOptions,
62
105
  preserveSymlinks: !options.preserveSymlinks
63
106
  });
@@ -73,47 +116,49 @@ exports.default = _default;
73
116
  }
74
117
  const segments = path.split("/");
75
118
  let moduleName = segments.shift();
76
- if (moduleName) {
77
- if (moduleName.startsWith("@")) {
78
- moduleName = `${moduleName}/${segments.shift()}`;
79
- }
80
- // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/
81
- if (moduleName === "@babel/runtime") {
82
- return path;
83
- }
84
- // self-reference
85
- const closestPackageJson = findClosestPackageJson(options.basedir, options);
86
- if (closestPackageJson) {
87
- const pkg = options.readPackageSync(options.readFileSync, closestPackageJson);
88
- (0, _assert).default(pkg, "package.json should be read by `readPackageSync`");
89
- if (pkg.name === moduleName) {
90
- const resolved = resolve.exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
91
- if (resolved) {
92
- return (0, _path).resolve((0, _path).dirname(closestPackageJson), resolved[0]);
93
- }
94
- if (pkg.exports) {
95
- throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
96
- }
97
- }
98
- }
99
- let packageJsonPath = "";
100
- try {
101
- packageJsonPath = (0, _resolve).sync(`${moduleName}/package.json`, options);
102
- } catch {
103
- // ignore if package.json cannot be found
104
- }
105
- if (packageJsonPath && options.isFile(packageJsonPath)) {
106
- const pkg = options.readPackageSync(options.readFileSync, packageJsonPath);
107
- (0, _assert).default(pkg, "package.json should be read by `readPackageSync`");
108
- const resolved = resolve.exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
119
+ if (!moduleName) {
120
+ return path;
121
+ }
122
+ if (moduleName.startsWith("@")) {
123
+ moduleName = `${moduleName}/${segments.shift()}`;
124
+ }
125
+ // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/
126
+ if (moduleName === "@babel/runtime") {
127
+ return path;
128
+ }
129
+ // self-reference
130
+ const closestPackageJson = findClosestPackageJson(options.basedir, options);
131
+ if (closestPackageJson) {
132
+ const pkg = options.readPackageSync(options.readFileSync, closestPackageJson);
133
+ _assert().default(pkg, "package.json should be read by `readPackageSync`");
134
+ if (pkg.name === moduleName) {
135
+ const resolved = resolve().exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
109
136
  if (resolved) {
110
- return (0, _path).resolve((0, _path).dirname(packageJsonPath), resolved[0]);
137
+ return _path().resolve(_path().dirname(closestPackageJson), resolved[0]);
111
138
  }
112
139
  if (pkg.exports) {
113
140
  throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
114
141
  }
115
142
  }
116
143
  }
144
+ let packageJsonPath = "";
145
+ try {
146
+ packageJsonPath = _resolve().sync(`${moduleName}/package.json`, options);
147
+ } catch {
148
+ // ignore if package.json cannot be found
149
+ }
150
+ if (!packageJsonPath) {
151
+ return path;
152
+ }
153
+ const pkg = options.readPackageSync(options.readFileSync, packageJsonPath);
154
+ _assert().default(pkg, "package.json should be read by `readPackageSync`");
155
+ const resolved = resolve().exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
156
+ if (resolved) {
157
+ return _path().resolve(_path().dirname(packageJsonPath), resolved[0]);
158
+ }
159
+ if (pkg.exports) {
160
+ throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
161
+ }
117
162
  return path;
118
163
  }
119
164
  function createResolveOptions(conditions) {
@@ -126,23 +171,23 @@ function createResolveOptions(conditions) {
126
171
  };
127
172
  }
128
173
  // if it's a relative import or an absolute path, imports/exports are ignored
129
- const shouldIgnoreRequestForExports = (path)=>path.startsWith(".") || (0, _path).isAbsolute(path)
174
+ const shouldIgnoreRequestForExports = (path)=>path.startsWith(".") || _path().isAbsolute(path)
130
175
  ;
131
176
  // adapted from
132
177
  // https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js
133
178
  function findClosestPackageJson(start, options) {
134
- let dir = (0, _path).resolve(".", start);
179
+ let dir = _path().resolve(".", start);
135
180
  if (!options.isDirectory(dir)) {
136
- dir = (0, _path).dirname(dir);
181
+ dir = _path().dirname(dir);
137
182
  }
138
183
  while(true){
139
- const pkgJsonFile = (0, _path).resolve(dir, "./package.json");
140
- const hasPackageJson = options.isFile(pkgJsonFile);
184
+ const pkgJsonFile = _path().resolve(dir, "./package.json");
185
+ const hasPackageJson = options.pathExists(pkgJsonFile);
141
186
  if (hasPackageJson) {
142
187
  return pkgJsonFile;
143
188
  }
144
189
  const prevDir = dir;
145
- dir = (0, _path).dirname(dir);
190
+ dir = _path().dirname(dir);
146
191
  if (prevDir === dir) {
147
192
  return undefined;
148
193
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/createJResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\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 *\n * Fork of the jest resolver but with additional settings for Metro and pnp removed.\n * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1\n */\nimport type { JSONObject as PackageJSON } from '@expo/json-file';\nimport assert from 'assert';\nimport { dirname, isAbsolute, resolve as pathResolve } from 'path';\nimport { sync as resolveSync, SyncOpts as UpstreamResolveOptions } from 'resolve';\nimport * as resolve from 'resolve.exports';\n\nimport { directoryExistsSync, fileExistsSync } from '../../../utils/dir';\n\n/**\n * Allows transforming parsed `package.json` contents.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param file - Path to `package.json` file.\n * @param dir - Directory that contains the `package.json`.\n *\n * @returns Transformed `package.json` contents.\n */\ntype PackageFilter = (pkg: PackageJSON, file: string, dir: string) => PackageJSON;\n\n/**\n * Allows transforming a path within a package.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param path - Path being resolved.\n * @param relativePath - Path relative from the `package.json` location.\n *\n * @returns Relative path that will be joined from the `package.json` location.\n */\ntype PathFilter = (pkg: PackageJSON, path: string, relativePath: string) => string;\n\ntype ResolverOptions = {\n /** Directory to begin resolving from. */\n basedir: string;\n /** List of export conditions. */\n conditions?: string[];\n /** Instance of default resolver. */\n defaultResolver: typeof defaultResolver;\n /** List of file extensions to search in order. */\n extensions?: string[];\n /**\n * List of directory names to be looked up for modules recursively.\n *\n * @defaultValue\n * The default is `['node_modules']`.\n */\n moduleDirectory?: string[];\n /**\n * List of `require.paths` to use if nothing is found in `node_modules`.\n *\n * @defaultValue\n * The default is `undefined`.\n */\n paths?: string[];\n /** Allows transforming parsed `package.json` contents. */\n packageFilter?: PackageFilter;\n /** Allows transforms a path within a package. */\n pathFilter?: PathFilter;\n /** Current root directory. */\n rootDir?: string;\n\n enablePackageExports?: boolean;\n\n blockList: RegExp[];\n\n getPackageForModule: import('metro-resolver').CustomResolutionContext['getPackageForModule'];\n} & Pick<\n UpstreamResolveOptions,\n | 'readPackageSync'\n | 'realpathSync'\n | 'moduleDirectory'\n | 'extensions'\n | 'preserveSymlinks'\n | 'includeCoreModules'\n>;\n\ntype UpstreamResolveOptionsWithConditions = UpstreamResolveOptions & ResolverOptions;\n\nconst defaultResolver = (\n path: string,\n {\n enablePackageExports,\n blockList = [],\n ...options\n }: Omit<ResolverOptions, 'defaultResolver' | 'getPackageForModule'>\n): string => {\n // @ts-expect-error\n const resolveOptions: UpstreamResolveOptionsWithConditions = {\n ...options,\n\n isDirectory(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return directoryExistsSync(file);\n },\n isFile(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return fileExistsSync(file);\n },\n preserveSymlinks: options.preserveSymlinks,\n defaultResolver,\n };\n\n // resolveSync dereferences symlinks to ensure we don't create a separate\n // module instance depending on how it was referenced.\n const result = resolveSync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {\n ...resolveOptions,\n preserveSymlinks: !options.preserveSymlinks,\n });\n\n return result;\n};\n\nexport default defaultResolver;\n\n/*\n * helper functions\n */\n\nfunction getPathInModule(path: string, options: UpstreamResolveOptionsWithConditions): string {\n if (shouldIgnoreRequestForExports(path)) {\n return path;\n }\n\n const segments = path.split('/');\n\n let moduleName = segments.shift();\n\n if (moduleName) {\n if (moduleName.startsWith('@')) {\n moduleName = `${moduleName}/${segments.shift()}`;\n }\n\n // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/\n if (moduleName === '@babel/runtime') {\n return path;\n }\n\n // self-reference\n const closestPackageJson = findClosestPackageJson(options.basedir, options);\n if (closestPackageJson) {\n const pkg = options.readPackageSync!(options.readFileSync!, closestPackageJson);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n if (pkg.name === moduleName) {\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(closestPackageJson), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n let packageJsonPath = '';\n\n try {\n packageJsonPath = resolveSync(`${moduleName}/package.json`, options);\n } catch {\n // ignore if package.json cannot be found\n }\n\n if (packageJsonPath && options.isFile!(packageJsonPath)) {\n const pkg = options.readPackageSync!(options.readFileSync!, packageJsonPath);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(packageJsonPath), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n return path;\n}\n\nfunction createResolveOptions(conditions: string[] | undefined): resolve.Options {\n return conditions\n ? { conditions, unsafe: true }\n : // no conditions were passed - let's assume this is Jest internal and it should be `require`\n { browser: false, require: true };\n}\n\n// if it's a relative import or an absolute path, imports/exports are ignored\nconst shouldIgnoreRequestForExports = (path: string) => path.startsWith('.') || isAbsolute(path);\n\n// adapted from\n// https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js\nfunction findClosestPackageJson(\n start: string,\n options: UpstreamResolveOptions\n): string | undefined {\n let dir = pathResolve('.', start);\n if (!options.isDirectory!(dir)) {\n dir = dirname(dir);\n }\n\n while (true) {\n const pkgJsonFile = pathResolve(dir, './package.json');\n const hasPackageJson = options.isFile!(pkgJsonFile);\n\n if (hasPackageJson) {\n return pkgJsonFile;\n }\n\n const prevDir = dir;\n dir = dirname(dir);\n\n if (prevDir === dir) {\n return undefined;\n }\n }\n}\n"],"names":["resolve","defaultResolver","path","enablePackageExports","blockList","options","resolveOptions","isDirectory","file","some","regex","test","directoryExistsSync","isFile","fileExistsSync","preserveSymlinks","result","resolveSync","getPathInModule","shouldIgnoreRequestForExports","segments","split","moduleName","shift","startsWith","closestPackageJson","findClosestPackageJson","basedir","pkg","readPackageSync","readFileSync","assert","name","resolved","exports","join","createResolveOptions","conditions","pathResolve","dirname","Error","packageJsonPath","unsafe","browser","require","isAbsolute","start","dir","pkgJsonFile","hasPackageJson","prevDir","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/createJResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\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 *\n * Fork of the jest resolver but with additional settings for Metro and pnp removed.\n * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1\n */\nimport type { JSONObject as PackageJSON } from '@expo/json-file';\nimport assert from 'assert';\nimport fs from 'fs';\nimport { dirname, isAbsolute, resolve as pathResolve } from 'path';\nimport { sync as resolveSync, SyncOpts as UpstreamResolveOptions } from 'resolve';\nimport * as resolve from 'resolve.exports';\n\nimport { directoryExistsSync, fileExistsSync } from '../../../utils/dir';\n\n/**\n * Allows transforming parsed `package.json` contents.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param file - Path to `package.json` file.\n * @param dir - Directory that contains the `package.json`.\n *\n * @returns Transformed `package.json` contents.\n */\ntype PackageFilter = (pkg: PackageJSON, file: string, dir: string) => PackageJSON;\n\n/**\n * Allows transforming a path within a package.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param path - Path being resolved.\n * @param relativePath - Path relative from the `package.json` location.\n *\n * @returns Relative path that will be joined from the `package.json` location.\n */\ntype PathFilter = (pkg: PackageJSON, path: string, relativePath: string) => string;\n\ntype ResolverOptions = {\n /** Directory to begin resolving from. */\n basedir: string;\n /** List of export conditions. */\n conditions?: string[];\n /** Instance of default resolver. */\n defaultResolver: typeof defaultResolver;\n /** List of file extensions to search in order. */\n extensions?: string[];\n /**\n * List of directory names to be looked up for modules recursively.\n *\n * @defaultValue\n * The default is `['node_modules']`.\n */\n moduleDirectory?: string[];\n /**\n * List of `require.paths` to use if nothing is found in `node_modules`.\n *\n * @defaultValue\n * The default is `undefined`.\n */\n paths?: string[];\n /** Allows transforming parsed `package.json` contents. */\n packageFilter?: PackageFilter;\n /** Allows transforms a path within a package. */\n pathFilter?: PathFilter;\n /** Current root directory. */\n rootDir?: string;\n\n enablePackageExports?: boolean;\n\n blockList: RegExp[];\n\n getPackageForModule: import('metro-resolver').CustomResolutionContext['getPackageForModule'];\n} & Pick<\n UpstreamResolveOptions,\n | 'readPackageSync'\n | 'realpathSync'\n | 'moduleDirectory'\n | 'extensions'\n | 'preserveSymlinks'\n | 'includeCoreModules'\n>;\n\ntype UpstreamResolveOptionsWithConditions = UpstreamResolveOptions &\n ResolverOptions & {\n pathExists: (file: string) => boolean;\n };\n\nconst defaultResolver = (\n path: string,\n {\n enablePackageExports,\n blockList = [],\n ...options\n }: Omit<ResolverOptions, 'defaultResolver' | 'getPackageForModule'>\n): string => {\n // @ts-expect-error\n const resolveOptions: UpstreamResolveOptionsWithConditions = {\n ...options,\n\n isDirectory(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return directoryExistsSync(file);\n },\n isFile(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return fileExistsSync(file);\n },\n pathExists(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n try {\n fs.accessSync(path, fs.constants.F_OK);\n return true; // File exists\n } catch {\n return false; // File doesn't exist\n }\n },\n preserveSymlinks: options.preserveSymlinks,\n defaultResolver,\n };\n\n // resolveSync dereferences symlinks to ensure we don't create a separate\n // module instance depending on how it was referenced.\n const result = resolveSync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {\n ...resolveOptions,\n preserveSymlinks: !options.preserveSymlinks,\n });\n\n return result;\n};\n\nexport default defaultResolver;\n\n/*\n * helper functions\n */\n\nfunction getPathInModule(path: string, options: UpstreamResolveOptionsWithConditions): string {\n if (shouldIgnoreRequestForExports(path)) {\n return path;\n }\n\n const segments = path.split('/');\n\n let moduleName = segments.shift();\n\n if (!moduleName) {\n return path;\n }\n\n if (moduleName.startsWith('@')) {\n moduleName = `${moduleName}/${segments.shift()}`;\n }\n\n // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/\n if (moduleName === '@babel/runtime') {\n return path;\n }\n\n // self-reference\n const closestPackageJson = findClosestPackageJson(options.basedir, options);\n if (closestPackageJson) {\n const pkg = options.readPackageSync!(options.readFileSync!, closestPackageJson);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n if (pkg.name === moduleName) {\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(closestPackageJson), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n let packageJsonPath = '';\n\n try {\n packageJsonPath = resolveSync(`${moduleName}/package.json`, options);\n } catch {\n // ignore if package.json cannot be found\n }\n\n if (!packageJsonPath) {\n return path;\n }\n\n const pkg = options.readPackageSync!(options.readFileSync!, packageJsonPath);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(packageJsonPath), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n\n return path;\n}\n\nfunction createResolveOptions(conditions: string[] | undefined): resolve.Options {\n return conditions\n ? { conditions, unsafe: true }\n : // no conditions were passed - let's assume this is Jest internal and it should be `require`\n { browser: false, require: true };\n}\n\n// if it's a relative import or an absolute path, imports/exports are ignored\nconst shouldIgnoreRequestForExports = (path: string) => path.startsWith('.') || isAbsolute(path);\n\n// adapted from\n// https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js\nfunction findClosestPackageJson(\n start: string,\n options: UpstreamResolveOptionsWithConditions\n): string | undefined {\n let dir = pathResolve('.', start);\n if (!options.isDirectory!(dir)) {\n dir = dirname(dir);\n }\n\n while (true) {\n const pkgJsonFile = pathResolve(dir, './package.json');\n const hasPackageJson = options.pathExists!(pkgJsonFile);\n\n if (hasPackageJson) {\n return pkgJsonFile;\n }\n\n const prevDir = dir;\n dir = dirname(dir);\n\n if (prevDir === dir) {\n return undefined;\n }\n }\n}\n"],"names":["resolve","defaultResolver","path","enablePackageExports","blockList","options","resolveOptions","isDirectory","file","some","regex","test","directoryExistsSync","isFile","fileExistsSync","pathExists","fs","accessSync","constants","F_OK","preserveSymlinks","result","resolveSync","getPathInModule","shouldIgnoreRequestForExports","segments","split","moduleName","shift","startsWith","closestPackageJson","findClosestPackageJson","basedir","pkg","readPackageSync","readFileSync","assert","name","resolved","exports","join","createResolveOptions","conditions","pathResolve","dirname","Error","packageJsonPath","unsafe","browser","require","isAbsolute","start","dir","pkgJsonFile","hasPackageJson","prevDir","undefined"],"mappings":"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"}
@@ -3,16 +3,31 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.createRouteHandlerMiddleware = createRouteHandlerMiddleware;
6
- var _requireFromString = _interopRequireDefault(require("require-from-string"));
7
- var _resolve = _interopRequireDefault(require("resolve"));
8
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
9
- var _util = require("util");
6
+ function _resolve() {
7
+ const data = _interopRequireDefault(require("resolve"));
8
+ _resolve = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _resolveFrom() {
14
+ const data = _interopRequireDefault(require("resolve-from"));
15
+ _resolveFrom = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _util() {
21
+ const data = require("util");
22
+ _util = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
10
27
  var _metroBundlerDevServer = require("./MetroBundlerDevServer");
11
- var _bundleApiRoutes = require("./bundleApiRoutes");
12
28
  var _fetchRouterManifest = require("./fetchRouterManifest");
13
29
  var _metroErrorInterface = require("./metroErrorInterface");
14
30
  var _router = require("./router");
15
- var _log = require("../../../log");
16
31
  var _errors = require("../../../utils/errors");
17
32
  function _interopRequireDefault(obj) {
18
33
  return obj && obj.__esModule ? obj : {
@@ -20,12 +35,11 @@ function _interopRequireDefault(obj) {
20
35
  };
21
36
  }
22
37
  const debug = require("debug")("expo:start:server:metro");
23
- const resolveAsync = (0, _util).promisify(_resolve.default);
38
+ const resolveAsync = _util().promisify(_resolve().default);
24
39
  function createRouteHandlerMiddleware(projectRoot, options) {
25
- if (!_resolveFrom.default.silent(projectRoot, "expo-router")) {
40
+ if (!_resolveFrom().default.silent(projectRoot, "expo-router")) {
26
41
  throw new _errors.CommandError("static and server rendering requires the expo-router package to be installed in your project.");
27
42
  }
28
- const { ExpoResponse } = require("@expo/server");
29
43
  const { createRequestHandler } = require("@expo/server/build/vendor/http");
30
44
  return createRequestHandler({
31
45
  build: ""
@@ -56,7 +70,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
56
70
  } catch (error) {
57
71
  // Forward the Metro server response as-is. It won't be pretty, but at least it will be accurate.
58
72
  if (error instanceof _metroBundlerDevServer.ForwardHtmlError) {
59
- return new ExpoResponse(error.html, {
73
+ return new Response(error.html, {
60
74
  status: error.statusCode,
61
75
  headers: {
62
76
  "Content-Type": "text/html"
@@ -64,7 +78,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
64
78
  });
65
79
  }
66
80
  try {
67
- return new ExpoResponse(await (0, _metroErrorInterface).getErrorOverlayHtmlAsync({
81
+ return new Response(await (0, _metroErrorInterface).getErrorOverlayHtmlAsync({
68
82
  error,
69
83
  projectRoot,
70
84
  routerRoot: options.routerRoot
@@ -77,7 +91,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
77
91
  } catch (staticError) {
78
92
  debug("Failed to render static error overlay:", staticError);
79
93
  // Fallback error for when Expo Router is misconfigured in the project.
80
- return new ExpoResponse("<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>" + error.message + "<br/><br/>" + staticError.message + "</span>", {
94
+ return new Response("<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>" + error.message + "<br/><br/>" + staticError.message + "</span>", {
81
95
  status: 500,
82
96
  headers: {
83
97
  "Content-Type": "text/html"
@@ -97,7 +111,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
97
111
  if (((ref = exp.web) == null ? void 0 : ref.output) !== "server") {
98
112
  (0, _router).warnInvalidWebOutput();
99
113
  }
100
- const resolvedFunctionPath = await resolveAsync(route.page, {
114
+ const resolvedFunctionPath = await resolveAsync(route.file, {
101
115
  extensions: [
102
116
  ".js",
103
117
  ".jsx",
@@ -106,24 +120,11 @@ function createRouteHandlerMiddleware(projectRoot, options) {
106
120
  ],
107
121
  basedir: options.appDir
108
122
  });
109
- const middlewareContents = await (0, _bundleApiRoutes).bundleApiRoute(projectRoot, resolvedFunctionPath, options);
110
- if (!middlewareContents) {
111
- // TODO: Error handling
112
- return null;
113
- }
114
123
  try {
115
124
  debug(`Bundling middleware at: ${resolvedFunctionPath}`);
116
- return (0, _requireFromString).default(middlewareContents.src, middlewareContents.filename);
125
+ return await options.bundleApiRoute(resolvedFunctionPath);
117
126
  } catch (error) {
118
- if (error instanceof Error) {
119
- await (0, _metroErrorInterface).logMetroErrorAsync({
120
- projectRoot,
121
- error
122
- });
123
- } else {
124
- _log.Log.error("Failed to load middleware: " + error);
125
- }
126
- return new ExpoResponse("Failed to load middleware: " + resolvedFunctionPath + "\n\n" + error.message, {
127
+ return new Response("Failed to load API Route: " + resolvedFunctionPath + "\n\n" + error.message, {
127
128
  status: 500,
128
129
  headers: {
129
130
  "Content-Type": "text/html"