@vxrn/vite-plugin-metro 2.0.0-beta.33.1 → 2.0.0-beta.362.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 (338) 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 +57 -57
  6. package/dist/cjs/env/platformEnv.native.cjs +95 -0
  7. package/dist/cjs/env/platformEnv.native.js +74 -75
  8. package/dist/cjs/env/platformEnv.native.js.map +1 -1
  9. package/dist/cjs/index.cjs +21 -25
  10. package/dist/cjs/index.native.cjs +39 -0
  11. package/dist/cjs/index.native.js +21 -24
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +54 -51
  14. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +108 -0
  15. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +95 -94
  16. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  17. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +303 -257
  18. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +361 -0
  19. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +327 -267
  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/metroPlugin.cjs +210 -248
  30. package/dist/cjs/plugins/metroPlugin.native.cjs +242 -0
  31. package/dist/cjs/plugins/metroPlugin.native.js +216 -253
  32. package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
  33. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +56 -65
  34. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.cjs +121 -0
  35. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +94 -106
  36. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  37. package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +51 -55
  38. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.cjs +72 -0
  39. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +51 -54
  40. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  41. package/dist/cjs/rn-commands/bundle/buildBundle.cjs +37 -46
  42. package/dist/cjs/rn-commands/bundle/buildBundle.native.cjs +57 -0
  43. package/dist/cjs/rn-commands/bundle/buildBundle.native.js +39 -47
  44. package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +1 -1
  45. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +57 -68
  46. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.cjs +81 -0
  47. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +59 -70
  48. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  49. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +37 -39
  50. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.cjs +70 -0
  51. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +56 -59
  52. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  53. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +20 -29
  54. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.cjs +39 -0
  55. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +20 -28
  56. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  57. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +20 -33
  58. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.cjs +38 -0
  59. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +20 -32
  60. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  61. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +23 -32
  62. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.cjs +38 -0
  63. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +23 -31
  64. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  65. package/dist/cjs/rn-commands/bundle/index.cjs +15 -17
  66. package/dist/cjs/rn-commands/bundle/index.native.cjs +30 -0
  67. package/dist/cjs/rn-commands/bundle/index.native.js +15 -16
  68. package/dist/cjs/rn-commands/bundle/index.native.js.map +1 -1
  69. package/dist/cjs/rn-commands/bundle/saveAssets.cjs +85 -96
  70. package/dist/cjs/rn-commands/bundle/saveAssets.native.cjs +129 -0
  71. package/dist/cjs/rn-commands/bundle/saveAssets.native.js +102 -114
  72. package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +1 -1
  73. package/dist/cjs/rn-commands/bundle/types.cjs +9 -11
  74. package/dist/cjs/rn-commands/bundle/types.native.cjs +18 -0
  75. package/dist/cjs/rn-commands/bundle/types.native.js +9 -10
  76. package/dist/cjs/rn-commands/bundle/types.native.js.map +1 -1
  77. package/dist/cjs/rn-commands/index.cjs +17 -26
  78. package/dist/cjs/rn-commands/index.native.cjs +32 -0
  79. package/dist/cjs/rn-commands/index.native.js +17 -25
  80. package/dist/cjs/rn-commands/index.native.js.map +1 -1
  81. package/dist/cjs/transformer/babel-core.cjs +16 -18
  82. package/dist/cjs/transformer/babel-core.native.cjs +30 -0
  83. package/dist/cjs/transformer/babel-core.native.js +16 -17
  84. package/dist/cjs/transformer/babel-core.native.js.map +1 -1
  85. package/dist/cjs/transformer/babel-transformer.cjs +155 -151
  86. package/dist/cjs/transformer/babel-transformer.native.cjs +197 -0
  87. package/dist/cjs/transformer/babel-transformer.native.js +171 -158
  88. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  89. package/dist/cjs/transformer/expoVirtualEnv.cjs +92 -0
  90. package/dist/cjs/transformer/expoVirtualEnv.native.cjs +113 -0
  91. package/dist/cjs/transformer/expoVirtualEnv.native.js +115 -0
  92. package/dist/cjs/transformer/expoVirtualEnv.native.js.map +1 -0
  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 +1436 -1489
  98. package/dist/cjs/transformer/metroNativeWorker.native.cjs +2525 -0
  99. package/dist/cjs/transformer/metroNativeWorker.native.js +2414 -2561
  100. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  101. package/dist/cjs/transformer/transformSync.cjs +48 -64
  102. package/dist/cjs/transformer/transformSync.native.cjs +74 -0
  103. package/dist/cjs/transformer/transformSync.native.js +50 -65
  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/projectImport.cjs +40 -51
  122. package/dist/cjs/utils/projectImport.native.cjs +64 -0
  123. package/dist/cjs/utils/projectImport.native.js +41 -58
  124. package/dist/cjs/utils/projectImport.native.js.map +1 -1
  125. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +72 -86
  126. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
  127. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +78 -92
  128. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
  129. package/dist/esm/env/platformEnv.mjs +42 -39
  130. package/dist/esm/env/platformEnv.mjs.map +1 -1
  131. package/dist/esm/env/platformEnv.native.js +59 -58
  132. package/dist/esm/env/platformEnv.native.js.map +1 -1
  133. package/dist/esm/index.js +3 -4
  134. package/dist/esm/index.mjs +3 -4
  135. package/dist/esm/index.native.js +3 -4
  136. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +42 -33
  137. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
  138. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +83 -77
  139. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  140. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +287 -232
  141. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  142. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +311 -243
  143. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  144. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +26 -26
  145. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
  146. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +27 -27
  147. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
  148. package/dist/esm/metro-config/types.mjs +0 -2
  149. package/dist/esm/metro-config/types.native.js +0 -2
  150. package/dist/esm/plugins/metroPlugin.mjs +195 -222
  151. package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
  152. package/dist/esm/plugins/metroPlugin.native.js +201 -228
  153. package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
  154. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +38 -38
  155. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -1
  156. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +76 -80
  157. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  158. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +38 -37
  159. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -1
  160. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +38 -37
  161. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  162. package/dist/esm/rn-commands/bundle/buildBundle.mjs +25 -28
  163. package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -1
  164. package/dist/esm/rn-commands/bundle/buildBundle.native.js +27 -30
  165. package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -1
  166. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +43 -43
  167. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -1
  168. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +45 -46
  169. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  170. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +24 -21
  171. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -1
  172. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +43 -42
  173. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  174. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +5 -3
  175. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -1
  176. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +5 -3
  177. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  178. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +5 -7
  179. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -1
  180. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +5 -7
  181. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  182. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +11 -14
  183. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -1
  184. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +11 -14
  185. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  186. package/dist/esm/rn-commands/bundle/index.mjs +2 -2
  187. package/dist/esm/rn-commands/bundle/index.native.js +2 -2
  188. package/dist/esm/rn-commands/bundle/saveAssets.mjs +70 -70
  189. package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -1
  190. package/dist/esm/rn-commands/bundle/saveAssets.native.js +87 -89
  191. package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -1
  192. package/dist/esm/rn-commands/bundle/types.mjs +0 -2
  193. package/dist/esm/rn-commands/bundle/types.native.js +0 -2
  194. package/dist/esm/rn-commands/index.mjs +2 -2
  195. package/dist/esm/rn-commands/index.native.js +2 -2
  196. package/dist/esm/transformer/babel-core.mjs +2 -2
  197. package/dist/esm/transformer/babel-core.native.js +2 -2
  198. package/dist/esm/transformer/babel-transformer.mjs +139 -132
  199. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  200. package/dist/esm/transformer/babel-transformer.native.js +152 -142
  201. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  202. package/dist/esm/transformer/expoVirtualEnv.mjs +67 -0
  203. package/dist/esm/transformer/expoVirtualEnv.mjs.map +1 -0
  204. package/dist/esm/transformer/expoVirtualEnv.native.js +86 -0
  205. package/dist/esm/transformer/expoVirtualEnv.native.js.map +1 -0
  206. package/dist/esm/transformer/loadBabelConfig.mjs +29 -23
  207. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  208. package/dist/esm/transformer/loadBabelConfig.native.js +33 -27
  209. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  210. package/dist/esm/transformer/metroNativeWorker.mjs +1399 -1443
  211. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  212. package/dist/esm/transformer/metroNativeWorker.native.js +2377 -2516
  213. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  214. package/dist/esm/transformer/transformSync.mjs +33 -38
  215. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  216. package/dist/esm/transformer/transformSync.native.js +35 -40
  217. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  218. package/dist/esm/transformer/types.mjs +0 -2
  219. package/dist/esm/transformer/types.native.js +0 -2
  220. package/dist/esm/utils/exit.mjs +123 -112
  221. package/dist/esm/utils/exit.mjs.map +1 -1
  222. package/dist/esm/utils/exit.native.js +210 -215
  223. package/dist/esm/utils/exit.native.js.map +1 -1
  224. package/dist/esm/utils/getTerminalReporter.mjs +20 -21
  225. package/dist/esm/utils/getTerminalReporter.mjs.map +1 -1
  226. package/dist/esm/utils/getTerminalReporter.native.js +23 -24
  227. package/dist/esm/utils/getTerminalReporter.native.js.map +1 -1
  228. package/dist/esm/utils/metroCacheManager.mjs +73 -82
  229. package/dist/esm/utils/metroCacheManager.mjs.map +1 -1
  230. package/dist/esm/utils/metroCacheManager.native.js +91 -102
  231. package/dist/esm/utils/metroCacheManager.native.js.map +1 -1
  232. package/dist/esm/utils/projectImport.mjs +23 -25
  233. package/dist/esm/utils/projectImport.mjs.map +1 -1
  234. package/dist/esm/utils/projectImport.native.js +24 -33
  235. package/dist/esm/utils/projectImport.native.js.map +1 -1
  236. package/package.json +16 -18
  237. package/src/babel-plugins/import-meta-env-plugin.ts +1 -1
  238. package/src/env/platformEnv.test.ts +44 -0
  239. package/src/env/platformEnv.ts +6 -3
  240. package/src/index.ts +0 -2
  241. package/src/metro-config/getMetroBabelConfigFromViteConfig.test.ts +52 -0
  242. package/src/metro-config/getMetroBabelConfigFromViteConfig.ts +8 -7
  243. package/src/metro-config/getMetroConfigFromViteConfig.test.ts +263 -0
  244. package/src/metro-config/getMetroConfigFromViteConfig.ts +226 -109
  245. package/src/metro-config/glbAssets.test.ts +57 -0
  246. package/src/plugins/metroPlugin.ts +3 -6
  247. package/src/transformer/babel-transformer.test.ts +118 -0
  248. package/src/transformer/babel-transformer.ts +102 -15
  249. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  250. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  251. package/src/transformer/expoVirtualEnv.ts +115 -0
  252. package/src/transformer/loadBabelConfig.ts +3 -1
  253. package/src/transformer/metroNativeWorker.test.ts +425 -36
  254. package/src/transformer/metroNativeWorker.ts +72 -74
  255. package/src/transformer/swiftPackageTransform.test.ts +95 -0
  256. package/src/transformer/transformSync.test.ts +22 -0
  257. package/src/transformer/transformSync.ts +4 -4
  258. package/src/utils/exit.ts +2 -2
  259. package/src/utils/getTerminalReporter.ts +1 -1
  260. package/src/utils/projectImport.ts +2 -2
  261. package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
  262. package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
  263. package/types/env/platformEnv.d.ts +2 -1
  264. package/types/env/platformEnv.d.ts.map +1 -1
  265. package/types/index.d.ts +0 -2
  266. package/types/index.d.ts.map +1 -1
  267. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +1 -1
  268. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -1
  269. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  270. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  271. package/types/plugins/metroPlugin.d.ts +2 -4
  272. package/types/plugins/metroPlugin.d.ts.map +1 -1
  273. package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -1
  274. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -1
  275. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -1
  276. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -1
  277. package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -1
  278. package/types/transformer/babel-transformer.d.ts +10 -1
  279. package/types/transformer/babel-transformer.d.ts.map +1 -1
  280. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  281. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  282. package/types/transformer/loadBabelConfig.d.ts.map +1 -1
  283. package/types/transformer/metroNativeWorker.d.ts +7 -8
  284. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  285. package/types/utils/projectImport.d.ts +2 -2
  286. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -71
  287. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -82
  288. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  289. package/dist/cjs/transformer/metroNativeWorker.test.cjs +0 -897
  290. package/dist/cjs/transformer/metroNativeWorker.test.native.js +0 -1010
  291. package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +0 -1
  292. package/dist/cjs/transformer/transformSync.test.cjs +0 -36
  293. package/dist/cjs/transformer/transformSync.test.native.js +0 -49
  294. package/dist/cjs/transformer/transformSync.test.native.js.map +0 -1
  295. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -39
  296. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -42
  297. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  298. package/dist/esm/index.js.map +0 -1
  299. package/dist/esm/index.mjs.map +0 -1
  300. package/dist/esm/index.native.js.map +0 -1
  301. package/dist/esm/metro-config/types.mjs.map +0 -1
  302. package/dist/esm/metro-config/types.native.js.map +0 -1
  303. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -46
  304. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  305. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -54
  306. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  307. package/dist/esm/rn-commands/bundle/index.mjs.map +0 -1
  308. package/dist/esm/rn-commands/bundle/index.native.js.map +0 -1
  309. package/dist/esm/rn-commands/bundle/types.mjs.map +0 -1
  310. package/dist/esm/rn-commands/bundle/types.native.js.map +0 -1
  311. package/dist/esm/rn-commands/index.mjs.map +0 -1
  312. package/dist/esm/rn-commands/index.native.js.map +0 -1
  313. package/dist/esm/transformer/babel-core.mjs.map +0 -1
  314. package/dist/esm/transformer/babel-core.native.js.map +0 -1
  315. package/dist/esm/transformer/metroNativeWorker.test.mjs +0 -861
  316. package/dist/esm/transformer/metroNativeWorker.test.mjs.map +0 -1
  317. package/dist/esm/transformer/metroNativeWorker.test.native.js +0 -972
  318. package/dist/esm/transformer/metroNativeWorker.test.native.js.map +0 -1
  319. package/dist/esm/transformer/transformSync.test.mjs +0 -37
  320. package/dist/esm/transformer/transformSync.test.mjs.map +0 -1
  321. package/dist/esm/transformer/transformSync.test.native.js +0 -47
  322. package/dist/esm/transformer/transformSync.test.native.js.map +0 -1
  323. package/dist/esm/transformer/types.mjs.map +0 -1
  324. package/dist/esm/transformer/types.native.js.map +0 -1
  325. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -14
  326. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  327. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -14
  328. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  329. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  330. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  331. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  332. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  333. package/types/transformer/metroNativeWorker.test.d.ts +0 -2
  334. package/types/transformer/metroNativeWorker.test.d.ts.map +0 -1
  335. package/types/transformer/transformSync.test.d.ts +0 -2
  336. package/types/transformer/transformSync.test.d.ts.map +0 -1
  337. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  338. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +0 -1
