@powerlines/core 0.0.8

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 (286) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  4. package/dist/index.cjs +65 -0
  5. package/dist/index.d.cts +23 -0
  6. package/dist/index.d.mts +25 -0
  7. package/dist/index.mjs +22 -0
  8. package/dist/lib/config.cjs +90 -0
  9. package/dist/lib/config.cjs.map +1 -0
  10. package/dist/lib/config.d.cts +40 -0
  11. package/dist/lib/config.d.cts.map +1 -0
  12. package/dist/lib/config.d.mts +40 -0
  13. package/dist/lib/config.d.mts.map +1 -0
  14. package/dist/lib/config.mjs +86 -0
  15. package/dist/lib/config.mjs.map +1 -0
  16. package/dist/lib/constants/environments.cjs +17 -0
  17. package/dist/lib/constants/environments.cjs.map +1 -0
  18. package/dist/lib/constants/environments.d.cts +10 -0
  19. package/dist/lib/constants/environments.d.cts.map +1 -0
  20. package/dist/lib/constants/environments.d.mts +10 -0
  21. package/dist/lib/constants/environments.d.mts.map +1 -0
  22. package/dist/lib/constants/environments.mjs +11 -0
  23. package/dist/lib/constants/environments.mjs.map +1 -0
  24. package/dist/lib/constants/index.cjs +11 -0
  25. package/dist/lib/constants/index.d.cts +3 -0
  26. package/dist/lib/constants/index.d.mts +3 -0
  27. package/dist/lib/constants/index.mjs +4 -0
  28. package/dist/lib/constants/meta.cjs +9 -0
  29. package/dist/lib/constants/meta.cjs.map +1 -0
  30. package/dist/lib/constants/meta.d.cts +6 -0
  31. package/dist/lib/constants/meta.d.cts.map +1 -0
  32. package/dist/lib/constants/meta.d.mts +6 -0
  33. package/dist/lib/constants/meta.d.mts.map +1 -0
  34. package/dist/lib/constants/meta.mjs +7 -0
  35. package/dist/lib/constants/meta.mjs.map +1 -0
  36. package/dist/lib/entry.cjs +127 -0
  37. package/dist/lib/entry.cjs.map +1 -0
  38. package/dist/lib/entry.d.cts +47 -0
  39. package/dist/lib/entry.d.cts.map +1 -0
  40. package/dist/lib/entry.d.mts +48 -0
  41. package/dist/lib/entry.d.mts.map +1 -0
  42. package/dist/lib/entry.mjs +120 -0
  43. package/dist/lib/entry.mjs.map +1 -0
  44. package/dist/lib/index.cjs +50 -0
  45. package/dist/lib/index.d.cts +14 -0
  46. package/dist/lib/index.d.mts +16 -0
  47. package/dist/lib/index.mjs +17 -0
  48. package/dist/lib/logger.cjs +59 -0
  49. package/dist/lib/logger.cjs.map +1 -0
  50. package/dist/lib/logger.d.cts +23 -0
  51. package/dist/lib/logger.d.cts.map +1 -0
  52. package/dist/lib/logger.d.mts +24 -0
  53. package/dist/lib/logger.d.mts.map +1 -0
  54. package/dist/lib/logger.mjs +56 -0
  55. package/dist/lib/logger.mjs.map +1 -0
  56. package/dist/lib/unplugin/helpers.cjs +30 -0
  57. package/dist/lib/unplugin/helpers.cjs.map +1 -0
  58. package/dist/lib/unplugin/helpers.d.cts +24 -0
  59. package/dist/lib/unplugin/helpers.d.cts.map +1 -0
  60. package/dist/lib/unplugin/helpers.d.mts +24 -0
  61. package/dist/lib/unplugin/helpers.d.mts.map +1 -0
  62. package/dist/lib/unplugin/helpers.mjs +28 -0
  63. package/dist/lib/unplugin/helpers.mjs.map +1 -0
  64. package/dist/lib/unplugin/index.cjs +9 -0
  65. package/dist/lib/unplugin/index.d.cts +4 -0
  66. package/dist/lib/unplugin/index.d.mts +4 -0
  67. package/dist/lib/unplugin/index.mjs +5 -0
  68. package/dist/lib/unplugin/module-resolution.cjs +67 -0
  69. package/dist/lib/unplugin/module-resolution.cjs.map +1 -0
  70. package/dist/lib/unplugin/module-resolution.d.cts +21 -0
  71. package/dist/lib/unplugin/module-resolution.d.cts.map +1 -0
  72. package/dist/lib/unplugin/module-resolution.d.mts +21 -0
  73. package/dist/lib/unplugin/module-resolution.d.mts.map +1 -0
  74. package/dist/lib/unplugin/module-resolution.mjs +66 -0
  75. package/dist/lib/unplugin/module-resolution.mjs.map +1 -0
  76. package/dist/lib/unplugin/plugin.cjs +105 -0
  77. package/dist/lib/unplugin/plugin.cjs.map +1 -0
  78. package/dist/lib/unplugin/plugin.d.cts +22 -0
  79. package/dist/lib/unplugin/plugin.d.cts.map +1 -0
  80. package/dist/lib/unplugin/plugin.d.mts +22 -0
  81. package/dist/lib/unplugin/plugin.d.mts.map +1 -0
  82. package/dist/lib/unplugin/plugin.mjs +103 -0
  83. package/dist/lib/unplugin/plugin.mjs.map +1 -0
  84. package/dist/lib/utilities/file-header.cjs +24 -0
  85. package/dist/lib/utilities/file-header.cjs.map +1 -0
  86. package/dist/lib/utilities/file-header.d.cts +13 -0
  87. package/dist/lib/utilities/file-header.d.cts.map +1 -0
  88. package/dist/lib/utilities/file-header.d.mts +13 -0
  89. package/dist/lib/utilities/file-header.d.mts.map +1 -0
  90. package/dist/lib/utilities/file-header.mjs +22 -0
  91. package/dist/lib/utilities/file-header.mjs.map +1 -0
  92. package/dist/lib/utilities/format.cjs +49 -0
  93. package/dist/lib/utilities/format.cjs.map +1 -0
  94. package/dist/lib/utilities/format.d.cts +25 -0
  95. package/dist/lib/utilities/format.d.cts.map +1 -0
  96. package/dist/lib/utilities/format.d.mts +25 -0
  97. package/dist/lib/utilities/format.d.mts.map +1 -0
  98. package/dist/lib/utilities/format.mjs +47 -0
  99. package/dist/lib/utilities/format.mjs.map +1 -0
  100. package/dist/lib/utilities/index.cjs +15 -0
  101. package/dist/lib/utilities/index.d.cts +6 -0
  102. package/dist/lib/utilities/index.d.mts +6 -0
  103. package/dist/lib/utilities/index.mjs +7 -0
  104. package/dist/lib/utilities/source-file.cjs +50 -0
  105. package/dist/lib/utilities/source-file.cjs.map +1 -0
  106. package/dist/lib/utilities/source-file.d.cts +31 -0
  107. package/dist/lib/utilities/source-file.d.cts.map +1 -0
  108. package/dist/lib/utilities/source-file.d.mts +31 -0
  109. package/dist/lib/utilities/source-file.d.mts.map +1 -0
  110. package/dist/lib/utilities/source-file.mjs +46 -0
  111. package/dist/lib/utilities/source-file.mjs.map +1 -0
  112. package/dist/lib/utilities/source-map.cjs +57 -0
  113. package/dist/lib/utilities/source-map.cjs.map +1 -0
  114. package/dist/lib/utilities/source-map.d.cts +17 -0
  115. package/dist/lib/utilities/source-map.d.cts.map +1 -0
  116. package/dist/lib/utilities/source-map.d.mts +17 -0
  117. package/dist/lib/utilities/source-map.d.mts.map +1 -0
  118. package/dist/lib/utilities/source-map.mjs +55 -0
  119. package/dist/lib/utilities/source-map.mjs.map +1 -0
  120. package/dist/lib/utilities/write-file.cjs +29 -0
  121. package/dist/lib/utilities/write-file.cjs.map +1 -0
  122. package/dist/lib/utilities/write-file.d.cts +16 -0
  123. package/dist/lib/utilities/write-file.d.cts.map +1 -0
  124. package/dist/lib/utilities/write-file.d.mts +16 -0
  125. package/dist/lib/utilities/write-file.d.mts.map +1 -0
  126. package/dist/lib/utilities/write-file.mjs +28 -0
  127. package/dist/lib/utilities/write-file.mjs.map +1 -0
  128. package/dist/plugin-base.cjs +73 -0
  129. package/dist/plugin-base.cjs.map +1 -0
  130. package/dist/plugin-base.d.cts +27 -0
  131. package/dist/plugin-base.d.cts.map +1 -0
  132. package/dist/plugin-base.d.mts +27 -0
  133. package/dist/plugin-base.d.mts.map +1 -0
  134. package/dist/plugin-base.mjs +70 -0
  135. package/dist/plugin-base.mjs.map +1 -0
  136. package/dist/plugin-utils/build-helpers.cjs +36 -0
  137. package/dist/plugin-utils/build-helpers.cjs.map +1 -0
  138. package/dist/plugin-utils/build-helpers.d.cts +19 -0
  139. package/dist/plugin-utils/build-helpers.d.cts.map +1 -0
  140. package/dist/plugin-utils/build-helpers.d.mts +19 -0
  141. package/dist/plugin-utils/build-helpers.d.mts.map +1 -0
  142. package/dist/plugin-utils/build-helpers.mjs +35 -0
  143. package/dist/plugin-utils/build-helpers.mjs.map +1 -0
  144. package/dist/plugin-utils/context-helpers.cjs +50 -0
  145. package/dist/plugin-utils/context-helpers.cjs.map +1 -0
  146. package/dist/plugin-utils/context-helpers.d.cts +21 -0
  147. package/dist/plugin-utils/context-helpers.d.cts.map +1 -0
  148. package/dist/plugin-utils/context-helpers.d.mts +21 -0
  149. package/dist/plugin-utils/context-helpers.d.mts.map +1 -0
  150. package/dist/plugin-utils/context-helpers.mjs +48 -0
  151. package/dist/plugin-utils/context-helpers.mjs.map +1 -0
  152. package/dist/plugin-utils/extend.cjs +25 -0
  153. package/dist/plugin-utils/extend.cjs.map +1 -0
  154. package/dist/plugin-utils/extend.d.cts +20 -0
  155. package/dist/plugin-utils/extend.d.cts.map +1 -0
  156. package/dist/plugin-utils/extend.d.mts +20 -0
  157. package/dist/plugin-utils/extend.d.mts.map +1 -0
  158. package/dist/plugin-utils/extend.mjs +24 -0
  159. package/dist/plugin-utils/extend.mjs.map +1 -0
  160. package/dist/plugin-utils/format-package-json.cjs +20 -0
  161. package/dist/plugin-utils/format-package-json.cjs.map +1 -0
  162. package/dist/plugin-utils/format-package-json.d.cts +13 -0
  163. package/dist/plugin-utils/format-package-json.d.cts.map +1 -0
  164. package/dist/plugin-utils/format-package-json.d.mts +13 -0
  165. package/dist/plugin-utils/format-package-json.d.mts.map +1 -0
  166. package/dist/plugin-utils/format-package-json.mjs +19 -0
  167. package/dist/plugin-utils/format-package-json.mjs.map +1 -0
  168. package/dist/plugin-utils/get-config-path.cjs +50 -0
  169. package/dist/plugin-utils/get-config-path.cjs.map +1 -0
  170. package/dist/plugin-utils/get-config-path.d.cts +15 -0
  171. package/dist/plugin-utils/get-config-path.d.cts.map +1 -0
  172. package/dist/plugin-utils/get-config-path.d.mts +15 -0
  173. package/dist/plugin-utils/get-config-path.d.mts.map +1 -0
  174. package/dist/plugin-utils/get-config-path.mjs +49 -0
  175. package/dist/plugin-utils/get-config-path.mjs.map +1 -0
  176. package/dist/plugin-utils/helpers.cjs +185 -0
  177. package/dist/plugin-utils/helpers.cjs.map +1 -0
  178. package/dist/plugin-utils/helpers.d.cts +144 -0
  179. package/dist/plugin-utils/helpers.d.cts.map +1 -0
  180. package/dist/plugin-utils/helpers.d.mts +144 -0
  181. package/dist/plugin-utils/helpers.d.mts.map +1 -0
  182. package/dist/plugin-utils/helpers.mjs +170 -0
  183. package/dist/plugin-utils/helpers.mjs.map +1 -0
  184. package/dist/plugin-utils/index.cjs +35 -0
  185. package/dist/plugin-utils/index.d.cts +10 -0
  186. package/dist/plugin-utils/index.d.mts +10 -0
  187. package/dist/plugin-utils/index.mjs +11 -0
  188. package/dist/plugin-utils/merge.cjs +60 -0
  189. package/dist/plugin-utils/merge.cjs.map +1 -0
  190. package/dist/plugin-utils/merge.d.cts +35 -0
  191. package/dist/plugin-utils/merge.d.cts.map +1 -0
  192. package/dist/plugin-utils/merge.d.mts +35 -0
  193. package/dist/plugin-utils/merge.d.mts.map +1 -0
  194. package/dist/plugin-utils/merge.mjs +57 -0
  195. package/dist/plugin-utils/merge.mjs.map +1 -0
  196. package/dist/plugin-utils/modules.cjs +17 -0
  197. package/dist/plugin-utils/modules.cjs.map +1 -0
  198. package/dist/plugin-utils/modules.d.cts +15 -0
  199. package/dist/plugin-utils/modules.d.cts.map +1 -0
  200. package/dist/plugin-utils/modules.d.mts +15 -0
  201. package/dist/plugin-utils/modules.d.mts.map +1 -0
  202. package/dist/plugin-utils/modules.mjs +16 -0
  203. package/dist/plugin-utils/modules.mjs.map +1 -0
  204. package/dist/plugin-utils/paths.cjs +38 -0
  205. package/dist/plugin-utils/paths.cjs.map +1 -0
  206. package/dist/plugin-utils/paths.d.cts +34 -0
  207. package/dist/plugin-utils/paths.d.cts.map +1 -0
  208. package/dist/plugin-utils/paths.d.mts +34 -0
  209. package/dist/plugin-utils/paths.d.mts.map +1 -0
  210. package/dist/plugin-utils/paths.mjs +37 -0
  211. package/dist/plugin-utils/paths.mjs.map +1 -0
  212. package/dist/types/_internal.cjs +0 -0
  213. package/dist/types/_internal.d.cts +107 -0
  214. package/dist/types/_internal.d.cts.map +1 -0
  215. package/dist/types/_internal.d.mts +107 -0
  216. package/dist/types/_internal.d.mts.map +1 -0
  217. package/dist/types/_internal.mjs +1 -0
  218. package/dist/types/api.cjs +0 -0
  219. package/dist/types/api.d.cts +104 -0
  220. package/dist/types/api.d.cts.map +1 -0
  221. package/dist/types/api.d.mts +104 -0
  222. package/dist/types/api.d.mts.map +1 -0
  223. package/dist/types/api.mjs +1 -0
  224. package/dist/types/commands.cjs +17 -0
  225. package/dist/types/commands.cjs.map +1 -0
  226. package/dist/types/commands.d.cts +13 -0
  227. package/dist/types/commands.d.cts.map +1 -0
  228. package/dist/types/commands.d.mts +13 -0
  229. package/dist/types/commands.d.mts.map +1 -0
  230. package/dist/types/commands.mjs +16 -0
  231. package/dist/types/commands.mjs.map +1 -0
  232. package/dist/types/config.cjs +0 -0
  233. package/dist/types/config.d.cts +617 -0
  234. package/dist/types/config.d.cts.map +1 -0
  235. package/dist/types/config.d.mts +617 -0
  236. package/dist/types/config.d.mts.map +1 -0
  237. package/dist/types/config.mjs +1 -0
  238. package/dist/types/context.cjs +0 -0
  239. package/dist/types/context.d.cts +564 -0
  240. package/dist/types/context.d.cts.map +1 -0
  241. package/dist/types/context.d.mts +564 -0
  242. package/dist/types/context.d.mts.map +1 -0
  243. package/dist/types/context.mjs +1 -0
  244. package/dist/types/fs.cjs +11 -0
  245. package/dist/types/fs.cjs.map +1 -0
  246. package/dist/types/fs.d.cts +502 -0
  247. package/dist/types/fs.d.cts.map +1 -0
  248. package/dist/types/fs.d.mts +502 -0
  249. package/dist/types/fs.d.mts.map +1 -0
  250. package/dist/types/fs.mjs +8 -0
  251. package/dist/types/fs.mjs.map +1 -0
  252. package/dist/types/hooks.cjs +13 -0
  253. package/dist/types/hooks.cjs.map +1 -0
  254. package/dist/types/hooks.d.cts +117 -0
  255. package/dist/types/hooks.d.cts.map +1 -0
  256. package/dist/types/hooks.d.mts +117 -0
  257. package/dist/types/hooks.d.mts.map +1 -0
  258. package/dist/types/hooks.mjs +12 -0
  259. package/dist/types/hooks.mjs.map +1 -0
  260. package/dist/types/index.cjs +16 -0
  261. package/dist/types/index.d.cts +10 -0
  262. package/dist/types/index.d.mts +10 -0
  263. package/dist/types/index.mjs +7 -0
  264. package/dist/types/plugin.cjs +35 -0
  265. package/dist/types/plugin.cjs.map +1 -0
  266. package/dist/types/plugin.d.cts +218 -0
  267. package/dist/types/plugin.d.cts.map +1 -0
  268. package/dist/types/plugin.d.mts +218 -0
  269. package/dist/types/plugin.d.mts.map +1 -0
  270. package/dist/types/plugin.mjs +33 -0
  271. package/dist/types/plugin.mjs.map +1 -0
  272. package/dist/types/tsconfig.cjs +0 -0
  273. package/dist/types/tsconfig.d.cts +77 -0
  274. package/dist/types/tsconfig.d.cts.map +1 -0
  275. package/dist/types/tsconfig.d.mts +77 -0
  276. package/dist/types/tsconfig.d.mts.map +1 -0
  277. package/dist/types/tsconfig.mjs +1 -0
  278. package/dist/types/unplugin.cjs +24 -0
  279. package/dist/types/unplugin.cjs.map +1 -0
  280. package/dist/types/unplugin.d.cts +41 -0
  281. package/dist/types/unplugin.d.cts.map +1 -0
  282. package/dist/types/unplugin.d.mts +41 -0
  283. package/dist/types/unplugin.d.mts.map +1 -0
  284. package/dist/types/unplugin.mjs +22 -0
  285. package/dist/types/unplugin.mjs.map +1 -0
  286. package/package.json +238 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.mts","names":[],"sources":["../../src/plugin-utils/helpers.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import { BUILDER_VARIANTS, UNPLUGIN_BUILDER_VARIANTS } from "../types/unplugin.mjs";
