nx 21.4.0-beta.2 → 21.4.0-beta.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 (48) hide show
  1. package/package.json +11 -11
  2. package/src/command-line/init/implementation/utils.d.ts.map +1 -1
  3. package/src/command-line/init/implementation/utils.js +1 -2
  4. package/src/command-line/mcp/command-object.d.ts +3 -0
  5. package/src/command-line/mcp/command-object.d.ts.map +1 -0
  6. package/src/command-line/mcp/command-object.js +24 -0
  7. package/src/command-line/mcp/mcp.d.ts +3 -0
  8. package/src/command-line/mcp/mcp.d.ts.map +1 -0
  9. package/src/command-line/mcp/mcp.js +22 -0
  10. package/src/command-line/nx-cloud/connect/connect-to-nx-cloud.d.ts.map +1 -1
  11. package/src/command-line/nx-cloud/connect/connect-to-nx-cloud.js +4 -4
  12. package/src/command-line/nx-cloud/connect/view-logs.d.ts.map +1 -1
  13. package/src/command-line/nx-cloud/connect/view-logs.js +3 -5
  14. package/src/command-line/nx-commands.d.ts.map +1 -1
  15. package/src/command-line/nx-commands.js +2 -0
  16. package/src/command-line/release/changelog.js +1 -0
  17. package/src/command-line/release/command-object.js +4 -0
  18. package/src/command-line/release/config/config.d.ts.map +1 -1
  19. package/src/command-line/release/config/config.js +22 -13
  20. package/src/command-line/release/utils/resolve-nx-json-error-message.js +1 -1
  21. package/src/core/graph/main.js +1 -1
  22. package/src/core/graph/styles.js +1 -1
  23. package/src/native/nx.wasi-browser.js +42 -39
  24. package/src/native/nx.wasm32-wasi.wasm +0 -0
  25. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +1 -1
  26. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts.map +1 -1
  27. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +5 -3
  28. package/src/nx-cloud/utilities/onboarding.d.ts.map +1 -1
  29. package/src/nx-cloud/utilities/onboarding.js +1 -1
  30. package/src/nx-cloud/utilities/url-shorten.d.ts +1 -2
  31. package/src/nx-cloud/utilities/url-shorten.d.ts.map +1 -1
  32. package/src/nx-cloud/utilities/url-shorten.js +17 -21
  33. package/src/plugins/js/index.d.ts.map +1 -1
  34. package/src/plugins/js/index.js +10 -16
  35. package/src/plugins/js/lock-file/bun-parser.d.ts +15 -0
  36. package/src/plugins/js/lock-file/bun-parser.d.ts.map +1 -0
  37. package/src/plugins/js/lock-file/bun-parser.js +964 -0
  38. package/src/plugins/js/lock-file/lock-file.d.ts +2 -2
  39. package/src/plugins/js/lock-file/lock-file.d.ts.map +1 -1
  40. package/src/plugins/js/lock-file/lock-file.js +40 -17
  41. package/src/plugins/js/lock-file/project-graph-pruning.d.ts.map +1 -1
  42. package/src/plugins/js/lock-file/project-graph-pruning.js +3 -1
  43. package/src/utils/ab-testing.d.ts +1 -1
  44. package/src/utils/ab-testing.d.ts.map +1 -1
  45. package/src/utils/ab-testing.js +1 -1
  46. package/src/utils/git-utils.d.ts +6 -6
  47. package/src/utils/git-utils.d.ts.map +1 -1
  48. package/src/utils/git-utils.js +75 -50
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "21.4.0-beta.2",
3
+ "version": "21.4.0-beta.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": {
@@ -83,16 +83,16 @@
83
83
  }
84
84
  },
