vxrn 1.27.1 → 2.0.0-beta.45.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 (456) hide show
  1. package/dist/cli.mjs +212 -261
  2. package/dist/cli.mjs.map +1 -1
  3. package/dist/cli.native.js +216 -265
  4. package/dist/cli.native.js.map +1 -1
  5. package/dist/config/getAdditionalViteConfig.mjs +33 -62
  6. package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
  7. package/dist/config/getAdditionalViteConfig.native.js +33 -62
  8. package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
  9. package/dist/config/getBaseViteConfigOnly.mjs +84 -77
  10. package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
  11. package/dist/config/getBaseViteConfigOnly.native.js +86 -79
  12. package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
  13. package/dist/config/getBaseViteConfigWithPlugins.mjs +6 -4
  14. package/dist/config/getBaseViteConfigWithPlugins.mjs.map +1 -1
  15. package/dist/config/getBaseViteConfigWithPlugins.native.js +6 -4
  16. package/dist/config/getBaseViteConfigWithPlugins.native.js.map +1 -1
  17. package/dist/config/getBaseVitePlugins.mjs +102 -130
  18. package/dist/config/getBaseVitePlugins.mjs.map +1 -1
  19. package/dist/config/getBaseVitePlugins.native.js +123 -152
  20. package/dist/config/getBaseVitePlugins.native.js.map +1 -1
  21. package/dist/config/getNonCliModeOnlyVitePlugins.mjs +3 -3
  22. package/dist/config/getNonCliModeOnlyVitePlugins.mjs.map +1 -1
  23. package/dist/config/getNonCliModeOnlyVitePlugins.native.js +3 -1
  24. package/dist/config/getNonCliModeOnlyVitePlugins.native.js.map +1 -1
  25. package/dist/config/getOptimizeDeps.mjs +138 -42
  26. package/dist/config/getOptimizeDeps.mjs.map +1 -1
  27. package/dist/config/getOptimizeDeps.native.js +138 -42
  28. package/dist/config/getOptimizeDeps.native.js.map +1 -1
  29. package/dist/config/getOptionsFilled.mjs +48 -52
  30. package/dist/config/getOptionsFilled.mjs.map +1 -1
  31. package/dist/config/getOptionsFilled.native.js +51 -55
  32. package/dist/config/getOptionsFilled.native.js.map +1 -1
  33. package/dist/config/getReactNativePlugins.mjs +23 -15
  34. package/dist/config/getReactNativePlugins.mjs.map +1 -1
  35. package/dist/config/getReactNativePlugins.native.js +25 -16
  36. package/dist/config/getReactNativePlugins.native.js.map +1 -1
  37. package/dist/config/getServerOptionsFilled.mjs +33 -35
  38. package/dist/config/getServerOptionsFilled.mjs.map +1 -1
  39. package/dist/config/getServerOptionsFilled.native.js +35 -38
  40. package/dist/config/getServerOptionsFilled.native.js.map +1 -1
  41. package/dist/config/getViteServerConfig.mjs +34 -45
  42. package/dist/config/getViteServerConfig.mjs.map +1 -1
  43. package/dist/config/getViteServerConfig.native.js +35 -46
  44. package/dist/config/getViteServerConfig.native.js.map +1 -1
  45. package/dist/config/mergeUserConfig.mjs +50 -28
  46. package/dist/config/mergeUserConfig.mjs.map +1 -1
  47. package/dist/config/mergeUserConfig.native.js +60 -38
  48. package/dist/config/mergeUserConfig.native.js.map +1 -1
  49. package/dist/constants/defaults.mjs +29 -12
  50. package/dist/constants/defaults.mjs.map +1 -1
  51. package/dist/constants/defaults.native.js +29 -12
  52. package/dist/constants/defaults.native.js.map +1 -1
  53. package/dist/constants.mjs +41 -6
  54. package/dist/constants.mjs.map +1 -1
  55. package/dist/constants.native.js +41 -6
  56. package/dist/constants.native.js.map +1 -1
  57. package/dist/exports/build.mjs +218 -270
  58. package/dist/exports/build.mjs.map +1 -1
  59. package/dist/exports/build.native.js +226 -283
  60. package/dist/exports/build.native.js.map +1 -1
  61. package/dist/exports/clean.mjs +71 -78
  62. package/dist/exports/clean.mjs.map +1 -1
  63. package/dist/exports/clean.native.js +76 -90
  64. package/dist/exports/clean.native.js.map +1 -1
  65. package/dist/exports/createServer.mjs +43 -46
  66. package/dist/exports/createServer.mjs.map +1 -1
  67. package/dist/exports/createServer.native.js +45 -48
  68. package/dist/exports/createServer.native.js.map +1 -1
  69. package/dist/exports/dev.mjs +177 -201
  70. package/dist/exports/dev.mjs.map +1 -1
  71. package/dist/exports/dev.native.js +191 -215
  72. package/dist/exports/dev.native.js.map +1 -1
  73. package/dist/exports/loadEnv.mjs +51 -48
  74. package/dist/exports/loadEnv.mjs.map +1 -1
  75. package/dist/exports/loadEnv.native.js +59 -57
  76. package/dist/exports/loadEnv.native.js.map +1 -1
  77. package/dist/exports/patch.mjs +9 -7
  78. package/dist/exports/patch.mjs.map +1 -1
  79. package/dist/exports/patch.native.js +9 -7
  80. package/dist/exports/patch.native.js.map +1 -1
  81. package/dist/exports/prebuild.mjs +177 -157
  82. package/dist/exports/prebuild.mjs.map +1 -1
  83. package/dist/exports/prebuild.native.js +197 -160
  84. package/dist/exports/prebuild.native.js.map +1 -1
  85. package/dist/exports/prebuildWithoutExpo.mjs +46 -44
  86. package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
  87. package/dist/exports/prebuildWithoutExpo.native.js +48 -46
  88. package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
  89. package/dist/exports/runAndroid.mjs +9 -10
  90. package/dist/exports/runAndroid.mjs.map +1 -1
  91. package/dist/exports/runAndroid.native.js +10 -11
  92. package/dist/exports/runAndroid.native.js.map +1 -1
  93. package/dist/exports/runIos.mjs +9 -10
  94. package/dist/exports/runIos.mjs.map +1 -1
  95. package/dist/exports/runIos.native.js +10 -11
  96. package/dist/exports/runIos.native.js.map +1 -1
  97. package/dist/exports/serve.mjs +23 -31
  98. package/dist/exports/serve.mjs.map +1 -1
  99. package/dist/exports/serve.native.js +26 -34
  100. package/dist/exports/serve.native.js.map +1 -1
  101. package/dist/exports/serveStaticAssets.mjs +109 -113
  102. package/dist/exports/serveStaticAssets.mjs.map +1 -1
  103. package/dist/exports/serveStaticAssets.native.js +180 -192
  104. package/dist/exports/serveStaticAssets.native.js.map +1 -1
  105. package/dist/index.js +25 -14
  106. package/dist/index.mjs +25 -14
  107. package/dist/index.native.js +25 -14
  108. package/dist/patches/builtInDepPatches.mjs +346 -435
  109. package/dist/patches/builtInDepPatches.mjs.map +1 -1
  110. package/dist/patches/builtInDepPatches.native.js +349 -438
  111. package/dist/patches/builtInDepPatches.native.js.map +1 -1
  112. package/dist/plugins/applyBuiltInPatchesPlugin.mjs +11 -11
  113. package/dist/plugins/applyBuiltInPatchesPlugin.mjs.map +1 -1
  114. package/dist/plugins/applyBuiltInPatchesPlugin.native.js +11 -11
  115. package/dist/plugins/applyBuiltInPatchesPlugin.native.js.map +1 -1
  116. package/dist/plugins/autoDepOptimizePlugin.mjs +87 -90
  117. package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
  118. package/dist/plugins/autoDepOptimizePlugin.native.js +99 -102
  119. package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
  120. package/dist/plugins/clientInjectPlugin.mjs +13 -11
  121. package/dist/plugins/clientInjectPlugin.mjs.map +1 -1
  122. package/dist/plugins/clientInjectPlugin.native.js +13 -11
  123. package/dist/plugins/clientInjectPlugin.native.js.map +1 -1
  124. package/dist/plugins/defaultDepOptimizePlugin.mjs +15 -23
  125. package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
  126. package/dist/plugins/defaultDepOptimizePlugin.native.js +15 -23
  127. package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
  128. package/dist/plugins/expoManifestRequestHandlerPlugin.mjs +163 -179
  129. package/dist/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
  130. package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +169 -191
  131. package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
  132. package/dist/plugins/getResolvedConfigSubset.mjs +6 -5
  133. package/dist/plugins/getResolvedConfigSubset.mjs.map +1 -1
  134. package/dist/plugins/getResolvedConfigSubset.native.js +6 -5
  135. package/dist/plugins/getResolvedConfigSubset.native.js.map +1 -1
  136. package/dist/plugins/reactNativeCommonJsPlugin.mjs +210 -178
  137. package/dist/plugins/reactNativeCommonJsPlugin.mjs.map +1 -1
  138. package/dist/plugins/reactNativeCommonJsPlugin.native.js +283 -259
  139. package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
  140. package/dist/plugins/reactNativeDevAssetPlugin.mjs +72 -83
  141. package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
  142. package/dist/plugins/reactNativeDevAssetPlugin.native.js +75 -92
  143. package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
  144. package/dist/plugins/reactNativeDevServer.mjs +283 -328
  145. package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
  146. package/dist/plugins/reactNativeDevServer.native.js +332 -391
  147. package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
  148. package/dist/plugins/rnCodegenPlugin.mjs +13 -12
  149. package/dist/plugins/rnCodegenPlugin.mjs.map +1 -1
  150. package/dist/plugins/rnCodegenPlugin.native.js +13 -12
  151. package/dist/plugins/rnCodegenPlugin.native.js.map +1 -1
  152. package/dist/plugins/rollupRemoveUnusedImports.mjs +8 -7
  153. package/dist/plugins/rollupRemoveUnusedImports.mjs.map +1 -1
  154. package/dist/plugins/rollupRemoveUnusedImports.native.js +8 -7
  155. package/dist/plugins/rollupRemoveUnusedImports.native.js.map +1 -1
  156. package/dist/plugins/workletImportsPlugin.mjs +127 -132
  157. package/dist/plugins/workletImportsPlugin.mjs.map +1 -1
  158. package/dist/plugins/workletImportsPlugin.native.js +192 -203
  159. package/dist/plugins/workletImportsPlugin.native.js.map +1 -1
  160. package/dist/rn-commands/bundle/buildBundle.mjs +45 -79
  161. package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
  162. package/dist/rn-commands/bundle/buildBundle.native.js +45 -85
  163. package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
  164. package/dist/runtime/hmr-client.mjs +133 -140
  165. package/dist/runtime/hmr-client.mjs.map +1 -1
  166. package/dist/runtime/hmr-client.native.js +223 -222
  167. package/dist/runtime/hmr-client.native.js.map +1 -1
  168. package/dist/runtime/hmr-runtime.mjs +192 -194
  169. package/dist/runtime/hmr-runtime.mjs.map +1 -1
  170. package/dist/runtime/hmr-runtime.native.js +424 -411
  171. package/dist/runtime/hmr-runtime.native.js.map +1 -1
  172. package/dist/runtime/hmr-types.mjs +0 -2
  173. package/dist/runtime/hmr-types.native.js +0 -2
  174. package/dist/runtime/native-prelude.mjs +2 -1
  175. package/dist/runtime/native-prelude.mjs.map +1 -1
  176. package/dist/runtime/native-prelude.native.js +2 -1
  177. package/dist/runtime/native-prelude.native.js.map +1 -1
  178. package/dist/runtime/react-refresh-utils.mjs +23 -22
  179. package/dist/runtime/react-refresh-utils.mjs.map +1 -1
  180. package/dist/runtime/react-refresh-utils.native.js +23 -27
  181. package/dist/runtime/react-refresh-utils.native.js.map +1 -1
  182. package/dist/serve/node.mjs +49 -49
  183. package/dist/serve/node.mjs.map +1 -1
  184. package/dist/serve/node.native.js +92 -96
  185. package/dist/serve/node.native.js.map +1 -1
  186. package/dist/types.mjs +0 -2
  187. package/dist/types.native.js +0 -2
  188. package/dist/user-interface/index.mjs +245 -262
  189. package/dist/user-interface/index.mjs.map +1 -1
  190. package/dist/user-interface/index.native.js +274 -298
  191. package/dist/user-interface/index.native.js.map +1 -1
  192. package/dist/utils/assert.mjs +7 -6
  193. package/dist/utils/assert.mjs.map +1 -1
  194. package/dist/utils/assert.native.js +7 -18
  195. package/dist/utils/assert.native.js.map +1 -1
  196. package/dist/utils/bindKeypressInput.mjs +36 -38
  197. package/dist/utils/bindKeypressInput.mjs.map +1 -1
  198. package/dist/utils/bindKeypressInput.native.js +36 -38
  199. package/dist/utils/bindKeypressInput.native.js.map +1 -1
  200. package/dist/utils/coerceToArray.mjs +2 -1
  201. package/dist/utils/coerceToArray.mjs.map +1 -1
  202. package/dist/utils/coerceToArray.native.js +2 -1
  203. package/dist/utils/coerceToArray.native.js.map +1 -1
  204. package/dist/utils/connectedNativeClients.mjs +3 -2
  205. package/dist/utils/connectedNativeClients.mjs.map +1 -1
  206. package/dist/utils/connectedNativeClients.native.js +3 -2
  207. package/dist/utils/connectedNativeClients.native.js.map +1 -1
  208. package/dist/utils/createNativeDevEngine.mjs +992 -966
  209. package/dist/utils/createNativeDevEngine.mjs.map +1 -1
  210. package/dist/utils/createNativeDevEngine.native.js +1184 -1179
  211. package/dist/utils/createNativeDevEngine.native.js.map +1 -1
  212. package/dist/utils/dispose.mjs +4 -3
  213. package/dist/utils/dispose.mjs.map +1 -1
  214. package/dist/utils/dispose.native.js +6 -5
  215. package/dist/utils/dispose.native.js.map +1 -1
  216. package/dist/utils/environmentUtils.mjs +5 -4
  217. package/dist/utils/environmentUtils.mjs.map +1 -1
  218. package/dist/utils/environmentUtils.native.js +5 -4
  219. package/dist/utils/environmentUtils.native.js.map +1 -1
  220. package/dist/utils/execSync.mjs +7 -5
  221. package/dist/utils/execSync.mjs.map +1 -1
  222. package/dist/utils/execSync.native.js +8 -6
  223. package/dist/utils/execSync.native.js.map +1 -1
  224. package/dist/utils/expoRun.mjs +27 -35
  225. package/dist/utils/expoRun.mjs.map +1 -1
  226. package/dist/utils/expoRun.native.js +27 -35
  227. package/dist/utils/expoRun.native.js.map +1 -1
  228. package/dist/utils/filterViteServerResolvedUrls.mjs +24 -22
  229. package/dist/utils/filterViteServerResolvedUrls.mjs.map +1 -1
  230. package/dist/utils/filterViteServerResolvedUrls.native.js +61 -63
  231. package/dist/utils/filterViteServerResolvedUrls.native.js.map +1 -1
  232. package/dist/utils/getBoundPort.mjs +6 -5
  233. package/dist/utils/getBoundPort.mjs.map +1 -1
  234. package/dist/utils/getBoundPort.native.js +8 -12
  235. package/dist/utils/getBoundPort.native.js.map +1 -1
  236. package/dist/utils/getCacheDir.mjs +3 -1
  237. package/dist/utils/getCacheDir.mjs.map +1 -1
  238. package/dist/utils/getCacheDir.native.js +3 -1
  239. package/dist/utils/getCacheDir.native.js.map +1 -1
  240. package/dist/utils/getServerEntry.mjs +6 -4
  241. package/dist/utils/getServerEntry.mjs.map +1 -1
  242. package/dist/utils/getServerEntry.native.js +8 -11
  243. package/dist/utils/getServerEntry.native.js.map +1 -1
  244. package/dist/utils/getVitePath.mjs +42 -42
  245. package/dist/utils/getVitePath.mjs.map +1 -1
  246. package/dist/utils/getVitePath.native.js +43 -41
  247. package/dist/utils/getVitePath.native.js.map +1 -1
  248. package/dist/utils/globDir.mjs +7 -11
  249. package/dist/utils/globDir.mjs.map +1 -1
  250. package/dist/utils/globDir.native.js +10 -14
  251. package/dist/utils/globDir.native.js.map +1 -1
  252. package/dist/utils/isWithin.mjs +4 -2
  253. package/dist/utils/isWithin.mjs.map +1 -1
  254. package/dist/utils/isWithin.native.js +4 -2
  255. package/dist/utils/isWithin.native.js.map +1 -1
  256. package/dist/utils/patches.mjs +233 -255
  257. package/dist/utils/patches.mjs.map +1 -1
  258. package/dist/utils/patches.native.js +415 -460
  259. package/dist/utils/patches.native.js.map +1 -1
  260. package/dist/utils/printServerUrls.mjs +9 -7
  261. package/dist/utils/printServerUrls.mjs.map +1 -1
  262. package/dist/utils/printServerUrls.native.js +48 -51
  263. package/dist/utils/printServerUrls.native.js.map +1 -1
  264. package/dist/utils/removeUndefined.mjs +8 -7
  265. package/dist/utils/removeUndefined.mjs.map +1 -1
  266. package/dist/utils/removeUndefined.native.js +8 -7
  267. package/dist/utils/removeUndefined.native.js.map +1 -1
  268. package/dist/utils/scanDepsToOptimize.mjs +194 -161
  269. package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
  270. package/dist/utils/scanDepsToOptimize.native.js +227 -197
  271. package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
  272. package/dist/utils/state.mjs +18 -18
  273. package/dist/utils/state.mjs.map +1 -1
  274. package/dist/utils/state.native.js +18 -18
  275. package/dist/utils/state.native.js.map +1 -1
  276. package/dist/utils/symbolicateNativeStack.mjs +54 -54
  277. package/dist/utils/symbolicateNativeStack.mjs.map +1 -1
  278. package/dist/utils/symbolicateNativeStack.native.js +58 -58
  279. package/dist/utils/symbolicateNativeStack.native.js.map +1 -1
  280. package/dist/utils/uniq.mjs +2 -1
  281. package/dist/utils/uniq.mjs.map +1 -1
  282. package/dist/utils/uniq.native.js +2 -1
  283. package/dist/utils/uniq.native.js.map +1 -1
  284. package/dist/utils/utils.mjs +19 -19
  285. package/dist/utils/utils.mjs.map +1 -1
  286. package/dist/utils/utils.native.js +38 -40
  287. package/dist/utils/utils.native.js.map +1 -1
  288. package/dist/vendor/debugger-app/index.mjs +0 -2
  289. package/dist/vendor/debugger-app/index.native.js +0 -2
  290. package/dist/vendor/debugger-app/src/debuggerWorker.mjs +0 -2
  291. package/dist/vendor/debugger-app/src/debuggerWorker.native.js +0 -2
  292. package/dist/vendor/debugger-app/src/index.mjs +0 -2
  293. package/dist/vendor/debugger-app/src/index.native.js +0 -2
  294. package/dist/vxrn-vite-plugin.mjs +34 -33
  295. package/dist/vxrn-vite-plugin.mjs.map +1 -1
  296. package/dist/vxrn-vite-plugin.native.js +35 -34
  297. package/dist/vxrn-vite-plugin.native.js.map +1 -1
  298. package/expo-plugin.cjs +12 -6
  299. package/package.json +12 -13
  300. package/src/config/getBaseViteConfigOnly.ts +6 -0
  301. package/src/exports/prebuild.ts +40 -12
  302. package/src/patches/builtInDepPatches.ts +24 -48
  303. package/src/utils/createNativeDevEngine.test.ts +1 -1
  304. package/src/utils/createNativeDevEngine.ts +15 -9
  305. package/src/utils/scanDepsToOptimize.ts +0 -3
  306. package/types/config/getBaseViteConfigOnly.d.ts.map +1 -1
  307. package/types/config/getOptimizeDeps.d.ts.map +1 -1
  308. package/types/config/getOptionsFilled.d.ts +15 -15
  309. package/types/config/getOptionsFilled.d.ts.map +1 -1
  310. package/types/exports/build.d.ts +11 -11
  311. package/types/exports/build.d.ts.map +1 -1
  312. package/types/exports/clean.d.ts +1 -1
  313. package/types/exports/clean.d.ts.map +1 -1
  314. package/types/exports/createServer.d.ts.map +1 -1
  315. package/types/exports/dev.d.ts.map +1 -1
  316. package/types/exports/patch.d.ts.map +1 -1
  317. package/types/exports/prebuild.d.ts +3 -3
  318. package/types/exports/prebuild.d.ts.map +1 -1
  319. package/types/exports/prebuildWithoutExpo.d.ts +1 -1
  320. package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
  321. package/types/exports/runAndroid.d.ts.map +1 -1
  322. package/types/exports/runIos.d.ts.map +1 -1
  323. package/types/exports/serve.d.ts.map +1 -1
  324. package/types/patches/builtInDepPatches.d.ts.map +1 -1
  325. package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
  326. package/types/plugins/rollupRemoveUnusedImports.d.ts.map +1 -1
  327. package/types/runtime/hmr-client.d.ts.map +1 -1
  328. package/types/runtime/hmr-runtime.d.ts.map +1 -1
  329. package/types/runtime/hmr-types.d.ts.map +1 -1
  330. package/types/utils/createNativeDevEngine.d.ts +1 -1
  331. package/types/utils/createNativeDevEngine.d.ts.map +1 -1
  332. package/types/utils/execSync.d.ts.map +1 -1
  333. package/types/utils/getServerEntry.d.ts.map +1 -1
  334. package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
  335. package/types/vxrn-vite-plugin.d.ts.map +1 -1
  336. package/dist/config/getOptimizeDeps.test.mjs +0 -20
  337. package/dist/config/getOptimizeDeps.test.mjs.map +0 -1
  338. package/dist/config/getOptimizeDeps.test.native.js +0 -39
  339. package/dist/config/getOptimizeDeps.test.native.js.map +0 -1
  340. package/dist/config/getServerOptionsFilled.test.mjs +0 -20
  341. package/dist/config/getServerOptionsFilled.test.mjs.map +0 -1
  342. package/dist/config/getServerOptionsFilled.test.native.js +0 -20
  343. package/dist/config/getServerOptionsFilled.test.native.js.map +0 -1
  344. package/dist/config/getViteServerConfig.test.mjs +0 -26
  345. package/dist/config/getViteServerConfig.test.mjs.map +0 -1
  346. package/dist/config/getViteServerConfig.test.native.js +0 -26
  347. package/dist/config/getViteServerConfig.test.native.js.map +0 -1
  348. package/dist/config/mergeUserConfig.test.mjs +0 -108
  349. package/dist/config/mergeUserConfig.test.mjs.map +0 -1
  350. package/dist/config/mergeUserConfig.test.native.js +0 -108
  351. package/dist/config/mergeUserConfig.test.native.js.map +0 -1
  352. package/dist/exports/clean.test.mjs +0 -81
  353. package/dist/exports/clean.test.mjs.map +0 -1
  354. package/dist/exports/clean.test.native.js +0 -88
  355. package/dist/exports/clean.test.native.js.map +0 -1
  356. package/dist/exports/loadEnv.test.mjs +0 -65
  357. package/dist/exports/loadEnv.test.mjs.map +0 -1
  358. package/dist/exports/loadEnv.test.native.js +0 -65
  359. package/dist/exports/loadEnv.test.native.js.map +0 -1
  360. package/dist/index.js.map +0 -1
  361. package/dist/index.mjs.map +0 -1
  362. package/dist/index.native.js.map +0 -1
  363. package/dist/plugins/autoDepOptimizePlugin.test.mjs +0 -31
  364. package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +0 -1
  365. package/dist/plugins/autoDepOptimizePlugin.test.native.js +0 -39
  366. package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +0 -1
  367. package/dist/plugins/resolveIdScan.test.mjs +0 -31
  368. package/dist/plugins/resolveIdScan.test.mjs.map +0 -1
  369. package/dist/plugins/resolveIdScan.test.native.js +0 -38
  370. package/dist/plugins/resolveIdScan.test.native.js.map +0 -1
  371. package/dist/plugins/rnCodegenPlugin.test.mjs +0 -239
  372. package/dist/plugins/rnCodegenPlugin.test.mjs.map +0 -1
  373. package/dist/plugins/rnCodegenPlugin.test.native.js +0 -242
  374. package/dist/plugins/rnCodegenPlugin.test.native.js.map +0 -1
  375. package/dist/plugins/serverExtensions.test.mjs +0 -106
  376. package/dist/plugins/serverExtensions.test.mjs.map +0 -1
  377. package/dist/plugins/serverExtensions.test.native.js +0 -117
  378. package/dist/plugins/serverExtensions.test.native.js.map +0 -1
  379. package/dist/runtime/hmr-types.mjs.map +0 -1
  380. package/dist/runtime/hmr-types.native.js.map +0 -1
  381. package/dist/serve/node.test.mjs +0 -60
  382. package/dist/serve/node.test.mjs.map +0 -1
  383. package/dist/serve/node.test.native.js +0 -72
  384. package/dist/serve/node.test.native.js.map +0 -1
  385. package/dist/types.mjs.map +0 -1
  386. package/dist/types.native.js.map +0 -1
  387. package/dist/utils/bindKeypressInput.test.mjs +0 -48
  388. package/dist/utils/bindKeypressInput.test.mjs.map +0 -1
  389. package/dist/utils/bindKeypressInput.test.native.js +0 -48
  390. package/dist/utils/bindKeypressInput.test.native.js.map +0 -1
  391. package/dist/utils/createNativeDevEngine.test.mjs +0 -1788
  392. package/dist/utils/createNativeDevEngine.test.mjs.map +0 -1
  393. package/dist/utils/createNativeDevEngine.test.native.js +0 -1942
  394. package/dist/utils/createNativeDevEngine.test.native.js.map +0 -1
  395. package/dist/utils/createNativeDevEngineFailure.test.mjs +0 -44
  396. package/dist/utils/createNativeDevEngineFailure.test.mjs.map +0 -1
  397. package/dist/utils/createNativeDevEngineFailure.test.native.js +0 -54
  398. package/dist/utils/createNativeDevEngineFailure.test.native.js.map +0 -1
  399. package/dist/utils/getBoundPort.test.mjs +0 -71
  400. package/dist/utils/getBoundPort.test.mjs.map +0 -1
  401. package/dist/utils/getBoundPort.test.native.js +0 -82
  402. package/dist/utils/getBoundPort.test.native.js.map +0 -1
  403. package/dist/utils/imageSizePatch.test.mjs +0 -29
  404. package/dist/utils/imageSizePatch.test.mjs.map +0 -1
  405. package/dist/utils/imageSizePatch.test.native.js +0 -30
  406. package/dist/utils/imageSizePatch.test.native.js.map +0 -1
  407. package/dist/utils/patches.test.mjs +0 -242
  408. package/dist/utils/patches.test.mjs.map +0 -1
  409. package/dist/utils/patches.test.native.js +0 -271
  410. package/dist/utils/patches.test.native.js.map +0 -1
  411. package/dist/utils/symbolicateNativeStack.test.mjs +0 -96
  412. package/dist/utils/symbolicateNativeStack.test.mjs.map +0 -1
  413. package/dist/utils/symbolicateNativeStack.test.native.js +0 -96
  414. package/dist/utils/symbolicateNativeStack.test.native.js.map +0 -1
  415. package/dist/vendor/debugger-app/index.mjs.map +0 -1
  416. package/dist/vendor/debugger-app/index.native.js.map +0 -1
  417. package/dist/vendor/debugger-app/src/debuggerWorker.mjs.map +0 -1
  418. package/dist/vendor/debugger-app/src/debuggerWorker.native.js.map +0 -1
  419. package/dist/vendor/debugger-app/src/index.mjs.map +0 -1
  420. package/dist/vendor/debugger-app/src/index.native.js.map +0 -1
  421. package/types/config/getOptimizeDeps.test.d.ts +0 -2
  422. package/types/config/getOptimizeDeps.test.d.ts.map +0 -1
  423. package/types/config/getServerOptionsFilled.test.d.ts +0 -2
  424. package/types/config/getServerOptionsFilled.test.d.ts.map +0 -1
  425. package/types/config/getViteServerConfig.test.d.ts +0 -2
  426. package/types/config/getViteServerConfig.test.d.ts.map +0 -1
  427. package/types/config/mergeUserConfig.test.d.ts +0 -2
  428. package/types/config/mergeUserConfig.test.d.ts.map +0 -1
  429. package/types/exports/clean.test.d.ts +0 -2
  430. package/types/exports/clean.test.d.ts.map +0 -1
  431. package/types/exports/loadEnv.test.d.ts +0 -2
  432. package/types/exports/loadEnv.test.d.ts.map +0 -1
  433. package/types/plugins/autoDepOptimizePlugin.test.d.ts +0 -2
  434. package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +0 -1
  435. package/types/plugins/resolveIdScan.test.d.ts +0 -2
  436. package/types/plugins/resolveIdScan.test.d.ts.map +0 -1
  437. package/types/plugins/rnCodegenPlugin.test.d.ts +0 -2
  438. package/types/plugins/rnCodegenPlugin.test.d.ts.map +0 -1
  439. package/types/plugins/serverExtensions.test.d.ts +0 -2
  440. package/types/plugins/serverExtensions.test.d.ts.map +0 -1
  441. package/types/serve/node.test.d.ts +0 -2
  442. package/types/serve/node.test.d.ts.map +0 -1
  443. package/types/utils/bindKeypressInput.test.d.ts +0 -2
  444. package/types/utils/bindKeypressInput.test.d.ts.map +0 -1
  445. package/types/utils/createNativeDevEngine.test.d.ts +0 -2
  446. package/types/utils/createNativeDevEngine.test.d.ts.map +0 -1
  447. package/types/utils/createNativeDevEngineFailure.test.d.ts +0 -2
  448. package/types/utils/createNativeDevEngineFailure.test.d.ts.map +0 -1
  449. package/types/utils/getBoundPort.test.d.ts +0 -2
  450. package/types/utils/getBoundPort.test.d.ts.map +0 -1
  451. package/types/utils/imageSizePatch.test.d.ts +0 -2
  452. package/types/utils/imageSizePatch.test.d.ts.map +0 -1
  453. package/types/utils/patches.test.d.ts +0 -2
  454. package/types/utils/patches.test.d.ts.map +0 -1
  455. package/types/utils/symbolicateNativeStack.test.d.ts +0 -2
  456. package/types/utils/symbolicateNativeStack.test.d.ts.map +0 -1
