@powerlines/core 0.48.28 → 0.48.29

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 (931) hide show
  1. package/dist/api-DTCbbtSH.d.cts +6 -0
  2. package/dist/api-DTCbbtSH.d.cts.map +1 -0
  3. package/dist/api-DTCbbtSH.d.mts +6 -0
  4. package/dist/api-DTCbbtSH.d.mts.map +1 -0
  5. package/dist/base-context-BmxgDD3S.d.mts +79 -0
  6. package/dist/base-context-BmxgDD3S.d.mts.map +1 -0
  7. package/dist/base-context-mHoSEqHf.d.cts +79 -0
  8. package/dist/base-context-mHoSEqHf.d.cts.map +1 -0
  9. package/dist/{_virtual/_rolldown/runtime.cjs → chunk-C_NdSu1c.cjs} +6 -23
  10. package/dist/commands-DzGd8pnR.d.cts +5 -0
  11. package/dist/commands-DzGd8pnR.d.cts.map +1 -0
  12. package/dist/commands-DzGd8pnR.d.mts +5 -0
  13. package/dist/commands-DzGd8pnR.d.mts.map +1 -0
  14. package/dist/config-BnV_o0Es.d.cts +2461 -0
  15. package/dist/config-BnV_o0Es.d.cts.map +1 -0
  16. package/dist/config-DKeDSykZ.d.cts +138 -0
  17. package/dist/config-DKeDSykZ.d.cts.map +1 -0
  18. package/dist/config-DbOP5nVu.d.mts +138 -0
  19. package/dist/config-DbOP5nVu.d.mts.map +1 -0
  20. package/dist/config-DboKmDhl.d.mts +2461 -0
  21. package/dist/config-DboKmDhl.d.mts.map +1 -0
  22. package/dist/constants/api.cjs +0 -8
  23. package/dist/constants/api.d.cts +2 -6
  24. package/dist/constants/api.d.mts +2 -8
  25. package/dist/constants/api.mjs +0 -8
  26. package/dist/constants/api.mjs.map +1 -1
  27. package/dist/constants/commands.cjs +0 -8
  28. package/dist/constants/commands.d.cts +2 -5
  29. package/dist/constants/commands.d.mts +2 -7
  30. package/dist/constants/commands.mjs +0 -8
  31. package/dist/constants/commands.mjs.map +1 -1
  32. package/dist/constants/devtools.cjs +0 -8
  33. package/dist/constants/devtools.d.cts +2 -13
  34. package/dist/constants/devtools.d.mts +2 -15
  35. package/dist/constants/devtools.mjs +0 -8
  36. package/dist/constants/devtools.mjs.map +1 -1
  37. package/dist/constants/environments.cjs +0 -8
  38. package/dist/constants/environments.d.cts +2 -10
  39. package/dist/constants/environments.d.mts +2 -12
  40. package/dist/constants/environments.mjs +0 -8
  41. package/dist/constants/environments.mjs.map +1 -1
  42. package/dist/constants/extensions.cjs +0 -8
  43. package/dist/constants/extensions.d.cts +2 -5
  44. package/dist/constants/extensions.d.mts +2 -7
  45. package/dist/constants/extensions.mjs +0 -8
  46. package/dist/constants/extensions.mjs.map +1 -1
  47. package/dist/constants/fs.cjs +0 -8
  48. package/dist/constants/fs.d.cts +2 -7
  49. package/dist/constants/fs.d.mts +2 -9
  50. package/dist/constants/fs.mjs +0 -8
  51. package/dist/constants/fs.mjs.map +1 -1
  52. package/dist/constants/hooks.cjs +0 -8
  53. package/dist/constants/hooks.d.cts +2 -5
  54. package/dist/constants/hooks.d.mts +2 -7
  55. package/dist/constants/hooks.mjs +0 -8
  56. package/dist/constants/hooks.mjs.map +1 -1
  57. package/dist/constants/index.cjs +0 -8
  58. package/dist/constants/index.d.cts +10 -10
  59. package/dist/constants/index.d.mts +10 -12
  60. package/dist/constants/index.mjs +0 -8
  61. package/dist/constants/log-level.cjs +0 -8
  62. package/dist/constants/log-level.d.cts +2 -67
  63. package/dist/constants/log-level.d.mts +2 -69
  64. package/dist/constants/log-level.mjs +0 -8
  65. package/dist/constants/log-level.mjs.map +1 -1
  66. package/dist/constants/meta.cjs +0 -8
  67. package/dist/constants/meta.d.cts +2 -6
  68. package/dist/constants/meta.d.mts +2 -8
  69. package/dist/constants/meta.mjs +0 -8
  70. package/dist/constants/meta.mjs.map +1 -1
  71. package/dist/constants/plugin.cjs +0 -8
  72. package/dist/constants/plugin.d.cts +2 -9
  73. package/dist/constants/plugin.d.mts +2 -11
  74. package/dist/constants/plugin.mjs +0 -8
  75. package/dist/constants/plugin.mjs.map +1 -1
  76. package/dist/context/base-context.cjs +3 -18
  77. package/dist/context/base-context.d.cts +2 -81
  78. package/dist/context/base-context.d.mts +2 -83
  79. package/dist/context/base-context.mjs +1 -11
  80. package/dist/context/base-context.mjs.map +1 -1
  81. package/dist/context/context.cjs +3 -18
  82. package/dist/context/context.d.cts +2 -373
  83. package/dist/context/context.d.mts +2 -375
  84. package/dist/context/context.mjs +1 -11
  85. package/dist/context/context.mjs.map +1 -1
  86. package/dist/context/environment-context.cjs +1 -17
  87. package/dist/context/environment-context.d.cts +2 -5
  88. package/dist/context/environment-context.d.cts.map +1 -1
  89. package/dist/context/environment-context.d.mts +2 -7
  90. package/dist/context/environment-context.d.mts.map +1 -1
  91. package/dist/context/environment-context.mjs +1 -11
  92. package/dist/context/environment-context.mjs.map +1 -1
  93. package/dist/context/execution-context.cjs +3 -18
  94. package/dist/context/execution-context.d.cts +2 -6
  95. package/dist/context/execution-context.d.cts.map +1 -1
  96. package/dist/context/execution-context.d.mts +2 -8
  97. package/dist/context/execution-context.d.mts.map +1 -1
  98. package/dist/context/execution-context.mjs +1 -11
  99. package/dist/context/execution-context.mjs.map +1 -1
  100. package/dist/context/index.cjs +0 -8
  101. package/dist/context/index.d.cts +2 -2
  102. package/dist/context/index.d.mts +2 -4
  103. package/dist/context/index.mjs +0 -8
  104. package/dist/context/plugin-context.cjs +1 -17
  105. package/dist/context/plugin-context.d.cts +1 -3
  106. package/dist/context/plugin-context.d.cts.map +1 -1
  107. package/dist/context/plugin-context.d.mts +1 -5
  108. package/dist/context/plugin-context.d.mts.map +1 -1
  109. package/dist/context/plugin-context.mjs +1 -11
  110. package/dist/context/plugin-context.mjs.map +1 -1
  111. package/dist/context-C6oL3mPw.d.mts +368 -0
  112. package/dist/context-C6oL3mPw.d.mts.map +1 -0
  113. package/dist/context-DcY6YqBQ.d.cts +368 -0
  114. package/dist/context-DcY6YqBQ.d.cts.map +1 -0
  115. package/dist/context-helpers-BKxpDArS.d.mts +15 -0
  116. package/dist/context-helpers-BKxpDArS.d.mts.map +1 -0
  117. package/dist/context-helpers-zXovPE7i.d.cts +15 -0
  118. package/dist/context-helpers-zXovPE7i.d.cts.map +1 -0
  119. package/dist/devtools-h0du-bSj.d.cts +13 -0
  120. package/dist/devtools-h0du-bSj.d.cts.map +1 -0
  121. package/dist/devtools-h0du-bSj.d.mts +13 -0
  122. package/dist/devtools-h0du-bSj.d.mts.map +1 -0
  123. package/dist/entry-BC_V2K2U.d.cts +46 -0
  124. package/dist/entry-BC_V2K2U.d.cts.map +1 -0
  125. package/dist/entry-CHIaWcmk.d.mts +46 -0
  126. package/dist/entry-CHIaWcmk.d.mts.map +1 -0
  127. package/dist/environments-BYv_kHRG.d.cts +10 -0
  128. package/dist/environments-BYv_kHRG.d.cts.map +1 -0
  129. package/dist/environments-BYv_kHRG.d.mts +10 -0
  130. package/dist/environments-BYv_kHRG.d.mts.map +1 -0
  131. package/dist/events-NA1XM2Vz.d.cts +10 -0
  132. package/dist/events-NA1XM2Vz.d.cts.map +1 -0
  133. package/dist/events-NA1XM2Vz.d.mts +10 -0
  134. package/dist/events-NA1XM2Vz.d.mts.map +1 -0
  135. package/dist/extensions-ctxXzgay.d.cts +5 -0
  136. package/dist/extensions-ctxXzgay.d.cts.map +1 -0
  137. package/dist/extensions-ctxXzgay.d.mts +5 -0
  138. package/dist/extensions-ctxXzgay.d.mts.map +1 -0
  139. package/dist/file-header-Co9oo7aI.d.cts +41 -0
  140. package/dist/file-header-Co9oo7aI.d.cts.map +1 -0
  141. package/dist/file-header-rHqeXgRV.d.mts +41 -0
  142. package/dist/file-header-rHqeXgRV.d.mts.map +1 -0
  143. package/dist/format-Cf-cgZ-s.d.cts +24 -0
  144. package/dist/format-Cf-cgZ-s.d.cts.map +1 -0
  145. package/dist/format-IQPqgWIe.d.mts +24 -0
  146. package/dist/format-IQPqgWIe.d.mts.map +1 -0
  147. package/dist/fs-BzXT5ZPj.d.cts +7 -0
  148. package/dist/fs-BzXT5ZPj.d.cts.map +1 -0
  149. package/dist/fs-BzXT5ZPj.d.mts +7 -0
  150. package/dist/fs-BzXT5ZPj.d.mts.map +1 -0
  151. package/dist/{schemas/fs.cjs → fs-C2lru696.cjs} +38 -16
  152. package/dist/{schemas/fs.mjs → fs-DqLn15uU.mjs} +2 -10
  153. package/dist/fs-DqLn15uU.mjs.map +1 -0
  154. package/dist/generate-types-CDkVosrS.d.cts +65 -0
  155. package/dist/generate-types-CDkVosrS.d.cts.map +1 -0
  156. package/dist/generate-types-Dw6p3cB_.d.mts +65 -0
  157. package/dist/generate-types-Dw6p3cB_.d.mts.map +1 -0
  158. package/dist/helpers-CrRRFQl5.d.mts +22 -0
  159. package/dist/helpers-CrRRFQl5.d.mts.map +1 -0
  160. package/dist/helpers-DBLIQW3U.d.cts +22 -0
  161. package/dist/helpers-DBLIQW3U.d.cts.map +1 -0
  162. package/dist/hooks-Dhc3ahex.d.cts +5 -0
  163. package/dist/hooks-Dhc3ahex.d.cts.map +1 -0
  164. package/dist/hooks-Dhc3ahex.d.mts +5 -0
  165. package/dist/hooks-Dhc3ahex.d.mts.map +1 -0
  166. package/dist/index-LtpXjuJR.d.mts +25 -0
  167. package/dist/index-LtpXjuJR.d.mts.map +1 -0
  168. package/dist/index-xk4vSgtB.d.cts +25 -0
  169. package/dist/index-xk4vSgtB.d.cts.map +1 -0
  170. package/dist/index.cjs +1 -9
  171. package/dist/index.d.cts +24 -32
  172. package/dist/index.d.mts +24 -34
  173. package/dist/index.mjs +1 -9
  174. package/dist/install-dependencies-CCjZfS9Y.d.mts +12 -0
  175. package/dist/install-dependencies-CCjZfS9Y.d.mts.map +1 -0
  176. package/dist/install-dependencies-CyeYsrfz.d.cts +12 -0
  177. package/dist/install-dependencies-CyeYsrfz.d.cts.map +1 -0
  178. package/dist/lib/config.cjs +2 -28
  179. package/dist/lib/config.d.cts +2 -140
  180. package/dist/lib/config.d.mts +2 -142
  181. package/dist/lib/config.mjs +1 -22
  182. package/dist/lib/config.mjs.map +1 -1
  183. package/dist/lib/context-helpers.cjs +0 -19
  184. package/dist/lib/context-helpers.d.cts +2 -16
  185. package/dist/lib/context-helpers.d.mts +2 -18
  186. package/dist/lib/context-helpers.mjs +1 -14
  187. package/dist/lib/context-helpers.mjs.map +1 -1
  188. package/dist/lib/entry.cjs +0 -24
  189. package/dist/lib/entry.d.cts +2 -47
  190. package/dist/lib/entry.d.mts +2 -49
  191. package/dist/lib/entry.mjs +1 -19
  192. package/dist/lib/entry.mjs.map +1 -1
  193. package/dist/lib/environment.cjs +2 -22
  194. package/dist/lib/environment.d.cts +1 -2
  195. package/dist/lib/environment.d.cts.map +1 -1
  196. package/dist/lib/environment.d.mts +1 -4
  197. package/dist/lib/environment.d.mts.map +1 -1
  198. package/dist/lib/environment.mjs +1 -16
  199. package/dist/lib/environment.mjs.map +1 -1
  200. package/dist/lib/events.cjs +1 -17
  201. package/dist/lib/events.d.cts +2 -10
  202. package/dist/lib/events.d.mts +2 -12
  203. package/dist/lib/events.mjs +1 -12
  204. package/dist/lib/events.mjs.map +1 -1
  205. package/dist/lib/generate-types.cjs +0 -20
  206. package/dist/lib/generate-types.d.cts +2 -66
  207. package/dist/lib/generate-types.d.mts +2 -68
  208. package/dist/lib/generate-types.mjs +1 -15
  209. package/dist/lib/generate-types.mjs.map +1 -1
  210. package/dist/lib/hooks.cjs +2 -22
  211. package/dist/lib/hooks.d.cts +2 -28
  212. package/dist/lib/hooks.d.mts +2 -30
  213. package/dist/lib/hooks.mjs +1 -16
  214. package/dist/lib/hooks.mjs.map +1 -1
  215. package/dist/lib/index.cjs +1 -9
  216. package/dist/lib/index.d.cts +23 -23
  217. package/dist/lib/index.d.mts +23 -25
  218. package/dist/lib/index.mjs +1 -9
  219. package/dist/lib/install-dependencies.cjs +1 -17
  220. package/dist/lib/install-dependencies.d.cts +2 -12
  221. package/dist/lib/install-dependencies.d.mts +2 -14
  222. package/dist/lib/install-dependencies.mjs +1 -11
  223. package/dist/lib/install-dependencies.mjs.map +1 -1
  224. package/dist/lib/meta.cjs +0 -8
  225. package/dist/lib/meta.d.cts +2 -33
  226. package/dist/lib/meta.d.mts +2 -35
  227. package/dist/lib/meta.mjs +0 -8
  228. package/dist/lib/meta.mjs.map +1 -1
  229. package/dist/lib/plugins.cjs +2 -21
  230. package/dist/lib/plugins.d.cts +2 -39
  231. package/dist/lib/plugins.d.mts +2 -41
  232. package/dist/lib/plugins.mjs +1 -15
  233. package/dist/lib/plugins.mjs.map +1 -1
  234. package/dist/lib/resolver.cjs +3 -18
  235. package/dist/lib/resolver.d.cts +2 -20
  236. package/dist/lib/resolver.d.mts +2 -22
  237. package/dist/lib/resolver.mjs +1 -11
  238. package/dist/lib/resolver.mjs.map +1 -1
  239. package/dist/lib/schemas.cjs +1 -9
  240. package/dist/lib/schemas.d.cts +1 -1
  241. package/dist/lib/schemas.d.mts +1 -3
  242. package/dist/lib/schemas.mjs +1 -9
  243. package/dist/lib/streaming-channel.cjs +1 -20
  244. package/dist/lib/streaming-channel.d.cts +2 -126
  245. package/dist/lib/streaming-channel.d.mts +2 -128
  246. package/dist/lib/streaming-channel.mjs +1 -14
  247. package/dist/lib/streaming-channel.mjs.map +1 -1
  248. package/dist/lib/typescript/index.cjs +0 -8
  249. package/dist/lib/typescript/index.d.cts +2 -2
  250. package/dist/lib/typescript/index.d.mts +2 -4
  251. package/dist/lib/typescript/index.mjs +0 -8
  252. package/dist/lib/typescript/ts-morph.cjs +3 -21
  253. package/dist/lib/typescript/ts-morph.d.cts +2 -38
  254. package/dist/lib/typescript/ts-morph.d.mts +2 -40
  255. package/dist/lib/typescript/ts-morph.mjs +1 -14
  256. package/dist/lib/typescript/ts-morph.mjs.map +1 -1
  257. package/dist/lib/typescript/tsconfig.cjs +5 -31
  258. package/dist/lib/typescript/tsconfig.d.cts +2 -77
  259. package/dist/lib/typescript/tsconfig.d.mts +2 -79
  260. package/dist/lib/typescript/tsconfig.mjs +1 -22
  261. package/dist/lib/typescript/tsconfig.mjs.map +1 -1
  262. package/dist/lib/unplugin/helpers.cjs +0 -19
  263. package/dist/lib/unplugin/helpers.d.cts +2 -23
  264. package/dist/lib/unplugin/helpers.d.mts +2 -25
  265. package/dist/lib/unplugin/helpers.mjs +1 -14
  266. package/dist/lib/unplugin/helpers.mjs.map +1 -1
  267. package/dist/lib/unplugin/index.cjs +0 -8
  268. package/dist/lib/unplugin/index.d.cts +3 -3
  269. package/dist/lib/unplugin/index.d.mts +3 -5
  270. package/dist/lib/unplugin/index.mjs +0 -8
  271. package/dist/lib/unplugin/module-resolution.cjs +3 -18
  272. package/dist/lib/unplugin/module-resolution.d.cts +2 -41
  273. package/dist/lib/unplugin/module-resolution.d.mts +2 -43
  274. package/dist/lib/unplugin/module-resolution.mjs +1 -11
  275. package/dist/lib/unplugin/module-resolution.mjs.map +1 -1
  276. package/dist/lib/unplugin/plugin.cjs +1 -20
  277. package/dist/lib/unplugin/plugin.d.cts +2 -40
  278. package/dist/lib/unplugin/plugin.d.mts +2 -42
  279. package/dist/lib/unplugin/plugin.mjs +1 -14
  280. package/dist/lib/unplugin/plugin.mjs.map +1 -1
  281. package/dist/lib/utilities/file-header.cjs +0 -21
  282. package/dist/lib/utilities/file-header.d.cts +2 -41
  283. package/dist/lib/utilities/file-header.d.mts +2 -43
  284. package/dist/lib/utilities/file-header.mjs +1 -16
  285. package/dist/lib/utilities/file-header.mjs.map +1 -1
  286. package/dist/lib/utilities/format.cjs +3 -21
  287. package/dist/lib/utilities/format.d.cts +2 -24
  288. package/dist/lib/utilities/format.d.mts +2 -26
  289. package/dist/lib/utilities/format.mjs +1 -14
  290. package/dist/lib/utilities/format.mjs.map +1 -1
  291. package/dist/lib/utilities/index.cjs +0 -8
  292. package/dist/lib/utilities/index.d.cts +5 -5
  293. package/dist/lib/utilities/index.d.mts +5 -7
  294. package/dist/lib/utilities/index.mjs +0 -8
  295. package/dist/lib/utilities/source-file.cjs +3 -22
  296. package/dist/lib/utilities/source-file.d.cts +2 -30
  297. package/dist/lib/utilities/source-file.d.mts +2 -32
  298. package/dist/lib/utilities/source-file.mjs +1 -15
  299. package/dist/lib/utilities/source-file.mjs.map +1 -1
  300. package/dist/lib/utilities/source-map.cjs +3 -18
  301. package/dist/lib/utilities/source-map.d.cts +2 -16
  302. package/dist/lib/utilities/source-map.d.mts +2 -18
  303. package/dist/lib/utilities/source-map.mjs +1 -11
  304. package/dist/lib/utilities/source-map.mjs.map +1 -1
  305. package/dist/lib/utilities/write-file.cjs +1 -17
  306. package/dist/lib/utilities/write-file.d.cts +2 -15
  307. package/dist/lib/utilities/write-file.d.mts +2 -17
  308. package/dist/lib/utilities/write-file.mjs +1 -11
  309. package/dist/lib/utilities/write-file.mjs.map +1 -1
  310. package/dist/lib/vfs.cjs +4 -19
  311. package/dist/lib/vfs.d.cts +2 -321
  312. package/dist/lib/vfs.d.mts +2 -323
  313. package/dist/lib/vfs.mjs +2 -12
  314. package/dist/lib/vfs.mjs.map +1 -1
  315. package/dist/log-level-BC8g4BBL.d.cts +67 -0
  316. package/dist/log-level-BC8g4BBL.d.cts.map +1 -0
  317. package/dist/log-level-BC8g4BBL.d.mts +67 -0
  318. package/dist/log-level-BC8g4BBL.d.mts.map +1 -0
  319. package/dist/meta-CdDd2ykC.d.cts +33 -0
  320. package/dist/meta-CdDd2ykC.d.cts.map +1 -0
  321. package/dist/meta-CfTCHU_o.d.mts +33 -0
  322. package/dist/meta-CfTCHU_o.d.mts.map +1 -0
  323. package/dist/meta-QA_SN1j3.d.cts +6 -0
  324. package/dist/meta-QA_SN1j3.d.cts.map +1 -0
  325. package/dist/meta-QA_SN1j3.d.mts +6 -0
  326. package/dist/meta-QA_SN1j3.d.mts.map +1 -0
  327. package/dist/module-resolution-CRMNPsdn.d.mts +40 -0
  328. package/dist/module-resolution-CRMNPsdn.d.mts.map +1 -0
  329. package/dist/module-resolution-D-w-EZaK.d.cts +40 -0
  330. package/dist/module-resolution-D-w-EZaK.d.cts.map +1 -0
  331. package/dist/plugin-B_b7XqaN.d.mts +39 -0
  332. package/dist/plugin-B_b7XqaN.d.mts.map +1 -0
  333. package/dist/plugin-CzV-aFwU.d.cts +39 -0
  334. package/dist/plugin-CzV-aFwU.d.cts.map +1 -0
  335. package/dist/plugin-base.cjs +1 -20
  336. package/dist/plugin-base.d.cts +1 -3
  337. package/dist/plugin-base.d.cts.map +1 -1
  338. package/dist/plugin-base.d.mts +1 -5
  339. package/dist/plugin-base.d.mts.map +1 -1
  340. package/dist/plugin-base.mjs +1 -14
  341. package/dist/plugin-base.mjs.map +1 -1
  342. package/dist/plugin-fhBG7SSQ.d.cts +9 -0
  343. package/dist/plugin-fhBG7SSQ.d.cts.map +1 -0
  344. package/dist/plugin-fhBG7SSQ.d.mts +9 -0
  345. package/dist/plugin-fhBG7SSQ.d.mts.map +1 -0
  346. package/dist/plugin-utils/build-helpers.cjs +0 -16
  347. package/dist/plugin-utils/build-helpers.d.cts +1 -2
  348. package/dist/plugin-utils/build-helpers.d.cts.map +1 -1
  349. package/dist/plugin-utils/build-helpers.d.mts +1 -4
  350. package/dist/plugin-utils/build-helpers.d.mts.map +1 -1
  351. package/dist/plugin-utils/build-helpers.mjs +1 -11
  352. package/dist/plugin-utils/build-helpers.mjs.map +1 -1
  353. package/dist/plugin-utils/combine-plugins.cjs +1 -20
  354. package/dist/plugin-utils/combine-plugins.d.cts +1 -1
  355. package/dist/plugin-utils/combine-plugins.d.mts +1 -3
  356. package/dist/plugin-utils/combine-plugins.d.mts.map +1 -1
  357. package/dist/plugin-utils/combine-plugins.mjs +1 -14
  358. package/dist/plugin-utils/combine-plugins.mjs.map +1 -1
  359. package/dist/plugin-utils/context-helpers.cjs +0 -21
  360. package/dist/plugin-utils/context-helpers.d.cts +1 -1
  361. package/dist/plugin-utils/context-helpers.d.mts +1 -3
  362. package/dist/plugin-utils/context-helpers.d.mts.map +1 -1
  363. package/dist/plugin-utils/context-helpers.mjs +1 -16
  364. package/dist/plugin-utils/context-helpers.mjs.map +1 -1
  365. package/dist/plugin-utils/docs-helper.cjs +0 -16
  366. package/dist/plugin-utils/docs-helper.d.mts +0 -2
  367. package/dist/plugin-utils/docs-helper.d.mts.map +1 -1
  368. package/dist/plugin-utils/docs-helper.mjs +1 -11
  369. package/dist/plugin-utils/docs-helper.mjs.map +1 -1
  370. package/dist/plugin-utils/enable-plugin.cjs +1 -17
  371. package/dist/plugin-utils/enable-plugin.d.cts +1 -2
  372. package/dist/plugin-utils/enable-plugin.d.cts.map +1 -1
  373. package/dist/plugin-utils/enable-plugin.d.mts +1 -4
  374. package/dist/plugin-utils/enable-plugin.d.mts.map +1 -1
  375. package/dist/plugin-utils/enable-plugin.mjs +1 -11
  376. package/dist/plugin-utils/enable-plugin.mjs.map +1 -1
  377. package/dist/plugin-utils/extend.cjs +1 -17
  378. package/dist/plugin-utils/extend.d.cts +1 -3
  379. package/dist/plugin-utils/extend.d.cts.map +1 -1
  380. package/dist/plugin-utils/extend.d.mts +1 -5
  381. package/dist/plugin-utils/extend.d.mts.map +1 -1
  382. package/dist/plugin-utils/extend.mjs +1 -11
  383. package/dist/plugin-utils/extend.mjs.map +1 -1
  384. package/dist/plugin-utils/filter.cjs +2 -27
  385. package/dist/plugin-utils/filter.d.cts +1 -1
  386. package/dist/plugin-utils/filter.d.mts +1 -3
  387. package/dist/plugin-utils/filter.d.mts.map +1 -1
  388. package/dist/plugin-utils/filter.mjs +1 -21
  389. package/dist/plugin-utils/filter.mjs.map +1 -1
  390. package/dist/plugin-utils/format-package-json.cjs +1 -17
  391. package/dist/plugin-utils/format-package-json.d.cts +1 -1
  392. package/dist/plugin-utils/format-package-json.d.mts +1 -3
  393. package/dist/plugin-utils/format-package-json.d.mts.map +1 -1
  394. package/dist/plugin-utils/format-package-json.mjs +1 -11
  395. package/dist/plugin-utils/format-package-json.mjs.map +1 -1
  396. package/dist/plugin-utils/format.cjs +1 -17
  397. package/dist/plugin-utils/format.d.mts +0 -2
  398. package/dist/plugin-utils/format.d.mts.map +1 -1
  399. package/dist/plugin-utils/format.mjs +1 -11
  400. package/dist/plugin-utils/format.mjs.map +1 -1
  401. package/dist/plugin-utils/get-config-path.cjs +1 -17
  402. package/dist/plugin-utils/get-config-path.d.cts +1 -1
  403. package/dist/plugin-utils/get-config-path.d.mts +1 -3
  404. package/dist/plugin-utils/get-config-path.d.mts.map +1 -1
  405. package/dist/plugin-utils/get-config-path.mjs +1 -11
  406. package/dist/plugin-utils/get-config-path.mjs.map +1 -1
  407. package/dist/plugin-utils/helpers.cjs +0 -33
  408. package/dist/plugin-utils/helpers.d.cts +1 -5
  409. package/dist/plugin-utils/helpers.d.cts.map +1 -1
  410. package/dist/plugin-utils/helpers.d.mts +1 -7
  411. package/dist/plugin-utils/helpers.d.mts.map +1 -1
  412. package/dist/plugin-utils/helpers.mjs +1 -28
  413. package/dist/plugin-utils/helpers.mjs.map +1 -1
  414. package/dist/plugin-utils/index.cjs +0 -8
  415. package/dist/plugin-utils/index.d.mts +0 -2
  416. package/dist/plugin-utils/index.mjs +0 -8
  417. package/dist/plugin-utils/install.cjs +1 -20
  418. package/dist/plugin-utils/install.d.cts +1 -1
  419. package/dist/plugin-utils/install.d.mts +1 -3
  420. package/dist/plugin-utils/install.d.mts.map +1 -1
  421. package/dist/plugin-utils/install.mjs +1 -14
  422. package/dist/plugin-utils/install.mjs.map +1 -1
  423. package/dist/plugin-utils/logging.cjs +2 -34
  424. package/dist/plugin-utils/logging.d.cts +1 -3
  425. package/dist/plugin-utils/logging.d.cts.map +1 -1
  426. package/dist/plugin-utils/logging.d.mts +1 -5
  427. package/dist/plugin-utils/logging.d.mts.map +1 -1
  428. package/dist/plugin-utils/logging.mjs +1 -28
  429. package/dist/plugin-utils/logging.mjs.map +1 -1
  430. package/dist/plugin-utils/merge.cjs +3 -21
  431. package/dist/plugin-utils/merge.d.cts +1 -3
  432. package/dist/plugin-utils/merge.d.cts.map +1 -1
  433. package/dist/plugin-utils/merge.d.mts +1 -5
  434. package/dist/plugin-utils/merge.d.mts.map +1 -1
  435. package/dist/plugin-utils/merge.mjs +1 -14
  436. package/dist/plugin-utils/merge.mjs.map +1 -1
  437. package/dist/plugin-utils/modules.cjs +1 -17
  438. package/dist/plugin-utils/modules.d.cts +1 -1
  439. package/dist/plugin-utils/modules.d.mts +1 -3
  440. package/dist/plugin-utils/modules.d.mts.map +1 -1
  441. package/dist/plugin-utils/modules.mjs +1 -12
  442. package/dist/plugin-utils/modules.mjs.map +1 -1
  443. package/dist/plugin-utils/paths.cjs +0 -16
  444. package/dist/plugin-utils/paths.d.cts +1 -1
  445. package/dist/plugin-utils/paths.d.mts +1 -3
  446. package/dist/plugin-utils/paths.d.mts.map +1 -1
  447. package/dist/plugin-utils/paths.mjs +1 -11
  448. package/dist/plugin-utils/paths.mjs.map +1 -1
  449. package/dist/plugin-utils/virtual.cjs +1 -25
  450. package/dist/plugin-utils/virtual.d.mts +0 -2
  451. package/dist/plugin-utils/virtual.d.mts.map +1 -1
  452. package/dist/plugin-utils/virtual.mjs +1 -20
  453. package/dist/plugin-utils/virtual.mjs.map +1 -1
  454. package/dist/plugins-DfL1fBZi.d.cts +37 -0
  455. package/dist/plugins-DfL1fBZi.d.cts.map +1 -0
  456. package/dist/plugins-zG2X2LA8.d.mts +37 -0
  457. package/dist/plugins-zG2X2LA8.d.mts.map +1 -0
  458. package/dist/resolver-CdBAh8dA.d.mts +19 -0
  459. package/dist/resolver-CdBAh8dA.d.mts.map +1 -0
  460. package/dist/resolver-CfCl--Eh.d.cts +19 -0
  461. package/dist/resolver-CfCl--Eh.d.cts.map +1 -0
  462. package/dist/{schemas/fs.d.cts → schemas-Zvqwdrw_.d.cts} +2 -2
  463. package/dist/schemas-Zvqwdrw_.d.cts.map +1 -0
  464. package/dist/{schemas/fs.d.mts → schemas-Zvqwdrw_.d.mts} +2 -4
  465. package/dist/schemas-Zvqwdrw_.d.mts.map +1 -0
  466. package/dist/source-file-CLw13fKE.d.mts +30 -0
  467. package/dist/source-file-CLw13fKE.d.mts.map +1 -0
  468. package/dist/source-file-CuuHaBL5.d.cts +30 -0
  469. package/dist/source-file-CuuHaBL5.d.cts.map +1 -0
  470. package/dist/source-map-Cy0aqSpe.d.mts +16 -0
  471. package/dist/source-map-Cy0aqSpe.d.mts.map +1 -0
  472. package/dist/source-map-HU4IoICc.d.cts +16 -0
  473. package/dist/source-map-HU4IoICc.d.cts.map +1 -0
  474. package/dist/storage/base.cjs +1 -17
  475. package/dist/storage/base.d.cts +1 -2
  476. package/dist/storage/base.d.cts.map +1 -1
  477. package/dist/storage/base.d.mts +1 -4
  478. package/dist/storage/base.d.mts.map +1 -1
  479. package/dist/storage/base.mjs +1 -11
  480. package/dist/storage/base.mjs.map +1 -1
  481. package/dist/storage/file-system.cjs +1 -17
  482. package/dist/storage/file-system.d.cts +1 -1
  483. package/dist/storage/file-system.d.mts +1 -3
  484. package/dist/storage/file-system.d.mts.map +1 -1
  485. package/dist/storage/file-system.mjs +1 -11
  486. package/dist/storage/file-system.mjs.map +1 -1
  487. package/dist/storage/helpers.cjs +0 -20
  488. package/dist/storage/helpers.d.mts +0 -2
  489. package/dist/storage/helpers.d.mts.map +1 -1
  490. package/dist/storage/helpers.mjs +1 -15
  491. package/dist/storage/helpers.mjs.map +1 -1
  492. package/dist/storage/index.cjs +0 -8
  493. package/dist/storage/index.d.mts +0 -2
  494. package/dist/storage/index.mjs +0 -8
  495. package/dist/storage/virtual.cjs +1 -17
  496. package/dist/storage/virtual.d.cts +1 -1
  497. package/dist/storage/virtual.d.mts +1 -3
  498. package/dist/storage/virtual.d.mts.map +1 -1
  499. package/dist/storage/virtual.mjs +1 -11
  500. package/dist/storage/virtual.mjs.map +1 -1
  501. package/dist/streaming-channel-CiyFd_6l.d.cts +126 -0
  502. package/dist/streaming-channel-CiyFd_6l.d.cts.map +1 -0
  503. package/dist/streaming-channel-CiyFd_6l.d.mts +126 -0
  504. package/dist/streaming-channel-CiyFd_6l.d.mts.map +1 -0
  505. package/dist/ts-morph-BGgjbOgM.d.cts +38 -0
  506. package/dist/ts-morph-BGgjbOgM.d.cts.map +1 -0
  507. package/dist/ts-morph-zLvdifpA.d.mts +38 -0
  508. package/dist/ts-morph-zLvdifpA.d.mts.map +1 -0
  509. package/dist/tsconfig-DExoZEQ0.d.cts +75 -0
  510. package/dist/tsconfig-DExoZEQ0.d.cts.map +1 -0
  511. package/dist/tsconfig-De09cBeX.d.mts +75 -0
  512. package/dist/tsconfig-De09cBeX.d.mts.map +1 -0
  513. package/dist/vfs-B9Vhnajc.d.cts +320 -0
  514. package/dist/vfs-B9Vhnajc.d.cts.map +1 -0
  515. package/dist/vfs-Dl6nPqdS.d.mts +320 -0
  516. package/dist/vfs-Dl6nPqdS.d.mts.map +1 -0
  517. package/dist/write-file-BVMnXVPo.d.cts +15 -0
  518. package/dist/write-file-BVMnXVPo.d.cts.map +1 -0
  519. package/dist/write-file-CWf9Xxwd.d.mts +15 -0
  520. package/dist/write-file-CWf9Xxwd.d.mts.map +1 -0
  521. package/package.json +2 -242
  522. package/dist/_virtual/_rolldown/runtime.mjs +0 -26
  523. package/dist/constants/api.d.cts.map +0 -1
  524. package/dist/constants/api.d.mts.map +0 -1
  525. package/dist/constants/api.test.cjs +0 -42
  526. package/dist/constants/api.test.d.mts +0 -2
  527. package/dist/constants/api.test.mjs +0 -44
  528. package/dist/constants/api.test.mjs.map +0 -1
  529. package/dist/constants/commands.d.cts.map +0 -1
  530. package/dist/constants/commands.d.mts.map +0 -1
  531. package/dist/constants/commands.test.cjs +0 -29
  532. package/dist/constants/commands.test.d.mts +0 -2
  533. package/dist/constants/commands.test.mjs +0 -31
  534. package/dist/constants/commands.test.mjs.map +0 -1
  535. package/dist/constants/devtools.d.cts.map +0 -1
  536. package/dist/constants/devtools.d.mts.map +0 -1
  537. package/dist/constants/devtools.test.cjs +0 -46
  538. package/dist/constants/devtools.test.d.mts +0 -2
  539. package/dist/constants/devtools.test.mjs +0 -48
  540. package/dist/constants/devtools.test.mjs.map +0 -1
  541. package/dist/constants/environments.d.cts.map +0 -1
  542. package/dist/constants/environments.d.mts.map +0 -1
  543. package/dist/constants/environments.test.cjs +0 -34
  544. package/dist/constants/environments.test.d.mts +0 -2
  545. package/dist/constants/environments.test.mjs +0 -36
  546. package/dist/constants/environments.test.mjs.map +0 -1
  547. package/dist/constants/extensions.d.cts.map +0 -1
  548. package/dist/constants/extensions.d.mts.map +0 -1
  549. package/dist/constants/extensions.test.cjs +0 -35
  550. package/dist/constants/extensions.test.d.mts +0 -2
  551. package/dist/constants/extensions.test.mjs +0 -37
  552. package/dist/constants/extensions.test.mjs.map +0 -1
  553. package/dist/constants/fs.d.cts.map +0 -1
  554. package/dist/constants/fs.d.mts.map +0 -1
  555. package/dist/constants/fs.test.cjs +0 -34
  556. package/dist/constants/fs.test.d.mts +0 -2
  557. package/dist/constants/fs.test.mjs +0 -36
  558. package/dist/constants/fs.test.mjs.map +0 -1
  559. package/dist/constants/hooks.d.cts.map +0 -1
  560. package/dist/constants/hooks.d.mts.map +0 -1
  561. package/dist/constants/hooks.test.cjs +0 -29
  562. package/dist/constants/hooks.test.d.mts +0 -2
  563. package/dist/constants/hooks.test.mjs +0 -31
  564. package/dist/constants/hooks.test.mjs.map +0 -1
  565. package/dist/constants/log-level.d.cts.map +0 -1
  566. package/dist/constants/log-level.d.mts.map +0 -1
  567. package/dist/constants/log-level.test.cjs +0 -76
  568. package/dist/constants/log-level.test.d.mts +0 -2
  569. package/dist/constants/log-level.test.mjs +0 -78
  570. package/dist/constants/log-level.test.mjs.map +0 -1
  571. package/dist/constants/meta.d.cts.map +0 -1
  572. package/dist/constants/meta.d.mts.map +0 -1
  573. package/dist/constants/meta.test.cjs +0 -33
  574. package/dist/constants/meta.test.d.mts +0 -2
  575. package/dist/constants/meta.test.mjs +0 -35
  576. package/dist/constants/meta.test.mjs.map +0 -1
  577. package/dist/constants/plugin.d.cts.map +0 -1
  578. package/dist/constants/plugin.d.mts.map +0 -1
  579. package/dist/constants/plugin.test.cjs +0 -59
  580. package/dist/constants/plugin.test.d.mts +0 -2
  581. package/dist/constants/plugin.test.mjs +0 -61
  582. package/dist/constants/plugin.test.mjs.map +0 -1
  583. package/dist/context/base-context.d.cts.map +0 -1
  584. package/dist/context/base-context.d.mts.map +0 -1
  585. package/dist/context/base-context.test.cjs +0 -23
  586. package/dist/context/base-context.test.d.cts +0 -1
  587. package/dist/context/base-context.test.d.mts +0 -2
  588. package/dist/context/base-context.test.mjs +0 -25
  589. package/dist/context/base-context.test.mjs.map +0 -1
  590. package/dist/context/context.d.cts.map +0 -1
  591. package/dist/context/context.d.mts.map +0 -1
  592. package/dist/context/context.test.cjs +0 -23
  593. package/dist/context/context.test.d.cts +0 -1
  594. package/dist/context/context.test.d.mts +0 -2
  595. package/dist/context/context.test.mjs +0 -25
  596. package/dist/context/context.test.mjs.map +0 -1
  597. package/dist/context/environment-context.test.cjs +0 -23
  598. package/dist/context/environment-context.test.d.cts +0 -1
  599. package/dist/context/environment-context.test.d.mts +0 -2
  600. package/dist/context/environment-context.test.mjs +0 -25
  601. package/dist/context/environment-context.test.mjs.map +0 -1
  602. package/dist/context/execution-context.test.cjs +0 -23
  603. package/dist/context/execution-context.test.d.cts +0 -1
  604. package/dist/context/execution-context.test.d.mts +0 -2
  605. package/dist/context/execution-context.test.mjs +0 -25
  606. package/dist/context/execution-context.test.mjs.map +0 -1
  607. package/dist/context/plugin-context.test.cjs +0 -23
  608. package/dist/context/plugin-context.test.d.cts +0 -1
  609. package/dist/context/plugin-context.test.d.mts +0 -2
  610. package/dist/context/plugin-context.test.mjs +0 -25
  611. package/dist/context/plugin-context.test.mjs.map +0 -1
  612. package/dist/lib/config.d.cts.map +0 -1
  613. package/dist/lib/config.d.mts.map +0 -1
  614. package/dist/lib/config.test.cjs +0 -23
  615. package/dist/lib/config.test.d.cts +0 -1
  616. package/dist/lib/config.test.d.mts +0 -2
  617. package/dist/lib/config.test.mjs +0 -25
  618. package/dist/lib/config.test.mjs.map +0 -1
  619. package/dist/lib/context-helpers.d.cts.map +0 -1
  620. package/dist/lib/context-helpers.d.mts.map +0 -1
  621. package/dist/lib/context-helpers.test.cjs +0 -23
  622. package/dist/lib/context-helpers.test.d.cts +0 -1
  623. package/dist/lib/context-helpers.test.d.mts +0 -2
  624. package/dist/lib/context-helpers.test.mjs +0 -25
  625. package/dist/lib/context-helpers.test.mjs.map +0 -1
  626. package/dist/lib/entry.d.cts.map +0 -1
  627. package/dist/lib/entry.d.mts.map +0 -1
  628. package/dist/lib/entry.test.cjs +0 -23
  629. package/dist/lib/entry.test.d.cts +0 -1
  630. package/dist/lib/entry.test.d.mts +0 -2
  631. package/dist/lib/entry.test.mjs +0 -25
  632. package/dist/lib/entry.test.mjs.map +0 -1
  633. package/dist/lib/environment.test.cjs +0 -23
  634. package/dist/lib/environment.test.d.cts +0 -1
  635. package/dist/lib/environment.test.d.mts +0 -2
  636. package/dist/lib/environment.test.mjs +0 -25
  637. package/dist/lib/environment.test.mjs.map +0 -1
  638. package/dist/lib/events.d.cts.map +0 -1
  639. package/dist/lib/events.d.mts.map +0 -1
  640. package/dist/lib/events.test.cjs +0 -23
  641. package/dist/lib/events.test.d.cts +0 -1
  642. package/dist/lib/events.test.d.mts +0 -2
  643. package/dist/lib/events.test.mjs +0 -25
  644. package/dist/lib/events.test.mjs.map +0 -1
  645. package/dist/lib/generate-types.d.cts.map +0 -1
  646. package/dist/lib/generate-types.d.mts.map +0 -1
  647. package/dist/lib/generate-types.test.cjs +0 -23
  648. package/dist/lib/generate-types.test.d.cts +0 -1
  649. package/dist/lib/generate-types.test.d.mts +0 -2
  650. package/dist/lib/generate-types.test.mjs +0 -25
  651. package/dist/lib/generate-types.test.mjs.map +0 -1
  652. package/dist/lib/hooks.d.cts.map +0 -1
  653. package/dist/lib/hooks.d.mts.map +0 -1
  654. package/dist/lib/hooks.test.cjs +0 -23
  655. package/dist/lib/hooks.test.d.cts +0 -1
  656. package/dist/lib/hooks.test.d.mts +0 -2
  657. package/dist/lib/hooks.test.mjs +0 -25
  658. package/dist/lib/hooks.test.mjs.map +0 -1
  659. package/dist/lib/install-dependencies.d.cts.map +0 -1
  660. package/dist/lib/install-dependencies.d.mts.map +0 -1
  661. package/dist/lib/install-dependencies.test.cjs +0 -23
  662. package/dist/lib/install-dependencies.test.d.cts +0 -1
  663. package/dist/lib/install-dependencies.test.d.mts +0 -2
  664. package/dist/lib/install-dependencies.test.mjs +0 -25
  665. package/dist/lib/install-dependencies.test.mjs.map +0 -1
  666. package/dist/lib/meta.d.cts.map +0 -1
  667. package/dist/lib/meta.d.mts.map +0 -1
  668. package/dist/lib/meta.test.cjs +0 -35
  669. package/dist/lib/meta.test.d.cts +0 -1
  670. package/dist/lib/meta.test.d.mts +0 -2
  671. package/dist/lib/meta.test.mjs +0 -37
  672. package/dist/lib/meta.test.mjs.map +0 -1
  673. package/dist/lib/plugins.d.cts.map +0 -1
  674. package/dist/lib/plugins.d.mts.map +0 -1
  675. package/dist/lib/plugins.test.cjs +0 -23
  676. package/dist/lib/plugins.test.d.cts +0 -1
  677. package/dist/lib/plugins.test.d.mts +0 -2
  678. package/dist/lib/plugins.test.mjs +0 -25
  679. package/dist/lib/plugins.test.mjs.map +0 -1
  680. package/dist/lib/resolver.d.cts.map +0 -1
  681. package/dist/lib/resolver.d.mts.map +0 -1
  682. package/dist/lib/resolver.test.cjs +0 -23
  683. package/dist/lib/resolver.test.d.cts +0 -1
  684. package/dist/lib/resolver.test.d.mts +0 -2
  685. package/dist/lib/resolver.test.mjs +0 -25
  686. package/dist/lib/resolver.test.mjs.map +0 -1
  687. package/dist/lib/streaming-channel.d.cts.map +0 -1
  688. package/dist/lib/streaming-channel.d.mts.map +0 -1
  689. package/dist/lib/streaming-channel.test.cjs +0 -23
  690. package/dist/lib/streaming-channel.test.d.cts +0 -1
  691. package/dist/lib/streaming-channel.test.d.mts +0 -2
  692. package/dist/lib/streaming-channel.test.mjs +0 -25
  693. package/dist/lib/streaming-channel.test.mjs.map +0 -1
  694. package/dist/lib/typescript/ts-morph.d.cts.map +0 -1
  695. package/dist/lib/typescript/ts-morph.d.mts.map +0 -1
  696. package/dist/lib/typescript/ts-morph.test.cjs +0 -23
  697. package/dist/lib/typescript/ts-morph.test.d.cts +0 -1
  698. package/dist/lib/typescript/ts-morph.test.d.mts +0 -2
  699. package/dist/lib/typescript/ts-morph.test.mjs +0 -25
  700. package/dist/lib/typescript/ts-morph.test.mjs.map +0 -1
  701. package/dist/lib/typescript/tsconfig.d.cts.map +0 -1
  702. package/dist/lib/typescript/tsconfig.d.mts.map +0 -1
  703. package/dist/lib/typescript/tsconfig.test.cjs +0 -23
  704. package/dist/lib/typescript/tsconfig.test.d.cts +0 -1
  705. package/dist/lib/typescript/tsconfig.test.d.mts +0 -2
  706. package/dist/lib/typescript/tsconfig.test.mjs +0 -25
  707. package/dist/lib/typescript/tsconfig.test.mjs.map +0 -1
  708. package/dist/lib/unplugin/helpers.d.cts.map +0 -1
  709. package/dist/lib/unplugin/helpers.d.mts.map +0 -1
  710. package/dist/lib/unplugin/helpers.test.cjs +0 -23
  711. package/dist/lib/unplugin/helpers.test.d.cts +0 -1
  712. package/dist/lib/unplugin/helpers.test.d.mts +0 -2
  713. package/dist/lib/unplugin/helpers.test.mjs +0 -25
  714. package/dist/lib/unplugin/helpers.test.mjs.map +0 -1
  715. package/dist/lib/unplugin/module-resolution.d.cts.map +0 -1
  716. package/dist/lib/unplugin/module-resolution.d.mts.map +0 -1
  717. package/dist/lib/unplugin/module-resolution.test.cjs +0 -23
  718. package/dist/lib/unplugin/module-resolution.test.d.cts +0 -1
  719. package/dist/lib/unplugin/module-resolution.test.d.mts +0 -2
  720. package/dist/lib/unplugin/module-resolution.test.mjs +0 -25
  721. package/dist/lib/unplugin/module-resolution.test.mjs.map +0 -1
  722. package/dist/lib/unplugin/plugin.d.cts.map +0 -1
  723. package/dist/lib/unplugin/plugin.d.mts.map +0 -1
  724. package/dist/lib/unplugin/plugin.test.cjs +0 -23
  725. package/dist/lib/unplugin/plugin.test.d.cts +0 -1
  726. package/dist/lib/unplugin/plugin.test.d.mts +0 -2
  727. package/dist/lib/unplugin/plugin.test.mjs +0 -25
  728. package/dist/lib/unplugin/plugin.test.mjs.map +0 -1
  729. package/dist/lib/utilities/file-header.d.cts.map +0 -1
  730. package/dist/lib/utilities/file-header.d.mts.map +0 -1
  731. package/dist/lib/utilities/file-header.test.cjs +0 -23
  732. package/dist/lib/utilities/file-header.test.d.cts +0 -1
  733. package/dist/lib/utilities/file-header.test.d.mts +0 -2
  734. package/dist/lib/utilities/file-header.test.mjs +0 -25
  735. package/dist/lib/utilities/file-header.test.mjs.map +0 -1
  736. package/dist/lib/utilities/format.d.cts.map +0 -1
  737. package/dist/lib/utilities/format.d.mts.map +0 -1
  738. package/dist/lib/utilities/format.test.cjs +0 -23
  739. package/dist/lib/utilities/format.test.d.cts +0 -1
  740. package/dist/lib/utilities/format.test.d.mts +0 -2
  741. package/dist/lib/utilities/format.test.mjs +0 -25
  742. package/dist/lib/utilities/format.test.mjs.map +0 -1
  743. package/dist/lib/utilities/source-file.d.cts.map +0 -1
  744. package/dist/lib/utilities/source-file.d.mts.map +0 -1
  745. package/dist/lib/utilities/source-file.test.cjs +0 -23
  746. package/dist/lib/utilities/source-file.test.d.cts +0 -1
  747. package/dist/lib/utilities/source-file.test.d.mts +0 -2
  748. package/dist/lib/utilities/source-file.test.mjs +0 -25
  749. package/dist/lib/utilities/source-file.test.mjs.map +0 -1
  750. package/dist/lib/utilities/source-map.d.cts.map +0 -1
  751. package/dist/lib/utilities/source-map.d.mts.map +0 -1
  752. package/dist/lib/utilities/source-map.test.cjs +0 -23
  753. package/dist/lib/utilities/source-map.test.d.cts +0 -1
  754. package/dist/lib/utilities/source-map.test.d.mts +0 -2
  755. package/dist/lib/utilities/source-map.test.mjs +0 -25
  756. package/dist/lib/utilities/source-map.test.mjs.map +0 -1
  757. package/dist/lib/utilities/write-file.d.cts.map +0 -1
  758. package/dist/lib/utilities/write-file.d.mts.map +0 -1
  759. package/dist/lib/utilities/write-file.test.cjs +0 -23
  760. package/dist/lib/utilities/write-file.test.d.cts +0 -1
  761. package/dist/lib/utilities/write-file.test.d.mts +0 -2
  762. package/dist/lib/utilities/write-file.test.mjs +0 -25
  763. package/dist/lib/utilities/write-file.test.mjs.map +0 -1
  764. package/dist/lib/vfs.d.cts.map +0 -1
  765. package/dist/lib/vfs.d.mts.map +0 -1
  766. package/dist/lib/vfs.test.cjs +0 -23
  767. package/dist/lib/vfs.test.d.cts +0 -1
  768. package/dist/lib/vfs.test.d.mts +0 -2
  769. package/dist/lib/vfs.test.mjs +0 -25
  770. package/dist/lib/vfs.test.mjs.map +0 -1
  771. package/dist/plugin-base.test.cjs +0 -23
  772. package/dist/plugin-base.test.d.cts +0 -1
  773. package/dist/plugin-base.test.d.mts +0 -2
  774. package/dist/plugin-base.test.mjs +0 -25
  775. package/dist/plugin-base.test.mjs.map +0 -1
  776. package/dist/plugin-utils/build-helpers.test.cjs +0 -23
  777. package/dist/plugin-utils/build-helpers.test.d.cts +0 -1
  778. package/dist/plugin-utils/build-helpers.test.d.mts +0 -2
  779. package/dist/plugin-utils/build-helpers.test.mjs +0 -25
  780. package/dist/plugin-utils/build-helpers.test.mjs.map +0 -1
  781. package/dist/plugin-utils/combine-plugins.test.cjs +0 -23
  782. package/dist/plugin-utils/combine-plugins.test.d.cts +0 -1
  783. package/dist/plugin-utils/combine-plugins.test.d.mts +0 -2
  784. package/dist/plugin-utils/combine-plugins.test.mjs +0 -25
  785. package/dist/plugin-utils/combine-plugins.test.mjs.map +0 -1
  786. package/dist/plugin-utils/context-helpers.test.cjs +0 -23
  787. package/dist/plugin-utils/context-helpers.test.d.cts +0 -1
  788. package/dist/plugin-utils/context-helpers.test.d.mts +0 -2
  789. package/dist/plugin-utils/context-helpers.test.mjs +0 -25
  790. package/dist/plugin-utils/context-helpers.test.mjs.map +0 -1
  791. package/dist/plugin-utils/docs-helper.test.cjs +0 -23
  792. package/dist/plugin-utils/docs-helper.test.d.cts +0 -1
  793. package/dist/plugin-utils/docs-helper.test.d.mts +0 -2
  794. package/dist/plugin-utils/docs-helper.test.mjs +0 -25
  795. package/dist/plugin-utils/docs-helper.test.mjs.map +0 -1
  796. package/dist/plugin-utils/enable-plugin.test.cjs +0 -23
  797. package/dist/plugin-utils/enable-plugin.test.d.cts +0 -1
  798. package/dist/plugin-utils/enable-plugin.test.d.mts +0 -2
  799. package/dist/plugin-utils/enable-plugin.test.mjs +0 -25
  800. package/dist/plugin-utils/enable-plugin.test.mjs.map +0 -1
  801. package/dist/plugin-utils/extend.test.cjs +0 -23
  802. package/dist/plugin-utils/extend.test.d.cts +0 -1
  803. package/dist/plugin-utils/extend.test.d.mts +0 -2
  804. package/dist/plugin-utils/extend.test.mjs +0 -25
  805. package/dist/plugin-utils/extend.test.mjs.map +0 -1
  806. package/dist/plugin-utils/filter.test.cjs +0 -23
  807. package/dist/plugin-utils/filter.test.d.cts +0 -1
  808. package/dist/plugin-utils/filter.test.d.mts +0 -2
  809. package/dist/plugin-utils/filter.test.mjs +0 -25
  810. package/dist/plugin-utils/filter.test.mjs.map +0 -1
  811. package/dist/plugin-utils/format-package-json.test.cjs +0 -23
  812. package/dist/plugin-utils/format-package-json.test.d.cts +0 -1
  813. package/dist/plugin-utils/format-package-json.test.d.mts +0 -2
  814. package/dist/plugin-utils/format-package-json.test.mjs +0 -25
  815. package/dist/plugin-utils/format-package-json.test.mjs.map +0 -1
  816. package/dist/plugin-utils/format.test.cjs +0 -23
  817. package/dist/plugin-utils/format.test.d.cts +0 -1
  818. package/dist/plugin-utils/format.test.d.mts +0 -2
  819. package/dist/plugin-utils/format.test.mjs +0 -25
  820. package/dist/plugin-utils/format.test.mjs.map +0 -1
  821. package/dist/plugin-utils/get-config-path.test.cjs +0 -23
  822. package/dist/plugin-utils/get-config-path.test.d.cts +0 -1
  823. package/dist/plugin-utils/get-config-path.test.d.mts +0 -2
  824. package/dist/plugin-utils/get-config-path.test.mjs +0 -25
  825. package/dist/plugin-utils/get-config-path.test.mjs.map +0 -1
  826. package/dist/plugin-utils/helpers.test.cjs +0 -23
  827. package/dist/plugin-utils/helpers.test.d.cts +0 -1
  828. package/dist/plugin-utils/helpers.test.d.mts +0 -2
  829. package/dist/plugin-utils/helpers.test.mjs +0 -25
  830. package/dist/plugin-utils/helpers.test.mjs.map +0 -1
  831. package/dist/plugin-utils/install.test.cjs +0 -23
  832. package/dist/plugin-utils/install.test.d.cts +0 -1
  833. package/dist/plugin-utils/install.test.d.mts +0 -2
  834. package/dist/plugin-utils/install.test.mjs +0 -25
  835. package/dist/plugin-utils/install.test.mjs.map +0 -1
  836. package/dist/plugin-utils/logging.test.cjs +0 -23
  837. package/dist/plugin-utils/logging.test.d.cts +0 -1
  838. package/dist/plugin-utils/logging.test.d.mts +0 -2
  839. package/dist/plugin-utils/logging.test.mjs +0 -25
  840. package/dist/plugin-utils/logging.test.mjs.map +0 -1
  841. package/dist/plugin-utils/merge.test.cjs +0 -23
  842. package/dist/plugin-utils/merge.test.d.cts +0 -1
  843. package/dist/plugin-utils/merge.test.d.mts +0 -2
  844. package/dist/plugin-utils/merge.test.mjs +0 -25
  845. package/dist/plugin-utils/merge.test.mjs.map +0 -1
  846. package/dist/plugin-utils/modules.test.cjs +0 -23
  847. package/dist/plugin-utils/modules.test.d.cts +0 -1
  848. package/dist/plugin-utils/modules.test.d.mts +0 -2
  849. package/dist/plugin-utils/modules.test.mjs +0 -25
  850. package/dist/plugin-utils/modules.test.mjs.map +0 -1
  851. package/dist/plugin-utils/paths.test.cjs +0 -23
  852. package/dist/plugin-utils/paths.test.d.cts +0 -1
  853. package/dist/plugin-utils/paths.test.d.mts +0 -2
  854. package/dist/plugin-utils/paths.test.mjs +0 -25
  855. package/dist/plugin-utils/paths.test.mjs.map +0 -1
  856. package/dist/plugin-utils/virtual.test.cjs +0 -23
  857. package/dist/plugin-utils/virtual.test.d.cts +0 -1
  858. package/dist/plugin-utils/virtual.test.d.mts +0 -2
  859. package/dist/plugin-utils/virtual.test.mjs +0 -25
  860. package/dist/plugin-utils/virtual.test.mjs.map +0 -1
  861. package/dist/schemas/fs.d.cts.map +0 -1
  862. package/dist/schemas/fs.d.mts.map +0 -1
  863. package/dist/schemas/fs.mjs.map +0 -1
  864. package/dist/storage/base.test.cjs +0 -23
  865. package/dist/storage/base.test.d.cts +0 -1
  866. package/dist/storage/base.test.d.mts +0 -2
  867. package/dist/storage/base.test.mjs +0 -25
  868. package/dist/storage/base.test.mjs.map +0 -1
  869. package/dist/storage/file-system.test.cjs +0 -23
  870. package/dist/storage/file-system.test.d.cts +0 -1
  871. package/dist/storage/file-system.test.d.mts +0 -2
  872. package/dist/storage/file-system.test.mjs +0 -25
  873. package/dist/storage/file-system.test.mjs.map +0 -1
  874. package/dist/storage/helpers.test.cjs +0 -23
  875. package/dist/storage/helpers.test.d.cts +0 -1
  876. package/dist/storage/helpers.test.d.mts +0 -2
  877. package/dist/storage/helpers.test.mjs +0 -25
  878. package/dist/storage/helpers.test.mjs.map +0 -1
  879. package/dist/storage/virtual.test.cjs +0 -23
  880. package/dist/storage/virtual.test.d.cts +0 -1
  881. package/dist/storage/virtual.test.d.mts +0 -2
  882. package/dist/storage/virtual.test.mjs +0 -25
  883. package/dist/storage/virtual.test.mjs.map +0 -1
  884. package/dist/types/api.d.cts +0 -16
  885. package/dist/types/api.d.cts.map +0 -1
  886. package/dist/types/api.d.mts +0 -18
  887. package/dist/types/api.d.mts.map +0 -1
  888. package/dist/types/config.d.cts +0 -739
  889. package/dist/types/config.d.cts.map +0 -1
  890. package/dist/types/config.d.mts +0 -741
  891. package/dist/types/config.d.mts.map +0 -1
  892. package/dist/types/context.d.cts +0 -682
  893. package/dist/types/context.d.cts.map +0 -1
  894. package/dist/types/context.d.mts +0 -684
  895. package/dist/types/context.d.mts.map +0 -1
  896. package/dist/types/fs.d.cts +0 -538
  897. package/dist/types/fs.d.cts.map +0 -1
  898. package/dist/types/fs.d.mts +0 -540
  899. package/dist/types/fs.d.mts.map +0 -1
  900. package/dist/types/hooks.d.cts +0 -96
  901. package/dist/types/hooks.d.cts.map +0 -1
  902. package/dist/types/hooks.d.mts +0 -98
  903. package/dist/types/hooks.d.mts.map +0 -1
  904. package/dist/types/index.d.cts +0 -9
  905. package/dist/types/index.d.mts +0 -11
  906. package/dist/types/logging.d.cts +0 -145
  907. package/dist/types/logging.d.cts.map +0 -1
  908. package/dist/types/logging.d.mts +0 -147
  909. package/dist/types/logging.d.mts.map +0 -1
  910. package/dist/types/plugin.d.cts +0 -207
  911. package/dist/types/plugin.d.cts.map +0 -1
  912. package/dist/types/plugin.d.mts +0 -209
  913. package/dist/types/plugin.d.mts.map +0 -1
  914. package/dist/types/tsconfig.d.cts +0 -73
  915. package/dist/types/tsconfig.d.cts.map +0 -1
  916. package/dist/types/tsconfig.d.mts +0 -75
  917. package/dist/types/tsconfig.d.mts.map +0 -1
  918. package/dist/types/unplugin.d.cts +0 -22
  919. package/dist/types/unplugin.d.cts.map +0 -1
  920. package/dist/types/unplugin.d.mts +0 -24
  921. package/dist/types/unplugin.d.mts.map +0 -1
  922. /package/dist/{constants/api.test.d.cts → index-BKZ67WMa.d.cts} +0 -0
  923. /package/dist/{constants/commands.test.d.cts → index-BKZ67WMa.d.mts} +0 -0
  924. /package/dist/{constants/devtools.test.d.cts → index-BVVgDSdq.d.cts} +0 -0
  925. /package/dist/{constants/environments.test.d.cts → index-BVVgDSdq.d.mts} +0 -0
  926. /package/dist/{constants/extensions.test.d.cts → index-Den-MsLx.d.cts} +0 -0
  927. /package/dist/{constants/fs.test.d.cts → index-Den-MsLx.d.mts} +0 -0
  928. /package/dist/{constants/hooks.test.d.cts → index-DmtQKWjk.d.cts} +0 -0
  929. /package/dist/{constants/log-level.test.d.cts → index-DmtQKWjk.d.mts} +0 -0
  930. /package/dist/{constants/meta.test.d.cts → index-_6s0AX1B.d.cts} +0 -0
  931. /package/dist/{constants/plugin.test.d.cts → index-_6s0AX1B.d.mts} +0 -0
