powerlines 0.34.6 → 0.34.7

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 (141) hide show
  1. package/dist/lib/{api-WGXMngpt.d.ts → api-D1sXxjTA.d.ts} +1 -1
  2. package/dist/lib/{api-C-muqDwC.d.cts → api-Dbd2_-Ia.d.cts} +1 -1
  3. package/dist/lib/build/esbuild.d.cts +1 -1
  4. package/dist/lib/build/esbuild.d.ts +1 -1
  5. package/dist/lib/build/index.cjs +18 -18
  6. package/dist/lib/build/index.d.cts +3 -3
  7. package/dist/lib/build/index.d.ts +3 -3
  8. package/dist/lib/build/index.js +3 -3
  9. package/dist/lib/build/rolldown.d.cts +1 -1
  10. package/dist/lib/build/rolldown.d.ts +1 -1
  11. package/dist/lib/build/rollup.d.cts +1 -1
  12. package/dist/lib/build/rollup.d.ts +1 -1
  13. package/dist/lib/build/rspack.d.cts +1 -1
  14. package/dist/lib/build/rspack.d.ts +1 -1
  15. package/dist/lib/build/tsdown.d.cts +1 -1
  16. package/dist/lib/build/tsdown.d.ts +1 -1
  17. package/dist/lib/build/tsup.d.cts +1 -1
  18. package/dist/lib/build/tsup.d.ts +1 -1
  19. package/dist/lib/build/unbuild.cjs +5 -5
  20. package/dist/lib/build/unbuild.d.cts +3 -3
  21. package/dist/lib/build/unbuild.d.ts +3 -3
  22. package/dist/lib/build/unbuild.js +2 -2
  23. package/dist/lib/build/vite.d.cts +1 -1
  24. package/dist/lib/build/vite.d.ts +1 -1
  25. package/dist/lib/build/webpack.d.cts +1 -1
  26. package/dist/lib/build/webpack.d.ts +1 -1
  27. package/dist/lib/{chunk-NXUMUI2Z.js → chunk-2GK7DF43.js} +3 -3
  28. package/dist/lib/{chunk-NXUMUI2Z.js.map → chunk-2GK7DF43.js.map} +1 -1
  29. package/dist/lib/{chunk-UWOD2XLX.cjs → chunk-5TY5HZTE.cjs} +3 -3
  30. package/dist/lib/{chunk-UWOD2XLX.cjs.map → chunk-5TY5HZTE.cjs.map} +1 -1
  31. package/dist/lib/{chunk-CEHUDHRY.js → chunk-65QSO6NG.js} +3 -3
  32. package/dist/lib/{chunk-CEHUDHRY.js.map → chunk-65QSO6NG.js.map} +1 -1
  33. package/dist/lib/{chunk-RRPFZDGI.cjs → chunk-6U5PN6OX.cjs} +6 -6
  34. package/dist/lib/{chunk-RRPFZDGI.cjs.map → chunk-6U5PN6OX.cjs.map} +1 -1
  35. package/dist/lib/{chunk-FR7QMZ4X.cjs → chunk-7QTVB6ZH.cjs} +3 -3
  36. package/dist/lib/{chunk-FR7QMZ4X.cjs.map → chunk-7QTVB6ZH.cjs.map} +1 -1
  37. package/dist/lib/{chunk-VPZU5BTK.js → chunk-AEBQP3YH.js} +4 -4
  38. package/dist/lib/{chunk-VPZU5BTK.js.map → chunk-AEBQP3YH.js.map} +1 -1
  39. package/dist/lib/{chunk-HVL3SPVN.js → chunk-B2VMPTFK.js} +5 -5
  40. package/dist/lib/{chunk-HVL3SPVN.js.map → chunk-B2VMPTFK.js.map} +1 -1
  41. package/dist/lib/{chunk-3DKBH67A.cjs → chunk-BBPOAO6N.cjs} +3 -3
  42. package/dist/lib/{chunk-3DKBH67A.cjs.map → chunk-BBPOAO6N.cjs.map} +1 -1
  43. package/dist/lib/{chunk-XXQREHLK.cjs → chunk-CBF5ZBGO.cjs} +13 -13
  44. package/dist/lib/{chunk-XXQREHLK.cjs.map → chunk-CBF5ZBGO.cjs.map} +1 -1
  45. package/dist/lib/{chunk-VM6LBJ3L.cjs → chunk-I6J2LQUB.cjs} +13 -13
  46. package/dist/lib/{chunk-VM6LBJ3L.cjs.map → chunk-I6J2LQUB.cjs.map} +1 -1
  47. package/dist/lib/{chunk-2KYZLGIZ.js → chunk-IMQH35LH.js} +4 -4
  48. package/dist/lib/{chunk-2KYZLGIZ.js.map → chunk-IMQH35LH.js.map} +1 -1
  49. package/dist/lib/{chunk-UZSTEOLF.cjs → chunk-JSIJTVJN.cjs} +6 -6
  50. package/dist/lib/{chunk-UZSTEOLF.cjs.map → chunk-JSIJTVJN.cjs.map} +1 -1
  51. package/dist/lib/{chunk-ZVZFMMNL.js → chunk-UNGOTRTI.js} +3 -3
  52. package/dist/lib/{chunk-ZVZFMMNL.js.map → chunk-UNGOTRTI.js.map} +1 -1
  53. package/dist/lib/{chunk-MBGLVIJD.js → chunk-ZSSKYT2Q.js} +3 -3
  54. package/dist/lib/{chunk-MBGLVIJD.js.map → chunk-ZSSKYT2Q.js.map} +1 -1
  55. package/dist/lib/{config-Lr7p1CKw.d.cts → config-BTigTmCa.d.cts} +1 -1
  56. package/dist/lib/{config-ba1qwxTg.d.ts → config-CnM0IzJt.d.ts} +1 -1
  57. package/dist/lib/config-file.d.cts +1 -1
  58. package/dist/lib/config-file.d.ts +1 -1
  59. package/dist/lib/contexts/api-context.cjs +8 -8
  60. package/dist/lib/contexts/api-context.d.cts +3 -3
  61. package/dist/lib/contexts/api-context.d.ts +3 -3
  62. package/dist/lib/contexts/api-context.js +7 -7
  63. package/dist/lib/contexts/context.cjs +6 -6
  64. package/dist/lib/contexts/context.d.cts +3 -3
  65. package/dist/lib/contexts/context.d.ts +3 -3
  66. package/dist/lib/contexts/context.js +5 -5
  67. package/dist/lib/contexts/environment-context.cjs +7 -7
  68. package/dist/lib/contexts/environment-context.d.cts +3 -3
  69. package/dist/lib/contexts/environment-context.d.ts +3 -3
  70. package/dist/lib/contexts/environment-context.js +6 -6
  71. package/dist/lib/contexts/index.cjs +10 -10
  72. package/dist/lib/contexts/index.d.cts +3 -3
  73. package/dist/lib/contexts/index.d.ts +3 -3
  74. package/dist/lib/contexts/index.js +7 -7
  75. package/dist/lib/contexts/plugin-context.d.cts +3 -3
  76. package/dist/lib/contexts/plugin-context.d.ts +3 -3
  77. package/dist/lib/entry.d.cts +1 -1
  78. package/dist/lib/entry.d.ts +1 -1
  79. package/dist/lib/fs/index.cjs +3 -3
  80. package/dist/lib/fs/index.d.cts +1 -1
  81. package/dist/lib/fs/index.d.ts +1 -1
  82. package/dist/lib/fs/index.js +2 -2
  83. package/dist/lib/fs/vfs.cjs +3 -3
  84. package/dist/lib/fs/vfs.d.cts +1 -1
  85. package/dist/lib/fs/vfs.d.ts +1 -1
  86. package/dist/lib/fs/vfs.js +2 -2
  87. package/dist/lib/index.cjs +42 -42
  88. package/dist/lib/index.d.cts +4 -4
  89. package/dist/lib/index.d.ts +4 -4
  90. package/dist/lib/index.js +13 -13
  91. package/dist/lib/{internal-CSgMKSqU.d.cts → internal-BOR5vtOY.d.cts} +3 -3
  92. package/dist/lib/{internal-Cy15nTJD.d.ts → internal-DVekUinF.d.ts} +3 -3
  93. package/dist/lib/logger.d.cts +1 -1
  94. package/dist/lib/logger.d.ts +1 -1
  95. package/dist/lib/typescript/import-transformer.d.cts +1 -1
  96. package/dist/lib/typescript/import-transformer.d.ts +1 -1
  97. package/dist/lib/typescript/index.d.cts +1 -1
  98. package/dist/lib/typescript/index.d.ts +1 -1
  99. package/dist/lib/typescript/ts-morph.d.cts +1 -1
  100. package/dist/lib/typescript/ts-morph.d.ts +1 -1
  101. package/dist/lib/unplugin/factory.cjs +10 -10
  102. package/dist/lib/unplugin/factory.d.cts +3 -3
  103. package/dist/lib/unplugin/factory.d.ts +3 -3
  104. package/dist/lib/unplugin/factory.js +9 -9
  105. package/dist/lib/unplugin/helpers.d.cts +1 -1
  106. package/dist/lib/unplugin/helpers.d.ts +1 -1
  107. package/dist/lib/unplugin/index.cjs +12 -12
  108. package/dist/lib/unplugin/index.d.cts +3 -3
  109. package/dist/lib/unplugin/index.d.ts +3 -3
  110. package/dist/lib/unplugin/index.js +10 -10
  111. package/dist/lib/unplugin/plugin.cjs +3 -3
  112. package/dist/lib/unplugin/plugin.d.cts +3 -3
  113. package/dist/lib/unplugin/plugin.d.ts +3 -3
  114. package/dist/lib/unplugin/plugin.js +2 -2
  115. package/dist/lib/{unplugin-DQ_UxGcQ.d.cts → unplugin-3q1rhBQt.d.cts} +2 -2
  116. package/dist/lib/{unplugin-C1FUzEE1.d.ts → unplugin-D0gGTSXZ.d.ts} +2 -2
  117. package/dist/lib/utilities/bundle.d.cts +1 -1
  118. package/dist/lib/utilities/bundle.d.ts +1 -1
  119. package/dist/lib/utilities/cache.d.cts +1 -1
  120. package/dist/lib/utilities/cache.d.ts +1 -1
  121. package/dist/lib/utilities/file-header.d.cts +1 -1
  122. package/dist/lib/utilities/file-header.d.ts +1 -1
  123. package/dist/lib/utilities/index.cjs +14 -14
  124. package/dist/lib/utilities/index.d.cts +1 -1
  125. package/dist/lib/utilities/index.d.ts +1 -1
  126. package/dist/lib/utilities/index.js +2 -2
  127. package/dist/lib/utilities/meta.d.cts +1 -1
  128. package/dist/lib/utilities/meta.d.ts +1 -1
  129. package/dist/lib/utilities/resolve.d.cts +1 -1
  130. package/dist/lib/utilities/resolve.d.ts +1 -1
  131. package/dist/lib/utilities/source-file.d.cts +1 -1
  132. package/dist/lib/utilities/source-file.d.ts +1 -1
  133. package/dist/lib/utilities/source-map.d.cts +1 -1
  134. package/dist/lib/utilities/source-map.d.ts +1 -1
  135. package/dist/lib/utilities/worker.d.cts +1 -1
  136. package/dist/lib/utilities/worker.d.ts +1 -1
  137. package/dist/lib/utilities/write-file.d.cts +1 -1
  138. package/dist/lib/utilities/write-file.d.ts +1 -1
  139. package/dist/nuxt.cjs +1 -1
  140. package/dist/nuxt.js +1 -1
  141. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkA4RSMLXW_cjs = require('./chunk-A4RSMLXW.cjs');
