vxrn 0.1.50 → 0.1.52

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 (330) hide show
  1. package/dist/cjs/exports/bindKeypressInput.js +58 -0
  2. package/dist/cjs/exports/bindKeypressInput.js.map +6 -0
  3. package/dist/cjs/exports/bindKeypressInput.native.js +63 -0
  4. package/dist/cjs/exports/bindKeypressInput.native.js.map +6 -0
  5. package/dist/cjs/exports/build.js +26 -93
  6. package/dist/cjs/exports/build.js.map +2 -2
  7. package/dist/cjs/exports/build.native.js +70 -360
  8. package/dist/cjs/exports/build.native.js.map +2 -2
  9. package/dist/cjs/exports/coerceToArray.js +23 -0
  10. package/dist/cjs/exports/coerceToArray.js.map +6 -0
  11. package/dist/cjs/exports/connectedNativeClients.js +21 -0
  12. package/dist/cjs/exports/connectedNativeClients.js.map +6 -0
  13. package/dist/cjs/exports/dev.js +10 -416
  14. package/dist/cjs/exports/dev.js.map +2 -2
  15. package/dist/cjs/exports/dev.native.js +16 -732
  16. package/dist/cjs/exports/dev.native.js.map +2 -2
  17. package/dist/cjs/exports/entryRoot.js +69 -0
  18. package/dist/cjs/exports/entryRoot.js.map +6 -0
  19. package/dist/cjs/exports/getIndexJsonResponse.js +71 -0
  20. package/dist/cjs/exports/getIndexJsonResponse.js.map +6 -0
  21. package/dist/cjs/exports/getIndexJsonResponse.native.js +99 -0
  22. package/dist/cjs/exports/getIndexJsonResponse.native.js.map +6 -0
  23. package/dist/cjs/exports/getReactNativeBundle.js +160 -0
  24. package/dist/cjs/exports/getReactNativeBundle.js.map +6 -0
  25. package/dist/cjs/exports/getViteServerConfig.js +77 -0
  26. package/dist/cjs/exports/getViteServerConfig.js.map +6 -0
  27. package/dist/cjs/exports/getViteServerConfig.native.js +253 -0
  28. package/dist/cjs/exports/getViteServerConfig.native.js.map +6 -0
  29. package/dist/cjs/exports/hotUpdateCache.js +21 -0
  30. package/dist/cjs/exports/hotUpdateCache.js.map +6 -0
  31. package/dist/cjs/exports/isBuildingNativeBundle.js +21 -0
  32. package/dist/cjs/exports/isBuildingNativeBundle.js.map +6 -0
  33. package/dist/cjs/exports/isWithin.js +25 -0
  34. package/dist/cjs/exports/isWithin.js.map +6 -0
  35. package/dist/cjs/exports/reactNativeHMRPlugin.js +69 -0
  36. package/dist/cjs/exports/reactNativeHMRPlugin.js.map +6 -0
  37. package/dist/cjs/exports/resolveFile.js +28 -0
  38. package/dist/cjs/exports/resolveFile.js.map +6 -0
  39. package/dist/cjs/exports/resolveFile.native.js +34 -0
  40. package/dist/cjs/exports/resolveFile.native.js.map +6 -0
  41. package/dist/cjs/exports/serve.js +1 -1
  42. package/dist/cjs/exports/serve.js.map +1 -1
  43. package/dist/cjs/exports/serve.native.js +1 -1
  44. package/dist/cjs/exports/serve.native.js.map +1 -1
  45. package/dist/cjs/exports/swapPrebuiltReactModules.js +100 -0
  46. package/dist/cjs/exports/swapPrebuiltReactModules.js.map +6 -0
  47. package/dist/cjs/exports/uniq.js +23 -0
  48. package/dist/cjs/exports/uniq.js.map +6 -0
  49. package/dist/cjs/index.js +4 -0
  50. package/dist/cjs/index.js.map +1 -1
  51. package/dist/cjs/index.native.js +8 -0
  52. package/dist/cjs/index.native.js.map +1 -1
  53. package/dist/cjs/plugins/reactNativeCommonJsPlugin.js.map +1 -1
  54. package/dist/cjs/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
  55. package/dist/cjs/plugins/reactNativeHMRPlugin.js +67 -0
  56. package/dist/cjs/plugins/reactNativeHMRPlugin.js.map +6 -0
  57. package/dist/cjs/plugins/reactNativeHMRPlugin.native.js +307 -0
  58. package/dist/cjs/plugins/reactNativeHMRPlugin.native.js.map +6 -0
  59. package/dist/cjs/types.native.js.map +1 -1
  60. package/dist/cjs/utils/bindKeypressInput.js +58 -0
  61. package/dist/cjs/utils/bindKeypressInput.js.map +6 -0
  62. package/dist/cjs/utils/bindKeypressInput.native.js +63 -0
  63. package/dist/cjs/utils/bindKeypressInput.native.js.map +6 -0
  64. package/dist/cjs/utils/coerceToArray.js +23 -0
  65. package/dist/cjs/utils/coerceToArray.js.map +6 -0
  66. package/dist/cjs/utils/coerceToArray.native.js +30 -0
  67. package/dist/cjs/utils/coerceToArray.native.js.map +6 -0
  68. package/dist/cjs/utils/connectedNativeClients.js +29 -0
  69. package/dist/cjs/utils/connectedNativeClients.js.map +6 -0
  70. package/dist/cjs/utils/connectedNativeClients.native.js +36 -0
  71. package/dist/cjs/utils/connectedNativeClients.native.js.map +6 -0
  72. package/dist/cjs/utils/getIndexJsonResponse.js +71 -0
  73. package/dist/cjs/utils/getIndexJsonResponse.js.map +6 -0
  74. package/dist/cjs/utils/getIndexJsonResponse.native.js +99 -0
  75. package/dist/cjs/utils/getIndexJsonResponse.native.js.map +6 -0
  76. package/dist/cjs/utils/getOptimizeDeps.js +8 -7
  77. package/dist/cjs/utils/getOptimizeDeps.js.map +1 -1
  78. package/dist/cjs/utils/getOptimizeDeps.native.js +8 -7
  79. package/dist/cjs/utils/getOptimizeDeps.native.js.map +1 -1
  80. package/dist/cjs/utils/getOptionsFilled.js.map +1 -1
  81. package/dist/cjs/utils/getOptionsFilled.native.js.map +1 -1
  82. package/dist/cjs/utils/getReactNativeBundle.js +165 -0
  83. package/dist/cjs/utils/getReactNativeBundle.js.map +6 -0
  84. package/dist/cjs/utils/getReactNativeBundle.native.js +389 -0
  85. package/dist/cjs/utils/getReactNativeBundle.native.js.map +6 -0
  86. package/dist/cjs/utils/getVitePath.js +2 -2
  87. package/dist/cjs/utils/getVitePath.js.map +2 -2
  88. package/dist/cjs/utils/getVitePath.native.js +8 -8
  89. package/dist/cjs/utils/getVitePath.native.js.map +2 -2
  90. package/dist/cjs/utils/getViteServerConfig.js +80 -0
  91. package/dist/cjs/utils/getViteServerConfig.js.map +6 -0
  92. package/dist/cjs/utils/getViteServerConfig.native.js +256 -0
  93. package/dist/cjs/utils/getViteServerConfig.native.js.map +6 -0
  94. package/dist/cjs/utils/hotUpdateCache.js +21 -0
  95. package/dist/cjs/utils/hotUpdateCache.js.map +6 -0
  96. package/dist/cjs/utils/hotUpdateCache.native.js +26 -0
  97. package/dist/cjs/utils/hotUpdateCache.native.js.map +6 -0
  98. package/dist/cjs/utils/isBuildingNativeBundle.js +25 -0
  99. package/dist/cjs/utils/isBuildingNativeBundle.js.map +6 -0
  100. package/dist/cjs/utils/isBuildingNativeBundle.native.js +32 -0
  101. package/dist/cjs/utils/isBuildingNativeBundle.native.js.map +6 -0
  102. package/dist/cjs/utils/isWithin.js +25 -0
  103. package/dist/cjs/utils/isWithin.js.map +6 -0
  104. package/dist/cjs/utils/isWithin.native.js +30 -0
  105. package/dist/cjs/utils/isWithin.native.js.map +6 -0
  106. package/dist/cjs/utils/readVXRNConfig.js +15 -18
  107. package/dist/cjs/utils/readVXRNConfig.js.map +2 -2
  108. package/dist/cjs/utils/readVXRNConfig.native.js +104 -49
  109. package/dist/cjs/utils/readVXRNConfig.native.js.map +2 -2
  110. package/dist/cjs/utils/resolveFile.js +28 -0
  111. package/dist/cjs/utils/resolveFile.js.map +6 -0
  112. package/dist/cjs/utils/resolveFile.native.js +34 -0
  113. package/dist/cjs/utils/resolveFile.native.js.map +6 -0
  114. package/dist/cjs/utils/swapPrebuiltReactModules.js +108 -0
  115. package/dist/cjs/utils/swapPrebuiltReactModules.js.map +6 -0
  116. package/dist/cjs/utils/swapPrebuiltReactModules.native.js +272 -0
  117. package/dist/cjs/utils/swapPrebuiltReactModules.native.js.map +6 -0
  118. package/dist/cjs/utils/uniq.js +23 -0
  119. package/dist/cjs/utils/uniq.js.map +6 -0
  120. package/dist/cjs/utils/uniq.native.js +59 -0
  121. package/dist/cjs/utils/uniq.native.js.map +6 -0
  122. package/dist/esm/exports/bindKeypressInput.js +34 -0
  123. package/dist/esm/exports/bindKeypressInput.js.map +6 -0
  124. package/dist/esm/exports/bindKeypressInput.mjs +31 -0
  125. package/dist/esm/exports/bindKeypressInput.native.js +34 -0
  126. package/dist/esm/exports/bindKeypressInput.native.js.map +6 -0
  127. package/dist/esm/exports/build.js +27 -98
  128. package/dist/esm/exports/build.js.map +1 -1
  129. package/dist/esm/exports/build.mjs +38 -135
  130. package/dist/esm/exports/build.native.js +71 -366
  131. package/dist/esm/exports/build.native.js.map +2 -2
  132. package/dist/esm/exports/coerceToArray.js +7 -0
  133. package/dist/esm/exports/coerceToArray.js.map +6 -0
  134. package/dist/esm/exports/coerceToArray.mjs +4 -0
  135. package/dist/esm/exports/connectedNativeClients.js +5 -0
  136. package/dist/esm/exports/connectedNativeClients.js.map +6 -0
  137. package/dist/esm/exports/connectedNativeClients.mjs +2 -0
  138. package/dist/esm/exports/dev.js +17 -431
  139. package/dist/esm/exports/dev.js.map +2 -2
  140. package/dist/esm/exports/dev.mjs +15 -430
  141. package/dist/esm/exports/dev.native.js +19 -738
  142. package/dist/esm/exports/dev.native.js.map +2 -2
  143. package/dist/esm/exports/entryRoot.js +58 -0
  144. package/dist/esm/exports/entryRoot.js.map +6 -0
  145. package/dist/esm/exports/entryRoot.mjs +62 -0
  146. package/dist/esm/exports/getIndexJsonResponse.js +55 -0
  147. package/dist/esm/exports/getIndexJsonResponse.js.map +6 -0
  148. package/dist/esm/exports/getIndexJsonResponse.mjs +71 -0
  149. package/dist/esm/exports/getIndexJsonResponse.native.js +78 -0
  150. package/dist/esm/exports/getIndexJsonResponse.native.js.map +6 -0
  151. package/dist/esm/exports/getReactNativeBundle.js +146 -0
  152. package/dist/esm/exports/getReactNativeBundle.js.map +6 -0
  153. package/dist/esm/exports/getReactNativeBundle.mjs +136 -0
  154. package/dist/esm/exports/getViteServerConfig.js +64 -0
  155. package/dist/esm/exports/getViteServerConfig.js.map +6 -0
  156. package/dist/esm/exports/getViteServerConfig.mjs +44 -0
  157. package/dist/esm/exports/getViteServerConfig.native.js +235 -0
  158. package/dist/esm/exports/getViteServerConfig.native.js.map +6 -0
  159. package/dist/esm/exports/hotUpdateCache.js +5 -0
  160. package/dist/esm/exports/hotUpdateCache.js.map +6 -0
  161. package/dist/esm/exports/hotUpdateCache.mjs +2 -0
  162. package/dist/esm/exports/isBuildingNativeBundle.js +5 -0
  163. package/dist/esm/exports/isBuildingNativeBundle.js.map +6 -0
  164. package/dist/esm/exports/isBuildingNativeBundle.mjs +2 -0
  165. package/dist/esm/exports/isWithin.js +9 -0
  166. package/dist/esm/exports/isWithin.js.map +6 -0
  167. package/dist/esm/exports/isWithin.mjs +6 -0
  168. package/dist/esm/exports/reactNativeHMRPlugin.js +58 -0
  169. package/dist/esm/exports/reactNativeHMRPlugin.js.map +6 -0
  170. package/dist/esm/exports/reactNativeHMRPlugin.mjs +62 -0
  171. package/dist/esm/exports/resolveFile.js +12 -0
  172. package/dist/esm/exports/resolveFile.js.map +6 -0
  173. package/dist/esm/exports/resolveFile.mjs +9 -0
  174. package/dist/esm/exports/resolveFile.native.js +12 -0
  175. package/dist/esm/exports/resolveFile.native.js.map +6 -0
  176. package/dist/esm/exports/serve.js +1 -1
  177. package/dist/esm/exports/serve.js.map +1 -1
  178. package/dist/esm/exports/serve.mjs +1 -1
  179. package/dist/esm/exports/serve.native.js +1 -1
  180. package/dist/esm/exports/serve.native.js.map +1 -1
  181. package/dist/esm/exports/swapPrebuiltReactModules.js +87 -0
  182. package/dist/esm/exports/swapPrebuiltReactModules.js.map +6 -0
  183. package/dist/esm/exports/swapPrebuiltReactModules.mjs +73 -0
  184. package/dist/esm/exports/uniq.js +7 -0
  185. package/dist/esm/exports/uniq.js.map +6 -0
  186. package/dist/esm/exports/uniq.mjs +4 -0
  187. package/dist/esm/index.js +4 -0
  188. package/dist/esm/index.js.map +1 -1
  189. package/dist/esm/index.mjs +4 -0
  190. package/dist/esm/index.native.js +4 -0
  191. package/dist/esm/index.native.js.map +1 -1
  192. package/dist/esm/plugins/reactNativeCommonJsPlugin.js.map +1 -1
  193. package/dist/esm/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
  194. package/dist/esm/plugins/reactNativeHMRPlugin.js +57 -0
  195. package/dist/esm/plugins/reactNativeHMRPlugin.js.map +6 -0
  196. package/dist/esm/plugins/reactNativeHMRPlugin.mjs +62 -0
  197. package/dist/esm/plugins/reactNativeHMRPlugin.native.js +292 -0
  198. package/dist/esm/plugins/reactNativeHMRPlugin.native.js.map +6 -0
  199. package/dist/esm/utils/bindKeypressInput.js +34 -0
  200. package/dist/esm/utils/bindKeypressInput.js.map +6 -0
  201. package/dist/esm/utils/bindKeypressInput.mjs +31 -0
  202. package/dist/esm/utils/bindKeypressInput.native.js +34 -0
  203. package/dist/esm/utils/bindKeypressInput.native.js.map +6 -0
  204. package/dist/esm/utils/coerceToArray.js +7 -0
  205. package/dist/esm/utils/coerceToArray.js.map +6 -0
  206. package/dist/esm/utils/coerceToArray.mjs +4 -0
  207. package/dist/esm/utils/coerceToArray.native.js +9 -0
  208. package/dist/esm/utils/coerceToArray.native.js.map +6 -0
  209. package/dist/esm/utils/connectedNativeClients.js +13 -0
  210. package/dist/esm/utils/connectedNativeClients.js.map +6 -0
  211. package/dist/esm/utils/connectedNativeClients.mjs +8 -0
  212. package/dist/esm/utils/connectedNativeClients.native.js +13 -0
  213. package/dist/esm/utils/connectedNativeClients.native.js.map +6 -0
  214. package/dist/esm/utils/getIndexJsonResponse.js +55 -0
  215. package/dist/esm/utils/getIndexJsonResponse.js.map +6 -0
  216. package/dist/esm/utils/getIndexJsonResponse.mjs +71 -0
  217. package/dist/esm/utils/getIndexJsonResponse.native.js +78 -0
  218. package/dist/esm/utils/getIndexJsonResponse.native.js.map +6 -0
  219. package/dist/esm/utils/getOptimizeDeps.js +8 -7
  220. package/dist/esm/utils/getOptimizeDeps.js.map +1 -1
  221. package/dist/esm/utils/getOptimizeDeps.mjs +2 -2
  222. package/dist/esm/utils/getOptimizeDeps.native.js +8 -7
  223. package/dist/esm/utils/getOptimizeDeps.native.js.map +1 -1
  224. package/dist/esm/utils/getOptionsFilled.js.map +1 -1
  225. package/dist/esm/utils/getOptionsFilled.native.js.map +1 -1
  226. package/dist/esm/utils/getReactNativeBundle.js +153 -0
  227. package/dist/esm/utils/getReactNativeBundle.js.map +6 -0
  228. package/dist/esm/utils/getReactNativeBundle.mjs +142 -0
  229. package/dist/esm/utils/getReactNativeBundle.native.js +371 -0
  230. package/dist/esm/utils/getReactNativeBundle.native.js.map +6 -0
  231. package/dist/esm/utils/getVitePath.js +2 -2
  232. package/dist/esm/utils/getVitePath.js.map +1 -1
  233. package/dist/esm/utils/getVitePath.mjs +2 -2
  234. package/dist/esm/utils/getVitePath.native.js +8 -8
  235. package/dist/esm/utils/getVitePath.native.js.map +2 -2
  236. package/dist/esm/utils/getViteServerConfig.js +69 -0
  237. package/dist/esm/utils/getViteServerConfig.js.map +6 -0
  238. package/dist/esm/utils/getViteServerConfig.mjs +49 -0
  239. package/dist/esm/utils/getViteServerConfig.native.js +240 -0
  240. package/dist/esm/utils/getViteServerConfig.native.js.map +6 -0
  241. package/dist/esm/utils/hotUpdateCache.js +5 -0
  242. package/dist/esm/utils/hotUpdateCache.js.map +6 -0
  243. package/dist/esm/utils/hotUpdateCache.mjs +2 -0
  244. package/dist/esm/utils/hotUpdateCache.native.js +5 -0
  245. package/dist/esm/utils/hotUpdateCache.native.js.map +6 -0
  246. package/dist/esm/utils/isBuildingNativeBundle.js +9 -0
  247. package/dist/esm/utils/isBuildingNativeBundle.js.map +6 -0
  248. package/dist/esm/utils/isBuildingNativeBundle.mjs +5 -0
  249. package/dist/esm/utils/isBuildingNativeBundle.native.js +10 -0
  250. package/dist/esm/utils/isBuildingNativeBundle.native.js.map +6 -0
  251. package/dist/esm/utils/isWithin.js +9 -0
  252. package/dist/esm/utils/isWithin.js.map +6 -0
  253. package/dist/esm/utils/isWithin.mjs +6 -0
  254. package/dist/esm/utils/isWithin.native.js +9 -0
  255. package/dist/esm/utils/isWithin.native.js.map +6 -0
  256. package/dist/esm/utils/readVXRNConfig.js +16 -19
  257. package/dist/esm/utils/readVXRNConfig.js.map +1 -1
  258. package/dist/esm/utils/readVXRNConfig.mjs +17 -21
  259. package/dist/esm/utils/readVXRNConfig.native.js +105 -50
  260. package/dist/esm/utils/readVXRNConfig.native.js.map +2 -2
  261. package/dist/esm/utils/resolveFile.js +12 -0
  262. package/dist/esm/utils/resolveFile.js.map +6 -0
  263. package/dist/esm/utils/resolveFile.mjs +9 -0
  264. package/dist/esm/utils/resolveFile.native.js +12 -0
  265. package/dist/esm/utils/resolveFile.native.js.map +6 -0
  266. package/dist/esm/utils/swapPrebuiltReactModules.js +89 -0
  267. package/dist/esm/utils/swapPrebuiltReactModules.js.map +6 -0
  268. package/dist/esm/utils/swapPrebuiltReactModules.mjs +75 -0
  269. package/dist/esm/utils/swapPrebuiltReactModules.native.js +248 -0
  270. package/dist/esm/utils/swapPrebuiltReactModules.native.js.map +6 -0
  271. package/dist/esm/utils/uniq.js +7 -0
  272. package/dist/esm/utils/uniq.js.map +6 -0
  273. package/dist/esm/utils/uniq.mjs +4 -0
  274. package/dist/esm/utils/uniq.native.js +38 -0
  275. package/dist/esm/utils/uniq.native.js.map +6 -0
  276. package/package.json +8 -8
  277. package/src/exports/build.ts +46 -183
  278. package/src/exports/dev.ts +18 -646
  279. package/src/exports/serve.ts +4 -0
  280. package/src/index.ts +5 -0
  281. package/src/plugins/reactNativeCommonJsPlugin.ts +0 -2
  282. package/src/plugins/reactNativeHMRPlugin.ts +105 -0
  283. package/src/types.ts +9 -0
  284. package/src/utils/bindKeypressInput.ts +46 -0
  285. package/src/utils/coerceToArray.ts +3 -0
  286. package/src/utils/connectedNativeClients.ts +9 -0
  287. package/src/utils/getIndexJsonResponse.ts +52 -0
  288. package/src/utils/getOptimizeDeps.ts +9 -8
  289. package/src/utils/getOptionsFilled.ts +0 -1
  290. package/src/utils/getReactNativeBundle.ts +228 -0
  291. package/src/utils/getVitePath.ts +3 -3
  292. package/src/utils/getViteServerConfig.ts +104 -0
  293. package/src/utils/hotUpdateCache.ts +1 -0
  294. package/src/utils/isBuildingNativeBundle.ts +7 -0
  295. package/src/utils/isWithin.ts +6 -0
  296. package/src/utils/readVXRNConfig.ts +81 -25
  297. package/src/utils/resolveFile.ts +9 -0
  298. package/src/utils/swapPrebuiltReactModules.ts +126 -0
  299. package/src/utils/uniq.ts +3 -0
  300. package/types/exports/bindKeypressInput.d.ts +2 -0
  301. package/types/exports/coerceToArray.d.ts +2 -0
  302. package/types/exports/connectedNativeClients.d.ts +2 -0
  303. package/types/exports/dev.d.ts +0 -2
  304. package/types/exports/entryRoot.d.ts +11 -0
  305. package/types/exports/getIndexJsonResponse.d.ts +68 -0
  306. package/types/exports/getReactNativeBundle.d.ts +3 -0
  307. package/types/exports/getViteServerConfig.d.ts +4 -0
  308. package/types/exports/hotUpdateCache.d.ts +2 -0
  309. package/types/exports/isBuildingNativeBundle.d.ts +2 -0
  310. package/types/exports/isWithin.d.ts +2 -0
  311. package/types/exports/reactNativeHMRPlugin.d.ts +11 -0
  312. package/types/exports/resolveFile.d.ts +2 -0
  313. package/types/exports/swapPrebuiltReactModules.d.ts +7 -0
  314. package/types/exports/uniq.d.ts +2 -0
  315. package/types/index.d.ts +4 -0
  316. package/types/plugins/reactNativeHMRPlugin.d.ts +10 -0
  317. package/types/types.d.ts +4 -0
  318. package/types/utils/bindKeypressInput.d.ts +2 -0
  319. package/types/utils/coerceToArray.d.ts +2 -0
  320. package/types/utils/connectedNativeClients.d.ts +4 -0
  321. package/types/utils/getIndexJsonResponse.d.ts +68 -0
  322. package/types/utils/getOptionsFilled.d.ts +2 -0
  323. package/types/utils/getReactNativeBundle.d.ts +4 -0
  324. package/types/utils/getViteServerConfig.d.ts +4 -0
  325. package/types/utils/hotUpdateCache.d.ts +2 -0
  326. package/types/utils/isBuildingNativeBundle.d.ts +3 -0
  327. package/types/utils/isWithin.d.ts +2 -0
  328. package/types/utils/resolveFile.d.ts +2 -0
  329. package/types/utils/swapPrebuiltReactModules.d.ts +7 -0
  330. package/types/utils/uniq.d.ts +2 -0
