nx 20.0.0-beta.1 → 20.0.0-beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. package/.eslintrc.json +11 -2
  2. package/bin/nx.js +10 -2
  3. package/package.json +14 -13
  4. package/schemas/nx-schema.json +26 -21
  5. package/src/adapter/compat.d.ts +1 -1
  6. package/src/adapter/compat.js +1 -0
  7. package/src/command-line/activate-powerpack/activate-powerpack.js +3 -1
  8. package/src/command-line/add/add.js +4 -2
  9. package/src/command-line/connect/view-logs.js +1 -0
  10. package/src/command-line/exec/exec.js +6 -1
  11. package/src/command-line/format/format.js +3 -1
  12. package/src/command-line/graph/graph.js +10 -9
  13. package/src/command-line/init/implementation/add-nx-to-nest.js +5 -5
  14. package/src/command-line/init/implementation/angular/integrated-workspace.js +4 -1
  15. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +5 -2
  16. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +3 -1
  17. package/src/command-line/init/implementation/dot-nx/nxw.js +1 -0
  18. package/src/command-line/init/implementation/react/check-for-uncommitted-changes.js +3 -1
  19. package/src/command-line/init/implementation/react/clean-up-files.js +7 -7
  20. package/src/command-line/init/implementation/react/index.js +36 -17
  21. package/src/command-line/init/implementation/react/rename-js-to-jsx.js +3 -3
  22. package/src/command-line/init/implementation/utils.js +5 -1
  23. package/src/command-line/init/init-v1.js +1 -0
  24. package/src/command-line/init/init-v2.js +1 -0
  25. package/src/command-line/migrate/command-object.js +4 -0
  26. package/src/command-line/migrate/migrate.js +1 -1
  27. package/src/command-line/release/changelog.js +1 -2
  28. package/src/command-line/release/config/version-plans.js +9 -8
  29. package/src/command-line/release/plan.js +6 -5
  30. package/src/command-line/release/release.js +2 -2
  31. package/src/command-line/release/utils/exec-command.js +1 -0
  32. package/src/command-line/release/utils/github.js +1 -0
  33. package/src/command-line/release/utils/launch-editor.js +6 -1
  34. package/src/command-line/release/version.js +6 -3
  35. package/src/command-line/report/report.d.ts +3 -1
  36. package/src/command-line/report/report.js +17 -2
  37. package/src/command-line/reset/reset.js +4 -4
  38. package/src/command-line/run/run.js +1 -0
  39. package/src/command-line/sync/sync.js +5 -4
  40. package/src/command-line/watch/watch.js +1 -0
  41. package/src/config/nx-json.d.ts +4 -0
  42. package/src/core/graph/main.js +1 -1
  43. package/src/core/graph/styles.css +1 -1
  44. package/src/core/graph/styles.js +1 -1
  45. package/src/daemon/cache.d.ts +1 -2
  46. package/src/daemon/cache.js +12 -21
  47. package/src/daemon/client/client.d.ts +4 -1
  48. package/src/daemon/client/client.js +9 -8
  49. package/src/daemon/client/generate-help-output.js +1 -0
  50. package/src/daemon/server/sync-generators.d.ts +4 -1
  51. package/src/daemon/server/sync-generators.js +33 -15
  52. package/src/daemon/tmp-dir.js +6 -7
  53. package/src/executors/run-commands/run-commands.impl.js +1 -0
  54. package/src/executors/run-script/run-script.impl.js +1 -0
  55. package/src/generators/tree.d.ts +1 -1
  56. package/src/generators/tree.js +11 -11
  57. package/src/native/nx.wasm32-wasi.wasm +0 -0
  58. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +1 -1
  59. package/src/plugins/js/index.js +1 -2
  60. package/src/project-graph/file-utils.js +1 -0
  61. package/src/project-graph/nx-deps-cache.js +5 -6
  62. package/src/tasks-runner/cache.d.ts +3 -1
  63. package/src/tasks-runner/cache.js +29 -29
  64. package/src/tasks-runner/default-tasks-runner.js +1 -1
  65. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +5 -0
  66. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +7 -0
  67. package/src/tasks-runner/life-cycles/task-history-life-cycle.js +3 -0
  68. package/src/tasks-runner/remove-old-cache-records.js +2 -3
  69. package/src/tasks-runner/task-orchestrator.d.ts +3 -1
  70. package/src/tasks-runner/task-orchestrator.js +3 -2
  71. package/src/tasks-runner/tasks-schedule.js +1 -1
  72. package/src/utils/ab-testing.js +4 -1
  73. package/src/utils/child-process.js +5 -3
  74. package/src/utils/command-line-utils.js +7 -1
  75. package/src/utils/default-base.js +5 -2
  76. package/src/utils/fileutils.d.ts +9 -1
  77. package/src/utils/fileutils.js +29 -12
  78. package/src/utils/git-utils.index-filter.js +2 -1
  79. package/src/utils/git-utils.js +4 -0
  80. package/src/utils/git-utils.tree-filter.js +3 -1
  81. package/src/utils/ignore.js +2 -2
  82. package/src/utils/package-manager.js +2 -2
  83. package/src/utils/plugins/core-plugins.js +4 -0
  84. package/src/utils/powerpack.d.ts +1 -1
  85. package/src/utils/powerpack.js +3 -8
  86. package/src/utils/sync-generators.d.ts +13 -3
  87. package/src/utils/sync-generators.js +99 -25
  88. package/src/utils/task-history.d.ts +2 -2
  89. package/src/utils/task-history.js +4 -1
