nx 22.5.2 → 22.5.4

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 (68) hide show
  1. package/.eslintrc.json +3 -1
  2. package/bin/nx.js +6 -0
  3. package/migrations.json +6 -0
  4. package/package.json +12 -12
  5. package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
  6. package/src/ai/set-up-ai-agents/set-up-ai-agents.js +3 -0
  7. package/src/command-line/import/command-object.d.ts.map +1 -1
  8. package/src/command-line/import/command-object.js +1 -1
  9. package/src/command-line/list/command-object.d.ts.map +1 -1
  10. package/src/command-line/list/command-object.js +6 -1
  11. package/src/command-line/list/list.d.ts +2 -0
  12. package/src/command-line/list/list.d.ts.map +1 -1
  13. package/src/command-line/list/list.js +5 -1
  14. package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts +5 -0
  15. package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts.map +1 -0
  16. package/src/command-line/nx-cloud/apply-locally/apply-locally.js +13 -0
  17. package/src/command-line/nx-cloud/apply-locally/command-object.d.ts +3 -0
  18. package/src/command-line/nx-cloud/apply-locally/command-object.d.ts.map +1 -0
  19. package/src/command-line/nx-cloud/apply-locally/command-object.js +15 -0
  20. package/src/command-line/nx-commands.d.ts.map +1 -1
  21. package/src/command-line/nx-commands.js +9 -7
  22. package/src/command-line/release/config/config.d.ts.map +1 -1
  23. package/src/command-line/release/config/config.js +11 -2
  24. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.d.ts +10 -0
  25. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.d.ts.map +1 -0
  26. package/src/command-line/release/utils/remote-release-clients/extract-repo-slug.js +61 -0
  27. package/src/command-line/release/utils/remote-release-clients/github.d.ts.map +1 -1
  28. package/src/command-line/release/utils/remote-release-clients/github.js +8 -13
  29. package/src/command-line/release/utils/remote-release-clients/gitlab.d.ts.map +1 -1
  30. package/src/command-line/release/utils/remote-release-clients/gitlab.js +4 -9
  31. package/src/command-line/release/utils/shared.d.ts +1 -1
  32. package/src/command-line/release/utils/shared.d.ts.map +1 -1
  33. package/src/command-line/release/utils/shared.js +23 -15
  34. package/src/command-line/watch/watch.js +4 -4
  35. package/src/core/graph/main.js +1 -1
  36. package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
  37. package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
  38. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.d.ts +3 -0
  39. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.d.ts.map +1 -0
  40. package/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.js +14 -0
  41. package/src/native/nx.wasm32-wasi.wasm +0 -0
  42. package/src/plugins/js/lock-file/project-graph-pruning.d.ts.map +1 -1
  43. package/src/plugins/js/lock-file/project-graph-pruning.js +3 -1
  44. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts.map +1 -1
  45. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +6 -3
  46. package/src/project-graph/nx-deps-cache.d.ts +10 -0
  47. package/src/project-graph/nx-deps-cache.d.ts.map +1 -1
  48. package/src/project-graph/nx-deps-cache.js +36 -0
  49. package/src/project-graph/plugins/isolation/isolated-plugin.d.ts.map +1 -1
  50. package/src/project-graph/plugins/isolation/isolated-plugin.js +42 -35
  51. package/src/project-graph/project-graph.d.ts.map +1 -1
  52. package/src/project-graph/project-graph.js +23 -4
  53. package/src/project-graph/utils/project-configuration-utils.js +1 -1
  54. package/src/tasks-runner/running-tasks/batch-process.d.ts +0 -3
  55. package/src/tasks-runner/running-tasks/batch-process.d.ts.map +1 -1
  56. package/src/tasks-runner/running-tasks/batch-process.js +0 -7
  57. package/src/utils/ignore.d.ts +5 -0
  58. package/src/utils/ignore.d.ts.map +1 -1
  59. package/src/utils/ignore.js +16 -0
  60. package/src/utils/package-manager.d.ts.map +1 -1
  61. package/src/utils/package-manager.js +22 -1
  62. package/src/utils/plugins/output.d.ts +29 -1
  63. package/src/utils/plugins/output.d.ts.map +1 -1
  64. package/src/utils/plugins/output.js +90 -1
  65. package/src/utils/plugins/plugin-capabilities.d.ts +1 -0
  66. package/src/utils/plugins/plugin-capabilities.d.ts.map +1 -1
  67. package/src/utils/plugins/plugin-capabilities.js +2 -0
  68. package/src/native/index.d.ts +0 -553