@@ -9,278 +9,256 @@ import { rename } from "node:fs/promises";
9
9
  import semver from "semver";
10
10
  import { builtInDepPatches } from "../patches/builtInDepPatches.mjs";
11
11
  import { globDir } from "./globDir.mjs";
12
- class Bail extends Error {}
12
+
13
+ var Bail = class extends Error {};
13
14
  function bailIfUnchanged(obj1, obj2) {
14
- if (JSON.stringify(obj1) === JSON.stringify(obj2)) {
15
- throw new Bail();
16
- }
15
+ if (JSON.stringify(obj1) === JSON.stringify(obj2)) {
16
+ throw new Bail();
17
+ }
17
18
  }
18
19
  function bailIfExists(haystack, needle) {
19
- if (haystack.includes(needle)) {
20
- throw new Bail();
21
- }
20
+ if (haystack.includes(needle)) {
21
+ throw new Bail();
22
+ }
22
23
  }
23
24
  async function applyBuiltInPatches(options, extraPatches) {
24
- const all = [...builtInDepPatches];
25
- if (extraPatches) {
26
- for (const key in extraPatches) {
27
- const extraPatchFiles = extraPatches[key];
28
- const existing = all.find(x => x.module === key);
29
- if (existing) {
30
- for (const patchKey in extraPatchFiles) {
31
- if (existing.patchFiles[patchKey]) {
32
- console.warn(`Warning: Overwriting One built-in patch with user patch`, key, patchKey);
33
- }
34
- existing.patchFiles[patchKey] = extraPatchFiles[patchKey];
35
- }
36
- } else {
37
- all.push({
38
- module: key,
39
- patchFiles: extraPatchFiles
40
- });
41
- }
42
- }
43
- }
44
- await applyDependencyPatches(all, {
45
- root: options.root
46
- });
25
+ const all = [...builtInDepPatches];
26
+ if (extraPatches) {
27
+ for (const key in extraPatches) {
28
+ const extraPatchFiles = extraPatches[key];
29
+ const existing = all.find((x) => x.module === key);
30
+ if (existing) {
31
+ for (const patchKey in extraPatchFiles) {
32
+ if (existing.patchFiles[patchKey]) {
33
+ console.warn(`Warning: Overwriting One built-in patch with user patch`, key, patchKey);
34
+ }
35
+ existing.patchFiles[patchKey] = extraPatchFiles[patchKey];
36
+ }
37
+ } else {
38
+ all.push({
39
+ module: key,
40
+ patchFiles: extraPatchFiles
41
+ });
42
+ }
43
+ }
44
+ }
45
+ await applyDependencyPatches(all, { root: options.root });
47
46
  }
