nx 19.6.0-canary.20240724-684d2a9 → 19.6.0-canary.20240726-b3c67de

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. package/bin/nx-cloud.d.ts +2 -1
  2. package/bin/nx-cloud.js +9 -17
  3. package/package.json +13 -13
  4. package/src/command-line/list/list.js +10 -14
  5. package/src/command-line/migrate/migrate.js +19 -7
  6. package/src/command-line/release/command-object.js +5 -21
  7. package/src/command-line/report/report.d.ts +1 -0
  8. package/src/command-line/report/report.js +14 -9
  9. package/src/command-line/reset/command-object.d.ts +1 -0
  10. package/src/command-line/reset/command-object.js +4 -0
  11. package/src/command-line/reset/reset.js +13 -0
  12. package/src/command-line/run/run.js +2 -14
  13. package/src/daemon/socket-utils.js +1 -1
  14. package/src/daemon/tmp-dir.d.ts +1 -1
  15. package/src/daemon/tmp-dir.js +3 -2
  16. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +6 -0
  17. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +15 -5
  18. package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +2 -0
  19. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +1 -1
  20. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +3 -1
  21. package/src/native/index.d.ts +2 -0
  22. package/src/native/native-bindings.js +1 -0
  23. package/src/native/nx.wasi.cjs +35 -33
  24. package/src/native/nx.wasm32-wasi.wasm +0 -0
  25. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +2 -10
  26. package/src/nx-cloud/utilities/client.d.ts +10 -0
  27. package/src/nx-cloud/utilities/client.js +35 -0
  28. package/src/nx-cloud/utilities/url-shorten.d.ts +2 -2
  29. package/src/nx-cloud/utilities/url-shorten.js +13 -6
  30. package/src/tasks-runner/task-env.js +3 -2
  31. package/src/tasks-runner/utils.js +9 -5
  32. package/src/utils/chunkify.d.ts +10 -0
  33. package/src/utils/chunkify.js +19 -12
  34. package/src/utils/command-line-utils.d.ts +3 -0
  35. package/src/utils/command-line-utils.js +11 -7
  36. package/src/utils/git-utils.js +14 -4
  37. package/src/utils/plugins/core-plugins.d.ts +6 -3
  38. package/src/utils/plugins/core-plugins.js +107 -115
  39. package/src/utils/plugins/index.d.ts +4 -4
  40. package/src/utils/plugins/index.js +7 -8
  41. package/src/utils/plugins/installed-plugins.d.ts +2 -3
  42. package/src/utils/plugins/installed-plugins.js +4 -31
  43. package/src/utils/plugins/local-plugins.d.ts +2 -3
  44. package/src/utils/plugins/local-plugins.js +2 -29
  45. package/src/utils/plugins/output.d.ts +5 -0
  46. package/src/utils/plugins/output.js +104 -0
  47. package/src/utils/plugins/plugin-capabilities.d.ts +12 -2
  48. package/src/utils/plugins/plugin-capabilities.js +2 -87
  49. package/src/utils/plugins/community-plugins.d.ts +0 -2
  50. package/src/utils/plugins/community-plugins.js +0 -28
  51. package/src/utils/plugins/models.d.ts +0 -22
  52. package/src/utils/plugins/models.js +0 -2
  53. package/src/utils/plugins/shared.d.ts +0 -1
  54. package/src/utils/plugins/shared.js +0 -7
package/bin/nx-cloud.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import type { CloudTaskRunnerOptions } from '../src/nx-cloud/nx-cloud-tasks-runner-shell';
3
+ export declare function invokeCommandWithNxCloudClient(options: CloudTaskRunnerOptions): Promise<any>;
package/bin/nx-cloud.js CHANGED
@@ -1,38 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- const resolution_helpers_1 = require("../src/nx-cloud/resolution-helpers");
4
+ exports.invokeCommandWithNxCloudClient = invokeCommandWithNxCloudClient;
5
5
  const get_cloud_options_1 = require("../src/nx-cloud/utilities/get-cloud-options");
