@powerlines/core 0.47.4 → 0.48.1

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 (437) hide show
  1. package/dist/constants/api.cjs +5 -5
  2. package/dist/constants/api.d.cts +3 -3
  3. package/dist/constants/api.d.cts.map +1 -1
  4. package/dist/constants/api.d.mts +3 -3
  5. package/dist/constants/api.d.mts.map +1 -1
  6. package/dist/constants/api.mjs +4 -4
  7. package/dist/constants/api.mjs.map +1 -1
  8. package/dist/constants/commands.cjs +1 -1
  9. package/dist/constants/commands.d.cts +1 -1
  10. package/dist/constants/commands.d.mts +1 -1
  11. package/dist/constants/commands.mjs +2 -2
  12. package/dist/constants/commands.mjs.map +1 -1
  13. package/dist/constants/devtools.cjs +23 -0
  14. package/dist/constants/devtools.d.cts +13 -0
  15. package/dist/constants/devtools.d.cts.map +1 -0
  16. package/dist/constants/devtools.d.mts +13 -0
  17. package/dist/constants/devtools.d.mts.map +1 -0
  18. package/dist/constants/devtools.mjs +14 -0
  19. package/dist/constants/devtools.mjs.map +1 -0
  20. package/dist/constants/extensions.cjs +21 -0
  21. package/dist/constants/extensions.d.cts +5 -0
  22. package/dist/constants/extensions.d.cts.map +1 -0
  23. package/dist/constants/extensions.d.mts +5 -0
  24. package/dist/constants/extensions.d.mts.map +1 -0
  25. package/dist/constants/extensions.mjs +20 -0
  26. package/dist/constants/extensions.mjs.map +1 -0
  27. package/dist/constants/fs.mjs.map +1 -1
  28. package/dist/constants/hooks.mjs.map +1 -1
  29. package/dist/constants/index.cjs +16 -4
  30. package/dist/constants/index.d.cts +4 -2
  31. package/dist/constants/index.d.mts +4 -2
  32. package/dist/constants/index.mjs +6 -4
  33. package/dist/constants/log-level.cjs +10 -10
  34. package/dist/constants/log-level.d.cts +10 -10
  35. package/dist/constants/log-level.d.mts +10 -10
  36. package/dist/constants/log-level.mjs +10 -10
  37. package/dist/constants/log-level.mjs.map +1 -1
  38. package/dist/constants/plugin.d.cts +2 -2
  39. package/dist/constants/plugin.d.mts +2 -2
  40. package/dist/constants/plugin.mjs.map +1 -1
  41. package/dist/context/base-context.cjs +121 -0
  42. package/dist/context/base-context.d.cts +81 -0
  43. package/dist/context/base-context.d.cts.map +1 -0
  44. package/dist/context/base-context.d.mts +81 -0
  45. package/dist/context/base-context.d.mts.map +1 -0
  46. package/dist/context/base-context.mjs +119 -0
  47. package/dist/context/base-context.mjs.map +1 -0
  48. package/dist/context/context.cjs +935 -0
  49. package/dist/context/context.d.cts +369 -0
  50. package/dist/context/context.d.cts.map +1 -0
  51. package/dist/context/context.d.mts +369 -0
  52. package/dist/context/context.d.mts.map +1 -0
  53. package/dist/context/context.mjs +933 -0
  54. package/dist/context/context.mjs.map +1 -0
  55. package/dist/context/environment-context.cjs +218 -0
  56. package/dist/context/environment-context.d.cts +100 -0
  57. package/dist/context/environment-context.d.cts.map +1 -0
  58. package/dist/context/environment-context.d.mts +100 -0
  59. package/dist/context/environment-context.d.mts.map +1 -0
  60. package/dist/context/environment-context.mjs +218 -0
  61. package/dist/context/environment-context.mjs.map +1 -0
  62. package/dist/context/execution-context.cjs +236 -0
  63. package/dist/context/execution-context.d.cts +106 -0
  64. package/dist/context/execution-context.d.cts.map +1 -0
  65. package/dist/context/execution-context.d.mts +106 -0
  66. package/dist/context/execution-context.d.mts.map +1 -0
  67. package/dist/context/execution-context.mjs +234 -0
  68. package/dist/context/execution-context.mjs.map +1 -0
  69. package/dist/context/index.cjs +12 -0
  70. package/dist/context/index.d.cts +6 -0
  71. package/dist/context/index.d.mts +6 -0
  72. package/dist/context/index.mjs +7 -0
  73. package/dist/context/plugin-context.cjs +82 -0
  74. package/dist/context/plugin-context.d.cts +18 -0
  75. package/dist/context/plugin-context.d.cts.map +1 -0
  76. package/dist/context/plugin-context.d.mts +18 -0
  77. package/dist/context/plugin-context.d.mts.map +1 -0
  78. package/dist/context/plugin-context.mjs +82 -0
  79. package/dist/context/plugin-context.mjs.map +1 -0
  80. package/dist/index.cjs +62 -3
  81. package/dist/index.d.cts +27 -16
  82. package/dist/index.d.mts +27 -16
  83. package/dist/index.mjs +17 -4
  84. package/dist/lib/config.cjs +160 -21
  85. package/dist/lib/config.d.cts +116 -12
  86. package/dist/lib/config.d.cts.map +1 -1
  87. package/dist/lib/config.d.mts +116 -12
  88. package/dist/lib/config.d.mts.map +1 -1
  89. package/dist/lib/config.mjs +154 -22
  90. package/dist/lib/config.mjs.map +1 -1
  91. package/dist/lib/context-helpers.cjs +42 -0
  92. package/dist/lib/context-helpers.d.cts +16 -0
  93. package/dist/lib/context-helpers.d.cts.map +1 -0
  94. package/dist/lib/context-helpers.d.mts +16 -0
  95. package/dist/lib/context-helpers.d.mts.map +1 -0
  96. package/dist/lib/context-helpers.mjs +41 -0
  97. package/dist/lib/context-helpers.mjs.map +1 -0
  98. package/dist/lib/entry.cjs +5 -6
  99. package/dist/lib/entry.d.cts +5 -5
  100. package/dist/lib/entry.d.cts.map +1 -1
  101. package/dist/lib/entry.d.mts +5 -5
  102. package/dist/lib/entry.d.mts.map +1 -1
  103. package/dist/lib/entry.mjs +5 -5
  104. package/dist/lib/entry.mjs.map +1 -1
  105. package/dist/lib/environment.cjs +72 -0
  106. package/dist/lib/environment.d.cts +12 -0
  107. package/dist/lib/environment.d.cts.map +1 -0
  108. package/dist/lib/environment.d.mts +12 -0
  109. package/dist/lib/environment.d.mts.map +1 -0
  110. package/dist/lib/environment.mjs +67 -0
  111. package/dist/lib/environment.mjs.map +1 -0
  112. package/dist/lib/events.cjs +43 -0
  113. package/dist/lib/events.d.cts +10 -0
  114. package/dist/lib/events.d.cts.map +1 -0
  115. package/dist/lib/events.d.mts +10 -0
  116. package/dist/lib/events.d.mts.map +1 -0
  117. package/dist/lib/events.mjs +42 -0
  118. package/dist/lib/events.mjs.map +1 -0
  119. package/dist/lib/generate-types.cjs +370 -0
  120. package/dist/lib/generate-types.d.cts +66 -0
  121. package/dist/lib/generate-types.d.cts.map +1 -0
  122. package/dist/lib/generate-types.d.mts +66 -0
  123. package/dist/lib/generate-types.d.mts.map +1 -0
  124. package/dist/lib/generate-types.mjs +368 -0
  125. package/dist/lib/generate-types.mjs.map +1 -0
  126. package/dist/lib/hooks.cjs +152 -0
  127. package/dist/lib/hooks.d.cts +28 -0
  128. package/dist/lib/hooks.d.cts.map +1 -0
  129. package/dist/lib/hooks.d.mts +28 -0
  130. package/dist/lib/hooks.d.mts.map +1 -0
  131. package/dist/lib/hooks.mjs +147 -0
  132. package/dist/lib/hooks.mjs.map +1 -0
  133. package/dist/lib/index.cjs +64 -3
  134. package/dist/lib/index.d.cts +18 -5
  135. package/dist/lib/index.d.mts +18 -5
  136. package/dist/lib/index.mjs +19 -4
  137. package/dist/lib/install-dependencies.cjs +24 -0
  138. package/dist/lib/install-dependencies.d.cts +12 -0
  139. package/dist/lib/install-dependencies.d.cts.map +1 -0
  140. package/dist/lib/install-dependencies.d.mts +12 -0
  141. package/dist/lib/install-dependencies.d.mts.map +1 -0
  142. package/dist/lib/install-dependencies.mjs +24 -0
  143. package/dist/lib/install-dependencies.mjs.map +1 -0
  144. package/dist/lib/meta.cjs +56 -0
  145. package/dist/lib/meta.d.cts +33 -0
  146. package/dist/lib/meta.d.cts.map +1 -0
  147. package/dist/lib/meta.d.mts +33 -0
  148. package/dist/lib/meta.d.mts.map +1 -0
  149. package/dist/lib/meta.mjs +54 -0
  150. package/dist/lib/meta.mjs.map +1 -0
  151. package/dist/lib/plugins.cjs +150 -0
  152. package/dist/lib/plugins.d.cts +39 -0
  153. package/dist/lib/plugins.d.cts.map +1 -0
  154. package/dist/lib/plugins.d.mts +39 -0
  155. package/dist/lib/plugins.d.mts.map +1 -0
  156. package/dist/lib/plugins.mjs +146 -0
  157. package/dist/lib/plugins.mjs.map +1 -0
  158. package/dist/lib/resolver.cjs +35 -0
  159. package/dist/lib/resolver.d.cts +20 -0
  160. package/dist/lib/resolver.d.cts.map +1 -0
  161. package/dist/lib/resolver.d.mts +20 -0
  162. package/dist/lib/resolver.d.mts.map +1 -0
  163. package/dist/lib/resolver.mjs +33 -0
  164. package/dist/lib/resolver.mjs.map +1 -0
  165. package/dist/lib/schemas.cjs +9 -0
  166. package/dist/lib/schemas.d.cts +2 -0
  167. package/dist/lib/schemas.d.mts +2 -0
  168. package/dist/lib/schemas.mjs +3 -0
  169. package/dist/lib/streaming-channel.cjs +259 -0
  170. package/dist/lib/streaming-channel.d.cts +126 -0
  171. package/dist/lib/streaming-channel.d.cts.map +1 -0
  172. package/dist/lib/streaming-channel.d.mts +126 -0
  173. package/dist/lib/streaming-channel.d.mts.map +1 -0
  174. package/dist/lib/streaming-channel.mjs +258 -0
  175. package/dist/lib/streaming-channel.mjs.map +1 -0
  176. package/dist/lib/typescript/index.cjs +16 -0
  177. package/dist/lib/typescript/index.d.cts +3 -0
  178. package/dist/lib/typescript/index.d.mts +3 -0
  179. package/dist/lib/typescript/index.mjs +4 -0
  180. package/dist/lib/typescript/ts-morph.cjs +105 -0
  181. package/dist/lib/typescript/ts-morph.d.cts +38 -0
  182. package/dist/lib/typescript/ts-morph.d.cts.map +1 -0
  183. package/dist/lib/typescript/ts-morph.d.mts +38 -0
  184. package/dist/lib/typescript/ts-morph.d.mts.map +1 -0
  185. package/dist/lib/typescript/ts-morph.mjs +102 -0
  186. package/dist/lib/typescript/ts-morph.mjs.map +1 -0
  187. package/dist/lib/typescript/tsconfig.cjs +253 -0
  188. package/dist/lib/typescript/tsconfig.d.cts +77 -0
  189. package/dist/lib/typescript/tsconfig.d.cts.map +1 -0
  190. package/dist/lib/typescript/tsconfig.d.mts +77 -0
  191. package/dist/lib/typescript/tsconfig.d.mts.map +1 -0
  192. package/dist/lib/typescript/tsconfig.mjs +240 -0
  193. package/dist/lib/typescript/tsconfig.mjs.map +1 -0
  194. package/dist/lib/unplugin/helpers.cjs +0 -1
  195. package/dist/lib/unplugin/helpers.d.cts.map +1 -1
  196. package/dist/lib/unplugin/helpers.d.mts.map +1 -1
  197. package/dist/lib/unplugin/helpers.mjs.map +1 -1
  198. package/dist/lib/unplugin/index.d.cts +3 -3
  199. package/dist/lib/unplugin/index.d.mts +3 -3
  200. package/dist/lib/unplugin/module-resolution.cjs +8 -9
  201. package/dist/lib/unplugin/module-resolution.d.cts +3 -4
  202. package/dist/lib/unplugin/module-resolution.d.cts.map +1 -1
  203. package/dist/lib/unplugin/module-resolution.d.mts +3 -4
  204. package/dist/lib/unplugin/module-resolution.d.mts.map +1 -1
  205. package/dist/lib/unplugin/module-resolution.mjs +8 -9
  206. package/dist/lib/unplugin/module-resolution.mjs.map +1 -1
  207. package/dist/lib/unplugin/plugin.cjs +54 -61
  208. package/dist/lib/unplugin/plugin.d.cts +5 -7
  209. package/dist/lib/unplugin/plugin.d.cts.map +1 -1
  210. package/dist/lib/unplugin/plugin.d.mts +5 -7
  211. package/dist/lib/unplugin/plugin.d.mts.map +1 -1
  212. package/dist/lib/unplugin/plugin.mjs +54 -60
  213. package/dist/lib/unplugin/plugin.mjs.map +1 -1
  214. package/dist/lib/utilities/file-header.cjs +2 -3
  215. package/dist/lib/utilities/file-header.d.cts +1 -2
  216. package/dist/lib/utilities/file-header.d.cts.map +1 -1
  217. package/dist/lib/utilities/file-header.d.mts +1 -2
  218. package/dist/lib/utilities/file-header.d.mts.map +1 -1
  219. package/dist/lib/utilities/file-header.mjs +2 -2
  220. package/dist/lib/utilities/file-header.mjs.map +1 -1
  221. package/dist/lib/utilities/format.cjs +1 -1
  222. package/dist/lib/utilities/format.d.cts.map +1 -1
  223. package/dist/lib/utilities/format.d.mts.map +1 -1
  224. package/dist/lib/utilities/format.mjs +1 -1
  225. package/dist/lib/utilities/format.mjs.map +1 -1
  226. package/dist/lib/utilities/index.cjs +1 -1
  227. package/dist/lib/utilities/index.d.cts +2 -2
  228. package/dist/lib/utilities/index.d.mts +2 -2
  229. package/dist/lib/utilities/index.mjs +1 -1
  230. package/dist/lib/utilities/source-file.d.cts.map +1 -1
  231. package/dist/lib/utilities/source-file.d.mts.map +1 -1
  232. package/dist/lib/utilities/source-file.mjs.map +1 -1
  233. package/dist/lib/utilities/source-map.d.cts.map +1 -1
  234. package/dist/lib/utilities/source-map.d.mts.map +1 -1
  235. package/dist/lib/utilities/source-map.mjs.map +1 -1
  236. package/dist/lib/utilities/write-file.cjs +0 -1
  237. package/dist/lib/utilities/write-file.mjs.map +1 -1
  238. package/dist/lib/vfs.cjs +1104 -0
  239. package/dist/lib/vfs.d.cts +321 -0
  240. package/dist/lib/vfs.d.cts.map +1 -0
  241. package/dist/lib/vfs.d.mts +321 -0
  242. package/dist/lib/vfs.d.mts.map +1 -0
  243. package/dist/lib/vfs.mjs +1102 -0
  244. package/dist/lib/vfs.mjs.map +1 -0
  245. package/dist/plugin-base.cjs +1 -2
  246. package/dist/plugin-base.d.cts +1 -5
  247. package/dist/plugin-base.d.cts.map +1 -1
  248. package/dist/plugin-base.d.mts +1 -5
  249. package/dist/plugin-base.d.mts.map +1 -1
  250. package/dist/plugin-base.mjs +1 -1
  251. package/dist/plugin-base.mjs.map +1 -1
  252. package/dist/plugin-utils/build-helpers.cjs +2 -3
  253. package/dist/plugin-utils/build-helpers.d.cts +3 -4
  254. package/dist/plugin-utils/build-helpers.d.cts.map +1 -1
  255. package/dist/plugin-utils/build-helpers.d.mts +3 -4
  256. package/dist/plugin-utils/build-helpers.d.mts.map +1 -1
  257. package/dist/plugin-utils/build-helpers.mjs +2 -2
  258. package/dist/plugin-utils/build-helpers.mjs.map +1 -1
  259. package/dist/plugin-utils/combine-plugins.cjs +0 -1
  260. package/dist/plugin-utils/combine-plugins.d.cts +7 -9
  261. package/dist/plugin-utils/combine-plugins.d.cts.map +1 -1
  262. package/dist/plugin-utils/combine-plugins.d.mts +7 -9
  263. package/dist/plugin-utils/combine-plugins.d.mts.map +1 -1
  264. package/dist/plugin-utils/combine-plugins.mjs.map +1 -1
  265. package/dist/plugin-utils/context-helpers.cjs +0 -1
  266. package/dist/plugin-utils/context-helpers.d.cts.map +1 -1
  267. package/dist/plugin-utils/context-helpers.d.mts.map +1 -1
  268. package/dist/plugin-utils/context-helpers.mjs.map +1 -1
  269. package/dist/plugin-utils/docs-helper.cjs +0 -1
  270. package/dist/plugin-utils/docs-helper.d.cts.map +1 -1
  271. package/dist/plugin-utils/docs-helper.d.mts.map +1 -1
  272. package/dist/plugin-utils/docs-helper.mjs.map +1 -1
  273. package/dist/plugin-utils/enable-plugin.cjs +33 -0
  274. package/dist/plugin-utils/enable-plugin.d.cts +29 -0
  275. package/dist/plugin-utils/enable-plugin.d.cts.map +1 -0
  276. package/dist/plugin-utils/enable-plugin.d.mts +29 -0
  277. package/dist/plugin-utils/enable-plugin.d.mts.map +1 -0
  278. package/dist/plugin-utils/enable-plugin.mjs +33 -0
  279. package/dist/plugin-utils/enable-plugin.mjs.map +1 -0
  280. package/dist/plugin-utils/extend.cjs +0 -1
  281. package/dist/plugin-utils/extend.mjs.map +1 -1
  282. package/dist/plugin-utils/filter.cjs +2 -2
  283. package/dist/plugin-utils/filter.d.cts.map +1 -1
  284. package/dist/plugin-utils/filter.d.mts.map +1 -1
  285. package/dist/plugin-utils/filter.mjs +2 -2
  286. package/dist/plugin-utils/filter.mjs.map +1 -1
  287. package/dist/plugin-utils/format-package-json.cjs +0 -1
  288. package/dist/plugin-utils/format-package-json.mjs.map +1 -1
  289. package/dist/plugin-utils/format.cjs +14 -7
  290. package/dist/plugin-utils/format.d.cts.map +1 -1
  291. package/dist/plugin-utils/format.d.mts.map +1 -1
  292. package/dist/plugin-utils/format.mjs +14 -6
  293. package/dist/plugin-utils/format.mjs.map +1 -1
  294. package/dist/plugin-utils/get-config-path.cjs +0 -1
  295. package/dist/plugin-utils/get-config-path.d.cts.map +1 -1
  296. package/dist/plugin-utils/get-config-path.d.mts.map +1 -1
  297. package/dist/plugin-utils/get-config-path.mjs.map +1 -1
  298. package/dist/plugin-utils/helpers.cjs +1 -2
  299. package/dist/plugin-utils/helpers.d.cts +18 -23
  300. package/dist/plugin-utils/helpers.d.cts.map +1 -1
  301. package/dist/plugin-utils/helpers.d.mts +18 -23
  302. package/dist/plugin-utils/helpers.d.mts.map +1 -1
  303. package/dist/plugin-utils/helpers.mjs +1 -1
  304. package/dist/plugin-utils/helpers.mjs.map +1 -1
  305. package/dist/plugin-utils/index.cjs +7 -2
  306. package/dist/plugin-utils/index.d.cts +8 -6
  307. package/dist/plugin-utils/index.d.mts +8 -6
  308. package/dist/plugin-utils/index.mjs +5 -3
  309. package/dist/plugin-utils/install.cjs +46 -0
  310. package/dist/plugin-utils/install.d.cts +23 -0
  311. package/dist/plugin-utils/install.d.cts.map +1 -0
  312. package/dist/plugin-utils/install.d.mts +23 -0
  313. package/dist/plugin-utils/install.d.mts.map +1 -0
  314. package/dist/plugin-utils/install.mjs +45 -0
  315. package/dist/plugin-utils/install.mjs.map +1 -0
  316. package/dist/plugin-utils/logging.cjs +50 -47
  317. package/dist/plugin-utils/logging.d.cts +3 -2
  318. package/dist/plugin-utils/logging.d.cts.map +1 -1
  319. package/dist/plugin-utils/logging.d.mts +3 -2
  320. package/dist/plugin-utils/logging.d.mts.map +1 -1
  321. package/dist/plugin-utils/logging.mjs +50 -47
  322. package/dist/plugin-utils/logging.mjs.map +1 -1
  323. package/dist/plugin-utils/merge.cjs +1 -1
  324. package/dist/plugin-utils/merge.d.cts +1 -2
  325. package/dist/plugin-utils/merge.d.cts.map +1 -1
  326. package/dist/plugin-utils/merge.d.mts +1 -2
  327. package/dist/plugin-utils/merge.d.mts.map +1 -1
  328. package/dist/plugin-utils/merge.mjs +1 -1
  329. package/dist/plugin-utils/merge.mjs.map +1 -1
  330. package/dist/plugin-utils/modules.cjs +1 -1
  331. package/dist/plugin-utils/modules.d.cts.map +1 -1
  332. package/dist/plugin-utils/modules.d.mts.map +1 -1
  333. package/dist/plugin-utils/modules.mjs +1 -1
  334. package/dist/plugin-utils/modules.mjs.map +1 -1
  335. package/dist/plugin-utils/paths.cjs +1 -2
  336. package/dist/plugin-utils/paths.d.cts.map +1 -1
  337. package/dist/plugin-utils/paths.d.mts.map +1 -1
  338. package/dist/plugin-utils/paths.mjs +1 -1
  339. package/dist/plugin-utils/paths.mjs.map +1 -1
  340. package/dist/plugin-utils/virtual.d.cts +1 -2
  341. package/dist/plugin-utils/virtual.d.cts.map +1 -1
  342. package/dist/plugin-utils/virtual.d.mts +1 -2
  343. package/dist/plugin-utils/virtual.d.mts.map +1 -1
  344. package/dist/plugin-utils/virtual.mjs.map +1 -1
  345. package/dist/schemas/fs.cjs +232 -0
  346. package/dist/schemas/fs.d.cts +127 -0
  347. package/dist/schemas/fs.d.cts.map +1 -0
  348. package/dist/schemas/fs.d.mts +127 -0
  349. package/dist/schemas/fs.d.mts.map +1 -0
  350. package/dist/schemas/fs.mjs +226 -0
  351. package/dist/schemas/fs.mjs.map +1 -0
  352. package/dist/storage/base.cjs +216 -0
  353. package/dist/storage/base.d.cts +200 -0
  354. package/dist/storage/base.d.cts.map +1 -0
  355. package/dist/storage/base.d.mts +200 -0
  356. package/dist/storage/base.d.mts.map +1 -0
  357. package/dist/storage/base.mjs +216 -0
  358. package/dist/storage/base.mjs.map +1 -0
  359. package/dist/storage/file-system.cjs +179 -0
  360. package/dist/storage/file-system.d.cts +127 -0
  361. package/dist/storage/file-system.d.cts.map +1 -0
  362. package/dist/storage/file-system.d.mts +127 -0
  363. package/dist/storage/file-system.d.mts.map +1 -0
  364. package/dist/storage/file-system.mjs +179 -0
  365. package/dist/storage/file-system.mjs.map +1 -0
  366. package/dist/storage/helpers.cjs +36 -0
  367. package/dist/storage/helpers.d.cts +25 -0
  368. package/dist/storage/helpers.d.cts.map +1 -0
  369. package/dist/storage/helpers.d.mts +25 -0
  370. package/dist/storage/helpers.d.mts.map +1 -0
  371. package/dist/storage/helpers.mjs +34 -0
  372. package/dist/storage/helpers.mjs.map +1 -0
  373. package/dist/storage/index.cjs +12 -0
  374. package/dist/storage/index.d.cts +5 -0
  375. package/dist/storage/index.d.mts +5 -0
  376. package/dist/storage/index.mjs +6 -0
  377. package/dist/storage/virtual.cjs +97 -0
  378. package/dist/storage/virtual.d.cts +80 -0
  379. package/dist/storage/virtual.d.cts.map +1 -0
  380. package/dist/storage/virtual.d.mts +80 -0
  381. package/dist/storage/virtual.d.mts.map +1 -0
  382. package/dist/storage/virtual.mjs +97 -0
  383. package/dist/storage/virtual.mjs.map +1 -0
  384. package/dist/types/api.d.cts +10 -162
  385. package/dist/types/api.d.cts.map +1 -1
  386. package/dist/types/api.d.mts +10 -162
  387. package/dist/types/api.d.mts.map +1 -1
  388. package/dist/types/config.d.cts +144 -181
  389. package/dist/types/config.d.cts.map +1 -1
  390. package/dist/types/config.d.mts +145 -182
  391. package/dist/types/config.d.mts.map +1 -1
  392. package/dist/types/context.d.cts +120 -184
  393. package/dist/types/context.d.cts.map +1 -1
  394. package/dist/types/context.d.mts +123 -187
  395. package/dist/types/context.d.mts.map +1 -1
  396. package/dist/types/fs.d.cts +1 -12
  397. package/dist/types/fs.d.cts.map +1 -1
  398. package/dist/types/fs.d.mts +2 -13
  399. package/dist/types/fs.d.mts.map +1 -1
  400. package/dist/types/hooks.d.cts +1 -12
  401. package/dist/types/hooks.d.cts.map +1 -1
  402. package/dist/types/hooks.d.mts +1 -12
  403. package/dist/types/hooks.d.mts.map +1 -1
  404. package/dist/types/index.d.cts +9 -11
  405. package/dist/types/index.d.mts +9 -11
  406. package/dist/types/logging.d.cts +5 -20
  407. package/dist/types/logging.d.cts.map +1 -1
  408. package/dist/types/logging.d.mts +5 -20
  409. package/dist/types/logging.d.mts.map +1 -1
  410. package/dist/types/plugin.d.cts +5 -15
  411. package/dist/types/plugin.d.cts.map +1 -1
  412. package/dist/types/plugin.d.mts +5 -15
  413. package/dist/types/plugin.d.mts.map +1 -1
  414. package/dist/types/tsconfig.d.cts +1 -8
  415. package/dist/types/tsconfig.d.cts.map +1 -1
  416. package/dist/types/tsconfig.d.mts +2 -9
  417. package/dist/types/tsconfig.d.mts.map +1 -1
  418. package/dist/types/unplugin.d.cts +6 -31
  419. package/dist/types/unplugin.d.cts.map +1 -1
  420. package/dist/types/unplugin.d.mts +6 -31
  421. package/dist/types/unplugin.d.mts.map +1 -1
  422. package/package.json +158 -25
  423. package/schemas/fs.capnp +42 -0
  424. package/dist/types/_internal.cjs +0 -0
  425. package/dist/types/_internal.d.cts +0 -91
  426. package/dist/types/_internal.d.cts.map +0 -1
  427. package/dist/types/_internal.d.mts +0 -91
  428. package/dist/types/_internal.d.mts.map +0 -1
  429. package/dist/types/_internal.mjs +0 -1
  430. package/dist/types/commands.d.cts +0 -16
  431. package/dist/types/commands.d.cts.map +0 -1
  432. package/dist/types/commands.d.mts +0 -16
  433. package/dist/types/commands.d.mts.map +0 -1
  434. package/dist/types/utils.d.cts +0 -9
  435. package/dist/types/utils.d.cts.map +0 -1
  436. package/dist/types/utils.d.mts +0 -9
  437. package/dist/types/utils.d.mts.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { DEFAULT_ENVIRONMENT } from "../constants/environments.mjs";
