@expo/cli 0.18.0 → 0.18.2

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 (653) hide show
  1. package/build/bin/cli +90 -114
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/endpoint.js +11 -3
  4. package/build/src/api/endpoint.js.map +1 -1
  5. package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
  6. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +13 -11
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/getNativeModuleVersions.js +7 -4
  10. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  11. package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
  12. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  13. package/build/src/api/getVersions.js +7 -4
  14. package/build/src/api/getVersions.js.map +1 -1
  15. package/build/src/api/graphql/client.js +55 -35
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +9 -7
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +7 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +6 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +6 -4
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +4 -1
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +21 -12
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +36 -29
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +4 -1
  32. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
  34. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
  36. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProxy.js +7 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +9 -4
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +16 -8
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +10 -8
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +66 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +46 -25
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +70 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +66 -41
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +62 -43
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +46 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +14 -11
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +61 -46
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +10 -8
  62. package/build/src/customize/index.js.map +1 -1
  63. package/build/src/customize/resolveOptions.js +7 -4
  64. package/build/src/customize/resolveOptions.js.map +1 -1
  65. package/build/src/customize/templates.js +31 -34
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +43 -28
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +7 -6
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +51 -38
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +48 -36
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +7 -4
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +20 -8
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +84 -67
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +62 -43
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +47 -26
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +19 -11
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +49 -38
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +19 -11
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +42 -39
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +9 -6
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +7 -4
  96. package/build/src/export/getResolvedLocales.js.map +1 -1
  97. package/build/src/export/html.js +12 -4
  98. package/build/src/export/html.js.map +1 -1
  99. package/build/src/export/index.js +49 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +22 -6
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +38 -24
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +15 -7
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +19 -15
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +42 -38
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +15 -12
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +47 -31
  114. package/build/src/export/web/index.js.map +1 -1
  115. package/build/src/export/web/resolveOptions.js +4 -1
  116. package/build/src/export/web/resolveOptions.js.map +1 -1
  117. package/build/src/export/writeContents.js +12 -7
  118. package/build/src/export/writeContents.js.map +1 -1
  119. package/build/src/graphql/generated.js +141 -128
  120. package/build/src/graphql/generated.js.map +1 -1
  121. package/build/src/install/applyPlugins.js +43 -25
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +55 -35
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +52 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +15 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +90 -65
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +48 -27
  132. package/build/src/install/installExpoPackage.js.map +1 -1
  133. package/build/src/install/resolveOptions.js +8 -5
  134. package/build/src/install/resolveOptions.js.map +1 -1
  135. package/build/src/install/utils/autoAddConfigPlugins.js +15 -7
  136. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  137. package/build/src/lint/ESlintPrerequisite.js +174 -0
  138. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  139. package/build/src/lint/index.js +66 -0
  140. package/build/src/lint/index.js.map +1 -0
  141. package/build/src/lint/lintAsync.js +33 -0
  142. package/build/src/lint/lintAsync.js.map +1 -0
  143. package/build/src/log.js +20 -14
  144. package/build/src/log.js.map +1 -1
  145. package/build/src/login/index.js +43 -25
  146. package/build/src/login/index.js.map +1 -1
  147. package/build/src/logout/index.js +43 -25
  148. package/build/src/logout/index.js.map +1 -1
  149. package/build/src/prebuild/clearNativeFolder.js +65 -42
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +50 -29
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +19 -13
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +54 -28
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +52 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +68 -51
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +15 -10
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  163. package/build/src/prebuild/resolveOptions.js +60 -35
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +66 -40
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +67 -44
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +70 -49
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +44 -23
  172. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  173. package/build/src/register/index.js +43 -25
  174. package/build/src/register/index.js.map +1 -1
  175. package/build/src/register/registerAsync.js +14 -11
  176. package/build/src/register/registerAsync.js.map +1 -1
  177. package/build/src/run/android/index.js +47 -31
  178. package/build/src/run/android/index.js.map +1 -1
  179. package/build/src/run/android/resolveDevice.js +9 -6
  180. package/build/src/run/android/resolveDevice.js.map +1 -1
  181. package/build/src/run/android/resolveGradlePropsAsync.js +10 -9
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  183. package/build/src/run/android/resolveInstallApkName.js +14 -12
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +6 -3
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +12 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +27 -24
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +11 -8
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +15 -7
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +49 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +75 -51
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +31 -24
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +66 -33
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +73 -47
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +53 -26
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +15 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +54 -27
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +56 -30
  212. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  213. package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
  214. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  215. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +22 -13
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +57 -31
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +79 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +28 -14
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +24 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +26 -13
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +23 -10
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +27 -20
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +49 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +61 -36
  234. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  235. package/build/src/run/ios/codeSigning/settings.js +11 -3
  236. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  237. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +7 -5
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +14 -8
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +50 -34
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +52 -31
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +17 -13
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +63 -39
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +57 -34
  250. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  251. package/build/src/run/ios/options/resolveOptions.js +15 -12
  252. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  253. package/build/src/run/ios/options/resolveXcodeProject.js +6 -3
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +63 -42
  256. package/build/src/run/ios/runIosAsync.js.map +1 -1
  257. package/build/src/run/resolveBundlerProps.js +8 -5
  258. package/build/src/run/resolveBundlerProps.js.map +1 -1
  259. package/build/src/run/startBundler.js +47 -26
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +6 -3
  262. package/build/src/start/detectDevClient.js.map +1 -1
  263. package/build/src/start/doctor/Prerequisite.js +15 -7
  264. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  265. package/build/src/start/doctor/SecurityBinPrerequisite.js +7 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +44 -23
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +44 -23
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +61 -36
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +15 -12
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +49 -28
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +98 -53
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -9
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +23 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +19 -13
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +63 -41
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +64 -39
  288. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  289. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
  290. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  291. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +59 -41
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +59 -36
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +57 -31
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +56 -42
  298. package/build/src/start/index.js.map +1 -1
  299. package/build/src/start/interface/KeyPressHandler.js +43 -22
  300. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  301. package/build/src/start/interface/commandsTable.js +60 -38
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +85 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +78 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +9 -6
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +41 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +55 -35
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +19 -17
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +15 -12
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +6 -4
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +70 -50
  320. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  321. package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
  322. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  323. package/build/src/start/platforms/android/AndroidSdk.js +11 -8
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +43 -22
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +73 -52
  328. package/build/src/start/platforms/android/adb.js.map +1 -1
  329. package/build/src/start/platforms/android/adbReverse.js +57 -31
  330. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  331. package/build/src/start/platforms/android/emulator.js +63 -42
  332. package/build/src/start/platforms/android/emulator.js.map +1 -1
  333. package/build/src/start/platforms/android/getDevices.js +11 -10
  334. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  335. package/build/src/start/platforms/android/gradle.js +18 -11
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +14 -14
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +7 -4
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +80 -54
  342. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  343. package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
  344. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  345. package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -8
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +50 -29
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +53 -29
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +18 -12
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +65 -42
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +67 -44
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +8 -5
  358. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  359. package/build/src/start/project/devices.js +19 -16
  360. package/build/src/start/project/devices.js.map +1 -1
  361. package/build/src/start/project/dotExpo.js +13 -5
  362. package/build/src/start/project/dotExpo.js.map +1 -1
  363. package/build/src/start/project/settings.js +6 -4
  364. package/build/src/start/project/settings.js.map +1 -1
  365. package/build/src/start/resolveOptions.js +26 -19
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +66 -46
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +64 -44
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +81 -69
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +21 -16
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +49 -31
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +14 -6
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +44 -23
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +46 -34
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +135 -108
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +24 -17
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +18 -8
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/createExpoMetroResolver.js +31 -20
  390. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  391. package/build/src/start/server/metro/createJResolver.js +76 -51
  392. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  393. package/build/src/start/server/metro/createServerRouteMiddleware.js +22 -14
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  395. package/build/src/start/server/metro/debugging/MessageHandler.js +4 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  397. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +10 -9
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  399. package/build/src/start/server/metro/debugging/createHandlersFactory.js +14 -13
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  401. package/build/src/start/server/metro/debugging/getDebuggerType.js +5 -2
  402. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  403. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +5 -2
  404. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  405. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +5 -2
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -1
  407. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -4
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +7 -4
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -4
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +7 -4
  414. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  415. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -1
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  417. package/build/src/start/server/metro/externals.js +21 -10
  418. package/build/src/start/server/metro/externals.js.map +1 -1
  419. package/build/src/start/server/metro/fetchRouterManifest.js +20 -7
  420. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  421. package/build/src/start/server/metro/formatFileCandidates.js +21 -17
  422. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  423. package/build/src/start/server/metro/getCssModulesFromBundler.js +15 -7
  424. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  425. package/build/src/start/server/metro/instantiateMetro.js +57 -44
  426. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  427. package/build/src/start/server/metro/metroErrorInterface.js +43 -34
  428. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrors.js +11 -2
  430. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  431. package/build/src/start/server/metro/metroVirtualModules.js +10 -2
  432. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  433. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +5 -2
  434. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  435. package/build/src/start/server/metro/router.js +27 -20
  436. package/build/src/start/server/metro/router.js.map +1 -1
  437. package/build/src/start/server/metro/runServer-fork.js +21 -14
  438. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  439. package/build/src/start/server/metro/serializeHtml.js +7 -7
  440. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  441. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +12 -4
  442. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  443. package/build/src/start/server/metro/withMetroMultiPlatform.js +107 -81
  444. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroResolvers.js +72 -42
  446. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  447. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  448. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  449. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CreateFileMiddleware.js +13 -5
  452. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +15 -12
  454. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +30 -23
  456. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoMiddleware.js +47 -21
  458. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  460. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  462. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +23 -16
  464. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/ManifestMiddleware.js +84 -60
  466. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +14 -7
  468. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +47 -26
  470. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -8
  472. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/inspector/JsInspector.js +30 -24
  474. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +16 -8
  476. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +16 -12
  480. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +59 -37
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +22 -16
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +9 -6
  486. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  488. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  489. package/build/src/start/server/middleware/metroOptions.js +26 -18
  490. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  491. package/build/src/start/server/middleware/mutations.js +11 -4
  492. package/build/src/start/server/middleware/mutations.js.map +1 -1
  493. package/build/src/start/server/middleware/resolveAssets.js +65 -41
  494. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  495. package/build/src/start/server/middleware/resolvePlatform.js +14 -6
  496. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  497. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  498. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  499. package/build/src/start/server/openPlatforms.js +7 -6
  500. package/build/src/start/server/openPlatforms.js.map +1 -1
  501. package/build/src/start/server/platformBundlers.js +5 -2
  502. package/build/src/start/server/platformBundlers.js.map +1 -1
  503. package/build/src/start/server/serverLogLikeMetro.js +62 -33
  504. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  505. package/build/src/start/server/type-generation/expo-env.js +12 -4
  506. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  507. package/build/src/start/server/type-generation/routes.js +52 -51
  508. package/build/src/start/server/type-generation/routes.js.map +1 -1
  509. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +22 -19
  510. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  511. package/build/src/start/server/type-generation/tsconfig.js +18 -11
  512. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  513. package/build/src/start/server/webTemplate.js +21 -15
  514. package/build/src/start/server/webTemplate.js.map +1 -1
  515. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +81 -56
  516. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  517. package/build/src/start/server/webpack/compile.js +47 -26
  518. package/build/src/start/server/webpack/compile.js.map +1 -1
  519. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  520. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  521. package/build/src/start/server/webpack/resolveFromProject.js +13 -5
  522. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  523. package/build/src/start/server/webpack/tls.js +54 -28
  524. package/build/src/start/server/webpack/tls.js.map +1 -1
  525. package/build/src/start/startAsync.js +73 -52
  526. package/build/src/start/startAsync.js.map +1 -1
  527. package/build/src/utils/FileNotifier.js +46 -25
  528. package/build/src/utils/FileNotifier.js.map +1 -1
  529. package/build/src/utils/analytics/getDevClientProperties.js +29 -21
  530. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  531. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  532. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  535. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  536. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  537. package/build/src/utils/ansi.js +5 -2
  538. package/build/src/utils/ansi.js.map +1 -1
  539. package/build/src/utils/args.js +57 -29
  540. package/build/src/utils/args.js.map +1 -1
  541. package/build/src/utils/array.js +16 -9
  542. package/build/src/utils/array.js.map +1 -1
  543. package/build/src/utils/cocoapods.js +77 -53
  544. package/build/src/utils/cocoapods.js.map +1 -1
  545. package/build/src/utils/codesigning.js +80 -58
  546. package/build/src/utils/codesigning.js.map +1 -1
  547. package/build/src/utils/createFileTransform.js +13 -5
  548. package/build/src/utils/createFileTransform.js.map +1 -1
  549. package/build/src/utils/delay.js +13 -6
  550. package/build/src/utils/delay.js.map +1 -1
  551. package/build/src/utils/dir.js +24 -21
  552. package/build/src/utils/dir.js.map +1 -1
  553. package/build/src/utils/downloadAppAsync.js +16 -13
  554. package/build/src/utils/downloadAppAsync.js.map +1 -1
  555. package/build/src/utils/downloadExpoGoAsync.js +26 -20
  556. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  557. package/build/src/utils/editor.js +50 -24
  558. package/build/src/utils/editor.js.map +1 -1
  559. package/build/src/utils/env.js +35 -33
  560. package/build/src/utils/env.js.map +1 -1
  561. package/build/src/utils/errors.js +17 -9
  562. package/build/src/utils/errors.js.map +1 -1
  563. package/build/src/utils/exit.js +10 -7
  564. package/build/src/utils/exit.js.map +1 -1
  565. package/build/src/utils/findUp.js +22 -4
  566. package/build/src/utils/findUp.js.map +1 -1
  567. package/build/src/utils/fn.js +11 -3
  568. package/build/src/utils/fn.js.map +1 -1
  569. package/build/src/utils/getOrPromptApplicationId.js +71 -45
  570. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  571. package/build/src/utils/getRunningProcess.js +52 -26
  572. package/build/src/utils/getRunningProcess.js.map +1 -1
  573. package/build/src/utils/git.js +64 -38
  574. package/build/src/utils/git.js.map +1 -1
  575. package/build/src/utils/glob.js +14 -9
  576. package/build/src/utils/glob.js.map +1 -1
  577. package/build/src/utils/interactive.js +5 -2
  578. package/build/src/utils/interactive.js.map +1 -1
  579. package/build/src/utils/ip.js +5 -2
  580. package/build/src/utils/ip.js.map +1 -1
  581. package/build/src/utils/isModuleSymlinked.js +7 -4
  582. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  583. package/build/src/utils/link.js +13 -5
  584. package/build/src/utils/link.js.map +1 -1
  585. package/build/src/utils/mergeGitIgnorePaths.js +22 -17
  586. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  587. package/build/src/utils/modifyConfigAsync.js +56 -30
  588. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  589. package/build/src/utils/modifyConfigPlugins.js +43 -22
  590. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  591. package/build/src/utils/nodeEnv.js +6 -1
  592. package/build/src/utils/nodeEnv.js.map +1 -1
  593. package/build/src/utils/nodeModules.js +9 -6
  594. package/build/src/utils/nodeModules.js.map +1 -1
  595. package/build/src/utils/npm.js +32 -24
  596. package/build/src/utils/npm.js.map +1 -1
  597. package/build/src/utils/obj.js +12 -4
  598. package/build/src/utils/obj.js.map +1 -1
  599. package/build/src/utils/open.js +7 -4
  600. package/build/src/utils/open.js.map +1 -1
  601. package/build/src/utils/ora.js +25 -21
  602. package/build/src/utils/ora.js.map +1 -1
  603. package/build/src/utils/plist.js +53 -27
  604. package/build/src/utils/plist.js.map +1 -1
  605. package/build/src/utils/port.js +58 -32
  606. package/build/src/utils/port.js.map +1 -1
  607. package/build/src/utils/profile.js +49 -28
  608. package/build/src/utils/profile.js.map +1 -1
  609. package/build/src/utils/progress.js +16 -12
  610. package/build/src/utils/progress.js.map +1 -1
  611. package/build/src/utils/prompts.js +33 -28
  612. package/build/src/utils/prompts.js.map +1 -1
  613. package/build/src/utils/resolveArgs.js +23 -20
  614. package/build/src/utils/resolveArgs.js.map +1 -1
  615. package/build/src/utils/scheme.js +61 -37
  616. package/build/src/utils/scheme.js.map +1 -1
  617. package/build/src/utils/strings.js +11 -4
  618. package/build/src/utils/strings.js.map +1 -1
  619. package/build/src/utils/tar.js +43 -22
  620. package/build/src/utils/tar.js.map +1 -1
  621. package/build/src/utils/telemetry/DetachedClient.js +8 -5
  622. package/build/src/utils/telemetry/DetachedClient.js.map +1 -1
  623. package/build/src/utils/telemetry/RudderClient.js +12 -9
  624. package/build/src/utils/telemetry/RudderClient.js.map +1 -1
  625. package/build/src/utils/telemetry/flushDetached.js +8 -7
  626. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  627. package/build/src/utils/telemetry/getContext.js +48 -28
  628. package/build/src/utils/telemetry/getContext.js.map +1 -1
  629. package/build/src/utils/telemetry/index.js +16 -11
  630. package/build/src/utils/telemetry/index.js.map +1 -1
  631. package/build/src/utils/template.js +27 -2
  632. package/build/src/utils/template.js.map +1 -1
  633. package/build/src/utils/terminal.js +5 -2
  634. package/build/src/utils/terminal.js.map +1 -1
  635. package/build/src/utils/tsconfig/evaluateTsConfig.js +18 -12
  636. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  637. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -10
  638. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  639. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  640. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  641. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -9
  642. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/url.js +17 -10
  644. package/build/src/utils/url.js.map +1 -1
  645. package/build/src/utils/validateApplicationId.js +32 -25
  646. package/build/src/utils/validateApplicationId.js.map +1 -1
  647. package/build/src/utils/variadic.js +15 -11
  648. package/build/src/utils/variadic.js.map +1 -1
  649. package/build/src/whoami/index.js +43 -25
  650. package/build/src/whoami/index.js.map +1 -1
  651. package/build/src/whoami/whoamiAsync.js +44 -23
  652. package/build/src/whoami/whoamiAsync.js.map +1 -1
  653. package/package.json +4 -4
