nx 21.0.0-beta.1 → 21.0.0-beta.10

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 (240) hide show
  1. package/.eslintrc.json +5 -1
  2. package/migrations.json +5 -35
  3. package/package.json +12 -12
  4. package/release/index.d.ts +1 -1
  5. package/release/index.js +2 -1
  6. package/schemas/nx-schema.json +182 -35
  7. package/schemas/project-schema.json +5 -0
  8. package/src/adapter/compat.d.ts +1 -1
  9. package/src/adapter/compat.js +3 -0
  10. package/src/command-line/add/add.js +6 -16
  11. package/src/command-line/affected/command-object.js +6 -6
  12. package/src/command-line/examples.js +0 -4
  13. package/src/command-line/exec/command-object.js +1 -1
  14. package/src/command-line/generate/generator-utils.js +8 -3
  15. package/src/command-line/import/import.js +1 -1
  16. package/src/command-line/init/command-object.js +18 -6
  17. package/src/command-line/init/configure-plugins.d.ts +6 -7
  18. package/src/command-line/init/configure-plugins.js +52 -38
  19. package/src/command-line/init/implementation/add-nx-to-turborepo.d.ts +4 -0
  20. package/src/command-line/init/implementation/add-nx-to-turborepo.js +49 -0
  21. package/src/command-line/init/implementation/check-compatible-with-plugins.js +7 -1
  22. package/src/command-line/init/implementation/deduce-default-base.d.ts +1 -0
  23. package/src/command-line/init/implementation/deduce-default-base.js +53 -0
  24. package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +6 -4
  25. package/src/command-line/init/implementation/react/index.d.ts +1 -1
  26. package/src/command-line/init/implementation/react/index.js +32 -185
  27. package/src/command-line/init/implementation/react/write-vite-config.js +19 -3
  28. package/src/command-line/init/implementation/utils.d.ts +6 -2
  29. package/src/command-line/init/implementation/utils.js +110 -45
  30. package/src/command-line/init/init-v1.js +1 -1
  31. package/src/command-line/init/init-v2.d.ts +1 -0
  32. package/src/command-line/init/init-v2.js +70 -39
  33. package/src/command-line/migrate/migrate-ui-api.d.ts +58 -0
  34. package/src/command-line/migrate/migrate-ui-api.js +227 -0
  35. package/src/command-line/migrate/migrate.d.ts +16 -3
  36. package/src/command-line/migrate/migrate.js +113 -83
  37. package/src/command-line/nx-commands.js +19 -5
  38. package/src/command-line/register/command-object.d.ts +6 -0
  39. package/src/command-line/{activate-powerpack → register}/command-object.js +9 -9
  40. package/src/command-line/register/register.d.ts +2 -0
  41. package/src/command-line/register/register.js +9 -0
  42. package/src/command-line/release/changelog.js +18 -15
  43. package/src/command-line/release/command-object.d.ts +8 -0
  44. package/src/command-line/release/command-object.js +9 -0
  45. package/src/command-line/release/config/config.d.ts +8 -7
  46. package/src/command-line/release/config/config.js +139 -45
  47. package/src/command-line/release/config/use-legacy-versioning.d.ts +2 -0
  48. package/src/command-line/release/config/use-legacy-versioning.js +9 -0
  49. package/src/command-line/release/index.d.ts +4 -0
  50. package/src/command-line/release/index.js +6 -1
  51. package/src/command-line/release/plan-check.js +6 -3
  52. package/src/command-line/release/plan.js +7 -3
  53. package/src/command-line/release/publish.js +7 -3
  54. package/src/command-line/release/release.js +8 -3
  55. package/src/command-line/release/utils/batch-projects-by-generator-config.js +6 -3
  56. package/src/command-line/release/utils/git.d.ts +3 -2
  57. package/src/command-line/release/utils/git.js +65 -9
  58. package/src/command-line/release/utils/github.js +3 -1
  59. package/src/command-line/release/utils/resolve-semver-specifier.d.ts +2 -1
  60. package/src/command-line/release/utils/resolve-semver-specifier.js +2 -1
  61. package/src/command-line/release/utils/semver.d.ts +8 -0
  62. package/src/command-line/release/utils/semver.js +8 -0
  63. package/src/command-line/release/utils/shared-legacy.d.ts +25 -0
  64. package/src/command-line/release/utils/shared-legacy.js +2 -0
  65. package/src/command-line/release/utils/shared.d.ts +11 -17
  66. package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts +7 -0
  67. package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +47 -0
  68. package/src/command-line/release/version/deriver-specifier-from-version-plans.d.ts +8 -0
  69. package/src/command-line/release/version/deriver-specifier-from-version-plans.js +59 -0
  70. package/src/command-line/release/version/project-logger.d.ts +8 -0
  71. package/src/command-line/release/version/project-logger.js +45 -0
  72. package/src/command-line/release/version/release-group-processor.d.ts +252 -0
  73. package/src/command-line/release/version/release-group-processor.js +1057 -0
  74. package/src/command-line/release/version/resolve-current-version.d.ts +32 -0
  75. package/src/command-line/release/version/resolve-current-version.js +241 -0
  76. package/src/command-line/release/version/test-utils.d.ts +93 -0
  77. package/src/command-line/release/version/test-utils.js +415 -0
  78. package/src/command-line/release/version/topological-sort.d.ts +9 -0
  79. package/src/command-line/release/version/topological-sort.js +41 -0
  80. package/src/command-line/release/version/version-actions.d.ts +171 -0
  81. package/src/command-line/release/version/version-actions.js +195 -0
  82. package/src/command-line/release/version-legacy.d.ts +46 -0
  83. package/src/command-line/release/version-legacy.js +453 -0
  84. package/src/command-line/release/version.d.ts +0 -40
  85. package/src/command-line/release/version.js +84 -262
  86. package/src/command-line/repair/repair.js +0 -1
  87. package/src/command-line/report/report.d.ts +7 -3
  88. package/src/command-line/report/report.js +52 -18
  89. package/src/command-line/run/command-object.js +2 -2
  90. package/src/command-line/run/executor-utils.d.ts +6 -1
  91. package/src/command-line/run/executor-utils.js +10 -1
  92. package/src/command-line/run/run.js +2 -2
  93. package/src/command-line/run-many/command-object.js +2 -2
  94. package/src/command-line/yargs-utils/shared-options.d.ts +4 -0
  95. package/src/command-line/yargs-utils/shared-options.js +20 -0
  96. package/src/config/misc-interfaces.d.ts +11 -1
  97. package/src/config/nx-json.d.ts +160 -16
  98. package/src/config/project-graph.d.ts +4 -2
  99. package/src/config/project-graph.js +8 -0
  100. package/src/config/workspace-json-project-json.d.ts +2 -2
  101. package/src/core/graph/main.js +1 -1
  102. package/src/core/graph/runtime.js +1 -1
  103. package/src/core/graph/styles.css +2 -2
  104. package/src/core/graph/styles.js +1 -1
  105. package/src/daemon/client/client.d.ts +2 -0
  106. package/src/daemon/client/client.js +15 -0
  107. package/src/daemon/message-types/glob.d.ts +7 -0
  108. package/src/daemon/message-types/glob.js +9 -1
  109. package/src/daemon/message-types/hash-glob.d.ts +6 -0
  110. package/src/daemon/message-types/hash-glob.js +9 -1
  111. package/src/daemon/server/handle-glob.d.ts +1 -0
  112. package/src/daemon/server/handle-glob.js +8 -0
  113. package/src/daemon/server/handle-hash-glob.d.ts +1 -0
  114. package/src/daemon/server/handle-hash-glob.js +8 -0
  115. package/src/daemon/server/logger.js +2 -1
  116. package/src/daemon/server/server.js +7 -0
  117. package/src/devkit-internals.d.ts +3 -2
  118. package/src/devkit-internals.js +5 -1
  119. package/src/executors/run-commands/run-commands.impl.d.ts +2 -5
  120. package/src/executors/run-commands/run-commands.impl.js +14 -42
  121. package/src/executors/run-commands/running-tasks.d.ts +9 -4
  122. package/src/executors/run-commands/running-tasks.js +103 -30
  123. package/src/executors/run-script/run-script.impl.js +4 -3
  124. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +8 -0
  125. package/src/generators/testing-utils/create-tree.js +5 -1
  126. package/src/migrations/{update-17-0-0/rm-default-collection-npm-scope.d.ts → update-21-0-0/release-version-config-changes.d.ts} +1 -1
  127. package/src/migrations/update-21-0-0/release-version-config-changes.js +111 -0
  128. package/src/native/index.d.ts +98 -19
  129. package/src/native/index.js +16 -2
  130. package/src/native/native-bindings.js +7 -0
  131. package/src/native/nx.wasi-browser.js +20 -19
  132. package/src/native/nx.wasi.cjs +20 -19
  133. package/src/native/nx.wasm32-wasi.wasm +0 -0
  134. package/src/nx-cloud/nx-cloud-tasks-runner-shell.js +3 -3
  135. package/src/plugins/js/lock-file/lock-file.js +28 -13
  136. package/src/plugins/js/lock-file/utils/package-json.d.ts +1 -1
  137. package/src/plugins/js/lock-file/utils/package-json.js +8 -6
  138. package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +3 -3
  139. package/src/plugins/js/lock-file/yarn-parser.js +85 -39
  140. package/src/plugins/js/project-graph/affected/lock-file-changes.js +1 -0
  141. package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.js +1 -1
  142. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts +10 -1
  143. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +59 -6
  144. package/src/plugins/js/utils/packages.js +22 -3
  145. package/src/plugins/js/utils/register.js +1 -0
  146. package/src/plugins/js/utils/typescript.js +3 -3
  147. package/src/plugins/package-json/create-nodes.d.ts +1 -1
  148. package/src/plugins/package-json/create-nodes.js +4 -2
  149. package/src/project-graph/affected/locators/project-glob-changes.js +2 -2
  150. package/src/project-graph/error-types.js +32 -2
  151. package/src/project-graph/file-utils.d.ts +1 -10
  152. package/src/project-graph/file-utils.js +2 -77
  153. package/src/project-graph/plugins/get-plugins.js +2 -1
  154. package/src/project-graph/plugins/in-process-loader.js +1 -1
  155. package/src/project-graph/plugins/isolation/plugin-worker.js +12 -6
  156. package/src/project-graph/plugins/loaded-nx-plugin.d.ts +2 -1
  157. package/src/project-graph/plugins/public-api.d.ts +1 -1
  158. package/src/project-graph/plugins/utils.d.ts +2 -2
  159. package/src/project-graph/plugins/utils.js +2 -2
  160. package/src/project-graph/project-graph.js +1 -1
  161. package/src/project-graph/utils/project-configuration-utils.d.ts +3 -3
  162. package/src/project-graph/utils/project-configuration-utils.js +54 -21
  163. package/src/project-graph/utils/retrieve-workspace-files.d.ts +1 -1
  164. package/src/project-graph/utils/retrieve-workspace-files.js +14 -18
  165. package/src/tasks-runner/batch/batch-messages.d.ts +2 -0
  166. package/src/tasks-runner/batch/run-batch.js +3 -4
  167. package/src/tasks-runner/cache.d.ts +20 -6
  168. package/src/tasks-runner/cache.js +104 -20
  169. package/src/tasks-runner/create-task-graph.d.ts +0 -1
  170. package/src/tasks-runner/create-task-graph.js +11 -11
  171. package/src/tasks-runner/default-tasks-runner.js +5 -14
  172. package/src/tasks-runner/forked-process-task-runner.d.ts +8 -3
  173. package/src/tasks-runner/forked-process-task-runner.js +59 -46
  174. package/src/tasks-runner/init-tasks-runner.d.ts +15 -1
  175. package/src/tasks-runner/init-tasks-runner.js +62 -2
  176. package/src/tasks-runner/is-tui-enabled.d.ts +2 -0
  177. package/src/tasks-runner/is-tui-enabled.js +64 -0
  178. package/src/tasks-runner/life-cycle.d.ts +14 -3
  179. package/src/tasks-runner/life-cycle.js +37 -2
  180. package/src/tasks-runner/life-cycles/task-history-life-cycle-old.d.ts +2 -0
  181. package/src/tasks-runner/life-cycles/task-history-life-cycle-old.js +15 -7
  182. package/src/tasks-runner/life-cycles/task-history-life-cycle.d.ts +5 -0
  183. package/src/tasks-runner/life-cycles/task-history-life-cycle.js +35 -5
  184. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts +18 -0
  185. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +229 -0
  186. package/src/tasks-runner/pseudo-terminal.d.ts +10 -7
  187. package/src/tasks-runner/pseudo-terminal.js +37 -35
  188. package/src/tasks-runner/run-command.d.ts +4 -1
  189. package/src/tasks-runner/run-command.js +220 -42
  190. package/src/tasks-runner/running-tasks/node-child-process.js +4 -11
  191. package/src/tasks-runner/running-tasks/running-task.d.ts +3 -0
  192. package/src/tasks-runner/running-tasks/shared-running-task.d.ts +14 -0
  193. package/src/tasks-runner/running-tasks/shared-running-task.js +30 -0
  194. package/src/tasks-runner/task-env.d.ts +1 -4
  195. package/src/tasks-runner/task-env.js +2 -0
  196. package/src/tasks-runner/task-orchestrator.d.ts +26 -10
  197. package/src/tasks-runner/task-orchestrator.js +212 -57
  198. package/src/tasks-runner/tasks-runner.d.ts +1 -0
  199. package/src/tasks-runner/tasks-schedule.d.ts +1 -0
  200. package/src/tasks-runner/tasks-schedule.js +9 -0
  201. package/src/tasks-runner/utils.d.ts +2 -2
  202. package/src/tasks-runner/utils.js +18 -12
  203. package/src/utils/child-process.d.ts +4 -0
  204. package/src/utils/child-process.js +23 -30
  205. package/src/utils/command-line-utils.d.ts +1 -1
  206. package/src/utils/find-matching-projects.js +2 -2
  207. package/src/utils/git-utils.d.ts +1 -1
  208. package/src/utils/git-utils.js +8 -3
  209. package/src/utils/handle-errors.js +15 -0
  210. package/src/utils/is-ci.js +4 -1
  211. package/src/utils/is-using-prettier.d.ts +3 -0
  212. package/src/utils/is-using-prettier.js +62 -0
  213. package/src/utils/nx-key.d.ts +7 -0
  214. package/src/utils/nx-key.js +52 -0
  215. package/src/utils/package-json.d.ts +1 -1
  216. package/src/utils/package-json.js +16 -2
  217. package/src/utils/package-manager.js +2 -2
  218. package/src/utils/path.js +1 -1
  219. package/src/utils/require-nx-key.d.ts +1 -0
  220. package/src/utils/require-nx-key.js +22 -0
  221. package/src/utils/workspace-context.d.ts +2 -0
  222. package/src/utils/workspace-context.js +16 -0
  223. package/src/command-line/activate-powerpack/activate-powerpack.d.ts +0 -2
  224. package/src/command-line/activate-powerpack/activate-powerpack.js +0 -34
  225. package/src/command-line/activate-powerpack/command-object.d.ts +0 -6
  226. package/src/command-line/init/implementation/react/write-craco-config.d.ts +0 -1
  227. package/src/command-line/init/implementation/react/write-craco-config.js +0 -61
  228. package/src/migrations/update-17-0-0/move-cache-directory.d.ts +0 -2
  229. package/src/migrations/update-17-0-0/move-cache-directory.js +0 -35
  230. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +0 -72
  231. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.d.ts +0 -2
  232. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +0 -122
  233. package/src/migrations/update-17-2-0/move-default-base.d.ts +0 -5
  234. package/src/migrations/update-17-2-0/move-default-base.js +0 -21
  235. package/src/migrations/update-17-3-0/nx-release-path.d.ts +0 -3
  236. package/src/migrations/update-17-3-0/nx-release-path.js +0 -47
  237. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +0 -2
  238. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +0 -11
  239. package/src/utils/powerpack.d.ts +0 -5
  240. package/src/utils/powerpack.js +0 -33
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recordInitialMigrationMetadata = recordInitialMigrationMetadata;
4
+ exports.finishMigrationProcess = finishMigrationProcess;
5
+ exports.runSingleMigration = runSingleMigration;
6
+ exports.getImplementationPath = getImplementationPath;
7
+ exports.modifyMigrationsJsonMetadata = modifyMigrationsJsonMetadata;
8
+ exports.addSuccessfulMigration = addSuccessfulMigration;
9
+ exports.updateRefForSuccessfulMigration = updateRefForSuccessfulMigration;
10
+ exports.addFailedMigration = addFailedMigration;
11
+ exports.addSkippedMigration = addSkippedMigration;
12
+ exports.readMigrationsJsonMetadata = readMigrationsJsonMetadata;
13
+ exports.undoMigration = undoMigration;
14
+ const child_process_1 = require("child_process");
15
+ const fs_1 = require("fs");
16
+ const path_1 = require("path");
17
+ const migrate_1 = require("./migrate");
18
+ function recordInitialMigrationMetadata(workspacePath, versionToMigrateTo) {
19
+ const migrationsJsonPath = (0, path_1.join)(workspacePath, 'migrations.json');
20
+ const parsedMigrationsJson = JSON.parse((0, fs_1.readFileSync)(migrationsJsonPath, 'utf-8'));
21
+ const gitRef = (0, child_process_1.execSync)('git rev-parse HEAD', {
22
+ cwd: workspacePath,
23
+ encoding: 'utf-8',
24
+ }).trim();
25
+ const gitSubject = (0, child_process_1.execSync)('git log -1 --pretty=%s', {
26
+ cwd: workspacePath,
27
+ encoding: 'utf-8',
28
+ }).trim();
29
+ parsedMigrationsJson['nx-console'] = {
30
+ initialGitRef: {
31
+ ref: gitRef,
32
+ subject: gitSubject,
33
+ },
34
+ targetVersion: versionToMigrateTo,
35
+ };
36
+ (0, fs_1.writeFileSync)(migrationsJsonPath, JSON.stringify(parsedMigrationsJson, null, 2));
37
+ }
38
+ function finishMigrationProcess(workspacePath, squashCommits, commitMessage) {
39
+ const migrationsJsonPath = (0, path_1.join)(workspacePath, 'migrations.json');
40
+ const parsedMigrationsJson = JSON.parse((0, fs_1.readFileSync)(migrationsJsonPath, 'utf-8'));
41
+ const initialGitRef = parsedMigrationsJson['nx-console'].initialGitRef;
42
+ if ((0, fs_1.existsSync)(migrationsJsonPath)) {
43
+ (0, fs_1.rmSync)(migrationsJsonPath);
44
+ }
45
+ (0, child_process_1.execSync)('git add .', {
46
+ cwd: workspacePath,
47
+ encoding: 'utf-8',
48
+ });
49
+ (0, child_process_1.execSync)(`git commit -m "${commitMessage}" --no-verify`, {
50
+ cwd: workspacePath,
51
+ encoding: 'utf-8',
52
+ });
53
+ if (squashCommits && initialGitRef) {
54
+ (0, child_process_1.execSync)(`git reset --soft ${initialGitRef.ref}`, {
55
+ cwd: workspacePath,
56
+ encoding: 'utf-8',
57
+ });
58
+ (0, child_process_1.execSync)(`git commit -m "${commitMessage}" --no-verify`, {
59
+ cwd: workspacePath,
60
+ encoding: 'utf-8',
61
+ });
62
+ }
63
+ }
64
+ async function runSingleMigration(workspacePath, migration, configuration) {
65
+ try {
66
+ modifyMigrationsJsonMetadata(workspacePath, addRunningMigration(migration.id));
67
+ const gitRefBefore = (0, child_process_1.execSync)('git rev-parse HEAD', {
68
+ cwd: workspacePath,
69
+ encoding: 'utf-8',
70
+ }).trim();
71
+ // For Migrate UI, this current module is loaded either from:
72
+ // 1. The CLI path to the migrated modules. The version of Nx is of the user's choosing. This may or may not have the new migrate API, so Console will check that `runSingleMigration` exists before using it.
73
+ // 2. Bundled into Console, so the version is fixed to what we build Console with.
74
+ const updatedMigrateModule = await Promise.resolve().then(() => require('./migrate.js'));
75
+ const fileChanges = await updatedMigrateModule.runNxOrAngularMigration(workspacePath, migration, false, configuration.createCommits, configuration.commitPrefix || 'chore: [nx migration] ', undefined, true);
76
+ const gitRefAfter = (0, child_process_1.execSync)('git rev-parse HEAD', {
77
+ cwd: workspacePath,
78
+ encoding: 'utf-8',
79
+ }).trim();
80
+ modifyMigrationsJsonMetadata(workspacePath, addSuccessfulMigration(migration.id, fileChanges.map((change) => ({
81
+ path: change.path,
82
+ type: change.type,
83
+ })), gitRefAfter));
84
+ if (gitRefBefore !== gitRefAfter) {
85
+ (0, child_process_1.execSync)('git add migrations.json', {
86
+ cwd: workspacePath,
87
+ encoding: 'utf-8',
88
+ });
89
+ (0, child_process_1.execSync)('git commit --amend --no-verify --no-edit', {
90
+ cwd: workspacePath,
91
+ encoding: 'utf-8',
92
+ });
93
+ // The revision changes after the amend, so we need to update it
94
+ const amendedGitRef = (0, child_process_1.execSync)('git rev-parse HEAD', {
95
+ cwd: workspacePath,
96
+ encoding: 'utf-8',
97
+ }).trim();
98
+ modifyMigrationsJsonMetadata(workspacePath, updateRefForSuccessfulMigration(migration.id, amendedGitRef));
99
+ }
100
+ }
101
+ catch (e) {
102
+ modifyMigrationsJsonMetadata(workspacePath, addFailedMigration(migration.id, e.message));
103
+ }
104
+ finally {
105
+ modifyMigrationsJsonMetadata(workspacePath, removeRunningMigration(migration.id));
106
+ (0, child_process_1.execSync)('git add migrations.json', {
107
+ cwd: workspacePath,
108
+ encoding: 'utf-8',
109
+ });
110
+ }
111
+ }
112
+ async function getImplementationPath(workspacePath, migration) {
113
+ const { collection, collectionPath } = (0, migrate_1.readMigrationCollection)(migration.package, workspacePath);
114
+ const { path } = (0, migrate_1.getImplementationPath)(collection, collectionPath, migration.name);
115
+ return path;
116
+ }
117
+ function modifyMigrationsJsonMetadata(workspacePath, modify) {
118
+ const migrationsJsonPath = (0, path_1.join)(workspacePath, 'migrations.json');
119
+ const migrationsJson = JSON.parse((0, fs_1.readFileSync)(migrationsJsonPath, 'utf-8'));
120
+ migrationsJson['nx-console'] = modify(migrationsJson['nx-console']);
121
+ (0, fs_1.writeFileSync)(migrationsJsonPath, JSON.stringify(migrationsJson, null, 2));
122
+ }
123
+ function addSuccessfulMigration(id, fileChanges, ref) {
124
+ return (migrationsJsonMetadata) => {
125
+ const copied = { ...migrationsJsonMetadata };
126
+ if (!copied.completedMigrations) {
127
+ copied.completedMigrations = {};
128
+ }
129
+ copied.completedMigrations = {
130
+ ...copied.completedMigrations,
131
+ [id]: {
132
+ type: 'successful',
133
+ name: id,
134
+ changedFiles: fileChanges,
135
+ ref,
136
+ },
137
+ };
138
+ return copied;
139
+ };
140
+ }
141
+ function updateRefForSuccessfulMigration(id, ref) {
142
+ return (migrationsJsonMetadata) => {
143
+ const copied = { ...migrationsJsonMetadata };
144
+ if (!copied.completedMigrations) {
145
+ copied.completedMigrations = {};
146
+ }
147
+ const existing = copied.completedMigrations[id];
148
+ if (existing && existing.type === 'successful') {
149
+ existing.ref = ref;
150
+ }
151
+ else {
152
+ throw new Error(`Attempted to update ref for unsuccessful migration`);
153
+ }
154
+ return copied;
155
+ };
156
+ }
157
+ function addFailedMigration(id, error) {
158
+ return (migrationsJsonMetadata) => {
159
+ const copied = { ...migrationsJsonMetadata };
160
+ if (!copied.completedMigrations) {
161
+ copied.completedMigrations = {};
162
+ }
163
+ copied.completedMigrations = {
164
+ ...copied.completedMigrations,
165
+ [id]: {
166
+ type: 'failed',
167
+ name: id,
168
+ error,
169
+ },
170
+ };
171
+ return copied;
172
+ };
173
+ }
174
+ function addSkippedMigration(id) {
175
+ return (migrationsJsonMetadata) => {
176
+ const copied = { ...migrationsJsonMetadata };
177
+ if (!copied.completedMigrations) {
178
+ copied.completedMigrations = {};
179
+ }
180
+ copied.completedMigrations = {
181
+ ...copied.completedMigrations,
182
+ [id]: {
183
+ type: 'skipped',
184
+ },
185
+ };
186
+ return copied;
187
+ };
188
+ }
189
+ function addRunningMigration(id) {
190
+ return (migrationsJsonMetadata) => {
191
+ migrationsJsonMetadata.runningMigrations = [
192
+ ...(migrationsJsonMetadata.runningMigrations ?? []),
193
+ id,
194
+ ];
195
+ return migrationsJsonMetadata;
196
+ };
197
+ }
198
+ function removeRunningMigration(id) {
199
+ return (migrationsJsonMetadata) => {
200
+ migrationsJsonMetadata.runningMigrations =
201
+ migrationsJsonMetadata.runningMigrations?.filter((n) => n !== id);
202
+ if (migrationsJsonMetadata.runningMigrations?.length === 0) {
203
+ delete migrationsJsonMetadata.runningMigrations;
204
+ }
205
+ return migrationsJsonMetadata;
206
+ };
207
+ }
208
+ function readMigrationsJsonMetadata(workspacePath) {
209
+ const migrationsJsonPath = (0, path_1.join)(workspacePath, 'migrations.json');
210
+ const migrationsJson = JSON.parse((0, fs_1.readFileSync)(migrationsJsonPath, 'utf-8'));
211
+ return migrationsJson['nx-console'];
212
+ }
213
+ function undoMigration(workspacePath, id) {
214
+ return (migrationsJsonMetadata) => {
215
+ const existing = migrationsJsonMetadata.completedMigrations[id];
216
+ if (existing.type !== 'successful')
217
+ throw new Error(`undoMigration called on unsuccessful migration: ${id}`);
218
+ (0, child_process_1.execSync)(`git reset --hard ${existing.ref}^`, {
219
+ cwd: workspacePath,
220
+ encoding: 'utf-8',
221
+ });
222
+ migrationsJsonMetadata.completedMigrations[id] = {
223
+ type: 'skipped',
224
+ };
225
+ return migrationsJsonMetadata;
226
+ };
227
+ }
@@ -1,5 +1,6 @@
1
1
  import { MigrationsJson, PackageJsonUpdateForPackage as PackageUpdate } from '../../config/misc-interfaces';
