@vxrn/vite-plugin-metro 1.27.1 → 2.0.0-beta.101.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 (335) 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 +287 -272
  18. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +346 -0
  19. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +309 -282
  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 +149 -151
  86. package/dist/cjs/transformer/babel-transformer.native.cjs +190 -0
  87. package/dist/cjs/transformer/babel-transformer.native.js +164 -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 +1430 -1488
  98. package/dist/cjs/transformer/metroNativeWorker.native.cjs +2519 -0
  99. package/dist/cjs/transformer/metroNativeWorker.native.js +2407 -2560
  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 +271 -247
  141. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  142. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +293 -258
  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 +133 -132
  199. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  200. package/dist/esm/transformer/babel-transformer.native.js +145 -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 +1393 -1442
  211. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  212. package/dist/esm/transformer/metroNativeWorker.native.js +2370 -2515
  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 +15 -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 +60 -0
  244. package/src/metro-config/getMetroConfigFromViteConfig.ts +150 -113
  245. package/src/plugins/metroPlugin.ts +3 -6
  246. package/src/transformer/babel-transformer.test.ts +118 -0
  247. package/src/transformer/babel-transformer.ts +82 -15
  248. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  249. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  250. package/src/transformer/expoVirtualEnv.ts +115 -0
  251. package/src/transformer/loadBabelConfig.ts +1 -1
  252. package/src/transformer/metroNativeWorker.test.ts +268 -50
  253. package/src/transformer/metroNativeWorker.ts +53 -71
  254. package/src/transformer/transformSync.test.ts +22 -0
  255. package/src/transformer/transformSync.ts +4 -4
  256. package/src/utils/exit.ts +2 -2
  257. package/src/utils/getTerminalReporter.ts +1 -1
  258. package/src/utils/projectImport.ts +2 -2
  259. package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
  260. package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
  261. package/types/env/platformEnv.d.ts +2 -1
  262. package/types/env/platformEnv.d.ts.map +1 -1
  263. package/types/index.d.ts +0 -2
  264. package/types/index.d.ts.map +1 -1
  265. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +1 -1
  266. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -1
  267. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  268. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  269. package/types/plugins/metroPlugin.d.ts +2 -4
  270. package/types/plugins/metroPlugin.d.ts.map +1 -1
  271. package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -1
  272. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -1
  273. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -1
  274. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -1
  275. package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -1
  276. package/types/transformer/babel-transformer.d.ts +10 -1
  277. package/types/transformer/babel-transformer.d.ts.map +1 -1
  278. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  279. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  280. package/types/transformer/metroNativeWorker.d.ts +7 -8
  281. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  282. package/types/utils/projectImport.d.ts +2 -2
  283. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -71
  284. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -82
  285. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  286. package/dist/cjs/transformer/metroNativeWorker.test.cjs +0 -1054
  287. package/dist/cjs/transformer/metroNativeWorker.test.native.js +0 -1170
  288. package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +0 -1
  289. package/dist/cjs/transformer/transformSync.test.cjs +0 -36
  290. package/dist/cjs/transformer/transformSync.test.native.js +0 -49
  291. package/dist/cjs/transformer/transformSync.test.native.js.map +0 -1
  292. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -39
  293. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -42
  294. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  295. package/dist/esm/index.js.map +0 -1
  296. package/dist/esm/index.mjs.map +0 -1
  297. package/dist/esm/index.native.js.map +0 -1
  298. package/dist/esm/metro-config/types.mjs.map +0 -1
  299. package/dist/esm/metro-config/types.native.js.map +0 -1
  300. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -46
  301. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  302. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -54
  303. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  304. package/dist/esm/rn-commands/bundle/index.mjs.map +0 -1
  305. package/dist/esm/rn-commands/bundle/index.native.js.map +0 -1
  306. package/dist/esm/rn-commands/bundle/types.mjs.map +0 -1
  307. package/dist/esm/rn-commands/bundle/types.native.js.map +0 -1
  308. package/dist/esm/rn-commands/index.mjs.map +0 -1
  309. package/dist/esm/rn-commands/index.native.js.map +0 -1
  310. package/dist/esm/transformer/babel-core.mjs.map +0 -1
  311. package/dist/esm/transformer/babel-core.native.js.map +0 -1
  312. package/dist/esm/transformer/metroNativeWorker.test.mjs +0 -1010
  313. package/dist/esm/transformer/metroNativeWorker.test.mjs.map +0 -1
  314. package/dist/esm/transformer/metroNativeWorker.test.native.js +0 -1124
  315. package/dist/esm/transformer/metroNativeWorker.test.native.js.map +0 -1
  316. package/dist/esm/transformer/transformSync.test.mjs +0 -37
  317. package/dist/esm/transformer/transformSync.test.mjs.map +0 -1
  318. package/dist/esm/transformer/transformSync.test.native.js +0 -47
  319. package/dist/esm/transformer/transformSync.test.native.js.map +0 -1
  320. package/dist/esm/transformer/types.mjs.map +0 -1
  321. package/dist/esm/transformer/types.native.js.map +0 -1
  322. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -14
  323. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  324. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -14
  325. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  326. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  327. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  328. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  329. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  330. package/types/transformer/metroNativeWorker.test.d.ts +0 -2
  331. package/types/transformer/metroNativeWorker.test.d.ts.map +0 -1
  332. package/types/transformer/transformSync.test.d.ts +0 -2
  333. package/types/transformer/transformSync.test.d.ts.map +0 -1
  334. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  335. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +0 -1