2
2
  import { DEFAULT_DEVELOPMENT_LOG_LEVEL, DEFAULT_PRODUCTION_LOG_LEVEL, DEFAULT_TEST_LOG_LEVEL, LOG_CATEGORIES_ARRAY, LOG_LEVELS, LogCategories, LogLevels } from "../constants/log-level.mjs";
3
+ import { kebabCase } from "@stryke/string-format/kebab-case";
3
4
  import { isSetObject } from "@stryke/type-checks/is-set-object";
4
5
  import { defu as defu$1 } from "defu";
5
- import { isSetString } from "@stryke/type-checks/is-set-string";
6
- import { isString } from "@stryke/type-checks/is-string";
7
- import { kebabCase } from "@stryke/string-format/kebab-case";
8
6
  import { getLogFn, getLogLevel } from "@storm-software/config-tools/logger";
9
7
  import { getColor } from "@storm-software/config-tools/utilities/colors";
10
8
  import { titleCase } from "@stryke/string-format/title-case";
9
+ import { isSetString } from "@stryke/type-checks/is-set-string";
10
+ import { isString } from "@stryke/type-checks/is-string";
11
11
  import { uuid } from "@stryke/unique-id/uuid";
12
12
  import chalk from "chalk";
13
13
 
@@ -34,11 +34,11 @@ function resolveLogLevel(logLevel, mode) {
34
34
  general: "trace",
35
35
  fs: "trace",
36
36
  performance: "trace",
37
- network: "trace",
37
+ communication: "trace",
38
38
  plugins: "trace",
39
39
  hooks: "trace",
40
40
  env: "trace",
41
- ipc: "trace",
41
+ rpc: "trace",
42
42
  config: "trace",
43
43
  babel: "trace"
44
44
  };
