powerlines 0.37.23 → 0.37.25

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 (105) hide show
  1. package/dist/api.cjs +2 -2
  2. package/dist/api.js +1 -1
  3. package/dist/astro.cjs +4 -4
  4. package/dist/astro.js +3 -3
  5. package/dist/{chunk-D4L3REG4.js → chunk-4KHQJLOZ.js} +3 -3
  6. package/dist/{chunk-Z7KIQFLN.js → chunk-5EXQR5PS.js} +3 -3
  7. package/dist/{chunk-3XEOJ3TS.js → chunk-5UWYXYHN.js} +68 -15
  8. package/dist/{chunk-DWF4GVXQ.cjs → chunk-A44AVBOK.cjs} +4 -4
  9. package/dist/{chunk-C3TWAGFQ.cjs → chunk-A6EFHKFH.cjs} +5 -5
  10. package/dist/{chunk-UQ7LY7EU.js → chunk-CBUBY3RQ.js} +3 -3
  11. package/dist/chunk-EBWMUY6X.cjs +12 -0
  12. package/dist/chunk-EIJCWBLT.cjs +12 -0
  13. package/dist/{chunk-PQ6DDPXP.js → chunk-GBWZQNCT.js} +3 -3
  14. package/dist/{chunk-R7IUNKL4.cjs → chunk-GLFCJGOU.cjs} +68 -15
  15. package/dist/{chunk-APLBM72X.js → chunk-KUVGZOIR.js} +3 -3
  16. package/dist/{chunk-UZV6LCRL.cjs → chunk-VNXIVSZM.cjs} +4 -4
  17. package/dist/esbuild.cjs +6 -6
  18. package/dist/esbuild.js +3 -3
  19. package/dist/farm.cjs +3 -3
  20. package/dist/farm.js +2 -2
  21. package/dist/index.cjs +10 -10
  22. package/dist/index.js +2 -2
  23. package/dist/lib/{chunk-NE26SC53.js → chunk-2LZ2KCSP.js} +3 -3
  24. package/dist/lib/{chunk-NE26SC53.js.map → chunk-2LZ2KCSP.js.map} +1 -1
  25. package/dist/lib/{chunk-UKH6QWNB.js → chunk-4UBTIIJL.js} +4 -4
  26. package/dist/lib/{chunk-UKH6QWNB.js.map → chunk-4UBTIIJL.js.map} +1 -1
  27. package/dist/lib/{chunk-KAYP2ZET.js → chunk-5KPURJGU.js} +3 -3
  28. package/dist/lib/{chunk-KAYP2ZET.js.map → chunk-5KPURJGU.js.map} +1 -1
  29. package/dist/lib/{chunk-Y542GHNE.cjs → chunk-5NQEQLWX.cjs} +6 -6
  30. package/dist/lib/{chunk-Y542GHNE.cjs.map → chunk-5NQEQLWX.cjs.map} +1 -1
  31. package/dist/lib/{chunk-GAIS4GMK.js → chunk-67DD6S67.js} +69 -16
  32. package/dist/lib/chunk-67DD6S67.js.map +1 -0
  33. package/dist/lib/{chunk-K3NVHAWK.js → chunk-7S3JZ53C.js} +3 -3
  34. package/dist/lib/{chunk-K3NVHAWK.js.map → chunk-7S3JZ53C.js.map} +1 -1
  35. package/dist/lib/{chunk-EUG7HXQY.js → chunk-AENFA3JO.js} +4 -4
  36. package/dist/lib/{chunk-EUG7HXQY.js.map → chunk-AENFA3JO.js.map} +1 -1
  37. package/dist/lib/{chunk-5WSRLNW3.cjs → chunk-CTZ34LYF.cjs} +74 -21
  38. package/dist/lib/chunk-CTZ34LYF.cjs.map +1 -0
  39. package/dist/lib/{chunk-ZYQHFUU6.cjs → chunk-DFEKS6NC.cjs} +16 -16
  40. package/dist/lib/{chunk-ZYQHFUU6.cjs.map → chunk-DFEKS6NC.cjs.map} +1 -1
  41. package/dist/lib/{chunk-Y2IR6IBT.cjs → chunk-IBV5LQEW.cjs} +19 -19
  42. package/dist/lib/{chunk-Y2IR6IBT.cjs.map → chunk-IBV5LQEW.cjs.map} +1 -1
  43. package/dist/lib/{chunk-YYG2XJQN.cjs → chunk-J4TJDOSP.cjs} +4 -4
  44. package/dist/lib/chunk-J4TJDOSP.cjs.map +1 -0
  45. package/dist/lib/{chunk-EBBGE5FN.js → chunk-LGM65FVK.js} +4 -4
  46. package/dist/lib/chunk-LGM65FVK.js.map +1 -0
  47. package/dist/lib/{chunk-NP43P5WN.cjs → chunk-S3WD3XWS.cjs} +5 -5
  48. package/dist/lib/{chunk-NP43P5WN.cjs.map → chunk-S3WD3XWS.cjs.map} +1 -1
  49. package/dist/lib/{chunk-RI3JLIUH.cjs → chunk-XKEHVYDR.cjs} +7 -7
  50. package/dist/lib/{chunk-RI3JLIUH.cjs.map → chunk-XKEHVYDR.cjs.map} +1 -1
  51. package/dist/lib/contexts/api-context.cjs +7 -7
  52. package/dist/lib/contexts/api-context.js +6 -6
  53. package/dist/lib/contexts/context.cjs +5 -5
  54. package/dist/lib/contexts/context.js +4 -4
  55. package/dist/lib/contexts/environment-context.cjs +6 -6
  56. package/dist/lib/contexts/environment-context.js +5 -5
  57. package/dist/lib/contexts/index.cjs +9 -9
  58. package/dist/lib/contexts/index.js +6 -6
  59. package/dist/lib/fs/helpers.cjs +12 -12
  60. package/dist/lib/fs/helpers.d.cts +1 -1
  61. package/dist/lib/fs/helpers.d.ts +1 -1
  62. package/dist/lib/fs/helpers.js +1 -1
  63. package/dist/lib/fs/index.cjs +4 -4
  64. package/dist/lib/fs/index.js +3 -3
  65. package/dist/lib/fs/storage/file-system.cjs +3 -3
  66. package/dist/lib/fs/storage/file-system.js +2 -2
  67. package/dist/lib/fs/storage/index.cjs +3 -3
  68. package/dist/lib/fs/storage/index.js +2 -2
  69. package/dist/lib/fs/vfs.cjs +4 -4
  70. package/dist/lib/fs/vfs.js +3 -3
  71. package/dist/lib/index.cjs +12 -12
  72. package/dist/lib/index.js +7 -7
  73. package/dist/lib/unplugin/factory.cjs +8 -8
  74. package/dist/lib/unplugin/factory.js +7 -7
  75. package/dist/lib/unplugin/index.cjs +8 -8
  76. package/dist/lib/unplugin/index.js +7 -7
  77. package/dist/next.cjs +4 -4
  78. package/dist/next.js +3 -3
  79. package/dist/nuxt.cjs +7 -7
  80. package/dist/nuxt.js +5 -5
  81. package/dist/rolldown.cjs +6 -6
  82. package/dist/rolldown.js +3 -3
  83. package/dist/rollup.cjs +3 -3
  84. package/dist/rollup.js +2 -2
  85. package/dist/rspack.cjs +3 -3
  86. package/dist/rspack.js +2 -2
  87. package/dist/tsdown.cjs +4 -4
  88. package/dist/tsdown.js +3 -3
  89. package/dist/tsup.cjs +4 -4
  90. package/dist/tsup.js +3 -3
  91. package/dist/unloader.cjs +3 -3
  92. package/dist/unloader.js +2 -2
  93. package/dist/unplugin.cjs +8 -8
  94. package/dist/unplugin.js +4 -4
  95. package/dist/vite.cjs +6 -6
  96. package/dist/vite.js +3 -3
  97. package/dist/webpack.cjs +6 -6
  98. package/dist/webpack.js +3 -3
  99. package/package.json +8 -8
  100. package/dist/chunk-4QCZWJMW.cjs +0 -12
  101. package/dist/chunk-D56IP3ZO.cjs +0 -12
  102. package/dist/lib/chunk-5WSRLNW3.cjs.map +0 -1
  103. package/dist/lib/chunk-EBBGE5FN.js.map +0 -1
  104. package/dist/lib/chunk-GAIS4GMK.js.map +0 -1
  105. package/dist/lib/chunk-YYG2XJQN.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkGNEHIBN4_cjs = require('./chunk-GNEHIBN4.cjs');
