@powerlines/core 0.9.1 → 0.9.3

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 (432) hide show
  1. package/dist/constants/api.cjs +18 -0
  2. package/dist/constants/api.d.cts +6 -0
  3. package/dist/constants/api.d.cts.map +1 -0
  4. package/dist/constants/api.d.mts +6 -0
  5. package/dist/constants/api.d.mts.map +1 -0
  6. package/dist/constants/api.mjs +16 -0
  7. package/dist/constants/api.mjs.map +1 -0
  8. package/dist/constants/commands.cjs +3 -11
  9. package/dist/constants/commands.d.cts +1 -1
  10. package/dist/constants/commands.d.cts.map +1 -1
  11. package/dist/constants/commands.d.mts +1 -1
  12. package/dist/constants/commands.d.mts.map +1 -1
  13. package/dist/constants/commands.mjs +3 -11
  14. package/dist/constants/commands.mjs.map +1 -1
  15. package/dist/constants/devtools.cjs +23 -0
  16. package/dist/constants/devtools.d.cts +13 -0
  17. package/dist/constants/devtools.d.cts.map +1 -0
  18. package/dist/constants/devtools.d.mts +13 -0
  19. package/dist/constants/devtools.d.mts.map +1 -0
  20. package/dist/constants/devtools.mjs +14 -0
  21. package/dist/constants/devtools.mjs.map +1 -0
  22. package/dist/constants/environments.cjs +1 -0
  23. package/dist/constants/extensions.cjs +21 -0
  24. package/dist/constants/extensions.d.cts +5 -0
  25. package/dist/constants/extensions.d.cts.map +1 -0
  26. package/dist/constants/extensions.d.mts +5 -0
  27. package/dist/constants/extensions.d.mts.map +1 -0
  28. package/dist/constants/extensions.mjs +20 -0
  29. package/dist/constants/extensions.mjs.map +1 -0
  30. package/dist/constants/fs.cjs +1 -0
  31. package/dist/constants/hooks.cjs +1 -0
  32. package/dist/constants/index.cjs +48 -24
  33. package/dist/constants/index.d.cts +5 -1
  34. package/dist/constants/index.d.mts +5 -1
  35. package/dist/constants/index.mjs +6 -2
  36. package/dist/constants/log-level.cjs +90 -0
  37. package/dist/constants/log-level.d.cts +63 -0
  38. package/dist/constants/log-level.d.cts.map +1 -0
  39. package/dist/constants/log-level.d.mts +63 -0
  40. package/dist/constants/log-level.d.mts.map +1 -0
  41. package/dist/constants/log-level.mjs +82 -0
  42. package/dist/constants/log-level.mjs.map +1 -0
  43. package/dist/constants/meta.cjs +1 -0
  44. package/dist/constants/plugin.cjs +3 -2
  45. package/dist/constants/plugin.d.cts +2 -2
  46. package/dist/constants/plugin.d.mts +2 -2
  47. package/dist/context/base-context.cjs +127 -0
  48. package/dist/context/base-context.d.cts +81 -0
  49. package/dist/context/base-context.d.cts.map +1 -0
  50. package/dist/context/base-context.d.mts +81 -0
  51. package/dist/context/base-context.d.mts.map +1 -0
  52. package/dist/context/base-context.mjs +125 -0
  53. package/dist/context/base-context.mjs.map +1 -0
  54. package/dist/context/context.cjs +934 -0
  55. package/dist/context/context.d.cts +369 -0
  56. package/dist/context/context.d.cts.map +1 -0
  57. package/dist/context/context.d.mts +369 -0
  58. package/dist/context/context.d.mts.map +1 -0
  59. package/dist/context/context.mjs +932 -0
  60. package/dist/context/context.mjs.map +1 -0
  61. package/dist/context/environment-context.cjs +219 -0
  62. package/dist/context/environment-context.d.cts +100 -0
  63. package/dist/context/environment-context.d.cts.map +1 -0
  64. package/dist/context/environment-context.d.mts +100 -0
  65. package/dist/context/environment-context.d.mts.map +1 -0
  66. package/dist/context/environment-context.mjs +218 -0
  67. package/dist/context/environment-context.mjs.map +1 -0
  68. package/dist/context/execution-context.cjs +230 -0
  69. package/dist/context/execution-context.d.cts +101 -0
  70. package/dist/context/execution-context.d.cts.map +1 -0
  71. package/dist/context/execution-context.d.mts +101 -0
  72. package/dist/context/execution-context.d.mts.map +1 -0
  73. package/dist/context/execution-context.mjs +228 -0
  74. package/dist/context/execution-context.mjs.map +1 -0
  75. package/dist/context/index.cjs +12 -0
  76. package/dist/context/index.d.cts +6 -0
  77. package/dist/context/index.d.mts +6 -0
  78. package/dist/context/index.mjs +7 -0
  79. package/dist/context/plugin-context.cjs +83 -0
  80. package/dist/context/plugin-context.d.cts +18 -0
  81. package/dist/context/plugin-context.d.cts.map +1 -0
  82. package/dist/context/plugin-context.d.mts +18 -0
  83. package/dist/context/plugin-context.d.mts.map +1 -0
  84. package/dist/context/plugin-context.mjs +82 -0
  85. package/dist/context/plugin-context.mjs.map +1 -0
  86. package/dist/index.cjs +62 -6
  87. package/dist/index.d.cts +23 -11
  88. package/dist/index.d.mts +23 -11
  89. package/dist/index.mjs +17 -5
  90. package/dist/lib/config.cjs +167 -28
  91. package/dist/lib/config.d.cts +95 -14
  92. package/dist/lib/config.d.cts.map +1 -1
  93. package/dist/lib/config.d.mts +95 -14
  94. package/dist/lib/config.d.mts.map +1 -1
  95. package/dist/lib/config.mjs +160 -28
  96. package/dist/lib/config.mjs.map +1 -1
  97. package/dist/lib/context-helpers.cjs +43 -0
  98. package/dist/lib/context-helpers.d.cts +19 -0
  99. package/dist/lib/context-helpers.d.cts.map +1 -0
  100. package/dist/lib/context-helpers.d.mts +19 -0
  101. package/dist/lib/context-helpers.d.mts.map +1 -0
  102. package/dist/lib/context-helpers.mjs +41 -0
  103. package/dist/lib/context-helpers.mjs.map +1 -0
  104. package/dist/lib/entry.cjs +9 -9
  105. package/dist/lib/entry.d.cts.map +1 -1
  106. package/dist/lib/entry.d.mts.map +1 -1
  107. package/dist/lib/entry.mjs +9 -9
  108. package/dist/lib/entry.mjs.map +1 -1
  109. package/dist/lib/environment.cjs +72 -0
  110. package/dist/lib/environment.d.cts +12 -0
  111. package/dist/lib/environment.d.cts.map +1 -0
  112. package/dist/lib/environment.d.mts +12 -0
  113. package/dist/lib/environment.d.mts.map +1 -0
  114. package/dist/lib/environment.mjs +67 -0
  115. package/dist/lib/environment.mjs.map +1 -0
  116. package/dist/lib/events.cjs +43 -0
  117. package/dist/lib/events.d.cts +10 -0
  118. package/dist/lib/events.d.cts.map +1 -0
  119. package/dist/lib/events.d.mts +10 -0
  120. package/dist/lib/events.d.mts.map +1 -0
  121. package/dist/lib/events.mjs +42 -0
  122. package/dist/lib/events.mjs.map +1 -0
  123. package/dist/lib/generate-types.cjs +371 -0
  124. package/dist/lib/generate-types.d.cts +67 -0
  125. package/dist/lib/generate-types.d.cts.map +1 -0
  126. package/dist/lib/generate-types.d.mts +67 -0
  127. package/dist/lib/generate-types.d.mts.map +1 -0
  128. package/dist/lib/generate-types.mjs +368 -0
  129. package/dist/lib/generate-types.mjs.map +1 -0
  130. package/dist/lib/hooks.cjs +152 -0
  131. package/dist/lib/hooks.d.cts +28 -0
  132. package/dist/lib/hooks.d.cts.map +1 -0
  133. package/dist/lib/hooks.d.mts +28 -0
  134. package/dist/lib/hooks.d.mts.map +1 -0
  135. package/dist/lib/hooks.mjs +147 -0
  136. package/dist/lib/hooks.mjs.map +1 -0
  137. package/dist/lib/index.cjs +64 -6
  138. package/dist/lib/index.d.cts +15 -3
  139. package/dist/lib/index.d.mts +15 -3
  140. package/dist/lib/index.mjs +19 -5
  141. package/dist/lib/install-dependencies.cjs +25 -0
  142. package/dist/lib/install-dependencies.d.cts +12 -0
  143. package/dist/lib/install-dependencies.d.cts.map +1 -0
  144. package/dist/lib/install-dependencies.d.mts +12 -0
  145. package/dist/lib/install-dependencies.d.mts.map +1 -0
  146. package/dist/lib/install-dependencies.mjs +24 -0
  147. package/dist/lib/install-dependencies.mjs.map +1 -0
  148. package/dist/lib/meta.cjs +57 -0
  149. package/dist/lib/meta.d.cts +34 -0
  150. package/dist/lib/meta.d.cts.map +1 -0
  151. package/dist/lib/meta.d.mts +34 -0
  152. package/dist/lib/meta.d.mts.map +1 -0
  153. package/dist/lib/meta.mjs +54 -0
  154. package/dist/lib/meta.mjs.map +1 -0
  155. package/dist/lib/plugins.cjs +150 -0
  156. package/dist/lib/plugins.d.cts +40 -0
  157. package/dist/lib/plugins.d.cts.map +1 -0
  158. package/dist/lib/plugins.d.mts +40 -0
  159. package/dist/lib/plugins.d.mts.map +1 -0
  160. package/dist/lib/plugins.mjs +146 -0
  161. package/dist/lib/plugins.mjs.map +1 -0
  162. package/dist/lib/resolver.cjs +35 -0
  163. package/dist/lib/resolver.d.cts +21 -0
  164. package/dist/lib/resolver.d.cts.map +1 -0
  165. package/dist/lib/resolver.d.mts +21 -0
  166. package/dist/lib/resolver.d.mts.map +1 -0
  167. package/dist/lib/resolver.mjs +33 -0
  168. package/dist/lib/resolver.mjs.map +1 -0
  169. package/dist/lib/schemas.cjs +9 -0
  170. package/dist/lib/schemas.d.cts +2 -0
  171. package/dist/lib/schemas.d.mts +2 -0
  172. package/dist/lib/schemas.mjs +3 -0
  173. package/dist/lib/streaming-channel.cjs +260 -0
  174. package/dist/lib/streaming-channel.d.cts +133 -0
  175. package/dist/lib/streaming-channel.d.cts.map +1 -0
  176. package/dist/lib/streaming-channel.d.mts +133 -0
  177. package/dist/lib/streaming-channel.d.mts.map +1 -0
  178. package/dist/lib/streaming-channel.mjs +258 -0
  179. package/dist/lib/streaming-channel.mjs.map +1 -0
  180. package/dist/lib/typescript/index.cjs +16 -0
  181. package/dist/lib/typescript/index.d.cts +3 -0
  182. package/dist/lib/typescript/index.d.mts +3 -0
  183. package/dist/lib/typescript/index.mjs +4 -0
  184. package/dist/lib/typescript/ts-morph.cjs +105 -0
  185. package/dist/lib/typescript/ts-morph.d.cts +38 -0
  186. package/dist/lib/typescript/ts-morph.d.cts.map +1 -0
  187. package/dist/lib/typescript/ts-morph.d.mts +38 -0
  188. package/dist/lib/typescript/ts-morph.d.mts.map +1 -0
  189. package/dist/lib/typescript/ts-morph.mjs +102 -0
  190. package/dist/lib/typescript/ts-morph.mjs.map +1 -0
  191. package/dist/lib/typescript/tsconfig.cjs +253 -0
  192. package/dist/lib/typescript/tsconfig.d.cts +77 -0
  193. package/dist/lib/typescript/tsconfig.d.cts.map +1 -0
  194. package/dist/lib/typescript/tsconfig.d.mts +77 -0
  195. package/dist/lib/typescript/tsconfig.d.mts.map +1 -0
  196. package/dist/lib/typescript/tsconfig.mjs +240 -0
  197. package/dist/lib/typescript/tsconfig.mjs.map +1 -0
  198. package/dist/lib/unplugin/helpers.cjs +2 -2
  199. package/dist/lib/unplugin/module-resolution.cjs +21 -20
  200. package/dist/lib/unplugin/module-resolution.d.cts +8 -0
  201. package/dist/lib/unplugin/module-resolution.d.cts.map +1 -1
  202. package/dist/lib/unplugin/module-resolution.d.mts +8 -0
  203. package/dist/lib/unplugin/module-resolution.d.mts.map +1 -1
  204. package/dist/lib/unplugin/module-resolution.mjs +20 -20
  205. package/dist/lib/unplugin/module-resolution.mjs.map +1 -1
  206. package/dist/lib/unplugin/plugin.cjs +57 -63
  207. package/dist/lib/unplugin/plugin.d.cts +11 -5
  208. package/dist/lib/unplugin/plugin.d.cts.map +1 -1
  209. package/dist/lib/unplugin/plugin.d.mts +11 -5
  210. package/dist/lib/unplugin/plugin.d.mts.map +1 -1
  211. package/dist/lib/unplugin/plugin.mjs +57 -63
  212. package/dist/lib/unplugin/plugin.mjs.map +1 -1
  213. package/dist/lib/utilities/file-header.cjs +2 -2
  214. package/dist/lib/utilities/file-header.mjs +2 -2
  215. package/dist/lib/utilities/file-header.mjs.map +1 -1
  216. package/dist/lib/utilities/format.cjs +16 -8
  217. package/dist/lib/utilities/format.d.cts.map +1 -1
  218. package/dist/lib/utilities/format.d.mts.map +1 -1
  219. package/dist/lib/utilities/format.mjs +15 -8
  220. package/dist/lib/utilities/format.mjs.map +1 -1
  221. package/dist/lib/utilities/index.cjs +2 -2
  222. package/dist/lib/utilities/index.mjs +2 -2
  223. package/dist/lib/utilities/source-file.cjs +1 -1
  224. package/dist/lib/utilities/source-map.cjs +1 -1
  225. package/dist/lib/utilities/write-file.cjs +1 -2
  226. package/dist/lib/utilities/write-file.d.cts +1 -1
  227. package/dist/lib/utilities/write-file.d.cts.map +1 -1
  228. package/dist/lib/utilities/write-file.d.mts +1 -1
  229. package/dist/lib/utilities/write-file.d.mts.map +1 -1
  230. package/dist/lib/utilities/write-file.mjs +1 -2
  231. package/dist/lib/utilities/write-file.mjs.map +1 -1
  232. package/dist/lib/vfs.cjs +1104 -0
  233. package/dist/lib/vfs.d.cts +321 -0
  234. package/dist/lib/vfs.d.cts.map +1 -0
  235. package/dist/lib/vfs.d.mts +321 -0
  236. package/dist/lib/vfs.d.mts.map +1 -0
  237. package/dist/lib/vfs.mjs +1102 -0
  238. package/dist/lib/vfs.mjs.map +1 -0
  239. package/dist/plugin-base.cjs +5 -9
  240. package/dist/plugin-base.mjs +5 -9
  241. package/dist/plugin-base.mjs.map +1 -1
  242. package/dist/plugin-utils/build-helpers.cjs +2 -2
  243. package/dist/plugin-utils/build-helpers.mjs +2 -2
  244. package/dist/plugin-utils/build-helpers.mjs.map +1 -1
  245. package/dist/plugin-utils/combine-plugins.d.cts +7 -8
  246. package/dist/plugin-utils/combine-plugins.d.cts.map +1 -1
  247. package/dist/plugin-utils/combine-plugins.d.mts +7 -8
  248. package/dist/plugin-utils/combine-plugins.d.mts.map +1 -1
  249. package/dist/plugin-utils/combine-plugins.mjs.map +1 -1
  250. package/dist/plugin-utils/context-helpers.cjs +29 -16
  251. package/dist/plugin-utils/context-helpers.d.cts +10 -2
  252. package/dist/plugin-utils/context-helpers.d.cts.map +1 -1
  253. package/dist/plugin-utils/context-helpers.d.mts +10 -2
  254. package/dist/plugin-utils/context-helpers.d.mts.map +1 -1
  255. package/dist/plugin-utils/context-helpers.mjs +29 -17
  256. package/dist/plugin-utils/context-helpers.mjs.map +1 -1
  257. package/dist/plugin-utils/docs-helper.cjs +17 -0
  258. package/dist/plugin-utils/docs-helper.d.cts +11 -0
  259. package/dist/plugin-utils/docs-helper.d.cts.map +1 -0
  260. package/dist/plugin-utils/docs-helper.d.mts +11 -0
  261. package/dist/plugin-utils/docs-helper.d.mts.map +1 -0
  262. package/dist/plugin-utils/docs-helper.mjs +16 -0
  263. package/dist/plugin-utils/docs-helper.mjs.map +1 -0
  264. package/dist/plugin-utils/extend.mjs.map +1 -1
  265. package/dist/plugin-utils/filter.cjs +101 -0
  266. package/dist/plugin-utils/filter.d.cts +16 -0
  267. package/dist/plugin-utils/filter.d.cts.map +1 -0
  268. package/dist/plugin-utils/filter.d.mts +16 -0
  269. package/dist/plugin-utils/filter.d.mts.map +1 -0
  270. package/dist/plugin-utils/filter.mjs +91 -0
  271. package/dist/plugin-utils/filter.mjs.map +1 -0
  272. package/dist/plugin-utils/format-package-json.cjs +1 -1
  273. package/dist/plugin-utils/format-package-json.mjs +1 -1
  274. package/dist/plugin-utils/format-package-json.mjs.map +1 -1
  275. package/dist/plugin-utils/format.cjs +44 -0
  276. package/dist/plugin-utils/format.d.cts +11 -0
  277. package/dist/plugin-utils/format.d.cts.map +1 -0
  278. package/dist/plugin-utils/format.d.mts +11 -0
  279. package/dist/plugin-utils/format.d.mts.map +1 -0
  280. package/dist/plugin-utils/format.mjs +43 -0
  281. package/dist/plugin-utils/format.mjs.map +1 -0
  282. package/dist/plugin-utils/get-config-path.cjs +34 -32
  283. package/dist/plugin-utils/get-config-path.d.cts +4 -1
  284. package/dist/plugin-utils/get-config-path.d.cts.map +1 -1
  285. package/dist/plugin-utils/get-config-path.d.mts +4 -1
  286. package/dist/plugin-utils/get-config-path.d.mts.map +1 -1
  287. package/dist/plugin-utils/get-config-path.mjs +34 -32
  288. package/dist/plugin-utils/get-config-path.mjs.map +1 -1
  289. package/dist/plugin-utils/helpers.cjs +25 -10
  290. package/dist/plugin-utils/helpers.d.cts +31 -24
  291. package/dist/plugin-utils/helpers.d.cts.map +1 -1
  292. package/dist/plugin-utils/helpers.d.mts +31 -24
  293. package/dist/plugin-utils/helpers.d.mts.map +1 -1
  294. package/dist/plugin-utils/helpers.mjs +22 -8
  295. package/dist/plugin-utils/helpers.mjs.map +1 -1
  296. package/dist/plugin-utils/index.cjs +48 -4
  297. package/dist/plugin-utils/index.d.cts +9 -3
  298. package/dist/plugin-utils/index.d.mts +9 -3
  299. package/dist/plugin-utils/index.mjs +11 -5
  300. package/dist/plugin-utils/install.cjs +47 -0
  301. package/dist/plugin-utils/install.d.cts +23 -0
  302. package/dist/plugin-utils/install.d.cts.map +1 -0
  303. package/dist/plugin-utils/install.d.mts +23 -0
  304. package/dist/plugin-utils/install.d.mts.map +1 -0
  305. package/dist/plugin-utils/install.mjs +45 -0
  306. package/dist/plugin-utils/install.mjs.map +1 -0
  307. package/dist/plugin-utils/logging.cjs +605 -0
  308. package/dist/plugin-utils/logging.d.cts +111 -0
  309. package/dist/plugin-utils/logging.d.cts.map +1 -0
  310. package/dist/plugin-utils/logging.d.mts +111 -0
  311. package/dist/plugin-utils/logging.d.mts.map +1 -0
  312. package/dist/plugin-utils/logging.mjs +588 -0
  313. package/dist/plugin-utils/logging.mjs.map +1 -0
  314. package/dist/plugin-utils/merge.cjs +4 -4
  315. package/dist/plugin-utils/merge.d.cts +0 -1
  316. package/dist/plugin-utils/merge.d.cts.map +1 -1
  317. package/dist/plugin-utils/merge.d.mts.map +1 -1
  318. package/dist/plugin-utils/merge.mjs +3 -3
  319. package/dist/plugin-utils/merge.mjs.map +1 -1
  320. package/dist/plugin-utils/modules.cjs +1 -1
  321. package/dist/plugin-utils/modules.mjs +1 -1
  322. package/dist/plugin-utils/modules.mjs.map +1 -1
  323. package/dist/plugin-utils/paths.cjs +18 -4
  324. package/dist/plugin-utils/paths.d.cts +12 -2
  325. package/dist/plugin-utils/paths.d.cts.map +1 -1
  326. package/dist/plugin-utils/paths.d.mts +12 -2
  327. package/dist/plugin-utils/paths.d.mts.map +1 -1
  328. package/dist/plugin-utils/paths.mjs +18 -4
  329. package/dist/plugin-utils/paths.mjs.map +1 -1
  330. package/dist/plugin-utils/virtual.cjs +80 -0
  331. package/dist/plugin-utils/virtual.d.cts +69 -0
  332. package/dist/plugin-utils/virtual.d.cts.map +1 -0
  333. package/dist/plugin-utils/virtual.d.mts +69 -0
  334. package/dist/plugin-utils/virtual.d.mts.map +1 -0
  335. package/dist/plugin-utils/virtual.mjs +73 -0
  336. package/dist/plugin-utils/virtual.mjs.map +1 -0
  337. package/dist/schemas/fs.cjs +232 -0
  338. package/dist/schemas/fs.d.cts +127 -0
  339. package/dist/schemas/fs.d.cts.map +1 -0
  340. package/dist/schemas/fs.d.mts +127 -0
  341. package/dist/schemas/fs.d.mts.map +1 -0
  342. package/dist/schemas/fs.mjs +226 -0
  343. package/dist/schemas/fs.mjs.map +1 -0
  344. package/dist/storage/base.cjs +216 -0
  345. package/dist/storage/base.d.cts +201 -0
  346. package/dist/storage/base.d.cts.map +1 -0
  347. package/dist/storage/base.d.mts +201 -0
  348. package/dist/storage/base.d.mts.map +1 -0
  349. package/dist/storage/base.mjs +215 -0
  350. package/dist/storage/base.mjs.map +1 -0
  351. package/dist/storage/file-system.cjs +180 -0
  352. package/dist/storage/file-system.d.cts +129 -0
  353. package/dist/storage/file-system.d.cts.map +1 -0
  354. package/dist/storage/file-system.d.mts +129 -0
  355. package/dist/storage/file-system.d.mts.map +1 -0
  356. package/dist/storage/file-system.mjs +179 -0
  357. package/dist/storage/file-system.mjs.map +1 -0
  358. package/dist/storage/helpers.cjs +37 -0
  359. package/dist/storage/helpers.d.cts +25 -0
  360. package/dist/storage/helpers.d.cts.map +1 -0
  361. package/dist/storage/helpers.d.mts +25 -0
  362. package/dist/storage/helpers.d.mts.map +1 -0
  363. package/dist/storage/helpers.mjs +34 -0
  364. package/dist/storage/helpers.mjs.map +1 -0
  365. package/dist/storage/index.cjs +12 -0
  366. package/dist/storage/index.d.cts +5 -0
  367. package/dist/storage/index.d.mts +5 -0
  368. package/dist/storage/index.mjs +6 -0
  369. package/dist/storage/virtual.cjs +98 -0
  370. package/dist/storage/virtual.d.cts +80 -0
  371. package/dist/storage/virtual.d.cts.map +1 -0
  372. package/dist/storage/virtual.d.mts +80 -0
  373. package/dist/storage/virtual.d.mts.map +1 -0
  374. package/dist/storage/virtual.mjs +97 -0
  375. package/dist/storage/virtual.mjs.map +1 -0
  376. package/dist/types/api.d.cts +18 -99
  377. package/dist/types/api.d.cts.map +1 -1
  378. package/dist/types/api.d.mts +18 -99
  379. package/dist/types/api.d.mts.map +1 -1
  380. package/dist/types/config.d.cts +239 -141
  381. package/dist/types/config.d.cts.map +1 -1
  382. package/dist/types/config.d.mts +240 -142
  383. package/dist/types/config.d.mts.map +1 -1
  384. package/dist/types/context.d.cts +228 -117
  385. package/dist/types/context.d.cts.map +1 -1
  386. package/dist/types/context.d.mts +231 -120
  387. package/dist/types/context.d.mts.map +1 -1
  388. package/dist/types/fs.d.cts +49 -5
  389. package/dist/types/fs.d.cts.map +1 -1
  390. package/dist/types/fs.d.mts +50 -6
  391. package/dist/types/fs.d.mts.map +1 -1
  392. package/dist/types/hooks.d.cts +26 -38
  393. package/dist/types/hooks.d.cts.map +1 -1
  394. package/dist/types/hooks.d.mts +26 -38
  395. package/dist/types/hooks.d.mts.map +1 -1
  396. package/dist/types/index.d.cts +9 -0
  397. package/dist/types/index.d.mts +8 -8
  398. package/dist/types/logging.d.cts +161 -0
  399. package/dist/types/logging.d.cts.map +1 -0
  400. package/dist/types/logging.d.mts +161 -0
  401. package/dist/types/logging.d.mts.map +1 -0
  402. package/dist/types/plugin.d.cts +23 -24
  403. package/dist/types/plugin.d.cts.map +1 -1
  404. package/dist/types/plugin.d.mts +23 -24
  405. package/dist/types/plugin.d.mts.map +1 -1
  406. package/dist/types/tsconfig.d.cts +15 -12
  407. package/dist/types/tsconfig.d.cts.map +1 -1
  408. package/dist/types/tsconfig.d.mts +16 -13
  409. package/dist/types/tsconfig.d.mts.map +1 -1
  410. package/dist/types/unplugin.d.cts +10 -23
  411. package/dist/types/unplugin.d.cts.map +1 -1
  412. package/dist/types/unplugin.d.mts +10 -23
  413. package/dist/types/unplugin.d.mts.map +1 -1
  414. package/package.json +270 -425
  415. package/schemas/fs.capnp +42 -0
  416. package/dist/lib/logger.cjs +0 -59
  417. package/dist/lib/logger.d.cts +0 -23
  418. package/dist/lib/logger.d.cts.map +0 -1
  419. package/dist/lib/logger.d.mts +0 -23
  420. package/dist/lib/logger.d.mts.map +0 -1
  421. package/dist/lib/logger.mjs +0 -56
  422. package/dist/lib/logger.mjs.map +0 -1
  423. package/dist/types/_internal.cjs +0 -0
  424. package/dist/types/_internal.d.cts +0 -106
  425. package/dist/types/_internal.d.cts.map +0 -1
  426. package/dist/types/_internal.d.mts +0 -106
  427. package/dist/types/_internal.d.mts.map +0 -1
  428. package/dist/types/_internal.mjs +0 -1
  429. package/dist/types/commands.d.cts +0 -13
  430. package/dist/types/commands.d.cts.map +0 -1
  431. package/dist/types/commands.d.mts +0 -13
  432. package/dist/types/commands.d.mts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"entry.d.mts","names":[],"sources":["../../src/lib/entry.ts"],"mappings":";;;;;iBAsCgB,kBAAA,CACd,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,cAAA;AAAA,iBA6BF,YAAA,CACd,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,cAAA,EAChB,KAAA,GAAQ,uBAAA,EACR,MAAA,YACC,2BAAA;AApCH;;;;;;;AAAA,iBAmDsB,aAAA,CACpB,OAAA,EAAS,OAAA,EACT,eAAA,EACI,uBAAA,GACA,uBAAA,KACA,MAAA,SAAe,uBAAA,GAA0B,uBAAA,MAC5C,OAAA,CAAQ,2BAAA;;;AA1BX;;;;;iBAqGgB,iBAAA,CACd,OAAA,EAAS,OAAA,EACT,eAAA,EACI,uBAAA,GACA,uBAAA,KACA,MAAA,SAAe,uBAAA,GAA0B,uBAAA,MAC5C,2BAAA;;;;;;;iBAwDa,gBAAA,CAAiB,KAAA,QAAa,KAAA,IAAS,cAAA;;;;;;;iBAUvC,6BAAA,CACd,KAAA,EAAO,uBAAA,GAA0B,2BAAA,GAChC,KAAA,IAAS,2BAAA;;;;;;;iBAaI,eAAA,CAAgB,MAAA,GAAQ,MAAA,YAAuB,MAAA"}