package/.eslintrc.json CHANGED
@@ -145,7 +145,9 @@
145
145
  // Nx Docker plugin conditionally available dynamically at runtime
146
146
  "@nx/docker",
147
147
  // Only used in test-utils at the time of writing
148
- "@ltd/j-toml"
148
+ "@ltd/j-toml",
149
+ // Used in WASI browser implementation (nx.wasi-browser.js)
150
+ "@napi-rs/wasm-runtime"
149
151
  ]
150
152
  }
151
153
  ]
package/bin/nx.js CHANGED
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ // TODO: Remove this workaround once picocolors handles FORCE_COLOR=0 correctly
5
+ // See: https://github.com/alexeyraspopov/picocolors/issues/100
6
+ if (process.env.FORCE_COLOR === '0') {
7
+ process.env.NO_COLOR = '1';
8
+ delete process.env.FORCE_COLOR;
9
+ }
4
10
  const find_workspace_root_1 = require("../src/utils/find-workspace-root");
5
11
  const pc = require("picocolors");
6
12
  const dotenv_1 = require("../src/utils/dotenv");
package/migrations.json CHANGED
@@ -136,6 +136,12 @@
136
136
  "version": "22.1.0-beta.5",
137
137
  "description": "Updates the nx wrapper.",
138
138
  "implementation": "./src/migrations/update-22-1-0/update-nx-wrapper"
139
+ },
140
+ "22-7-0-add-polygraph-to-git-ignore": {
141
+ "cli": "nx",
142
+ "version": "22.7.0-beta.0",
143
+ "description": "Adds .nx/polygraph to .gitignore",
144
+ "implementation": "./src/migrations/update-22-7-0/add-polygraph-to-git-ignore"
139
145
  }
140
146
  }
141
147
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "22.5.2",
3
+ "version": "22.5.4",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -54,7 +54,7 @@
54
54
  "jest-diff": "^30.0.2",
55
55
  "jsonc-parser": "3.2.0",
56
56
  "lines-and-columns": "2.0.3",
57
- "minimatch": "10.1.1",
57
+ "minimatch": "10.2.4",
58
58
  "node-machine-id": "1.1.12",
59
59
  "npm-run-path": "^4.0.1",
60
60
  "open": "^8.4.0",
@@ -84,16 +84,16 @@
84
84
  }
85
85
  },
86
86
  "optionalDependencies": {
87
- "@nx/nx-darwin-arm64": "22.5.2",
88
- "@nx/nx-darwin-x64": "22.5.2",
89
- "@nx/nx-freebsd-x64": "22.5.2",
90
- "@nx/nx-linux-arm-gnueabihf": "22.5.2",
91
- "@nx/nx-linux-arm64-gnu": "22.5.2",
92
- "@nx/nx-linux-arm64-musl": "22.5.2",
93
- "@nx/nx-linux-x64-gnu": "22.5.2",
94
- "@nx/nx-linux-x64-musl": "22.5.2",
95
- "@nx/nx-win32-arm64-msvc": "22.5.2",
96
- "@nx/nx-win32-x64-msvc": "22.5.2"
87
+ "@nx/nx-darwin-arm64": "22.5.4",
88
+ "@nx/nx-darwin-x64": "22.5.4",
89
+ "@nx/nx-freebsd-x64": "22.5.4",
90
+ "@nx/nx-linux-arm-gnueabihf": "22.5.4",
91
+ "@nx/nx-linux-arm64-gnu": "22.5.4",
92
+ "@nx/nx-linux-arm64-musl": "22.5.4",
93
+ "@nx/nx-linux-x64-gnu": "22.5.4",
94
+ "@nx/nx-linux-x64-musl": "22.5.4",
95
+ "@nx/nx-win32-arm64-msvc": "22.5.4",
96
+ "@nx/nx-win32-x64-msvc": "22.5.4"
97
97
  },