6
6
  const update_manager_1 = require("../src/nx-cloud/update-manager");
7
7
  const output_1 = require("../src/utils/output");
8
+ const client_1 = require("../src/nx-cloud/utilities/client");
8
9
  const command = process.argv[2];
9
10
  const options = (0, get_cloud_options_1.getCloudOptions)();
10
11
  Promise.resolve().then(async () => invokeCommandWithNxCloudClient(options));
11
12
  async function invokeCommandWithNxCloudClient(options) {
12
13
  try {
13
- const { nxCloudClient } = await (0, update_manager_1.verifyOrUpdateNxCloudClient)(options);
14
- const paths = (0, resolution_helpers_1.findAncestorNodeModules)(__dirname, []);
15
- nxCloudClient.configureLightClientRequire()(paths);
16
- if (command in nxCloudClient.commands) {
17
- nxCloudClient.commands[command]()
18
- .then(() => process.exit(0))
19
- .catch((e) => {
20
- console.error(e);
21
- process.exit(1);
22
- });
23
- }
24
- else {
14
+ const client = await (0, client_1.getCloudClient)(options);
15
+ client.invoke(command);
16
+ }
17
+ catch (e) {
18
+ if (e instanceof client_1.UnknownCommandError) {
25
19
  output_1.output.error({
26
- title: `Unknown Command "${command}"`,
20
+ title: `Unknown Command "${e.command}"`,
27
21
  });
28
22
  output_1.output.log({
29
23
  title: 'Available Commands:',
30
- bodyLines: Object.keys(nxCloudClient.commands).map((c) => `- ${c}`),
24
+ bodyLines: e.availableCommands.map((c) => `- ${c}`),
31
25
  });
32
26
  process.exit(1);
33
27
  }
34
- }
35
- catch (e) {
36
28
  const body = ['Cannot run commands from the `nx-cloud` CLI.'];
37
29
  if (e instanceof update_manager_1.NxCloudEnterpriseOutdatedError) {
38
30
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "19.6.0-canary.20240724-684d2a9",
3
+ "version": "19.6.0-canary.20240726-b3c67de",
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": {
@@ -41,7 +41,7 @@
41
41
  "@yarnpkg/lockfile": "^1.1.0",
42
42
  "@yarnpkg/parsers": "3.0.0-rc.46",
43
43
  "@zkochan/js-yaml": "0.0.7",
44
- "axios": "^1.6.0",
44
+ "axios": "^1.7.2",
45
45
  "chalk": "^4.1.0",
46
46
  "cli-cursor": "3.1.0",
47
47
  "cli-spinners": "2.6.1",
@@ -71,7 +71,7 @@
71
71
  "yargs-parser": "21.1.1",
72
72
  "node-machine-id": "1.1.12",
73
73
  "ora": "5.3.0",
74
- "@nrwl/tao": "19.6.0-canary.20240724-684d2a9"
74
+ "@nrwl/tao": "19.6.0-canary.20240726-b3c67de"
75
75
  },
76
76
  "peerDependencies": {
77
77
  "@swc-node/register": "^1.8.0",
@@ -86,16 +86,16 @@
86
86
  }
87
87
  },
88
88
  "optionalDependencies": {
89
- "@nx/nx-darwin-x64": "19.6.0-canary.20240724-684d2a9",
90
- "@nx/nx-darwin-arm64": "19.6.0-canary.20240724-684d2a9",
91
- "@nx/nx-linux-x64-gnu": "19.6.0-canary.20240724-684d2a9",
92
- "@nx/nx-linux-x64-musl": "19.6.0-canary.20240724-684d2a9",
93
- "@nx/nx-win32-x64-msvc": "19.6.0-canary.20240724-684d2a9",
94
- "@nx/nx-linux-arm64-gnu": "19.6.0-canary.20240724-684d2a9",
95
- "@nx/nx-linux-arm64-musl": "19.6.0-canary.20240724-684d2a9",
96
- "@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.20240724-684d2a9",
97
- "@nx/nx-win32-arm64-msvc": "19.6.0-canary.20240724-684d2a9",
98
- "@nx/nx-freebsd-x64": "19.6.0-canary.20240724-684d2a9"
89
+ "@nx/nx-darwin-x64": "19.6.0-canary.20240726-b3c67de",
90
+ "@nx/nx-darwin-arm64": "19.6.0-canary.20240726-b3c67de",
91
+ "@nx/nx-linux-x64-gnu": "19.6.0-canary.20240726-b3c67de",
92
+ "@nx/nx-linux-x64-musl": "19.6.0-canary.20240726-b3c67de",
93
+ "@nx/nx-win32-x64-msvc": "19.6.0-canary.20240726-b3c67de",
94
+ "@nx/nx-linux-arm64-gnu": "19.6.0-canary.20240726-b3c67de",
95
+ "@nx/nx-linux-arm64-musl": "19.6.0-canary.20240726-b3c67de",
96
+ "@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.20240726-b3c67de",
97
+ "@nx/nx-win32-arm64-msvc": "19.6.0-canary.20240726-b3c67de",
98
+ "@nx/nx-freebsd-x64": "19.6.0-canary.20240726-b3c67de"
99
99
  },
100
100
  "nx-migrations": {
101
101
  "migrations": "./migrations.json",
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listHandler = listHandler;
4
- const workspace_root_1 = require("../../utils/workspace-root");
4
+ const nx_json_1 = require("../../config/nx-json");
5
+ const project_graph_1 = require("../../project-graph/project-graph");
5
6
  const output_1 = require("../../utils/output");
6
7
  const plugins_1 = require("../../utils/plugins");
7
- const local_plugins_1 = require("../../utils/plugins/local-plugins");
8
- const project_graph_1 = require("../../project-graph/project-graph");
9
- const nx_json_1 = require("../../config/nx-json");
8
+ const workspace_root_1 = require("../../utils/workspace-root");
10
9
  /**
11
10
  * List available plugins or capabilities within a specific plugin
12
11
  *
@@ -16,31 +15,28 @@ const nx_json_1 = require("../../config/nx-json");
16
15
  *
17
16
  */
18
17
  async function listHandler(args) {
19
- const nxJson = (0, nx_json_1.readNxJson)();
20
18
  const projectGraph = await (0, project_graph_1.createProjectGraphAsync)({ exitOnError: true });
21
19
  const projects = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
22
20
  if (args.plugin) {
23
21
  await (0, plugins_1.listPluginCapabilities)(args.plugin, projects.projects);
24
22
  }
25
23
  else {
26
- const corePlugins = (0, plugins_1.fetchCorePlugins)();
27
- const localPlugins = await (0, local_plugins_1.getLocalWorkspacePlugins)(projects, nxJson);
24
+ const nxJson = (0, nx_json_1.readNxJson)();
25
+ const localPlugins = await (0, plugins_1.getLocalWorkspacePlugins)(projects, nxJson);
28
26
  const installedPlugins = await (0, plugins_1.getInstalledPluginsAndCapabilities)(workspace_root_1.workspaceRoot, projects.projects);
29
27
  if (localPlugins.size) {
30
- (0, local_plugins_1.listLocalWorkspacePlugins)(localPlugins);
28
+ (0, plugins_1.listPlugins)(localPlugins, 'Local workspace plugins:');
31
29
  }
32
- (0, plugins_1.listInstalledPlugins)(installedPlugins);
33
- (0, plugins_1.listCorePlugins)(installedPlugins, corePlugins);
30
+ (0, plugins_1.listPlugins)(installedPlugins, 'Installed plugins:');
31
+ (0, plugins_1.listAlsoAvailableCorePlugins)(installedPlugins);
34
32
  output_1.output.note({
35
33
  title: 'Community Plugins',
36
34
  bodyLines: [
37
35
  'Looking for a technology / framework not listed above?',
38
36
  'There are many excellent plugins maintained by the Nx community.',
39
- 'Search for the one you need here: https://nx.dev/plugins/registry.',
37
+ 'Search for the one you need here: https://nx.dev/plugin-registry.',
40
38
  ],
41
39
  });
42
- output_1.output.note({
43
- title: `Use "nx list [plugin]" to find out more`,
44
- });
40
+ output_1.output.note({ title: `Use "nx list [plugin]" to find out more` });
45
41
  }
46
42
  }
@@ -30,6 +30,7 @@ const child_process_2 = require("../../utils/child-process");
30
30
  const client_1 = require("../../daemon/client/client");
31
31
  const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
32
32
  const project_graph_1 = require("../../project-graph/project-graph");
33
+ const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
33
34
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
34
35
  function normalizeVersion(version) {
35
36
  const [semver, ...prereleaseTagParts] = version.split('-');
@@ -669,10 +670,10 @@ function readPackageMigrationConfig(packageName, dir) {
669
670
  };
670
671
  }
671
672
  }
672
- function createMigrationsFile(root, migrations) {
673
- (0, fileutils_1.writeJsonFile)((0, path_1.join)(root, 'migrations.json'), { migrations });
673
+ async function createMigrationsFile(root, migrations) {
674
+ await writeFormattedJsonFile((0, path_1.join)(root, 'migrations.json'), { migrations });
674
675
  }
675
- function updatePackageJson(root, updatedPackages) {
676
+ async function updatePackageJson(root, updatedPackages) {
676
677
  const packageJsonPath = (0, path_1.join)(root, 'package.json');
677
678
  if (!(0, fs_1.existsSync)(packageJsonPath)) {
678
679
  return;
@@ -694,7 +695,7 @@ function updatePackageJson(root, updatedPackages) {
694
695
  json[dependencyType][p] = updatedPackages[p].version;
695
696
  }
696
697
  });
697
- (0, fileutils_1.writeJsonFile)(packageJsonPath, json, {
698
+ await writeFormattedJsonFile(packageJsonPath, json, {
698
699
  appendNewLine: parseOptions.endsWithNewline,
699
700
  });
700
701
  }
@@ -719,7 +720,7 @@ async function updateInstallationDetails(root, updatedPackages) {
719
720
  }
720
721
  }
721
722
  }
722
- (0, fileutils_1.writeJsonFile)(nxJsonPath, nxJson, {
723
+ await writeFormattedJsonFile(nxJsonPath, nxJson, {
723
724
  appendNewLine: parseOptions.endsWithNewline,
724
725
  });
725
726
  }
@@ -765,10 +766,10 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
765
766
  excludeAppliedMigrations: opts.excludeAppliedMigrations,
766
767
  });
767
768
  const { migrations, packageUpdates, minVersionWithSkippedUpdates } = await migrator.migrate(opts.targetPackage, opts.targetVersion);
768
- updatePackageJson(root, packageUpdates);
769
+ await updatePackageJson(root, packageUpdates);
769
770
  await updateInstallationDetails(root, packageUpdates);
770
771
  if (migrations.length > 0) {
771
- createMigrationsFile(root, [
772
+ await createMigrationsFile(root, [
772
773
  ...addSplitConfigurationMigrationIfAvailable(from, packageUpdates),
773
774
  ...migrations,
774
775
  ]);
@@ -835,6 +836,17 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
835
836
  throw e;
836
837
  }
837
838
  }
839
+ async function writeFormattedJsonFile(filePath, content, options) {
840
+ const formattedContent = await (0, format_changed_files_with_prettier_if_available_1.formatFilesWithPrettierIfAvailable)([{ path: filePath, content: JSON.stringify(content) }], workspace_root_1.workspaceRoot, { silent: true });
841
+ if (formattedContent.has(filePath)) {
842
+ (0, fs_1.writeFileSync)(filePath, formattedContent.get(filePath), {
843
+ encoding: 'utf-8',
844
+ });
845
+ }
846
+ else {
847
+ (0, fileutils_1.writeJsonFile)(filePath, content, options);
848
+ }
849
+ }
838
850
  function addSplitConfigurationMigrationIfAvailable(from, packageJson) {
839
851
  if (!packageJson['@nrwl/workspace'])
840
852
  return [];
@@ -5,6 +5,7 @@ const yargs_1 = require("yargs");
5
5
  const nx_json_1 = require("../../config/nx-json");
6
6
  const logger_1 = require("../../utils/logger");
7
7
  const shared_options_1 = require("../yargs-utils/shared-options");
8
+ const command_line_utils_1 = require("../../utils/command-line-utils");
8
9
  exports.yargsReleaseCommand = {
9
10
  command: 'release',
10
11
  describe: 'Orchestrate versioning and publishing of applications and libraries',
@@ -223,27 +224,10 @@ const planCommand = {
223
224
  },
224
225
  };
225
226
  function coerceParallelOption(args) {
226
- if (args['parallel'] === 'false' || args['parallel'] === false) {
227
- return {
228
- ...args,
229
- parallel: 1,
230
- };
231
- }
232
- else if (args['parallel'] === 'true' ||
233
- args['parallel'] === true ||
234
- args['parallel'] === '') {
235
- return {
236
- ...args,
237
- parallel: Number(args['maxParallel'] || args['max-parallel'] || 3),
238
- };
239
- }
240
- else if (args['parallel'] !== undefined) {
241
- return {
242
- ...args,
243
- parallel: Number(args['parallel']),
244
- };
245
- }
246
- return args;
227
+ return {
228
+ ...args,
229
+ parallel: (0, command_line_utils_1.readParallelFromArgsAndEnv)(args),
230
+ };
247
231
  }
248
232
  function withGitCommitAndGitTagOptions(yargs) {
249
233
  return yargs
@@ -31,6 +31,7 @@ export interface ReportData {
31
31
  migrateTarget: string;
32
32
  };
33
33
  projectGraphError?: Error | null;
34
+ nativeTarget: string | null;
34
35
  }
35
36
  export declare function getReportData(): Promise<ReportData>;
36
37
  interface OutOfSyncPackageGroup {
@@ -43,14 +43,18 @@ const LINE_SEPARATOR = '---------------------------------------';
43
43
  *
44
44
  */
45
45
  async function reportHandler() {
46
- const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, } = await getReportData();
47
- const bodyLines = [
48
- `Node : ${process.versions.node}`,
49
- `OS : ${process.platform}-${process.arch}`,
50
- `${pm.padEnd(7)}: ${pmVersion}`,
51
- ``,
46
+ const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, nativeTarget, } = await getReportData();
47
+ const fields = [
48
+ ['Node', process.versions.node],
49
+ ['OS', `${process.platform}-${process.arch}`],
50
+ ['Native Target', nativeTarget ?? 'Unavailable'],
51
+ [pm, pmVersion],
52
52
  ];
53
- let padding = Math.max(...packageVersionsWeCareAbout.map((x) => x.package.length)) + 1;
53
+ let padding = Math.max(...fields.map((f) => f[0].length));
54
+ const bodyLines = fields.map(([field, value]) => `${field.padEnd(padding)} : ${value}`);
55
+ bodyLines.push('');
56
+ padding =
57
+ Math.max(...packageVersionsWeCareAbout.map((x) => x.package.length)) + 1;
54
58
  packageVersionsWeCareAbout.forEach((p) => {
55
59
  bodyLines.push(`${chalk.green(p.package.padEnd(padding))} : ${chalk.bold(p.version)}`);
56
60
  });
@@ -116,6 +120,7 @@ async function getReportData() {
116
120
  });
117
121
  }
118
122
  const outOfSyncPackageGroup = findMisalignedPackagesForPackage(nxPackageJson);
123
+ const native = isNativeAvailable();
119
124
  return {
120
125
  pm,
121
126
  pmVersion,
@@ -125,6 +130,7 @@ async function getReportData() {
125
130
  packageVersionsWeCareAbout,
126
131
  outOfSyncPackageGroup,
127
132
  projectGraphError,
133
+ nativeTarget: native ? native.getBinaryTarget() : null,
128
134
  };
129
135
  }
130
136
  async function tryGetProjectGraph() {
@@ -248,8 +254,7 @@ function findInstalledPackagesWeCareAbout() {
248
254
  }
249
255
  function isNativeAvailable() {
250
256
  try {
251
- require('../../native');
252
- return true;
257
+ return require('../../native');
253
258
  }
254
259
  catch {
255
260
  return false;
@@ -3,5 +3,6 @@ export type ResetCommandOptions = {
3
3
  onlyCache?: boolean;
4
4
  onlyDaemon?: boolean;
5
5
  onlyWorkspaceData?: boolean;
6
+ onlyCloud?: boolean;
6
7
  };
7
8
  export declare const yargsResetCommand: CommandModule<Record<string, unknown>, ResetCommandOptions>;
@@ -13,6 +13,10 @@ exports.yargsResetCommand = {
13
13
  .option('onlyDaemon', {
14
14
  description: 'Stops the Nx Daemon, it will be restarted fresh when the next Nx command is run.',
15
15
  type: 'boolean',
16
+ })
17
+ .option('onlyCloud', {
18
+ description: 'Resets the Nx Cloud client. NOTE: Does not clear the remote cache.',
19
+ type: 'boolean',
16
20
  })
17
21
  .option('onlyWorkspaceData', {
18
22
  description: 'Clears the workspace data directory. Used by Nx to store cached data about the current workspace (e.g. partial results, incremental data, etc)',
@@ -6,6 +6,8 @@ const client_1 = require("../../daemon/client/client");
6
6
  const cache_directory_1 = require("../../utils/cache-directory");
7
7
  const output_1 = require("../../utils/output");
8
8
  const native_file_cache_location_1 = require("../../native/native-file-cache-location");
9
+ const client_2 = require("../../nx-cloud/utilities/client");
10
+ const get_cloud_options_1 = require("../../nx-cloud/utilities/get-cloud-options");
9
11
  // Wait at max 5 seconds before giving up on a failing operation.
10
12
  const INCREMENTAL_BACKOFF_MAX_DURATION = 5000;
11
13
  // If an operation fails, wait 100ms before first retry.
@@ -61,6 +63,9 @@ async function resetHandler(args) {
61
63
  errors.push('Failed to clean up the workspace data directory.');
62
64
  }
63
65
  }
66
+ if (all || args.onlyCloud) {
67
+ await resetCloudClient();
68
+ }
64
69
  if (errors.length > 0) {
65
70
  output_1.output.error({
66
71
  title: 'Failed to reset the Nx workspace.',
@@ -77,6 +82,14 @@ async function resetHandler(args) {
77
82
  function killDaemon() {
78
83
  return client_1.daemonClient.stop();
79
84
  }
85
+ async function resetCloudClient() {
86
+ // Remove nx cloud marker files. This helps if the use happens to run `nx-cloud start-ci-run` or
87
+ // similar commands on their local machine.
88
+ try {
89
+ (await (0, client_2.getCloudClient)((0, get_cloud_options_1.getCloudOptions)())).invoke('cleanup');
90
+ }
91
+ catch { }
92
+ }
80
93
  function cleanupCacheEntries() {
81
94
  return incrementalBackoff(INCREMENTAL_BACKOFF_FIRST_DELAY, INCREMENTAL_BACKOFF_MAX_DURATION, () => {
82
95
  (0, fs_extra_1.rmSync)(cache_directory_1.cacheDir, { recursive: true, force: true });
@@ -35,20 +35,8 @@ async function* promiseToIterator(v) {
35
35
  yield await v;
36
36
  }
37
37
  async function iteratorToProcessStatusCode(i) {
38
- // This is a workaround to fix an issue that only happens with
39
- // the @angular-devkit/build-angular:browser builder. Starting
40
- // on version 12.0.1, a SASS compilation implementation was
41
- // introduced making use of workers and it's unref()-ing the worker
42
- // too early, causing the process to exit early in environments
43
- // like CI or when running Docker builds.
44
- const keepProcessAliveInterval = setInterval(() => { }, 1000);
45
- try {
46
- const { success } = await (0, async_iterator_1.getLastValueFromAsyncIterableIterator)(i);
47
- return success ? 0 : 1;
48
- }
49
- finally {
50
- clearInterval(keepProcessAliveInterval);
51
- }
38
+ const { success } = await (0, async_iterator_1.getLastValueFromAsyncIterableIterator)(i);
39
+ return success ? 0 : 1;
52
40
  }
53
41
  async function parseExecutorAndTarget({ project, target }, root, projectsConfigurations) {
54
42
  const proj = projectsConfigurations.projects[project];
@@ -25,7 +25,7 @@ const getForkedProcessOsSocketPath = (id) => {
25
25
  };
26
26
  exports.getForkedProcessOsSocketPath = getForkedProcessOsSocketPath;
27
27
  const getPluginOsSocketPath = (id) => {
28
- let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(), 'plugin' + id + '.sock'));
28
+ let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(true), 'plugin' + id + '.sock'));
29
29
  return exports.isWindows ? '\\\\.\\pipe\\nx\\' + (0, path_1.resolve)(path) : (0, path_1.resolve)(path);
30
30
  };
31
31
  exports.getPluginOsSocketPath = getPluginOsSocketPath;
@@ -8,5 +8,5 @@ export declare function isDaemonDisabled(): boolean;
8
8
  * We try to create a socket file in a tmp dir, but if it doesn't work because
9
9
  * for instance we don't have permissions, we create it in DAEMON_DIR_FOR_CURRENT_WORKSPACE
10
10
  */
11
- export declare function getSocketDir(): string;
11
+ export declare function getSocketDir(alreadyUnique?: boolean): string;
12
12
  export declare function removeSocketDir(): void;
@@ -51,9 +51,10 @@ function socketDirName() {
51
51
  * We try to create a socket file in a tmp dir, but if it doesn't work because
52
52
  * for instance we don't have permissions, we create it in DAEMON_DIR_FOR_CURRENT_WORKSPACE
53
53
  */
54
- function getSocketDir() {
54
+ function getSocketDir(alreadyUnique = false) {
55
55
  try {
56
- const dir = process.env.NX_DAEMON_SOCKET_DIR ?? socketDirName();
56
+ const dir = process.env.NX_DAEMON_SOCKET_DIR ??
57
+ (alreadyUnique ? tmp_1.tmpdir : socketDirName());
57
58
  (0, fs_extra_1.ensureDirSync)(dir);
58
59
  return dir;
59
60
  }
@@ -6,3 +6,9 @@ import type { Tree } from '../tree';
6
6
  export declare function formatChangedFilesWithPrettierIfAvailable(tree: Tree, options?: {
7
7
  silent?: boolean;
8
8
  }): Promise<void>;
9
+ export declare function formatFilesWithPrettierIfAvailable(files: {
10
+ path: string;
11
+ content: string | Buffer;
12
+ }[], root: string, options?: {
13
+ silent?: boolean;
14
+ }): Promise<Map<string, string>>;
@@ -1,23 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatChangedFilesWithPrettierIfAvailable = formatChangedFilesWithPrettierIfAvailable;
4
+ exports.formatFilesWithPrettierIfAvailable = formatFilesWithPrettierIfAvailable;
4
5
  const path = require("path");
5
6
  /**
6
7
  * Formats all the created or updated files using Prettier
7
8
  * @param tree - the file system tree
8
9
  */
9
10
  async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
11
+ const files = new Set(tree.listChanges().filter((file) => file.type !== 'DELETE'));
12
+ const results = await formatFilesWithPrettierIfAvailable(Array.from(files), tree.root, options);
13
+ for (const [path, content] of results) {
14
+ tree.write(path, content);
15
+ }
16
+ }
17
+ async function formatFilesWithPrettierIfAvailable(files, root, options) {
18
+ const results = new Map();
10
19
  let prettier;
11
20
  try {
12
21
  prettier = await Promise.resolve().then(() => require('prettier'));
13
22
  }
14
23
  catch { }
15
- if (!prettier)
16
- return;
17
- const files = new Set(tree.listChanges().filter((file) => file.type !== 'DELETE'));
24
+ if (!prettier) {
25
+ return results;
26
+ }
18
27
  await Promise.all(Array.from(files).map(async (file) => {
19
28
  try {
20
- const systemPath = path.join(tree.root, file.path);
29
+ const systemPath = path.join(root, file.path);
21
30
  let options = {
22
31
  filepath: systemPath,
23
32
  };
@@ -35,7 +44,7 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
35
44
  if (support.ignored || !support.inferredParser) {
36
45
  return;
37
46
  }
38
- tree.write(file.path,
47
+ results.set(file.path,
39
48
  // In prettier v3 the format result is a promise
40
49
  await prettier.format(file.content.toString('utf-8'), options));
41
50
  }
@@ -45,4 +54,5 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
45
54
  }
46
55
  }
47
56
  }));
57
+ return results;
48
58
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = default_1;
4
4
  const project_configuration_1 = require("../../generators/utils/project-configuration");
5
5
  const json_1 = require("../../generators/utils/json");
6
+ const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
6
7
  async function default_1(tree) {
7
8
  (0, json_1.updateJson)(tree, 'package.json', (json) => {
8
9
  if (json.dependencies && json.dependencies['@nrwl/nx-cloud']) {
@@ -24,4 +25,5 @@ async function default_1(tree) {
24
25
  }
25
26
  }
26
27
  (0, project_configuration_1.updateNxJson)(tree, nxJson);
28
+ await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
27
29
  }
@@ -1,2 +1,2 @@
1
1
  import { Tree } from '../../generators/tree';
2
- export default function migrate(tree: Tree): void;
2
+ export default function migrate(tree: Tree): Promise<void>;
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = migrate;
4
4
  const nx_json_1 = require("../../generators/utils/nx-json");
5
- function migrate(tree) {
5
+ const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
6
+ async function migrate(tree) {
6
7
  const nxJson = (0, nx_json_1.readNxJson)(tree);
7
8
  nxJson.useInferencePlugins = false;
8
9
  (0, nx_json_1.updateNxJson)(tree, nxJson);
10
+ await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
9
11
  }
@@ -116,6 +116,8 @@ export interface FileSetInput {
116
116
 
117
117
  export declare export function findImports(projectFileMap: Record<string, Array<string>>): Array<ImportResult>
118
118
 
119
+ export declare export function getBinaryTarget(): string
120
+
119
121
  /**
120
122
  * Expands the given outputs into a list of existing files.
121
123
  * This is used when hashing outputs
@@ -372,6 +372,7 @@ module.exports.copy = nativeBinding.copy
372
372
  module.exports.EventType = nativeBinding.EventType
373
373
  module.exports.expandOutputs = nativeBinding.expandOutputs
374
374
  module.exports.findImports = nativeBinding.findImports
375
+ module.exports.getBinaryTarget = nativeBinding.getBinaryTarget
375
376
  module.exports.getFilesForOutputs = nativeBinding.getFilesForOutputs
376
377
  module.exports.hashArray = nativeBinding.hashArray
377
378
  module.exports.hashFile = nativeBinding.hashFile