powerlines 0.36.29 → 0.37.0

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 (323) hide show
  1. package/dist/{context-DU4oqb6r.d.cts → api-CLQePK25.d.cts} +262 -127
  2. package/dist/{context-DmCNtNIs.d.ts → api-DClrDYWk.d.ts} +262 -127
  3. package/dist/api.cjs +4 -4
  4. package/dist/api.d.cts +7 -7
  5. package/dist/api.d.ts +7 -7
  6. package/dist/api.js +3 -3
  7. package/dist/astro.cjs +6 -6
  8. package/dist/astro.d.cts +6 -5
  9. package/dist/astro.d.ts +6 -5
  10. package/dist/astro.js +5 -5
  11. package/dist/{chunk-K4ZR45W7.cjs → chunk-2ZNVD64B.cjs} +4 -4
  12. package/dist/{chunk-7IDSUDJN.js → chunk-3JGCXWAM.js} +3 -3
  13. package/dist/chunk-42ZHOCZJ.cjs +14 -0
  14. package/dist/{chunk-PZZP3VX2.cjs → chunk-4PIVB3SY.cjs} +14 -9
  15. package/dist/{chunk-ZCMOAOQN.cjs → chunk-B6DVCLP5.cjs} +8 -7
  16. package/dist/chunk-CCJQBJKQ.js +12 -0
  17. package/dist/{chunk-VZMAJMBD.js → chunk-DVJEAUGP.js} +5 -5
  18. package/dist/{chunk-3CCAN6GY.cjs → chunk-E4QAO32M.cjs} +176 -128
  19. package/dist/chunk-FON7JDQF.cjs +12 -0
  20. package/dist/{chunk-NSHXFNIL.js → chunk-IBQ5USID.js} +12 -7
  21. package/dist/{chunk-TP4FRF4H.cjs → chunk-JQDMR7OP.cjs} +2 -2
  22. package/dist/{chunk-4VQBXIAH.js → chunk-MI5E6YZI.js} +3 -3
  23. package/dist/chunk-NITQ5IYP.js +22 -0
  24. package/dist/{chunk-JMX44J5R.js → chunk-NM3AFEVI.js} +174 -128
  25. package/dist/{chunk-AJPO5EP7.js → chunk-PQXP7XQK.js} +8 -7
  26. package/dist/{chunk-OCEXXVLR.cjs → chunk-TFRZZNXL.cjs} +6 -6
  27. package/dist/{chunk-JTK4RYSG.js → chunk-U5MNJ4XF.js} +3 -3
  28. package/dist/{chunk-EXY3RCJH.js → chunk-UNIWU6XL.js} +2 -2
  29. package/dist/chunk-V5WOGN7O.cjs +25 -0
  30. package/dist/chunk-XHOP5GXJ.cjs +12 -0
  31. package/dist/esbuild.cjs +8 -8
  32. package/dist/esbuild.d.cts +6 -5
  33. package/dist/esbuild.d.ts +6 -5
  34. package/dist/esbuild.js +5 -5
  35. package/dist/farm.cjs +5 -5
  36. package/dist/farm.d.cts +6 -5
  37. package/dist/farm.d.ts +6 -5
  38. package/dist/farm.js +4 -4
  39. package/dist/index.cjs +30 -22
  40. package/dist/index.d.cts +6 -7
  41. package/dist/index.d.ts +6 -7
  42. package/dist/index.js +6 -6
  43. package/dist/lib/build/esbuild.d.cts +1 -1
  44. package/dist/lib/build/esbuild.d.ts +1 -1
  45. package/dist/lib/build/index.d.cts +2 -3
  46. package/dist/lib/build/index.d.ts +2 -3
  47. package/dist/lib/build/rolldown.d.cts +1 -1
  48. package/dist/lib/build/rolldown.d.ts +1 -1
  49. package/dist/lib/build/rollup.d.cts +1 -1
  50. package/dist/lib/build/rollup.d.ts +1 -1
  51. package/dist/lib/build/rspack.d.cts +1 -1
  52. package/dist/lib/build/rspack.d.ts +1 -1
  53. package/dist/lib/build/tsdown.d.cts +1 -1
  54. package/dist/lib/build/tsdown.d.ts +1 -1
  55. package/dist/lib/build/tsup.d.cts +1 -1
  56. package/dist/lib/build/tsup.d.ts +1 -1
  57. package/dist/lib/build/unbuild.d.cts +2 -3
  58. package/dist/lib/build/unbuild.d.ts +2 -3
  59. package/dist/lib/build/vite.d.cts +1 -1
  60. package/dist/lib/build/vite.d.ts +1 -1
  61. package/dist/lib/build/webpack.d.cts +1 -1
  62. package/dist/lib/build/webpack.d.ts +1 -1
  63. package/dist/lib/chunk-254IMO3A.js +17 -0
  64. package/dist/lib/chunk-254IMO3A.js.map +1 -0
  65. package/dist/lib/{chunk-T3VYM4BO.cjs → chunk-4QMQCXAG.cjs} +6 -6
  66. package/dist/lib/{chunk-T3VYM4BO.cjs.map → chunk-4QMQCXAG.cjs.map} +1 -1
  67. package/dist/lib/chunk-64R4MDJ7.cjs +25 -0
  68. package/dist/lib/chunk-64R4MDJ7.cjs.map +1 -0
  69. package/dist/lib/{chunk-HEMW2YZA.js → chunk-7PD2L3PS.js} +2 -2
  70. package/dist/lib/{chunk-HEMW2YZA.js.map → chunk-7PD2L3PS.js.map} +1 -1
  71. package/dist/lib/{chunk-PWKYZBQQ.js → chunk-FI4QUQV2.js} +4 -4
  72. package/dist/lib/{chunk-PWKYZBQQ.js.map → chunk-FI4QUQV2.js.map} +1 -1
  73. package/dist/lib/{chunk-3RTOKGVV.cjs → chunk-G3BXMS2V.cjs} +47 -48
  74. package/dist/lib/chunk-G3BXMS2V.cjs.map +1 -0
  75. package/dist/lib/chunk-GNEHIBN4.cjs +20 -0
  76. package/dist/lib/chunk-GNEHIBN4.cjs.map +1 -0
  77. package/dist/lib/{chunk-57WHQU5T.cjs → chunk-GZDE4GLY.cjs} +2 -2
  78. package/dist/lib/{chunk-57WHQU5T.cjs.map → chunk-GZDE4GLY.cjs.map} +1 -1
  79. package/dist/lib/chunk-HGE5DAZF.js +22 -0
  80. package/dist/lib/chunk-HGE5DAZF.js.map +1 -0
  81. package/dist/lib/{chunk-GUZKITBG.js → chunk-I7BLJZ4D.js} +5 -5
  82. package/dist/lib/chunk-I7BLJZ4D.js.map +1 -0
  83. package/dist/lib/{chunk-MZQFHBHY.cjs → chunk-QVDESIYV.cjs} +5 -5
  84. package/dist/lib/chunk-QVDESIYV.cjs.map +1 -0
  85. package/dist/lib/{chunk-POY47Z36.js → chunk-TO3SBSXL.js} +35 -36
  86. package/dist/lib/chunk-TO3SBSXL.js.map +1 -0
  87. package/dist/lib/{chunk-XAALLEOG.js → chunk-TWAVU346.js} +27 -29
  88. package/dist/lib/chunk-TWAVU346.js.map +1 -0
  89. package/dist/lib/{chunk-C7KNYLNP.cjs → chunk-UXLXQOJD.cjs} +29 -30
  90. package/dist/lib/chunk-UXLXQOJD.cjs.map +1 -0
  91. package/dist/lib/chunk-WAN5RBXY.cjs +234 -0
  92. package/dist/lib/chunk-WAN5RBXY.cjs.map +1 -0
  93. package/dist/lib/chunk-XDUEQVFC.js +232 -0
  94. package/dist/lib/chunk-XDUEQVFC.js.map +1 -0
  95. package/dist/lib/{config-BSQhtJCR.d.ts → config-BLfOgflT.d.ts} +230 -104
  96. package/dist/lib/{config-CP6f9ozu.d.cts → config-CmG_oSbS.d.cts} +230 -104
  97. package/dist/lib/config-file.d.cts +1 -1
  98. package/dist/lib/config-file.d.ts +1 -1
  99. package/dist/lib/contexts/api-context.cjs +7 -5
  100. package/dist/lib/contexts/api-context.d.cts +2 -3
  101. package/dist/lib/contexts/api-context.d.ts +2 -3
  102. package/dist/lib/contexts/api-context.js +6 -4
  103. package/dist/lib/contexts/context.cjs +3 -2
  104. package/dist/lib/contexts/context.d.cts +2 -3
  105. package/dist/lib/contexts/context.d.ts +2 -3
  106. package/dist/lib/contexts/context.js +2 -1
  107. package/dist/lib/contexts/environment-context.cjs +6 -4
  108. package/dist/lib/contexts/environment-context.d.cts +3 -4
  109. package/dist/lib/contexts/environment-context.d.ts +3 -4
  110. package/dist/lib/contexts/environment-context.js +5 -3
  111. package/dist/lib/contexts/index.cjs +10 -8
  112. package/dist/lib/contexts/index.d.cts +2 -3
  113. package/dist/lib/contexts/index.d.ts +2 -3
  114. package/dist/lib/contexts/index.js +6 -4
  115. package/dist/lib/contexts/plugin-context.cjs +2 -2
  116. package/dist/lib/contexts/plugin-context.d.cts +2 -3
  117. package/dist/lib/contexts/plugin-context.d.ts +2 -3
  118. package/dist/lib/contexts/plugin-context.js +1 -1
  119. package/dist/lib/entry.d.cts +1 -1
  120. package/dist/lib/entry.d.ts +1 -1
  121. package/dist/lib/fs/index.d.cts +1 -1
  122. package/dist/lib/fs/index.d.ts +1 -1
  123. package/dist/lib/fs/vfs.d.cts +1 -1
  124. package/dist/lib/fs/vfs.d.ts +1 -1
  125. package/dist/lib/index.cjs +22 -17
  126. package/dist/lib/index.d.cts +3 -5
  127. package/dist/lib/index.d.ts +3 -5
  128. package/dist/lib/index.js +8 -7
  129. package/dist/lib/{internal-BusfSz8D.d.ts → internal-BfGb9HLc.d.ts} +4 -3
  130. package/dist/lib/{internal-CPKLmt5v.d.cts → internal-CYMrNGHE.d.cts} +4 -3
  131. package/dist/lib/logger.d.cts +1 -1
  132. package/dist/lib/logger.d.ts +1 -1
  133. package/dist/lib/typescript/import-transformer.d.cts +1 -1
  134. package/dist/lib/typescript/import-transformer.d.ts +1 -1
  135. package/dist/lib/typescript/index.d.cts +1 -1
  136. package/dist/lib/typescript/index.d.ts +1 -1
  137. package/dist/lib/typescript/ts-morph.d.cts +1 -1
  138. package/dist/lib/typescript/ts-morph.d.ts +1 -1
  139. package/dist/lib/unplugin/factory.cjs +8 -6
  140. package/dist/lib/unplugin/factory.d.cts +4 -128
  141. package/dist/lib/unplugin/factory.d.ts +4 -128
  142. package/dist/lib/unplugin/factory.js +7 -5
  143. package/dist/lib/unplugin/helpers.cjs +7 -2
  144. package/dist/lib/unplugin/helpers.d.cts +9 -2
  145. package/dist/lib/unplugin/helpers.d.ts +9 -2
  146. package/dist/lib/unplugin/helpers.js +2 -1
  147. package/dist/lib/unplugin/index.cjs +15 -10
  148. package/dist/lib/unplugin/index.d.cts +4 -6
  149. package/dist/lib/unplugin/index.d.ts +4 -6
  150. package/dist/lib/unplugin/index.js +8 -7
  151. package/dist/lib/unplugin/plugin.cjs +4 -3
  152. package/dist/lib/unplugin/plugin.d.cts +2 -4
  153. package/dist/lib/unplugin/plugin.d.ts +2 -4
  154. package/dist/lib/unplugin/plugin.js +3 -2
  155. package/dist/lib/utilities/bundle.d.cts +1 -1
  156. package/dist/lib/utilities/bundle.d.ts +1 -1
  157. package/dist/lib/utilities/cache.d.cts +1 -1
  158. package/dist/lib/utilities/cache.d.ts +1 -1
  159. package/dist/lib/utilities/file-header.d.cts +1 -1
  160. package/dist/lib/utilities/file-header.d.ts +1 -1
  161. package/dist/lib/utilities/index.d.cts +1 -1
  162. package/dist/lib/utilities/index.d.ts +1 -1
  163. package/dist/lib/utilities/meta.d.cts +1 -1
  164. package/dist/lib/utilities/meta.d.ts +1 -1
  165. package/dist/lib/utilities/resolve.d.cts +1 -1
  166. package/dist/lib/utilities/resolve.d.ts +1 -1
  167. package/dist/lib/utilities/source-file.d.cts +1 -1
  168. package/dist/lib/utilities/source-file.d.ts +1 -1
  169. package/dist/lib/utilities/source-map.d.cts +1 -1
  170. package/dist/lib/utilities/source-map.d.ts +1 -1
  171. package/dist/lib/utilities/worker.d.cts +1 -1
  172. package/dist/lib/utilities/worker.d.ts +1 -1
  173. package/dist/lib/utilities/write-file.d.cts +1 -1
  174. package/dist/lib/utilities/write-file.d.ts +1 -1
  175. package/dist/next.cjs +6 -6
  176. package/dist/next.js +5 -5
  177. package/dist/nuxt.cjs +9 -9
  178. package/dist/nuxt.d.cts +4 -3
  179. package/dist/nuxt.d.ts +4 -3
  180. package/dist/nuxt.js +7 -7
  181. package/dist/plugin-utils/{chunk-EJ5XPAJQ.cjs → chunk-2I5L22QB.cjs} +8 -6
  182. package/dist/plugin-utils/chunk-2I5L22QB.cjs.map +1 -0
  183. package/dist/plugin-utils/{chunk-AHZPK4Z5.cjs → chunk-4FLR5DY5.cjs} +7 -7
  184. package/dist/plugin-utils/{chunk-AHZPK4Z5.cjs.map → chunk-4FLR5DY5.cjs.map} +1 -1
  185. package/dist/plugin-utils/{chunk-BWAX3NRG.cjs → chunk-6YOLE5BT.cjs} +34 -21
  186. package/dist/plugin-utils/chunk-6YOLE5BT.cjs.map +1 -0
  187. package/dist/plugin-utils/{chunk-JAG7QJDV.cjs → chunk-ARNNN4GS.cjs} +5 -5
  188. package/dist/plugin-utils/chunk-ARNNN4GS.cjs.map +1 -0
  189. package/dist/plugin-utils/{chunk-FTVPZZJO.js → chunk-I3FSMSLD.js} +32 -20
  190. package/dist/plugin-utils/chunk-I3FSMSLD.js.map +1 -0
  191. package/dist/plugin-utils/{chunk-N4IXPCGY.js → chunk-RZAQTG45.js} +3 -3
  192. package/dist/plugin-utils/{chunk-N4IXPCGY.js.map → chunk-RZAQTG45.js.map} +1 -1
  193. package/dist/plugin-utils/{chunk-JCX2UJYO.js → chunk-XDURJUGS.js} +5 -3
  194. package/dist/plugin-utils/chunk-XDURJUGS.js.map +1 -0
  195. package/dist/plugin-utils/{chunk-WZCGJ7JR.js → chunk-Z2BYI6KW.js} +3 -3
  196. package/dist/plugin-utils/chunk-Z2BYI6KW.js.map +1 -0
  197. package/dist/plugin-utils/{context-GdayEWcl.d.cts → context-BQTlTcfV.d.cts} +444 -76
  198. package/dist/plugin-utils/{context-GdayEWcl.d.ts → context-BQTlTcfV.d.ts} +444 -76
  199. package/dist/plugin-utils/context-helpers.d.cts +11 -2
  200. package/dist/plugin-utils/context-helpers.d.ts +11 -2
  201. package/dist/plugin-utils/enforce.cjs +5 -5
  202. package/dist/plugin-utils/enforce.d.cts +13 -4
  203. package/dist/plugin-utils/enforce.d.ts +13 -4
  204. package/dist/plugin-utils/enforce.js +4 -4
  205. package/dist/plugin-utils/extend.cjs +4 -4
  206. package/dist/plugin-utils/extend.d.cts +11 -2
  207. package/dist/plugin-utils/extend.d.ts +11 -2
  208. package/dist/plugin-utils/extend.js +3 -3
  209. package/dist/plugin-utils/get-config-path.d.cts +11 -2
  210. package/dist/plugin-utils/get-config-path.d.ts +11 -2
  211. package/dist/plugin-utils/helpers.cjs +25 -21
  212. package/dist/plugin-utils/helpers.d.cts +36 -32
  213. package/dist/plugin-utils/helpers.d.ts +36 -32
  214. package/dist/plugin-utils/helpers.js +1 -1
  215. package/dist/plugin-utils/index.cjs +31 -27
  216. package/dist/plugin-utils/index.d.cts +12 -3
  217. package/dist/plugin-utils/index.d.ts +12 -3
  218. package/dist/plugin-utils/index.js +4 -4
  219. package/dist/plugin-utils/merge.cjs +3 -3
  220. package/dist/plugin-utils/merge.d.cts +11 -2
  221. package/dist/plugin-utils/merge.d.ts +11 -2
  222. package/dist/plugin-utils/merge.js +2 -2
  223. package/dist/plugin-utils/paths.d.cts +11 -2
  224. package/dist/plugin-utils/paths.d.ts +11 -2
  225. package/dist/rolldown.cjs +8 -8
  226. package/dist/rolldown.d.cts +6 -5
  227. package/dist/rolldown.d.ts +6 -5
  228. package/dist/rolldown.js +5 -5
  229. package/dist/rollup.cjs +5 -5
  230. package/dist/rollup.d.cts +6 -5
  231. package/dist/rollup.d.ts +6 -5
  232. package/dist/rollup.js +4 -4
  233. package/dist/rspack.cjs +5 -5
  234. package/dist/rspack.d.cts +6 -5
  235. package/dist/rspack.d.ts +6 -5
  236. package/dist/rspack.js +4 -4
  237. package/dist/tsdown.cjs +6 -6
  238. package/dist/tsdown.js +5 -5
  239. package/dist/tsup.cjs +6 -6
  240. package/dist/tsup.js +5 -5
  241. package/dist/types/api.d.cts +5 -5
  242. package/dist/types/api.d.ts +5 -5
  243. package/dist/types/babel.d.cts +6 -5
  244. package/dist/types/babel.d.ts +6 -5
  245. package/dist/types/build.cjs +7 -3
  246. package/dist/types/build.d.cts +19 -13
  247. package/dist/types/build.d.ts +19 -13
  248. package/dist/types/build.js +1 -1
  249. package/dist/types/commands.d.cts +4 -3
  250. package/dist/types/commands.d.ts +4 -3
  251. package/dist/types/config.d.cts +3 -2
  252. package/dist/types/config.d.ts +3 -2
  253. package/dist/types/context.cjs +2 -2
  254. package/dist/types/context.d.cts +3 -2
  255. package/dist/types/context.d.ts +3 -2
  256. package/dist/types/context.js +1 -1
  257. package/dist/types/hooks.cjs +8 -1
  258. package/dist/types/hooks.d.cts +15 -14
  259. package/dist/types/hooks.d.ts +15 -14
  260. package/dist/types/hooks.js +2 -1
  261. package/dist/types/index.cjs +19 -11
  262. package/dist/types/index.d.cts +4 -5
  263. package/dist/types/index.d.ts +4 -5
  264. package/dist/types/index.js +4 -4
  265. package/dist/types/internal.d.cts +8 -6
  266. package/dist/types/internal.d.ts +8 -6
  267. package/dist/types/plugin.cjs +7 -7
  268. package/dist/types/plugin.d.cts +3 -2
  269. package/dist/types/plugin.d.ts +3 -2
  270. package/dist/types/plugin.js +2 -2
  271. package/dist/types/resolved.d.cts +2 -1
  272. package/dist/types/resolved.d.ts +2 -1
  273. package/dist/types/unplugin.d.cts +14 -39
  274. package/dist/types/unplugin.d.ts +14 -39
  275. package/dist/unloader.cjs +5 -5
  276. package/dist/unloader.d.cts +4 -3
  277. package/dist/unloader.d.ts +4 -3
  278. package/dist/unloader.js +4 -4
  279. package/dist/unplugin.cjs +17 -15
  280. package/dist/unplugin.d.cts +18 -13
  281. package/dist/unplugin.d.ts +18 -13
  282. package/dist/unplugin.js +9 -13
  283. package/dist/vite.cjs +8 -8
  284. package/dist/vite.d.cts +6 -5
  285. package/dist/vite.d.ts +6 -5
  286. package/dist/vite.js +5 -5
  287. package/dist/webpack.cjs +8 -8
  288. package/dist/webpack.d.cts +6 -5
  289. package/dist/webpack.d.ts +6 -5
  290. package/dist/webpack.js +5 -5
  291. package/package.json +7 -4
  292. package/dist/api-D0gA4eJU.d.cts +0 -142
  293. package/dist/api-cYTlb0MO.d.ts +0 -142
  294. package/dist/chunk-HJW7OH6E.js +0 -3
  295. package/dist/chunk-J7SXQCBV.cjs +0 -12
  296. package/dist/chunk-U2RJRKLT.js +0 -15
  297. package/dist/chunk-WVLFG7L6.cjs +0 -12
  298. package/dist/chunk-XOMY3USD.cjs +0 -17
  299. package/dist/chunk-XZO6ZJQP.cjs +0 -4
  300. package/dist/lib/api-BeWRTlF3.d.cts +0 -141
  301. package/dist/lib/api-C00m3GB0.d.ts +0 -141
  302. package/dist/lib/chunk-3RTOKGVV.cjs.map +0 -1
  303. package/dist/lib/chunk-A4RSMLXW.cjs +0 -13
  304. package/dist/lib/chunk-A4RSMLXW.cjs.map +0 -1
  305. package/dist/lib/chunk-C7KNYLNP.cjs.map +0 -1
  306. package/dist/lib/chunk-DLX6BNNE.cjs +0 -196
  307. package/dist/lib/chunk-DLX6BNNE.cjs.map +0 -1
  308. package/dist/lib/chunk-GUZKITBG.js.map +0 -1
  309. package/dist/lib/chunk-HDUSUF6L.js +0 -11
  310. package/dist/lib/chunk-HDUSUF6L.js.map +0 -1
  311. package/dist/lib/chunk-MZQFHBHY.cjs.map +0 -1
  312. package/dist/lib/chunk-POY47Z36.js.map +0 -1
  313. package/dist/lib/chunk-XAALLEOG.js.map +0 -1
  314. package/dist/lib/chunk-XHDL2XZB.js +0 -194
  315. package/dist/lib/chunk-XHDL2XZB.js.map +0 -1
  316. package/dist/lib/unplugin-BKtwOoMk.d.ts +0 -18
  317. package/dist/lib/unplugin-BWG1mWFO.d.cts +0 -18
  318. package/dist/plugin-utils/chunk-BWAX3NRG.cjs.map +0 -1
  319. package/dist/plugin-utils/chunk-EJ5XPAJQ.cjs.map +0 -1
  320. package/dist/plugin-utils/chunk-FTVPZZJO.js.map +0 -1
  321. package/dist/plugin-utils/chunk-JAG7QJDV.cjs.map +0 -1
  322. package/dist/plugin-utils/chunk-JCX2UJYO.js.map +0 -1
  323. package/dist/plugin-utils/chunk-WZCGJ7JR.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { Format } from '@storm-software/build-tools/types';