98
98
  "nx-migrations": {
99
99
  "migrations": "./migrations.json",
@@ -1 +1 @@
1
- {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CA4O7C;AAqJD,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AA0B5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmP7C;AAqJD,eAAe,sBAAsB,CAAC"}
@@ -11,6 +11,7 @@ const generate_files_1 = require("../../generators/utils/generate-files");
11
11
  const json_1 = require("../../generators/utils/json");
12
12
  const native_1 = require("../../native");
13
13
  const package_json_1 = require("../../utils/package-json");
14
+ const ignore_1 = require("../../utils/ignore");
14
15
  const provenance_1 = require("../../utils/provenance");
15
16
  const workspace_root_1 = require("../../utils/workspace-root");
16
17
  const constants_1 = require("../constants");
@@ -98,6 +99,7 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
98
99
  ...json.extraKnownMarketplaces,
99
100
  'nx-claude-plugins': {
100
101
  source: {
102
+ ...json.extraKnownMarketplaces?.['nx-claude-plugins']?.source,
101
103
  source: 'github',
102
104
  repo: 'nrwl/nx-ai-agents-config',
103
105
  },
@@ -181,6 +183,7 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
181
183
  }
182
184
  }
183
185
  }
186
+ (0, ignore_1.addEntryToGitIgnore)(tree, (0, path_1.join)(options.directory, '.gitignore'), '.nx/polygraph');
184
187
  await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
185
188
  // we use the check variable to determine if we should actually make changes or just report what would be changed