4
- var chunkNP43P5WN_cjs = require('./chunk-NP43P5WN.cjs');
4
+ var chunkS3WD3XWS_cjs = require('./chunk-S3WD3XWS.cjs');
5
5
  var chunkGZDE4GLY_cjs = require('./chunk-GZDE4GLY.cjs');
6
6
  var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
7
7
  var resolve = require('@stryke/fs/resolve');
@@ -9,7 +9,7 @@ var isFunction = require('@stryke/type-checks/is-function');
9
9
  var isObject = require('@stryke/type-checks/is-object');
10
10
  var isSetObject = require('@stryke/type-checks/is-set-object');
11
11
 
12
- var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends chunkNP43P5WN_cjs.PowerlinesContext {
12
+ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends chunkS3WD3XWS_cjs.PowerlinesContext {
13
13
  static {
14
14
  chunkPK6SKIKE_cjs.__name(this, "PowerlinesEnvironmentContext");
15
15
  }
@@ -58,21 +58,21 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
58
58
  if (!result || isObject.isObject(result) && Object.keys(result).length === 0) {
59
59
  return;
60
60
  }
61
- if (chunkNP43P5WN_cjs.isPluginConfig(result)) {
61
+ if (chunkS3WD3XWS_cjs.isPluginConfig(result)) {
62
62
  return this.$$internal.addPlugin(result);
63
63
  }
64
- resolvedPlugin = chunkNP43P5WN_cjs.isPlugin(result) ? result : plugin;
64
+ resolvedPlugin = chunkS3WD3XWS_cjs.isPlugin(result) ? result : plugin;
65
65
  }
66
66
  const context = chunkGZDE4GLY_cjs.createPluginContext(resolvedPlugin, this);
67
67
  this.plugins.push({
68
68
  plugin: resolvedPlugin,
69
69
  context
70
70
  });
71
- this.#hooks = Object.keys(resolvedPlugin).filter((key) => !chunkNP43P5WN_cjs.PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
71
+ this.#hooks = Object.keys(resolvedPlugin).filter((key) => !chunkS3WD3XWS_cjs.PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
72
72
  const hook = key;
73
- if (chunkNP43P5WN_cjs.isPluginHookField(hook)) {
73
+ if (chunkS3WD3XWS_cjs.isPluginHookField(hook)) {
74
74
  const pluginHook = resolvedPlugin[hook];
75
- if (!chunkNP43P5WN_cjs.isPluginHook(pluginHook)) {
75
+ if (!chunkS3WD3XWS_cjs.isPluginHook(pluginHook)) {
76
76
  return ret;
77
77
  }
78
78
  ret[hook] ??= {
@@ -86,20 +86,20 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
86
86
  const hookListOrder2 = `${resolvedPlugin.enforce}Enforced`;
87
87
  ret[hook][hookListOrder2] ??= [];
88
88
  const bucket = ret[hook][hookListOrder2];
89
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
89
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
90
90
  return ret;
91
91
  }
92
92
  if (isFunction.isFunction(pluginHook) || !pluginHook.order) {
93
93
  ret[hook].normal ??= [];
94
94
  const bucket = ret[hook].normal;
95
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
95
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, bucket);
96
96
  return ret;
97
97
  }
98
98
  const hookListOrder = `${pluginHook.order}Ordered`;
99
99
  ret[hook][hookListOrder] ??= [];
100
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][hookListOrder]);
100
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][hookListOrder]);
101
101
  return ret;