@@ -0,0 +1,248 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { buildReact, buildReactJSX, buildReactNative } from "@vxrn/react-native-prebuilt";
4
+ import { resolveFile } from "./resolveFile";
5
+ import FSExtra from "fs-extra";
6
+ import { isBuildingNativeBundle } from "./isBuildingNativeBundle";
7
+ function asyncGeneratorStep(gen, resolve2, reject, _next, _throw, key, arg) {
8
+ try {
9
+ var info = gen[key](arg), value = info.value;
10
+ } catch (error) {
11
+ reject(error);
12
+ return;
13
+ }
14
+ info.done ? resolve2(value) : Promise.resolve(value).then(_next, _throw);
15
+ }
16
+ function _async_to_generator(fn) {
17
+ return function() {
18
+ var self = this, args = arguments;
19
+ return new Promise(function(resolve2, reject) {
20
+ var gen = fn.apply(self, args);
21
+ function _next(value) {
22
+ asyncGeneratorStep(gen, resolve2, reject, _next, _throw, "next", value);
23
+ }
24
+ function _throw(err) {
25
+ asyncGeneratorStep(gen, resolve2, reject, _next, _throw, "throw", err);
26
+ }
27
+ _next(void 0);
28
+ });
29
+ };
30
+ }
31
+ function _ts_generator(thisArg, body) {
32
+ var f, y, t, g, _ = {
33
+ label: 0,
34
+ sent: function() {
35
+ if (t[0] & 1)
36
+ throw t[1];
37
+ return t[1];
38
+ },
39
+ trys: [],
40
+ ops: []
41
+ };
42
+ return g = {
43
+ next: verb(0),
44
+ throw: verb(1),
45
+ return: verb(2)
46
+ }, typeof Symbol == "function" && (g[Symbol.iterator] = function() {
47
+ return this;
48
+ }), g;
49
+ function verb(n) {
50
+ return function(v) {
51
+ return step([
52
+ n,
53
+ v
54
+ ]);
55
+ };
56
+ }
57
+ function step(op) {
58
+ if (f)
59
+ throw new TypeError("Generator is already executing.");
60
+ for (; _; )
61
+ try {
62
+ if (f = 1, y && (t = op[0] & 2 ? y.return : op[0] ? y.throw || ((t = y.return) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
63
+ return t;
64
+ switch (y = 0, t && (op = [
65
+ op[0] & 2,
66
+ t.value
67
+ ]), op[0]) {
68
+ case 0:
69
+ case 1:
70
+ t = op;
71
+ break;
72
+ case 4:
73
+ return _.label++, {
74
+ value: op[1],
75
+ done: !1
76
+ };
77
+ case 5:
78
+ _.label++, y = op[1], op = [
79
+ 0
80
+ ];
81
+ continue;
82
+ case 7:
83
+ op = _.ops.pop(), _.trys.pop();
84
+ continue;
85
+ default:
86
+ if (t = _.trys, !(t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
+ _ = 0;
88
+ continue;
89
+ }
90
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
+ _.label = op[1];
92
+ break;
93
+ }
94
+ if (op[0] === 6 && _.label < t[1]) {
95
+ _.label = t[1], t = op;
96
+ break;
97
+ }
98
+ if (t && _.label < t[2]) {
99
+ _.label = t[2], _.ops.push(op);
100
+ break;
101
+ }
102
+ t[2] && _.ops.pop(), _.trys.pop();
103
+ continue;
104
+ }
105
+ op = body.call(thisArg, _);
106
+ } catch (e) {
107
+ op = [
108
+ 6,
109
+ e
110
+ ], y = 0;
111
+ } finally {
112
+ f = t = 0;
113
+ }
114
+ if (op[0] & 5)
115
+ throw op[1];
116
+ return {
117
+ value: op[0] ? op[1] : void 0,
118
+ done: !0
119
+ };
120
+ }
121
+ }
122
+ function swapPrebuiltReactModules(cacheDir) {
123
+ return _swapPrebuiltReactModules.apply(this, arguments);
124
+ }
125
+ function _swapPrebuiltReactModules() {
126
+ return _swapPrebuiltReactModules = _async_to_generator(function(cacheDir) {
127
+ var prebuilds, jsxRuntime, _tmp, virtualModules, _tmp1, _, _tmp2, _tmp3;
128
+ return _ts_generator(this, function(_state) {
129
+ switch (_state.label) {
130
+ case 0:
131
+ return prebuilds = {
132
+ reactJSX: join(cacheDir, "react-jsx-runtime.js"),
133
+ react: join(cacheDir, "react.js"),
134
+ reactNative: join(cacheDir, "react-native.js")
135
+ }, [
136
+ 4,
137
+ FSExtra.pathExists(prebuilds.reactNative)
138
+ ];
139
+ case 1:
140
+ return _state.sent() ? [
141
+ 3,
142
+ 3
143
+ ] : (console.info("Pre-building react, react-native react/jsx-runtime (one time cost)..."), [
144
+ 4,
145
+ Promise.all([
146
+ buildReactNative({
147
+ entryPoints: [
148
+ resolveFile("react-native")
149
+ ],
150
+ outfile: prebuilds.reactNative
151
+ }),
152
+ buildReact({
153
+ entryPoints: [
154
+ resolveFile("react")
155
+ ],
156
+ outfile: prebuilds.react
157
+ }),
158
+ buildReactJSX({
159
+ entryPoints: [
160
+ resolveFile("react/jsx-dev-runtime")
161
+ ],
162
+ outfile: prebuilds.reactJSX
163
+ })
164
+ ])
165
+ ]);
166
+ case 2:
167
+ _state.sent(), _state.label = 3;
168
+ case 3:
169
+ return _tmp = {
170
+ // alias: 'virtual:react-jsx',
171
+ alias: prebuilds.reactJSX
172
+ }, [
173
+ 4,
174
+ readFile(prebuilds.reactJSX, "utf-8")
175
+ ];
176
+ case 4:
177
+ return jsxRuntime = (_tmp.contents = _state.sent(), _tmp), _tmp1 = {}, _ = "react-native", _tmp2 = {
178
+ // alias: 'virtual:react-native',
179
+ alias: prebuilds.reactNative
180
+ }, [
181
+ 4,
182
+ readFile(prebuilds.reactNative, "utf-8")
183
+ ];
184
+ case 5:
185
+ return _tmp1[_] = (_tmp2.contents = _state.sent(), _tmp2), _tmp3 = {
186
+ // alias: 'virtual:react',
187
+ alias: prebuilds.react
188
+ }, [
189
+ 4,
190
+ readFile(prebuilds.react, "utf-8")
191
+ ];
192
+ case 6:
193
+ return virtualModules = (_tmp1.react = (_tmp3.contents = _state.sent(), _tmp3), _tmp1["react/jsx-runtime"] = jsxRuntime, _tmp1["react/jsx-dev-runtime"] = jsxRuntime, _tmp1), [
194
+ 2,
195
+ {
196
+ name: "swap-react-native",
197
+ enforce: "pre",
198
+ resolveId: function(id) {
199
+ var importer = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
200
+ if (id.startsWith("react-native/Libraries"))
201
+ return "virtual:rn-internals:".concat(id);
202
+ if (id === "react-native-web")
203
+ return prebuilds.reactNative;
204
+ for (var targetId in virtualModules)
205
+ if (id === targetId || id.includes("node_modules/".concat(targetId, "/"))) {
206
+ var info = virtualModules[targetId];
207
+ return info.alias;
208
+ }
209
+ if (isBuildingNativeBundle && id[0] === ".") {
210
+ var absolutePath = resolve(dirname(importer), id), nativePath = absolutePath.replace(/(.m?js)/, ".native.js");
211
+ if (nativePath === id)
212
+ return;
213
+ try {
214
+ var directoryPath = absolutePath + "/index.native.js", directoryNonNativePath = absolutePath + "/index.js";
215
+ if (FSExtra.pathExistsSync(directoryPath))
216
+ return directoryPath;
217
+ if (FSExtra.pathExistsSync(directoryNonNativePath))
218
+ return directoryNonNativePath;
219
+ if (FSExtra.pathExistsSync(nativePath))
220
+ return nativePath;
221
+ } catch (err) {
222
+ console.warn("error probably fine", err);
223
+ }
224
+ }
225
+ },
226
+ load: function(id) {
227
+ if (id.startsWith("virtual:rn-internals")) {
228
+ var idOut = id.replace("virtual:rn-internals:", ""), out = 'const ___val = __cachedModules["'.concat(idOut, `"]
229
+ const ___defaultVal = ___val ? ___val.default || ___val : ___val
230
+ export default ___defaultVal`);
231
+ return out;
232
+ }
233
+ for (var targetId in virtualModules) {
234
+ var info = virtualModules[targetId];
235
+ if (id === info.alias)
236
+ return info.contents;
237
+ }
238
+ }
239
+ }
240
+ ];
241
+ }
242
+ });
243
+ }), _swapPrebuiltReactModules.apply(this, arguments);
244
+ }
245
+ export {
246
+ swapPrebuiltReactModules
247
+ };
248
+ //# sourceMappingURL=swapPrebuiltReactModules.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/Users/n8/vxrn/packages/vxrn/src/utils/swapPrebuiltReactModules.ts"],
4
+ "mappings": "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",
5
+ "names": ["readFile", "dirname", "join", "resolve", "buildReact", "buildReactJSX", "buildReactNative", "resolveFile", "FSExtra", "isBuildingNativeBundle", "swapPrebuiltReactModules", "cacheDir", "prebuilds", "jsxRuntime", "virtualModules", "reactJSX", "react", "reactNative", "pathExists", "console", "info", "Promise", "all", "entryPoints", "outfile", "alias", "contents", "name", "enforce", "resolveId", "id", "importer", "startsWith", "targetId", "includes", "absolutePath", "nativePath", "replace", "directoryPath", "directoryNonNativePath", "pathExistsSync", "err", "warn", "load", "idOut", "out"]
6
+ }
@@ -0,0 +1,7 @@
1
+ function uniq(a) {
2
+ return [...new Set(a)];
3
+ }
4
+ export {
5
+ uniq
6
+ };
7
+ //# sourceMappingURL=uniq.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/uniq.ts"],
4
+ "mappings": "AAAO,SAAS,KAAK,GAAU;AAC7B,SAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACvB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,4 @@
1
+ function uniq(a) {
2
+ return [...new Set(a)];
3
+ }
4
+ export { uniq };
@@ -0,0 +1,38 @@
1
+ function _array_like_to_array(arr, len) {
2
+ (len == null || len > arr.length) && (len = arr.length);
3
+ for (var i = 0, arr2 = new Array(len); i < len; i++)
4
+ arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _array_without_holes(arr) {
8
+ if (Array.isArray(arr))
9
+ return _array_like_to_array(arr);
10
+ }
11
+ function _iterable_to_array(iter) {
12
+ if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
13
+ return Array.from(iter);
14
+ }
15
+ function _non_iterable_spread() {
16
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17
+ }
18
+ function _to_consumable_array(arr) {
19
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
20
+ }
21
+ function _unsupported_iterable_to_array(o, minLen) {
22
+ if (o) {
23
+ if (typeof o == "string")
24
+ return _array_like_to_array(o, minLen);
25
+ var n = Object.prototype.toString.call(o).slice(8, -1);
26
+ if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
27
+ return Array.from(n);
28
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
29
+ return _array_like_to_array(o, minLen);
30
+ }
31
+ }
32
+ function uniq(a) {
33
+ return _to_consumable_array(new Set(a));
34
+ }
35
+ export {
36
+ uniq
37
+ };
38
+ //# sourceMappingURL=uniq.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/Users/n8/vxrn/packages/vxrn/src/utils/uniq.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,KAAKC,GAAQ;AAC3B,SAAQ,qBAAG,IAAIC,IAAID,CAAAA,CAAAA;AACrB;",
5
+ "names": ["uniq", "a", "Set"]
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxrn",
3
- "version": "0.1.50",
3
+ "version": "0.1.52",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "type": "module",
@@ -29,13 +29,13 @@
29
29
  "@babel/code-frame": "^7.21.4",
30
30
  "@vitejs/plugin-react": "^4.2.1",
31
31
  "@vitejs/plugin-react-swc": "^3.6.0",
32
- "@vxrn/react-native-prebuilt": "0.1.50",
33
- "@vxrn/router": "0.1.50",
34
- "@vxrn/safe-area": "0.1.50",
35
- "@vxrn/vite-flow": "0.1.50",
36
- "@vxrn/vite-native-client": "0.1.50",
37
- "@vxrn/vite-native-hmr": "0.1.50",
38
- "@vxrn/vite-native-swc": "0.1.50",
32
+ "@vxrn/react-native-prebuilt": "0.1.52",
33
+ "@vxrn/router": "0.1.52",
34
+ "@vxrn/safe-area": "0.1.52",
35
+ "@vxrn/vite-flow": "0.1.52",
36
+ "@vxrn/vite-native-client": "0.1.52",
37
+ "@vxrn/vite-native-hmr": "0.1.52",
38
+ "@vxrn/vite-native-swc": "0.1.52",
39
39
  "citty": "^0.1.6",
40
40
  "crossws": "^0.2.4",
41
41
  "es-module-lexer": "^1.3.0",
@@ -1,17 +1,14 @@
1
- import { build as esbuild } from 'esbuild'
1
+ import FSExtra from 'fs-extra'
2
2
  import { resolve as importMetaResolve } from 'import-meta-resolve'
3
- import fs from 'node:fs'
4
- import { tmpdir } from 'node:os'
5
- import Path from 'node:path'
3
+ import { rm } from 'node:fs/promises'
4
+ import type { RollupOutput } from 'rollup'
6
5
  import { mergeConfig, build as viteBuild, type UserConfig } from 'vite'
7
- import FSExtra from 'fs-extra'
8
- import type { OutputAsset, OutputChunk, RollupOutput } from 'rollup'
9
6
  import type { VXRNConfig } from '../types'
10
7
  import { getBaseViteConfig } from '../utils/getBaseViteConfig'
11
- import { getHtml } from '../utils/getHtml'
12
8
  import { getOptimizeDeps } from '../utils/getOptimizeDeps'
13
- import { getOptionsFilled, type VXRNConfigFilled } from '../utils/getOptionsFilled'
14
- import { assertIsError } from '../utils/assert'
9
+ import { getOptionsFilled } from '../utils/getOptionsFilled'
10
+
11
+ const { existsSync } = FSExtra
15
12
 
16
13
  Error.stackTraceLimit = Infinity
17
14
 
@@ -23,20 +20,21 @@ export const resolveFile = (path: string) => {
23
20
  }
24
21
  }
25
22
 
26
- const { ensureDir, existsSync, readFile, pathExists } = FSExtra
27
-
28
23
  type BuildOptions = { step?: string; page?: string }
29
24
 
30
- // web only for now
31
-
32
- // TODO:
33
- // - make this only build native or web bundles
34
- // - move router stuff into router package
35
- // - generateStaticPages becomes a vite 'post' postbuild callback in router plugin
36
-
37
25
  export const build = async (optionsIn: VXRNConfig, buildOptions: BuildOptions = {}) => {
38
26
  const options = await getOptionsFilled(optionsIn)
39
27
 
28
+ // lets always clean dist folder for now to be sure were correct
29
+ if (existsSync('dist')) {
30
+ await rm('dist', { recursive: true, force: true })
31
+ }
32
+
33
+ // lets always clean dist folder for now to be sure were correct
34
+ if (existsSync('node_modules/.vite')) {
35
+ await rm('node_modules/.vite', { recursive: true, force: true })
36
+ }
37
+
40
38
  // TODO?
41
39
  process.env.NODE_ENV = 'production'
42
40
 
@@ -50,34 +48,47 @@ export const build = async (optionsIn: VXRNConfig, buildOptions: BuildOptions =
50
48
  root: options.root,
51
49
  clearScreen: false,
52
50
  optimizeDeps,
53
- }
54
- ) satisfies UserConfig
51
+ } satisfies UserConfig
52
+ )
55
53
 