4
- var chunk632PWWU7_cjs = require('./chunk-632PWWU7.cjs');
5
4
  var chunkOXOTWH3L_cjs = require('./chunk-OXOTWH3L.cjs');
5
+ var chunk632PWWU7_cjs = require('./chunk-632PWWU7.cjs');
6
6
  var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
7
7
  var types = require('@storm-software/config-tools/types');
8
8
  var filePathFns = require('@stryke/path/file-path-fns');
@@ -168,5 +168,5 @@ export * from "${isString.isString(resolved) ? resolved : resolved.id}";
168
168
  chunkPK6SKIKE_cjs.__name(createUnplugin, "createUnplugin");
169
169
 
170
170
  exports.createUnplugin = createUnplugin;
171
- //# sourceMappingURL=chunk-3DKBH67A.cjs.map
172
- //# sourceMappingURL=chunk-3DKBH67A.cjs.map
171
+ //# sourceMappingURL=chunk-BBPOAO6N.cjs.map
172
+ //# sourceMappingURL=chunk-BBPOAO6N.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/unplugin/plugin.ts"],"names":["createUnplugin","context","ctx","setParseImpl","parse","log","extendLog","LogLevelLabel","DEBUG","buildStart","$$internal","callHook","sequential","resolveId","id","importer","opts","isEntry","resolved","result","order","resolve","config","build","polyfill","length","entry","find","file","isString","replaceExtension","output","replace","findFileName","withExtension","emitEntry","map","p","join","load","transform","code","transformed","handler","environment","selectHooks","handle","apply","combineContexts","getString","buildEnd","writeBundle","name","api","filter","include","vite","sharedDuringBuild","error","FATAL","message"],"mappings":"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","file":"chunk-3DKBH67A.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 { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport type {\n ExternalIdResult,\n TransformResult,\n UnpluginBuildContext,\n UnpluginContext\n} from \"unplugin\";\nimport { setParseImpl } from \"unplugin\";\nimport { UnpluginBuildVariant } from \"../../types/build\";\nimport { PluginContext } from \"../../types/context\";\nimport { UNSAFE_PluginContext } from \"../../types/internal\";\nimport { PowerlinesUnpluginFactory } from \"../../types/unplugin\";\nimport { extendLog } from \"../logger\";\nimport { getString } from \"../utilities/source-file\";\nimport { combineContexts } from \"./helpers\";\n\n/**\n * Creates a Powerlines unplugin instance.\n *\n * @param context - The plugin context.\n * @returns The unplugin instance.\n */\nexport function createUnplugin<TContext extends PluginContext = PluginContext>(\n context: TContext\n): PowerlinesUnpluginFactory<UnpluginBuildVariant> {\n const ctx = context as unknown as UNSAFE_PluginContext;\n setParseImpl(ctx.parse);\n\n return () => {\n const log = extendLog(ctx.log, \"unplugin\");\n log(LogLevelLabel.DEBUG, \"Initializing Unplugin\");\n\n try {\n async function buildStart(this: UnpluginBuildContext) {\n log(LogLevelLabel.DEBUG, \"Powerlines build plugin starting...\");\n\n await ctx.$$internal.callHook(\"buildStart\", {\n sequential: true\n });\n }\n\n async function resolveId(\n this: UnpluginBuildContext & UnpluginContext,\n id: string,\n importer?: string,\n opts: {\n isEntry: boolean;\n } = { isEntry: false }\n ): Promise<string | ExternalIdResult | null | undefined> {\n const resolved = await (async () => {\n let result = await ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"pre\"\n },\n id,\n importer,\n opts\n );\n if (result) {\n return result;\n }\n\n result = await ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"normal\"\n },\n id,\n importer,\n opts\n );\n if (result) {\n return result;\n }\n\n result = await ctx.resolve(id, importer, opts);\n if (result) {\n return result;\n }\n\n return ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"post\"\n },\n id,\n importer,\n opts\n );\n })();\n if (\n resolved &&\n opts.isEntry &&\n ctx.config.build.polyfill &&\n ctx.config.build.polyfill.length > 0\n ) {\n const entry = ctx.entry.find(\n entry =>\n entry.file === (isString(resolved) ? resolved : resolved.id)\n );\n if (entry) {\n entry.file = `${replaceExtension(isString(resolved) ? resolved : resolved.id)}-polyfill.ts`;\n entry.output ||= entry.output?.replace(\n findFileName(entry.output, { withExtension: true }),\n entry.file\n );\n\n await ctx.emitEntry(\n `\n${ctx.config.build.polyfill.map(p => `import \"${p}\";`).join(\"\\n\")}\n\nexport * from \"${isString(resolved) ? resolved : resolved.id}\";\n`,\n entry.file\n );\n\n return entry.file;\n }\n }\n\n return resolved;\n }\n\n async function load(\n this: UnpluginBuildContext & UnpluginContext,\n id: string\n ): Promise<TransformResult | null | undefined> {\n let result = await ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"pre\"\n },\n id\n );\n if (result) {\n return result;\n }\n\n result = await ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"normal\"\n },\n id\n );\n if (result) {\n return result;\n }\n\n result = await ctx.load(id);\n if (result) {\n return result;\n }\n\n return ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"post\"\n },\n id\n );\n }\n\n async function transform(\n this: UnpluginBuildContext & UnpluginContext,\n code: string,\n id: string\n ): Promise<TransformResult | null | undefined> {\n let transformed: TransformResult | string = code;\n\n for (const handler of ctx.$$internal.environment.selectHooks(\n \"transform\"\n )) {\n const result: TransformResult | string | undefined =\n await handler.handle.apply(combineContexts(ctx, this), [\n getString(transformed),\n id\n ]);\n if (result) {\n transformed = result;\n }\n }\n\n return transformed;\n }\n\n async function buildEnd(this: UnpluginBuildContext): Promise<void> {\n log(LogLevelLabel.DEBUG, \"Powerlines build plugin finishing...\");\n\n return ctx.$$internal.callHook(\"buildEnd\", {\n sequential: true\n });\n }\n\n async function writeBundle(): Promise<void> {\n log(LogLevelLabel.DEBUG, \"Finalizing Powerlines project output...\");\n\n return ctx.$$internal.callHook(\"writeBundle\", {\n sequential: true\n });\n }\n\n return {\n name: \"powerlines\",\n api: ctx.$$internal.api,\n resolveId: {\n filter: {\n id: {\n include: [/.*/]\n }\n },\n handler: resolveId\n },\n load: {\n filter: {\n id: {\n include: [/.*/]\n }\n },\n handler: load\n },\n transform,\n buildStart,\n buildEnd,\n writeBundle,\n vite: {\n sharedDuringBuild: true\n }\n };\n } catch (error) {\n log(LogLevelLabel.FATAL, (error as Error)?.message);\n\n throw error;\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["../../src/lib/unplugin/plugin.ts"],"names":["createUnplugin","context","ctx","setParseImpl","parse","log","extendLog","LogLevelLabel","DEBUG","buildStart","$$internal","callHook","sequential","resolveId","id","importer","opts","isEntry","resolved","result","order","resolve","config","build","polyfill","length","entry","find","file","isString","replaceExtension","output","replace","findFileName","withExtension","emitEntry","map","p","join","load","transform","code","transformed","handler","environment","selectHooks","handle","apply","combineContexts","getString","buildEnd","writeBundle","name","api","filter","include","vite","sharedDuringBuild","error","FATAL","message"],"mappings":"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","file":"chunk-BBPOAO6N.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 { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { findFileName } from \"@stryke/path/file-path-fns\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport type {\n ExternalIdResult,\n TransformResult,\n UnpluginBuildContext,\n UnpluginContext\n} from \"unplugin\";\nimport { setParseImpl } from \"unplugin\";\nimport { UnpluginBuildVariant } from \"../../types/build\";\nimport { PluginContext } from \"../../types/context\";\nimport { UNSAFE_PluginContext } from \"../../types/internal\";\nimport { PowerlinesUnpluginFactory } from \"../../types/unplugin\";\nimport { extendLog } from \"../logger\";\nimport { getString } from \"../utilities/source-file\";\nimport { combineContexts } from \"./helpers\";\n\n/**\n * Creates a Powerlines unplugin instance.\n *\n * @param context - The plugin context.\n * @returns The unplugin instance.\n */\nexport function createUnplugin<TContext extends PluginContext = PluginContext>(\n context: TContext\n): PowerlinesUnpluginFactory<UnpluginBuildVariant> {\n const ctx = context as unknown as UNSAFE_PluginContext;\n setParseImpl(ctx.parse);\n\n return () => {\n const log = extendLog(ctx.log, \"unplugin\");\n log(LogLevelLabel.DEBUG, \"Initializing Unplugin\");\n\n try {\n async function buildStart(this: UnpluginBuildContext) {\n log(LogLevelLabel.DEBUG, \"Powerlines build plugin starting...\");\n\n await ctx.$$internal.callHook(\"buildStart\", {\n sequential: true\n });\n }\n\n async function resolveId(\n this: UnpluginBuildContext & UnpluginContext,\n id: string,\n importer?: string,\n opts: {\n isEntry: boolean;\n } = { isEntry: false }\n ): Promise<string | ExternalIdResult | null | undefined> {\n const resolved = await (async () => {\n let result = await ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"pre\"\n },\n id,\n importer,\n opts\n );\n if (result) {\n return result;\n }\n\n result = await ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"normal\"\n },\n id,\n importer,\n opts\n );\n if (result) {\n return result;\n }\n\n result = await ctx.resolve(id, importer, opts);\n if (result) {\n return result;\n }\n\n return ctx.$$internal.callHook(\n \"resolveId\",\n {\n sequential: true,\n result: \"first\",\n order: \"post\"\n },\n id,\n importer,\n opts\n );\n })();\n if (\n resolved &&\n opts.isEntry &&\n ctx.config.build.polyfill &&\n ctx.config.build.polyfill.length > 0\n ) {\n const entry = ctx.entry.find(\n entry =>\n entry.file === (isString(resolved) ? resolved : resolved.id)\n );\n if (entry) {\n entry.file = `${replaceExtension(isString(resolved) ? resolved : resolved.id)}-polyfill.ts`;\n entry.output ||= entry.output?.replace(\n findFileName(entry.output, { withExtension: true }),\n entry.file\n );\n\n await ctx.emitEntry(\n `\n${ctx.config.build.polyfill.map(p => `import \"${p}\";`).join(\"\\n\")}\n\nexport * from \"${isString(resolved) ? resolved : resolved.id}\";\n`,\n entry.file\n );\n\n return entry.file;\n }\n }\n\n return resolved;\n }\n\n async function load(\n this: UnpluginBuildContext & UnpluginContext,\n id: string\n ): Promise<TransformResult | null | undefined> {\n let result = await ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"pre\"\n },\n id\n );\n if (result) {\n return result;\n }\n\n result = await ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"normal\"\n },\n id\n );\n if (result) {\n return result;\n }\n\n result = await ctx.load(id);\n if (result) {\n return result;\n }\n\n return ctx.$$internal.callHook(\n \"load\",\n {\n sequential: true,\n result: \"first\",\n order: \"post\"\n },\n id\n );\n }\n\n async function transform(\n this: UnpluginBuildContext & UnpluginContext,\n code: string,\n id: string\n ): Promise<TransformResult | null | undefined> {\n let transformed: TransformResult | string = code;\n\n for (const handler of ctx.$$internal.environment.selectHooks(\n \"transform\"\n )) {\n const result: TransformResult | string | undefined =\n await handler.handle.apply(combineContexts(ctx, this), [\n getString(transformed),\n id\n ]);\n if (result) {\n transformed = result;\n }\n }\n\n return transformed;\n }\n\n async function buildEnd(this: UnpluginBuildContext): Promise<void> {\n log(LogLevelLabel.DEBUG, \"Powerlines build plugin finishing...\");\n\n return ctx.$$internal.callHook(\"buildEnd\", {\n sequential: true\n });\n }\n\n async function writeBundle(): Promise<void> {\n log(LogLevelLabel.DEBUG, \"Finalizing Powerlines project output...\");\n\n return ctx.$$internal.callHook(\"writeBundle\", {\n sequential: true\n });\n }\n\n return {\n name: \"powerlines\",\n api: ctx.$$internal.api,\n resolveId: {\n filter: {\n id: {\n include: [/.*/]\n }\n },\n handler: resolveId\n },\n load: {\n filter: {\n id: {\n include: [/.*/]\n }\n },\n handler: load\n },\n transform,\n buildStart,\n buildEnd,\n writeBundle,\n vite: {\n sharedDuringBuild: true\n }\n };\n } catch (error) {\n log(LogLevelLabel.FATAL, (error as Error)?.message);\n\n throw error;\n }\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk63DAS6TJ_cjs = require('./chunk-63DAS6TJ.cjs');
4
- var chunkUZSTEOLF_cjs = require('./chunk-UZSTEOLF.cjs');
4
+ var chunkJSIJTVJN_cjs = require('./chunk-JSIJTVJN.cjs');
5
5
  var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