102
- } else if (chunkNP43P5WN_cjs.isUnpluginHookField(hook)) {
102
+ } else if (chunkS3WD3XWS_cjs.isUnpluginHookField(hook)) {
103
103
  const unpluginPlugin = resolvedPlugin[hook];
104
104
  if (!isSetObject.isSetObject(unpluginPlugin)) {
105
105
  return ret;
@@ -107,7 +107,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
107
107
  for (const field of Object.keys(unpluginPlugin)) {
108
108
  const variantField = field;
109
109
  const pluginHook = unpluginPlugin[variantField];
110
- if (!chunkNP43P5WN_cjs.isPluginHook(pluginHook)) {
110
+ if (!chunkS3WD3XWS_cjs.isPluginHook(pluginHook)) {
111
111
  continue;
112
112
  }
113
113
  ret[hook] ??= {};
@@ -119,14 +119,14 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
119
119
  postOrdered: []
120
120
  };
121
121
  if (resolvedPlugin.enforce) {
122
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${resolvedPlugin.enforce}Enforced`]);
122
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${resolvedPlugin.enforce}Enforced`]);
123
123
  return ret;
124
124
  }
125
125
  if (isFunction.isFunction(pluginHook) || !pluginHook.order) {
126
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField].normal);
126
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField].normal);
127
127
  return ret;
128
128
  }