@@ -5,303 +5,318 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
12
  };
13
13
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
21
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
30
25
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
27
  var getMetroConfigFromViteConfig_exports = {};
35
28
  __export(getMetroConfigFromViteConfig_exports, {
36
- buildMetroConfigInputFromViteConfig: () => buildMetroConfigInputFromViteConfig,
37
- getMetroConfigFromViteConfig: () => getMetroConfigFromViteConfig
29
+ buildMetroConfigInputFromViteConfig: () => buildMetroConfigInputFromViteConfig,
30
+ getMetroConfigFromViteConfig: () => getMetroConfigFromViteConfig
38
31
  });
39
32
  module.exports = __toCommonJS(getMetroConfigFromViteConfig_exports);
33
+ var import_vite = require("vite");
40
34
  var import_node_child_process = require("node:child_process");
41
35
  var import_node_path = require("node:path");
42
36
  var import_micromatch = __toESM(require("micromatch"), 1);
37
+ var import_metro_config = require("@react-native/metro-config");
43
38
  var import_compiler = require("@vxrn/compiler");
44
39
  var import_projectImport = require("../utils/projectImport.cjs");
45
40
  var import_getTerminalReporter = require("../utils/getTerminalReporter.cjs");
46
- var import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName = require("../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs");
47
41
  const WATCHMAN_PROBE_TIMEOUT_MS = 2e3;
48
- const watchmanResponsivePromises = /* @__PURE__ */new Map();
42
+ const expoEnvAdditionalExts = [
43
+ "env",
44
+ "local",
45
+ "development"
46
+ ];
47
+ const watchmanResponsivePromises = /* @__PURE__ */ new Map();
49
48
  let didWarnAboutWatchmanFallback = false;
