@powerlines/nx 0.12.23 → 0.12.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.
- package/dist/src/base/base-executor.d.mts.map +1 -1
- package/dist/src/base/base-executor.d.ts.map +1 -1
- package/dist/src/base/base-executor.js +3 -2
- package/dist/src/base/base-executor.mjs +3 -2
- package/dist/src/base/base-executor.mjs.map +1 -1
- package/dist/src/{base-executor-B7KLoiV1.mjs → base-executor-Chnlp8E6.mjs} +4 -3
- package/dist/src/base-executor-Chnlp8E6.mjs.map +1 -0
- package/dist/src/base-executor-LiCOQirA.d.mts.map +1 -1
- package/dist/src/base-executor-iHU-fU0G.d.ts.map +1 -1
- package/dist/src/{base-executor-BMK-RUBG.js → base-executor-tBEl5AWE.js} +3 -2
- package/dist/src/executors/build/executor.js +1 -1
- package/dist/src/executors/build/executor.mjs +1 -1
- package/dist/src/executors/clean/executor.js +1 -1
- package/dist/src/executors/clean/executor.mjs +1 -1
- package/dist/src/executors/docs/executor.js +1 -1
- package/dist/src/executors/docs/executor.mjs +1 -1
- package/dist/src/executors/lint/executor.js +1 -1
- package/dist/src/executors/lint/executor.mjs +1 -1
- package/dist/src/executors/prepare/executor.js +1 -1
- package/dist/src/executors/prepare/executor.mjs +1 -1
- package/dist/src/generators/sync/generator.d.mts +1 -1
- package/dist/src/generators/sync/generator.d.ts +1 -1
- package/package.json +5 -5
- package/dist/src/base-executor-B7KLoiV1.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor.d.mts","names":[],"sources":["../../../src/base/base-executor.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"base-executor.d.mts","names":[],"sources":["../../../src/base/base-executor.ts"],"mappings":";;;;;;;KAkCY,yBAAA,kBACO,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,IAC3C,eAAA;EACF,WAAA;EACA,OAAA,EAAS,QAAA;EACT,OAAA,EAAS,eAAA;EACT,YAAA,EAAc,YAAA;EACd,eAAA,EAAiB,oBAAA;AAAA;;;;;;;;;;;iBAaH,YAAA,kBACG,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,CAAA,CAE7C,OAAA,EAAS,QAAA,EACT,UAAA,GACE,OAAA,EAAS,yBAAA,CAA0B,QAAA,EAAU,eAAA,GAC7C,GAAA,EAAK,gBAAA,KAEH,OAAA,CAAQ,kBAAA,uBACR,kBAAA,sBAGH,eAAA,CAAgB,eAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor.d.ts","names":[],"sources":["../../../src/base/base-executor.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"base-executor.d.ts","names":[],"sources":["../../../src/base/base-executor.ts"],"mappings":";;;;;;;KAkCY,yBAAA,kBACO,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,IAC3C,eAAA;EACF,WAAA;EACA,OAAA,EAAS,QAAA;EACT,OAAA,EAAS,eAAA;EACT,YAAA,EAAc,YAAA;EACd,eAAA,EAAiB,oBAAA;AAAA;;;;;;;;;;;iBAaH,YAAA,kBACG,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,CAAA,CAE7C,OAAA,EAAS,QAAA,EACT,UAAA,GACE,OAAA,EAAS,yBAAA,CAA0B,QAAA,EAAU,eAAA,GAC7C,GAAA,EAAK,gBAAA,KAEH,OAAA,CAAQ,kBAAA,uBACR,kBAAA,sBAGH,eAAA,CAAgB,eAAA"}
|
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
3
3
|
let _storm_software_config_tools_logger = require("@storm-software/config-tools/logger");
|
|
4
4
|
let _storm_software_workspace_tools_base_base_executor = require("@storm-software/workspace-tools/base/base-executor");
|
|
5
|
+
let _stryke_path_replace = require("@stryke/path/replace");
|
|
5
6
|
let _stryke_type_checks_is_error = require("@stryke/type-checks/is-error");
|
|
6
7
|
let defu = require("defu");
|
|
7
8
|
defu = require_runtime.__toESM(defu);
|
|
@@ -39,9 +40,9 @@ function withExecutor(command, executorFn) {
|
|
|
39
40
|
command,
|
|
40
41
|
projectType: projectConfig.projectType,
|
|
41
42
|
output: {
|
|
42
|
-
path: options.outputPath,
|
|
43
|
+
path: options.outputPath ? (0, _stryke_path_replace.replacePath)((0, _stryke_path_replace.replacePath)(options.outputPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
43
44
|
copy: {
|
|
44
|
-
path: options.copyPath,
|
|
45
|
+
path: options.copyPath ? (0, _stryke_path_replace.replacePath)((0, _stryke_path_replace.replacePath)(options.copyPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
45
46
|
assets: options.assets
|
|
46
47
|
},
|
|
47
48
|
format: options.format,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { writeError } from "@storm-software/config-tools/logger";
|
|
2
2
|
import { withRunExecutor } from "@storm-software/workspace-tools/base/base-executor";
|
|
3
|
+
import { replacePath } from "@stryke/path/replace";
|
|
3
4
|
import { isError } from "@stryke/type-checks/is-error";
|
|
4
5
|
import defu from "defu";
|
|
5
6
|
import { createJiti } from "jiti";
|
|
@@ -36,9 +37,9 @@ function withExecutor(command, executorFn) {
|
|
|
36
37
|
command,
|
|
37
38
|
projectType: projectConfig.projectType,
|
|
38
39
|
output: {
|
|
39
|
-
path: options.outputPath,
|
|
40
|
+
path: options.outputPath ? replacePath(replacePath(options.outputPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
40
41
|
copy: {
|
|
41
|
-
path: options.copyPath,
|
|
42
|
+
path: options.copyPath ? replacePath(replacePath(options.copyPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
42
43
|
assets: options.assets
|
|
43
44
|
},
|
|
44
45
|
format: options.format,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor.mjs","names":[],"sources":["../../../src/base/base-executor.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n InlineConfig,\n PowerlinesCommand,\n PowerlinesEngine\n} from \"powerlines\";\nimport { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: TCommand;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\n/**\n * A utility function to create a Powerlines executor that can be used with the `withRunExecutor` function.\n *\n * @remarks\n * This function is designed to simplify the creation of Powerlines executors by providing a consistent interface and error handling.\n *\n * @param command - The command that the executor will handle (e.g., \"new\", \"prepare\", \"build\", etc.).\n * @param executorFn - The function that will be executed when the command is run.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: TCommand,\n executorFn: (\n context: PowerlinesExecutorContext<TCommand, TExecutorSchema>,\n api: PowerlinesEngine\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined\n): PromiseExecutor<TExecutorSchema> {\n return withRunExecutor(\n `Powerlines ${command} command executor`,\n async (\n options: TExecutorSchema,\n context: ExecutorContext,\n workspaceConfig: StormWorkspaceConfig\n ): Promise<BaseExecutorResult | null | undefined> => {\n if (!context.projectName) {\n throw new Error(\n \"The executor requires `projectName` on the context object.\"\n );\n }\n\n if (\n !context.projectName ||\n !context.projectsConfigurations?.projects ||\n !context.projectsConfigurations.projects[context.projectName] ||\n !context.projectsConfigurations.projects[context.projectName]?.root\n ) {\n throw new Error(\n \"The executor requires `projectsConfigurations` on the context object.\"\n );\n }\n\n const projectConfig =\n context.projectsConfigurations.projects[context.projectName]!;\n\n const jiti = createJiti(context.root, { cache: false });\n const { createEngine } = await jiti.import<{\n createEngine: typeof import(\"powerlines\").createEngine;\n }>(jiti.esmResolve(\"powerlines\"));\n\n const api = await createEngine(\n defu(\n {\n cwd: workspaceConfig.workspaceRoot,\n root: projectConfig.root,\n configFile: options.configFile ?? options.config\n },\n options,\n {\n name: context.projectName\n }\n )\n );\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n inlineConfig: {\n command,\n projectType: projectConfig.projectType,\n output: {\n path: options.outputPath,\n copy: {
|
|
1
|
+
{"version":3,"file":"base-executor.mjs","names":[],"sources":["../../../src/base/base-executor.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n InlineConfig,\n PowerlinesCommand,\n PowerlinesEngine\n} from \"powerlines\";\nimport { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: TCommand;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\n/**\n * A utility function to create a Powerlines executor that can be used with the `withRunExecutor` function.\n *\n * @remarks\n * This function is designed to simplify the creation of Powerlines executors by providing a consistent interface and error handling.\n *\n * @param command - The command that the executor will handle (e.g., \"new\", \"prepare\", \"build\", etc.).\n * @param executorFn - The function that will be executed when the command is run.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: TCommand,\n executorFn: (\n context: PowerlinesExecutorContext<TCommand, TExecutorSchema>,\n api: PowerlinesEngine\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined\n): PromiseExecutor<TExecutorSchema> {\n return withRunExecutor(\n `Powerlines ${command} command executor`,\n async (\n options: TExecutorSchema,\n context: ExecutorContext,\n workspaceConfig: StormWorkspaceConfig\n ): Promise<BaseExecutorResult | null | undefined> => {\n if (!context.projectName) {\n throw new Error(\n \"The executor requires `projectName` on the context object.\"\n );\n }\n\n if (\n !context.projectName ||\n !context.projectsConfigurations?.projects ||\n !context.projectsConfigurations.projects[context.projectName] ||\n !context.projectsConfigurations.projects[context.projectName]?.root\n ) {\n throw new Error(\n \"The executor requires `projectsConfigurations` on the context object.\"\n );\n }\n\n const projectConfig =\n context.projectsConfigurations.projects[context.projectName]!;\n\n const jiti = createJiti(context.root, { cache: false });\n const { createEngine } = await jiti.import<{\n createEngine: typeof import(\"powerlines\").createEngine;\n }>(jiti.esmResolve(\"powerlines\"));\n\n const api = await createEngine(\n defu(\n {\n cwd: workspaceConfig.workspaceRoot,\n root: projectConfig.root,\n configFile: options.configFile ?? options.config\n },\n options,\n {\n name: context.projectName\n }\n )\n );\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n inlineConfig: {\n command,\n projectType: projectConfig.projectType,\n output: {\n path: options.outputPath\n ? replacePath(\n replacePath(\n options.outputPath,\n workspaceConfig.workspaceRoot\n ),\n projectConfig.root\n )\n : undefined,\n copy: {\n path: options.copyPath\n ? replacePath(\n replacePath(\n options.copyPath,\n workspaceConfig.workspaceRoot\n ),\n projectConfig.root\n )\n : undefined,\n assets: options.assets\n },\n format: options.format,\n sourceMap: options.sourceMap\n },\n resolve: {\n external: options.external,\n noExternal: options.noExternal,\n skipNodeModulesBundle: options.skipNodeModulesBundle\n }\n } as InlineConfig,\n command\n },\n context\n ),\n api\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the Powerlines ${\n command\n } command executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n } finally {\n await api.finalize();\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,aAId,SACA,YAQkC;AAClC,QAAO,gBACL,cAAc,QAAQ,oBACtB,OACE,SACA,SACA,oBACmD;AACnD,MAAI,CAAC,QAAQ,YACX,OAAM,IAAI,MACR,6DACD;AAGH,MACE,CAAC,QAAQ,eACT,CAAC,QAAQ,wBAAwB,YACjC,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,gBACjD,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,cAAc,KAE/D,OAAM,IAAI,MACR,wEACD;EAGH,MAAM,gBACJ,QAAQ,uBAAuB,SAAS,QAAQ;EAElD,MAAM,OAAO,WAAW,QAAQ,MAAM,EAAE,OAAO,OAAO,CAAC;EACvD,MAAM,EAAE,iBAAiB,MAAM,KAAK,OAEjC,KAAK,WAAW,aAAa,CAAC;EAEjC,MAAM,MAAM,MAAM,aAChB,KACE;GACE,KAAK,gBAAgB;GACrB,MAAM,cAAc;GACpB,YAAY,QAAQ,cAAc,QAAQ;GAC3C,EACD,SACA,EACE,MAAM,QAAQ,aACf,CACF,CACF;AAED,MAAI;AACF,UAAO,MAAM,QAAQ,QACnB,WACE,KACE;IACE,aAAa,QAAQ;IACrB;IACA;IACA,cAAc;KACZ;KACA,aAAa,cAAc;KAC3B,QAAQ;MACN,MAAM,QAAQ,aACV,YACE,YACE,QAAQ,YACR,gBAAgB,cACjB,EACD,cAAc,KACf,GACD;MACJ,MAAM;OACJ,MAAM,QAAQ,WACV,YACE,YACE,QAAQ,UACR,gBAAgB,cACjB,EACD,cAAc,KACf,GACD;OACJ,QAAQ,QAAQ;OACjB;MACD,QAAQ,QAAQ;MAChB,WAAW,QAAQ;MACpB;KACD,SAAS;MACP,UAAU,QAAQ;MAClB,YAAY,QAAQ;MACpB,uBAAuB,QAAQ;MAChC;KACF;IACD;IACD,EACD,QACD,EACD,IACD,CACF;WACM,OAAO;AACd,cACE,oDACE,QACD,qBACC,QAAQ,MAAM,GACV,GAAG,MAAM,QAAQ;;EAE/B,MAAM,UACQ,kBAEP;AAED,UAAO,EAAE,SAAS,OAAO;YACjB;AACR,SAAM,IAAI,UAAU;;IAGxB;EACE,mBAAmB;EACnB,OAAO,EACL,sBAAsB,YAAsC;AAC1D,UAAO;KAEV;EACF,CACF"}
|
|
@@ -3,6 +3,7 @@ import defu from "defu";
|
|
|
3
3
|
import { createJiti } from "jiti";
|
|
4
4
|
import { writeError } from "@storm-software/config-tools/logger";
|
|
5
5
|
import { withRunExecutor } from "@storm-software/workspace-tools/base/base-executor";
|
|
6
|
+
import { replacePath } from "@stryke/path/replace";
|
|
6
7
|
|
|
7
8
|
//#region src/base/base-executor.ts
|
|
8
9
|
/**
|
|
@@ -36,9 +37,9 @@ function withExecutor(command, executorFn) {
|
|
|
36
37
|
command,
|
|
37
38
|
projectType: projectConfig.projectType,
|
|
38
39
|
output: {
|
|
39
|
-
path: options.outputPath,
|
|
40
|
+
path: options.outputPath ? replacePath(replacePath(options.outputPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
40
41
|
copy: {
|
|
41
|
-
path: options.copyPath,
|
|
42
|
+
path: options.copyPath ? replacePath(replacePath(options.copyPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
42
43
|
assets: options.assets
|
|
43
44
|
},
|
|
44
45
|
format: options.format,
|
|
@@ -70,4 +71,4 @@ ${error.stack}` : "Unknown error"}`);
|
|
|
70
71
|
|
|
71
72
|
//#endregion
|
|
72
73
|
export { withExecutor as t };
|
|
73
|
-
//# sourceMappingURL=base-executor-
|
|
74
|
+
//# sourceMappingURL=base-executor-Chnlp8E6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-executor-Chnlp8E6.mjs","names":[],"sources":["../../src/base/base-executor.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n InlineConfig,\n PowerlinesCommand,\n PowerlinesEngine\n} from \"powerlines\";\nimport { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: TCommand;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\n/**\n * A utility function to create a Powerlines executor that can be used with the `withRunExecutor` function.\n *\n * @remarks\n * This function is designed to simplify the creation of Powerlines executors by providing a consistent interface and error handling.\n *\n * @param command - The command that the executor will handle (e.g., \"new\", \"prepare\", \"build\", etc.).\n * @param executorFn - The function that will be executed when the command is run.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: TCommand,\n executorFn: (\n context: PowerlinesExecutorContext<TCommand, TExecutorSchema>,\n api: PowerlinesEngine\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined\n): PromiseExecutor<TExecutorSchema> {\n return withRunExecutor(\n `Powerlines ${command} command executor`,\n async (\n options: TExecutorSchema,\n context: ExecutorContext,\n workspaceConfig: StormWorkspaceConfig\n ): Promise<BaseExecutorResult | null | undefined> => {\n if (!context.projectName) {\n throw new Error(\n \"The executor requires `projectName` on the context object.\"\n );\n }\n\n if (\n !context.projectName ||\n !context.projectsConfigurations?.projects ||\n !context.projectsConfigurations.projects[context.projectName] ||\n !context.projectsConfigurations.projects[context.projectName]?.root\n ) {\n throw new Error(\n \"The executor requires `projectsConfigurations` on the context object.\"\n );\n }\n\n const projectConfig =\n context.projectsConfigurations.projects[context.projectName]!;\n\n const jiti = createJiti(context.root, { cache: false });\n const { createEngine } = await jiti.import<{\n createEngine: typeof import(\"powerlines\").createEngine;\n }>(jiti.esmResolve(\"powerlines\"));\n\n const api = await createEngine(\n defu(\n {\n cwd: workspaceConfig.workspaceRoot,\n root: projectConfig.root,\n configFile: options.configFile ?? options.config\n },\n options,\n {\n name: context.projectName\n }\n )\n );\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n inlineConfig: {\n command,\n projectType: projectConfig.projectType,\n output: {\n path: options.outputPath\n ? replacePath(\n replacePath(\n options.outputPath,\n workspaceConfig.workspaceRoot\n ),\n projectConfig.root\n )\n : undefined,\n copy: {\n path: options.copyPath\n ? replacePath(\n replacePath(\n options.copyPath,\n workspaceConfig.workspaceRoot\n ),\n projectConfig.root\n )\n : undefined,\n assets: options.assets\n },\n format: options.format,\n sourceMap: options.sourceMap\n },\n resolve: {\n external: options.external,\n noExternal: options.noExternal,\n skipNodeModulesBundle: options.skipNodeModulesBundle\n }\n } as InlineConfig,\n command\n },\n context\n ),\n api\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the Powerlines ${\n command\n } command executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n } finally {\n await api.finalize();\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,aAId,SACA,YAQkC;AAClC,QAAO,gBACL,cAAc,QAAQ,oBACtB,OACE,SACA,SACA,oBACmD;AACnD,MAAI,CAAC,QAAQ,YACX,OAAM,IAAI,MACR,6DACD;AAGH,MACE,CAAC,QAAQ,eACT,CAAC,QAAQ,wBAAwB,YACjC,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,gBACjD,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,cAAc,KAE/D,OAAM,IAAI,MACR,wEACD;EAGH,MAAM,gBACJ,QAAQ,uBAAuB,SAAS,QAAQ;EAElD,MAAM,OAAO,WAAW,QAAQ,MAAM,EAAE,OAAO,OAAO,CAAC;EACvD,MAAM,EAAE,iBAAiB,MAAM,KAAK,OAEjC,KAAK,WAAW,aAAa,CAAC;EAEjC,MAAM,MAAM,MAAM,aAChB,KACE;GACE,KAAK,gBAAgB;GACrB,MAAM,cAAc;GACpB,YAAY,QAAQ,cAAc,QAAQ;GAC3C,EACD,SACA,EACE,MAAM,QAAQ,aACf,CACF,CACF;AAED,MAAI;AACF,UAAO,MAAM,QAAQ,QACnB,WACE,KACE;IACE,aAAa,QAAQ;IACrB;IACA;IACA,cAAc;KACZ;KACA,aAAa,cAAc;KAC3B,QAAQ;MACN,MAAM,QAAQ,aACV,YACE,YACE,QAAQ,YACR,gBAAgB,cACjB,EACD,cAAc,KACf,GACD;MACJ,MAAM;OACJ,MAAM,QAAQ,WACV,YACE,YACE,QAAQ,UACR,gBAAgB,cACjB,EACD,cAAc,KACf,GACD;OACJ,QAAQ,QAAQ;OACjB;MACD,QAAQ,QAAQ;MAChB,WAAW,QAAQ;MACpB;KACD,SAAS;MACP,UAAU,QAAQ;MAClB,YAAY,QAAQ;MACpB,uBAAuB,QAAQ;MAChC;KACF;IACD;IACD,EACD,QACD,EACD,IACD,CACF;WACM,OAAO;AACd,cACE,oDACE,QACD,qBACC,QAAQ,MAAM,GACV,GAAG,MAAM,QAAQ;;EAE/B,MAAM,UACQ,kBAEP;AAED,UAAO,EAAE,SAAS,OAAO;YACjB;AACR,SAAM,IAAI,UAAU;;IAGxB;EACE,mBAAmB;EACnB,OAAO,EACL,sBAAsB,YAAsC;AAC1D,UAAO;KAEV;EACF,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor-LiCOQirA.d.mts","names":["BaseExecutorSchema","Array","Record","config","configFile","input","tsconfig","outputPath","copyPath","sourceMap","format","platform","external","noExternal","skipNodeModulesBundle","mode","logLevel","define","assets","output","glob","ignore","dot"],"sources":["../../src/base/base-executor.schema.d.ts","../../src/base/base-executor.ts"],"mappings":";;;;;;;;UAIiBA,kBAAAA;;AAAjB;;;;;;;;EAUCG,MAAAA;EA4Ic;;;;;;;;;EAjIdC,UAAAA;;;;;;;;;EAUAC,KAAAA,GAAQJ,KAAAA;;;;;;;;;;EAWRK,QAAAA;;
|
|
1
|
+
{"version":3,"file":"base-executor-LiCOQirA.d.mts","names":["BaseExecutorSchema","Array","Record","config","configFile","input","tsconfig","outputPath","copyPath","sourceMap","format","platform","external","noExternal","skipNodeModulesBundle","mode","logLevel","define","assets","output","glob","ignore","dot"],"sources":["../../src/base/base-executor.schema.d.ts","../../src/base/base-executor.ts"],"mappings":";;;;;;;;UAIiBA,kBAAAA;;AAAjB;;;;;;;;EAUCG,MAAAA;EA4Ic;;;;;;;;;EAjIdC,UAAAA;;;;;;;;;EAUAC,KAAAA,GAAQJ,KAAAA;;;;;;;;;;EAWRK,QAAAA;;ACZD;;;;;;;EDsBCC,UAAAA;;;;;;;;;EAUAC,QAAAA;;;;;;;EAQAC,SAAAA;;;;;;;;EASAC,MAAAA,GAAST,KAAAA;;;;;;;;;;EAWTU,QAAAA;;;;;;;EAQAC,QAAAA,GAAWX,KAAAA;;;;;;;EAQXY,UAAAA,GAAaZ,KAAAA;;;;;;;EAQba,qBAAAA;;;;;;;;;EAUAC,IAAAA;;;;;;;;;EAUAC,QAAAA;;;;;;;EAQAC,MAAAA,GAASf,MAAAA;;;;;;;EAQTgB,MAAAA,GAASjB,KAAAA;IAAQI,KAAAA;IAAgBc,MAAAA;IAAiBC,IAAAA;IAAcC,MAAAA;IAAmBC,GAAAA;EAAAA;AAAAA;;;KCxHxE,yBAAA,kBACO,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,IAC3C,eAAA;EACF,WAAA;EACA,OAAA,EAAS,QAAA;EACT,OAAA,EAAS,eAAA;EACT,YAAA,EAAc,YAAA;EACd,eAAA,EAAiB,oBAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor-iHU-fU0G.d.ts","names":["BaseExecutorSchema","Array","Record","config","configFile","input","tsconfig","outputPath","copyPath","sourceMap","format","platform","external","noExternal","skipNodeModulesBundle","mode","logLevel","define","assets","output","glob","ignore","dot"],"sources":["../../src/base/base-executor.schema.d.ts","../../src/base/base-executor.ts"],"mappings":";;;;;;;;UAIiBA,kBAAAA;;AAAjB;;;;;;;;EAUCG,MAAAA;EA4Ic;;;;;;;;;EAjIdC,UAAAA;;;;;;;;;EAUAC,KAAAA,GAAQJ,KAAAA;;;;;;;;;;EAWRK,QAAAA;;
|
|
1
|
+
{"version":3,"file":"base-executor-iHU-fU0G.d.ts","names":["BaseExecutorSchema","Array","Record","config","configFile","input","tsconfig","outputPath","copyPath","sourceMap","format","platform","external","noExternal","skipNodeModulesBundle","mode","logLevel","define","assets","output","glob","ignore","dot"],"sources":["../../src/base/base-executor.schema.d.ts","../../src/base/base-executor.ts"],"mappings":";;;;;;;;UAIiBA,kBAAAA;;AAAjB;;;;;;;;EAUCG,MAAAA;EA4Ic;;;;;;;;;EAjIdC,UAAAA;;;;;;;;;EAUAC,KAAAA,GAAQJ,KAAAA;;;;;;;;;;EAWRK,QAAAA;;ACZD;;;;;;;EDsBCC,UAAAA;;;;;;;;;EAUAC,QAAAA;;;;;;;EAQAC,SAAAA;;;;;;;;EASAC,MAAAA,GAAST,KAAAA;;;;;;;;;;EAWTU,QAAAA;;;;;;;EAQAC,QAAAA,GAAWX,KAAAA;;;;;;;EAQXY,UAAAA,GAAaZ,KAAAA;;;;;;;EAQba,qBAAAA;;;;;;;;;EAUAC,IAAAA;;;;;;;;;EAUAC,QAAAA;;;;;;;EAQAC,MAAAA,GAASf,MAAAA;;;;;;;EAQTgB,MAAAA,GAASjB,KAAAA;IAAQI,KAAAA;IAAgBc,MAAAA;IAAiBC,IAAAA;IAAcC,MAAAA;IAAmBC,GAAAA;EAAAA;AAAAA;;;KCxHxE,yBAAA,kBACO,iBAAA,GAAoB,iBAAA,0BACb,kBAAA,GAAqB,kBAAA,IAC3C,eAAA;EACF,WAAA;EACA,OAAA,EAAS,QAAA;EACT,OAAA,EAAS,eAAA;EACT,YAAA,EAAc,YAAA;EACd,eAAA,EAAiB,oBAAA;AAAA"}
|
|
@@ -5,6 +5,7 @@ defu = require_chunk.__toESM(defu);
|
|
|
5
5
|
let jiti = require("jiti");
|
|
6
6
|
let _storm_software_config_tools_logger = require("@storm-software/config-tools/logger");
|
|
7
7
|
let _storm_software_workspace_tools_base_base_executor = require("@storm-software/workspace-tools/base/base-executor");
|
|
8
|
+
let _stryke_path_replace = require("@stryke/path/replace");
|
|
8
9
|
|
|
9
10
|
//#region src/base/base-executor.ts
|
|
10
11
|
/**
|
|
@@ -38,9 +39,9 @@ function withExecutor(command, executorFn) {
|
|
|
38
39
|
command,
|
|
39
40
|
projectType: projectConfig.projectType,
|
|
40
41
|
output: {
|
|
41
|
-
path: options.outputPath,
|
|
42
|
+
path: options.outputPath ? (0, _stryke_path_replace.replacePath)((0, _stryke_path_replace.replacePath)(options.outputPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
42
43
|
copy: {
|
|
43
|
-
path: options.copyPath,
|
|
44
|
+
path: options.copyPath ? (0, _stryke_path_replace.replacePath)((0, _stryke_path_replace.replacePath)(options.copyPath, workspaceConfig.workspaceRoot), projectConfig.root) : void 0,
|
|
44
45
|
assets: options.assets
|
|
45
46
|
},
|
|
46
47
|
format: options.format,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
2
|
const require_chunk = require('../../chunk-BE-pF4vm.js');
|
|
3
|
-
const require_base_executor = require('../../base-executor-
|
|
3
|
+
const require_base_executor = require('../../base-executor-tBEl5AWE.js');
|
|
4
4
|
let defu = require("defu");
|
|
5
5
|
defu = require_chunk.__toESM(defu);
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
-
const require_base_executor = require('../../base-executor-
|
|
2
|
+
const require_base_executor = require('../../base-executor-tBEl5AWE.js');
|
|
3
3
|
|
|
4
4
|
//#region src/executors/clean/executor.ts
|
|
5
5
|
async function executorFn(context, api) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
-
const require_base_executor = require('../../base-executor-
|
|
2
|
+
const require_base_executor = require('../../base-executor-tBEl5AWE.js');
|
|
3
3
|
|
|
4
4
|
//#region src/executors/docs/executor.ts
|
|
5
5
|
async function executorFn(context, api) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
-
const require_base_executor = require('../../base-executor-
|
|
2
|
+
const require_base_executor = require('../../base-executor-tBEl5AWE.js');
|
|
3
3
|
|
|
4
4
|
//#region src/executors/lint/executor.ts
|
|
5
5
|
async function executorFn(context, api) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
2
|
const require_chunk = require('../../chunk-BE-pF4vm.js');
|
|
3
|
-
const require_base_executor = require('../../base-executor-
|
|
3
|
+
const require_base_executor = require('../../base-executor-tBEl5AWE.js');
|
|
4
4
|
let defu = require("defu");
|
|
5
5
|
defu = require_chunk.__toESM(defu);
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tree } from "@nx/devkit";
|
|
2
|
-
import { SyncGeneratorResult } from "nx/src/utils/sync-generators
|
|
2
|
+
import { SyncGeneratorResult } from "nx/src/utils/sync-generators";
|
|
3
3
|
|
|
4
4
|
//#region src/generators/sync/generator.d.ts
|
|
5
5
|
declare function generatorFn(tree: Tree): Promise<SyncGeneratorResult>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tree } from "@nx/devkit";
|
|
2
|
-
import { SyncGeneratorResult } from "nx/src/utils/sync-generators
|
|
2
|
+
import { SyncGeneratorResult } from "nx/src/utils/sync-generators";
|
|
3
3
|
|
|
4
4
|
//#region src/generators/sync/generator.d.ts
|
|
5
5
|
declare function generatorFn(tree: Tree): Promise<SyncGeneratorResult>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerlines/nx",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.25",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"description": "A Nx plugin to support Powerlines development in Nx monorepos.",
|
|
@@ -188,15 +188,15 @@
|
|
|
188
188
|
"jiti": "^2.6.1"
|
|
189
189
|
},
|
|
190
190
|
"devDependencies": {
|
|
191
|
-
"@nx/workspace": "22.
|
|
191
|
+
"@nx/workspace": "22.7.0",
|
|
192
192
|
"@storm-software/testing-tools": "^1.119.152",
|
|
193
193
|
"@storm-software/tsup": "^0.2.156",
|
|
194
194
|
"@storm-software/untyped": "^0.24.140",
|
|
195
195
|
"@types/node": "^25.6.0",
|
|
196
196
|
"eslint-flat-config-utils": "^2.1.4",
|
|
197
197
|
"jsonc-eslint-parser": "^2.4.2",
|
|
198
|
-
"nx": "22.
|
|
199
|
-
"powerlines": "^0.43.
|
|
198
|
+
"nx": "22.7.0",
|
|
199
|
+
"powerlines": "^0.43.10",
|
|
200
200
|
"untyped": "^1.5.2"
|
|
201
201
|
},
|
|
202
202
|
"peerDependencies": { "nx": ">=22.5.0", "powerlines": ">=0.42.31" },
|
|
@@ -207,5 +207,5 @@
|
|
|
207
207
|
"publishConfig": { "access": "public" },
|
|
208
208
|
"executors": "./executors.json",
|
|
209
209
|
"generators": "./generators.json",
|
|
210
|
-
"gitHead": "
|
|
210
|
+
"gitHead": "713163d802aa1d7c282a417119df058b4f151781"
|
|
211
211
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor-B7KLoiV1.mjs","names":[],"sources":["../../src/base/base-executor.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n InlineConfig,\n PowerlinesCommand,\n PowerlinesEngine\n} from \"powerlines\";\nimport { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: TCommand;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\n/**\n * A utility function to create a Powerlines executor that can be used with the `withRunExecutor` function.\n *\n * @remarks\n * This function is designed to simplify the creation of Powerlines executors by providing a consistent interface and error handling.\n *\n * @param command - The command that the executor will handle (e.g., \"new\", \"prepare\", \"build\", etc.).\n * @param executorFn - The function that will be executed when the command is run.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TCommand extends PowerlinesCommand = PowerlinesCommand,\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: TCommand,\n executorFn: (\n context: PowerlinesExecutorContext<TCommand, TExecutorSchema>,\n api: PowerlinesEngine\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined\n): PromiseExecutor<TExecutorSchema> {\n return withRunExecutor(\n `Powerlines ${command} command executor`,\n async (\n options: TExecutorSchema,\n context: ExecutorContext,\n workspaceConfig: StormWorkspaceConfig\n ): Promise<BaseExecutorResult | null | undefined> => {\n if (!context.projectName) {\n throw new Error(\n \"The executor requires `projectName` on the context object.\"\n );\n }\n\n if (\n !context.projectName ||\n !context.projectsConfigurations?.projects ||\n !context.projectsConfigurations.projects[context.projectName] ||\n !context.projectsConfigurations.projects[context.projectName]?.root\n ) {\n throw new Error(\n \"The executor requires `projectsConfigurations` on the context object.\"\n );\n }\n\n const projectConfig =\n context.projectsConfigurations.projects[context.projectName]!;\n\n const jiti = createJiti(context.root, { cache: false });\n const { createEngine } = await jiti.import<{\n createEngine: typeof import(\"powerlines\").createEngine;\n }>(jiti.esmResolve(\"powerlines\"));\n\n const api = await createEngine(\n defu(\n {\n cwd: workspaceConfig.workspaceRoot,\n root: projectConfig.root,\n configFile: options.configFile ?? options.config\n },\n options,\n {\n name: context.projectName\n }\n )\n );\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n inlineConfig: {\n command,\n projectType: projectConfig.projectType,\n output: {\n path: options.outputPath,\n copy: { path: options.copyPath, assets: options.assets },\n format: options.format,\n sourceMap: options.sourceMap\n },\n resolve: {\n external: options.external,\n noExternal: options.noExternal,\n skipNodeModulesBundle: options.skipNodeModulesBundle\n }\n } as InlineConfig,\n command\n },\n context\n ),\n api\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the Powerlines ${\n command\n } command executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n } finally {\n await api.finalize();\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsDA,SAAgB,aAId,SACA,YAQkC;AAClC,QAAO,gBACL,cAAc,QAAQ,oBACtB,OACE,SACA,SACA,oBACmD;AACnD,MAAI,CAAC,QAAQ,YACX,OAAM,IAAI,MACR,6DACD;AAGH,MACE,CAAC,QAAQ,eACT,CAAC,QAAQ,wBAAwB,YACjC,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,gBACjD,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,cAAc,KAE/D,OAAM,IAAI,MACR,wEACD;EAGH,MAAM,gBACJ,QAAQ,uBAAuB,SAAS,QAAQ;EAElD,MAAM,OAAO,WAAW,QAAQ,MAAM,EAAE,OAAO,OAAO,CAAC;EACvD,MAAM,EAAE,iBAAiB,MAAM,KAAK,OAEjC,KAAK,WAAW,aAAa,CAAC;EAEjC,MAAM,MAAM,MAAM,aAChB,KACE;GACE,KAAK,gBAAgB;GACrB,MAAM,cAAc;GACpB,YAAY,QAAQ,cAAc,QAAQ;GAC3C,EACD,SACA,EACE,MAAM,QAAQ,aACf,CACF,CACF;AAED,MAAI;AACF,UAAO,MAAM,QAAQ,QACnB,WACE,KACE;IACE,aAAa,QAAQ;IACrB;IACA;IACA,cAAc;KACZ;KACA,aAAa,cAAc;KAC3B,QAAQ;MACN,MAAM,QAAQ;MACd,MAAM;OAAE,MAAM,QAAQ;OAAU,QAAQ,QAAQ;OAAQ;MACxD,QAAQ,QAAQ;MAChB,WAAW,QAAQ;MACpB;KACD,SAAS;MACP,UAAU,QAAQ;MAClB,YAAY,QAAQ;MACpB,uBAAuB,QAAQ;MAChC;KACF;IACD;IACD,EACD,QACD,EACD,IACD,CACF;WACM,OAAO;AACd,cACE,oDACE,QACD,qBACC,QAAQ,MAAM,GACV,GAAG,MAAM,QAAQ;;EAE/B,MAAM,UACQ,kBAEP;AAED,UAAO,EAAE,SAAS,OAAO;YACjB;AACR,SAAM,IAAI,UAAU;;IAGxB;EACE,mBAAmB;EACnB,OAAO,EACL,sBAAsB,YAAsC;AAC1D,UAAO;KAEV;EACF,CACF"}
|