85
85
  "optionalDependencies": {
86
- "@nx/nx-darwin-arm64": "21.4.0-beta.2",
87
- "@nx/nx-darwin-x64": "21.4.0-beta.2",
88
- "@nx/nx-freebsd-x64": "21.4.0-beta.2",
89
- "@nx/nx-linux-arm-gnueabihf": "21.4.0-beta.2",
90
- "@nx/nx-linux-arm64-gnu": "21.4.0-beta.2",
91
- "@nx/nx-linux-arm64-musl": "21.4.0-beta.2",
92
- "@nx/nx-linux-x64-gnu": "21.4.0-beta.2",
93
- "@nx/nx-linux-x64-musl": "21.4.0-beta.2",
94
- "@nx/nx-win32-arm64-msvc": "21.4.0-beta.2",
95
- "@nx/nx-win32-x64-msvc": "21.4.0-beta.2"
86
+ "@nx/nx-darwin-arm64": "21.4.0-beta.4",
87
+ "@nx/nx-darwin-x64": "21.4.0-beta.4",
88
+ "@nx/nx-freebsd-x64": "21.4.0-beta.4",
89
+ "@nx/nx-linux-arm-gnueabihf": "21.4.0-beta.4",
90
+ "@nx/nx-linux-arm64-gnu": "21.4.0-beta.4",
91
+ "@nx/nx-linux-arm64-musl": "21.4.0-beta.4",
92
+ "@nx/nx-linux-x64-gnu": "21.4.0-beta.4",
93
+ "@nx/nx-linux-x64-musl": "21.4.0-beta.4",
94
+ "@nx/nx-win32-arm64-msvc": "21.4.0-beta.4",
95
+ "@nx/nx-win32-x64-msvc": "21.4.0-beta.4"
96
96
  },