50
49
  const rootIndexBundleRequestPattern = /^(https?:\/\/[^/]+)?\/index\.bundle(?=$|[?#])/;
50
+ const expoVirtualEntryBundleRequestPattern = /^(https?:\/\/[^/]+)?\/\.expo\/\.virtual-metro-entry\.bundle(?=$|[?#])/;
51
+ const metroWatchExclusions = [
52
+ /[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/,
53
+ /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/,
54
+ /[/\\]\.docker(?:[/\\]|$)/,
55
+ /[/\\]\.vite(?:[/\\]|$)/,
56
+ /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/
57
+ ];
58
+ function enforceWorkspaceVisibility(config, projectRoot) {
59
+ const workspaceRoot = (0, import_vite.searchForWorkspaceRoot)(projectRoot);
60
+ if (workspaceRoot === projectRoot) return config;
61
+ return {
62
+ ...config,
63
+ watchFolders: [.../* @__PURE__ */ new Set([...config.watchFolders ?? [], workspaceRoot])],
64
+ resolver: {
65
+ ...config.resolver,
66
+ nodeModulesPaths: [.../* @__PURE__ */ new Set([
67
+ ...config.resolver?.nodeModulesPaths ?? [],
68
+ (0, import_node_path.resolve)(projectRoot, "node_modules"),
69
+ (0, import_node_path.resolve)(workspaceRoot, "node_modules")
70
+ ])]
71
+ }
72
+ };
73
+ }
74
+ function getReactNativeDefaultConfig(projectRoot) {
75
+ return enforceWorkspaceVisibility((0, import_metro_config.getDefaultConfig)(projectRoot), projectRoot);
76
+ }
51
77
  function getPlatformFromBundleUrl(url) {
52
- const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
53
- return platform === "android" ? "android" : "ios";
78
+ const platform = url.match(/[?&]platform=(ios|android)(?:&|$)/)?.[1];
79
+ return platform === "android" ? "android" : "ios";
54
80
  }
55
81
  function rewriteMainModuleBundleUrl(url, resolveMainModuleName) {
56
- const resolvedMainModulePath = resolveMainModuleName({
57
- platform: getPlatformFromBundleUrl(url)
58
- });
59
- if (url.includes("/.expo/.virtual-metro-entry.bundle?")) {
60
- return url.replace(".expo/.virtual-metro-entry", resolvedMainModulePath);
61
- }
62
- return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
82
+ const resolvedMainModulePath = resolveMainModuleName({ platform: getPlatformFromBundleUrl(url) });
83
+ if (rootIndexBundleRequestPattern.test(url)) {
84
+ return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
85
+ }
86
+ return url.replace(expoVirtualEntryBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
87
+ }
88
+ function isMainModuleBundleRequest(url) {
89
+ return rootIndexBundleRequestPattern.test(url) || expoVirtualEntryBundleRequestPattern.test(url);
90
+ }
91
+ function isBareSpecifier(name) {
92
+ return name !== "" && !name.startsWith(".") && !name.startsWith("/");
93
+ }
94
+ function bareMainModuleForRequest(moduleName, mainModuleName) {
95
+ if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;
96
+ if (moduleName === `./${mainModuleName}`) return mainModuleName;
97
+ return void 0;
98
+ }
99
+ function enforceBareMainModuleEntry(config, mainModuleName) {
100
+ if (!mainModuleName || !isBareSpecifier(mainModuleName)) return config;
101
+ const innerResolveRequest = config?.resolver?.resolveRequest;
102
+ return {
103
+ ...config,
104
+ resolver: {
105
+ ...config?.resolver,
106
+ resolveRequest: (context, moduleName, platform) => {
107
+ const bareMain = bareMainModuleForRequest(moduleName, mainModuleName);
108
+ const resolveRequest = innerResolveRequest || context.resolveRequest;
109
+ return resolveRequest(context, bareMain ?? moduleName, platform);
110
+ }
111
+ }
112
+ };
63
113
  }
64
114
  async function isWatchmanResponsive(projectRoot) {
65
- let probe = watchmanResponsivePromises.get(projectRoot);
66
- if (probe) {
67
- return probe;
68
- }
69
- probe = new Promise(resolve2 => {
70
- let settled = false;
71
- const finish = value => {
72
- if (settled) return;
73
- settled = true;
74
- clearTimeout(timeout);
75
- resolve2(value);
76
- };
77
- const child = (0, import_node_child_process.spawn)("watchman", ["watch-project", projectRoot], {
78
- stdio: "ignore"
79
- });
80
- const timeout = setTimeout(() => {
81
- child.kill();
82
- finish(false);
83
- }, WATCHMAN_PROBE_TIMEOUT_MS);
84
- child.once("error", () => {
85
- finish(false);
86
- });
87
- child.once("exit", code => {
88
- finish(code === 0);
89
- });
90
- });
91
- watchmanResponsivePromises.set(projectRoot, probe);
92
- return probe;
115
+ let probe = watchmanResponsivePromises.get(projectRoot);
116
+ if (probe) {
117
+ return probe;
118
+ }
119
+ probe = new Promise((resolve2) => {
120
+ let settled = false;
121
+ const finish = (value) => {
122
+ if (settled) return;
123
+ settled = true;
124
+ clearTimeout(timeout);
125
+ resolve2(value);
126
+ };
127
+ const child = (0, import_node_child_process.spawn)("watchman", ["watch-project", projectRoot], { stdio: "ignore" });
128
+ const timeout = setTimeout(() => {
129
+ child.kill();
130
+ finish(false);
131
+ }, WATCHMAN_PROBE_TIMEOUT_MS);
132
+ child.once("error", () => {
133
+ finish(false);
134
+ });
135
+ child.once("exit", (code) => {
136
+ finish(code === 0);
137
+ });
138
+ });
139
+ watchmanResponsivePromises.set(projectRoot, probe);
140
+ return probe;
93
141
  }
94
142
  function resolveNativeTransforms(projectRoot, metroPluginOptions) {
95
- const userBabelConfigPath = projectRoot ? (0, import_compiler.findUserBabelConfig)(projectRoot) : null;
96
- const hasUserBabelConfig = Boolean(userBabelConfigPath);
97
- 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;
98
- if (userBabelConfigPath && isNativeTransforms) {
99
- 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.`);
100
- }
101
- return {
102
- isNativeTransforms,
103
- userBabelConfigPath
104
- };
143
+ const userBabelConfigPath = projectRoot ? (0, import_compiler.findUserBabelConfig)(projectRoot) : null;
144
+ const hasUserBabelConfig = Boolean(userBabelConfigPath);
145
+ 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;
146
+ if (userBabelConfigPath && isNativeTransforms) {
147
+ 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.`);
148
+ }
149
+ return {
150
+ isNativeTransforms,
151
+ userBabelConfigPath
152
+ };
105
153
  }
106
154
  async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
107
- const extraConfig = {};
108
- const projectRoot = (0, import_node_path.resolve)(metroPluginOptions.argv?.projectRoot ?? config.root);
109
- const {
110
- mainModuleName,
111
- defaultConfigOverrides,
112
- watchman,
113
- excludeModules
114
- } = metroPluginOptions;
115
- const useWatchman = watchman ?? (await isWatchmanResponsive(projectRoot));
116
- if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
117
- didWarnAboutWatchmanFallback = true;
118
- console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
119
- }
120
- const {
121
- getDefaultConfig
122
- } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
123
- const _defaultConfig = getDefaultConfig(projectRoot);
124
- if (mainModuleName) {
125
- const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
126
- const resolveMainModuleName = await (async () => {
127
- const ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
128
- const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
129
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
130
- return p => {
131
- return manifestHandlerMiddleware.resolveMainModuleName({
132
- pkg: {
133
- main: mainModuleName
134
- },
135
- platform: p.platform
136
- });
137
- };
138
- })();
139
- extraConfig.getResolveMainModuleName = resolveMainModuleName;
140
- _defaultConfig.server.rewriteRequestUrl = url => {
141
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
142
- return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
143
- }
144
- return origRewriteRequestUrl(url);
145
- };
146
- }
147
- const existingBlockList = _defaultConfig?.resolver?.blockList;
148
- const buildOutputExclusions = [/[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/, /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/, /[/\\]\.docker(?:[/\\]|$)/, /[/\\]\.vite(?:[/\\]|$)/];
149
- const blockList = [...(existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : []), ...buildOutputExclusions];
150
- const {
151
- isNativeTransforms
152
- } = resolveNativeTransforms(projectRoot, metroPluginOptions);
153
- let nativeWorkerPath;
154
- if (isNativeTransforms) {
155
- nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
156
- }
157
- const defaultConfig = {
158
- ..._defaultConfig,
159
- resolver: {
160
- ..._defaultConfig?.resolver,
161
- useWatchman,
162
- blockList,
163
- sourceExts: ["js", "jsx", "json", "ts", "tsx", "mjs", "cjs"],
164
- // `one` related packages are using `.mjs` extensions. This fixes `.native` files not being resolved correctly when `.mjs` files are present.
165
- resolveRequest: (context, moduleName, platform) => {
166
- const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
167
- if (excludeModules && excludeModules.length > 0) {
168
- if (import_micromatch.default.isMatch(moduleName, excludeModules)) {
169
- return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
170
- }
171
- }
172
- if (moduleName.startsWith("@babel/runtime")) {
173
- const contextOverride = {
174
- ...context,
175
- unstable_conditionNames: context.unstable_conditionNames.filter(c => c !== "import")
176
- };
177
- return origResolveRequestFn(contextOverride, moduleName, platform);
178
- }
179
- return origResolveRequestFn(context, moduleName, platform);
180
- }
181
- },
182
- transformer: {
183
- ..._defaultConfig?.transformer,
184
- babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
185
- },
186
- // transformerPath is a TOP-LEVEL metro config key, not a transformer option.
187
- // nesting it under transformer silently leaves metro on its default worker.
188
- ...(nativeWorkerPath ? {
189
- transformerPath: nativeWorkerPath
190
- } : {}),
191
- reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)
192
- };
193
- const merged = {
194
- ...defaultConfig,
195
- ...(typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides)
196
- };
197
- return {
198
- defaultConfig: merged,
199
- projectRoot,
200
- extraConfig
201
- };
155
+ const extraConfig = {};
156
+ const projectRoot = (0, import_node_path.resolve)(metroPluginOptions.argv?.projectRoot ?? config.root);
157
+ const { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
158
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
159
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
160
+ didWarnAboutWatchmanFallback = true;
161
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
162
+ }
163
+ const _defaultConfig = getReactNativeDefaultConfig(projectRoot);
164
+ if (mainModuleName) {
165
+ const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;
166
+ const resolveMainModuleName = () => mainModuleName;
167
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
168
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
169
+ if (isMainModuleBundleRequest(url)) {
170
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
171
+ }
172
+ return origRewriteRequestUrl?.(url) ?? url;
173
+ };
174
+ }
175
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
176
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
177
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
178
+ let nativeWorkerPath;
179
+ if (isNativeTransforms) {
180
+ nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
181
+ }
182
+ const defaultConfig = {
183
+ ..._defaultConfig,
184
+ watcher: {
185
+ ..._defaultConfig?.watcher,
186
+ additionalExts: [.../* @__PURE__ */ new Set([..._defaultConfig?.watcher?.additionalExts ?? [], ...expoEnvAdditionalExts])]
187
+ },
188
+ resolver: {
189
+ ..._defaultConfig?.resolver,
190
+ useWatchman,
191
+ blockList,
192
+ sourceExts: [
193
+ "js",
194
+ "jsx",
195
+ "json",
196
+ "ts",
197
+ "tsx",
198
+ "mjs",
199
+ "cjs"
200
+ ],
201
+ resolveRequest: (context, moduleName, platform) => {
202
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
203
+ if (excludeModules && excludeModules.length > 0) {
204
+ if (import_micromatch.default.isMatch(moduleName, excludeModules)) {
205
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
206
+ }
207
+ }
208
+ if (moduleName.startsWith("@babel/runtime")) {
209
+ const contextOverride = {
210
+ ...context,
211
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
212
+ };
213
+ return origResolveRequestFn(contextOverride, moduleName, platform);
214
+ }
215
+ return origResolveRequestFn(context, moduleName, platform);
216
+ }
217
+ },
218
+ transformer: {
219
+ ..._defaultConfig?.transformer,
220
+ unstable_allowRequireContext: true,
221
+ babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
222
+ },
223
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
224
+ reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)
225
+ };
226
+ const merged = {
227
+ ...defaultConfig,
228
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
229
+ };
230
+ return {
231
+ defaultConfig: enforceBareMainModuleEntry(enforceWorkspaceVisibility(merged, projectRoot), mainModuleName),
232
+ projectRoot,
233
+ extraConfig
234
+ };
202
235
  }