186
189
  return async (check = false) => {
@@ -1 +1 @@
1
- {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/import/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,eAAO,MAAM,kBAAkB,EAAE,aA+ChC,CAAC"}
1
+ {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/import/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,eAAO,MAAM,kBAAkB,EAAE,aAgDhC,CAAC"}
@@ -10,7 +10,7 @@ exports.yargsImportCommand = {
10
10
  builder: (yargs) => (0, documentation_1.linkToNxDevAndExamples)((0, shared_options_1.withVerbose)(yargs
11
11
  .positional('sourceRepository', {
12
12
  type: 'string',
13
- description: 'The remote URL of the source to import.',
13
+ description: 'The remote URL or local path of the source repository to import.',
14
14
  })
15
15
  .positional('destinationDirectory', {
16
16
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/list/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,eAAO,MAAM,gBAAgB,EAAE,aAa9B,CAAC"}
1
+ {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/list/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,eAAO,MAAM,gBAAgB,EAAE,aAkB9B,CAAC"}
@@ -4,9 +4,14 @@ exports.yargsListCommand = void 0;
4
4
  exports.yargsListCommand = {
5
5
  command: 'list [plugin]',
6
6
  describe: 'Lists installed plugins, capabilities of installed plugins and other available plugins.',
7
- builder: (yargs) => yargs.positional('plugin', {
7
+ builder: (yargs) => yargs
8
+ .positional('plugin', {
8
9
  type: 'string',
9
10
  description: 'The name of an installed plugin to query.',
11
+ })
12
+ .option('json', {
13
+ type: 'boolean',
14
+ description: 'Output JSON.',
10
15
  }),
11
16
  handler: async (args) => {
12
17
  await (await Promise.resolve().then(() => require('./list'))).listHandler(args);
@@ -1,6 +1,8 @@
1
1
  export interface ListArgs {
2
2
  /** The name of an installed plugin to query */
3
3
  plugin?: string | undefined;
4
+ /** Output as JSON */
5
+ json?: boolean;
4
6
  }
5
7
  /**
6
8
  * List available plugins or capabilities within a specific plugin
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/list/list.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/D"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/list/list.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C/D"}
@@ -19,12 +19,16 @@ async function listHandler(args) {
19
19
  const projectGraph = await (0, project_graph_1.createProjectGraphAsync)({ exitOnError: true });
20
20
  const projects = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
21
21
  if (args.plugin) {
22
- await (0, plugins_1.listPluginCapabilities)(args.plugin, projects.projects);
22
+ await (0, plugins_1.listPluginCapabilities)(args.plugin, projects.projects, args.json);
23
23
  }
24
24
  else {
25
25
  const nxJson = (0, nx_json_1.readNxJson)();
26
26
  const localPlugins = await (0, plugins_1.getLocalWorkspacePlugins)(projects, nxJson);
27
27
  const installedPlugins = await (0, plugins_1.getInstalledPluginsAndCapabilities)(workspace_root_1.workspaceRoot, projects.projects);
28
+ if (args.json) {
29
+ console.log(JSON.stringify((0, output_2.formatPluginsAsJson)(localPlugins, installedPlugins), null, 2));
30
+ return;
31
+ }
28
32
  if (localPlugins.size) {
29
33
  (0, plugins_1.listPlugins)(localPlugins, 'Local workspace plugins:');
30
34
  }
@@ -0,0 +1,5 @@
1
+ export interface ApplyLocallyArgs {
2
+ verbose?: boolean;
3
+ }
4
+ export declare function applyLocallyHandler(args: ApplyLocallyArgs): Promise<number>;
5
+ //# sourceMappingURL=apply-locally.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-locally.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/apply-locally/apply-locally.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3E"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyLocallyHandler = applyLocallyHandler;
4
+ const nx_json_1 = require("../../../config/nx-json");
5
+ const nx_cloud_utils_1 = require("../../../utils/nx-cloud-utils");
6
+ const utils_1 = require("../utils");
7
+ function applyLocallyHandler(args) {
8
+ if (!(0, nx_cloud_utils_1.isNxCloudUsed)((0, nx_json_1.readNxJson)())) {
9
+ (0, utils_1.warnNotConnectedToCloud)();
10
+ return Promise.resolve(0);
11
+ }
12
+ return (0, utils_1.executeNxCloudCommand)('apply-locally', args.verbose);
13
+ }
@@ -0,0 +1,3 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const yargsApplyLocallyCommand: CommandModule;
3
+ //# sourceMappingURL=command-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/apply-locally/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,eAAO,MAAM,wBAAwB,EAAE,aActC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.yargsApplyLocallyCommand = void 0;
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
+ exports.yargsApplyLocallyCommand = {
6
+ command: 'apply-locally [options]',
7
+ describe: 'Applies a self-healing CI fix locally. This command is an alias for `nx-cloud apply-locally`.',
8
+ builder: (yargs) => (0, shared_options_1.withVerbose)(yargs)
9
+ .help(false)
10
+ .showHelpOnFail(false)
11
+ .option('help', { describe: 'Show help.', type: 'boolean' }),
12
+ handler: async (args) => {
13
+ process.exit(await (await Promise.resolve().then(() => require('./apply-locally'))).applyLocallyHandler(args));
14
+ },
15
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"nx-commands.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/command-line/nx-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2D/B,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAEzE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qBAuDf,CAAC"}
1
+ {"version":3,"file":"nx-commands.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/command-line/nx-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4D/B,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAEzE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qBAwDf,CAAC"}
@@ -33,11 +33,12 @@ const command_object_27 = require("./nx-cloud/start-ci-run/command-object");
33
33
  const command_object_28 = require("./nx-cloud/start-agent/command-object");
34
34
  const command_object_29 = require("./nx-cloud/complete-run/command-object");
35
35
  const command_object_30 = require("./nx-cloud/fix-ci/command-object");
36
- const command_object_31 = require("./nx-cloud/download-cloud-client/command-object");
36
+ const command_object_31 = require("./nx-cloud/apply-locally/command-object");
37
+ const command_object_32 = require("./nx-cloud/download-cloud-client/command-object");
37
38
  const command_objects_1 = require("./deprecated/command-objects");
38
- const command_object_32 = require("./sync/command-object");
39
+ const command_object_33 = require("./sync/command-object");
39
40
  const output_1 = require("../utils/output");
40
- const command_object_33 = require("./mcp/command-object");
41
+ const command_object_34 = require("./mcp/command-object");
41
42
  // Ensure that the output takes up the available width of the terminal.
42
43
  yargs.wrap(yargs.terminalWidth());
43
44
  exports.parserConfiguration = {
@@ -84,8 +85,8 @@ exports.commandsObject = yargs
84
85
  .command(command_object_16.yargsRunCommand)
85
86
  .command(command_object_17.yargsRunManyCommand)
86
87
  .command(command_object_18.yargsShowCommand)
87
- .command(command_object_32.yargsSyncCommand)
88
- .command(command_object_32.yargsSyncCheckCommand)
88
+ .command(command_object_33.yargsSyncCommand)
89
+ .command(command_object_33.yargsSyncCheckCommand)
89
90
  .command(command_object_3.yargsViewLogsCommand)
90
91
  .command(command_object_19.yargsWatchCommand)
91
92
  .command(command_object_16.yargsNxInfixCommand)
@@ -96,8 +97,9 @@ exports.commandsObject = yargs
96
97
  .command(command_object_28.yargsStartAgentCommand)
97
98
  .command(command_object_29.yargsStopAllAgentsCommand)
98
99
  .command(command_object_30.yargsFixCiCommand)
99
- .command(command_object_31.yargsDownloadCloudClientCommand)
100
- .command(command_object_33.yargsMcpCommand)
100
+ .command(command_object_31.yargsApplyLocallyCommand)
101
+ .command(command_object_32.yargsDownloadCloudClientCommand)
102
+ .command(command_object_34.yargsMcpCommand)
101
103
  .command(resolveConformanceCommandObject())
102
104
  .command(resolveConformanceCheckCommandObject())
103
105
  .scriptName('nx')
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"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"}
@@ -593,7 +593,7 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
593
593
  return { error, nxReleaseConfig: null };
594
594
  // If any project in the group has docker configuration, disable semver requirement
595
595
  releaseGroup.releaseTag.requireSemver = false;
596
- // Set preferDockerVersion to true by default when docker projects exist,
596
+ // Set preferDockerVersion by default when docker projects exist,
597
597
  // unless user has explicitly configured it
598
598
  if (releaseGroup.releaseTag.preferDockerVersion === false &&
599
599
  userConfig.groups?.[releaseGroupName]?.releaseTag
@@ -602,7 +602,16 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
602
602
  ?.releaseTagPatternPreferDockerVersion === undefined &&
603
603
  userConfig.releaseTag?.preferDockerVersion === undefined &&
604
604
  userConfig.releaseTagPatternPreferDockerVersion === undefined) {
605
- releaseGroup.releaseTag.preferDockerVersion = true;
605
+ // Check if ALL projects have docker config, or just some
606
+ const allProjectsHaveDocker = releaseGroup.projects.every((projectName) => {
607
+ const projectNode = projectGraph.nodes[projectName];
608
+ const projectDockerConfig = projectNode?.data.release?.docker;
609
+ return projectDockerConfig !== undefined || !!releaseGroup.docker;
610
+ });
611
+ // Use 'both' for mixed groups so non-docker projects fall back correctly
612
+ releaseGroup.releaseTag.preferDockerVersion = allProjectsHaveDocker
613
+ ? true
614
+ : 'both';
606
615
  }
607
616
  }
608
617
  }
@@ -0,0 +1,10 @@
1
+ import type { RemoteRepoSlug } from './remote-release-client';
2
+ /**
3
+ * Extracts a GitHub-style repo slug (user/repo).
4
+ */
5
+ export declare function extractGitHubRepoSlug(remoteUrl: string, expectedHostname: string): RemoteRepoSlug | null;
6
+ /**
7
+ * Extracts a GitLab-style repo slug with full nested group path.
8
+ */
9
+ export declare function extractGitLabRepoSlug(remoteUrl: string, expectedHostname: string): RemoteRepoSlug | null;
10
+ //# sourceMappingURL=extract-repo-slug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-repo-slug.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/extract-repo-slug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,cAAc,GAAG,IAAI,CAEvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,cAAc,GAAG,IAAI,CAEvB"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractGitHubRepoSlug = extractGitHubRepoSlug;
4
+ exports.extractGitLabRepoSlug = extractGitLabRepoSlug;
5
+ /**
6
+ * Extracts a GitHub-style repo slug (user/repo).
7
+ */
8
+ function extractGitHubRepoSlug(remoteUrl, expectedHostname) {
9
+ return extractRepoSlug(remoteUrl, expectedHostname, 2);
10
+ }
11
+ /**
12
+ * Extracts a GitLab-style repo slug with full nested group path.
13
+ */
14
+ function extractGitLabRepoSlug(remoteUrl, expectedHostname) {
15
+ return extractRepoSlug(remoteUrl, expectedHostname, Infinity);
16
+ }
17
+ const SCP_URL_REGEX = /^git@([^:]+):(.+)$/;
18
+ /**
19
+ * Extracts a repository slug from a Git remote URL.
20
+ * `segmentLimit` = 2 for GitHub (user/repo), `Infinity` for GitLab (with subgroups).
21
+ */
22
+ function extractRepoSlug(remoteUrl, expectedHostname, segmentLimit) {
23
+ if (!remoteUrl)
24
+ return null;
25
+ // SCP-like: git@host:path
26
+ const scpMatch = remoteUrl.match(SCP_URL_REGEX);
27
+ if (scpMatch) {
28
+ const [, host, path] = scpMatch;
29
+ if (!isHostMatch(host, expectedHostname))
30
+ return null;
31
+ const segments = normalizeRepoPath(path).split('/').filter(Boolean);
32
+ if (segments.length < 2)
33
+ return null;
34
+ return segments.slice(0, segmentLimit).join('/');
35
+ }
36
+ // URL-like
37
+ try {
38
+ const url = new URL(remoteUrl);
39
+ if (!isHostMatch(url.hostname, expectedHostname))
40
+ return null;
41
+ const segments = normalizeRepoPath(url.pathname).split('/').filter(Boolean);
42
+ if (segments.length < 2)
43
+ return null;
44
+ return segments.slice(0, segmentLimit).join('/');
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ function normalizeRepoPath(s) {
51
+ return s.replace(/^\/+|\/+$|\.git$/g, '');
52
+ }
53
+ function normalizeHostname(hostname) {
54
+ return hostname
55
+ .toLowerCase()
56
+ .replace(/^ssh\./, '')
57
+ .split(':')[0];
58
+ }
59
+ function isHostMatch(actual, expected) {
60
+ return normalizeHostname(actual) === normalizeHostname(expected);
61
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/github.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAOjC,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAGzD,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;IACrF,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAyCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4CxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAYR,sBAAsB,CAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;cACa,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO1E;;OAEG;cACa,aAAa,CAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;cAQC,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;IAWf,SAAS,CAAC,yBAAyB,CACjC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM;IAgBT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,mBAAmB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAcS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YAgDF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAmCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAiC/B,OAAO,CAAC,yBAAyB;CASlC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/github.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAOjC,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAGzD,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;IACrF,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAkCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4CxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAYR,sBAAsB,CAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;cACa,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO1E;;OAEG;cACa,aAAa,CAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;cAQC,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;IAWf,SAAS,CAAC,yBAAyB,CACjC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM;IAgBT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,mBAAmB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAcS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YAgDF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAmCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAiC/B,OAAO,CAAC,yBAAyB;CASlC"}
@@ -8,6 +8,7 @@ const node_fs_1 = require("node:fs");
8
8
  const node_os_1 = require("node:os");
9
9
  const output_1 = require("../../../../utils/output");
10
10
  const path_1 = require("../../../../utils/path");
11
+ const extract_repo_slug_1 = require("./extract-repo-slug");
11
12
  const remote_release_client_1 = require("./remote-release-client");
12
13
  // axios types and values don't seem to match
13
14
  const _axios = require("axios");
@@ -36,27 +37,21 @@ class GithubRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
36
37
  let apiBaseUrl = exports.defaultCreateReleaseProvider.apiBaseUrl;
37
38
  if (createReleaseConfig !== false &&
38
39
  typeof createReleaseConfig !== 'string') {
39
- hostname = createReleaseConfig.hostname;
40
+ hostname = createReleaseConfig.hostname || hostname;
40
41
  apiBaseUrl = createReleaseConfig.apiBaseUrl;
41
42
  }
42
- // Extract the 'user/repo' part from the URL
43
- const escapedHostname = hostname.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
44
- const regexString = `${escapedHostname}[/:]([\\w.-]+/[\\w.-]+)(\\.git)?`;
45
- const regex = new RegExp(regexString);
46
- const match = remoteUrl.match(regex);
47
- if (match && match[1]) {
48
- return {
49
- hostname,
50
- apiBaseUrl,
51
- // Ensure any trailing .git is stripped
52
- slug: match[1].replace(/\.git$/, ''),
53
- };
43
+ const slug = (0, extract_repo_slug_1.extractGitHubRepoSlug)(remoteUrl, hostname);
44
+ if (slug) {
45
+ return { hostname, apiBaseUrl, slug };
54
46
  }
55
47
  else {
56
48
  throw new Error(`Could not extract "user/repo" data from the resolved remote URL: ${remoteUrl}`);
57
49
  }
58
50
  }
59
51
  catch (error) {
52
+ if (process.env.NX_VERBOSE_LOGGING === 'true') {
53
+ console.error(error);
54
+ }
60
55
  return null;
61
56
  }
62
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/gitlab.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACL,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC/E,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAmDxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAaR,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAI7B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;cASpD,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;cAWzD,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CACjC,qBAAqB,EAAE,oBAAoB,GAC1C,MAAM;IAKT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAgBS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YA+CF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAuCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAoC/B,OAAO,CAAC,yBAAyB;CASlC"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/gitlab.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACL,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC/E,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAyCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAaR,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAI7B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;cASpD,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;cAWzD,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CACjC,qBAAqB,EAAE,oBAAoB,GAC1C,MAAM;IAKT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAgBS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YA+CF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAuCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAoC/B,OAAO,CAAC,yBAAyB;CASlC"}
@@ -5,6 +5,7 @@ const pc = require("picocolors");
5
5
  const enquirer_1 = require("enquirer");
6
6
  const node_child_process_1 = require("node:child_process");
7
7
  const output_1 = require("../../../../utils/output");
8
+ const extract_repo_slug_1 = require("./extract-repo-slug");
8
9
  const remote_release_client_1 = require("./remote-release-client");
9
10
  exports.defaultCreateReleaseProvider = {
10
11
  provider: 'gitlab',
@@ -31,16 +32,10 @@ class GitLabRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
31
32
  if (createReleaseConfig !== false &&
32
33
  typeof createReleaseConfig !== 'string') {
33
34
  hostname = createReleaseConfig.hostname || hostname;
34
- apiBaseUrl = createReleaseConfig.apiBaseUrl || apiBaseUrl;
35
+ apiBaseUrl = createReleaseConfig.apiBaseUrl;
35
36
  }
36
- // Extract the project path from the URL
37
- const escapedHostname = hostname.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
38
- const regexString = `${escapedHostname}[/:]([\\w.-]+/[\\w.-]+(?:/[\\w.-]+)*)(\\.git)?`;
39
- const regex = new RegExp(regexString);
40
- const match = remoteUrl.match(regex);
41
- if (match && match[1]) {
42
- // Remove trailing .git if present
43
- const slug = match[1].replace(/\.git$/, '');
37
+ const slug = (0, extract_repo_slug_1.extractGitLabRepoSlug)(remoteUrl, hostname);
38
+ if (slug) {
44
39
  // Encode the project path for use in API URLs
45
40
  const projectId = encodeURIComponent(slug);
46
41
  return {
@@ -16,7 +16,7 @@ export interface VersionDataEntry {
16
16
  * dockerVersion will be populated if the project is a docker project and has been
17
17
  * included within this release.
18
18
  */
19
- dockerVersion?: string;
19
+ dockerVersion?: string | null;
20
20
  /**
21
21
  * The list of projects which depend upon the current project.
22
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"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"}
@@ -203,14 +203,19 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
203
203
  }
204
204
  }
205
205
  else {
206
- // Use either docker version or semver version based on preference
207
- tags.push((0, utils_1.interpolate)(releaseGroup.releaseTag.pattern, {
208
- version: preferDockerVersion
209
- ? projectVersionData.dockerVersion
210
- : projectVersionData.newVersion,
211
- projectName: (0, git_1.sanitizeProjectNameForGitTag)(project),
212
- releaseGroupName: releaseGroup.name,
213
- }));
206
+ // Use either docker version or semver version based on preference, with null fallback
207
+ const version = preferDockerVersion
208
+ ? (projectVersionData.dockerVersion ??
209
+ projectVersionData.newVersion)
210
+ : (projectVersionData.newVersion ??
211
+ projectVersionData.dockerVersion);
212
+ if (version) {
213
+ tags.push((0, utils_1.interpolate)(releaseGroup.releaseTag.pattern, {
214
+ version,
215
+ projectName: (0, git_1.sanitizeProjectNameForGitTag)(project),
216
+ releaseGroupName: releaseGroup.name,
217
+ }));
218
+ }
214
219
  }
215
220
  }
216
221
  }
@@ -237,13 +242,16 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
237
242
  }
238
243
  }
239
244
  else {
240
- // Use either docker version or semver version based on preference
241
- tags.push((0, utils_1.interpolate)(releaseGroup.releaseTag.pattern, {
242
- version: preferDockerVersion
243
- ? projectVersionData.dockerVersion
244
- : projectVersionData.newVersion,
245
- releaseGroupName: releaseGroup.name,
246
- }));
245
+ // Use either docker version or semver version based on preference, with null fallback
246
+ const version = preferDockerVersion
247
+ ? (projectVersionData.dockerVersion ?? projectVersionData.newVersion)
248
+ : (projectVersionData.newVersion ?? projectVersionData.dockerVersion);
249
+ if (version) {
250
+ tags.push((0, utils_1.interpolate)(releaseGroup.releaseTag.pattern, {
251
+ version,
252
+ releaseGroupName: releaseGroup.name,
253
+ }));
254
+ }
247
255
  }
248
256
  }
249
257
  }
@@ -28,10 +28,10 @@ class BatchFunctionRunner {
28
28
  fileChanges.forEach((fileChange) => {
29
29
  this.pendingFiles.add(fileChange.path);
30
30
  });
31
- return this.process();
31
+ return this.process(true);
32
32
  }
33
- async process() {
34
- if (!this.running && this.hasPending) {
33
+ async process(runAnyway) {
34
+ if (!this.running && (this.hasPending || runAnyway)) {
35
35
  this.running = true;
36
36
  // Clone the pending projects and files before clearing
37
37
  const projects = new Set(this.pendingProjects);
@@ -41,7 +41,7 @@ class BatchFunctionRunner {
41
41
  this.pendingFiles.clear();
42
42
  return this.callback(projects, files).then(() => {
43
43
  this.running = false;
44
- this.process();
44
+ this.process(false);
45
45
  });
46
46
  }
47
47
  else {