@@ -1,252 +1,307 @@
1
+ import { searchForWorkspaceRoot } from "vite";
1
2
  import { spawn } from "node:child_process";
2
3
  import { resolve } from "node:path";
3
4
  import micromatch from "micromatch";
5
+ import { getDefaultConfig } from "@react-native/metro-config";
6
+ import { findUserBabelConfig } from "@vxrn/compiler";
4
7
  import { projectImport, projectResolve } from "../utils/projectImport.mjs";
5
8
  import { getTerminalReporter } from "../utils/getTerminalReporter.mjs";
6
- import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from "../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs";
9
+
7
10
  const WATCHMAN_PROBE_TIMEOUT_MS = 2e3;
8
- const watchmanResponsivePromises = /* @__PURE__ */new Map();
11
+ const expoEnvAdditionalExts = [
12
+ "env",
13
+ "local",
14
+ "development"
15
+ ];
16
+ const metroSourceExts = [
17
+ "js",
18
+ "jsx",
19
+ "json",
20
+ "ts",
21
+ "tsx",
22
+ "mjs",
23
+ "cjs",
24
+ "swift",
25
+ "kt"
26
+ ];
27
+ const watchmanResponsivePromises = /* @__PURE__ */ new Map();
9
28
  let didWarnAboutWatchmanFallback = false;
