powerlines 0.10.0 → 0.10.2

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 (365) hide show
  1. package/dist/astro.cjs +9 -9
  2. package/dist/astro.d.cts +2 -1
  3. package/dist/astro.d.ts +2 -1
  4. package/dist/astro.js +6 -6
  5. package/dist/{chunk-UESICHEO.cjs → chunk-2RHPFVYT.cjs} +17 -18
  6. package/dist/{chunk-75B5EPR4.js → chunk-3Y5CCIJR.js} +3 -3
  7. package/dist/{chunk-YE56I7CZ.cjs → chunk-5XYGZ3DC.cjs} +2 -2
  8. package/dist/{chunk-PFCQFK7H.js → chunk-5Y4JYQ66.js} +3 -3
  9. package/dist/{chunk-H2SX5ZYF.cjs → chunk-66GXB2UY.cjs} +4 -4
  10. package/dist/{chunk-VOB62ELC.js → chunk-6TJGZR5X.js} +4 -4
  11. package/dist/{chunk-BWZCYCIF.js → chunk-6UDHGAAI.js} +3 -3
  12. package/dist/{chunk-ETEQKM36.cjs → chunk-7IWH37DY.cjs} +2 -2
  13. package/dist/{chunk-GI35XXXH.js → chunk-EGSEJQCE.js} +3 -3
  14. package/dist/{chunk-ILVCZATT.js → chunk-GPPJ2CRE.js} +2 -2
  15. package/dist/{chunk-54SOH6E5.js → chunk-HVT7PBFF.js} +3 -3
  16. package/dist/chunk-IJBH5OUN.cjs +12 -0
  17. package/dist/chunk-JBTSAOIQ.js +31 -0
  18. package/dist/{chunk-MXYZKFOD.js → chunk-KYGEWAEG.js} +3 -3
  19. package/dist/{chunk-6X6QQH33.cjs → chunk-L2SAK2JC.cjs} +4 -4
  20. package/dist/chunk-LXMNDUPG.cjs +12 -0
  21. package/dist/{chunk-V56DIXOO.js → chunk-N7NE3VOU.js} +4 -4
  22. package/dist/{chunk-D55IOUF3.js → chunk-OYIM2M74.js} +522 -517
  23. package/dist/{chunk-RRGXS7GZ.cjs → chunk-QHGPZK2H.cjs} +4 -4
  24. package/dist/chunk-RQ4CHMPO.cjs +12 -0
  25. package/dist/chunk-S5QFX2GM.cjs +12 -0
  26. package/dist/{chunk-KCDZ3LCF.js → chunk-S746E63M.js} +3 -3
  27. package/dist/{chunk-FBBWXUGK.js → chunk-SDEBJQDT.js} +12 -13
  28. package/dist/chunk-SL3CXJWD.cjs +34 -0
  29. package/dist/{chunk-I5D3SVUH.cjs → chunk-UHCRNFFC.cjs} +9 -9
  30. package/dist/{chunk-5ST7UKJF.cjs → chunk-UTVZVGM3.cjs} +530 -525
  31. package/dist/{chunk-QIKKQQF7.cjs → chunk-UZQYBO6Z.cjs} +4 -4
  32. package/dist/{chunk-YOHDGH77.js → chunk-VIRKTIPK.js} +3 -3
  33. package/dist/{chunk-WAWIGYB4.js → chunk-WCPY7HPU.js} +4 -4
  34. package/dist/{chunk-MMDBMHAW.js → chunk-WPVIF35O.js} +2 -2
  35. package/dist/chunk-YG7U2GIR.cjs +24 -0
  36. package/dist/{chunk-DOBCIS3U.cjs → chunk-ZBDP43LG.cjs} +6 -6
  37. package/dist/chunk-ZFATNDSY.cjs +12 -0
  38. package/dist/{chunk-4R6CQNB2.js → chunk-ZU4IRZSQ.js} +7 -7
  39. package/dist/define-config.d.cts +2 -1
  40. package/dist/define-config.d.ts +2 -1
  41. package/dist/esbuild.cjs +8 -8
  42. package/dist/esbuild.d.cts +2 -1
  43. package/dist/esbuild.d.ts +2 -1
  44. package/dist/esbuild.js +5 -5
  45. package/dist/extend-plugin.d.cts +2 -1
  46. package/dist/extend-plugin.d.ts +2 -1
  47. package/dist/farm.cjs +4 -4
  48. package/dist/farm.d.cts +2 -1
  49. package/dist/farm.d.ts +2 -1
  50. package/dist/farm.js +3 -3
  51. package/dist/{hooks-D0gf1nT3.d.ts → hooks-BGYnc61f.d.ts} +1 -1
  52. package/dist/{hooks-fVJu9DCF.d.cts → hooks-gk8S8LFP.d.cts} +1 -1
  53. package/dist/index.cjs +27 -27
  54. package/dist/index.d.cts +4 -3
  55. package/dist/index.d.ts +4 -3
  56. package/dist/index.js +18 -18
  57. package/dist/internal/api.cjs +3 -3
  58. package/dist/internal/api.d.cts +3 -2
  59. package/dist/internal/api.d.ts +3 -2
  60. package/dist/internal/api.js +2 -2
  61. package/dist/lib/build/esbuild.cjs +4 -4
  62. package/dist/lib/build/esbuild.d.cts +2 -1
  63. package/dist/lib/build/esbuild.d.ts +2 -1
  64. package/dist/lib/build/esbuild.js +1 -1
  65. package/dist/lib/build/index.cjs +25 -25
  66. package/dist/lib/build/index.d.cts +3 -2
  67. package/dist/lib/build/index.d.ts +3 -2
  68. package/dist/lib/build/index.js +9 -9
  69. package/dist/lib/build/rolldown.cjs +3 -3
  70. package/dist/lib/build/rolldown.d.cts +2 -1
  71. package/dist/lib/build/rolldown.d.ts +2 -1
  72. package/dist/lib/build/rolldown.js +2 -2
  73. package/dist/lib/build/rollup.cjs +3 -3
  74. package/dist/lib/build/rollup.d.cts +2 -1
  75. package/dist/lib/build/rollup.d.ts +2 -1
  76. package/dist/lib/build/rollup.js +1 -1
  77. package/dist/lib/build/rspack.cjs +2 -2
  78. package/dist/lib/build/rspack.d.cts +2 -1
  79. package/dist/lib/build/rspack.d.ts +2 -1
  80. package/dist/lib/build/rspack.js +1 -1
  81. package/dist/lib/build/tsup.cjs +5 -5
  82. package/dist/lib/build/tsup.d.cts +2 -1
  83. package/dist/lib/build/tsup.d.ts +2 -1
  84. package/dist/lib/build/tsup.js +2 -2
  85. package/dist/lib/build/unbuild.cjs +6 -6
  86. package/dist/lib/build/unbuild.d.cts +3 -2
  87. package/dist/lib/build/unbuild.d.ts +3 -2
  88. package/dist/lib/build/unbuild.js +3 -3
  89. package/dist/lib/build/vite.cjs +4 -4
  90. package/dist/lib/build/vite.d.cts +2 -1
  91. package/dist/lib/build/vite.d.ts +2 -1
  92. package/dist/lib/build/vite.js +2 -2
  93. package/dist/lib/build/webpack.cjs +2 -2
  94. package/dist/lib/build/webpack.d.cts +2 -1
  95. package/dist/lib/build/webpack.d.ts +2 -1
  96. package/dist/lib/build/webpack.js +1 -1
  97. package/dist/lib/{chunk-7CZ2QZEV.js → chunk-3I2YOM2E.js} +4 -4
  98. package/dist/lib/chunk-3I2YOM2E.js.map +1 -0
  99. package/dist/lib/{chunk-KAOWUIFH.cjs → chunk-4XUVP2LL.cjs} +3 -3
  100. package/dist/lib/chunk-4XUVP2LL.cjs.map +1 -0
  101. package/dist/lib/{chunk-ZKYZWEHY.cjs → chunk-6U2UX2PX.cjs} +4 -4
  102. package/dist/lib/chunk-6U2UX2PX.cjs.map +1 -0
  103. package/dist/lib/{chunk-VRNWPH35.cjs → chunk-7EAV6Q7B.cjs} +10 -9
  104. package/dist/lib/chunk-7EAV6Q7B.cjs.map +1 -0
  105. package/dist/lib/{chunk-ZYBUJ2HE.js → chunk-CAPN4FSS.js} +7 -7
  106. package/dist/lib/chunk-CAPN4FSS.js.map +1 -0
  107. package/dist/lib/{chunk-LTBRHAQ2.cjs → chunk-GJNFAFKR.cjs} +4 -4
  108. package/dist/lib/chunk-GJNFAFKR.cjs.map +1 -0
  109. package/dist/lib/{chunk-VANFTXBT.cjs → chunk-GWYTWFZE.cjs} +7 -7
  110. package/dist/lib/chunk-GWYTWFZE.cjs.map +1 -0
  111. package/dist/lib/{chunk-DKE25WTL.js → chunk-HQ6TGY34.js} +2 -2
  112. package/dist/lib/chunk-HQ6TGY34.js.map +1 -0
  113. package/dist/lib/{chunk-QSBORJCS.js → chunk-HZDOJWUO.js} +6 -6
  114. package/dist/lib/chunk-HZDOJWUO.js.map +1 -0
  115. package/dist/lib/{chunk-ECJPGNXE.cjs → chunk-IK3ABDPP.cjs} +2 -2
  116. package/dist/lib/chunk-IK3ABDPP.cjs.map +1 -0
  117. package/dist/lib/{chunk-G5DJO4HA.cjs → chunk-JTUL3477.cjs} +5 -5
  118. package/dist/lib/chunk-JTUL3477.cjs.map +1 -0
  119. package/dist/lib/{chunk-E7UTFXPP.js → chunk-KFE2IR3Y.js} +4 -4
  120. package/dist/lib/chunk-KFE2IR3Y.js.map +1 -0
  121. package/dist/lib/{chunk-RY67J24J.js → chunk-KSBESEOF.js} +2 -2
  122. package/dist/lib/chunk-KSBESEOF.js.map +1 -0
  123. package/dist/lib/{chunk-26W3IQT6.js → chunk-LTVWU4J2.js} +5 -5
  124. package/dist/lib/chunk-LTVWU4J2.js.map +1 -0
  125. package/dist/lib/{chunk-GWAVDFOE.js → chunk-M7U5RMK7.js} +8 -6
  126. package/dist/lib/chunk-M7U5RMK7.js.map +1 -0
  127. package/dist/lib/{chunk-2D74QBNW.cjs → chunk-M7WHFUKR.cjs} +524 -522
  128. package/dist/lib/chunk-M7WHFUKR.cjs.map +1 -0
  129. package/dist/lib/{chunk-EOO7IRCI.js → chunk-MAHHHINV.js} +3 -3
  130. package/dist/lib/chunk-MAHHHINV.js.map +1 -0
  131. package/dist/lib/{chunk-7FQQFIHR.cjs → chunk-NANLYIUO.cjs} +4 -4
  132. package/dist/lib/chunk-NANLYIUO.cjs.map +1 -0
  133. package/dist/lib/{chunk-TNCZYSNV.js → chunk-NE46WXNJ.js} +2 -2
  134. package/dist/lib/chunk-NE46WXNJ.js.map +1 -0
  135. package/dist/lib/{chunk-QGJVGFY4.js → chunk-OF5IJ4WG.js} +6 -6
  136. package/dist/lib/chunk-OF5IJ4WG.js.map +1 -0
  137. package/dist/lib/{chunk-WDNYOFEH.js → chunk-PIFE7MUZ.js} +500 -498
  138. package/dist/lib/chunk-PIFE7MUZ.js.map +1 -0
  139. package/dist/lib/{chunk-2ZYHO243.js → chunk-PXSRMP4E.js} +2 -2
  140. package/dist/lib/chunk-PXSRMP4E.js.map +1 -0
  141. package/dist/lib/{chunk-CXYZENE4.js → chunk-Q2L3FNJO.js} +13 -7
  142. package/dist/lib/chunk-Q2L3FNJO.js.map +1 -0
  143. package/dist/lib/{chunk-XFIGAAKN.cjs → chunk-Q2RUDKWY.cjs} +8 -6
  144. package/dist/lib/chunk-Q2RUDKWY.cjs.map +1 -0
  145. package/dist/lib/{chunk-NFDRIBCM.js → chunk-Q3KJZ3B5.js} +5 -7
  146. package/dist/lib/chunk-Q3KJZ3B5.js.map +1 -0
  147. package/dist/lib/{chunk-FHZJQZOE.cjs → chunk-QXJHCA3E.cjs} +7 -7
  148. package/dist/lib/chunk-QXJHCA3E.cjs.map +1 -0
  149. package/dist/lib/{chunk-TZFBE35T.cjs → chunk-RQICHHZM.cjs} +2 -2
  150. package/dist/lib/chunk-RQICHHZM.cjs.map +1 -0
  151. package/dist/lib/{chunk-7MXG5EG2.js → chunk-RXQWNSZX.js} +3 -3
  152. package/dist/lib/chunk-RXQWNSZX.js.map +1 -0
  153. package/dist/lib/{chunk-I6A564OE.cjs → chunk-U36VZLW6.cjs} +2 -2
  154. package/dist/lib/chunk-U36VZLW6.cjs.map +1 -0
  155. package/dist/lib/{chunk-65DUUIIF.cjs → chunk-UQJWVRRE.cjs} +2 -2
  156. package/dist/lib/chunk-UQJWVRRE.cjs.map +1 -0
  157. package/dist/lib/{chunk-XHCRXNQ3.cjs → chunk-V5OY4ALI.cjs} +5 -5
  158. package/dist/lib/chunk-V5OY4ALI.cjs.map +1 -0
  159. package/dist/lib/{chunk-I3I4BYJ4.js → chunk-VJN72T2O.js} +5 -5
  160. package/dist/lib/chunk-VJN72T2O.js.map +1 -0
  161. package/dist/lib/{chunk-KACTPBW2.cjs → chunk-W4OMKQ7W.cjs} +14 -8
  162. package/dist/lib/chunk-W4OMKQ7W.cjs.map +1 -0
  163. package/dist/lib/{chunk-SB3NFYXT.cjs → chunk-XZD7S5TU.cjs} +5 -5
  164. package/dist/lib/chunk-XZD7S5TU.cjs.map +1 -0
  165. package/dist/lib/{chunk-PJKWY74P.js → chunk-YBIWVB66.js} +10 -9
  166. package/dist/lib/chunk-YBIWVB66.js.map +1 -0
  167. package/dist/lib/{chunk-JXIRUV56.js → chunk-YF3YHK4X.js} +5 -5
  168. package/dist/lib/chunk-YF3YHK4X.js.map +1 -0
  169. package/dist/lib/{chunk-TJQEGHJA.cjs → chunk-YVDJCVE5.cjs} +12 -12
  170. package/dist/lib/chunk-YVDJCVE5.cjs.map +1 -0
  171. package/dist/lib/{chunk-M2TB43VG.cjs → chunk-ZP7PDTVE.cjs} +7 -9
  172. package/dist/lib/chunk-ZP7PDTVE.cjs.map +1 -0
  173. package/dist/lib/{config-BOPIY57U.d.cts → config-AuIGsUck.d.cts} +110 -106
  174. package/dist/lib/{config-Chd_3Uh3.d.ts → config-B_WTwd49.d.ts} +110 -106
  175. package/dist/lib/config-file.d.cts +2 -1
  176. package/dist/lib/config-file.d.ts +2 -1
  177. package/dist/lib/entry.d.cts +2 -1
  178. package/dist/lib/entry.d.ts +2 -1
  179. package/dist/lib/{hooks-DkVRKYVN.d.cts → hooks-4KkL9GD2.d.cts} +1 -1
  180. package/dist/lib/{hooks-56fQP2HY.d.ts → hooks-DErK4Fv4.d.ts} +1 -1
  181. package/dist/lib/index.cjs +36 -36
  182. package/dist/lib/index.d.cts +3 -2
  183. package/dist/lib/index.d.ts +3 -2
  184. package/dist/lib/index.js +11 -11
  185. package/dist/lib/logger.d.cts +2 -1
  186. package/dist/lib/logger.d.ts +2 -1
  187. package/dist/lib/typescript/compiler-host.cjs +6 -6
  188. package/dist/lib/typescript/compiler-host.cjs.map +1 -1
  189. package/dist/lib/typescript/compiler-host.d.cts +2 -1
  190. package/dist/lib/typescript/compiler-host.d.ts +2 -1
  191. package/dist/lib/typescript/compiler-host.js +5 -5
  192. package/dist/lib/typescript/compiler-host.js.map +1 -1
  193. package/dist/lib/typescript/import-transformer.cjs +1 -1
  194. package/dist/lib/typescript/import-transformer.cjs.map +1 -1
  195. package/dist/lib/typescript/import-transformer.d.cts +2 -1
  196. package/dist/lib/typescript/import-transformer.d.ts +2 -1
  197. package/dist/lib/typescript/import-transformer.js +1 -1
  198. package/dist/lib/typescript/import-transformer.js.map +1 -1
  199. package/dist/lib/typescript/index.cjs +6 -6
  200. package/dist/lib/typescript/index.d.cts +2 -1
  201. package/dist/lib/typescript/index.d.ts +2 -1
  202. package/dist/lib/typescript/index.js +1 -1
  203. package/dist/lib/typescript/program.cjs +6 -6
  204. package/dist/lib/typescript/program.d.cts +2 -1
  205. package/dist/lib/typescript/program.d.ts +2 -1
  206. package/dist/lib/typescript/program.js +1 -1
  207. package/dist/lib/unplugin/factory.cjs +6 -6
  208. package/dist/lib/unplugin/factory.d.cts +3 -2
  209. package/dist/lib/unplugin/factory.d.ts +3 -2
  210. package/dist/lib/unplugin/factory.js +5 -5
  211. package/dist/lib/unplugin/index.cjs +9 -9
  212. package/dist/lib/unplugin/index.d.cts +3 -2
  213. package/dist/lib/unplugin/index.d.ts +3 -2
  214. package/dist/lib/unplugin/index.js +6 -6
  215. package/dist/lib/unplugin/plugin.cjs +4 -4
  216. package/dist/lib/unplugin/plugin.d.cts +2 -1
  217. package/dist/lib/unplugin/plugin.d.ts +2 -1
  218. package/dist/lib/unplugin/plugin.js +3 -3
  219. package/dist/lib/unplugin/resolve-id.cjs +2 -2
  220. package/dist/lib/unplugin/resolve-id.d.cts +2 -1
  221. package/dist/lib/unplugin/resolve-id.d.ts +2 -1
  222. package/dist/lib/unplugin/resolve-id.js +1 -1
  223. package/dist/lib/utilities/cache.cjs +4 -4
  224. package/dist/lib/utilities/cache.js +2 -2
  225. package/dist/lib/utilities/file-header.d.cts +2 -1
  226. package/dist/lib/utilities/file-header.d.ts +2 -1
  227. package/dist/lib/utilities/index.cjs +24 -24
  228. package/dist/lib/utilities/index.d.cts +2 -1
  229. package/dist/lib/utilities/index.d.ts +2 -1
  230. package/dist/lib/utilities/index.js +7 -7
  231. package/dist/lib/utilities/meta.cjs +8 -8
  232. package/dist/lib/utilities/meta.d.cts +2 -1
  233. package/dist/lib/utilities/meta.d.ts +2 -1
  234. package/dist/lib/utilities/meta.js +1 -1
  235. package/dist/lib/utilities/plugin-helpers.d.cts +2 -1
  236. package/dist/lib/utilities/plugin-helpers.d.ts +2 -1
  237. package/dist/lib/utilities/resolve-path.cjs +2 -2
  238. package/dist/lib/utilities/resolve-path.d.cts +2 -1
  239. package/dist/lib/utilities/resolve-path.d.ts +2 -1
  240. package/dist/lib/utilities/resolve-path.js +1 -1
  241. package/dist/lib/utilities/source-file.cjs +4 -4
  242. package/dist/lib/utilities/source-file.js +1 -1
  243. package/dist/lib/utilities/source-map.cjs +2 -2
  244. package/dist/lib/utilities/source-map.js +1 -1
  245. package/dist/lib/utilities/worker.cjs +3 -3
  246. package/dist/lib/utilities/worker.d.cts +2 -1
  247. package/dist/lib/utilities/worker.d.ts +2 -1
  248. package/dist/lib/utilities/worker.js +1 -1
  249. package/dist/lib/utilities/write-file.cjs +2 -2
  250. package/dist/lib/utilities/write-file.d.cts +2 -1
  251. package/dist/lib/utilities/write-file.d.ts +2 -1
  252. package/dist/lib/utilities/write-file.js +1 -1
  253. package/dist/next.cjs +8 -8
  254. package/dist/next.js +5 -5
  255. package/dist/nuxt.cjs +10 -10
  256. package/dist/nuxt.js +7 -7
  257. package/dist/{resolved-NZTd64-O.d.cts → resolved-CcuVqMqc.d.cts} +28 -3
  258. package/dist/{resolved-DhHHMnUD.d.ts → resolved-Dhscmo3z.d.ts} +28 -3
  259. package/dist/rolldown.cjs +7 -7
  260. package/dist/rolldown.d.cts +2 -1
  261. package/dist/rolldown.d.ts +2 -1
  262. package/dist/rolldown.js +4 -4
  263. package/dist/rollup.cjs +7 -7
  264. package/dist/rollup.d.cts +2 -1
  265. package/dist/rollup.d.ts +2 -1
  266. package/dist/rollup.js +4 -4
  267. package/dist/rspack.cjs +7 -7
  268. package/dist/rspack.d.cts +2 -1
  269. package/dist/rspack.d.ts +2 -1
  270. package/dist/rspack.js +4 -4
  271. package/dist/tsup.cjs +9 -9
  272. package/dist/tsup.js +6 -6
  273. package/dist/types/babel.d.cts +2 -1
  274. package/dist/types/babel.d.ts +2 -1
  275. package/dist/types/commands.d.cts +2 -1
  276. package/dist/types/commands.d.ts +2 -1
  277. package/dist/types/compiler.d.cts +2 -1
  278. package/dist/types/compiler.d.ts +2 -1
  279. package/dist/types/config.d.cts +2 -1
  280. package/dist/types/config.d.ts +2 -1
  281. package/dist/types/context.cjs +2 -2
  282. package/dist/types/context.d.cts +2 -1
  283. package/dist/types/context.d.ts +2 -1
  284. package/dist/types/context.js +1 -1
  285. package/dist/types/hooks.d.cts +2 -1
  286. package/dist/types/hooks.d.ts +2 -1
  287. package/dist/types/index.cjs +9 -9
  288. package/dist/types/index.d.cts +3 -2
  289. package/dist/types/index.d.ts +3 -2
  290. package/dist/types/index.js +2 -2
  291. package/dist/types/internal.d.cts +3 -2
  292. package/dist/types/internal.d.ts +3 -2
  293. package/dist/types/plugin.d.cts +2 -1
  294. package/dist/types/plugin.d.ts +2 -1
  295. package/dist/types/resolved.d.cts +2 -1
  296. package/dist/types/resolved.d.ts +2 -1
  297. package/dist/types/unplugin.d.cts +2 -1
  298. package/dist/types/unplugin.d.ts +2 -1
  299. package/dist/types/vfs.cjs +7 -7
  300. package/dist/types/vfs.d.cts +93 -111
  301. package/dist/types/vfs.d.ts +93 -111
  302. package/dist/types/vfs.js +1 -1
  303. package/dist/unloader.cjs +7 -7
  304. package/dist/unloader.d.cts +2 -1
  305. package/dist/unloader.d.ts +2 -1
  306. package/dist/unloader.js +4 -4
  307. package/dist/unplugin.cjs +19 -19
  308. package/dist/unplugin.d.cts +3 -2
  309. package/dist/unplugin.d.ts +3 -2
  310. package/dist/unplugin.js +16 -16
  311. package/dist/vite.cjs +8 -8
  312. package/dist/vite.d.cts +2 -1
  313. package/dist/vite.d.ts +2 -1
  314. package/dist/vite.js +5 -5
  315. package/dist/webpack.cjs +7 -7
  316. package/dist/webpack.d.cts +2 -1
  317. package/dist/webpack.d.ts +2 -1
  318. package/dist/webpack.js +4 -4
  319. package/package.json +9 -13
  320. package/dist/chunk-6FRFYMLC.cjs +0 -12
  321. package/dist/chunk-6M3HIMSG.cjs +0 -12
  322. package/dist/chunk-6ODSQSQL.cjs +0 -34
  323. package/dist/chunk-HPXUAQCU.cjs +0 -12
  324. package/dist/chunk-KJHDE76P.cjs +0 -24
  325. package/dist/chunk-R5CZG7XN.js +0 -31
  326. package/dist/chunk-RGMGFYXY.cjs +0 -12
  327. package/dist/chunk-TZ4Y7R4G.cjs +0 -12
  328. package/dist/lib/chunk-26W3IQT6.js.map +0 -1
  329. package/dist/lib/chunk-2D74QBNW.cjs.map +0 -1
  330. package/dist/lib/chunk-2ZYHO243.js.map +0 -1
  331. package/dist/lib/chunk-65DUUIIF.cjs.map +0 -1
  332. package/dist/lib/chunk-7CZ2QZEV.js.map +0 -1
  333. package/dist/lib/chunk-7FQQFIHR.cjs.map +0 -1
  334. package/dist/lib/chunk-7MXG5EG2.js.map +0 -1
  335. package/dist/lib/chunk-CXYZENE4.js.map +0 -1
  336. package/dist/lib/chunk-DKE25WTL.js.map +0 -1
  337. package/dist/lib/chunk-E7UTFXPP.js.map +0 -1
  338. package/dist/lib/chunk-ECJPGNXE.cjs.map +0 -1
  339. package/dist/lib/chunk-EOO7IRCI.js.map +0 -1
  340. package/dist/lib/chunk-FHZJQZOE.cjs.map +0 -1
  341. package/dist/lib/chunk-G5DJO4HA.cjs.map +0 -1
  342. package/dist/lib/chunk-GWAVDFOE.js.map +0 -1
  343. package/dist/lib/chunk-I3I4BYJ4.js.map +0 -1
  344. package/dist/lib/chunk-I6A564OE.cjs.map +0 -1
  345. package/dist/lib/chunk-JXIRUV56.js.map +0 -1
  346. package/dist/lib/chunk-KACTPBW2.cjs.map +0 -1
  347. package/dist/lib/chunk-KAOWUIFH.cjs.map +0 -1
  348. package/dist/lib/chunk-LTBRHAQ2.cjs.map +0 -1
  349. package/dist/lib/chunk-M2TB43VG.cjs.map +0 -1
  350. package/dist/lib/chunk-NFDRIBCM.js.map +0 -1
  351. package/dist/lib/chunk-PJKWY74P.js.map +0 -1
  352. package/dist/lib/chunk-QGJVGFY4.js.map +0 -1
  353. package/dist/lib/chunk-QSBORJCS.js.map +0 -1
  354. package/dist/lib/chunk-RY67J24J.js.map +0 -1
  355. package/dist/lib/chunk-SB3NFYXT.cjs.map +0 -1
  356. package/dist/lib/chunk-TJQEGHJA.cjs.map +0 -1
  357. package/dist/lib/chunk-TNCZYSNV.js.map +0 -1
  358. package/dist/lib/chunk-TZFBE35T.cjs.map +0 -1
  359. package/dist/lib/chunk-VANFTXBT.cjs.map +0 -1
  360. package/dist/lib/chunk-VRNWPH35.cjs.map +0 -1
  361. package/dist/lib/chunk-WDNYOFEH.js.map +0 -1
  362. package/dist/lib/chunk-XFIGAAKN.cjs.map +0 -1
  363. package/dist/lib/chunk-XHCRXNQ3.cjs.map +0 -1
  364. package/dist/lib/chunk-ZKYZWEHY.cjs.map +0 -1
  365. package/dist/lib/chunk-ZYBUJ2HE.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/build/tsup.ts"],"names":["DEFAULT_TSUP_CONFIG","DEFAULT_BUILD_OPTIONS","platform","target","config","clean","minify","sourcemap","cjsInterop","bundle","dts","shims","silent","treeshake","keepNames","splitting","banner","resolveTsupEntry","context","entryPoints","resolveESBuildEntry","extractTsupConfig","defu","alias","builtins","reduce","ret","id","path","fs","ids","noExternal","build","variant","override","name","assets","output","external","skipNodeModulesBundle","outputPath","projectRoot","tsconfig","tsconfigFilePath","tsconfigRaw","tsconfigJson","format","mode","treeShaking","undefined","metafile","projectType","logLevel","verbose"],"mappings":"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","file":"chunk-HZDOJWUO.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { AssetGlob, Entry } from \"@storm-software/build-tools/types\";\nimport { DEFAULT_BUILD_OPTIONS } from \"@storm-software/tsup/constants\";\nimport defu from \"defu\";\nimport {\n ESBuildBuildConfig,\n TsupBuildConfig,\n TsupResolvedBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport { ResolvedEntryTypeDefinition } from \"../../types/resolved\";\nimport { resolveESBuildEntry } from \"./esbuild\";\n\nexport const DEFAULT_TSUP_CONFIG: Partial<TsupBuildConfig> = {\n ...DEFAULT_BUILD_OPTIONS,\n platform: \"neutral\",\n target: \"esnext\",\n config: false,\n clean: false,\n minify: true,\n sourcemap: false,\n cjsInterop: true,\n bundle: true,\n dts: true,\n shims: true,\n silent: true,\n treeshake: true,\n keepNames: true,\n splitting: true,\n banner: {}\n};\n\n/**\n * Resolves the entry options for [tsup](https://github.com/egoist/tsup).\n *\n * @param context - The build context.\n * @param entryPoints - The entry points to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveTsupEntry(\n context: Context,\n entryPoints: ResolvedEntryTypeDefinition[] | string[]\n): Entry {\n return resolveESBuildEntry(context, entryPoints) as Entry;\n}\n\n/**\n * Resolves the options for [tsup](https://github.com/egoist/tsup).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractTsupConfig(context: Context): TsupResolvedBuildConfig {\n return defu(\n {\n alias: context.builtins.reduce(\n (ret, id) => {\n const path = context.fs.ids[id];\n if (path) {\n ret[id] = path;\n }\n\n return ret;\n },\n {} as Record<string, string>\n ),\n noExternal: context.builtins\n },\n context.config.build.variant === \"tsup\" ? context.config.override : {},\n {\n name: context.config.name,\n assets: context.config.output.assets as (string | AssetGlob)[],\n external: context.config.build.external,\n noExternal: context.config.build.noExternal,\n skipNodeModulesBundle: context.config.build.skipNodeModulesBundle,\n outputPath: context.config.output.outputPath,\n projectRoot: context.config.projectRoot,\n tsconfig: context.tsconfig.tsconfigFilePath,\n tsconfigRaw: context.tsconfig.tsconfigJson,\n format: context.config.output.format,\n mode: context.config.mode,\n platform: context.config.build.platform,\n treeshake:\n context.config.build.variant === \"tsup\"\n ? (context.config.build as TsupBuildConfig)?.treeshake\n : context.config.build.variant === \"tsup\"\n ? (context.config.build as ESBuildBuildConfig)?.treeShaking\n : undefined\n },\n context.config.build.variant === \"tsup\" ? context.config.build : {},\n {\n minify: context.config.mode !== \"development\",\n metafile: context.config.mode === \"development\",\n sourcemap: context.config.mode === \"development\",\n dts: context.config.projectType !== \"application\",\n silent:\n context.config.logLevel === \"silent\" ||\n context.config.mode === \"production\",\n verbose:\n context.config.logLevel === \"all\" ||\n context.config.logLevel === \"trace\" ||\n context.config.mode === \"development\"\n },\n DEFAULT_TSUP_CONFIG\n );\n}\n"]}