1
+ {"version":3,"file":"entry.d.mts","names":[],"sources":["../../src/lib/entry.ts"],"mappings":";;;;;iBAqCgB,kBAAA,CACd,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,cAAA;AAAA,iBAsBF,YAAA,CACd,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,cAAA,EAChB,KAAA,GAAQ,uBAAA,EACR,MAAA,YACC,2BAAA;AA7BH;;;;;;;AAAA,iBA4CsB,aAAA,CACpB,OAAA,EAAS,OAAA,EACT,eAAA,EACI,uBAAA,GACA,uBAAA,KACA,MAAA,SAAe,uBAAA,GAA0B,uBAAA,MAC5C,OAAA,CAAQ,2BAAA;;;AA1BX;;;;;iBAmGgB,iBAAA,CACd,OAAA,EAAS,OAAA,EACT,eAAA,EACI,uBAAA,GACA,uBAAA,KACA,MAAA,SAAe,uBAAA,GAA0B,uBAAA,MAC5C,2BAAA;;;;;;;iBAwDa,gBAAA,CAAiB,KAAA,QAAa,KAAA,IAAS,cAAA;;;;;;;iBAUvC,6BAAA,CACd,KAAA,EAAO,uBAAA,GAA0B,2BAAA,GAChC,KAAA,IAAS,2BAAA;;;;;;;iBAaI,eAAA,CAAgB,MAAA,GAAQ,MAAA,YAAuB,MAAA"}
@@ -2,18 +2,18 @@ import { replacePathTokens } from "../plugin-utils/paths.mjs";
2
2
  import { appendPath } from "@stryke/path/append";