2
2
  import { LogLevelLabel } from '@storm-software/config-tools/types';
3
3
  import { StormWorkspaceConfig } from '@storm-software/config/types';
4
- import { NonUndefined, MaybePromise, FunctionLike } from '@stryke/types/base';
4
+ import { NonUndefined, MaybePromise, AnyFunction } from '@stryke/types/base';
5
5
  import { TypeDefinition, TypeDefinitionParameter } from '@stryke/types/configuration';
6
6
  import { AssetGlob } from '@stryke/types/file';
7
7
  import { ResolvedConfig as ResolvedConfig$1, ConfigLayer } from 'c12';
@@ -13,7 +13,7 @@ import { BuildOptions as BuildOptions$1 } from '@storm-software/tsup/types';
13
13
  import { UnbuildOptions } from '@storm-software/unbuild/types';
14
14
  import { BuildOptions } from 'esbuild';
15
15
  import { RolldownOptions } from 'rolldown';
16
- import { RollupOptions, OutputOptions } from 'rollup';
16
+ import { RollupOptions, OutputOptions, LoadResult } from 'rollup';
17
17
  import { UserConfig as UserConfig$2 } from 'tsdown';
18
18
  import { Configuration } from 'webpack';
19
19
  import { EnvPaths } from '@stryke/env/get-env-paths';