@@ -1,12 +1,3 @@
1
-
2
-
3
- import __tsdown_shims_path from 'node:path'
4
- import __tsdown_shims_url from 'node:url'
5
-
6
- const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
- const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
-
9
- import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
10
1
  import { format } from "./utilities/format.mjs";
11
2
  import { callHook } from "./hooks.mjs";
12
3
  import { createProgram } from "./typescript/ts-morph.mjs";
@@ -26,11 +17,6 @@ import { prettyBytes } from "@stryke/string-format/pretty-bytes";
26
17
  import { DiagnosticCategory, Node, Project } from "ts-morph";
27
18
 
28
19
  //#region src/lib/generate-types.ts
29
- var generate_types_exports = /* @__PURE__ */ __exportAll({
30
- emitBuiltinTypes: () => emitBuiltinTypes,
31
- formatTypes: () => formatTypes,
32
- handleTypes: () => handleTypes
33
- });
34
20
  /**
35
21
  * Formats the generated TypeScript types source code.
36
22
  *
@@ -378,5 +364,5 @@ ${formatTypes(code)}
378
364
  }
379
365
 
380
366
  //#endregion
381
- export { emitBuiltinTypes, formatTypes, generate_types_exports, handleTypes };
367
+ export { emitBuiltinTypes, formatTypes, handleTypes };
382
368
  //# sourceMappingURL=generate-types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.mjs","names":[],"sources":["../../src/lib/generate-types.ts"],"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 { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { prettyBytes } from \"@stryke/string-format/pretty-bytes\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { DiagnosticCategory, Node, Project, SourceFile } from \"ts-morph\";\nimport { ResolvedConfig } from \"../types/config\";\nimport {\n Context,\n EnvironmentContext,\n ExecutionContext\n} from \"../types/context\";\nimport { TypesResult } from \"../types/plugin\";\nimport { callHook } from \"./hooks\";\nimport { createProgram } from \"./typescript/ts-morph\";\nimport { getTypescriptFileHeader } from \"./utilities/file-header\";\nimport { format } from \"./utilities/format\";\n\ninterface ModuleExportSpecifier {\n name: string;\n alias?: string;\n default?: boolean;\n type?: boolean;\n}\n\ninterface ModuleReference {\n name?: string;\n specifiers?: ModuleExportSpecifier[];\n all?: boolean;\n}\n\ninterface ImportModuleReference extends ModuleReference {\n name: string;\n ambient?: boolean;\n}\n\ninterface ExportModuleReference extends ModuleReference {\n text: string;\n fullText: string;\n comment?: string;\n}\n\ninterface ModuleDeclaration {\n name: string;\n text: string;\n sourceFile: SourceFile;\n comment?: string;\n exports: (ExportModuleReference | string)[];\n imports: ImportModuleReference[];\n}\n\nexport interface TypegenContext {\n context: Context;\n emitted: Map<string, string>;\n modules: ModuleDeclaration[];\n}\n\n/**\n * Formats the generated TypeScript types source code.\n *\n * @param code - The generated TypeScript code.\n * @returns The formatted TypeScript code.\n */\nexport function formatTypes(code = \"\"): string {\n return code.replaceAll(\"#private;\", \"\").replace(/__Ω/g, \"\");\n}\n\nasync function extractModuleDeclarations(\n ctx: TypegenContext,\n filePath: string,\n name: string,\n text: string\n): Promise<ModuleDeclaration> {\n const imports: ImportModuleReference[] = [];\n const exports: (ExportModuleReference | string)[] = [];\n\n const comment = text\n .match(\n new RegExp(\n `\\\\/\\\\*\\\\*(?s:.)*?@module\\\\s+${\n ctx.context.config.framework?.name ?? \"powerlines\"\n }:${name}(?s:.)*?\\\\*\\\\/\\\\s+`\n )\n )\n ?.find(comment => isSetString(comment?.trim()));\n\n // Parse the emitted .d.ts content using an in-memory ts-morph project\n const project = new Project({ useInMemoryFileSystem: true });\n const sourceFile = project.createSourceFile(\"module.d.ts\", text);\n\n // Collect /// <reference types=\"...\" /> directives as ambient dependencies\n for (const ref of sourceFile.getTypeReferenceDirectives()) {\n if (\n ref.getFileName() &&\n !ctx.context.builtins.some(builtin => ref.getFileName().endsWith(builtin))\n ) {\n imports.push({\n name: ref.getFileName(),\n ambient: true\n });\n }\n }\n\n for (const statement of sourceFile.getStatements()) {\n // --- Import declarations ---\n if (Node.isImportDeclaration(statement)) {\n const moduleSpec = statement.getModuleSpecifierValue();\n\n // Namespace import: import * as X from '...'\n if (statement.getNamespaceImport()) {\n imports.push({\n name: moduleSpec,\n specifiers: [\n {\n name: statement.getNamespaceImport()!.getText()\n }\n ],\n all: true\n });\n }\n\n // Named imports: import X from '...' or import { A, B as C } from '...'\n else if (\n statement.getNamedImports().length > 0 ||\n statement.getDefaultImport()\n ) {\n const specifiers: ModuleExportSpecifier[] = [];\n if (statement.getDefaultImport()) {\n specifiers.push({\n name: statement.getDefaultImport()!.getText(),\n default: true,\n type: statement.isTypeOnly()\n });\n }\n\n statement.getNamedImports().forEach(named => {\n specifiers.push({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n });\n });\n\n imports.push({\n name: moduleSpec,\n specifiers\n });\n }\n }\n\n // --- Export declarations ---\n else if (Node.isExportDeclaration(statement)) {\n const moduleSpec = statement.getModuleSpecifierValue();\n if (moduleSpec) {\n // Resolve the module specifier\n let resolvedSpec = moduleSpec;\n if (!ctx.context.builtins.includes(moduleSpec)) {\n if (ctx.emitted.has(moduleSpec)) {\n resolvedSpec = ctx.emitted.get(moduleSpec)!;\n } else {\n const resolvedModule = await ctx.context.resolve(\n moduleSpec,\n filePath\n );\n if (isSetString(resolvedModule?.id)) {\n resolvedSpec = resolvedModule.id;\n }\n }\n }\n\n // Re-export from another module\n const namedExports = statement.getNamedExports();\n if (namedExports.length > 0) {\n exports.push({\n name: resolvedSpec,\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: namedExports.map(named => ({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n })),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n .trim()\n });\n } else {\n // export * from '...'\n exports.push({\n name: resolvedSpec,\n text: statement.getText(),\n fullText: statement.getFullText(),\n all: true,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n .trim()\n });\n }\n } else {\n const specifiers = statement.getNamedExports().map(named => ({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n }));\n if (specifiers.length > 0) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n }\n }\n\n // --- Export assignments (export default ...) ---\n else if (Node.isExportAssignment(statement)) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Function declarations (export declare function ...) ---\n else if (\n Node.isFunctionDeclaration(statement) &&\n statement.isExported() &&\n statement.getNameNode()\n ) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: [\n {\n name: statement.getNameNode()!.getText()\n }\n ],\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Variable statements (export declare const ...) ---\n else if (Node.isVariableStatement(statement) && statement.isExported()) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: statement\n .getDeclarationList()\n .getDeclarations()\n .filter(\n decl => decl.getNameNode() && Node.isIdentifier(decl.getNameNode())\n )\n .map(decl => ({ name: decl.getNameNode().getText() })),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Class declarations (export declare class ...) ---\n else if (Node.isClassDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Interface declarations (export declare interface ...) ---\n else if (Node.isInterfaceDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Type alias declarations (export declare type ...) ---\n else if (Node.isTypeAliasDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- All other statements (declarations) ---\n else if (\n ctx.context.config.output.sourceMap ||\n !statement.getFullText().includes(\"//# sourceMappingURL=\")\n ) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n }\n\n return {\n name,\n text,\n sourceFile,\n comment,\n imports,\n exports\n };\n}\n\n/**\n * Emits TypeScript declaration types for the provided files using the given TypeScript configuration.\n *\n * @param context - The context containing options and environment paths.\n * @param files - The list of files to generate types for.\n * @returns A promise that resolves to the generated TypeScript declaration types.\n */\nexport async function emitBuiltinTypes<TContext extends Context>(\n context: TContext,\n files: string[]\n): Promise<{ code: string; directives: string[] }> {\n if (files.length === 0) {\n context.debug(\n \"No files provided for TypeScript types generation. Typescript compilation for built-in modules will be skipped.\"\n );\n return { code: \"\", directives: [] };\n }\n\n context.debug(\n `Running the TypeScript compiler for ${\n files.length\n } generated built-in module files.`\n );\n\n const program = createProgram(context, {\n skipAddingFilesFromTsConfig: true,\n compilerOptions: {\n declaration: true,\n declarationMap: false,\n emitDeclarationOnly: true,\n sourceMap: false,\n outDir: replacePath(context.builtinsPath, context.config.cwd),\n composite: false,\n incremental: false,\n tsBuildInfoFile: undefined\n }\n });\n\n program.addSourceFilesAtPaths(files);\n const emitResult = program.emitToMemory({ emitOnlyDtsFiles: true });\n\n const diagnostics = emitResult.getDiagnostics();\n if (diagnostics && diagnostics.length > 0) {\n if (diagnostics.some(d => d.getCategory() === DiagnosticCategory.Error)) {\n throw new Error(\n `The Typescript emit process failed while generating built-in types: \\n ${diagnostics\n .filter(d => d.getCategory() === DiagnosticCategory.Error)\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n } else if (\n diagnostics.some(d => d.getCategory() === DiagnosticCategory.Warning)\n ) {\n context.warn(\n `The Typescript emit process completed with warnings while generating built-in types: \\n ${diagnostics\n .filter(d => d.getCategory() === DiagnosticCategory.Warning)\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n } else {\n context.debug(\n `The Typescript emit process completed with diagnostic messages while generating built-in types: \\n ${diagnostics\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n }\n }\n\n const emittedFiles = emitResult.getFiles();\n context.debug(\n `The TypeScript compiler emitted ${\n emittedFiles.length\n } files for built-in types.`\n );\n\n if (emittedFiles.length === 0) {\n context.warn(\n \"The TypeScript compiler did not emit any files for built-in types. This may indicate an issue with the TypeScript configuration or the provided files.\"\n );\n return { code: \"\", directives: [] };\n }\n\n const ctx = {\n context,\n modules: [] as ModuleDeclaration[],\n emitted: new Map<string, string>()\n };\n\n await Promise.all(\n emittedFiles.map(async emittedFile => {\n const filePath = appendPath(emittedFile.filePath, context.config.cwd);\n if (\n !filePath.endsWith(\".map\") &&\n findFileName(filePath) !== \"tsconfig.tsbuildinfo\" &&\n isParentPath(filePath, context.builtinsPath)\n ) {\n const moduleName = replaceExtension(\n replacePath(\n replacePath(filePath, context.builtinsPath),\n replacePath(context.builtinsPath, context.config.cwd)\n ),\n \"\",\n {\n fullExtension: true\n }\n );\n if (context.builtins.includes(moduleName)) {\n ctx.emitted.set(filePath, moduleName);\n ctx.modules.push(\n await extractModuleDeclarations(\n ctx,\n filePath,\n moduleName,\n emittedFile.text\n )\n );\n }\n }\n })\n );\n\n const commonDeclarations = [] as ExportModuleReference[];\n for (const mod of ctx.modules) {\n for (const importRef of mod.imports.filter(importRef =>\n context.builtins.some(builtin => importRef.name.endsWith(`:${builtin}`))\n )) {\n const moduleRef = ctx.modules.find(moduleRef =>\n importRef.name.endsWith(`:${moduleRef.name}`)\n );\n if (moduleRef) {\n let declaration: ExportModuleReference | undefined;\n for (const decl of moduleRef.exports.filter(decl =>\n isSetObject(decl)\n )) {\n const specifiers = decl.specifiers?.filter(specifier =>\n importRef.specifiers?.some(\n s =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n );\n if (specifiers && specifiers.length > 0) {\n importRef.specifiers = importRef.specifiers?.filter(\n s =>\n !specifiers.some(\n specifier =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n );\n if (\n importRef.specifiers &&\n importRef.specifiers.length === 0 &&\n !importRef.all &&\n !importRef.ambient\n ) {\n mod.imports = mod.imports.filter(\n imp => imp.name !== importRef.name\n );\n }\n\n declaration = decl;\n break;\n }\n }\n\n if (declaration) {\n for (const decl of moduleRef.exports.filter(\n decl =>\n isSetObject(decl) &&\n !decl.specifiers?.some(s =>\n declaration?.specifiers?.some(\n specifier =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n )\n )) {\n const exportModuleRef = decl as ExportModuleReference;\n if (\n (exportModuleRef.specifiers?.some(s => s.alias || s.name) ||\n exportModuleRef.name) &&\n new RegExp(\n `(^|\\\\s|\\\\n|\\\\r\\\\n|\\\\(|\\\\)|<|>|{|}|\\\\[|\\\\]|\\\\!|\\\\?|\\\\.|,|\\\\*|&|:)(${\n exportModuleRef.specifiers\n ?.map(s => `${s.alias ? `${s.alias}|` : \"\"}${s.name}`)\n .join(\"|\") || exportModuleRef.name\n })($|\\\\s|\\\\n|\\\\r\\\\n|\\\\(|\\\\)|<|>|{|}|\\\\[|\\\\]|\\\\!|\\\\?|\\\\.|,|\\\\*|&|:|;)`\n ).test(declaration.text)\n ) {\n commonDeclarations.push(exportModuleRef);\n }\n }\n commonDeclarations.push(declaration);\n }\n }\n }\n }\n\n let code = \"\";\n const directives: string[] = [];\n\n for (const commonDeclaration of commonDeclarations) {\n code += formatTypes(\n `${\n commonDeclaration.comment?.trim()\n ? commonDeclaration.comment.trim()\n : \"\"\n }${commonDeclaration.comment?.trim() ? \"\\n\" : \"\"}${formatTypes(\n commonDeclaration.text\n .replace(/\\s*export\\s*/, \"\")\n .replace(/\\s*declare\\s*interface\\s*/, \"interface \")\n .replace(/\\s*declare\\s*type\\s*/, \"type \")\n )}`\n );\n code += \"\\n\\n\";\n }\n\n for (const mod of ctx.modules) {\n code += mod.comment ? `${mod.comment.trim()}\\n` : \"\";\n code += `declare module \"${context.config.framework?.name ?? \"powerlines\"}:${mod.name}\" { \\n`;\n for (const importRef of mod.imports) {\n if (importRef.ambient) {\n code += directives.push(importRef.name);\n } else if (importRef.all) {\n code += `\\timport * as ${findFileName(importRef.name)} from \"${importRef.name}\";\\n`;\n } else if (importRef.specifiers) {\n const typeOnly = importRef.specifiers.every(s => s.type) ? \" type\" : \"\";\n const specifiers = importRef.specifiers\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \");\n code += `\\timport${typeOnly} { ${specifiers} } from \"${importRef.name}\";\\n`;\n }\n }\n\n if (mod.imports.length > 0) {\n code += \"\\n\";\n }\n\n for (const exportRef of mod.exports.filter(\n e =>\n isString(e) ||\n !e.specifiers ||\n !commonDeclarations.some(\n commonDecl =>\n commonDecl.specifiers &&\n commonDecl.specifiers.some(specifier =>\n e.specifiers?.some(\n s =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n )) {\n if (isSetString(exportRef)) {\n code += `${exportRef}\\n`;\n } else if (exportRef.name) {\n if (exportRef.all) {\n code += `${\n exportRef.comment?.trim() ? exportRef.comment.trim() : \"\"\n }${\n exportRef.comment?.trim() ? \"\\n\" : \"\"\n }export * from \"${exportRef.name}\";\\n`;\n } else if (exportRef.specifiers) {\n if (exportRef.comment?.trim()) {\n code += `${exportRef.comment.trim()}\\n`;\n }\n\n code += `\\texport${\n exportRef.specifiers.every(s => s.type) ? \" type\" : \"\"\n } { ${exportRef.specifiers\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \")} } from \"${exportRef.name}\";\\n`;\n }\n } else {\n code += `${exportRef.comment?.trim() ? exportRef.comment.trim() : \"\"}${\n exportRef.comment?.trim() ? \"\\n\" : \"\"\n }${formatTypes(\n exportRef.text\n .replace(/\\s*export\\s*declare\\s*/, \"export \")\n .replace(/\\s*declare\\s*/, \" \")\n )}\\n`;\n }\n }\n\n mod.exports\n .filter(\n e =>\n !isString(e) &&\n e.specifiers &&\n commonDeclarations.some(\n commonDeclaration =>\n commonDeclaration.specifiers &&\n commonDeclaration.specifiers.some(specifier =>\n e.specifiers?.some(\n s =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n )\n .forEach((e, i, arr) => {\n if (i === 0) {\n code += \"\\nexport { \";\n } else {\n code += \", \";\n }\n\n code += `${\n (e as ExportModuleReference)?.specifiers\n ?.filter(s =>\n commonDeclarations.some(\n commonDeclaration =>\n commonDeclaration.specifiers &&\n commonDeclaration.specifiers.some(\n specifier =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \") || \"\"\n }`;\n\n if (i === arr.length - 1) {\n code += ` };\\n`;\n }\n });\n\n code += \"}\";\n code += \"\\n\\n\";\n }\n\n code = await format(context, context.typesPath, code);\n\n context.debug(\n `A TypeScript declaration file (size: ${prettyBytes(\n new Blob(toArray(code)).size\n )}) emitted for the built-in modules types.`\n );\n\n return { code, directives };\n}\n\n/**\n * Generate the Powerlines TypeScript declaration file\n *\n * @param context - The execution context for generating the TypeScript declaration file, which provides access to the project configuration, environment, and utility functions for performing the generation. The context is used to manage the state and behavior of the generation process, allowing for hooks to be called at different stages and for environment-specific configurations to be applied.\n * @param env - The environment context to use for generating the TypeScript declaration file\n */\nexport async function handleTypes<\n TResolvedConfig extends ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>,\n env: EnvironmentContext<TResolvedConfig, TSystemContext>\n) {\n env.debug(`Preparing the TypeScript definitions for the Powerlines project.`);\n\n if (env.fs.existsSync(env.typesPath)) {\n await env.fs.remove(env.typesPath);\n }\n\n const typescriptPath = await resolvePackage(\"typescript\");\n if (!typescriptPath) {\n throw new Error(\n \"Could not resolve TypeScript package location. Please ensure TypeScript is installed.\"\n );\n }\n\n env.debug(\"Running TypeScript compiler for built-in runtime module files.\");\n\n let { code, directives } = await emitBuiltinTypes(\n env,\n (await env.getBuiltins()).reduce<string[]>((ret, builtin) => {\n const formatted = replacePath(builtin.path, env.config.cwd);\n if (!ret.includes(formatted)) {\n ret.push(formatted);\n }\n\n return ret;\n }, [])\n );\n\n env.debug(`Generating TypeScript declaration file ${env.typesPath}.`);\n\n const merge = async (\n currentResult: string | TypesResult,\n previousResult: string | TypesResult\n ): Promise<string | TypesResult> => {\n if (\n !isSetString(currentResult) &&\n !isSetObject(currentResult) &&\n !isSetString(previousResult) &&\n !isSetObject(previousResult)\n ) {\n return { code, directives };\n }\n\n const previous = (\n await format(\n env,\n env.typesPath,\n isSetString(previousResult)\n ? previousResult\n : isSetObject(previousResult)\n ? previousResult.code\n : \"\"\n )\n )\n .trim()\n .replace(code, \"\")\n .trim();\n const current = (\n await format(\n env,\n env.typesPath,\n isSetString(currentResult)\n ? currentResult\n : isSetObject(currentResult)\n ? currentResult.code\n : \"\"\n )\n )\n .trim()\n .replace(previous, \"\")\n .trim()\n .replace(code, \"\")\n .trim();\n\n return {\n directives: [\n ...(isSetObject(currentResult) && currentResult.directives\n ? currentResult.directives\n : []),\n ...(isSetObject(previousResult) && previousResult.directives\n ? previousResult.directives\n : [])\n ],\n code: await format(\n env,\n env.typesPath,\n `${\n !previous.includes(getTypescriptFileHeader(env)) &&\n !current.includes(getTypescriptFileHeader(env))\n ? `${code}\\n`\n : \"\"\n }${previous}\\n${current}`.trim()\n )\n };\n };\n const asNextParam = (\n previousResult: string | TypesResult | null | undefined\n ) => (isObject(previousResult) ? previousResult.code : previousResult);\n\n let result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"pre\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"normal\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"post\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n if (isSetString(code?.trim()) || directives.length > 0) {\n await env.fs.write(\n env.typesPath,\n `${\n directives.length > 0\n ? `${directives.map(directive => `/// <reference types=\"${directive}\" />`).join(\"\\n\")}\n\n`\n : \"\"\n }${getTypescriptFileHeader(env, { directive: null, prettierIgnore: false })}\n\n${formatTypes(code)}\n`\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"generate-types.mjs","names":[],"sources":["../../src/lib/generate-types.ts"],"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 { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { prettyBytes } from \"@stryke/string-format/pretty-bytes\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { DiagnosticCategory, Node, Project, SourceFile } from \"ts-morph\";\nimport { ResolvedConfig } from \"../types/config\";\nimport {\n Context,\n EnvironmentContext,\n ExecutionContext\n} from \"../types/context\";\nimport { TypesResult } from \"../types/plugin\";\nimport { callHook } from \"./hooks\";\nimport { createProgram } from \"./typescript/ts-morph\";\nimport { getTypescriptFileHeader } from \"./utilities/file-header\";\nimport { format } from \"./utilities/format\";\n\ninterface ModuleExportSpecifier {\n name: string;\n alias?: string;\n default?: boolean;\n type?: boolean;\n}\n\ninterface ModuleReference {\n name?: string;\n specifiers?: ModuleExportSpecifier[];\n all?: boolean;\n}\n\ninterface ImportModuleReference extends ModuleReference {\n name: string;\n ambient?: boolean;\n}\n\ninterface ExportModuleReference extends ModuleReference {\n text: string;\n fullText: string;\n comment?: string;\n}\n\ninterface ModuleDeclaration {\n name: string;\n text: string;\n sourceFile: SourceFile;\n comment?: string;\n exports: (ExportModuleReference | string)[];\n imports: ImportModuleReference[];\n}\n\nexport interface TypegenContext {\n context: Context;\n emitted: Map<string, string>;\n modules: ModuleDeclaration[];\n}\n\n/**\n * Formats the generated TypeScript types source code.\n *\n * @param code - The generated TypeScript code.\n * @returns The formatted TypeScript code.\n */\nexport function formatTypes(code = \"\"): string {\n return code.replaceAll(\"#private;\", \"\").replace(/__Ω/g, \"\");\n}\n\nasync function extractModuleDeclarations(\n ctx: TypegenContext,\n filePath: string,\n name: string,\n text: string\n): Promise<ModuleDeclaration> {\n const imports: ImportModuleReference[] = [];\n const exports: (ExportModuleReference | string)[] = [];\n\n const comment = text\n .match(\n new RegExp(\n `\\\\/\\\\*\\\\*(?s:.)*?@module\\\\s+${\n ctx.context.config.framework?.name ?? \"powerlines\"\n }:${name}(?s:.)*?\\\\*\\\\/\\\\s+`\n )\n )\n ?.find(comment => isSetString(comment?.trim()));\n\n // Parse the emitted .d.ts content using an in-memory ts-morph project\n const project = new Project({ useInMemoryFileSystem: true });\n const sourceFile = project.createSourceFile(\"module.d.ts\", text);\n\n // Collect /// <reference types=\"...\" /> directives as ambient dependencies\n for (const ref of sourceFile.getTypeReferenceDirectives()) {\n if (\n ref.getFileName() &&\n !ctx.context.builtins.some(builtin => ref.getFileName().endsWith(builtin))\n ) {\n imports.push({\n name: ref.getFileName(),\n ambient: true\n });\n }\n }\n\n for (const statement of sourceFile.getStatements()) {\n // --- Import declarations ---\n if (Node.isImportDeclaration(statement)) {\n const moduleSpec = statement.getModuleSpecifierValue();\n\n // Namespace import: import * as X from '...'\n if (statement.getNamespaceImport()) {\n imports.push({\n name: moduleSpec,\n specifiers: [\n {\n name: statement.getNamespaceImport()!.getText()\n }\n ],\n all: true\n });\n }\n\n // Named imports: import X from '...' or import { A, B as C } from '...'\n else if (\n statement.getNamedImports().length > 0 ||\n statement.getDefaultImport()\n ) {\n const specifiers: ModuleExportSpecifier[] = [];\n if (statement.getDefaultImport()) {\n specifiers.push({\n name: statement.getDefaultImport()!.getText(),\n default: true,\n type: statement.isTypeOnly()\n });\n }\n\n statement.getNamedImports().forEach(named => {\n specifiers.push({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n });\n });\n\n imports.push({\n name: moduleSpec,\n specifiers\n });\n }\n }\n\n // --- Export declarations ---\n else if (Node.isExportDeclaration(statement)) {\n const moduleSpec = statement.getModuleSpecifierValue();\n if (moduleSpec) {\n // Resolve the module specifier\n let resolvedSpec = moduleSpec;\n if (!ctx.context.builtins.includes(moduleSpec)) {\n if (ctx.emitted.has(moduleSpec)) {\n resolvedSpec = ctx.emitted.get(moduleSpec)!;\n } else {\n const resolvedModule = await ctx.context.resolve(\n moduleSpec,\n filePath\n );\n if (isSetString(resolvedModule?.id)) {\n resolvedSpec = resolvedModule.id;\n }\n }\n }\n\n // Re-export from another module\n const namedExports = statement.getNamedExports();\n if (namedExports.length > 0) {\n exports.push({\n name: resolvedSpec,\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: namedExports.map(named => ({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n })),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n .trim()\n });\n } else {\n // export * from '...'\n exports.push({\n name: resolvedSpec,\n text: statement.getText(),\n fullText: statement.getFullText(),\n all: true,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n .trim()\n });\n }\n } else {\n const specifiers = statement.getNamedExports().map(named => ({\n name: named.getName(),\n alias: named.getAliasNode()?.getText(),\n type: statement.isTypeOnly()\n }));\n if (specifiers.length > 0) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n }\n }\n\n // --- Export assignments (export default ...) ---\n else if (Node.isExportAssignment(statement)) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Function declarations (export declare function ...) ---\n else if (\n Node.isFunctionDeclaration(statement) &&\n statement.isExported() &&\n statement.getNameNode()\n ) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: [\n {\n name: statement.getNameNode()!.getText()\n }\n ],\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Variable statements (export declare const ...) ---\n else if (Node.isVariableStatement(statement) && statement.isExported()) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: statement\n .getDeclarationList()\n .getDeclarations()\n .filter(\n decl => decl.getNameNode() && Node.isIdentifier(decl.getNameNode())\n )\n .map(decl => ({ name: decl.getNameNode().getText() })),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Class declarations (export declare class ...) ---\n else if (Node.isClassDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Interface declarations (export declare interface ...) ---\n else if (Node.isInterfaceDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- Type alias declarations (export declare type ...) ---\n else if (Node.isTypeAliasDeclaration(statement) && statement.isExported()) {\n const nameNode = statement.getNameNode();\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n specifiers: nameNode ? [{ name: nameNode.getText() }] : undefined,\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n\n // --- All other statements (declarations) ---\n else if (\n ctx.context.config.output.sourceMap ||\n !statement.getFullText().includes(\"//# sourceMappingURL=\")\n ) {\n exports.push({\n text: statement.getText(),\n fullText: statement.getFullText(),\n comment: statement\n .getLeadingCommentRanges()\n .filter(\n c =>\n isSetString(c.getText().trim()) &&\n !c.getText().includes(\"@module\")\n )\n .map(c => c.getText().trim())\n .join(\"\\n\")\n });\n }\n }\n\n return {\n name,\n text,\n sourceFile,\n comment,\n imports,\n exports\n };\n}\n\n/**\n * Emits TypeScript declaration types for the provided files using the given TypeScript configuration.\n *\n * @param context - The context containing options and environment paths.\n * @param files - The list of files to generate types for.\n * @returns A promise that resolves to the generated TypeScript declaration types.\n */\nexport async function emitBuiltinTypes<TContext extends Context>(\n context: TContext,\n files: string[]\n): Promise<{ code: string; directives: string[] }> {\n if (files.length === 0) {\n context.debug(\n \"No files provided for TypeScript types generation. Typescript compilation for built-in modules will be skipped.\"\n );\n return { code: \"\", directives: [] };\n }\n\n context.debug(\n `Running the TypeScript compiler for ${\n files.length\n } generated built-in module files.`\n );\n\n const program = createProgram(context, {\n skipAddingFilesFromTsConfig: true,\n compilerOptions: {\n declaration: true,\n declarationMap: false,\n emitDeclarationOnly: true,\n sourceMap: false,\n outDir: replacePath(context.builtinsPath, context.config.cwd),\n composite: false,\n incremental: false,\n tsBuildInfoFile: undefined\n }\n });\n\n program.addSourceFilesAtPaths(files);\n const emitResult = program.emitToMemory({ emitOnlyDtsFiles: true });\n\n const diagnostics = emitResult.getDiagnostics();\n if (diagnostics && diagnostics.length > 0) {\n if (diagnostics.some(d => d.getCategory() === DiagnosticCategory.Error)) {\n throw new Error(\n `The Typescript emit process failed while generating built-in types: \\n ${diagnostics\n .filter(d => d.getCategory() === DiagnosticCategory.Error)\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n } else if (\n diagnostics.some(d => d.getCategory() === DiagnosticCategory.Warning)\n ) {\n context.warn(\n `The Typescript emit process completed with warnings while generating built-in types: \\n ${diagnostics\n .filter(d => d.getCategory() === DiagnosticCategory.Warning)\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n } else {\n context.debug(\n `The Typescript emit process completed with diagnostic messages while generating built-in types: \\n ${diagnostics\n .map(\n d =>\n `-${d.getSourceFile() ? `${d.getSourceFile()?.getFilePath()}:` : \"\"} ${String(\n d.getMessageText()\n )} (at ${d.getStart()}:${d.getLength()})`\n )\n .join(\"\\n\")}`\n );\n }\n }\n\n const emittedFiles = emitResult.getFiles();\n context.debug(\n `The TypeScript compiler emitted ${\n emittedFiles.length\n } files for built-in types.`\n );\n\n if (emittedFiles.length === 0) {\n context.warn(\n \"The TypeScript compiler did not emit any files for built-in types. This may indicate an issue with the TypeScript configuration or the provided files.\"\n );\n return { code: \"\", directives: [] };\n }\n\n const ctx = {\n context,\n modules: [] as ModuleDeclaration[],\n emitted: new Map<string, string>()\n };\n\n await Promise.all(\n emittedFiles.map(async emittedFile => {\n const filePath = appendPath(emittedFile.filePath, context.config.cwd);\n if (\n !filePath.endsWith(\".map\") &&\n findFileName(filePath) !== \"tsconfig.tsbuildinfo\" &&\n isParentPath(filePath, context.builtinsPath)\n ) {\n const moduleName = replaceExtension(\n replacePath(\n replacePath(filePath, context.builtinsPath),\n replacePath(context.builtinsPath, context.config.cwd)\n ),\n \"\",\n {\n fullExtension: true\n }\n );\n if (context.builtins.includes(moduleName)) {\n ctx.emitted.set(filePath, moduleName);\n ctx.modules.push(\n await extractModuleDeclarations(\n ctx,\n filePath,\n moduleName,\n emittedFile.text\n )\n );\n }\n }\n })\n );\n\n const commonDeclarations = [] as ExportModuleReference[];\n for (const mod of ctx.modules) {\n for (const importRef of mod.imports.filter(importRef =>\n context.builtins.some(builtin => importRef.name.endsWith(`:${builtin}`))\n )) {\n const moduleRef = ctx.modules.find(moduleRef =>\n importRef.name.endsWith(`:${moduleRef.name}`)\n );\n if (moduleRef) {\n let declaration: ExportModuleReference | undefined;\n for (const decl of moduleRef.exports.filter(decl =>\n isSetObject(decl)\n )) {\n const specifiers = decl.specifiers?.filter(specifier =>\n importRef.specifiers?.some(\n s =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n );\n if (specifiers && specifiers.length > 0) {\n importRef.specifiers = importRef.specifiers?.filter(\n s =>\n !specifiers.some(\n specifier =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n );\n if (\n importRef.specifiers &&\n importRef.specifiers.length === 0 &&\n !importRef.all &&\n !importRef.ambient\n ) {\n mod.imports = mod.imports.filter(\n imp => imp.name !== importRef.name\n );\n }\n\n declaration = decl;\n break;\n }\n }\n\n if (declaration) {\n for (const decl of moduleRef.exports.filter(\n decl =>\n isSetObject(decl) &&\n !decl.specifiers?.some(s =>\n declaration?.specifiers?.some(\n specifier =>\n (specifier.alias ? specifier.alias : specifier.name) ===\n (s.alias ? s.alias : s.name)\n )\n )\n )) {\n const exportModuleRef = decl as ExportModuleReference;\n if (\n (exportModuleRef.specifiers?.some(s => s.alias || s.name) ||\n exportModuleRef.name) &&\n new RegExp(\n `(^|\\\\s|\\\\n|\\\\r\\\\n|\\\\(|\\\\)|<|>|{|}|\\\\[|\\\\]|\\\\!|\\\\?|\\\\.|,|\\\\*|&|:)(${\n exportModuleRef.specifiers\n ?.map(s => `${s.alias ? `${s.alias}|` : \"\"}${s.name}`)\n .join(\"|\") || exportModuleRef.name\n })($|\\\\s|\\\\n|\\\\r\\\\n|\\\\(|\\\\)|<|>|{|}|\\\\[|\\\\]|\\\\!|\\\\?|\\\\.|,|\\\\*|&|:|;)`\n ).test(declaration.text)\n ) {\n commonDeclarations.push(exportModuleRef);\n }\n }\n commonDeclarations.push(declaration);\n }\n }\n }\n }\n\n let code = \"\";\n const directives: string[] = [];\n\n for (const commonDeclaration of commonDeclarations) {\n code += formatTypes(\n `${\n commonDeclaration.comment?.trim()\n ? commonDeclaration.comment.trim()\n : \"\"\n }${commonDeclaration.comment?.trim() ? \"\\n\" : \"\"}${formatTypes(\n commonDeclaration.text\n .replace(/\\s*export\\s*/, \"\")\n .replace(/\\s*declare\\s*interface\\s*/, \"interface \")\n .replace(/\\s*declare\\s*type\\s*/, \"type \")\n )}`\n );\n code += \"\\n\\n\";\n }\n\n for (const mod of ctx.modules) {\n code += mod.comment ? `${mod.comment.trim()}\\n` : \"\";\n code += `declare module \"${context.config.framework?.name ?? \"powerlines\"}:${mod.name}\" { \\n`;\n for (const importRef of mod.imports) {\n if (importRef.ambient) {\n code += directives.push(importRef.name);\n } else if (importRef.all) {\n code += `\\timport * as ${findFileName(importRef.name)} from \"${importRef.name}\";\\n`;\n } else if (importRef.specifiers) {\n const typeOnly = importRef.specifiers.every(s => s.type) ? \" type\" : \"\";\n const specifiers = importRef.specifiers\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \");\n code += `\\timport${typeOnly} { ${specifiers} } from \"${importRef.name}\";\\n`;\n }\n }\n\n if (mod.imports.length > 0) {\n code += \"\\n\";\n }\n\n for (const exportRef of mod.exports.filter(\n e =>\n isString(e) ||\n !e.specifiers ||\n !commonDeclarations.some(\n commonDecl =>\n commonDecl.specifiers &&\n commonDecl.specifiers.some(specifier =>\n e.specifiers?.some(\n s =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n )) {\n if (isSetString(exportRef)) {\n code += `${exportRef}\\n`;\n } else if (exportRef.name) {\n if (exportRef.all) {\n code += `${\n exportRef.comment?.trim() ? exportRef.comment.trim() : \"\"\n }${\n exportRef.comment?.trim() ? \"\\n\" : \"\"\n }export * from \"${exportRef.name}\";\\n`;\n } else if (exportRef.specifiers) {\n if (exportRef.comment?.trim()) {\n code += `${exportRef.comment.trim()}\\n`;\n }\n\n code += `\\texport${\n exportRef.specifiers.every(s => s.type) ? \" type\" : \"\"\n } { ${exportRef.specifiers\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \")} } from \"${exportRef.name}\";\\n`;\n }\n } else {\n code += `${exportRef.comment?.trim() ? exportRef.comment.trim() : \"\"}${\n exportRef.comment?.trim() ? \"\\n\" : \"\"\n }${formatTypes(\n exportRef.text\n .replace(/\\s*export\\s*declare\\s*/, \"export \")\n .replace(/\\s*declare\\s*/, \" \")\n )}\\n`;\n }\n }\n\n mod.exports\n .filter(\n e =>\n !isString(e) &&\n e.specifiers &&\n commonDeclarations.some(\n commonDeclaration =>\n commonDeclaration.specifiers &&\n commonDeclaration.specifiers.some(specifier =>\n e.specifiers?.some(\n s =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n )\n .forEach((e, i, arr) => {\n if (i === 0) {\n code += \"\\nexport { \";\n } else {\n code += \", \";\n }\n\n code += `${\n (e as ExportModuleReference)?.specifiers\n ?.filter(s =>\n commonDeclarations.some(\n commonDeclaration =>\n commonDeclaration.specifiers &&\n commonDeclaration.specifiers.some(\n specifier =>\n (s.alias ? s.alias : s.name) ===\n (specifier.alias ? specifier.alias : specifier.name)\n )\n )\n )\n .map(s => (s.alias ? `${s.name} as ${s.alias}` : s.name))\n .join(\", \") || \"\"\n }`;\n\n if (i === arr.length - 1) {\n code += ` };\\n`;\n }\n });\n\n code += \"}\";\n code += \"\\n\\n\";\n }\n\n code = await format(context, context.typesPath, code);\n\n context.debug(\n `A TypeScript declaration file (size: ${prettyBytes(\n new Blob(toArray(code)).size\n )}) emitted for the built-in modules types.`\n );\n\n return { code, directives };\n}\n\n/**\n * Generate the Powerlines TypeScript declaration file\n *\n * @param context - The execution context for generating the TypeScript declaration file, which provides access to the project configuration, environment, and utility functions for performing the generation. The context is used to manage the state and behavior of the generation process, allowing for hooks to be called at different stages and for environment-specific configurations to be applied.\n * @param env - The environment context to use for generating the TypeScript declaration file\n */\nexport async function handleTypes<\n TResolvedConfig extends ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>,\n env: EnvironmentContext<TResolvedConfig, TSystemContext>\n) {\n env.debug(`Preparing the TypeScript definitions for the Powerlines project.`);\n\n if (env.fs.existsSync(env.typesPath)) {\n await env.fs.remove(env.typesPath);\n }\n\n const typescriptPath = await resolvePackage(\"typescript\");\n if (!typescriptPath) {\n throw new Error(\n \"Could not resolve TypeScript package location. Please ensure TypeScript is installed.\"\n );\n }\n\n env.debug(\"Running TypeScript compiler for built-in runtime module files.\");\n\n let { code, directives } = await emitBuiltinTypes(\n env,\n (await env.getBuiltins()).reduce<string[]>((ret, builtin) => {\n const formatted = replacePath(builtin.path, env.config.cwd);\n if (!ret.includes(formatted)) {\n ret.push(formatted);\n }\n\n return ret;\n }, [])\n );\n\n env.debug(`Generating TypeScript declaration file ${env.typesPath}.`);\n\n const merge = async (\n currentResult: string | TypesResult,\n previousResult: string | TypesResult\n ): Promise<string | TypesResult> => {\n if (\n !isSetString(currentResult) &&\n !isSetObject(currentResult) &&\n !isSetString(previousResult) &&\n !isSetObject(previousResult)\n ) {\n return { code, directives };\n }\n\n const previous = (\n await format(\n env,\n env.typesPath,\n isSetString(previousResult)\n ? previousResult\n : isSetObject(previousResult)\n ? previousResult.code\n : \"\"\n )\n )\n .trim()\n .replace(code, \"\")\n .trim();\n const current = (\n await format(\n env,\n env.typesPath,\n isSetString(currentResult)\n ? currentResult\n : isSetObject(currentResult)\n ? currentResult.code\n : \"\"\n )\n )\n .trim()\n .replace(previous, \"\")\n .trim()\n .replace(code, \"\")\n .trim();\n\n return {\n directives: [\n ...(isSetObject(currentResult) && currentResult.directives\n ? currentResult.directives\n : []),\n ...(isSetObject(previousResult) && previousResult.directives\n ? previousResult.directives\n : [])\n ],\n code: await format(\n env,\n env.typesPath,\n `${\n !previous.includes(getTypescriptFileHeader(env)) &&\n !current.includes(getTypescriptFileHeader(env))\n ? `${code}\\n`\n : \"\"\n }${previous}\\n${current}`.trim()\n )\n };\n };\n const asNextParam = (\n previousResult: string | TypesResult | null | undefined\n ) => (isObject(previousResult) ? previousResult.code : previousResult);\n\n let result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"pre\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"normal\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n result = await callHook(\n context,\n \"types\",\n {\n environment: env,\n sequential: true,\n order: \"post\",\n result: \"merge\",\n merge,\n asNextParam\n },\n code\n );\n if (result) {\n if (isSetObject(result)) {\n code = result.code;\n if (Array.isArray(result.directives) && result.directives.length > 0) {\n directives = getUnique([...directives, ...result.directives]).filter(\n Boolean\n );\n }\n } else if (isSetString(result)) {\n code = result;\n }\n }\n\n if (isSetString(code?.trim()) || directives.length > 0) {\n await env.fs.write(\n env.typesPath,\n `${\n directives.length > 0\n ? `${directives.map(directive => `/// <reference types=\"${directive}\" />`).join(\"\\n\")}\n\n`\n : \"\"\n }${getTypescriptFileHeader(env, { directive: null, prettierIgnore: false })}\n\n${formatTypes(code)}\n`\n );\n }\n}\n"],"mappings":"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"}
@@ -1,13 +1,5 @@
1
-
2
-
3
- import __tsdown_shims_path from 'node:path'
4
- import __tsdown_shims_url from 'node:url'
5
-
6
- const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
- const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
-
9
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ const require_chunk = require('../chunk-C_NdSu1c.cjs');
11
3
  const require_plugin_utils_logging = require('../plugin-utils/logging.cjs');
12
4
  const require_plugin_utils_helpers = require('../plugin-utils/helpers.cjs');
13
5
  const require_plugin_utils_merge = require('../plugin-utils/merge.cjs');
@@ -18,18 +10,12 @@ let defu = require("defu");
18
10
  let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
19
11
  let _stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
20
12
  let chalk = require("chalk");
21
- chalk = require_runtime.__toESM(chalk, 1);
13
+ chalk = require_chunk.__toESM(chalk, 1);
22
14
  let _stryke_helpers_get_field = require("@stryke/helpers/get-field");
23
15
  let _stryke_type_checks_is_object = require("@stryke/type-checks/is-object");
24
16
  let _stryke_type_checks_is_set = require("@stryke/type-checks/is-set");
25
17
 
26
18
  //#region src/lib/hooks.ts
27
- var hooks_exports = /* @__PURE__ */ require_runtime.__exportAll({
28
- callHook: () => callHook,
29
- extractHooks: () => extractHooks,
30
- mergeConfigs: () => mergeConfigs,
31
- mergeResults: () => mergeResults
32
- });
33
19
  /**
34
20
  * Merges the current hook result with the previous results based on their types.
35
21
  *
@@ -162,11 +148,5 @@ async function callHook(context, key, options, ...args) {
162
148
  //#endregion
163
149
  exports.callHook = callHook;
164
150
  exports.extractHooks = extractHooks;
165
- Object.defineProperty(exports, 'hooks_exports', {
166
- enumerable: true,
167
- get: function () {
168
- return hooks_exports;
169
- }
170
- });
171
151
  exports.mergeConfigs = mergeConfigs;
172
152
  exports.mergeResults = mergeResults;
@@ -1,28 +1,2 @@
1
- import { Plugin } from "../types/plugin.cjs";
2
- import { CallHookOptions, HooksList, InferHookFunction, InferHookParameters } from "../types/hooks.cjs";
3
- import { EnvironmentContext, ExecutionContext, PluginContext } from "../types/context.cjs";
4
- import { ResolvedConfig } from "../types/config.cjs";
5
- //#region src/lib/hooks.d.ts
6
- /**
7
- * Merges the current hook result with the previous results based on their types.
8
- *
9
- * @param currentResult - The current hook result to merge with the previous results.
10
- * @param previousResults - The previous hook results to merge with the current result.
11
- * @returns The merged result.
12
- */
13
- declare function mergeResults<T extends Record<string | number | symbol, any> | string>(currentResult: T, previousResults: T[]): T[];
14
- /**
15
- * Merges multiple hook results together, with special handling for string values and object values.
16
- *
17
- * @param currentResult - The current hook result to merge with the previous results.
18
- * @param previousResults - The previous hook results to merge with the current result.
19
- * @returns The merged result.
20
- */
21
- declare function mergeConfigs<T>(currentResult: T, previousResults: T): T;
22
- declare function extractHooks<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: PluginContext<TResolvedConfig, TSystemContext>, hooks: Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>>, plugin: Plugin<PluginContext<TResolvedConfig, TSystemContext>>, key: string, parentKey?: string): Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>>;
23
- declare function callHook<TKey extends string, TResolvedConfig extends ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>, key: TKey, options: CallHookOptions & {
24
- environment?: string | EnvironmentContext<TResolvedConfig, TSystemContext>;
25
- }, ...args: InferHookParameters<PluginContext<TResolvedConfig, TSystemContext>, TKey>): Promise<ReturnType<InferHookFunction<PluginContext<TResolvedConfig, TSystemContext>, TKey>> | undefined>;
26
- //#endregion
27
- export { callHook, extractHooks, mergeConfigs, mergeResults };
28
- //# sourceMappingURL=hooks.d.cts.map
1
+ import { i as mergeResults, n as extractHooks, r as mergeConfigs, t as callHook } from "../index-xk4vSgtB.cjs";
2
+ export { callHook, extractHooks, mergeConfigs, mergeResults };
@@ -1,30 +1,2 @@
1
- import __tsdown_shims_path from 'node:path';
2
- import __tsdown_shims_url from 'node:url';
3
- import { Plugin } from "../types/plugin.mjs";
4
- import { CallHookOptions, HooksList, InferHookFunction, InferHookParameters } from "../types/hooks.mjs";
5
- import { EnvironmentContext, ExecutionContext, PluginContext } from "../types/context.mjs";
6
- import { ResolvedConfig } from "../types/config.mjs";
7
- //#region src/lib/hooks.d.ts
8
- /**
9
- * Merges the current hook result with the previous results based on their types.
10
- *
11
- * @param currentResult - The current hook result to merge with the previous results.
12
- * @param previousResults - The previous hook results to merge with the current result.
13
- * @returns The merged result.
14
- */
15
- declare function mergeResults<T extends Record<string | number | symbol, any> | string>(currentResult: T, previousResults: T[]): T[];
16
- /**
17
- * Merges multiple hook results together, with special handling for string values and object values.
18
- *
19
- * @param currentResult - The current hook result to merge with the previous results.
20
- * @param previousResults - The previous hook results to merge with the current result.
21
- * @returns The merged result.
22
- */
23
- declare function mergeConfigs<T>(currentResult: T, previousResults: T): T;
24
- declare function extractHooks<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: PluginContext<TResolvedConfig, TSystemContext>, hooks: Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>>, plugin: Plugin<PluginContext<TResolvedConfig, TSystemContext>>, key: string, parentKey?: string): Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>>;
25
- declare function callHook<TKey extends string, TResolvedConfig extends ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>, key: TKey, options: CallHookOptions & {
26
- environment?: string | EnvironmentContext<TResolvedConfig, TSystemContext>;
27
- }, ...args: InferHookParameters<PluginContext<TResolvedConfig, TSystemContext>, TKey>): Promise<ReturnType<InferHookFunction<PluginContext<TResolvedConfig, TSystemContext>, TKey>> | undefined>;
28
- //#endregion
29
- export { callHook, extractHooks, mergeConfigs, mergeResults };
30
- //# sourceMappingURL=hooks.d.mts.map
1
+ import { i as mergeResults, n as extractHooks, r as mergeConfigs, t as callHook } from "../index-LtpXjuJR.mjs";
2
+ export { callHook, extractHooks, mergeConfigs, mergeResults };
@@ -1,12 +1,3 @@
1
-
2
-
3
- import __tsdown_shims_path from 'node:path'
4
- import __tsdown_shims_url from 'node:url'
5
-
6
- const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
- const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
-
9
- import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
10
1
  import { colorText } from "../plugin-utils/logging.mjs";
