nx 19.6.0-canary.20240730-acd9bb7 → 19.6.0-canary.20240801-2111841

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 (28) hide show
  1. package/package.json +12 -12
  2. package/schemas/project-schema.json +40 -6
  3. package/src/command-line/connect/connect-to-nx-cloud.d.ts +2 -0
  4. package/src/command-line/connect/connect-to-nx-cloud.js +33 -6
  5. package/src/command-line/connect/view-logs.js +5 -3
  6. package/src/command-line/init/implementation/add-nx-to-monorepo.js +1 -1
  7. package/src/command-line/init/implementation/add-nx-to-nest.js +1 -1
  8. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +1 -1
  9. package/src/command-line/init/implementation/angular/index.js +1 -1
  10. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +1 -1
  11. package/src/command-line/init/implementation/utils.d.ts +1 -1
  12. package/src/command-line/init/implementation/utils.js +7 -5
  13. package/src/command-line/init/init-v2.js +1 -4
  14. package/src/command-line/migrate/migrate.js +14 -6
  15. package/src/command-line/release/plan.js +2 -12
  16. package/src/command-line/release/utils/generate-version-plan-content.d.ts +1 -0
  17. package/src/command-line/release/utils/generate-version-plan-content.js +21 -0
  18. package/src/command-line/release/utils/shared.js +7 -5
  19. package/src/command-line/release/version.js +4 -2
  20. package/src/core/graph/main.js +1 -1
  21. package/src/native/nx.wasm32-wasi.wasm +0 -0
  22. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +3 -2
  23. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +18 -57
  24. package/src/nx-cloud/utilities/url-shorten.d.ts +1 -1
  25. package/src/nx-cloud/utilities/url-shorten.js +5 -7
  26. package/src/project-graph/plugins/internal-api.js +4 -1
  27. package/src/tasks-runner/task-graph-utils.js +1 -1
  28. package/src/utils/git-utils.js +3 -1
Binary file
@@ -1,10 +1,11 @@
1
1
  import { Tree } from '../../../generators/tree';