@@ -26,14 +26,14 @@ import { ParserOptions, ParseResult } from 'oxc-parser';
26
26
  import { Range } from 'semver';
27
27
  import { Project } from 'ts-morph';
28
28
  import { RequestInfo, Response } from 'undici';
29
- import { TransformResult as TransformResult$1, ExternalIdResult, HookFilter, UnpluginOptions, UnpluginContext, UnpluginMessage, UnpluginBuildContext } from 'unplugin';
29
+ import { UnpluginOptions as UnpluginOptions$1, HookFilter, UnpluginContextMeta, TransformResult as TransformResult$1, ExternalIdResult, UnpluginContext, UnpluginMessage, UnpluginBuildContext } from 'unplugin';
30
30
  import { V as VirtualFileSystemInterface, R as ResolveOptions, a as VirtualFile, W as WriteOptions, c as StoragePort, b as StoragePreset } from './fs-DkLcPGg-.js';
31
31
  import { ArrayValues } from '@stryke/types/array';
32
32
  import { P as ParsedTypeScriptConfig, T as TSConfig } from './tsconfig-Bz-CiFqD.js';
33
33
 
34
- type UnpluginBuildVariant = "rollup" | "webpack" | "rspack" | "vite" | "esbuild" | "farm" | "unloader" | "rolldown";
35
- type BuildVariant = UnpluginBuildVariant | "tsup" | "tsdown" | "unbuild";
36
- type InferUnpluginVariant<TBuildVariant extends BuildVariant> = TBuildVariant extends "tsup" ? "esbuild" : TBuildVariant extends "tsdown" ? "rolldown" : TBuildVariant extends "unbuild" ? "rollup" : TBuildVariant;
34
+ type UnpluginBuilderVariant = "rollup" | "webpack" | "rspack" | "vite" | "esbuild" | "farm" | "unloader" | "rolldown" | "bun";
35
+ type BuilderVariant = UnpluginBuilderVariant | "tsup" | "tsdown" | "unbuild";
36
+ type InferUnpluginVariant<TBuildVariant extends BuilderVariant> = TBuildVariant extends "tsup" ? "esbuild" : TBuildVariant extends "tsdown" ? "rolldown" : TBuildVariant extends "unbuild" ? "rollup" : TBuildVariant;
37
37
  interface BuildConfig {
38
38
  /**
39
39
  * The platform to build the project for
@@ -268,7 +268,7 @@ type ResolvedConfig<TUserConfig extends UserConfig = UserConfig> = Omit<TUserCon
268
268
  * Configuration provided to build processes
269
269
  *
270
270
  * @remarks
271
- * This configuration can be used by plugins during the `build` command. It will generally contain options specific to the selected {@link BuildVariant | build variant}.
271
+ * This configuration can be used by plugins during the `build` command. It will generally contain options specific to the selected {@link BuilderVariant | build variant}.
272
272
  */
273
273
  build: Omit<TUserConfig["build"], "override"> & Required<Pick<Required<TUserConfig["build"]>, "override">>;
274
274
  /**
@@ -288,9 +288,161 @@ type TsupResolvedConfig = ResolvedConfig<TsupUserConfig>;
288
288
  type TsdownResolvedConfig = ResolvedConfig<TsdownUserConfig>;
289
289
  type UnbuildResolvedConfig = ResolvedConfig<UnbuildUserConfig>;
290
290
  type FarmResolvedConfig = ResolvedConfig<FarmUserConfig>;
291
- type InferResolvedConfig<TBuildVariant extends BuildVariant | undefined> = TBuildVariant extends undefined ? ResolvedConfig : TBuildVariant extends "webpack" ? WebpackResolvedConfig : TBuildVariant extends "rspack" ? RspackResolvedConfig : TBuildVariant extends "vite" ? ViteResolvedConfig : TBuildVariant extends "esbuild" ? ESBuildResolvedConfig : TBuildVariant extends "unbuild" ? UnbuildResolvedConfig : TBuildVariant extends "tsup" ? TsupResolvedConfig : TBuildVariant extends "tsdown" ? TsdownResolvedConfig : TBuildVariant extends "rolldown" ? RolldownResolvedConfig : TBuildVariant extends "rollup" ? RollupResolvedConfig : TBuildVariant extends "farm" ? FarmResolvedConfig : ResolvedConfig;
291
+ type InferResolvedConfig<TBuildVariant extends BuilderVariant | undefined> = TBuildVariant extends undefined ? ResolvedConfig : TBuildVariant extends "webpack" ? WebpackResolvedConfig : TBuildVariant extends "rspack" ? RspackResolvedConfig : TBuildVariant extends "vite" ? ViteResolvedConfig : TBuildVariant extends "esbuild" ? ESBuildResolvedConfig : TBuildVariant extends "unbuild" ? UnbuildResolvedConfig : TBuildVariant extends "tsup" ? TsupResolvedConfig : TBuildVariant extends "tsdown" ? TsdownResolvedConfig : TBuildVariant extends "rolldown" ? RolldownResolvedConfig : TBuildVariant extends "rollup" ? RollupResolvedConfig : TBuildVariant extends "farm" ? FarmResolvedConfig : ResolvedConfig;
292
+
293
+ type CallHookOptions = SelectHooksOptions & (({
294
+ /**
295
+ * Whether to call the hooks sequentially or in parallel.
296
+ *
297
+ * @defaultValue true
298
+ */
299
+ sequential?: true;
300
+ } & ({
301
+ /**
302
+ * How to handle multiple return values from hooks.
303
+ * - "merge": Merge all non-undefined return values (if they are objects).
304
+ * - "first": Return the first non-undefined value.
305
+ *
306
+ * @remarks
307
+ * Merging only works if the return values are objects.
308
+ *
309
+ * @defaultValue "merge"
310
+ */
311
+ result: "first";
312
+ } | {
313
+ /**
314
+ * How to handle multiple return values from hooks.
315
+ * - "merge": Merge all non-undefined return values (if they are objects).
316
+ * - "first": Return the first non-undefined value.
317
+ *
318
+ * @remarks
319
+ * Merging only works if the return values are objects.
320
+ *
321
+ * @defaultValue "merge"
322
+ */
323
+ result?: "merge" | "last";
324
+ /**
325
+ * An indicator specifying if the results of the previous hook should be provided as the **first** parameter of the next hook function, or a function to process the result of the previous hook function and pass the returned value as the next hook's **first** parameter
326
+ */
327
+ asNextParam?: false | ((previousResult: any) => MaybePromise<any>);
328
+ })) | {
329
+ /**
330
+ * Whether to call the hooks sequentially or in parallel.
331
+ */
332
+ sequential: false;
333
+ });
292
334
 