56
54
  if (options.webConfig) {
57
55
  webBuildConfig = mergeConfig(webBuildConfig, options.webConfig) as any
58
56
  }
59
57
 
60
58
  if (buildOptions.step !== 'generate') {
61
- console.info(`build client`)
62
- await viteBuild(
63
- mergeConfig(webBuildConfig, {
59
+ let clientBuildConfig = mergeConfig(webBuildConfig, {
60
+ build: {
61
+ ssrManifest: true,
62
+ outDir: 'dist/client',
63
+ },
64
+ } satisfies UserConfig)
65
+
66
+ if (process.env.VXRN_DISABLE_PROD_OPTIMIZATION) {
67
+ clientBuildConfig = mergeConfig(clientBuildConfig, {
68
+ optimizeDeps: {
69
+ esbuildOptions: {
70
+ minify: false,
71
+ },
72
+ },
73
+
64
74
  build: {
65
- ssrManifest: true,
66
- outDir: 'dist/client',
75
+ minify: false,
76
+ rollupOptions: {
77
+ treeshake: false,
78
+ output: {
79
+ minifyInternalExports: false,
80
+ },
81
+ },
67
82
  },
68
- } satisfies UserConfig)
69
- )
83
+ })
84
+ }
85
+
86
+ await viteBuild(clientBuildConfig)
70
87
  }