2
+ import { PLUGIN_HOOKS_FIELDS } from "../types/plugin.mjs";
3
+ import { isFunction } from "@stryke/type-checks/is-function";
4
+ import { isSetObject } from "@stryke/type-checks/is-set-object";
5
+ import { isSetString } from "@stryke/type-checks/is-set-string";
6
+ import { isUndefined } from "@stryke/type-checks/is-undefined";
7
+
8
+ //#region src/plugin-utils/helpers.ts
9
+ /**
10
+ * Type guard to check if an object is a {@link Plugin}
11
+ *
12
+ * @param value - The object to check
13
+ * @returns True if the object is a {@link Plugin}, false otherwise
14
+ */
15
+ function isPlugin(value) {
16
+ return isSetObject(value) && "name" in value && isSetString(value.name) && (isUndefined(value.api) || "api" in value && isSetObject(value.api)) && (isUndefined(value.applyToEnvironment) || "applyToEnvironment" in value && isFunction(value.applyToEnvironment)) && (isUndefined(value.dedupe) || "dedupe" in value && isFunction(value.dedupe)) && PLUGIN_HOOKS_FIELDS.every((hook) => isUndefined(value[hook]) || hook in value && (isPluginHookFunction(value[hook]) || hook === "config" && isSetObject(value[hook]))) && BUILDER_VARIANTS.every((variant) => isUndefined(value[variant]) || variant in value && isSetObject(value[variant]));
17
+ }
18
+ /**
19
+ * Type guard to check if an object is a {@link PluginConfigObject}
20
+ *
21
+ * @param value - The object to check
22
+ * @returns True if the object is a {@link PluginConfigObject}, false otherwise
23
+ */
24
+ function isPluginConfigObject(value) {
25
+ return isSetObject(value) && "plugin" in value && ((isSetString(value.plugin) || isFunction(value.plugin)) && "options" in value && isSetObject(value.options) || isPlugin(value.plugin));
26
+ }
27
+ /**
28
+ * Type guard to check if an object is a {@link PluginConfigTuple}
29
+ *
30
+ * @param value - The object to check
31
+ * @returns True if the object is a {@link PluginConfigTuple}, false otherwise
32
+ */
33
+ function isPluginConfigTuple(value) {
34
+ return Array.isArray(value) && (value.length === 1 || value.length === 2) && ((isSetString(value[0]) || isFunction(value[0])) && value.length > 1 && isSetObject(value[1]) || isPlugin(value[0]));
35
+ }
36
+ /**
37
+ * Type guard to check if an object is a {@link PluginConfig}
38
+ *
39
+ * @param value - The object to check
40
+ * @returns True if the object is a {@link PluginConfig}, false otherwise
41
+ */
42
+ function isPluginConfig(value) {
43
+ return isSetString(value) || isFunction(value) || isPlugin(value) || isPluginConfigObject(value) || isPluginConfigTuple(value) || Array.isArray(value) && value.every((item) => isPluginConfig(item));
44
+ }
45
+ /**
46
+ * Type guard to check if an value is a {@link PluginHook} function
47
+ *
48
+ * @param value - The value to check
49
+ * @returns True if the value is a {@link PluginHook} function, false otherwise
50
+ */
51
+ function isPluginHookObject(value) {
52
+ return isSetObject(value) && "handler" in value && isFunction(value.handler);
53
+ }
54
+ /**
55
+ * Type guard to check if an value is a {@link PluginHook} function
56
+ *
57
+ * @param value - The value to check
58
+ * @returns True if the value is a {@link PluginHook} function, false otherwise
59
+ */
60
+ function isPluginHookFunction(value) {
61
+ return isFunction(value) || isPluginHookObject(value);
62
+ }
63
+ /**
64
+ * Type guard to check if an object is a {@link PluginHook}
65
+ *
66
+ * @param value - The object to check
67
+ * @returns True if the object is a {@link PluginHook}, false otherwise
68
+ */
69
+ function isPluginHook(value) {
70
+ return isPluginHookFunction(value) || isPluginHookObject(value);
71
+ }
72
+ /**
73
+ * Extract the hook handler function from a plugin hook
74
+ *
75
+ * @param pluginHook - The plugin hook to extract the handler function from
76
+ * @returns The hook handler function
77
+ */
78
+ function getHookHandler(pluginHook) {
79
+ return isFunction(pluginHook) ? pluginHook : pluginHook.handler;
80
+ }
81
+ /**
82
+ * Extract a plugin hook from a plugin
83
+ *
84
+ * @param context - The build context
85
+ * @param plugin - The plugin to extract the hook from
86
+ * @param hook - The name of the hook to extract
87
+ * @returns The extracted hook, or undefined if the hook does not exist
88
+ */
89
+ function extractPluginHook(context, plugin, hook) {
90
+ const pluginHook = plugin[hook];
91
+ if (!isPluginHook(pluginHook)) return;
92
+ return isFunction(pluginHook) ? { normal: pluginHook.bind(context) } : { [pluginHook.order ? pluginHook.order : "normal"]: pluginHook.handler.bind(context) };
93
+ }
94
+ /**
95
+ * Check if a hook is external.
96
+ *
97
+ * @param keys - The name of the hook to check.
98
+ * @returns True if the hook is external, false otherwise.
99
+ */
100
+ function isUnpluginHookKey(keys) {
101
+ return UNPLUGIN_BUILDER_VARIANTS.some((variant) => keys.startsWith(`${variant}:`));
102
+ }
103
+ /**
104
+ * Check if a hook is internal.
105
+ *
106
+ * @param keys - The name of the hook to check.
107
+ * @returns True if the hook is external, false otherwise.
108
+ */
109
+ function isPluginHookField(keys) {
110
+ return !isUnpluginHookKey(keys) && PLUGIN_HOOKS_FIELDS.includes(keys);
111
+ }
112
+ /**
113
+ * Check if a hook is external.
114
+ *
115
+ * @param field - The name of the hook to check.
116
+ * @returns True if the hook is external, false otherwise.
117
+ */
118
+ function isUnpluginHookField(field) {
119
+ return !isPluginHookField(field) && UNPLUGIN_BUILDER_VARIANTS.includes(field);
120
+ }
121
+ /**
122
+ * Check if a plugin should be deduplicated.
123
+ *
124
+ * @param plugin - The plugin to check
125
+ * @param plugins - The list of plugins to check against
126
+ * @returns True if the plugin should be deduplicated, false otherwise
127
+ */
128
+ function checkDedupe(plugin, plugins) {
129
+ return plugin.dedupe === false || plugins.some((p) => p.dedupe !== false && (isFunction(p.dedupe) && p.dedupe(plugin) || p.name === plugin.name));
130
+ }
131
+ /**
132
+ * Add a plugin hook to the hooks list.
133
+ *
134
+ * @param context - The plugin context
135
+ * @param plugin - The plugin to add the hook from
136
+ * @param pluginHook - The plugin hook to add
137
+ * @param hooksList - The list of hooks to add to
138
+ */
139
+ function addPluginHook(context, plugin, pluginHook, hooksList) {
140
+ if (!checkDedupe(plugin, hooksList.map((hook) => hook.plugin).filter(Boolean))) {
141
+ const handler = ((...args) => getHookHandler(pluginHook).apply(context, args));
142
+ if (!handler) return;
143
+ hooksList.push({
144
+ plugin,
145
+ handler
146
+ });
147
+ }
148
+ }
149
+ /**
150
+ * Check the provided {@link PluginConfig}, and return a stringified version of the invalid configuration. If an array is provided, check each item in the array.
151
+ *
152
+ * @param config - The plugin configuration to check
153
+ * @returns Null if the configuration is valid, otherwise an array of stringified invalid configurations
154
+ */
155
+ function findInvalidPluginConfig(config) {
156
+ if (isPluginConfig(config)) return null;
157
+ if (Array.isArray(config)) {
158
+ const invalidItems = [];
159
+ config.forEach((item) => {
160
+ const invalid = findInvalidPluginConfig(item);
161
+ if (invalid) invalidItems.push(...invalid.map((i) => JSON.stringify(i, null, 2)));
162
+ });
163
+ return invalidItems.length > 0 ? invalidItems : null;
164
+ }
165
+ return [JSON.stringify(config, null, 2)];
166
+ }
167
+
168
+ //#endregion
169
+ export { addPluginHook, checkDedupe, extractPluginHook, findInvalidPluginConfig, getHookHandler, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey };
170
+ //# sourceMappingURL=helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.mjs","names":["invalidItems: string[]"],"sources":["../../src/plugin-utils/helpers.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 { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n PluginConfig,\n PluginConfigObject,\n PluginConfigTuple,\n ResolvedConfig\n} from \"../types/config\";\nimport { PluginContext, WithUnpluginBuildContext } from \"../types/context\";\nimport {\n HookFields,\n PluginHooksListItem,\n UnpluginHooksListItem\n} from \"../types/hooks\";\nimport {\n PLUGIN_HOOKS_FIELDS,\n Plugin,\n PluginHook,\n PluginHookFields,\n PluginHookObject,\n PluginHooks\n} from \"../types/plugin\";\nimport {\n BUILDER_VARIANTS,\n UNPLUGIN_BUILDER_VARIANTS,\n UnpluginBuilderVariant,\n UnpluginOptions\n} from \"../types/unplugin\";\n\n/**\n * Type guard to check if an object is a {@link Plugin}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link Plugin}, false otherwise\n */\nexport function isPlugin<\n TContext extends PluginContext = PluginContext<ResolvedConfig>\n>(value: unknown): value is Plugin<TContext> {\n return (\n isSetObject(value) &&\n \"name\" in value &&\n isSetString(value.name) &&\n (isUndefined((value as Plugin<TContext>).api) ||\n (\"api\" in value && isSetObject(value.api))) &&\n (isUndefined((value as Plugin<TContext>).applyToEnvironment) ||\n (\"applyToEnvironment\" in value &&\n isFunction(value.applyToEnvironment))) &&\n (isUndefined((value as Plugin<TContext>).dedupe) ||\n (\"dedupe\" in value && isFunction(value.dedupe))) &&\n PLUGIN_HOOKS_FIELDS.every(\n hook =>\n isUndefined((value as Plugin<TContext>)[hook]) ||\n (hook in value &&\n (isPluginHookFunction((value as Plugin<TContext>)[hook]) ||\n (hook === \"config\" &&\n isSetObject((value as Plugin<TContext>)[hook]))))\n ) &&\n BUILDER_VARIANTS.every(\n variant =>\n isUndefined((value as Plugin<TContext>)[variant]) ||\n (variant in value && isSetObject((value as Plugin<TContext>)[variant]))\n )\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfigObject}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfigObject}, false otherwise\n */\nexport function isPluginConfigObject<\n TContext extends PluginContext = PluginContext<ResolvedConfig>\n>(value: unknown): value is PluginConfigObject<TContext> {\n return (\n isSetObject(value) &&\n \"plugin\" in value &&\n (((isSetString(value.plugin) || isFunction(value.plugin)) &&\n \"options\" in value &&\n isSetObject(value.options)) ||\n isPlugin(value.plugin))\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfigTuple}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfigTuple}, false otherwise\n */\nexport function isPluginConfigTuple<\n TContext extends PluginContext = PluginContext<ResolvedConfig>\n>(value: unknown): value is PluginConfigTuple<TContext> {\n return (\n Array.isArray(value) &&\n (value.length === 1 || value.length === 2) &&\n (((isSetString(value[0]) || isFunction(value[0])) &&\n value.length > 1 &&\n isSetObject(value[1])) ||\n isPlugin(value[0]))\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfig}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfig}, false otherwise\n */\nexport function isPluginConfig<\n TContext extends PluginContext = PluginContext<ResolvedConfig>\n>(value: unknown): value is PluginConfig<TContext> {\n return (\n isSetString(value) ||\n isFunction(value) ||\n isPlugin<TContext>(value) ||\n isPluginConfigObject(value) ||\n isPluginConfigTuple(value) ||\n (Array.isArray(value) && value.every(item => isPluginConfig(item)))\n );\n}\n\n/**\n * Type guard to check if an value is a {@link PluginHook} function\n *\n * @param value - The value to check\n * @returns True if the value is a {@link PluginHook} function, false otherwise\n */\nexport function isPluginHookObject(\n value: unknown\n): value is PluginHookObject<AnyFunction> {\n return isSetObject(value) && \"handler\" in value && isFunction(value.handler);\n}\n\n/**\n * Type guard to check if an value is a {@link PluginHook} function\n *\n * @param value - The value to check\n * @returns True if the value is a {@link PluginHook} function, false otherwise\n */\nexport function isPluginHookFunction(value: unknown): value is AnyFunction {\n return isFunction(value) || isPluginHookObject(value);\n}\n\n/**\n * Type guard to check if an object is a {@link PluginHook}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginHook}, false otherwise\n */\nexport function isPluginHook(value: unknown): value is PluginHook<AnyFunction> {\n return isPluginHookFunction(value) || isPluginHookObject(value);\n}\n\nexport type GetHookHandlerReturnType<\n TContext extends PluginContext = PluginContext,\n TField extends HookFields<TContext> = HookFields<TContext>\n> = TField extends PluginHookFields\n ? PluginHooksListItem<TContext, TField>[\"handler\"]\n : TField extends UnpluginBuilderVariant\n ? UnpluginHooksListItem<TContext, TField>[\"handler\"]\n : never;\n\ntype HooksListItemForField<\n TContext extends PluginContext = PluginContext,\n TField extends HookFields<TContext> = HookFields<TContext>\n> =\n TField extends PluginHookFields<TContext>\n ? PluginHooksListItem<TContext, Extract<TField, PluginHookFields<TContext>>>\n : TField extends UnpluginBuilderVariant\n ? UnpluginHooksListItem<TContext, Extract<TField, UnpluginBuilderVariant>>\n : never;\n\n/**\n * Extract the hook handler function from a plugin hook\n *\n * @param pluginHook - The plugin hook to extract the handler function from\n * @returns The hook handler function\n */\nexport function getHookHandler<\n TContext extends PluginContext = PluginContext,\n TField extends HookFields<TContext> = HookFields<TContext>\n>(\n pluginHook: PluginHook<AnyFunction>\n): GetHookHandlerReturnType<TContext, TField> {\n return (\n isFunction(pluginHook) ? pluginHook : pluginHook.handler\n ) as GetHookHandlerReturnType<TContext, TField>;\n}\n\n/**\n * Extract a plugin hook from a plugin\n *\n * @param context - The build context\n * @param plugin - The plugin to extract the hook from\n * @param hook - The name of the hook to extract\n * @returns The extracted hook, or undefined if the hook does not exist\n */\nexport function extractPluginHook<\n TContext extends PluginContext = PluginContext,\n TPlugin extends Plugin<TContext> = Plugin<TContext>\n>(context: TContext, plugin: TPlugin, hook: keyof PluginHooks<TContext>) {\n const pluginHook = plugin[hook];\n if (!isPluginHook(pluginHook)) {\n return undefined;\n }\n\n return isFunction(pluginHook)\n ? {\n normal: pluginHook.bind(context)\n }\n : {\n [pluginHook.order ? pluginHook.order : \"normal\"]:\n pluginHook.handler.bind(context)\n };\n}\n\n/**\n * Check if a hook is external.\n *\n * @param keys - The name of the hook to check.\n * @returns True if the hook is external, false otherwise.\n */\nexport function isUnpluginHookKey<\n TUnpluginBuilderVariant extends UnpluginBuilderVariant =\n UnpluginBuilderVariant\n>(\n keys: string\n): keys is `${TUnpluginBuilderVariant}:${keyof UnpluginOptions[TUnpluginBuilderVariant] & string}` {\n return UNPLUGIN_BUILDER_VARIANTS.some(variant =>\n keys.startsWith(`${variant}:`)\n );\n}\n\n/**\n * Check if a hook is internal.\n *\n * @param keys - The name of the hook to check.\n * @returns True if the hook is external, false otherwise.\n */\nexport function isPluginHookField<TContext extends PluginContext>(\n keys: string\n): keys is PluginHookFields<TContext> {\n return (\n !isUnpluginHookKey(keys) &&\n PLUGIN_HOOKS_FIELDS.includes(keys as PluginHookFields<TContext>)\n );\n}\n\n/**\n * Check if a hook is external.\n *\n * @param field - The name of the hook to check.\n * @returns True if the hook is external, false otherwise.\n */\nexport function isUnpluginHookField<\n TUnpluginBuilderVariant extends UnpluginBuilderVariant =\n UnpluginBuilderVariant\n>(field: string): field is TUnpluginBuilderVariant {\n return (\n !isPluginHookField(field) &&\n UNPLUGIN_BUILDER_VARIANTS.includes(field as UnpluginBuilderVariant)\n );\n}\n\n/**\n * Check if a plugin should be deduplicated.\n *\n * @param plugin - The plugin to check\n * @param plugins - The list of plugins to check against\n * @returns True if the plugin should be deduplicated, false otherwise\n */\nexport function checkDedupe<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TContext extends PluginContext<TResolvedConfig> =\n PluginContext<TResolvedConfig>\n>(plugin: Plugin<TContext>, plugins: Plugin<TContext>[]) {\n return (\n plugin.dedupe === false ||\n plugins.some(\n p =>\n p.dedupe !== false &&\n ((isFunction(p.dedupe) && p.dedupe(plugin)) || p.name === plugin.name)\n )\n );\n}\n\n/**\n * Add a plugin hook to the hooks list.\n *\n * @param context - The plugin context\n * @param plugin - The plugin to add the hook from\n * @param pluginHook - The plugin hook to add\n * @param hooksList - The list of hooks to add to\n */\nexport function addPluginHook<\n TContext extends PluginContext = PluginContext,\n TField extends PluginHookFields<TContext> = PluginHookFields<TContext>,\n TList extends PluginHooksListItem<TContext, TField> = PluginHooksListItem<\n TContext,\n TField\n >\n>(\n context: TContext,\n plugin: Plugin<TContext>,\n pluginHook: PluginHook<AnyFunction>,\n hooksList: TList[]\n) {\n if (\n !checkDedupe(plugin, hooksList.map(hook => hook.plugin).filter(Boolean))\n ) {\n const handler = ((...args: unknown[]) =>\n (\n getHookHandler<WithUnpluginBuildContext<TContext>, TField>(\n pluginHook\n ) as unknown as (...args: unknown[]) => unknown\n ).apply(context, args)) as HooksListItemForField<\n TContext,\n TField\n >[\"handler\"];\n if (!handler) {\n return;\n }\n\n hooksList.push({\n plugin,\n handler\n } as any);\n }\n}\n\n/**\n * Check the provided {@link PluginConfig}, and return a stringified version of the invalid configuration. If an array is provided, check each item in the array.\n *\n * @param config - The plugin configuration to check\n * @returns Null if the configuration is valid, otherwise an array of stringified invalid configurations\n */\nexport function findInvalidPluginConfig<\n TContext extends PluginContext = PluginContext<ResolvedConfig>\n>(config: PluginConfig<TContext>): string[] | null {\n if (isPluginConfig<TContext>(config)) {\n return null;\n }\n\n if (Array.isArray(config as PluginConfig<TContext>[])) {\n const invalidItems: string[] = [];\n (config as PluginConfig<TContext>[]).forEach(item => {\n const invalid = findInvalidPluginConfig<TContext>(item);\n if (invalid) {\n invalidItems.push(...invalid.map(i => JSON.stringify(i, null, 2)));\n }\n });\n\n return invalidItems.length > 0 ? invalidItems : null;\n }\n\n return [JSON.stringify(config, null, 2)];\n}\n"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ const require_plugin_utils_paths = require('./paths.cjs');
2
+ const require_plugin_utils_format_package_json = require('./format-package-json.cjs');
3
+ const require_plugin_utils_build_helpers = require('./build-helpers.cjs');
4
+ const require_plugin_utils_context_helpers = require('./context-helpers.cjs');
5
+ const require_plugin_utils_helpers = require('./helpers.cjs');
6
+ const require_plugin_utils_merge = require('./merge.cjs');
7
+ const require_plugin_utils_extend = require('./extend.cjs');
8
+ const require_plugin_utils_get_config_path = require('./get-config-path.cjs');
9
+ const require_plugin_utils_modules = require('./modules.cjs');
10
+
11
+ exports.addPluginHook = require_plugin_utils_helpers.addPluginHook;
12
+ exports.checkDedupe = require_plugin_utils_helpers.checkDedupe;
13
+ exports.extend = require_plugin_utils_extend.extend;
14
+ exports.extractPluginHook = require_plugin_utils_helpers.extractPluginHook;
15
+ exports.findInvalidPluginConfig = require_plugin_utils_helpers.findInvalidPluginConfig;
16
+ exports.formatPackageJson = require_plugin_utils_format_package_json.formatPackageJson;
17
+ exports.getConfigPath = require_plugin_utils_get_config_path.getConfigPath;
18
+ exports.getDependencyConfig = require_plugin_utils_build_helpers.getDependencyConfig;
19
+ exports.getHookHandler = require_plugin_utils_helpers.getHookHandler;
20
+ exports.getOrganizationName = require_plugin_utils_context_helpers.getOrganizationName;
21
+ exports.getWorkspaceName = require_plugin_utils_context_helpers.getWorkspaceName;
22
+ exports.isBuiltinModule = require_plugin_utils_modules.isBuiltinModule;
23
+ exports.isPlugin = require_plugin_utils_helpers.isPlugin;
24
+ exports.isPluginConfig = require_plugin_utils_helpers.isPluginConfig;
25
+ exports.isPluginConfigObject = require_plugin_utils_helpers.isPluginConfigObject;
26
+ exports.isPluginConfigTuple = require_plugin_utils_helpers.isPluginConfigTuple;
27
+ exports.isPluginHook = require_plugin_utils_helpers.isPluginHook;
28
+ exports.isPluginHookField = require_plugin_utils_helpers.isPluginHookField;
29
+ exports.isPluginHookFunction = require_plugin_utils_helpers.isPluginHookFunction;
30
+ exports.isPluginHookObject = require_plugin_utils_helpers.isPluginHookObject;
31
+ exports.isUnpluginHookField = require_plugin_utils_helpers.isUnpluginHookField;
32
+ exports.isUnpluginHookKey = require_plugin_utils_helpers.isUnpluginHookKey;
33
+ exports.merge = require_plugin_utils_merge.merge;
34
+ exports.mergeConfig = require_plugin_utils_merge.mergeConfig;
35
+ exports.replacePathTokens = require_plugin_utils_paths.replacePathTokens;
@@ -0,0 +1,10 @@
1
+ import { GetDependencyConfigResult, __ΩGetDependencyConfigResult, getDependencyConfig } from "./build-helpers.cjs";
2
+ import { getOrganizationName, getWorkspaceName } from "./context-helpers.cjs";
3
+ import { extend } from "./extend.cjs";
4
+ import { formatPackageJson } from "./format-package-json.cjs";
5
+ import { getConfigPath } from "./get-config-path.cjs";
6
+ import { GetHookHandlerReturnType, __ΩGetHookHandlerReturnType, addPluginHook, checkDedupe, extractPluginHook, findInvalidPluginConfig, getHookHandler, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey } from "./helpers.cjs";
7
+ import { MergeResult, __ΩMergeResult, merge, mergeConfig } from "./merge.cjs";
8
+ import { isBuiltinModule } from "./modules.cjs";
9
+ import { replacePathTokens } from "./paths.cjs";
10
+ export { GetDependencyConfigResult, GetHookHandlerReturnType, MergeResult, __ΩGetDependencyConfigResult, __ΩGetHookHandlerReturnType, __ΩMergeResult, addPluginHook, checkDedupe, extend, extractPluginHook, findInvalidPluginConfig, formatPackageJson, getConfigPath, getDependencyConfig, getHookHandler, getOrganizationName, getWorkspaceName, isBuiltinModule, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey, merge, mergeConfig, replacePathTokens };
@@ -0,0 +1,10 @@
1
+ import { GetDependencyConfigResult, __ΩGetDependencyConfigResult, getDependencyConfig } from "./build-helpers.mjs";
2
+ import { getOrganizationName, getWorkspaceName } from "./context-helpers.mjs";
3
+ import { extend } from "./extend.mjs";
4
+ import { formatPackageJson } from "./format-package-json.mjs";
5
+ import { getConfigPath } from "./get-config-path.mjs";
6
+ import { GetHookHandlerReturnType, __ΩGetHookHandlerReturnType, addPluginHook, checkDedupe, extractPluginHook, findInvalidPluginConfig, getHookHandler, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey } from "./helpers.mjs";
7
+ import { MergeResult, __ΩMergeResult, merge, mergeConfig } from "./merge.mjs";
8
+ import { isBuiltinModule } from "./modules.mjs";
9
+ import { replacePathTokens } from "./paths.mjs";
10
+ export { GetDependencyConfigResult, GetHookHandlerReturnType, MergeResult, __ΩGetDependencyConfigResult, __ΩGetHookHandlerReturnType, __ΩMergeResult, addPluginHook, checkDedupe, extend, extractPluginHook, findInvalidPluginConfig, formatPackageJson, getConfigPath, getDependencyConfig, getHookHandler, getOrganizationName, getWorkspaceName, isBuiltinModule, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey, merge, mergeConfig, replacePathTokens };
@@ -0,0 +1,11 @@
1
+ import { replacePathTokens } from "./paths.mjs";
2
+ import { formatPackageJson } from "./format-package-json.mjs";
3
+ import { getDependencyConfig } from "./build-helpers.mjs";
4
+ import { getOrganizationName, getWorkspaceName } from "./context-helpers.mjs";
5
+ import { addPluginHook, checkDedupe, extractPluginHook, findInvalidPluginConfig, getHookHandler, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey } from "./helpers.mjs";
6
+ import { merge, mergeConfig } from "./merge.mjs";
7
+ import { extend } from "./extend.mjs";
8
+ import { getConfigPath } from "./get-config-path.mjs";
9
+ import { isBuiltinModule } from "./modules.mjs";
10
+
11
+ export { addPluginHook, checkDedupe, extend, extractPluginHook, findInvalidPluginConfig, formatPackageJson, getConfigPath, getDependencyConfig, getHookHandler, getOrganizationName, getWorkspaceName, isBuiltinModule, isPlugin, isPluginConfig, isPluginConfigObject, isPluginConfigTuple, isPluginHook, isPluginHookField, isPluginHookFunction, isPluginHookObject, isUnpluginHookField, isUnpluginHookKey, merge, mergeConfig, replacePathTokens };
@@ -0,0 +1,60 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_plugin_utils_helpers = require('./helpers.cjs');
3
+ let defu = require("defu");
4
+ defu = require_rolldown_runtime.__toESM(defu);
5
+ let __stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
6
+ let __stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
7
+
8
+ //#region src/plugin-utils/merge.ts
9
+ const mergePlugin = (0, defu.createDefu)((obj, key, value) => {
10
+ if (require_plugin_utils_helpers.isPluginHook(obj[key]) && require_plugin_utils_helpers.isPluginHook(value)) {
11
+ obj[key] = {
12
+ ...obj[key],
13
+ ...value,
14
+ handler: async (...params) => {
15
+ const [resultA, resultB] = await Promise.all([require_plugin_utils_helpers.getHookHandler(obj[key])(...params), require_plugin_utils_helpers.getHookHandler(value)(...params)]);
16
+ return resultB && resultA ? (0, defu.default)(resultA, resultB) : resultA || resultB;
17
+ }
18
+ };
19
+ return true;
20
+ }
21
+ return false;
22
+ });
23
+ /**
24
+ * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.
25
+ *
26
+ * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
27
+ * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
28
+ * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.
29
+ */
30
+ function merge(pluginA, pluginB) {
31
+ return mergePlugin(pluginA, pluginB);
32
+ }
33
+ /**
34
+ * Merges two configuration objects together, with special handling for string values.
35
+ * If the value from the second object is a non-empty string, it will overwrite the value from the first object.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const configA = { name: "Default", version: "1.0.0" };
40
+ * const configB = { name: "Custom", description: "A custom config" };
41
+ * const mergedConfig = mergeConfig(configA, configB);
42
+ * // Result: { name: "Custom", version: "1.0.0", description: "A custom config" }
43
+ * ```
44
+ *
45
+ * @param objA - The first configuration object.
46
+ * @param objB - The second configuration object.
47
+ * @returns The merged configuration object.
48
+ */
49
+ const mergeConfig = (0, defu.createDefu)((obj, key, value) => {
50
+ if ((0, __stryke_type_checks_is_string.isString)(obj[key]) && (0, __stryke_type_checks_is_string.isString)(value)) {
51
+ if ((0, __stryke_type_checks_is_set_string.isSetString)(value)) obj[key] = value;
52
+ return true;
53
+ }
54
+ return false;
55
+ });
56
+
57
+ //#endregion
58
+ exports.merge = merge;
59
+ exports.mergeConfig = mergeConfig;
60
+ //# sourceMappingURL=merge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.cjs","names":["isPluginHook","getHookHandler"],"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 { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu, { createDefu } from \"defu\";\nimport { PartialPlugin, ResolvedConfig } from \"../types/config\";\nimport { PluginContext } from \"../types/context\";\nimport { Plugin } from \"../types/plugin\";\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 if (isString(obj[key]) && isString(value)) {\n if (isSetString(value)) {\n obj[key] = value;\n }\n\n return true;\n }\n\n return false;\n}) as (...configs: unknown[]) => ResolvedConfig;\n"],"mappings":";;;;;;;;AAqCA,MAAM,oCAA0B,KAAK,KAAK,UAAU;AAClD,KAAIA,0CAAa,IAAI,KAAK,IAAIA,0CAAa,MAAM,EAAE;AACjD,MAAI,OAAO;GACT,GAAG,IAAI;GACP,GAAG;GACH,SAAS,OAAO,GAAG,WAAkB;IACnC,MAAM,CAAC,SAAS,WAAW,MAAM,QAAQ,IAAI,CAE1CC,4CAAe,IAAI,KAAK,CAAS,GAAG,OAAO,EAE3CA,4CAAe,MAAM,CAAS,GAAG,OAAO,CAC1C,CAAC;AAEF,WAAO,WAAW,4BAAe,SAAS,QAAQ,GAAG,WAAW;;GAEnE;AACD,SAAO;;AAGT,QAAO;EACP;;;;;;;;AASF,SAAgB,MACd,SACA,SACuD;AACvD,QAAO,YAAY,SAAS,QAAQ;;;;;;;;;;;;;;;;;;AAuBtC,MAAa,oCAA0B,KAAK,KAAK,UAAU;AACzD,kDAAa,IAAI,KAAK,iDAAa,MAAM,EAAE;AACzC,0DAAgB,MAAM,CACpB,KAAI,OAAO;AAGb,SAAO;;AAGT,QAAO;EACP"}
@@ -0,0 +1,35 @@
1
+ import { Plugin } from "../types/plugin.cjs";
2
+ import { PluginContext } from "../types/context.cjs";
3
+ import { PartialPlugin, ResolvedConfig } from "../types/config.cjs";
4
+
5
+ //#region src/plugin-utils/merge.d.ts
6
+ type MergeResult<TContext extends PluginContext, TPluginA extends Plugin<TContext> | PartialPlugin<TContext>, TPluginB extends Plugin<TContext> | PartialPlugin<TContext>> = TPluginA extends Plugin<TContext> ? Plugin<TContext> : TPluginB extends Plugin<TContext> ? Plugin<TContext> : PartialPlugin<TContext>;
7
+ /**
8
+ * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.
9
+ *
10
+ * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
11
+ * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
12
+ * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.
13
+ */
14
+ declare function merge<TContext extends PluginContext = PluginContext>(pluginA: Plugin<TContext> | PartialPlugin<TContext>, pluginB: Plugin<TContext> | PartialPlugin<TContext>): MergeResult<TContext, typeof pluginA, typeof pluginB>;
15
+ /**
16
+ * Merges two configuration objects together, with special handling for string values.
17
+ * If the value from the second object is a non-empty string, it will overwrite the value from the first object.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const configA = { name: "Default", version: "1.0.0" };
22
+ * const configB = { name: "Custom", description: "A custom config" };
23
+ * const mergedConfig = mergeConfig(configA, configB);
24
+ * // Result: { name: "Custom", version: "1.0.0", description: "A custom config" }
25
+ * ```
26
+ *
27
+ * @param objA - The first configuration object.
28
+ * @param objB - The second configuration object.
29
+ * @returns The merged configuration object.
30
+ */
31
+ declare const mergeConfig: (...configs: unknown[]) => ResolvedConfig;
32
+ declare type __ΩMergeResult = any[];
33
+ //#endregion
34
+ export { MergeResult, __ΩMergeResult, merge, mergeConfig };
35
+ //# sourceMappingURL=merge.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.cts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"sourcesContent":[],"mappings":";;;;;KA0BY,6BACO,gCACA,OAAO,YAAY,cAAc,4BACjC,OAAO,YAAY,cAAc,aAElD,iBAAiB,OAAO,YACpB,OAAO,YACP,iBAAiB,OAAO,YACtB,OAAO,YACP,cAAc;;AATtB;;;;;;AAG0B,iBAqCV,KArCU,CAAA,iBAqCa,aArCb,GAqC6B,aArC7B,CAAA,CAAA,OAAA,EAsCf,MAtCe,CAsCR,QAtCQ,CAAA,GAsCI,aAtCJ,CAsCkB,QAtClB,CAAA,EAAA,OAAA,EAuCf,MAvCe,CAuCR,QAvCQ,CAAA,GAuCI,aAvCJ,CAuCkB,QAvClB,CAAA,CAAA,EAwCvB,WAxCuB,CAwCX,QAxCW,EAAA,OAwCM,OAxCN,EAAA,OAwCsB,OAxCtB,CAAA;;;;;;;;;;;;;;;;;AAqCV,cA2BH,WA3BQ,EAAA,CAAA,GAAA,OAAA,EAAA,OAAA,EAAA,EAAA,GAqCY,cArCZ;AAAkB,8BAAA,GAAA,EAAA"}
@@ -0,0 +1,35 @@
1
+ import { Plugin } from "../types/plugin.mjs";
2
+ import { PluginContext } from "../types/context.mjs";
3
+ import { PartialPlugin, ResolvedConfig } from "../types/config.mjs";
4
+
5
+ //#region src/plugin-utils/merge.d.ts
6
+ type MergeResult<TContext extends PluginContext, TPluginA extends Plugin<TContext> | PartialPlugin<TContext>, TPluginB extends Plugin<TContext> | PartialPlugin<TContext>> = TPluginA extends Plugin<TContext> ? Plugin<TContext> : TPluginB extends Plugin<TContext> ? Plugin<TContext> : PartialPlugin<TContext>;
7
+ /**
8
+ * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.
9
+ *
10
+ * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
11
+ * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
12
+ * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.
13
+ */
14
+ declare function merge<TContext extends PluginContext = PluginContext>(pluginA: Plugin<TContext> | PartialPlugin<TContext>, pluginB: Plugin<TContext> | PartialPlugin<TContext>): MergeResult<TContext, typeof pluginA, typeof pluginB>;
15
+ /**
16
+ * Merges two configuration objects together, with special handling for string values.
17
+ * If the value from the second object is a non-empty string, it will overwrite the value from the first object.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const configA = { name: "Default", version: "1.0.0" };
22
+ * const configB = { name: "Custom", description: "A custom config" };
23
+ * const mergedConfig = mergeConfig(configA, configB);
24
+ * // Result: { name: "Custom", version: "1.0.0", description: "A custom config" }
25
+ * ```
26
+ *
27
+ * @param objA - The first configuration object.
28
+ * @param objB - The second configuration object.
29
+ * @returns The merged configuration object.
30
+ */
31
+ declare const mergeConfig: (...configs: unknown[]) => ResolvedConfig;
32
+ declare type __ΩMergeResult = any[];
33
+ //#endregion
34
+ export { MergeResult, __ΩMergeResult, merge, mergeConfig };
35
+ //# sourceMappingURL=merge.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.mts","names":[],"sources":["../../src/plugin-utils/merge.ts"],"sourcesContent":[],"mappings":";;;;;KA0BY,6BACO,gCACA,OAAO,YAAY,cAAc,4BACjC,OAAO,YAAY,cAAc,aAElD,iBAAiB,OAAO,YACpB,OAAO,YACP,iBAAiB,OAAO,YACtB,OAAO,YACP,cAAc;;AATtB;;;;;;AAG0B,iBAqCV,KArCU,CAAA,iBAqCa,aArCb,GAqC6B,aArC7B,CAAA,CAAA,OAAA,EAsCf,MAtCe,CAsCR,QAtCQ,CAAA,GAsCI,aAtCJ,CAsCkB,QAtClB,CAAA,EAAA,OAAA,EAuCf,MAvCe,CAuCR,QAvCQ,CAAA,GAuCI,aAvCJ,CAuCkB,QAvClB,CAAA,CAAA,EAwCvB,WAxCuB,CAwCX,QAxCW,EAAA,OAwCM,OAxCN,EAAA,OAwCsB,OAxCtB,CAAA;;;;;;;;;;;;;;;;;AAqCV,cA2BH,WA3BQ,EAAA,CAAA,GAAA,OAAA,EAAA,OAAA,EAAA,EAAA,GAqCY,cArCZ;AAAkB,8BAAA,GAAA,EAAA"}
@@ -0,0 +1,57 @@
1
+ import { getHookHandler, isPluginHook } from "./helpers.mjs";
2
+ import defu$1, { createDefu } from "defu";
3
+ import { isSetString } from "@stryke/type-checks/is-set-string";
4
+ import { isString } from "@stryke/type-checks/is-string";
5
+
6
+ //#region src/plugin-utils/merge.ts
7
+ const mergePlugin = createDefu((obj, key, value) => {
8
+ if (isPluginHook(obj[key]) && isPluginHook(value)) {
9
+ obj[key] = {
10
+ ...obj[key],
11
+ ...value,
12
+ handler: async (...params) => {
13
+ const [resultA, resultB] = await Promise.all([getHookHandler(obj[key])(...params), getHookHandler(value)(...params)]);
14
+ return resultB && resultA ? defu$1(resultA, resultB) : resultA || resultB;
15
+ }
16
+ };
17
+ return true;
18
+ }
19
+ return false;
20
+ });
21
+ /**
22
+ * Merges two {@link Plugin | plugins} or {@link PartialPlugin | partial plugins} together.
23
+ *
24
+ * @param pluginA - The first {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
25
+ * @param pluginB - The second {@link Plugin | plugin} or {@link PartialPlugin | partial plugin} to merge.
26
+ * @returns The merged {@link Plugin | plugin} or {@link PartialPlugin | partial plugin}.
27
+ */
28
+ function merge(pluginA, pluginB) {
29
+ return mergePlugin(pluginA, pluginB);
30
+ }
31
+ /**
32
+ * Merges two configuration objects together, with special handling for string values.
33
+ * If the value from the second object is a non-empty string, it will overwrite the value from the first object.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const configA = { name: "Default", version: "1.0.0" };
38
+ * const configB = { name: "Custom", description: "A custom config" };
39
+ * const mergedConfig = mergeConfig(configA, configB);
40
+ * // Result: { name: "Custom", version: "1.0.0", description: "A custom config" }
41
+ * ```
42
+ *
43
+ * @param objA - The first configuration object.
44
+ * @param objB - The second configuration object.
45
+ * @returns The merged configuration object.
46
+ */
47
+ const mergeConfig = createDefu((obj, key, value) => {
48
+ if (isString(obj[key]) && isString(value)) {
49
+ if (isSetString(value)) obj[key] = value;
50
+ return true;
51
+ }
52
+ return false;
53
+ });
54
+
55
+ //#endregion
56
+ export { merge, mergeConfig };
57
+ //# sourceMappingURL=merge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.mjs","names":["defu"],"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 { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu, { createDefu } from \"defu\";\nimport { PartialPlugin, ResolvedConfig } from \"../types/config\";\nimport { PluginContext } from \"../types/context\";\nimport { Plugin } from \"../types/plugin\";\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 if (isString(obj[key]) && isString(value)) {\n if (isSetString(value)) {\n obj[key] = value;\n }\n\n return true;\n }\n\n return false;\n}) as (...configs: unknown[]) => ResolvedConfig;\n"],"mappings":";;;;;;AAqCA,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,UAAUA,OAAK,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;AACzD,KAAI,SAAS,IAAI,KAAK,IAAI,SAAS,MAAM,EAAE;AACzC,MAAI,YAAY,MAAM,CACpB,KAAI,OAAO;AAGb,SAAO;;AAGT,QAAO;EACP"}
@@ -0,0 +1,17 @@
1
+
2
+ //#region src/plugin-utils/modules.ts
3
+ /**
4
+ * Determine if a module ID is a built-in Powerlines module ID.
5
+ *
6
+ * @param context - The Powerlines context.
7
+ * @param moduleName - The name of the module to check.
8
+ * @returns `true` if the module is a built-in module, otherwise `false`.
9
+ */
10
+ function isBuiltinModule(context, moduleName) {
11
+ const prefix = context.config?.framework || "powerlines";
12
+ return moduleName.startsWith(`${prefix.replace(/:$/, "")}:`) || Object.keys(context.fs.metadata).filter((key) => context.fs.metadata[key]?.type === "builtin").includes(moduleName);
13
+ }
14
+
15
+ //#endregion
16
+ exports.isBuiltinModule = isBuiltinModule;
17
+ //# sourceMappingURL=modules.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.cjs","names":["prefix: string"],"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,MAAMA,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"}
@@ -0,0 +1,15 @@
1
+ import { Context } from "../types/context.cjs";
2
+
3
+ //#region src/plugin-utils/modules.d.ts
4
+
5
+ /**
6
+ * Determine if a module ID is a built-in Powerlines module ID.
7
+ *
8
+ * @param context - The Powerlines context.
9
+ * @param moduleName - The name of the module to check.
10
+ * @returns `true` if the module is a built-in module, otherwise `false`.
11
+ */
12
+ declare function isBuiltinModule(context: Context, moduleName: string): boolean;
13
+ //#endregion
14
+ export { isBuiltinModule };
15
+ //# sourceMappingURL=modules.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.d.cts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"sourcesContent":[],"mappings":";;;;;;AA2BA;;;;;iBAAgB,eAAA,UAAyB"}
@@ -0,0 +1,15 @@
1
+ import { Context } from "../types/context.mjs";
2
+
3
+ //#region src/plugin-utils/modules.d.ts
4
+
5
+ /**
6
+ * Determine if a module ID is a built-in Powerlines module ID.
7
+ *
8
+ * @param context - The Powerlines context.
9
+ * @param moduleName - The name of the module to check.
10
+ * @returns `true` if the module is a built-in module, otherwise `false`.
11
+ */
12
+ declare function isBuiltinModule(context: Context, moduleName: string): boolean;
13
+ //#endregion
14
+ export { isBuiltinModule };
15
+ //# sourceMappingURL=modules.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.d.mts","names":[],"sources":["../../src/plugin-utils/modules.ts"],"sourcesContent":[],"mappings":";;;;;;AA2BA;;;;;iBAAgB,eAAA,UAAyB"}
@@ -0,0 +1,16 @@
1
+ //#region src/plugin-utils/modules.ts
2
+ /**
3
+ * Determine if a module ID is a built-in Powerlines module ID.
4
+ *
5
+ * @param context - The Powerlines context.
6
+ * @param moduleName - The name of the module to check.
7
+ * @returns `true` if the module is a built-in module, otherwise `false`.
8
+ */
9
+ function isBuiltinModule(context, moduleName) {
10
+ const prefix = context.config?.framework || "powerlines";
11
+ return moduleName.startsWith(`${prefix.replace(/:$/, "")}:`) || Object.keys(context.fs.metadata).filter((key) => context.fs.metadata[key]?.type === "builtin").includes(moduleName);
12
+ }
13
+
14
+ //#endregion
15
+ export { isBuiltinModule };
16
+ //# sourceMappingURL=modules.mjs.map