@@ -1,64 +1,95 @@
1
- "use strict";
1
+ /**
2
+ * Copyright © 2022 650 Industries.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */ "use strict";
2
7
  Object.defineProperty(exports, "__esModule", {
3
8
  value: true
4
9
  });
5
- exports.getDefaultMetroResolver = getDefaultMetroResolver;
6
- exports.withMetroResolvers = withMetroResolvers;
7
- exports.withMetroMutatedResolverContext = withMetroMutatedResolverContext;
8
- exports.withMetroErrorReportingResolver = withMetroErrorReportingResolver;
10
+ function _export(target, all) {
11
+ for(var name in all)Object.defineProperty(target, name, {
12
+ enumerable: true,
13
+ get: all[name]
14
+ });
15
+ }
16
+ _export(exports, {
17
+ getDefaultMetroResolver: ()=>getDefaultMetroResolver,
18
+ withMetroResolvers: ()=>withMetroResolvers,
19
+ withMetroMutatedResolverContext: ()=>withMetroMutatedResolverContext,
20
+ withMetroErrorReportingResolver: ()=>withMetroErrorReportingResolver
21
+ });
9
22
  function _chalk() {
10
- const data = _interopRequireDefault(require("chalk"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
11
24
  _chalk = function() {
12
25
  return data;
13
26
  };
14
27
  return data;
15
28
  }
16
- function metroResolver() {
17
- const data = _interopRequireWildcard(require("metro-resolver"));
18
- metroResolver = function() {
29
+ function _metroResolver() {
30
+ const data = /*#__PURE__*/ _interopRequireWildcard(require("metro-resolver"));
31
+ _metroResolver = function() {
19
32
  return data;
20
33
  };
21
34
  return data;
22
35
  }
23
36
  function _path() {
24
- const data = _interopRequireDefault(require("path"));
37
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
25
38
  _path = function() {
26
39
  return data;
27
40
  };
28
41
  return data;
29
42
  }
30
- var _metroErrors = require("./metroErrors");
31
- var _env = require("../../../utils/env");
43
+ const _metroErrors = require("./metroErrors");
44
+ const _env = require("../../../utils/env");
32
45
  function _interopRequireDefault(obj) {
33
46
  return obj && obj.__esModule ? obj : {
34
47
  default: obj
35
48
  };
36
49
  }
37
- function _interopRequireWildcard(obj) {
38
- if (obj && obj.__esModule) {
50
+ function _getRequireWildcardCache(nodeInterop) {
51
+ if (typeof WeakMap !== "function") return null;
52
+ var cacheBabelInterop = new WeakMap();
53
+ var cacheNodeInterop = new WeakMap();
54
+ return (_getRequireWildcardCache = function(nodeInterop) {
55
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
56
+ })(nodeInterop);
57
+ }
58
+ function _interopRequireWildcard(obj, nodeInterop) {
59
+ if (!nodeInterop && obj && obj.__esModule) {
39
60
  return obj;
40
- } else {
41
- var newObj = {};
42
- if (obj != null) {
43
- for(var key in obj){
44
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
45
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
46
- if (desc.get || desc.set) {
47
- Object.defineProperty(newObj, key, desc);
48
- } else {
49
- newObj[key] = obj[key];
50
- }
51
- }
61
+ }
62
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
63
+ return {
64
+ default: obj
65
+ };
66
+ }
67
+ var cache = _getRequireWildcardCache(nodeInterop);
68
+ if (cache && cache.has(obj)) {
69
+ return cache.get(obj);
70
+ }
71
+ var newObj = {};
72
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
73
+ for(var key in obj){
74
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
75
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
76
+ if (desc && (desc.get || desc.set)) {
77
+ Object.defineProperty(newObj, key, desc);
78
+ } else {
79
+ newObj[key] = obj[key];
52
80
  }
53
81
  }
54
- newObj.default = obj;
55
- return newObj;
56
82
  }
83
+ newObj.default = obj;
84
+ if (cache) {
85
+ cache.set(obj, newObj);
86
+ }
87
+ return newObj;
57
88
  }
58
89
  const debug = require("debug")("expo:metro:withMetroResolvers");
59
90
  function getDefaultMetroResolver(projectRoot) {
60
91
  return (context, moduleName, platform)=>{
61
- return metroResolver().resolve(context, moduleName, platform);
92
+ return _metroResolver().resolve(context, moduleName, platform);
62
93
  };
63
94
  }
64
95
  function optionsKeyForContext(context) {
@@ -77,7 +108,7 @@ function withMetroResolvers(config, resolvers) {
77
108
  ...config,
78
109
  resolver: {
79
110
  ...config.resolver,
80
- resolveRequest (context, moduleName1, platform1) {
111
+ resolveRequest (context, moduleName, platform) {
81
112
  const upstreamResolveRequest = context.resolveRequest;
82
113
  const universalContext = {
83
114
  ...context,
@@ -91,7 +122,7 @@ function withMetroResolvers(config, resolvers) {
91
122
  } catch (error) {
92
123
  // If the error is directly related to a resolver not being able to resolve a module, then
93
124
  // we can ignore the error and try the next resolver. Otherwise, we should throw the error.
94
- const isResolutionError = (0, _metroErrors).isFailedToResolveNameError(error) || (0, _metroErrors).isFailedToResolvePathError(error);
125
+ const isResolutionError = (0, _metroErrors.isFailedToResolveNameError)(error) || (0, _metroErrors.isFailedToResolvePathError)(error);
95
126
  if (!isResolutionError) {
96
127
  throw error;
97
128
  }
@@ -112,15 +143,15 @@ function withMetroResolvers(config, resolvers) {
112
143
  // return context.resolveRequest(context, moduleName, platform);
113
144
  // };
114
145
  const firstResolver = originalResolveRequest != null ? originalResolveRequest : universalContext.resolveRequest;
115
- return firstResolver(universalContext, moduleName1, platform1);
146
+ return firstResolver(universalContext, moduleName, platform);
116
147
  }
117
148
  }
118
149
  };
119
150
  }
120
151
  function withMetroMutatedResolverContext(config, getContext) {
121
- var ref2;
152
+ var ref;
122
153
  const defaultResolveRequest = getDefaultMetroResolver(config.projectRoot);
123
- const originalResolveRequest = (ref2 = config.resolver) == null ? void 0 : ref2.resolveRequest;
154
+ const originalResolveRequest = (ref = config.resolver) == null ? void 0 : ref.resolveRequest;
124
155
  return {
125
156
  ...config,
126
157
  resolver: {
@@ -135,11 +166,11 @@ function withMetroMutatedResolverContext(config, getContext) {
135
166
  };
136
167
  }
137
168
  function withMetroErrorReportingResolver(config) {
138
- var ref4;
169
+ var ref;
139
170
  if (!_env.env.EXPO_METRO_UNSTABLE_ERRORS) {
140
171
  return config;
141
172
  }
142
- const originalResolveRequest = (ref4 = config.resolver) == null ? void 0 : ref4.resolveRequest;
173
+ const originalResolveRequest = (ref = config.resolver) == null ? void 0 : ref.resolveRequest;
143
174
  function mutateResolutionError(error, context, moduleName, platform) {
144
175
  var ref;
145
176
  if (!platform) {
@@ -161,8 +192,7 @@ function withMetroErrorReportingResolver(config) {
161
192
  // search comparing origin to path
162
193
  const found = [
163
194
  ...mapByTarget.values()
164
- ].find((resolution)=>resolution.path === origin
165
- );
195
+ ].find((resolution)=>resolution.path === origin);
166
196
  if (found) {
167
197
  inverseOrigin.push({
168
198
  origin,
@@ -176,8 +206,8 @@ function withMetroErrorReportingResolver(config) {
176
206
  const pad = (num)=>{
177
207
  return new Array(num).fill(" ").join("");
178
208
  };
179
- var ref3;
180
- const root = (ref3 = (ref = config.server) == null ? void 0 : ref.unstable_serverRoot) != null ? ref3 : config.projectRoot;
209
+ var ref1;
210
+ const root = (ref1 = (ref = config.server) == null ? void 0 : ref.unstable_serverRoot) != null ? ref1 : config.projectRoot;
181
211
  const recurseBackWithLimit = (req, limit, count = 0)=>{
182
212
  const results = {
183
213
  origin: req.origin,
@@ -219,9 +249,9 @@ function withMetroErrorReportingResolver(config) {
219
249
  if (// If bundling for web and the import is pulling internals from outside of react-native
220
250
  // then mark it as an invalid import.
221
251
  platform === "web" && !/^(node_modules\/)?react-native\//.test(filename) && tree.request.match(/^react-native\/.*/)) {
222
- formattedRequest = formattedRequest + _chalk().default`\n {yellow Importing react-native internals is not supported on web.}`;
252
+ formattedRequest = formattedRequest + (0, _chalk().default)`\n {yellow Importing react-native internals is not supported on web.}`;
223
253
  }
224
- filename = filename + _chalk().default`\n{gray |} {cyan import} ${formattedRequest}\n`;
254
+ filename = filename + (0, _chalk().default)`\n{gray |} {cyan import} ${formattedRequest}\n`;
225
255
  }
226
256
  let line = "\n" + pad(depth) + _chalk().default.gray(" ") + filename;
227
257
  if (filename.match(/node_modules/)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/withMetroResolvers.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 chalk from 'chalk';\nimport { ConfigT as MetroConfig } from 'metro-config';\nimport type { ResolutionContext, CustomResolutionContext } from 'metro-resolver';\nimport * as metroResolver from 'metro-resolver';\nimport path from 'path';\n\nimport { isFailedToResolveNameError, isFailedToResolvePathError } from './metroErrors';\nimport { env } from '../../../utils/env';\n\nconst debug = require('debug')('expo:metro:withMetroResolvers') as typeof console.log;\n\nexport type MetroResolver = NonNullable<MetroConfig['resolver']['resolveRequest']>;\n\n/** Expo Metro Resolvers can return `null` to skip without throwing an error. Metro Resolvers will throw either a `FailedToResolveNameError` or `FailedToResolvePathError`. */\nexport type ExpoCustomMetroResolver = (\n ...args: Parameters<MetroResolver>\n) => ReturnType<MetroResolver> | null;\n\n/** @returns `MetroResolver` utilizing the upstream `resolve` method. */\nexport function getDefaultMetroResolver(projectRoot: string): MetroResolver {\n return (context: ResolutionContext, moduleName: string, platform: string | null) => {\n return metroResolver.resolve(context, moduleName, platform);\n };\n}\n\nfunction optionsKeyForContext(context: ResolutionContext) {\n const canonicalize = require('metro-core/src/canonicalize');\n\n // Compound key for the resolver cache\n return JSON.stringify(context.customResolverOptions ?? {}, canonicalize) ?? '';\n}\n\n/**\n * Extend the Metro config `resolver.resolveRequest` method with additional resolvers that can\n * exit early by returning a `Resolution` or skip to the next resolver by returning `null`.\n *\n * @param config Metro config.\n * @param resolvers custom MetroResolver to chain.\n * @returns a new `MetroConfig` with the `resolver.resolveRequest` method chained.\n */\nexport function withMetroResolvers(\n config: MetroConfig,\n resolvers: ExpoCustomMetroResolver[]\n): MetroConfig {\n debug(\n `Appending ${\n resolvers.length\n } custom resolvers to Metro config. (has custom resolver: ${!!config.resolver?.resolveRequest})`\n );\n // const hasUserDefinedResolver = !!config.resolver?.resolveRequest;\n // const defaultResolveRequest = getDefaultMetroResolver(projectRoot);\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const upstreamResolveRequest = context.resolveRequest;\n\n const universalContext = {\n ...context,\n resolveRequest(\n ctx: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ) {\n for (const resolver of resolvers) {\n try {\n const res = resolver(ctx, moduleName, platform);\n if (res) {\n return res;\n }\n } catch (error: any) {\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 debug(\n `Custom resolver threw: ${error.constructor.name}. (module: ${moduleName}, platform: ${platform})`\n );\n }\n }\n // If we haven't returned by now, use the original resolver or upstream resolver.\n return upstreamResolveRequest(ctx, moduleName, platform);\n },\n };\n\n // If the user defined a resolver, run it first and depend on the documented\n // chaining logic: https://facebook.github.io/metro/docs/resolution/#resolution-algorithm\n //\n // config.resolver.resolveRequest = (context, moduleName, platform) => {\n //\n // // Do work...\n //\n // return context.resolveRequest(context, moduleName, platform);\n // };\n const firstResolver = originalResolveRequest ?? universalContext.resolveRequest;\n return firstResolver(universalContext, moduleName, platform);\n },\n },\n };\n}\n\n/**\n * Hook into the Metro resolver chain and mutate the context so users can resolve against our custom assumptions.\n * For example, this will set `preferNativePlatform` to false when bundling for web.\n * */\nexport function withMetroMutatedResolverContext(\n config: MetroConfig,\n getContext: (\n ctx: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ) => CustomResolutionContext\n): MetroConfig {\n const defaultResolveRequest = getDefaultMetroResolver(config.projectRoot);\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const universalContext = getContext(context, moduleName, platform);\n const firstResolver =\n originalResolveRequest ?? universalContext.resolveRequest ?? defaultResolveRequest;\n return firstResolver(universalContext, moduleName, platform);\n },\n },\n };\n}\n\nexport function withMetroErrorReportingResolver(config: MetroConfig): MetroConfig {\n if (!env.EXPO_METRO_UNSTABLE_ERRORS) {\n return config;\n }\n\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n function mutateResolutionError(\n error: Error,\n context: ResolutionContext,\n moduleName: string,\n platform: string | null\n ) {\n if (!platform) {\n debug('Cannot mutate resolution error');\n return error;\n }\n\n const mapByOrigin = depGraph.get(optionsKeyForContext(context));\n const mapByPlatform = mapByOrigin?.get(platform);\n\n if (!mapByPlatform) {\n return error;\n }\n\n // collect all references inversely using some expensive lookup\n\n const getReferences = (origin: string) => {\n const inverseOrigin: { origin: string; previous: string; request: string }[] = [];\n\n if (!mapByPlatform) {\n return inverseOrigin;\n }\n\n for (const [originKey, mapByTarget] of mapByPlatform) {\n // search comparing origin to path\n\n const found = [...mapByTarget.values()].find((resolution) => resolution.path === origin);\n if (found) {\n inverseOrigin.push({\n origin,\n previous: originKey,\n request: found.request,\n });\n }\n }\n\n return inverseOrigin;\n };\n\n const pad = (num: number) => {\n return new Array(num).fill(' ').join('');\n };\n\n const root = config.server?.unstable_serverRoot ?? config.projectRoot;\n\n type InverseDepResult = {\n origin: string;\n request: string;\n previous: InverseDepResult[];\n };\n const recurseBackWithLimit = (\n req: { origin: string; request: string },\n limit: number,\n count: number = 0\n ) => {\n const results: InverseDepResult = {\n origin: req.origin,\n request: req.request,\n previous: [],\n };\n\n if (count >= limit) {\n return results;\n }\n\n const inverse = getReferences(req.origin);\n for (const match of inverse) {\n // Use more qualified name if possible\n // results.origin = match.origin;\n // Found entry point\n if (req.origin === match.previous) {\n continue;\n }\n results.previous.push(\n recurseBackWithLimit({ origin: match.previous, request: match.request }, limit, count + 1)\n );\n }\n return results;\n };\n\n const inverseTree = recurseBackWithLimit(\n { origin: context.originModulePath, request: moduleName },\n // TODO: Do we need to expose this?\n 35\n );\n\n if (inverseTree.previous.length > 0) {\n debug('Found inverse graph:', JSON.stringify(inverseTree, null, 2));\n let extraMessage = chalk.bold('Import stack:');\n const printRecursive = (tree: InverseDepResult, depth: number = 0) => {\n let filename = path.relative(root, tree.origin);\n if (filename.match(/\\?ctx=[\\w\\d]+$/)) {\n filename = filename.replace(/\\?ctx=[\\w\\d]+$/, chalk.dim(' (require.context)'));\n } else {\n let formattedRequest = chalk.green(`\"${tree.request}\"`);\n\n if (\n // If bundling for web and the import is pulling internals from outside of react-native\n // then mark it as an invalid import.\n platform === 'web' &&\n !/^(node_modules\\/)?react-native\\//.test(filename) &&\n tree.request.match(/^react-native\\/.*/)\n ) {\n formattedRequest =\n formattedRequest +\n chalk`\\n {yellow Importing react-native internals is not supported on web.}`;\n }\n\n filename = filename + chalk`\\n{gray |} {cyan import} ${formattedRequest}\\n`;\n }\n let line = '\\n' + pad(depth) + chalk.gray(' ') + filename;\n if (filename.match(/node_modules/)) {\n line = chalk.gray(\n // Bold the node module name\n line.replace(/node_modules\\/([^/]+)/, (_match, p1) => {\n return 'node_modules/' + chalk.bold(p1);\n })\n );\n }\n extraMessage += line;\n for (const child of tree.previous) {\n printRecursive(\n child,\n // Only add depth if there are multiple children\n tree.previous.length > 1 ? depth + 1 : depth\n );\n }\n };\n printRecursive(inverseTree);\n\n // @ts-expect-error\n error._expoImportStack = extraMessage;\n } else {\n debug('Found no inverse tree for:', context.originModulePath);\n }\n\n return error;\n }\n\n const depGraph: Map<\n // custom options\n string,\n Map<\n // platform\n string,\n Map<\n // origin module name\n string,\n Set<{\n // required module name\n path: string;\n // This isn't entirely accurate since a module can be imported multiple times in a file,\n // and use different names. But it's good enough for now.\n request: string;\n }>\n >\n >\n > = new Map();\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const storeResult = (res: NonNullable<ReturnType<ExpoCustomMetroResolver>>) => {\n if (!platform) return;\n\n const key = optionsKeyForContext(context);\n if (!depGraph.has(key)) depGraph.set(key, new Map());\n const mapByTarget = depGraph.get(key);\n if (!mapByTarget!.has(platform)) mapByTarget!.set(platform, new Map());\n const mapByPlatform = mapByTarget!.get(platform);\n if (!mapByPlatform!.has(context.originModulePath))\n mapByPlatform!.set(context.originModulePath, new Set());\n const setForModule = mapByPlatform!.get(context.originModulePath)!;\n\n const qualifiedModuleName = res?.type === 'sourceFile' ? res.filePath : moduleName;\n setForModule.add({ path: qualifiedModuleName, request: moduleName });\n };\n\n // If the user defined a resolver, run it first and depend on the documented\n // chaining logic: https://facebook.github.io/metro/docs/resolution/#resolution-algorithm\n //\n // config.resolver.resolveRequest = (context, moduleName, platform) => {\n //\n // // Do work...\n //\n // return context.resolveRequest(context, moduleName, platform);\n // };\n try {\n const firstResolver = originalResolveRequest ?? context.resolveRequest;\n const res = firstResolver(context, moduleName, platform);\n storeResult(res);\n return res;\n } catch (error: any) {\n throw mutateResolutionError(error, context, moduleName, platform);\n }\n },\n },\n };\n}\n"],"names":["getDefaultMetroResolver","withMetroResolvers","withMetroMutatedResolverContext","withMetroErrorReportingResolver","metroResolver","debug","require","projectRoot","context","moduleName","platform","resolve","optionsKeyForContext","canonicalize","JSON","stringify","customResolverOptions","config","resolvers","length","resolver","resolveRequest","originalResolveRequest","upstreamResolveRequest","universalContext","ctx","res","error","isResolutionError","isFailedToResolveNameError","isFailedToResolvePathError","constructor","name","firstResolver","getContext","defaultResolveRequest","env","EXPO_METRO_UNSTABLE_ERRORS","mutateResolutionError","mapByOrigin","depGraph","get","mapByPlatform","getReferences","origin","inverseOrigin","originKey","mapByTarget","found","values","find","resolution","path","push","previous","request","pad","num","Array","fill","join","root","server","unstable_serverRoot","recurseBackWithLimit","req","limit","count","results","inverse","match","inverseTree","originModulePath","extraMessage","chalk","bold","printRecursive","tree","depth","filename","relative","replace","dim","formattedRequest","green","test","line","gray","_match","p1","child","_expoImportStack","Map","storeResult","key","has","set","Set","setForModule","qualifiedModuleName","type","filePath","add"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/withMetroResolvers.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 chalk from 'chalk';\nimport { ConfigT as MetroConfig } from 'metro-config';\nimport type { ResolutionContext, CustomResolutionContext } from 'metro-resolver';\nimport * as metroResolver from 'metro-resolver';\nimport path from 'path';\n\nimport { isFailedToResolveNameError, isFailedToResolvePathError } from './metroErrors';\nimport { env } from '../../../utils/env';\n\nconst debug = require('debug')('expo:metro:withMetroResolvers') as typeof console.log;\n\nexport type MetroResolver = NonNullable<MetroConfig['resolver']['resolveRequest']>;\n\n/** Expo Metro Resolvers can return `null` to skip without throwing an error. Metro Resolvers will throw either a `FailedToResolveNameError` or `FailedToResolvePathError`. */\nexport type ExpoCustomMetroResolver = (\n ...args: Parameters<MetroResolver>\n) => ReturnType<MetroResolver> | null;\n\n/** @returns `MetroResolver` utilizing the upstream `resolve` method. */\nexport function getDefaultMetroResolver(projectRoot: string): MetroResolver {\n return (context: ResolutionContext, moduleName: string, platform: string | null) => {\n return metroResolver.resolve(context, moduleName, platform);\n };\n}\n\nfunction optionsKeyForContext(context: ResolutionContext) {\n const canonicalize = require('metro-core/src/canonicalize');\n\n // Compound key for the resolver cache\n return JSON.stringify(context.customResolverOptions ?? {}, canonicalize) ?? '';\n}\n\n/**\n * Extend the Metro config `resolver.resolveRequest` method with additional resolvers that can\n * exit early by returning a `Resolution` or skip to the next resolver by returning `null`.\n *\n * @param config Metro config.\n * @param resolvers custom MetroResolver to chain.\n * @returns a new `MetroConfig` with the `resolver.resolveRequest` method chained.\n */\nexport function withMetroResolvers(\n config: MetroConfig,\n resolvers: ExpoCustomMetroResolver[]\n): MetroConfig {\n debug(\n `Appending ${\n resolvers.length\n } custom resolvers to Metro config. (has custom resolver: ${!!config.resolver?.resolveRequest})`\n );\n // const hasUserDefinedResolver = !!config.resolver?.resolveRequest;\n // const defaultResolveRequest = getDefaultMetroResolver(projectRoot);\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const upstreamResolveRequest = context.resolveRequest;\n\n const universalContext = {\n ...context,\n resolveRequest(\n ctx: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ) {\n for (const resolver of resolvers) {\n try {\n const res = resolver(ctx, moduleName, platform);\n if (res) {\n return res;\n }\n } catch (error: any) {\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 debug(\n `Custom resolver threw: ${error.constructor.name}. (module: ${moduleName}, platform: ${platform})`\n );\n }\n }\n // If we haven't returned by now, use the original resolver or upstream resolver.\n return upstreamResolveRequest(ctx, moduleName, platform);\n },\n };\n\n // If the user defined a resolver, run it first and depend on the documented\n // chaining logic: https://facebook.github.io/metro/docs/resolution/#resolution-algorithm\n //\n // config.resolver.resolveRequest = (context, moduleName, platform) => {\n //\n // // Do work...\n //\n // return context.resolveRequest(context, moduleName, platform);\n // };\n const firstResolver = originalResolveRequest ?? universalContext.resolveRequest;\n return firstResolver(universalContext, moduleName, platform);\n },\n },\n };\n}\n\n/**\n * Hook into the Metro resolver chain and mutate the context so users can resolve against our custom assumptions.\n * For example, this will set `preferNativePlatform` to false when bundling for web.\n * */\nexport function withMetroMutatedResolverContext(\n config: MetroConfig,\n getContext: (\n ctx: CustomResolutionContext,\n moduleName: string,\n platform: string | null\n ) => CustomResolutionContext\n): MetroConfig {\n const defaultResolveRequest = getDefaultMetroResolver(config.projectRoot);\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const universalContext = getContext(context, moduleName, platform);\n const firstResolver =\n originalResolveRequest ?? universalContext.resolveRequest ?? defaultResolveRequest;\n return firstResolver(universalContext, moduleName, platform);\n },\n },\n };\n}\n\nexport function withMetroErrorReportingResolver(config: MetroConfig): MetroConfig {\n if (!env.EXPO_METRO_UNSTABLE_ERRORS) {\n return config;\n }\n\n const originalResolveRequest = config.resolver?.resolveRequest;\n\n function mutateResolutionError(\n error: Error,\n context: ResolutionContext,\n moduleName: string,\n platform: string | null\n ) {\n if (!platform) {\n debug('Cannot mutate resolution error');\n return error;\n }\n\n const mapByOrigin = depGraph.get(optionsKeyForContext(context));\n const mapByPlatform = mapByOrigin?.get(platform);\n\n if (!mapByPlatform) {\n return error;\n }\n\n // collect all references inversely using some expensive lookup\n\n const getReferences = (origin: string) => {\n const inverseOrigin: { origin: string; previous: string; request: string }[] = [];\n\n if (!mapByPlatform) {\n return inverseOrigin;\n }\n\n for (const [originKey, mapByTarget] of mapByPlatform) {\n // search comparing origin to path\n\n const found = [...mapByTarget.values()].find((resolution) => resolution.path === origin);\n if (found) {\n inverseOrigin.push({\n origin,\n previous: originKey,\n request: found.request,\n });\n }\n }\n\n return inverseOrigin;\n };\n\n const pad = (num: number) => {\n return new Array(num).fill(' ').join('');\n };\n\n const root = config.server?.unstable_serverRoot ?? config.projectRoot;\n\n type InverseDepResult = {\n origin: string;\n request: string;\n previous: InverseDepResult[];\n };\n const recurseBackWithLimit = (\n req: { origin: string; request: string },\n limit: number,\n count: number = 0\n ) => {\n const results: InverseDepResult = {\n origin: req.origin,\n request: req.request,\n previous: [],\n };\n\n if (count >= limit) {\n return results;\n }\n\n const inverse = getReferences(req.origin);\n for (const match of inverse) {\n // Use more qualified name if possible\n // results.origin = match.origin;\n // Found entry point\n if (req.origin === match.previous) {\n continue;\n }\n results.previous.push(\n recurseBackWithLimit({ origin: match.previous, request: match.request }, limit, count + 1)\n );\n }\n return results;\n };\n\n const inverseTree = recurseBackWithLimit(\n { origin: context.originModulePath, request: moduleName },\n // TODO: Do we need to expose this?\n 35\n );\n\n if (inverseTree.previous.length > 0) {\n debug('Found inverse graph:', JSON.stringify(inverseTree, null, 2));\n let extraMessage = chalk.bold('Import stack:');\n const printRecursive = (tree: InverseDepResult, depth: number = 0) => {\n let filename = path.relative(root, tree.origin);\n if (filename.match(/\\?ctx=[\\w\\d]+$/)) {\n filename = filename.replace(/\\?ctx=[\\w\\d]+$/, chalk.dim(' (require.context)'));\n } else {\n let formattedRequest = chalk.green(`\"${tree.request}\"`);\n\n if (\n // If bundling for web and the import is pulling internals from outside of react-native\n // then mark it as an invalid import.\n platform === 'web' &&\n !/^(node_modules\\/)?react-native\\//.test(filename) &&\n tree.request.match(/^react-native\\/.*/)\n ) {\n formattedRequest =\n formattedRequest +\n chalk`\\n {yellow Importing react-native internals is not supported on web.}`;\n }\n\n filename = filename + chalk`\\n{gray |} {cyan import} ${formattedRequest}\\n`;\n }\n let line = '\\n' + pad(depth) + chalk.gray(' ') + filename;\n if (filename.match(/node_modules/)) {\n line = chalk.gray(\n // Bold the node module name\n line.replace(/node_modules\\/([^/]+)/, (_match, p1) => {\n return 'node_modules/' + chalk.bold(p1);\n })\n );\n }\n extraMessage += line;\n for (const child of tree.previous) {\n printRecursive(\n child,\n // Only add depth if there are multiple children\n tree.previous.length > 1 ? depth + 1 : depth\n );\n }\n };\n printRecursive(inverseTree);\n\n // @ts-expect-error\n error._expoImportStack = extraMessage;\n } else {\n debug('Found no inverse tree for:', context.originModulePath);\n }\n\n return error;\n }\n\n const depGraph: Map<\n // custom options\n string,\n Map<\n // platform\n string,\n Map<\n // origin module name\n string,\n Set<{\n // required module name\n path: string;\n // This isn't entirely accurate since a module can be imported multiple times in a file,\n // and use different names. But it's good enough for now.\n request: string;\n }>\n >\n >\n > = new Map();\n\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest(context, moduleName, platform) {\n const storeResult = (res: NonNullable<ReturnType<ExpoCustomMetroResolver>>) => {\n if (!platform) return;\n\n const key = optionsKeyForContext(context);\n if (!depGraph.has(key)) depGraph.set(key, new Map());\n const mapByTarget = depGraph.get(key);\n if (!mapByTarget!.has(platform)) mapByTarget!.set(platform, new Map());\n const mapByPlatform = mapByTarget!.get(platform);\n if (!mapByPlatform!.has(context.originModulePath))\n mapByPlatform!.set(context.originModulePath, new Set());\n const setForModule = mapByPlatform!.get(context.originModulePath)!;\n\n const qualifiedModuleName = res?.type === 'sourceFile' ? res.filePath : moduleName;\n setForModule.add({ path: qualifiedModuleName, request: moduleName });\n };\n\n // If the user defined a resolver, run it first and depend on the documented\n // chaining logic: https://facebook.github.io/metro/docs/resolution/#resolution-algorithm\n //\n // config.resolver.resolveRequest = (context, moduleName, platform) => {\n //\n // // Do work...\n //\n // return context.resolveRequest(context, moduleName, platform);\n // };\n try {\n const firstResolver = originalResolveRequest ?? context.resolveRequest;\n const res = firstResolver(context, moduleName, platform);\n storeResult(res);\n return res;\n } catch (error: any) {\n throw mutateResolutionError(error, context, moduleName, platform);\n }\n },\n },\n };\n}\n"],"names":["getDefaultMetroResolver","withMetroResolvers","withMetroMutatedResolverContext","withMetroErrorReportingResolver","debug","require","projectRoot","context","moduleName","platform","metroResolver","resolve","optionsKeyForContext","canonicalize","JSON","stringify","customResolverOptions","config","resolvers","length","resolver","resolveRequest","originalResolveRequest","upstreamResolveRequest","universalContext","ctx","res","error","isResolutionError","isFailedToResolveNameError","isFailedToResolvePathError","constructor","name","firstResolver","getContext","defaultResolveRequest","env","EXPO_METRO_UNSTABLE_ERRORS","mutateResolutionError","mapByOrigin","depGraph","get","mapByPlatform","getReferences","origin","inverseOrigin","originKey","mapByTarget","found","values","find","resolution","path","push","previous","request","pad","num","Array","fill","join","root","server","unstable_serverRoot","recurseBackWithLimit","req","limit","count","results","inverse","match","inverseTree","originModulePath","extraMessage","chalk","bold","printRecursive","tree","depth","filename","relative","replace","dim","formattedRequest","green","test","line","gray","_match","p1","child","_expoImportStack","Map","storeResult","key","has","set","Set","setForModule","qualifiedModuleName","type","filePath","add"],"mappings":"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"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ Object.defineProperty(exports, "ContextModuleSourceMapsMiddleware", {
6
+ enumerable: true,
7
+ get: ()=>ContextModuleSourceMapsMiddleware
8
+ });
5
9
  const debug = require("debug")("expo:start:server:middleware:metro-context-modules");
6
10
  class ContextModuleSourceMapsMiddleware {
7
11
  getHandler() {
@@ -22,6 +26,5 @@ class ContextModuleSourceMapsMiddleware {
22
26
  };
23
27
  }
24
28
  }
25
- exports.ContextModuleSourceMapsMiddleware = ContextModuleSourceMapsMiddleware;
26
29
 
27
30
  //# sourceMappingURL=ContextModuleSourceMapsMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/ContextModuleSourceMapsMiddleware.ts"],"sourcesContent":["import { ServerRequest, ServerResponse } from './server.types';\n\nconst debug = require('debug')(\n 'expo:start:server:middleware:metro-context-modules'\n) as typeof console.log;\n\n/**\n * Source maps for `require.context` modules aren't supported in the Metro dev server\n * we should intercept the request and return a noop response to prevent Chrome/Metro\n * from erroring out.\n */\nexport class ContextModuleSourceMapsMiddleware {\n getHandler() {\n return (req: ServerRequest, res: ServerResponse, next: any) => {\n if (!req?.url || (req.method !== 'GET' && req.method !== 'HEAD')) {\n return next();\n }\n\n if (req.url.match(/%3Fctx=[\\d\\w\\W]+\\.map\\?/)) {\n debug('Skipping sourcemap request for context module %s', req.url);\n // Return a noop response for the sourcemap\n res.writeHead(200, {\n 'Content-Type': 'application/json',\n });\n res.end('{}');\n return;\n }\n\n next();\n };\n }\n}\n"],"names":["debug","require","ContextModuleSourceMapsMiddleware","getHandler","req","res","next","url","method","match","writeHead","end"],"mappings":"AAAA;;;;AAEA,MAAMA,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAC5B,oDAAoD,CACrD,AAAsB,AAAC;AAOjB,MAAMC,iCAAiC;IAC5CC,UAAU,GAAG;QACX,OAAO,CAACC,GAAkB,EAAEC,GAAmB,EAAEC,IAAS,GAAK;YAC7D,IAAI,CAACF,CAAAA,GAAG,QAAK,GAARA,KAAAA,CAAQ,GAARA,GAAG,CAAEG,GAAG,CAAA,IAAKH,GAAG,CAACI,MAAM,KAAK,KAAK,IAAIJ,GAAG,CAACI,MAAM,KAAK,MAAM,AAAC,EAAE;gBAChE,OAAOF,IAAI,EAAE,CAAC;aACf;YAED,IAAIF,GAAG,CAACG,GAAG,CAACE,KAAK,2BAA2B,EAAE;gBAC5CT,KAAK,CAAC,kDAAkD,EAAEI,GAAG,CAACG,GAAG,CAAC,CAAC;gBACnE,2CAA2C;gBAC3CF,GAAG,CAACK,SAAS,CAAC,GAAG,EAAE;oBACjB,cAAc,EAAE,kBAAkB;iBACnC,CAAC,CAAC;gBACHL,GAAG,CAACM,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;aACR;YAEDL,IAAI,EAAE,CAAC;SACR,CAAC;KACH;CACF;QApBYJ,iCAAiC,GAAjCA,iCAAiC"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/ContextModuleSourceMapsMiddleware.ts"],"sourcesContent":["import { ServerRequest, ServerResponse } from './server.types';\n\nconst debug = require('debug')(\n 'expo:start:server:middleware:metro-context-modules'\n) as typeof console.log;\n\n/**\n * Source maps for `require.context` modules aren't supported in the Metro dev server\n * we should intercept the request and return a noop response to prevent Chrome/Metro\n * from erroring out.\n */\nexport class ContextModuleSourceMapsMiddleware {\n getHandler() {\n return (req: ServerRequest, res: ServerResponse, next: any) => {\n if (!req?.url || (req.method !== 'GET' && req.method !== 'HEAD')) {\n return next();\n }\n\n if (req.url.match(/%3Fctx=[\\d\\w\\W]+\\.map\\?/)) {\n debug('Skipping sourcemap request for context module %s', req.url);\n // Return a noop response for the sourcemap\n res.writeHead(200, {\n 'Content-Type': 'application/json',\n });\n res.end('{}');\n return;\n }\n\n next();\n };\n }\n}\n"],"names":["ContextModuleSourceMapsMiddleware","debug","require","getHandler","req","res","next","url","method","match","writeHead","end"],"mappings":"AAAA;;;;+BAWaA,mCAAiC;;aAAjCA,iCAAiC;;AAT9C,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAC5B,oDAAoD,CACrD,AAAsB,AAAC;AAOjB,MAAMF,iCAAiC;IAC5CG,UAAU,GAAG;QACX,OAAO,CAACC,GAAkB,EAAEC,GAAmB,EAAEC,IAAS,GAAK;YAC7D,IAAI,CAACF,CAAAA,GAAG,QAAK,GAARA,KAAAA,CAAQ,GAARA,GAAG,CAAEG,GAAG,CAAA,IAAKH,GAAG,CAACI,MAAM,KAAK,KAAK,IAAIJ,GAAG,CAACI,MAAM,KAAK,MAAM,AAAC,EAAE;gBAChE,OAAOF,IAAI,EAAE,CAAC;YAChB,CAAC;YAED,IAAIF,GAAG,CAACG,GAAG,CAACE,KAAK,2BAA2B,EAAE;gBAC5CR,KAAK,CAAC,kDAAkD,EAAEG,GAAG,CAACG,GAAG,CAAC,CAAC;gBACnE,2CAA2C;gBAC3CF,GAAG,CAACK,SAAS,CAAC,GAAG,EAAE;oBACjB,cAAc,EAAE,kBAAkB;iBACnC,CAAC,CAAC;gBACHL,GAAG,CAACM,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAEDL,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ;CACD"}
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.createCorsMiddleware = createCorsMiddleware;
5
+ Object.defineProperty(exports, "createCorsMiddleware", {
6
+ enumerable: true,
7
+ get: ()=>createCorsMiddleware
8
+ });
6
9
  const DEFAULT_ALLOWED_CORS_HOSTNAMES = [
7
10
  "localhost",
8
11
  "chrome-devtools-frontend.appspot.com",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/CorsMiddleware.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config';\n\nimport type { ServerRequest, ServerResponse } from './server.types';\n\nconst DEFAULT_ALLOWED_CORS_HOSTNAMES = [\n 'localhost',\n 'chrome-devtools-frontend.appspot.com', // Support remote Chrome DevTools frontend\n 'devtools', // Support local Chrome DevTools `devtools://devtools`\n];\n\nexport function createCorsMiddleware(exp: ExpoConfig) {\n const allowedHostnames = [...DEFAULT_ALLOWED_CORS_HOSTNAMES];\n // Support for expo-router API routes\n if (exp.extra?.router?.headOrigin) {\n allowedHostnames.push(new URL(exp.extra.router.headOrigin).hostname);\n }\n if (exp.extra?.router?.origin) {\n allowedHostnames.push(new URL(exp.extra.router.origin).hostname);\n }\n\n return (req: ServerRequest, res: ServerResponse, next: (err?: Error) => void) => {\n if (typeof req.headers.origin === 'string') {\n const { hostname } = new URL(req.headers.origin);\n if (!allowedHostnames.includes(hostname)) {\n next(\n new Error(\n `Unauthorized request from ${req.headers.origin}. ` +\n 'This may happen because of a conflicting browser extension to intercept HTTP requests. ' +\n 'Please try again without browser extensions or using incognito mode.'\n )\n );\n return;\n }\n\n res.setHeader('Access-Control-Allow-Origin', req.headers.origin);\n maybePreventMetroResetCorsHeader(req, res);\n }\n\n // Block MIME-type sniffing.\n res.setHeader('X-Content-Type-Options', 'nosniff');\n\n next();\n };\n}\n\n// When accessing source maps,\n// metro will overwrite the `Access-Control-Allow-Origin` header with hardcoded `devtools://devtools` value.\n// https://github.com/facebook/metro/blob/a7f8955e6d2424b0d5f73d4bcdaf22560e1d5f27/packages/metro/src/Server.js#L540\n// This is a workaround to prevent this behavior.\nfunction maybePreventMetroResetCorsHeader(req: ServerRequest, res: ServerResponse) {\n const pathname = req.url ? new URL(req.url, `http://${req.headers.host}`).pathname : '';\n if (pathname.endsWith('.map')) {\n const setHeader = res.setHeader.bind(res);\n res.setHeader = (key, ...args) => {\n if (key !== 'Access-Control-Allow-Origin') {\n setHeader(key, ...args);\n }\n return res;\n };\n }\n}\n"],"names":["createCorsMiddleware","DEFAULT_ALLOWED_CORS_HOSTNAMES","exp","allowedHostnames","extra","router","headOrigin","push","URL","hostname","origin","req","res","next","headers","includes","Error","setHeader","maybePreventMetroResetCorsHeader","pathname","url","host","endsWith","bind","key","args"],"mappings":"AAAA;;;;QAUgBA,oBAAoB,GAApBA,oBAAoB;AANpC,MAAMC,8BAA8B,GAAG;IACrC,WAAW;IACX,sCAAsC;IACtC,UAAU;CACX,AAAC;AAEK,SAASD,oBAAoB,CAACE,GAAe,EAAE;QAGhDA,GAAS,QAGTA,IAAS;IALb,MAAMC,gBAAgB,GAAG;WAAIF,8BAA8B;KAAC,AAAC;IAC7D,qCAAqC;IACrC,IAAIC,CAAAA,GAAS,GAATA,GAAG,CAACE,KAAK,SAAQ,GAAjBF,KAAAA,CAAiB,GAAjBA,QAAAA,GAAS,CAAEG,MAAM,SAAA,GAAjBH,KAAAA,CAAiB,QAAEI,UAAU,AAAZ,EAAc;QACjCH,gBAAgB,CAACI,IAAI,CAAC,IAAIC,GAAG,CAACN,GAAG,CAACE,KAAK,CAACC,MAAM,CAACC,UAAU,CAAC,CAACG,QAAQ,CAAC,CAAC;KACtE;IACD,IAAIP,CAAAA,IAAS,GAATA,GAAG,CAACE,KAAK,SAAQ,GAAjBF,KAAAA,CAAiB,GAAjBA,QAAAA,IAAS,CAAEG,MAAM,SAAA,GAAjBH,KAAAA,CAAiB,QAAEQ,MAAM,AAAR,EAAU;QAC7BP,gBAAgB,CAACI,IAAI,CAAC,IAAIC,GAAG,CAACN,GAAG,CAACE,KAAK,CAACC,MAAM,CAACK,MAAM,CAAC,CAACD,QAAQ,CAAC,CAAC;KAClE;IAED,OAAO,CAACE,GAAkB,EAAEC,GAAmB,EAAEC,IAA2B,GAAK;QAC/E,IAAI,OAAOF,GAAG,CAACG,OAAO,CAACJ,MAAM,KAAK,QAAQ,EAAE;YAC1C,MAAM,EAAED,QAAQ,CAAA,EAAE,GAAG,IAAID,GAAG,CAACG,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,AAAC;YACjD,IAAI,CAACP,gBAAgB,CAACY,QAAQ,CAACN,QAAQ,CAAC,EAAE;gBACxCI,IAAI,CACF,IAAIG,KAAK,CACP,CAAC,0BAA0B,EAAEL,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,EAAE,CAAC,GACjD,yFAAyF,GACzF,sEAAsE,CACzE,CACF,CAAC;gBACF,OAAO;aACR;YAEDE,GAAG,CAACK,SAAS,CAAC,6BAA6B,EAAEN,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,CAAC;YACjEQ,gCAAgC,CAACP,GAAG,EAAEC,GAAG,CAAC,CAAC;SAC5C;QAED,4BAA4B;QAC5BA,GAAG,CAACK,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAEnDJ,IAAI,EAAE,CAAC;KACR,CAAC;CACH;AAED,8BAA8B;AAC9B,4GAA4G;AAC5G,oHAAoH;AACpH,iDAAiD;AACjD,SAASK,gCAAgC,CAACP,GAAkB,EAAEC,GAAmB,EAAE;IACjF,MAAMO,QAAQ,GAAGR,GAAG,CAACS,GAAG,GAAG,IAAIZ,GAAG,CAACG,GAAG,CAACS,GAAG,EAAE,CAAC,OAAO,EAAET,GAAG,CAACG,OAAO,CAACO,IAAI,CAAC,CAAC,CAAC,CAACF,QAAQ,GAAG,EAAE,AAAC;IACxF,IAAIA,QAAQ,CAACG,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAML,SAAS,GAAGL,GAAG,CAACK,SAAS,CAACM,IAAI,CAACX,GAAG,CAAC,AAAC;QAC1CA,GAAG,CAACK,SAAS,GAAG,CAACO,GAAG,EAAKC,GAAAA,IAAI,GAAK;YAChC,IAAID,GAAG,KAAK,6BAA6B,EAAE;gBACzCP,SAAS,CAACO,GAAG,KAAKC,IAAI,CAAC,CAAC;aACzB;YACD,OAAOb,GAAG,CAAC;SACZ,CAAC;KACH;CACF"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/CorsMiddleware.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config';\n\nimport type { ServerRequest, ServerResponse } from './server.types';\n\nconst DEFAULT_ALLOWED_CORS_HOSTNAMES = [\n 'localhost',\n 'chrome-devtools-frontend.appspot.com', // Support remote Chrome DevTools frontend\n 'devtools', // Support local Chrome DevTools `devtools://devtools`\n];\n\nexport function createCorsMiddleware(exp: ExpoConfig) {\n const allowedHostnames = [...DEFAULT_ALLOWED_CORS_HOSTNAMES];\n // Support for expo-router API routes\n if (exp.extra?.router?.headOrigin) {\n allowedHostnames.push(new URL(exp.extra.router.headOrigin).hostname);\n }\n if (exp.extra?.router?.origin) {\n allowedHostnames.push(new URL(exp.extra.router.origin).hostname);\n }\n\n return (req: ServerRequest, res: ServerResponse, next: (err?: Error) => void) => {\n if (typeof req.headers.origin === 'string') {\n const { hostname } = new URL(req.headers.origin);\n if (!allowedHostnames.includes(hostname)) {\n next(\n new Error(\n `Unauthorized request from ${req.headers.origin}. ` +\n 'This may happen because of a conflicting browser extension to intercept HTTP requests. ' +\n 'Please try again without browser extensions or using incognito mode.'\n )\n );\n return;\n }\n\n res.setHeader('Access-Control-Allow-Origin', req.headers.origin);\n maybePreventMetroResetCorsHeader(req, res);\n }\n\n // Block MIME-type sniffing.\n res.setHeader('X-Content-Type-Options', 'nosniff');\n\n next();\n };\n}\n\n// When accessing source maps,\n// metro will overwrite the `Access-Control-Allow-Origin` header with hardcoded `devtools://devtools` value.\n// https://github.com/facebook/metro/blob/a7f8955e6d2424b0d5f73d4bcdaf22560e1d5f27/packages/metro/src/Server.js#L540\n// This is a workaround to prevent this behavior.\nfunction maybePreventMetroResetCorsHeader(req: ServerRequest, res: ServerResponse) {\n const pathname = req.url ? new URL(req.url, `http://${req.headers.host}`).pathname : '';\n if (pathname.endsWith('.map')) {\n const setHeader = res.setHeader.bind(res);\n res.setHeader = (key, ...args) => {\n if (key !== 'Access-Control-Allow-Origin') {\n setHeader(key, ...args);\n }\n return res;\n };\n }\n}\n"],"names":["createCorsMiddleware","DEFAULT_ALLOWED_CORS_HOSTNAMES","exp","allowedHostnames","extra","router","headOrigin","push","URL","hostname","origin","req","res","next","headers","includes","Error","setHeader","maybePreventMetroResetCorsHeader","pathname","url","host","endsWith","bind","key","args"],"mappings":"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"}
@@ -1,22 +1,31 @@
1
- "use strict";
1
+ /**
2
+ * Copyright © 2022 650 Industries.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */ "use strict";
2
7
  Object.defineProperty(exports, "__esModule", {
3
8
  value: true
4
9
  });
10
+ Object.defineProperty(exports, "CreateFileMiddleware", {
11
+ enumerable: true,
12
+ get: ()=>CreateFileMiddleware
13
+ });
5
14
  function _fs() {
6
- const data = _interopRequireDefault(require("fs"));
15
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
7
16
  _fs = function() {
8
17
  return data;
9
18
  };
10
19
  return data;
11
20
  }
12
21
  function _path() {
13
- const data = _interopRequireDefault(require("path"));
22
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
14
23
  _path = function() {
15
24
  return data;
16
25
  };
17
26
  return data;
18
27
  }
19
- var _expoMiddleware = require("./ExpoMiddleware");
28
+ const _expoMiddleware = require("./ExpoMiddleware");
20
29
  function _interopRequireDefault(obj) {
21
30
  return obj && obj.__esModule ? obj : {
22
31
  default: obj
@@ -113,6 +122,5 @@ class CreateFileMiddleware extends _expoMiddleware.ExpoMiddleware {
113
122
  res.end("OK");
114
123
  }
115
124
  }
116
- exports.CreateFileMiddleware = CreateFileMiddleware;
117
125
 
118
126
  //# sourceMappingURL=CreateFileMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/CreateFileMiddleware.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 fs from 'fs';\nimport path from 'path';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nconst debug = require('debug')('expo:start:server:middleware:createFile') as typeof console.log;\n\nexport type TouchFileBody = {\n /** @deprecated */\n path: string;\n absolutePath?: string;\n contents: string;\n};\n\n/**\n * Middleware for creating a file given a `POST` request with\n * `{ contents: string, path: string }` in the body.\n */\nexport class CreateFileMiddleware extends ExpoMiddleware {\n constructor(protected projectRoot: string) {\n super(projectRoot, ['/_expo/touch']);\n }\n\n protected resolvePath(inputPath: string): string {\n return this.resolveExtension(path.join(this.projectRoot, inputPath));\n }\n\n protected resolveExtension(inputPath: string): string {\n let resolvedPath = inputPath;\n const extension = path.extname(inputPath);\n if (extension === '.js') {\n // Automatically convert JS files to TS files when added to a project\n // with TypeScript.\n const tsconfigPath = path.join(this.projectRoot, 'tsconfig.json');\n if (fs.existsSync(tsconfigPath)) {\n resolvedPath = resolvedPath.replace(/\\.js$/, '.tsx');\n }\n }\n\n return resolvedPath;\n }\n\n protected async parseRawBody(req: ServerRequest): Promise<TouchFileBody> {\n const rawBody = await new Promise<string>((resolve, reject) => {\n let body = '';\n req.on('data', (chunk) => {\n body += chunk.toString();\n });\n req.on('end', () => {\n resolve(body);\n });\n req.on('error', (err) => {\n reject(err);\n });\n });\n\n const properties = JSON.parse(rawBody);\n this.assertTouchFileBody(properties);\n\n return properties;\n }\n\n private assertTouchFileBody(body: any): asserts body is TouchFileBody {\n if (typeof body !== 'object' || body == null) {\n throw new Error('Expected object');\n }\n if (typeof body.path !== 'string') {\n throw new Error('Expected \"path\" in body to be string');\n }\n if (typeof body.contents !== 'string') {\n throw new Error('Expected \"contents\" in body to be string');\n }\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n if (req.method !== 'POST') {\n res.statusCode = 405;\n res.end('Method Not Allowed');\n return;\n }\n\n let properties: TouchFileBody;\n\n try {\n properties = await this.parseRawBody(req);\n } catch (e) {\n debug('Error parsing request body', e);\n res.statusCode = 400;\n res.end('Bad Request');\n return;\n }\n\n debug(`Requested: %O`, properties);\n\n const resolvedPath = properties.absolutePath\n ? this.resolveExtension(path.resolve(properties.absolutePath))\n : this.resolvePath(properties.path);\n\n if (fs.existsSync(resolvedPath)) {\n res.statusCode = 409;\n res.end('File already exists.');\n return;\n }\n\n debug(`Resolved path:`, resolvedPath);\n\n try {\n await fs.promises.mkdir(path.dirname(resolvedPath), { recursive: true });\n await fs.promises.writeFile(resolvedPath, properties.contents, 'utf8');\n } catch (e) {\n debug('Error writing file', e);\n res.statusCode = 500;\n res.end('Error writing file.');\n return;\n }\n\n debug(`File created`);\n res.statusCode = 200;\n res.end('OK');\n }\n}\n"],"names":["debug","require","CreateFileMiddleware","ExpoMiddleware","constructor","projectRoot","resolvePath","inputPath","resolveExtension","path","join","resolvedPath","extension","extname","tsconfigPath","fs","existsSync","replace","parseRawBody","req","rawBody","Promise","resolve","reject","body","on","chunk","toString","err","properties","JSON","parse","assertTouchFileBody","Error","contents","handleRequestAsync","res","method","statusCode","end","e","absolutePath","promises","mkdir","dirname","recursive","writeFile"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/CreateFileMiddleware.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 fs from 'fs';\nimport path from 'path';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nconst debug = require('debug')('expo:start:server:middleware:createFile') as typeof console.log;\n\nexport type TouchFileBody = {\n /** @deprecated */\n path: string;\n absolutePath?: string;\n contents: string;\n};\n\n/**\n * Middleware for creating a file given a `POST` request with\n * `{ contents: string, path: string }` in the body.\n */\nexport class CreateFileMiddleware extends ExpoMiddleware {\n constructor(protected projectRoot: string) {\n super(projectRoot, ['/_expo/touch']);\n }\n\n protected resolvePath(inputPath: string): string {\n return this.resolveExtension(path.join(this.projectRoot, inputPath));\n }\n\n protected resolveExtension(inputPath: string): string {\n let resolvedPath = inputPath;\n const extension = path.extname(inputPath);\n if (extension === '.js') {\n // Automatically convert JS files to TS files when added to a project\n // with TypeScript.\n const tsconfigPath = path.join(this.projectRoot, 'tsconfig.json');\n if (fs.existsSync(tsconfigPath)) {\n resolvedPath = resolvedPath.replace(/\\.js$/, '.tsx');\n }\n }\n\n return resolvedPath;\n }\n\n protected async parseRawBody(req: ServerRequest): Promise<TouchFileBody> {\n const rawBody = await new Promise<string>((resolve, reject) => {\n let body = '';\n req.on('data', (chunk) => {\n body += chunk.toString();\n });\n req.on('end', () => {\n resolve(body);\n });\n req.on('error', (err) => {\n reject(err);\n });\n });\n\n const properties = JSON.parse(rawBody);\n this.assertTouchFileBody(properties);\n\n return properties;\n }\n\n private assertTouchFileBody(body: any): asserts body is TouchFileBody {\n if (typeof body !== 'object' || body == null) {\n throw new Error('Expected object');\n }\n if (typeof body.path !== 'string') {\n throw new Error('Expected \"path\" in body to be string');\n }\n if (typeof body.contents !== 'string') {\n throw new Error('Expected \"contents\" in body to be string');\n }\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n if (req.method !== 'POST') {\n res.statusCode = 405;\n res.end('Method Not Allowed');\n return;\n }\n\n let properties: TouchFileBody;\n\n try {\n properties = await this.parseRawBody(req);\n } catch (e) {\n debug('Error parsing request body', e);\n res.statusCode = 400;\n res.end('Bad Request');\n return;\n }\n\n debug(`Requested: %O`, properties);\n\n const resolvedPath = properties.absolutePath\n ? this.resolveExtension(path.resolve(properties.absolutePath))\n : this.resolvePath(properties.path);\n\n if (fs.existsSync(resolvedPath)) {\n res.statusCode = 409;\n res.end('File already exists.');\n return;\n }\n\n debug(`Resolved path:`, resolvedPath);\n\n try {\n await fs.promises.mkdir(path.dirname(resolvedPath), { recursive: true });\n await fs.promises.writeFile(resolvedPath, properties.contents, 'utf8');\n } catch (e) {\n debug('Error writing file', e);\n res.statusCode = 500;\n res.end('Error writing file.');\n return;\n }\n\n debug(`File created`);\n res.statusCode = 200;\n res.end('OK');\n }\n}\n"],"names":["CreateFileMiddleware","debug","require","ExpoMiddleware","constructor","projectRoot","resolvePath","inputPath","resolveExtension","path","join","resolvedPath","extension","extname","tsconfigPath","fs","existsSync","replace","parseRawBody","req","rawBody","Promise","resolve","reject","body","on","chunk","toString","err","properties","JSON","parse","assertTouchFileBody","Error","contents","handleRequestAsync","res","method","statusCode","end","e","absolutePath","promises","mkdir","dirname","recursive","writeFile"],"mappings":"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"}
@@ -2,28 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "DevToolsPluginEndpoint", {
6
- enumerable: true,
7
- get: function() {
8
- return _devToolsPluginManager.DevToolsPluginEndpoint;
9
- }
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ DevToolsPluginEndpoint: ()=>_devToolsPluginManager.DevToolsPluginEndpoint,
13
+ DevToolsPluginMiddleware: ()=>DevToolsPluginMiddleware
10
14
  });
11
15
  function _assert() {
12
- const data = _interopRequireDefault(require("assert"));
16
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
13
17
  _assert = function() {
14
18
  return data;
15
19
  };
16
20
  return data;
17
21
  }
18
22
  function _send() {
19
- const data = _interopRequireDefault(require("send"));
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("send"));
20
24
  _send = function() {
21
25
  return data;
22
26
  };
23
27
  return data;
24
28
  }
25
- var _expoMiddleware = require("./ExpoMiddleware");
26
- var _devToolsPluginManager = require("../DevToolsPluginManager");
29
+ const _expoMiddleware = require("./ExpoMiddleware");
30
+ const _devToolsPluginManager = require("../DevToolsPluginManager");
27
31
  function _interopRequireDefault(obj) {
28
32
  return obj && obj.__esModule ? obj : {
29
33
  default: obj
@@ -44,7 +48,7 @@ class DevToolsPluginMiddleware extends _expoMiddleware.ExpoMiddleware {
44
48
  return true;
45
49
  }
46
50
  async handleRequestAsync(req, res) {
47
- _assert().default(req.headers.host, "Request headers must include host");
51
+ (0, _assert().default)(req.headers.host, "Request headers must include host");
48
52
  var _url;
49
53
  const { pathname } = new URL((_url = req.url) != null ? _url : "/", `http://${req.headers.host}`);
50
54
  const pluginName = this.queryPossiblePluginName(pathname.substring(_devToolsPluginManager.DevToolsPluginEndpoint.length + 1));
@@ -55,7 +59,7 @@ class DevToolsPluginMiddleware extends _expoMiddleware.ExpoMiddleware {
55
59
  return;
56
60
  }
57
61
  const pathInPluginRoot = pathname.substring(_devToolsPluginManager.DevToolsPluginEndpoint.length + pluginName.length + 1) || "/";
58
- _send().default(req, pathInPluginRoot, {
62
+ (0, _send().default)(req, pathInPluginRoot, {
59
63
  root: webpageRoot
60
64
  }).pipe(res);
61
65
  }
@@ -68,6 +72,5 @@ class DevToolsPluginMiddleware extends _expoMiddleware.ExpoMiddleware {
68
72
  return parts[0];
69
73
  }
70
74
  }
71
- exports.DevToolsPluginMiddleware = DevToolsPluginMiddleware;
72
75
 
73
76
  //# sourceMappingURL=DevToolsPluginMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/DevToolsPluginMiddleware.ts"],"sourcesContent":["import assert from 'assert';\nimport send from 'send';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\nimport DevToolsPluginManager, { DevToolsPluginEndpoint } from '../DevToolsPluginManager';\n\nexport { DevToolsPluginEndpoint };\n\nexport class DevToolsPluginMiddleware extends ExpoMiddleware {\n constructor(\n projectRoot: string,\n private readonly pluginManager: DevToolsPluginManager\n ) {\n super(projectRoot, [DevToolsPluginEndpoint]);\n }\n\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url?.startsWith(DevToolsPluginEndpoint)) {\n return false;\n }\n return true;\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n assert(req.headers.host, 'Request headers must include host');\n const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);\n const pluginName = this.queryPossiblePluginName(\n pathname.substring(DevToolsPluginEndpoint.length + 1)\n );\n const webpageRoot = await this.pluginManager.queryPluginWebpageRootAsync(pluginName);\n if (!webpageRoot) {\n res.statusCode = 404;\n res.end();\n return;\n }\n\n const pathInPluginRoot =\n pathname.substring(DevToolsPluginEndpoint.length + pluginName.length + 1) || '/';\n send(req, pathInPluginRoot, { root: webpageRoot }).pipe(res);\n }\n\n private queryPossiblePluginName(pathname: string): string {\n const parts = pathname.split('/');\n if (parts[0][0] === '@' && parts.length > 1) {\n // Scoped package name\n return `${parts[0]}/${parts[1]}`;\n }\n return parts[0];\n }\n}\n"],"names":["DevToolsPluginEndpoint","DevToolsPluginMiddleware","ExpoMiddleware","constructor","projectRoot","pluginManager","shouldHandleRequest","req","url","startsWith","handleRequestAsync","res","assert","headers","host","pathname","URL","pluginName","queryPossiblePluginName","substring","length","webpageRoot","queryPluginWebpageRootAsync","statusCode","end","pathInPluginRoot","send","root","pipe","parts","split"],"mappings":"AAAA;;;;+BAOSA,wBAAsB;;;eAAtBA,sBAAsB,uBAAA;;;SAPZ,OAAQ;gDAAR,QAAQ;IAAR,OAAQ;;;;;SACV,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;AAEQ,IAAA,eAAkB,WAAlB,kBAAkB,CAAA;AAEa,IAAA,sBAA0B,WAA1B,0BAA0B,CAAA;;;;;;AAIjF,MAAMC,wBAAwB,SAASC,eAAc,eAAA;IAC1DC,YACEC,WAAmB,EACFC,aAAoC,CACrD;QACA,KAAK,CAACD,WAAW,EAAE;YAACJ,sBAAsB,uBAAA;SAAC,CAAC,CAAC;aAF5BK,aAAoC,GAApCA,aAAoC;KAGtD;IAED,AAASC,mBAAmB,CAACC,GAAkB,EAAW;YACnDA,GAAO;QAAZ,IAAI,EAACA,CAAAA,GAAO,GAAPA,GAAG,CAACC,GAAG,SAAY,GAAnBD,KAAAA,CAAmB,GAAnBA,GAAO,CAAEE,UAAU,CAACT,sBAAsB,uBAAA,CAAC,CAAA,EAAE;YAChD,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;KACb;IAED,MAAMU,kBAAkB,CAACH,GAAkB,EAAEI,GAAmB,EAAiB;QAC/EC,OAAM,UAAA,CAACL,GAAG,CAACM,OAAO,CAACC,IAAI,EAAE,mCAAmC,CAAC,CAAC;YACjCP,IAAO;QAApC,MAAM,EAAEQ,QAAQ,CAAA,EAAE,GAAG,IAAIC,GAAG,CAACT,CAAAA,IAAO,GAAPA,GAAG,CAACC,GAAG,YAAPD,IAAO,GAAI,GAAG,EAAE,CAAC,OAAO,EAAEA,GAAG,CAACM,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,AAAC;QAC3E,MAAMG,UAAU,GAAG,IAAI,CAACC,uBAAuB,CAC7CH,QAAQ,CAACI,SAAS,CAACnB,sBAAsB,uBAAA,CAACoB,MAAM,GAAG,CAAC,CAAC,CACtD,AAAC;QACF,MAAMC,WAAW,GAAG,MAAM,IAAI,CAAChB,aAAa,CAACiB,2BAA2B,CAACL,UAAU,CAAC,AAAC;QACrF,IAAI,CAACI,WAAW,EAAE;YAChBV,GAAG,CAACY,UAAU,GAAG,GAAG,CAAC;YACrBZ,GAAG,CAACa,GAAG,EAAE,CAAC;YACV,OAAO;SACR;QAED,MAAMC,gBAAgB,GACpBV,QAAQ,CAACI,SAAS,CAACnB,sBAAsB,uBAAA,CAACoB,MAAM,GAAGH,UAAU,CAACG,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,AAAC;QACnFM,KAAI,UAAA,CAACnB,GAAG,EAAEkB,gBAAgB,EAAE;YAAEE,IAAI,EAAEN,WAAW;SAAE,CAAC,CAACO,IAAI,CAACjB,GAAG,CAAC,CAAC;KAC9D;IAED,AAAQO,uBAAuB,CAACH,QAAgB,EAAU;QACxD,MAAMc,KAAK,GAAGd,QAAQ,CAACe,KAAK,CAAC,GAAG,CAAC,AAAC;QAClC,IAAID,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,KAAK,CAACT,MAAM,GAAG,CAAC,EAAE;YAC3C,sBAAsB;YACtB,OAAO,CAAC,EAAES,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,OAAOA,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB;CACF;QAzCY5B,wBAAwB,GAAxBA,wBAAwB"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/DevToolsPluginMiddleware.ts"],"sourcesContent":["import assert from 'assert';\nimport send from 'send';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\nimport DevToolsPluginManager, { DevToolsPluginEndpoint } from '../DevToolsPluginManager';\n\nexport { DevToolsPluginEndpoint };\n\nexport class DevToolsPluginMiddleware extends ExpoMiddleware {\n constructor(\n projectRoot: string,\n private readonly pluginManager: DevToolsPluginManager\n ) {\n super(projectRoot, [DevToolsPluginEndpoint]);\n }\n\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url?.startsWith(DevToolsPluginEndpoint)) {\n return false;\n }\n return true;\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n assert(req.headers.host, 'Request headers must include host');\n const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);\n const pluginName = this.queryPossiblePluginName(\n pathname.substring(DevToolsPluginEndpoint.length + 1)\n );\n const webpageRoot = await this.pluginManager.queryPluginWebpageRootAsync(pluginName);\n if (!webpageRoot) {\n res.statusCode = 404;\n res.end();\n return;\n }\n\n const pathInPluginRoot =\n pathname.substring(DevToolsPluginEndpoint.length + pluginName.length + 1) || '/';\n send(req, pathInPluginRoot, { root: webpageRoot }).pipe(res);\n }\n\n private queryPossiblePluginName(pathname: string): string {\n const parts = pathname.split('/');\n if (parts[0][0] === '@' && parts.length > 1) {\n // Scoped package name\n return `${parts[0]}/${parts[1]}`;\n }\n return parts[0];\n }\n}\n"],"names":["DevToolsPluginEndpoint","DevToolsPluginMiddleware","ExpoMiddleware","constructor","projectRoot","pluginManager","shouldHandleRequest","req","url","startsWith","handleRequestAsync","res","assert","headers","host","pathname","URL","pluginName","queryPossiblePluginName","substring","length","webpageRoot","queryPluginWebpageRootAsync","statusCode","end","pathInPluginRoot","send","root","pipe","parts","split"],"mappings":"AAAA;;;;;;;;;;;IAOSA,sBAAsB,MAAtBA,sBAAsB,uBAAA;IAElBC,wBAAwB,MAAxBA,wBAAwB;;;8DATlB,QAAQ;;;;;;;8DACV,MAAM;;;;;;gCAEQ,kBAAkB;uCAEa,0BAA0B;;;;;;AAIjF,MAAMA,wBAAwB,SAASC,eAAc,eAAA;IAC1DC,YACEC,WAAmB,EACFC,aAAoC,CACrD;QACA,KAAK,CAACD,WAAW,EAAE;YAACJ,sBAAsB,uBAAA;SAAC,CAAC,CAAC;QAF5BK,qBAAAA,aAAoC,CAAA;IAGvD;IAESC,mBAAmB,CAACC,GAAkB,EAAW;YACnDA,GAAO;QAAZ,IAAI,EAACA,CAAAA,GAAO,GAAPA,GAAG,CAACC,GAAG,SAAY,GAAnBD,KAAAA,CAAmB,GAAnBA,GAAO,CAAEE,UAAU,CAACT,sBAAsB,uBAAA,CAAC,CAAA,EAAE;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd;UAEMU,kBAAkB,CAACH,GAAkB,EAAEI,GAAmB,EAAiB;QAC/EC,IAAAA,OAAM,EAAA,QAAA,EAACL,GAAG,CAACM,OAAO,CAACC,IAAI,EAAE,mCAAmC,CAAC,CAAC;YACjCP,IAAO;QAApC,MAAM,EAAEQ,QAAQ,CAAA,EAAE,GAAG,IAAIC,GAAG,CAACT,CAAAA,IAAO,GAAPA,GAAG,CAACC,GAAG,YAAPD,IAAO,GAAI,GAAG,EAAE,CAAC,OAAO,EAAEA,GAAG,CAACM,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,AAAC;QAC3E,MAAMG,UAAU,GAAG,IAAI,CAACC,uBAAuB,CAC7CH,QAAQ,CAACI,SAAS,CAACnB,sBAAsB,uBAAA,CAACoB,MAAM,GAAG,CAAC,CAAC,CACtD,AAAC;QACF,MAAMC,WAAW,GAAG,MAAM,IAAI,CAAChB,aAAa,CAACiB,2BAA2B,CAACL,UAAU,CAAC,AAAC;QACrF,IAAI,CAACI,WAAW,EAAE;YAChBV,GAAG,CAACY,UAAU,GAAG,GAAG,CAAC;YACrBZ,GAAG,CAACa,GAAG,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAMC,gBAAgB,GACpBV,QAAQ,CAACI,SAAS,CAACnB,sBAAsB,uBAAA,CAACoB,MAAM,GAAGH,UAAU,CAACG,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,AAAC;QACnFM,IAAAA,KAAI,EAAA,QAAA,EAACnB,GAAG,EAAEkB,gBAAgB,EAAE;YAAEE,IAAI,EAAEN,WAAW;SAAE,CAAC,CAACO,IAAI,CAACjB,GAAG,CAAC,CAAC;IAC/D;IAEQO,uBAAuB,CAACH,QAAgB,EAAU;QACxD,MAAMc,KAAK,GAAGd,QAAQ,CAACe,KAAK,CAAC,GAAG,CAAC,AAAC;QAClC,IAAID,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,KAAK,CAACT,MAAM,GAAG,CAAC,EAAE;YAC3C,sBAAsB;YACtB,OAAO,CAAC,EAAES,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAOA,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB;CACD"}