@@ -60,5 +60,5 @@ function generateSourceMap(code, id, transpiled) {
60
60
  chunkPK6SKIKE_cjs.__name(generateSourceMap, "generateSourceMap");
61
61
 
62
62
  exports.generateSourceMap = generateSourceMap;
63
- //# sourceMappingURL=chunk-ECJPGNXE.cjs.map
64
- //# sourceMappingURL=chunk-ECJPGNXE.cjs.map
63
+ //# sourceMappingURL=chunk-IK3ABDPP.cjs.map
64
+ //# sourceMappingURL=chunk-IK3ABDPP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utilities/source-map.ts"],"names":["dmp","Diff","generateSourceMap","code","id","transpiled","diff","diff_main","toString","diff_cleanupSemantic","offset","index","length","type","text","textLength","prependLeft","next","at","replaceText","firstNonWhitespaceIndexOfText","search","offsetStart","Math","max","update","remove","hasChanged","map","generateMap","source","file","includeContent"],"mappings":";;;;;;;;;AAsBA,IAAMA,GAAAA,GAAM,IAAIC,qBAAAA,EAAAA;AAUT,SAASC,iBAAAA,CACdC,IAAAA,EACAC,EAAAA,EACAC,UAAAA,EAAmB;AAEnB,EAAA,IAAI,CAACA,UAAAA,EAAY;AACf,IAAA;AACF,EAAA;AAEA,EAAA,MAAMC,OAAON,GAAAA,CAAIO,SAAAA,CAAUJ,IAAAA,CAAKK,QAAAA,IAAYH,UAAAA,CAAAA;AAC5CL,EAAAA,GAAAA,CAAIS,qBAAqBH,IAAAA,CAAAA;AAEzB,EAAA,IAAII,MAAAA,GAAS,CAAA;AAEb,EAAA,KAAA,IAASC,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,GAAQL,IAAAA,CAAKM,QAAQD,KAAAA,EAAAA,EAAS;AAChD,IAAA,IAAIL,IAAAA,CAAKK,KAAAA,CAAAA,EAAQ;AACf,MAAA,MAAM,CAACE,IAAAA,EAAMC,IAAAA,CAAAA,GAAQR,KAAKK,KAAAA,CAAAA;AAC1B,MAAA,MAAMI,aAAaD,IAAAA,CAAKF,MAAAA;AAExB,MAAA,QAAQC,IAAAA;AACN,QAAA,KAAK,CAAA,EAAG;AACNH,UAAAA,MAAAA,IAAUK,UAAAA;AACV,UAAA;AACF,QAAA;AACA,QAAA,KAAK,CAAA,EAAG;AACNZ,UAAAA,IAAAA,CAAKa,WAAAA,CAAYN,QAAQI,IAAAA,CAAAA;AACzB,UAAA;AACF,QAAA;AACA,QAAA,KAAK,EAAA,EAAI;AACP,UAAA,MAAMG,IAAAA,GAAOX,IAAAA,CAAKY,EAAAA,CAAGP,KAAAA,GAAQ,CAAA,CAAA;AAE7B,UAAA,IAAIM,IAAAA,IAAQA,IAAAA,CAAK,CAAA,CAAA,KAAO,CAAA,EAAG;AACzB,YAAA,MAAME,WAAAA,GAAcF,KAAK,CAAA,CAAA;AAEzB,YAAA,MAAMG,6BAAAA,GAAgCN,IAAAA,CAAKO,MAAAA,CAAO,IAAA,CAAA;AAClD,YAAA,MAAMC,WAAAA,GACJZ,MAAAA,GAASa,IAAAA,CAAKC,GAAAA,CAAIJ,+BAA+B,CAAA,CAAA;AAEnDjB,YAAAA,IAAAA,CAAKsB,MAAAA,CAAOH,WAAAA,EAAaZ,MAAAA,GAASK,UAAAA,EAAYI,WAAAA,CAAAA;AAC9CR,YAAAA,KAAAA,IAAS,CAAA;UACX,CAAA,MAAO;AACLR,YAAAA,IAAAA,CAAKuB,MAAAA,CAAOhB,MAAAA,EAAQA,MAAAA,GAASK,UAAAA,CAAAA;AAC/B,UAAA;AAEAL,UAAAA,MAAAA,IAAUK,UAAAA;AAEV,UAAA;AACF,QAAA;AACF;AACF,IAAA;AACF,EAAA;AAEA,EAAA,IAAI,CAACZ,IAAAA,CAAKwB,UAAAA,EAAU,EAAI;AACtB,IAAA;AACF,EAAA;AAEA,EAAA,OAAO;AACLxB,IAAAA,IAAAA,EAAMA,KAAKK,QAAAA,EAAQ;AACnBoB,IAAAA,GAAAA,EAAKzB,KAAK0B,WAAAA,CAAY;MACpBC,MAAAA,EAAQ1B,EAAAA;AACR2B,MAAAA,IAAAA,EAAM,GAAG3B,EAAAA,CAAAA,IAAAA,CAAAA;MACT4B,cAAAA,EAAgB;KAClB;AACF,GAAA;AACF;AAhEgB9B,wBAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA","file":"chunk-IK3ABDPP.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport Diff from \"diff-match-patch\";\nimport type MagicString from \"magic-string\";\nimport type { CompilerResult } from \"../../types/compiler\";\n\nconst dmp = new Diff();\n\n/**\n * Generate code with source map.\n *\n * @param code - The source code.\n * @param id - The file name.\n * @param transpiled - The transpiled code.\n * @returns The compiler result.\n */\nexport function generateSourceMap(\n code: MagicString,\n id: string,\n transpiled?: string\n): CompilerResult {\n if (!transpiled) {\n return;\n }\n\n const diff = dmp.diff_main(code.toString(), transpiled);\n dmp.diff_cleanupSemantic(diff);\n\n let offset = 0;\n\n for (let index = 0; index < diff.length; index++) {\n if (diff[index]) {\n const [type, text] = diff[index]!;\n const textLength = text.length;\n\n switch (type) {\n case 0: {\n offset += textLength;\n break;\n }\n case 1: {\n code.prependLeft(offset, text);\n break;\n }\n case -1: {\n const next = diff.at(index + 1);\n\n if (next && next[0] === 1) {\n const replaceText = next[1];\n\n const firstNonWhitespaceIndexOfText = text.search(/\\S/);\n const offsetStart =\n offset + Math.max(firstNonWhitespaceIndexOfText, 0);\n\n code.update(offsetStart, offset + textLength, replaceText);\n index += 1;\n } else {\n code.remove(offset, offset + textLength);\n }\n\n offset += textLength;\n\n break;\n }\n }\n }\n }\n\n if (!code.hasChanged()) {\n return;\n }\n\n return {\n code: code.toString(),\n map: code.generateMap({\n source: id,\n file: `${id}.map`,\n includeContent: true\n })\n };\n}\n"]}
@@ -53,7 +53,7 @@ function extractRollupConfig(context) {
53
53
  if (context.config.build.noExternal && toArray.toArray(context.config.build.noExternal).includes(source)) {
54
54
  return false;
55
55
  }
56
- if (Array.from(context.fs.builtinIdMap.keys()).includes(source)) {
56
+ if (context.builtins.includes(source)) {
57
57
  return context.config.projectType !== "application";
58
58
  }
59
59
  return !context.config.build.skipNodeModulesBundle;
@@ -64,9 +64,9 @@ function extractRollupConfig(context) {
64
64
  tsconfig: context.tsconfig.tsconfigFilePath
65
65
  }),
66
66
  alias__default.default({
67
- entries: context.fs.builtinIdMap.keys().reduce((ret, id) => {
67
+ entries: context.builtins.reduce((ret, id) => {
68
68
  if (!ret.find((e) => e.find === id)) {
69
- const path = context.fs.builtinIdMap.get(id);
69
+ const path = context.fs.ids[id];
70
70
  if (path) {
71
71
  ret.push({
72
72
  find: id,
@@ -133,5 +133,5 @@ chunkPK6SKIKE_cjs.__name(extractRollupConfig, "extractRollupConfig");
133
133
 
134
134
  exports.dtsBundlePlugin = dtsBundlePlugin;
135
135
  exports.extractRollupConfig = extractRollupConfig;
136
- //# sourceMappingURL=chunk-G5DJO4HA.cjs.map
137
- //# sourceMappingURL=chunk-G5DJO4HA.cjs.map
136
+ //# sourceMappingURL=chunk-JTUL3477.cjs.map
137
+ //# sourceMappingURL=chunk-JTUL3477.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/build/rollup.ts"],"names":["dtsBundlePlugin","name","generateBundle","_opts","bundle","file","Object","entries","type","isEntry","facadeModuleId","dtsFileName","fileName","replace","relativeSourceDtsName","JSON","stringify","emitFile","source","exports","includes","extractRollupConfig","context","result","defu","input","globSync","toArray","config","entry","map","isString","flat","external","__name","importer","isResolved","externalFn","build","variant","override","isFunction","id","rollupOptions","undefined","noExternal","builtins","projectType","skipNodeModulesBundle","plugins","typescriptPlugin","check","tsconfig","tsconfigFilePath","alias","reduce","ret","find","e","path","fs","ids","push","replacement","getBabelInputPlugin","transform","babel","caller","supportsStaticESM","cwd","projectRoot","babelrc","extensions","babelHelpers","skipPreflightCheck","exclude","resolve","moduleDirectories","preferBuiltins","cache","skipCache","joinPaths","cachePath","output","dir","outputPath","logLevel","sourcemap","mode","format","entryFileNames","preserveModules"],"mappings":"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","file":"chunk-JTUL3477.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport alias from \"@rollup/plugin-alias\";\nimport {\n getBabelInputPlugin,\n RollupBabelInputPluginOptions\n} from \"@rollup/plugin-babel\";\nimport resolve from \"@rollup/plugin-node-resolve\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu from \"defu\";\nimport { globSync } from \"node:fs\";\nimport { Plugin } from \"rollup\";\nimport typescriptPlugin from \"rollup-plugin-typescript2\";\nimport {\n RollupResolvedBuildConfig,\n ViteBuildConfig,\n ViteResolvedBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\n\n/**\n * A Rollup plugin to bundle TypeScript declaration files (.d.ts) alongside the JavaScript output files.\n *\n * @remarks\n * This plugin generates .d.ts files for each entry point in the bundle, ensuring that type definitions are available for consumers of the library.\n */\nexport const dtsBundlePlugin: Plugin = {\n name: \"powerlines:dts-bundle\",\n async generateBundle(_opts, bundle) {\n for (const [, file] of Object.entries(bundle)) {\n if (\n file.type === \"asset\" ||\n !file.isEntry ||\n file.facadeModuleId == null\n ) {\n continue;\n }\n\n // Replace various JavaScript file extensions (e.g., .js, .cjs, .mjs, .cjs.js, .mjs.js) with .d.ts for generating type definition file names.\n const dtsFileName = file.fileName.replace(\n /(?:\\.cjs|\\.mjs|\\.esm\\.js|\\.cjs\\.js|\\.mjs\\.js|\\.js)$/,\n \".d.ts\"\n );\n\n const relativeSourceDtsName = JSON.stringify(\n `./${file.facadeModuleId.replace(/\\.[cm]?[jt]sx?$/, \"\")}`\n );\n\n this.emitFile({\n type: \"asset\",\n fileName: dtsFileName,\n source: file.exports.includes(\"default\")\n ? `export * from ${relativeSourceDtsName};\\nexport { default } from ${relativeSourceDtsName};\\n`\n : `export * from ${relativeSourceDtsName};\\n`\n });\n }\n }\n};\n\n/**\n * Resolves the options for [rollup](https://rollupjs.org).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractRollupConfig(\n context: Context\n): RollupResolvedBuildConfig {\n const result = defu(\n {\n input: globSync(\n toArray(context.config.entry).map(entry =>\n isString(entry) ? entry : entry.file\n )\n ).flat(),\n external: (\n source: string,\n importer: string | undefined,\n isResolved: boolean\n ) => {\n const externalFn =\n context.config.build.variant === \"rollup\" &&\n context.config.override.external\n ? isFunction(context.config.override.external)\n ? context.config.override.external\n : (id: string) =>\n toArray(\n (\n context.config\n .override as Partial<RollupResolvedBuildConfig>\n ).external\n ).includes(id)\n : context.config.build.variant === \"vite\" &&\n (context.config.override as ViteResolvedBuildConfig).build\n ?.rollupOptions?.external\n ? isFunction(\n (context.config.override as ViteResolvedBuildConfig).build\n ?.rollupOptions?.external\n )\n ? (context.config.override as ViteResolvedBuildConfig).build\n ?.rollupOptions?.external\n : (id: string) =>\n toArray(\n (context.config.build as ViteResolvedBuildConfig)?.build\n ?.rollupOptions?.external\n ).includes(id)\n : context.config.build.variant === \"rollup\" &&\n context.config.build.external\n ? isFunction(context.config.build.external)\n ? context.config.build.external\n : (id: string) =>\n toArray(\n (context.config.build as RollupResolvedBuildConfig)\n .external\n ).includes(id)\n : context.config.build.variant === \"vite\" &&\n (context.config.build as ViteBuildConfig).build\n ?.rollupOptions?.external\n ? isFunction(\n (context.config.build as ViteBuildConfig).build\n ?.rollupOptions?.external\n )\n ? (context.config.build as ViteBuildConfig).build\n ?.rollupOptions?.external\n : (id: string) =>\n toArray(\n (context.config.build as ViteBuildConfig)?.build\n ?.rollupOptions?.external\n ).includes(id)\n : undefined;\n if (\n isFunction(externalFn) &&\n externalFn(source, importer, isResolved)\n ) {\n return true;\n }\n\n if (\n context.config.build.external &&\n toArray(context.config.build.external).includes(source)\n ) {\n return true;\n }\n\n if (\n context.config.build.noExternal &&\n toArray(context.config.build.noExternal).includes(source)\n ) {\n return false;\n }\n\n if (context.builtins.includes(source)) {\n return context.config.projectType !== \"application\";\n }\n\n return !context.config.build.skipNodeModulesBundle;\n },\n plugins: [\n typescriptPlugin({\n check: false,\n tsconfig: context.tsconfig.tsconfigFilePath\n }),\n alias({\n entries: context.builtins.reduce(\n (ret, id) => {\n if (!ret.find(e => e.find === id)) {\n const path = context.fs.ids[id];\n if (path) {\n ret.push({ find: id, replacement: path });\n }\n }\n\n return ret;\n },\n [] as { find: string; replacement: string }[]\n )\n }),\n getBabelInputPlugin(\n defu(context.config.transform.babel, {\n caller: {\n name: \"powerlines\",\n supportsStaticESM: true\n },\n cwd: context.config.projectRoot,\n babelrc: false,\n extensions: [\".js\", \".jsx\", \".ts\", \".tsx\"],\n babelHelpers: \"bundled\",\n skipPreflightCheck: true,\n exclude: /node_modules/\n }) as RollupBabelInputPluginOptions\n ),\n resolve({\n moduleDirectories: [\"node_modules\"],\n preferBuiltins: true\n }),\n dtsBundlePlugin\n ]\n },\n context.config.build.variant === \"rollup\" ? context.config.override : {},\n context.config.build.variant === \"vite\"\n ? (context.config.override as ViteBuildConfig).build?.rollupOptions\n : {},\n {\n cache: !context.config.skipCache\n ? joinPaths(context.cachePath, \"rollup\")\n : false,\n output: {\n dir: context.config.output.outputPath\n },\n logLevel: context.config.logLevel\n },\n context.config.build.variant === \"rollup\" ? context.config.build : {},\n context.config.build.variant === \"vite\"\n ? (context.config.build as ViteBuildConfig).build?.rollupOptions\n : {},\n {\n output: {\n sourcemap: context.config.mode === \"development\"\n }\n },\n {\n logLevel: \"silent\",\n output: [\n {\n format: \"es\",\n entryFileNames: \"[name].js\",\n preserveModules: true\n },\n {\n format: \"cjs\",\n entryFileNames: \"[name].cjs\",\n preserveModules: true\n }\n ]\n }\n ) as RollupResolvedBuildConfig;\n\n return result;\n}\n"]}
@@ -47,7 +47,7 @@ async function createVirtualProgram(rootNames, context, compilerOptions = {}) {
47
47
  ...ts.sys,
48
48
  realpath: /* @__PURE__ */ __name((path) => {
49
49
  if (context.fs.existsSync(path)) {
50
- return context.fs.resolvePath(path);
50
+ return context.fs.resolve(path);
51
51
  }
52
52
  return ts.sys.realpath?.(path) ?? path;
53
53
  }, "realpath"),
@@ -102,7 +102,7 @@ async function createVirtualProgram(rootNames, context, compilerOptions = {}) {
102
102
  },
103
103
  resolvePath: /* @__PURE__ */ __name((fileName) => {
104
104
  if (context.fs.existsSync(fileName)) {
105
- return context.fs.resolvePath(fileName);
105
+ return context.fs.resolve(fileName);
106
106
  }
107
107
  return ts.sys.resolvePath(fileName);
108
108
  }, "resolvePath"),
@@ -156,5 +156,5 @@ function createVirtualCompilerHost(sys, compilerOptions) {
156
156
  __name(createVirtualCompilerHost, "createVirtualCompilerHost");
157
157
 
158
158
  export { SourcesMap, createVirtualCompilerHost, createVirtualProgram, getDefaultCompilerOptions, loadLibFiles };
159
- //# sourceMappingURL=chunk-E7UTFXPP.js.map
160
- //# sourceMappingURL=chunk-E7UTFXPP.js.map
159
+ //# sourceMappingURL=chunk-KFE2IR3Y.js.map
160
+ //# sourceMappingURL=chunk-KFE2IR3Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/typescript/program.ts"],"names":["SourcesMap","Map","loadLibFiles","libLocation","resolvePackage","Error","libFiles","listFiles","joinPaths","length","lib","file","set","findFileName","readFile","getDefaultCompilerOptions","ts","jsx","JsxEmit","React","strict","esModuleInterop","module","ModuleKind","ESNext","suppressOutputPathCheck","skipLibCheck","skipDefaultLibCheck","moduleResolution","ModuleResolutionKind","Node10","createVirtualProgram","rootNames","context","compilerOptions","options","defu","host","name","root","workspaceConfig","workspaceRoot","sys","realpath","path","fs","existsSync","resolve","getCurrentDirectory","getCanonicalFileName","fileName","getDefaultLibFileName","_options","getDefaultLibLocation","getNewLine","useCaseSensitiveFileNames","fileExists","readFileSync","undefined","readDirectory","extensions","exclude","include","results","readdirSync","encoding","recursive","filter","some","ext","endsWith","startsWith","pattern","minimatch","writeFile","data","writeFileSync","resolvePath","getSourceFile","languageVersionOrOptions","_","shouldCreateNewSourceFile","createSourceFile","target","sourceFile","text","createProgram","createVirtualCompilerHost","sourceFiles","save","vHost","compilerHost","newLine","get","updateFile","alreadyExists","has","deleteFile","delete"],"mappings":"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","file":"chunk-KFE2IR3Y.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { listFiles } from \"@stryke/fs/list-files\";\nimport { readFile } from \"@stryke/fs/read-file\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport defu from \"defu\";\nimport { minimatch } from \"minimatch\";\nimport ts, { CompilerOptions } from \"typescript\";\nimport { Context } from \"../../types/context\";\n\nexport const SourcesMap = Map<string, string>;\n// eslint-disable-next-line ts/no-redeclare\nexport type SourcesMap = InstanceType<typeof SourcesMap>;\n\nexport async function loadLibFiles(): Promise<SourcesMap> {\n const libLocation = await resolvePackage(\"typescript\");\n if (!libLocation) {\n throw new Error(\"Could not resolve TypeScript package location.\");\n }\n\n const libFiles = await listFiles(\n joinPaths(libLocation, \"lib\", \"**\", \"lib.*.d.ts\")\n );\n if (libFiles.length === 0) {\n throw new Error(\"No TypeScript library files found.\");\n }\n\n const lib: SourcesMap = new Map();\n for (const file of libFiles) {\n lib.set(\n `/node_modules/typescript/lib/${findFileName(file)}`,\n await readFile(file)\n );\n }\n\n return lib;\n}\n\n/** The default compiler options if TypeScript could ever change the compiler options */\nexport function getDefaultCompilerOptions(): CompilerOptions {\n return {\n ...ts.getDefaultCompilerOptions(),\n jsx: ts.JsxEmit.React,\n strict: true,\n esModuleInterop: true,\n module: ts.ModuleKind.ESNext,\n suppressOutputPathCheck: true,\n skipLibCheck: true,\n skipDefaultLibCheck: true,\n moduleResolution: ts.ModuleResolutionKind.Node10\n };\n}\n\n/**\n * Creates a TypeScript program from in-memory, virtual source files.\n *\n * @param rootNames - An array of root file names to include in the program.\n * @param context - The context containing options and environment paths.\n * @param compilerOptions - Optional TypeScript compiler options. Defaults to the standard TypeScript options\n * @returns A TypeScript program instance that can be used for type checking, emitting, etc.\n * @throws If the provided library files are not in the expected format or if the TypeScript package cannot be resolved.\n */\nexport async function createVirtualProgram(\n rootNames: readonly string[],\n context: Context,\n compilerOptions: ts.CompilerOptions = {}\n): Promise<ts.Program> {\n const options = defu(compilerOptions, getDefaultCompilerOptions());\n\n const host = {\n name: \"storm-vfs\",\n root: context.workspaceConfig.workspaceRoot,\n ...ts.sys,\n realpath: (path: string) => {\n if (context.fs.existsSync(path)) {\n return context.fs.resolve(path);\n }\n\n return ts.sys.realpath?.(path) ?? path;\n },\n getCurrentDirectory(): string {\n return context.workspaceConfig.workspaceRoot;\n },\n getCanonicalFileName(fileName: string): string {\n return fileName;\n },\n getDefaultLibFileName(_options: ts.CompilerOptions): string {\n return ts.getDefaultLibFileName(options);\n },\n getDefaultLibLocation(): string {\n return \"/\";\n },\n getNewLine(): string {\n return \"\\n\";\n },\n useCaseSensitiveFileNames(): boolean {\n return true;\n },\n fileExists(fileName: string): boolean {\n return context.fs.existsSync(fileName);\n },\n readFile(fileName: string): string | undefined {\n if (context.fs.existsSync(fileName)) {\n return context.fs.readFileSync(fileName);\n }\n\n return undefined;\n },\n readDirectory: (\n path: string,\n extensions: readonly string[] = [],\n exclude: readonly string[] = [],\n include: readonly string[] = []\n ) => {\n let results = [] as string[];\n if (context.fs.existsSync(path)) {\n results = context.fs.readdirSync(path, {\n encoding: \"utf8\",\n recursive: true\n });\n\n if (extensions.length > 0) {\n results = results.filter(file =>\n extensions.some(ext =>\n file.endsWith(ext.startsWith(\".\") ? ext : `.${ext}`)\n )\n );\n }\n\n if (exclude.length > 0) {\n results = results.filter(\n file => !exclude.some(pattern => minimatch(file, pattern))\n );\n }\n\n if (include.length > 0) {\n results = results.filter(file =>\n include.some(pattern => minimatch(file, pattern))\n );\n }\n }\n\n return results;\n },\n writeFile(fileName: string, data: string): void {\n context.fs.writeFileSync(fileName, data);\n },\n resolvePath: (fileName: string): string => {\n if (context.fs.existsSync(fileName)) {\n return context.fs.resolve(fileName) as string;\n }\n\n return ts.sys.resolvePath(fileName);\n },\n getSourceFile(\n fileName: string,\n languageVersionOrOptions: ts.ScriptTarget | ts.CreateSourceFileOptions,\n _?: (message: string) => void,\n shouldCreateNewSourceFile?: boolean\n ): ts.SourceFile | undefined {\n if (context.fs.existsSync(fileName)) {\n return ts.createSourceFile(\n fileName,\n context.fs.readFileSync(fileName)!,\n languageVersionOrOptions ??\n compilerOptions.target ??\n getDefaultCompilerOptions().target!,\n false\n );\n } else if (shouldCreateNewSourceFile) {\n const sourceFile = ts.createSourceFile(\n fileName,\n \"\",\n languageVersionOrOptions ??\n compilerOptions.target ??\n getDefaultCompilerOptions().target!,\n false\n );\n context.fs.writeFileSync(fileName, sourceFile.text);\n return sourceFile;\n }\n\n return undefined;\n }\n } as ts.CompilerHost;\n\n return ts.createProgram(rootNames, options, host);\n}\n\ninterface VirtualCompilerHostReturn {\n compilerHost: ts.CompilerHost;\n updateFile: (sourceFile: ts.SourceFile) => boolean;\n deleteFile: (sourceFile: ts.SourceFile) => boolean;\n}\n\n/**\n * Creates an in-memory CompilerHost -which is essentially an extra wrapper to System\n * which works with TypeScript objects - returns both a compiler host, and a way to add new SourceFile\n * instances to the in-memory file system.\n */\nexport function createVirtualCompilerHost(\n sys: ts.System,\n compilerOptions: ts.CompilerOptions\n) {\n const sourceFiles = new Map<string, ts.SourceFile>();\n const save = (sourceFile: ts.SourceFile) => {\n sourceFiles.set(sourceFile.fileName, sourceFile);\n return sourceFile;\n };\n\n const vHost: VirtualCompilerHostReturn = {\n compilerHost: {\n ...sys,\n getCanonicalFileName: fileName => fileName,\n getDefaultLibFileName: () =>\n `/${ts.getDefaultLibFileName(compilerOptions)}`, // '/lib.d.ts',\n // getDefaultLibLocation: () => '/',\n getNewLine: () => sys.newLine,\n getSourceFile: (fileName, languageVersionOrOptions) => {\n return (\n sourceFiles.get(fileName) ??\n save(\n ts.createSourceFile(\n fileName,\n sys.readFile(fileName)!,\n languageVersionOrOptions ?? compilerOptions.target,\n false\n )\n )\n );\n },\n useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames\n },\n updateFile: sourceFile => {\n const alreadyExists = sourceFiles.has(sourceFile.fileName);\n sys.writeFile(sourceFile.fileName, sourceFile.text);\n sourceFiles.set(sourceFile.fileName, sourceFile);\n return alreadyExists;\n },\n deleteFile: sourceFile => {\n const alreadyExists = sourceFiles.has(sourceFile.fileName);\n sourceFiles.delete(sourceFile.fileName);\n sys.deleteFile!(sourceFile.fileName);\n return alreadyExists;\n }\n };\n\n return vHost;\n}\n"]}
@@ -165,5 +165,5 @@ function createWorker(workerPath, exposedMethods, numWorkers = 1) {
165
165
  __name(createWorker, "createWorker");
166
166
 
167
167
  export { Worker, createWorker };
168
- //# sourceMappingURL=chunk-RY67J24J.js.map
169
- //# sourceMappingURL=chunk-RY67J24J.js.map
168
+ //# sourceMappingURL=chunk-KSBESEOF.js.map
169
+ //# sourceMappingURL=chunk-KSBESEOF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utilities/worker.ts"],"names":["RESTARTED","Symbol","cleanupWorkers","worker","curWorker","_workerPool","_workers","_child","kill","Worker","workerPath","options","timeout","onRestart","name","context","farmOptions","createLog","restartPromise","resolveRestartPromise","activeTasks","undefined","process","on","close","createWorker","JestWorker","forkOptions","env","POWERLINES_LOCAL","maxRetries","Promise","resolve","enableWorkerThreads","code","signal","LogLevelLabel","ERROR","exit","data","type","onActivity","aborted","onActivityAbort","abortActivityStreamOnLog","Transform","transform","_chunk","_encoding","callback","getStdout","pipe","getStderr","stdout","stderr","onHanging","WARN","end","then","hangingTimer","clearTimeout","setTimeout","method","exposedMethods","startsWith","args","attempts","params","defu","length","result","race","bind","Error","numWorkers","findFileName","withExtension"],"mappings":"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","file":"chunk-KSBESEOF.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { defu } from \"defu\";\nimport { Worker as JestWorker } from \"jest-worker\";\nimport type { ChildProcess } from \"node:child_process\";\nimport { Transform } from \"node:stream\";\nimport { LogFn } from \"../../types/config\";\nimport { WorkerProcess } from \"../../types/context\";\nimport { createLog } from \"../logger\";\n\nexport type WorkerOptions = ConstructorParameters<typeof JestWorker>[1] & {\n name?: string;\n timeout?: number;\n onActivity?: () => void;\n onActivityAbort?: () => void;\n onRestart?: (method: string, args: any[], attempts: number) => void;\n exposedMethods: ReadonlyArray<string>;\n enableWorkerThreads?: boolean;\n context?: Record<string, any>;\n};\n\nconst RESTARTED = Symbol(\"restarted\");\n\nconst cleanupWorkers = (worker: JestWorker) => {\n for (const curWorker of ((worker as any)._workerPool?._workers || []) as {\n _child?: ChildProcess;\n }[]) {\n curWorker._child?.kill(\"SIGINT\");\n }\n};\n\nexport class Worker {\n #worker: JestWorker | undefined;\n\n #log: LogFn;\n\n public constructor(\n protected workerPath: string,\n protected options: WorkerOptions\n ) {\n const { timeout, onRestart, name, context, ...farmOptions } = this.options;\n\n this.#log = createLog(name || workerPath);\n\n let restartPromise: Promise<typeof RESTARTED>;\n let resolveRestartPromise: (arg: typeof RESTARTED) => void;\n let activeTasks = 0;\n\n this.#worker = undefined;\n\n // ensure we end workers if they weren't before exit\n process.on(\"exit\", () => {\n this.close();\n });\n\n const createWorker = () => {\n this.#worker = new JestWorker(workerPath, {\n ...farmOptions,\n forkOptions: {\n ...farmOptions.forkOptions,\n env: {\n ...((farmOptions.forkOptions?.env ?? {}) as any),\n ...process.env,\n POWERLINES_LOCAL: process.env.POWERLINES_LOCAL || \"0\"\n }\n },\n maxRetries: 0\n });\n restartPromise = new Promise(resolve => {\n resolveRestartPromise = resolve;\n });\n\n /**\n * Jest Worker has two worker types, ChildProcessWorker (uses child_process) and NodeThreadWorker (uses worker_threads)\n * Powerlines uses ChildProcessWorker by default, but it can be switched to NodeThreadWorker with an experimental flag\n *\n * We only want to handle ChildProcessWorker's orphan process issue, so we access the private property \"_child\":\n * https://github.com/facebook/jest/blob/b38d7d345a81d97d1dc3b68b8458b1837fbf19be/packages/jest-worker/src/workers/ChildProcessWorker.ts\n *\n * But this property is not available in NodeThreadWorker, so we need to check if we are using ChildProcessWorker\n */\n if (!farmOptions.enableWorkerThreads) {\n for (const worker of ((this.#worker as any)._workerPool?._workers ||\n []) as {\n _child?: ChildProcess;\n }[]) {\n worker._child?.on(\"exit\", (code, signal) => {\n if ((code || (signal && signal !== \"SIGINT\")) && this.#worker) {\n this.#log(\n LogLevelLabel.ERROR,\n `${this.options.name} worker exited with code: ${code} and signal: ${signal}`\n );\n\n // if a child process doesn't exit gracefully, we want to bubble up the exit code to the parent process\n process.exit(code ?? 1);\n }\n });\n\n // if a child process emits a particular message, we track that as activity\n // so the parent process can keep track of progress\n worker._child?.on(\"message\", ([, data]: [number, unknown]) => {\n if (\n data &&\n typeof data === \"object\" &&\n \"type\" in data &&\n data.type === \"activity\"\n ) {\n // eslint-disable-next-line ts/no-use-before-define\n onActivity();\n }\n });\n }\n }\n\n let aborted = false;\n const onActivityAbort = () => {\n if (!aborted) {\n this.options.onActivityAbort?.();\n aborted = true;\n }\n };\n\n // Listen to the worker's stdout and stderr, if there's any thing logged, abort the activity first\n const abortActivityStreamOnLog = new Transform({\n transform(_chunk, _encoding, callback) {\n onActivityAbort();\n callback();\n }\n });\n // Stop the activity if there's any output from the worker\n this.#worker.getStdout().pipe(abortActivityStreamOnLog);\n this.#worker.getStderr().pipe(abortActivityStreamOnLog);\n\n // Pipe the worker's stdout and stderr to the parent process\n this.#worker.getStdout().pipe(process.stdout);\n this.#worker.getStderr().pipe(process.stderr);\n };\n createWorker();\n\n const onHanging = () => {\n const worker = this.#worker;\n if (!worker) {\n return;\n }\n\n const resolve = resolveRestartPromise;\n createWorker();\n\n this.#log(\n LogLevelLabel.WARN,\n `Sending SIGTERM signal to static worker due to timeout${\n timeout ? ` of ${timeout / 1000} seconds` : \"\"\n }. Subsequent errors may be a result of the worker exiting.`\n );\n\n void worker.end().then(() => {\n resolve(RESTARTED);\n });\n };\n\n let hangingTimer: NodeJS.Timeout | false = false;\n\n const onActivity = () => {\n if (hangingTimer) {\n clearTimeout(hangingTimer);\n }\n if (this.options.onActivity) {\n this.options.onActivity();\n }\n\n hangingTimer = activeTasks > 0 && setTimeout(onHanging, timeout);\n };\n\n for (const method of farmOptions.exposedMethods) {\n if (method.startsWith(\"_\")) {\n continue;\n }\n\n (this as any)[method] = timeout\n ? async (...args: any[]) => {\n activeTasks++;\n try {\n let attempts = 0;\n for (;;) {\n onActivity();\n\n const params = defu(\n args.length > 0 && args[0] ? args[0] : {},\n context ?? {}\n );\n\n const result = await Promise.race([\n // eslint-disable-next-line ts/no-unsafe-call\n (this.#worker as any)[method](...params),\n restartPromise\n ]);\n if (result !== RESTARTED) {\n return result;\n }\n if (onRestart) {\n onRestart(method, args, ++attempts);\n }\n }\n } finally {\n activeTasks--;\n onActivity();\n }\n }\n : // eslint-disable-next-line ts/no-unsafe-call\n (this.#worker as any)[method].bind(this.#worker);\n }\n }\n\n public async end(): ReturnType<JestWorker[\"end\"]> {\n const worker = this.#worker;\n if (!worker) {\n throw new Error(\"Farm is ended, no more calls can be done to it\");\n }\n\n cleanupWorkers(worker);\n this.#worker = undefined;\n return worker.end();\n }\n\n /**\n * Quietly end the worker if it exists\n */\n public close(): void {\n if (this.#worker) {\n cleanupWorkers(this.#worker);\n void this.#worker.end();\n }\n }\n}\n\nexport function createWorker<\n TExposedMethods extends ReadonlyArray<string> = ReadonlyArray<string>\n>(\n workerPath: string,\n exposedMethods: TExposedMethods,\n numWorkers = 1\n): WorkerProcess<TExposedMethods> {\n return new Worker(workerPath, {\n name: findFileName(workerPath, {\n withExtension: false\n }),\n exposedMethods,\n numWorkers\n }) as WorkerProcess<TExposedMethods>;\n}\n"]}
@@ -5,8 +5,8 @@ import defu from 'defu';
5
5
  function extractRspackConfig(context) {
6
6
  return defu({
7
7
  resolve: {
8
- alias: context.fs.builtinIdMap.keys().reduce((ret, id) => {
9
- const path = context.fs.builtinIdMap.get(id);
8
+ alias: context.builtins.reduce((ret, id) => {
9
+ const path = context.fs.ids[id];
10
10
  if (path) {
11
11
  ret[id] = path;
12
12
  }
@@ -31,7 +31,7 @@ function extractRspackConfig(context) {
31
31
  recordsInputPath: joinPaths(context.cachePath, "rspack", ".rspack-records.json"),
32
32
  recordsOutputPath: joinPaths(context.cachePath, "rspack", ".rspack-records.json"),
33
33
  context: joinPaths(context.workspaceConfig.workspaceRoot, context.config.projectRoot),
34
- noExternal: Array.from(context.fs.builtinIdMap.keys())
34
+ noExternal: context.builtins
35
35
  }, context.config.build.variant === "rspack" ? context.config.build : {}, {
36
36
  cache: context.config.mode === "development",
37
37
  devtool: context.config.mode !== "development" ? false : "source-map",
@@ -43,5 +43,5 @@ function extractRspackConfig(context) {
43
43
  __name(extractRspackConfig, "extractRspackConfig");
44
44
 
45
45
  export { extractRspackConfig };
46
- //# sourceMappingURL=chunk-26W3IQT6.js.map
47
- //# sourceMappingURL=chunk-26W3IQT6.js.map
46
+ //# sourceMappingURL=chunk-LTVWU4J2.js.map
47
+ //# sourceMappingURL=chunk-LTVWU4J2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/build/rspack.ts"],"names":["extractRspackConfig","context","defu","resolve","alias","builtins","reduce","ret","id","path","fs","ids","config","build","variant","override","external","noExternal","skipNodeModulesBundle","output","joinPaths","workspaceConfig","workspaceRoot","outputPath","name","node","platform","__dirname","__filename","global","mode","recordsInputPath","cachePath","recordsOutputPath","projectRoot","cache","devtool","optimization","minimize"],"mappings":";;;;AAgCO,SAASA,oBAAoBC,OAAAA,EAAgB;AAClD,EAAA,OAAOC,IAAAA,CACL;IACEC,OAAAA,EAAS;AACPC,MAAAA,KAAAA,EAAOH,OAAAA,CAAQI,QAAAA,CAASC,MAAAA,CACtB,CAACC,KAAKC,EAAAA,KAAAA;AACJ,QAAA,MAAMC,IAAAA,GAAOR,OAAAA,CAAQS,EAAAA,CAAGC,GAAAA,CAAIH,EAAAA,CAAAA;AAC5B,QAAA,IAAIC,IAAAA,EAAM;AACRF,UAAAA,GAAAA,CAAIC,EAAAA,CAAAA,GAAMC,IAAAA;AACZ,QAAA;AAEA,QAAA,OAAOF,GAAAA;AACT,MAAA,CAAA,EACA,EAAC;AAEL;GACF,EACAN,OAAAA,CAAQW,OAAOC,KAAAA,CAAMC,OAAAA,KAAY,WAAWb,OAAAA,CAAQW,MAAAA,CAAOG,QAAAA,GAAW,EAAC,EACvE;IACEC,QAAAA,EAAUf,OAAAA,CAAQW,OAAOC,KAAAA,CAAMG,QAAAA;IAC/BC,UAAAA,EAAYhB,OAAAA,CAAQW,OAAOC,KAAAA,CAAMI,UAAAA;IACjCC,qBAAAA,EAAuBjB,OAAAA,CAAQW,OAAOC,KAAAA,CAAMK;GAC9C,EACA;IACEC,MAAAA,EAAQ;AACNV,MAAAA,IAAAA,EAAMW,UACJnB,OAAAA,CAAQoB,eAAAA,CAAgBC,eACxBrB,OAAAA,CAAQW,MAAAA,CAAOO,OAAOI,UAAU;AAEpC,KAAA;AACAC,IAAAA,IAAAA,EAAMvB,QAAQW,MAAAA,CAAOY,IAAAA;AACrBC,IAAAA,IAAAA,EACExB,OAAAA,CAAQW,MAAAA,CAAOC,KAAAA,CAAMa,QAAAA,KAAa,MAAA,GAC7B;MACCC,SAAAA,EAAW,IAAA;MACXC,UAAAA,EAAY,IAAA;MACZC,MAAAA,EAAQ;KACV,GACA,KAAA;AACNC,IAAAA,IAAAA,EACE7B,OAAAA,CAAQW,MAAAA,CAAOkB,IAAAA,KAAS,aAAA,GACnB,aAAA,GACA,YAAA;AACPC,IAAAA,gBAAAA,EAAkBX,SAAAA,CAChBnB,OAAAA,CAAQ+B,SAAAA,EACR,QAAA,EACA,sBAAA,CAAA;AAEFC,IAAAA,iBAAAA,EAAmBb,SAAAA,CACjBnB,OAAAA,CAAQ+B,SAAAA,EACR,QAAA,EACA,sBAAA,CAAA;AAEF/B,IAAAA,OAAAA,EAASmB,UACPnB,OAAAA,CAAQoB,eAAAA,CAAgBC,aAAAA,EACxBrB,OAAAA,CAAQW,OAAOsB,WAAW,CAAA;AAE5BjB,IAAAA,UAAAA,EAAYhB,OAAAA,CAAQI;GACtB,EACAJ,OAAAA,CAAQW,OAAOC,KAAAA,CAAMC,OAAAA,KAAY,WAAWb,OAAAA,CAAQW,MAAAA,CAAOC,KAAAA,GAAQ,EAAC,EACpE;IACEsB,KAAAA,EAAOlC,OAAAA,CAAQW,OAAOkB,IAAAA,KAAS,aAAA;AAC/BM,IAAAA,OAAAA,EAAUnC,OAAAA,CAAQW,MAAAA,CAAOkB,IAAAA,KAAS,aAAA,GAC9B,KAAA,GACA,YAAA;IACJO,YAAAA,EAAc;MACZC,QAAAA,EAAUrC,OAAAA,CAAQW,OAAOkB,IAAAA,KAAS;AACpC;GACF,CAAA;AAEJ;AAtEgB9B,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"chunk-LTVWU4J2.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type {\n DevTool,\n Configuration as ExternalRspackOptions\n} from \"@rspack/core\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport defu from \"defu\";\nimport { Context } from \"../../types/context\";\n\n/**\n * Resolves the options for [rspack](https://rspack.rs/).\n *\n * @param context - The build context.\n * @returns The resolved options.\n */\nexport function extractRspackConfig(context: Context): ExternalRspackOptions {\n return defu(\n {\n resolve: {\n alias: context.builtins.reduce(\n (ret, id) => {\n const path = context.fs.ids[id];\n if (path) {\n ret[id] = path;\n }\n\n return ret;\n },\n {} as Record<string, string>\n )\n }\n },\n context.config.build.variant === \"rspack\" ? context.config.override : {},\n {\n external: context.config.build.external,\n noExternal: context.config.build.noExternal,\n skipNodeModulesBundle: context.config.build.skipNodeModulesBundle\n },\n {\n output: {\n path: joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.output.outputPath\n )\n },\n name: context.config.name,\n node:\n context.config.build.platform === \"node\"\n ? ({\n __dirname: true,\n __filename: true,\n global: true\n } as ExternalRspackOptions[\"node\"])\n : false,\n mode:\n context.config.mode === \"development\"\n ? (\"development\" as const)\n : (\"production\" as const),\n recordsInputPath: joinPaths(\n context.cachePath,\n \"rspack\",\n \".rspack-records.json\"\n ),\n recordsOutputPath: joinPaths(\n context.cachePath,\n \"rspack\",\n \".rspack-records.json\"\n ),\n context: joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot\n ),\n noExternal: context.builtins\n },\n context.config.build.variant === \"rspack\" ? context.config.build : {},\n {\n cache: context.config.mode === \"development\",\n devtool: (context.config.mode !== \"development\"\n ? false\n : \"source-map\") as DevTool | false,\n optimization: {\n minimize: context.config.mode !== \"development\"\n }\n }\n );\n}\n"]}
@@ -81,14 +81,16 @@ __name(getPersistedMeta, "getPersistedMeta");
81
81
  async function writeMetaFile(context) {
82
82
  const metaFilePath = joinPaths(context.dataPath, "meta.json");
83
83
  context.log(LogLevelLabel.DEBUG, `Writing runtime metadata to ${metaFilePath}`);
84
- await context.fs.writeFileToDisk(metaFilePath, JSON.stringify({
84
+ await context.fs.writeFile(metaFilePath, JSON.stringify({
85
85
  ...context.meta,
86
- builtinIdMap: Object.fromEntries(context.fs.builtinIdMap.entries()),
87
- virtualFiles: context.fs[__VFS_VIRTUAL__].toJSON(context.artifactsPath)
88
- }, null, 2));
86
+ virtualFiles: context.fs[__VFS_VIRTUAL__].toJSON(context.artifactsPath),
87
+ virtualFilesMeta: context.fs.getPartialMeta()
88
+ }, null, 2), {
89
+ mode: "fs"
90
+ });
89
91
  }
90
92
  __name(writeMetaFile, "writeMetaFile");
91
93
 
92
94
  export { CACHE_HASH_LENGTH, PROJECT_ROOT_HASH_LENGTH, __VFS_CACHE__, __VFS_INIT__, __VFS_RESOLVER__, __VFS_REVERT__, __VFS_UNIFIED__, __VFS_VIRTUAL__, discoverTemplates, getChecksum, getPersistedMeta, getPrefixedProjectRootHash, writeMetaFile };
93
- //# sourceMappingURL=chunk-GWAVDFOE.js.map
94
- //# sourceMappingURL=chunk-GWAVDFOE.js.map
95
+ //# sourceMappingURL=chunk-M7U5RMK7.js.map
96
+ //# sourceMappingURL=chunk-M7U5RMK7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/vfs.ts","../../src/lib/utilities/meta.ts"],"names":["__VFS_INIT__","__VFS_REVERT__","__VFS_CACHE__","__VFS_RESOLVER__","__VFS_VIRTUAL__","__VFS_UNIFIED__","PROJECT_ROOT_HASH_LENGTH","CACHE_HASH_LENGTH","getPrefixedProjectRootHash","name","projectRootHash","combined","kebabCase","length","slice","discoverTemplatePath","path","Promise","all","resolve","test","includes","hasFileExtension","joinPaths","listFiles","flat","filter","Boolean","discoverTemplates","context","paths","getUnique","map","config","sourceRoot","envPaths","projectRoot","reduce","ret","existsSync","push","getChecksum","hashDirectory","ignore","getPersistedMeta","metaFilePath","dataPath","readJsonFile","log","LogLevelLabel","WARN","removeFile","persistedMeta","undefined","writeMetaFile","DEBUG","fs","writeFile","JSON","stringify","meta","virtualFiles","toJSON","artifactsPath","virtualFilesMeta","getPartialMeta","mode"],"mappings":"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","file":"chunk-M7U5RMK7.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { PrimitiveJsonValue } from \"@stryke/json/types\";\nimport type { Volume } from \"memfs\";\nimport type {\n MakeDirectoryOptions as FsMakeDirectoryOptions,\n WriteFileOptions as FsWriteFileOptions,\n Mode,\n PathLike,\n PathOrFileDescriptor,\n RmDirOptions,\n RmOptions,\n Stats,\n StatSyncOptions\n} from \"node:fs\";\nimport type { IUnionFs } from \"unionfs\";\n\nexport type VirtualFileExtension = \"js\" | \"ts\" | \"jsx\" | \"tsx\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_INIT__ = \"__VFS_INIT__\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_REVERT__ = \"__VFS_REVERT__\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_CACHE__ = \"__VFS_CACHE__\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_RESOLVER__ = \"__VFS_RESOLVER__\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_VIRTUAL__ = \"__VFS_VIRTUAL__\";\n\n// eslint-disable-next-line ts/naming-convention\nexport const __VFS_UNIFIED__ = \"__VFS_UNIFIED__\";\n\nexport type OutputModeType = \"fs\" | \"virtual\";\n\nexport interface VirtualFile {\n /**\n * The unique identifier for the virtual file.\n *\n * @remarks\n * If no specific id is provided, it defaults to the file's {@link path}.\n */\n id: string;\n\n /**\n * Additional metadata associated with the virtual file.\n */\n details: Record<string, PrimitiveJsonValue>;\n\n /**\n * The variant of the file.\n *\n * @remarks\n * This string represents the purpose/function of the file in the virtual file system. A potential list of variants includes:\n * - `builtin`: Indicates that the file is a built-in module provided by the system.\n * - `entry`: Indicates that the file is an entry point for execution.\n * - `normal`: Indicates that the file is a standard file without any special role.\n */\n variant: string;\n\n /**\n * The output mode of the file.\n *\n * @remarks\n * This indicates whether the file is intended to be written to the actual file system (`fs`) or kept in the virtual file system (`virtual`).\n */\n mode: OutputModeType;\n\n /**\n * A virtual (or actual) path to the file in the file system.\n */\n path: string;\n\n /**\n * The contents of the file.\n */\n code: string | NodeJS.ArrayBufferView;\n}\n\nexport type VirtualFileSystemMetadata = Pick<\n VirtualFile,\n \"id\" | \"details\" | \"variant\" | \"mode\"\n>;\n\nexport interface ResolveFSOptions {\n mode?: OutputModeType;\n}\n\nexport type MakeDirectoryOptions = (Mode | FsMakeDirectoryOptions) &\n ResolveFSOptions;\n\nexport interface PowerlinesWriteFileOptions extends ResolveFSOptions {\n skipFormat?: boolean;\n}\n\nexport type NodeWriteFileOptions = FsWriteFileOptions;\n\nexport type WriteFileOptions =\n | NodeWriteFileOptions\n | PowerlinesWriteFileOptions;\n\nexport type PowerLinesWriteFileData = Partial<\n Omit<VirtualFile, \"path\" | \"mode\" | \"code\">\n> &\n Pick<VirtualFile, \"code\">;\n\nexport type WriteFileData =\n | string\n | NodeJS.ArrayBufferView\n | PowerLinesWriteFileData;\n\nexport interface ResolvePathOptions extends ResolveFSOptions {\n /**\n * Should the resolved path include the file extension?\n *\n * @defaultValue true\n */\n withExtension?: boolean;\n\n /**\n * The paths to search for the file.\n */\n paths?: string[];\n\n /**\n * The type of the path to resolve.\n */\n type?: \"file\" | \"directory\";\n}\n\nexport interface VirtualFileSystemInterface {\n [__VFS_INIT__]: () => void;\n [__VFS_REVERT__]: () => void;\n\n /**\n * The underlying file metadata.\n */\n meta: Record<string, VirtualFileSystemMetadata | undefined>;\n\n /**\n * A map of module ids to their file paths.\n */\n ids: Record<string, string>;\n\n /**\n * Check if a path or id corresponds to a virtual file **(does not actually exists on disk)**.\n *\n * @param pathOrId - The path or id to check.\n * @param options - Optional parameters for resolving the path.\n * @returns Whether the path or id corresponds to a virtual file **(does not actually exists on disk)**.\n */\n isVirtual: (pathOrId: string, options?: ResolvePathOptions) => boolean;\n\n /**\n * Check if a path or id corresponds to a file written to the file system **(actually exists on disk)**.\n *\n * @param pathOrId - The path or id to check.\n * @param options - Optional parameters for resolving the path.\n * @returns Whether the path or id corresponds to a file written to the file system **(actually exists on disk)**.\n */\n isFs: (pathOrId: string, options?: ResolvePathOptions) => boolean;\n\n /**\n * Checks if a file exists in the virtual file system (VFS).\n *\n * @param path - The path of the file to check.\n * @returns `true` if the file exists, otherwise `false`.\n */\n isFile: (path: string) => boolean;\n\n /**\n * Checks if a directory exists in the virtual file system (VFS).\n *\n * @param path - The path of the directory to check.\n * @returns `true` if the directory exists, otherwise `false`.\n */\n isDirectory: (path: string) => boolean;\n\n /**\n * Check if a path exists within one of the directories specified in the tsconfig.json's `path` field.\n *\n * @see https://www.typescriptlang.org/tsconfig#paths\n *\n * @param pathOrId - The path or id to check.\n * @returns Whether the path or id corresponds to a virtual file.\n */\n isTsconfigPath: (pathOrId: string) => boolean;\n\n /**\n * Checks if a file exists in the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @returns `true` if the file exists, otherwise `false`.\n */\n existsSync: (pathOrId: string) => boolean;\n\n /**\n * Gets the stats of a file in the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @param options - Optional parameters for getting the stats.\n * @returns The stats of the file if it exists, otherwise undefined.\n */\n lstat: (\n pathOrId: string,\n options?: StatSyncOptions & {\n bigint?: false | undefined;\n throwIfNoEntry: false;\n }\n ) => Promise<Stats>;\n\n /**\n * Gets the stats of a file in the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @param options - Optional parameters for getting the stats.\n * @returns The stats of the file if it exists, otherwise undefined.\n */\n lstatSync: (\n pathOrId: string,\n options?: StatSyncOptions & {\n bigint?: false | undefined;\n throwIfNoEntry: false;\n }\n ) => Stats | undefined;\n\n /**\n * Gets the stats of a file in the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @returns The stats of the file if it exists, otherwise false.\n */\n stat: (\n pathOrId: string,\n options?: StatSyncOptions & {\n bigint?: false | undefined;\n throwIfNoEntry: false;\n }\n ) => Promise<Stats>;\n\n /**\n * Gets the stats of a file in the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @returns The stats of the file if it exists, otherwise false.\n */\n statSync: (\n pathOrId: string,\n options?: StatSyncOptions & {\n bigint?: false | undefined;\n throwIfNoEntry: false;\n }\n ) => Stats | undefined;\n\n /**\n * Lists files in a given path.\n *\n * @param path - The path to list files from.\n * @param options - Options for listing files, such as encoding and recursion.\n * @returns An array of file names in the specified path.\n */\n readdirSync: (\n path: string,\n options?:\n | {\n encoding: BufferEncoding | null;\n withFileTypes?: false | undefined;\n recursive?: boolean | undefined;\n }\n | BufferEncoding\n ) => string[];\n\n /**\n * Lists files in a given path.\n *\n * @param path - The path to list files from.\n * @param options - Options for listing files, such as encoding and recursion.\n * @returns An array of file names in the specified path.\n */\n readdir: (\n path: string,\n options?:\n | {\n encoding: BufferEncoding | null;\n withFileTypes?: false | undefined;\n recursive?: boolean | undefined;\n }\n | BufferEncoding\n ) => Promise<string[]>;\n\n /**\n * Removes a file or symbolic link in the virtual file system (VFS).\n *\n * @param path - The path to the file to remove.\n * @returns A promise that resolves when the file is removed.\n */\n unlinkSync: (path: PathLike, options?: ResolveFSOptions) => void;\n\n /**\n * Asynchronously removes a file or symbolic link in the virtual file system (VFS).\n *\n * @param path - The path to the file to remove.\n * @returns A promise that resolves when the file is removed.\n */\n unlink: (path: string, options?: ResolveFSOptions) => Promise<void>;\n\n /**\n * Removes a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n */\n rmdirSync: (path: PathLike, options?: RmDirOptions & ResolveFSOptions) => any;\n\n /**\n * Removes a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n * @returns A promise that resolves to the path of the created directory, or undefined if the directory could not be created.\n */\n rmdir: (\n path: PathLike,\n options?: RmDirOptions & ResolveFSOptions\n ) => Promise<void>;\n\n /**\n * Removes a file in the virtual file system (VFS).\n *\n * @param path - The path to the file to remove.\n * @param options - Options for removing the file.\n * @returns A promise that resolves when the file is removed.\n */\n rm: (path: PathLike, options?: RmOptions & ResolveFSOptions) => Promise<void>;\n\n /**\n * Creates a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n * @returns A promise that resolves to the path of the created directory, or undefined if the directory could not be created.\n */\n mkdirSync: (\n path: PathLike,\n options?: MakeDirectoryOptions\n ) => string | undefined;\n\n /**\n * Creates a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n * @returns A promise that resolves to the path of the created directory, or undefined if the directory could not be created.\n */\n mkdir: (\n path: PathLike,\n options?: MakeDirectoryOptions\n ) => Promise<string | undefined>;\n\n /**\n * Reads a file from the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n * @returns The contents of the file if it exists, otherwise undefined.\n */\n readFile: (pathOrId: string) => Promise<string | undefined>;\n\n /**\n * Reads a file from the virtual file system (VFS).\n *\n * @param pathOrId - The path or id of the file.\n */\n readFileSync: (pathOrId: string) => string | undefined;\n\n /**\n * Writes a file to the virtual file system (VFS).\n *\n * @param path - The path to the file.\n * @param data - The contents of the file.\n * @param options - Optional parameters for writing the file.\n * @returns A promise that resolves when the file is written.\n */\n writeFile: (\n path: PathOrFileDescriptor,\n data?: WriteFileData,\n options?: WriteFileOptions\n ) => Promise<void>;\n\n /**\n * Writes a file to the virtual file system (VFS).\n *\n * @param path - The path to the file.\n * @param data - The contents of the file.\n * @param options - Optional parameters for writing the file.\n */\n writeFileSync: (\n path: PathOrFileDescriptor,\n data?: WriteFileData,\n options?: WriteFileOptions\n ) => void;\n\n /**\n * Resolves a path or id to a file path in the virtual file system.\n *\n * @param pathOrId - The path or id of the file to resolve.\n * @param options - Optional parameters for resolving the path.\n * @returns The resolved path of the file if it exists, otherwise false.\n */\n resolve: (pathOrId: string, options?: ResolvePathOptions) => string | false;\n\n /**\n * Resolves a path based on TypeScript's `tsconfig.json` paths.\n *\n * @see https://www.typescriptlang.org/tsconfig#paths\n *\n * @param path - The path to check.\n * @returns The resolved file path if it exists, otherwise undefined.\n */\n resolveTsconfigPath: (path: string) => string | false;\n\n /**\n * Resolves a package name based on TypeScript's `tsconfig.json` paths.\n *\n * @see https://www.typescriptlang.org/tsconfig#paths\n *\n * @param path - The path to check.\n * @returns The resolved package name if it exists, otherwise undefined.\n */\n resolveTsconfigPathPackage: (path: string) => string | false;\n\n /**\n * Resolves a path or id to a file path in the virtual file system.\n *\n * @param pathOrId - The path or id of the file to resolve.\n * @returns The resolved path of the file if it exists, otherwise false.\n */\n realpathSync: (pathOrId: string) => string;\n\n /**\n * Retrieves a partial metadata mapping of all files in the virtual file system (VFS).\n *\n * @returns A record mapping file paths to their partial metadata.\n */\n getPartialMeta: () => Record<string, Partial<VirtualFileSystemMetadata>>;\n\n /**\n * A map of cached file paths to their underlying file content.\n */\n [__VFS_CACHE__]: Map<string, string>;\n\n /**\n * A reference to the underlying virtual file system.\n */\n [__VFS_VIRTUAL__]: Volume;\n\n /**\n * A reference to the underlying unified file system.\n */\n [__VFS_UNIFIED__]: IUnionFs;\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { readJsonFile } from \"@stryke/fs/json\";\nimport { listFiles } from \"@stryke/fs/list-files\";\nimport { removeFile } from \"@stryke/fs/remove-file\";\nimport { hashDirectory } from \"@stryke/hash/hash-files\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { hasFileExtension } from \"@stryke/path/file-path-fns\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { Context, MetaInfo } from \"../../types/context\";\nimport { __VFS_VIRTUAL__ } from \"../../types/vfs\";\n\nexport interface CreateContextOptions {\n name?: string;\n}\n\nexport const PROJECT_ROOT_HASH_LENGTH = 45;\nexport const CACHE_HASH_LENGTH = 62;\n\n/**\n * Generates a prefixed project root hash object.\n *\n * @remarks\n * This function returns a string where the project root hash is prefixed with the project name plus a hyphen. If the total length of this string combination exceeds 45 characters, it will truncate the hash.\n *\n * @param name - The name of the project.\n * @param projectRootHash - The hash of the project root.\n * @returns An object containing the name and project root hash.\n */\nexport function getPrefixedProjectRootHash(\n name: string,\n projectRootHash: string\n): string {\n const combined = `${kebabCase(name)}_${projectRootHash}`;\n\n return combined.length > PROJECT_ROOT_HASH_LENGTH\n ? combined.slice(0, PROJECT_ROOT_HASH_LENGTH)\n : combined;\n}\n\nasync function discoverTemplatePath(path: string): Promise<string[]> {\n return (\n await Promise.all([\n Promise.resolve(/.tsx?$/.test(path) && !path.includes(\"*\") && path),\n Promise.resolve(!hasFileExtension(path) && joinPaths(path, \".ts\")),\n Promise.resolve(!hasFileExtension(path) && joinPaths(path, \".tsx\")),\n Promise.resolve(\n !hasFileExtension(path) && listFiles(joinPaths(path, \"**/*.ts\"))\n ),\n Promise.resolve(\n !hasFileExtension(path) && listFiles(joinPaths(path, \"**/*.tsx\"))\n )\n ])\n )\n .flat()\n .filter(Boolean) as string[];\n}\n\nexport async function discoverTemplates(\n context: Context,\n paths: string[] = []\n): Promise<string[]> {\n return getUnique(\n (\n await Promise.all([\n ...paths.map(discoverTemplatePath),\n discoverTemplatePath(joinPaths(context.config.sourceRoot, \"plugin\")),\n discoverTemplatePath(joinPaths(context.envPaths.config, \"templates\")),\n discoverTemplatePath(joinPaths(context.config.projectRoot, \"templates\"))\n ])\n )\n .flat()\n .reduce((ret, path) => {\n if (existsSync(path)) {\n ret.push(path);\n }\n\n return ret;\n }, [] as string[])\n );\n}\n\nexport async function getChecksum(path: string): Promise<string> {\n return hashDirectory(path, {\n ignore: [\"node_modules\", \".git\", \".nx\", \".cache\", \".storm\", \"tmp\", \"dist\"]\n });\n}\n\n/**\n * Retrieves the persisted meta information from the context's data path.\n *\n * @param context - The build context.\n * @returns A promise that resolves to the persisted meta information, or undefined if not found.\n */\nexport async function getPersistedMeta(\n context: Context\n): Promise<MetaInfo | undefined> {\n const metaFilePath = joinPaths(context.dataPath, \"meta.json\");\n if (existsSync(metaFilePath)) {\n try {\n return await readJsonFile<MetaInfo>(metaFilePath);\n } catch {\n context.log(\n LogLevelLabel.WARN,\n `Failed to read meta file at ${metaFilePath}. It may be corrupted.`\n );\n await removeFile(metaFilePath);\n\n context.persistedMeta = undefined;\n }\n }\n\n return undefined;\n}\n\n/**\n * Writes the meta file for the context.\n *\n * @param context - The context to write the meta file for.\n * @returns A promise that resolves when the meta file has been written.\n */\nexport async function writeMetaFile(context: Context): Promise<void> {\n const metaFilePath = joinPaths(context.dataPath, \"meta.json\");\n\n context.log(\n LogLevelLabel.DEBUG,\n `Writing runtime metadata to ${metaFilePath}`\n );\n\n await context.fs.writeFile(\n metaFilePath,\n JSON.stringify(\n {\n ...context.meta,\n virtualFiles: context.fs[__VFS_VIRTUAL__].toJSON(context.artifactsPath),\n virtualFilesMeta: context.fs.getPartialMeta()\n },\n null,\n 2\n ),\n {\n mode: \"fs\"\n }\n );\n}\n"]}