6
6
  var resolve = require('@stryke/fs/resolve');
7
7
  var isFunction = require('@stryke/type-checks/is-function');
@@ -18,7 +18,7 @@ var PLUGIN_NON_HOOK_FIELDS = [
18
18
  ];
19
19
 
20
20
  // src/lib/contexts/environment-context.ts
21
- var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends chunkUZSTEOLF_cjs.PowerlinesContext {
21
+ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends chunkJSIJTVJN_cjs.PowerlinesContext {
22
22
  static {
23
23
  chunkPK6SKIKE_cjs.__name(this, "PowerlinesEnvironmentContext");
24
24
  }
@@ -67,10 +67,10 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
67
67
  if (!result || isObject.isObject(result) && Object.keys(result).length === 0) {
68
68
  return;
69
69
  }
70
- if (chunkUZSTEOLF_cjs.isPluginConfig(result)) {
70
+ if (chunkJSIJTVJN_cjs.isPluginConfig(result)) {
71
71
  return this.$$internal.addPlugin(result);
72
72
  }
73
- resolvedPlugin = chunkUZSTEOLF_cjs.isPlugin(result) ? result : plugin;
73
+ resolvedPlugin = chunkJSIJTVJN_cjs.isPlugin(result) ? result : plugin;
74
74
  }
75
75
  const context = chunk63DAS6TJ_cjs.createPluginContext(resolvedPlugin, this);
76
76
  this.plugins.push({
@@ -80,28 +80,28 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
80
80
  this.#hooks = Object.keys(resolvedPlugin).filter((key) => !PLUGIN_NON_HOOK_FIELDS.includes(key)).reduce((ret, key) => {
81
81
  const hook = key;
82
82
  const pluginHook = resolvedPlugin[hook];
83
- if (!chunkUZSTEOLF_cjs.isPluginHook(pluginHook)) {
83
+ if (!chunkJSIJTVJN_cjs.isPluginHook(pluginHook)) {
84
84
  return ret;
85
85
  }
86
- if (!chunkUZSTEOLF_cjs.isHookExternal(hook)) {
86
+ if (!chunkJSIJTVJN_cjs.isHookExternal(hook)) {
87
87
  ret[hook] ??= {};
88
88
  if (resolvedPlugin.enforce) {
89
89
  ret[hook][`${resolvedPlugin.enforce}Enforced`] ??= [];
90
- chunkUZSTEOLF_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][`${resolvedPlugin.enforce}Enforced`]);
90
+ chunkJSIJTVJN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][`${resolvedPlugin.enforce}Enforced`]);
91
91
  return ret;
92
92
  }
93
93
  if (isFunction.isFunction(pluginHook) || !pluginHook.order) {
94
94
  ret[hook].normal ??= [];
95
- chunkUZSTEOLF_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook].normal);
95
+ chunkJSIJTVJN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook].normal);
96
96
  return ret;
97
97
  }
98
98
  ret[hook][`${pluginHook.order}Ordered`] ??= [];
99
- chunkUZSTEOLF_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][`${pluginHook.order}Ordered`]);
99
+ chunkJSIJTVJN_cjs.addPluginHook(context, resolvedPlugin, pluginHook, ret[hook][`${pluginHook.order}Ordered`]);
100
100
  } else {
101
101
  ret[hook] ??= [];
102
102
  ret[hook].push({
103
103
  plugin: resolvedPlugin,
104
- hook: chunkUZSTEOLF_cjs.getHookHandler(pluginHook).bind(context)
104
+ hook: chunkJSIJTVJN_cjs.getHookHandler(pluginHook).bind(context)
105
105
  });
106
106
  }
107
107
  return ret;