97
97
  "nx-migrations": {
98
98
  "migrations": "./migrations.json",
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/init/implementation/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAEL,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AAUxC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,aAAa,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,QA0C1C;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,mBAAmB,CA+GrB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAY9B;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,QAqC3C;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,sBAAmD,QAOzD;AAED,wBAAsB,SAAS,CAC7B,kBAAkB,EACd,SAAS,GACT,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,mBAAmB,iBAMxB;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CAiBN;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,GAAG,EAAE,sBAAsB,QAqB5B;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,QAQjE;AAED,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,WAAW,GACZ,EAAE;IACD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,IAAI,CAUP;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,WASlD;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,WAa7C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/init/implementation/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAEL,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AASxC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,aAAa,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,QA0C1C;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,mBAAmB,CA+GrB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAY9B;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,QAqC3C;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,sBAAmD,QAOzD;AAED,wBAAsB,SAAS,CAC7B,kBAAkB,EACd,SAAS,GACT,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,mBAAmB,iBAMxB;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CAiBN;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,GAAG,EAAE,sBAAsB,QAqB5B;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,QAQjE;AAED,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,WAAW,GACZ,EAAE;IACD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,IAAI,CAUP;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,WASlD;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,WAa7C"}
@@ -21,7 +21,6 @@ const path_2 = require("../../../utils/path");
21
21
  const versions_1 = require("../../../utils/versions");
22
22
  const fs_1 = require("fs");
23
23
  const connect_to_nx_cloud_1 = require("../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
24
- const url_shorten_1 = require("../../../nx-cloud/utilities/url-shorten");
25
24
  const connect_to_nx_cloud_2 = require("../../nx-cloud/connect/connect-to-nx-cloud");
26
25
  const deduce_default_base_1 = require("./deduce-default-base");
27
26
  function createNxJsonFile(repoRoot, topologicalTargets, cacheableOperations, scriptOutputs) {
@@ -216,7 +215,7 @@ async function initCloud(installationSource) {
216
215
  const token = await (0, connect_to_nx_cloud_2.connectWorkspaceToCloud)({
217
216
  installationSource,
218
217
  });
219
- await (0, connect_to_nx_cloud_1.printSuccessMessage)(token, installationSource, await (0, url_shorten_1.repoUsesGithub)());
218
+ await (0, connect_to_nx_cloud_1.printSuccessMessage)(token, installationSource);
220
219
  }
221
220
  function addVsCodeRecommendedExtensions(repoRoot, extensions) {
222
221
  const vsCodeExtensionsPath = (0, path_1.join)(repoRoot, '.vscode/extensions.json');
@@ -0,0 +1,3 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const yargsMcpCommand: 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/mcp/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,eAAO,MAAM,eAAe,EAAE,aAqB7B,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.yargsMcpCommand = void 0;
4
+ exports.yargsMcpCommand = {
5
+ command: 'mcp',
6
+ describe: 'Starts the Nx MCP server.',
7
+ builder: (y) => y
8
+ .version(false)
9
+ .strict(false)
10
+ .parserConfiguration({
11
+ 'unknown-options-as-args': true,
12
+ 'populate--': true,
13
+ })
14
+ .usage('')
15
+ .help(false)
16
+ .showHelp(async () => {
17
+ await (await Promise.resolve().then(() => require('./mcp'))).showHelp();
18
+ process.exit(0);
19
+ }),
20
+ handler: async (args) => {
21
+ await (await Promise.resolve().then(() => require('./mcp'))).mcpHandler(args);
22
+ process.exit(0);
23
+ },
24
+ };
@@ -0,0 +1,3 @@
1
+ export declare function mcpHandler(args: any): Promise<void>;
2
+ export declare function showHelp(): Promise<void>;
3
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/mcp/mcp.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,GAAG,iBAOzC;AAED,wBAAsB,QAAQ,kBAa7B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mcpHandler = mcpHandler;
4
+ exports.showHelp = showHelp;
5
+ const child_process_1 = require("child_process");
6
+ const package_manager_1 = require("../../utils/package-manager");
7
+ const workspace_root_1 = require("../../utils/workspace-root");
8
+ async function mcpHandler(args) {
9
+ const packageManagerCommands = (0, package_manager_1.getPackageManagerCommand)();
10
+ (0, child_process_1.spawnSync)(packageManagerCommands.dlx, ['-y', 'nx-mcp@latest', ...args['_']], {
11
+ stdio: 'inherit',
12
+ cwd: workspace_root_1.workspaceRoot,
13
+ });
14
+ }
15
+ async function showHelp() {
16
+ const packageManagerCommands = (0, package_manager_1.getPackageManagerCommand)();
17
+ const helpOutput = (0, child_process_1.spawnSync)(packageManagerCommands.dlx, ['-y', 'nx-mcp@latest', '--help'], {
18
+ cwd: workspace_root_1.workspaceRoot,
19
+ encoding: 'utf-8',
20
+ });
21
+ console.log(helpOutput.stdout?.toString().replaceAll('nx-mcp', 'nx mcp'));
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"connect-to-nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/connect-to-nx-cloud.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,uBAAuB,EACxB,MAAM,sEAAsE,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EACL,UAAU,EAIX,MAAM,2BAA2B,CAAC;AAQnC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,WAclE;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,EAChC,SAAS,SAAgB,mBAO1B;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA2ElB;AAMD,wBAAsB,kCAAkC,CACtD,OAAO,SAAS,EAChB,GAAG,GAAE,UAA2B,GAC/B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,iBAY/D"}
1
+ {"version":3,"file":"connect-to-nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/connect-to-nx-cloud.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,uBAAuB,EACxB,MAAM,sEAAsE,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EACL,UAAU,EAIX,MAAM,2BAA2B,CAAC;AAQnC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,WAclE;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,EAChC,SAAS,SAAgB,mBAO1B;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA6ElB;AAMD,wBAAsB,kCAAkC,CACtD,OAAO,SAAS,EAChB,GAAG,GAAE,UAA2B,GAC/B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,iBAY/D"}
@@ -16,8 +16,8 @@ const child_process_1 = require("../../../utils/child-process");
16
16
  const ab_testing_1 = require("../../../utils/ab-testing");
17
17
  const versions_1 = require("../../../utils/versions");
18
18
  const workspace_root_1 = require("../../../utils/workspace-root");
19
- const chalk = require("chalk");
20
19
  const git_utils_1 = require("../../../utils/git-utils");
20
+ const chalk = require("chalk");
21
21
  const ora = require('ora');
22
22
  const open = require('open');
23
23
  function onlyDefaultRunnerIsUsed(nxJson) {
@@ -60,7 +60,7 @@ async function connectToNxCloudCommand(options, command) {
60
60
  const installationSource = process.env.NX_CONSOLE
61
61
  ? 'nx-console'
62
62
  : 'nx-connect';
63
- const hasRemote = !!(0, git_utils_1.getGitRemote)();
63
+ const hasRemote = !!(0, git_utils_1.getVcsRemoteInfo)();
64
64
  if (!hasRemote && options.checkRemote) {
65
65
  output_1.output.error({
66
66
  title: 'Missing VCS provider',
@@ -78,7 +78,7 @@ async function connectToNxCloudCommand(options, command) {
78
78
  if (!token) {
79
79
  throw new Error(`Unable to authenticate. If you are connecting to Nx Cloud locally, set Nx Cloud ID in nx.json. If you are connecting in a CI context, either define accessToken in nx.json or set the NX_CLOUD_ACCESS_TOKEN env variable.`);
80
80
  }
81
- const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)(installationSource, token, options?.generateToken !== true);
81
+ const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)(installationSource, token, undefined, options?.generateToken === true);
82
82
  output_1.output.log({
83
83
  title: '✔ This workspace already has Nx Cloud set up',
84
84
  bodyLines: [
@@ -93,7 +93,7 @@ async function connectToNxCloudCommand(options, command) {
93
93
  generateToken: options?.generateToken,
94
94
  installationSource: command ?? installationSource,
95
95
  });
96
- const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)('nx-connect', token, options?.generateToken !== true);
96
+ const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)('nx-connect', token, undefined, options?.generateToken === true);
97
97
  try {
98
98
  const cloudConnectSpinner = ora(`Opening Nx Cloud ${connectCloudUrl} in your browser to connect your workspace.`).start();
99
99
  await sleep(2000);
@@ -1 +1 @@
1
- {"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/view-logs.ts"],"names":[],"mappings":"AAYA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAkDhD"}
1
+ {"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/view-logs.ts"],"names":[],"mappings":"AAWA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAiDhD"}
@@ -7,8 +7,6 @@ const nx_cloud_utils_1 = require("../../../utils/nx-cloud-utils");
7
7
  const output_1 = require("../../../utils/output");
8
8
  const nx_json_1 = require("../../../config/nx-json");
9
9
  const connect_to_nx_cloud_1 = require("./connect-to-nx-cloud");
10
- const connect_to_nx_cloud_2 = require("../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
11
- const url_shorten_1 = require("../../../nx-cloud/utilities/url-shorten");
12
10
  async function viewLogs() {
13
11
  const cloudUsed = (0, nx_cloud_utils_1.isNxCloudUsed)((0, nx_json_1.readNxJson)());
14
12
  if (cloudUsed) {
@@ -28,10 +26,10 @@ async function viewLogs() {
28
26
  output_1.output.log({
29
27
  title: 'Connecting to Nx Cloud',
30
28
  });
31
- const token = await (0, connect_to_nx_cloud_1.connectWorkspaceToCloud)({
29
+ await (0, connect_to_nx_cloud_1.connectWorkspaceToCloud)({
32
30
  installationSource: 'view-logs',
31
+ generateToken: true,
33
32
  });
34
- await (0, connect_to_nx_cloud_2.printSuccessMessage)(token, 'view-logs', await (0, url_shorten_1.repoUsesGithub)());
35
33
  }
36
34
  catch (e) {
37
35
  output_1.output.log({
@@ -48,7 +46,7 @@ async function viewLogs() {
48
46
  if (!cloudUsed) {
49
47
  output_1.output.note({
50
48
  title: 'Your workspace is now connected to Nx Cloud',
51
- bodyLines: [`Learn more about Nx Cloud at https://nx.app`],
49
+ bodyLines: [`Learn more about Nx Cloud at https://nx.dev/nx-cloud`],
52
50
  });
53
51
  }
54
52
  return 0;
@@ -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;AAsD/B,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAEzE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qBAkDf,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;AAuD/B,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAEzE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qBAmDf,CAAC"}
@@ -33,6 +33,7 @@ const command_object_27 = require("./nx-cloud/fix-ci/command-object");
33
33
  const command_objects_1 = require("./deprecated/command-objects");
34
34
  const command_object_28 = require("./sync/command-object");
35
35
  const output_1 = require("../utils/output");
36
+ const command_object_29 = require("./mcp/command-object");
36
37
  // Ensure that the output takes up the available width of the terminal.
37
38
  yargs.wrap(yargs.terminalWidth());
38
39
  exports.parserConfiguration = {
@@ -88,6 +89,7 @@ exports.commandsObject = yargs
88
89
  .command(command_object_25.yargsRecordCommand)
89
90
  .command(command_object_26.yargsStartCiRunCommand)
90
91
  .command(command_object_27.yargsFixCiCommand)
92
+ .command(command_object_29.yargsMcpCommand)
91
93
  .command(resolveConformanceCommandObject())
92
94
  .command(resolveConformanceCheckCommandObject())
93
95
  .scriptName('nx')
@@ -534,6 +534,7 @@ function resolveChangelogVersions(args, releaseGroups, releaseGroupToFilteredPro
534
534
  for (const projectName of releaseGroupProjectNames) {
535
535
  if (!args.versionData) {
536
536
  versionData[projectName] = {
537
+ dockerVersion: args.version,
537
538
  newVersion: args.version,
538
539
  currentVersion: '', // not relevant within changelog/commit generation
539
540
  dependentProjects: [], // not relevant within changelog/commit generation
@@ -126,6 +126,10 @@ const versionCommand = {
126
126
  .option('stage-changes', {
127
127
  type: 'boolean',
128
128
  describe: 'Whether or not to stage the changes made by this command. Useful when combining this command with changelog generation.',
129
+ })
130
+ .options('dockerVersionScheme', {
131
+ type: 'string',
132
+ describe: 'Exact docker version scheme to apply to the selected release group. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning.',
129
133
  }))),
130
134
  handler: async (args) => {
131
135
  const release = await Promise.resolve().then(() => require('./version'));
@@ -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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"}
@@ -303,7 +303,11 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
303
303
  releaseTagPattern:
304
304
  // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
305
305
  groupProjectsRelationship === 'independent'
306
- ? defaultIndependentReleaseTagPattern
306
+ ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
307
+ // Otherwise, use the default value to guarantee unique tags
308
+ WORKSPACE_DEFAULTS.releaseTagPattern?.includes('{projectName}')
309
+ ? WORKSPACE_DEFAULTS.releaseTagPattern
310
+ : defaultIndependentReleaseTagPattern
307
311
  : WORKSPACE_DEFAULTS.releaseTagPattern,
308
312
  releaseTagPatternCheckAllBranchesWhen: userConfig.releaseTagPatternCheckAllBranchesWhen ?? undefined,
309
313
  releaseTagPatternRequireSemver: groupReleaseTagPatternRequireSemver,
@@ -508,7 +512,11 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
508
512
  releaseTagPattern: releaseGroup.releaseTagPattern ||
509
513
  // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
510
514
  (projectsRelationship === 'independent'
511
- ? defaultIndependentReleaseTagPattern
515
+ ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
516
+ // Otherwise, use the default value to guarantee unique tags
517
+ userConfig.releaseTagPattern?.includes('{projectName}')
518
+ ? userConfig.releaseTagPattern
519
+ : defaultIndependentReleaseTagPattern
512
520
  : userConfig.releaseTagPattern || defaultFixedReleaseTagPattern),
513
521
  releaseTagPatternCheckAllBranchesWhen: releaseGroup.releaseTagPatternCheckAllBranchesWhen ??
514
522
  userConfig.releaseTagPatternCheckAllBranchesWhen ??
@@ -718,6 +726,7 @@ function fillUnspecifiedConventionalCommitsProperties(config) {
718
726
  };
719
727
  }
720
728
  async function handleNxReleaseConfigError(error, useLegacyVersioning) {
729
+ const linkMessage = `\nRead more about Nx Release at https://nx.dev/features/manage-releases.`;
721
730
  switch (error.code) {
722
731
  case 'PROJECTS_AND_GROUPS_DEFINED':
723
732
  {
@@ -727,7 +736,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
727
736
  ]);
728
737
  output_1.output.error({
729
738
  title: `"projects" is not valid when explicitly defining release groups, and everything should be expressed within "groups" in that case. If you are using "groups" then you should remove the "projects" property`,
730
- bodyLines: [nxJsonMessage],
739
+ bodyLines: [nxJsonMessage, linkMessage],
731
740
  });
732
741
  }
733
742
  break;
@@ -739,7 +748,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
739
748
  ]);
740
749
  output_1.output.error({
741
750
  title: `Release group "${error.data.releaseGroupName}" matches no projects. Please ensure all release groups match at least one project:`,
742
- bodyLines: [nxJsonMessage],
751
+ bodyLines: [nxJsonMessage, linkMessage],
743
752
  });
744
753
  }
745
754
  break;
@@ -751,7 +760,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
751
760
  ]);
752
761
  output_1.output.error({
753
762
  title: `Project "${error.data.project}" matches multiple release groups. Please ensure all projects are part of only one release group:`,
754
- bodyLines: [nxJsonMessage],
763
+ bodyLines: [nxJsonMessage, linkMessage],
755
764
  });
756
765
  }
757
766
  break;
@@ -765,7 +774,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
765
774
  ]);
766
775
  output_1.output.error({
767
776
  title: `Release group "${error.data.releaseGroupName}" has an invalid releaseTagPattern. Please ensure the pattern contains exactly one instance of the "{version}" placeholder`,
768
- bodyLines: [nxJsonMessage],
777
+ bodyLines: [nxJsonMessage, linkMessage],
769
778
  });
770
779
  }
771
780
  break;
@@ -779,7 +788,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
779
788
  : 'configuration options';
780
789
  output_1.output.error({
781
790
  title: `You have configured both the shorthand "version.conventionalCommits" and one or more of the related ${text} that it sets for you. Please use one or the other:`,
782
- bodyLines: [nxJsonMessage],
791
+ bodyLines: [nxJsonMessage, linkMessage],
783
792
  });
784
793
  }
785
794
  break;
@@ -791,7 +800,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
791
800
  ]);
792
801
  output_1.output.error({
793
802
  title: `You have duplicate conflicting git configurations. If you are using the top level 'nx release' command, then remove the 'release.version.git' and 'release.changelog.git' properties in favor of 'release.git'. If you are using the subcommands or the programmatic API, then remove the 'release.git' property in favor of 'release.version.git' and 'release.changelog.git':`,
794
- bodyLines: [nxJsonMessage],
803
+ bodyLines: [nxJsonMessage, linkMessage],
795
804
  });
796
805
  }
797
806
  break;
@@ -799,7 +808,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
799
808
  const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)(['release']);
800
809
  output_1.output.error({
801
810
  title: `There was an error when resolving the configured changelog renderer at path: ${error.data.workspaceRelativePath}`,
802
- bodyLines: [nxJsonMessage],
811
+ bodyLines: [nxJsonMessage, linkMessage],
803
812
  });
804
813
  break;
805
814
  }
@@ -812,7 +821,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
812
821
  title: `Your "changelog.createRelease" config specifies an unsupported provider "${error.data.provider}". The supported providers are ${error.data.supportedProviders
813
822
  .map((p) => `"${p}"`)
814
823
  .join(', ')}`,
815
- bodyLines: [nxJsonMessage],
824
+ bodyLines: [nxJsonMessage, linkMessage],
816
825
  });
817
826
  }
818
827
  break;
@@ -823,7 +832,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
823
832
  ]);