10
29
  const rootIndexBundleRequestPattern = /^(https?:\/\/[^/]+)?\/index\.bundle(?=$|[?#])/;
11
- const metroWatchExclusions = [/[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/, /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/, /[/\\]\.docker(?:[/\\]|$)/, /[/\\]\.vite(?:[/\\]|$)/, /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/];
30
+ const expoVirtualEntryBundleRequestPattern = /^(https?:\/\/[^/]+)?\/\.expo\/\.virtual-metro-entry\.bundle(?=$|[?#])/;
31
+ const metroWatchExclusions = [
32
+ /^(?!.*[/\\]node_modules[/\\]).*[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/,
33
+ /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/,
34
+ /[/\\]\.docker(?:[/\\]|$)/,
35
+ /[/\\]\.vite(?:[/\\]|$)/,
36
+ /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/
37
+ ];
38
+ function enforceWorkspaceVisibility(config, projectRoot) {
39
+ const workspaceRoot = searchForWorkspaceRoot(projectRoot);
40
+ if (workspaceRoot === projectRoot) return config;
41
+ return {
42
+ ...config,
43
+ watchFolders: [.../* @__PURE__ */ new Set([...config.watchFolders ?? [], workspaceRoot])],
44
+ resolver: {
45
+ ...config.resolver,
46
+ nodeModulesPaths: [.../* @__PURE__ */ new Set([
47
+ ...config.resolver?.nodeModulesPaths ?? [],
48
+ resolve(projectRoot, "node_modules"),
49
+ resolve(workspaceRoot, "node_modules")
50
+ ])]
51
+ }
52
+ };
53
+ }
54
+ function getReactNativeDefaultConfig(projectRoot) {
55
+ const config = enforceWorkspaceVisibility(getDefaultConfig(projectRoot), projectRoot);
56
+ return {
57
+ ...config,
58
+ resolver: {
59
+ ...config.resolver,
60
+ assetExts: [.../* @__PURE__ */ new Set([...config.resolver?.assetExts ?? [], "glb"])]
61
+ }
62
+ };
63
+ }
12
64
  function getPlatformFromBundleUrl(url) {
13
- const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
14
- return platform === "android" ? "android" : "ios";
65
+ const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
66
+ return platform === "android" ? "android" : "ios";
15
67
  }
16
68
  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`);
69
+ const resolvedMainModulePath = resolveMainModuleName({ platform: getPlatformFromBundleUrl(url) });
70
+ if (rootIndexBundleRequestPattern.test(url)) {
71
+ return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
72
+ }
73
+ return url.replace(expoVirtualEntryBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
74
+ }
75
+ function isMainModuleBundleRequest(url) {
76
+ return rootIndexBundleRequestPattern.test(url) || expoVirtualEntryBundleRequestPattern.test(url);
77
+ }
78
+ function isBareSpecifier(name) {
79
+ return name !== "" && !name.startsWith(".") && !name.startsWith("/");
80
+ }
81
+ function bareMainModuleForRequest(moduleName, mainModuleName) {
82
+ if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;
83
+ if (moduleName === `./${mainModuleName}`) return mainModuleName;
84
+ return void 0;
85
+ }
86
+ function enforcePackageResolution(config, mainModuleName, dedupe, projectRoot) {
87
+ const dedupedPackages = new Set(dedupe);
88
+ if ((!mainModuleName || !isBareSpecifier(mainModuleName)) && !dedupedPackages.size) {
89
+ return config;
90
+ }
91
+ const rootOrigin = resolve(projectRoot, "package.json");
92
+ const innerResolveRequest = config.resolver?.resolveRequest;
93
+ return {
94
+ ...config,
95
+ resolver: {
96
+ ...config.resolver,
97
+ resolveRequest: (context, moduleName, platform) => {
98
+ const bareMain = bareMainModuleForRequest(moduleName, mainModuleName);
99
+ const request = bareMain ?? moduleName;
100
+ const packageEnd = request.indexOf("/", request.startsWith("@") ? request.indexOf("/") + 1 : 0);
101
+ const packageName = packageEnd === -1 ? request : request.slice(0, packageEnd);
102
+ const resolutionContext = isBareSpecifier(request) && dedupedPackages.has(packageName) ? {
103
+ ...context,
104
+ originModulePath: rootOrigin
105
+ } : context;
106
+ const resolveRequest = innerResolveRequest || context.resolveRequest;
107
+ return resolveRequest(resolutionContext, request, platform);
108
+ }
109
+ }
110
+ };
24
111
  }
25
112
  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;
113
+ let probe = watchmanResponsivePromises.get(projectRoot);
114
+ if (probe) {
115
+ return probe;
116
+ }
117
+ probe = new Promise((resolve2) => {
118
+ let settled = false;
119
+ const finish = (value) => {
120
+ if (settled) return;
121
+ settled = true;
122
+ clearTimeout(timeout);
123
+ resolve2(value);
124
+ };
125
+ const child = spawn("watchman", ["watch-project", projectRoot], { stdio: "ignore" });
126
+ const timeout = setTimeout(() => {
127
+ child.kill();
128
+ finish(false);
129
+ }, WATCHMAN_PROBE_TIMEOUT_MS);
130
+ child.once("error", () => {
131
+ finish(false);
132
+ });
133
+ child.once("exit", (code) => {
134
+ finish(code === 0);
135
+ });
136
+ });
137
+ watchmanResponsivePromises.set(projectRoot, probe);
138
+ return probe;
139
+ }
140
+ function resolveNativeTransforms(projectRoot, metroPluginOptions) {
141
+ const userBabelConfigPath = projectRoot ? findUserBabelConfig(projectRoot) : null;
142
+ const hasUserBabelConfig = Boolean(userBabelConfigPath);
143
+ 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;
144
+ if (userBabelConfigPath && isNativeTransforms) {
145
+ 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.`);
146
+ }
147
+ return {
148
+ isNativeTransforms,
149
+ userBabelConfigPath
150
+ };
54
151
  }
55
152
  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
- };
153
+ const extraConfig = {};
154
+ const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
155
+ const { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
156
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
157
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
158
+ didWarnAboutWatchmanFallback = true;
159
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
160
+ }
161
+ const _defaultConfig = getReactNativeDefaultConfig(projectRoot);
162
+ if (mainModuleName) {
163
+ const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;
164
+ const resolveMainModuleName = () => mainModuleName;
165
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
166
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
167
+ if (isMainModuleBundleRequest(url)) {
168
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
169
+ }
170
+ return origRewriteRequestUrl?.(url) ?? url;
171
+ };
172
+ }
173
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
174
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
175
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
176
+ let nativeWorkerPath;
177
+ if (isNativeTransforms) {
178
+ nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
179
+ }
180
+ const defaultConfig = {
181
+ ..._defaultConfig,
182
+ watcher: {
183
+ ..._defaultConfig?.watcher,
184
+ additionalExts: [.../* @__PURE__ */ new Set([..._defaultConfig?.watcher?.additionalExts ?? [], ...expoEnvAdditionalExts])]
185
+ },
186
+ resolver: {
187
+ ..._defaultConfig?.resolver,
188
+ useWatchman,
189
+ blockList,
190
+ sourceExts: metroSourceExts,
191
+ resolveRequest: (context, moduleName, platform) => {
192
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
193
+ if (excludeModules && excludeModules.length > 0) {
194
+ if (micromatch.isMatch(moduleName, excludeModules)) {
195
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
196
+ }
197
+ }
198
+ if (moduleName.startsWith("@babel/runtime")) {
199
+ const contextOverride = {
200
+ ...context,
201
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
202
+ };
203
+ return origResolveRequestFn(contextOverride, moduleName, platform);
204
+ }
205
+ return origResolveRequestFn(context, moduleName, platform);
206
+ }
207
+ },
208
+ transformer: {
209
+ ..._defaultConfig?.transformer,
210
+ unstable_allowRequireContext: true,
211
+ babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
212
+ },
213
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
214
+ reporter: await getTerminalReporter(projectRoot)
215
+ };
216
+ const merged = {
217
+ ...defaultConfig,
218
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
219
+ };
220
+ return {
221
+ defaultConfig: enforcePackageResolution(enforceWorkspaceVisibility(merged, projectRoot), mainModuleName, config.resolve?.dedupe ?? [], projectRoot),
222
+ projectRoot,
223
+ extraConfig
224
+ };
148
225
  }