11
2
  import { addPluginHook, isPluginHook, isPluginHookField } from "../plugin-utils/helpers.mjs";
12
3
  import { mergeConfig } from "../plugin-utils/merge.mjs";
@@ -22,12 +13,6 @@ import { isObject } from "@stryke/type-checks/is-object";
22
13
  import { isSet } from "@stryke/type-checks/is-set";
23
14
 
24
15
  //#region src/lib/hooks.ts
25
- var hooks_exports = /* @__PURE__ */ __exportAll({
26
- callHook: () => callHook,
27
- extractHooks: () => extractHooks,
28
- mergeConfigs: () => mergeConfigs,
29
- mergeResults: () => mergeResults
30
- });
31
16
  /**
32
17
  * Merges the current hook result with the previous results based on their types.
33
18
  *
@@ -158,5 +143,5 @@ async function callHook(context, key, options, ...args) {
158
143
  }
159
144
 
160
145
  //#endregion
161
- export { callHook, extractHooks, hooks_exports, mergeConfigs, mergeResults };
146
+ export { callHook, extractHooks, mergeConfigs, mergeResults };
162
147
  //# sourceMappingURL=hooks.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.mjs","names":["defu"],"sources":["../../src/lib/hooks.ts"],"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 { getField } from \"@stryke/helpers/get-field\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport chalk from \"chalk\";\nimport { defu } from \"defu\";\nimport {\n addPluginHook,\n colorText,\n isPluginHook,\n isPluginHookField,\n mergeConfig\n} from \"../plugin-utils\";\nimport type {\n CallHookOptions,\n EnvironmentContext,\n ExecutionContext,\n HookListOrders,\n HooksList,\n HooksListItem,\n InferHookParameters,\n InferHookReturnType,\n Plugin,\n PluginContext,\n PluginHookFields,\n ResolvedConfig\n} from \"../types\";\n\n/**\n * Merges the current hook result with the previous results based on their types.\n *\n * @param currentResult - The current hook result to merge with the previous results.\n * @param previousResults - The previous hook results to merge with the current result.\n * @returns The merged result.\n */\nexport function mergeResults<\n T extends Record<string | number | symbol, any> | string\n>(currentResult: T, previousResults: T[]): T[] {\n if (!previousResults || previousResults.length === 0) {\n return [currentResult];\n }\n\n if (isSetString(currentResult)) {\n previousResults = [\n `${isSetString(previousResults[0]) ? previousResults[0] || \"\" : \"\"}\\n${\n isSetString(previousResults[0])\n ? currentResult.replace(previousResults[0], \"\")\n : currentResult\n }`.trim() as T\n ];\n } else if (isObject(currentResult)) {\n previousResults =\n previousResults.length > 0\n ? [defu(currentResult, previousResults[0])]\n : [currentResult];\n }\n\n return previousResults;\n}\n\n/**\n * Merges multiple hook results together, with special handling for string values and object values.\n *\n * @param currentResult - The current hook result to merge with the previous results.\n * @param previousResults - The previous hook results to merge with the current result.\n * @returns The merged result.\n */\nexport function mergeConfigs<T>(currentResult: T, previousResults: T): T {\n if (isString(currentResult)) {\n previousResults =\n `${isString(previousResults) ? previousResults || \"\" : \"\"}\\n${\n currentResult || \"\"\n }`.trim() as T;\n } else if (isObject(currentResult)) {\n previousResults = mergeConfig(currentResult, previousResults ?? {}) as T;\n }\n\n return previousResults;\n}\n\n/**\n * Calls a hook with the given context, options, and arguments.\n *\n * @param context - The context to use when calling the hook.\n * @param key - The hook to call.\n * @param options - Options for calling the hook.\n * @param args - Arguments to pass to the hook.\n * @returns The return value of the hook.\n */\nasync function _callHook<\n TResolvedConfig extends ResolvedConfig,\n TSystemContext,\n TKey extends string\n>(\n context: EnvironmentContext<TResolvedConfig, TSystemContext>,\n key: TKey,\n options: CallHookOptions,\n ...args: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n): Promise<\n | InferHookReturnType<PluginContext<TResolvedConfig, TSystemContext>, TKey>\n | undefined\n> {\n const hooks = context.selectHooks(key, options);\n if (hooks.length > 0) {\n const logger = context.extendLogger({ category: \"hooks\" });\n\n logger.debug(\n `🧩 Calling ${hooks.length} ${chalk.bold.cyanBright(\n `${key}${options?.order ? ` (${options.order})` : \"\"}`\n )} plugin hook${hooks.length > 1 ? \"s\" : \"\"}:\\n${hooks\n .map((hook, index) => ` ${index + 1}. ${colorText(hook.plugin.name)}`)\n .join(\"\\n\")}`\n );\n\n const invokeHook = async (\n hook: ArrayValues<typeof hooks>,\n hookArgs: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n ) => {\n return Reflect.apply(hook.handler as AnyFunction, hook.context, hookArgs);\n };\n\n let results = [] as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >[];\n if (options?.sequential === false) {\n results = (await Promise.all(\n hooks.map(async hook => {\n if (!isFunction(hook.handler)) {\n throw new Error(\n `Plugin hook handler for hook \"${key}\" is not a function.`\n );\n }\n\n return invokeHook(hook, [...args]);\n })\n )) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >[];\n } else {\n for (const hook of hooks) {\n if (!isFunction(hook.handler)) {\n throw new Error(\n `Plugin hook handler for hook \"${key}\" is not a function.`\n );\n }\n\n if (options?.result === \"first\" || options?.asNextParam === false) {\n results.push(\n (await Promise.resolve(\n invokeHook(hook, [...args])\n )) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n );\n if (\n options?.result === \"first\" &&\n isSet(results[results.length - 1])\n ) {\n break;\n }\n } else {\n const sequenceArgs = [...args];\n if (results.length > 0 && sequenceArgs.length > 0) {\n sequenceArgs[0] = isFunction(options.asNextParam)\n ? await Promise.resolve(options.asNextParam(results[0]))\n : results[0];\n }\n\n const result = await Promise.resolve(\n invokeHook(hook, [...sequenceArgs] as InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >)\n );\n if (result) {\n if (options.result === \"last\") {\n results = [result];\n } else if (options.result === \"merge\" && options.merge) {\n results = [\n results.length > 0 && results[0]\n ? await Promise.resolve(options.merge(result, results[0]))\n : result\n ];\n } else {\n results = mergeResults(result, results);\n }\n }\n }\n }\n }\n\n const definedResults = results.filter(\n (\n result\n ): result is NonNullable<\n InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n > => isSet(result)\n );\n\n if (definedResults.length > 0) {\n let mergedResult = undefined as\n | InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n | undefined;\n\n for (const result of definedResults) {\n mergedResult = defu(\n result as Record<string, unknown>,\n mergedResult ?? {}\n ) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >;\n }\n\n return mergedResult;\n }\n }\n\n return undefined;\n}\n\nexport function extractHooks<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>(\n context: PluginContext<TResolvedConfig, TSystemContext>,\n hooks: Record<\n string,\n HooksList<PluginContext<TResolvedConfig, TSystemContext>>\n >,\n plugin: Plugin<PluginContext<TResolvedConfig, TSystemContext>>,\n key: string,\n parentKey?: string\n): Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>> {\n const combinedKey = parentKey ? `${parentKey}:${key}` : key;\n const pluginField = getField(plugin, combinedKey.replace(/:/g, \".\"));\n if (\n isPluginHookField<PluginContext<TResolvedConfig, TSystemContext>>(\n combinedKey\n ) &&\n isPluginHook(pluginField)\n ) {\n const pluginHook = pluginField;\n if (!isPluginHook(pluginHook)) {\n return hooks;\n }\n\n hooks[combinedKey] ??= {\n preEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n preOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n normal: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[]\n };\n\n if (plugin.enforce) {\n const hookListOrder = `${plugin.enforce}Enforced` as HookListOrders;\n hooks[combinedKey][hookListOrder] ??= [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[];\n\n hooks[combinedKey][hookListOrder] = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey][hookListOrder]);\n\n return hooks;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n hooks[combinedKey].normal ??= [];\n\n hooks[combinedKey].normal = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey].normal);\n\n return hooks;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n hooks[combinedKey][hookListOrder] ??= [];\n\n hooks[combinedKey][hookListOrder] = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey][hookListOrder]);\n\n return hooks;\n } else if (isSetObject(pluginField)) {\n return Object.keys(pluginField)\n .map(pluginKey =>\n extractHooks(context, hooks, plugin, pluginKey, combinedKey)\n )\n .reduce((ret, current) => {\n Object.keys(current).forEach(key => {\n ret[key] ??= {\n preEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n preOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n normal: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[]\n };\n\n [\n \"preEnforced\",\n \"preOrdered\",\n \"normal\",\n \"postEnforced\",\n \"postOrdered\"\n ].forEach(order => {\n if (\n current[key]?.[\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]\n ) {\n ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ] ??= [];\n ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ] = ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]!.concat(\n current[key][\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]!\n );\n }\n });\n });\n\n return ret;\n }, hooks);\n }\n\n return hooks;\n}\n\nexport async function callHook<\n TKey extends string,\n TResolvedConfig extends ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>,\n key: TKey,\n options: CallHookOptions & {\n environment?: string | EnvironmentContext<TResolvedConfig, TSystemContext>;\n },\n ...args: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n) {\n return _callHook<TResolvedConfig, TSystemContext, TKey>(\n isSetObject(options?.environment)\n ? options.environment\n : await context.getEnvironment(options?.environment),\n key,\n { sequential: true, ...options },\n ...args\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.mjs","names":["defu"],"sources":["../../src/lib/hooks.ts"],"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 { getField } from \"@stryke/helpers/get-field\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport chalk from \"chalk\";\nimport { defu } from \"defu\";\nimport {\n addPluginHook,\n colorText,\n isPluginHook,\n isPluginHookField,\n mergeConfig\n} from \"../plugin-utils\";\nimport type {\n CallHookOptions,\n EnvironmentContext,\n ExecutionContext,\n HookListOrders,\n HooksList,\n HooksListItem,\n InferHookParameters,\n InferHookReturnType,\n Plugin,\n PluginContext,\n PluginHookFields,\n ResolvedConfig\n} from \"../types\";\n\n/**\n * Merges the current hook result with the previous results based on their types.\n *\n * @param currentResult - The current hook result to merge with the previous results.\n * @param previousResults - The previous hook results to merge with the current result.\n * @returns The merged result.\n */\nexport function mergeResults<\n T extends Record<string | number | symbol, any> | string\n>(currentResult: T, previousResults: T[]): T[] {\n if (!previousResults || previousResults.length === 0) {\n return [currentResult];\n }\n\n if (isSetString(currentResult)) {\n previousResults = [\n `${isSetString(previousResults[0]) ? previousResults[0] || \"\" : \"\"}\\n${\n isSetString(previousResults[0])\n ? currentResult.replace(previousResults[0], \"\")\n : currentResult\n }`.trim() as T\n ];\n } else if (isObject(currentResult)) {\n previousResults =\n previousResults.length > 0\n ? [defu(currentResult, previousResults[0])]\n : [currentResult];\n }\n\n return previousResults;\n}\n\n/**\n * Merges multiple hook results together, with special handling for string values and object values.\n *\n * @param currentResult - The current hook result to merge with the previous results.\n * @param previousResults - The previous hook results to merge with the current result.\n * @returns The merged result.\n */\nexport function mergeConfigs<T>(currentResult: T, previousResults: T): T {\n if (isString(currentResult)) {\n previousResults =\n `${isString(previousResults) ? previousResults || \"\" : \"\"}\\n${\n currentResult || \"\"\n }`.trim() as T;\n } else if (isObject(currentResult)) {\n previousResults = mergeConfig(currentResult, previousResults ?? {}) as T;\n }\n\n return previousResults;\n}\n\n/**\n * Calls a hook with the given context, options, and arguments.\n *\n * @param context - The context to use when calling the hook.\n * @param key - The hook to call.\n * @param options - Options for calling the hook.\n * @param args - Arguments to pass to the hook.\n * @returns The return value of the hook.\n */\nasync function _callHook<\n TResolvedConfig extends ResolvedConfig,\n TSystemContext,\n TKey extends string\n>(\n context: EnvironmentContext<TResolvedConfig, TSystemContext>,\n key: TKey,\n options: CallHookOptions,\n ...args: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n): Promise<\n | InferHookReturnType<PluginContext<TResolvedConfig, TSystemContext>, TKey>\n | undefined\n> {\n const hooks = context.selectHooks(key, options);\n if (hooks.length > 0) {\n const logger = context.extendLogger({ category: \"hooks\" });\n\n logger.debug(\n `🧩 Calling ${hooks.length} ${chalk.bold.cyanBright(\n `${key}${options?.order ? ` (${options.order})` : \"\"}`\n )} plugin hook${hooks.length > 1 ? \"s\" : \"\"}:\\n${hooks\n .map((hook, index) => ` ${index + 1}. ${colorText(hook.plugin.name)}`)\n .join(\"\\n\")}`\n );\n\n const invokeHook = async (\n hook: ArrayValues<typeof hooks>,\n hookArgs: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n ) => {\n return Reflect.apply(hook.handler as AnyFunction, hook.context, hookArgs);\n };\n\n let results = [] as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >[];\n if (options?.sequential === false) {\n results = (await Promise.all(\n hooks.map(async hook => {\n if (!isFunction(hook.handler)) {\n throw new Error(\n `Plugin hook handler for hook \"${key}\" is not a function.`\n );\n }\n\n return invokeHook(hook, [...args]);\n })\n )) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >[];\n } else {\n for (const hook of hooks) {\n if (!isFunction(hook.handler)) {\n throw new Error(\n `Plugin hook handler for hook \"${key}\" is not a function.`\n );\n }\n\n if (options?.result === \"first\" || options?.asNextParam === false) {\n results.push(\n (await Promise.resolve(\n invokeHook(hook, [...args])\n )) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n );\n if (\n options?.result === \"first\" &&\n isSet(results[results.length - 1])\n ) {\n break;\n }\n } else {\n const sequenceArgs = [...args];\n if (results.length > 0 && sequenceArgs.length > 0) {\n sequenceArgs[0] = isFunction(options.asNextParam)\n ? await Promise.resolve(options.asNextParam(results[0]))\n : results[0];\n }\n\n const result = await Promise.resolve(\n invokeHook(hook, [...sequenceArgs] as InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >)\n );\n if (result) {\n if (options.result === \"last\") {\n results = [result];\n } else if (options.result === \"merge\" && options.merge) {\n results = [\n results.length > 0 && results[0]\n ? await Promise.resolve(options.merge(result, results[0]))\n : result\n ];\n } else {\n results = mergeResults(result, results);\n }\n }\n }\n }\n }\n\n const definedResults = results.filter(\n (\n result\n ): result is NonNullable<\n InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n > => isSet(result)\n );\n\n if (definedResults.length > 0) {\n let mergedResult = undefined as\n | InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n | undefined;\n\n for (const result of definedResults) {\n mergedResult = defu(\n result as Record<string, unknown>,\n mergedResult ?? {}\n ) as InferHookReturnType<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >;\n }\n\n return mergedResult;\n }\n }\n\n return undefined;\n}\n\nexport function extractHooks<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>(\n context: PluginContext<TResolvedConfig, TSystemContext>,\n hooks: Record<\n string,\n HooksList<PluginContext<TResolvedConfig, TSystemContext>>\n >,\n plugin: Plugin<PluginContext<TResolvedConfig, TSystemContext>>,\n key: string,\n parentKey?: string\n): Record<string, HooksList<PluginContext<TResolvedConfig, TSystemContext>>> {\n const combinedKey = parentKey ? `${parentKey}:${key}` : key;\n const pluginField = getField(plugin, combinedKey.replace(/:/g, \".\"));\n if (\n isPluginHookField<PluginContext<TResolvedConfig, TSystemContext>>(\n combinedKey\n ) &&\n isPluginHook(pluginField)\n ) {\n const pluginHook = pluginField;\n if (!isPluginHook(pluginHook)) {\n return hooks;\n }\n\n hooks[combinedKey] ??= {\n preEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n preOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n normal: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[]\n };\n\n if (plugin.enforce) {\n const hookListOrder = `${plugin.enforce}Enforced` as HookListOrders;\n hooks[combinedKey][hookListOrder] ??= [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[];\n\n hooks[combinedKey][hookListOrder] = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey][hookListOrder]);\n\n return hooks;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n hooks[combinedKey].normal ??= [];\n\n hooks[combinedKey].normal = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey].normal);\n\n return hooks;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n hooks[combinedKey][hookListOrder] ??= [];\n\n hooks[combinedKey][hookListOrder] = addPluginHook<\n PluginContext<TResolvedConfig, TSystemContext>,\n PluginHookFields<PluginContext<TResolvedConfig, TSystemContext>>\n >(context, plugin, pluginHook, hooks[combinedKey][hookListOrder]);\n\n return hooks;\n } else if (isSetObject(pluginField)) {\n return Object.keys(pluginField)\n .map(pluginKey =>\n extractHooks(context, hooks, plugin, pluginKey, combinedKey)\n )\n .reduce((ret, current) => {\n Object.keys(current).forEach(key => {\n ret[key] ??= {\n preEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n preOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n normal: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postEnforced: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[],\n postOrdered: [] as HooksListItem<\n PluginContext<TResolvedConfig, TSystemContext>\n >[]\n };\n\n [\n \"preEnforced\",\n \"preOrdered\",\n \"normal\",\n \"postEnforced\",\n \"postOrdered\"\n ].forEach(order => {\n if (\n current[key]?.[\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]\n ) {\n ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ] ??= [];\n ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ] = ret[key]![\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]!.concat(\n current[key][\n order as keyof HooksList<\n PluginContext<TResolvedConfig, TSystemContext>\n >\n ]!\n );\n }\n });\n });\n\n return ret;\n }, hooks);\n }\n\n return hooks;\n}\n\nexport async function callHook<\n TKey extends string,\n TResolvedConfig extends ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>,\n key: TKey,\n options: CallHookOptions & {\n environment?: string | EnvironmentContext<TResolvedConfig, TSystemContext>;\n },\n ...args: InferHookParameters<\n PluginContext<TResolvedConfig, TSystemContext>,\n TKey\n >\n) {\n return _callHook<TResolvedConfig, TSystemContext, TKey>(\n isSetObject(options?.environment)\n ? options.environment\n : await context.getEnvironment(options?.environment),\n key,\n { sequential: true, ...options },\n ...args\n );\n}\n"],"mappings":"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"}
@@ -1,11 +1,3 @@
1
-
2
-
3
- import __tsdown_shims_path from 'node:path'
4
- import __tsdown_shims_url from 'node:url'
5
-
6
- const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
- const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
-
9
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10
2
  const require_lib_resolver = require('./resolver.cjs');
11
3
  const require_lib_config = require('./config.cjs');
@@ -20,7 +12,7 @@ const require_lib_generate_types = require('./generate-types.cjs');
20
12
  const require_lib_install_dependencies = require('./install-dependencies.cjs');
21
13
  const require_lib_meta = require('./meta.cjs');
22
14
  const require_lib_plugins = require('./plugins.cjs');
23
- const require_fs = require('../schemas/fs.cjs');
15
+ const require_fs = require('../fs-C2lru696.cjs');
24
16
  require('./schemas.cjs');
25
17
  const require_lib_streaming_channel = require('./streaming-channel.cjs');
26
18
  const require_lib_typescript_tsconfig = require('./typescript/tsconfig.cjs');
@@ -1,24 +1,24 @@
1
- import { PartiallyResolvedContext, ResolvePackageConfigsResult, defineConfig, getDefaultLogLevel, getDefaultMode, loadParsedConfig, loadUserConfigFile, loadWorkspaceConfig, normalizeBasePath, resolvePackageConfigs, resolveRoot, tryResolveWorkspaceConfig } from "./config.cjs";
2
- import { getConfigProps, resolvePluginConfig } from "./context-helpers.cjs";
3
- import { getUniqueInputs, isFileReference, isResolvedEntryFileReference, resolveEntryOutput, resolveInput, resolveInputs, resolveInputsSync } from "./entry.cjs";
4
- import { createEventEmitter } from "./events.cjs";
5
- import { TypegenContext, emitBuiltinTypes, formatTypes, handleTypes } from "./generate-types.cjs";
6
- import { callHook, extractHooks, mergeConfigs, mergeResults } from "./hooks.cjs";
7
- import { installDependencies } from "./install-dependencies.cjs";
8
- import { CreateContextOptions, getPersistedMeta, getPrefixedRootHash, writeMetaFile } from "./meta.cjs";
9
- import { ResolvePluginsOptions, initPlugin, resolvePlugin, resolvePlugins } from "./plugins.cjs";
10
- import { CreateResolverOptions, createResolver } from "./resolver.cjs";
11
- import { FileId, FileMetadata, FileMetadata_KeyValuePair, FileStorage, FileSystem, _capnpFileId } from "../schemas/fs.cjs";
12
- import { BufferedChunk, CreateStreamReaderOptions, CreateStreamSinkOptions, StreamErrorPayload, StreamReader, StreamSink, StreamSinkEvents, createStreamReader, createStreamSink } from "./streaming-channel.cjs";
13
- import { VirtualFileSystemHost, createProgram } from "./typescript/ts-morph.cjs";
14
- import { findIncludeMatch, findMatch, getParsedTypeScriptConfig, getTsconfigDtsPath, getTsconfigFilePath, initializeTsconfig, isIncludeMatchFound, isMatchFound, resolveTsconfig, tryTsconfigFilePath } from "./typescript/tsconfig.cjs";
15
- import { combineContexts, isUnpluginBuilderVariant } from "./unplugin/helpers.cjs";
16
- import { CreateUnpluginModuleResolutionFunctionsOptions, createUnpluginModuleResolutionFunctions } from "./unplugin/module-resolution.cjs";
17
- import { CreateUnpluginOptions, CreateUnpluginResolverOptions, createUnplugin, createUnpluginResolver } from "./unplugin/plugin.cjs";
18
- import { FileHeaderOptions, getFileHeader, getFileHeaderWarning, getFileHeaderWarningText, getTypescriptFileHeader } from "./utilities/file-header.cjs";
19
- import { format, formatFolder } from "./utilities/format.cjs";
20
- import { getMagicString, getSourceFile, getString } from "./utilities/source-file.cjs";
21
- import { generateSourceMap } from "./utilities/source-map.cjs";
22
- import { writeFile } from "./utilities/write-file.cjs";
23
- import { VirtualFileSystem } from "./vfs.cjs";
1
+ import { a as getDefaultMode, c as loadWorkspaceConfig, d as resolveRoot, f as tryResolveWorkspaceConfig, i as getDefaultLogLevel, l as normalizeBasePath, n as ResolvePackageConfigsResult, o as loadParsedConfig, r as defineConfig, s as loadUserConfigFile, t as PartiallyResolvedContext, u as resolvePackageConfigs } from "../config-DKeDSykZ.cjs";
2
+ import { n as resolvePluginConfig, t as getConfigProps } from "../context-helpers-zXovPE7i.cjs";
3
+ import { a as resolveInput, i as resolveEntryOutput, n as isFileReference, o as resolveInputs, r as isResolvedEntryFileReference, s as resolveInputsSync, t as getUniqueInputs } from "../entry-BC_V2K2U.cjs";
4
+ import { t as createEventEmitter } from "../events-NA1XM2Vz.cjs";
5
+ import { i as handleTypes, n as emitBuiltinTypes, r as formatTypes, t as TypegenContext } from "../generate-types-CDkVosrS.cjs";
6
+ import { i as mergeResults, n as extractHooks, r as mergeConfigs, t as callHook } from "../index-xk4vSgtB.cjs";
7
+ import { t as installDependencies } from "../install-dependencies-CyeYsrfz.cjs";
8
+ import { i as writeMetaFile, n as getPersistedMeta, r as getPrefixedRootHash, t as CreateContextOptions } from "../meta-CdDd2ykC.cjs";
9
+ import { i as resolvePlugins, n as initPlugin, r as resolvePlugin, t as ResolvePluginsOptions } from "../plugins-DfL1fBZi.cjs";
10
+ import { n as createResolver, t as CreateResolverOptions } from "../resolver-CfCl--Eh.cjs";
11
+ import { a as FileSystem, i as FileStorage, n as FileMetadata, o as _capnpFileId, r as FileMetadata_KeyValuePair, t as FileId } from "../schemas-Zvqwdrw_.cjs";
12
+ import { a as StreamReader, c as createStreamReader, i as StreamErrorPayload, l as createStreamSink, n as CreateStreamReaderOptions, o as StreamSink, r as CreateStreamSinkOptions, s as StreamSinkEvents, t as BufferedChunk } from "../streaming-channel-CiyFd_6l.cjs";
13
+ import { n as createProgram, t as VirtualFileSystemHost } from "../ts-morph-BGgjbOgM.cjs";
14
+ import { a as getTsconfigFilePath, c as isMatchFound, i as getTsconfigDtsPath, l as resolveTsconfig, n as findMatch, o as initializeTsconfig, r as getParsedTypeScriptConfig, s as isIncludeMatchFound, t as findIncludeMatch, u as tryTsconfigFilePath } from "../tsconfig-DExoZEQ0.cjs";
15
+ import { n as isUnpluginBuilderVariant, t as combineContexts } from "../helpers-DBLIQW3U.cjs";
16
+ import { n as createUnpluginModuleResolutionFunctions, t as CreateUnpluginModuleResolutionFunctionsOptions } from "../module-resolution-D-w-EZaK.cjs";
17
+ import { i as createUnpluginResolver, n as CreateUnpluginResolverOptions, r as createUnplugin, t as CreateUnpluginOptions } from "../plugin-CzV-aFwU.cjs";
18
+ import { a as getTypescriptFileHeader, i as getFileHeaderWarningText, n as getFileHeader, r as getFileHeaderWarning, t as FileHeaderOptions } from "../file-header-Co9oo7aI.cjs";
19
+ import { n as formatFolder, t as format } from "../format-Cf-cgZ-s.cjs";
20
+ import { n as getSourceFile, r as getString, t as getMagicString } from "../source-file-CuuHaBL5.cjs";
21
+ import { t as generateSourceMap } from "../source-map-HU4IoICc.cjs";
22
+ import { t as writeFile } from "../write-file-BVMnXVPo.cjs";
23
+ import { t as VirtualFileSystem } from "../vfs-B9Vhnajc.cjs";
24
24
  export { BufferedChunk, CreateContextOptions, CreateResolverOptions, CreateStreamReaderOptions, CreateStreamSinkOptions, CreateUnpluginModuleResolutionFunctionsOptions, CreateUnpluginOptions, CreateUnpluginResolverOptions, FileHeaderOptions, FileId, FileMetadata, FileMetadata_KeyValuePair, FileStorage, FileSystem, PartiallyResolvedContext, ResolvePackageConfigsResult, ResolvePluginsOptions, StreamErrorPayload, StreamReader, StreamSink, StreamSinkEvents, TypegenContext, VirtualFileSystem, VirtualFileSystemHost, _capnpFileId, callHook, combineContexts, createEventEmitter, createProgram, createResolver, createStreamReader, createStreamSink, createUnplugin, createUnpluginModuleResolutionFunctions, createUnpluginResolver, defineConfig, emitBuiltinTypes, extractHooks, findIncludeMatch, findMatch, format, formatFolder, formatTypes, generateSourceMap, getConfigProps, getDefaultLogLevel, getDefaultMode, getFileHeader, getFileHeaderWarning, getFileHeaderWarningText, getMagicString, getParsedTypeScriptConfig, getPersistedMeta, getPrefixedRootHash, getSourceFile, getString, getTsconfigDtsPath, getTsconfigFilePath, getTypescriptFileHeader, getUniqueInputs, handleTypes, initPlugin, initializeTsconfig, installDependencies, isFileReference, isIncludeMatchFound, isMatchFound, isResolvedEntryFileReference, isUnpluginBuilderVariant, loadParsedConfig, loadUserConfigFile, loadWorkspaceConfig, mergeConfigs, mergeResults, normalizeBasePath, resolveEntryOutput, resolveInput, resolveInputs, resolveInputsSync, resolvePackageConfigs, resolvePlugin, resolvePluginConfig, resolvePlugins, resolveRoot, resolveTsconfig, tryResolveWorkspaceConfig, tryTsconfigFilePath, writeFile, writeMetaFile };