48
47
  const STATS_FILE = ".vxrn.patch-stats.json";
49
48
  function getOriginalPath(fullPath) {
50
- return fullPath + ".vxrn.original";
49
+ return fullPath + ".vxrn.original";
51
50
  }
52
51
  async function readPatchStats(nodeModulesDir) {
53
- try {
54
- return await FSExtra.readJSON(join(nodeModulesDir, STATS_FILE));
55
- } catch {
56
- return {};
57
- }
52
+ try {
53
+ return await FSExtra.readJSON(join(nodeModulesDir, STATS_FILE));
54
+ } catch {
55
+ return {};
56
+ }
58
57
  }
59
58
  async function writePatchStats(nodeModulesDir, stats) {
60
- await FSExtra.writeJSON(join(nodeModulesDir, STATS_FILE), stats);
59
+ await FSExtra.writeJSON(join(nodeModulesDir, STATS_FILE), stats);
61
60
  }
62
61
  function moduleToPnpmStorePattern(moduleName) {
63
- return moduleName.replace("/", "+");
62
+ return moduleName.replace("/", "+");
64
63
  }
65
- async function applyDependencyPatches(patches, {
66
- root = process.cwd()
67
- } = {}) {
68
- const patchModuleNames = [...new Set(patches.map(p => p.module))];
69
- const nodeModulesDirs = findNodeModules({
70
- cwd: root
71
- }).flatMap(relativePath => {
72
- const dir = join(root, relativePath);
73
- const dirs = [dir];
74
- const pnpmBase = join(dir, ".pnpm");
75
- if (!FSExtra.existsSync(pnpmBase)) return dirs;
76
- const pnpmHoistedDir = join(pnpmBase, "node_modules");
77
- if (FSExtra.existsSync(pnpmHoistedDir)) {
78
- dirs.push(pnpmHoistedDir);
79
- }
80
- for (const moduleName of patchModuleNames) {
81
- const storePattern = moduleToPnpmStorePattern(moduleName);
82
- const storeMatches = Glob.sync(`${storePattern}@*/node_modules`, {
83
- cwd: pnpmBase,
84
- onlyDirectories: true
85
- });
86
- for (const match of storeMatches) {
87
- dirs.push(join(pnpmBase, match));
88
- }
89
- }
90
- return dirs;
91
- });
92
- const results = /* @__PURE__ */new Map();
93
- const transformWarnedModules = /* @__PURE__ */new Set();
94
- const patchedRealPaths = /* @__PURE__ */new Set();
95
- await Promise.all(nodeModulesDirs.map(async nodeModulesDir => {
96
- const patchStats = await readPatchStats(nodeModulesDir);
97
- let statsChanged = false;
98
- await Promise.all(patches.map(async patch => {
99
- try {
100
- const nodeModuleDir = join(nodeModulesDir, patch.module);
101
- if (!FSExtra.existsSync(nodeModuleDir)) return;
102
- let realModuleDir;
103
- try {
104
- realModuleDir = realpathSync(nodeModuleDir);
105
- } catch {
106
- return;
107
- }
108
- const patchIdx = patches.indexOf(patch);
109
- const dedupKey = `${patchIdx}\0${realModuleDir}`;
110
- if (patchedRealPaths.has(dedupKey)) return;
111
- patchedRealPaths.add(dedupKey);
112
- const version = patch.patchFiles.version;
113
- if (typeof version === "string") {
114
- const pkgJSON = await FSExtra.readJSON(join(nodeModuleDir, "package.json"));
115
- if (!semver.satisfies(pkgJSON.version, version)) return;
116
- }
117
- const filePatches = [];
118
- for (const file in patch.patchFiles) {
119
- if (file === "version") continue;
120
- const filesToApply = file.includes("*") ? globDir(nodeModuleDir, file) : [file];
121
- for (const relativePath of filesToApply) {
122
- filePatches.push({
123
- relativePath,
124
- patchDefinition: patch.patchFiles[file]
125
- });
126
- }
127
- }
128
- const fileStatsResults = await Promise.all(filePatches.map(async ({
129
- relativePath
130
- }) => {
131
- const fullPath = join(nodeModuleDir, relativePath);
132
- try {
133
- const stat = await FSExtra.stat(fullPath);
134
- return {
135
- relativePath,
136
- fullPath,
137
- stat,
138
- exists: true
139
- };
140
- } catch {
141
- return {
142
- relativePath,
143
- fullPath,
144
- stat: null,
145
- exists: false
146
- };
147
- }
148
- }));
149
- const filesToProcess = fileStatsResults.filter(({
150
- fullPath,
151
- stat,
152
- exists
153
- }) => {
154
- if (!exists || !stat) return false;
155
- if (process.env.VXRN_FORCE_PATCH) return true;
156
- const cached = patchStats[fullPath];
157
- if (!cached) return true;
158
- return stat.size !== cached.size || stat.mtimeMs !== cached.mtimeMs;
159
- });
160
- if (filesToProcess.length === 0) {
161
- if (!results.has(patch.module)) {
162
- results.set(patch.module, "ok");
163
- }
164
- return;
165
- }
166
- let didApplyPatch = false;
167
- await Promise.all(filesToProcess.map(async ({
168
- relativePath,
169
- fullPath
170
- }) => {
171
- try {
172
- const patchDef = filePatches.find(p => p.relativePath === relativePath).patchDefinition;
173
- const originalPath = getOriginalPath(fullPath);
174
- const [targetContent, originalContent] = await Promise.all([FSExtra.readFile(fullPath, "utf-8"), FSExtra.readFile(originalPath, "utf-8").catch(() => null)]);
175
- const sourceContent = originalContent ?? targetContent;
176
- let patchedContent = null;
177
- if (typeof patchDef === "string") {
178
- patchedContent = patchDef;
179
- } else if (Array.isArray(patchDef)) {
180
- try {
181
- let contents = sourceContent;
182
- for (const strategy of patchDef) {
183
- if (strategy === "flow") {
184
- contents = await transformFlowBabel(contents);
185
- }
186
- if (strategy === "swc" || strategy === "jsx") {
187
- contents = (await transformSWC(fullPath, contents, {
188
- mode: "build",
189
- environment: "ios",
190
- forceJSX: strategy === "jsx",
191
- noHMR: true,
192
- fixNonTypeSpecificImports: true,
193
- // a patch is written to node_modules ONCE and then read by
194
- // every later build, dev and production alike, so its output
195
- // has to be valid in both. the automatic JSX runtime is not:
196
- // its dev form emits `jsxDEV` from react/jsx-dev-runtime, and
197
- // React's production build exports `jsxDEV = void 0`, so a
198
- // patched dependency that renders JSX throws "undefined is not
199
- // a function" from render in any production bundle. `jsx`/`jsxs`
200
- // work in both builds, and refresh is already off for
201
- // node_modules, so the stable runtime is the only correct output.
202
- production: true
203
- }))?.code || contents;
204
- }
205
- }
206
- if (contents !== sourceContent) {
207
- patchedContent = contents;
208
- }
209
- } catch (transformErr) {
210
- if (!transformWarnedModules.has(patch.module)) {
211
- transformWarnedModules.add(patch.module);
212
- console.warn(` \u26A0 Patch transform failed for ${patch.module} in ${relativePath}, skipping non-critical patch: ${transformErr?.stack ?? transformErr}`);
213
- }
214
- return;
215
- }
216
- } else {
217
- const out = await patchDef(sourceContent);
218
- if (typeof out === "string" && out !== sourceContent) {
219
- patchedContent = out;
220
- } else if (typeof out === "string") {
221
- console.warn(`[vxrn] patch for ${patch.module} matched nothing in ${relativePath} \u2014 it is stale and is no longer protecting anything`);
222
- }
223
- }
224
- if (patchedContent !== null) {
225
- if (targetContent === patchedContent) {
226
- const stat2 = await FSExtra.stat(fullPath);
227
- patchStats[fullPath] = {
228
- size: stat2.size,
229
- mtimeMs: stat2.mtimeMs
230
- };
231
- statsChanged = true;
232
- return;
233
- }
234
- await Promise.all([originalContent === null && atomicWriteFile(originalPath, sourceContent), atomicWriteFile(fullPath, patchedContent)]);
235
- const stat = await FSExtra.stat(fullPath);
236
- patchStats[fullPath] = {
237
- size: stat.size,
238
- mtimeMs: stat.mtimeMs
239
- };
240
- statsChanged = true;
241
- didApplyPatch = true;
242
- if (process.env.DEBUG) {
243
- console.info(` - Applied patch to ${patch.module}: ${relativePath}`);
244
- }
245
- } else {
246
- const stat = await FSExtra.stat(fullPath);
247
- patchStats[fullPath] = {
248
- size: stat.size,
249
- mtimeMs: stat.mtimeMs
250
- };
251
- statsChanged = true;
252
- }
253
- } catch (err) {
254
- if (err instanceof Bail) return;
255
- throw err;
256
- }
257
- }));
258
- if (didApplyPatch) {
259
- results.set(patch.module, "applied");
260
- } else if (!results.has(patch.module)) {
261
- results.set(patch.module, "ok");
262
- }
263
- } catch (err) {
264
- console.error(`\u{1F6A8} Error applying patch to`, patch.module);
265
- console.error(err);
266
- }
267
- }));
268
- if (statsChanged) {
269
- await writePatchStats(nodeModulesDir, patchStats);
270
- }
271
- }));
272
- for (const [module, result] of results) {
273
- if (result === "applied") {
274
- console.info(` \u{1FA79} ${module}`);
275
- } else if (result === "ok" && process.env.VXRN_FORCE_PATCH) {
276
- console.info(` \u2713 ${module}`);
277
- }
278
- }
64
+ async function applyDependencyPatches(patches, { root = process.cwd() } = {}) {
65
+ const patchModuleNames = [...new Set(patches.map((p) => p.module))];
66
+ const nodeModulesDirs = findNodeModules({ cwd: root }).flatMap((relativePath) => {
67
+ const dir = join(root, relativePath);
68
+ const dirs = [dir];
69
+ const pnpmBase = join(dir, ".pnpm");
70
+ if (!FSExtra.existsSync(pnpmBase)) return dirs;
71
+ const pnpmHoistedDir = join(pnpmBase, "node_modules");
72
+ if (FSExtra.existsSync(pnpmHoistedDir)) {
73
+ dirs.push(pnpmHoistedDir);
74
+ }
75
+ for (const moduleName of patchModuleNames) {
76
+ const storePattern = moduleToPnpmStorePattern(moduleName);
77
+ const storeMatches = Glob.sync(`${storePattern}@*/node_modules`, {
78
+ cwd: pnpmBase,
79
+ onlyDirectories: true
80
+ });
81
+ for (const match of storeMatches) {
82
+ dirs.push(join(pnpmBase, match));
83
+ }
84
+ }
85
+ return dirs;
86
+ });
87
+ const results = /* @__PURE__ */ new Map();
88
+ const transformWarnedModules = /* @__PURE__ */ new Set();
89
+ const patchedRealPaths = /* @__PURE__ */ new Set();
90
+ await Promise.all(nodeModulesDirs.map(async (nodeModulesDir) => {
91
+ const patchStats = await readPatchStats(nodeModulesDir);
92
+ let statsChanged = false;
93
+ await Promise.all(patches.map(async (patch) => {
94
+ try {
95
+ const nodeModuleDir = join(nodeModulesDir, patch.module);
96
+ if (!FSExtra.existsSync(nodeModuleDir)) return;
97
+ let realModuleDir;
98
+ try {
99
+ realModuleDir = realpathSync(nodeModuleDir);
100
+ } catch {
101
+ return;
102
+ }
103
+ const patchIdx = patches.indexOf(patch);
104
+ const dedupKey = `${patchIdx}\0${realModuleDir}`;
105
+ if (patchedRealPaths.has(dedupKey)) return;
106
+ patchedRealPaths.add(dedupKey);
107
+ const version = patch.patchFiles.version;
108
+ if (typeof version === "string") {
109
+ const pkgJSON = await FSExtra.readJSON(join(nodeModuleDir, "package.json"));
110
+ if (!semver.satisfies(pkgJSON.version, version)) return;
111
+ }
112
+ const filePatches = [];
113
+ for (const file in patch.patchFiles) {
114
+ if (file === "version") continue;
115
+ const filesToApply = file.includes("*") ? globDir(nodeModuleDir, file) : [file];
116
+ for (const relativePath of filesToApply) {
117
+ filePatches.push({
118
+ relativePath,
119
+ patchDefinition: patch.patchFiles[file]
120
+ });
121
+ }
122
+ }
123
+ const fileStatsResults = await Promise.all(filePatches.map(async ({ relativePath }) => {
124
+ const fullPath = join(nodeModuleDir, relativePath);
125
+ try {
126
+ const stat = await FSExtra.stat(fullPath);
127
+ return {
128
+ relativePath,
129
+ fullPath,
130
+ stat,
131
+ exists: true
132
+ };
133
+ } catch {
134
+ return {
135
+ relativePath,
136
+ fullPath,
137
+ stat: null,
138
+ exists: false
139
+ };
140
+ }
141
+ }));
142
+ const filesToProcess = fileStatsResults.filter(({ fullPath, stat, exists }) => {
143
+ if (!exists || !stat) return false;
144
+ if (process.env.VXRN_FORCE_PATCH) return true;
145
+ const cached = patchStats[fullPath];
146
+ if (!cached) return true;
147
+ return stat.size !== cached.size || stat.mtimeMs !== cached.mtimeMs;
148
+ });
149
+ if (filesToProcess.length === 0) {
150
+ if (!results.has(patch.module)) {
151
+ results.set(patch.module, "ok");
152
+ }
153
+ return;
154
+ }
155
+ let didApplyPatch = false;
156
+ await Promise.all(filesToProcess.map(async ({ relativePath, fullPath }) => {
157
+ try {
158
+ const patchDef = filePatches.find((p) => p.relativePath === relativePath).patchDefinition;
159
+ const originalPath = getOriginalPath(fullPath);
160
+ const [targetContent, originalContent] = await Promise.all([FSExtra.readFile(fullPath, "utf-8"), FSExtra.readFile(originalPath, "utf-8").catch(() => null)]);
161
+ const sourceContent = originalContent ?? targetContent;
162
+ let patchedContent = null;
163
+ if (typeof patchDef === "string") {
164
+ patchedContent = patchDef;
165
+ } else if (Array.isArray(patchDef)) {
166
+ try {
167
+ let contents = sourceContent;
168
+ for (const strategy of patchDef) {
169
+ if (strategy === "flow") {
170
+ contents = await transformFlowBabel(contents);
171
+ }
172
+ if (strategy === "swc" || strategy === "jsx") {
173
+ contents = (await transformSWC(fullPath, contents, {
174
+ mode: "build",
175
+ environment: "ios",
176
+ forceJSX: strategy === "jsx",
177
+ noHMR: true,
178
+ fixNonTypeSpecificImports: true,
179
+ production: true
180
+ }))?.code || contents;
181
+ }
182
+ }
183
+ if (contents !== sourceContent) {
184
+ patchedContent = contents;
185
+ }
186
+ } catch (transformErr) {
187
+ if (!transformWarnedModules.has(patch.module)) {
188
+ transformWarnedModules.add(patch.module);
189
+ console.warn(` \u26A0 Patch transform failed for ${patch.module} in ${relativePath}, skipping non-critical patch: ${transformErr?.stack ?? transformErr}`);
190
+ }
191
+ return;
192
+ }
193
+ } else {
194
+ const out = await patchDef(sourceContent);
195
+ if (typeof out === "string" && out !== sourceContent) {
196
+ patchedContent = out;
197
+ } else if (typeof out === "string") {
198
+ console.warn(`[vxrn] patch for ${patch.module} matched nothing in ${relativePath} \u2014 it is stale and is no longer protecting anything`);
199
+ }
200
+ }
201
+ if (patchedContent !== null) {
202
+ if (targetContent === patchedContent) {
203
+ const stat2 = await FSExtra.stat(fullPath);
204
+ patchStats[fullPath] = {
205
+ size: stat2.size,
206
+ mtimeMs: stat2.mtimeMs
207
+ };
208
+ statsChanged = true;
209
+ return;
210
+ }
211
+ await Promise.all([originalContent === null && atomicWriteFile(originalPath, sourceContent), atomicWriteFile(fullPath, patchedContent)]);
212
+ const stat = await FSExtra.stat(fullPath);
213
+ patchStats[fullPath] = {
214
+ size: stat.size,
215
+ mtimeMs: stat.mtimeMs
216
+ };
217
+ statsChanged = true;
218
+ didApplyPatch = true;
219
+ if (process.env.DEBUG) {
220
+ console.info(` - Applied patch to ${patch.module}: ${relativePath}`);
221
+ }
222
+ } else {
223
+ const stat = await FSExtra.stat(fullPath);
224
+ patchStats[fullPath] = {
225
+ size: stat.size,
226
+ mtimeMs: stat.mtimeMs
227
+ };
228
+ statsChanged = true;
229
+ }
230
+ } catch (err) {
231
+ if (err instanceof Bail) return;
232
+ throw err;
233
+ }
234
+ }));
235
+ if (didApplyPatch) {
236
+ results.set(patch.module, "applied");
237
+ } else if (!results.has(patch.module)) {
238
+ results.set(patch.module, "ok");
239
+ }
240
+ } catch (err) {
241
+ console.error(`\u{1F6A8} Error applying patch to`, patch.module);
242
+ console.error(err);
243
+ }
244
+ }));
245
+ if (statsChanged) {
246
+ await writePatchStats(nodeModulesDir, patchStats);
247
+ }
248
+ }));
249
+ for (const [module, result] of results) {
250
+ if (result === "applied") {
251
+ console.info(` \u{1FA79} ${module}`);
252
+ } else if (result === "ok" && process.env.VXRN_FORCE_PATCH) {
253
+ console.info(` \u2713 ${module}`);
254
+ }
255
+ }
279
256
  }
280
257
  async function atomicWriteFile(filePath, contents) {
281
- const tempPath = filePath + ".vxrn.tmp." + process.pid + "." + Date.now();
282
- await FSExtra.writeFile(tempPath, contents);
283
- await rename(tempPath, filePath);
258
+ const tempPath = filePath + ".vxrn.tmp." + process.pid + "." + Date.now();
259
+ await FSExtra.writeFile(tempPath, contents);
260
+ await rename(tempPath, filePath);
284
261
  }
262
+
285
263
  export { applyBuiltInPatches, applyDependencyPatches, bailIfExists, bailIfUnchanged, moduleToPnpmStorePattern };
286
264
  //# sourceMappingURL=patches.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["transformSWC","transformFlowBabel","Glob","findNodeModules","FSExtra","realpathSync","join","rename","semver","builtInDepPatches","globDir","Bail","Error","bailIfUnchanged","obj1","obj2","JSON","stringify","bailIfExists","haystack","needle","includes","applyBuiltInPatches","options","extraPatches","all","key","extraPatchFiles","existing","find","x","module","patchKey","patchFiles","console","warn","push","applyDependencyPatches","root","STATS_FILE","getOriginalPath","fullPath","readPatchStats","nodeModulesDir","readJSON","writePatchStats","stats","writeJSON","moduleToPnpmStorePattern","moduleName","replace","patches","process","cwd","patchModuleNames","Set","map","p","nodeModulesDirs","flatMap","relativePath","dir","dirs","pnpmBase","existsSync","pnpmHoistedDir","storePattern","storeMatches","sync","onlyDirectories","match","results","Map","transformWarnedModules","patchedRealPaths","Promise","patchStats","statsChanged","patch","nodeModuleDir","realModuleDir","patchIdx","indexOf","dedupKey","has","add","version","pkgJSON","satisfies","filePatches","file","filesToApply","patchDefinition","fileStatsResults","stat","exists","filesToProcess","filter","env","VXRN_FORCE_PATCH","cached","size","mtimeMs","length","set","didApplyPatch","patchDef","originalPath","targetContent","originalContent","readFile","catch","sourceContent","patchedContent","Array","isArray","contents","strategy","mode","environment","forceJSX","noHMR","fixNonTypeSpecificImports","production","code","transformErr","stack","out","stat2","atomicWriteFile","DEBUG","info","err","error","result","filePath","tempPath","pid","Date","now","writeFile"],"sources":["../../src/utils/patches.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"patches.js","names":[],"sources":["utils/patches.js"],"sourcesContent":["import { transformSWC } from \"@vxrn/compiler\";\nimport { transformFlowBabel } from \"@vxrn/vite-flow\";\nimport Glob from \"fast-glob\";\nimport findNodeModules from \"find-node-modules\";\nimport FSExtra from \"fs-extra\";\nimport { realpathSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { rename } from \"node:fs/promises\";\nimport semver from \"semver\";\nimport { builtInDepPatches } from \"../patches/builtInDepPatches\";\nimport { globDir } from \"./globDir\";\nclass Bail extends Error {\n}\nfunction bailIfUnchanged(obj1, obj2) {\n if (JSON.stringify(obj1) === JSON.stringify(obj2)) {\n throw new Bail();\n }\n}\nfunction bailIfExists(haystack, needle) {\n if (haystack.includes(needle)) {\n throw new Bail();\n }\n}\nasync function applyBuiltInPatches(options, extraPatches) {\n const all = [...builtInDepPatches];\n if (extraPatches) {\n for (const key in extraPatches) {\n const extraPatchFiles = extraPatches[key];\n const existing = all.find((x) => x.module === key);\n if (existing) {\n for (const patchKey in extraPatchFiles) {\n if (existing.patchFiles[patchKey]) {\n console.warn(\n `Warning: Overwriting One built-in patch with user patch`,\n key,\n patchKey\n );\n }\n existing.patchFiles[patchKey] = extraPatchFiles[patchKey];\n }\n } else {\n all.push({ module: key, patchFiles: extraPatchFiles });\n }\n }\n }\n await applyDependencyPatches(all, { root: options.root });\n}\nconst STATS_FILE = \".vxrn.patch-stats.json\";\nfunction getOriginalPath(fullPath) {\n return fullPath + \".vxrn.original\";\n}\nasync function readPatchStats(nodeModulesDir) {\n try {\n return await FSExtra.readJSON(join(nodeModulesDir, STATS_FILE));\n } catch {\n return {};\n }\n}\nasync function writePatchStats(nodeModulesDir, stats) {\n await FSExtra.writeJSON(join(nodeModulesDir, STATS_FILE), stats);\n}\nfunction moduleToPnpmStorePattern(moduleName) {\n return moduleName.replace(\"/\", \"+\");\n}\nasync function applyDependencyPatches(patches, { root = process.cwd() } = {}) {\n const patchModuleNames = [...new Set(patches.map((p) => p.module))];\n const nodeModulesDirs = findNodeModules({ cwd: root }).flatMap((relativePath) => {\n const dir = join(root, relativePath);\n const dirs = [dir];\n const pnpmBase = join(dir, \".pnpm\");\n if (!FSExtra.existsSync(pnpmBase)) return dirs;\n const pnpmHoistedDir = join(pnpmBase, \"node_modules\");\n if (FSExtra.existsSync(pnpmHoistedDir)) {\n dirs.push(pnpmHoistedDir);\n }\n for (const moduleName of patchModuleNames) {\n const storePattern = moduleToPnpmStorePattern(moduleName);\n const storeMatches = Glob.sync(`${storePattern}@*/node_modules`, {\n cwd: pnpmBase,\n onlyDirectories: true\n });\n for (const match of storeMatches) {\n dirs.push(join(pnpmBase, match));\n }\n }\n return dirs;\n });\n const results = /* @__PURE__ */ new Map();\n const transformWarnedModules = /* @__PURE__ */ new Set();\n const patchedRealPaths = /* @__PURE__ */ new Set();\n await Promise.all(\n nodeModulesDirs.map(async (nodeModulesDir) => {\n const patchStats = await readPatchStats(nodeModulesDir);\n let statsChanged = false;\n await Promise.all(\n patches.map(async (patch) => {\n try {\n const nodeModuleDir = join(nodeModulesDir, patch.module);\n if (!FSExtra.existsSync(nodeModuleDir)) return;\n let realModuleDir;\n try {\n realModuleDir = realpathSync(nodeModuleDir);\n } catch {\n return;\n }\n const patchIdx = patches.indexOf(patch);\n const dedupKey = `${patchIdx}\\0${realModuleDir}`;\n if (patchedRealPaths.has(dedupKey)) return;\n patchedRealPaths.add(dedupKey);\n const version = patch.patchFiles.version;\n if (typeof version === \"string\") {\n const pkgJSON = await FSExtra.readJSON(join(nodeModuleDir, \"package.json\"));\n if (!semver.satisfies(pkgJSON.version, version)) return;\n }\n const filePatches = [];\n for (const file in patch.patchFiles) {\n if (file === \"version\") continue;\n const filesToApply = file.includes(\"*\") ? globDir(nodeModuleDir, file) : [file];\n for (const relativePath of filesToApply) {\n filePatches.push({\n relativePath,\n patchDefinition: patch.patchFiles[file]\n });\n }\n }\n const fileStatsResults = await Promise.all(\n filePatches.map(async ({ relativePath }) => {\n const fullPath = join(nodeModuleDir, relativePath);\n try {\n const stat = await FSExtra.stat(fullPath);\n return { relativePath, fullPath, stat, exists: true };\n } catch {\n return { relativePath, fullPath, stat: null, exists: false };\n }\n })\n );\n const filesToProcess = fileStatsResults.filter(\n ({ fullPath, stat, exists }) => {\n if (!exists || !stat) return false;\n if (process.env.VXRN_FORCE_PATCH) return true;\n const cached = patchStats[fullPath];\n if (!cached) return true;\n return stat.size !== cached.size || stat.mtimeMs !== cached.mtimeMs;\n }\n );\n if (filesToProcess.length === 0) {\n if (!results.has(patch.module)) {\n results.set(patch.module, \"ok\");\n }\n return;\n }\n let didApplyPatch = false;\n await Promise.all(\n filesToProcess.map(async ({ relativePath, fullPath }) => {\n try {\n const patchDef = filePatches.find(\n (p) => p.relativePath === relativePath\n ).patchDefinition;\n const originalPath = getOriginalPath(fullPath);\n const [targetContent, originalContent] = await Promise.all([\n FSExtra.readFile(fullPath, \"utf-8\"),\n FSExtra.readFile(originalPath, \"utf-8\").catch(() => null)\n ]);\n const sourceContent = originalContent ?? targetContent;\n let patchedContent = null;\n if (typeof patchDef === \"string\") {\n patchedContent = patchDef;\n } else if (Array.isArray(patchDef)) {\n try {\n let contents = sourceContent;\n for (const strategy of patchDef) {\n if (strategy === \"flow\") {\n contents = await transformFlowBabel(contents);\n }\n if (strategy === \"swc\" || strategy === \"jsx\") {\n contents = (await transformSWC(fullPath, contents, {\n mode: \"build\",\n environment: \"ios\",\n forceJSX: strategy === \"jsx\",\n noHMR: true,\n fixNonTypeSpecificImports: true,\n // a patch is written to node_modules ONCE and then read by\n // every later build, dev and production alike, so its output\n // has to be valid in both. the automatic JSX runtime is not:\n // its dev form emits `jsxDEV` from react/jsx-dev-runtime, and\n // React's production build exports `jsxDEV = void 0`, so a\n // patched dependency that renders JSX throws \"undefined is not\n // a function\" from render in any production bundle. `jsx`/`jsxs`\n // work in both builds, and refresh is already off for\n // node_modules, so the stable runtime is the only correct output.\n production: true\n }))?.code || contents;\n }\n }\n if (contents !== sourceContent) {\n patchedContent = contents;\n }\n } catch (transformErr) {\n if (!transformWarnedModules.has(patch.module)) {\n transformWarnedModules.add(patch.module);\n console.warn(\n ` \\u26A0 Patch transform failed for ${patch.module} in ${relativePath}, skipping non-critical patch: ${transformErr?.stack ?? transformErr}`\n );\n }\n return;\n }\n } else {\n const out = await patchDef(sourceContent);\n if (typeof out === \"string\" && out !== sourceContent) {\n patchedContent = out;\n } else if (typeof out === \"string\") {\n console.warn(\n `[vxrn] patch for ${patch.module} matched nothing in ${relativePath} \\u2014 it is stale and is no longer protecting anything`\n );\n }\n }\n if (patchedContent !== null) {\n if (targetContent === patchedContent) {\n const stat2 = await FSExtra.stat(fullPath);\n patchStats[fullPath] = { size: stat2.size, mtimeMs: stat2.mtimeMs };\n statsChanged = true;\n return;\n }\n await Promise.all([\n originalContent === null && atomicWriteFile(originalPath, sourceContent),\n atomicWriteFile(fullPath, patchedContent)\n ]);\n const stat = await FSExtra.stat(fullPath);\n patchStats[fullPath] = { size: stat.size, mtimeMs: stat.mtimeMs };\n statsChanged = true;\n didApplyPatch = true;\n if (process.env.DEBUG) {\n console.info(\n ` - Applied patch to ${patch.module}: ${relativePath}`\n );\n }\n } else {\n const stat = await FSExtra.stat(fullPath);\n patchStats[fullPath] = { size: stat.size, mtimeMs: stat.mtimeMs };\n statsChanged = true;\n }\n } catch (err) {\n if (err instanceof Bail) return;\n throw err;\n }\n })\n );\n if (didApplyPatch) {\n results.set(patch.module, \"applied\");\n } else if (!results.has(patch.module)) {\n results.set(patch.module, \"ok\");\n }\n } catch (err) {\n console.error(`\\u{1F6A8} Error applying patch to`, patch.module);\n console.error(err);\n }\n })\n );\n if (statsChanged) {\n await writePatchStats(nodeModulesDir, patchStats);\n }\n })\n );\n for (const [module, result] of results) {\n if (result === \"applied\") {\n console.info(` \\u{1FA79} ${module}`);\n } else if (result === \"ok\" && process.env.VXRN_FORCE_PATCH) {\n console.info(` \\u2713 ${module}`);\n }\n }\n}\nasync function atomicWriteFile(filePath, contents) {\n const tempPath = filePath + \".vxrn.tmp.\" + process.pid + \".\" + Date.now();\n await FSExtra.writeFile(tempPath, contents);\n await rename(tempPath, filePath);\n}\nexport {\n applyBuiltInPatches,\n applyDependencyPatches,\n bailIfExists,\n bailIfUnchanged,\n moduleToPnpmStorePattern\n};\n//# sourceMappingURL=patches.js.map\n"],"mappings":"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"}