@vxrn/vite-plugin-metro 2.0.0-beta.33.1 → 2.0.0-beta.46.1

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 (290) hide show
  1. package/dist/cjs/babel-plugins/import-meta-env-plugin.cjs +84 -102
  2. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.cjs +108 -0
  3. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +90 -107
  4. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
  5. package/dist/cjs/env/platformEnv.cjs +55 -57
  6. package/dist/cjs/env/platformEnv.native.cjs +93 -0
  7. package/dist/cjs/env/platformEnv.native.js +72 -75
  8. package/dist/cjs/env/platformEnv.native.js.map +1 -1
  9. package/dist/cjs/index.cjs +22 -24
  10. package/dist/cjs/index.native.cjs +41 -0
  11. package/dist/cjs/index.native.js +22 -23
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +48 -51
  14. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +101 -0
  15. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +88 -94
  16. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  17. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +249 -256
  18. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +295 -0
  19. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +260 -266
  20. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  21. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +38 -44
  22. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.cjs +53 -0
  23. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +39 -44
  24. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
  25. package/dist/cjs/metro-config/types.cjs +9 -11
  26. package/dist/cjs/metro-config/types.native.cjs +18 -0
  27. package/dist/cjs/metro-config/types.native.js +9 -10
  28. package/dist/cjs/metro-config/types.native.js.map +1 -1
  29. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +44 -56
  30. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.cjs +62 -0
  31. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +45 -63
  32. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
  33. package/dist/cjs/plugins/metroPlugin.cjs +210 -248
  34. package/dist/cjs/plugins/metroPlugin.native.cjs +242 -0
  35. package/dist/cjs/plugins/metroPlugin.native.js +216 -253
  36. package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
  37. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +56 -65
  38. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.cjs +121 -0
  39. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +94 -106
  40. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  41. package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +51 -55
  42. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.cjs +72 -0
  43. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +51 -54
  44. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  45. package/dist/cjs/rn-commands/bundle/buildBundle.cjs +37 -46
  46. package/dist/cjs/rn-commands/bundle/buildBundle.native.cjs +57 -0
  47. package/dist/cjs/rn-commands/bundle/buildBundle.native.js +39 -47
  48. package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +1 -1
  49. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +57 -68
  50. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.cjs +81 -0
  51. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +59 -70
  52. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  53. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +37 -39
  54. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.cjs +70 -0
  55. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +56 -59
  56. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  57. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +20 -29
  58. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.cjs +39 -0
  59. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +20 -28
  60. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  61. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +20 -33
  62. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.cjs +38 -0
  63. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +20 -32
  64. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  65. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +23 -32
  66. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.cjs +38 -0
  67. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +23 -31
  68. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  69. package/dist/cjs/rn-commands/bundle/index.cjs +15 -17
  70. package/dist/cjs/rn-commands/bundle/index.native.cjs +30 -0
  71. package/dist/cjs/rn-commands/bundle/index.native.js +15 -16
  72. package/dist/cjs/rn-commands/bundle/index.native.js.map +1 -1
  73. package/dist/cjs/rn-commands/bundle/saveAssets.cjs +85 -96
  74. package/dist/cjs/rn-commands/bundle/saveAssets.native.cjs +129 -0
  75. package/dist/cjs/rn-commands/bundle/saveAssets.native.js +102 -114
  76. package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +1 -1
  77. package/dist/cjs/rn-commands/bundle/types.cjs +9 -11
  78. package/dist/cjs/rn-commands/bundle/types.native.cjs +18 -0
  79. package/dist/cjs/rn-commands/bundle/types.native.js +9 -10
  80. package/dist/cjs/rn-commands/bundle/types.native.js.map +1 -1
  81. package/dist/cjs/rn-commands/index.cjs +17 -26
  82. package/dist/cjs/rn-commands/index.native.cjs +32 -0
  83. package/dist/cjs/rn-commands/index.native.js +17 -25
  84. package/dist/cjs/rn-commands/index.native.js.map +1 -1
  85. package/dist/cjs/transformer/babel-core.cjs +16 -18
  86. package/dist/cjs/transformer/babel-core.native.cjs +30 -0
  87. package/dist/cjs/transformer/babel-core.native.js +16 -17
  88. package/dist/cjs/transformer/babel-core.native.js.map +1 -1
  89. package/dist/cjs/transformer/babel-transformer.cjs +101 -152
  90. package/dist/cjs/transformer/babel-transformer.native.cjs +131 -0
  91. package/dist/cjs/transformer/babel-transformer.native.js +106 -159
  92. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  93. package/dist/cjs/transformer/loadBabelConfig.cjs +44 -49
  94. package/dist/cjs/transformer/loadBabelConfig.native.cjs +64 -0
  95. package/dist/cjs/transformer/loadBabelConfig.native.js +48 -52
  96. package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
  97. package/dist/cjs/transformer/metroNativeWorker.cjs +1442 -1480
  98. package/dist/cjs/transformer/metroNativeWorker.native.cjs +2536 -0
  99. package/dist/cjs/transformer/metroNativeWorker.native.js +2416 -2552
  100. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  101. package/dist/cjs/transformer/transformSync.cjs +47 -63
  102. package/dist/cjs/transformer/transformSync.native.cjs +74 -0
  103. package/dist/cjs/transformer/transformSync.native.js +49 -64
  104. package/dist/cjs/transformer/transformSync.native.js.map +1 -1
  105. package/dist/cjs/transformer/types.cjs +9 -11
  106. package/dist/cjs/transformer/types.native.cjs +18 -0
  107. package/dist/cjs/transformer/types.native.js +9 -10
  108. package/dist/cjs/transformer/types.native.js.map +1 -1
  109. package/dist/cjs/utils/exit.cjs +141 -139
  110. package/dist/cjs/utils/exit.native.cjs +266 -0
  111. package/dist/cjs/utils/exit.native.js +228 -241
  112. package/dist/cjs/utils/exit.native.js.map +1 -1
  113. package/dist/cjs/utils/getTerminalReporter.cjs +35 -47
  114. package/dist/cjs/utils/getTerminalReporter.native.cjs +57 -0
  115. package/dist/cjs/utils/getTerminalReporter.native.js +38 -49
  116. package/dist/cjs/utils/getTerminalReporter.native.js.map +1 -1
  117. package/dist/cjs/utils/metroCacheManager.cjs +84 -99
  118. package/dist/cjs/utils/metroCacheManager.native.cjs +130 -0
  119. package/dist/cjs/utils/metroCacheManager.native.js +102 -118
  120. package/dist/cjs/utils/metroCacheManager.native.js.map +1 -1
  121. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +24 -28
  122. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.cjs +37 -0
  123. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +24 -27
  124. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
  125. package/dist/cjs/utils/projectImport.cjs +40 -51
  126. package/dist/cjs/utils/projectImport.native.cjs +64 -0
  127. package/dist/cjs/utils/projectImport.native.js +41 -58
  128. package/dist/cjs/utils/projectImport.native.js.map +1 -1
  129. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +72 -86
  130. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
  131. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +78 -92
  132. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
  133. package/dist/esm/env/platformEnv.mjs +40 -39
  134. package/dist/esm/env/platformEnv.mjs.map +1 -1
  135. package/dist/esm/env/platformEnv.native.js +57 -58
  136. package/dist/esm/env/platformEnv.native.js.map +1 -1
  137. package/dist/esm/index.js +3 -3
  138. package/dist/esm/index.mjs +3 -3
  139. package/dist/esm/index.native.js +3 -3
  140. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +35 -33
  141. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
  142. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +75 -77
  143. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  144. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +233 -231
  145. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  146. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +244 -242
  147. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  148. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +26 -26
  149. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
  150. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +27 -27
  151. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
  152. package/dist/esm/metro-config/types.mjs +0 -2
  153. package/dist/esm/metro-config/types.native.js +0 -2
  154. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +32 -38
  155. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
  156. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +33 -46
  157. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
  158. package/dist/esm/plugins/metroPlugin.mjs +195 -222
  159. package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
  160. package/dist/esm/plugins/metroPlugin.native.js +201 -228
  161. package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
  162. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +38 -38
  163. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -1
  164. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +76 -80
  165. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  166. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +38 -37
  167. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -1
  168. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +38 -37
  169. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  170. package/dist/esm/rn-commands/bundle/buildBundle.mjs +25 -28
  171. package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -1
  172. package/dist/esm/rn-commands/bundle/buildBundle.native.js +27 -30
  173. package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -1
  174. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +43 -43
  175. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -1
  176. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +45 -46
  177. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  178. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +24 -21
  179. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -1
  180. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +43 -42
  181. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  182. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +5 -3
  183. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -1
  184. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +5 -3
  185. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  186. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +5 -7
  187. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -1
  188. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +5 -7
  189. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  190. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +11 -14
  191. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -1
  192. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +11 -14
  193. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  194. package/dist/esm/rn-commands/bundle/index.mjs +2 -2
  195. package/dist/esm/rn-commands/bundle/index.native.js +2 -2
  196. package/dist/esm/rn-commands/bundle/saveAssets.mjs +70 -70
  197. package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -1
  198. package/dist/esm/rn-commands/bundle/saveAssets.native.js +87 -89
  199. package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -1
  200. package/dist/esm/rn-commands/bundle/types.mjs +0 -2
  201. package/dist/esm/rn-commands/bundle/types.native.js +0 -2
  202. package/dist/esm/rn-commands/index.mjs +2 -2
  203. package/dist/esm/rn-commands/index.native.js +2 -2
  204. package/dist/esm/transformer/babel-core.mjs +2 -2
  205. package/dist/esm/transformer/babel-core.native.js +2 -2
  206. package/dist/esm/transformer/babel-transformer.mjs +108 -144
  207. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  208. package/dist/esm/transformer/babel-transformer.native.js +114 -155
  209. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  210. package/dist/esm/transformer/loadBabelConfig.mjs +29 -23
  211. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  212. package/dist/esm/transformer/loadBabelConfig.native.js +33 -27
  213. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  214. package/dist/esm/transformer/metroNativeWorker.mjs +1405 -1434
  215. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  216. package/dist/esm/transformer/metroNativeWorker.native.js +2379 -2507
  217. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  218. package/dist/esm/transformer/transformSync.mjs +32 -37
  219. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  220. package/dist/esm/transformer/transformSync.native.js +34 -39
  221. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  222. package/dist/esm/transformer/types.mjs +0 -2
  223. package/dist/esm/transformer/types.native.js +0 -2
  224. package/dist/esm/utils/exit.mjs +123 -112
  225. package/dist/esm/utils/exit.mjs.map +1 -1
  226. package/dist/esm/utils/exit.native.js +210 -215
  227. package/dist/esm/utils/exit.native.js.map +1 -1
  228. package/dist/esm/utils/getTerminalReporter.mjs +20 -21
  229. package/dist/esm/utils/getTerminalReporter.mjs.map +1 -1
  230. package/dist/esm/utils/getTerminalReporter.native.js +23 -24
  231. package/dist/esm/utils/getTerminalReporter.native.js.map +1 -1
  232. package/dist/esm/utils/metroCacheManager.mjs +73 -82
  233. package/dist/esm/utils/metroCacheManager.mjs.map +1 -1
  234. package/dist/esm/utils/metroCacheManager.native.js +91 -102
  235. package/dist/esm/utils/metroCacheManager.native.js.map +1 -1
  236. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +11 -10
  237. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +1 -1
  238. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +11 -10
  239. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
  240. package/dist/esm/utils/projectImport.mjs +23 -25
  241. package/dist/esm/utils/projectImport.mjs.map +1 -1
  242. package/dist/esm/utils/projectImport.native.js +24 -33
  243. package/dist/esm/utils/projectImport.native.js.map +1 -1
  244. package/package.json +17 -18
  245. package/src/metro-config/getMetroConfigFromViteConfig.ts +46 -10
  246. package/src/transformer/loadBabelConfig.ts +2 -0
  247. package/src/transformer/metroNativeWorker.test.ts +267 -35
  248. package/src/transformer/metroNativeWorker.ts +3 -11
  249. package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
  250. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  251. package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -1
  252. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -1
  253. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -1
  254. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -1
  255. package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -1
  256. package/types/transformer/loadBabelConfig.d.ts.map +1 -1
  257. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  258. package/dist/cjs/transformer/metroNativeWorker.test.cjs +0 -897
  259. package/dist/cjs/transformer/metroNativeWorker.test.native.js +0 -1010
  260. package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +0 -1
  261. package/dist/cjs/transformer/transformSync.test.cjs +0 -36
  262. package/dist/cjs/transformer/transformSync.test.native.js +0 -49
  263. package/dist/cjs/transformer/transformSync.test.native.js.map +0 -1
  264. package/dist/esm/index.js.map +0 -1
  265. package/dist/esm/index.mjs.map +0 -1
  266. package/dist/esm/index.native.js.map +0 -1
  267. package/dist/esm/metro-config/types.mjs.map +0 -1
  268. package/dist/esm/metro-config/types.native.js.map +0 -1
  269. package/dist/esm/rn-commands/bundle/index.mjs.map +0 -1
  270. package/dist/esm/rn-commands/bundle/index.native.js.map +0 -1
  271. package/dist/esm/rn-commands/bundle/types.mjs.map +0 -1
  272. package/dist/esm/rn-commands/bundle/types.native.js.map +0 -1
  273. package/dist/esm/rn-commands/index.mjs.map +0 -1
  274. package/dist/esm/rn-commands/index.native.js.map +0 -1
  275. package/dist/esm/transformer/babel-core.mjs.map +0 -1
  276. package/dist/esm/transformer/babel-core.native.js.map +0 -1
  277. package/dist/esm/transformer/metroNativeWorker.test.mjs +0 -861
  278. package/dist/esm/transformer/metroNativeWorker.test.mjs.map +0 -1
  279. package/dist/esm/transformer/metroNativeWorker.test.native.js +0 -972
  280. package/dist/esm/transformer/metroNativeWorker.test.native.js.map +0 -1
  281. package/dist/esm/transformer/transformSync.test.mjs +0 -37
  282. package/dist/esm/transformer/transformSync.test.mjs.map +0 -1
  283. package/dist/esm/transformer/transformSync.test.native.js +0 -47
  284. package/dist/esm/transformer/transformSync.test.native.js.map +0 -1
  285. package/dist/esm/transformer/types.mjs.map +0 -1
  286. package/dist/esm/transformer/types.native.js.map +0 -1
  287. package/types/transformer/metroNativeWorker.test.d.ts +0 -2
  288. package/types/transformer/metroNativeWorker.test.d.ts.map +0 -1
  289. package/types/transformer/transformSync.test.d.ts +0 -2
  290. package/types/transformer/transformSync.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["getMetroBabelConfigFromViteConfig","config","importMetaEnv","MODE","mode","BASE_URL","base","PROD","DEV","SSR","envPrefix","prefixes","Array","isArray","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","key","_step","value","some","p","startsWith","process","env","_iterator","Object","keys","Symbol","iterator","next","done","err","return"],"sources":["../../../src/metro-config/getMetroBabelConfigFromViteConfig.ts"],"sourcesContent":[null],"mappings":"AASO,SAASA,kCACdC,MAAA,EACkB;EAClB,IAAAC,aAAM;IACJC,IAAA,EAAMF,MAAA,CAAOG,IAAA;IACbC,QAAA,EAAUJ,MAAA,CAAOK,IAAA;IACjBC,IAAA,EAAMN,MAAA,CAAOG,IAAA,KAAS;IACtBI,GAAA,EAAKP,MAAA,CAAOG,IAAA,KAAS;IACrBK,GAAA,EAAK;EACP;EAEA,IAAAC,SAAM,GAAAT,MAAY,CAAAS,SAAO,KACzB,OAAM,EAEN,cAAW,CACT;EACE,IAAAC,QAAA,GAAAC,KAAc,CAAGC,OAAI,CAAAH,SAAY,IAAGA,SAAA,IACtCA,SAAA,CACF;EAMA,IAAAI,yBAA6B;IAAAC,iBAAA;IAAAC,cAAA;EAAA,IAC3B;IACF,IAAAC,KAAA,YAAAA,CAAA;MACA,IAAAC,GAAW,GAAAC,KAAA,CAAAC,KAAa;MACtB,IAAMT,QAAI,CAAAU,IAAA,CAAU,UAAMC,CAAA;QACtB,OAAIJ,GAAA,CAAAK,UAAA,CAAAD,CAAA;MACR,IAAM;QACFpB,aAAO,CAAAgB,GAAA,IAAeM,OAAA,CAAAC,GAAA,CAAAP,GAAA;MAC1B;IACA;IACA,KAAI,IAAAQ,SAAA,GAAAC,MAAA,CAAAC,IAAA,CAAA3B,MAAA,CAAAwB,GAAA,EAAAI,MAAA,CAAAC,QAAA,KAAAX,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAO,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAlB,yBAAA,SAAAG,KAAA;EACF,SAAAgB,GAAA;IACFlB,iBAAQ;IACNC,cAAA,GAAciB,GAAG;EAAI,UACvB;IACF;MAEA,IAAO,CAAAnB,yBAAA,IAAAY,SAAA,CAAAQ,MAAA;QACLR,SAAS,CAAAQ,MAAA;MACP;IAAA,UACE;MAAA,IACEnB,iBAAK,EAAc;QACvB,MAAAC,cAAA;MACF;IACF;EACF","ignoreList":[]}
