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
@@ -0,0 +1,232 @@
1
+ import { isUnpluginBuilderVariant } from './chunk-254IMO3A.js';
2
+ import { createPluginContext } from './chunk-7PD2L3PS.js';
3
+ import { PowerlinesContext, isPluginConfig, isPlugin, PLUGIN_NON_HOOK_FIELDS, isPluginHookField, isPluginHook, addPluginHook, isUnpluginHookField, isUnpluginHookKey } from './chunk-TWAVU346.js';
4
+ import { __name } from './chunk-7QVYU63E.js';
5
+ import { resolvePackage } from '@stryke/fs/resolve';
6
+ import { isFunction } from '@stryke/type-checks/is-function';
7
+ import { isObject } from '@stryke/type-checks/is-object';
8
+ import { isSetObject } from '@stryke/type-checks/is-set-object';
9
+
10
+ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends PowerlinesContext {
11
+ static {
12
+ __name(this, "PowerlinesEnvironmentContext");
13
+ }
14
+ /**
15
+ * The hooks registered by plugins in this environment
16
+ */
17
+ #hooks = {};
18
+ /**
19
+ * Create a new Storm context from the workspace root and user config.
20
+ *
21
+ * @param workspaceConfig - The root directory of the workspace.
22
+ * @param config - The user configuration options.
23
+ * @returns A promise that resolves to the new context.
24
+ */
25
+ static async fromConfig(workspaceConfig, config) {
26
+ const context = new _PowerlinesEnvironmentContext(config, workspaceConfig);
27
+ await context.init();
28
+ const powerlinesPath = await resolvePackage("powerlines");
29
+ if (!powerlinesPath) {
30
+ throw new Error("Could not resolve `powerlines` package location.");
31
+ }
32
+ context.powerlinesPath = powerlinesPath;
33
+ return context;
34
+ }
35
+ /**
36
+ * The resolved environment configuration
37
+ */
38
+ environment;
39
+ /**
40
+ * The list of plugins applied to this environment
41
+ */
42
+ plugins = [];
43
+ /**
44
+ * The resolved configuration options
45
+ */
46
+ get config() {
47
+ return super.config;
48
+ }
49
+ get hooks() {
50
+ return this.#hooks;
51
+ }
52
+ async addPlugin(plugin) {
53
+ let resolvedPlugin = plugin;
54
+ if (isFunction(plugin.applyToEnvironment)) {
55
+ const result = await Promise.resolve(plugin.applyToEnvironment(this.environment));
56
+ if (!result || isObject(result) && Object.keys(result).length === 0) {
57
+ return;
58
+ }
59
+ if (isPluginConfig(result)) {
60
+ return this.$$internal.addPlugin(result);
61
+ }
62
+ resolvedPlugin = isPlugin(result) ? result : plugin;
63
+ }
64
+ const context = createPluginContext(resolvedPlugin, this);
65
+ this.plugins.push({
66
+ plugin: resolvedPlugin,
67
+ context
68
+ });
69
+ this.#hooks = Object.keys(resolvedPlugin).filter((key) => !PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
70
+ const hook = key;
71
+ if (isPluginHookField(hook)) {
72
+ const pluginHook = resolvedPlugin[hook];
73
+ if (!isPluginHook(pluginHook)) {
74
+ return ret;
75
+ }
76
+ ret[hook] ??= {
77
+ preEnforced: [],
78
+ preOrdered: [],
79
+ normal: [],
80
+ postEnforced: [],
81
+ postOrdered: []
82
+ };
83
+ if (resolvedPlugin.enforce) {
84
+ const hookListOrder2 = `${resolvedPlugin.enforce}Enforced`;
85
+ ret[hook][hookListOrder2] ??= [];
86
+ const bucket = ret[hook][hookListOrder2];
87
+ addPluginHook(context, resolvedPlugin, pluginHook, bucket);
88
+ return ret;
89
+ }
90
+ if (isFunction(pluginHook) || !pluginHook.order) {
91
+ ret[hook].normal ??= [];
92
+ const bucket = ret[hook].normal;
93
+ addPluginHook(context, resolvedPlugin, pluginHook, bucket);
94
+ return ret;
95
+ }
96
+ const hookListOrder = `${pluginHook.order}Ordered`;
97
+ ret[hook][hookListOrder] ??= [];
98
+ addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][hookListOrder]);
99
+ return ret;
100
+ } else if (isUnpluginHookField(hook)) {
101
+ const unpluginPlugin = resolvedPlugin[hook];
102
+ if (!isSetObject(unpluginPlugin)) {
103
+ return ret;
104
+ }
105
+ for (const field of Object.keys(unpluginPlugin)) {
106
+ const variantField = field;
107
+ const pluginHook = unpluginPlugin[variantField];
108
+ if (!isPluginHook(pluginHook)) {
109
+ continue;
110
+ }
111
+ ret[hook] ??= {};
112
+ ret[hook][variantField] ??= {
113
+ preEnforced: [],
114
+ preOrdered: [],
115
+ normal: [],
116
+ postEnforced: [],
117
+ postOrdered: []
118
+ };
119
+ if (resolvedPlugin.enforce) {
120
+ addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${resolvedPlugin.enforce}Enforced`]);
121
+ return ret;
122
+ }
123
+ if (isFunction(pluginHook) || !pluginHook.order) {
124
+ addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField].normal);
125
+ return ret;
126
+ }
127
+ addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${pluginHook.order}Ordered`]);
128
+ }
129
+ } else {
130
+ this.warn(`Unknown plugin hook field: ${String(hook)}`);
131
+ }
132
+ return ret;
133
+ }, this.hooks);
134
+ }
135
+ /**
136
+ * Retrieves the hook handlers for a specific hook name
137
+ */
138
+ selectHooks(key, options) {
139
+ const result = [];
140
+ if (isUnpluginHookKey(key)) {
141
+ const variant = String(key).split(":")[0];
142
+ if (isUnpluginBuilderVariant(variant)) {
143
+ const hooks = this.hooks[variant];
144
+ if (hooks) {
145
+ const field = String(key).split(":")[1];
146
+ if (field && hooks[field]) {
147
+ const fieldHooks = hooks[field];
148
+ if (options?.order) {
149
+ const mapHooksToResult = /* @__PURE__ */ __name((hooksList) => hooksList.map((hook) => {
150
+ const plugin = this.plugins.find((p) => p.plugin.name === hook.plugin.name);
151
+ if (!plugin) {
152
+ throw new Error(`Could not find plugin context for plugin "${hook.plugin.name}".`);
153
+ }
154
+ return {
155
+ handler: hook.handler,
156
+ plugin: hook.plugin,
157
+ context: plugin.context
158
+ };
159
+ }), "mapHooksToResult");
160
+ if (options?.order === "pre") {
161
+ result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));
162
+ result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));
163
+ } else if (options?.order === "post") {
164
+ result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));
165
+ result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));
166
+ } else {
167
+ result.push(...mapHooksToResult(fieldHooks.normal ?? []));
168
+ }
169
+ } else {
170
+ result.push(...this.selectHooks(key, {
171
+ order: "pre"
172
+ }));
173
+ result.push(...this.selectHooks(key, {
174
+ order: "normal"
175
+ }));
176
+ result.push(...this.selectHooks(key, {
177
+ order: "post"
178
+ }));
179
+ }
180
+ }
181
+ }
182
+ }
183
+ } else if (isPluginHookField(key)) {
184
+ if (this.hooks[key]) {
185
+ const fieldHooks = this.hooks[key];
186
+ if (options?.order) {
187
+ const mapHooksToResult = /* @__PURE__ */ __name((hooksList) => hooksList.map((hook) => {
188
+ const plugin = this.plugins.find((p) => p.plugin.name === hook.plugin.name);
189
+ if (!plugin) {
190
+ throw new Error(`Could not find plugin context for plugin "${hook.plugin.name}".`);
191
+ }
192
+ return {
193
+ handler: hook.handler,
194
+ plugin: hook.plugin,
195
+ context: plugin.context
196
+ };
197
+ }), "mapHooksToResult");
198
+ if (options?.order === "pre") {
199
+ result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));
200
+ result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));
201
+ } else if (options?.order === "post") {
202
+ result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));
203
+ result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));
204
+ } else {
205
+ result.push(...mapHooksToResult(fieldHooks.normal ?? []));
206
+ }
207
+ } else {
208
+ result.push(...this.selectHooks(key, {
209
+ order: "pre"
210
+ }));
211
+ result.push(...this.selectHooks(key, {
212
+ order: "normal"
213
+ }));
214
+ result.push(...this.selectHooks(key, {
215
+ order: "post"
216
+ }));
217
+ }
218
+ }
219
+ } else {
220
+ throw new Error(`Unknown plugin hook key: ${String(key)}`);
221
+ }
222
+ return result;
223
+ }
224
+ constructor(config, workspaceConfig) {
225
+ super(workspaceConfig);
226
+ this.resolvedConfig = config;
227
+ }
228
+ };
229
+
230
+ export { PowerlinesEnvironmentContext };
231
+ //# sourceMappingURL=chunk-XDUEQVFC.js.map
232
+ //# sourceMappingURL=chunk-XDUEQVFC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/contexts/environment-context.ts"],"names":["PowerlinesEnvironmentContext","PowerlinesContext","fromConfig","workspaceConfig","config","context","init","powerlinesPath","resolvePackage","Error","environment","plugins","hooks","addPlugin","plugin","resolvedPlugin","isFunction","applyToEnvironment","result","Promise","resolve","isObject","Object","keys","length","isPluginConfig","$$internal","isPlugin","createPluginContext","push","filter","key","PLUGIN_NON_HOOK_FIELDS","includes","reduce","ret","hook","isPluginHookField","pluginHook","isPluginHook","preEnforced","preOrdered","normal","postEnforced","postOrdered","enforce","hookListOrder","bucket","addPluginHook","order","isUnpluginHookField","unpluginPlugin","isSetObject","field","variantField","warn","String","selectHooks","options","isUnpluginHookKey","variant","split","isUnpluginBuilderVariant","fieldHooks","mapHooksToResult","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-XDUEQVFC.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 { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n addPluginHook,\n isPlugin,\n isPluginConfig,\n isPluginHook,\n isPluginHookField,\n isUnpluginHookField,\n isUnpluginHookKey\n} from \"../../plugin-utils/helpers\";\nimport { PluginConfig, WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHookResult,\n SelectHookResultItem,\n SelectHooksOptions\n} from \"../../types/context\";\nimport {\n HookFields,\n HookListOrders,\n HooksList,\n InferHooksListItem,\n PluginHooksListItem,\n UnpluginHookList,\n UnpluginHooksListItem\n} from \"../../types/hooks\";\nimport {\n Plugin,\n PLUGIN_NON_HOOK_FIELDS,\n PluginHook,\n PluginHookFields\n} from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { UnpluginOptions } from \"../../types/unplugin\";\nimport { isUnpluginBuilderVariant } from \"../unplugin/helpers\";\nimport { PowerlinesContext } from \"./context\";\nimport { createPluginContext } from \"./plugin-context\";\n\nexport class PowerlinesEnvironmentContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements EnvironmentContext<TResolvedConfig>\n{\n /**\n * The hooks registered by plugins in this environment\n */\n #hooks: HooksList<PluginContext<TResolvedConfig>> = {} as HooksList<\n PluginContext<TResolvedConfig>\n >;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceConfig - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static async fromConfig<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceConfig: WorkspaceConfig,\n config: TResolvedConfig\n ): Promise<PowerlinesEnvironmentContext<TResolvedConfig>> {\n const context = new PowerlinesEnvironmentContext<TResolvedConfig>(\n config,\n workspaceConfig\n );\n await context.init();\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * The resolved environment configuration\n */\n public environment!: EnvironmentResolvedConfig;\n\n /**\n * The list of plugins applied to this environment\n */\n public plugins: EnvironmentContextPlugin<TResolvedConfig>[] = [];\n\n /**\n * The resolved configuration options\n */\n public override get config(): TResolvedConfig {\n return super.config;\n }\n\n public get hooks(): HooksList<PluginContext<TResolvedConfig>> {\n return this.#hooks;\n }\n\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n let resolvedPlugin = plugin;\n if (isFunction(plugin.applyToEnvironment)) {\n const result = (await Promise.resolve(\n plugin.applyToEnvironment(this.environment) as Promise<any>\n )) as boolean | PluginConfig<PluginContext<TResolvedConfig>>;\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig<PluginContext<TResolvedConfig>>(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<PluginContext<TResolvedConfig>>(result)\n ? result\n : plugin;\n }\n\n const context = createPluginContext<TResolvedConfig>(resolvedPlugin, this);\n\n this.plugins.push({\n plugin: resolvedPlugin,\n context\n });\n\n this.#hooks = Object.keys(resolvedPlugin)\n .filter(\n key =>\n !PLUGIN_NON_HOOK_FIELDS.includes(\n key as ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n )\n )\n .reduce((ret, key) => {\n const hook = key as HookFields<PluginContext<TResolvedConfig>>;\n\n if (isPluginHookField<PluginContext<TResolvedConfig>>(hook)) {\n const pluginHook = resolvedPlugin[hook];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n ret[hook] ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n const hookListOrder =\n `${resolvedPlugin.enforce}Enforced` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n const bucket = ret[hook][hookListOrder];\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n const bucket = ret[hook].normal;\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][hookListOrder] as PluginHooksListItem<\n PluginContext<TResolvedConfig>\n >[]\n );\n\n return ret;\n } else if (isUnpluginHookField(hook)) {\n const unpluginPlugin = resolvedPlugin[hook];\n if (!isSetObject(unpluginPlugin)) {\n return ret;\n }\n\n for (const field of Object.keys(unpluginPlugin)) {\n const variantField = field as keyof UnpluginOptions[typeof hook];\n\n const pluginHook = unpluginPlugin[\n variantField\n ] as PluginHook<AnyFunction>;\n if (!isPluginHook(pluginHook)) {\n continue;\n }\n\n ret[hook] ??= {};\n (ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >) ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${resolvedPlugin.enforce}Enforced`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n (\n ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >\n ).normal!\n );\n\n return ret;\n }\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${pluginHook.order}Ordered`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n }\n } else {\n this.warn(`Unknown plugin hook field: ${String(hook)}`);\n }\n\n return ret;\n }, this.hooks);\n }\n\n /**\n * Retrieves the hook handlers for a specific hook name\n */\n public selectHooks<TKey extends string>(\n key: TKey,\n options?: SelectHooksOptions\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> {\n const result = [] as SelectHookResult<PluginContext<TResolvedConfig>, TKey>;\n\n if (isUnpluginHookKey(key)) {\n const variant = String(key).split(\":\")[0];\n if (isUnpluginBuilderVariant(variant)) {\n const hooks = this.hooks[variant];\n if (hooks) {\n const field = String(key).split(\":\")[1] as keyof typeof hooks;\n if (field && hooks[field]) {\n const fieldHooks = hooks[field] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<\n PluginContext<TResolvedConfig>,\n TKey\n >;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n }\n }\n } else if (isPluginHookField<PluginContext<TResolvedConfig>>(key)) {\n if (this.hooks[key]) {\n const fieldHooks = this.hooks[key] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<PluginContext<TResolvedConfig>, TKey>;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n } else {\n throw new Error(`Unknown plugin hook key: ${String(key)}`);\n }\n\n // if (this.hooks[key]) {\n // if (!isPluginHookField(key)) {\n // const hooks = this.hooks[key];\n // if (options?.order) {\n // if (options?.order === \"pre\") {\n // // result.push(\n // // ...(hooks.preOrdered ?? []).map(hook => {\n // // const plugin = this.plugins.find(\n // // p => p.plugin.name === hook.plugin.name\n // // );\n // // if (!plugin) {\n // // throw new Error(\n // // `Could not find plugin context for plugin \"${\n // // hook.plugin.name\n // // }\".`\n // // );\n // // }\n\n // // return {\n // // handler: hook.handler,\n // // context: plugin.context\n // // };\n // // })\n // // );\n // // result.push(\n // // ...(hooks.preEnforced ?? []).map(h => {\n // // const plugin = this.plugins.find(\n // // p => p.plugin.name === h.plugin.name\n // // );\n // // if (!plugin) {\n // // throw new Error(\n // // `Could not find plugin context for plugin \"${\n // // h.plugin.name\n // // }\".`\n // // );\n // // }\n\n // // return {\n // // handler: h.handler,\n // // context: plugin.context\n // // };\n // // })\n // // );\n // } else if (options?.order === \"post\") {\n // result.push(\n // ...(hooks.postOrdered ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // result.push(\n // ...(hooks.postEnforced ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // } else {\n // result.push(\n // ...(hooks.normal ?? []).map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${\n // h.plugin.name\n // }\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // }\n // } else {\n // result.push(...this.selectHooks(key, { order: \"pre\" }));\n // result.push(...this.selectHooks(key, { order: \"normal\" }));\n // result.push(...this.selectHooks(key, { order: \"post\" }));\n // }\n // } else {\n // result.push(\n // ...this.hooks[key].map(h => {\n // const plugin = this.plugins.find(\n // p => p.plugin.name === h.plugin.name\n // );\n // if (!plugin) {\n // throw new Error(\n // `Could not find plugin context for plugin \"${h.plugin.name}\".`\n // );\n // }\n\n // return {\n // handler: h.handler,\n // context: plugin.context\n // };\n // })\n // );\n // }\n // }\n\n return result;\n }\n\n protected constructor(\n config: TResolvedConfig,\n workspaceConfig: WorkspaceConfig\n ) {\n super(workspaceConfig);\n\n this.resolvedConfig = config;\n }\n}\n"]}