2
2
  import { NxJsonConfiguration } from '../../config/nx-json';
3
+ import { FileChange } from '../../generators/tree';
3
4
  import { ArrayPackageGroup, PackageJson } from '../../utils/package-json';
4
5
  export interface ResolvedMigrationConfiguration extends MigrationsJson {
5
6
  packageGroup?: ArrayPackageGroup;
@@ -40,7 +41,6 @@ export declare class Migrator {
40
41
  name: string;
41
42
  version: string;
42
43
  description?: string;
43
- cli?: string;
44
44
  implementation?: string;
45
45
  factory?: string;
46
46
  requires?: Record<string, string>;
@@ -100,16 +100,29 @@ export declare function executeMigrations(root: string, migrations: {
100
100
  name: string;
101
101
  description?: string;
102
102
  version: string;
103
- cli?: 'nx' | 'angular';
104
103
  }[], isVerbose: boolean, shouldCreateCommits: boolean, commitPrefix: string): Promise<{
105
104
  package: string;
106
105
  name: string;
107
106
  description?: string;
108
107
  version: string;
109
- cli?: "nx" | "angular";
110
108
  }[]>;
109
+ export declare function runNxOrAngularMigration(root: string, migration: {
110
+ package: string;
111
+ name: string;
112
+ description?: string;
113
+ version: string;
114
+ }, isVerbose: boolean, shouldCreateCommits: boolean, commitPrefix: string, installDepsIfChanged?: () => void, handleInstallDeps?: boolean): Promise<FileChange[]>;
111
115
  export declare function migrate(root: string, args: {
112
116
  [k: string]: any;
113
117
  }, rawArgs: string[]): Promise<number>;
114
118
  export declare function runMigration(): void;
119
+ export declare function readMigrationCollection(packageName: string, root: string): {
120
+ collection: MigrationsJson;
121
+ collectionPath: string;
122
+ };
123
+ export declare function getImplementationPath(collection: MigrationsJson, collectionPath: string, name: string): {
124
+ path: string;
125
+ fnSymbol: string;
126
+ };
127
+ export declare function nxCliPath(nxWorkspaceRoot?: string): string;
115
128
  export {};
@@ -4,8 +4,12 @@ exports.Migrator = void 0;
4
4
  exports.normalizeVersion = normalizeVersion;
5
5
  exports.parseMigrationsOptions = parseMigrationsOptions;
6
6
  exports.executeMigrations = executeMigrations;
7
+ exports.runNxOrAngularMigration = runNxOrAngularMigration;
7
8
  exports.migrate = migrate;
8
9
  exports.runMigration = runMigration;
10
+ exports.readMigrationCollection = readMigrationCollection;
11
+ exports.getImplementationPath = getImplementationPath;
12
+ exports.nxCliPath = nxCliPath;
9
13
  const chalk = require("chalk");
10
14
  const child_process_1 = require("child_process");
11
15
  const enquirer_1 = require("enquirer");
@@ -643,7 +647,11 @@ async function getPackageMigrationsUsingInstall(packageName, packageVersion) {
643
647
  result = { ...migrations, packageGroup, version: packageJson.version };
644
648
  }
645
649
  catch (e) {
646
- logger_1.logger.warn(`Unable to fetch migrations for ${packageName}@${packageVersion}: ${e.message}`);
650
+ output_1.output.warn({
651
+ title: `Failed to fetch migrations for ${packageName}@${packageVersion}`,
652
+ bodyLines: [e.message],
653
+ });
654
+ return {};
647
655
  }
648
656
  finally {
649
657
  await cleanup();
@@ -809,9 +817,12 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
809
817
  // The above code is to remind folks when updating to a new major and not currently using Nx cloud.
810
818
  // If for some reason it fails, it shouldn't affect the overall migration process
811
819
  }
812
- output_1.output.log({
813
- title: 'Next steps:',
814
- bodyLines: [
820
+ const bodyLines = process.env['NX_CONSOLE']
821
+ ? [
822
+ '- Inspect the package.json changes in the built-in diff editor [Click to open]',
823
+ '- Confirm the changes to install the new dependencies and continue the migration',
824
+ ]
825
+ : [
815
826
  `- Make sure package.json changes make sense and then run '${pmc.install}',`,
816
827
  ...(migrations.length > 0
817
828
  ? [`- Run '${pmc.exec} nx migrate --run-migrations'`]
@@ -830,7 +841,10 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
830
841
  `- You may run '${pmc.run('nx', 'connect-to-nx-cloud')}' to get faster builds, GitHub integration, and more. Check out https://nx.app`,
831
842
  ]
832
843
  : []),
833
- ],
844
+ ];
845
+ output_1.output.log({
846
+ title: 'Next steps:',
847
+ bodyLines,
834
848
  });
835
849
  }
836
850
  catch (e) {
@@ -860,7 +874,6 @@ function addSplitConfigurationMigrationIfAvailable(from, packageJson) {
860
874
  {
861
875
  version: '15.7.0-beta.0',
862
876
  description: 'Split global configuration files into individual project.json files. This migration has been added automatically to the beginning of your migration set to retroactively make them work with the new version of Nx.',
863
- cli: 'nx',
864
877
  implementation: './src/migrations/update-15-7-0/split-configuration-into-project-json-files',
865
878
  package: '@nrwl/workspace',
866
879
  name: '15-7-0-split-configuration-into-project-json-files',
@@ -881,26 +894,31 @@ function showConnectToCloudMessage() {
881
894
  return false;
882
895
  }
883
896
  }
884
- function runInstall() {
885
- const pmCommands = (0, package_manager_1.getPackageManagerCommand)();
897
+ function runInstall(nxWorkspaceRoot) {
898
+ let packageManager;
899
+ let pmCommands;
900
+ if (nxWorkspaceRoot) {
901
+ packageManager = (0, package_manager_1.detectPackageManager)(nxWorkspaceRoot);
902
+ pmCommands = (0, package_manager_1.getPackageManagerCommand)(packageManager, nxWorkspaceRoot);
903
+ }
904
+ else {
905
+ pmCommands = (0, package_manager_1.getPackageManagerCommand)();
906
+ }
886
907
  // TODO: remove this
887
- if ((0, package_manager_1.detectPackageManager)() === 'npm') {
908
+ if (packageManager ?? (0, package_manager_1.detectPackageManager)() === 'npm') {
888
909
  process.env.npm_config_legacy_peer_deps ??= 'true';
889
910
  }
890
911
  output_1.output.log({
891
912
  title: `Running '${pmCommands.install}' to make sure necessary packages are installed`,
892
913
  });
893
- (0, child_process_1.execSync)(pmCommands.install, { stdio: [0, 1, 2], windowsHide: false });
914
+ (0, child_process_1.execSync)(pmCommands.install, {
915
+ stdio: [0, 1, 2],
916
+ windowsHide: false,
917
+ cwd: nxWorkspaceRoot ?? process.cwd(),
918
+ });
894
919
  }
895
920
  async function executeMigrations(root, migrations, isVerbose, shouldCreateCommits, commitPrefix) {
896
- let initialDeps = getStringifiedPackageJsonDeps(root);
897
- const installDepsIfChanged = () => {
898
- const currentDeps = getStringifiedPackageJsonDeps(root);
899
- if (initialDeps !== currentDeps) {
900
- runInstall();
901
- }
902
- initialDeps = currentDeps;
903
- };
921
+ const changedDepInstaller = new ChangedDepInstaller(root);
904
922
  const migrationsWithNoChanges = [];
905
923
  const sortedMigrations = migrations.sort((a, b) => {
906
924
  // special case for the split configuration migration to run first
@@ -920,49 +938,9 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
920
938
  for (const m of sortedMigrations) {
921
939
  logger_1.logger.info(`Running migration ${m.package}: ${m.name}`);
922
940
  try {
923
- const { collection, collectionPath } = readMigrationCollection(m.package, root);
924
- if (!isAngularMigration(collection, collectionPath, m.name)) {
925
- const changes = await runNxMigration(root, collectionPath, collection, m.name);
926
- logger_1.logger.info(`Ran ${m.name} from ${m.package}`);
927
- logger_1.logger.info(` ${m.description}\n`);
928
- if (changes.length < 1) {
929
- logger_1.logger.info(`No changes were made\n`);
930
- migrationsWithNoChanges.push(m);
931
- continue;
932
- }
933
- logger_1.logger.info('Changes:');
934
- (0, tree_1.printChanges)(changes, ' ');
935
- logger_1.logger.info('');
936
- }
937
- else {
938
- const ngCliAdapter = await getNgCompatLayer();
939
- const { madeChanges, loggingQueue } = await ngCliAdapter.runMigration(root, m.package, m.name, (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(await (0, project_graph_1.createProjectGraphAsync)()).projects, isVerbose);
940
- logger_1.logger.info(`Ran ${m.name} from ${m.package}`);
941
- logger_1.logger.info(` ${m.description}\n`);
942
- if (!madeChanges) {
943
- logger_1.logger.info(`No changes were made\n`);
944
- migrationsWithNoChanges.push(m);
945
- continue;
946
- }
947
- logger_1.logger.info('Changes:');
948
- loggingQueue.forEach((log) => logger_1.logger.info(' ' + log));
949
- logger_1.logger.info('');
950
- }
951
- if (shouldCreateCommits) {
952
- installDepsIfChanged();
953
- const commitMessage = `${commitPrefix}${m.name}`;
954
- try {
955
- const committedSha = (0, git_utils_1.commitChanges)(commitMessage);
956
- if (committedSha) {
957
- logger_1.logger.info(chalk.dim(`- Commit created for changes: ${committedSha}`));
958
- }
959
- else {
960
- logger_1.logger.info(chalk.red(`- A commit could not be created/retrieved for an unknown reason`));
961
- }
962
- }
963
- catch (e) {
964
- logger_1.logger.info(chalk.red(`- ${e.message}`));
965
- }
941
+ const changes = await runNxOrAngularMigration(root, m, isVerbose, shouldCreateCommits, commitPrefix, () => changedDepInstaller.installDepsIfChanged());
942
+ if (changes.length === 0) {
943
+ migrationsWithNoChanges.push(m);
966
944
  }
967
945
  logger_1.logger.info(`---------------------------------------------------------`);
968
946
  }
@@ -974,10 +952,78 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
974
952
  }
975
953
  }
976
954
  if (!shouldCreateCommits) {
977
- installDepsIfChanged();
955
+ changedDepInstaller.installDepsIfChanged();
978
956
  }
979
957
  return migrationsWithNoChanges;
980
958
  }
959
+ class ChangedDepInstaller {
960
+ constructor(root) {
961
+ this.root = root;
962
+ this.initialDeps = getStringifiedPackageJsonDeps(root);
963
+ }
964
+ installDepsIfChanged() {
965
+ const currentDeps = getStringifiedPackageJsonDeps(this.root);
966
+ if (this.initialDeps !== currentDeps) {
967
+ runInstall(this.root);
968
+ }
969
+ this.initialDeps = currentDeps;
970
+ }
971
+ }
972
+ async function runNxOrAngularMigration(root, migration, isVerbose, shouldCreateCommits, commitPrefix, installDepsIfChanged, handleInstallDeps = false) {
973
+ if (!installDepsIfChanged) {
974
+ const changedDepInstaller = new ChangedDepInstaller(root);
975
+ installDepsIfChanged = () => changedDepInstaller.installDepsIfChanged();
976
+ }
977
+ const { collection, collectionPath } = readMigrationCollection(migration.package, root);
978
+ let changes = [];
979
+ if (!isAngularMigration(collection, migration.name)) {
980
+ changes = await runNxMigration(root, collectionPath, collection, migration.name);
981
+ logger_1.logger.info(`Ran ${migration.name} from ${migration.package}`);
982
+ logger_1.logger.info(` ${migration.description}\n`);
983
+ if (changes.length < 1) {
984
+ logger_1.logger.info(`No changes were made\n`);
985
+ return [];
986
+ }
987
+ logger_1.logger.info('Changes:');
988
+ (0, tree_1.printChanges)(changes, ' ');
989
+ logger_1.logger.info('');
990
+ }
991
+ else {
992
+ const ngCliAdapter = await getNgCompatLayer();
993
+ const { madeChanges, loggingQueue } = await ngCliAdapter.runMigration(root, migration.package, migration.name, (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(await (0, project_graph_1.createProjectGraphAsync)())
994
+ .projects, isVerbose);
995
+ logger_1.logger.info(`Ran ${migration.name} from ${migration.package}`);
996
+ logger_1.logger.info(` ${migration.description}\n`);
997
+ if (!madeChanges) {
998
+ logger_1.logger.info(`No changes were made\n`);
999
+ return [];
1000
+ }
1001
+ logger_1.logger.info('Changes:');
1002
+ loggingQueue.forEach((log) => logger_1.logger.info(' ' + log));
1003
+ logger_1.logger.info('');
1004
+ }
1005
+ if (shouldCreateCommits) {
1006
+ installDepsIfChanged();
1007
+ const commitMessage = `${commitPrefix}${migration.name}`;
1008
+ try {
1009
+ const committedSha = (0, git_utils_1.commitChanges)(commitMessage, root);
1010
+ if (committedSha) {
1011
+ logger_1.logger.info(chalk.dim(`- Commit created for changes: ${committedSha}`));
1012
+ }
1013
+ else {
1014
+ logger_1.logger.info(chalk.red(`- A commit could not be created/retrieved for an unknown reason`));
1015
+ }
1016
+ }
1017
+ catch (e) {
1018
+ logger_1.logger.info(chalk.red(`- ${e.message}`));
1019
+ }
1020
+ // if we are running this function alone, we need to install deps internally
1021
+ }
1022
+ else if (handleInstallDeps) {
1023
+ installDepsIfChanged();
1024
+ }
1025
+ return changes;
1026
+ }
981
1027
  async function runMigrations(root, opts, args, isVerbose, shouldCreateCommits = false, commitPrefix) {
982
1028
  if (!process.env.NX_MIGRATE_SKIP_INSTALL) {
983
1029
  runInstall();
@@ -1111,7 +1157,7 @@ function getImplementationPath(collection, collectionPath, name) {
1111
1157
  }
1112
1158
  return { path: implPath, fnSymbol };
1113
1159
  }
1114
- function nxCliPath() {
1160
+ function nxCliPath(nxWorkspaceRoot) {
1115
1161
  const version = process.env.NX_MIGRATE_CLI_VERSION || 'latest';
1116
1162
  try {
1117
1163
  const packageManager = (0, package_manager_1.detectPackageManager)();
@@ -1124,7 +1170,7 @@ function nxCliPath() {
1124
1170
  },
1125
1171
  license: 'MIT',
1126
1172
  });
1127
- (0, package_manager_1.copyPackageManagerConfigurationFiles)(workspace_root_1.workspaceRoot, tmpDir);
1173
+ (0, package_manager_1.copyPackageManagerConfigurationFiles)(nxWorkspaceRoot ?? workspace_root_1.workspaceRoot, tmpDir);
1128
1174
  if (pmc.preInstall) {
1129
1175
  // ensure package.json and repo in tmp folder is set to a proper package manager state
1130
1176
  (0, child_process_1.execSync)(pmc.preInstall, {
@@ -1148,7 +1194,7 @@ function nxCliPath() {
1148
1194
  });
1149
1195
  // Set NODE_PATH so that these modules can be used for module resolution
1150
1196
  addToNodePath((0, path_1.join)(tmpDir, 'node_modules'));
1151
- addToNodePath((0, path_1.join)(workspace_root_1.workspaceRoot, 'node_modules'));
1197
+ addToNodePath((0, path_1.join)(nxWorkspaceRoot ?? workspace_root_1.workspaceRoot, 'node_modules'));
1152
1198
  return (0, path_1.join)(tmpDir, `node_modules`, '.bin', 'nx');
1153
1199
  }
1154
1200
  catch (e) {
@@ -1171,24 +1217,8 @@ function addToNodePath(dir) {
1171
1217
  // Update the env variable.
1172
1218
  process.env.NODE_PATH = paths.join(delimiter);
1173
1219
  }
1174
- // TODO (v21): Remove CLI determination of Angular Migration
1175
- function isAngularMigration(collection, collectionPath, name) {
1176
- const entry = collection.generators?.[name] || collection.schematics?.[name];
1177
- const shouldBeNx = !!collection.generators?.[name];
1178
- const shouldBeNg = !!collection.schematics?.[name];
1179
- if (entry.cli && entry.cli !== 'nx' && collection.generators?.[name]) {
1180
- output_1.output.warn({
1181
- title: `The migration '${collection.name}:${name}' appears to be an Angular CLI migration, but is located in the 'generators' section of migrations.json.`,
1182
- bodyLines: [
1183
- 'In Nx 21, migrations inside `generators` will be treated as Nx Devkit migrations and therefore may not run correctly if they are using Angular Devkit.',
1184
- 'If the migration should be run with Angular Devkit, please place the migration inside `schematics` instead.',
1185
- "Please open an issue on the plugin's repository if you believe this is an error.",
1186
- ],
1187
- });
1188
- }
1189
- // Currently, if the cli property exists we listen to it. If its nx, its not an ng cli migration.
1190
- // If the property is not set, we will fall back to our intuition.
1191
- return entry.cli ? entry.cli !== 'nx' : !shouldBeNx && shouldBeNg;
1220
+ function isAngularMigration(collection, name) {
1221
+ return !collection.generators?.[name] && collection.schematics?.[name];
1192
1222
  }
1193
1223
  const getNgCompatLayer = (() => {
1194
1224
  let _ngCliAdapter;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.commandsObject = exports.parserConfiguration = void 0;
4
4
  const chalk = require("chalk");
5
5
  const yargs = require("yargs");
6
- const command_object_1 = require("./activate-powerpack/command-object");
6
+ const command_object_1 = require("./register/command-object");
7
7
  const command_object_2 = require("./affected/command-object");
8
8
  const command_object_3 = require("./connect/command-object");
9
9
  const command_object_4 = require("./daemon/command-object");
@@ -46,7 +46,7 @@ exports.commandsObject = yargs
46
46
  .parserConfiguration(exports.parserConfiguration)
47
47
  .usage(chalk.bold('Smart Monorepos · Fast CI'))
48
48
  .demandCommand(1, '')
49
- .command(command_object_1.yargsActivatePowerpackCommand)
49
+ .command(command_object_1.yargsRegisterCommand)
50
50
  .command(command_object_22.yargsAddCommand)
51
51
  .command(command_object_2.yargsAffectedBuildCommand)
52
52
  .command(command_object_2.yargsAffectedCommand)
@@ -99,7 +99,7 @@ function createMissingConformanceCommand(command) {
99
99
  output_1.output.error({
100
100
  title: `${command} is not available`,
101
101
  bodyLines: [
102
- `In order to use the \`nx ${command}\` command you must have an active Powerpack license and the \`@nx/powerpack-conformance\` plugin installed.`,
102
+ `In order to use the \`nx ${command}\` command you must have an active Nx key and the \`@nx/conformance\` plugin installed.`,
103
103
  '',
104
104
  'To learn more, visit https://nx.dev/nx-enterprise/powerpack/conformance',
105
105
  ],
@@ -110,7 +110,14 @@ function createMissingConformanceCommand(command) {
110
110
  }
111
111
  function resolveConformanceCommandObject() {
112
112
  try {
113
- const { yargsConformanceCommand } = require('@nx/powerpack-conformance');
113
+ const { yargsConformanceCommand } = (() => {
114
+ try {
115
+ return require('@nx/powerpack-conformance');
116
+ }
117
+ catch {
118
+ return require('@nx/conformance');
119
+ }
120
+ })();
114
121
  return yargsConformanceCommand;
115
122
  }
116
123
  catch {
@@ -119,7 +126,14 @@ function resolveConformanceCommandObject() {
119
126
  }
120
127
  function resolveConformanceCheckCommandObject() {
121
128
  try {
122
- const { yargsConformanceCheckCommand, } = require('@nx/powerpack-conformance');
129
+ const { yargsConformanceCheckCommand } = (() => {
130
+ try {
131
+ return require('@nx/powerpack-conformance');
132
+ }
133
+ catch {
134
+ return require('@nx/conformance');
135
+ }
136
+ })();
123
137
  return yargsConformanceCheckCommand;
124
138
  }
125
139
  catch {
@@ -0,0 +1,6 @@
1
+ import { CommandModule } from 'yargs';
2
+ export interface RegisterOptions {
3
+ key?: string;
4
+ verbose?: boolean;
5
+ }
6
+ export declare const yargsRegisterCommand: CommandModule<{}, RegisterOptions>;
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.yargsActivatePowerpackCommand = void 0;
3
+ exports.yargsRegisterCommand = void 0;
4
4
  const shared_options_1 = require("../yargs-utils/shared-options");
5
5
  const handle_errors_1 = require("../../utils/handle-errors");
6
- exports.yargsActivatePowerpackCommand = {
7
- command: 'activate-powerpack <license>',
6
+ exports.yargsRegisterCommand = {
7
+ command: 'register [key]',
8
+ aliases: ['activate-powerpack'],
8
9
  describe: false,
9
- // describe: 'Activate a Nx Powerpack license.',
10
10
  builder: (yargs) => (0, shared_options_1.withVerbose)(yargs)
11
11
  .parserConfiguration({
12
12
  'strip-dashed': true,
13
13
  'unknown-options-as-args': true,
14
14
  })
15
- .positional('license', {
15
+ .positional('key', {
16
16
  type: 'string',
17
- description: 'This is a License Key for Nx Powerpack.',
17
+ description: 'This is a key for Nx.',
18
18
  })
19
- .example('$0 activate-powerpack <license key>', 'Activate a Nx Powerpack license'),
19
+ .example('$0 register <key>', 'Register a Nx key'),
20
20
  handler: async (args) => {
21
- const exitCode = await (0, handle_errors_1.handleErrors)(args.verbose, async () => {
22
- return (await Promise.resolve().then(() => require('./activate-powerpack'))).handleActivatePowerpack(args);
21
+ const exitCode = await (0, handle_errors_1.handleErrors)(args.verbose ?? false, async () => {
22
+ return (await Promise.resolve().then(() => require('./register'))).handleRegister(args);
23
23
  });
24
24
  process.exit(exitCode);
25
25
  },
@@ -0,0 +1,2 @@
1
+ import { RegisterOptions } from './command-object';
2
+ export declare function handleRegister(options: RegisterOptions): Promise<import("@nx/key").NxKey>;