1
+ {"version":3,"file":"getMetroBabelConfigFromViteConfig.native.js","names":[],"sources":["esm/metro-config/getMetroBabelConfigFromViteConfig.native.js"],"sourcesContent":["function getMetroBabelConfigFromViteConfig(config) {\n var importMetaEnv = {\n MODE: config.mode,\n BASE_URL: config.base,\n PROD: config.mode === \"production\",\n DEV: config.mode === \"development\",\n SSR: false\n };\n var envPrefix = config.envPrefix || [\n \"VITE_\",\n \"EXPO_PUBLIC_\"\n ];\n var prefixes = Array.isArray(envPrefix) ? envPrefix : [\n envPrefix\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n if (prefixes.some(function(p) {\n return key.startsWith(p);\n })) {\n importMetaEnv[key] = process.env[key];\n }\n };\n for (var _iterator = Object.keys(config.env)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var definePrefixes = Array.from(/* @__PURE__ */ new Set([\n ...prefixes,\n \"VITE_\",\n \"ONE_\",\n \"EXPO_PUBLIC_\"\n ]));\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n var _loop1 = function() {\n var defineKey = _step1.value;\n var m = defineKey.match(/^process\\.env\\.([A-Z][A-Z0-9_]*)$/);\n if (!m) return \"continue\";\n var key = m[1];\n if (key in importMetaEnv) return \"continue\";\n if (!definePrefixes.some(function(p) {\n return key.startsWith(p);\n })) return \"continue\";\n var raw = config.define[defineKey];\n try {\n importMetaEnv[key] = typeof raw === \"string\" ? JSON.parse(raw) : raw;\n } catch (unused) {\n importMetaEnv[key] = raw;\n }\n };\n for (var _iterator1 = Object.keys(config.define || {})[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _loop1();\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return {\n plugins: [\n [\n \"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\",\n {\n env: importMetaEnv\n }\n ]\n ]\n };\n}\nexport {\n getMetroBabelConfigFromViteConfig\n};\n//# sourceMappingURL=getMetroBabelConfigFromViteConfig.js.map\n"],"mappings":";AAAA,SAAS,kCAAkC,QAAQ;CACjD,IAAI,gBAAgB;EAClB,MAAM,OAAO;EACb,UAAU,OAAO;EACjB,MAAM,OAAO,SAAS;EACtB,KAAK,OAAO,SAAS;EACrB,KAAK;CACP;CACA,IAAI,YAAY,OAAO,aAAa,CAClC,SACA,cACF;CACA,IAAI,WAAW,MAAM,QAAQ,SAAS,IAAI,YAAY,CACpD,SACF;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,IAAI,QAAQ,WAAW;GACrB,IAAI,MAAM,MAAM;GAChB,IAAI,SAAS,KAAK,SAAS,GAAG;IAC5B,OAAO,IAAI,WAAW,CAAC;GACzB,CAAC,GAAG;IACF,cAAc,OAAO,QAAQ,IAAI;GACnC;EACF;EACA,KAAK,IAAI,YAAY,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM,MAAM;CAClL,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,iBAAiB,MAAM,qBAAqB,IAAI,IAAI;EACtD,GAAG;EACH;EACA;EACA;CACF,CAAC,CAAC;CACF,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;CAC1F,IAAI;EACF,IAAI,SAAS,WAAW;GACtB,IAAI,YAAY,OAAO;GACvB,IAAI,IAAI,UAAU,MAAM,mCAAmC;GAC3D,IAAI,CAAC,GAAG,OAAO;GACf,IAAI,MAAM,EAAE;GACZ,IAAI,OAAO,eAAe,OAAO;GACjC,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG;IACnC,OAAO,IAAI,WAAW,CAAC;GACzB,CAAC,GAAG,OAAO;GACX,IAAI,MAAM,OAAO,OAAO;GACxB,IAAI;IACF,cAAc,OAAO,OAAO,QAAQ,WAAW,KAAK,MAAM,GAAG,IAAI;GACnE,SAAS,QAAQ;IACf,cAAc,OAAO;GACvB;EACF;EACA,KAAK,IAAI,aAAa,OAAO,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM,OAAO;CAClM,SAAS,KAAK;EACZ,qBAAqB;EACrB,kBAAkB;CACpB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;IAC5D,WAAW,OAAO;GACpB;EACF,UAAU;GACR,IAAI,oBAAoB;IACtB,MAAM;GACR;EACF;CACF;CACA,OAAO,EACL,SAAS,CACP,CACE,gEACA,EACE,KAAK,cACP,CACF,CACF,EACF;AACF"}
@@ -1,252 +1,254 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { resolve } from "node:path";
3
3
  import micromatch from "micromatch";