203
236
  async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
204
- const extraConfig = {};
205
- const projectRoot = (0, import_node_path.resolve)(metroPluginOptions.argv?.projectRoot ?? config.root);
206
- const {
207
- mainModuleName,
208
- argv,
209
- defaultConfigOverrides,
210
- watchman,
211
- excludeModules
212
- } = metroPluginOptions;
213
- const useWatchman = watchman ?? (await isWatchmanResponsive(projectRoot));
214
- if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
215
- didWarnAboutWatchmanFallback = true;
216
- console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
217
- }
218
- const {
219
- loadConfig
220
- } = await (0, import_projectImport.projectImport)(projectRoot, "metro");
221
- const {
222
- getDefaultConfig
223
- } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
224
- const _defaultConfig = getDefaultConfig(projectRoot);
225
- if (mainModuleName) {
226
- const origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
227
- const resolveMainModuleName = await (async () => {
228
- const ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
229
- const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
230
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
231
- return p => {
232
- return manifestHandlerMiddleware.resolveMainModuleName({
233
- pkg: {
234
- main: mainModuleName
235
- },
236
- platform: p.platform
237
- });
238
- };
239
- })();
240
- extraConfig.getResolveMainModuleName = resolveMainModuleName;
241
- _defaultConfig.server.rewriteRequestUrl = url => {
242
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
243
- return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
244
- }
245
- return origRewriteRequestUrl(url);
246
- };
247
- }
248
- const existingBlockList = _defaultConfig?.resolver?.blockList;
249
- const buildOutputExclusions = [/[/\\]dist[/\\](?:static|server)(?:[/\\]|$)/, /[/\\]tests[/\\][^/\\]+[/\\]dist(?:[/\\]|$)/, /[/\\]\.docker(?:[/\\]|$)/, /[/\\]\.vite(?:[/\\]|$)/];
250
- const blockList = [...(existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : []), ...buildOutputExclusions];
251
- const {
252
- isNativeTransforms
253
- } = resolveNativeTransforms(projectRoot, metroPluginOptions);
254
- let nativeWorkerPath;
255
- if (isNativeTransforms) {
256
- nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
257
- }
258
- const defaultConfig = {
259
- ..._defaultConfig,
260
- resolver: {
261
- ..._defaultConfig?.resolver,
262
- useWatchman,
263
- blockList,
264
- sourceExts: ["js", "jsx", "json", "ts", "tsx", "mjs", "cjs"],
265
- // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.
266
- resolveRequest: (context, moduleName, platform) => {
267
- const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
268
- if (excludeModules && excludeModules.length > 0) {
269
- if (import_micromatch.default.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
- babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
286
- },
287
- // transformerPath is a TOP-LEVEL metro config key, not a transformer option.
288
- // nesting it under transformer silently leaves metro on its default worker.
289
- ...(nativeWorkerPath ? {
290
- transformerPath: nativeWorkerPath
291
- } : {}),
292
- reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)
293
- };
294
- const metroConfig = await loadConfig({
295
- cwd: projectRoot,
296
- projectRoot,
297
- "reset-cache": !!process.env.METRO_RESET_CACHE,
298
- ...argv
299
- }, {
300
- ...defaultConfig,
301
- ...(typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides)
302
- });
303
- return {
304
- ...metroConfig,
305
- ...extraConfig
306
- };
307
- }
237
+ const extraConfig = {};
238
+ const projectRoot = (0, import_node_path.resolve)(metroPluginOptions.argv?.projectRoot ?? config.root);
239
+ const { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
240
+ const useWatchman = watchman ?? await isWatchmanResponsive(projectRoot);
241
+ if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {
242
+ didWarnAboutWatchmanFallback = true;
243
+ console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
244
+ }
245
+ const { loadConfig } = await (0, import_projectImport.projectImport)(projectRoot, "metro");
246
+ const _defaultConfig = getReactNativeDefaultConfig(projectRoot);
247
+ if (mainModuleName) {
248
+ const origRewriteRequestUrl = _defaultConfig.server?.rewriteRequestUrl;
249
+ const resolveMainModuleName = () => mainModuleName;
250
+ extraConfig.getResolveMainModuleName = resolveMainModuleName;
251
+ _defaultConfig.server.rewriteRequestUrl = (url) => {
252
+ if (isMainModuleBundleRequest(url)) {
253
+ return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
254
+ }
255
+ return origRewriteRequestUrl?.(url) ?? url;
256
+ };
257
+ }
258
+ const existingBlockList = _defaultConfig?.resolver?.blockList;
259
+ const blockList = [...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [existingBlockList] : [], ...metroWatchExclusions];
260
+ const { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);
261
+ let nativeWorkerPath;
262
+ if (isNativeTransforms) {
263
+ nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/transformer/metroNativeWorker");
264
+ }
265
+ const defaultConfig = {
266
+ ..._defaultConfig,
267
+ watcher: {
268
+ ..._defaultConfig?.watcher,
269
+ additionalExts: [.../* @__PURE__ */ new Set([..._defaultConfig?.watcher?.additionalExts ?? [], ...expoEnvAdditionalExts])]
270
+ },
271
+ resolver: {
272
+ ..._defaultConfig?.resolver,
273
+ useWatchman,
274
+ blockList,
275
+ sourceExts: [
276
+ "js",
277
+ "jsx",
278
+ "json",
279
+ "ts",
280
+ "tsx",
281
+ "mjs",
282
+ "cjs"
283
+ ],
284
+ resolveRequest: (context, moduleName, platform) => {
285
+ const origResolveRequestFn = _defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
286
+ if (excludeModules && excludeModules.length > 0) {
287
+ if (import_micromatch.default.isMatch(moduleName, excludeModules)) {
288
+ return origResolveRequestFn(context, "@vxrn/vite-plugin-metro/empty", platform);
289
+ }
290
+ }
291
+ if (moduleName.startsWith("@babel/runtime")) {
292
+ const contextOverride = {
293
+ ...context,
294
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== "import")
295
+ };
296
+ return origResolveRequestFn(contextOverride, moduleName, platform);
297
+ }
298
+ return origResolveRequestFn(context, moduleName, platform);
299
+ }
300
+ },
301
+ transformer: {
302
+ ..._defaultConfig?.transformer,
303
+ unstable_allowRequireContext: true,
304
+ babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
305
+ },
306
+ ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
307
+ reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)
308
+ };
309
+ const metroConfig = await loadConfig({
310
+ cwd: projectRoot,
311
+ projectRoot,
312
+ "reset-cache": !!process.env.METRO_RESET_CACHE,
313
+ ...argv
314
+ }, {
315
+ ...defaultConfig,
316
+ ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
317
+ });
318
+ return {
319
+ ...enforceBareMainModuleEntry(enforceWorkspaceVisibility(metroConfig, projectRoot), mainModuleName),
320
+ ...extraConfig
321
+ };
322
+ }