nx 21.0.0-beta.1 → 21.0.0-beta.3
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.
- package/.eslintrc.json +5 -1
- package/package.json +12 -12
- package/release/index.d.ts +1 -1
- package/release/index.js +2 -1
- package/schemas/nx-schema.json +186 -35
- package/src/adapter/compat.d.ts +1 -1
- package/src/adapter/compat.js +3 -0
- package/src/command-line/add/add.js +6 -16
- package/src/command-line/affected/command-object.js +6 -6
- package/src/command-line/examples.js +0 -4
- package/src/command-line/exec/command-object.js +1 -1
- package/src/command-line/generate/generator-utils.js +8 -3
- package/src/command-line/import/import.js +1 -1
- package/src/command-line/init/command-object.js +18 -6
- package/src/command-line/init/configure-plugins.d.ts +6 -7
- package/src/command-line/init/configure-plugins.js +47 -35
- package/src/command-line/init/implementation/add-nx-to-turborepo.d.ts +4 -0
- package/src/command-line/init/implementation/add-nx-to-turborepo.js +49 -0
- package/src/command-line/init/implementation/check-compatible-with-plugins.js +7 -1
- package/src/command-line/init/implementation/deduce-default-base.d.ts +1 -0
- package/src/command-line/init/implementation/deduce-default-base.js +53 -0
- package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +6 -4
- package/src/command-line/init/implementation/react/index.d.ts +1 -1
- package/src/command-line/init/implementation/react/index.js +32 -185
- package/src/command-line/init/implementation/react/write-vite-config.js +19 -3
- package/src/command-line/init/implementation/utils.d.ts +4 -1
- package/src/command-line/init/implementation/utils.js +108 -44
- package/src/command-line/init/init-v1.js +1 -1
- package/src/command-line/init/init-v2.d.ts +1 -0
- package/src/command-line/init/init-v2.js +68 -38
- package/src/command-line/nx-commands.js +19 -5
- package/src/command-line/register/command-object.d.ts +6 -0
- package/src/command-line/{activate-powerpack → register}/command-object.js +9 -9
- package/src/command-line/register/register.d.ts +2 -0
- package/src/command-line/register/register.js +9 -0
- package/src/command-line/release/changelog.js +18 -15
- package/src/command-line/release/command-object.d.ts +2 -0
- package/src/command-line/release/command-object.js +9 -0
- package/src/command-line/release/config/config.d.ts +8 -7
- package/src/command-line/release/config/config.js +129 -42
- package/src/command-line/release/config/use-legacy-versioning.d.ts +2 -0
- package/src/command-line/release/config/use-legacy-versioning.js +9 -0
- package/src/command-line/release/index.d.ts +4 -0
- package/src/command-line/release/index.js +6 -1
- package/src/command-line/release/plan-check.js +6 -3
- package/src/command-line/release/plan.js +7 -3
- package/src/command-line/release/publish.js +7 -3
- package/src/command-line/release/release.js +8 -3
- package/src/command-line/release/utils/batch-projects-by-generator-config.js +6 -3
- package/src/command-line/release/utils/git.d.ts +3 -2
- package/src/command-line/release/utils/git.js +65 -9
- package/src/command-line/release/utils/github.js +3 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +2 -1
- package/src/command-line/release/utils/resolve-semver-specifier.js +2 -1
- package/src/command-line/release/utils/semver.d.ts +8 -0
- package/src/command-line/release/utils/semver.js +8 -0
- package/src/command-line/release/utils/shared-legacy.d.ts +25 -0
- package/src/command-line/release/utils/shared-legacy.js +2 -0
- package/src/command-line/release/utils/shared.d.ts +11 -17
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts +7 -0
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +47 -0
- package/src/command-line/release/version/deriver-specifier-from-version-plans.d.ts +8 -0
- package/src/command-line/release/version/deriver-specifier-from-version-plans.js +59 -0
- package/src/command-line/release/version/project-logger.d.ts +8 -0
- package/src/command-line/release/version/project-logger.js +45 -0
- package/src/command-line/release/version/release-group-processor.d.ts +251 -0
- package/src/command-line/release/version/release-group-processor.js +1040 -0
- package/src/command-line/release/version/resolve-current-version.d.ts +32 -0
- package/src/command-line/release/version/resolve-current-version.js +241 -0
- package/src/command-line/release/version/test-utils.d.ts +95 -0
- package/src/command-line/release/version/test-utils.js +416 -0
- package/src/command-line/release/version/topological-sort.d.ts +9 -0
- package/src/command-line/release/version/topological-sort.js +41 -0
- package/src/command-line/release/version/version-actions.d.ts +170 -0
- package/src/command-line/release/version/version-actions.js +183 -0
- package/src/command-line/release/version-legacy.d.ts +46 -0
- package/src/command-line/release/version-legacy.js +453 -0
- package/src/command-line/release/version.d.ts +0 -40
- package/src/command-line/release/version.js +80 -262
- package/src/command-line/report/report.d.ts +7 -3
- package/src/command-line/report/report.js +52 -18
- package/src/command-line/run/command-object.js +2 -2
- package/src/command-line/run/run.js +1 -1
- package/src/command-line/run-many/command-object.js +2 -2
- package/src/command-line/yargs-utils/shared-options.d.ts +4 -0
- package/src/command-line/yargs-utils/shared-options.js +20 -0
- package/src/config/nx-json.d.ts +153 -15
- package/src/config/project-graph.d.ts +4 -2
- package/src/config/project-graph.js +8 -0
- package/src/config/workspace-json-project-json.d.ts +2 -2
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/runtime.js +1 -1
- package/src/core/graph/styles.css +2 -2
- package/src/core/graph/styles.js +1 -1
- package/src/daemon/client/client.d.ts +2 -0
- package/src/daemon/client/client.js +15 -0
- package/src/daemon/message-types/glob.d.ts +7 -0
- package/src/daemon/message-types/glob.js +9 -1
- package/src/daemon/message-types/hash-glob.d.ts +6 -0
- package/src/daemon/message-types/hash-glob.js +9 -1
- package/src/daemon/server/handle-glob.d.ts +1 -0
- package/src/daemon/server/handle-glob.js +8 -0
- package/src/daemon/server/handle-hash-glob.d.ts +1 -0
- package/src/daemon/server/handle-hash-glob.js +8 -0
- package/src/daemon/server/logger.js +2 -1
- package/src/daemon/server/server.js +7 -0
- package/src/devkit-internals.d.ts +2 -1
- package/src/devkit-internals.js +4 -1
- package/src/executors/run-commands/run-commands.impl.d.ts +3 -5
- package/src/executors/run-commands/run-commands.impl.js +14 -42
- package/src/executors/run-commands/running-tasks.d.ts +7 -5
- package/src/executors/run-commands/running-tasks.js +64 -27
- package/src/executors/run-script/run-script.impl.js +4 -3
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +8 -0
- package/src/generators/testing-utils/create-tree.js +5 -1
- package/src/native/index.d.ts +93 -19
- package/src/native/index.js +16 -2
- package/src/native/native-bindings.js +6 -0
- package/src/native/nx.wasi-browser.js +20 -19
- package/src/native/nx.wasi.cjs +20 -19
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/nx-cloud/nx-cloud-tasks-runner-shell.js +3 -3
- package/src/plugins/js/lock-file/lock-file.js +28 -13
- package/src/plugins/js/lock-file/utils/package-json.d.ts +1 -1
- package/src/plugins/js/lock-file/utils/package-json.js +2 -1
- package/src/plugins/js/lock-file/yarn-parser.js +85 -39
- package/src/plugins/js/project-graph/affected/lock-file-changes.js +1 -0
- package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.js +1 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts +10 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +59 -6
- package/src/plugins/js/utils/packages.js +22 -3
- package/src/plugins/js/utils/register.js +1 -0
- package/src/plugins/js/utils/typescript.js +3 -3
- package/src/plugins/package-json/create-nodes.d.ts +1 -1
- package/src/plugins/package-json/create-nodes.js +3 -1
- package/src/project-graph/affected/locators/project-glob-changes.js +2 -2
- package/src/project-graph/error-types.js +32 -2
- package/src/project-graph/plugins/get-plugins.js +2 -1
- package/src/project-graph/plugins/in-process-loader.js +1 -1
- package/src/project-graph/plugins/isolation/plugin-worker.js +12 -6
- package/src/project-graph/plugins/loaded-nx-plugin.d.ts +2 -1
- package/src/project-graph/plugins/utils.d.ts +2 -2
- package/src/project-graph/plugins/utils.js +2 -2
- package/src/project-graph/project-graph.js +1 -1
- package/src/project-graph/utils/project-configuration-utils.d.ts +1 -1
- package/src/project-graph/utils/project-configuration-utils.js +25 -11
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +1 -1
- package/src/project-graph/utils/retrieve-workspace-files.js +14 -18
- package/src/tasks-runner/batch/batch-messages.d.ts +2 -0
- package/src/tasks-runner/batch/run-batch.js +2 -3
- package/src/tasks-runner/cache.d.ts +20 -6
- package/src/tasks-runner/cache.js +104 -20
- package/src/tasks-runner/create-task-graph.d.ts +1 -1
- package/src/tasks-runner/create-task-graph.js +12 -11
- package/src/tasks-runner/default-tasks-runner.js +4 -13
- package/src/tasks-runner/forked-process-task-runner.d.ts +8 -3
- package/src/tasks-runner/forked-process-task-runner.js +56 -46
- package/src/tasks-runner/init-tasks-runner.d.ts +15 -1
- package/src/tasks-runner/init-tasks-runner.js +55 -2
- package/src/tasks-runner/is-tui-enabled.d.ts +2 -0
- package/src/tasks-runner/is-tui-enabled.js +58 -0
- package/src/tasks-runner/life-cycle.d.ts +10 -3
- package/src/tasks-runner/life-cycle.js +23 -2
- package/src/tasks-runner/life-cycles/task-history-life-cycle-old.js +7 -2
- package/src/tasks-runner/life-cycles/task-history-life-cycle.js +6 -1
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts +17 -0
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +221 -0
- package/src/tasks-runner/pseudo-terminal.d.ts +10 -7
- package/src/tasks-runner/pseudo-terminal.js +37 -35
- package/src/tasks-runner/run-command.d.ts +1 -0
- package/src/tasks-runner/run-command.js +180 -23
- package/src/tasks-runner/task-env.d.ts +1 -4
- package/src/tasks-runner/task-env.js +2 -0
- package/src/tasks-runner/task-orchestrator.d.ts +21 -9
- package/src/tasks-runner/task-orchestrator.js +127 -44
- package/src/tasks-runner/utils.d.ts +2 -2
- package/src/tasks-runner/utils.js +15 -11
- package/src/utils/child-process.d.ts +4 -0
- package/src/utils/child-process.js +23 -30
- package/src/utils/command-line-utils.d.ts +1 -1
- package/src/utils/find-matching-projects.js +2 -2
- package/src/utils/handle-errors.js +15 -0
- package/src/utils/is-ci.js +4 -1
- package/src/utils/is-using-prettier.d.ts +3 -0
- package/src/utils/is-using-prettier.js +62 -0
- package/src/utils/nx-key.d.ts +7 -0
- package/src/utils/nx-key.js +52 -0
- package/src/utils/package-manager.js +2 -2
- package/src/utils/path.js +1 -1
- package/src/utils/require-nx-key.d.ts +1 -0
- package/src/utils/require-nx-key.js +22 -0
- package/src/utils/workspace-context.d.ts +2 -0
- package/src/utils/workspace-context.js +16 -0
- package/src/command-line/activate-powerpack/activate-powerpack.d.ts +0 -2
- package/src/command-line/activate-powerpack/activate-powerpack.js +0 -34
- package/src/command-line/activate-powerpack/command-object.d.ts +0 -6
- package/src/command-line/init/implementation/react/write-craco-config.d.ts +0 -1
- package/src/command-line/init/implementation/react/write-craco-config.js +0 -61
- package/src/utils/powerpack.d.ts +0 -5
- package/src/utils/powerpack.js +0 -33
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.createNxJsonFile = createNxJsonFile;
|
4
|
+
exports.createNxJsonFromTurboJson = createNxJsonFromTurboJson;
|
4
5
|
exports.addDepsToPackageJson = addDepsToPackageJson;
|
5
6
|
exports.updateGitIgnore = updateGitIgnore;
|
6
7
|
exports.runInstall = runInstall;
|
@@ -10,6 +11,7 @@ exports.markRootPackageJsonAsNxProjectLegacy = markRootPackageJsonAsNxProjectLeg
|
|
10
11
|
exports.markPackageJsonAsNxProject = markPackageJsonAsNxProject;
|
11
12
|
exports.printFinalMessage = printFinalMessage;
|
12
13
|
exports.isMonorepo = isMonorepo;
|
14
|
+
exports.isCRA = isCRA;
|
13
15
|
const child_process_1 = require("child_process");
|
14
16
|
const path_1 = require("path");
|
15
17
|
const fileutils_1 = require("../../../utils/fileutils");
|
@@ -21,7 +23,8 @@ const fs_1 = require("fs");
|
|
21
23
|
const connect_to_nx_cloud_1 = require("../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
|
22
24
|
const url_shorten_1 = require("../../../nx-cloud/utilities/url-shorten");
|
23
25
|
const connect_to_nx_cloud_2 = require("../../connect/connect-to-nx-cloud");
|
24
|
-
const
|
26
|
+
const deduce_default_base_1 = require("./deduce-default-base");
|
27
|
+
const child_process_2 = require("../../../utils/child-process");
|
25
28
|
function createNxJsonFile(repoRoot, topologicalTargets, cacheableOperations, scriptOutputs) {
|
26
29
|
const nxJsonPath = (0, path_2.joinPathFragments)(repoRoot, 'nx.json');
|
27
30
|
let nxJson = {};
|
@@ -53,56 +56,104 @@ function createNxJsonFile(repoRoot, topologicalTargets, cacheableOperations, scr
|
|
53
56
|
if (Object.keys(nxJson.targetDefaults).length === 0) {
|
54
57
|
delete nxJson.targetDefaults;
|
55
58
|
}
|
56
|
-
|
59
|
+
const defaultBase = (0, deduce_default_base_1.deduceDefaultBase)();
|
60
|
+
// Do not add defaultBase if it is inferred to be the Nx default value of main
|
61
|
+
if (defaultBase !== 'main') {
|
62
|
+
nxJson.defaultBase ??= defaultBase;
|
63
|
+
}
|
57
64
|
(0, fileutils_1.writeJsonFile)(nxJsonPath, nxJson);
|
58
65
|
}
|
59
|
-
function
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
66
|
+
function createNxJsonFromTurboJson(turboJson) {
|
67
|
+
const nxJson = {
|
68
|
+
$schema: './node_modules/nx/schemas/nx-schema.json',
|
69
|
+
};
|
70
|
+
// Handle global dependencies
|
71
|
+
if (turboJson.globalDependencies?.length > 0) {
|
72
|
+
nxJson.namedInputs = {
|
73
|
+
sharedGlobals: turboJson.globalDependencies.map((dep) => `{workspaceRoot}/${dep}`),
|
74
|
+
default: ['{projectRoot}/**/*', 'sharedGlobals'],
|
75
|
+
};
|
76
|
+
}
|
77
|
+
// Handle global env vars
|
78
|
+
if (turboJson.globalEnv?.length > 0) {
|
79
|
+
nxJson.namedInputs = nxJson.namedInputs || {};
|
80
|
+
nxJson.namedInputs.sharedGlobals = nxJson.namedInputs.sharedGlobals || [];
|
81
|
+
nxJson.namedInputs.sharedGlobals.push(...turboJson.globalEnv.map((env) => ({ env })));
|
82
|
+
nxJson.namedInputs.default = nxJson.namedInputs.default || [];
|
83
|
+
if (!nxJson.namedInputs.default.includes('{projectRoot}/**/*')) {
|
84
|
+
nxJson.namedInputs.default.push('{projectRoot}/**/*');
|
74
85
|
}
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
86
|
+
if (!nxJson.namedInputs.default.includes('sharedGlobals')) {
|
87
|
+
nxJson.namedInputs.default.push('sharedGlobals');
|
88
|
+
}
|
89
|
+
}
|
90
|
+
// Handle task configurations
|
91
|
+
if (turboJson.tasks) {
|
92
|
+
nxJson.targetDefaults = {};
|
93
|
+
for (const [taskName, taskConfig] of Object.entries(turboJson.tasks)) {
|
94
|
+
// Skip project-specific tasks (containing #)
|
95
|
+
if (taskName.includes('#'))
|
96
|
+
continue;
|
97
|
+
const config = taskConfig;
|
98
|
+
nxJson.targetDefaults[taskName] = {};
|
99
|
+
// Handle dependsOn
|
100
|
+
if (config.dependsOn?.length > 0) {
|
101
|
+
nxJson.targetDefaults[taskName].dependsOn = config.dependsOn;
|
82
102
|
}
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
return 'next';
|
90
|
-
}
|
91
|
-
catch {
|
92
|
-
try {
|
93
|
-
(0, child_process_1.execSync)(`git rev-parse --verify master`, {
|
94
|
-
stdio: ['ignore', 'ignore', 'ignore'],
|
95
|
-
windowsHide: false,
|
96
|
-
});
|
97
|
-
return 'master';
|
103
|
+
// Handle inputs
|
104
|
+
if (config.inputs?.length > 0) {
|
105
|
+
nxJson.targetDefaults[taskName].inputs = config.inputs
|
106
|
+
.map((input) => {
|
107
|
+
if (input === '$TURBO_DEFAULT$') {
|
108
|
+
return '{projectRoot}/**/*';
|
98
109
|
}
|
99
|
-
|
100
|
-
|
110
|
+
// Don't add projectRoot if it's already there or if it's an env var
|
111
|
+
if (input.startsWith('{projectRoot}/') ||
|
112
|
+
input.startsWith('{env.') ||
|
113
|
+
input.startsWith('$'))
|
114
|
+
return input;
|
115
|
+
return `{projectRoot}/${input}`;
|
116
|
+
})
|
117
|
+
.map((input) => {
|
118
|
+
// Don't add projectRoot if it's already there or if it's an env var
|
119
|
+
if (input.startsWith('{projectRoot}/') ||
|
120
|
+
input.startsWith('{env.') ||
|
121
|
+
input.startsWith('$'))
|
122
|
+
return input;
|
123
|
+
return `{projectRoot}/${input}`;
|
124
|
+
});
|
125
|
+
}
|
126
|
+
// Handle outputs
|
127
|
+
if (config.outputs?.length > 0) {
|
128
|
+
nxJson.targetDefaults[taskName].outputs = config.outputs.map((output) => {
|
129
|
+
// Don't add projectRoot if it's already there
|
130
|
+
if (output.startsWith('{projectRoot}/'))
|
131
|
+
return output;
|
132
|
+
// Handle negated patterns by adding projectRoot after the !
|
133
|
+
if (output.startsWith('!')) {
|
134
|
+
return `!{projectRoot}/${output.slice(1)}`;
|
101
135
|
}
|
102
|
-
|
136
|
+
return `{projectRoot}/${output}`;
|
137
|
+
});
|
103
138
|
}
|
139
|
+
// Handle cache setting - true by default in Turbo
|
140
|
+
nxJson.targetDefaults[taskName].cache = config.cache !== false;
|
104
141
|
}
|
105
142
|
}
|
143
|
+
/**
|
144
|
+
* The fact that cacheDir was in use suggests the user had a reason for deviating from the default.
|
145
|
+
* We can't know what that reason was, nor if it would still be applicable in Nx, but we can at least
|
146
|
+
* improve discoverability of the relevant Nx option by explicitly including it with its default value.
|
147
|
+
*/
|
148
|
+
if (turboJson.cacheDir) {
|
149
|
+
nxJson.cacheDirectory = '.nx/cache';
|
150
|
+
}
|
151
|
+
const defaultBase = (0, deduce_default_base_1.deduceDefaultBase)();
|
152
|
+
// Do not add defaultBase if it is inferred to be the Nx default value of main
|
153
|
+
if (defaultBase !== 'main') {
|
154
|
+
nxJson.defaultBase ??= defaultBase;
|
155
|
+
}
|
156
|
+
return nxJson;
|
106
157
|
}
|
107
158
|
function addDepsToPackageJson(repoRoot, additionalPackages) {
|
108
159
|
const path = (0, path_2.joinPathFragments)(repoRoot, `package.json`);
|
@@ -202,8 +253,8 @@ function printFinalMessage({ learnMoreLink, }) {
|
|
202
253
|
output_1.output.success({
|
203
254
|
title: '🎉 Done!',
|
204
255
|
bodyLines: [
|
205
|
-
`- Run "${pmc
|
206
|
-
`- Run "${pmc
|
256
|
+
`- Run "${(0, child_process_2.getRunNxBaseCommand)(pmc)} run-many -t build" to run the build target for every project in the workspace. Run it again to replay the cached computation. https://nx.dev/features/cache-task-results`,
|
257
|
+
`- Run "${(0, child_process_2.getRunNxBaseCommand)(pmc)} graph" to see the graph of projects and tasks in your workspace. https://nx.dev/core-features/explore-graph`,
|
207
258
|
learnMoreLink ? `- Learn more at ${learnMoreLink}.` : undefined,
|
208
259
|
].filter(Boolean),
|
209
260
|
});
|
@@ -217,3 +268,16 @@ function isMonorepo(packageJson) {
|
|
217
268
|
return true;
|
218
269
|
return false;
|
219
270
|
}
|
271
|
+
function isCRA(packageJson) {
|
272
|
+
const combinedDependencies = {
|
273
|
+
...packageJson.dependencies,
|
274
|
+
...packageJson.devDependencies,
|
275
|
+
};
|
276
|
+
return (
|
277
|
+
// Required dependencies for CRA projects
|
278
|
+
combinedDependencies['react'] &&
|
279
|
+
combinedDependencies['react-dom'] &&
|
280
|
+
combinedDependencies['react-scripts'] &&
|
281
|
+
(0, fileutils_1.directoryExists)('src') &&
|
282
|
+
(0, fileutils_1.directoryExists)('public'));
|
283
|
+
}
|
@@ -18,7 +18,7 @@ const utils_1 = require("./implementation/utils");
|
|
18
18
|
async function initHandler(options) {
|
19
19
|
// strip the 'init' command itself so we don't forward it
|
20
20
|
const args = process.argv.slice(3).join(' ');
|
21
|
-
const version = process.env.NX_VERSION ?? ((0, semver_1.prerelease)(versions_1.nxVersion) ?
|
21
|
+
const version = process.env.NX_VERSION ?? ((0, semver_1.prerelease)(versions_1.nxVersion) ? versions_1.nxVersion : 'latest');
|
22
22
|
if (process.env.NX_VERSION) {
|
23
23
|
console.log(`Using version ${process.env.NX_VERSION}`);
|
24
24
|
}
|
@@ -5,6 +5,7 @@ export interface InitArgs {
|
|
5
5
|
useDotNxInstallation?: boolean;
|
6
6
|
integrated?: boolean;
|
7
7
|
verbose?: boolean;
|
8
|
+
force?: boolean;
|
8
9
|
}
|
9
10
|
export declare function initHandler(options: InitArgs): Promise<void>;
|
10
11
|
export declare function detectPlugins(nxJson: NxJsonConfiguration, interactive: boolean, includeAngularCli?: boolean): Promise<{
|
@@ -3,48 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initHandler = initHandler;
|
4
4
|
exports.detectPlugins = detectPlugins;
|
5
5
|
const fs_1 = require("fs");
|
6
|
+
const enquirer_1 = require("enquirer");
|
6
7
|
const semver_1 = require("semver");
|
8
|
+
const nx_json_1 = require("../../config/nx-json");
|
9
|
+
const fileutils_1 = require("../../utils/fileutils");
|
10
|
+
const get_package_name_from_import_path_1 = require("../../utils/get-package-name-from-import-path");
|
7
11
|
const output_1 = require("../../utils/output");
|
8
12
|
const package_manager_1 = require("../../utils/package-manager");
|
9
|
-
const add_nx_scripts_1 = require("./implementation/dot-nx/add-nx-scripts");
|
10
|
-
const child_process_1 = require("../../utils/child-process");
|
11
|
-
const fileutils_1 = require("../../utils/fileutils");
|
12
13
|
const versions_1 = require("../../utils/versions");
|
13
|
-
const utils_1 = require("./implementation/utils");
|
14
|
-
const enquirer_1 = require("enquirer");
|
15
|
-
const angular_1 = require("./implementation/angular");
|
16
14
|
const workspace_context_1 = require("../../utils/workspace-context");
|
17
15
|
const connect_to_nx_cloud_1 = require("../connect/connect-to-nx-cloud");
|
18
|
-
const add_nx_to_npm_repo_1 = require("./implementation/add-nx-to-npm-repo");
|
19
|
-
const add_nx_to_monorepo_1 = require("./implementation/add-nx-to-monorepo");
|
20
|
-
const nx_json_1 = require("../../config/nx-json");
|
21
|
-
const get_package_name_from_import_path_1 = require("../../utils/get-package-name-from-import-path");
|
22
16
|
const configure_plugins_1 = require("./configure-plugins");
|
17
|
+
const add_nx_to_monorepo_1 = require("./implementation/add-nx-to-monorepo");
|
18
|
+
const add_nx_to_npm_repo_1 = require("./implementation/add-nx-to-npm-repo");
|
19
|
+
const add_nx_to_turborepo_1 = require("./implementation/add-nx-to-turborepo");
|
20
|
+
const angular_1 = require("./implementation/angular");
|
21
|
+
const add_nx_scripts_1 = require("./implementation/dot-nx/add-nx-scripts");
|
22
|
+
const utils_1 = require("./implementation/utils");
|
23
|
+
const react_1 = require("./implementation/react");
|
23
24
|
async function initHandler(options) {
|
24
25
|
process.env.NX_RUNNING_NX_INIT = 'true';
|
25
|
-
const version = process.env.NX_VERSION ?? ((0, semver_1.prerelease)(versions_1.nxVersion) ?
|
26
|
+
const version = process.env.NX_VERSION ?? ((0, semver_1.prerelease)(versions_1.nxVersion) ? versions_1.nxVersion : 'latest');
|
26
27
|
if (process.env.NX_VERSION) {
|
27
28
|
output_1.output.log({ title: `Using version ${process.env.NX_VERSION}` });
|
28
29
|
}
|
29
|
-
if (!(0, fs_1.existsSync)('package.json') || options.useDotNxInstallation) {
|
30
|
-
if (process.platform !== 'win32') {
|
31
|
-
console.log('Setting Nx up installation in `.nx`. You can run Nx commands like: `./nx --help`');
|
32
|
-
}
|
33
|
-
else {
|
34
|
-
console.log('Setting Nx up installation in `.nx`. You can run Nx commands like: `./nx.bat --help`');
|
35
|
-
}
|
36
|
-
(0, add_nx_scripts_1.generateDotNxSetup)(version);
|
37
|
-
const nxJson = (0, nx_json_1.readNxJson)(process.cwd());
|
38
|
-
const { plugins } = await detectPlugins(nxJson, options.interactive);
|
39
|
-
plugins.forEach((plugin) => {
|
40
|
-
(0, child_process_1.runNxSync)(`add ${plugin}`, {
|
41
|
-
stdio: 'inherit',
|
42
|
-
});
|
43
|
-
});
|
44
|
-
// invokes the wrapper, thus invoking the initial installation process
|
45
|
-
(0, child_process_1.runNxSync)('--version', { stdio: 'ignore' });
|
46
|
-
return;
|
47
|
-
}
|
48
30
|
// TODO(jack): Remove this Angular logic once `@nx/angular` is compatible with inferred targets.
|
49
31
|
if ((0, fs_1.existsSync)('angular.json')) {
|
50
32
|
await (0, angular_1.addNxToAngularCliRepo)({
|
@@ -56,33 +38,80 @@ async function initHandler(options) {
|
|
56
38
|
});
|
57
39
|
return;
|
58
40
|
}
|
59
|
-
const
|
60
|
-
|
41
|
+
const _isNonJs = !(0, fs_1.existsSync)('package.json') || options.useDotNxInstallation;
|
42
|
+
const packageJson = _isNonJs
|
43
|
+
? null
|
44
|
+
: (0, fileutils_1.readJsonFile)('package.json');
|
45
|
+
const _isTurborepo = (0, fs_1.existsSync)('turbo.json');
|
46
|
+
const _isMonorepo = _isNonJs ? false : (0, utils_1.isMonorepo)(packageJson);
|
47
|
+
const _isCRA = _isNonJs ? false : (0, utils_1.isCRA)(packageJson);
|
48
|
+
const learnMoreLink = _isTurborepo
|
49
|
+
? 'https://nx.dev/recipes/adopting-nx/from-turborepo'
|
50
|
+
: _isMonorepo
|
51
|
+
? 'https://nx.dev/getting-started/tutorials/npm-workspaces-tutorial'
|
52
|
+
: 'https://nx.dev/recipes/adopting-nx/adding-to-existing-project';
|
53
|
+
/**
|
54
|
+
* Turborepo users must have set up individual scripts already, and we keep the transition as minimal as possible.
|
55
|
+
* We log a message during the conversion process in addNxToTurborepo about how they can learn more about the power
|
56
|
+
* of Nx plugins and how it would allow them to infer all the relevant scripts automatically, including all cache
|
57
|
+
* inputs and outputs.
|
58
|
+
*/
|
59
|
+
if (_isTurborepo) {
|
60
|
+
await (0, add_nx_to_turborepo_1.addNxToTurborepo)({
|
61
|
+
interactive: options.interactive,
|
62
|
+
});
|
63
|
+
(0, utils_1.printFinalMessage)({
|
64
|
+
learnMoreLink,
|
65
|
+
});
|
66
|
+
return;
|
67
|
+
}
|
68
|
+
const pmc = (0, package_manager_1.getPackageManagerCommand)();
|
69
|
+
if (_isCRA) {
|
70
|
+
await (0, react_1.addNxToCraRepo)({
|
71
|
+
addE2e: false,
|
72
|
+
force: options.force,
|
73
|
+
vite: true,
|
74
|
+
integrated: false,
|
75
|
+
interactive: options.interactive,
|
76
|
+
nxCloud: false,
|
77
|
+
});
|
78
|
+
}
|
79
|
+
else if (_isMonorepo) {
|
61
80
|
await (0, add_nx_to_monorepo_1.addNxToMonorepo)({
|
62
81
|
interactive: options.interactive,
|
63
82
|
nxCloud: false,
|
64
83
|
});
|
65
84
|
}
|
85
|
+
else if (_isNonJs) {
|
86
|
+
(0, add_nx_scripts_1.generateDotNxSetup)(version);
|
87
|
+
console.log('');
|
88
|
+
}
|
66
89
|
else {
|
67
90
|
await (0, add_nx_to_npm_repo_1.addNxToNpmRepo)({
|
68
91
|
interactive: options.interactive,
|
69
92
|
nxCloud: false,
|
70
93
|
});
|
71
94
|
}
|
72
|
-
const learnMoreLink = (0, utils_1.isMonorepo)(packageJson)
|
73
|
-
? 'https://nx.dev/getting-started/tutorials/npm-workspaces-tutorial'
|
74
|
-
: 'https://nx.dev/recipes/adopting-nx/adding-to-existing-project';
|
75
95
|
const useNxCloud = options.nxCloud ??
|
76
96
|
(options.interactive ? await (0, connect_to_nx_cloud_1.connectExistingRepoToNxCloudPrompt)() : false);
|
77
97
|
const repoRoot = process.cwd();
|
78
|
-
const pmc = (0, package_manager_1.getPackageManagerCommand)();
|
79
98
|
(0, utils_1.createNxJsonFile)(repoRoot, [], [], {});
|
80
99
|
(0, utils_1.updateGitIgnore)(repoRoot);
|
81
100
|
const nxJson = (0, nx_json_1.readNxJson)(repoRoot);
|
82
101
|
output_1.output.log({ title: '🧐 Checking dependencies' });
|
83
|
-
|
102
|
+
let plugins;
|
103
|
+
let updatePackageScripts;
|
104
|
+
if (_isCRA) {
|
105
|
+
plugins = ['@nx/vite'];
|
106
|
+
updatePackageScripts = true;
|
107
|
+
}
|
108
|
+
else {
|
109
|
+
const { plugins: _plugins, updatePackageScripts: _updatePackageScripts } = await detectPlugins(nxJson, options.interactive);
|
110
|
+
plugins = _plugins;
|
111
|
+
updatePackageScripts = _updatePackageScripts;
|
112
|
+
}
|
84
113
|
output_1.output.log({ title: '📦 Installing Nx' });
|
85
|
-
(0, configure_plugins_1.
|
114
|
+
(0, configure_plugins_1.installPluginPackages)(repoRoot, pmc, plugins);
|
86
115
|
await (0, configure_plugins_1.configurePlugins)(plugins, updatePackageScripts, pmc, repoRoot, options.verbose);
|
87
116
|
if (useNxCloud) {
|
88
117
|
output_1.output.log({ title: '🛠️ Setting up Nx Cloud' });
|
@@ -114,6 +143,7 @@ const npmPackageToPluginMap = {
|
|
114
143
|
'react-native': '@nx/react-native',
|
115
144
|
'@remix-run/dev': '@nx/remix',
|
116
145
|
'@rsbuild/core': '@nx/rsbuild',
|
146
|
+
'@react-router/dev': '@nx/react',
|
117
147
|
};
|
118
148
|
async function detectPlugins(nxJson, interactive, includeAngularCli) {
|
119
149
|
let files = ['package.json'].concat((0, workspace_context_1.globWithWorkspaceContextSync)(process.cwd(), ['**/*/package.json']));
|
@@ -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("./
|
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.
|
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
|
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 } =
|
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
|
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 {
|
@@ -1,25 +1,25 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
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.
|
7
|
-
command: '
|
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('
|
15
|
+
.positional('key', {
|
16
16
|
type: 'string',
|
17
|
-
description: 'This is a
|
17
|
+
description: 'This is a key for Nx.',
|
18
18
|
})
|
19
|
-
.example('$0
|
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('./
|
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,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.handleRegister = handleRegister;
|
4
|
+
const workspace_root_1 = require("../../utils/workspace-root");
|
5
|
+
const require_nx_key_1 = require("../../utils/require-nx-key");
|
6
|
+
async function handleRegister(options) {
|
7
|
+
const nxKey = await (0, require_nx_key_1.requireNxKey)();
|
8
|
+
return nxKey.registerNxKey(workspace_root_1.workspaceRoot, options.key);
|
9
|
+
}
|
@@ -13,14 +13,15 @@ const tree_1 = require("../../generators/tree");
|
|
13
13
|
const file_map_utils_1 = require("../../project-graph/file-map-utils");
|
14
14
|
const project_graph_1 = require("../../project-graph/project-graph");
|
15
15
|
const utils_1 = require("../../tasks-runner/utils");
|
16
|
+
const handle_errors_1 = require("../../utils/handle-errors");
|
16
17
|
const is_ci_1 = require("../../utils/is-ci");
|
17
18
|
const output_1 = require("../../utils/output");
|
18
|
-
const handle_errors_1 = require("../../utils/handle-errors");
|
19
19
|
const path_1 = require("../../utils/path");
|
20
20
|
const workspace_root_1 = require("../../utils/workspace-root");
|
21
21
|
const config_1 = require("./config/config");
|
22
22
|
const deep_merge_json_1 = require("./config/deep-merge-json");
|
23
23
|
const filter_release_groups_1 = require("./config/filter-release-groups");
|
24
|
+
const use_legacy_versioning_1 = require("./config/use-legacy-versioning");
|
24
25
|
const version_plans_1 = require("./config/version-plans");
|
25
26
|
const git_1 = require("./utils/git");
|
26
27
|
const github_1 = require("./utils/github");
|
@@ -46,7 +47,8 @@ function createAPI(overrideReleaseConfig) {
|
|
46
47
|
// Apply default configuration to any optional user configuration
|
47
48
|
const { error: configError, nxReleaseConfig } = await (0, config_1.createNxReleaseConfig)(projectGraph, await (0, file_map_utils_1.createProjectFileMapUsingProjectGraph)(projectGraph), userProvidedReleaseConfig);
|
48
49
|
if (configError) {
|
49
|
-
|
50
|
+
const USE_LEGACY_VERSIONING = (0, use_legacy_versioning_1.shouldUseLegacyVersioning)(userProvidedReleaseConfig);
|
51
|
+
return await (0, config_1.handleNxReleaseConfigError)(configError, USE_LEGACY_VERSIONING);
|
50
52
|
}
|
51
53
|
// --print-config exits directly as it is not designed to be combined with any other programmatic operations
|
52
54
|
if (args.printConfig) {
|
@@ -137,7 +139,7 @@ function createAPI(overrideReleaseConfig) {
|
|
137
139
|
(0, shared_1.handleDuplicateGitTags)(gitTagValues);
|
138
140
|
const postGitTasks = [];
|
139
141
|
let workspaceChangelogChanges = [];
|
140
|
-
// TODO: remove this after the changelog renderer is refactored to remove coupling with git commits
|
142
|
+
// TODO(v22): remove this after the changelog renderer is refactored to remove coupling with git commits
|
141
143
|
let workspaceChangelogCommits = [];
|
142
144
|
// If there are multiple release groups, we'll just skip the workspace changelog anyway.
|
143
145
|
const versionPlansEnabledForWorkspaceChangelog = releaseGroups[0].resolvedVersionPlans;
|
@@ -191,8 +193,7 @@ function createAPI(overrideReleaseConfig) {
|
|
191
193
|
}
|
192
194
|
else {
|
193
195
|
let workspaceChangelogFromRef = args.from ||
|
194
|
-
(await (0, git_1.getLatestGitTagForPattern)(nxReleaseConfig.releaseTagPattern))
|
195
|
-
?.tag;
|
196
|
+
(await (0, git_1.getLatestGitTagForPattern)(nxReleaseConfig.releaseTagPattern, {}, nxReleaseConfig.releaseTagPatternCheckAllBranchesWhen))?.tag;
|
196
197
|
if (!workspaceChangelogFromRef) {
|
197
198
|
if (useAutomaticFromRef) {
|
198
199
|
workspaceChangelogFromRef = await (0, git_1.getFirstGitCommit)();
|
@@ -229,7 +230,7 @@ function createAPI(overrideReleaseConfig) {
|
|
229
230
|
nxReleaseConfig,
|
230
231
|
workspaceChangelogVersion,
|
231
232
|
changes: workspaceChangelogChanges,
|
232
|
-
// TODO: remove this after the changelog renderer is refactored to remove coupling with git commits
|
233
|
+
// TODO(v22): remove this after the changelog renderer is refactored to remove coupling with git commits
|
233
234
|
commits: filterHiddenCommits(workspaceChangelogCommits, nxReleaseConfig.conventionalCommits),
|
234
235
|
});
|
235
236
|
if (workspaceChangelog &&
|
@@ -260,7 +261,7 @@ function createAPI(overrideReleaseConfig) {
|
|
260
261
|
.map((dep) => {
|
261
262
|
return {
|
262
263
|
dependencyName: dep.source,
|
263
|
-
newVersion: projectsVersionData[dep.source]
|
264
|
+
newVersion: projectsVersionData[dep.source]?.newVersion ?? null,
|
264
265
|
};
|
265
266
|
})
|
266
267
|
.filter((b) => b.newVersion !== null);
|
@@ -297,7 +298,7 @@ function createAPI(overrideReleaseConfig) {
|
|
297
298
|
if (releaseGroup.projectsRelationship === 'independent') {
|
298
299
|
for (const project of projectNodes) {
|
299
300
|
let changes = null;
|
300
|
-
// TODO: remove this after the changelog renderer is refactored to remove coupling with git commits
|
301
|
+
// TODO(v22): remove this after the changelog renderer is refactored to remove coupling with git commits
|
301
302
|
let commits;
|
302
303
|
if (releaseGroup.resolvedVersionPlans) {
|
303
304
|
changes = releaseGroup.resolvedVersionPlans
|
@@ -335,7 +336,7 @@ function createAPI(overrideReleaseConfig) {
|
|
335
336
|
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTagPattern, {
|
336
337
|
projectName: project.name,
|
337
338
|
releaseGroupName: releaseGroup.name,
|
338
|
-
}))?.tag;
|
339
|
+
}, releaseGroup.releaseTagPatternCheckAllBranchesWhen))?.tag;
|
339
340
|
if (!fromRef && useAutomaticFromRef) {
|
340
341
|
const firstCommit = await (0, git_1.getFirstGitCommit)();
|
341
342
|
const allCommits = await getCommits(firstCommit, toSHA);
|
@@ -396,7 +397,7 @@ function createAPI(overrideReleaseConfig) {
|
|
396
397
|
}
|
397
398
|
else {
|
398
399
|
let changes = [];
|
399
|
-
// TODO: remove this after the changelog renderer is refactored to remove coupling with git commits
|
400
|
+
// TODO(v22): remove this after the changelog renderer is refactored to remove coupling with git commits
|
400
401
|
let commits = [];
|
401
402
|
if (releaseGroup.resolvedVersionPlans) {
|
402
403
|
changes = releaseGroup.resolvedVersionPlans
|
@@ -442,8 +443,7 @@ function createAPI(overrideReleaseConfig) {
|
|
442
443
|
}
|
443
444
|
else {
|
444
445
|
let fromRef = args.from ||
|
445
|
-
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTagPattern))
|
446
|
-
?.tag;
|
446
|
+
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTagPattern, {}, releaseGroup.releaseTagPatternCheckAllBranchesWhen))?.tag;
|
447
447
|
if (!fromRef) {
|
448
448
|
if (useAutomaticFromRef) {
|
449
449
|
fromRef = await (0, git_1.getFirstGitCommit)();
|
@@ -644,11 +644,12 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
|
|
644
644
|
}
|
645
645
|
}
|
646
646
|
if (args.gitPush ?? nxReleaseConfig.changelog.git.push) {
|
647
|
-
output_1.output.logSingleLine(`Pushing to git remote "${args.gitRemote}"`);
|
647
|
+
output_1.output.logSingleLine(`Pushing to git remote "${args.gitRemote ?? 'origin'}"`);
|
648
648
|
await (0, git_1.gitPush)({
|
649
649
|
gitRemote: args.gitRemote,
|
650
650
|
dryRun: args.dryRun,
|
651
651
|
verbose: args.verbose,
|
652
|
+
additionalArgs: args.gitPushArgs || nxReleaseConfig.changelog.git.pushArgs,
|
652
653
|
});
|
653
654
|
}
|
654
655
|
// Run any post-git tasks in series
|
@@ -902,7 +903,7 @@ function filterHiddenChanges(changes, conventionalCommitsConfig) {
|
|
902
903
|
return !typeConfig.changelog.hidden;
|
903
904
|
});
|
904
905
|
}
|
905
|
-
// TODO: remove this after the changelog renderer is refactored to remove coupling with git commits
|
906
|
+
// TODO(v22): remove this after the changelog renderer is refactored to remove coupling with git commits
|
906
907
|
function filterHiddenCommits(commits, conventionalCommitsConfig) {
|
907
908
|
if (!commits) {
|
908
909
|
return [];
|
@@ -937,7 +938,9 @@ async function promptForGitHubRelease() {
|
|
937
938
|
]);
|
938
939
|
return result.confirmation;
|
939
940
|
}
|
940
|
-
catch
|
941
|
+
catch {
|
942
|
+
// Ensure the cursor is always restored
|
943
|
+
process.stdout.write('\u001b[?25h');
|
941
944
|
// Handle the case where the user exits the prompt with ctrl+c
|
942
945
|
return false;
|
943
946
|
}
|
@@ -19,6 +19,7 @@ interface GitOptions {
|
|
19
19
|
gitTagMessage?: string;
|
20
20
|
gitTagArgs?: string | string[];
|
21
21
|
gitPush?: boolean;
|
22
|
+
gitPushArgs?: string | string[];
|
22
23
|
gitRemote?: string;
|
23
24
|
}
|
24
25
|
export type VersionOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & FirstReleaseArgs & {
|
@@ -58,6 +59,7 @@ export type PlanCheckOptions = BaseNxReleaseArgs & {
|
|
58
59
|
export type ReleaseOptions = NxReleaseArgs & FirstReleaseArgs & {
|
59
60
|
specifier?: string;
|
60
61
|
yes?: boolean;
|
62
|
+
preid?: VersionOptions['preid'];
|
61
63
|
skipPublish?: boolean;
|
62
64
|
};
|
63
65
|
export type VersionPlanArgs = {
|