293
- interface PluginHookObject<THookFunction extends FunctionLike, TFilter extends keyof HookFilter = never> {
335
+ /**
336
+ * Powerlines API Interface
337
+ */
338
+ interface API<TResolvedConfig extends ResolvedConfig = ResolvedConfig> {
339
+ /**
340
+ * The Powerlines shared API context
341
+ */
342
+ context: APIContext<TResolvedConfig>;
343
+ /**
344
+ * Prepare the Powerlines API
345
+ *
346
+ * @remarks
347
+ * This method will prepare the Powerlines API for use, initializing any necessary resources.
348
+ *
349
+ * @param inlineConfig - The inline configuration for the prepare command
350
+ */
351
+ prepare: (inlineConfig: PrepareInlineConfig | NewInlineConfig | CleanInlineConfig | BuildInlineConfig | LintInlineConfig | DocsInlineConfig | DeployInlineConfig) => Promise<void>;
352
+ /**
353
+ * Create a new Powerlines project
354
+ *
355
+ * @remarks
356
+ * This method will create a new Powerlines project in the current directory.
357
+ *
358
+ * @param inlineConfig - The inline configuration for the new command
359
+ * @returns A promise that resolves when the project has been created
360
+ */
361
+ new: (inlineConfig: NewInlineConfig) => Promise<void>;
362
+ /**
363
+ * Clean any previously prepared artifacts
364
+ *
365
+ * @remarks
366
+ * This method will remove the previous Powerlines artifacts from the project.
367
+ *
368
+ * @param inlineConfig - The inline configuration for the clean command
369
+ * @returns A promise that resolves when the clean command has completed
370
+ */
371
+ clean: (inlineConfig: CleanInlineConfig | PrepareInlineConfig) => Promise<void>;
372
+ /**
373
+ * Lint the project source code
374
+ *
375
+ * @param inlineConfig - The inline configuration for the lint command
376
+ * @returns A promise that resolves when the lint command has completed
377
+ */
378
+ lint: (inlineConfig: LintInlineConfig) => Promise<void>;
379
+ /**
380
+ * Build the project
381
+ *
382
+ * @remarks
383
+ * This method will build the Powerlines project, generating the necessary artifacts.
384
+ *
385
+ * @param inlineConfig - The inline configuration for the build command
386
+ * @returns A promise that resolves when the build command has completed
387
+ */
388
+ build: (inlineConfig: BuildInlineConfig) => Promise<void>;
389
+ /**
390
+ * Prepare the documentation for the project
391
+ *
392
+ * @param inlineConfig - The inline configuration for the docs command
393
+ * @returns A promise that resolves when the documentation generation has completed
394
+ */
395
+ docs: (inlineConfig: DocsInlineConfig) => Promise<void>;
396
+ /**
397
+ * Deploy the project source code
398
+ *
399
+ * @remarks
400
+ * This method will prepare and build the Powerlines project, generating the necessary artifacts for the deployment.
401
+ *
402
+ * @param inlineConfig - The inline configuration for the deploy command
403
+ */
404
+ deploy: (inlineConfig: DeployInlineConfig) => Promise<void>;
405
+ /**
406
+ * Finalization process
407
+ *
408
+ * @remarks
409
+ * This step includes any final processes or clean up required by Powerlines. It will be run after each Powerlines command.
410
+ *
411
+ * @returns A promise that resolves when the finalization process has completed
412
+ */
413
+ finalize: () => Promise<void>;
414
+ /**
415
+ * Invokes the configured plugin hooks
416
+ *
417
+ * @remarks
418
+ * By default, it will call the `"pre"`, `"normal"`, and `"post"` ordered hooks in sequence
419
+ *
420
+ * @param hook - The hook to call
421
+ * @param options - The options to provide to the hook
422
+ * @param args - The arguments to pass to the hook
423
+ * @returns The result of the hook call
424
+ */
425
+ callHook: <TKey extends string>(hook: TKey, options: CallHookOptions & {
426
+ environment?: string | EnvironmentContext<TResolvedConfig>;
427
+ }, ...args: InferHookParameters<PluginContext<TResolvedConfig>, TKey>) => Promise<InferHookReturnType<PluginContext<TResolvedConfig>, TKey> | undefined>;
428
+ }
429
+
430
+ interface UnpluginOptions<TUnpluginBuilderVariant extends UnpluginBuilderVariant = UnpluginBuilderVariant> extends UnpluginOptions$1 {
431
+ /**
432
+ * An API object that can be used for inter-plugin communication.
433
+ *
434
+ * @see https://rollupjs.org/plugin-development/#direct-plugin-communication
435
+ */
436
+ api: API<InferResolvedConfig<TUnpluginBuilderVariant>>;
437
+ }
438
+ type InferUnpluginOptions<TContext extends Context = Context, TBuilderVariant extends BuilderVariant = BuilderVariant, TUnpluginVariant extends InferUnpluginVariant<TBuilderVariant> = InferUnpluginVariant<TBuilderVariant>> = {
439
+ [TKey in keyof Required<UnpluginOptions<TUnpluginVariant>>[TUnpluginVariant]]?: Required<UnpluginOptions<TUnpluginVariant>>[TUnpluginVariant][TKey] extends infer THandler | {
440
+ handler: infer THandler;
441
+ } ? THandler extends (this: infer TOriginalContext, ...args: infer TArgs) => infer TReturn ? PluginHook<(this: TOriginalContext & TContext, ...args: TArgs) => MaybePromise<TReturn>, keyof HookFilter> : Required<UnpluginOptions<TUnpluginVariant>>[TUnpluginVariant][TKey] : Required<UnpluginOptions<TUnpluginVariant>>[TUnpluginVariant][TKey];
442
+ };
443
+ type UnpluginFactory<TUnpluginBuilderVariant extends UnpluginBuilderVariant> = (options: Partial<InferUserConfig<TUnpluginBuilderVariant>>, meta: UnpluginContextMeta) => UnpluginOptions;
444
+
445
+ interface PluginHookObject<THookFunction extends AnyFunction, TFilter extends keyof HookFilter = never> {
294
446
  /**
295
447
  * The order in which the plugin should be applied.
296
448
  */
@@ -304,7 +456,7 @@ interface PluginHookObject<THookFunction extends FunctionLike, TFilter extends k
304
456
  */
305
457
  handler: THookFunction;
306
458
  }
307
- type PluginHook<THookFunction extends FunctionLike, TFilter extends keyof HookFilter = never> = THookFunction | PluginHookObject<THookFunction, TFilter>;
459
+ type PluginHook<THookFunction extends AnyFunction, TFilter extends keyof HookFilter = never> = THookFunction | PluginHookObject<THookFunction, TFilter>;
308
460
  /**
309
461
  * A result returned by the plugin from the `types` hook that describes the declaration types output file.
310
462
  */
@@ -312,11 +464,9 @@ interface TypesResult {
312
464
  directives?: string[];
313
465
  code: string;
314
466
  }
315
- type DeepPartial<T> = {
316
- [K in keyof T]?: DeepPartial<T[K]>;
317
- };
318
- type ConfigResult<TContext extends PluginContext = PluginContext> = DeepPartial<TContext["config"]> & Record<string, any>;
319
- interface BasePluginHookFunctions<TContext extends PluginContext = PluginContext> extends Record<CommandType, (this: TContext) => MaybePromise<void>> {
467
+ type PluginHookFunctions<TContext extends PluginContext> = {
468
+ [TCommandType in CommandType]: (this: TContext) => MaybePromise<void>;
469
+ } & {
320
470
  /**
321
471
  * A function that returns configuration options to be merged with the build context's options.
322
472
  *
@@ -331,7 +481,7 @@ interface BasePluginHookFunctions<TContext extends PluginContext = PluginContext
331
481
  * @param config - The partial configuration object to be modified.
332
482
  * @returns A promise that resolves to a partial configuration object.
333
483
  */
334
- config: (this: UnresolvedContext<TContext["config"]>) => MaybePromise<ConfigResult<TContext>>;
484
+ config: (this: UnresolvedContext<TContext["config"]>) => MaybePromise<DeepPartial<TContext["config"]> & Record<string, any>>;
335
485
  /**
336
486
  * Modify environment configs before it's resolved. The hook can either mutate the passed-in environment config directly, or return a partial config object that will be deeply merged into existing config.
337
487
  *
@@ -393,7 +543,7 @@ interface BasePluginHookFunctions<TContext extends PluginContext = PluginContext
393
543
  * @param id - The identifier of the source code.
394
544
  * @returns A promise that resolves when the hook is complete.
395
545
  */
396
- load: (this: BuildPluginContext<TContext["config"]> & TContext, id: string) => MaybePromise<TransformResult$1>;
546
+ load: (this: BuildPluginContext<TContext["config"]> & TContext, id: string) => MaybePromise<LoadResult>;
397
547
  /**
398
548
  * A hook that is called to resolve the identifier of the source code.
399
549
  *
@@ -413,67 +563,18 @@ interface BasePluginHookFunctions<TContext extends PluginContext = PluginContext
413
563
  * @returns A promise that resolves when the hook is complete.
414
564
  */
415
565
  writeBundle: (this: TContext) => MaybePromise<void>;
416
- }
417
- type BuildPlugin<TContext extends PluginContext = PluginContext, TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant, TOptions extends Required<UnpluginOptions>[TBuildVariant] = Required<UnpluginOptions>[TBuildVariant]> = {
418
- [TKey in keyof TOptions]: TOptions[TKey] extends FunctionLike ? (this: ThisParameterType<TOptions[TKey]> & TContext, ...args: Parameters<TOptions[TKey]>) => ReturnType<TOptions[TKey]> | MaybePromise<ReturnType<TOptions[TKey]>> : TOptions[TKey];
419
- };
420
- type ExternalPluginHookFunctionsVariant<TContext extends PluginContext = PluginContext, TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant> = {
421
- [TKey in keyof BuildPlugin<TContext, TBuildVariant> & string as `${TBuildVariant}:${TKey}`]: BuildPlugin<TContext, TBuildVariant>[TKey];
422
566
  };
423
- type ExternalPluginHookFunctions<TContext extends PluginContext> = ExternalPluginHookFunctionsVariant<TContext, "vite"> & ExternalPluginHookFunctionsVariant<TContext, "esbuild"> & ExternalPluginHookFunctionsVariant<TContext, "rolldown"> & ExternalPluginHookFunctionsVariant<TContext, "rollup"> & ExternalPluginHookFunctionsVariant<TContext, "webpack"> & ExternalPluginHookFunctionsVariant<TContext, "rspack"> & ExternalPluginHookFunctionsVariant<TContext, "farm">;
424
- type PluginHookFunctions<TContext extends PluginContext = PluginContext> = BasePluginHookFunctions<TContext> & ExternalPluginHookFunctions<TContext>;
425
- type PluginHooks<TContext extends PluginContext = PluginContext> = {
426
- [TKey in keyof BasePluginHookFunctions<TContext>]: PluginHook<BasePluginHookFunctions<TContext>[TKey]>;
567
+ type PluginHooks<TContext extends PluginContext> = {
568
+ [TPluginHook in keyof PluginHookFunctions<TContext>]?: PluginHook<PluginHookFunctions<TContext>[TPluginHook]>;
427
569
  } & {
428
- /**
429
- * A function that returns configuration options to be merged with the build context's options.
430
- *
431
- * @remarks
432
- * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.
433
- *
434
- * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.
435
- *
436
- * @see https://vitejs.dev/guide/api-plugin#config
437
- *
438
- * @param this - The build context.
439
- * @param config - The partial configuration object to be modified.
440
- * @returns A promise that resolves to a partial configuration object.
441
- */
442
- config: PluginHook<(this: UnresolvedContext<TContext["config"]>) => MaybePromise<ConfigResult<TContext>>> | ConfigResult<TContext>;
443
- /**
444
- * A hook that is called to transform the source code.
445
- *
446
- * @param this - The build context, unplugin build context, and unplugin context.
447
- * @param code - The source code to transform.
448
- * @param id - The identifier of the source code.
449
- * @returns A promise that resolves when the hook is complete.
450
- */
451
- transform: PluginHook<(this: BuildPluginContext<TContext["config"]> & TContext, code: string, id: string) => MaybePromise<TransformResult$1>, "code" | "id">;
452
- /**
453
- * A hook that is called to load the source code.
454
- *
455
- * @param this - The build context, unplugin build context, and unplugin context.
456
- * @param id - The identifier of the source code.
457
- * @returns A promise that resolves when the hook is complete.
458
- */
459
- load: PluginHook<(this: BuildPluginContext<TContext["config"]> & TContext, id: string) => MaybePromise<TransformResult$1>, "id">;
460
- /**
461
- * A hook that is called to resolve the identifier of the source code.
462
- *
463
- * @param this - The build context, unplugin build context, and unplugin context.
464
- * @param id - The identifier of the source code.
465
- * @param importer - The importer of the source code.
466
- * @param options - The options for resolving the identifier.
467
- * @returns A promise that resolves when the hook is complete.
468
- */
469
- resolveId: PluginHook<(this: BuildPluginContext<TContext["config"]> & TContext, id: string, importer: string | undefined, options: {
470
- isEntry: boolean;
471
- }) => MaybePromise<string | ExternalIdResult | null | undefined>, "id">;
570
+ transform: PluginHook<PluginHookFunctions<TContext>["transform"], "code" | "id">;
571
+ load: PluginHook<PluginHookFunctions<TContext>["load"], "id">;
572
+ resolveId: PluginHook<PluginHookFunctions<TContext>["resolveId"], "id">;
472
573
  };
473
- type PluginBuildPlugins<TContext extends PluginContext = PluginContext> = {
474
- [TBuildVariant in UnpluginBuildVariant]?: BuildPlugin<TContext, TBuildVariant>;
574
+ type DeepPartial<T> = {
575
+ [K in keyof T]?: DeepPartial<T[K]>;
475
576
  };
476
- interface Plugin<TContext extends PluginContext<ResolvedConfig> = PluginContext<ResolvedConfig>> extends Partial<PluginHooks<TContext>>, PluginBuildPlugins<TContext> {
577
+ type Plugin<TContext extends PluginContext<ResolvedConfig> = PluginContext<ResolvedConfig>> = Partial<PluginHooks<TContext>> & {
477
578
  /**
478
579
  * The name of the plugin, for use in deduplication, error messages and logs.
479
580
  */
@@ -521,36 +622,60 @@ interface Plugin<TContext extends PluginContext<ResolvedConfig> = PluginContext<
521
622
  * @returns `true` if the plugin should be active in the specified environment, `false` otherwise.
522
623
  */
523
624
  applyToEnvironment?: (environment: EnvironmentResolvedConfig) => boolean | PluginConfig<TContext>;
524
- }
625
+ /**
626
+ * A function that returns configuration options to be merged with the build context's options.
627
+ *
628
+ * @remarks
629
+ * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.
630
+ *
631
+ * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.
632
+ *
633
+ * @see https://vitejs.dev/guide/api-plugin#config
634
+ *
635
+ * @param this - The build context.
636
+ * @param config - The partial configuration object to be modified.
637
+ * @returns A promise that resolves to a partial configuration object.
638
+ */
639
+ config?: PluginHook<(this: UnresolvedContext<TContext["config"]>) => MaybePromise<DeepPartial<TContext["config"]> & Record<string, any>>> | (DeepPartial<TContext["config"]> & Record<string, any>);
640
+ } & {
641
+ [TBuilderVariant in BuilderVariant]?: InferUnpluginOptions<TContext, TBuilderVariant>;
642
+ };
643
+ type PluginHookFields<TContext extends PluginContext = PluginContext> = keyof PluginHookFunctions<TContext>;
525
644
 
526
- type BaseHooks<TContext extends PluginContext = PluginContext> = BasePluginHookFunctions<TContext>;
527
- type BaseHookKeys<TContext extends PluginContext = PluginContext> = keyof BaseHooks<TContext>;
528
- type ExternalHooks<TContext extends PluginContext = PluginContext> = ExternalPluginHookFunctions<TContext>;
529
- type ExternalHookKeys<TContext extends PluginContext = PluginContext> = keyof ExternalHooks<TContext>;
530
- type Hooks<TContext extends PluginContext = PluginContext> = PluginHookFunctions<TContext>;
531
- type HookKeys<TContext extends PluginContext = PluginContext> = keyof Hooks<TContext>;
532
- interface BaseHooksListItem<TContext extends PluginContext = PluginContext, TKey extends BaseHookKeys<TContext> = BaseHookKeys<TContext>> extends PluginHookObject<BaseHooks<TContext>[TKey]> {
645
+ type HookListOrders = "preOrdered" | "preEnforced" | "normal" | "postEnforced" | "postOrdered";
646
+ type UnpluginHookFunctions<TContext extends PluginContext = PluginContext, TUnpluginBuilderVariant extends UnpluginBuilderVariant = UnpluginBuilderVariant, TField extends keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant] = keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant]> = Required<UnpluginOptions$1>[TUnpluginBuilderVariant][TField] extends infer THandler | {
647
+ handler: infer THandler;
648
+ } ? THandler extends (this: infer THandlerOriginalContext, ...args: infer THandlerArgs) => infer THandlerReturn ? (this: THandlerOriginalContext & WithUnpluginBuildContext<TContext>, ...args: THandlerArgs) => THandlerReturn : THandler extends {
649
+ handler: infer THandlerFunction;
650
+ } ? THandlerFunction extends (this: infer THandlerFunctionOriginalContext, ...args: infer THandlerFunctionArgs) => infer THandlerFunctionReturn ? (this: THandlerFunctionOriginalContext & WithUnpluginBuildContext<TContext>, ...args: THandlerFunctionArgs) => THandlerFunctionReturn : never : never : never;
651
+ interface PluginHooksListItem<TContext extends PluginContext = PluginContext, TFields extends PluginHookFields<TContext> = PluginHookFields<TContext>> {
533
652
  plugin: Plugin<TContext>;
653
+ handler: PluginHookFunctions<TContext>[TFields];
534
654
  }
535
- interface BaseHooksList<TContext extends PluginContext = PluginContext, TKey extends BaseHookKeys<TContext> = BaseHookKeys<TContext>> {
536
- preOrdered?: BaseHooksListItem<TContext, TKey>[];
537
- preEnforced?: BaseHooksListItem<TContext, TKey>[];
538
- normal?: BaseHooksListItem<TContext, TKey>[];
539
- postEnforced?: BaseHooksListItem<TContext, TKey>[];
540
- postOrdered?: BaseHooksListItem<TContext, TKey>[];
541
- }
542
- interface ExternalHooksListItem<TContext extends PluginContext = PluginContext, TKey extends ExternalHookKeys<TContext> = ExternalHookKeys<TContext>> {
655
+ type PluginHooksList<TContext extends PluginContext = PluginContext, TFields extends PluginHookFields<TContext> = PluginHookFields<TContext>> = {
656
+ [TKey in HookListOrders]?: PluginHooksListItem<TContext, TFields>[] | undefined;
657
+ };
658
+ interface UnpluginHooksListItem<TContext extends PluginContext = PluginContext, TUnpluginBuilderVariant extends UnpluginBuilderVariant = UnpluginBuilderVariant, TField extends keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant] = keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant]> {
543
659
  plugin: Plugin<TContext>;
544
- handler: ExternalHooks<TContext>[TKey];
660
+ handler: UnpluginHookFunctions<TContext, TUnpluginBuilderVariant, TField>;
545
661
  }
662
+ type UnpluginHookList<TContext extends PluginContext = PluginContext, TUnpluginBuilderVariant extends UnpluginBuilderVariant = UnpluginBuilderVariant, TField extends keyof UnpluginOptions$1[TUnpluginBuilderVariant] = keyof UnpluginOptions$1[TUnpluginBuilderVariant]> = {
663
+ [TKey in HookListOrders]?: UnpluginHooksListItem<TContext, TUnpluginBuilderVariant, TField>[] | undefined;
664
+ };
665
+ type UnpluginHookVariantField<TContext extends PluginContext = PluginContext, TUnpluginBuilderVariant extends UnpluginBuilderVariant = UnpluginBuilderVariant> = {
666
+ [TKey in keyof UnpluginOptions$1[TUnpluginBuilderVariant]]?: UnpluginHookList<TContext, TUnpluginBuilderVariant, TKey>;
667
+ };
668
+ type UnpluginHookVariant<TContext extends PluginContext = PluginContext> = {
669
+ [TKey in UnpluginBuilderVariant]?: UnpluginHookVariantField<TContext, TKey>;
670
+ };
671
+ type HookFields<TContext extends PluginContext = PluginContext> = PluginHookFields<TContext> | UnpluginBuilderVariant;
546
672
  type HooksList<TContext extends PluginContext = PluginContext> = {
547
- [TKey in BaseHookKeys<TContext>]?: BaseHooksList<TContext, TKey>;
548
- } & {
549
- [TKey in ExternalHookKeys<TContext>]?: ExternalHooksListItem<TContext, TKey>[];
673
+ [TField in HookFields<TContext>]?: TField extends PluginHookFields<TContext> ? PluginHooksList<TContext, TField> : TField extends UnpluginBuilderVariant ? UnpluginHookVariant<TContext>[TField] : never;
550
674
  };
551
- type InferHookHandler<TContext extends PluginContext, TKey extends HookKeys<TContext>> = Hooks<TContext>[TKey];
552
- type InferHookReturnType<TContext extends PluginContext, TKey extends HookKeys<TContext>> = ReturnType<InferHookHandler<TContext, TKey>> extends Promise<infer U> ? U extends Promise<infer V> ? V : U : ReturnType<InferHookHandler<TContext, TKey>>;
553
- type InferHookParameters<TContext extends PluginContext, TKey extends HookKeys<TContext>> = Parameters<InferHookHandler<TContext, TKey>>;
675
+ type InferHooksListItem<TContext extends PluginContext, TKey extends string> = TKey extends `${infer TUnpluginBuilderVariant}:${infer TUnpluginField}` ? TUnpluginBuilderVariant extends UnpluginBuilderVariant ? TUnpluginField extends keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant] ? UnpluginHooksListItem<TContext, TUnpluginBuilderVariant, TUnpluginField> : never : never : TKey extends keyof PluginHookFunctions<TContext> ? PluginHooksListItem<TContext, TKey> : never;
676
+ type InferHookFunction<TContext extends PluginContext, TKey extends string> = TKey extends `${infer TUnpluginBuilderVariant}:${infer TUnpluginField}` ? TUnpluginBuilderVariant extends UnpluginBuilderVariant ? TUnpluginField extends keyof Required<UnpluginOptions$1>[TUnpluginBuilderVariant] ? UnpluginHookFunctions<TContext, TUnpluginBuilderVariant, TUnpluginField> : never : never : TKey extends keyof PluginHookFunctions<TContext> ? PluginHookFunctions<TContext>[TKey] : never;
677
+ type InferHookReturnType<TContext extends PluginContext, TKey extends string> = ReturnType<InferHookFunction<TContext, TKey>>;
678
+ type InferHookParameters<TContext extends PluginContext, TKey extends string> = Parameters<InferHookFunction<TContext, TKey>>;
554
679
 
555
680
  type WorkerProcess<TExposedMethods extends ReadonlyArray<string>> = {
556
681
  [K in TExposedMethods[number]]: (data: any) => Promise<any>;
@@ -1028,10 +1153,10 @@ interface EnvironmentContextPlugin<TResolvedConfig extends ResolvedConfig = Reso
1028
1153
  plugin: Plugin<PluginContext<TResolvedConfig>>;
1029
1154
  context: PluginContext<TResolvedConfig>;
1030
1155
  }
1031
- interface SelectHooksResult<TResolvedConfig extends ResolvedConfig, TKey extends HookKeys<PluginContext<TResolvedConfig>>> {
1032
- handle: Hooks[TKey];
1033
- context: PluginContext<TResolvedConfig>;
1034
- }
1156
+ type SelectHookResultItem<TContext extends PluginContext, TKey extends string> = InferHooksListItem<TContext, TKey> & {
1157
+ context: TContext;
1158
+ };
1159
+ type SelectHookResult<TContext extends PluginContext, TKey extends string> = SelectHookResultItem<TContext, TKey>[];
1035
1160
  interface EnvironmentContext<TResolvedConfig extends ResolvedConfig = ResolvedConfig> extends Context<TResolvedConfig> {
1036
1161
  /**
1037
1162
  * The expected plugins options for the Powerlines project.
@@ -1055,7 +1180,7 @@ interface EnvironmentContext<TResolvedConfig extends ResolvedConfig = ResolvedCo
1055
1180
  /**
1056
1181
  * Retrieves the hook handlers for a specific hook name
1057
1182
  */
1058
- selectHooks: <TKey extends HookKeys<PluginContext<TResolvedConfig>>>(hook: TKey, options?: SelectHooksOptions) => SelectHooksResult<TResolvedConfig, TKey>[];
1183
+ selectHooks: <TKey extends string>(key: TKey, options?: SelectHooksOptions) => SelectHookResult<PluginContext<TResolvedConfig>, TKey>;
1059
1184
  }
1060
1185
  interface PluginContext<out TResolvedConfig extends ResolvedConfig = ResolvedConfig> extends Context<TResolvedConfig>, UnpluginContext {
1061
1186
  /**
@@ -1071,6 +1196,7 @@ interface PluginContext<out TResolvedConfig extends ResolvedConfig = ResolvedCon
1071
1196
  logger: LogFn;
1072
1197
  }
1073
1198
  type BuildPluginContext<TResolvedConfig extends ResolvedConfig = ResolvedConfig> = UnpluginBuildContext & PluginContext<TResolvedConfig>;
1199
+ type WithUnpluginBuildContext<TContext extends PluginContext> = UnpluginBuildContext & TContext;
1074
1200
 
1075
1201
  type LogFn = (type: LogLevelLabel, ...args: string[]) => void;
1076
1202
  /**
@@ -1430,7 +1556,7 @@ type UnbuildUserConfig = UserConfig<UnbuildBuildConfig, UnbuildResolvedBuildConf
1430
1556
  type TsupUserConfig = UserConfig<TsupBuildConfig, TsupResolvedBuildConfig, "tsup">;
1431
1557
  type TsdownUserConfig = UserConfig<TsdownBuildConfig, TsdownResolvedBuildConfig, "tsdown">;
1432
1558
  type FarmUserConfig = UserConfig<FarmBuildConfig, FarmResolvedBuildConfig, "farm">;
1433
- type InferUserConfig<TBuildVariant extends BuildVariant | undefined> = TBuildVariant extends "webpack" ? WebpackUserConfig : TBuildVariant extends "rspack" ? RspackUserConfig : TBuildVariant extends "vite" ? ViteUserConfig : TBuildVariant extends "esbuild" ? ESBuildUserConfig : TBuildVariant extends "unbuild" ? UnbuildUserConfig : TBuildVariant extends "tsup" ? TsupUserConfig : TBuildVariant extends "tsdown" ? TsdownUserConfig : TBuildVariant extends "rolldown" ? RolldownUserConfig : TBuildVariant extends "rollup" ? RollupUserConfig : TBuildVariant extends "farm" ? FarmUserConfig : UserConfig;
1559
+ type InferUserConfig<TBuilderVariant extends BuilderVariant | undefined> = TBuilderVariant extends "webpack" ? WebpackUserConfig : TBuilderVariant extends "rspack" ? RspackUserConfig : TBuilderVariant extends "vite" ? ViteUserConfig : TBuilderVariant extends "esbuild" ? ESBuildUserConfig : TBuilderVariant extends "unbuild" ? UnbuildUserConfig : TBuilderVariant extends "tsup" ? TsupUserConfig : TBuilderVariant extends "tsdown" ? TsdownUserConfig : TBuilderVariant extends "rolldown" ? RolldownUserConfig : TBuilderVariant extends "rollup" ? RollupUserConfig : TBuilderVariant extends "farm" ? FarmUserConfig : UserConfig;
1434
1560
  type InitialUserConfig<TUserConfig extends UserConfig = UserConfig> = Partial<TUserConfig> & {
1435
1561
  root: string;
1436
1562
  };
@@ -1500,4 +1626,4 @@ type DeployInlineConfig<TUserConfig extends UserConfig = UserConfig> = InlineCon
1500
1626
  command: "deploy";
1501
1627
  };
1502
1628
 
1503
- export type { APIContext as A, BuildPlugin as B, Context as C, InferUserConfig as D, ESBuildResolvedBuildConfig as E, FetchOptions as F, SourceFile as G, HooksList as H, InitialUserConfig as I, WorkerProcess as J, PrepareInlineConfig as K, LogFn as L, MetaInfo as M, NewInlineConfig as N, CleanInlineConfig as O, PowerlinesCommand as P, BuildInlineConfig as Q, ResolvedEntryTypeDefinition as R, SelectHooksOptions as S, TsdownResolvedBuildConfig as T, UnbuildBuildConfig as U, ViteResolvedBuildConfig as V, WorkspaceConfig as W, LintInlineConfig as X, DocsInlineConfig as Y, DeployInlineConfig as Z, ParsedUserConfig as a, RolldownResolvedBuildConfig as b, RollupResolvedBuildConfig as c, TsupBuildConfig as d, TsupResolvedBuildConfig as e, UnbuildResolvedBuildConfig as f, ResolvedConfig as g, Plugin as h, PluginContext as i, EnvironmentResolvedConfig as j, InitContextOptions as k, EnvironmentContext as l, EnvironmentContextPlugin as m, HookKeys as n, SelectHooksResult as o, Resolver as p, ParseOptions as q, TransformResult as r, EmitOptions as s, EmitEntryOptions as t, PluginConfig as u, InferHookParameters as v, InferHookReturnType as w, UnpluginBuildVariant as x, InferResolvedConfig as y, InferUnpluginVariant as z };
1629
+ export type { APIContext as A, UnpluginFactory as B, Context as C, SourceFile as D, ESBuildResolvedBuildConfig as E, FetchOptions as F, WorkerProcess as G, HooksList as H, InitialUserConfig as I, LogFn as L, MetaInfo as M, PowerlinesCommand as P, ResolvedEntryTypeDefinition as R, SelectHooksOptions as S, TsdownResolvedBuildConfig as T, UnbuildBuildConfig as U, ViteResolvedBuildConfig as V, WorkspaceConfig as W, ParsedUserConfig as a, RolldownResolvedBuildConfig as b, RollupResolvedBuildConfig as c, TsupBuildConfig as d, TsupResolvedBuildConfig as e, UnbuildResolvedBuildConfig as f, ResolvedConfig as g, Plugin as h, PluginContext as i, EnvironmentResolvedConfig as j, InitContextOptions as k, EnvironmentContext as l, EnvironmentContextPlugin as m, SelectHookResult as n, Resolver as o, ParseOptions as p, TransformResult as q, EmitOptions as r, EmitEntryOptions as s, API as t, PluginConfig as u, CallHookOptions as v, InferHookParameters as w, InferHookReturnType as x, UnpluginBuilderVariant as y, UnpluginOptions as z };