@@ -113,7 +113,7 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
113
113
  selectHooks(hook, options) {
114
114
  const result = [];
115
115
  if (this.hooks[hook]) {
116
- if (!chunkUZSTEOLF_cjs.isHookExternal(hook)) {
116
+ if (!chunkJSIJTVJN_cjs.isHookExternal(hook)) {
117
117
  const hooks = this.hooks[hook];
118
118
  if (options?.order) {
119
119
  if (options?.order === "pre") {
@@ -203,5 +203,5 @@ var PowerlinesEnvironmentContext = class _PowerlinesEnvironmentContext extends c
203
203
  };
204
204
 
205
205
  exports.PowerlinesEnvironmentContext = PowerlinesEnvironmentContext;
206
- //# sourceMappingURL=chunk-XXQREHLK.cjs.map
207
- //# sourceMappingURL=chunk-XXQREHLK.cjs.map
206
+ //# sourceMappingURL=chunk-CBF5ZBGO.cjs.map
207
+ //# sourceMappingURL=chunk-CBF5ZBGO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/plugin.ts","../../src/lib/contexts/environment-context.ts"],"names":["PLUGIN_NON_HOOK_FIELDS","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","includes","reduce","ret","hook","pluginHook","isPluginHook","isHookExternal","enforce","addPluginHook","order","normal","getHookHandler","bind","selectHooks","options","preOrdered","map","h","find","p","name","handle","handler","preEnforced","postOrdered","postEnforced","resolvedConfig"],"mappings":"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","file":"chunk-XXQREHLK.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 type { ArrayValues } from \"@stryke/types/array\";\nimport type { FunctionLike, MaybePromise } from \"@stryke/types/base\";\nimport type {\n ExternalIdResult,\n HookFilter,\n TransformResult,\n UnpluginOptions\n} from \"unplugin\";\nimport type { UnpluginBuildVariant } from \"./build\";\nimport type { CommandType } from \"./commands\";\nimport type { EnvironmentConfig, PluginConfig } from \"./config\";\nimport type {\n BuildPluginContext,\n PluginContext,\n UnresolvedContext\n} from \"./context\";\nimport type { EnvironmentResolvedConfig, ResolvedConfig } from \"./resolved\";\n\nexport interface PluginHookObject<\n THookFunction extends FunctionLike,\n TFilter extends keyof HookFilter = never\n> {\n /**\n * The order in which the plugin should be applied.\n */\n order?: \"pre\" | \"post\" | null | undefined;\n\n /**\n * A filter to determine when the hook should be called.\n */\n filter?: Pick<HookFilter, TFilter>;\n\n /**\n * The hook function to be called.\n */\n handler: THookFunction;\n}\n\nexport type PluginHook<\n THookFunction extends FunctionLike,\n TFilter extends keyof HookFilter = never\n> = THookFunction | PluginHookObject<THookFunction, TFilter>;\n\n/**\n * A result returned by the plugin from the `types` hook that describes the declaration types output file.\n */\nexport interface TypesResult {\n directives?: string[];\n code: string;\n}\n\ntype DeepPartial<T> = {\n [K in keyof T]?: DeepPartial<T[K]>;\n};\n\nexport type ConfigResult<TContext extends PluginContext = PluginContext> =\n DeepPartial<TContext[\"config\"]> & Record<string, any>;\n\nexport interface BasePluginHookFunctions<\n TContext extends PluginContext = PluginContext\n> extends Record<CommandType, (this: TContext) => MaybePromise<void>> {\n /**\n * A function that returns configuration options to be merged with the build context's options.\n *\n * @remarks\n * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.\n *\n * @see https://vitejs.dev/guide/api-plugin#config\n *\n * @param this - The build context.\n * @param config - The partial configuration object to be modified.\n * @returns A promise that resolves to a partial configuration object.\n */\n config: (\n this: UnresolvedContext<TContext[\"config\"]>\n ) => MaybePromise<ConfigResult<TContext>>;\n\n /**\n * Modify environment configs before it's resolved. The hook can either mutate the passed-in environment config directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @remarks\n * This hook is called for each environment with a partially resolved environment config that already accounts for the default environment config values set at the root level. If plugins need to modify the config of a given environment, they should do it in this hook instead of the config hook. Leaving the config hook only for modifying the root default environment config.\n *\n * @see https://vitejs.dev/guide/api-plugin#configenvironment\n *\n * @param this - The build context.\n * @param name - The name of the environment being configured.\n * @param environment - The Vite-like environment object containing information about the current build environment.\n * @returns A promise that resolves when the hook is complete.\n */\n configEnvironment: (\n this: TContext,\n name: string,\n environment: EnvironmentConfig\n ) => MaybePromise<Partial<EnvironmentResolvedConfig> | undefined | null>;\n\n /**\n * A hook that is called when the plugin is resolved.\n *\n * @see https://vitejs.dev/guide/api-plugin#configresolved\n *\n * @param this - The build context.\n * @returns A promise that resolves when the hook is complete.\n */\n configResolved: (this: TContext) => MaybePromise<void>;\n\n /**\n * A hook that is called to overwrite the generated declaration types file (.d.ts). The generated type definitions should describe the built-in modules/logic added during the `prepare` task.\n *\n * @param this - The build context.\n * @param code - The source code to generate types for.\n * @returns A promise that resolves when the hook is complete.\n */\n types: (\n this: TContext,\n code: string\n ) => MaybePromise<TypesResult | string | undefined | null>;\n\n /**\n * A hook that is called at the start of the build process.\n *\n * @param this - The build context and unplugin build context.\n * @returns A promise that resolves when the hook is complete.\n */\n buildStart: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext\n ) => MaybePromise<void>;\n\n /**\n * A hook that is called at the end of the build process.\n *\n * @param this - The build context and unplugin build context.\n * @returns A promise that resolves when the hook is complete.\n */\n buildEnd: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext\n ) => MaybePromise<void>;\n\n /**\n * A hook that is called to transform the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param code - The source code to transform.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n transform: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n code: string,\n id: string\n ) => MaybePromise<TransformResult>;\n\n /**\n * A hook that is called to load the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n load: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string\n ) => MaybePromise<TransformResult>;\n\n /**\n * A hook that is called to resolve the identifier of the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @param importer - The importer of the source code.\n * @param options - The options for resolving the identifier.\n * @returns A promise that resolves when the hook is complete.\n */\n resolveId: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string,\n importer: string | undefined,\n options: { isEntry: boolean }\n ) => MaybePromise<string | ExternalIdResult | null | undefined>;\n\n /**\n * A hook that is called to write the bundle to disk.\n *\n * @param this - The build context.\n * @returns A promise that resolves when the hook is complete.\n */\n writeBundle: (this: TContext) => MaybePromise<void>;\n}\n\nexport type BuildPlugin<\n TContext extends PluginContext = PluginContext,\n TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant,\n TOptions extends Required<UnpluginOptions>[TBuildVariant] =\n Required<UnpluginOptions>[TBuildVariant]\n> = {\n [TKey in keyof TOptions]: TOptions[TKey] extends FunctionLike\n ? (\n this: ThisParameterType<TOptions[TKey]> & TContext,\n ...args: Parameters<TOptions[TKey]>\n ) => ReturnType<TOptions[TKey]> | MaybePromise<ReturnType<TOptions[TKey]>>\n : TOptions[TKey];\n};\n\nexport type ExternalPluginHookFunctionsVariant<\n TContext extends PluginContext = PluginContext,\n TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant\n> = {\n [TKey in keyof BuildPlugin<TContext, TBuildVariant> &\n string as `${TBuildVariant}:${TKey}`]: BuildPlugin<\n TContext,\n TBuildVariant\n >[TKey];\n};\n\nexport type ExternalPluginHookFunctions<TContext extends PluginContext> =\n ExternalPluginHookFunctionsVariant<TContext, \"vite\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"esbuild\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rolldown\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rollup\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"webpack\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rspack\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"farm\">;\n\nexport type PluginHookFunctions<\n TContext extends PluginContext = PluginContext\n> = BasePluginHookFunctions<TContext> & ExternalPluginHookFunctions<TContext>;\n\nexport type PluginHooks<TContext extends PluginContext = PluginContext> = {\n [TKey in keyof BasePluginHookFunctions<TContext>]: PluginHook<\n BasePluginHookFunctions<TContext>[TKey]\n >;\n} & {\n /**\n * A function that returns configuration options to be merged with the build context's options.\n *\n * @remarks\n * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.\n *\n * @see https://vitejs.dev/guide/api-plugin#config\n *\n * @param this - The build context.\n * @param config - The partial configuration object to be modified.\n * @returns A promise that resolves to a partial configuration object.\n */\n config:\n | PluginHook<\n (\n this: UnresolvedContext<TContext[\"config\"]>\n ) => MaybePromise<ConfigResult<TContext>>\n >\n | ConfigResult<TContext>;\n\n /**\n * A hook that is called to transform the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param code - The source code to transform.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n transform: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n code: string,\n id: string\n ) => MaybePromise<TransformResult>,\n \"code\" | \"id\"\n >;\n\n /**\n * A hook that is called to load the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n load: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string\n ) => MaybePromise<TransformResult>,\n \"id\"\n >;\n\n /**\n * A hook that is called to resolve the identifier of the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @param importer - The importer of the source code.\n * @param options - The options for resolving the identifier.\n * @returns A promise that resolves when the hook is complete.\n */\n resolveId: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string,\n importer: string | undefined,\n options: { isEntry: boolean }\n ) => MaybePromise<string | ExternalIdResult | null | undefined>,\n \"id\"\n >;\n};\n\nexport type PluginBuildPlugins<TContext extends PluginContext = PluginContext> =\n {\n [TBuildVariant in UnpluginBuildVariant]?: BuildPlugin<\n TContext,\n TBuildVariant\n >;\n };\n\nexport interface Plugin<\n TContext extends PluginContext<ResolvedConfig> = PluginContext<ResolvedConfig>\n>\n extends Partial<PluginHooks<TContext>>, PluginBuildPlugins<TContext> {\n /**\n * The name of the plugin, for use in deduplication, error messages and logs.\n */\n name: string;\n\n /**\n * An API object that can be used for inter-plugin communication.\n *\n * @see https://rollupjs.org/plugin-development/#direct-plugin-communication\n */\n api?: Record<string, any>;\n\n /**\n * Enforce plugin invocation tier similar to webpack loaders. Hooks ordering is still subject to the `order` property in the hook object.\n *\n * @remarks\n * The Plugin invocation order is as follows:\n * - `enforce: 'pre'` plugins\n * - `order: 'pre'` plugin hooks\n * - any other plugins (normal)\n * - `order: 'post'` plugin hooks\n * - `enforce: 'post'` plugins\n *\n * @see https://vitejs.dev/guide/api-plugin.html#plugin-ordering\n * @see https://rollupjs.org/plugin-development/#build-hooks\n * @see https://webpack.js.org/concepts/loaders/#enforce---pre-and-post\n * @see https://esbuild.github.io/plugins/#concepts\n */\n enforce?: \"pre\" | \"post\";\n\n /**\n * A function to determine if two plugins are the same and can be de-duplicated.\n *\n * @remarks\n * If this is not provided, plugins are de-duplicated by comparing their names.\n *\n * @param other - The other plugin to compare against.\n * @returns `true` if the two plugins are the same, `false` otherwise.\n */\n dedupe?: false | ((other: Plugin<TContext>) => boolean);\n\n /**\n * A list of pre-requisite plugins that must be loaded before this plugin can be used.\n */\n dependsOn?: PluginConfig<TContext>[];\n\n /**\n * Define environments where this plugin should be active. By default, the plugin is active in all environments.\n *\n * @param environment - The environment to check.\n * @returns `true` if the plugin should be active in the specified environment, `false` otherwise.\n */\n applyToEnvironment?: (\n environment: EnvironmentResolvedConfig\n ) => boolean | PluginConfig<TContext>;\n}\n\nexport const PLUGIN_NON_HOOK_FIELDS = [\n \"name\",\n \"api\",\n \"enforce\",\n \"dedupe\",\n \"dependsOn\",\n \"applyToEnvironment\"\n] as const;\n\nexport type PluginNonHookFields =\n | ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n | UnpluginBuildVariant;\n","/* -------------------------------------------------------------------\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 { ArrayValues } from \"@stryke/types/array\";\nimport {\n addPluginHook,\n getHookHandler,\n isHookExternal,\n isPlugin,\n isPluginConfig,\n isPluginHook\n} from \"../../plugin-utils/helpers\";\nimport { WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHooksOptions,\n SelectHooksResult\n} from \"../../types/context\";\nimport { BaseHooksList, HookKeys, HooksList } from \"../../types/hooks\";\nimport { Plugin, PLUGIN_NON_HOOK_FIELDS } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\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)\n );\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<TResolvedConfig>(result) ? result : 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 keyof HooksList<PluginContext<TResolvedConfig>>;\n const pluginHook = resolvedPlugin[hook as keyof typeof resolvedPlugin];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n if (!isHookExternal(hook)) {\n ret[hook] ??= {};\n if (resolvedPlugin.enforce) {\n ret[hook][`${resolvedPlugin.enforce}Enforced`] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][`${resolvedPlugin.enforce}Enforced`]!\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook].normal\n );\n\n return ret;\n }\n\n ret[hook][`${pluginHook.order}Ordered`] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][`${pluginHook.order}Ordered`]!\n );\n } else {\n ret[hook] ??= [];\n ret[hook].push({\n plugin: resolvedPlugin,\n hook: getHookHandler(pluginHook).bind(context)\n } as any);\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 HookKeys<PluginContext<TResolvedConfig>>>(\n hook: TKey,\n options?: SelectHooksOptions\n ): SelectHooksResult<TResolvedConfig, TKey>[] {\n const result = [] as SelectHooksResult<TResolvedConfig, TKey>[];\n\n if (this.hooks[hook]) {\n if (!isHookExternal(hook)) {\n const hooks = this.hooks[hook] as BaseHooksList<\n PluginContext<TResolvedConfig>\n >;\n if (options?.order) {\n if (options?.order === \"pre\") {\n result.push(\n ...(hooks.preOrdered ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n result.push(\n ...(hooks.preEnforced ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n } else if (options?.order === \"post\") {\n result.push(\n ...(hooks.postOrdered ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n result.push(\n ...(hooks.postEnforced ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n } else {\n result.push(\n ...(hooks.normal ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n }\n } else {\n result.push(...this.selectHooks(hook, { order: \"pre\" }));\n result.push(...this.selectHooks(hook, { order: \"normal\" }));\n result.push(...this.selectHooks(hook, { order: \"post\" }));\n }\n } else {\n result.push(\n ...this.hooks[hook].map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${h.plugin.name}\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n }\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/types/plugin.ts","../../src/lib/contexts/environment-context.ts"],"names":["PLUGIN_NON_HOOK_FIELDS","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","includes","reduce","ret","hook","pluginHook","isPluginHook","isHookExternal","enforce","addPluginHook","order","normal","getHookHandler","bind","selectHooks","options","preOrdered","map","h","find","p","name","handle","handler","preEnforced","postOrdered","postEnforced","resolvedConfig"],"mappings":";;;;;;;;;;AA2YO,IAAMA,sBAAAA,GAAyB;AACpC,EAAA,MAAA;AACA,EAAA,KAAA;AACA,EAAA,SAAA;AACA,EAAA,QAAA;AACA,EAAA,WAAA;AACA,EAAA;;;;AClWK,IAAMC,4BAAAA,GAAN,MAAMA,6BAAAA,SAGHC,mCAAAA,CAAAA;EAlDV;;;;;;AAwDE,EAAA,MAAA,GAAoD,EAAC;;;;;;;;EAWrD,aAAoBC,UAAAA,CAGlBC,iBACAC,MAAAA,EACwD;AACxD,IAAA,MAAMC,OAAAA,GAAU,IAAIL,6BAAAA,CAClBI,MAAAA,EACAD,eAAAA,CAAAA;AAEF,IAAA,MAAME,QAAQC,IAAAA,EAAI;AAElB,IAAA,MAAMC,cAAAA,GAAiB,MAAMC,sBAAAA,CAAe,YAAA,CAAA;AAC5C,IAAA,IAAI,CAACD,cAAAA,EAAgB;AACnB,MAAA,MAAM,IAAIE,MAAM,kDAAA,CAAA;AAClB,IAAA;AAEAJ,IAAAA,OAAAA,CAAQE,cAAAA,GAAiBA,cAAAA;AAEzB,IAAA,OAAOF,OAAAA;AACT,EAAA;;;;AAKOK,EAAAA,WAAAA;;;;AAKAC,EAAAA,OAAAA,GAAuD,EAAA;;;;AAK9D,EAAA,IAAoBP,MAAAA,GAA0B;AAC5C,IAAA,OAAO,KAAA,CAAMA,MAAAA;AACf,EAAA;AAEA,EAAA,IAAWQ,KAAAA,GAAmD;AAC5D,IAAA,OAAO,IAAA,CAAK,MAAA;AACd,EAAA;AAEA,EAAA,MAAaC,UAAUC,MAAAA,EAAgD;AACrE,IAAA,IAAIC,cAAAA,GAAiBD,MAAAA;AACrB,IAAA,IAAIE,qBAAAA,CAAWF,MAAAA,CAAOG,kBAAkB,CAAA,EAAG;AACzC,MAAA,MAAMC,MAAAA,GAAS,MAAMC,OAAAA,CAAQC,OAAAA,CAC3BN,OAAOG,kBAAAA,CAAmB,IAAA,CAAKP,WAAW,CAAA,CAAA;AAG5C,MAAA,IAAI,CAACQ,MAAAA,IAAWG,iBAAAA,CAASH,MAAAA,CAAAA,IAAWI,OAAOC,IAAAA,CAAKL,MAAAA,CAAAA,CAAQM,MAAAA,KAAW,CAAA,EAAI;AACrE,QAAA;AACF,MAAA;AAEA,MAAA,IAAIC,gCAAAA,CAAeP,MAAAA,CAAAA,EAAS;AAC1B,QAAA,OAAO,IAAA,CAAKQ,UAAAA,CAAWb,SAAAA,CAAUK,MAAAA,CAAAA;AACnC,MAAA;AAEAH,MAAAA,cAAAA,GAAiBY,0BAAAA,CAA0BT,MAAAA,CAAAA,GAAUA,MAAAA,GAASJ,MAAAA;AAChE,IAAA;AAEA,IAAA,MAAMT,OAAAA,GAAUuB,qCAAAA,CAAqCb,cAAAA,EAAgB,IAAI,CAAA;AAEzE,IAAA,IAAA,CAAKJ,QAAQkB,IAAAA,CAAK;MAChBf,MAAAA,EAAQC,cAAAA;AACRV,MAAAA;KACF,CAAA;AAEA,IAAA,IAAA,CAAK,SAASiB,MAAAA,CAAOC,IAAAA,CAAKR,cAAAA,CAAAA,CACvBe,OACCC,CAAAA,GAAAA,KACE,CAAChC,sBAAAA,CAAuBiC,SACtBD,GAAAA,CAAAA,EAGLE,MAAAA,CAAO,CAACC,KAAKH,GAAAA,KAAAA;AACZ,MAAA,MAAMI,IAAAA,GAAOJ,GAAAA;AACb,MAAA,MAAMK,UAAAA,GAAarB,eAAeoB,IAAAA,CAAAA;AAClC,MAAA,IAAI,CAACE,8BAAAA,CAAaD,UAAAA,CAAAA,EAAa;AAC7B,QAAA,OAAOF,GAAAA;AACT,MAAA;AAEA,MAAA,IAAI,CAACI,gCAAAA,CAAeH,IAAAA,CAAAA,EAAO;AACzBD,QAAAA,GAAAA,CAAIC,IAAAA,MAAU,EAAC;AACf,QAAA,IAAIpB,eAAewB,OAAAA,EAAS;AAC1BL,UAAAA,GAAAA,CAAIC,IAAAA,CAAAA,CAAM,CAAA,EAAGpB,eAAewB,OAAO,CAAA,QAAA,CAAU,MAAM,EAAA;AAEnDC,UAAAA,+BAAAA,CACEnC,OAAAA,EACAU,cAAAA,EACAqB,UAAAA,EACAF,GAAAA,CAAIC,IAAAA,EAAM,CAAA,EAAGpB,cAAAA,CAAewB,OAAO,CAAA,QAAA,CAAU,CAAC,CAAA;AAGhD,UAAA,OAAOL,GAAAA;AACT,QAAA;AAEA,QAAA,IAAIlB,qBAAAA,CAAWoB,UAAAA,CAAAA,IAAe,CAACA,WAAWK,KAAAA,EAAO;AAC/CP,UAAAA,GAAAA,CAAIC,IAAAA,CAAAA,CAAMO,MAAAA,KAAW,EAAA;AAErBF,UAAAA,+BAAAA,CACEnC,SACAU,cAAAA,EACAqB,UAAAA,EACAF,GAAAA,CAAIC,IAAAA,EAAMO,MAAM,CAAA;AAGlB,UAAA,OAAOR,GAAAA;AACT,QAAA;AAEAA,QAAAA,GAAAA,CAAIC,IAAAA,CAAAA,CAAM,CAAA,EAAGC,WAAWK,KAAK,CAAA,OAAA,CAAS,MAAM,EAAA;AAE5CD,QAAAA,+BAAAA,CACEnC,OAAAA,EACAU,cAAAA,EACAqB,UAAAA,EACAF,GAAAA,CAAIC,IAAAA,EAAM,CAAA,EAAGC,UAAAA,CAAWK,KAAK,CAAA,OAAA,CAAS,CAAC,CAAA;MAE3C,CAAA,MAAO;AACLP,QAAAA,GAAAA,CAAIC,IAAAA,MAAU,EAAA;AACdD,QAAAA,GAAAA,CAAIC,IAAAA,EAAMN,IAAAA,CAAK;UACbf,MAAAA,EAAQC,cAAAA;AACRoB,UAAAA,IAAAA,EAAMQ,gCAAAA,CAAeP,UAAAA,CAAAA,CAAYQ,IAAAA,CAAKvC,OAAAA;SACxC,CAAA;AACF,MAAA;AAEA,MAAA,OAAO6B,GAAAA;AACT,IAAA,CAAA,EAAG,KAAKtB,KAAK,CAAA;AACjB,EAAA;;;;AAKOiC,EAAAA,WAAAA,CACLV,MACAW,OAAAA,EAC4C;AAC5C,IAAA,MAAM5B,SAAS,EAAA;AAEf,IAAA,IAAI,IAAA,CAAKN,KAAAA,CAAMuB,IAAAA,CAAAA,EAAO;AACpB,MAAA,IAAI,CAACG,gCAAAA,CAAeH,IAAAA,CAAAA,EAAO;AACzB,QAAA,MAAMvB,KAAAA,GAAQ,IAAA,CAAKA,KAAAA,CAAMuB,IAAAA,CAAAA;AAGzB,QAAA,IAAIW,SAASL,KAAAA,EAAO;AAClB,UAAA,IAAIK,OAAAA,EAASL,UAAU,KAAA,EAAO;AAC5BvB,YAAAA,MAAAA,CAAOW,IAAAA,CAAI,IACLjB,KAAAA,CAAMmC,UAAAA,IAAc,EAAA,EAAIC,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AAC9B,cAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,cAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,gBAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EACEwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CACX,CAAA;AAER,cAAA;AAEA,cAAA,OAAO;AACLC,gBAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,gBAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,eAAA;AACF,YAAA,CAAA,CAAA,CAAA;AAEFa,YAAAA,MAAAA,CAAOW,IAAAA,CAAI,IACLjB,KAAAA,CAAM2C,WAAAA,IAAe,EAAA,EAAIP,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AAC/B,cAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,cAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,gBAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EACEwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CACX,CAAA;AAER,cAAA;AAEA,cAAA,OAAO;AACLC,gBAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,gBAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,eAAA;AACF,YAAA,CAAA,CAAA,CAAA;UAEJ,CAAA,MAAA,IAAWyC,OAAAA,EAASL,UAAU,MAAA,EAAQ;AACpCvB,YAAAA,MAAAA,CAAOW,IAAAA,CAAI,IACLjB,KAAAA,CAAM4C,WAAAA,IAAe,EAAA,EAAIR,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AAC/B,cAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,cAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,gBAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EACEwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CACX,CAAA;AAER,cAAA;AAEA,cAAA,OAAO;AACLC,gBAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,gBAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,eAAA;AACF,YAAA,CAAA,CAAA,CAAA;AAEFa,YAAAA,MAAAA,CAAOW,IAAAA,CAAI,IACLjB,KAAAA,CAAM6C,YAAAA,IAAgB,EAAA,EAAIT,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AAChC,cAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,cAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,gBAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EACEwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CACX,CAAA;AAER,cAAA;AAEA,cAAA,OAAO;AACLC,gBAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,gBAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,eAAA;AACF,YAAA,CAAA,CAAA,CAAA;UAEJ,CAAA,MAAO;AACLa,YAAAA,MAAAA,CAAOW,IAAAA,CAAI,IACLjB,KAAAA,CAAM8B,MAAAA,IAAU,EAAA,EAAIM,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AAC1B,cAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,cAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,gBAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EACEwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CACX,CAAA;AAER,cAAA;AAEA,cAAA,OAAO;AACLC,gBAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,gBAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,eAAA;AACF,YAAA,CAAA,CAAA,CAAA;AAEJ,UAAA;QACF,CAAA,MAAO;AACLa,UAAAA,MAAAA,CAAOW,IAAAA,CAAI,GAAI,IAAA,CAAKgB,WAAAA,CAAYV,IAAAA,EAAM;YAAEM,KAAAA,EAAO;AAAM,WAAA,CAAA,CAAA;AACrDvB,UAAAA,MAAAA,CAAOW,IAAAA,CAAI,GAAI,IAAA,CAAKgB,WAAAA,CAAYV,IAAAA,EAAM;YAAEM,KAAAA,EAAO;AAAS,WAAA,CAAA,CAAA;AACxDvB,UAAAA,MAAAA,CAAOW,IAAAA,CAAI,GAAI,IAAA,CAAKgB,WAAAA,CAAYV,IAAAA,EAAM;YAAEM,KAAAA,EAAO;AAAO,WAAA,CAAA,CAAA;AACxD,QAAA;MACF,CAAA,MAAO;AACLvB,QAAAA,MAAAA,CAAOW,IAAAA,CAAI,GACN,IAAA,CAAKjB,KAAAA,CAAMuB,IAAAA,CAAAA,CAAMa,GAAAA,CAAIC,CAAAA,CAAAA,KAAAA;AACtB,UAAA,MAAMnC,MAAAA,GAAS,IAAA,CAAKH,OAAAA,CAAQuC,IAAAA,CAC1BC,CAAAA,CAAAA,KAAKA,CAAAA,CAAErC,MAAAA,CAAOsC,IAAAA,KAASH,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA;AAEtC,UAAA,IAAI,CAACtC,MAAAA,EAAQ;AACX,YAAA,MAAM,IAAIL,KAAAA,CACR,CAAA,0CAAA,EAA6CwC,CAAAA,CAAEnC,MAAAA,CAAOsC,IAAI,CAAA,EAAA,CAAI,CAAA;AAElE,UAAA;AAEA,UAAA,OAAO;AACLC,YAAAA,MAAAA,EAAQJ,CAAAA,CAAEK,OAAAA;AACVjD,YAAAA,OAAAA,EAASS,MAAAA,CAAOT;AAClB,WAAA;AACF,QAAA,CAAA,CAAA,CAAA;AAEJ,MAAA;AACF,IAAA;AAEA,IAAA,OAAOa,MAAAA;AACT,EAAA;AAEA,EAAA,WAAA,CACEd,QACAD,eAAAA,EACA;AACA,IAAA,KAAA,CAAMA,eAAAA,CAAAA;AAEN,IAAA,IAAA,CAAKuD,cAAAA,GAAiBtD,MAAAA;AACxB,EAAA;AACF","file":"chunk-CBF5ZBGO.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 type { ArrayValues } from \"@stryke/types/array\";\nimport type { FunctionLike, MaybePromise } from \"@stryke/types/base\";\nimport type {\n ExternalIdResult,\n HookFilter,\n TransformResult,\n UnpluginOptions\n} from \"unplugin\";\nimport type { UnpluginBuildVariant } from \"./build\";\nimport type { CommandType } from \"./commands\";\nimport type { EnvironmentConfig, PluginConfig } from \"./config\";\nimport type {\n BuildPluginContext,\n PluginContext,\n UnresolvedContext\n} from \"./context\";\nimport type { EnvironmentResolvedConfig, ResolvedConfig } from \"./resolved\";\n\nexport interface PluginHookObject<\n THookFunction extends FunctionLike,\n TFilter extends keyof HookFilter = never\n> {\n /**\n * The order in which the plugin should be applied.\n */\n order?: \"pre\" | \"post\" | null | undefined;\n\n /**\n * A filter to determine when the hook should be called.\n */\n filter?: Pick<HookFilter, TFilter>;\n\n /**\n * The hook function to be called.\n */\n handler: THookFunction;\n}\n\nexport type PluginHook<\n THookFunction extends FunctionLike,\n TFilter extends keyof HookFilter = never\n> = THookFunction | PluginHookObject<THookFunction, TFilter>;\n\n/**\n * A result returned by the plugin from the `types` hook that describes the declaration types output file.\n */\nexport interface TypesResult {\n directives?: string[];\n code: string;\n}\n\ntype DeepPartial<T> = {\n [K in keyof T]?: DeepPartial<T[K]>;\n};\n\nexport type ConfigResult<TContext extends PluginContext = PluginContext> =\n DeepPartial<TContext[\"config\"]> & Record<string, any>;\n\nexport interface BasePluginHookFunctions<\n TContext extends PluginContext = PluginContext\n> extends Record<CommandType, (this: TContext) => MaybePromise<void>> {\n /**\n * A function that returns configuration options to be merged with the build context's options.\n *\n * @remarks\n * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.\n *\n * @see https://vitejs.dev/guide/api-plugin#config\n *\n * @param this - The build context.\n * @param config - The partial configuration object to be modified.\n * @returns A promise that resolves to a partial configuration object.\n */\n config: (\n this: UnresolvedContext<TContext[\"config\"]>\n ) => MaybePromise<ConfigResult<TContext>>;\n\n /**\n * Modify environment configs before it's resolved. The hook can either mutate the passed-in environment config directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @remarks\n * This hook is called for each environment with a partially resolved environment config that already accounts for the default environment config values set at the root level. If plugins need to modify the config of a given environment, they should do it in this hook instead of the config hook. Leaving the config hook only for modifying the root default environment config.\n *\n * @see https://vitejs.dev/guide/api-plugin#configenvironment\n *\n * @param this - The build context.\n * @param name - The name of the environment being configured.\n * @param environment - The Vite-like environment object containing information about the current build environment.\n * @returns A promise that resolves when the hook is complete.\n */\n configEnvironment: (\n this: TContext,\n name: string,\n environment: EnvironmentConfig\n ) => MaybePromise<Partial<EnvironmentResolvedConfig> | undefined | null>;\n\n /**\n * A hook that is called when the plugin is resolved.\n *\n * @see https://vitejs.dev/guide/api-plugin#configresolved\n *\n * @param this - The build context.\n * @returns A promise that resolves when the hook is complete.\n */\n configResolved: (this: TContext) => MaybePromise<void>;\n\n /**\n * A hook that is called to overwrite the generated declaration types file (.d.ts). The generated type definitions should describe the built-in modules/logic added during the `prepare` task.\n *\n * @param this - The build context.\n * @param code - The source code to generate types for.\n * @returns A promise that resolves when the hook is complete.\n */\n types: (\n this: TContext,\n code: string\n ) => MaybePromise<TypesResult | string | undefined | null>;\n\n /**\n * A hook that is called at the start of the build process.\n *\n * @param this - The build context and unplugin build context.\n * @returns A promise that resolves when the hook is complete.\n */\n buildStart: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext\n ) => MaybePromise<void>;\n\n /**\n * A hook that is called at the end of the build process.\n *\n * @param this - The build context and unplugin build context.\n * @returns A promise that resolves when the hook is complete.\n */\n buildEnd: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext\n ) => MaybePromise<void>;\n\n /**\n * A hook that is called to transform the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param code - The source code to transform.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n transform: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n code: string,\n id: string\n ) => MaybePromise<TransformResult>;\n\n /**\n * A hook that is called to load the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n load: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string\n ) => MaybePromise<TransformResult>;\n\n /**\n * A hook that is called to resolve the identifier of the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @param importer - The importer of the source code.\n * @param options - The options for resolving the identifier.\n * @returns A promise that resolves when the hook is complete.\n */\n resolveId: (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string,\n importer: string | undefined,\n options: { isEntry: boolean }\n ) => MaybePromise<string | ExternalIdResult | null | undefined>;\n\n /**\n * A hook that is called to write the bundle to disk.\n *\n * @param this - The build context.\n * @returns A promise that resolves when the hook is complete.\n */\n writeBundle: (this: TContext) => MaybePromise<void>;\n}\n\nexport type BuildPlugin<\n TContext extends PluginContext = PluginContext,\n TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant,\n TOptions extends Required<UnpluginOptions>[TBuildVariant] =\n Required<UnpluginOptions>[TBuildVariant]\n> = {\n [TKey in keyof TOptions]: TOptions[TKey] extends FunctionLike\n ? (\n this: ThisParameterType<TOptions[TKey]> & TContext,\n ...args: Parameters<TOptions[TKey]>\n ) => ReturnType<TOptions[TKey]> | MaybePromise<ReturnType<TOptions[TKey]>>\n : TOptions[TKey];\n};\n\nexport type ExternalPluginHookFunctionsVariant<\n TContext extends PluginContext = PluginContext,\n TBuildVariant extends UnpluginBuildVariant = UnpluginBuildVariant\n> = {\n [TKey in keyof BuildPlugin<TContext, TBuildVariant> &\n string as `${TBuildVariant}:${TKey}`]: BuildPlugin<\n TContext,\n TBuildVariant\n >[TKey];\n};\n\nexport type ExternalPluginHookFunctions<TContext extends PluginContext> =\n ExternalPluginHookFunctionsVariant<TContext, \"vite\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"esbuild\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rolldown\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rollup\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"webpack\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"rspack\"> &\n ExternalPluginHookFunctionsVariant<TContext, \"farm\">;\n\nexport type PluginHookFunctions<\n TContext extends PluginContext = PluginContext\n> = BasePluginHookFunctions<TContext> & ExternalPluginHookFunctions<TContext>;\n\nexport type PluginHooks<TContext extends PluginContext = PluginContext> = {\n [TKey in keyof BasePluginHookFunctions<TContext>]: PluginHook<\n BasePluginHookFunctions<TContext>[TKey]\n >;\n} & {\n /**\n * A function that returns configuration options to be merged with the build context's options.\n *\n * @remarks\n * Modify config before it's resolved. The hook can either mutate {@link Context.config} on the passed-in context directly, or return a partial config object that will be deeply merged into existing config.\n *\n * @warning User plugins are resolved before running this hook so injecting other plugins inside the config hook will have no effect. If you want to add plugins, consider doing so in the {@link Plugin.dependsOn} property instead.\n *\n * @see https://vitejs.dev/guide/api-plugin#config\n *\n * @param this - The build context.\n * @param config - The partial configuration object to be modified.\n * @returns A promise that resolves to a partial configuration object.\n */\n config:\n | PluginHook<\n (\n this: UnresolvedContext<TContext[\"config\"]>\n ) => MaybePromise<ConfigResult<TContext>>\n >\n | ConfigResult<TContext>;\n\n /**\n * A hook that is called to transform the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param code - The source code to transform.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n transform: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n code: string,\n id: string\n ) => MaybePromise<TransformResult>,\n \"code\" | \"id\"\n >;\n\n /**\n * A hook that is called to load the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @returns A promise that resolves when the hook is complete.\n */\n load: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string\n ) => MaybePromise<TransformResult>,\n \"id\"\n >;\n\n /**\n * A hook that is called to resolve the identifier of the source code.\n *\n * @param this - The build context, unplugin build context, and unplugin context.\n * @param id - The identifier of the source code.\n * @param importer - The importer of the source code.\n * @param options - The options for resolving the identifier.\n * @returns A promise that resolves when the hook is complete.\n */\n resolveId: PluginHook<\n (\n this: BuildPluginContext<TContext[\"config\"]> & TContext,\n id: string,\n importer: string | undefined,\n options: { isEntry: boolean }\n ) => MaybePromise<string | ExternalIdResult | null | undefined>,\n \"id\"\n >;\n};\n\nexport type PluginBuildPlugins<TContext extends PluginContext = PluginContext> =\n {\n [TBuildVariant in UnpluginBuildVariant]?: BuildPlugin<\n TContext,\n TBuildVariant\n >;\n };\n\nexport interface Plugin<\n TContext extends PluginContext<ResolvedConfig> = PluginContext<ResolvedConfig>\n>\n extends Partial<PluginHooks<TContext>>, PluginBuildPlugins<TContext> {\n /**\n * The name of the plugin, for use in deduplication, error messages and logs.\n */\n name: string;\n\n /**\n * An API object that can be used for inter-plugin communication.\n *\n * @see https://rollupjs.org/plugin-development/#direct-plugin-communication\n */\n api?: Record<string, any>;\n\n /**\n * Enforce plugin invocation tier similar to webpack loaders. Hooks ordering is still subject to the `order` property in the hook object.\n *\n * @remarks\n * The Plugin invocation order is as follows:\n * - `enforce: 'pre'` plugins\n * - `order: 'pre'` plugin hooks\n * - any other plugins (normal)\n * - `order: 'post'` plugin hooks\n * - `enforce: 'post'` plugins\n *\n * @see https://vitejs.dev/guide/api-plugin.html#plugin-ordering\n * @see https://rollupjs.org/plugin-development/#build-hooks\n * @see https://webpack.js.org/concepts/loaders/#enforce---pre-and-post\n * @see https://esbuild.github.io/plugins/#concepts\n */\n enforce?: \"pre\" | \"post\";\n\n /**\n * A function to determine if two plugins are the same and can be de-duplicated.\n *\n * @remarks\n * If this is not provided, plugins are de-duplicated by comparing their names.\n *\n * @param other - The other plugin to compare against.\n * @returns `true` if the two plugins are the same, `false` otherwise.\n */\n dedupe?: false | ((other: Plugin<TContext>) => boolean);\n\n /**\n * A list of pre-requisite plugins that must be loaded before this plugin can be used.\n */\n dependsOn?: PluginConfig<TContext>[];\n\n /**\n * Define environments where this plugin should be active. By default, the plugin is active in all environments.\n *\n * @param environment - The environment to check.\n * @returns `true` if the plugin should be active in the specified environment, `false` otherwise.\n */\n applyToEnvironment?: (\n environment: EnvironmentResolvedConfig\n ) => boolean | PluginConfig<TContext>;\n}\n\nexport const PLUGIN_NON_HOOK_FIELDS = [\n \"name\",\n \"api\",\n \"enforce\",\n \"dedupe\",\n \"dependsOn\",\n \"applyToEnvironment\"\n] as const;\n\nexport type PluginNonHookFields =\n | ArrayValues<typeof PLUGIN_NON_HOOK_FIELDS>\n | UnpluginBuildVariant;\n","/* -------------------------------------------------------------------\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 { ArrayValues } from \"@stryke/types/array\";\nimport {\n addPluginHook,\n getHookHandler,\n isHookExternal,\n isPlugin,\n isPluginConfig,\n isPluginHook\n} from \"../../plugin-utils/helpers\";\nimport { WorkspaceConfig } from \"../../types/config\";\nimport {\n EnvironmentContext,\n EnvironmentContextPlugin,\n PluginContext,\n SelectHooksOptions,\n SelectHooksResult\n} from \"../../types/context\";\nimport { BaseHooksList, HookKeys, HooksList } from \"../../types/hooks\";\nimport { Plugin, PLUGIN_NON_HOOK_FIELDS } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\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)\n );\n\n if (!result || (isObject(result) && Object.keys(result).length === 0)) {\n return;\n }\n\n if (isPluginConfig(result)) {\n return this.$$internal.addPlugin(result);\n }\n\n resolvedPlugin = isPlugin<TResolvedConfig>(result) ? result : 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 keyof HooksList<PluginContext<TResolvedConfig>>;\n const pluginHook = resolvedPlugin[hook as keyof typeof resolvedPlugin];\n if (!isPluginHook(pluginHook)) {\n return ret;\n }\n\n if (!isHookExternal(hook)) {\n ret[hook] ??= {};\n if (resolvedPlugin.enforce) {\n ret[hook][`${resolvedPlugin.enforce}Enforced`] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][`${resolvedPlugin.enforce}Enforced`]!\n );\n\n return ret;\n }\n\n if (isFunction(pluginHook) || !pluginHook.order) {\n ret[hook].normal ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook].normal\n );\n\n return ret;\n }\n\n ret[hook][`${pluginHook.order}Ordered`] ??= [];\n\n addPluginHook(\n context,\n resolvedPlugin,\n pluginHook,\n ret[hook][`${pluginHook.order}Ordered`]!\n );\n } else {\n ret[hook] ??= [];\n ret[hook].push({\n plugin: resolvedPlugin,\n hook: getHookHandler(pluginHook).bind(context)\n } as any);\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 HookKeys<PluginContext<TResolvedConfig>>>(\n hook: TKey,\n options?: SelectHooksOptions\n ): SelectHooksResult<TResolvedConfig, TKey>[] {\n const result = [] as SelectHooksResult<TResolvedConfig, TKey>[];\n\n if (this.hooks[hook]) {\n if (!isHookExternal(hook)) {\n const hooks = this.hooks[hook] as BaseHooksList<\n PluginContext<TResolvedConfig>\n >;\n if (options?.order) {\n if (options?.order === \"pre\") {\n result.push(\n ...(hooks.preOrdered ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n result.push(\n ...(hooks.preEnforced ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n } else if (options?.order === \"post\") {\n result.push(\n ...(hooks.postOrdered ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n result.push(\n ...(hooks.postEnforced ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n } else {\n result.push(\n ...(hooks.normal ?? []).map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${\n h.plugin.name\n }\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n }\n } else {\n result.push(...this.selectHooks(hook, { order: \"pre\" }));\n result.push(...this.selectHooks(hook, { order: \"normal\" }));\n result.push(...this.selectHooks(hook, { order: \"post\" }));\n }\n } else {\n result.push(\n ...this.hooks[hook].map(h => {\n const plugin = this.plugins.find(\n p => p.plugin.name === h.plugin.name\n );\n if (!plugin) {\n throw new Error(\n `Could not find plugin context for plugin \"${h.plugin.name}\".`\n );\n }\n\n return {\n handle: h.handler,\n context: plugin.context\n };\n })\n );\n }\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,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkMFC7UJHT_cjs = require('./chunk-MFC7UJHT.cjs');
4
- var chunkRRPFZDGI_cjs = require('./chunk-RRPFZDGI.cjs');
5
- var chunkUZSTEOLF_cjs = require('./chunk-UZSTEOLF.cjs');
4
+ var chunkOXOTWH3L_cjs = require('./chunk-OXOTWH3L.cjs');
5
+ var chunk6U5PN6OX_cjs = require('./chunk-6U5PN6OX.cjs');
6
+ var chunkJSIJTVJN_cjs = require('./chunk-JSIJTVJN.cjs');
6
7
  var chunkBJGMF356_cjs = require('./chunk-BJGMF356.cjs');
7
8
  var chunkZWLSNYIN_cjs = require('./chunk-ZWLSNYIN.cjs');
8
9
  var chunkQHTL2U3L_cjs = require('./chunk-QHTL2U3L.cjs');
9
10
  var chunk632PWWU7_cjs = require('./chunk-632PWWU7.cjs');
10
- var chunkOXOTWH3L_cjs = require('./chunk-OXOTWH3L.cjs');
11
11
  var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
12
12
  var types = require('@storm-software/config-tools/types');
13
13
  var getWorkspaceRoot = require('@stryke/fs/get-workspace-root');
@@ -494,7 +494,7 @@ var PowerlinesAPI = class _PowerlinesAPI {
494
494
  * @returns A new instance of the Powerlines API
495
495
  */
496
496
  static async from(workspaceRoot, config) {
497
- const api = new _PowerlinesAPI(await chunkRRPFZDGI_cjs.PowerlinesAPIContext.from(workspaceRoot, config));
497
+ const api = new _PowerlinesAPI(await chunk6U5PN6OX_cjs.PowerlinesAPIContext.from(workspaceRoot, config));
498
498
  api.#context.$$internal = {
499
499
  api,
500
500
  addPlugin: api.#addPlugin.bind(api)
@@ -1005,11 +1005,11 @@ ${formatTypes(types$1)}
1005
1005
  if (isPromise.isPromiseLike(config)) {
1006
1006
  awaited = await Promise.resolve(config);
1007
1007
  }
1008
- if (!chunkUZSTEOLF_cjs.isPluginConfig(awaited)) {
1008
+ if (!chunkJSIJTVJN_cjs.isPluginConfig(awaited)) {
1009
1009
  throw new Error(`Invalid plugin specified in the configuration - ${JSON.stringify(awaited)}. Please ensure the value is a plugin name, an object with the \`plugin\` and \`props\` properties, or an instance of \`Plugin\`.`);
1010
1010
  }
1011
1011
  let plugin;
1012
- if (chunkUZSTEOLF_cjs.isPlugin(awaited)) {
1012
+ if (chunkJSIJTVJN_cjs.isPlugin(awaited)) {
1013
1013
  plugin = awaited;
1014
1014
  } else if (isFunction.isFunction(awaited)) {
1015
1015
  plugin = await Promise.resolve(awaited());
@@ -1020,10 +1020,10 @@ ${formatTypes(types$1)}
1020
1020
  } else {
1021
1021
  plugin = resolved;
1022
1022
  }
1023
- } else if (chunkUZSTEOLF_cjs.isPluginConfigTuple(awaited) || chunkUZSTEOLF_cjs.isPluginConfigObject(awaited)) {
1023
+ } else if (chunkJSIJTVJN_cjs.isPluginConfigTuple(awaited) || chunkJSIJTVJN_cjs.isPluginConfigObject(awaited)) {
1024
1024
  let pluginConfig;
1025
1025
  let pluginOptions;
1026
- if (chunkUZSTEOLF_cjs.isPluginConfigTuple(awaited)) {
1026
+ if (chunkJSIJTVJN_cjs.isPluginConfigTuple(awaited)) {
1027
1027
  pluginConfig = awaited[0];
1028
1028
  pluginOptions = awaited?.length === 2 ? awaited[1] : void 0;
1029
1029
  } else {
@@ -1039,17 +1039,17 @@ ${formatTypes(types$1)}
1039
1039
  }
1040
1040
  } else if (isFunction.isFunction(pluginConfig)) {
1041
1041
  plugin = await Promise.resolve(pluginConfig(pluginOptions));
1042
- } else if (chunkUZSTEOLF_cjs.isPlugin(pluginConfig)) {
1042
+ } else if (chunkJSIJTVJN_cjs.isPlugin(pluginConfig)) {
1043
1043
  plugin = pluginConfig;
1044
1044
  }
1045
1045
  }
1046
1046
  if (!plugin) {
1047
1047
  throw new Error(`The plugin configuration ${JSON.stringify(awaited)} is invalid. This configuration must point to a valid Powerlines plugin module.`);
1048
1048
  }
1049
- if (!chunkUZSTEOLF_cjs.isPlugin(plugin)) {
1049
+ if (!chunkJSIJTVJN_cjs.isPlugin(plugin)) {
1050
1050
  throw new Error(`The plugin option ${JSON.stringify(plugin)} does not export a valid module. This configuration must point to a valid Powerlines plugin module.`);
1051
1051
  }
1052
- if (chunkUZSTEOLF_cjs.checkDedupe(plugin, this.context.plugins)) {
1052
+ if (chunkJSIJTVJN_cjs.checkDedupe(plugin, this.context.plugins)) {
1053
1053
  this.context.log(types.LogLevelLabel.TRACE, `Duplicate ${chalk3__default.default.bold.cyanBright(plugin.name)} plugin dependency detected - Skipping initialization.`);
1054
1054
  return null;
1055
1055
  }
@@ -1213,5 +1213,5 @@ function createUnpluginFactory(variant, decorate) {
1213
1213
  chunkPK6SKIKE_cjs.__name(createUnpluginFactory, "createUnpluginFactory");
1214
1214
 
1215
1215
  exports.createUnpluginFactory = createUnpluginFactory;
1216
- //# sourceMappingURL=chunk-VM6LBJ3L.cjs.map
1217
- //# sourceMappingURL=chunk-VM6LBJ3L.cjs.map
1216
+ //# sourceMappingURL=chunk-I6J2LQUB.cjs.map
1217
+ //# sourceMappingURL=chunk-I6J2LQUB.cjs.map