@powerlines/nx 0.13.170 → 0.13.171

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.
@@ -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 type { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport type { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport type { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport type { DeepPartial } from \"@stryke/types/base\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n ExecutionApiParams,\n ExecutionOptions,\n FrameworkOptions,\n InlineConfig,\n Mode,\n OutputConfig\n} from \"powerlines\";\nimport { formatExecutionId, getName } from \"powerlines/plugin-utils\";\nimport type { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: string;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\nexport type PowerlinesExecutorApi = (\n inlineConfig: InlineConfig\n) => Promise<void>;\n\nexport interface WithExecutorOptions {\n /**\n * The import path for the executor API module, which is used to dynamically import the API function that will be called during execution. This value should be a string representing the module path, and it defaults to \"powerlines/api\" if not provided. The specified module should export a default function that matches the expected signature for the executor API, which will be invoked with the execution parameters when the executor is run.\n *\n * @defaultValue \"powerlines/api\"\n */\n importPath?: string;\n\n /**\n * Default options to be merged with the execution options, which can be used to provide default values for certain execution parameters or to override specific options for all executions of the executor. This value should be an object that matches the shape of the `ExecutionOptions` type, and it will be merged with the options provided during execution to create the final set of options that will be passed to the executor API function.\n *\n * @remarks\n * This can be useful for setting default values for options that are commonly used across multiple executions, or for providing a consistent set of options for all executions of the executor without requiring the caller to specify them each time.\n */\n defaultOptions?: DeepPartial<ExecutionOptions>;\n\n /**\n * Details about the framework being used in the current execution, which can be used by plugins and other parts of the system to customize behavior based on the framework.\n *\n * @remarks\n * This should only be used by framework plugins to ensure the correct framework name is applied\n *\n * @defaultValue\n * ```ts\n * {\n * name: \"powerlines\",\n * orgId: \"storm-software\"\n * }\n * ```\n */\n framework?: FrameworkOptions;\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 * @param options - Additional options for configuring the executor, such as the import path for the API module and default execution options.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: string,\n executorFn: (\n context: PowerlinesExecutorContext<TExecutorSchema>,\n api: PowerlinesExecutorApi\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined,\n options: WithExecutorOptions = {}\n): PromiseExecutor<TExecutorSchema> {\n const {\n importPath = \"powerlines/api\",\n defaultOptions = {},\n framework = {} as FrameworkOptions\n } = options;\n\n framework.name ??= \"powerlines\";\n framework.orgId ??= \"storm-software\";\n\n return withRunExecutor(\n `${titleCase(framework.name)} - ${titleCase(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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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, {\n cache: false,\n tsconfigPaths: true\n });\n const api = await jiti\n .import<{\n default: (params: ExecutionApiParams) => Promise<void>;\n }>(jiti.esmResolve(importPath))\n .then(mod => mod.default);\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n command,\n inlineConfig: defu(\n {\n command,\n root: projectConfig.root,\n configFile: options.configFile || options.config,\n configIndex: options.configIndex,\n projectType: projectConfig.projectType,\n mode: options.mode as Mode,\n output: {\n path: options.outputPath,\n copy:\n options.copyPath === false\n ? false\n : {\n path: options.copyPath,\n assets: options.assets\n },\n minify: options.minify,\n sourceMap: options.sourceMap\n } as OutputConfig,\n resolve:\n isSetArray(options.external) ||\n isSetArray(options.noExternal) ||\n isSet(options.skipNodeModulesBundle)\n ? {\n external: isSetArray(options.external)\n ? options.external\n : undefined,\n noExternal: isSetArray(options.noExternal)\n ? options.noExternal\n : undefined,\n skipNodeModulesBundle: isSet(\n options.skipNodeModulesBundle\n )\n ? options.skipNodeModulesBundle\n : undefined\n }\n : undefined,\n define: isSetObject(options.define)\n ? options.define\n : undefined,\n assets: isSetObject(options.assets)\n ? options.assets\n : undefined\n },\n omit(options, [\n \"config\",\n \"configFile\",\n \"outputPath\",\n \"copyPath\",\n \"sourceMap\",\n \"minify\",\n \"format\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"mode\",\n \"define\",\n \"assets\"\n ])\n ) as InlineConfig\n },\n context\n ),\n async (inlineConfig: InlineConfig) => {\n const name =\n inlineConfig.name ||\n context.projectName ||\n (await getName(context.root, projectConfig.root));\n\n return api({\n options: defu(defaultOptions, {\n name,\n executionId: formatExecutionId(\n name,\n command,\n options.configIndex ?? 0\n ),\n cwd: context.root,\n root: projectConfig.root,\n configFile:\n options.configFile ||\n options.config ||\n joinPaths(\n projectConfig.root,\n `${kebabCase(framework.name)}.config.ts`\n ),\n configIndex: options.configIndex,\n framework\n }) as ExecutionOptions,\n command,\n inlineConfig\n });\n }\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the ${titleCase(\n framework.name\n )} - ${titleCase(command)} executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n options.copyPath ??= \"dist/{projectRoot}\";\n\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":"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"}
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 type { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport type { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport type { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport type { DeepPartial } from \"@stryke/types/base\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n ExecutionApiParams,\n ExecutionOptions,\n FrameworkOptions,\n InlineConfig,\n Mode,\n OutputConfig\n} from \"powerlines\";\nimport { formatExecutionId, getName } from \"powerlines/plugin-utils\";\nimport type { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: string;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\nexport type PowerlinesExecutorApi = (\n inlineConfig: InlineConfig\n) => Promise<void>;\n\nexport interface WithExecutorOptions {\n /**\n * The import path for the executor API module, which is used to dynamically import the API function that will be called during execution. This value should be a string representing the module path, and it defaults to \"powerlines/api\" if not provided. The specified module should export a default function that matches the expected signature for the executor API, which will be invoked with the execution parameters when the executor is run.\n *\n * @defaultValue \"powerlines/api\"\n */\n importPath?: string;\n\n /**\n * Default options to be merged with the execution options, which can be used to provide default values for certain execution parameters or to override specific options for all executions of the executor. This value should be an object that matches the shape of the `ExecutionOptions` type, and it will be merged with the options provided during execution to create the final set of options that will be passed to the executor API function.\n *\n * @remarks\n * This can be useful for setting default values for options that are commonly used across multiple executions, or for providing a consistent set of options for all executions of the executor without requiring the caller to specify them each time.\n */\n defaultOptions?: DeepPartial<ExecutionOptions>;\n\n /**\n * Details about the framework being used in the current execution, which can be used by plugins and other parts of the system to customize behavior based on the framework.\n *\n * @remarks\n * This should only be used by framework plugins to ensure the correct framework name is applied\n *\n * @defaultValue\n * ```ts\n * {\n * name: \"powerlines\",\n * orgId: \"storm-software\"\n * }\n * ```\n */\n framework?: FrameworkOptions;\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 * @param options - Additional options for configuring the executor, such as the import path for the API module and default execution options.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: string,\n executorFn: (\n context: PowerlinesExecutorContext<TExecutorSchema>,\n api: PowerlinesExecutorApi\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined,\n options: WithExecutorOptions = {}\n): PromiseExecutor<TExecutorSchema> {\n const {\n importPath = \"powerlines/api\",\n defaultOptions = {},\n framework = {} as FrameworkOptions\n } = options;\n\n framework.name ??= \"powerlines\";\n framework.orgId ??= \"storm-software\";\n\n return withRunExecutor(\n `${titleCase(framework.name)} - ${titleCase(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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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, {\n cache: false,\n tsconfigPaths: true\n });\n const api = await jiti\n .import<{\n default: (params: ExecutionApiParams) => Promise<void>;\n }>(jiti.esmResolve(importPath))\n .then(mod => mod.default);\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n command,\n inlineConfig: defu(\n {\n command,\n root: projectConfig.root,\n configFile: options.configFile || options.config,\n configIndex: options.configIndex,\n projectType: projectConfig.projectType,\n mode: options.mode as Mode,\n output: {\n path: options.outputPath,\n copy:\n options.copyPath === false\n ? false\n : {\n path: options.copyPath,\n assets: options.assets\n },\n minify: options.minify,\n sourceMap: options.sourceMap\n } as OutputConfig,\n resolve:\n isSetArray(options.external) ||\n isSetArray(options.noExternal) ||\n isSet(options.skipNodeModulesBundle)\n ? {\n external: isSetArray(options.external)\n ? options.external\n : undefined,\n noExternal: isSetArray(options.noExternal)\n ? options.noExternal\n : undefined,\n skipNodeModulesBundle: isSet(\n options.skipNodeModulesBundle\n )\n ? options.skipNodeModulesBundle\n : undefined\n }\n : undefined,\n define: isSetObject(options.define)\n ? options.define\n : undefined,\n assets: isSetObject(options.assets)\n ? options.assets\n : undefined\n },\n omit(options, [\n \"config\",\n \"configFile\",\n \"outputPath\",\n \"copyPath\",\n \"sourceMap\",\n \"minify\",\n \"format\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"mode\",\n \"define\",\n \"assets\"\n ])\n ) as InlineConfig\n },\n context\n ),\n async (inlineConfig: InlineConfig) => {\n const name =\n inlineConfig.name ||\n context.projectName ||\n (await getName(context.root, projectConfig.root));\n\n return api({\n options: defu(defaultOptions, {\n name,\n executionId: formatExecutionId(\n name,\n command,\n options.configIndex ?? 0\n ),\n cwd: context.root,\n root: projectConfig.root,\n configFile:\n options.configFile ||\n options.config ||\n joinPaths(\n projectConfig.root,\n `${kebabCase(framework.name)}.config.ts`\n ),\n configIndex: options.configIndex,\n framework\n }) as ExecutionOptions,\n command,\n inlineConfig\n });\n }\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the ${titleCase(\n framework.name\n )} - ${titleCase(command)} executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n options.copyPath ??= \"dist/{projectRoot}\";\n\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-executor.untyped.mjs","names":[],"sources":["../../../src/base/base-executor.untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"BaseExecutorSchema\",\n title: \"Base Executor\",\n description:\n \"A shared/base schema type definition for Powerlines executors\",\n required: []\n },\n config: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `configFile`.\"\n }\n },\n configFile: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `config`.\"\n }\n },\n configIndex: {\n $schema: {\n title: \"Powerlines Configuration Index\",\n type: \"number\",\n description:\n \"The index in the Powerlines configuration file to use (if an array of configurations are provided).\"\n },\n $default: 0\n },\n input: {\n $schema: {\n title: \"Input Entry File(s)\",\n format: \"path\",\n type: \"array\",\n description: \"The entry file(s) that serve as the input for the project\",\n items: { type: \"string\" }\n }\n },\n tsconfig: {\n $schema: {\n title: \"TSConfig Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the tsconfig file\"\n }\n },\n outputPath: {\n $schema: {\n title: \"Output Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the output directory for the build artifacts\"\n }\n },\n copyPath: {\n $schema: {\n title: \"Copy Path\",\n description: \"A directory path to copy the build artifacts into\",\n oneOf: [\n { type: \"string\", format: \"path\" },\n { type: \"boolean\", enum: [false] }\n ]\n }\n },\n sourceMap: {\n $schema: {\n title: \"Sourcemap\",\n type: \"boolean\",\n description: \"Generate a sourcemap\"\n }\n },\n minify: {\n $schema: {\n title: \"Minify\",\n type: \"boolean\",\n description: \"Minify the output\"\n }\n },\n format: {\n $schema: {\n title: \"Format\",\n type: \"array\",\n description: \"The format to build\",\n items: {\n type: \"string\",\n enum: [\"cjs\", \"esm\", \"iife\"]\n }\n },\n $resolve: (val: string[] = [\"cjs\", \"esm\"]) =>\n val.filter(format => [\"cjs\", \"esm\", \"iife\"].includes(format))\n },\n platform: {\n $schema: {\n title: \"Platform\",\n type: \"string\",\n description: \"The platform to build\",\n enum: [\"neutral\", \"node\", \"browser\"]\n }\n },\n external: {\n $schema: {\n title: \"External\",\n type: \"array\",\n description: \"The external dependencies\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n noExternal: {\n $schema: {\n title: \"No External\",\n type: \"array\",\n description: \"The dependencies that should not be treated as external\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n skipNodeModulesBundle: {\n $schema: {\n title: \"Skip Node Modules Bundle\",\n type: \"boolean\",\n description:\n \"Skip bundling node_modules during the build process (if required)\"\n }\n },\n mode: {\n $schema: {\n title: \"Mode\",\n type: \"string\",\n description: \"The build mode\",\n enum: [\"development\", \"test\", \"production\"]\n }\n },\n logLevel: {\n $schema: {\n title: \"Log Level\",\n type: \"string\",\n description: \"The log level to use for the build process\",\n enum: [\n \"fatal\",\n \"error\",\n \"warn\",\n \"success\",\n \"info\",\n \"debug\",\n \"trace\",\n \"silent\"\n ]\n }\n },\n define: {\n $schema: {\n title: \"Define\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description: \"The `define` values\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n },\n assets: {\n $schema: {\n title: \"Assets\",\n type: \"any\",\n tsType:\n \"Array<{ input?: string; output?: string; glob: string; ignore?: string[]; dot?: boolean; }>\",\n description: \"The `assets` values\"\n }\n },\n additionalArgs: {\n $schema: {\n title: \"Additional Arguments\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description:\n \"The additional arguments provided during execution of the command\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n }\n});\n"],"mappings":";;;AAoBA,oCAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,aAAa;EACX,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,QAAQ;EACR,MAAM;EACN,aAAa;EACb,OAAO,EAAE,MAAM,SAAS;CAC1B,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CACL;GAAE,MAAM;GAAU,QAAQ;EAAO,GACjC;GAAE,MAAM;GAAW,MAAM,CAAC,KAAK;EAAE,CACnC;CACF,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO;IACL,MAAM;IACN,MAAM;KAAC;KAAO;KAAO;IAAM;GAC7B;EACF;EACA,WAAW,MAAgB,CAAC,OAAO,KAAK,MACtC,IAAI,QAAO,WAAU;GAAC;GAAO;GAAO;EAAM,CAAC,CAAC,SAAS,MAAM,CAAC;CAChE;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAW;GAAQ;EAAS;CACrC,EACF;CACA,UAAU;EACR,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,YAAY;EACV,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,uBAAuB,EACrB,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;CACA,MAAM,EACJ,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAe;GAAQ;EAAY;CAC5C,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aAAa;EACf;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QACE;EACF,aAAa;CACf,EACF;CACA,gBAAgB;EACd,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aACE;EACJ;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;AACF,CAAC"}
1
+ {"version":3,"file":"base-executor.untyped.mjs","names":[],"sources":["../../../src/base/base-executor.untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"BaseExecutorSchema\",\n title: \"Base Executor\",\n description:\n \"A shared/base schema type definition for Powerlines executors\",\n required: []\n },\n config: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `configFile`.\"\n }\n },\n configFile: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `config`.\"\n }\n },\n configIndex: {\n $schema: {\n title: \"Powerlines Configuration Index\",\n type: \"number\",\n description:\n \"The index in the Powerlines configuration file to use (if an array of configurations are provided).\"\n },\n $default: 0\n },\n input: {\n $schema: {\n title: \"Input Entry File(s)\",\n format: \"path\",\n type: \"array\",\n description: \"The entry file(s) that serve as the input for the project\",\n items: { type: \"string\" }\n }\n },\n tsconfig: {\n $schema: {\n title: \"TSConfig Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the tsconfig file\"\n }\n },\n outputPath: {\n $schema: {\n title: \"Output Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the output directory for the build artifacts\"\n }\n },\n copyPath: {\n $schema: {\n title: \"Copy Path\",\n description: \"A directory path to copy the build artifacts into\",\n oneOf: [\n { type: \"string\", format: \"path\" },\n { type: \"boolean\", enum: [false] }\n ]\n }\n },\n sourceMap: {\n $schema: {\n title: \"Sourcemap\",\n type: \"boolean\",\n description: \"Generate a sourcemap\"\n }\n },\n minify: {\n $schema: {\n title: \"Minify\",\n type: \"boolean\",\n description: \"Minify the output\"\n }\n },\n format: {\n $schema: {\n title: \"Format\",\n type: \"array\",\n description: \"The format to build\",\n items: {\n type: \"string\",\n enum: [\"cjs\", \"esm\", \"iife\"]\n }\n },\n $resolve: (val: string[] = [\"cjs\", \"esm\"]) =>\n val.filter(format => [\"cjs\", \"esm\", \"iife\"].includes(format))\n },\n platform: {\n $schema: {\n title: \"Platform\",\n type: \"string\",\n description: \"The platform to build\",\n enum: [\"neutral\", \"node\", \"browser\"]\n }\n },\n external: {\n $schema: {\n title: \"External\",\n type: \"array\",\n description: \"The external dependencies\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n noExternal: {\n $schema: {\n title: \"No External\",\n type: \"array\",\n description: \"The dependencies that should not be treated as external\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n skipNodeModulesBundle: {\n $schema: {\n title: \"Skip Node Modules Bundle\",\n type: \"boolean\",\n description:\n \"Skip bundling node_modules during the build process (if required)\"\n }\n },\n mode: {\n $schema: {\n title: \"Mode\",\n type: \"string\",\n description: \"The build mode\",\n enum: [\"development\", \"test\", \"production\"]\n }\n },\n logLevel: {\n $schema: {\n title: \"Log Level\",\n type: \"string\",\n description: \"The log level to use for the build process\",\n enum: [\n \"fatal\",\n \"error\",\n \"warn\",\n \"success\",\n \"info\",\n \"debug\",\n \"trace\",\n \"silent\"\n ]\n }\n },\n define: {\n $schema: {\n title: \"Define\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description: \"The `define` values\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n },\n assets: {\n $schema: {\n title: \"Assets\",\n type: \"any\",\n tsType:\n \"Array<{ input?: string; output?: string; glob: string; ignore?: string[]; dot?: boolean; }>\",\n description: \"The `assets` values\"\n }\n },\n additionalArgs: {\n $schema: {\n title: \"Additional Arguments\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description:\n \"The additional arguments provided during execution of the command\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n }\n});\n"],"mappings":";;;AAoBA,oCAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,aAAa;EACX,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,QAAQ;EACR,MAAM;EACN,aAAa;EACb,OAAO,EAAE,MAAM,SAAS;CAC1B,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CACL;GAAE,MAAM;GAAU,QAAQ;EAAO,GACjC;GAAE,MAAM;GAAW,MAAM,CAAC,KAAK;EAAE,CACnC;CACF,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO;IACL,MAAM;IACN,MAAM;KAAC;KAAO;KAAO;IAAM;GAC7B;EACF;EACA,WAAW,MAAgB,CAAC,OAAO,KAAK,MACtC,IAAI,QAAO,WAAU;GAAC;GAAO;GAAO;EAAM,CAAC,CAAC,SAAS,MAAM,CAAC;CAChE;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAW;GAAQ;EAAS;CACrC,EACF;CACA,UAAU;EACR,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,YAAY;EACV,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,uBAAuB,EACrB,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;CACA,MAAM,EACJ,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAe;GAAQ;EAAY;CAC5C,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aAAa;EACf;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QACE;EACF,aAAa;CACf,EACF;CACA,gBAAgB;EACd,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aACE;EACJ;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-executor-BZOeOotB.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 type { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport type { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport type { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport type { DeepPartial } from \"@stryke/types/base\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n ExecutionApiParams,\n ExecutionOptions,\n FrameworkOptions,\n InlineConfig,\n Mode,\n OutputConfig\n} from \"powerlines\";\nimport { formatExecutionId, getName } from \"powerlines/plugin-utils\";\nimport type { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: string;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\nexport type PowerlinesExecutorApi = (\n inlineConfig: InlineConfig\n) => Promise<void>;\n\nexport interface WithExecutorOptions {\n /**\n * The import path for the executor API module, which is used to dynamically import the API function that will be called during execution. This value should be a string representing the module path, and it defaults to \"powerlines/api\" if not provided. The specified module should export a default function that matches the expected signature for the executor API, which will be invoked with the execution parameters when the executor is run.\n *\n * @defaultValue \"powerlines/api\"\n */\n importPath?: string;\n\n /**\n * Default options to be merged with the execution options, which can be used to provide default values for certain execution parameters or to override specific options for all executions of the executor. This value should be an object that matches the shape of the `ExecutionOptions` type, and it will be merged with the options provided during execution to create the final set of options that will be passed to the executor API function.\n *\n * @remarks\n * This can be useful for setting default values for options that are commonly used across multiple executions, or for providing a consistent set of options for all executions of the executor without requiring the caller to specify them each time.\n */\n defaultOptions?: DeepPartial<ExecutionOptions>;\n\n /**\n * Details about the framework being used in the current execution, which can be used by plugins and other parts of the system to customize behavior based on the framework.\n *\n * @remarks\n * This should only be used by framework plugins to ensure the correct framework name is applied\n *\n * @defaultValue\n * ```ts\n * {\n * name: \"powerlines\",\n * orgId: \"storm-software\"\n * }\n * ```\n */\n framework?: FrameworkOptions;\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 * @param options - Additional options for configuring the executor, such as the import path for the API module and default execution options.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: string,\n executorFn: (\n context: PowerlinesExecutorContext<TExecutorSchema>,\n api: PowerlinesExecutorApi\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined,\n options: WithExecutorOptions = {}\n): PromiseExecutor<TExecutorSchema> {\n const {\n importPath = \"powerlines/api\",\n defaultOptions = {},\n framework = {} as FrameworkOptions\n } = options;\n\n framework.name ??= \"powerlines\";\n framework.orgId ??= \"storm-software\";\n\n return withRunExecutor(\n `${titleCase(framework.name)} - ${titleCase(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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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, {\n cache: false,\n tsconfigPaths: true\n });\n const api = await jiti\n .import<{\n default: (params: ExecutionApiParams) => Promise<void>;\n }>(jiti.esmResolve(importPath))\n .then(mod => mod.default);\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n command,\n inlineConfig: defu(\n {\n command,\n root: projectConfig.root,\n configFile: options.configFile || options.config,\n configIndex: options.configIndex,\n projectType: projectConfig.projectType,\n mode: options.mode as Mode,\n output: {\n path: options.outputPath,\n copy:\n options.copyPath === false\n ? false\n : {\n path: options.copyPath,\n assets: options.assets\n },\n minify: options.minify,\n sourceMap: options.sourceMap\n } as OutputConfig,\n resolve:\n isSetArray(options.external) ||\n isSetArray(options.noExternal) ||\n isSet(options.skipNodeModulesBundle)\n ? {\n external: isSetArray(options.external)\n ? options.external\n : undefined,\n noExternal: isSetArray(options.noExternal)\n ? options.noExternal\n : undefined,\n skipNodeModulesBundle: isSet(\n options.skipNodeModulesBundle\n )\n ? options.skipNodeModulesBundle\n : undefined\n }\n : undefined,\n define: isSetObject(options.define)\n ? options.define\n : undefined,\n assets: isSetObject(options.assets)\n ? options.assets\n : undefined\n },\n omit(options, [\n \"config\",\n \"configFile\",\n \"outputPath\",\n \"copyPath\",\n \"sourceMap\",\n \"minify\",\n \"format\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"mode\",\n \"define\",\n \"assets\"\n ])\n ) as InlineConfig\n },\n context\n ),\n async (inlineConfig: InlineConfig) => {\n const name =\n inlineConfig.name ||\n context.projectName ||\n (await getName(context.root, projectConfig.root));\n\n return api({\n options: defu(defaultOptions, {\n name,\n executionId: formatExecutionId(\n name,\n command,\n options.configIndex ?? 0\n ),\n cwd: context.root,\n root: projectConfig.root,\n configFile:\n options.configFile ||\n options.config ||\n joinPaths(\n projectConfig.root,\n `${kebabCase(framework.name)}.config.ts`\n ),\n configIndex: options.configIndex,\n framework\n }) as ExecutionOptions,\n command,\n inlineConfig\n });\n }\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the ${titleCase(\n framework.name\n )} - ${titleCase(command)} executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n options.copyPath ??= \"dist/{projectRoot}\";\n\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA,SAAgB,aAGd,SACA,YAQA,UAA+B,CAAC,GACE;CAClC,MAAM,EACJ,aAAa,kBACb,iBAAiB,CAAC,GAClB,YAAY,CAAC,MACX;CAEJ,UAAU,SAAS;CACnB,UAAU,UAAU;CAEpB,OAAO,gBACL,GAAG,UAAU,UAAU,IAAI,EAAE,KAAK,UAAU,OAAO,EAAE,YACrD,OACE,SACA,SACA,oBACmD;EACnD,IAAI,CAAC,QAAQ,aACX,MAAM,IAAI,MACR,OAAO,UAAU,UAAU,IAAI,EAAE,KAAK,UACpC,OACF,EAAE,0DACJ;EAGF,IACE,CAAC,QAAQ,eACT,CAAC,QAAQ,wBAAwB,YACjC,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,gBACjD,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,YAAY,EAAE,MAE/D,MAAM,IAAI,MACR,OAAO,UAAU,UAAU,IAAI,EAAE,KAAK,UACpC,OACF,EAAE,qEACJ;EAGF,MAAM,gBACJ,QAAQ,uBAAuB,SAAS,QAAQ;EAElD,MAAM,OAAO,WAAW,QAAQ,MAAM;GACpC,OAAO;GACP,eAAe;EACjB,CAAC;EACD,MAAM,MAAM,MAAM,KACf,OAEE,KAAK,WAAW,UAAU,CAAC,CAAC,CAC9B,MAAK,QAAO,IAAI,OAAO;EAE1B,IAAI;GACF,OAAO,MAAM,QAAQ,QACnB,WACE,KACE;IACE,aAAa,QAAQ;IACrB;IACA;IACA;IACA,cAAc,KACZ;KACE;KACA,MAAM,cAAc;KACpB,YAAY,QAAQ,cAAc,QAAQ;KAC1C,aAAa,QAAQ;KACrB,aAAa,cAAc;KAC3B,MAAM,QAAQ;KACd,QAAQ;MACN,MAAM,QAAQ;MACd,MACE,QAAQ,aAAa,QACjB,QACA;OACE,MAAM,QAAQ;OACd,QAAQ,QAAQ;MAClB;MACN,QAAQ,QAAQ;MAChB,WAAW,QAAQ;KACrB;KACA,SACE,WAAW,QAAQ,QAAQ,KAC3B,WAAW,QAAQ,UAAU,KAC7B,MAAM,QAAQ,qBAAqB,IAC/B;MACE,UAAU,WAAW,QAAQ,QAAQ,IACjC,QAAQ,WACR;MACJ,YAAY,WAAW,QAAQ,UAAU,IACrC,QAAQ,aACR;MACJ,uBAAuB,MACrB,QAAQ,qBACV,IACI,QAAQ,wBACR;KACN,IACA;KACN,QAAQ,YAAY,QAAQ,MAAM,IAC9B,QAAQ,SACR;KACJ,QAAQ,YAAY,QAAQ,MAAM,IAC9B,QAAQ,SACR;IACN,GACA,KAAK,SAAS;KACZ;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF,CAAC,CACH;GACF,GACA,OACF,GACA,OAAO,iBAA+B;IACpC,MAAM,OACJ,aAAa,QACb,QAAQ,eACP,MAAM,QAAQ,QAAQ,MAAM,cAAc,IAAI;IAEjD,OAAO,IAAI;KACT,SAAS,KAAK,gBAAgB;MAC5B;MACA,aAAa,kBACX,MACA,SACA,QAAQ,eAAe,CACzB;MACA,KAAK,QAAQ;MACb,MAAM,cAAc;MACpB,YACE,QAAQ,cACR,QAAQ,UACR,UACE,cAAc,MACd,GAAG,UAAU,UAAU,IAAI,EAAE,WAC/B;MACF,aAAa,QAAQ;MACrB;KACF,CAAC;KACD;KACA;IACF,CAAC;GACH,CACF,CACF;EACF,SAAS,OAAO;GACd,WACE,yCAAyC,UACvC,UAAU,IACZ,EAAE,KAAK,UAAU,OAAO,EAAE,aACxB,QAAQ,KAAK,IACT,GAAG,MAAM,QAAQ;;EAE/B,MAAM,UACQ,iBAER;GAEA,OAAO,EAAE,SAAS,MAAM;EAC1B;CACF,GACA;EACE,mBAAmB;EACnB,OAAO,EACL,sBAAsB,YAAsC;GAC1D,QAAQ,aAAa;GAErB,OAAO;EACT,EACF;CACF,CACF;AACF"}
1
+ {"version":3,"file":"base-executor-BZOeOotB.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 type { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport type { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport type { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport type { DeepPartial } from \"@stryke/types/base\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n ExecutionApiParams,\n ExecutionOptions,\n FrameworkOptions,\n InlineConfig,\n Mode,\n OutputConfig\n} from \"powerlines\";\nimport { formatExecutionId, getName } from \"powerlines/plugin-utils\";\nimport type { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: string;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\nexport type PowerlinesExecutorApi = (\n inlineConfig: InlineConfig\n) => Promise<void>;\n\nexport interface WithExecutorOptions {\n /**\n * The import path for the executor API module, which is used to dynamically import the API function that will be called during execution. This value should be a string representing the module path, and it defaults to \"powerlines/api\" if not provided. The specified module should export a default function that matches the expected signature for the executor API, which will be invoked with the execution parameters when the executor is run.\n *\n * @defaultValue \"powerlines/api\"\n */\n importPath?: string;\n\n /**\n * Default options to be merged with the execution options, which can be used to provide default values for certain execution parameters or to override specific options for all executions of the executor. This value should be an object that matches the shape of the `ExecutionOptions` type, and it will be merged with the options provided during execution to create the final set of options that will be passed to the executor API function.\n *\n * @remarks\n * This can be useful for setting default values for options that are commonly used across multiple executions, or for providing a consistent set of options for all executions of the executor without requiring the caller to specify them each time.\n */\n defaultOptions?: DeepPartial<ExecutionOptions>;\n\n /**\n * Details about the framework being used in the current execution, which can be used by plugins and other parts of the system to customize behavior based on the framework.\n *\n * @remarks\n * This should only be used by framework plugins to ensure the correct framework name is applied\n *\n * @defaultValue\n * ```ts\n * {\n * name: \"powerlines\",\n * orgId: \"storm-software\"\n * }\n * ```\n */\n framework?: FrameworkOptions;\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 * @param options - Additional options for configuring the executor, such as the import path for the API module and default execution options.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: string,\n executorFn: (\n context: PowerlinesExecutorContext<TExecutorSchema>,\n api: PowerlinesExecutorApi\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined,\n options: WithExecutorOptions = {}\n): PromiseExecutor<TExecutorSchema> {\n const {\n importPath = \"powerlines/api\",\n defaultOptions = {},\n framework = {} as FrameworkOptions\n } = options;\n\n framework.name ??= \"powerlines\";\n framework.orgId ??= \"storm-software\";\n\n return withRunExecutor(\n `${titleCase(framework.name)} - ${titleCase(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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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 ${titleCase(framework.name)} - ${titleCase(\n command\n )} 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, {\n cache: false,\n tsconfigPaths: true\n });\n const api = await jiti\n .import<{\n default: (params: ExecutionApiParams) => Promise<void>;\n }>(jiti.esmResolve(importPath))\n .then(mod => mod.default);\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n command,\n inlineConfig: defu(\n {\n command,\n root: projectConfig.root,\n configFile: options.configFile || options.config,\n configIndex: options.configIndex,\n projectType: projectConfig.projectType,\n mode: options.mode as Mode,\n output: {\n path: options.outputPath,\n copy:\n options.copyPath === false\n ? false\n : {\n path: options.copyPath,\n assets: options.assets\n },\n minify: options.minify,\n sourceMap: options.sourceMap\n } as OutputConfig,\n resolve:\n isSetArray(options.external) ||\n isSetArray(options.noExternal) ||\n isSet(options.skipNodeModulesBundle)\n ? {\n external: isSetArray(options.external)\n ? options.external\n : undefined,\n noExternal: isSetArray(options.noExternal)\n ? options.noExternal\n : undefined,\n skipNodeModulesBundle: isSet(\n options.skipNodeModulesBundle\n )\n ? options.skipNodeModulesBundle\n : undefined\n }\n : undefined,\n define: isSetObject(options.define)\n ? options.define\n : undefined,\n assets: isSetObject(options.assets)\n ? options.assets\n : undefined\n },\n omit(options, [\n \"config\",\n \"configFile\",\n \"outputPath\",\n \"copyPath\",\n \"sourceMap\",\n \"minify\",\n \"format\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"mode\",\n \"define\",\n \"assets\"\n ])\n ) as InlineConfig\n },\n context\n ),\n async (inlineConfig: InlineConfig) => {\n const name =\n inlineConfig.name ||\n context.projectName ||\n (await getName(context.root, projectConfig.root));\n\n return api({\n options: defu(defaultOptions, {\n name,\n executionId: formatExecutionId(\n name,\n command,\n options.configIndex ?? 0\n ),\n cwd: context.root,\n root: projectConfig.root,\n configFile:\n options.configFile ||\n options.config ||\n joinPaths(\n projectConfig.root,\n `${kebabCase(framework.name)}.config.ts`\n ),\n configIndex: options.configIndex,\n framework\n }) as ExecutionOptions,\n command,\n inlineConfig\n });\n }\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the ${titleCase(\n framework.name\n )} - ${titleCase(command)} executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n options.copyPath ??= \"dist/{projectRoot}\";\n\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-executor.untyped-B9Vk-kJC.mjs","names":[],"sources":["../../src/base/base-executor.untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"BaseExecutorSchema\",\n title: \"Base Executor\",\n description:\n \"A shared/base schema type definition for Powerlines executors\",\n required: []\n },\n config: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `configFile`.\"\n }\n },\n configFile: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `config`.\"\n }\n },\n configIndex: {\n $schema: {\n title: \"Powerlines Configuration Index\",\n type: \"number\",\n description:\n \"The index in the Powerlines configuration file to use (if an array of configurations are provided).\"\n },\n $default: 0\n },\n input: {\n $schema: {\n title: \"Input Entry File(s)\",\n format: \"path\",\n type: \"array\",\n description: \"The entry file(s) that serve as the input for the project\",\n items: { type: \"string\" }\n }\n },\n tsconfig: {\n $schema: {\n title: \"TSConfig Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the tsconfig file\"\n }\n },\n outputPath: {\n $schema: {\n title: \"Output Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the output directory for the build artifacts\"\n }\n },\n copyPath: {\n $schema: {\n title: \"Copy Path\",\n description: \"A directory path to copy the build artifacts into\",\n oneOf: [\n { type: \"string\", format: \"path\" },\n { type: \"boolean\", enum: [false] }\n ]\n }\n },\n sourceMap: {\n $schema: {\n title: \"Sourcemap\",\n type: \"boolean\",\n description: \"Generate a sourcemap\"\n }\n },\n minify: {\n $schema: {\n title: \"Minify\",\n type: \"boolean\",\n description: \"Minify the output\"\n }\n },\n format: {\n $schema: {\n title: \"Format\",\n type: \"array\",\n description: \"The format to build\",\n items: {\n type: \"string\",\n enum: [\"cjs\", \"esm\", \"iife\"]\n }\n },\n $resolve: (val: string[] = [\"cjs\", \"esm\"]) =>\n val.filter(format => [\"cjs\", \"esm\", \"iife\"].includes(format))\n },\n platform: {\n $schema: {\n title: \"Platform\",\n type: \"string\",\n description: \"The platform to build\",\n enum: [\"neutral\", \"node\", \"browser\"]\n }\n },\n external: {\n $schema: {\n title: \"External\",\n type: \"array\",\n description: \"The external dependencies\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n noExternal: {\n $schema: {\n title: \"No External\",\n type: \"array\",\n description: \"The dependencies that should not be treated as external\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n skipNodeModulesBundle: {\n $schema: {\n title: \"Skip Node Modules Bundle\",\n type: \"boolean\",\n description:\n \"Skip bundling node_modules during the build process (if required)\"\n }\n },\n mode: {\n $schema: {\n title: \"Mode\",\n type: \"string\",\n description: \"The build mode\",\n enum: [\"development\", \"test\", \"production\"]\n }\n },\n logLevel: {\n $schema: {\n title: \"Log Level\",\n type: \"string\",\n description: \"The log level to use for the build process\",\n enum: [\n \"fatal\",\n \"error\",\n \"warn\",\n \"success\",\n \"info\",\n \"debug\",\n \"trace\",\n \"silent\"\n ]\n }\n },\n define: {\n $schema: {\n title: \"Define\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description: \"The `define` values\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n },\n assets: {\n $schema: {\n title: \"Assets\",\n type: \"any\",\n tsType:\n \"Array<{ input?: string; output?: string; glob: string; ignore?: string[]; dot?: boolean; }>\",\n description: \"The `assets` values\"\n }\n },\n additionalArgs: {\n $schema: {\n title: \"Additional Arguments\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description:\n \"The additional arguments provided during execution of the command\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n }\n});\n"],"mappings":";;;AAoBA,oCAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,aAAa;EACX,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,QAAQ;EACR,MAAM;EACN,aAAa;EACb,OAAO,EAAE,MAAM,SAAS;CAC1B,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CACL;GAAE,MAAM;GAAU,QAAQ;EAAO,GACjC;GAAE,MAAM;GAAW,MAAM,CAAC,KAAK;EAAE,CACnC;CACF,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO;IACL,MAAM;IACN,MAAM;KAAC;KAAO;KAAO;IAAM;GAC7B;EACF;EACA,WAAW,MAAgB,CAAC,OAAO,KAAK,MACtC,IAAI,QAAO,WAAU;GAAC;GAAO;GAAO;EAAM,CAAC,CAAC,SAAS,MAAM,CAAC;CAChE;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAW;GAAQ;EAAS;CACrC,EACF;CACA,UAAU;EACR,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,YAAY;EACV,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,uBAAuB,EACrB,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;CACA,MAAM,EACJ,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAe;GAAQ;EAAY;CAC5C,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aAAa;EACf;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QACE;EACF,aAAa;CACf,EACF;CACA,gBAAgB;EACd,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aACE;EACJ;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;AACF,CAAC"}
1
+ {"version":3,"file":"base-executor.untyped-B9Vk-kJC.mjs","names":[],"sources":["../../src/base/base-executor.untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"BaseExecutorSchema\",\n title: \"Base Executor\",\n description:\n \"A shared/base schema type definition for Powerlines executors\",\n required: []\n },\n config: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `configFile`.\"\n }\n },\n configFile: {\n $schema: {\n title: \"Powerlines Configuration File\",\n type: \"string\",\n format: \"path\",\n description:\n \"The path to the Powerlines configuration file. Alias for `config`.\"\n }\n },\n configIndex: {\n $schema: {\n title: \"Powerlines Configuration Index\",\n type: \"number\",\n description:\n \"The index in the Powerlines configuration file to use (if an array of configurations are provided).\"\n },\n $default: 0\n },\n input: {\n $schema: {\n title: \"Input Entry File(s)\",\n format: \"path\",\n type: \"array\",\n description: \"The entry file(s) that serve as the input for the project\",\n items: { type: \"string\" }\n }\n },\n tsconfig: {\n $schema: {\n title: \"TSConfig Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the tsconfig file\"\n }\n },\n outputPath: {\n $schema: {\n title: \"Output Path\",\n type: \"string\",\n format: \"path\",\n description: \"The path to the output directory for the build artifacts\"\n }\n },\n copyPath: {\n $schema: {\n title: \"Copy Path\",\n description: \"A directory path to copy the build artifacts into\",\n oneOf: [\n { type: \"string\", format: \"path\" },\n { type: \"boolean\", enum: [false] }\n ]\n }\n },\n sourceMap: {\n $schema: {\n title: \"Sourcemap\",\n type: \"boolean\",\n description: \"Generate a sourcemap\"\n }\n },\n minify: {\n $schema: {\n title: \"Minify\",\n type: \"boolean\",\n description: \"Minify the output\"\n }\n },\n format: {\n $schema: {\n title: \"Format\",\n type: \"array\",\n description: \"The format to build\",\n items: {\n type: \"string\",\n enum: [\"cjs\", \"esm\", \"iife\"]\n }\n },\n $resolve: (val: string[] = [\"cjs\", \"esm\"]) =>\n val.filter(format => [\"cjs\", \"esm\", \"iife\"].includes(format))\n },\n platform: {\n $schema: {\n title: \"Platform\",\n type: \"string\",\n description: \"The platform to build\",\n enum: [\"neutral\", \"node\", \"browser\"]\n }\n },\n external: {\n $schema: {\n title: \"External\",\n type: \"array\",\n description: \"The external dependencies\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n noExternal: {\n $schema: {\n title: \"No External\",\n type: \"array\",\n description: \"The dependencies that should not be treated as external\"\n },\n $resolve: (val: string[] = []) => ([] as string[]).concat(val)\n },\n skipNodeModulesBundle: {\n $schema: {\n title: \"Skip Node Modules Bundle\",\n type: \"boolean\",\n description:\n \"Skip bundling node_modules during the build process (if required)\"\n }\n },\n mode: {\n $schema: {\n title: \"Mode\",\n type: \"string\",\n description: \"The build mode\",\n enum: [\"development\", \"test\", \"production\"]\n }\n },\n logLevel: {\n $schema: {\n title: \"Log Level\",\n type: \"string\",\n description: \"The log level to use for the build process\",\n enum: [\n \"fatal\",\n \"error\",\n \"warn\",\n \"success\",\n \"info\",\n \"debug\",\n \"trace\",\n \"silent\"\n ]\n }\n },\n define: {\n $schema: {\n title: \"Define\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description: \"The `define` values\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n },\n assets: {\n $schema: {\n title: \"Assets\",\n type: \"any\",\n tsType:\n \"Array<{ input?: string; output?: string; glob: string; ignore?: string[]; dot?: boolean; }>\",\n description: \"The `assets` values\"\n }\n },\n additionalArgs: {\n $schema: {\n title: \"Additional Arguments\",\n type: \"object\",\n tsType: \"Record<string, string>\",\n description:\n \"The additional arguments provided during execution of the command\"\n },\n $resolve: (val: Record<string, string> = {}) => val,\n $default: {}\n }\n});\n"],"mappings":";;;AAoBA,oCAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aACE;CACJ,EACF;CACA,aAAa;EACX,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,QAAQ;EACR,MAAM;EACN,aAAa;EACb,OAAO,EAAE,MAAM,SAAS;CAC1B,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,YAAY,EACV,SAAS;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,aAAa;CACf,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CACL;GAAE,MAAM;GAAU,QAAQ;EAAO,GACjC;GAAE,MAAM;GAAW,MAAM,CAAC,KAAK;EAAE,CACnC;CACF,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO;IACL,MAAM;IACN,MAAM;KAAC;KAAO;KAAO;IAAM;GAC7B;EACF;EACA,WAAW,MAAgB,CAAC,OAAO,KAAK,MACtC,IAAI,QAAO,WAAU;GAAC;GAAO;GAAO;EAAM,CAAC,CAAC,SAAS,MAAM,CAAC;CAChE;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAW;GAAQ;EAAS;CACrC,EACF;CACA,UAAU;EACR,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,YAAY;EACV,SAAS;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,WAAW,MAAgB,CAAC,MAAO,CAAC,CAAC,CAAc,OAAO,GAAG;CAC/D;CACA,uBAAuB,EACrB,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;CACA,MAAM,EACJ,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GAAC;GAAe;GAAQ;EAAY;CAC5C,EACF;CACA,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF,EACF;CACA,QAAQ;EACN,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aAAa;EACf;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;CACA,QAAQ,EACN,SAAS;EACP,OAAO;EACP,MAAM;EACN,QACE;EACF,aAAa;CACf,EACF;CACA,gBAAgB;EACd,SAAS;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aACE;EACJ;EACA,WAAW,MAA8B,CAAC,MAAM;EAChD,UAAU,CAAC;CACb;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/build/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { BuildExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<BuildExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<BuildExecutorSchema> =\n withExecutor<BuildExecutorSchema>(\"build\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAkC,SAAS,UAAU"}
1
+ {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/build/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { BuildExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<BuildExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<BuildExecutorSchema> =\n withExecutor<BuildExecutorSchema>(\"build\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAkC,SAAS,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":["PrepareExecutorSchema"],"sources":["../../../../src/executors/build/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport PrepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...PrepareExecutorSchema,\n $schema: {\n id: \"BuildExecutorSchema\",\n title: \"Build Executor\",\n description: \"A type definition for the Powerlines - Build executor schema\",\n required: []\n },\n entry: {\n $schema: {\n title: \"Entry Path(s)\",\n description: \"The entry path(s) for the package\",\n oneOf: [{ type: \"string\" }, { type: \"array\", items: { type: \"string\" } }]\n }\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CAAC,EAAE,MAAM,SAAS,GAAG;GAAE,MAAM;GAAS,OAAO,EAAE,MAAM,SAAS;EAAE,CAAC;CAC1E,EACF;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":["PrepareExecutorSchema"],"sources":["../../../../src/executors/build/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport PrepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...PrepareExecutorSchema,\n $schema: {\n id: \"BuildExecutorSchema\",\n title: \"Build Executor\",\n description: \"A type definition for the Powerlines - Build executor schema\",\n required: []\n },\n entry: {\n $schema: {\n title: \"Entry Path(s)\",\n description: \"The entry path(s) for the package\",\n oneOf: [{ type: \"string\" }, { type: \"array\", items: { type: \"string\" } }]\n }\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;CACA,OAAO,EACL,SAAS;EACP,OAAO;EACP,aAAa;EACb,OAAO,CAAC,EAAE,MAAM,SAAS,GAAG;GAAE,MAAM;GAAS,OAAO,EAAE,MAAM,SAAS;EAAE,CAAC;CAC1E,EACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/clean/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { CleanExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<CleanExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<CleanExecutorSchema> =\n withExecutor<CleanExecutorSchema>(\"clean\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAkC,SAAS,UAAU"}
1
+ {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/clean/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { CleanExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<CleanExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<CleanExecutorSchema> =\n withExecutor<CleanExecutorSchema>(\"clean\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAkC,SAAS,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":["baseExecutorSchema"],"sources":["../../../../src/executors/clean/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport baseExecutorSchema from \"../../base/base-executor.untyped\";\n\nexport default defineUntypedSchema({\n ...baseExecutorSchema,\n $schema: {\n id: \"CleanExecutorSchema\",\n title: \"Clean Executor\",\n description: \"A type definition for the Powerlines - Clean executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":["baseExecutorSchema"],"sources":["../../../../src/executors/clean/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport baseExecutorSchema from \"../../base/base-executor.untyped\";\n\nexport default defineUntypedSchema({\n ...baseExecutorSchema,\n $schema: {\n id: \"CleanExecutorSchema\",\n title: \"Clean Executor\",\n description: \"A type definition for the Powerlines - Clean executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/docs/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { DocsExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<DocsExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<DocsExecutorSchema> =\n withExecutor<DocsExecutorSchema>(\"docs\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAiC,QAAQ,UAAU"}
1
+ {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/docs/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { DocsExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<DocsExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<DocsExecutorSchema> =\n withExecutor<DocsExecutorSchema>(\"docs\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAiC,QAAQ,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":["prepareExecutorSchema"],"sources":["../../../../src/executors/docs/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport prepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...prepareExecutorSchema,\n $schema: {\n id: \"DocsExecutorSchema\",\n title: \"Docs Executor\",\n description: \"A type definition for the Powerlines - Docs executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":["prepareExecutorSchema"],"sources":["../../../../src/executors/docs/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport prepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...prepareExecutorSchema,\n $schema: {\n id: \"DocsExecutorSchema\",\n title: \"Docs Executor\",\n description: \"A type definition for the Powerlines - Docs executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/lint/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { LintExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<LintExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<LintExecutorSchema> =\n withExecutor<LintExecutorSchema>(\"lint\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAiC,QAAQ,UAAU"}
1
+ {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/lint/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport type { LintExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<LintExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<LintExecutorSchema> =\n withExecutor<LintExecutorSchema>(\"lint\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAiC,QAAQ,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":["prepareExecutorSchema"],"sources":["../../../../src/executors/lint/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport prepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...prepareExecutorSchema,\n $schema: {\n id: \"LintExecutorSchema\",\n title: \"Lint Executor\",\n description: \"A type definition for the Powerlines - Lint executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":["prepareExecutorSchema"],"sources":["../../../../src/executors/lint/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport prepareExecutorSchema from \"../prepare/untyped\";\n\nexport default defineUntypedSchema({\n ...prepareExecutorSchema,\n $schema: {\n id: \"LintExecutorSchema\",\n title: \"Lint Executor\",\n description: \"A type definition for the Powerlines - Lint executor schema\",\n required: []\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU,CAAC;CACb;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/prepare/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport { PrepareExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<PrepareExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<PrepareExecutorSchema> =\n withExecutor<PrepareExecutorSchema>(\"prepare\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAoC,WAAW,UAAU"}
1
+ {"version":3,"file":"executor.mjs","names":[],"sources":["../../../../src/executors/prepare/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 { PromiseExecutor } from \"@nx/devkit\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport {\n PowerlinesExecutorApi,\n PowerlinesExecutorContext,\n withExecutor\n} from \"../../base/base-executor\";\nimport { PrepareExecutorSchema } from \"./schema\";\n\nasync function executorFn(\n context: PowerlinesExecutorContext<PrepareExecutorSchema>,\n api: PowerlinesExecutorApi\n): Promise<BaseExecutorResult> {\n await api(context.inlineConfig);\n\n return {\n success: true\n };\n}\n\nconst executor: PromiseExecutor<PrepareExecutorSchema> =\n withExecutor<PrepareExecutorSchema>(\"prepare\", executorFn);\n\nexport default executor;\n"],"mappings":";;;AA2BA,eAAe,WACb,SACA,KAC6B;CAC7B,MAAM,IAAI,QAAQ,YAAY;CAE9B,OAAO,EACL,SAAS,KACX;AACF;AAEA,MAAM,WACJ,aAAoC,WAAW,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":["baseExecutorSchema"],"sources":["../../../../src/executors/prepare/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport baseExecutorSchema from \"../../base/base-executor.untyped\";\n\nexport default defineUntypedSchema({\n ...baseExecutorSchema,\n $schema: {\n id: \"PrepareExecutorSchema\",\n title: \"Prepare Executor\",\n description:\n \"A type definition for the Powerlines - Prepare executor schema\",\n required: []\n },\n autoInstall: {\n $schema: {\n title: \"Auto Install\",\n type: \"boolean\",\n description: \"Automatically install dependencies during prepare stage\"\n }\n },\n skipCache: {\n $schema: {\n title: \"Skip Cache\",\n type: \"boolean\",\n description:\n \"Skip the caching mechanism during the build process (if required)\"\n }\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,aAAa,EACX,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":["baseExecutorSchema"],"sources":["../../../../src/executors/prepare/untyped.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 { defineUntypedSchema } from \"untyped\";\nimport baseExecutorSchema from \"../../base/base-executor.untyped\";\n\nexport default defineUntypedSchema({\n ...baseExecutorSchema,\n $schema: {\n id: \"PrepareExecutorSchema\",\n title: \"Prepare Executor\",\n description:\n \"A type definition for the Powerlines - Prepare executor schema\",\n required: []\n },\n autoInstall: {\n $schema: {\n title: \"Auto Install\",\n type: \"boolean\",\n description: \"Automatically install dependencies during prepare stage\"\n }\n },\n skipCache: {\n $schema: {\n title: \"Skip Cache\",\n type: \"boolean\",\n description:\n \"Skip the caching mechanism during the build process (if required)\"\n }\n }\n});\n"],"mappings":";;;;AAqBA,sBAAe,oBAAoB;CACjC,GAAGA;CACH,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,aAAa,EACX,SAAS;EACP,OAAO;EACP,MAAM;EACN,aAAa;CACf,EACF;CACA,WAAW,EACT,SAAS;EACP,OAAO;EACP,MAAM;EACN,aACE;CACJ,EACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.mjs","names":[],"sources":["../../../../src/generators/sync/generator.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 { readNxJson, Tree } from \"@nx/devkit\";\nimport { SyncGeneratorResult } from \"nx/src/utils/sync-generators\";\nimport type { SyncGeneratorSchema } from \"./schema\";\n\nexport async function generatorFn(tree: Tree): Promise<SyncGeneratorResult> {\n // if (\n // !tree.exists(\"/legal-message.txt\") ||\n // tree.read(\"/legal-message.txt\").toString() !==\n // \"This is an important legal message.\"\n // ) {\n // tree.write(\"/legal-message.txt\", \"This is an important legal message.\");\n // }\n\n // const persistedMeta = await getPersistedMeta(this.context);\n // const checksum = await getChecksum(this.context.options.projectRoot);\n\n // const projectGraph = await createProjectGraphAsync();\n // Object.values(projectGraph.nodes).forEach(project => {\n // tree.write(\n // joinPathFragments(project.data.root, \"license.txt\"),\n // `${project.name} uses the Acme Corp license.`\n // );\n // });\n\n const nxJson = readNxJson(tree);\n const userOptions = nxJson?.sync?.generatorOptions?.[\n \"@powerlines/nx:sync\"\n ] as SyncGeneratorSchema;\n\n // const projectGraph = await createProjectGraphAsync();\n // const projectRoots = new Set<string>();\n\n return {\n outOfSyncMessage:\n userOptions?.outOfSyncMessage ||\n \"The legal-message.txt file needs to be created\"\n };\n}\n\nexport default generatorFn;\n\n// export default withRunGenerator(\"Powerlines sync generator\", generatorFn, {\n// skipReadingConfig: true\n// });\n"],"mappings":";;;AAsBA,eAAsB,YAAY,MAA0C;CA4B1E,OAAO,EACL,mBATa,WAAW,IACD,CAAC,EAAE,MAAM,mBAChC,sBACD,CAOc,EAAE,oBACb,iDACJ;AACF"}
1
+ {"version":3,"file":"generator.mjs","names":[],"sources":["../../../../src/generators/sync/generator.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 { readNxJson, Tree } from \"@nx/devkit\";\nimport { SyncGeneratorResult } from \"nx/src/utils/sync-generators\";\nimport type { SyncGeneratorSchema } from \"./schema\";\n\nexport async function generatorFn(tree: Tree): Promise<SyncGeneratorResult> {\n // if (\n // !tree.exists(\"/legal-message.txt\") ||\n // tree.read(\"/legal-message.txt\").toString() !==\n // \"This is an important legal message.\"\n // ) {\n // tree.write(\"/legal-message.txt\", \"This is an important legal message.\");\n // }\n\n // const persistedMeta = await getPersistedMeta(this.context);\n // const checksum = await getChecksum(this.context.options.projectRoot);\n\n // const projectGraph = await createProjectGraphAsync();\n // Object.values(projectGraph.nodes).forEach(project => {\n // tree.write(\n // joinPathFragments(project.data.root, \"license.txt\"),\n // `${project.name} uses the Acme Corp license.`\n // );\n // });\n\n const nxJson = readNxJson(tree);\n const userOptions = nxJson?.sync?.generatorOptions?.[\n \"@powerlines/nx:sync\"\n ] as SyncGeneratorSchema;\n\n // const projectGraph = await createProjectGraphAsync();\n // const projectRoots = new Set<string>();\n\n return {\n outOfSyncMessage:\n userOptions?.outOfSyncMessage ||\n \"The legal-message.txt file needs to be created\"\n };\n}\n\nexport default generatorFn;\n\n// export default withRunGenerator(\"Powerlines sync generator\", generatorFn, {\n// skipReadingConfig: true\n// });\n"],"mappings":";;;AAsBA,eAAsB,YAAY,MAA0C;CA4B1E,OAAO,EACL,mBATa,WAAW,IACD,CAAC,EAAE,MAAM,mBAChC,sBACD,CAOc,EAAE,oBACb,iDACJ;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"untyped.mjs","names":[],"sources":["../../../../src/generators/sync/untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"SyncGeneratorSchema\",\n title: \"Sync Generator\",\n description:\n \"A type definition for the Powerlines - Sync generator's options\",\n required: []\n },\n outOfSyncMessage: {\n $schema: {\n title: \"Out of Sync Message\",\n type: \"string\",\n description:\n \"The message to display when the project is out of sync with the legal-message.txt file\"\n },\n $default: \"The legal-message.txt file needs to be created\"\n }\n});\n"],"mappings":";;;AAoBA,sBAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,kBAAkB;EAChB,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;AACF,CAAC"}
1
+ {"version":3,"file":"untyped.mjs","names":[],"sources":["../../../../src/generators/sync/untyped.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 { defineUntypedSchema } from \"untyped\";\n\nexport default defineUntypedSchema({\n $schema: {\n id: \"SyncGeneratorSchema\",\n title: \"Sync Generator\",\n description:\n \"A type definition for the Powerlines - Sync generator's options\",\n required: []\n },\n outOfSyncMessage: {\n $schema: {\n title: \"Out of Sync Message\",\n type: \"string\",\n description:\n \"The message to display when the project is out of sync with the legal-message.txt file\"\n },\n $default: \"The legal-message.txt file needs to be created\"\n }\n});\n"],"mappings":";;;AAoBA,sBAAe,oBAAoB;CACjC,SAAS;EACP,IAAI;EACJ,OAAO;EACP,aACE;EACF,UAAU,CAAC;CACb;CACA,kBAAkB;EAChB,SAAS;GACP,OAAO;GACP,MAAM;GACN,aACE;EACJ;EACA,UAAU;CACZ;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","names":[],"sources":["../../../src/helpers/constants.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\n/**\n * A list of Nx input strings that describe the Powerlines configuration file\n */\nexport const CONFIG_INPUTS = [\n \"{projectRoot}/{framework}.json\",\n \"{projectRoot}/{framework}.*.json\",\n \"{projectRoot}/{framework}.jsonc\",\n \"{projectRoot}/{framework}.*.jsonc\",\n \"{projectRoot}/{framework}.json5\",\n \"{projectRoot}/{framework}.*.json5\",\n \"{projectRoot}/{framework}.yaml\",\n \"{projectRoot}/{framework}.*.yaml\",\n \"{projectRoot}/{framework}.yml\",\n \"{projectRoot}/{framework}.*.yml\",\n \"{projectRoot}/{framework}.toml\",\n \"{projectRoot}/{framework}.*.toml\",\n \"{projectRoot}/{framework}.config.js\",\n \"{projectRoot}/{framework}.*.config.js\",\n \"{projectRoot}/{framework}.config.cjs\",\n \"{projectRoot}/{framework}.*.config.cjs\",\n \"{projectRoot}/{framework}.config.mjs\",\n \"{projectRoot}/{framework}.*.config.mjs\",\n \"{projectRoot}/{framework}.config.ts\",\n \"{projectRoot}/{framework}.*.config.ts\",\n \"{projectRoot}/{framework}.config.cts\",\n \"{projectRoot}/{framework}.*.config.cts\",\n \"{projectRoot}/{framework}.config.mts\",\n \"{projectRoot}/{framework}.*.config.mts\"\n] as const;\n"],"mappings":";;;;AAqBA,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../../src/helpers/constants.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\n/**\n * A list of Nx input strings that describe the Powerlines configuration file\n */\nexport const CONFIG_INPUTS = [\n \"{projectRoot}/{framework}.json\",\n \"{projectRoot}/{framework}.*.json\",\n \"{projectRoot}/{framework}.jsonc\",\n \"{projectRoot}/{framework}.*.jsonc\",\n \"{projectRoot}/{framework}.json5\",\n \"{projectRoot}/{framework}.*.json5\",\n \"{projectRoot}/{framework}.yaml\",\n \"{projectRoot}/{framework}.*.yaml\",\n \"{projectRoot}/{framework}.yml\",\n \"{projectRoot}/{framework}.*.yml\",\n \"{projectRoot}/{framework}.toml\",\n \"{projectRoot}/{framework}.*.toml\",\n \"{projectRoot}/{framework}.config.js\",\n \"{projectRoot}/{framework}.*.config.js\",\n \"{projectRoot}/{framework}.config.cjs\",\n \"{projectRoot}/{framework}.*.config.cjs\",\n \"{projectRoot}/{framework}.config.mjs\",\n \"{projectRoot}/{framework}.*.config.mjs\",\n \"{projectRoot}/{framework}.config.ts\",\n \"{projectRoot}/{framework}.*.config.ts\",\n \"{projectRoot}/{framework}.config.cts\",\n \"{projectRoot}/{framework}.*.config.cts\",\n \"{projectRoot}/{framework}.config.mts\",\n \"{projectRoot}/{framework}.*.config.mts\"\n] as const;\n"],"mappings":";;;;AAqBA,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-utilities.mjs","names":[],"sources":["../../../src/helpers/plugin-utilities.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\n/* eslint-disable no-console */\n\nimport type { CreateNodesResultV2, CreateNodesV2 } from \"@nx/devkit\";\nimport { createNodesFromFiles } from \"@nx/devkit\";\nimport type { ProjectTagVariant } from \"@storm-software/workspace-tools/types\";\nimport { withNamedInputs } from \"@storm-software/workspace-tools/utils/nx-json\";\nimport {\n getProjectConfigFromProjectRoot,\n getProjectRoot,\n getRoot\n} from \"@storm-software/workspace-tools/utils/plugin-helpers\";\nimport {\n addProjectTag,\n setDefaultProjectTags\n} from \"@storm-software/workspace-tools/utils/project-tags\";\nimport { isDevelopment } from \"@stryke/env/environment-checks\";\nimport { getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { PackageJson } from \"@stryke/types/package-json\";\nimport defu from \"defu\";\nimport { readFile } from \"node:fs/promises\";\nimport { readNxJson } from \"nx/src/config/nx-json.js\";\nimport type {\n ProjectConfiguration,\n TargetConfiguration\n} from \"nx/src/config/workspace-json-project-json.js\";\nimport type { PackageJson as PackageJsonNx } from \"nx/src/utils/package-json.js\";\nimport { readTargetsFromPackageJson } from \"nx/src/utils/package-json.js\";\nimport type { NxPluginOptions } from \"../types/plugin\";\nimport { CONFIG_INPUTS } from \"./constants\";\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxTargetInputs(framework: string): string[] {\n return CONFIG_INPUTS.map(input => input.replace(\"{framework}\", framework));\n}\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxPluginInputs(framework: string): string {\n return `**/{${getNxTargetInputs(framework)\n .map(input => input.replace(\"{projectRoot}/\", \"\"))\n .join(\",\")}}`;\n}\n\nexport interface CreateNxPluginOptions {\n /**\n * The name of the Nx plugin to create\n *\n * @remarks\n * This will be used in logging and project tagging.\n *\n * @defaultValue \"\\{framework\\}/plugin/nx\"\n */\n name?: string;\n\n /**\n * The folder where the generated runtime artifacts will be located\n *\n * @remarks\n * This folder will contain all runtime artifacts and builtins generated during the \"prepare\" phase.\n *\n * @defaultValue \"\\{projectRoot\\}/.powerlines\"\n */\n artifactsFolder?: string;\n\n /**\n * A string identifier that allows a child framework or tool to identify itself when using Powerlines.\n *\n * @remarks\n * If no values are provided for {@link OutputConfig.dts | output.dts} or {@link OutputConfig.artifactsFolder | output.artifactsFolder}, this value will be used as the default.\n *\n * @defaultValue \"powerlines\"\n */\n framework?: string;\n}\n\n// type LoadUserConfigFileFunction = (\n// cwd: string,\n// root: string,\n// mode: Mode,\n// command: string,\n// framework?: PartialKeys<FrameworkOptions, \"orgId\">,\n// configFile?: string\n// ) => Promise<ParsedUserConfig>;\n\n/**\n * Creates an Nx plugin that integrates Powerlines into the Nx build process.\n *\n * @param opts - Options for creating the Nx plugin\n * @returns A CreateNodesV2 function that can be used as an Nx plugin\n */\nexport function createNxPlugin<\n TOptions extends NxPluginOptions = NxPluginOptions\n>(opts?: CreateNxPluginOptions): CreateNodesV2<TOptions> {\n const framework = kebabCase(opts?.framework) || \"powerlines\";\n const title = `${titleCase(framework)} Nx Plugin`;\n\n try {\n const name = opts?.name || `${framework}/nx/plugin`;\n const artifactsFolder =\n opts?.artifactsFolder || `{projectRoot}/.${framework}`;\n\n const targetInputs = getNxTargetInputs(framework);\n const pluginInputs = getNxPluginInputs(framework);\n\n return [\n pluginInputs,\n async (configFiles, options, contextV2): Promise<CreateNodesResultV2> => {\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Initializing the ${title} for the following inputs: ${pluginInputs}`\n );\n }\n\n const envPaths = getEnvPaths({\n orgId: \"storm-software\",\n appId: framework,\n workspaceRoot: contextV2.workspaceRoot\n });\n if (!envPaths.cache) {\n throw new Error(\"The cache directory could not be determined.\");\n }\n\n const nxJson = readNxJson(contextV2.workspaceRoot);\n // const resolver = createJiti(contextV2.workspaceRoot, {\n // debug: !!options?.debug,\n // interopDefault: true,\n // fsCache: joinPaths(\n // envPaths.cache,\n // \"nx-plugin\",\n // murmurhash(contextV2.workspaceRoot, {\n // maxLength: 45\n // }),\n // \"jiti\"\n // ),\n // moduleCache: true\n // });\n\n // let loadUserConfigFile: LoadUserConfigFileFunction | undefined;\n // try {\n // loadUserConfigFile = await resolver\n // .import<{\n // loadUserConfigFile: LoadUserConfigFileFunction;\n // }>(resolver.esmResolve(\"powerlines/config\"))\n // .then(mod => mod?.loadUserConfigFile);\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration file function: ${\n // isError(error) ? error.message : \"Unknown error\"\n // }`\n // );\n // }\n\n return createNodesFromFiles(\n async (configFile, _, context) => {\n try {\n const projectRoot = getProjectRoot(\n configFile,\n contextV2.workspaceRoot\n );\n if (!projectRoot) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - package.json and ${\n framework\n } configuration files (i.e. ${\n framework\n }.config.ts) must be located in the project root directory: ${\n configFile\n }`\n );\n\n return {};\n }\n\n const root = getRoot(projectRoot, context);\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Loading ${\n framework\n } user configuration for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n // let userConfig = {} as UserConfig;\n // try {\n // if (loadUserConfigFile) {\n // const parsedConfig = await loadUserConfigFile(\n // contextV2.workspaceRoot,\n // projectRoot,\n // isDevelopment\n // ? \"development\"\n // : isTest\n // ? \"test\"\n // : \"production\",\n // \"build\",\n // { name: framework },\n // configFile\n // );\n // if (isSetObject(parsedConfig)) {\n // userConfig = parsedConfig.config as UserConfig;\n // }\n // }\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration for project in ${\n // projectRoot\n // } - ${\n // isError(error)\n // ? error.message\n // : isSetString(error)\n // ? error\n // : \"Unknown error\"\n // } \\n\\nPlease note: This error can occur if the project depends on another package in the workspace and the dependent package has not been built yet. To resolve this issue, please ensure that all dependent packages have been built successfully.${\n // isError(error) && error.stack\n // ? `\\n\\nStack trace:\\n${error.stack}`\n // : \"\"\n // }`\n // );\n // }\n\n if (\n !existsSync(\n joinPaths(\n contextV2.workspaceRoot,\n projectRoot,\n \"package.json\"\n )\n )\n ) {\n if (options?.verboseOutput) {\n console.warn(\n `[${\n title\n }] - ${new Date().toISOString()} - Cannot find \\`package.json\\` file in the project's root directory (path: \"${joinPaths(\n contextV2.workspaceRoot,\n projectRoot\n )}\"). Skipping project configuration.`\n );\n }\n\n return {};\n }\n\n const packageJsonContent = await readFile(\n joinPaths(contextV2.workspaceRoot, projectRoot, \"package.json\"),\n \"utf8\"\n );\n if (!packageJsonContent) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No package.json file found for project in root directory ${projectRoot}`\n );\n }\n\n return {};\n }\n\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n // if (\n // !(userConfig && Object.keys(userConfig).length > 0) &&\n // !packageJson?.[camelCase(framework)]\n // ) {\n // if (options?.verboseOutput) {\n // console.debug(\n // `[${title}] - ${new Date().toISOString()} - Skipping ${projectRoot} - no ${\n // framework\n // } configuration found for project in root directory.`\n // );\n // }\n\n // return {};\n // }\n\n const projectConfig = getProjectConfigFromProjectRoot(\n projectRoot,\n packageJson\n );\n if (!projectConfig) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No project configuration found for project in root directory ${\n projectRoot\n }`\n );\n }\n\n return {};\n }\n\n const targets: ProjectConfiguration[\"targets\"] =\n readTargetsFromPackageJson(\n packageJson as PackageJsonNx,\n nxJson,\n projectRoot,\n context.workspaceRoot\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Preparing Nx targets for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n if (\n options?.clean !== false &&\n !targets[options?.clean?.targetName || \"clean\"]\n ) {\n targets[options?.clean?.targetName || \"clean\"] = {\n cache: options?.clean?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.clean?.inputs)\n ? options.clean.inputs\n : withNamedInputs(targetInputs, [\n options?.clean?.inputs || \"typescript\"\n ]),\n outputs: options?.clean?.outputs,\n executor:\n options?.clean?.executor ||\n `@${framework}/nx:${options?.clean?.targetName || \"clean\"}`,\n dependsOn: options?.clean?.dependsOn ?? [\n `^${options?.clean?.targetName || \"clean\"}`\n ],\n defaultConfiguration:\n options?.clean?.defaultConfiguration || \"production\",\n options: {\n root: projectRoot,\n configFile,\n projectType: projectConfig.projectType,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.prepare !== false &&\n !targets[options?.prepare?.targetName || \"prepare\"]\n ) {\n targets[options?.prepare?.targetName || \"prepare\"] = {\n cache: options?.prepare?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.prepare?.inputs)\n ? options.prepare.inputs\n : withNamedInputs(targetInputs, [\n options?.prepare?.inputs || \"typescript\"\n ]),\n outputs: options?.prepare?.outputs ?? [artifactsFolder],\n executor:\n options?.prepare?.executor ||\n `@${framework}/nx:${options?.prepare?.targetName || \"prepare\"}`,\n dependsOn:\n options?.prepare?.dependsOn ??\n [`^${options?.prepare?.targetName || \"build\"}`].filter(\n Boolean\n ),\n defaultConfiguration:\n options?.prepare?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.build !== false &&\n !targets[options?.build?.targetName || \"build\"]\n ) {\n targets[options?.build?.targetName || \"build\"] = {\n cache: options?.build?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.build?.inputs)\n ? options.build.inputs\n : withNamedInputs(targetInputs, [\n options?.build?.inputs || \"typescript\"\n ]),\n outputs: options?.build?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.build?.executor ||\n `@${framework}/nx:${options?.build?.targetName || \"build\"}`,\n dependsOn:\n options?.build?.dependsOn ??\n ([\n `^${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.build?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.lint !== false &&\n !targets[options?.lint?.targetName || \"lint\"]\n ) {\n targets[options?.lint?.targetName || \"lint\"] = {\n cache: options?.lint?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.lint?.inputs)\n ? options.lint.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.lint?.inputs\n ? [options.lint.inputs]\n : [\"linting\", \"typescript\"]\n ),\n outputs: options?.lint?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.lint?.executor ||\n `@${framework}/nx:${options?.lint?.targetName || \"lint\"}`,\n dependsOn:\n options?.lint?.dependsOn ??\n ([\n `^${options?.lint?.targetName || \"lint\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.lint?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.docs !== false &&\n !targets[options?.docs?.targetName || \"docs\"]\n ) {\n targets[options?.docs?.targetName || \"docs\"] = {\n cache: options?.docs?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.docs?.inputs)\n ? options.docs.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.docs?.inputs\n ? [options.docs.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.docs?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.docs?.executor ||\n `@${framework}/nx:${options?.docs?.targetName || \"docs\"}`,\n dependsOn:\n options?.docs?.dependsOn ??\n ([\n `^${options?.docs?.targetName || \"docs\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.docs?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.deploy !== false &&\n !targets[options?.deploy?.targetName || \"deploy\"]\n ) {\n targets[options?.deploy?.targetName || \"deploy\"] = {\n cache: options?.deploy?.cache ?? false,\n inputs: Array.isArray(options?.deploy?.inputs)\n ? options.deploy.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.deploy?.inputs\n ? [options.deploy.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.deploy?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.deploy?.executor ||\n `@${framework}/nx:${options?.deploy?.targetName || \"deploy\"}`,\n dependsOn:\n options?.deploy?.dependsOn ??\n ([\n `^${options?.deploy?.targetName || \"deploy\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.deploy?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n setDefaultProjectTags(projectConfig, name);\n addProjectTag(\n projectConfig,\n framework as ProjectTagVariant,\n projectConfig.projectType || \"library\",\n {\n overwrite: true\n }\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${\n title\n }] - ${new Date().toISOString()} - Completed preparing Nx configuration for project in root directory ${projectRoot}.`\n );\n }\n\n return {\n projects: {\n [root]: defu(projectConfig, {\n projectType: projectConfig.projectType || \"library\",\n root,\n sourceRoot: joinPaths(root, \"src\"),\n targets\n })\n }\n };\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - Failed to process the project configuration for file \"${\n configFile\n }\" - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error\"\n }`\n );\n\n return {};\n }\n },\n configFiles,\n options,\n contextV2\n );\n }\n ];\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error during plugin initialization\"\n }`\n );\n\n throw new Error(\n `Failed to initialize the ${title} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"See previous logs for more details\"\n }`,\n {\n cause: error instanceof Error ? error : undefined\n }\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-utilities.mjs","names":[],"sources":["../../../src/helpers/plugin-utilities.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\n/* eslint-disable no-console */\n\nimport type { CreateNodesResultV2, CreateNodesV2 } from \"@nx/devkit\";\nimport { createNodesFromFiles } from \"@nx/devkit\";\nimport type { ProjectTagVariant } from \"@storm-software/workspace-tools/types\";\nimport { withNamedInputs } from \"@storm-software/workspace-tools/utils/nx-json\";\nimport {\n getProjectConfigFromProjectRoot,\n getProjectRoot,\n getRoot\n} from \"@storm-software/workspace-tools/utils/plugin-helpers\";\nimport {\n addProjectTag,\n setDefaultProjectTags\n} from \"@storm-software/workspace-tools/utils/project-tags\";\nimport { isDevelopment } from \"@stryke/env/environment-checks\";\nimport { getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { PackageJson } from \"@stryke/types/package-json\";\nimport defu from \"defu\";\nimport { readFile } from \"node:fs/promises\";\nimport { readNxJson } from \"nx/src/config/nx-json.js\";\nimport type {\n ProjectConfiguration,\n TargetConfiguration\n} from \"nx/src/config/workspace-json-project-json.js\";\nimport type { PackageJson as PackageJsonNx } from \"nx/src/utils/package-json.js\";\nimport { readTargetsFromPackageJson } from \"nx/src/utils/package-json.js\";\nimport type { NxPluginOptions } from \"../types/plugin\";\nimport { CONFIG_INPUTS } from \"./constants\";\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxTargetInputs(framework: string): string[] {\n return CONFIG_INPUTS.map(input => input.replace(\"{framework}\", framework));\n}\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxPluginInputs(framework: string): string {\n return `**/{${getNxTargetInputs(framework)\n .map(input => input.replace(\"{projectRoot}/\", \"\"))\n .join(\",\")}}`;\n}\n\nexport interface CreateNxPluginOptions {\n /**\n * The name of the Nx plugin to create\n *\n * @remarks\n * This will be used in logging and project tagging.\n *\n * @defaultValue \"\\{framework\\}/plugin/nx\"\n */\n name?: string;\n\n /**\n * The folder where the generated runtime artifacts will be located\n *\n * @remarks\n * This folder will contain all runtime artifacts and builtins generated during the \"prepare\" phase.\n *\n * @defaultValue \"\\{projectRoot\\}/.powerlines\"\n */\n artifactsFolder?: string;\n\n /**\n * A string identifier that allows a child framework or tool to identify itself when using Powerlines.\n *\n * @remarks\n * If no values are provided for {@link OutputConfig.dts | output.dts} or {@link OutputConfig.artifactsFolder | output.artifactsFolder}, this value will be used as the default.\n *\n * @defaultValue \"powerlines\"\n */\n framework?: string;\n}\n\n// type LoadUserConfigFileFunction = (\n// cwd: string,\n// root: string,\n// mode: Mode,\n// command: string,\n// framework?: PartialKeys<FrameworkOptions, \"orgId\">,\n// configFile?: string\n// ) => Promise<ParsedUserConfig>;\n\n/**\n * Creates an Nx plugin that integrates Powerlines into the Nx build process.\n *\n * @param opts - Options for creating the Nx plugin\n * @returns A CreateNodesV2 function that can be used as an Nx plugin\n */\nexport function createNxPlugin<\n TOptions extends NxPluginOptions = NxPluginOptions\n>(opts?: CreateNxPluginOptions): CreateNodesV2<TOptions> {\n const framework = kebabCase(opts?.framework) || \"powerlines\";\n const title = `${titleCase(framework)} Nx Plugin`;\n\n try {\n const name = opts?.name || `${framework}/nx/plugin`;\n const artifactsFolder =\n opts?.artifactsFolder || `{projectRoot}/.${framework}`;\n\n const targetInputs = getNxTargetInputs(framework);\n const pluginInputs = getNxPluginInputs(framework);\n\n return [\n pluginInputs,\n async (configFiles, options, contextV2): Promise<CreateNodesResultV2> => {\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Initializing the ${title} for the following inputs: ${pluginInputs}`\n );\n }\n\n const envPaths = getEnvPaths({\n orgId: \"storm-software\",\n appId: framework,\n workspaceRoot: contextV2.workspaceRoot\n });\n if (!envPaths.cache) {\n throw new Error(\"The cache directory could not be determined.\");\n }\n\n const nxJson = readNxJson(contextV2.workspaceRoot);\n // const resolver = createJiti(contextV2.workspaceRoot, {\n // debug: !!options?.debug,\n // interopDefault: true,\n // fsCache: joinPaths(\n // envPaths.cache,\n // \"nx-plugin\",\n // murmurhash(contextV2.workspaceRoot, {\n // maxLength: 45\n // }),\n // \"jiti\"\n // ),\n // moduleCache: true\n // });\n\n // let loadUserConfigFile: LoadUserConfigFileFunction | undefined;\n // try {\n // loadUserConfigFile = await resolver\n // .import<{\n // loadUserConfigFile: LoadUserConfigFileFunction;\n // }>(resolver.esmResolve(\"powerlines/config\"))\n // .then(mod => mod?.loadUserConfigFile);\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration file function: ${\n // isError(error) ? error.message : \"Unknown error\"\n // }`\n // );\n // }\n\n return createNodesFromFiles(\n async (configFile, _, context) => {\n try {\n const projectRoot = getProjectRoot(\n configFile,\n contextV2.workspaceRoot\n );\n if (!projectRoot) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - package.json and ${\n framework\n } configuration files (i.e. ${\n framework\n }.config.ts) must be located in the project root directory: ${\n configFile\n }`\n );\n\n return {};\n }\n\n const root = getRoot(projectRoot, context);\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Loading ${\n framework\n } user configuration for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n // let userConfig = {} as UserConfig;\n // try {\n // if (loadUserConfigFile) {\n // const parsedConfig = await loadUserConfigFile(\n // contextV2.workspaceRoot,\n // projectRoot,\n // isDevelopment\n // ? \"development\"\n // : isTest\n // ? \"test\"\n // : \"production\",\n // \"build\",\n // { name: framework },\n // configFile\n // );\n // if (isSetObject(parsedConfig)) {\n // userConfig = parsedConfig.config as UserConfig;\n // }\n // }\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration for project in ${\n // projectRoot\n // } - ${\n // isError(error)\n // ? error.message\n // : isSetString(error)\n // ? error\n // : \"Unknown error\"\n // } \\n\\nPlease note: This error can occur if the project depends on another package in the workspace and the dependent package has not been built yet. To resolve this issue, please ensure that all dependent packages have been built successfully.${\n // isError(error) && error.stack\n // ? `\\n\\nStack trace:\\n${error.stack}`\n // : \"\"\n // }`\n // );\n // }\n\n if (\n !existsSync(\n joinPaths(\n contextV2.workspaceRoot,\n projectRoot,\n \"package.json\"\n )\n )\n ) {\n if (options?.verboseOutput) {\n console.warn(\n `[${\n title\n }] - ${new Date().toISOString()} - Cannot find \\`package.json\\` file in the project's root directory (path: \"${joinPaths(\n contextV2.workspaceRoot,\n projectRoot\n )}\"). Skipping project configuration.`\n );\n }\n\n return {};\n }\n\n const packageJsonContent = await readFile(\n joinPaths(contextV2.workspaceRoot, projectRoot, \"package.json\"),\n \"utf8\"\n );\n if (!packageJsonContent) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No package.json file found for project in root directory ${projectRoot}`\n );\n }\n\n return {};\n }\n\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n // if (\n // !(userConfig && Object.keys(userConfig).length > 0) &&\n // !packageJson?.[camelCase(framework)]\n // ) {\n // if (options?.verboseOutput) {\n // console.debug(\n // `[${title}] - ${new Date().toISOString()} - Skipping ${projectRoot} - no ${\n // framework\n // } configuration found for project in root directory.`\n // );\n // }\n\n // return {};\n // }\n\n const projectConfig = getProjectConfigFromProjectRoot(\n projectRoot,\n packageJson\n );\n if (!projectConfig) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No project configuration found for project in root directory ${\n projectRoot\n }`\n );\n }\n\n return {};\n }\n\n const targets: ProjectConfiguration[\"targets\"] =\n readTargetsFromPackageJson(\n packageJson as PackageJsonNx,\n nxJson,\n projectRoot,\n context.workspaceRoot\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Preparing Nx targets for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n if (\n options?.clean !== false &&\n !targets[options?.clean?.targetName || \"clean\"]\n ) {\n targets[options?.clean?.targetName || \"clean\"] = {\n cache: options?.clean?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.clean?.inputs)\n ? options.clean.inputs\n : withNamedInputs(targetInputs, [\n options?.clean?.inputs || \"typescript\"\n ]),\n outputs: options?.clean?.outputs,\n executor:\n options?.clean?.executor ||\n `@${framework}/nx:${options?.clean?.targetName || \"clean\"}`,\n dependsOn: options?.clean?.dependsOn ?? [\n `^${options?.clean?.targetName || \"clean\"}`\n ],\n defaultConfiguration:\n options?.clean?.defaultConfiguration || \"production\",\n options: {\n root: projectRoot,\n configFile,\n projectType: projectConfig.projectType,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.prepare !== false &&\n !targets[options?.prepare?.targetName || \"prepare\"]\n ) {\n targets[options?.prepare?.targetName || \"prepare\"] = {\n cache: options?.prepare?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.prepare?.inputs)\n ? options.prepare.inputs\n : withNamedInputs(targetInputs, [\n options?.prepare?.inputs || \"typescript\"\n ]),\n outputs: options?.prepare?.outputs ?? [artifactsFolder],\n executor:\n options?.prepare?.executor ||\n `@${framework}/nx:${options?.prepare?.targetName || \"prepare\"}`,\n dependsOn:\n options?.prepare?.dependsOn ??\n [`^${options?.prepare?.targetName || \"build\"}`].filter(\n Boolean\n ),\n defaultConfiguration:\n options?.prepare?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.build !== false &&\n !targets[options?.build?.targetName || \"build\"]\n ) {\n targets[options?.build?.targetName || \"build\"] = {\n cache: options?.build?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.build?.inputs)\n ? options.build.inputs\n : withNamedInputs(targetInputs, [\n options?.build?.inputs || \"typescript\"\n ]),\n outputs: options?.build?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.build?.executor ||\n `@${framework}/nx:${options?.build?.targetName || \"build\"}`,\n dependsOn:\n options?.build?.dependsOn ??\n ([\n `^${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.build?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.lint !== false &&\n !targets[options?.lint?.targetName || \"lint\"]\n ) {\n targets[options?.lint?.targetName || \"lint\"] = {\n cache: options?.lint?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.lint?.inputs)\n ? options.lint.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.lint?.inputs\n ? [options.lint.inputs]\n : [\"linting\", \"typescript\"]\n ),\n outputs: options?.lint?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.lint?.executor ||\n `@${framework}/nx:${options?.lint?.targetName || \"lint\"}`,\n dependsOn:\n options?.lint?.dependsOn ??\n ([\n `^${options?.lint?.targetName || \"lint\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.lint?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.docs !== false &&\n !targets[options?.docs?.targetName || \"docs\"]\n ) {\n targets[options?.docs?.targetName || \"docs\"] = {\n cache: options?.docs?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.docs?.inputs)\n ? options.docs.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.docs?.inputs\n ? [options.docs.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.docs?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.docs?.executor ||\n `@${framework}/nx:${options?.docs?.targetName || \"docs\"}`,\n dependsOn:\n options?.docs?.dependsOn ??\n ([\n `^${options?.docs?.targetName || \"docs\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.docs?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.deploy !== false &&\n !targets[options?.deploy?.targetName || \"deploy\"]\n ) {\n targets[options?.deploy?.targetName || \"deploy\"] = {\n cache: options?.deploy?.cache ?? false,\n inputs: Array.isArray(options?.deploy?.inputs)\n ? options.deploy.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.deploy?.inputs\n ? [options.deploy.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.deploy?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.deploy?.executor ||\n `@${framework}/nx:${options?.deploy?.targetName || \"deploy\"}`,\n dependsOn:\n options?.deploy?.dependsOn ??\n ([\n `^${options?.deploy?.targetName || \"deploy\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.deploy?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n setDefaultProjectTags(projectConfig, name);\n addProjectTag(\n projectConfig,\n framework as ProjectTagVariant,\n projectConfig.projectType || \"library\",\n {\n overwrite: true\n }\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${\n title\n }] - ${new Date().toISOString()} - Completed preparing Nx configuration for project in root directory ${projectRoot}.`\n );\n }\n\n return {\n projects: {\n [root]: defu(projectConfig, {\n projectType: projectConfig.projectType || \"library\",\n root,\n sourceRoot: joinPaths(root, \"src\"),\n targets\n })\n }\n };\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - Failed to process the project configuration for file \"${\n configFile\n }\" - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error\"\n }`\n );\n\n return {};\n }\n },\n configFiles,\n options,\n contextV2\n );\n }\n ];\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error during plugin initialization\"\n }`\n );\n\n throw new Error(\n `Failed to initialize the ${title} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"See previous logs for more details\"\n }`,\n {\n cause: error instanceof Error ? error : undefined\n }\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["readNxJson"],"sources":["../../../src/helpers/constants.ts","../../../src/helpers/plugin-utilities.ts","../../../src/plugin/index.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\n/**\n * A list of Nx input strings that describe the Powerlines configuration file\n */\nexport const CONFIG_INPUTS = [\n \"{projectRoot}/{framework}.json\",\n \"{projectRoot}/{framework}.*.json\",\n \"{projectRoot}/{framework}.jsonc\",\n \"{projectRoot}/{framework}.*.jsonc\",\n \"{projectRoot}/{framework}.json5\",\n \"{projectRoot}/{framework}.*.json5\",\n \"{projectRoot}/{framework}.yaml\",\n \"{projectRoot}/{framework}.*.yaml\",\n \"{projectRoot}/{framework}.yml\",\n \"{projectRoot}/{framework}.*.yml\",\n \"{projectRoot}/{framework}.toml\",\n \"{projectRoot}/{framework}.*.toml\",\n \"{projectRoot}/{framework}.config.js\",\n \"{projectRoot}/{framework}.*.config.js\",\n \"{projectRoot}/{framework}.config.cjs\",\n \"{projectRoot}/{framework}.*.config.cjs\",\n \"{projectRoot}/{framework}.config.mjs\",\n \"{projectRoot}/{framework}.*.config.mjs\",\n \"{projectRoot}/{framework}.config.ts\",\n \"{projectRoot}/{framework}.*.config.ts\",\n \"{projectRoot}/{framework}.config.cts\",\n \"{projectRoot}/{framework}.*.config.cts\",\n \"{projectRoot}/{framework}.config.mts\",\n \"{projectRoot}/{framework}.*.config.mts\"\n] as const;\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\n/* eslint-disable no-console */\n\nimport type { CreateNodesResultV2, CreateNodesV2 } from \"@nx/devkit\";\nimport { createNodesFromFiles } from \"@nx/devkit\";\nimport type { ProjectTagVariant } from \"@storm-software/workspace-tools/types\";\nimport { withNamedInputs } from \"@storm-software/workspace-tools/utils/nx-json\";\nimport {\n getProjectConfigFromProjectRoot,\n getProjectRoot,\n getRoot\n} from \"@storm-software/workspace-tools/utils/plugin-helpers\";\nimport {\n addProjectTag,\n setDefaultProjectTags\n} from \"@storm-software/workspace-tools/utils/project-tags\";\nimport { isDevelopment } from \"@stryke/env/environment-checks\";\nimport { getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { PackageJson } from \"@stryke/types/package-json\";\nimport defu from \"defu\";\nimport { readFile } from \"node:fs/promises\";\nimport { readNxJson } from \"nx/src/config/nx-json.js\";\nimport type {\n ProjectConfiguration,\n TargetConfiguration\n} from \"nx/src/config/workspace-json-project-json.js\";\nimport type { PackageJson as PackageJsonNx } from \"nx/src/utils/package-json.js\";\nimport { readTargetsFromPackageJson } from \"nx/src/utils/package-json.js\";\nimport type { NxPluginOptions } from \"../types/plugin\";\nimport { CONFIG_INPUTS } from \"./constants\";\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxTargetInputs(framework: string): string[] {\n return CONFIG_INPUTS.map(input => input.replace(\"{framework}\", framework));\n}\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxPluginInputs(framework: string): string {\n return `**/{${getNxTargetInputs(framework)\n .map(input => input.replace(\"{projectRoot}/\", \"\"))\n .join(\",\")}}`;\n}\n\nexport interface CreateNxPluginOptions {\n /**\n * The name of the Nx plugin to create\n *\n * @remarks\n * This will be used in logging and project tagging.\n *\n * @defaultValue \"\\{framework\\}/plugin/nx\"\n */\n name?: string;\n\n /**\n * The folder where the generated runtime artifacts will be located\n *\n * @remarks\n * This folder will contain all runtime artifacts and builtins generated during the \"prepare\" phase.\n *\n * @defaultValue \"\\{projectRoot\\}/.powerlines\"\n */\n artifactsFolder?: string;\n\n /**\n * A string identifier that allows a child framework or tool to identify itself when using Powerlines.\n *\n * @remarks\n * If no values are provided for {@link OutputConfig.dts | output.dts} or {@link OutputConfig.artifactsFolder | output.artifactsFolder}, this value will be used as the default.\n *\n * @defaultValue \"powerlines\"\n */\n framework?: string;\n}\n\n// type LoadUserConfigFileFunction = (\n// cwd: string,\n// root: string,\n// mode: Mode,\n// command: string,\n// framework?: PartialKeys<FrameworkOptions, \"orgId\">,\n// configFile?: string\n// ) => Promise<ParsedUserConfig>;\n\n/**\n * Creates an Nx plugin that integrates Powerlines into the Nx build process.\n *\n * @param opts - Options for creating the Nx plugin\n * @returns A CreateNodesV2 function that can be used as an Nx plugin\n */\nexport function createNxPlugin<\n TOptions extends NxPluginOptions = NxPluginOptions\n>(opts?: CreateNxPluginOptions): CreateNodesV2<TOptions> {\n const framework = kebabCase(opts?.framework) || \"powerlines\";\n const title = `${titleCase(framework)} Nx Plugin`;\n\n try {\n const name = opts?.name || `${framework}/nx/plugin`;\n const artifactsFolder =\n opts?.artifactsFolder || `{projectRoot}/.${framework}`;\n\n const targetInputs = getNxTargetInputs(framework);\n const pluginInputs = getNxPluginInputs(framework);\n\n return [\n pluginInputs,\n async (configFiles, options, contextV2): Promise<CreateNodesResultV2> => {\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Initializing the ${title} for the following inputs: ${pluginInputs}`\n );\n }\n\n const envPaths = getEnvPaths({\n orgId: \"storm-software\",\n appId: framework,\n workspaceRoot: contextV2.workspaceRoot\n });\n if (!envPaths.cache) {\n throw new Error(\"The cache directory could not be determined.\");\n }\n\n const nxJson = readNxJson(contextV2.workspaceRoot);\n // const resolver = createJiti(contextV2.workspaceRoot, {\n // debug: !!options?.debug,\n // interopDefault: true,\n // fsCache: joinPaths(\n // envPaths.cache,\n // \"nx-plugin\",\n // murmurhash(contextV2.workspaceRoot, {\n // maxLength: 45\n // }),\n // \"jiti\"\n // ),\n // moduleCache: true\n // });\n\n // let loadUserConfigFile: LoadUserConfigFileFunction | undefined;\n // try {\n // loadUserConfigFile = await resolver\n // .import<{\n // loadUserConfigFile: LoadUserConfigFileFunction;\n // }>(resolver.esmResolve(\"powerlines/config\"))\n // .then(mod => mod?.loadUserConfigFile);\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration file function: ${\n // isError(error) ? error.message : \"Unknown error\"\n // }`\n // );\n // }\n\n return createNodesFromFiles(\n async (configFile, _, context) => {\n try {\n const projectRoot = getProjectRoot(\n configFile,\n contextV2.workspaceRoot\n );\n if (!projectRoot) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - package.json and ${\n framework\n } configuration files (i.e. ${\n framework\n }.config.ts) must be located in the project root directory: ${\n configFile\n }`\n );\n\n return {};\n }\n\n const root = getRoot(projectRoot, context);\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Loading ${\n framework\n } user configuration for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n // let userConfig = {} as UserConfig;\n // try {\n // if (loadUserConfigFile) {\n // const parsedConfig = await loadUserConfigFile(\n // contextV2.workspaceRoot,\n // projectRoot,\n // isDevelopment\n // ? \"development\"\n // : isTest\n // ? \"test\"\n // : \"production\",\n // \"build\",\n // { name: framework },\n // configFile\n // );\n // if (isSetObject(parsedConfig)) {\n // userConfig = parsedConfig.config as UserConfig;\n // }\n // }\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration for project in ${\n // projectRoot\n // } - ${\n // isError(error)\n // ? error.message\n // : isSetString(error)\n // ? error\n // : \"Unknown error\"\n // } \\n\\nPlease note: This error can occur if the project depends on another package in the workspace and the dependent package has not been built yet. To resolve this issue, please ensure that all dependent packages have been built successfully.${\n // isError(error) && error.stack\n // ? `\\n\\nStack trace:\\n${error.stack}`\n // : \"\"\n // }`\n // );\n // }\n\n if (\n !existsSync(\n joinPaths(\n contextV2.workspaceRoot,\n projectRoot,\n \"package.json\"\n )\n )\n ) {\n if (options?.verboseOutput) {\n console.warn(\n `[${\n title\n }] - ${new Date().toISOString()} - Cannot find \\`package.json\\` file in the project's root directory (path: \"${joinPaths(\n contextV2.workspaceRoot,\n projectRoot\n )}\"). Skipping project configuration.`\n );\n }\n\n return {};\n }\n\n const packageJsonContent = await readFile(\n joinPaths(contextV2.workspaceRoot, projectRoot, \"package.json\"),\n \"utf8\"\n );\n if (!packageJsonContent) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No package.json file found for project in root directory ${projectRoot}`\n );\n }\n\n return {};\n }\n\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n // if (\n // !(userConfig && Object.keys(userConfig).length > 0) &&\n // !packageJson?.[camelCase(framework)]\n // ) {\n // if (options?.verboseOutput) {\n // console.debug(\n // `[${title}] - ${new Date().toISOString()} - Skipping ${projectRoot} - no ${\n // framework\n // } configuration found for project in root directory.`\n // );\n // }\n\n // return {};\n // }\n\n const projectConfig = getProjectConfigFromProjectRoot(\n projectRoot,\n packageJson\n );\n if (!projectConfig) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No project configuration found for project in root directory ${\n projectRoot\n }`\n );\n }\n\n return {};\n }\n\n const targets: ProjectConfiguration[\"targets\"] =\n readTargetsFromPackageJson(\n packageJson as PackageJsonNx,\n nxJson,\n projectRoot,\n context.workspaceRoot\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Preparing Nx targets for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n if (\n options?.clean !== false &&\n !targets[options?.clean?.targetName || \"clean\"]\n ) {\n targets[options?.clean?.targetName || \"clean\"] = {\n cache: options?.clean?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.clean?.inputs)\n ? options.clean.inputs\n : withNamedInputs(targetInputs, [\n options?.clean?.inputs || \"typescript\"\n ]),\n outputs: options?.clean?.outputs,\n executor:\n options?.clean?.executor ||\n `@${framework}/nx:${options?.clean?.targetName || \"clean\"}`,\n dependsOn: options?.clean?.dependsOn ?? [\n `^${options?.clean?.targetName || \"clean\"}`\n ],\n defaultConfiguration:\n options?.clean?.defaultConfiguration || \"production\",\n options: {\n root: projectRoot,\n configFile,\n projectType: projectConfig.projectType,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.prepare !== false &&\n !targets[options?.prepare?.targetName || \"prepare\"]\n ) {\n targets[options?.prepare?.targetName || \"prepare\"] = {\n cache: options?.prepare?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.prepare?.inputs)\n ? options.prepare.inputs\n : withNamedInputs(targetInputs, [\n options?.prepare?.inputs || \"typescript\"\n ]),\n outputs: options?.prepare?.outputs ?? [artifactsFolder],\n executor:\n options?.prepare?.executor ||\n `@${framework}/nx:${options?.prepare?.targetName || \"prepare\"}`,\n dependsOn:\n options?.prepare?.dependsOn ??\n [`^${options?.prepare?.targetName || \"build\"}`].filter(\n Boolean\n ),\n defaultConfiguration:\n options?.prepare?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.build !== false &&\n !targets[options?.build?.targetName || \"build\"]\n ) {\n targets[options?.build?.targetName || \"build\"] = {\n cache: options?.build?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.build?.inputs)\n ? options.build.inputs\n : withNamedInputs(targetInputs, [\n options?.build?.inputs || \"typescript\"\n ]),\n outputs: options?.build?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.build?.executor ||\n `@${framework}/nx:${options?.build?.targetName || \"build\"}`,\n dependsOn:\n options?.build?.dependsOn ??\n ([\n `^${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.build?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.lint !== false &&\n !targets[options?.lint?.targetName || \"lint\"]\n ) {\n targets[options?.lint?.targetName || \"lint\"] = {\n cache: options?.lint?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.lint?.inputs)\n ? options.lint.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.lint?.inputs\n ? [options.lint.inputs]\n : [\"linting\", \"typescript\"]\n ),\n outputs: options?.lint?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.lint?.executor ||\n `@${framework}/nx:${options?.lint?.targetName || \"lint\"}`,\n dependsOn:\n options?.lint?.dependsOn ??\n ([\n `^${options?.lint?.targetName || \"lint\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.lint?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.docs !== false &&\n !targets[options?.docs?.targetName || \"docs\"]\n ) {\n targets[options?.docs?.targetName || \"docs\"] = {\n cache: options?.docs?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.docs?.inputs)\n ? options.docs.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.docs?.inputs\n ? [options.docs.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.docs?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.docs?.executor ||\n `@${framework}/nx:${options?.docs?.targetName || \"docs\"}`,\n dependsOn:\n options?.docs?.dependsOn ??\n ([\n `^${options?.docs?.targetName || \"docs\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.docs?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.deploy !== false &&\n !targets[options?.deploy?.targetName || \"deploy\"]\n ) {\n targets[options?.deploy?.targetName || \"deploy\"] = {\n cache: options?.deploy?.cache ?? false,\n inputs: Array.isArray(options?.deploy?.inputs)\n ? options.deploy.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.deploy?.inputs\n ? [options.deploy.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.deploy?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.deploy?.executor ||\n `@${framework}/nx:${options?.deploy?.targetName || \"deploy\"}`,\n dependsOn:\n options?.deploy?.dependsOn ??\n ([\n `^${options?.deploy?.targetName || \"deploy\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.deploy?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n setDefaultProjectTags(projectConfig, name);\n addProjectTag(\n projectConfig,\n framework as ProjectTagVariant,\n projectConfig.projectType || \"library\",\n {\n overwrite: true\n }\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${\n title\n }] - ${new Date().toISOString()} - Completed preparing Nx configuration for project in root directory ${projectRoot}.`\n );\n }\n\n return {\n projects: {\n [root]: defu(projectConfig, {\n projectType: projectConfig.projectType || \"library\",\n root,\n sourceRoot: joinPaths(root, \"src\"),\n targets\n })\n }\n };\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - Failed to process the project configuration for file \"${\n configFile\n }\" - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error\"\n }`\n );\n\n return {};\n }\n },\n configFiles,\n options,\n contextV2\n );\n }\n ];\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error during plugin initialization\"\n }`\n );\n\n throw new Error(\n `Failed to initialize the ${title} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"See previous logs for more details\"\n }`,\n {\n cause: error instanceof Error ? error : undefined\n }\n );\n }\n}\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 { createNxPlugin } from \"../helpers/plugin-utilities\";\nimport { NxPluginOptions } from \"../types/plugin\";\n\nexport const createNodesV2 = createNxPlugin<NxPluginOptions>({\n framework: \"powerlines\"\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["readNxJson"],"sources":["../../../src/helpers/constants.ts","../../../src/helpers/plugin-utilities.ts","../../../src/plugin/index.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\n/**\n * A list of Nx input strings that describe the Powerlines configuration file\n */\nexport const CONFIG_INPUTS = [\n \"{projectRoot}/{framework}.json\",\n \"{projectRoot}/{framework}.*.json\",\n \"{projectRoot}/{framework}.jsonc\",\n \"{projectRoot}/{framework}.*.jsonc\",\n \"{projectRoot}/{framework}.json5\",\n \"{projectRoot}/{framework}.*.json5\",\n \"{projectRoot}/{framework}.yaml\",\n \"{projectRoot}/{framework}.*.yaml\",\n \"{projectRoot}/{framework}.yml\",\n \"{projectRoot}/{framework}.*.yml\",\n \"{projectRoot}/{framework}.toml\",\n \"{projectRoot}/{framework}.*.toml\",\n \"{projectRoot}/{framework}.config.js\",\n \"{projectRoot}/{framework}.*.config.js\",\n \"{projectRoot}/{framework}.config.cjs\",\n \"{projectRoot}/{framework}.*.config.cjs\",\n \"{projectRoot}/{framework}.config.mjs\",\n \"{projectRoot}/{framework}.*.config.mjs\",\n \"{projectRoot}/{framework}.config.ts\",\n \"{projectRoot}/{framework}.*.config.ts\",\n \"{projectRoot}/{framework}.config.cts\",\n \"{projectRoot}/{framework}.*.config.cts\",\n \"{projectRoot}/{framework}.config.mts\",\n \"{projectRoot}/{framework}.*.config.mts\"\n] as const;\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\n/* eslint-disable no-console */\n\nimport type { CreateNodesResultV2, CreateNodesV2 } from \"@nx/devkit\";\nimport { createNodesFromFiles } from \"@nx/devkit\";\nimport type { ProjectTagVariant } from \"@storm-software/workspace-tools/types\";\nimport { withNamedInputs } from \"@storm-software/workspace-tools/utils/nx-json\";\nimport {\n getProjectConfigFromProjectRoot,\n getProjectRoot,\n getRoot\n} from \"@storm-software/workspace-tools/utils/plugin-helpers\";\nimport {\n addProjectTag,\n setDefaultProjectTags\n} from \"@storm-software/workspace-tools/utils/project-tags\";\nimport { isDevelopment } from \"@stryke/env/environment-checks\";\nimport { getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { PackageJson } from \"@stryke/types/package-json\";\nimport defu from \"defu\";\nimport { readFile } from \"node:fs/promises\";\nimport { readNxJson } from \"nx/src/config/nx-json.js\";\nimport type {\n ProjectConfiguration,\n TargetConfiguration\n} from \"nx/src/config/workspace-json-project-json.js\";\nimport type { PackageJson as PackageJsonNx } from \"nx/src/utils/package-json.js\";\nimport { readTargetsFromPackageJson } from \"nx/src/utils/package-json.js\";\nimport type { NxPluginOptions } from \"../types/plugin\";\nimport { CONFIG_INPUTS } from \"./constants\";\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxTargetInputs(framework: string): string[] {\n return CONFIG_INPUTS.map(input => input.replace(\"{framework}\", framework));\n}\n\n/**\n * Generates Nx input strings for the Powerlines configuration file, replacing the `{framework}` placeholder with the specified framework name.\n *\n * @param framework - The framework name to use in the input strings\n * @returns An array of Nx input strings for the configuration file\n */\nexport function getNxPluginInputs(framework: string): string {\n return `**/{${getNxTargetInputs(framework)\n .map(input => input.replace(\"{projectRoot}/\", \"\"))\n .join(\",\")}}`;\n}\n\nexport interface CreateNxPluginOptions {\n /**\n * The name of the Nx plugin to create\n *\n * @remarks\n * This will be used in logging and project tagging.\n *\n * @defaultValue \"\\{framework\\}/plugin/nx\"\n */\n name?: string;\n\n /**\n * The folder where the generated runtime artifacts will be located\n *\n * @remarks\n * This folder will contain all runtime artifacts and builtins generated during the \"prepare\" phase.\n *\n * @defaultValue \"\\{projectRoot\\}/.powerlines\"\n */\n artifactsFolder?: string;\n\n /**\n * A string identifier that allows a child framework or tool to identify itself when using Powerlines.\n *\n * @remarks\n * If no values are provided for {@link OutputConfig.dts | output.dts} or {@link OutputConfig.artifactsFolder | output.artifactsFolder}, this value will be used as the default.\n *\n * @defaultValue \"powerlines\"\n */\n framework?: string;\n}\n\n// type LoadUserConfigFileFunction = (\n// cwd: string,\n// root: string,\n// mode: Mode,\n// command: string,\n// framework?: PartialKeys<FrameworkOptions, \"orgId\">,\n// configFile?: string\n// ) => Promise<ParsedUserConfig>;\n\n/**\n * Creates an Nx plugin that integrates Powerlines into the Nx build process.\n *\n * @param opts - Options for creating the Nx plugin\n * @returns A CreateNodesV2 function that can be used as an Nx plugin\n */\nexport function createNxPlugin<\n TOptions extends NxPluginOptions = NxPluginOptions\n>(opts?: CreateNxPluginOptions): CreateNodesV2<TOptions> {\n const framework = kebabCase(opts?.framework) || \"powerlines\";\n const title = `${titleCase(framework)} Nx Plugin`;\n\n try {\n const name = opts?.name || `${framework}/nx/plugin`;\n const artifactsFolder =\n opts?.artifactsFolder || `{projectRoot}/.${framework}`;\n\n const targetInputs = getNxTargetInputs(framework);\n const pluginInputs = getNxPluginInputs(framework);\n\n return [\n pluginInputs,\n async (configFiles, options, contextV2): Promise<CreateNodesResultV2> => {\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Initializing the ${title} for the following inputs: ${pluginInputs}`\n );\n }\n\n const envPaths = getEnvPaths({\n orgId: \"storm-software\",\n appId: framework,\n workspaceRoot: contextV2.workspaceRoot\n });\n if (!envPaths.cache) {\n throw new Error(\"The cache directory could not be determined.\");\n }\n\n const nxJson = readNxJson(contextV2.workspaceRoot);\n // const resolver = createJiti(contextV2.workspaceRoot, {\n // debug: !!options?.debug,\n // interopDefault: true,\n // fsCache: joinPaths(\n // envPaths.cache,\n // \"nx-plugin\",\n // murmurhash(contextV2.workspaceRoot, {\n // maxLength: 45\n // }),\n // \"jiti\"\n // ),\n // moduleCache: true\n // });\n\n // let loadUserConfigFile: LoadUserConfigFileFunction | undefined;\n // try {\n // loadUserConfigFile = await resolver\n // .import<{\n // loadUserConfigFile: LoadUserConfigFileFunction;\n // }>(resolver.esmResolve(\"powerlines/config\"))\n // .then(mod => mod?.loadUserConfigFile);\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration file function: ${\n // isError(error) ? error.message : \"Unknown error\"\n // }`\n // );\n // }\n\n return createNodesFromFiles(\n async (configFile, _, context) => {\n try {\n const projectRoot = getProjectRoot(\n configFile,\n contextV2.workspaceRoot\n );\n if (!projectRoot) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - package.json and ${\n framework\n } configuration files (i.e. ${\n framework\n }.config.ts) must be located in the project root directory: ${\n configFile\n }`\n );\n\n return {};\n }\n\n const root = getRoot(projectRoot, context);\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Loading ${\n framework\n } user configuration for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n // let userConfig = {} as UserConfig;\n // try {\n // if (loadUserConfigFile) {\n // const parsedConfig = await loadUserConfigFile(\n // contextV2.workspaceRoot,\n // projectRoot,\n // isDevelopment\n // ? \"development\"\n // : isTest\n // ? \"test\"\n // : \"production\",\n // \"build\",\n // { name: framework },\n // configFile\n // );\n // if (isSetObject(parsedConfig)) {\n // userConfig = parsedConfig.config as UserConfig;\n // }\n // }\n // } catch (error) {\n // console.warn(\n // `[${title}] - ${new Date().toISOString()} - Failed to load user configuration for project in ${\n // projectRoot\n // } - ${\n // isError(error)\n // ? error.message\n // : isSetString(error)\n // ? error\n // : \"Unknown error\"\n // } \\n\\nPlease note: This error can occur if the project depends on another package in the workspace and the dependent package has not been built yet. To resolve this issue, please ensure that all dependent packages have been built successfully.${\n // isError(error) && error.stack\n // ? `\\n\\nStack trace:\\n${error.stack}`\n // : \"\"\n // }`\n // );\n // }\n\n if (\n !existsSync(\n joinPaths(\n contextV2.workspaceRoot,\n projectRoot,\n \"package.json\"\n )\n )\n ) {\n if (options?.verboseOutput) {\n console.warn(\n `[${\n title\n }] - ${new Date().toISOString()} - Cannot find \\`package.json\\` file in the project's root directory (path: \"${joinPaths(\n contextV2.workspaceRoot,\n projectRoot\n )}\"). Skipping project configuration.`\n );\n }\n\n return {};\n }\n\n const packageJsonContent = await readFile(\n joinPaths(contextV2.workspaceRoot, projectRoot, \"package.json\"),\n \"utf8\"\n );\n if (!packageJsonContent) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No package.json file found for project in root directory ${projectRoot}`\n );\n }\n\n return {};\n }\n\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n // if (\n // !(userConfig && Object.keys(userConfig).length > 0) &&\n // !packageJson?.[camelCase(framework)]\n // ) {\n // if (options?.verboseOutput) {\n // console.debug(\n // `[${title}] - ${new Date().toISOString()} - Skipping ${projectRoot} - no ${\n // framework\n // } configuration found for project in root directory.`\n // );\n // }\n\n // return {};\n // }\n\n const projectConfig = getProjectConfigFromProjectRoot(\n projectRoot,\n packageJson\n );\n if (!projectConfig) {\n if (options?.verboseOutput) {\n console.warn(\n `[${title}] - ${new Date().toISOString()} - No project configuration found for project in root directory ${\n projectRoot\n }`\n );\n }\n\n return {};\n }\n\n const targets: ProjectConfiguration[\"targets\"] =\n readTargetsFromPackageJson(\n packageJson as PackageJsonNx,\n nxJson,\n projectRoot,\n context.workspaceRoot\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${title}] - ${new Date().toISOString()} - Preparing Nx targets for project in root directory ${\n projectRoot\n }.`\n );\n }\n\n if (\n options?.clean !== false &&\n !targets[options?.clean?.targetName || \"clean\"]\n ) {\n targets[options?.clean?.targetName || \"clean\"] = {\n cache: options?.clean?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.clean?.inputs)\n ? options.clean.inputs\n : withNamedInputs(targetInputs, [\n options?.clean?.inputs || \"typescript\"\n ]),\n outputs: options?.clean?.outputs,\n executor:\n options?.clean?.executor ||\n `@${framework}/nx:${options?.clean?.targetName || \"clean\"}`,\n dependsOn: options?.clean?.dependsOn ?? [\n `^${options?.clean?.targetName || \"clean\"}`\n ],\n defaultConfiguration:\n options?.clean?.defaultConfiguration || \"production\",\n options: {\n root: projectRoot,\n configFile,\n projectType: projectConfig.projectType,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.prepare !== false &&\n !targets[options?.prepare?.targetName || \"prepare\"]\n ) {\n targets[options?.prepare?.targetName || \"prepare\"] = {\n cache: options?.prepare?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.prepare?.inputs)\n ? options.prepare.inputs\n : withNamedInputs(targetInputs, [\n options?.prepare?.inputs || \"typescript\"\n ]),\n outputs: options?.prepare?.outputs ?? [artifactsFolder],\n executor:\n options?.prepare?.executor ||\n `@${framework}/nx:${options?.prepare?.targetName || \"prepare\"}`,\n dependsOn:\n options?.prepare?.dependsOn ??\n [`^${options?.prepare?.targetName || \"build\"}`].filter(\n Boolean\n ),\n defaultConfiguration:\n options?.prepare?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.build !== false &&\n !targets[options?.build?.targetName || \"build\"]\n ) {\n targets[options?.build?.targetName || \"build\"] = {\n cache: options?.build?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.build?.inputs)\n ? options.build.inputs\n : withNamedInputs(targetInputs, [\n options?.build?.inputs || \"typescript\"\n ]),\n outputs: options?.build?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.build?.executor ||\n `@${framework}/nx:${options?.build?.targetName || \"build\"}`,\n dependsOn:\n options?.build?.dependsOn ??\n ([\n `^${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.build?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.lint !== false &&\n !targets[options?.lint?.targetName || \"lint\"]\n ) {\n targets[options?.lint?.targetName || \"lint\"] = {\n cache: options?.lint?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.lint?.inputs)\n ? options.lint.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.lint?.inputs\n ? [options.lint.inputs]\n : [\"linting\", \"typescript\"]\n ),\n outputs: options?.lint?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.lint?.executor ||\n `@${framework}/nx:${options?.lint?.targetName || \"lint\"}`,\n dependsOn:\n options?.lint?.dependsOn ??\n ([\n `^${options?.lint?.targetName || \"lint\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.lint?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.docs !== false &&\n !targets[options?.docs?.targetName || \"docs\"]\n ) {\n targets[options?.docs?.targetName || \"docs\"] = {\n cache: options?.docs?.cache ?? options?.cache ?? true,\n inputs: Array.isArray(options?.docs?.inputs)\n ? options.docs.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.docs?.inputs\n ? [options.docs.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.docs?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.docs?.executor ||\n `@${framework}/nx:${options?.docs?.targetName || \"docs\"}`,\n dependsOn:\n options?.docs?.dependsOn ??\n ([\n `^${options?.docs?.targetName || \"docs\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.docs?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n if (\n options?.deploy !== false &&\n !targets[options?.deploy?.targetName || \"deploy\"]\n ) {\n targets[options?.deploy?.targetName || \"deploy\"] = {\n cache: options?.deploy?.cache ?? false,\n inputs: Array.isArray(options?.deploy?.inputs)\n ? options.deploy.inputs\n : withNamedInputs(\n [...targetInputs, artifactsFolder],\n options?.deploy?.inputs\n ? [options.deploy.inputs]\n : [\"documentation\", \"typescript\"]\n ),\n outputs: options?.deploy?.outputs ?? [\"{options.outputPath}\"],\n executor:\n options?.deploy?.executor ||\n `@${framework}/nx:${options?.deploy?.targetName || \"deploy\"}`,\n dependsOn:\n options?.deploy?.dependsOn ??\n ([\n `^${options?.deploy?.targetName || \"deploy\"}`,\n options?.build !== false &&\n `${options?.build?.targetName || \"build\"}`,\n isDevelopment\n ? undefined\n : isSetObject(options?.prepare) &&\n options?.prepare?.targetName\n ? options?.prepare?.targetName\n : \"prepare\"\n ].filter(Boolean) as TargetConfiguration[\"dependsOn\"]),\n defaultConfiguration:\n options?.deploy?.defaultConfiguration || \"production\",\n options: {\n projectType: projectConfig.projectType,\n configFile,\n outputPath: `{workspaceRoot}/${projectRoot}/dist`,\n copyPath: `{workspaceRoot}/dist/${projectRoot}`\n },\n configurations: {\n production: {\n mode: \"production\"\n },\n test: {\n mode: \"test\"\n },\n development: {\n mode: \"development\",\n skipCache: true\n }\n }\n };\n }\n\n setDefaultProjectTags(projectConfig, name);\n addProjectTag(\n projectConfig,\n framework as ProjectTagVariant,\n projectConfig.projectType || \"library\",\n {\n overwrite: true\n }\n );\n\n if (options?.verboseOutput) {\n console.debug(\n `[${\n title\n }] - ${new Date().toISOString()} - Completed preparing Nx configuration for project in root directory ${projectRoot}.`\n );\n }\n\n return {\n projects: {\n [root]: defu(projectConfig, {\n projectType: projectConfig.projectType || \"library\",\n root,\n sourceRoot: joinPaths(root, \"src\"),\n targets\n })\n }\n };\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - Failed to process the project configuration for file \"${\n configFile\n }\" - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error\"\n }`\n );\n\n return {};\n }\n },\n configFiles,\n options,\n contextV2\n );\n }\n ];\n } catch (error) {\n console.error(\n `[${title}] - ${new Date().toISOString()} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"Unknown fatal error during plugin initialization\"\n }`\n );\n\n throw new Error(\n `Failed to initialize the ${title} - ${\n isError(error)\n ? error.message\n : isSetString(error)\n ? error\n : \"See previous logs for more details\"\n }`,\n {\n cause: error instanceof Error ? error : undefined\n }\n );\n }\n}\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 { createNxPlugin } from \"../helpers/plugin-utilities\";\nimport { NxPluginOptions } from \"../types/plugin\";\n\nexport const createNodesV2 = createNxPlugin<NxPluginOptions>({\n framework: \"powerlines\"\n});\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/nx",
3
- "version": "0.13.170",
3
+ "version": "0.13.171",
4
4
  "private": false,
5
5
  "description": "A Nx plugin to support Powerlines development in Nx monorepos.",
6
6
  "repository": {
@@ -174,10 +174,10 @@
174
174
  ],
175
175
  "dependencies": {
176
176
  "@nx/devkit": "^22.7.5",
177
- "@storm-software/build-tools": "^0.158.206",
178
- "@storm-software/config": "^1.137.78",
179
- "@storm-software/config-tools": "^1.190.46",
180
- "@storm-software/workspace-tools": "^1.296.24",
177
+ "@storm-software/build-tools": "^0.158.213",
178
+ "@storm-software/config": "^1.137.85",
179
+ "@storm-software/config-tools": "^1.190.53",
180
+ "@storm-software/workspace-tools": "^1.296.31",
181
181
  "@stryke/env": "^0.20.102",
182
182
  "@stryke/fs": "^0.33.85",
183
183
  "@stryke/hash": "^0.13.38",
@@ -187,13 +187,13 @@
187
187
  "@stryke/type-checks": "^0.6.17",
188
188
  "defu": "^6.1.7",
189
189
  "jiti": "^2.7.0",
190
- "powerlines": "^0.47.131"
190
+ "powerlines": "^0.47.132"
191
191
  },
192
192
  "devDependencies": {
193
193
  "@nx/workspace": "22.7.5",
194
- "@storm-software/testing-tools": "^1.119.199",
195
- "@storm-software/tsup": "^0.2.204",
196
- "@storm-software/untyped": "^0.24.188",
194
+ "@storm-software/testing-tools": "^1.119.206",
195
+ "@storm-software/tsup": "^0.2.211",
196
+ "@storm-software/untyped": "^0.24.195",
197
197
  "@stryke/types": "^0.12.12",
198
198
  "@types/node": "^25.9.2",
199
199
  "eslint-flat-config-utils": "^2.1.4",
@@ -206,5 +206,5 @@
206
206
  "publishConfig": { "access": "public" },
207
207
  "executors": "./executors.json",
208
208
  "generators": "./generators.json",
209
- "gitHead": "771c363a82c474534719b5c2f80c3274fc10b1e0"
209
+ "gitHead": "2667413150461f29ad1786cefd8e00137862aa6c"
210
210
  }