@@ -46,11 +46,11 @@ function resolveLogLevel(logLevel, mode) {
46
46
  general: "silent",
47
47
  fs: "silent",
48
48
  performance: "silent",
49
- network: "silent",
49
+ communication: "silent",
50
50
  plugins: "silent",
51
51
  hooks: "silent",
52
52
  env: "silent",
53
- ipc: "silent",
53
+ rpc: "silent",
54
54
  config: "silent",
55
55
  babel: "silent"
56
56
  };
@@ -62,11 +62,11 @@ function resolveLogLevel(logLevel, mode) {
62
62
  general: logLevel,
63
63
  fs: defaultLogLevel.fs,
64
64
  performance: logLevel,
65
- network: defaultLogLevel.network,
65
+ communication: defaultLogLevel.communication,
66
66
  plugins: logLevel,
67
67
  hooks: logLevel,
68
68
  env: defaultLogLevel.env,
69
- ipc: defaultLogLevel.ipc,
69
+ rpc: defaultLogLevel.rpc,
70
70
  config: defaultLogLevel.config,
71
71
  babel: logLevel
72
72
  };
@@ -76,29 +76,17 @@ function resolveLogLevel(logLevel, mode) {
76
76
  }
77
77
  return defaultLogLevel;
78
78
  }
79
- const BADGE_COLORS = [
80
- "#00A0DD",
81
- "#6FCE4E",
82
- "#FBBF24",
83
- "#F43F5E",
84
- "#3B82F6",
85
- "#A855F7",
86
- "#469592",
87
- "#288EDF",
88
- "#D8B4FE",
89
- "#10B981",
90
- "#EF4444",
91
- "#F0EC56",
92
- "#F472B6",
93
- "#22D3EE",
94
- "#EAB308",
95
- "#84CC16",
96
- "#F87171",
97
- "#0EA5E9",
98
- "#D946EF",
99
- "#FACC15",
100
- "#34D399",
101
- "#8B5CF6"
79
+ const colors = [
80
+ chalk.green,
81
+ chalk.greenBright,
82
+ chalk.red,
83
+ chalk.redBright,
84
+ chalk.cyan,
85
+ chalk.cyanBright,
86
+ chalk.yellow,
87
+ chalk.yellowBright,
88
+ chalk.magenta,
89
+ chalk.magentaBright
102
90
  ];
103
91
  const BRAND_COLOR = getColor("brand");
104
92
  /**
@@ -108,7 +96,9 @@ const BRAND_COLOR = getColor("brand");
108
96
  * @return A hexadecimal color string.
109
97
  */
110
98
  const getTextColor = (text) => {
111
- return BADGE_COLORS[text.split("").map((char) => char.charCodeAt(0)).reduce((ret, charCode) => ret + charCode, 0) % BADGE_COLORS.length] || BADGE_COLORS[0];
99
+ let code = 0;
100
+ for (let i = 0; i < text.length; ++i) code += text.charCodeAt(i);
101
+ return colors[code % colors.length] ?? chalk.cyanBright;
112
102
  };
113
103
  /**
114
104
  * Generate a consistent color based on the input text.
@@ -118,7 +108,7 @@ const getTextColor = (text) => {
118
108
  */
119
109
  const colorText = (text) => {
120
110
  const title = titleCase(text);
121
- return chalk.hex(getTextColor(title))(title);
111
+ return getTextColor(title)(title);
122
112
  };
123
113
  /**
124
114
  * Generate a consistent color based on the input text.
@@ -128,7 +118,7 @@ const colorText = (text) => {
128
118
  */
129
119
  const colorBackground = (text) => {
130
120
  const title = titleCase(text);
131
- return chalk.inverse.hex(getTextColor(title))(` ${title} `);
121
+ return chalk.inverse(getTextColor(title)(` ${title} `));
132
122
  };
133
123
  const consoleLog = (meta, ...args) => getLogFn(getLogLevel(meta.category === LogCategories.PERFORMANCE ? "performance" : meta.type), { logLevel: "all" })(`${meta.name ? chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.name)) : ""}${meta.name ? chalk.grey(" > ") : ""}${meta.command ? `${chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.command))}${chalk.grey(" > ")}` : ""}${meta.environment && kebabCase(meta.environment) !== "default" ? `${chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.environment))}${chalk.grey(" > ")}` : ""}${meta.plugin ? `${chalk.bold.hex(BRAND_COLOR)(meta.plugin)}${chalk.grey(" > ")}` : ""}${meta.source ? `${chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.source))}${chalk.grey(" > ")}` : ""}${meta.category && meta.category !== LogCategories.GENERAL && meta.category !== LogCategories.PERFORMANCE ? `${colorBackground(kebabCase(meta.category))} ` : ""}${args.join(" ")} `.trim());