129
- chunkNP43P5WN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${pluginHook.order}Ordered`]);
129
+ chunkS3WD3XWS_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][variantField][`${pluginHook.order}Ordered`]);
130
130
  }
131
131
  } else {
132
132
  this.warn(`Unknown plugin hook field: ${String(hook)}`);
@@ -139,7 +139,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
139
139
  */
140
140
  selectHooks(key, options) {
141
141
  const result = [];
142
- if (chunkNP43P5WN_cjs.isUnpluginHookKey(key)) {
142
+ if (chunkS3WD3XWS_cjs.isUnpluginHookKey(key)) {
143
143
  const variant = String(key).split(":")[0];
144
144
  if (chunkGNEHIBN4_cjs.isUnpluginBuilderVariant(variant)) {
145
145
  const hooks = this.hooks[variant];
@@ -182,7 +182,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
182
182
  }
183
183
  }
184
184
  }
185
- } else if (chunkNP43P5WN_cjs.isPluginHookField(key)) {
185
+ } else if (chunkS3WD3XWS_cjs.isPluginHookField(key)) {
186
186
  if (this.hooks[key]) {
187
187
  const fieldHooks = this.hooks[key];
188
188
  if (options?.order) {
@@ -230,5 +230,5 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
230
230
  };
231
231
 
232
232
  exports.PowerlinesEnvironmentContext = PowerlinesEnvironmentContext;
233
- //# sourceMappingURL=chunk-Y2IR6IBT.cjs.map
234
- //# sourceMappingURL=chunk-Y2IR6IBT.cjs.map
233
+ //# sourceMappingURL=chunk-IBV5LQEW.cjs.map
234
+ //# sourceMappingURL=chunk-IBV5LQEW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/contexts/environment-context.ts"],"names":["PowerlinesEnvironmentContext","PowerlinesContext","fromConfig","workspaceConfig","config","context","init","powerlinesPath","resolvePackage","Error","environment","plugins","hooks","addPlugin","plugin","resolvedPlugin","isFunction","applyToEnvironment","result","Promise","resolve","isObject","Object","keys","length","isPluginConfig","$$internal","isPlugin","createPluginContext","push","filter","key","PLUGIN_NON_HOOK_FIELDS","includes","reduce","ret","hook","isPluginHookField","pluginHook","isPluginHook","preEnforced","preOrdered","normal","postEnforced","postOrdered","enforce","hookListOrder","bucket","addPluginHook","order","isUnpluginHookField","unpluginPlugin","isSetObject","field","variantField","warn","String","selectHooks","options","isUnpluginHookKey","variant","split","isUnpluginBuilderVariant","fieldHooks","mapHooksToResult","__name","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-Y2IR6IBT.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n addPluginHook,\n isPlugin,\n isPluginConfig,\n isPluginHook,\n isPluginHookField,\n isUnpluginHookField,\n isUnpluginHookKey\n} from \"../../plugin-utils/helpers\";\nimport { PluginConfig, WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHookResult,\n SelectHookResultItem,\n SelectHooksOptions\n} from \"../../types/context\";\nimport {\n HookFields,\n HookListOrders,\n HooksList,\n InferHooksListItem,\n PluginHooksListItem,\n UnpluginHookList,\n UnpluginHooksListItem\n} from \"../../types/hooks\";\nimport {\n Plugin,\n PLUGIN_NON_HOOK_FIELDS,\n PluginHook,\n PluginHookFields\n} from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { UnpluginOptions } from \"../../types/unplugin\";\nimport { isUnpluginBuilderVariant } from \"../unplugin/helpers\";\nimport { PowerlinesContext } from \"./context\";\nimport { createPluginContext } from \"./plugin-context\";\n\nexport class PowerlinesEnvironmentContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements EnvironmentContext<TResolvedConfig>\n{\n /**\n * The hooks registered by plugins in this environment\n */\n #hooks: HooksList<PluginContext<TResolvedConfig>> = {} as HooksList<\n PluginContext<TResolvedConfig>\n >;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceConfig - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static async fromConfig<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceConfig: WorkspaceConfig,\n config: TResolvedConfig\n ): Promise<PowerlinesEnvironmentContext<TResolvedConfig>> {\n const context = new PowerlinesEnvironmentContext<TResolvedConfig>(\n config,\n workspaceConfig\n );\n await context.init();\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * The resolved environment configuration\n */\n public environment!: EnvironmentResolvedConfig;\n\n /**\n * The list of plugins applied to this environment\n */\n public plugins: EnvironmentContextPlugin<TResolvedConfig>[] = [];\n\n /**\n * The resolved configuration options\n */\n public override get config(): TResolvedConfig {\n return super.config;\n }\n\n public get hooks(): HooksList<PluginContext<TResolvedConfig>> {\n return this.#hooks;\n }\n\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n let resolvedPlugin = plugin;\n if (isFunction(plugin.applyToEnvironment)) {\n const result = (await Promise.resolve(\n plugin.applyToEnvironment(this.environment) as Promise<any>\n )) as boolean | PluginConfig<PluginContext<TResolvedConfig>>;\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig<PluginContext<TResolvedConfig>>(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<PluginContext<TResolvedConfig>>(result)\n ? result\n : plugin;\n }\n\n const context = createPluginContext<TResolvedConfig>(resolvedPlugin, this);\n\n this.plugins.push({\n plugin: resolvedPlugin,\n context\n });\n\n this.#hooks = Object.keys(resolvedPlugin)\n .filter(\n key =>\n !PLUGIN_NON_HOOK_FIELDS.includes(\n key as ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n )\n )\n .reduce((ret, key) => {\n const hook = key as HookFields<PluginContext<TResolvedConfig>>;\n\n if (isPluginHookField<PluginContext<TResolvedConfig>>(hook)) {\n const pluginHook = resolvedPlugin[hook];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n ret[hook] ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n const hookListOrder =\n `${resolvedPlugin.enforce}Enforced` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n const bucket = ret[hook][hookListOrder];\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n const bucket = ret[hook].normal;\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][hookListOrder] as PluginHooksListItem<\n PluginContext<TResolvedConfig>\n >[]\n );\n\n return ret;\n } else if (isUnpluginHookField(hook)) {\n const unpluginPlugin = resolvedPlugin[hook];\n if (!isSetObject(unpluginPlugin)) {\n return ret;\n }\n\n for (const field of Object.keys(unpluginPlugin)) {\n const variantField = field as keyof UnpluginOptions[typeof hook];\n\n const pluginHook = unpluginPlugin[\n variantField\n ] as PluginHook<AnyFunction>;\n if (!isPluginHook(pluginHook)) {\n continue;\n }\n\n ret[hook] ??= {};\n (ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >) ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${resolvedPlugin.enforce}Enforced`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n (\n ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >\n ).normal!\n );\n\n return ret;\n }\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${pluginHook.order}Ordered`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n }\n } else {\n this.warn(`Unknown plugin hook field: ${String(hook)}`);\n }\n\n return ret;\n }, this.hooks);\n }\n\n /**\n * Retrieves the hook handlers for a specific hook name\n */\n public selectHooks<TKey extends string>(\n key: TKey,\n options?: SelectHooksOptions\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> {\n const result = [] as SelectHookResult<PluginContext<TResolvedConfig>, TKey>;\n\n if (isUnpluginHookKey(key)) {\n const variant = String(key).split(\":\")[0];\n if (isUnpluginBuilderVariant(variant)) {\n const hooks = this.hooks[variant];\n if (hooks) {\n const field = String(key).split(\":\")[1] as keyof typeof hooks;\n if (field && hooks[field]) {\n const fieldHooks = hooks[field] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<\n PluginContext<TResolvedConfig>,\n TKey\n >;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n }\n }\n } else if (isPluginHookField<PluginContext<TResolvedConfig>>(key)) {\n if (this.hooks[key]) {\n const fieldHooks = this.hooks[key] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<PluginContext<TResolvedConfig>, TKey>;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n } else {\n throw new Error(`Unknown plugin hook key: ${String(key)}`);\n }\n\n return result;\n }\n\n protected constructor(\n config: TResolvedConfig,\n workspaceConfig: WorkspaceConfig\n ) {\n super(workspaceConfig);\n\n this.resolvedConfig = config;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/lib/contexts/environment-context.ts"],"names":["PowerlinesEnvironmentContext","PowerlinesContext","fromConfig","workspaceConfig","config","context","init","powerlinesPath","resolvePackage","Error","environment","plugins","hooks","addPlugin","plugin","resolvedPlugin","isFunction","applyToEnvironment","result","Promise","resolve","isObject","Object","keys","length","isPluginConfig","$$internal","isPlugin","createPluginContext","push","filter","key","PLUGIN_NON_HOOK_FIELDS","includes","reduce","ret","hook","isPluginHookField","pluginHook","isPluginHook","preEnforced","preOrdered","normal","postEnforced","postOrdered","enforce","hookListOrder","bucket","addPluginHook","order","isUnpluginHookField","unpluginPlugin","isSetObject","field","variantField","warn","String","selectHooks","options","isUnpluginHookKey","variant","split","isUnpluginBuilderVariant","fieldHooks","mapHooksToResult","__name","hooksList","map","find","p","name","handler","resolvedConfig"],"mappings":"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","file":"chunk-IBV5LQEW.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { ArrayValues } from \"@stryke/types/array\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport {\n addPluginHook,\n isPlugin,\n isPluginConfig,\n isPluginHook,\n isPluginHookField,\n isUnpluginHookField,\n isUnpluginHookKey\n} from \"../../plugin-utils/helpers\";\nimport { PluginConfig, WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHookResult,\n SelectHookResultItem,\n SelectHooksOptions\n} from \"../../types/context\";\nimport {\n HookFields,\n HookListOrders,\n HooksList,\n InferHooksListItem,\n PluginHooksListItem,\n UnpluginHookList,\n UnpluginHooksListItem\n} from \"../../types/hooks\";\nimport {\n Plugin,\n PLUGIN_NON_HOOK_FIELDS,\n PluginHook,\n PluginHookFields\n} from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { UnpluginOptions } from \"../../types/unplugin\";\nimport { isUnpluginBuilderVariant } from \"../unplugin/helpers\";\nimport { PowerlinesContext } from \"./context\";\nimport { createPluginContext } from \"./plugin-context\";\n\nexport class PowerlinesEnvironmentContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements EnvironmentContext<TResolvedConfig>\n{\n /**\n * The hooks registered by plugins in this environment\n */\n #hooks: HooksList<PluginContext<TResolvedConfig>> = {} as HooksList<\n PluginContext<TResolvedConfig>\n >;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceConfig - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static async fromConfig<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceConfig: WorkspaceConfig,\n config: TResolvedConfig\n ): Promise<PowerlinesEnvironmentContext<TResolvedConfig>> {\n const context = new PowerlinesEnvironmentContext<TResolvedConfig>(\n config,\n workspaceConfig\n );\n await context.init();\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * The resolved environment configuration\n */\n public environment!: EnvironmentResolvedConfig;\n\n /**\n * The list of plugins applied to this environment\n */\n public plugins: EnvironmentContextPlugin<TResolvedConfig>[] = [];\n\n /**\n * The resolved configuration options\n */\n public override get config(): TResolvedConfig {\n return super.config;\n }\n\n public get hooks(): HooksList<PluginContext<TResolvedConfig>> {\n return this.#hooks;\n }\n\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n let resolvedPlugin = plugin;\n if (isFunction(plugin.applyToEnvironment)) {\n const result = (await Promise.resolve(\n plugin.applyToEnvironment(this.environment) as Promise<any>\n )) as boolean | PluginConfig<PluginContext<TResolvedConfig>>;\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig<PluginContext<TResolvedConfig>>(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<PluginContext<TResolvedConfig>>(result)\n ? result\n : plugin;\n }\n\n const context = createPluginContext<TResolvedConfig>(resolvedPlugin, this);\n\n this.plugins.push({\n plugin: resolvedPlugin,\n context\n });\n\n this.#hooks = Object.keys(resolvedPlugin)\n .filter(\n key =>\n !PLUGIN_NON_HOOK_FIELDS.includes(\n key as ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n )\n )\n .reduce((ret, key) => {\n const hook = key as HookFields<PluginContext<TResolvedConfig>>;\n\n if (isPluginHookField<PluginContext<TResolvedConfig>>(hook)) {\n const pluginHook = resolvedPlugin[hook];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n ret[hook] ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n const hookListOrder =\n `${resolvedPlugin.enforce}Enforced` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n const bucket = ret[hook][hookListOrder];\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n const bucket = ret[hook].normal;\n addPluginHook<\n PluginContext<TResolvedConfig>,\n PluginHookFields<PluginContext<TResolvedConfig>>\n >(context, resolvedPlugin, pluginHook, bucket);\n\n return ret;\n }\n\n const hookListOrder = `${pluginHook.order}Ordered` as HookListOrders;\n ret[hook][hookListOrder] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][hookListOrder] as PluginHooksListItem<\n PluginContext<TResolvedConfig>\n >[]\n );\n\n return ret;\n } else if (isUnpluginHookField(hook)) {\n const unpluginPlugin = resolvedPlugin[hook];\n if (!isSetObject(unpluginPlugin)) {\n return ret;\n }\n\n for (const field of Object.keys(unpluginPlugin)) {\n const variantField = field as keyof UnpluginOptions[typeof hook];\n\n const pluginHook = unpluginPlugin[\n variantField\n ] as PluginHook<AnyFunction>;\n if (!isPluginHook(pluginHook)) {\n continue;\n }\n\n ret[hook] ??= {};\n (ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >) ??= {\n preEnforced: [],\n preOrdered: [],\n normal: [],\n postEnforced: [],\n postOrdered: []\n };\n\n if (resolvedPlugin.enforce) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${resolvedPlugin.enforce}Enforced`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n (\n ret[hook][variantField] as UnpluginHookList<\n PluginContext<TResolvedConfig>,\n typeof variantField\n >\n ).normal!\n );\n\n return ret;\n }\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][variantField][\n `${pluginHook.order}Ordered`\n ] as UnpluginHooksListItem<PluginContext<TResolvedConfig>>[]\n );\n }\n } else {\n this.warn(`Unknown plugin hook field: ${String(hook)}`);\n }\n\n return ret;\n }, this.hooks);\n }\n\n /**\n * Retrieves the hook handlers for a specific hook name\n */\n public selectHooks<TKey extends string>(\n key: TKey,\n options?: SelectHooksOptions\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> {\n const result = [] as SelectHookResult<PluginContext<TResolvedConfig>, TKey>;\n\n if (isUnpluginHookKey(key)) {\n const variant = String(key).split(\":\")[0];\n if (isUnpluginBuilderVariant(variant)) {\n const hooks = this.hooks[variant];\n if (hooks) {\n const field = String(key).split(\":\")[1] as keyof typeof hooks;\n if (field && hooks[field]) {\n const fieldHooks = hooks[field] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<\n PluginContext<TResolvedConfig>,\n TKey\n >;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n }\n }\n } else if (isPluginHookField<PluginContext<TResolvedConfig>>(key)) {\n if (this.hooks[key]) {\n const fieldHooks = this.hooks[key] as Record<\n HookListOrders,\n InferHooksListItem<PluginContext<TResolvedConfig>, TKey>[]\n >;\n\n if (options?.order) {\n const mapHooksToResult = (\n hooksList: InferHooksListItem<\n PluginContext<TResolvedConfig>,\n TKey\n >[]\n ): SelectHookResult<PluginContext<TResolvedConfig>, TKey> =>\n hooksList.map(hook => {\n const plugin = this.plugins.find(\n p => p.plugin.name === hook.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n hook.plugin.name\n }\".`\n );\n }\n\n return {\n handler: hook.handler,\n plugin: hook.plugin,\n context: plugin.context\n } as SelectHookResultItem<PluginContext<TResolvedConfig>, TKey>;\n });\n\n if (options?.order === \"pre\") {\n result.push(...mapHooksToResult(fieldHooks.preOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.preEnforced ?? []));\n } else if (options?.order === \"post\") {\n result.push(...mapHooksToResult(fieldHooks.postOrdered ?? []));\n result.push(...mapHooksToResult(fieldHooks.postEnforced ?? []));\n } else {\n result.push(...mapHooksToResult(fieldHooks.normal ?? []));\n }\n } else {\n result.push(...this.selectHooks(key, { order: \"pre\" }));\n result.push(...this.selectHooks(key, { order: \"normal\" }));\n result.push(...this.selectHooks(key, { order: \"post\" }));\n }\n }\n } else {\n throw new Error(`Unknown plugin hook key: ${String(key)}`);\n }\n\n return result;\n }\n\n protected constructor(\n config: TResolvedConfig,\n workspaceConfig: WorkspaceConfig\n ) {\n super(workspaceConfig);\n\n this.resolvedConfig = config;\n }\n}\n"]}
@@ -4,9 +4,9 @@ var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
4
4
  var toArray = require('@stryke/convert/to-array');
5
5
  var getUnique = require('@stryke/helpers/get-unique');
6
6
  var correctPath = require('@stryke/path/correct-path');
7
- var filePathFns = require('@stryke/path/file-path-fns');
8
7
  var isType = require('@stryke/path/is-type');
9
8
  var join = require('@stryke/path/join');
9
+ var replace = require('@stryke/path/replace');
10
10
  var slash = require('@stryke/path/slash');
11
11
  var isError = require('@stryke/type-checks/is-error');
12
12
  var isSetObject = require('@stryke/type-checks/is-set-object');
@@ -33,7 +33,7 @@ function isValidId(id, prefix = "powerlines") {
33
33
  }
34
34
  chunkPK6SKIKE_cjs.__name(isValidId, "isValidId");
35
35
  function normalizeId(id, prefix = "powerlines") {
36
- return `${prefix.replace(/:$/, "")}:${toFilePath(id).replace(new RegExp(`^${prefix.replace(/:$/, "")}:`), "").replace(/^\\0/, "").replace(filePathFns.findFileDotExtensionSafe(toFilePath(id)), "")}`;
36
+ return replace.replaceExtension(toFilePath(id)).replace(/^\\0/, "").replace(/^powerlines:/, "").replace(new RegExp(`^${prefix.replace(/:$/, "")}:`), "");
37
37
  }
38
38
  chunkPK6SKIKE_cjs.__name(normalizeId, "normalizeId");
39
39
  function normalizePath(path, builtinsPath, prefix = "powerlines") {
@@ -82,5 +82,5 @@ exports.normalizeId = normalizeId;
82
82
  exports.normalizeKey = normalizeKey;
83
83
  exports.normalizePath = normalizePath;
84
84
  exports.toFilePath = toFilePath;
85
- //# sourceMappingURL=chunk-YYG2XJQN.cjs.map
86
- //# sourceMappingURL=chunk-YYG2XJQN.cjs.map
85
+ //# sourceMappingURL=chunk-J4TJDOSP.cjs.map
86
+ //# sourceMappingURL=chunk-J4TJDOSP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/fs/helpers.ts"],"names":["isFileError","err","isError","code","ignoreNotfound","ignoreExists","toFilePath","path","correctPath","slash","toString","replace","isValidId","id","prefix","startsWith","normalizeId","replaceExtension","RegExp","normalizePath","builtinsPath","isAbsolutePath","normalizeKey","key","sep","normalizeBaseKey","base","filterKeyByBase","length","normalizeGlobPatterns","workspaceRoot","patterns","getUnique","toArray","map","pattern","isSetObject","isSetString","input","glob","joinPaths","undefined","filter"],"mappings":"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","file":"chunk-J4TJDOSP.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { correctPath } from \"@stryke/path/correct-path\";\nimport { isAbsolutePath } from \"@stryke/path/is-type\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { slash } from \"@stryke/path/slash\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { AssetGlob } from \"@stryke/types/file\";\nimport { PathOrFileDescriptor } from \"node:fs\";\n\n/**\n * Checks if an error is a file system error.\n *\n * @param err - The error to check.\n * @returns `true` if the error is a file system error, otherwise `false`.\n */\nexport function isFileError(err: any) {\n return isError(err) && \"code\" in err && err.code;\n}\n\n/**\n * Ignores file not found errors.\n *\n * @param err - The error to check.\n * @returns `null` if the error is a file not found error, otherwise returns the error.\n */\nexport function ignoreNotfound(err: any) {\n return (\n isFileError(err) &&\n (err.code === \"ENOENT\" || err.code === \"EISDIR\" ? null : err)\n );\n}\n\n/**\n * Ignores file exists errors.\n *\n * @param err - The error to check.\n * @returns `null` if the error is a file exists error, otherwise returns the error.\n */\nexport function ignoreExists(err: any) {\n return isFileError(err) && err.code === \"EEXIST\" ? null : err;\n}\n\nexport function toFilePath(path: PathOrFileDescriptor): string {\n return correctPath(slash(path?.toString() || \".\").replace(/^file:\\/\\//, \"\"));\n}\n\n/**\n * Checks if a given file id is valid based on the specified prefix.\n *\n * @param id - The file ID to check.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns `true` if the file ID is valid, otherwise `false`.\n */\nexport function isValidId(id: string, prefix = \"powerlines\"): boolean {\n return id.replace(/^\\\\0/, \"\").startsWith(`${prefix.replace(/:$/, \"\")}`);\n}\n\n/**\n * Formats a file id by removing the file extension and prepended runtime prefix.\n *\n * @param id - The file ID to format.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns The formatted file ID.\n */\nexport function normalizeId(id: string, prefix = \"powerlines\"): string {\n // return `${prefix.replace(/:$/, \"\")}:${toFilePath(id)\n // .replace(new RegExp(`^${prefix.replace(/:$/, \"\")}:`), \"\")\n // .replace(/^\\\\0/, \"\")\n // .replace(findFileDotExtensionSafe(toFilePath(id)), \"\")}`;\n\n return replaceExtension(toFilePath(id))\n .replace(/^\\\\0/, \"\")\n .replace(/^powerlines:/, \"\")\n .replace(new RegExp(`^${prefix.replace(/:$/, \"\")}:`), \"\");\n}\n\n/**\n * Normalizes a given path by resolving it against the project root, workspace root, and built-ins path.\n *\n * @param path - The path to normalize.\n * @param builtinsPath - The path to built-in files.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns The normalized path.\n */\nexport function normalizePath(\n path: string,\n builtinsPath: string,\n prefix = \"powerlines\"\n): string {\n return isAbsolutePath(path)\n ? path\n : isValidId(toFilePath(path), prefix)\n ? normalizeId(toFilePath(path), prefix).replace(\n new RegExp(`^${prefix.replace(/:$/, \"\")}:`),\n builtinsPath\n )\n : toFilePath(path);\n}\n\n/**\n * Normalizes a storage key by replacing all path separators with the specified separator.\n *\n * @param key - The storage key to normalize.\n * @param sep - The separator to use for normalization. Default is \":\".\n * @returns The normalized storage key.\n */\nexport function normalizeKey(\n key: string | undefined,\n sep: \":\" | \"/\" = \":\"\n): string {\n if (!key) {\n return \"\";\n }\n return key.replace(/[:/\\\\]/g, sep).replace(/^[:/\\\\]|[:/\\\\]$/g, \"\");\n}\n\n/**\n * Normalizes the base key for storage operations.\n *\n * @param base - The base key to normalize.\n * @returns The normalized base key with a trailing colon if not empty.\n */\nexport function normalizeBaseKey(base?: string) {\n base = normalizeKey(base);\n return base ? `${base}:` : \"\";\n}\n\n/**\n * Filters a storage key based on the specified base path.\n *\n * @param key - The storage key to filter.\n * @param base - The base path to filter by.\n * @returns `true` if the key matches the base path criteria, otherwise `false`.\n */\nexport function filterKeyByBase(\n key: string,\n base: string | undefined\n): boolean {\n if (base) {\n return key.startsWith(base) && key[key.length - 1] !== \"$\";\n }\n\n return key[key.length - 1] !== \"$\";\n}\n\n/**\n * Normalizes glob patterns by resolving them against the workspace root.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param patterns - The glob patterns to normalize.\n * @returns An array of normalized glob patterns.\n */\nexport function normalizeGlobPatterns(\n workspaceRoot: string,\n patterns:\n | string\n | Omit<AssetGlob, \"output\">\n | (string | Omit<AssetGlob, \"output\">)[]\n): string[] {\n return getUnique(\n toArray(patterns)\n .map(pattern => {\n if (\n isSetObject(pattern) &&\n (isSetString(pattern.input) || isSetString(pattern.glob))\n ) {\n return joinPaths(\n pattern.input || workspaceRoot,\n pattern.glob || \"**/*\"\n );\n } else if (!isSetString(pattern)) {\n return undefined;\n }\n\n return pattern;\n })\n .filter(isSetString)\n );\n}\n"]}
@@ -2,9 +2,9 @@ import { __name } from './chunk-7QVYU63E.js';
2
2
  import { toArray } from '@stryke/convert/to-array';
3
3
  import { getUnique } from '@stryke/helpers/get-unique';
4
4
  import { correctPath } from '@stryke/path/correct-path';
5
- import { findFileDotExtensionSafe } from '@stryke/path/file-path-fns';
6
5
  import { isAbsolutePath } from '@stryke/path/is-type';
7
6
  import { joinPaths } from '@stryke/path/join';
7
+ import { replaceExtension } from '@stryke/path/replace';
8
8
  import { slash } from '@stryke/path/slash';
9
9
  import { isError } from '@stryke/type-checks/is-error';
10
10
  import { isSetObject } from '@stryke/type-checks/is-set-object';
@@ -31,7 +31,7 @@ function isValidId(id, prefix = "powerlines") {
31
31
  }
32
32
  __name(isValidId, "isValidId");
33
33
  function normalizeId(id, prefix = "powerlines") {
34
- return `${prefix.replace(/:$/, "")}:${toFilePath(id).replace(new RegExp(`^${prefix.replace(/:$/, "")}:`), "").replace(/^\\0/, "").replace(findFileDotExtensionSafe(toFilePath(id)), "")}`;
34
+ return replaceExtension(toFilePath(id)).replace(/^\\0/, "").replace(/^powerlines:/, "").replace(new RegExp(`^${prefix.replace(/:$/, "")}:`), "");
35
35
  }
36
36
  __name(normalizeId, "normalizeId");
37
37
  function normalizePath(path, builtinsPath, prefix = "powerlines") {
@@ -70,5 +70,5 @@ function normalizeGlobPatterns(workspaceRoot, patterns) {
70
70
  __name(normalizeGlobPatterns, "normalizeGlobPatterns");
71
71
 
72
72
  export { filterKeyByBase, ignoreExists, ignoreNotfound, isFileError, isValidId, normalizeBaseKey, normalizeGlobPatterns, normalizeId, normalizeKey, normalizePath, toFilePath };
73
- //# sourceMappingURL=chunk-EBBGE5FN.js.map
74
- //# sourceMappingURL=chunk-EBBGE5FN.js.map
73
+ //# sourceMappingURL=chunk-LGM65FVK.js.map
74
+ //# sourceMappingURL=chunk-LGM65FVK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/fs/helpers.ts"],"names":["isFileError","err","isError","code","ignoreNotfound","ignoreExists","toFilePath","path","correctPath","slash","toString","replace","isValidId","id","prefix","startsWith","normalizeId","replaceExtension","RegExp","normalizePath","builtinsPath","isAbsolutePath","normalizeKey","key","sep","normalizeBaseKey","base","filterKeyByBase","length","normalizeGlobPatterns","workspaceRoot","patterns","getUnique","toArray","map","pattern","isSetObject","isSetString","input","glob","joinPaths","undefined","filter"],"mappings":"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","file":"chunk-LGM65FVK.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { correctPath } from \"@stryke/path/correct-path\";\nimport { isAbsolutePath } from \"@stryke/path/is-type\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { slash } from \"@stryke/path/slash\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { AssetGlob } from \"@stryke/types/file\";\nimport { PathOrFileDescriptor } from \"node:fs\";\n\n/**\n * Checks if an error is a file system error.\n *\n * @param err - The error to check.\n * @returns `true` if the error is a file system error, otherwise `false`.\n */\nexport function isFileError(err: any) {\n return isError(err) && \"code\" in err && err.code;\n}\n\n/**\n * Ignores file not found errors.\n *\n * @param err - The error to check.\n * @returns `null` if the error is a file not found error, otherwise returns the error.\n */\nexport function ignoreNotfound(err: any) {\n return (\n isFileError(err) &&\n (err.code === \"ENOENT\" || err.code === \"EISDIR\" ? null : err)\n );\n}\n\n/**\n * Ignores file exists errors.\n *\n * @param err - The error to check.\n * @returns `null` if the error is a file exists error, otherwise returns the error.\n */\nexport function ignoreExists(err: any) {\n return isFileError(err) && err.code === \"EEXIST\" ? null : err;\n}\n\nexport function toFilePath(path: PathOrFileDescriptor): string {\n return correctPath(slash(path?.toString() || \".\").replace(/^file:\\/\\//, \"\"));\n}\n\n/**\n * Checks if a given file id is valid based on the specified prefix.\n *\n * @param id - The file ID to check.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns `true` if the file ID is valid, otherwise `false`.\n */\nexport function isValidId(id: string, prefix = \"powerlines\"): boolean {\n return id.replace(/^\\\\0/, \"\").startsWith(`${prefix.replace(/:$/, \"\")}`);\n}\n\n/**\n * Formats a file id by removing the file extension and prepended runtime prefix.\n *\n * @param id - The file ID to format.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns The formatted file ID.\n */\nexport function normalizeId(id: string, prefix = \"powerlines\"): string {\n // return `${prefix.replace(/:$/, \"\")}:${toFilePath(id)\n // .replace(new RegExp(`^${prefix.replace(/:$/, \"\")}:`), \"\")\n // .replace(/^\\\\0/, \"\")\n // .replace(findFileDotExtensionSafe(toFilePath(id)), \"\")}`;\n\n return replaceExtension(toFilePath(id))\n .replace(/^\\\\0/, \"\")\n .replace(/^powerlines:/, \"\")\n .replace(new RegExp(`^${prefix.replace(/:$/, \"\")}:`), \"\");\n}\n\n/**\n * Normalizes a given path by resolving it against the project root, workspace root, and built-ins path.\n *\n * @param path - The path to normalize.\n * @param builtinsPath - The path to built-in files.\n * @param prefix - The prefix to use for built-in files. Default is \"powerlines\".\n * @returns The normalized path.\n */\nexport function normalizePath(\n path: string,\n builtinsPath: string,\n prefix = \"powerlines\"\n): string {\n return isAbsolutePath(path)\n ? path\n : isValidId(toFilePath(path), prefix)\n ? normalizeId(toFilePath(path), prefix).replace(\n new RegExp(`^${prefix.replace(/:$/, \"\")}:`),\n builtinsPath\n )\n : toFilePath(path);\n}\n\n/**\n * Normalizes a storage key by replacing all path separators with the specified separator.\n *\n * @param key - The storage key to normalize.\n * @param sep - The separator to use for normalization. Default is \":\".\n * @returns The normalized storage key.\n */\nexport function normalizeKey(\n key: string | undefined,\n sep: \":\" | \"/\" = \":\"\n): string {\n if (!key) {\n return \"\";\n }\n return key.replace(/[:/\\\\]/g, sep).replace(/^[:/\\\\]|[:/\\\\]$/g, \"\");\n}\n\n/**\n * Normalizes the base key for storage operations.\n *\n * @param base - The base key to normalize.\n * @returns The normalized base key with a trailing colon if not empty.\n */\nexport function normalizeBaseKey(base?: string) {\n base = normalizeKey(base);\n return base ? `${base}:` : \"\";\n}\n\n/**\n * Filters a storage key based on the specified base path.\n *\n * @param key - The storage key to filter.\n * @param base - The base path to filter by.\n * @returns `true` if the key matches the base path criteria, otherwise `false`.\n */\nexport function filterKeyByBase(\n key: string,\n base: string | undefined\n): boolean {\n if (base) {\n return key.startsWith(base) && key[key.length - 1] !== \"$\";\n }\n\n return key[key.length - 1] !== \"$\";\n}\n\n/**\n * Normalizes glob patterns by resolving them against the workspace root.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param patterns - The glob patterns to normalize.\n * @returns An array of normalized glob patterns.\n */\nexport function normalizeGlobPatterns(\n workspaceRoot: string,\n patterns:\n | string\n | Omit<AssetGlob, \"output\">\n | (string | Omit<AssetGlob, \"output\">)[]\n): string[] {\n return getUnique(\n toArray(patterns)\n .map(pattern => {\n if (\n isSetObject(pattern) &&\n (isSetString(pattern.input) || isSetString(pattern.glob))\n ) {\n return joinPaths(\n pattern.input || workspaceRoot,\n pattern.glob || \"**/*\"\n );\n } else if (!isSetString(pattern)) {\n return undefined;\n }\n\n return pattern;\n })\n .filter(isSetString)\n );\n}\n"]}
@@ -4,7 +4,7 @@ var chunkBJGMF356_cjs = require('./chunk-BJGMF356.cjs');
4
4
  var chunkZWLSNYIN_cjs = require('./chunk-ZWLSNYIN.cjs');
5
5
  var chunkQHTL2U3L_cjs = require('./chunk-QHTL2U3L.cjs');
6
6
  var chunk64R4MDJ7_cjs = require('./chunk-64R4MDJ7.cjs');
7
- var chunk5WSRLNW3_cjs = require('./chunk-5WSRLNW3.cjs');
7
+ var chunkCTZ34LYF_cjs = require('./chunk-CTZ34LYF.cjs');
8
8
  var chunk2JR645O3_cjs = require('./chunk-2JR645O3.cjs');
9
9
  var chunkGFUPZMLG_cjs = require('./chunk-GFUPZMLG.cjs');
10
10
  var chunkFQZQA4EJ_cjs = require('./chunk-FQZQA4EJ.cjs');
@@ -370,7 +370,7 @@ var PowerlinesContext = class _PowerlinesContext {
370
370
  */
371
371
  get fs() {
372
372
  if (!this.#fs) {
373
- this.#fs = chunk5WSRLNW3_cjs.VirtualFileSystem.createSync(this);
373
+ this.#fs = chunkCTZ34LYF_cjs.VirtualFileSystem.createSync(this);
374
374
  }
375
375
  return this.#fs;
376
376
  }
@@ -1218,7 +1218,7 @@ var PowerlinesContext = class _PowerlinesContext {
1218
1218
  output: chunkYF57WETC_cjs.replacePathTokens(this, asset.output)
1219
1219
  }));
1220
1220
  }
1221
- this.#fs ??= await chunk5WSRLNW3_cjs.VirtualFileSystem.create(this);
1221
+ this.#fs ??= await chunkCTZ34LYF_cjs.VirtualFileSystem.create(this);
1222
1222
  }
1223
1223
  mergeUserConfig(from = {}, into = this.config.userConfig ?? {}) {
1224
1224
  this.config.userConfig = defu2__default.default({
@@ -1254,5 +1254,5 @@ exports.isPluginHook = isPluginHook;
1254
1254
  exports.isPluginHookField = isPluginHookField;
1255
1255
  exports.isUnpluginHookField = isUnpluginHookField;
1256
1256
  exports.isUnpluginHookKey = isUnpluginHookKey;
1257
- //# sourceMappingURL=chunk-NP43P5WN.cjs.map
1258
- //# sourceMappingURL=chunk-NP43P5WN.cjs.map
1257
+ //# sourceMappingURL=chunk-S3WD3XWS.cjs.map
1258
+ //# sourceMappingURL=chunk-S3WD3XWS.cjs.map