71
88
 
72
89
  console.info(`build server`)
73
90
  const { output } = (await viteBuild(
74
91
  mergeConfig(webBuildConfig, {
75
- // optimizeDeps: {
76
- // esbuildOptions: {
77
- // format: 'cjs',
78
- // },
79
- // },
80
-
81
92
  ssr: {
82
93
  noExternal: optimizeDeps.include,
83
94
  optimizeDeps,
@@ -95,155 +106,7 @@ export const build = async (optionsIn: VXRNConfig, buildOptions: BuildOptions =
95
106
  } satisfies UserConfig)
96
107
  )) as RollupOutput
97
108
 
98
- console.info(`generating static pages`)
99
- await generateStaticPages(options, output)
100
- }
101
-
102
- async function generateStaticPages(
103
- options: VXRNConfigFilled,
104
- serverOutput: (OutputChunk | OutputAsset)[]
105
- ) {
106
- const toAbsolute = (p) => Path.resolve(options.root, p)
107
-
108
- const staticDir = toAbsolute(`dist/static`)
109
- await ensureDir(staticDir)
110
- const template = fs.readFileSync(toAbsolute('index.html'), 'utf-8')
111
-
112
- const render = (await import(`${options.root}/dist/server/entry-server.js`)).render
113
-
114
- // load routes
115
- // const entry = serverOutput.find(
116
- // (x) => x.type === 'chunk' && x.facadeModuleId?.includes('entry-server')
117
- // )
118
-
119
- const assets: OutputAsset[] = []
120
-
121
- const allRoutes: {
122
- path: string
123
- params: Object
124
- loaderData: any
125
- }[] = []
126
-
127
- for (const output of serverOutput) {
128
- if (output.type === 'asset') {
129
- assets.push(output)
130
- continue
131
- }
132
-
133
- const id = output.facadeModuleId || ''
134
- const file = Path.basename(id)
135
- const name = file.replace(/\.[^/.]+$/, '')
136
-
137
- if (!id || file[0] === '_' || file.includes('entry-server')) {
138
- continue
139
- }
140
- if (id.includes('+api')) {
141
- continue
142
- }
143
-
144
- const endpointPath = Path.join(options.root, 'dist/server', output.fileName)
145
-
146
- let exported
147
- try {
148
- exported = await import(endpointPath)
149
- } catch (err) {
150
- console.error(`Error importing page (original error)`, err)
151
- // err cause not showing in vite or something
152
- throw new Error(`Error importing page: ${endpointPath}`, {
153
- cause: err,
154
- })
155
- }
156
-
157
- const paramsList = ((await exported.generateStaticParams?.()) ?? [{}]) as Object[]
158
-
159
- for (const params of paramsList) {
160
- const path = getUrl(params)
161
- const loaderData = (await exported.loader?.({ path, params })) ?? {}
162
- allRoutes.push({ path, params, loaderData })
163
- }
164
-
165
- function getUrl(_params = {}) {
166
- if (name === 'index') {
167
- return '/'
168
- }
169
- if (name.startsWith('[...')) {
170
- const part = name.replace('[...', '').replace(']', '')
171
- return `/${_params[part]}`
172
- }
173
- return `/${name
174
- .split('/')
175
- .map((part) => {
176
- if (part[0] === '[') {
177
- const found = _params[part.slice(1, part.length - 1)]
178
- if (!found) {
179
- console.warn('not found', { _params, part })
180
- }
181
- return found
182
- }
183
- return part
184
- })
185
- .join('/')}`
186
- }
187
- }
188
-
189
- // can build them in parallel
190
- // const allRoutes = (
191
- // await Promise.all(
192
- // )
193
- // ).flat()
194
-
195
- // for now just inline
196
- const cssStringRaw = assets
197
- .filter((x) => x.name?.endsWith('.css'))
198
- .map((x) => x.source)
199
- .join('\n\n')
200
-
201
- // awkward way to get prefixes:
202
- const tmpCssFile = Path.join(tmpdir(), 'tmp.css')
203
- await FSExtra.writeFile(tmpCssFile, cssStringRaw, 'utf-8')
204
- await esbuild({
205
- entryPoints: [tmpCssFile],
206
- target: 'safari17',
207
- bundle: true,
208
- minifyWhitespace: true,
209
- sourcemap: false,
210
- outfile: tmpCssFile,
211
- loader: { '.css': 'css' },
212
- })
213
- const cssString = await FSExtra.readFile(tmpCssFile, 'utf-8')
214
-
215
- // pre-render each route...
216
- for (const { path, loaderData, params } of allRoutes) {
217
- try {
218
- const loaderProps = { params }
219
- globalThis['__vxrnLoaderProps__'] = loaderProps
220
- console.info(`render`, path)
221
- const { appHtml, headHtml } = await render({ path })
222
- const slashFileName = `${path === '/' ? '/index' : path}.html`
223
- const clientHtmlPath = toAbsolute(`dist/client${slashFileName}`)
224
- const clientHtml = existsSync(clientHtmlPath) ? await readFile(clientHtmlPath, 'utf-8') : null
225
- const html = getHtml({
226
- template: clientHtml || template,
227
- appHtml,
228
- headHtml,
229
- loaderData,
230
- loaderProps,
231
- css: cssString,
232
- })
233
- const filePath = toAbsolute(`dist/static${slashFileName}`)
234
- await ensureDir(Path.dirname(filePath))
235
- fs.writeFileSync(toAbsolute(filePath), html)
236
- } catch (err) {
237
- assertIsError(err)
238
- console.error(`og error because cause not working`, err)
239
- throw new Error(
240
- `Error building static page: ${path} with:
241
- loaderData: ${JSON.stringify(loaderData || null)}
242
- params: ${JSON.stringify(params || null)}`,
243
- {
244
- cause: err,
245
- }
246
- )
247
- }
109
+ if (options.afterBuild) {
110
+ await options.afterBuild(options, output)
248
111
  }
249
112
  }