@powerlines/nx 0.10.24 → 0.10.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{chunk-RAUJ3U2D.js → chunk-2SFOQMAA.js} +32 -11
  3. package/dist/{chunk-EYCHNX35.js → chunk-4A6Y7MGQ.js} +2 -2
  4. package/dist/{chunk-JV366LTN.mjs → chunk-6UH4EGMN.mjs} +1 -1
  5. package/dist/{chunk-GFUZORW3.js → chunk-6WVDB4DZ.js} +2 -2
  6. package/dist/{chunk-PZGSOSV4.js → chunk-7TPTVC3S.js} +2 -2
  7. package/dist/{chunk-BGLSTX6F.js → chunk-A26KXB6A.js} +2 -2
  8. package/dist/{chunk-PNGMBVSP.mjs → chunk-A7SAZMVH.mjs} +1 -1
  9. package/dist/{chunk-LTCZN4I4.js → chunk-ACE6O62X.js} +11 -19
  10. package/dist/{chunk-N5IOYNUV.js → chunk-B5L3T46G.js} +2 -2
  11. package/dist/{chunk-4QIKRF4D.mjs → chunk-BXKPRYNH.mjs} +8 -8
  12. package/dist/{chunk-HJUENOPY.mjs → chunk-IAWSQ5AX.mjs} +24 -3
  13. package/dist/{chunk-676DOF5H.js → chunk-JPTGZQLU.js} +9 -9
  14. package/dist/{chunk-ECQAG447.mjs → chunk-KCL7KVDF.mjs} +1 -1
  15. package/dist/{chunk-R6VKTKIJ.mjs → chunk-L46S3DXB.mjs} +1 -1
  16. package/dist/{chunk-RCEEHPJE.mjs → chunk-ONWCIW2E.mjs} +1 -1
  17. package/dist/{chunk-AQAUVXZI.js → chunk-PJYRCGK4.js} +2 -2
  18. package/dist/{chunk-FMYWKI25.mjs → chunk-X6GFPXO4.mjs} +12 -19
  19. package/dist/{chunk-TSJZC5A3.mjs → chunk-Z22G7IM3.mjs} +1 -1
  20. package/dist/executors.js +12 -12
  21. package/dist/executors.mjs +7 -7
  22. package/dist/index.js +18 -18
  23. package/dist/index.mjs +9 -9
  24. package/dist/src/base/base-executor.js +3 -3
  25. package/dist/src/base/base-executor.mjs +2 -2
  26. package/dist/src/executors/build/executor.js +5 -5
  27. package/dist/src/executors/build/executor.mjs +3 -3
  28. package/dist/src/executors/clean/executor.js +5 -5
  29. package/dist/src/executors/clean/executor.mjs +3 -3
  30. package/dist/src/executors/docs/executor.js +5 -5
  31. package/dist/src/executors/docs/executor.mjs +3 -3
  32. package/dist/src/executors/lint/executor.js +5 -5
  33. package/dist/src/executors/lint/executor.mjs +3 -3
  34. package/dist/src/executors/prepare/executor.js +5 -5
  35. package/dist/src/executors/prepare/executor.mjs +3 -3
  36. package/dist/src/helpers/plugin-utilities.js +5 -5
  37. package/dist/src/helpers/plugin-utilities.mjs +2 -2
  38. package/dist/src/plugin/index.js +4 -4
  39. package/dist/src/plugin/index.mjs +3 -3
  40. package/package.json +10 -10
  41. package/dist/chunk-62CNXBCW.js +0 -10
  42. package/dist/chunk-7N6FX55G.js +0 -347
  43. package/dist/chunk-SAVSMAFN.mjs +0 -8
  44. package/dist/chunk-XRMEXEW2.mjs +0 -339
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  # Changelog for Powerlines - Nx
4
4
 