2
- interface ConnectToNxCloudOptions {
2
+ export declare function printSuccessMessage(token: string | undefined, installationSource: string, usesGithub: boolean): Promise<string>;
3
+ export interface ConnectToNxCloudOptions {
3
4
  analytics?: boolean;
4
5
  installationSource?: string;
5
6
  hideFormatLogs?: boolean;
6
7
  github?: boolean;
7
8
  directory?: string;
8
9
  }
9
- export declare function connectToNxCloud(tree: Tree, schema: ConnectToNxCloudOptions): Promise<() => void>;
10
+ export declare function connectToNxCloud(tree: Tree, schema: ConnectToNxCloudOptions): Promise<string>;
10
11
  export default connectToNxCloud;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printSuccessMessage = printSuccessMessage;
3
4
  exports.connectToNxCloud = connectToNxCloud;
4
5
  const child_process_1 = require("child_process");
5
6
  const output_1 = require("../../../utils/output");
@@ -8,8 +9,6 @@ const nx_json_1 = require("../../../generators/utils/nx-json");
8
9
  const format_changed_files_with_prettier_if_available_1 = require("../../../generators/internal-utils/format-changed-files-with-prettier-if-available");
9
10
  const url_shorten_1 = require("../../utilities/url-shorten");
10
11
  const get_cloud_options_1 = require("../../utilities/get-cloud-options");
11
- const ora = require("ora");
12
- const open = require("open");
13
12
  function printCloudConnectionDisabledMessage() {
14
13
  output_1.output.error({
15
14
  title: `Connections to Nx Cloud are disabled for this workspace`,
@@ -55,53 +54,19 @@ async function createNxCloudWorkspace(workspaceName, installationSource, nxInitD
55
54
  return response.data;
56
55
  }
57
56
  async function printSuccessMessage(token, installationSource, usesGithub) {
58
- const connectCloudUrl = await (0, url_shorten_1.shortenedCloudUrl)(installationSource, token, usesGithub);
59
- if (installationSource === 'nx-connect' && usesGithub) {
60
- try {
61
- const cloudConnectSpinner = ora(`Opening Nx Cloud ${connectCloudUrl} in your browser to connect your workspace.`).start();
62
- await sleep(2000);
63
- open(connectCloudUrl);
64
- cloudConnectSpinner.succeed();
65
- }
66
- catch (e) {
67
- output_1.output.note({
68
- title: `Your Nx Cloud workspace is ready.`,
69
- bodyLines: [
70
- `To claim it, connect it to your Nx Cloud account:`,
71
- `- Go to the following URL to connect your workspace to Nx Cloud:`,
72
- '',
73
- `${connectCloudUrl}`,
74
- ],
75
- });
76
- }
77
- }
78
- else {
79
- if (installationSource === 'create-nx-workspace') {
80
- output_1.output.note({
81
- title: `Your Nx Cloud workspace is ready.`,
82
- bodyLines: [
83
- `To claim it, connect it to your Nx Cloud account:`,
84
- `- Push your repository to your git hosting provider.`,
85
- `- Go to the following URL to connect your workspace to Nx Cloud:`,
86
- '',
87
- `${connectCloudUrl}`,
88
- ],
89
- });
90
- }
91
- else {
92
- output_1.output.note({
93
- title: `Your Nx Cloud workspace is ready.`,
94
- bodyLines: [
95
- `To claim it, connect it to your Nx Cloud account:`,
96
- `- Commit and push your changes.`,
97
- `- Create a pull request for the changes.`,
98
- `- Go to the following URL to connect your workspace to Nx Cloud:`,
99
- '',
100
- `${connectCloudUrl}`,
101
- ],
102
- });
103
- }
104
- }
57
+ const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)(installationSource, token, usesGithub);
58
+ output_1.output.note({
59
+ title: `Your Nx Cloud workspace is ready.`,
60
+ bodyLines: [
61
+ `To claim it, connect it to your Nx Cloud account:`,
62
+ `- Commit and push your changes.`,
63
+ `- Create a pull request for the changes.`,
64
+ `- Go to the following URL to connect your workspace to Nx Cloud:`,
65
+ '',
66
+ `${connectCloudUrl}`,
67
+ ],
68
+ });
69
+ return connectCloudUrl;
105
70
  }
106
71
  function addNxCloudOptionsToNxJson(tree, nxJson, token) {
107
72
  nxJson ??= {
@@ -118,12 +83,11 @@ async function connectToNxCloud(tree, schema) {
118
83
  schema.installationSource ??= 'user';
119
84
  const nxJson = (0, nx_json_1.readNxJson)(tree);
120
85
  if (nxJson?.neverConnectToCloud) {
121
- return () => {
122
- printCloudConnectionDisabledMessage();
123
- };
86
+ printCloudConnectionDisabledMessage();
87
+ return null;
124
88
  }
125
89
  else {
126
- const usesGithub = await (0, url_shorten_1.repoUsesGithub)(schema.github);
90
+ const usesGithub = schema.github ?? (await (0, url_shorten_1.repoUsesGithub)(schema.github));
127
91
  let responseFromCreateNxCloudWorkspace;
128
92
  // do NOT create Nx Cloud token (createNxCloudWorkspace)
129
93
  // if user is using github and is running nx-connect
@@ -133,11 +97,8 @@ async function connectToNxCloud(tree, schema) {
133
97
  await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree, {
134
98
  silent: schema.hideFormatLogs,
135
99
  });
100
+ return responseFromCreateNxCloudWorkspace.token;
136
101
  }
137
- return async () => await printSuccessMessage(responseFromCreateNxCloudWorkspace?.token, schema.installationSource, usesGithub);
138
102
  }
139
103
  }
140
- function sleep(ms) {
141
- return new Promise((resolve) => setTimeout(resolve, ms));
142
- }
143
104
  exports.default = connectToNxCloud;
@@ -1,4 +1,4 @@
1
- export declare function shortenedCloudUrl(installationSource: string, accessToken?: string, usesGithub?: boolean): Promise<string>;
1
+ export declare function createNxCloudOnboardingURL(onboardingSource: string, accessToken?: string, usesGithub?: boolean, meta?: string): Promise<string>;
2
2
  export declare function repoUsesGithub(github?: boolean, githubSlug?: string, apiUrl?: string): Promise<boolean>;
3
3
  export declare function getURLifShortenFailed(usesGithub: boolean, githubSlug: string | null, apiUrl: string, source: string, accessToken?: string): string;
4
4
  export declare function getNxCloudVersion(apiUrl: string): Promise<string | null>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shortenedCloudUrl = shortenedCloudUrl;
3
+ exports.createNxCloudOnboardingURL = createNxCloudOnboardingURL;
4
4
  exports.repoUsesGithub = repoUsesGithub;
5
5
  exports.getURLifShortenFailed = getURLifShortenFailed;
6
6
  exports.getNxCloudVersion = getNxCloudVersion;
@@ -10,7 +10,7 @@ exports.compareCleanCloudVersions = compareCleanCloudVersions;
10
10
  const devkit_exports_1 = require("../../devkit-exports");
11
11
  const git_utils_1 = require("../../utils/git-utils");
12
12
  const get_cloud_options_1 = require("./get-cloud-options");
13
- async function shortenedCloudUrl(installationSource, accessToken, usesGithub) {
13
+ async function createNxCloudOnboardingURL(onboardingSource, accessToken, usesGithub, meta) {
14
14
  const githubSlug = (0, git_utils_1.getGithubSlugOrNull)();
15
15
  const apiUrl = (0, get_cloud_options_1.getCloudUrl)();
16
16
  if (usesGithub === undefined || usesGithub === null) {
@@ -28,13 +28,14 @@ async function shortenedCloudUrl(installationSource, accessToken, usesGithub) {
28
28
  ${e}`);
29
29
  return apiUrl;
30
30
  }
31
- const source = getSource(installationSource);
31
+ const source = getSource(onboardingSource);
32
32
  try {
33
33
  const response = await require('axios').post(`${apiUrl}/nx-cloud/onboarding`, {
34
34
  type: usesGithub ? 'GITHUB' : 'MANUAL',
35
35
  source,
36
36
  accessToken: usesGithub ? null : accessToken,
37
37
  selectedRepositoryName: githubSlug === 'github' ? null : githubSlug,
38
+ meta,
38
39
  });
39
40
  if (!response?.data || response.data.message) {
40
41
  throw new Error(response?.data?.message ?? 'Failed to shorten Nx Cloud URL');
@@ -67,11 +68,8 @@ function getSource(installationSource) {
67
68
  else if (installationSource.includes('nx-connect')) {
68
69
  return 'nx-connect';
69
70
  }
70
- else if (installationSource.includes('create-nx-workspace')) {
71
- return 'create-nx-workspace';
72
- }
73
71
  else {
74
- return 'other';
72
+ return installationSource;
75
73
  }
76
74
  }
77
75
  function getURLifShortenFailed(usesGithub, githubSlug, apiUrl, source, accessToken) {
@@ -13,6 +13,7 @@ const loader_1 = require("./loader");
13
13
  const utils_1 = require("./utils");
14
14
  const error_types_1 = require("../error-types");
15
15
  const native_1 = require("../../native");
16
+ const os_1 = require("os");
16
17
  class LoadedNxPlugin {
17
18
  constructor(plugin, pluginDefinition) {
18
19
  this.name = plugin.name;
@@ -74,7 +75,9 @@ exports.nxPluginCache = new Map();
74
75
  async function loadNxPlugins(plugins, root = workspace_root_1.workspaceRoot) {
75
76
  performance.mark('loadNxPlugins:start');
76
77
  const loadingMethod = process.env.NX_ISOLATE_PLUGINS === 'true' ||
77
- (!native_1.IS_WASM && process.env.NX_ISOLATE_PLUGINS !== 'false')
78
+ (!native_1.IS_WASM &&
79
+ (0, os_1.platform)() !== 'win32' &&
80
+ process.env.NX_ISOLATE_PLUGINS !== 'false')
78
81
  ? isolation_1.loadNxPluginInIsolation
79
82
  : loader_1.loadNxPlugin;
80
83
  plugins = await normalizePlugins(plugins, root);
@@ -66,7 +66,7 @@ function validateNoAtomizedTasks(taskGraph, projectGraph) {
66
66
  .filter((item, index, arr) => arr.indexOf(item) === index);
67
67
  const moreInfoLines = [
68
68
  `Please enable Nx Cloud or use the slower ${nonAtomizedTasks.join(',')} task${nonAtomizedTasks.length > 1 ? 's' : ''}.`,
69
- 'Learn more at https://nx.dev/ci/features/split-e2e-tasks#use-atomizer-only-with-nx-cloud-distribution',
69
+ 'Learn more at https://nx.dev/ci/features/split-e2e-tasks#nx-cloud-is-required-to-run-atomized-tasks',
70
70
  ];
71
71
  if (atomizedRootTasks.length === 1) {
72
72
  output_1.output.error({
@@ -8,7 +8,9 @@ const child_process_1 = require("child_process");
8
8
  const devkit_exports_1 = require("../devkit-exports");
9
9
  function getGithubSlugOrNull() {
10
10
  try {
11
- const gitRemote = (0, child_process_1.execSync)('git remote -v').toString();
11
+ const gitRemote = (0, child_process_1.execSync)('git remote -v', {
12
+ stdio: 'pipe',
13
+ }).toString();
12
14
  // If there are no remotes, we default to github
13
15
  if (!gitRemote || gitRemote.length === 0) {
14
16
  return 'github';