3
3
  import { joinPaths } from "@stryke/path/join-paths";
4
4
  import { replaceExtension, replacePath } from "@stryke/path/replace";
5
- import { parseTypeDefinition } from "@stryke/convert/parse-type-definition";
5
+ import { isSetString } from "@stryke/type-checks/is-set-string";
6
+ import { isString } from "@stryke/type-checks/is-string";
6
7
  import { toArray } from "@stryke/convert/to-array";
7
- import { murmurhash } from "@stryke/hash";
8
+ import { isObject } from "@stryke/type-checks/is-object";
8
9
  import { getUniqueBy } from "@stryke/helpers/get-unique";
9
10
  import { isAbsolutePath } from "@stryke/path/is-type";
10
- import { isObject } from "@stryke/type-checks/is-object";
11
- import { isSetString } from "@stryke/type-checks/is-set-string";
12
- import { isString } from "@stryke/type-checks/is-string";
11
+ import { parseTypeDefinition } from "@stryke/convert/parse-type-definition";
12
+ import { murmurhash } from "@stryke/hash";
13
13
 
14
14
  //#region src/lib/entry.ts
15
15
  function resolveEntryOutput(context, typeDefinition) {
16
- return replaceExtension(replacePath(replacePath(replacePath(replacePath(replacePath(typeDefinition.file, joinPaths(context.workspaceConfig.workspaceRoot, context.config.root, "src")), joinPaths(context.workspaceConfig.workspaceRoot, context.config.root)), joinPaths(context.config.root, "src")), context.config.root), "src"));
16
+ return replaceExtension(replacePath(replacePath(replacePath(replacePath(replacePath(typeDefinition.file, joinPaths(context.config.cwd, context.config.root, "src")), joinPaths(context.config.cwd, context.config.root)), joinPaths(context.config.root, "src")), context.config.root), "src"));
17
17
  }