5
+ ## [0.10.26](https://github.com/storm-software/powerlines/releases/tag/nx%400.10.26) (11/20/2025)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **nx:** Resolve issue with Nx plugin's `dependsOn` values
10
+ ([2b8ad3d](https://github.com/storm-software/powerlines/commit/2b8ad3d))
11
+
12
+ ### Updated Dependencies
13
+
14
+ - Updated **powerlines** to **v0.23.9**
15
+
16
+ ## [0.10.25](https://github.com/storm-software/powerlines/releases/tag/nx%400.10.25) (11/20/2025)
17
+
18
+ ### Bug Fixes
19
+
20
+ - **powerlines:** Fixed configuration file resolution issues
21
+ ([246a997](https://github.com/storm-software/powerlines/commit/246a997))
22
+
23
+ ### Updated Dependencies
24
+
25
+ - Updated **powerlines** to **v0.23.8**
26
+
5
27
  ## [0.10.24](https://github.com/storm-software/powerlines/releases/tag/nx%400.10.24) (11/20/2025)
6
28
 
7
29
  ### Updated Dependencies
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLTCZN4I4_js = require('./chunk-LTCZN4I4.js');
3
+ var chunkACE6O62X_js = require('./chunk-ACE6O62X.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
  var logger = require('@storm-software/config-tools/logger');
6
6
  var baseExecutor = require('@storm-software/workspace-tools/base/base-executor');
@@ -42,6 +42,7 @@ var writeFile$1 = require('@stryke/fs/write-file');
42
42
  var prettier = require('prettier');
43
43
  var getEnvPaths = require('@stryke/env/get-env-paths');
44
44
  var getWorkspaceRoot = require('@stryke/fs/get-workspace-root');
45
+ var hashFiles = require('@stryke/hash/hash-files');
45
46
  var murmurhash = require('@stryke/hash/murmurhash');
46
47
  var getUnique = require('@stryke/helpers/get-unique');
47
48
  var omit = require('@stryke/helpers/omit');
@@ -2676,7 +2677,7 @@ var PowerlinesContext = class _PowerlinesContext {
2676
2677
  * @returns A promise that resolves to the new context.
2677
2678
  */
2678
2679
  static async from(workspaceRoot, config) {
2679
- const context = new _PowerlinesContext(await chunkLTCZN4I4_js.loadWorkspaceConfig(workspaceRoot, config.root));
2680
+ const context = new _PowerlinesContext(await chunkACE6O62X_js.loadWorkspaceConfig(workspaceRoot, config.root));
2680
2681
  await context.withUserConfig(config);
2681
2682
  context.powerlinesPath = await resolve.resolvePackage("powerlines");
2682
2683
  if (!context.powerlinesPath) {
@@ -2773,10 +2774,10 @@ var PowerlinesContext = class _PowerlinesContext {
2773
2774
  workspaceRoot: this.workspaceConfig?.workspaceRoot,
2774
2775
  projectRoot: this.config?.projectRoot
2775
2776
  }, {
2776
- maxLength: chunkLTCZN4I4_js.PROJECT_ROOT_HASH_LENGTH
2777
+ maxLength: chunkACE6O62X_js.PROJECT_ROOT_HASH_LENGTH
2777
2778
  }),
2778
2779
  configHash: murmurhash.murmurhash(this.config, {
2779
- maxLength: chunkLTCZN4I4_js.CACHE_HASH_LENGTH
2780
+ maxLength: chunkACE6O62X_js.CACHE_HASH_LENGTH
2780
2781
  })
2781
2782
  };
2782
2783
  }
@@ -2836,7 +2837,7 @@ var PowerlinesContext = class _PowerlinesContext {
2836
2837
  * Get the path to the data directory for the project
2837
2838
  */
2838
2839
  get dataPath() {
2839
- return join.joinPaths(this.envPaths.data, "projects", chunkLTCZN4I4_js.getPrefixedProjectRootHash(this.config.name, this.meta.projectRootHash));
2840
+ return join.joinPaths(this.envPaths.data, "projects", chunkACE6O62X_js.getPrefixedProjectRootHash(this.config.name, this.meta.projectRootHash));
2840
2841
  }
2841
2842
  /**
2842
2843
  * Get the path to the cache directory for the project
@@ -2846,7 +2847,7 @@ var PowerlinesContext = class _PowerlinesContext {
2846
2847
  checksum: this.#checksum,
2847
2848
  config: this.meta.configHash
2848
2849
  }, {
2849
- maxLength: chunkLTCZN4I4_js.CACHE_HASH_LENGTH
2850
+ maxLength: chunkACE6O62X_js.CACHE_HASH_LENGTH
2850
2851
  }));
2851
2852
  }
2852
2853
  /**
@@ -3033,6 +3034,26 @@ var PowerlinesContext = class _PowerlinesContext {
3033
3034
  */
3034
3035
  logFn;
3035
3036
  /**
3037
+ * Generates a checksum representing the current context state
3038
+ *
3039
+ * @param root - The root directory of the project to generate the checksum for
3040
+ * @returns A promise that resolves to a string representing the checksum
3041
+ */
3042
+ async generateChecksum(root = this.config.projectRoot) {
3043
+ this.#checksum = await hashFiles.hashDirectory(root, {
3044
+ ignore: [
3045
+ "node_modules",
3046
+ ".git",
3047
+ ".nx",
3048
+ ".cache",
3049
+ ".storm",
3050
+ "tmp",
3051
+ "dist"
3052
+ ]
3053
+ });
3054
+ return this.#checksum;
3055
+ }
3056
+ /**
3036
3057
  * Initialize the context with the provided configuration options
3037
3058
  *
3038
3059
  * @param config - The partial user configuration to use for initialization.
@@ -3064,7 +3085,7 @@ var PowerlinesContext = class _PowerlinesContext {
3064
3085
  if (exists.existsSync(packageJsonPath)) {
3065
3086
  this.packageJson = await json.readJsonFile(packageJsonPath);
3066
3087
  }
3067
- this.#checksum = await chunkLTCZN4I4_js.getChecksum(cacheKey.projectRoot);
3088
+ this.#checksum = await this.generateChecksum(cacheKey.projectRoot);
3068
3089
  this.resolver = createResolver({
3069
3090
  workspaceRoot: this.workspaceConfig.workspaceRoot,
3070
3091
  projectRoot: cacheKey.projectRoot,
@@ -3072,7 +3093,7 @@ var PowerlinesContext = class _PowerlinesContext {
3072
3093
  mode: cacheKey.mode,
3073
3094
  skipCache: cacheKey.skipCache
3074
3095
  });
3075
- const userConfig = await chunkLTCZN4I4_js.loadUserConfigFile(cacheKey.projectRoot, this.resolver, cacheKey.command, cacheKey.mode, cacheKey.configFile, cacheKey.framework);
3096
+ const userConfig = await chunkACE6O62X_js.loadUserConfigFile(cacheKey.projectRoot, this.workspaceConfig.workspaceRoot, this.resolver, cacheKey.command, cacheKey.mode, cacheKey.configFile, cacheKey.framework);
3076
3097
  this.mergeUserConfig(userConfig.config);
3077
3098
  configCache.set(cacheKey, {
3078
3099
  projectJson: this.projectJson,
@@ -3431,7 +3452,7 @@ var PowerlinesAPIContext = class _PowerlinesAPIContext extends PowerlinesContext
3431
3452
  * @returns A promise that resolves to the new context.
3432
3453
  */
3433
3454
  static async from(workspaceRoot, config) {
3434
- const context = new _PowerlinesAPIContext(await chunkLTCZN4I4_js.loadWorkspaceConfig(workspaceRoot, config.root));
3455
+ const context = new _PowerlinesAPIContext(await chunkACE6O62X_js.loadWorkspaceConfig(workspaceRoot, config.root));
3435
3456
  await context.withUserConfig(config);
3436
3457
  context.powerlinesPath = await resolve.resolvePackage("powerlines");
3437
3458
  if (!context.powerlinesPath) {
@@ -3619,7 +3640,7 @@ ${context.entry.map((entry) => `- ${entry.input.file || entry.file}${entry.outpu
3619
3640
 
3620
3641
  ${console.formatLogMessage(context.config)}`);
3621
3642
  context.fs[__VFS_PATCH__]();
3622
- await chunkLTCZN4I4_js.writeMetaFile(context);
3643
+ await chunkACE6O62X_js.writeMetaFile(context);
3623
3644
  context.persistedMeta = context.meta;
3624
3645
  if (!exists.existsSync(context.cachePath)) {
3625
3646
  await helpers.createDirectory(context.cachePath);
@@ -3749,7 +3770,7 @@ ${formatTypes(generatedTypes)}
3749
3770
  throw new Error("Failed to parse the TypeScript configuration file.");
3750
3771
  }
3751
3772
  await this.callPostHook(context, "prepare");
3752
- await chunkLTCZN4I4_js.writeMetaFile(context);
3773
+ await chunkACE6O62X_js.writeMetaFile(context);
3753
3774
  context.fs[__VFS_REVERT__]();
3754
3775
  });
3755
3776
  this.context.log(types.LogLevelLabel.INFO, "Powerlines API has been prepared successfully");
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRAUJ3U2D_js = require('./chunk-RAUJ3U2D.js');
3
+ var chunk2SFOQMAA_js = require('./chunk-2SFOQMAA.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
  var defu = require('defu');
6
6
 
@@ -19,7 +19,7 @@ async function executorFn(context, api) {
19
19
  };
20
20
  }
21
21
  chunkSHUYVCID_js.__name(executorFn, "executorFn");
22
- var executor = chunkRAUJ3U2D_js.withExecutor("build", executorFn);
22
+ var executor = chunk2SFOQMAA_js.withExecutor("build", executorFn);
23
23
  var executor_default = executor;
24
24
 
25
25
  exports.executorFn = executorFn;
@@ -1,4 +1,4 @@
1
- import { withExecutor } from './chunk-HJUENOPY.mjs';
1
+ import { withExecutor } from './chunk-IAWSQ5AX.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
  import defu from 'defu';
4
4
 
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk676DOF5H_js = require('./chunk-676DOF5H.js');
3
+ var chunkJPTGZQLU_js = require('./chunk-JPTGZQLU.js');
4
4
 
5
5
  // src/plugin/index.ts
6
- var createNodesV2 = chunk676DOF5H_js.createNxPlugin({
6
+ var createNodesV2 = chunkJPTGZQLU_js.createNxPlugin({
7
7
  framework: "powerlines"
8
8
  });
9
9
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRAUJ3U2D_js = require('./chunk-RAUJ3U2D.js');
3
+ var chunk2SFOQMAA_js = require('./chunk-2SFOQMAA.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
 
6
6
  // src/executors/lint/executor.ts
@@ -11,7 +11,7 @@ async function executorFn(context, api) {
11
11
  };
12
12
  }
13
13
  chunkSHUYVCID_js.__name(executorFn, "executorFn");
14
- var executor = chunkRAUJ3U2D_js.withExecutor("lint", executorFn);
14
+ var executor = chunk2SFOQMAA_js.withExecutor("lint", executorFn);
15
15
  var executor_default = executor;
16
16
 
17
17
  exports.executorFn = executorFn;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRAUJ3U2D_js = require('./chunk-RAUJ3U2D.js');
3
+ var chunk2SFOQMAA_js = require('./chunk-2SFOQMAA.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
 
6
6
  // src/executors/docs/executor.ts
@@ -11,7 +11,7 @@ async function executorFn(context, api) {
11
11
  };
12
12
  }
13
13
  chunkSHUYVCID_js.__name(executorFn, "executorFn");
14
- var executor = chunkRAUJ3U2D_js.withExecutor("docs", executorFn);
14
+ var executor = chunk2SFOQMAA_js.withExecutor("docs", executorFn);
15
15
  var executor_default = executor;
16
16
 
17
17
  exports.executorFn = executorFn;
@@ -1,4 +1,4 @@
1
- import { withExecutor } from './chunk-HJUENOPY.mjs';
1
+ import { withExecutor } from './chunk-IAWSQ5AX.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
 
4
4
  // src/executors/lint/executor.ts
@@ -3,6 +3,7 @@
3
3
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
4
4
  var getConfig = require('@storm-software/config-tools/get-config');
5
5
  var exists = require('@stryke/fs/exists');
6
+ var append = require('@stryke/path/append');
6
7
  var joinPaths = require('@stryke/path/join-paths');
7
8
  var isFunction = require('@stryke/type-checks/is-function');
8
9
  var isSetObject = require('@stryke/type-checks/is-set-object');
@@ -12,7 +13,7 @@ var types = require('@storm-software/config-tools/types');
12
13
  require('@stryke/fs/json');
13
14
  require('@stryke/fs/list-files');
14
15
  require('@stryke/fs/remove-file');
15
- var hashFiles = require('@stryke/hash/hash-files');
16
+ require('@stryke/hash/hash-files');
16
17
  require('@stryke/helpers/get-unique');
17
18
  require('@stryke/path/file-path-fns');
18
19
  var kebabCase = require('@stryke/string-format/kebab-case');
@@ -31,11 +32,17 @@ async function loadWorkspaceConfig(workspaceRoot, cwd) {
31
32
  }));
32
33
  }
33
34
  chunkSHUYVCID_js.__name(loadWorkspaceConfig, "loadWorkspaceConfig");
34
- async function loadUserConfigFile(projectRoot, jiti, command, mode, configFile, framework = "powerlines") {
35
+ async function loadUserConfigFile(projectRoot, workspaceRoot, jiti, command, mode, configFile, framework = "powerlines") {
35
36
  let resolvedUserConfig = {};
36
- const resolvedUserConfigFile = configFile && exists.existsSync(configFile) ? configFile : configFile && exists.existsSync(joinPaths.joinPaths(projectRoot, configFile)) ? joinPaths.joinPaths(projectRoot, configFile) : exists.existsSync(joinPaths.joinPaths(projectRoot, `${framework}.config.ts`)) ? joinPaths.joinPaths(projectRoot, `${framework}.config.ts`) : exists.existsSync(joinPaths.joinPaths(projectRoot, `${framework}.config.js`)) ? joinPaths.joinPaths(projectRoot, `${framework}.config.js`) : exists.existsSync(joinPaths.joinPaths(projectRoot, `${framework}.config.mts`)) ? joinPaths.joinPaths(projectRoot, `${framework}.config.mts`) : exists.existsSync(joinPaths.joinPaths(projectRoot, `${framework}.config.mjs`)) ? joinPaths.joinPaths(projectRoot, `${framework}.config.mjs`) : void 0;
37
+ const resolvedUserConfigFile = configFile && exists.existsSync(configFile) ? configFile : configFile && exists.existsSync(joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), configFile)) ? joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), configFile) : exists.existsSync(joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.ts`)) ? joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.ts`) : exists.existsSync(joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.js`)) ? joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.js`) : exists.existsSync(joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.mts`)) ? joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.mts`) : exists.existsSync(joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.mjs`)) ? joinPaths.joinPaths(append.appendPath(projectRoot, workspaceRoot), `${framework}.config.mjs`) : void 0;
37
38
  if (resolvedUserConfigFile) {
38
- const resolved = await jiti.import(jiti.esmResolve(resolvedUserConfigFile));
39
+ let resolvedPath;
40
+ try {
41
+ resolvedPath = jiti.esmResolve(resolvedUserConfigFile);
42
+ } catch {
43
+ resolvedPath = resolvedUserConfigFile;
44
+ }
45
+ const resolved = await jiti.import(resolvedPath);
39
46
  if (resolved) {
40
47
  let config = {};
41
48
  if (isFunction.isFunction(resolved)) {
@@ -77,20 +84,6 @@ function getPrefixedProjectRootHash(name, projectRootHash) {
77
84
  return combined.length > PROJECT_ROOT_HASH_LENGTH ? combined.slice(0, PROJECT_ROOT_HASH_LENGTH) : combined;
78
85
  }
79
86
  chunkSHUYVCID_js.__name(getPrefixedProjectRootHash, "getPrefixedProjectRootHash");
80
- async function getChecksum(path) {
81
- return hashFiles.hashDirectory(path, {
82
- ignore: [
83
- "node_modules",
84
- ".git",
85
- ".nx",
86
- ".cache",
87
- ".storm",
88
- "tmp",
89
- "dist"
90
- ]
91
- });
92
- }
93
- chunkSHUYVCID_js.__name(getChecksum, "getChecksum");
94
87
  async function writeMetaFile(context) {
95
88
  const metaFilePath = joinPaths.joinPaths(context.dataPath, "meta.json");
96
89
  context.log(types.LogLevelLabel.DEBUG, `Writing runtime metadata to ${metaFilePath}`);
@@ -102,7 +95,6 @@ chunkSHUYVCID_js.__name(writeMetaFile, "writeMetaFile");
102
95
 
103
96
  exports.CACHE_HASH_LENGTH = CACHE_HASH_LENGTH;
104
97
  exports.PROJECT_ROOT_HASH_LENGTH = PROJECT_ROOT_HASH_LENGTH;
105
- exports.getChecksum = getChecksum;
106
98
  exports.getPrefixedProjectRootHash = getPrefixedProjectRootHash;
107
99
  exports.loadUserConfigFile = loadUserConfigFile;
108
100
  exports.loadWorkspaceConfig = loadWorkspaceConfig;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRAUJ3U2D_js = require('./chunk-RAUJ3U2D.js');
3
+ var chunk2SFOQMAA_js = require('./chunk-2SFOQMAA.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
  var defu = require('defu');
6
6
 
@@ -19,7 +19,7 @@ async function executorFn(context, api) {
19
19
  };
20
20
  }
21
21
  chunkSHUYVCID_js.__name(executorFn, "executorFn");
22
- var executor = chunkRAUJ3U2D_js.withExecutor("prepare", executorFn);
22
+ var executor = chunk2SFOQMAA_js.withExecutor("prepare", executorFn);
23
23
  var executor_default = executor;
24
24
 
25
25
  exports.executorFn = executorFn;
@@ -1,5 +1,5 @@
1
+ import { PROJECT_ROOT_HASH_LENGTH, loadUserConfigFile } from './chunk-X6GFPXO4.mjs';
1
2
  import { CONFIG_INPUTS } from './chunk-LQU7XWFP.mjs';
2
- import { PROJECT_ROOT_HASH_LENGTH, loadUserConfigFile } from './chunk-FMYWKI25.mjs';
3
3
  import { __name } from './chunk-O6YSETKJ.mjs';
4
4
  import { createNodesFromFiles } from '@nx/devkit';
5
5
  import { withNamedInputs } from '@storm-software/workspace-tools/utils/nx-json';
@@ -62,7 +62,7 @@ function createNxPlugin(opts) {
62
62
  moduleCache: true
63
63
  });
64
64
  console.debug(`[${name}] - ${(/* @__PURE__ */ new Date()).toISOString()} - Loading ${framework} user configuration for project in root directory ${projectRoot}.`);
65
- const userConfig = await loadUserConfigFile(joinPaths(contextV2.workspaceRoot, projectRoot), jiti, "build", "development", joinPaths(contextV2.workspaceRoot, configFile), framework);
65
+ const userConfig = await loadUserConfigFile(projectRoot, contextV2.workspaceRoot, jiti, "build", "development", configFile, framework);
66
66
  if (!existsSync(joinPaths(contextV2.workspaceRoot, projectRoot, "package.json"))) {
67
67
  console.warn(`[${name}] - ${(/* @__PURE__ */ new Date()).toISOString()} - Cannot find \`package.json\` file in the project's root directory (path: "${joinPaths(contextV2.workspaceRoot, projectRoot)}"). Skipping project configuration.`);
68
68
  return {};
@@ -127,8 +127,8 @@ function createNxPlugin(opts) {
127
127
  executor: options?.prepare?.executor || `@${framework}/nx:${options?.prepare?.targetName || "prepare"}`,
128
128
  dependsOn: [
129
129
  `^${options?.prepare?.targetName || "prepare"}`,
130
- "clean"
131
- ],
130
+ options?.clean !== false && `${options?.clean?.targetName || "clean"}`
131
+ ].filter(Boolean),
132
132
  defaultConfiguration: options?.prepare?.defaultConfiguration || "production",
133
133
  options: {
134
134
  entry: userConfig.entry || "{sourceRoot}/index.ts",
@@ -162,7 +162,7 @@ function createNxPlugin(opts) {
162
162
  executor: options?.build?.executor || `@${framework}/nx:${options?.build?.targetName || "build"}`,
163
163
  dependsOn: [
164
164
  `^${options?.build?.targetName || "build"}`,
165
- options?.prepare !== false && `^${options?.prepare?.targetName || "prepare"}`
165
+ options?.prepare !== false && `${options?.prepare?.targetName || "prepare"}`
166
166
  ].filter(Boolean),
167
167
  defaultConfiguration: options?.build?.defaultConfiguration || "production",
168
168
  options: {
@@ -204,7 +204,7 @@ function createNxPlugin(opts) {
204
204
  executor: options?.lint?.executor || `@${framework}/nx:${options?.lint?.targetName || "lint"}`,
205
205
  dependsOn: [
206
206
  `^${options?.lint?.targetName || "lint"}`,
207
- options?.prepare !== false && `^${options?.prepare?.targetName || "prepare"}`
207
+ options?.prepare !== false && `${options?.prepare?.targetName || "prepare"}`
208
208
  ].filter(Boolean),
209
209
  defaultConfiguration: options?.lint?.defaultConfiguration || "production",
210
210
  options: {
@@ -245,7 +245,7 @@ function createNxPlugin(opts) {
245
245
  executor: options?.docs?.executor || `@${framework}/nx:${options?.docs?.targetName || "docs"}`,
246
246
  dependsOn: [
247
247
  `^${options?.docs?.targetName || "docs"}`,
248
- options?.build !== false && `^${options?.build?.targetName || "build"}`
248
+ options?.build !== false && `${options?.build?.targetName || "build"}`
249
249
  ].filter(Boolean),
250
250
  defaultConfiguration: options?.docs?.defaultConfiguration || "production",
251
251
  options: {
@@ -286,7 +286,7 @@ function createNxPlugin(opts) {
286
286
  executor: options?.deploy?.executor || `@${framework}/nx:${options?.deploy?.targetName || "deploy"}`,
287
287
  dependsOn: [
288
288
  `^${options?.deploy?.targetName || "deploy"}`,
289
- options?.build !== false && `^${options?.build?.targetName || "build"}`
289
+ options?.build !== false && `${options?.build?.targetName || "build"}`
290
290
  ].filter(Boolean),
291
291
  defaultConfiguration: options?.deploy?.defaultConfiguration || "production",
292
292
  options: {
@@ -1,4 +1,4 @@
1
- import { loadWorkspaceConfig, CACHE_HASH_LENGTH, PROJECT_ROOT_HASH_LENGTH, getPrefixedProjectRootHash, getChecksum, loadUserConfigFile, writeMetaFile } from './chunk-FMYWKI25.mjs';
1
+ import { loadWorkspaceConfig, CACHE_HASH_LENGTH, PROJECT_ROOT_HASH_LENGTH, getPrefixedProjectRootHash, loadUserConfigFile, writeMetaFile } from './chunk-X6GFPXO4.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
  import { getLogFn, getLogLevel, writeError } from '@storm-software/config-tools/logger';
4
4
  import { withRunExecutor } from '@storm-software/workspace-tools/base/base-executor';
@@ -40,6 +40,7 @@ import { writeFile as writeFile$1 } from '@stryke/fs/write-file';
40
40
  import { resolveConfig, format } from 'prettier';
41
41
  import { getEnvPaths } from '@stryke/env/get-env-paths';
42
42
  import { relativeToWorkspaceRoot } from '@stryke/fs/get-workspace-root';
43
+ import { hashDirectory } from '@stryke/hash/hash-files';
43
44
  import { murmurhash } from '@stryke/hash/murmurhash';
44
45
  import { getUnique, getUniqueBy } from '@stryke/helpers/get-unique';
45
46
  import { omit } from '@stryke/helpers/omit';
@@ -3003,6 +3004,26 @@ var PowerlinesContext = class _PowerlinesContext {
3003
3004
  */
3004
3005
  logFn;
3005
3006
  /**
3007
+ * Generates a checksum representing the current context state
3008
+ *
3009
+ * @param root - The root directory of the project to generate the checksum for
3010
+ * @returns A promise that resolves to a string representing the checksum
3011
+ */
3012
+ async generateChecksum(root = this.config.projectRoot) {
3013
+ this.#checksum = await hashDirectory(root, {
3014
+ ignore: [
3015
+ "node_modules",
3016
+ ".git",
3017
+ ".nx",
3018
+ ".cache",
3019
+ ".storm",
3020
+ "tmp",
3021
+ "dist"
3022
+ ]
3023
+ });
3024
+ return this.#checksum;
3025
+ }
3026
+ /**
3006
3027
  * Initialize the context with the provided configuration options
3007
3028
  *
3008
3029
  * @param config - The partial user configuration to use for initialization.
@@ -3034,7 +3055,7 @@ var PowerlinesContext = class _PowerlinesContext {
3034
3055
  if (existsSync(packageJsonPath)) {
3035
3056
  this.packageJson = await readJsonFile(packageJsonPath);
3036
3057
  }
3037
- this.#checksum = await getChecksum(cacheKey.projectRoot);
3058
+ this.#checksum = await this.generateChecksum(cacheKey.projectRoot);
3038
3059
  this.resolver = createResolver({
3039
3060
  workspaceRoot: this.workspaceConfig.workspaceRoot,
3040
3061
  projectRoot: cacheKey.projectRoot,
@@ -3042,7 +3063,7 @@ var PowerlinesContext = class _PowerlinesContext {
3042
3063
  mode: cacheKey.mode,
3043
3064
  skipCache: cacheKey.skipCache
3044
3065
  });
3045
- const userConfig = await loadUserConfigFile(cacheKey.projectRoot, this.resolver, cacheKey.command, cacheKey.mode, cacheKey.configFile, cacheKey.framework);
3066
+ const userConfig = await loadUserConfigFile(cacheKey.projectRoot, this.workspaceConfig.workspaceRoot, this.resolver, cacheKey.command, cacheKey.mode, cacheKey.configFile, cacheKey.framework);
3046
3067
  this.mergeUserConfig(userConfig.config);
3047
3068
  configCache.set(cacheKey, {
3048
3069
  projectJson: this.projectJson,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var chunkACE6O62X_js = require('./chunk-ACE6O62X.js');
3
4
  var chunkVIU4CXA3_js = require('./chunk-VIU4CXA3.js');
4
- var chunkLTCZN4I4_js = require('./chunk-LTCZN4I4.js');
5
5
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
6
6
  var devkit = require('@nx/devkit');
7
7
  var nxJson = require('@storm-software/workspace-tools/utils/nx-json');
@@ -60,7 +60,7 @@ function createNxPlugin(opts) {
60
60
  }
61
61
  const root = pluginHelpers.getRoot(projectRoot, context);
62
62
  const cacheDir = joinPaths.joinPaths(envPaths.cache, "nx-plugin", murmurhash.murmurhash(contextV2.workspaceRoot, {
63
- maxLength: chunkLTCZN4I4_js.PROJECT_ROOT_HASH_LENGTH
63
+ maxLength: chunkACE6O62X_js.PROJECT_ROOT_HASH_LENGTH
64
64
  }));
65
65
  const jiti$1 = jiti.createJiti(joinPaths.joinPaths(contextV2.workspaceRoot, projectRoot), {
66
66
  interopDefault: true,
@@ -68,7 +68,7 @@ function createNxPlugin(opts) {
68
68
  moduleCache: true
69
69
  });
70
70
  console.debug(`[${name}] - ${(/* @__PURE__ */ new Date()).toISOString()} - Loading ${framework} user configuration for project in root directory ${projectRoot}.`);
71
- const userConfig = await chunkLTCZN4I4_js.loadUserConfigFile(joinPaths.joinPaths(contextV2.workspaceRoot, projectRoot), jiti$1, "build", "development", joinPaths.joinPaths(contextV2.workspaceRoot, configFile), framework);
71
+ const userConfig = await chunkACE6O62X_js.loadUserConfigFile(projectRoot, contextV2.workspaceRoot, jiti$1, "build", "development", configFile, framework);
72
72
  if (!exists.existsSync(joinPaths.joinPaths(contextV2.workspaceRoot, projectRoot, "package.json"))) {
73
73
  console.warn(`[${name}] - ${(/* @__PURE__ */ new Date()).toISOString()} - Cannot find \`package.json\` file in the project's root directory (path: "${joinPaths.joinPaths(contextV2.workspaceRoot, projectRoot)}"). Skipping project configuration.`);
74
74
  return {};
@@ -133,8 +133,8 @@ function createNxPlugin(opts) {
133
133
  executor: options?.prepare?.executor || `@${framework}/nx:${options?.prepare?.targetName || "prepare"}`,
134
134
  dependsOn: [
135
135
  `^${options?.prepare?.targetName || "prepare"}`,
136
- "clean"
137
- ],
136
+ options?.clean !== false && `${options?.clean?.targetName || "clean"}`
137
+ ].filter(Boolean),
138
138
  defaultConfiguration: options?.prepare?.defaultConfiguration || "production",
139
139
  options: {
140
140
  entry: userConfig.entry || "{sourceRoot}/index.ts",
@@ -168,7 +168,7 @@ function createNxPlugin(opts) {
168
168
  executor: options?.build?.executor || `@${framework}/nx:${options?.build?.targetName || "build"}`,
169
169
  dependsOn: [
170
170
  `^${options?.build?.targetName || "build"}`,
171
- options?.prepare !== false && `^${options?.prepare?.targetName || "prepare"}`
171
+ options?.prepare !== false && `${options?.prepare?.targetName || "prepare"}`
172
172
  ].filter(Boolean),
173
173
  defaultConfiguration: options?.build?.defaultConfiguration || "production",
174
174
  options: {
@@ -210,7 +210,7 @@ function createNxPlugin(opts) {
210
210
  executor: options?.lint?.executor || `@${framework}/nx:${options?.lint?.targetName || "lint"}`,
211
211
  dependsOn: [
212
212
  `^${options?.lint?.targetName || "lint"}`,
213
- options?.prepare !== false && `^${options?.prepare?.targetName || "prepare"}`
213
+ options?.prepare !== false && `${options?.prepare?.targetName || "prepare"}`
214
214
  ].filter(Boolean),
215
215
  defaultConfiguration: options?.lint?.defaultConfiguration || "production",
216
216
  options: {
@@ -251,7 +251,7 @@ function createNxPlugin(opts) {
251
251
  executor: options?.docs?.executor || `@${framework}/nx:${options?.docs?.targetName || "docs"}`,
252
252
  dependsOn: [
253
253
  `^${options?.docs?.targetName || "docs"}`,
254
- options?.build !== false && `^${options?.build?.targetName || "build"}`
254
+ options?.build !== false && `${options?.build?.targetName || "build"}`
255
255
  ].filter(Boolean),
256
256
  defaultConfiguration: options?.docs?.defaultConfiguration || "production",
257
257
  options: {
@@ -292,7 +292,7 @@ function createNxPlugin(opts) {
292
292
  executor: options?.deploy?.executor || `@${framework}/nx:${options?.deploy?.targetName || "deploy"}`,
293
293
  dependsOn: [
294
294
  `^${options?.deploy?.targetName || "deploy"}`,
295
- options?.build !== false && `^${options?.build?.targetName || "build"}`
295
+ options?.build !== false && `${options?.build?.targetName || "build"}`
296
296
  ].filter(Boolean),
297
297
  defaultConfiguration: options?.deploy?.defaultConfiguration || "production",
298
298
  options: {
@@ -1,4 +1,4 @@
1
- import { withExecutor } from './chunk-HJUENOPY.mjs';
1
+ import { withExecutor } from './chunk-IAWSQ5AX.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
  import defu from 'defu';
4
4
 
@@ -1,4 +1,4 @@
1
- import { createNxPlugin } from './chunk-XRMEXEW2.mjs';
1
+ import { createNxPlugin } from './chunk-BXKPRYNH.mjs';
2
2
 
3
3
  // src/plugin/index.ts
4
4
  var createNodesV2 = createNxPlugin({
@@ -1,4 +1,4 @@
1
- import { withExecutor } from './chunk-HJUENOPY.mjs';
1
+ import { withExecutor } from './chunk-IAWSQ5AX.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
 
4
4
  // src/executors/clean/executor.ts
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRAUJ3U2D_js = require('./chunk-RAUJ3U2D.js');
3
+ var chunk2SFOQMAA_js = require('./chunk-2SFOQMAA.js');
4
4
  var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
5
5
 
6
6
  // src/executors/clean/executor.ts
@@ -11,7 +11,7 @@ async function executorFn(context, api) {
11
11
  };
12
12
  }
13
13
  chunkSHUYVCID_js.__name(executorFn, "executorFn");
14
- var executor = chunkRAUJ3U2D_js.withExecutor("clean", executorFn);
14
+ var executor = chunk2SFOQMAA_js.withExecutor("clean", executorFn);
15
15
  var executor_default = executor;
16
16
 
17
17
  exports.executorFn = executorFn;
@@ -1,6 +1,7 @@
1
1
  import { __name } from './chunk-O6YSETKJ.mjs';
2
2
  import { getWorkspaceConfig } from '@storm-software/config-tools/get-config';
3
3
  import { existsSync } from '@stryke/fs/exists';
4
+ import { appendPath } from '@stryke/path/append';
4
5
  import { joinPaths } from '@stryke/path/join-paths';
5
6
  import { isFunction } from '@stryke/type-checks/is-function';
6
7
  import { isSetObject } from '@stryke/type-checks/is-set-object';
@@ -10,7 +11,7 @@ import { LogLevelLabel } from '@storm-software/config-tools/types';
10
11
  import '@stryke/fs/json';
11
12
  import '@stryke/fs/list-files';
12
13
  import '@stryke/fs/remove-file';
13
- import { hashDirectory } from '@stryke/hash/hash-files';
14
+ import '@stryke/hash/hash-files';
14
15
  import '@stryke/helpers/get-unique';
15
16
  import '@stryke/path/file-path-fns';
16
17
  import { kebabCase } from '@stryke/string-format/kebab-case';
@@ -25,11 +26,17 @@ async function loadWorkspaceConfig(workspaceRoot, cwd) {
25
26
  }));
26
27
  }
27
28
  __name(loadWorkspaceConfig, "loadWorkspaceConfig");
28
- async function loadUserConfigFile(projectRoot, jiti, command, mode, configFile, framework = "powerlines") {
29
+ async function loadUserConfigFile(projectRoot, workspaceRoot, jiti, command, mode, configFile, framework = "powerlines") {
29
30
  let resolvedUserConfig = {};
30
- const resolvedUserConfigFile = configFile && existsSync(configFile) ? configFile : configFile && existsSync(joinPaths(projectRoot, configFile)) ? joinPaths(projectRoot, configFile) : existsSync(joinPaths(projectRoot, `${framework}.config.ts`)) ? joinPaths(projectRoot, `${framework}.config.ts`) : existsSync(joinPaths(projectRoot, `${framework}.config.js`)) ? joinPaths(projectRoot, `${framework}.config.js`) : existsSync(joinPaths(projectRoot, `${framework}.config.mts`)) ? joinPaths(projectRoot, `${framework}.config.mts`) : existsSync(joinPaths(projectRoot, `${framework}.config.mjs`)) ? joinPaths(projectRoot, `${framework}.config.mjs`) : void 0;
31
+ const resolvedUserConfigFile = configFile && existsSync(configFile) ? configFile : configFile && existsSync(joinPaths(appendPath(projectRoot, workspaceRoot), configFile)) ? joinPaths(appendPath(projectRoot, workspaceRoot), configFile) : existsSync(joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.ts`)) ? joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.ts`) : existsSync(joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.js`)) ? joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.js`) : existsSync(joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.mts`)) ? joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.mts`) : existsSync(joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.mjs`)) ? joinPaths(appendPath(projectRoot, workspaceRoot), `${framework}.config.mjs`) : void 0;
31
32
  if (resolvedUserConfigFile) {
32
- const resolved = await jiti.import(jiti.esmResolve(resolvedUserConfigFile));
33
+ let resolvedPath;
34
+ try {
35
+ resolvedPath = jiti.esmResolve(resolvedUserConfigFile);
36
+ } catch {
37
+ resolvedPath = resolvedUserConfigFile;
38
+ }
39
+ const resolved = await jiti.import(resolvedPath);
33
40
  if (resolved) {
34
41
  let config = {};
35
42
  if (isFunction(resolved)) {
@@ -71,20 +78,6 @@ function getPrefixedProjectRootHash(name, projectRootHash) {
71
78
  return combined.length > PROJECT_ROOT_HASH_LENGTH ? combined.slice(0, PROJECT_ROOT_HASH_LENGTH) : combined;
72
79
  }
73
80
  __name(getPrefixedProjectRootHash, "getPrefixedProjectRootHash");
74
- async function getChecksum(path) {
75
- return hashDirectory(path, {
76
- ignore: [
77
- "node_modules",
78
- ".git",
79
- ".nx",
80
- ".cache",
81
- ".storm",
82
- "tmp",
83
- "dist"
84
- ]
85
- });
86
- }
87
- __name(getChecksum, "getChecksum");
88
81
  async function writeMetaFile(context) {
89
82
  const metaFilePath = joinPaths(context.dataPath, "meta.json");
90
83
  context.log(LogLevelLabel.DEBUG, `Writing runtime metadata to ${metaFilePath}`);
@@ -94,4 +87,4 @@ async function writeMetaFile(context) {
94
87
  }
95
88
  __name(writeMetaFile, "writeMetaFile");
96
89
 
97
- export { CACHE_HASH_LENGTH, PROJECT_ROOT_HASH_LENGTH, getChecksum, getPrefixedProjectRootHash, loadUserConfigFile, loadWorkspaceConfig, writeMetaFile };
90
+ export { CACHE_HASH_LENGTH, PROJECT_ROOT_HASH_LENGTH, getPrefixedProjectRootHash, loadUserConfigFile, loadWorkspaceConfig, writeMetaFile };
@@ -1,4 +1,4 @@
1
- import { withExecutor } from './chunk-HJUENOPY.mjs';
1
+ import { withExecutor } from './chunk-IAWSQ5AX.mjs';
2
2
  import { __name } from './chunk-O6YSETKJ.mjs';
3
3
 
4
4
  // src/executors/docs/executor.ts