@@ -59,6 +59,7 @@ function deduceDefaultBase() {
59
59
  try {
60
60
  (0, child_process_1.execSync)(`git rev-parse --verify main`, {
61
61
  stdio: ['ignore', 'ignore', 'ignore'],
62
+ windowsHide: true,
62
63
  });
63
64
  return 'main';
64
65
  }
@@ -66,6 +67,7 @@ function deduceDefaultBase() {
66
67
  try {
67
68
  (0, child_process_1.execSync)(`git rev-parse --verify dev`, {
68
69
  stdio: ['ignore', 'ignore', 'ignore'],
70
+ windowsHide: true,
69
71
  });
70
72
  return 'dev';
71
73
  }
@@ -73,6 +75,7 @@ function deduceDefaultBase() {
73
75
  try {
74
76
  (0, child_process_1.execSync)(`git rev-parse --verify develop`, {
75
77
  stdio: ['ignore', 'ignore', 'ignore'],
78
+ windowsHide: true,
76
79
  });
77
80
  return 'develop';
78
81
  }
@@ -80,6 +83,7 @@ function deduceDefaultBase() {
80
83
  try {
81
84
  (0, child_process_1.execSync)(`git rev-parse --verify next`, {
82
85
  stdio: ['ignore', 'ignore', 'ignore'],
86
+ windowsHide: true,
83
87
  });
84
88
  return 'next';
85
89
  }
@@ -128,7 +132,7 @@ function updateGitIgnore(root) {
128
132
  catch { }
129
133
  }
130
134
  function runInstall(repoRoot, pmc = (0, package_manager_1.getPackageManagerCommand)()) {
131
- (0, child_process_1.execSync)(pmc.install, { stdio: [0, 1, 2], cwd: repoRoot });
135
+ (0, child_process_1.execSync)(pmc.install, { stdio: [0, 1, 2], cwd: repoRoot, windowsHide: true });
132
136
  }
133
137
  async function initCloud(installationSource) {
134
138
  const token = await (0, connect_to_nx_cloud_2.connectWorkspaceToCloud)({
@@ -87,6 +87,7 @@ async function initHandler(options) {
87
87
  else {
88
88
  (0, child_process_1.execSync)(`npx --yes create-nx-workspace@${version} ${args}`, {
89
89
  stdio: [0, 1, 2],
90
+ windowsHide: true,
90
91
  });
91
92
  }
92
93
  }
@@ -32,6 +32,7 @@ function installPlugins(repoRoot, plugins, pmc, updatePackageScripts) {
32
32
  (0, child_process_2.execSync)(`${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${updatePackageScripts ? '--updatePackageScripts' : ''}`, {
33
33
  stdio: [0, 1, 2],
34
34
  cwd: repoRoot,
35
+ windowsHide: true,
35
36
  });
36
37
  }
37
38
  }
@@ -101,6 +101,7 @@ function runMigration() {
101
101
  }
102
102
  (0, child_process_2.execSync)(`${p} _migrate ${process.argv.slice(3).join(' ')}`, {
103
103
  stdio: ['inherit', 'inherit', 'inherit'],
104
+ windowsHide: true,
104
105
  });
105
106
  }
106
107
  }
@@ -127,18 +128,21 @@ function nxCliPath() {
127
128
  (0, child_process_2.execSync)(pmc.preInstall, {
128
129
  cwd: tmpDir,
129
130
  stdio: ['ignore', 'ignore', 'ignore'],
131
+ windowsHide: true,
130
132
  });
131
133
  // if it's berry ensure we set the node_linker to node-modules
132
134
  if (packageManager === 'yarn' && pmc.ciInstall.includes('immutable')) {
133
135
  (0, child_process_2.execSync)('yarn config set nodeLinker node-modules', {
134
136
  cwd: tmpDir,
135
137
  stdio: ['ignore', 'ignore', 'ignore'],
138
+ windowsHide: true,
136
139
  });
137
140
  }
138
141
  }
139
142
  (0, child_process_2.execSync)(pmc.install, {
140
143
  cwd: tmpDir,
141
144
  stdio: ['ignore', 'ignore', 'ignore'],
145
+ windowsHide: true,
142
146
  });
143
147
  // Set NODE_PATH so that these modules can be used for module resolution
144
148
  addToNodePath(path.join(tmpDir, 'node_modules'));
@@ -886,7 +886,7 @@ function runInstall() {
886
886
  output_1.output.log({
887
887
  title: `Running '${pmCommands.install}' to make sure necessary packages are installed`,
888
888
  });
889
- (0, child_process_1.execSync)(pmCommands.install, { stdio: [0, 1, 2] });
889
+ (0, child_process_1.execSync)(pmCommands.install, { stdio: [0, 1, 2], windowsHide: true });
890
890
  }
891
891
  async function executeMigrations(root, migrations, isVerbose, shouldCreateCommits, commitPrefix) {
892
892
  let initialDeps = getStringifiedPackageJsonDeps(root);
@@ -5,7 +5,6 @@ exports.createAPI = createAPI;
5
5
  exports.shouldCreateGitHubRelease = shouldCreateGitHubRelease;
6
6
  const chalk = require("chalk");
7
7
  const enquirer_1 = require("enquirer");
8
- const fs_extra_1 = require("fs-extra");
9
8
  const node_fs_1 = require("node:fs");
10
9
  const semver_1 = require("semver");
11
10
  const tmp_1 = require("tmp");
@@ -620,7 +619,7 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
620
619
  if (group.resolvedVersionPlans) {
621
620
  group.resolvedVersionPlans.forEach((plan) => {
622
621
  if (!args.dryRun) {
623
- (0, fs_extra_1.removeSync)(plan.absolutePath);
622
+ (0, node_fs_1.rmSync)(plan.absolutePath, { recursive: true, force: true });
624
623
  if (args.verbose) {
625
624
  console.log(`Removing ${plan.relativePath}`);
626
625
  }
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readRawVersionPlans = readRawVersionPlans;
4
4
  exports.setResolvedVersionPlansOnGroups = setResolvedVersionPlansOnGroups;
5
5
  exports.getVersionPlansAbsolutePath = getVersionPlansAbsolutePath;
6
- const fs_1 = require("fs");
7
- const fs_extra_1 = require("fs-extra");
8
6
  const node_child_process_1 = require("node:child_process");
7
+ const node_fs_1 = require("node:fs");
8
+ const promises_1 = require("node:fs/promises");
9
9
  const path_1 = require("path");
10
10
  const semver_1 = require("semver");
11
11
  const workspace_root_1 = require("../../../utils/workspace-root");
@@ -14,16 +14,15 @@ const fm = require('front-matter');
14
14
  const versionPlansDirectory = (0, path_1.join)('.nx', 'version-plans');
15
15
  async function readRawVersionPlans() {
16
16
  const versionPlansPath = getVersionPlansAbsolutePath();
17
- const versionPlansPathExists = await (0, fs_extra_1.pathExists)(versionPlansPath);
18
- if (!versionPlansPathExists) {
17
+ if (!(0, node_fs_1.existsSync)(versionPlansPath)) {
19
18
  return [];
20
19
  }
21
20
  const versionPlans = [];
22
- const versionPlanFiles = (0, fs_1.readdirSync)(versionPlansPath);
21
+ const versionPlanFiles = (0, node_fs_1.readdirSync)(versionPlansPath);
23
22
  for (const versionPlanFile of versionPlanFiles) {
24
23
  const filePath = (0, path_1.join)(versionPlansPath, versionPlanFile);
25
- const versionPlanContent = (0, fs_1.readFileSync)(filePath).toString();
26
- const versionPlanStats = await (0, fs_extra_1.stat)(filePath);
24
+ const versionPlanContent = (0, node_fs_1.readFileSync)(filePath).toString();
25
+ const versionPlanStats = await (0, promises_1.stat)(filePath);
27
26
  const parsedContent = fm(versionPlanContent);
28
27
  versionPlans.push({
29
28
  absolutePath: filePath,
@@ -191,7 +190,9 @@ function isReleaseType(value) {
191
190
  }
192
191
  async function getCommitForVersionPlanFile(rawVersionPlan, isVerbose) {
193
192
  return new Promise((resolve) => {
194
- (0, node_child_process_1.exec)(`git log --diff-filter=A --pretty=format:"%s|%h|%an|%ae|%b" -n 1 -- ${rawVersionPlan.absolutePath}`, (error, stdout, stderr) => {
193
+ (0, node_child_process_1.exec)(`git log --diff-filter=A --pretty=format:"%s|%h|%an|%ae|%b" -n 1 -- ${rawVersionPlan.absolutePath}`, {
194
+ windowsHide: true,
195
+ }, (error, stdout, stderr) => {
195
196
  if (error) {
196
197
  if (isVerbose) {
197
198
  console.error(`Error executing git command for ${rawVersionPlan.relativePath}: ${error.message}`);
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.releasePlanCLIHandler = void 0;
4
4
  exports.createAPI = createAPI;
5
5
  const enquirer_1 = require("enquirer");
6
- const fs_extra_1 = require("fs-extra");
6
+ const node_fs_1 = require("node:fs");
7
+ const promises_1 = require("node:fs/promises");
7
8
  const node_path_1 = require("node:path");
8
9
  const semver_1 = require("semver");
9
10
  const tmp_1 = require("tmp");
@@ -193,8 +194,8 @@ async function createVersionPlanFileForBumps(args, versionPlanBumps) {
193
194
  output_1.output.logSingleLine(`Creating version plan file "${versionPlanFileName}"`);
194
195
  (0, print_changes_1.printDiff)('', versionPlanFileContent, 1);
195
196
  const versionPlansAbsolutePath = (0, version_plans_1.getVersionPlansAbsolutePath)();
196
- await (0, fs_extra_1.ensureDir)(versionPlansAbsolutePath);
197
- await (0, fs_extra_1.writeFile)((0, node_path_1.join)(versionPlansAbsolutePath, versionPlanFileName), versionPlanFileContent);
197
+ await (0, promises_1.mkdir)(versionPlansAbsolutePath, { recursive: true });
198
+ await (0, promises_1.writeFile)((0, node_path_1.join)(versionPlansAbsolutePath, versionPlanFileName), versionPlanFileContent);
198
199
  }
199
200
  }
200
201
  async function promptForVersion(message) {
@@ -236,9 +237,9 @@ async function _promptForMessage(versionPlanName) {
236
237
  if (!message.length) {
237
238
  const tmpDir = (0, tmp_1.dirSync)().name;
238
239
  const messageFilePath = (0, node_path_1.join)(tmpDir, `DRAFT_MESSAGE__${versionPlanName}.md`);
239
- (0, fs_extra_1.writeFileSync)(messageFilePath, '');
240
+ (0, node_fs_1.writeFileSync)(messageFilePath, '');
240
241
  await (0, launch_editor_1.launchEditor)(messageFilePath);
241
- message = (0, fs_extra_1.readFileSync)(messageFilePath, 'utf-8');
242
+ message = (0, node_fs_1.readFileSync)(messageFilePath, 'utf-8');
242
243
  }
243
244
  message = message.trim();
244
245
  if (!message) {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.releaseCLIHandler = void 0;
4
4
  exports.createAPI = createAPI;
5
5
  const enquirer_1 = require("enquirer");
6
- const fs_extra_1 = require("fs-extra");
6
+ const node_fs_1 = require("node:fs");
7
7
  const nx_json_1 = require("../../config/nx-json");
8
8
  const file_map_utils_1 = require("../../project-graph/file-map-utils");
9
9
  const project_graph_1 = require("../../project-graph/project-graph");
@@ -106,7 +106,7 @@ function createAPI(overrideReleaseConfig) {
106
106
  }
107
107
  group.resolvedVersionPlans.forEach((plan) => {
108
108
  if (!args.dryRun) {
109
- (0, fs_extra_1.removeSync)(plan.absolutePath);
109
+ (0, node_fs_1.rmSync)(plan.absolutePath, { recursive: true, force: true });
110
110
  if (args.verbose) {
111
111
  console.log(`Removing ${plan.relativePath}`);
112
112
  }
@@ -8,6 +8,7 @@ async function execCommand(cmd, args, options) {
8
8
  ...options,
9
9
  stdio: ['pipe', 'pipe', 'pipe'], // stdin, stdout, stderr
10
10
  encoding: 'utf-8',
11
+ windowsHide: true,
11
12
  });
12
13
  let stdout = '';
13
14
  let stderr = '';
@@ -255,6 +255,7 @@ async function resolveGithubToken(hostname) {
255
255
  return (0, node_child_process_1.execSync)(`gh auth token`, {
256
256
  encoding: 'utf8',
257
257
  stdio: 'pipe',
258
+ windowsHide: true,
258
259
  }).trim();
259
260
  }
260
261
  }
@@ -13,6 +13,7 @@ async function launchEditor(filePath) {
13
13
  return new Promise((resolve, reject) => {
14
14
  const editorProcess = (0, node_child_process_1.spawn)(cmd, [...args, filePath], {
15
15
  stdio: 'inherit', // This will ensure the editor uses the current terminal
16
+ windowsHide: true,
16
17
  });
17
18
  editorProcess.on('exit', (code) => {
18
19
  if (code === 0) {
@@ -26,7 +27,11 @@ async function launchEditor(filePath) {
26
27
  }
27
28
  function getGitConfig(key) {
28
29
  try {
29
- return (0, node_child_process_1.execSync)(`git config --get ${key}`).toString().trim();
30
+ return (0, node_child_process_1.execSync)(`git config --get ${key}`, {
31
+ windowsHide: true,
32
+ })
33
+ .toString()
34
+ .trim();
30
35
  }
31
36
  catch {
32
37
  return null;
@@ -210,7 +210,7 @@ function createAPI(overrideReleaseConfig) {
210
210
  runPreVersionCommand(releaseGroup.version.groupPreVersionCommand, {
211
211
  dryRun: args.dryRun,
212
212
  verbose: args.verbose,
213
- });
213
+ }, releaseGroup);
214
214
  const projectBatches = (0, batch_projects_by_generator_config_1.batchProjectsByGeneratorConfig)(projectGraph, releaseGroup,
215
215
  // Batch based on all projects within the release group
216
216
  releaseGroup.projects);
@@ -412,11 +412,13 @@ function resolveGeneratorData({ collectionName, generatorName, configGeneratorOp
412
412
  throw err;
413
413
  }
414
414
  }
415
- function runPreVersionCommand(preVersionCommand, { dryRun, verbose }) {
415
+ function runPreVersionCommand(preVersionCommand, { dryRun, verbose }, releaseGroup) {
416
416
  if (!preVersionCommand) {
417
417
  return;
418
418
  }
419
- output_1.output.logSingleLine(`Executing pre-version command`);
419
+ output_1.output.logSingleLine(releaseGroup
420
+ ? `Executing release group pre-version command for "${releaseGroup.name}"`
421
+ : `Executing pre-version command`);
420
422
  if (verbose) {
421
423
  console.log(`Executing the following pre-version command:`);
422
424
  console.log(preVersionCommand);
@@ -434,6 +436,7 @@ function runPreVersionCommand(preVersionCommand, { dryRun, verbose }) {
434
436
  maxBuffer: LARGE_BUFFER,
435
437
  stdio,
436
438
  env,
439
+ windowsHide: true,
437
440
  });
438
441
  }
439
442
  catch (e) {
@@ -1,6 +1,7 @@
1
1
  import { PackageManager } from '../../utils/package-manager';
2
2
  import { PackageJson } from '../../utils/package-json';
3
3
  import { NxJsonConfiguration } from '../../config/nx-json';
4
+ import type { PowerpackLicense } from '@nx/powerpack-license';
4
5
  export declare const packagesWeCareAbout: string[];
5
6
  export declare const patternsWeIgnoreInCommunityReport: Array<string | RegExp>;
6
7
  /**
@@ -15,7 +16,8 @@ export declare function reportHandler(): Promise<void>;
15
16
  export interface ReportData {
16
17
  pm: PackageManager;
17
18
  pmVersion: string;
18
- powerpackLicense: any | null;
19
+ powerpackLicense: PowerpackLicense | null;
20
+ powerpackError: Error | null;
19
21
  powerpackPlugins: PackageJson[];
20
22
  localPlugins: string[];
21
23
  communityPlugins: PackageJson[];
@@ -46,7 +46,7 @@ const LINE_SEPARATOR = '---------------------------------------';
46
46
  *
47
47
  */
48
48
  async function reportHandler() {
49
- const { pm, pmVersion, powerpackLicense, localPlugins, powerpackPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, nativeTarget, } = await getReportData();
49
+ const { pm, pmVersion, powerpackLicense, powerpackError, localPlugins, powerpackPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, nativeTarget, } = await getReportData();
50
50
  const fields = [
51
51
  ['Node', process.versions.node],
52
52
  ['OS', `${process.platform}-${process.arch}`],
@@ -62,6 +62,7 @@ async function reportHandler() {
62
62
  bodyLines.push(`${chalk.green(p.package.padEnd(padding))} : ${chalk.bold(p.version)}`);
63
63
  });
64
64
  if (powerpackLicense) {
65
+ bodyLines.push('');
65
66
  bodyLines.push(LINE_SEPARATOR);
66
67
  bodyLines.push(chalk.green('Nx Powerpack'));
67
68
  bodyLines.push(`Licensed to ${powerpackLicense.organizationName} for ${powerpackLicense.seatCount} user${powerpackLicense.seatCount > 1 ? 's' : ''} in ${powerpackLicense.workspaceCount} workspace${powerpackLicense.workspaceCount > 1 ? 's' : ''} until ${new Date(powerpackLicense.expiresAt * 1000).toLocaleDateString()}`);
@@ -71,6 +72,14 @@ async function reportHandler() {
71
72
  for (const powerpackPlugin of powerpackPlugins) {
72
73
  bodyLines.push(`${chalk.green(powerpackPlugin.name.padEnd(padding))} : ${chalk.bold(powerpackPlugin.version)}`);
73
74
  }
75
+ bodyLines.push('');
76
+ }
77
+ else if (powerpackError) {
78
+ bodyLines.push('');
79
+ bodyLines.push(chalk.red('Nx Powerpack'));
80
+ bodyLines.push(LINE_SEPARATOR);
81
+ bodyLines.push(powerpackError.message);
82
+ bodyLines.push('');
74
83
  }
75
84
  if (registeredPlugins.length) {
76
85
  bodyLines.push(LINE_SEPARATOR);
@@ -137,13 +146,19 @@ async function getReportData() {
137
146
  const outOfSyncPackageGroup = findMisalignedPackagesForPackage(nxPackageJson);
138
147
  const native = isNativeAvailable();
139
148
  let powerpackLicense = null;
149
+ let powerpackError = null;
140
150
  try {
141
151
  powerpackLicense = await (0, powerpack_1.getPowerpackLicenseInformation)();
142
152
  }
143
- catch { }
153
+ catch (e) {
154
+ if (!(e instanceof powerpack_1.NxPowerpackNotInstalledError)) {
155
+ powerpackError = e;
156
+ }
157
+ }
144
158
  return {
145
159
  pm,
146
160
  powerpackLicense,
161
+ powerpackError,
147
162
  powerpackPlugins,
148
163
  pmVersion,
149
164
  localPlugins,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resetHandler = resetHandler;
4
- const fs_extra_1 = require("fs-extra");
4
+ const node_fs_1 = require("node:fs");
5
5
  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");
@@ -92,17 +92,17 @@ async function resetCloudClient() {
92
92
  }
93
93
  function cleanupCacheEntries() {
94
94
  return incrementalBackoff(INCREMENTAL_BACKOFF_FIRST_DELAY, INCREMENTAL_BACKOFF_MAX_DURATION, () => {
95
- (0, fs_extra_1.rmSync)(cache_directory_1.cacheDir, { recursive: true, force: true });
95
+ (0, node_fs_1.rmSync)(cache_directory_1.cacheDir, { recursive: true, force: true });
96
96
  });
97
97
  }
98
98
  function cleanupNativeFileCache() {
99
99
  return incrementalBackoff(INCREMENTAL_BACKOFF_FIRST_DELAY, INCREMENTAL_BACKOFF_MAX_DURATION, () => {
100
- (0, fs_extra_1.rmSync)((0, native_file_cache_location_1.getNativeFileCacheLocation)(), { recursive: true, force: true });
100
+ (0, node_fs_1.rmSync)((0, native_file_cache_location_1.getNativeFileCacheLocation)(), { recursive: true, force: true });
101
101
  });
102
102
  }
103
103
  function cleanupWorkspaceData() {
104
104
  return incrementalBackoff(INCREMENTAL_BACKOFF_FIRST_DELAY, INCREMENTAL_BACKOFF_MAX_DURATION, () => {
105
- (0, fs_extra_1.rmSync)(cache_directory_1.workspaceDataDirectory, { recursive: true, force: true });
105
+ (0, node_fs_1.rmSync)(cache_directory_1.workspaceDataDirectory, { recursive: true, force: true });
106
106
  });
107
107
  }
108
108
  async function incrementalBackoff(ms, maxDuration, callback) {
@@ -77,6 +77,7 @@ async function printTargetRunHelpInternal({ project, target }, root, projectsCon
77
77
  else {
78
78
  const cp = (0, child_process_1.exec)(helpCommand, {
79
79
  env,
80
+ windowsHide: true,
80
81
  });
81
82
  cp.on('exit', (code) => {
82
83
  process.exit(code);
@@ -12,8 +12,8 @@ function syncHandler(options) {
12
12
  return (0, handle_errors_1.handleErrors)(options.verbose, async () => {
13
13
  const projectGraph = await (0, project_graph_1.createProjectGraphAsync)();
14
14
  const nxJson = (0, nx_json_1.readNxJson)();
15
- const syncGenerators = await (0, sync_generators_1.collectAllRegisteredSyncGenerators)(projectGraph, nxJson);
16
- if (!syncGenerators.length) {
15
+ const { globalGenerators, taskGenerators } = await (0, sync_generators_1.collectAllRegisteredSyncGenerators)(projectGraph, nxJson);
16
+ if (!globalGenerators.length && !taskGenerators.length) {
17
17
  output_1.output.success({
18
18
  title: options.check
19
19
  ? 'The workspace is up to date'
@@ -22,6 +22,7 @@ function syncHandler(options) {
22
22
  });
23
23
  return 0;
24
24
  }
25
+ const syncGenerators = Array.from(new Set([...globalGenerators, ...taskGenerators]));
25
26
  const results = await (0, sync_generators_1.getSyncGeneratorChanges)(syncGenerators);
26
27
  if (!results.length) {
27
28
  output_1.output.success({
@@ -33,7 +34,7 @@ function syncHandler(options) {
33
34
  return 0;
34
35
  }
35
36
  const { failedGeneratorsCount, areAllResultsFailures, anySyncGeneratorsFailed, } = (0, sync_generators_1.processSyncGeneratorResultErrors)(results);
36
- const failedSyncGeneratorsFixMessageLines = (0, sync_generators_1.getFailedSyncGeneratorsFixMessageLines)(results, options.verbose);
37
+ const failedSyncGeneratorsFixMessageLines = (0, sync_generators_1.getFailedSyncGeneratorsFixMessageLines)(results, options.verbose, new Set(globalGenerators));
37
38
  if (areAllResultsFailures) {
38
39
  output_1.output.error({
39
40
  title: `The workspace is probably out of sync because ${failedGeneratorsCount === 1
@@ -71,7 +72,7 @@ function syncHandler(options) {
71
72
  spinner.fail();
72
73
  output_1.output.error({
73
74
  title: 'Failed to sync the workspace',
74
- bodyLines: (0, sync_generators_1.getFlushFailureMessageLines)(flushResult, options.verbose),
75
+ bodyLines: (0, sync_generators_1.getFlushFailureMessageLines)(flushResult, options.verbose, new Set(globalGenerators)),
75
76
  });
76
77
  return 1;
77
78
  }
@@ -97,6 +97,7 @@ class BatchCommandRunner extends BatchFunctionRunner {
97
97
  [this.projectNameEnv]: env[this.projectNameEnv],
98
98
  [this.fileChangesEnv]: env[this.fileChangesEnv],
99
99
  },
100
+ windowsHide: true,
100
101
  });
101
102
  commandExec.on('close', () => {
102
103
  resolve();
@@ -462,6 +462,10 @@ export interface NxJsonConfiguration<T = '*' | string[]> {
462
462
  * Configuration for the `nx sync` command.
463
463
  */
464
464
  sync?: NxSyncConfiguration;
465
+ /**
466
+ * Enable the new experimental db based cache
467
+ */
468
+ enableDbCache?: boolean;
465
469
  }
466
470
  export type PluginConfiguration = string | ExpandedPluginConfiguration;
467
471
  export type ExpandedPluginConfiguration<T = unknown> = {