18
18
  function resolveInput(context, typeDefinition, input, output) {
19
19
  return {
@@ -47,7 +47,7 @@ async function resolveInputs(context, typeDefinitions) {
47
47
  file: replacePath(filePath, context.config.root),
48
48
  name: typeDefinition.name
49
49
  }, entry.input, entry.output);
50
- return (await context.fs.glob(appendPath(filePath, context.workspaceConfig.workspaceRoot))).map((file) => resolveInput(context, {
50
+ return (await context.fs.glob(appendPath(filePath, context.config.cwd))).map((file) => resolveInput(context, {
51
51
  file: replacePath(file, context.config.root),
52
52
  name: typeDefinition.name
53
53
  }, entry.input, entry.output));
@@ -75,10 +75,10 @@ function resolveInputsSync(context, typeDefinitions) {
75
75
  }
76
76
  const filePath = isAbsolutePath(typeDefinition.file) ? typeDefinition.file : appendPath(typeDefinition.file, context.config.root);
77
77
  if (context.fs.isFileSync(filePath)) return resolveInput(context, {
78
- file: appendPath(filePath, context.workspaceConfig.workspaceRoot),
78
+ file: appendPath(filePath, context.config.cwd),
79
79
  name: typeDefinition.name
80
80
  });
81
- return context.fs.globSync(appendPath(filePath, context.workspaceConfig.workspaceRoot)).map((file) => resolveInput(context, {
81
+ return context.fs.globSync(appendPath(filePath, context.config.cwd)).map((file) => resolveInput(context, {
82
82
  file,
83
83
  name: typeDefinition.name
84
84
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"entry.mjs","names":[],"sources":["../../src/lib/entry.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 { parseTypeDefinition } from \"@stryke/convert/parse-type-definition\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { murmurhash } from \"@stryke/hash\";\nimport { getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { isAbsolutePath } from \"@stryke/path/is-type\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport type {\n TypeDefinition,\n TypeDefinitionParameter\n} from \"@stryke/types/configuration\";\nimport { replacePathTokens } from \"../plugin-utils/paths\";\nimport { Config } from \"../types\";\nimport { ResolvedEntryTypeDefinition } from \"../types/config\";\nimport type { Context } from \"../types/context\";\n\nexport function resolveEntryOutput(\n context: Context,\n typeDefinition: TypeDefinition\n): string {\n return replaceExtension(\n replacePath(\n replacePath(\n replacePath(\n replacePath(\n replacePath(\n typeDefinition.file,\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.root,\n \"src\"\n )\n ),\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.root\n )\n ),\n joinPaths(context.config.root, \"src\")\n ),\n context.config.root\n ),\n \"src\"\n )\n );\n}\n\nexport function resolveInput(\n context: Context,\n typeDefinition: TypeDefinition,\n input?: TypeDefinitionParameter,\n output?: string\n): ResolvedEntryTypeDefinition {\n return {\n ...typeDefinition,\n input: isSetString(input) ? { file: String(input) } : typeDefinition,\n output: output || resolveEntryOutput(context, typeDefinition)\n };\n}\n\n/**\n * Resolves multiple type definitions into their corresponding resolved entry type definitions.\n *\n * @param context - The current context\n * @param typeDefinitions - The type definitions to resolve.\n * @returns A promise that resolves to an array of resolved entry type definitions.\n */\nexport async function resolveInputs(\n context: Context,\n typeDefinitions:\n | TypeDefinitionParameter\n | TypeDefinitionParameter[]\n | Record<string, TypeDefinitionParameter | TypeDefinitionParameter[]>\n): Promise<ResolvedEntryTypeDefinition[]> {\n return (\n await Promise.all(\n (isObject(typeDefinitions) && !isTypeDefinition(typeDefinitions)\n ? Object.values(typeDefinitions).flat()\n : toArray(typeDefinitions)\n )\n .map(async entry => {\n if (isResolvedEntryTypeDefinition(entry)) {\n return {\n ...entry,\n output: entry.output\n ? replacePathTokens(context, entry.output)\n : undefined,\n file: replacePathTokens(context, entry.file)\n };\n }\n\n let typeDefinition: TypeDefinition;\n if (isString(entry)) {\n typeDefinition = parseTypeDefinition(\n replacePathTokens(context, entry)\n )!;\n } else {\n typeDefinition = entry;\n typeDefinition.file = replacePathTokens(\n context,\n typeDefinition.file\n );\n }\n\n const filePath = isAbsolutePath(typeDefinition.file)\n ? typeDefinition.file\n : appendPath(typeDefinition.file, context.config.root);\n if (await context.fs.isFile(filePath)) {\n return resolveInput(\n context,\n {\n file: replacePath(filePath, context.config.root),\n name: typeDefinition.name\n },\n (entry as ResolvedEntryTypeDefinition).input,\n (entry as ResolvedEntryTypeDefinition).output\n );\n }\n\n return (\n await context.fs.glob(\n appendPath(filePath, context.workspaceConfig.workspaceRoot)\n )\n ).map(file =>\n resolveInput(\n context,\n {\n file: replacePath(file, context.config.root),\n name: typeDefinition.name\n },\n (entry as ResolvedEntryTypeDefinition).input,\n (entry as ResolvedEntryTypeDefinition).output\n )\n );\n })\n .flat()\n .filter(Boolean)\n )\n ).flat();\n}\n\n/**\n * Resolves multiple type definitions into their corresponding resolved entry type definitions.\n *\n * @param context - The current context\n * @param typeDefinitions - The type definitions to resolve.\n * @returns A promise that resolves to an array of resolved entry type definitions.\n */\nexport function resolveInputsSync(\n context: Context,\n typeDefinitions:\n | TypeDefinitionParameter\n | TypeDefinitionParameter[]\n | Record<string, TypeDefinitionParameter | TypeDefinitionParameter[]>\n): ResolvedEntryTypeDefinition[] {\n return (\n isObject(typeDefinitions) && !isTypeDefinition(typeDefinitions)\n ? Object.values(typeDefinitions).flat()\n : toArray(typeDefinitions)\n )\n .map(entry => {\n if (isResolvedEntryTypeDefinition(entry)) {\n return {\n ...entry,\n output: entry.output\n ? replacePathTokens(context, entry.output)\n : undefined,\n file: replacePathTokens(context, entry.file)\n };\n }\n\n let typeDefinition: TypeDefinition;\n if (isString(entry)) {\n typeDefinition = parseTypeDefinition(\n replacePathTokens(context, entry)\n )!;\n } else {\n typeDefinition = entry;\n typeDefinition.file = replacePathTokens(context, typeDefinition.file);\n }\n\n const filePath = isAbsolutePath(typeDefinition.file)\n ? typeDefinition.file\n : appendPath(typeDefinition.file, context.config.root);\n if (context.fs.isFileSync(filePath)) {\n return resolveInput(context, {\n file: appendPath(filePath, context.workspaceConfig.workspaceRoot),\n name: typeDefinition.name\n });\n }\n\n return context.fs\n .globSync(appendPath(filePath, context.workspaceConfig.workspaceRoot))\n .map(file =>\n resolveInput(context, {\n file,\n name: typeDefinition.name\n })\n );\n })\n .flat()\n .filter(Boolean);\n}\n\n/**\n * Checks if the provided entry is a type definition.\n *\n * @param entry - The entry to check.\n * @returns True if the entry is a type definition, false otherwise.\n */\nexport function isTypeDefinition(entry: any): entry is TypeDefinition {\n return !isString(entry) && entry.file !== undefined;\n}\n\n/**\n * Checks if the provided entry is a resolved entry type definition.\n *\n * @param entry - The entry to check.\n * @returns True if the entry is a resolved entry type definition, false otherwise.\n */\nexport function isResolvedEntryTypeDefinition(\n entry: TypeDefinitionParameter | ResolvedEntryTypeDefinition\n): entry is ResolvedEntryTypeDefinition {\n return (\n isTypeDefinition(entry) &&\n (entry as ResolvedEntryTypeDefinition).output !== undefined\n );\n}\n\n/**\n * Get unique inputs from the provided list.\n *\n * @param inputs - The entry points to process.\n * @returns An array of unique inputs (by file path or content hash).\n */\nexport function getUniqueInputs(inputs: Config[\"input\"] = []): Config[\"input\"] {\n return isObject(inputs)\n ? inputs\n : getUniqueBy(toArray(inputs), (item: TypeDefinitionParameter) =>\n isSetString(item) ? item : murmurhash(item ?? {}, { maxLength: 24 })\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"entry.mjs","names":[],"sources":["../../src/lib/entry.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 { parseTypeDefinition } from \"@stryke/convert/parse-type-definition\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { murmurhash } from \"@stryke/hash\";\nimport { getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { isAbsolutePath } from \"@stryke/path/is-type\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport type {\n TypeDefinition,\n TypeDefinitionParameter\n} from \"@stryke/types/configuration\";\nimport { replacePathTokens } from \"../plugin-utils/paths\";\nimport { Config, ResolvedEntryTypeDefinition } from \"../types/config\";\nimport type { Context } from \"../types/context\";\n\nexport function resolveEntryOutput(\n context: Context,\n typeDefinition: TypeDefinition\n): string {\n return replaceExtension(\n replacePath(\n replacePath(\n replacePath(\n replacePath(\n replacePath(\n typeDefinition.file,\n joinPaths(context.config.cwd, context.config.root, \"src\")\n ),\n joinPaths(context.config.cwd, context.config.root)\n ),\n joinPaths(context.config.root, \"src\")\n ),\n context.config.root\n ),\n \"src\"\n )\n );\n}\n\nexport function resolveInput(\n context: Context,\n typeDefinition: TypeDefinition,\n input?: TypeDefinitionParameter,\n output?: string\n): ResolvedEntryTypeDefinition {\n return {\n ...typeDefinition,\n input: isSetString(input) ? { file: String(input) } : typeDefinition,\n output: output || resolveEntryOutput(context, typeDefinition)\n };\n}\n\n/**\n * Resolves multiple type definitions into their corresponding resolved entry type definitions.\n *\n * @param context - The current context\n * @param typeDefinitions - The type definitions to resolve.\n * @returns A promise that resolves to an array of resolved entry type definitions.\n */\nexport async function resolveInputs(\n context: Context,\n typeDefinitions:\n | TypeDefinitionParameter\n | TypeDefinitionParameter[]\n | Record<string, TypeDefinitionParameter | TypeDefinitionParameter[]>\n): Promise<ResolvedEntryTypeDefinition[]> {\n return (\n await Promise.all(\n (isObject(typeDefinitions) && !isTypeDefinition(typeDefinitions)\n ? Object.values(typeDefinitions).flat()\n : toArray(typeDefinitions)\n )\n .map(async entry => {\n if (isResolvedEntryTypeDefinition(entry)) {\n return {\n ...entry,\n output: entry.output\n ? replacePathTokens(context, entry.output)\n : undefined,\n file: replacePathTokens(context, entry.file)\n };\n }\n\n let typeDefinition: TypeDefinition;\n if (isString(entry)) {\n typeDefinition = parseTypeDefinition(\n replacePathTokens(context, entry)\n )!;\n } else {\n typeDefinition = entry;\n typeDefinition.file = replacePathTokens(\n context,\n typeDefinition.file\n );\n }\n\n const filePath = isAbsolutePath(typeDefinition.file)\n ? typeDefinition.file\n : appendPath(typeDefinition.file, context.config.root);\n if (await context.fs.isFile(filePath)) {\n return resolveInput(\n context,\n {\n file: replacePath(filePath, context.config.root),\n name: typeDefinition.name\n },\n (entry as ResolvedEntryTypeDefinition).input,\n (entry as ResolvedEntryTypeDefinition).output\n );\n }\n\n return (\n await context.fs.glob(appendPath(filePath, context.config.cwd))\n ).map(file =>\n resolveInput(\n context,\n {\n file: replacePath(file, context.config.root),\n name: typeDefinition.name\n },\n (entry as ResolvedEntryTypeDefinition).input,\n (entry as ResolvedEntryTypeDefinition).output\n )\n );\n })\n .flat()\n .filter(Boolean)\n )\n ).flat();\n}\n\n/**\n * Resolves multiple type definitions into their corresponding resolved entry type definitions.\n *\n * @param context - The current context\n * @param typeDefinitions - The type definitions to resolve.\n * @returns A promise that resolves to an array of resolved entry type definitions.\n */\nexport function resolveInputsSync(\n context: Context,\n typeDefinitions:\n | TypeDefinitionParameter\n | TypeDefinitionParameter[]\n | Record<string, TypeDefinitionParameter | TypeDefinitionParameter[]>\n): ResolvedEntryTypeDefinition[] {\n return (\n isObject(typeDefinitions) && !isTypeDefinition(typeDefinitions)\n ? Object.values(typeDefinitions).flat()\n : toArray(typeDefinitions)\n )\n .map(entry => {\n if (isResolvedEntryTypeDefinition(entry)) {\n return {\n ...entry,\n output: entry.output\n ? replacePathTokens(context, entry.output)\n : undefined,\n file: replacePathTokens(context, entry.file)\n };\n }\n\n let typeDefinition: TypeDefinition;\n if (isString(entry)) {\n typeDefinition = parseTypeDefinition(\n replacePathTokens(context, entry)\n )!;\n } else {\n typeDefinition = entry;\n typeDefinition.file = replacePathTokens(context, typeDefinition.file);\n }\n\n const filePath = isAbsolutePath(typeDefinition.file)\n ? typeDefinition.file\n : appendPath(typeDefinition.file, context.config.root);\n if (context.fs.isFileSync(filePath)) {\n return resolveInput(context, {\n file: appendPath(filePath, context.config.cwd),\n name: typeDefinition.name\n });\n }\n\n return context.fs\n .globSync(appendPath(filePath, context.config.cwd))\n .map(file =>\n resolveInput(context, {\n file,\n name: typeDefinition.name\n })\n );\n })\n .flat()\n .filter(Boolean);\n}\n\n/**\n * Checks if the provided entry is a type definition.\n *\n * @param entry - The entry to check.\n * @returns True if the entry is a type definition, false otherwise.\n */\nexport function isTypeDefinition(entry: any): entry is TypeDefinition {\n return !isString(entry) && entry.file !== undefined;\n}\n\n/**\n * Checks if the provided entry is a resolved entry type definition.\n *\n * @param entry - The entry to check.\n * @returns True if the entry is a resolved entry type definition, false otherwise.\n */\nexport function isResolvedEntryTypeDefinition(\n entry: TypeDefinitionParameter | ResolvedEntryTypeDefinition\n): entry is ResolvedEntryTypeDefinition {\n return (\n isTypeDefinition(entry) &&\n (entry as ResolvedEntryTypeDefinition).output !== undefined\n );\n}\n\n/**\n * Get unique inputs from the provided list.\n *\n * @param inputs - The entry points to process.\n * @returns An array of unique inputs (by file path or content hash).\n */\nexport function getUniqueInputs(inputs: Config[\"input\"] = []): Config[\"input\"] {\n return isObject(inputs)\n ? inputs\n : getUniqueBy(toArray(inputs), (item: TypeDefinitionParameter) =>\n isSetString(item) ? item : murmurhash(item ?? {}, { maxLength: 24 })\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ const require_constants_environments = require('../constants/environments.cjs');
4
+ const require_lib_hooks = require('./hooks.cjs');
5
+ require('../constants/index.cjs');
6
+ let defu = require("defu");
7
+ defu = require_runtime.__toESM(defu, 1);
8
+ let _stryke_string_format_title_case = require("@stryke/string-format/title-case");
9
+ let _stryke_unique_id_uuid = require("@stryke/unique-id/uuid");
10
+ let _stryke_type_checks_is_set = require("@stryke/type-checks/is-set");
11
+
12
+ //#region src/lib/environment.ts
13
+ function createEnvironment(name, config) {
14
+ return (0, defu.default)(config.environments?.[name] ?? {}, {
15
+ id: (0, _stryke_unique_id_uuid.uuid)(),
16
+ name,
17
+ title: config.title ?? (0, _stryke_string_format_title_case.titleCase)(config.name),
18
+ ssr: false,
19
+ resolve: { mainFields: config.platform === "browser" ? [
20
+ "browser",
21
+ "module",
22
+ "jsnext:main",
23
+ "jsnext"
24
+ ] : [
25
+ "module",
26
+ "jsnext:main",
27
+ "jsnext"
28
+ ] },
29
+ consumer: config.platform === "browser" ? "client" : "server",
30
+ preview: config.platform === "browser" ? {
31
+ port: 5173,
32
+ open: true,
33
+ strictPort: false,
34
+ host: "localhost",
35
+ allowedHosts: ["."],
36
+ cors: true,
37
+ headers: {}
38
+ } : void 0
39
+ });
40
+ }
41
+ function createDefaultEnvironment(config) {
42
+ return createEnvironment(require_constants_environments.DEFAULT_ENVIRONMENT, config);
43
+ }
44
+ async function getEnvironments(context) {
45
+ if (!context.config.environments || Object.keys(context.config.environments).length <= 1) {
46
+ context.debug({
47
+ meta: { category: "config" },
48
+ message: "No environments are configured for this Powerlines project. Using the default environment."
49
+ });
50
+ return [await context.getEnvironment()];
51
+ }
52
+ context.debug({
53
+ meta: { category: "config" },
54
+ message: `Found ${Object.keys(context.config.environments).length} configured environment(s) for this Powerlines project.`
55
+ });
56
+ return (await Promise.all(Object.entries(context.config.environments).map(async ([name, config]) => {
57
+ if (!await context.getEnvironmentSafe(name)) {
58
+ const resolvedEnvironment = await require_lib_hooks.callHook(context, "configEnvironment", { environment: name }, name, config);
59
+ if (resolvedEnvironment) context.environments[name] = await context.createEnvironment(resolvedEnvironment);
60
+ }
61
+ return context.environments[name];
62
+ }))).filter((env) => (0, _stryke_type_checks_is_set.isSet)(env));
63
+ }
64
+ async function executeEnvironments(context, handle) {
65
+ await Promise.all((await getEnvironments(context)).map(async (env) => Promise.resolve(handle(env))));
66
+ }
67
+
68
+ //#endregion
69
+ exports.createDefaultEnvironment = createDefaultEnvironment;
70
+ exports.createEnvironment = createEnvironment;
71
+ exports.executeEnvironments = executeEnvironments;
72
+ exports.getEnvironments = getEnvironments;
@@ -0,0 +1,12 @@
1
+ import { EnvironmentContext, ExecutionContext } from "../types/context.cjs";
2
+ import { EnvironmentResolvedConfig, ResolvedConfig } from "../types/config.cjs";
3
+ import { MaybePromise } from "@stryke/types/base";
4
+
5
+ //#region src/lib/environment.d.ts
6
+ declare function createEnvironment<TResolvedConfig extends ResolvedConfig = ResolvedConfig>(name: string, config: TResolvedConfig): EnvironmentResolvedConfig<TResolvedConfig>["environment"];
7
+ declare function createDefaultEnvironment<TResolvedConfig extends ResolvedConfig = ResolvedConfig>(config: TResolvedConfig): EnvironmentResolvedConfig<TResolvedConfig>["environment"];
8
+ declare function getEnvironments<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>): Promise<EnvironmentContext<TResolvedConfig, TSystemContext>[]>;
9
+ declare function executeEnvironments<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>, handle: (env: EnvironmentContext<TResolvedConfig, TSystemContext>) => MaybePromise<void>): Promise<void>;
10
+ //#endregion
11
+ export { createDefaultEnvironment, createEnvironment, executeEnvironments, getEnvironments };
12
+ //# sourceMappingURL=environment.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.cts","names":[],"sources":["../../src/lib/environment.ts"],"mappings":";;;;;iBAgCgB,iBAAA,yBACU,cAAA,GAAiB,cAAA,CAAA,CACzC,IAAA,UAAc,MAAA,EAAQ,eAAA,GA0BL,yBAAA,CAA0B,eAAA;AAAA,iBAG7B,wBAAA,yBACU,cAAA,GAAiB,cAAA,CAAA,CACzC,MAAA,EAAQ,eAAA,GAAe,yBAAA,CAAA,eAAA;AAAA,iBAIH,eAAA,yBACI,cAAA,GAAiB,cAAA,2BAAA,CAGzC,OAAA,EAAS,gBAAA,CAAiB,eAAA,EAAiB,cAAA,IAC1C,OAAA,CAAQ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;AAAA,iBAuDzB,mBAAA,yBACI,cAAA,GAAiB,cAAA,2BAAA,CAGzC,OAAA,EAAS,gBAAA,CAAiB,eAAA,EAAiB,cAAA,GAC3C,MAAA,GACE,GAAA,EAAK,kBAAA,CAAmB,eAAA,EAAiB,cAAA,MACtC,YAAA,SAAkB,OAAA"}
@@ -0,0 +1,12 @@
1
+ import { EnvironmentContext, ExecutionContext } from "../types/context.mjs";
2
+ import { EnvironmentResolvedConfig, ResolvedConfig } from "../types/config.mjs";
3
+ import { MaybePromise } from "@stryke/types/base";
4
+
5
+ //#region src/lib/environment.d.ts
6
+ declare function createEnvironment<TResolvedConfig extends ResolvedConfig = ResolvedConfig>(name: string, config: TResolvedConfig): EnvironmentResolvedConfig<TResolvedConfig>["environment"];
7
+ declare function createDefaultEnvironment<TResolvedConfig extends ResolvedConfig = ResolvedConfig>(config: TResolvedConfig): EnvironmentResolvedConfig<TResolvedConfig>["environment"];
8
+ declare function getEnvironments<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>): Promise<EnvironmentContext<TResolvedConfig, TSystemContext>[]>;
9
+ declare function executeEnvironments<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown>(context: ExecutionContext<TResolvedConfig, TSystemContext>, handle: (env: EnvironmentContext<TResolvedConfig, TSystemContext>) => MaybePromise<void>): Promise<void>;
10
+ //#endregion
11
+ export { createDefaultEnvironment, createEnvironment, executeEnvironments, getEnvironments };
12
+ //# sourceMappingURL=environment.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.mts","names":[],"sources":["../../src/lib/environment.ts"],"mappings":";;;;;iBAgCgB,iBAAA,yBACU,cAAA,GAAiB,cAAA,CAAA,CACzC,IAAA,UAAc,MAAA,EAAQ,eAAA,GA0BL,yBAAA,CAA0B,eAAA;AAAA,iBAG7B,wBAAA,yBACU,cAAA,GAAiB,cAAA,CAAA,CACzC,MAAA,EAAQ,eAAA,GAAe,yBAAA,CAAA,eAAA;AAAA,iBAIH,eAAA,yBACI,cAAA,GAAiB,cAAA,2BAAA,CAGzC,OAAA,EAAS,gBAAA,CAAiB,eAAA,EAAiB,cAAA,IAC1C,OAAA,CAAQ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;AAAA,iBAuDzB,mBAAA,yBACI,cAAA,GAAiB,cAAA,2BAAA,CAGzC,OAAA,EAAS,gBAAA,CAAiB,eAAA,EAAiB,cAAA,GAC3C,MAAA,GACE,GAAA,EAAK,kBAAA,CAAmB,eAAA,EAAiB,cAAA,MACtC,YAAA,SAAkB,OAAA"}
@@ -0,0 +1,67 @@
1
+ import { DEFAULT_ENVIRONMENT } from "../constants/environments.mjs";
2
+ import { callHook } from "./hooks.mjs";
3
+ import "../constants/index.mjs";
4
+ import defu from "defu";
5
+ import { titleCase } from "@stryke/string-format/title-case";
6
+ import { uuid } from "@stryke/unique-id/uuid";
7
+ import { isSet } from "@stryke/type-checks/is-set";
8
+
9
+ //#region src/lib/environment.ts
10
+ function createEnvironment(name, config) {
11
+ return defu(config.environments?.[name] ?? {}, {
12
+ id: uuid(),
13
+ name,
14
+ title: config.title ?? titleCase(config.name),
15
+ ssr: false,
16
+ resolve: { mainFields: config.platform === "browser" ? [
17
+ "browser",
18
+ "module",
19
+ "jsnext:main",
20
+ "jsnext"
21
+ ] : [
22
+ "module",
23
+ "jsnext:main",
24
+ "jsnext"
25
+ ] },
26
+ consumer: config.platform === "browser" ? "client" : "server",
27
+ preview: config.platform === "browser" ? {
28
+ port: 5173,
29
+ open: true,
30
+ strictPort: false,
31
+ host: "localhost",
32
+ allowedHosts: ["."],
33
+ cors: true,
34
+ headers: {}
35
+ } : void 0
36
+ });
37
+ }
38
+ function createDefaultEnvironment(config) {
39
+ return createEnvironment(DEFAULT_ENVIRONMENT, config);
40
+ }
41
+ async function getEnvironments(context) {
42
+ if (!context.config.environments || Object.keys(context.config.environments).length <= 1) {
43
+ context.debug({
44
+ meta: { category: "config" },
45
+ message: "No environments are configured for this Powerlines project. Using the default environment."
46
+ });
47
+ return [await context.getEnvironment()];
48
+ }
49
+ context.debug({
50
+ meta: { category: "config" },
51
+ message: `Found ${Object.keys(context.config.environments).length} configured environment(s) for this Powerlines project.`
52
+ });
53
+ return (await Promise.all(Object.entries(context.config.environments).map(async ([name, config]) => {
54
+ if (!await context.getEnvironmentSafe(name)) {
55
+ const resolvedEnvironment = await callHook(context, "configEnvironment", { environment: name }, name, config);
56
+ if (resolvedEnvironment) context.environments[name] = await context.createEnvironment(resolvedEnvironment);
57
+ }
58
+ return context.environments[name];
59
+ }))).filter((env) => isSet(env));
60
+ }
61
+ async function executeEnvironments(context, handle) {
62
+ await Promise.all((await getEnvironments(context)).map(async (env) => Promise.resolve(handle(env))));
63
+ }
64
+
65
+ //#endregion
66
+ export { createDefaultEnvironment, createEnvironment, executeEnvironments, getEnvironments };
67
+ //# sourceMappingURL=environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.mjs","names":[],"sources":["../../src/lib/environment.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 { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { MaybePromise } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport defu from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../constants\";\nimport type {\n EnvironmentContext,\n EnvironmentResolvedConfig,\n ExecutionContext,\n ResolvedConfig\n} from \"../types\";\nimport { callHook } from \"./hooks\";\n\nexport function createEnvironment<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>(name: string, config: TResolvedConfig) {\n return defu(config.environments?.[name] ?? {}, {\n id: uuid(),\n name,\n title: config.title ?? titleCase(config.name),\n ssr: false,\n resolve: {\n mainFields:\n config.platform === \"browser\"\n ? [\"browser\", \"module\", \"jsnext:main\", \"jsnext\"]\n : [\"module\", \"jsnext:main\", \"jsnext\"]\n },\n consumer: config.platform === \"browser\" ? \"client\" : \"server\",\n preview:\n config.platform === \"browser\"\n ? {\n port: 5173,\n open: true,\n strictPort: false,\n // https: false,\n host: \"localhost\",\n allowedHosts: [\".\"],\n cors: true,\n headers: {}\n }\n : undefined\n }) as unknown as EnvironmentResolvedConfig<TResolvedConfig>[\"environment\"];\n}\n\nexport function createDefaultEnvironment<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>(config: TResolvedConfig) {\n return createEnvironment<TResolvedConfig>(DEFAULT_ENVIRONMENT, config);\n}\n\nexport async function getEnvironments<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>\n): Promise<EnvironmentContext<TResolvedConfig, TSystemContext>[]> {\n if (\n !context.config.environments ||\n Object.keys(context.config.environments).length <= 1\n ) {\n context.debug({\n meta: {\n category: \"config\"\n },\n message:\n \"No environments are configured for this Powerlines project. Using the default environment.\"\n });\n\n return [await context.getEnvironment()];\n }\n\n context.debug({\n meta: {\n category: \"config\"\n },\n message: `Found ${\n Object.keys(context.config.environments).length\n } configured environment(s) for this Powerlines project.`\n });\n\n return (\n await Promise.all(\n Object.entries(context.config.environments).map(\n async ([name, config]) => {\n const environment = await context.getEnvironmentSafe(name);\n if (!environment) {\n const resolvedEnvironment = await callHook(\n context,\n \"configEnvironment\",\n {\n environment: name\n },\n name,\n config\n );\n\n if (resolvedEnvironment) {\n context.environments[name] = await context.createEnvironment(\n resolvedEnvironment as EnvironmentResolvedConfig<TResolvedConfig>[\"environment\"]\n );\n }\n }\n\n return context.environments[name];\n }\n )\n )\n ).filter(env => isSet(env));\n}\n\nexport async function executeEnvironments<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>(\n context: ExecutionContext<TResolvedConfig, TSystemContext>,\n handle: (\n env: EnvironmentContext<TResolvedConfig, TSystemContext>\n ) => MaybePromise<void>\n) {\n await Promise.all(\n (await getEnvironments(context)).map(async env =>\n Promise.resolve(handle(env))\n )\n );\n}\n"],"mappings":";;;;;;;;;AAgCA,SAAgB,kBAEd,MAAc,QAAyB;AACvC,QAAO,KAAK,OAAO,eAAe,SAAS,EAAE,EAAE;EAC7C,IAAI,MAAM;EACV;EACA,OAAO,OAAO,SAAS,UAAU,OAAO,KAAK;EAC7C,KAAK;EACL,SAAS,EACP,YACE,OAAO,aAAa,YAChB;GAAC;GAAW;GAAU;GAAe;GAAS,GAC9C;GAAC;GAAU;GAAe;GAAS,EAC1C;EACD,UAAU,OAAO,aAAa,YAAY,WAAW;EACrD,SACE,OAAO,aAAa,YAChB;GACE,MAAM;GACN,MAAM;GACN,YAAY;GAEZ,MAAM;GACN,cAAc,CAAC,IAAI;GACnB,MAAM;GACN,SAAS,EAAE;GACZ,GACD;EACP,CAAC;;AAGJ,SAAgB,yBAEd,QAAyB;AACzB,QAAO,kBAAmC,qBAAqB,OAAO;;AAGxE,eAAsB,gBAIpB,SACgE;AAChE,KACE,CAAC,QAAQ,OAAO,gBAChB,OAAO,KAAK,QAAQ,OAAO,aAAa,CAAC,UAAU,GACnD;AACA,UAAQ,MAAM;GACZ,MAAM,EACJ,UAAU,UACX;GACD,SACE;GACH,CAAC;AAEF,SAAO,CAAC,MAAM,QAAQ,gBAAgB,CAAC;;AAGzC,SAAQ,MAAM;EACZ,MAAM,EACJ,UAAU,UACX;EACD,SAAS,SACP,OAAO,KAAK,QAAQ,OAAO,aAAa,CAAC,OAC1C;EACF,CAAC;AAEF,SACE,MAAM,QAAQ,IACZ,OAAO,QAAQ,QAAQ,OAAO,aAAa,CAAC,IAC1C,OAAO,CAAC,MAAM,YAAY;AAExB,MAAI,CAAC,MADqB,QAAQ,mBAAmB,KAAK,EACxC;GAChB,MAAM,sBAAsB,MAAM,SAChC,SACA,qBACA,EACE,aAAa,MACd,EACD,MACA,OACD;AAED,OAAI,oBACF,SAAQ,aAAa,QAAQ,MAAM,QAAQ,kBACzC,oBACD;;AAIL,SAAO,QAAQ,aAAa;GAE/B,CACF,EACD,QAAO,QAAO,MAAM,IAAI,CAAC;;AAG7B,eAAsB,oBAIpB,SACA,QAGA;AACA,OAAM,QAAQ,KACX,MAAM,gBAAgB,QAAQ,EAAE,IAAI,OAAM,QACzC,QAAQ,QAAQ,OAAO,IAAI,CAAC,CAC7B,CACF"}
@@ -0,0 +1,43 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/lib/events.ts
4
+ /**
5
+ * Create event emitter.
6
+ */
7
+ function createEventEmitter() {
8
+ const _listeners = {};
9
+ function emit(event, ...args) {
10
+ const callbacks = _listeners[event] || [];
11
+ for (let i = 0, length = callbacks.length; i < length; i++) {
12
+ const callback = callbacks[i];
13
+ if (callback) callback(...args);
14
+ }
15
+ }
16
+ function emitOnce(event, ...args) {
17
+ emit(event, ...args);
18
+ delete _listeners[event];
19
+ }
20
+ function on(event, cb) {
21
+ (_listeners[event] ||= []).push(cb);
22
+ return () => {
23
+ _listeners[event] = _listeners[event]?.filter((i) => cb !== i);
24
+ };
25
+ }
26
+ function once(event, cb) {
27
+ const unsubscribe = on(event, ((...args) => {
28
+ unsubscribe();
29
+ return cb(...args);
30
+ }));
31
+ return unsubscribe;
32
+ }
33
+ return {
34
+ _listeners,
35
+ emit,
36
+ emitOnce,
37
+ on,
38
+ once
39
+ };
40
+ }
41
+
42
+ //#endregion
43
+ exports.createEventEmitter = createEventEmitter;
@@ -0,0 +1,10 @@
1
+ import { EventEmitter, EventsMap } from "devframe/types";
2
+
3
+ //#region src/lib/events.d.ts
4
+ /**
5
+ * Create event emitter.
6
+ */
7
+ declare function createEventEmitter<Events extends EventsMap>(): EventEmitter<Events>;
8
+ //#endregion
9
+ export { createEventEmitter };
10
+ //# sourceMappingURL=events.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.cts","names":[],"sources":["../../src/lib/events.ts"],"mappings":";;;;;AAuBA;iBAAgB,kBAAA,gBACC,SAAA,CAAA,CAAA,GACZ,YAAA,CAAa,MAAA"}
@@ -0,0 +1,10 @@
1
+ import { EventEmitter, EventsMap } from "devframe/types";
2
+
3
+ //#region src/lib/events.d.ts
4
+ /**
5
+ * Create event emitter.
6
+ */
7
+ declare function createEventEmitter<Events extends EventsMap>(): EventEmitter<Events>;
8
+ //#endregion
9
+ export { createEventEmitter };
10
+ //# sourceMappingURL=events.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.mts","names":[],"sources":["../../src/lib/events.ts"],"mappings":";;;;;AAuBA;iBAAgB,kBAAA,gBACC,SAAA,CAAA,CAAA,GACZ,YAAA,CAAa,MAAA"}
@@ -0,0 +1,42 @@
1
+ //#region src/lib/events.ts
2
+ /**
3
+ * Create event emitter.
4
+ */
5
+ function createEventEmitter() {
6
+ const _listeners = {};
7
+ function emit(event, ...args) {
8
+ const callbacks = _listeners[event] || [];
9
+ for (let i = 0, length = callbacks.length; i < length; i++) {
10
+ const callback = callbacks[i];
11
+ if (callback) callback(...args);
12
+ }
13
+ }
14
+ function emitOnce(event, ...args) {
15
+ emit(event, ...args);
16
+ delete _listeners[event];
17
+ }
18
+ function on(event, cb) {
19
+ (_listeners[event] ||= []).push(cb);
20
+ return () => {
21
+ _listeners[event] = _listeners[event]?.filter((i) => cb !== i);
22
+ };
23
+ }
24
+ function once(event, cb) {
25
+ const unsubscribe = on(event, ((...args) => {
26
+ unsubscribe();
27
+ return cb(...args);
28
+ }));
29
+ return unsubscribe;
30
+ }
31
+ return {
32
+ _listeners,
33
+ emit,
34
+ emitOnce,
35
+ on,
36
+ once
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ export { createEventEmitter };
42
+ //# sourceMappingURL=events.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.mjs","names":[],"sources":["../../src/lib/events.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 type { EventEmitter, EventsMap, EventUnsubscribe } from \"devframe/types\";\n\n/**\n * Create event emitter.\n */\nexport function createEventEmitter<\n Events extends EventsMap\n>(): EventEmitter<Events> {\n const _listeners: Partial<{ [E in keyof Events]: Events[E][] }> = {};\n\n function emit<K extends keyof Events>(\n event: K,\n ...args: Parameters<Events[K]>\n ) {\n const callbacks = _listeners[event] || [];\n for (let i = 0, length = callbacks.length; i < length; i++) {\n const callback = callbacks[i];\n if (callback) {\n // eslint-disable-next-line ts/no-unsafe-call\n callback(...args);\n }\n }\n }\n function emitOnce<K extends keyof Events>(\n event: K,\n ...args: Parameters<Events[K]>\n ) {\n emit(event, ...args);\n delete _listeners[event];\n }\n function on<K extends keyof Events>(\n event: K,\n cb: Events[K]\n ): EventUnsubscribe {\n (_listeners[event] ||= [] as Events[K][]).push(cb);\n return () => {\n _listeners[event] = _listeners[event]?.filter(i => cb !== i);\n };\n }\n function once<K extends keyof Events>(event: K, cb: Events[K]) {\n const unsubscribe = on(event, ((...args: Parameters<Events[K]>) => {\n unsubscribe();\n\n // eslint-disable-next-line ts/no-unsafe-call\n return cb(...args);\n }) as Events[K]);\n\n return unsubscribe;\n }\n\n return {\n _listeners,\n emit,\n emitOnce,\n on,\n once\n };\n}\n"],"mappings":";;;;AAuBA,SAAgB,qBAEU;CACxB,MAAM,aAA4D,EAAE;CAEpE,SAAS,KACP,OACA,GAAG,MACH;EACA,MAAM,YAAY,WAAW,UAAU,EAAE;AACzC,OAAK,IAAI,IAAI,GAAG,SAAS,UAAU,QAAQ,IAAI,QAAQ,KAAK;GAC1D,MAAM,WAAW,UAAU;AAC3B,OAAI,SAEF,UAAS,GAAG,KAAK;;;CAIvB,SAAS,SACP,OACA,GAAG,MACH;AACA,OAAK,OAAO,GAAG,KAAK;AACpB,SAAO,WAAW;;CAEpB,SAAS,GACP,OACA,IACkB;AAClB,GAAC,WAAW,WAAW,EAAE,EAAiB,KAAK,GAAG;AAClD,eAAa;AACX,cAAW,SAAS,WAAW,QAAQ,QAAO,MAAK,OAAO,EAAE;;;CAGhE,SAAS,KAA6B,OAAU,IAAe;EAC7D,MAAM,cAAc,GAAG,SAAS,GAAG,SAAgC;AACjE,gBAAa;AAGb,UAAO,GAAG,GAAG,KAAK;KACJ;AAEhB,SAAO;;AAGT,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}