149
226
  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
- };
227
+ const extraConfig = {};
228
+ const projectRoot = resolve(metroPluginOptions.argv?.projectRoot ?? config.root);
229
+ const { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
230
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
231
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
232
+ didWarnAboutWatchmanFallback = true;
233
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
234
+ }
235
+ const { loadConfig } = await projectImport(projectRoot, "metro");
236
+ const _defaultConfig = getReactNativeDefaultConfig(projectRoot);
237
+ if (mainModuleName) {
238
+ const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;
239
+ const resolveMainModuleName = () => mainModuleName;
240
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
241
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
242
+ if (isMainModuleBundleRequest(url)) {
243
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
244
+ }
245
+ return origRewriteRequestUrl?.(url) ?? url;
246
+ };
247
+ }
248
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
249
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
250
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
251
+ let nativeWorkerPath;
252
+ if (isNativeTransforms) {
253
+ nativeWorkerPath = projectResolve(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
254
+ }
255
+ const defaultConfig = {
256
+ ..._defaultConfig,
257
+ watcher: {
258
+ ..._defaultConfig?.watcher,
259
+ additionalExts: [.../* @__PURE__ */ new Set([..._defaultConfig?.watcher?.additionalExts ?? [], ...expoEnvAdditionalExts])]
260
+ },
261
+ resolver: {
262
+ ..._defaultConfig?.resolver,
263
+ useWatchman,
264
+ blockList,
265
+ sourceExts: metroSourceExts,
266
+ resolveRequest: (context, moduleName, platform) => {
267
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
268
+ if (excludeModules && excludeModules.length > 0) {
269
+ if (micromatch.isMatch(moduleName, excludeModules)) {
270
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
271
+ }
272
+ }
273
+ if (moduleName.startsWith("@babel/runtime")) {
274
+ const contextOverride = {
275
+ ...context,
276
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
277
+ };
278
+ return origResolveRequestFn(contextOverride, moduleName, platform);
279
+ }
280
+ return origResolveRequestFn(context, moduleName, platform);
281
+ }
282
+ },
283
+ transformer: {
284
+ ..._defaultConfig?.transformer,
285
+ unstable_allowRequireContext: true,
286
+ babelTransformerPath: projectResolve(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
287
+ },
288
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
289
+ reporter: await getTerminalReporter(projectRoot)
290
+ };
291
+ const metroConfig = await loadConfig({
292
+ cwd: projectRoot,
293
+ projectRoot,
294
+ "reset-cache": !!process.env.METRO_RESET_CACHE,
295
+ ...argv
296
+ }, {
297
+ ...defaultConfig,
298
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
299
+ });
300
+ return {
301
+ ...enforcePackageResolution(enforceWorkspaceVisibility(metroConfig, projectRoot), mainModuleName, config.resolve?.dedupe ?? [], projectRoot),
302
+ ...extraConfig
303
+ };
250
304
  }
305
+
251
306
  export { buildMetroConfigInputFromViteConfig, getMetroConfigFromViteConfig };
252
307
  //# 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 { searchForWorkspaceRoot } from \"vite\";\nimport { spawn } from \"node:child_process\";\nimport { resolve } from \"node:path\";\nimport micromatch from \"micromatch\";\nimport { getDefaultConfig } from \"@react-native/metro-config\";\nimport { findUserBabelConfig } from \"@vxrn/compiler\";\nimport { projectImport, projectResolve } from \"../utils/projectImport\";\nimport { getTerminalReporter } from \"../utils/getTerminalReporter\";\nconst WATCHMAN_PROBE_TIMEOUT_MS = 2e3;\nconst expoEnvAdditionalExts = [\"env\", \"local\", \"development\"];\nconst metroSourceExts = [\"js\", \"jsx\", \"json\", \"ts\", \"tsx\", \"mjs\", \"cjs\", \"swift\", \"kt\"];\nconst watchmanResponsivePromises = /* @__PURE__ */ new Map();\nlet didWarnAboutWatchmanFallback = false;\nconst rootIndexBundleRequestPattern = /^(https?:\\/\\/[^/]+)?\\/index\\.bundle(?=$|[?#])/;\nconst expoVirtualEntryBundleRequestPattern = /^(https?:\\/\\/[^/]+)?\\/\\.expo\\/\\.virtual-metro-entry\\.bundle(?=$|[?#])/;\nconst metroWatchExclusions = [\n /^(?!.*[/\\\\]node_modules[/\\\\]).*[/\\\\]dist[/\\\\](?:static|server)(?:[/\\\\]|$)/,\n /[/\\\\]tests[/\\\\][^/\\\\]+[/\\\\]dist(?:[/\\\\]|$)/,\n /[/\\\\]\\.docker(?:[/\\\\]|$)/,\n /[/\\\\]\\.vite(?:[/\\\\]|$)/,\n /[/\\\\]node_modules[/\\\\]\\.vxrn(?:[/\\\\]|$)/\n];\nfunction enforceWorkspaceVisibility(config, projectRoot) {\n const workspaceRoot = searchForWorkspaceRoot(projectRoot);\n if (workspaceRoot === projectRoot) return config;\n return {\n ...config,\n watchFolders: [.../* @__PURE__ */ new Set([...config.watchFolders ?? [], workspaceRoot])],\n resolver: {\n ...config.resolver,\n nodeModulesPaths: [\n .../* @__PURE__ */ new Set([\n ...config.resolver?.nodeModulesPaths ?? [],\n resolve(projectRoot, \"node_modules\"),\n resolve(workspaceRoot, \"node_modules\")\n ])\n ]\n }\n };\n}\nfunction getReactNativeDefaultConfig(projectRoot) {\n const config = enforceWorkspaceVisibility(\n getDefaultConfig(projectRoot),\n projectRoot\n );\n return {\n ...config,\n resolver: {\n ...config.resolver,\n assetExts: [.../* @__PURE__ */ new Set([...config.resolver?.assetExts ?? [], \"glb\"])]\n }\n };\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 (rootIndexBundleRequestPattern.test(url)) {\n return url.replace(\n rootIndexBundleRequestPattern,\n `$1/${resolvedMainModulePath}.bundle`\n );\n }\n return url.replace(\n expoVirtualEntryBundleRequestPattern,\n `$1/${resolvedMainModulePath}.bundle`\n );\n}\nfunction isMainModuleBundleRequest(url) {\n return rootIndexBundleRequestPattern.test(url) || expoVirtualEntryBundleRequestPattern.test(url);\n}\nfunction isBareSpecifier(name) {\n return name !== \"\" && !name.startsWith(\".\") && !name.startsWith(\"/\");\n}\nfunction bareMainModuleForRequest(moduleName, mainModuleName) {\n if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;\n if (moduleName === `./${mainModuleName}`) return mainModuleName;\n return void 0;\n}\nfunction enforcePackageResolution(config, mainModuleName, dedupe, projectRoot) {\n const dedupedPackages = new Set(dedupe);\n if ((!mainModuleName || !isBareSpecifier(mainModuleName)) && !dedupedPackages.size) {\n return config;\n }\n const rootOrigin = resolve(projectRoot, \"package.json\");\n const innerResolveRequest = config.resolver?.resolveRequest;\n return {\n ...config,\n resolver: {\n ...config.resolver,\n resolveRequest: (context, moduleName, platform) => {\n const bareMain = bareMainModuleForRequest(moduleName, mainModuleName);\n const request = bareMain ?? moduleName;\n const packageEnd = request.indexOf(\n \"/\",\n request.startsWith(\"@\") ? request.indexOf(\"/\") + 1 : 0\n );\n const packageName = packageEnd === -1 ? request : request.slice(0, packageEnd);\n const resolutionContext = isBareSpecifier(request) && dedupedPackages.has(packageName) ? { ...context, originModulePath: rootOrigin } : context;\n const resolveRequest = innerResolveRequest || context.resolveRequest;\n return resolveRequest(resolutionContext, request, platform);\n }\n }\n };\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 _defaultConfig = getReactNativeDefaultConfig(projectRoot);\n if (mainModuleName) {\n const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;\n const resolveMainModuleName = () => mainModuleName;\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = (url) => {\n if (isMainModuleBundleRequest(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl?.(url) ?? 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 watcher: {\n ..._defaultConfig?.watcher,\n additionalExts: [\n .../* @__PURE__ */ new Set([\n ..._defaultConfig?.watcher?.additionalExts ?? [],\n ...expoEnvAdditionalExts\n ])\n ]\n },\n resolver: {\n ..._defaultConfig?.resolver,\n useWatchman,\n blockList,\n sourceExts: metroSourceExts,\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 // one's router and Expo's optional development env module both use\n // require.context. Metro installs a throwing runtime stub unless this\n // graph feature is enabled.\n unstable_allowRequireContext: true,\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 {\n defaultConfig: enforcePackageResolution(\n enforceWorkspaceVisibility(merged, projectRoot),\n mainModuleName,\n config.resolve?.dedupe ?? [],\n projectRoot\n ),\n projectRoot,\n extraConfig\n };\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 _defaultConfig = getReactNativeDefaultConfig(projectRoot);\n if (mainModuleName) {\n const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;\n const resolveMainModuleName = () => mainModuleName;\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = (url) => {\n if (isMainModuleBundleRequest(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl?.(url) ?? 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 watcher: {\n ..._defaultConfig?.watcher,\n additionalExts: [\n .../* @__PURE__ */ new Set([\n ..._defaultConfig?.watcher?.additionalExts ?? [],\n ...expoEnvAdditionalExts\n ])\n ]\n },\n resolver: {\n ..._defaultConfig?.resolver,\n useWatchman,\n blockList,\n sourceExts: metroSourceExts,\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 // one's router and Expo's optional development env module both use\n // require.context. Metro installs a throwing runtime stub unless this\n // graph feature is enabled.\n unstable_allowRequireContext: true,\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 ...enforcePackageResolution(\n enforceWorkspaceVisibility(metroConfig, projectRoot),\n mainModuleName,\n config.resolve?.dedupe ?? [],\n projectRoot\n ),\n ...extraConfig\n };\n}\nexport {\n buildMetroConfigInputFromViteConfig,\n getMetroConfigFromViteConfig\n};\n//# sourceMappingURL=getMetroConfigFromViteConfig.js.map\n"],"mappings":"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"}