824
833
  output_1.output.error({
825
834
  title: `Your "changelog.createRelease" config specifies an invalid hostname "${error.data.hostname}". Please ensure you provide a valid hostname value, such as "example.com"`,
826
- bodyLines: [nxJsonMessage],
835
+ bodyLines: [nxJsonMessage, linkMessage],
827
836
  });
828
837
  }
829
838
  break;
@@ -834,7 +843,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
834
843
  ]);
835
844
  output_1.output.error({
836
845
  title: `Your "changelog.createRelease" config specifies an invalid apiBaseUrl "${error.data.apiBaseUrl}". Please ensure you provide a valid URL value, such as "https://example.com"`,
837
- bodyLines: [nxJsonMessage],
846
+ bodyLines: [nxJsonMessage, linkMessage],
838
847
  });
839
848
  }
840
849
  break;
@@ -845,7 +854,7 @@ async function handleNxReleaseConfigError(error, useLegacyVersioning) {
845
854
  ]);
846
855
  output_1.output.error({
847
856
  title: `The createRelease option for changelogs cannot be enabled when git push is explicitly disabled because the commit needs to be pushed to the remote in order to tie the release to it`,
848
- bodyLines: [nxJsonMessage],
857
+ bodyLines: [nxJsonMessage, linkMessage],
849
858
  });
850
859
  }
851
860
  break;
@@ -14,7 +14,7 @@ async function resolveNxJsonConfigErrorMessage(propPath) {
14
14
  ? `, line ${errorLines.startLine}`
15
15
  : `, lines ${errorLines.startLine}-${errorLines.endLine}`;
16
16
  }
17
- return nxJsonMessage;
17
+ return nxJsonMessage + '.';
18
18
  }
19
19
  async function getJsonConfigLinesForErrorMessage(rawConfig, jsonPath) {
20
20
  try {