134
124
  function isValidLogLevel(logLevel, type) {
@@ -181,6 +171,19 @@ const validateLogger = (type, name, options, callback) => {
181
171
  ...options
182
172
  },
183
173
  message
174
+ } : message instanceof Error || message.error ? {
175
+ name,
176
+ plugin: options.plugin,
177
+ message: `${(message instanceof Error ? message : message.error)?.message ? (message instanceof Error ? message : message.error)?.name ? `[${message.name}]: ${message.message}` : message.message : JSON.stringify(message)}${(message instanceof Error ? message : message.error)?.stack ? `
178
+ Stack Trace: ${message.stack}` : ""}`,
179
+ meta: {
180
+ type,
181
+ name,
182
+ category: LogCategories.GENERAL,
183
+ logId: uuid(),
184
+ timestamp: Date.now(),
185
+ ...options
186
+ }
184
187
  } : {
185
188
  name,
186
189
  plugin: options.plugin,
@@ -444,40 +447,40 @@ const consoleLogger = (meta, message) => consoleLog({
444
447
  const createLogger = (name, options, callback = consoleLogger) => {
445
448
  const result = {
446
449
  options: {
447
- ...options,
448
- name
450
+ name,
451
+ ...options
449
452
  },
450
453
  error: validateLogger("error", name, {
451
- ...options,
452
- name
454
+ name,
455
+ ...options
453
456
  }, (data) => callback({
454
457
  ...data.meta,
455
458
  type: "error"
456
459
  }, data.message)),
457
460
  warn: validateLogger("warn", name, {
458
- ...options,
459
- name
461
+ name,
462
+ ...options
460
463
  }, (data) => callback({
461
464
  ...data.meta,
462
465
  type: "warn"
463
466
  }, data.message)),
464
467
  info: validateLogger("info", name, {
465
- ...options,
466
- name
468
+ name,
469
+ ...options
467
470
  }, (data) => callback({
468
471
  ...data.meta,
469
472
  type: "info"
470
473
  }, data.message)),
471
474
  debug: validateLogger("debug", name, {
472
- ...options,
473
- name
475
+ name,
476
+ ...options
474
477
  }, (data) => callback({
475
478
  ...data.meta,
476
479
  type: "debug"
477
480
  }, data.message)),
478
481
  trace: validateLogger("trace", name, {
479
- ...options,
480
- name
482
+ name,
483
+ ...options
481
484
  }, (data) => callback({
482
485
  ...data.meta,
483
486
  type: "trace"
@@ -1 +1 @@
1
- {"version":3,"file":"logging.mjs","names":["defu"],"sources":["../../src/plugin-utils/logging.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 { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\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 { RequiredKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport chalk from \"chalk\";\nimport { defu } from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../constants/environments\";\nimport {\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n LOG_CATEGORIES_ARRAY,\n LOG_LEVELS,\n LogCategories,\n LogLevels\n} from \"../constants/log-level\";\nimport { Mode } from \"../types/config\";\nimport { UnresolvedContext } from \"../types/context\";\nimport type {\n CustomLogger,\n CustomLoggerMessage,\n LogCategory,\n LogFn,\n LogFnMeta,\n LogFnOptions,\n Logger,\n LoggerMessage,\n LoggerOptions,\n LogLevel,\n LogLevelResolvedConfig,\n LogLevelUserConfig,\n LogMeta\n} from \"../types/logging\";\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevel - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(logLevel: string): boolean;\n\n/**\n * Determines if the provided context is considered verbose (debug or trace).\n *\n * @param context - The context to check, which contains the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(context: UnresolvedContext): boolean;\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevelOrContext - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(\n logLevelOrContext: string | UnresolvedContext\n): boolean {\n const level = isString(logLevelOrContext)\n ? logLevelOrContext\n : logLevelOrContext.config.logLevel;\n\n return level === \"debug\" || level === \"trace\";\n}\n\n/**\n * Resolves the log level configuration based on the provided log level and mode, returning a complete LogLevelResolvedConfig object that specifies the log level for each log category.\n *\n * @param logLevel - The user-provided log level configuration, which can be a string or an object specifying log levels for each category.\n * @param mode - The current mode of the application (e.g., \"development\", \"test\", \"production\"), which determines the default log levels.\n * @returns A LogLevelResolvedConfig object specifying the log level for each log category.\n */\nexport function resolveLogLevel(\n logLevel?: LogLevelUserConfig,\n mode?: Mode\n): LogLevelResolvedConfig {\n if (logLevel === \"trace\") {\n return {\n general: \"trace\",\n fs: \"trace\",\n performance: \"trace\",\n network: \"trace\",\n plugins: \"trace\",\n hooks: \"trace\",\n env: \"trace\",\n ipc: \"trace\",\n config: \"trace\",\n babel: \"trace\"\n };\n } else if (logLevel === \"silent\") {\n return {\n general: \"silent\",\n fs: \"silent\",\n performance: \"silent\",\n network: \"silent\",\n plugins: \"silent\",\n hooks: \"silent\",\n env: \"silent\",\n ipc: \"silent\",\n config: \"silent\",\n babel: \"silent\"\n };\n }\n\n let defaultLogLevel: LogLevelResolvedConfig;\n if (mode === \"development\") {\n defaultLogLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mode === \"test\") {\n defaultLogLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n defaultLogLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n\n if (isSetString(logLevel)) {\n return {\n general: logLevel,\n fs: defaultLogLevel.fs,\n performance: logLevel,\n network: defaultLogLevel.network,\n plugins: logLevel,\n hooks: logLevel,\n env: defaultLogLevel.env,\n ipc: defaultLogLevel.ipc,\n config: defaultLogLevel.config,\n babel: logLevel\n };\n } else if (isSetObject(logLevel)) {\n if (\n Object.values(logLevel).filter(level => isSetString(level)).length ===\n LOG_CATEGORIES_ARRAY.length\n ) {\n return logLevel as LogLevelResolvedConfig;\n }\n\n return defu(logLevel, defaultLogLevel) as LogLevelResolvedConfig;\n }\n\n return defaultLogLevel;\n}\n\nconst BADGE_COLORS = [\n \"#00A0DD\",\n \"#6FCE4E\",\n \"#FBBF24\",\n \"#F43F5E\",\n \"#3B82F6\",\n \"#A855F7\",\n \"#469592\",\n \"#288EDF\",\n \"#D8B4FE\",\n \"#10B981\",\n \"#EF4444\",\n \"#F0EC56\",\n \"#F472B6\",\n \"#22D3EE\",\n \"#EAB308\",\n \"#84CC16\",\n \"#F87171\",\n \"#0EA5E9\",\n \"#D946EF\",\n \"#FACC15\",\n \"#34D399\",\n \"#8B5CF6\"\n] as const;\n\nconst BRAND_COLOR = getColor(\"brand\");\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const getTextColor = (text: string): string => {\n return (\n BADGE_COLORS[\n text\n .split(\"\")\n .map(char => char.charCodeAt(0))\n .reduce((ret, charCode) => ret + charCode, 0) % BADGE_COLORS.length\n ] || BADGE_COLORS[0]\n );\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorText = (text: string): string => {\n const title = titleCase(text);\n\n return chalk.hex(getTextColor(title))(title);\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorBackground = (text: string): string => {\n const title = titleCase(text);\n\n return chalk.inverse.hex(getTextColor(title))(` ${title} `);\n};\n\nexport const consoleLog = (meta: LogMeta, ...args: string[]) =>\n getLogFn(\n getLogLevel(\n meta.category === LogCategories.PERFORMANCE ? \"performance\" : meta.type\n ),\n {\n logLevel: \"all\"\n }\n )(\n `${meta.name ? chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.name)) : \"\"}${meta.name ? chalk.grey(\" > \") : \"\"}${\n meta.command\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.command)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.environment && kebabCase(meta.environment) !== DEFAULT_ENVIRONMENT\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.environment)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.plugin\n ? `${chalk.bold.hex(BRAND_COLOR)(meta.plugin)}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.source\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.source)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.category &&\n meta.category !== LogCategories.GENERAL &&\n meta.category !== LogCategories.PERFORMANCE\n ? `${colorBackground(kebabCase(meta.category))} `\n : \"\"\n }${args.join(\" \")} `.trim()\n );\n\nexport function isValidLogLevel(logLevel: LogLevel, type: LogLevel): boolean {\n if (logLevel === LogLevels.SILENT) {\n return false;\n }\n\n return LOG_LEVELS.indexOf(logLevel) >= LOG_LEVELS.indexOf(type);\n}\n\nexport function isValidLogLevelConfig(\n type: LogLevel,\n logLevel: LogLevelResolvedConfig,\n category: LogCategory = LogCategories.GENERAL\n): boolean {\n return isValidLogLevel(logLevel[category], type);\n}\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogFn = (name: string, options: LogFnOptions): LogFn => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (meta: LogFnMeta | LogLevel, ...args: string[]) => {\n const logMeta = isSetObject(meta)\n ? {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n ...meta,\n name\n }\n : {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n type: meta,\n name\n };\n\n if (\n logMeta.$$ipc ||\n isValidLogLevelConfig(\n logMeta.type,\n logLevel,\n logMeta.category ? logMeta.category : LogCategories.GENERAL\n )\n ) {\n consoleLog(logMeta, ...args);\n }\n };\n};\n\nconst validateLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback: (message: LoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n },\n message\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...options,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback(params);\n }\n };\n};\n\nconst validateCustomLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback?: (message: string | LoggerMessage) => void,\n customCallback?: (message: CustomLoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now()\n },\n message\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback?.(params);\n customCallback?.(params);\n }\n };\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param secondaryLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogger = (logger: Logger, secondaryLogger: Logger): Logger => {\n const options = { ...secondaryLogger.options, ...logger.options };\n\n const result = {\n options,\n error: validateLogger(\n \"error\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.error?.(message);\n secondaryLogger.error?.(message);\n }\n ),\n warn: validateLogger(\n \"warn\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.warn?.(message);\n secondaryLogger.warn?.(message);\n }\n ),\n info: validateLogger(\n \"info\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.info?.(message);\n secondaryLogger.info?.(message);\n }\n ),\n debug: validateLogger(\n \"debug\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.debug?.(message);\n secondaryLogger.debug?.(message);\n }\n ),\n trace: validateLogger(\n \"trace\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.trace?.(message);\n secondaryLogger.trace?.(message);\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param logFn - The custom logging function to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logging function, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogFn = (logger: Logger, logFn: LogFn): Logger => {\n const result = {\n options: logger.options,\n error: validateLogger(\n \"error\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.error?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"error\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n warn: validateLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.warn?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"warn\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n info: validateLogger(\n \"info\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.info?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"info\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n debug: validateLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.debug?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"debug\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n trace: validateLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.trace?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"trace\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param customLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withCustomLogger = (\n logger: Logger,\n customLogger: CustomLogger\n): Logger => {\n const result = {\n options: logger.options,\n error: validateCustomLogger(\n \"error\",\n logger.options.name,\n logger.options,\n logger.error.bind(logger),\n customLogger.error?.bind(customLogger)\n ),\n warn: validateCustomLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n logger.warn.bind(logger),\n customLogger.warn?.bind(customLogger)\n ),\n info: validateCustomLogger(\n \"info\",\n logger.options.name,\n logger.options,\n logger.info.bind(logger),\n customLogger.info?.bind(customLogger)\n ),\n debug: validateCustomLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n logger.debug.bind(logger),\n customLogger.debug?.bind(customLogger)\n ),\n trace: validateCustomLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n logger.trace.bind(logger),\n customLogger.trace?.bind(customLogger)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\nexport const consoleLogger: LogFn = (meta: LogFnMeta, message: string) =>\n consoleLog(\n {\n type: isSetString(meta) ? meta : meta.type,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...(isSetObject(meta) ? meta : {})\n },\n message\n );\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogger = (\n name: string,\n options: LoggerOptions,\n callback: LogFn = consoleLogger\n): Logger => {\n const result = {\n options: { ...options, name },\n error: validateLogger(\"error\", name, { ...options, name }, data =>\n callback({ ...data.meta, type: \"error\" }, data.message)\n ),\n warn: validateLogger(\"warn\", name, { ...options, name }, data =>\n callback({ ...data.meta, type: \"warn\" }, data.message)\n ),\n info: validateLogger(\"info\", name, { ...options, name }, data =>\n callback({ ...data.meta, type: \"info\" }, data.message)\n ),\n debug: validateLogger(\"debug\", name, { ...options, name }, data =>\n callback({ ...data.meta, type: \"debug\" }, data.message)\n ),\n trace: validateLogger(\"trace\", name, { ...options, name }, data =>\n callback({ ...data.meta, type: \"trace\" }, data.message)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Extend a logging function with a specific name, adding a colored badge to the log output.\n *\n * @param logFn - The original logging function to extend.\n * @param options - The overlay metadata to use for the badge in the log output.\n * @returns A new logging function that includes the badge in its output.\n */\nexport const extendLogFn = (logFn: LogFn, options: LogFnOptions): LogFn => {\n return (meta, ...args) =>\n options.source || options.category\n ? logFn(\n isSetObject(meta)\n ? { ...options, ...meta }\n : { ...options, type: meta },\n `${colorBackground(String(options.source || options.category))} ${args\n .filter(Boolean)\n .map(arg => String(arg).trim())\n .join(\" \")} `\n )\n : logFn(meta, ...args);\n};\n\n/**\n * Extend a logger with a specific name and options, adding a colored badge to the log output for each log message generated by the logger.\n *\n * @param logger - The original logger to extend.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the extended logger.\n * @returns A new logger that includes the badge in its output for each log message.\n */\nexport const extendLogger = (\n logger: Logger,\n options: LoggerOptions\n): Logger => {\n const opts = { ...logger.options, ...options } as RequiredKeys<\n LoggerOptions,\n \"name\"\n >;\n\n const result = {\n options: opts,\n error: validateLogger(\"error\", opts.name, opts, logger.error.bind(logger)),\n warn: validateLogger(\"warn\", opts.name, opts, logger.warn.bind(logger)),\n info: validateLogger(\"info\", opts.name, opts, logger.info.bind(logger)),\n debug: validateLogger(\"debug\", opts.name, opts, logger.debug.bind(logger)),\n trace: validateLogger(\"trace\", opts.name, opts, logger.trace.bind(logger))\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"logging.mjs","names":["defu"],"sources":["../../src/plugin-utils/logging.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 { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\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 { RequiredKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport chalk, { ChalkInstance } from \"chalk\";\nimport { defu } from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../constants/environments\";\nimport {\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n LOG_CATEGORIES_ARRAY,\n LOG_LEVELS,\n LogCategories,\n LogLevels\n} from \"../constants/log-level\";\nimport { Mode } from \"../types/config\";\nimport { UnresolvedContext } from \"../types/context\";\nimport type {\n CustomLogger,\n CustomLoggerMessage,\n LogCategory,\n LogFn,\n LogFnMeta,\n LogFnOptions,\n Logger,\n LoggerMessage,\n LoggerOptions,\n LogLevel,\n LogLevelResolvedConfig,\n LogLevelUserConfig,\n LogMeta\n} from \"../types/logging\";\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevel - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(logLevel: string): boolean;\n\n/**\n * Determines if the provided context is considered verbose (debug or trace).\n *\n * @param context - The context to check, which contains the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(context: UnresolvedContext): boolean;\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevelOrContext - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(\n logLevelOrContext: string | UnresolvedContext\n): boolean {\n const level = isString(logLevelOrContext)\n ? logLevelOrContext\n : logLevelOrContext.config.logLevel;\n\n return level === \"debug\" || level === \"trace\";\n}\n\n/**\n * Resolves the log level configuration based on the provided log level and mode, returning a complete LogLevelResolvedConfig object that specifies the log level for each log category.\n *\n * @param logLevel - The user-provided log level configuration, which can be a string or an object specifying log levels for each category.\n * @param mode - The current mode of the application (e.g., \"development\", \"test\", \"production\"), which determines the default log levels.\n * @returns A LogLevelResolvedConfig object specifying the log level for each log category.\n */\nexport function resolveLogLevel(\n logLevel?: LogLevelUserConfig,\n mode?: Mode\n): LogLevelResolvedConfig {\n if (logLevel === \"trace\") {\n return {\n general: \"trace\",\n fs: \"trace\",\n performance: \"trace\",\n communication: \"trace\",\n plugins: \"trace\",\n hooks: \"trace\",\n env: \"trace\",\n rpc: \"trace\",\n config: \"trace\",\n babel: \"trace\"\n };\n } else if (logLevel === \"silent\") {\n return {\n general: \"silent\",\n fs: \"silent\",\n performance: \"silent\",\n communication: \"silent\",\n plugins: \"silent\",\n hooks: \"silent\",\n env: \"silent\",\n rpc: \"silent\",\n config: \"silent\",\n babel: \"silent\"\n };\n }\n\n let defaultLogLevel: LogLevelResolvedConfig;\n if (mode === \"development\") {\n defaultLogLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mode === \"test\") {\n defaultLogLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n defaultLogLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n\n if (isSetString(logLevel)) {\n return {\n general: logLevel,\n fs: defaultLogLevel.fs,\n performance: logLevel,\n communication: defaultLogLevel.communication,\n plugins: logLevel,\n hooks: logLevel,\n env: defaultLogLevel.env,\n rpc: defaultLogLevel.rpc,\n config: defaultLogLevel.config,\n babel: logLevel\n };\n } else if (isSetObject(logLevel)) {\n if (\n Object.values(logLevel).filter(level => isSetString(level)).length ===\n LOG_CATEGORIES_ARRAY.length\n ) {\n return logLevel as LogLevelResolvedConfig;\n }\n\n return defu(logLevel, defaultLogLevel) as LogLevelResolvedConfig;\n }\n\n return defaultLogLevel;\n}\n\nconst colors = [\n chalk.green,\n chalk.greenBright,\n chalk.red,\n chalk.redBright,\n chalk.cyan,\n chalk.cyanBright,\n chalk.yellow,\n chalk.yellowBright,\n chalk.magenta,\n chalk.magentaBright\n] as const;\n\nconst BRAND_COLOR = getColor(\"brand\");\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const getTextColor = (text: string): ChalkInstance => {\n let code = 0;\n for (let i = 0; i < text.length; ++i) {\n code += text.charCodeAt(i);\n }\n\n return colors[code % colors.length] ?? chalk.cyanBright;\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorText = (text: string): string => {\n const title = titleCase(text);\n\n return getTextColor(title)(title);\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorBackground = (text: string): string => {\n const title = titleCase(text);\n\n return chalk.inverse(getTextColor(title)(` ${title} `));\n};\n\nexport const consoleLog = (meta: LogMeta, ...args: string[]) =>\n getLogFn(\n getLogLevel(\n meta.category === LogCategories.PERFORMANCE ? \"performance\" : meta.type\n ),\n {\n logLevel: \"all\"\n }\n )(\n `${meta.name ? chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.name)) : \"\"}${meta.name ? chalk.grey(\" > \") : \"\"}${\n meta.command\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.command)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.environment && kebabCase(meta.environment) !== DEFAULT_ENVIRONMENT\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.environment)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.plugin\n ? `${chalk.bold.hex(BRAND_COLOR)(meta.plugin)}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.source\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.source)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.category &&\n meta.category !== LogCategories.GENERAL &&\n meta.category !== LogCategories.PERFORMANCE\n ? `${colorBackground(kebabCase(meta.category))} `\n : \"\"\n }${args.join(\" \")} `.trim()\n );\n\nexport function isValidLogLevel(logLevel: LogLevel, type: LogLevel): boolean {\n if (logLevel === LogLevels.SILENT) {\n return false;\n }\n\n return LOG_LEVELS.indexOf(logLevel) >= LOG_LEVELS.indexOf(type);\n}\n\nexport function isValidLogLevelConfig(\n type: LogLevel,\n logLevel: LogLevelResolvedConfig,\n category: LogCategory = LogCategories.GENERAL\n): boolean {\n return isValidLogLevel(logLevel[category], type);\n}\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogFn = (name: string, options: LogFnOptions): LogFn => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (meta: LogFnMeta | LogLevel, ...args: string[]) => {\n const logMeta = isSetObject(meta)\n ? {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n ...meta,\n name\n }\n : {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n type: meta,\n name\n };\n\n if (\n logMeta.$$ipc ||\n isValidLogLevelConfig(\n logMeta.type,\n logLevel,\n logMeta.category ? logMeta.category : LogCategories.GENERAL\n )\n ) {\n consoleLog(logMeta, ...args);\n }\n };\n};\n\nconst validateLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback: (message: LoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage | Error) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n },\n message\n }\n : message instanceof Error || message.error\n ? {\n name,\n plugin: options.plugin,\n message: `${\n (message instanceof Error ? message : message.error)?.message\n ? (message instanceof Error ? message : message.error)?.name\n ? `[${message.name}]: ${message.message}`\n : message.message\n : JSON.stringify(message)\n }${\n (message instanceof Error ? message : message.error)?.stack\n ? `\nStack Trace: ${message.stack}`\n : \"\"\n }`,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n }\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...options,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback(params);\n }\n };\n};\n\nconst validateCustomLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback?: (message: string | LoggerMessage) => void,\n customCallback?: (message: CustomLoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now()\n },\n message\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback?.(params);\n customCallback?.(params);\n }\n };\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param secondaryLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogger = (logger: Logger, secondaryLogger: Logger): Logger => {\n const options = { ...secondaryLogger.options, ...logger.options };\n\n const result = {\n options,\n error: validateLogger(\n \"error\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.error?.(message);\n secondaryLogger.error?.(message);\n }\n ),\n warn: validateLogger(\n \"warn\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.warn?.(message);\n secondaryLogger.warn?.(message);\n }\n ),\n info: validateLogger(\n \"info\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.info?.(message);\n secondaryLogger.info?.(message);\n }\n ),\n debug: validateLogger(\n \"debug\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.debug?.(message);\n secondaryLogger.debug?.(message);\n }\n ),\n trace: validateLogger(\n \"trace\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.trace?.(message);\n secondaryLogger.trace?.(message);\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param logFn - The custom logging function to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logging function, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogFn = (logger: Logger, logFn: LogFn): Logger => {\n const result = {\n options: logger.options,\n error: validateLogger(\n \"error\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.error?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"error\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n warn: validateLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.warn?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"warn\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n info: validateLogger(\n \"info\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.info?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"info\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n debug: validateLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.debug?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"debug\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n trace: validateLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.trace?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"trace\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param customLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withCustomLogger = (\n logger: Logger,\n customLogger: CustomLogger\n): Logger => {\n const result = {\n options: logger.options,\n error: validateCustomLogger(\n \"error\",\n logger.options.name,\n logger.options,\n logger.error.bind(logger),\n customLogger.error?.bind(customLogger)\n ),\n warn: validateCustomLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n logger.warn.bind(logger),\n customLogger.warn?.bind(customLogger)\n ),\n info: validateCustomLogger(\n \"info\",\n logger.options.name,\n logger.options,\n logger.info.bind(logger),\n customLogger.info?.bind(customLogger)\n ),\n debug: validateCustomLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n logger.debug.bind(logger),\n customLogger.debug?.bind(customLogger)\n ),\n trace: validateCustomLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n logger.trace.bind(logger),\n customLogger.trace?.bind(customLogger)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\nexport const consoleLogger: LogFn = (meta: LogFnMeta, message: string) =>\n consoleLog(\n {\n type: isSetString(meta) ? meta : meta.type,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...(isSetObject(meta) ? meta : {})\n },\n message\n );\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogger = (\n name: string | undefined,\n options: LoggerOptions,\n callback: LogFn = consoleLogger\n): Logger => {\n const result = {\n options: { name, ...options },\n error: validateLogger(\"error\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"error\" }, data.message)\n ),\n warn: validateLogger(\"warn\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"warn\" }, data.message)\n ),\n info: validateLogger(\"info\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"info\" }, data.message)\n ),\n debug: validateLogger(\"debug\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"debug\" }, data.message)\n ),\n trace: validateLogger(\"trace\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"trace\" }, data.message)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Extend a logging function with a specific name, adding a colored badge to the log output.\n *\n * @param logFn - The original logging function to extend.\n * @param options - The overlay metadata to use for the badge in the log output.\n * @returns A new logging function that includes the badge in its output.\n */\nexport const extendLogFn = (logFn: LogFn, options: LogFnOptions): LogFn => {\n return (meta, ...args) =>\n options.source || options.category\n ? logFn(\n isSetObject(meta)\n ? { ...options, ...meta }\n : { ...options, type: meta },\n `${colorBackground(String(options.source || options.category))} ${args\n .filter(Boolean)\n .map(arg => String(arg).trim())\n .join(\" \")} `\n )\n : logFn(meta, ...args);\n};\n\n/**\n * Extend a logger with a specific name and options, adding a colored badge to the log output for each log message generated by the logger.\n *\n * @param logger - The original logger to extend.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the extended logger.\n * @returns A new logger that includes the badge in its output for each log message.\n */\nexport const extendLogger = (\n logger: Logger,\n options: LoggerOptions\n): Logger => {\n const opts = { ...logger.options, ...options } as RequiredKeys<\n LoggerOptions,\n \"name\"\n >;\n\n const result = {\n options: opts,\n error: validateLogger(\"error\", opts.name, opts, logger.error.bind(logger)),\n warn: validateLogger(\"warn\", opts.name, opts, logger.warn.bind(logger)),\n info: validateLogger(\"info\", opts.name, opts, logger.info.bind(logger)),\n debug: validateLogger(\"debug\", opts.name, opts, logger.debug.bind(logger)),\n trace: validateLogger(\"trace\", opts.name, opts, logger.trace.bind(logger))\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n"],"mappings":"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"}
@@ -3,10 +3,10 @@ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_plugin_utils_helpers = require('./helpers.cjs');
4
4
  let defu = require("defu");
5
5
  defu = require_runtime.__toESM(defu, 1);
6
- let _stryke_helpers_get_unique = require("@stryke/helpers/get-unique");
7
6
  let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
8
7
  let _stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
9
8
  let _stryke_type_checks_is_set = require("@stryke/type-checks/is-set");
9
+ let _stryke_helpers_get_unique = require("@stryke/helpers/get-unique");
10
10
  let _stryke_type_checks_is_set_array = require("@stryke/type-checks/is-set-array");
11
11
 
12
12
  //#region src/plugin-utils/merge.ts
@@ -28,7 +28,6 @@ declare function merge<TContext extends PluginContext = PluginContext>(pluginA:
28
28
  * @returns The merged configuration object.
29
29
  */
30
30
  declare const mergeConfig: (...configs: unknown[]) => ResolvedConfig;
31
- declare type __ΩMergeResult = any[];
32
31
  //#endregion
33
- export { MergeResult, __ΩMergeResult, merge, mergeConfig };
32
+ export { MergeResult, merge, mergeConfig };
34
33
  //# sourceMappingURL=merge.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.cts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"mappings":";;;;KAgCY,WAAA,kBACO,aAAA,mBACA,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,oBACjC,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,KAElD,QAAA,SAAiB,MAAA,CAAO,QAAA,IACpB,MAAA,CAAO,QAAA,IACP,QAAA,SAAiB,MAAA,CAAO,QAAA,IACtB,MAAA,CAAO,QAAA,IACP,aAAA,CAAc,QAAA;;;;;AATtB;;;iBAwCgB,KAAA,kBAAuB,aAAA,GAAgB,aAAA,CAAA,CACrD,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,GAC1C,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,IACzC,WAAA,CAAY,QAAA,SAAiB,OAAA,SAAgB,OAAA;;;;;;;;;;;;;;;;;cAwBnC,WAAA,MAuCH,OAAA,gBAAuB,cAAA;AAAA"}
1
+ {"version":3,"file":"merge.d.cts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"mappings":";;;;KAgCY,WAAA,kBACO,aAAA,mBACA,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,oBACjC,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,KAElD,QAAA,SAAiB,MAAA,CAAO,QAAA,IACpB,MAAA,CAAO,QAAA,IACP,QAAA,SAAiB,MAAA,CAAO,QAAA,IACtB,MAAA,CAAO,QAAA,IACP,aAAA,CAAc,QAAA;;;;;AATtB;;;iBAwCgB,KAAA,kBAAuB,aAAA,GAAgB,aAAA,CAAA,CACrD,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,GAC1C,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,IACzC,WAAA,CAAY,QAAA,SAAiB,OAAA,SAAgB,OAAA;;;;;;;;;;;;;;;;;cAwBnC,WAAA,MAuCH,OAAA,gBAAuB,cAAc"}
@@ -28,7 +28,6 @@ declare function merge<TContext extends PluginContext = PluginContext>(pluginA:
28
28
  * @returns The merged configuration object.
29
29
  */
30
30
  declare const mergeConfig: (...configs: unknown[]) => ResolvedConfig;
31
- declare type __ΩMergeResult = any[];
32
31
  //#endregion
33
- export { MergeResult, __ΩMergeResult, merge, mergeConfig };
32
+ export { MergeResult, merge, mergeConfig };
34
33
  //# sourceMappingURL=merge.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.mts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"mappings":";;;;KAgCY,WAAA,kBACO,aAAA,mBACA,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,oBACjC,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,KAElD,QAAA,SAAiB,MAAA,CAAO,QAAA,IACpB,MAAA,CAAO,QAAA,IACP,QAAA,SAAiB,MAAA,CAAO,QAAA,IACtB,MAAA,CAAO,QAAA,IACP,aAAA,CAAc,QAAA;;;;;AATtB;;;iBAwCgB,KAAA,kBAAuB,aAAA,GAAgB,aAAA,CAAA,CACrD,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,GAC1C,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,IACzC,WAAA,CAAY,QAAA,SAAiB,OAAA,SAAgB,OAAA;;;;;;;;;;;;;;;;;cAwBnC,WAAA,MAuCH,OAAA,gBAAuB,cAAA;AAAA"}
1
+ {"version":3,"file":"merge.d.mts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"mappings":";;;;KAgCY,WAAA,kBACO,aAAA,mBACA,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,oBACjC,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,KAElD,QAAA,SAAiB,MAAA,CAAO,QAAA,IACpB,MAAA,CAAO,QAAA,IACP,QAAA,SAAiB,MAAA,CAAO,QAAA,IACtB,MAAA,CAAO,QAAA,IACP,aAAA,CAAc,QAAA;;;;;AATtB;;;iBAwCgB,KAAA,kBAAuB,aAAA,GAAgB,aAAA,CAAA,CACrD,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,GAC1C,OAAA,EAAS,MAAA,CAAO,QAAA,IAAY,aAAA,CAAc,QAAA,IACzC,WAAA,CAAY,QAAA,SAAiB,OAAA,SAAgB,OAAA;;;;;;;;;;;;;;;;;cAwBnC,WAAA,MAuCH,OAAA,gBAAuB,cAAc"}
@@ -1,9 +1,9 @@
1
1
  import { getHookHandler, isPluginHook } from "./helpers.mjs";
2
2
  import defu, { createDefu } from "defu";
3
- import { getUnique } from "@stryke/helpers/get-unique";
4
3
  import { isSetString } from "@stryke/type-checks/is-set-string";
5
4
  import { isString } from "@stryke/type-checks/is-string";
6
5
  import { isSet } from "@stryke/type-checks/is-set";
6
+ import { getUnique } from "@stryke/helpers/get-unique";
7
7
  import { isSetArray } from "@stryke/type-checks/is-set-array";
8
8
 
9
9
  //#region src/plugin-utils/merge.ts
@@ -1 +1 @@
1
- {"version":3,"file":"merge.mjs","names":[],"sources":["../../src/plugin-utils/merge.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 { getUnique } from \"@stryke/helpers/get-unique\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu, { createDefu } from \"defu\";\nimport type {\n PartialPlugin,\n Plugin,\n PluginContext,\n ResolvedConfig\n} from \"../types\";\nimport { getHookHandler, isPluginHook } from \"./helpers\";\n\nexport type MergeResult<\n TContext extends PluginContext,\n TPluginA extends Plugin<TContext> | PartialPlugin<TContext>,\n TPluginB extends Plugin<TContext> | PartialPlugin<TContext>\n> =\n TPluginA extends Plugin<TContext>\n ? Plugin<TContext>\n : TPluginB extends Plugin<TContext>\n ? Plugin<TContext>\n : PartialPlugin<TContext>;\n\nconst mergePlugin = createDefu((obj, key, value) => {\n if (isPluginHook(obj[key]) && isPluginHook(value)) {\n obj[key] = {\n ...obj[key],\n ...value,\n handler: async (...params: any[]) => {\n const [resultA, resultB] = await Promise.all([\n // eslint-disable-next-line ts/no-unsafe-call\n (getHookHandler(obj[key]) as any)(...params),\n // eslint-disable-next-line ts/no-unsafe-call\n (getHookHandler(value) as any)(...params)\n ]);\n\n return resultB && resultA ? defu(resultA, resultB) : resultA || resultB;\n }\n };\n return true;\n }\n\n return false;\n});\n\n/**\n * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.\n *\n * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.\n * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.\n * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.\n */\nexport function merge<TContext extends PluginContext = PluginContext>(\n pluginA: Plugin<TContext> | PartialPlugin<TContext>,\n pluginB: Plugin<TContext> | PartialPlugin<TContext>\n): MergeResult<TContext, typeof pluginA, typeof pluginB> {\n return mergePlugin(pluginA, pluginB) as MergeResult<\n TContext,\n typeof pluginA,\n typeof pluginB\n >;\n}\n\n/**\n * Merges two configuration objects together, with special handling for string values.\n * If the value from the second object is a non-empty string, it will overwrite the value from the first object.\n *\n * @example\n * ```ts\n * const configA = { name: \"Default\", version: \"1.0.0\" };\n * const configB = { name: \"Custom\", description: \"A custom config\" };\n * const mergedConfig = mergeConfig(configA, configB);\n * // Result: { name: \"Custom\", version: \"1.0.0\", description: \"A custom config\" }\n * ```\n *\n * @param objA - The first configuration object.\n * @param objB - The second configuration object.\n * @returns The merged configuration object.\n */\nexport const mergeConfig = createDefu((obj, key, value) => {\n type TValue = (typeof obj)[typeof key];\n\n if (key === \"input\" && isSet(value)) {\n if (isString(obj[key]) && Array.isArray(value) && value.length === 0) {\n return true;\n }\n\n obj[key] = value;\n if (isSetArray(obj[key])) {\n obj[key] = getUnique(obj[key]) as TValue;\n }\n\n return true;\n }\n\n if (key === \"compatibilityDate\" && isSetString(value)) {\n obj[key] = value;\n return true;\n }\n\n if (\n (key === \"format\" || key === \"output.format\") &&\n (isSetString(value) || isSetArray(value))\n ) {\n obj[key] = value;\n if (isSetArray(obj[key])) {\n obj[key] = getUnique(obj[key]) as TValue;\n }\n\n return true;\n }\n\n if (!isSet(obj[key]) && isString(value)) {\n obj[key] = value;\n return true;\n }\n\n return false;\n}) as (...configs: unknown[]) => ResolvedConfig;\n"],"mappings":";;;;;;;;;AA2CA,MAAM,cAAc,YAAY,KAAK,KAAK,UAAU;AAClD,KAAI,aAAa,IAAI,KAAK,IAAI,aAAa,MAAM,EAAE;AACjD,MAAI,OAAO;GACT,GAAG,IAAI;GACP,GAAG;GACH,SAAS,OAAO,GAAG,WAAkB;IACnC,MAAM,CAAC,SAAS,WAAW,MAAM,QAAQ,IAAI,CAE1C,eAAe,IAAI,KAAK,CAAS,GAAG,OAAO,EAE3C,eAAe,MAAM,CAAS,GAAG,OAAO,CAC1C,CAAC;AAEF,WAAO,WAAW,UAAU,KAAK,SAAS,QAAQ,GAAG,WAAW;;GAEnE;AACD,SAAO;;AAGT,QAAO;EACP;;;;;;;;AASF,SAAgB,MACd,SACA,SACuD;AACvD,QAAO,YAAY,SAAS,QAAQ;;;;;;;;;;;;;;;;;;AAuBtC,MAAa,cAAc,YAAY,KAAK,KAAK,UAAU;AAGzD,KAAI,QAAQ,WAAW,MAAM,MAAM,EAAE;AACnC,MAAI,SAAS,IAAI,KAAK,IAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,WAAW,EACjE,QAAO;AAGT,MAAI,OAAO;AACX,MAAI,WAAW,IAAI,KAAK,CACtB,KAAI,OAAO,UAAU,IAAI,KAAK;AAGhC,SAAO;;AAGT,KAAI,QAAQ,uBAAuB,YAAY,MAAM,EAAE;AACrD,MAAI,OAAO;AACX,SAAO;;AAGT,MACG,QAAQ,YAAY,QAAQ,qBAC5B,YAAY,MAAM,IAAI,WAAW,MAAM,GACxC;AACA,MAAI,OAAO;AACX,MAAI,WAAW,IAAI,KAAK,CACtB,KAAI,OAAO,UAAU,IAAI,KAAK;AAGhC,SAAO;;AAGT,KAAI,CAAC,MAAM,IAAI,KAAK,IAAI,SAAS,MAAM,EAAE;AACvC,MAAI,OAAO;AACX,SAAO;;AAGT,QAAO;EACP"}
1
+ {"version":3,"file":"merge.mjs","names":[],"sources":["../../src/plugin-utils/merge.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 { getUnique } from \"@stryke/helpers/get-unique\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu, { createDefu } from \"defu\";\nimport type {\n PartialPlugin,\n Plugin,\n PluginContext,\n ResolvedConfig\n} from \"../types\";\nimport { getHookHandler, isPluginHook } from \"./helpers\";\n\nexport type MergeResult<\n TContext extends PluginContext,\n TPluginA extends Plugin<TContext> | PartialPlugin<TContext>,\n TPluginB extends Plugin<TContext> | PartialPlugin<TContext>\n> =\n TPluginA extends Plugin<TContext>\n ? Plugin<TContext>\n : TPluginB extends Plugin<TContext>\n ? Plugin<TContext>\n : PartialPlugin<TContext>;\n\nconst mergePlugin = createDefu((obj, key, value) => {\n if (isPluginHook(obj[key]) && isPluginHook(value)) {\n obj[key] = {\n ...obj[key],\n ...value,\n handler: async (...params: any[]) => {\n const [resultA, resultB] = await Promise.all([\n // eslint-disable-next-line ts/no-unsafe-call\n (getHookHandler(obj[key]) as any)(...params),\n // eslint-disable-next-line ts/no-unsafe-call\n (getHookHandler(value) as any)(...params)\n ]);\n\n return resultB && resultA ? defu(resultA, resultB) : resultA || resultB;\n }\n };\n return true;\n }\n\n return false;\n});\n\n/**\n * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.\n *\n * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.\n * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.\n * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.\n */\nexport function merge<TContext extends PluginContext = PluginContext>(\n pluginA: Plugin<TContext> | PartialPlugin<TContext>,\n pluginB: Plugin<TContext> | PartialPlugin<TContext>\n): MergeResult<TContext, typeof pluginA, typeof pluginB> {\n return mergePlugin(pluginA, pluginB) as MergeResult<\n TContext,\n typeof pluginA,\n typeof pluginB\n >;\n}\n\n/**\n * Merges two configuration objects together, with special handling for string values.\n * If the value from the second object is a non-empty string, it will overwrite the value from the first object.\n *\n * @example\n * ```ts\n * const configA = { name: \"Default\", version: \"1.0.0\" };\n * const configB = { name: \"Custom\", description: \"A custom config\" };\n * const mergedConfig = mergeConfig(configA, configB);\n * // Result: { name: \"Custom\", version: \"1.0.0\", description: \"A custom config\" }\n * ```\n *\n * @param objA - The first configuration object.\n * @param objB - The second configuration object.\n * @returns The merged configuration object.\n */\nexport const mergeConfig = createDefu((obj, key, value) => {\n type TValue = (typeof obj)[typeof key];\n\n if (key === \"input\" && isSet(value)) {\n if (isString(obj[key]) && Array.isArray(value) && value.length === 0) {\n return true;\n }\n\n obj[key] = value;\n if (isSetArray(obj[key])) {\n obj[key] = getUnique(obj[key]) as TValue;\n }\n\n return true;\n }\n\n if (key === \"compatibilityDate\" && isSetString(value)) {\n obj[key] = value;\n return true;\n }\n\n if (\n (key === \"format\" || key === \"output.format\") &&\n (isSetString(value) || isSetArray(value))\n ) {\n obj[key] = value;\n if (isSetArray(obj[key])) {\n obj[key] = getUnique(obj[key]) as TValue;\n }\n\n return true;\n }\n\n if (!isSet(obj[key]) && isString(value)) {\n obj[key] = value;\n return true;\n }\n\n return false;\n}) as (...configs: unknown[]) => ResolvedConfig;\n"],"mappings":";;;;;;;;;AA2CA,MAAM,cAAc,YAAY,KAAK,KAAK,UAAU;CAClD,IAAI,aAAa,IAAI,IAAI,KAAK,aAAa,KAAK,GAAG;EACjD,IAAI,OAAO;GACT,GAAG,IAAI;GACP,GAAG;GACH,SAAS,OAAO,GAAG,WAAkB;IACnC,MAAM,CAAC,SAAS,WAAW,MAAM,QAAQ,IAAI,CAE1C,eAAe,IAAI,IAAI,EAAU,GAAG,MAAM,GAE1C,eAAe,KAAK,EAAU,GAAG,MAAM,CAC1C,CAAC;IAED,OAAO,WAAW,UAAU,KAAK,SAAS,OAAO,IAAI,WAAW;GAClE;EACF;EACA,OAAO;CACT;CAEA,OAAO;AACT,CAAC;;;;;;;;AASD,SAAgB,MACd,SACA,SACuD;CACvD,OAAO,YAAY,SAAS,OAAO;AAKrC;;;;;;;;;;;;;;;;;AAkBA,MAAa,cAAc,YAAY,KAAK,KAAK,UAAU;CAGzD,IAAI,QAAQ,WAAW,MAAM,KAAK,GAAG;EACnC,IAAI,SAAS,IAAI,IAAI,KAAK,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GACjE,OAAO;EAGT,IAAI,OAAO;EACX,IAAI,WAAW,IAAI,IAAI,GACrB,IAAI,OAAO,UAAU,IAAI,IAAI;EAG/B,OAAO;CACT;CAEA,IAAI,QAAQ,uBAAuB,YAAY,KAAK,GAAG;EACrD,IAAI,OAAO;EACX,OAAO;CACT;CAEA,KACG,QAAQ,YAAY,QAAQ,qBAC5B,YAAY,KAAK,KAAK,WAAW,KAAK,IACvC;EACA,IAAI,OAAO;EACX,IAAI,WAAW,IAAI,IAAI,GACrB,IAAI,OAAO,UAAU,IAAI,IAAI;EAG/B,OAAO;CACT;CAEA,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,SAAS,KAAK,GAAG;EACvC,IAAI,OAAO;EACX,OAAO;CACT;CAEA,OAAO;AACT,CAAC"}
@@ -9,7 +9,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
9
9
  * @returns `true` if the module is a built-in module, otherwise `false`.
10
10
  */
11
11
  function isBuiltinModule(context, moduleName) {
12
- const prefix = context.config?.framework || "powerlines";
12
+ const prefix = context.config?.framework?.name || "powerlines";
13
13
  return moduleName.startsWith(`${prefix.replace(/:$/, "")}:`) || Object.keys(context.fs.metadata).filter((key) => context.fs.metadata[key]?.type === "builtin").includes(moduleName);
14
14
  }
15
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.cts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"mappings":";;;;;AA2BA;;;;;iBAAgB,eAAA,CAAgB,OAAA,EAAS,OAAA,EAAS,UAAA"}
1
+ {"version":3,"file":"modules.d.cts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"mappings":";;;;;AA2BA;;;;;iBAAgB,eAAA,CAAgB,OAAA,EAAS,OAAO,EAAE,UAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.mts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"mappings":";;;;;AA2BA;;;;;iBAAgB,eAAA,CAAgB,OAAA,EAAS,OAAA,EAAS,UAAA"}
1
+ {"version":3,"file":"modules.d.mts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"mappings":";;;;;AA2BA;;;;;iBAAgB,eAAA,CAAgB,OAAA,EAAS,OAAO,EAAE,UAAA"}
@@ -7,7 +7,7 @@
7
7
  * @returns `true` if the module is a built-in module, otherwise `false`.
8
8
  */
9
9
  function isBuiltinModule(context, moduleName) {
10
- const prefix = context.config?.framework || "powerlines";
10
+ const prefix = context.config?.framework?.name || "powerlines";
11
11
  return moduleName.startsWith(`${prefix.replace(/:$/, "")}:`) || Object.keys(context.fs.metadata).filter((key) => context.fs.metadata[key]?.type === "builtin").includes(moduleName);
12
12
  }
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"modules.mjs","names":[],"sources":["../../src/plugin-utils/modules.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 { Context } from \"../types/context\";\n\n/**\n * Determine if a module ID is a built-in Powerlines module ID.\n *\n * @param context - The Powerlines context.\n * @param moduleName - The name of the module to check.\n * @returns `true` if the module is a built-in module, otherwise `false`.\n */\nexport function isBuiltinModule(context: Context, moduleName: string): boolean {\n const prefix: string = context.config?.framework || \"powerlines\";\n\n return (\n moduleName.startsWith(`${prefix.replace(/:$/, \"\")}:`) ||\n Object.keys(context.fs.metadata)\n .filter(key => context.fs.metadata[key]?.type === \"builtin\")\n .includes(moduleName)\n );\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,gBAAgB,SAAkB,YAA6B;CAC7E,MAAM,SAAiB,QAAQ,QAAQ,aAAa;AAEpD,QACE,WAAW,WAAW,GAAG,OAAO,QAAQ,MAAM,GAAG,CAAC,GAAG,IACrD,OAAO,KAAK,QAAQ,GAAG,SAAS,CAC7B,QAAO,QAAO,QAAQ,GAAG,SAAS,MAAM,SAAS,UAAU,CAC3D,SAAS,WAAW"}
1
+ {"version":3,"file":"modules.mjs","names":[],"sources":["../../src/plugin-utils/modules.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 { Context } from \"../types/context\";\n\n/**\n * Determine if a module ID is a built-in Powerlines module ID.\n *\n * @param context - The Powerlines context.\n * @param moduleName - The name of the module to check.\n * @returns `true` if the module is a built-in module, otherwise `false`.\n */\nexport function isBuiltinModule(context: Context, moduleName: string): boolean {\n const prefix: string = context.config?.framework?.name || \"powerlines\";\n\n return (\n moduleName.startsWith(`${prefix.replace(/:$/, \"\")}:`) ||\n Object.keys(context.fs.metadata)\n .filter(key => context.fs.metadata[key]?.type === \"builtin\")\n .includes(moduleName)\n );\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,gBAAgB,SAAkB,YAA6B;CAC7E,MAAM,SAAiB,QAAQ,QAAQ,WAAW,QAAQ;CAE1D,OACE,WAAW,WAAW,GAAG,OAAO,QAAQ,MAAM,EAAE,EAAE,EAAE,KACpD,OAAO,KAAK,QAAQ,GAAG,QAAQ,EAC5B,QAAO,QAAO,QAAQ,GAAG,SAAS,MAAM,SAAS,SAAS,EAC1D,SAAS,UAAU;AAE1B"}
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
2
  let _stryke_path_replace = require("@stryke/path/replace");
4
3
  let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
5
4
  let _stryke_path_join = require("@stryke/path/join");
@@ -44,7 +43,7 @@ let _stryke_path_join = require("@stryke/path/join");
44
43
  */
45
44
  function replacePathTokens(context, path) {
46
45
  if (!path) return path;
47
- let result = path.replaceAll("{cwd}", context.config.cwd || process.cwd()).replaceAll("{workspaceRoot}", context.config.cwd || process.cwd()).replaceAll("{root}", context.config.root).replaceAll("{projectRoot}", context.config.root).replaceAll("{sourceRoot}", (0, _stryke_path_join.joinPaths)(context.config.root, "src")).replaceAll("{powerlinesPath}", context.powerlinesPath).replaceAll("{cachePath}", context.cachePath).replaceAll("{dataPath}", context.dataPath).replaceAll("{logPath}", context.envPaths.log).replaceAll("{tempPath}", context.envPaths.temp).replaceAll("{configPath}", context.envPaths.config).replaceAll("{artifactsPath}", (0, _stryke_path_replace.replacePath)(context.artifactsPath, context.config.cwd)).replaceAll("{builtinPath}", (0, _stryke_path_replace.replacePath)(context.builtinsPath, context.config.cwd)).replaceAll("{builtinsPath}", (0, _stryke_path_replace.replacePath)(context.builtinsPath, context.config.cwd)).replaceAll("{entryPath}", (0, _stryke_path_replace.replacePath)(context.entryPath, context.config.cwd));
46
+ let result = path.replaceAll("{cwd}", context.config.cwd || process.cwd()).replaceAll("{workspaceRoot}", context.config.cwd || process.cwd()).replaceAll("{root}", context.config.root).replaceAll("{projectRoot}", context.config.root).replaceAll("{sourceRoot}", (0, _stryke_path_join.joinPaths)(context.config.root, "src")).replaceAll("{cachePath}", context.cachePath).replaceAll("{dataPath}", context.dataPath).replaceAll("{logPath}", context.envPaths.log).replaceAll("{tempPath}", context.envPaths.temp).replaceAll("{configPath}", context.envPaths.config).replaceAll("{artifactsPath}", (0, _stryke_path_replace.replacePath)(context.artifactsPath, context.config.cwd)).replaceAll("{builtinPath}", (0, _stryke_path_replace.replacePath)(context.builtinsPath, context.config.cwd)).replaceAll("{builtinsPath}", (0, _stryke_path_replace.replacePath)(context.builtinsPath, context.config.cwd)).replaceAll("{entryPath}", (0, _stryke_path_replace.replacePath)(context.entryPath, context.config.cwd));
48
47
  if (context.config.output) {
49
48
  if ((0, _stryke_type_checks_is_set_string.isSetString)(context.config.output.path)) result = result.replaceAll("{outputPath}", context.config.output.path).replaceAll("{output}", context.config.output.path);
50
49
  if (context.config.output.copy && (0, _stryke_type_checks_is_set_string.isSetString)(context.config.output.copy?.path)) result = result.replaceAll("{copyPath}", context.config.output.copy.path).replaceAll("{copy}", context.config.output.copy.path);
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.cts","names":[],"sources":["../../src/plugin-utils/paths.ts"],"mappings":";;;;;;AA6DA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,iBAAA,CACd,OAAA,EAAS,iBAAA,EACT,IAAA,YACC,WAAA,QAAmB,IAAA"}
1
+ {"version":3,"file":"paths.d.cts","names":[],"sources":["../../src/plugin-utils/paths.ts"],"mappings":";;;;;;AA6DA;;;;;;;;;;;;;;AAG0B;;;;;;;;;;;;;;;;;;;;;iBAHV,iBAAA,CACd,OAAA,EAAS,iBAAA,EACT,IAAA,YACC,WAAA,QAAmB,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.mts","names":[],"sources":["../../src/plugin-utils/paths.ts"],"mappings":";;;;;;AA6DA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,iBAAA,CACd,OAAA,EAAS,iBAAA,EACT,IAAA,YACC,WAAA,QAAmB,IAAA"}
1
+ {"version":3,"file":"paths.d.mts","names":[],"sources":["../../src/plugin-utils/paths.ts"],"mappings":";;;;;;AA6DA;;;;;;;;;;;;;;AAG0B;;;;;;;;;;;;;;;;;;;;;iBAHV,iBAAA,CACd,OAAA,EAAS,iBAAA,EACT,IAAA,YACC,WAAA,QAAmB,IAAA"}
@@ -42,7 +42,7 @@ import { joinPaths } from "@stryke/path/join";
42
42
  */
43
43
  function replacePathTokens(context, path) {
44
44
  if (!path) return path;
45
- let result = path.replaceAll("{cwd}", context.config.cwd || process.cwd()).replaceAll("{workspaceRoot}", context.config.cwd || process.cwd()).replaceAll("{root}", context.config.root).replaceAll("{projectRoot}", context.config.root).replaceAll("{sourceRoot}", joinPaths(context.config.root, "src")).replaceAll("{powerlinesPath}", context.powerlinesPath).replaceAll("{cachePath}", context.cachePath).replaceAll("{dataPath}", context.dataPath).replaceAll("{logPath}", context.envPaths.log).replaceAll("{tempPath}", context.envPaths.temp).replaceAll("{configPath}", context.envPaths.config).replaceAll("{artifactsPath}", replacePath(context.artifactsPath, context.config.cwd)).replaceAll("{builtinPath}", replacePath(context.builtinsPath, context.config.cwd)).replaceAll("{builtinsPath}", replacePath(context.builtinsPath, context.config.cwd)).replaceAll("{entryPath}", replacePath(context.entryPath, context.config.cwd));
45
+ let result = path.replaceAll("{cwd}", context.config.cwd || process.cwd()).replaceAll("{workspaceRoot}", context.config.cwd || process.cwd()).replaceAll("{root}", context.config.root).replaceAll("{projectRoot}", context.config.root).replaceAll("{sourceRoot}", joinPaths(context.config.root, "src")).replaceAll("{cachePath}", context.cachePath).replaceAll("{dataPath}", context.dataPath).replaceAll("{logPath}", context.envPaths.log).replaceAll("{tempPath}", context.envPaths.temp).replaceAll("{configPath}", context.envPaths.config).replaceAll("{artifactsPath}", replacePath(context.artifactsPath, context.config.cwd)).replaceAll("{builtinPath}", replacePath(context.builtinsPath, context.config.cwd)).replaceAll("{builtinsPath}", replacePath(context.builtinsPath, context.config.cwd)).replaceAll("{entryPath}", replacePath(context.entryPath, context.config.cwd));
46
46
  if (context.config.output) {
47
47
  if (isSetString(context.config.output.path)) result = result.replaceAll("{outputPath}", context.config.output.path).replaceAll("{output}", context.config.output.path);
48
48
  if (context.config.output.copy && isSetString(context.config.output.copy?.path)) result = result.replaceAll("{copyPath}", context.config.output.copy.path).replaceAll("{copy}", context.config.output.copy.path);
@@ -1 +1 @@
1
- {"version":3,"file":"paths.mjs","names":[],"sources":["../../src/plugin-utils/paths.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 { joinPaths } from \"@stryke/path/join\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { IsUndefined } from \"@stryke/types/base\";\nimport { UnresolvedContext } from \"../types/context\";\n\n/**\n * Replaces tokens in the given path string with their corresponding values from the context.\n *\n * @remarks\n * The following tokens are supported:\n * - `{cwd}` - The current working directory.\n * - `{workspaceRoot}` - The current working directory (same as `{cwd}`).\n * - `{root}` - The root directory of the project (same as `{projectRoot}`).\n * - `{projectRoot}` - The root directory of the project (same as `{root}`).\n * - `{sourceRoot}` - The source root directory of the project (usually `{root}/src`).\n * - `{powerlinesPath}` - The directory where Powerlines is installed.\n * - `{cachePath}` - The environment's directory for cached files.\n * - `{dataPath}` - The environment's directory for data files.\n * - `{logPath}` - The environment's directory for log files.\n * - `{tempPath}` - The environment's directory for temporary files.\n * - `{configPath}` - The environment's directory for configuration files.\n * - `{output}` - The configured output directory for the project.\n * - `{outputPath}` - The configured output directory for the project.\n * - `{copy}` - The configured final/copied distribution directory for the project.\n * - `{copyPath}` - The configured final/copied distribution directory for the project.\n * - `{artifactsPath}` - The configured directory for build artifacts.\n * - `{builtinPath}` - The configured directory for generated built-in plugins.\n * - `{entryPath}` - The configured directory for generated entry files.\n *\n * @example\n * ```ts\n * const path = replacePathTokens(context, \"{root}/dist\");\n * // If context.config.root is \"/home/user/project\", this will return \"/home/user/project/dist\"\n *\n * const pathWithCopy = replacePathTokens(context, \"{copy}\");\n * // If context.config.output.copy.path is \"/home/user/project/dist-copy\", this will return \"/home/user/project/dist-copy\"\n * ```\n *\n * @param context - The context containing the values for the path tokens.\n * @param path - The path string with tokens to replace.\n * @returns The path string with tokens replaced by their corresponding values from the context.\n */\nexport function replacePathTokens(\n context: UnresolvedContext,\n path?: string\n): IsUndefined<typeof path> extends true ? undefined : string {\n if (!path) {\n return path as IsUndefined<typeof path> extends true ? undefined : string;\n }\n\n let result = path\n .replaceAll(\"{cwd}\", context.config.cwd || process.cwd())\n .replaceAll(\"{workspaceRoot}\", context.config.cwd || process.cwd())\n .replaceAll(\"{root}\", context.config.root)\n .replaceAll(\"{projectRoot}\", context.config.root)\n .replaceAll(\"{sourceRoot}\", joinPaths(context.config.root, \"src\"))\n .replaceAll(\"{powerlinesPath}\", context.powerlinesPath)\n .replaceAll(\"{cachePath}\", context.cachePath)\n .replaceAll(\"{dataPath}\", context.dataPath)\n .replaceAll(\"{logPath}\", context.envPaths.log)\n .replaceAll(\"{tempPath}\", context.envPaths.temp)\n .replaceAll(\"{configPath}\", context.envPaths.config)\n .replaceAll(\n \"{artifactsPath}\",\n replacePath(context.artifactsPath, context.config.cwd)\n )\n .replaceAll(\n \"{builtinPath}\",\n replacePath(context.builtinsPath, context.config.cwd)\n )\n .replaceAll(\n \"{builtinsPath}\",\n replacePath(context.builtinsPath, context.config.cwd)\n )\n .replaceAll(\n \"{entryPath}\",\n replacePath(context.entryPath, context.config.cwd)\n );\n\n if (context.config.output) {\n if (isSetString(context.config.output.path)) {\n result = result\n .replaceAll(\"{outputPath}\", context.config.output.path)\n .replaceAll(\"{output}\", context.config.output.path);\n }\n if (\n context.config.output.copy &&\n isSetString(context.config.output.copy?.path)\n ) {\n result = result\n .replaceAll(\"{copyPath}\", context.config.output.copy.path)\n .replaceAll(\"{copy}\", context.config.output.copy.path);\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,SAAgB,kBACd,SACA,MAC4D;AAC5D,KAAI,CAAC,KACH,QAAO;CAGT,IAAI,SAAS,KACV,WAAW,SAAS,QAAQ,OAAO,OAAO,QAAQ,KAAK,CAAC,CACxD,WAAW,mBAAmB,QAAQ,OAAO,OAAO,QAAQ,KAAK,CAAC,CAClE,WAAW,UAAU,QAAQ,OAAO,KAAK,CACzC,WAAW,iBAAiB,QAAQ,OAAO,KAAK,CAChD,WAAW,gBAAgB,UAAU,QAAQ,OAAO,MAAM,MAAM,CAAC,CACjE,WAAW,oBAAoB,QAAQ,eAAe,CACtD,WAAW,eAAe,QAAQ,UAAU,CAC5C,WAAW,cAAc,QAAQ,SAAS,CAC1C,WAAW,aAAa,QAAQ,SAAS,IAAI,CAC7C,WAAW,cAAc,QAAQ,SAAS,KAAK,CAC/C,WAAW,gBAAgB,QAAQ,SAAS,OAAO,CACnD,WACC,mBACA,YAAY,QAAQ,eAAe,QAAQ,OAAO,IAAI,CACvD,CACA,WACC,iBACA,YAAY,QAAQ,cAAc,QAAQ,OAAO,IAAI,CACtD,CACA,WACC,kBACA,YAAY,QAAQ,cAAc,QAAQ,OAAO,IAAI,CACtD,CACA,WACC,eACA,YAAY,QAAQ,WAAW,QAAQ,OAAO,IAAI,CACnD;AAEH,KAAI,QAAQ,OAAO,QAAQ;AACzB,MAAI,YAAY,QAAQ,OAAO,OAAO,KAAK,CACzC,UAAS,OACN,WAAW,gBAAgB,QAAQ,OAAO,OAAO,KAAK,CACtD,WAAW,YAAY,QAAQ,OAAO,OAAO,KAAK;AAEvD,MACE,QAAQ,OAAO,OAAO,QACtB,YAAY,QAAQ,OAAO,OAAO,MAAM,KAAK,CAE7C,UAAS,OACN,WAAW,cAAc,QAAQ,OAAO,OAAO,KAAK,KAAK,CACzD,WAAW,UAAU,QAAQ,OAAO,OAAO,KAAK,KAAK;;AAI5D,QAAO"}
1
+ {"version":3,"file":"paths.mjs","names":[],"sources":["../../src/plugin-utils/paths.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 { joinPaths } from \"@stryke/path/join\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { IsUndefined } from \"@stryke/types/base\";\nimport { UnresolvedContext } from \"../types/context\";\n\n/**\n * Replaces tokens in the given path string with their corresponding values from the context.\n *\n * @remarks\n * The following tokens are supported:\n * - `{cwd}` - The current working directory.\n * - `{workspaceRoot}` - The current working directory (same as `{cwd}`).\n * - `{root}` - The root directory of the project (same as `{projectRoot}`).\n * - `{projectRoot}` - The root directory of the project (same as `{root}`).\n * - `{sourceRoot}` - The source root directory of the project (usually `{root}/src`).\n * - `{powerlinesPath}` - The directory where Powerlines is installed.\n * - `{cachePath}` - The environment's directory for cached files.\n * - `{dataPath}` - The environment's directory for data files.\n * - `{logPath}` - The environment's directory for log files.\n * - `{tempPath}` - The environment's directory for temporary files.\n * - `{configPath}` - The environment's directory for configuration files.\n * - `{output}` - The configured output directory for the project.\n * - `{outputPath}` - The configured output directory for the project.\n * - `{copy}` - The configured final/copied distribution directory for the project.\n * - `{copyPath}` - The configured final/copied distribution directory for the project.\n * - `{artifactsPath}` - The configured directory for build artifacts.\n * - `{builtinPath}` - The configured directory for generated built-in plugins.\n * - `{entryPath}` - The configured directory for generated entry files.\n *\n * @example\n * ```ts\n * const path = replacePathTokens(context, \"{root}/dist\");\n * // If context.config.root is \"/home/user/project\", this will return \"/home/user/project/dist\"\n *\n * const pathWithCopy = replacePathTokens(context, \"{copy}\");\n * // If context.config.output.copy.path is \"/home/user/project/dist-copy\", this will return \"/home/user/project/dist-copy\"\n * ```\n *\n * @param context - The context containing the values for the path tokens.\n * @param path - The path string with tokens to replace.\n * @returns The path string with tokens replaced by their corresponding values from the context.\n */\nexport function replacePathTokens(\n context: UnresolvedContext,\n path?: string\n): IsUndefined<typeof path> extends true ? undefined : string {\n if (!path) {\n return path as IsUndefined<typeof path> extends true ? undefined : string;\n }\n\n let result = path\n .replaceAll(\"{cwd}\", context.config.cwd || process.cwd())\n .replaceAll(\"{workspaceRoot}\", context.config.cwd || process.cwd())\n .replaceAll(\"{root}\", context.config.root)\n .replaceAll(\"{projectRoot}\", context.config.root)\n .replaceAll(\"{sourceRoot}\", joinPaths(context.config.root, \"src\"))\n // .replaceAll(\"{powerlinesPath}\", context.powerlinesPath)\n .replaceAll(\"{cachePath}\", context.cachePath)\n .replaceAll(\"{dataPath}\", context.dataPath)\n .replaceAll(\"{logPath}\", context.envPaths.log)\n .replaceAll(\"{tempPath}\", context.envPaths.temp)\n .replaceAll(\"{configPath}\", context.envPaths.config)\n .replaceAll(\n \"{artifactsPath}\",\n replacePath(context.artifactsPath, context.config.cwd)\n )\n .replaceAll(\n \"{builtinPath}\",\n replacePath(context.builtinsPath, context.config.cwd)\n )\n .replaceAll(\n \"{builtinsPath}\",\n replacePath(context.builtinsPath, context.config.cwd)\n )\n .replaceAll(\n \"{entryPath}\",\n replacePath(context.entryPath, context.config.cwd)\n );\n\n if (context.config.output) {\n if (isSetString(context.config.output.path)) {\n result = result\n .replaceAll(\"{outputPath}\", context.config.output.path)\n .replaceAll(\"{output}\", context.config.output.path);\n }\n if (\n context.config.output.copy &&\n isSetString(context.config.output.copy?.path)\n ) {\n result = result\n .replaceAll(\"{copyPath}\", context.config.output.copy.path)\n .replaceAll(\"{copy}\", context.config.output.copy.path);\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,SAAgB,kBACd,SACA,MAC4D;CAC5D,IAAI,CAAC,MACH,OAAO;CAGT,IAAI,SAAS,KACV,WAAW,SAAS,QAAQ,OAAO,OAAO,QAAQ,IAAI,CAAC,EACvD,WAAW,mBAAmB,QAAQ,OAAO,OAAO,QAAQ,IAAI,CAAC,EACjE,WAAW,UAAU,QAAQ,OAAO,IAAI,EACxC,WAAW,iBAAiB,QAAQ,OAAO,IAAI,EAC/C,WAAW,gBAAgB,UAAU,QAAQ,OAAO,MAAM,KAAK,CAAC,EAEhE,WAAW,eAAe,QAAQ,SAAS,EAC3C,WAAW,cAAc,QAAQ,QAAQ,EACzC,WAAW,aAAa,QAAQ,SAAS,GAAG,EAC5C,WAAW,cAAc,QAAQ,SAAS,IAAI,EAC9C,WAAW,gBAAgB,QAAQ,SAAS,MAAM,EAClD,WACC,mBACA,YAAY,QAAQ,eAAe,QAAQ,OAAO,GAAG,CACvD,EACC,WACC,iBACA,YAAY,QAAQ,cAAc,QAAQ,OAAO,GAAG,CACtD,EACC,WACC,kBACA,YAAY,QAAQ,cAAc,QAAQ,OAAO,GAAG,CACtD,EACC,WACC,eACA,YAAY,QAAQ,WAAW,QAAQ,OAAO,GAAG,CACnD;CAEF,IAAI,QAAQ,OAAO,QAAQ;EACzB,IAAI,YAAY,QAAQ,OAAO,OAAO,IAAI,GACxC,SAAS,OACN,WAAW,gBAAgB,QAAQ,OAAO,OAAO,IAAI,EACrD,WAAW,YAAY,QAAQ,OAAO,OAAO,IAAI;EAEtD,IACE,QAAQ,OAAO,OAAO,QACtB,YAAY,QAAQ,OAAO,OAAO,MAAM,IAAI,GAE5C,SAAS,OACN,WAAW,cAAc,QAAQ,OAAO,OAAO,KAAK,IAAI,EACxD,WAAW,UAAU,QAAQ,OAAO,OAAO,KAAK,IAAI;CAE3D;CAEA,OAAO;AACT"}
@@ -63,7 +63,6 @@ declare function isVirtualModule(id: string): boolean;
63
63
  * @returns A regular expression that matches the given ID with the virtual module prefix.
64
64
  */
65
65
  declare function createVirtualPrefixRegex(id: string): RegExp;
66
- declare type __ΩPrefixRegexOptions = any[];
67
66
  //#endregion
68
- export { PrefixRegexOptions, VIRTUAL_MODULE_PREFIX, VIRTUAL_MODULE_PREFIX_REGEX, __ΩPrefixRegexOptions, addVirtualPrefix, createVirtualPrefixRegex, isVirtualModule, prefixRegex, removeVirtualPrefix };
67
+ export { PrefixRegexOptions, VIRTUAL_MODULE_PREFIX, VIRTUAL_MODULE_PREFIX_REGEX, addVirtualPrefix, createVirtualPrefixRegex, isVirtualModule, prefixRegex, removeVirtualPrefix };
69
68
  //# sourceMappingURL=virtual.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual.d.cts","names":[],"sources":["../../src/plugin-utils/virtual.ts"],"mappings":";cAuBa,qBAAA;AAAA,cACA,2BAAA,EAA2B,MAAA;AAAA,UAEvB,kBAAA;;;;EAIf,KAAA;EAN0D;;;EAW1D,MAAA;EATe;;;EAcf,gBAAA;AAAA;;;;;AAsBF;;;;;;;;;;AAwBA;;;;;iBAxBgB,WAAA,CACd,GAAA,UACA,OAAA,GAAS,kBAAA,GACR,MAAA;;;;;AAyCH;;iBApBgB,gBAAA,CAAiB,EAAA;;;AA8BjC;;;;iBApBgB,mBAAA,CAAoB,EAAA;;;;;;;iBAUpB,eAAA,CAAgB,EAAA;;;;;;;iBAUhB,wBAAA,CAAyB,EAAA,WAAa,MAAA;AAAA"}
1
+ {"version":3,"file":"virtual.d.cts","names":[],"sources":["../../src/plugin-utils/virtual.ts"],"mappings":";cAuBa,qBAAA;AAAA,cACA,2BAAA,EAA2B,MAAoB;AAAA,UAE3C,kBAAA;;;AAHiB;EAOhC,KAAA;EAN0D;;;EAW1D,MAAA;EATe;;;EAcf,gBAAA;AAAA;;;;AAAgB;AAsBlB;;;;;;;;;AAGS;AAqBT;;;;AAA2C;iBAxB3B,WAAA,CACd,GAAA,UACA,OAAA,GAAS,kBAAA,GACR,MAAM;;;;AA+BqC;AAU9C;;iBApBgB,gBAAA,CAAiB,EAAU;;AAoBD;AAU1C;;;;iBApBgB,mBAAA,CAAoB,EAAU;;;;;;;iBAU9B,eAAA,CAAgB,EAAU;;;;;;;iBAU1B,wBAAA,CAAyB,EAAA,WAAa,MAAM"}