4
+ import { findUserBabelConfig } from "@vxrn/compiler";
4
5
  import { projectImport, projectResolve } from "../utils/projectImport.mjs";
5
6
  import { getTerminalReporter } from "../utils/getTerminalReporter.mjs";
6
7
  import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from "../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs";
8
+
7
9
  const WATCHMAN_PROBE_TIMEOUT_MS = 2e3;
8
- const watchmanResponsivePromises = /* @__PURE__ */new Map();
10
+ const watchmanResponsivePromises = /* @__PURE__ */ new Map();
9
11
  let didWarnAboutWatchmanFallback = false;
10
12
  const rootIndexBundleRequestPattern = /^(https?:\/\/[^/]+)?\/index\.bundle(?=$|[?#])/;
11
- const metroWatchExclusions = [/[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/, /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/, /[/\\]\.docker(?:[/\\]|$)/, /[/\\]\.vite(?:[/\\]|$)/, /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/];
13
+ const metroWatchExclusions = [
14
+ /[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/,
15
+ /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/,
16
+ /[/\\]\.docker(?:[/\\]|$)/,
17
+ /[/\\]\.vite(?:[/\\]|$)/,
18
+ /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/
19
+ ];
12
20
  function getPlatformFromBundleUrl(url) {
13
- const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
14
- return platform === "android" ? "android" : "ios";
21
+ const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
22
+ return platform === "android" ? "android" : "ios";
15
23
  }
16
24
  function rewriteMainModuleBundleUrl(url, resolveMainModuleName) {
17
- const resolvedMainModulePath = resolveMainModuleName({
18
- platform: getPlatformFromBundleUrl(url)
19
- });
20
- if (url.includes("/.expo/.virtual-metro-entry.bundle?")) {
21
- return url.replace(".expo/.virtual-metro-entry", resolvedMainModulePath);
22
- }
23
- return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
25
+ const resolvedMainModulePath = resolveMainModuleName({ platform: getPlatformFromBundleUrl(url) });
26
+ if (url.includes("/.expo/.virtual-metro-entry.bundle?")) {
27
+ return url.replace(".expo/.virtual-metro-entry", resolvedMainModulePath);
28
+ }
29
+ return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
24
30
  }
25
31
  async function isWatchmanResponsive(projectRoot) {
26
- let probe = watchmanResponsivePromises.get(projectRoot);
27
- if (probe) {
28
- return probe;
29
- }
30
- probe = new Promise(resolve2 => {
31
- let settled = false;
32
- const finish = value => {
33
- if (settled) return;
34
- settled = true;
35
- clearTimeout(timeout);
36
- resolve2(value);
37
- };
38
- const child = spawn("watchman", ["watch-project", projectRoot], {
39
- stdio: "ignore"
40
- });
41
- const timeout = setTimeout(() => {
42
- child.kill();
43
- finish(false);
44
- }, WATCHMAN_PROBE_TIMEOUT_MS);
45
- child.once("error", () => {
46
- finish(false);
47
- });
48
- child.once("exit", code => {
49
- finish(code === 0);
50
- });
51
- });
52
- watchmanResponsivePromises.set(projectRoot, probe);
53
- return probe;
32
+ let probe = watchmanResponsivePromises.get(projectRoot);
33
+ if (probe) {
34
+ return probe;
35
+ }
36
+ probe = new Promise((resolve2) => {
37
+ let settled = false;
38
+ const finish = (value) => {
39
+ if (settled) return;
40
+ settled = true;
41
+ clearTimeout(timeout);
42
+ resolve2(value);
43
+ };
44
+ const child = spawn("watchman", ["watch-project", projectRoot], { stdio: "ignore" });
45
+ const timeout = setTimeout(() => {
46
+ child.kill();
47
+ finish(false);
48
+ }, WATCHMAN_PROBE_TIMEOUT_MS);
49
+ child.once("error", () => {
50
+ finish(false);
51
+ });
52
+ child.once("exit", (code) => {
53
+ finish(code === 0);
54
+ });
55
+ });
56
+ watchmanResponsivePromises.set(projectRoot, probe);
57
+ return probe;
58
+ }
59
+ function resolveNativeTransforms(projectRoot, metroPluginOptions) {
60
+ const userBabelConfigPath = projectRoot ? findUserBabelConfig(projectRoot) : null;
61
+ const hasUserBabelConfig = Boolean(userBabelConfigPath);
62
+ const isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === "0" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === "1" ? true : metroPluginOptions.nativeTransforms === false ? false : metroPluginOptions.nativeTransforms === true ? true : hasUserBabelConfig ? false : true;
63
+ if (userBabelConfigPath && isNativeTransforms) {
64
+ console.warn(`[vxrn/metro] Ignoring user babel config at ${userBabelConfigPath} because native transforms are explicitly enabled (nativeTransforms: true or ONE_METRO_NATIVE_TRANSFORMS=1). Port its plugins to nativeTransformModules, or set nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to use the babel transformer.`);
65
+ }
66
+ return {
67
+ isNativeTransforms,
68
+ userBabelConfigPath
69
+ };
54
70
  }
55
71
  async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
56
- const extraConfig = {};
57
- const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
58
- const {
59
- mainModuleName,
60
- defaultConfigOverrides,
61
- watchman,
62
- excludeModules
63
- } = metroPluginOptions;
64
- const useWatchman = watchman ?? (await isWatchmanResponsive(projectRoot));
65
- if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
66
- didWarnAboutWatchmanFallback = true;
67
- console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
68
- }
69
- const {
70
- getDefaultConfig
71
- } = await projectImport(projectRoot, "@expo/metro-config");
72
- const _defaultConfig = getDefaultConfig(projectRoot);
73
- if (mainModuleName) {
74
- const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
75
- const resolveMainModuleName = await (async () => {
76
- const ExpoGoManifestHandlerMiddleware = (await projectImport(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
77
- const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
78
- patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName);
79
- return p => {
80
- return manifestHandlerMiddleware.resolveMainModuleName({
81
- pkg: {
82
- main: mainModuleName
83
- },
84
- platform: p.platform
85
- });
86
- };
87
- })();
88
- extraConfig.getResolveMainModuleName = resolveMainModuleName;
89
- _defaultConfig.server.rewriteRequestUrl = url => {
90
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
91
- return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
92
- }
93
- return origRewriteRequestUrl(url);
94
- };
95
- }
96
- const existingBlockList = _defaultConfig?.resolver?.blockList;
97
- const blockList = [...(existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : []), ...metroWatchExclusions];
98
- const isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === "0" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === "1" || metroPluginOptions.nativeTransforms !== false;
99
- let nativeWorkerPath;
100
- if (isNativeTransforms) {
101
- nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
102
- }
103
- const defaultConfig = {
104
- ..._defaultConfig,
105
- resolver: {
106
- ..._defaultConfig?.resolver,
107
- useWatchman,
108
- blockList,
109
- sourceExts: ["js", "jsx", "json", "ts", "tsx", "mjs", "cjs"],
110
- // `one` related packages are using `.mjs` extensions. This fixes `.native` files not being resolved correctly when `.mjs` files are present.
111
- resolveRequest: (context, moduleName, platform) => {
112
- const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
113
- if (excludeModules && excludeModules.length > 0) {
114
- if (micromatch.isMatch(moduleName, excludeModules)) {
115
- return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
116
- }
117
- }
118
- if (moduleName.startsWith("@babel/runtime")) {
119
- const contextOverride = {
120
- ...context,
121
- unstable_conditionNames: context.unstable_conditionNames.filter(c => c !== "import")
122
- };
123
- return origResolveRequestFn(contextOverride, moduleName, platform);
124
- }
125
- return origResolveRequestFn(context, moduleName, platform);
126
- }
127
- },
128
- transformer: {
129
- ..._defaultConfig?.transformer,
130
- babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
131
- },
132
- // transformerPath is a TOP-LEVEL metro config key, not a transformer option.
133
- // nesting it under transformer silently leaves metro on its default worker.
134
- ...(nativeWorkerPath ? {
135
- transformerPath: nativeWorkerPath
136
- } : {}),
137
- reporter: await getTerminalReporter(projectRoot)
138
- };
139
- const merged = {
140
- ...defaultConfig,
141
- ...(typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides)
142
- };
143
- return {
144
- defaultConfig: merged,
145
- projectRoot,
146
- extraConfig
147
- };
72
+ const extraConfig = {};
73
+ const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
74
+ const { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
75
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
76
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
77
+ didWarnAboutWatchmanFallback = true;
78
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
79
+ }
80
+ const { getDefaultConfig } = await projectImport(projectRoot, "@expo/metro-config");
81
+ const _defaultConfig = getDefaultConfig(projectRoot);
82
+ if (mainModuleName) {
83
+ const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
84
+ const resolveMainModuleName = await (async () => {
85
+ const ExpoGoManifestHandlerMiddleware = (await projectImport(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
86
+ const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
87
+ patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName);
88
+ return (p) => {
89
+ return manifestHandlerMiddleware.resolveMainModuleName({
90
+ pkg: { main: mainModuleName },
91
+ platform: p.platform
92
+ });
93
+ };
94
+ })();
95
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
96
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
97
+ if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
98
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
99
+ }
100
+ return origRewriteRequestUrl(url);
101
+ };
102
+ }
103
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
104
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
105
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
106
+ let nativeWorkerPath;
107
+ if (isNativeTransforms) {
108
+ nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
109
+ }
110
+ const defaultConfig = {
111
+ ..._defaultConfig,
112
+ resolver: {
113
+ ..._defaultConfig?.resolver,
114
+ useWatchman,
115
+ blockList,
116
+ sourceExts: [
117
+ "js",
118
+ "jsx",
119
+ "json",
120
+ "ts",
121
+ "tsx",
122
+ "mjs",
123
+ "cjs"
124
+ ],
125
+ resolveRequest: (context, moduleName, platform) => {
126
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
127
+ if (excludeModules && excludeModules.length > 0) {
128
+ if (micromatch.isMatch(moduleName, excludeModules)) {
129
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
130
+ }
131
+ }
132
+ if (moduleName.startsWith("@babel/runtime")) {
133
+ const contextOverride = {
134
+ ...context,
135
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
136
+ };
137
+ return origResolveRequestFn(contextOverride, moduleName, platform);
138
+ }
139
+ return origResolveRequestFn(context, moduleName, platform);
140
+ }
141
+ },
142
+ transformer: {
143
+ ..._defaultConfig?.transformer,
144
+ babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
145
+ },
146
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
147
+ reporter: await getTerminalReporter(projectRoot)
148
+ };
149
+ const merged = {
150
+ ...defaultConfig,
151
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
152
+ };
153
+ return {
154
+ defaultConfig: merged,
155
+ projectRoot,
156
+ extraConfig
157
+ };
148
158
  }
149
159
  async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
150
- const extraConfig = {};
151
- const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
152
- const {
153
- mainModuleName,
154
- argv,
155
- defaultConfigOverrides,
156
- watchman,
157
- excludeModules
158
- } = metroPluginOptions;
159
- const useWatchman = watchman ?? (await isWatchmanResponsive(projectRoot));
160
- if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
161
- didWarnAboutWatchmanFallback = true;
162
- console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
163
- }
164
- const {
165
- loadConfig
166
- } = await projectImport(projectRoot, "metro");
167
- const {
168
- getDefaultConfig
169
- } = await projectImport(projectRoot, "@expo/metro-config");
170
- const _defaultConfig = getDefaultConfig(projectRoot);
171
- if (mainModuleName) {
172
- const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
173
- const resolveMainModuleName = await (async () => {
174
- const ExpoGoManifestHandlerMiddleware = (await projectImport(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
175
- const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
176
- patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName);
177
- return p => {
178
- return manifestHandlerMiddleware.resolveMainModuleName({
179
- pkg: {
180
- main: mainModuleName
181
- },
182
- platform: p.platform
183
- });
184
- };
185
- })();
186
- extraConfig.getResolveMainModuleName = resolveMainModuleName;
187
- _defaultConfig.server.rewriteRequestUrl = url => {
188
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
189
- return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
190
- }
191
- return origRewriteRequestUrl(url);
192
- };
193
- }
194
- const existingBlockList = _defaultConfig?.resolver?.blockList;
195
- const blockList = [...(existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : []), ...metroWatchExclusions];
196
- const isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === "0" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === "1" || metroPluginOptions.nativeTransforms !== false;
197
- let nativeWorkerPath;
198
- if (isNativeTransforms) {
199
- nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
200
- }
201
- const defaultConfig = {
202
- ..._defaultConfig,
203
- resolver: {
204
- ..._defaultConfig?.resolver,
205
- useWatchman,
206
- blockList,
207
- sourceExts: ["js", "jsx", "json", "ts", "tsx", "mjs", "cjs"],
208
- // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.
209
- resolveRequest: (context, moduleName, platform) => {
210
- const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
211
- if (excludeModules && excludeModules.length > 0) {
212
- if (micromatch.isMatch(moduleName, excludeModules)) {
213
- return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
214
- }
215
- }
216
- if (moduleName.startsWith("@babel/runtime")) {
217
- const contextOverride = {
218
- ...context,
219
- unstable_conditionNames: context.unstable_conditionNames.filter(c => c !== "import")
220
- };
221
- return origResolveRequestFn(contextOverride, moduleName, platform);
222
- }
223
- return origResolveRequestFn(context, moduleName, platform);
224
- }
225
- },
226
- transformer: {
227
- ..._defaultConfig?.transformer,
228
- babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
229
- },
230
- // transformerPath is a TOP-LEVEL metro config key, not a transformer option.
231
- // nesting it under transformer silently leaves metro on its default worker.
232
- ...(nativeWorkerPath ? {
233
- transformerPath: nativeWorkerPath
234
- } : {}),
235
- reporter: await getTerminalReporter(projectRoot)
236
- };
237
- const metroConfig = await loadConfig({
238
- cwd: projectRoot,
239
- projectRoot,
240
- "reset-cache": !!process.env.METRO_RESET_CACHE,
241
- ...argv
242
- }, {
243
- ...defaultConfig,
244
- ...(typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides)
245
- });
246
- return {
247
- ...metroConfig,
248
- ...extraConfig
249
- };
160
+ const extraConfig = {};
161
+ const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
162
+ const { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
163
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
164
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
165
+ didWarnAboutWatchmanFallback = true;
166
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
167
+ }
168
+ const { loadConfig } = await projectImport(projectRoot, "metro");
169
+ const { getDefaultConfig } = await projectImport(projectRoot, "@expo/metro-config");
170
+ const _defaultConfig = getDefaultConfig(projectRoot);
171
+ if (mainModuleName) {
172
+ const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
173
+ const resolveMainModuleName = await (async () => {
174
+ const ExpoGoManifestHandlerMiddleware = (await projectImport(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
175
+ const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
176
+ patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName);
177
+ return (p) => {
178
+ return manifestHandlerMiddleware.resolveMainModuleName({
179
+ pkg: { main: mainModuleName },
180
+ platform: p.platform
181
+ });
182
+ };
183
+ })();
184
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
185
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
186
+ if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
187
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
188
+ }
189
+ return origRewriteRequestUrl(url);
190
+ };
191
+ }
192
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
193
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
194
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
195
+ let nativeWorkerPath;
196
+ if (isNativeTransforms) {
197
+ nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
198
+ }
199
+ const defaultConfig = {
200
+ ..._defaultConfig,
201
+ resolver: {
202
+ ..._defaultConfig?.resolver,
203
+ useWatchman,
204
+ blockList,
205
+ sourceExts: [
206
+ "js",
207
+ "jsx",
208
+ "json",
209
+ "ts",
210
+ "tsx",
211
+ "mjs",
212
+ "cjs"
213
+ ],
214
+ resolveRequest: (context, moduleName, platform) => {
215
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
216
+ if (excludeModules && excludeModules.length > 0) {
217
+ if (micromatch.isMatch(moduleName, excludeModules)) {
218
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
219
+ }
220
+ }
221
+ if (moduleName.startsWith("@babel/runtime")) {
222
+ const contextOverride = {
223
+ ...context,
224
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
225
+ };
226
+ return origResolveRequestFn(contextOverride, moduleName, platform);
227
+ }
228
+ return origResolveRequestFn(context, moduleName, platform);
229
+ }
230
+ },
231
+ transformer: {
232
+ ..._defaultConfig?.transformer,
233
+ babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
234
+ },
235
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
236
+ reporter: await getTerminalReporter(projectRoot)
237
+ };
238
+ const metroConfig = await loadConfig({
239
+ cwd: projectRoot,
240
+ projectRoot,
241
+ "reset-cache": !!process.env.METRO_RESET_CACHE,
242
+ ...argv
243
+ }, {
244
+ ...defaultConfig,
245
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
246
+ });
247
+ return {
248
+ ...metroConfig,
249
+ ...extraConfig
250
+ };
250
251
  }
252
+
251
253
  export { buildMetroConfigInputFromViteConfig, getMetroConfigFromViteConfig };
252
254
  //# sourceMappingURL=getMetroConfigFromViteConfig.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["spawn","resolve","micromatch","projectImport","projectResolve","getTerminalReporter","patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName","WATCHMAN_PROBE_TIMEOUT_MS","watchmanResponsivePromises","Map","didWarnAboutWatchmanFallback","rootIndexBundleRequestPattern","metroWatchExclusions","getPlatformFromBundleUrl","url","platform","match","rewriteMainModuleBundleUrl","resolveMainModuleName","resolvedMainModulePath","includes","replace","isWatchmanResponsive","projectRoot","probe","get","Promise","resolve2","settled","finish","value","clearTimeout","timeout","child","stdio","setTimeout","kill","once","code","set","buildMetroConfigInputFromViteConfig","config","metroPluginOptions","extraConfig","argv","root","mainModuleName","defaultConfigOverrides","watchman","excludeModules","useWatchman","console","warn","getDefaultConfig","_defaultConfig","origRewriteRequestUrl","server","rewriteRequestUrl","ExpoGoManifestHandlerMiddleware","default","manifestHandlerMiddleware","p","pkg","main","getResolveMainModuleName","test","existingBlockList","resolver","blockList","Array","isArray","isNativeTransforms","process","env","ONE_METRO_NATIVE_TRANSFORMS","nativeTransforms","nativeWorkerPath","defaultConfig","sourceExts","resolveRequest","context","moduleName","origResolveRequestFn","length","isMatch","startsWith","contextOverride","unstable_conditionNames","filter","c","transformer","babelTransformerPath","transformerPath","reporter","merged","getMetroConfigFromViteConfig","loadConfig","metroConfig","cwd","METRO_RESET_CACHE"],"sources":["../../../src/metro-config/getMetroConfigFromViteConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getMetroConfigFromViteConfig.js","names":[],"sources":["esm/metro-config/getMetroConfigFromViteConfig.js"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { resolve } from \"node:path\";\nimport micromatch from \"micromatch\";\nimport { findUserBabelConfig } from \"@vxrn/compiler\";\nimport { projectImport, projectResolve } from \"../utils/projectImport\";\nimport { getTerminalReporter } from \"../utils/getTerminalReporter\";\nimport { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from \"../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName\";\nconst WATCHMAN_PROBE_TIMEOUT_MS = 2e3;\nconst watchmanResponsivePromises = /* @__PURE__ */ new Map();\nlet didWarnAboutWatchmanFallback = false;\nconst rootIndexBundleRequestPattern = /^(https?:\\/\\/[^/]+)?\\/index\\.bundle(?=$|[?#])/;\nconst metroWatchExclusions = [\n /[/\\\\]dist[/\\\\](?:static|server)(?:[/\\\\]|$)/,\n /[/\\\\]tests[/\\\\][^/\\\\]+[/\\\\]dist(?:[/\\\\]|$)/,\n /[/\\\\]\\.docker(?:[/\\\\]|$)/,\n /[/\\\\]\\.vite(?:[/\\\\]|$)/,\n /[/\\\\]node_modules[/\\\\]\\.vxrn(?:[/\\\\]|$)/\n];\nfunction getPlatformFromBundleUrl(url) {\n const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];\n return platform === \"android\" ? \"android\" : \"ios\";\n}\nfunction rewriteMainModuleBundleUrl(url, resolveMainModuleName) {\n const resolvedMainModulePath = resolveMainModuleName({\n platform: getPlatformFromBundleUrl(url)\n });\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\")) {\n return url.replace(\".expo/.virtual-metro-entry\", resolvedMainModulePath);\n }\n return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);\n}\nasync function isWatchmanResponsive(projectRoot) {\n let probe = watchmanResponsivePromises.get(projectRoot);\n if (probe) {\n return probe;\n }\n probe = new Promise((resolve2) => {\n let settled = false;\n const finish = (value) => {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n resolve2(value);\n };\n const child = spawn(\"watchman\", [\"watch-project\", projectRoot], {\n stdio: \"ignore\"\n });\n const timeout = setTimeout(() => {\n child.kill();\n finish(false);\n }, WATCHMAN_PROBE_TIMEOUT_MS);\n child.once(\"error\", () => {\n finish(false);\n });\n child.once(\"exit\", (code) => {\n finish(code === 0);\n });\n });\n watchmanResponsivePromises.set(projectRoot, probe);\n return probe;\n}\nfunction resolveNativeTransforms(projectRoot, metroPluginOptions) {\n const userBabelConfigPath = projectRoot ? findUserBabelConfig(projectRoot) : null;\n const hasUserBabelConfig = Boolean(userBabelConfigPath);\n const isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === \"0\" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === \"1\" ? true : metroPluginOptions.nativeTransforms === false ? false : metroPluginOptions.nativeTransforms === true ? true : hasUserBabelConfig ? false : true;\n if (userBabelConfigPath && isNativeTransforms) {\n console.warn(\n `[vxrn/metro] Ignoring user babel config at ${userBabelConfigPath} because native transforms are explicitly enabled (nativeTransforms: true or ONE_METRO_NATIVE_TRANSFORMS=1). Port its plugins to nativeTransformModules, or set nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to use the babel transformer.`\n );\n }\n return { isNativeTransforms, userBabelConfigPath };\n}\nasync function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {\n const extraConfig = {};\n const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);\n const { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\n \"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\"\n );\n }\n const { getDefaultConfig } = await projectImport(projectRoot, \"@expo/metro-config\");\n const _defaultConfig = getDefaultConfig(projectRoot);\n if (mainModuleName) {\n const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;\n const resolveMainModuleName = await (async () => {\n const ExpoGoManifestHandlerMiddleware = (await projectImport(\n projectRoot,\n \"@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js\"\n )).default.ExpoGoManifestHandlerMiddleware;\n const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(\n projectRoot,\n {}\n );\n patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(\n manifestHandlerMiddleware,\n mainModuleName\n );\n return (p) => {\n return manifestHandlerMiddleware.resolveMainModuleName({\n pkg: { main: mainModuleName },\n platform: p.platform\n });\n };\n })();\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = (url) => {\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\") || rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl(url);\n };\n }\n const existingBlockList = _defaultConfig?.resolver?.blockList;\n const blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [],\n ...metroWatchExclusions\n ];\n const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n let nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = projectResolve(\n projectRoot,\n \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\"\n );\n }\n const defaultConfig = {\n ..._defaultConfig,\n resolver: {\n ..._defaultConfig?.resolver,\n useWatchman,\n blockList,\n sourceExts: [\"js\", \"jsx\", \"json\", \"ts\", \"tsx\", \"mjs\", \"cjs\"],\n // `one` related packages are using `.mjs` extensions. This fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: (context, moduleName, platform) => {\n const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (micromatch.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(\n context,\n \"@vxrn/vite-plugin-metro/empty\",\n platform\n );\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n const contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(\n (c) => c !== \"import\"\n )\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig?.transformer,\n babelTransformerPath: projectResolve(\n projectRoot,\n \"@vxrn/vite-plugin-metro/babel-transformer\"\n )\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},\n reporter: await getTerminalReporter(projectRoot)\n };\n const merged = {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n };\n return { defaultConfig: merged, projectRoot, extraConfig };\n}\nasync function getMetroConfigFromViteConfig(config, metroPluginOptions) {\n const extraConfig = {};\n const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);\n const { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\n \"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\"\n );\n }\n const { loadConfig } = await projectImport(projectRoot, \"metro\");\n const { getDefaultConfig } = await projectImport(projectRoot, \"@expo/metro-config\");\n const _defaultConfig = getDefaultConfig(projectRoot);\n if (mainModuleName) {\n const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;\n const resolveMainModuleName = await (async () => {\n const ExpoGoManifestHandlerMiddleware = (await projectImport(\n projectRoot,\n \"@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js\"\n )).default.ExpoGoManifestHandlerMiddleware;\n const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(\n projectRoot,\n {}\n );\n patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(\n manifestHandlerMiddleware,\n mainModuleName\n );\n return (p) => {\n return manifestHandlerMiddleware.resolveMainModuleName({\n pkg: { main: mainModuleName },\n platform: p.platform\n });\n };\n })();\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = (url) => {\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\") || rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl(url);\n };\n }\n const existingBlockList = _defaultConfig?.resolver?.blockList;\n const blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [],\n ...metroWatchExclusions\n ];\n const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n let nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = projectResolve(\n projectRoot,\n \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\"\n );\n }\n const defaultConfig = {\n ..._defaultConfig,\n resolver: {\n ..._defaultConfig?.resolver,\n useWatchman,\n blockList,\n sourceExts: [\"js\", \"jsx\", \"json\", \"ts\", \"tsx\", \"mjs\", \"cjs\"],\n // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: (context, moduleName, platform) => {\n const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (micromatch.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(\n context,\n \"@vxrn/vite-plugin-metro/empty\",\n platform\n );\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n const contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(\n (c) => c !== \"import\"\n )\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig?.transformer,\n babelTransformerPath: projectResolve(\n projectRoot,\n \"@vxrn/vite-plugin-metro/babel-transformer\"\n )\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},\n reporter: await getTerminalReporter(projectRoot)\n };\n const metroConfig = await loadConfig(\n {\n cwd: projectRoot,\n projectRoot,\n \"reset-cache\": !!process.env.METRO_RESET_CACHE,\n ...argv\n },\n {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n }\n );\n return {\n ...metroConfig,\n ...extraConfig\n };\n}\nexport {\n buildMetroConfigInputFromViteConfig,\n getMetroConfigFromViteConfig\n};\n//# sourceMappingURL=getMetroConfigFromViteConfig.js.map\n"],"mappings":"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"}