nx 22.0.0-beta.3 → 22.0.0-beta.5
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/migrations.json +5 -0
- package/package.json +11 -11
- package/release/changelog-renderer/index.d.ts +1 -0
- package/release/changelog-renderer/index.d.ts.map +1 -1
- package/release/changelog-renderer/index.js +46 -15
- package/schemas/nx-schema.json +254 -86
- package/src/command-line/configure-ai-agents/command-object.d.ts +1 -1
- package/src/command-line/configure-ai-agents/command-object.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/command-object.js +18 -4
- package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/configure-ai-agents.js +58 -31
- package/src/command-line/migrate/migrate.d.ts.map +1 -1
- package/src/command-line/migrate/migrate.js +0 -4
- package/src/command-line/nx-cloud/login/command-object.d.ts.map +1 -1
- package/src/command-line/nx-cloud/login/command-object.js +2 -2
- package/src/command-line/nx-cloud/logout/command-object.js +1 -1
- package/src/command-line/nx-commands.js +1 -1
- package/src/command-line/release/changelog.d.ts.map +1 -1
- package/src/command-line/release/changelog.js +58 -47
- package/src/command-line/release/command-object.d.ts +7 -3
- package/src/command-line/release/command-object.d.ts.map +1 -1
- package/src/command-line/release/config/config.d.ts +6 -2
- package/src/command-line/release/config/config.d.ts.map +1 -1
- package/src/command-line/release/config/config.js +124 -61
- package/src/command-line/release/config/version-plans.d.ts.map +1 -1
- package/src/command-line/release/config/version-plans.js +4 -1
- package/src/command-line/release/publish.d.ts.map +1 -1
- package/src/command-line/release/publish.js +35 -11
- package/src/command-line/release/release.d.ts.map +1 -1
- package/src/command-line/release/release.js +31 -30
- package/src/command-line/release/utils/git.d.ts +2 -2
- package/src/command-line/release/utils/git.d.ts.map +1 -1
- package/src/command-line/release/utils/git.js +5 -5
- package/src/command-line/release/utils/release-graph.d.ts +219 -0
- package/src/command-line/release/utils/release-graph.d.ts.map +1 -0
- package/src/command-line/release/utils/release-graph.js +658 -0
- package/src/command-line/release/utils/semver.d.ts +1 -2
- package/src/command-line/release/utils/semver.d.ts.map +1 -1
- package/src/command-line/release/utils/semver.js +3 -5
- package/src/command-line/release/utils/shared.d.ts +1 -1
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +53 -19
- package/src/command-line/release/version/release-group-processor.d.ts +3 -152
- package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
- package/src/command-line/release/version/release-group-processor.js +58 -569
- package/src/command-line/release/version/resolve-current-version.d.ts +1 -1
- package/src/command-line/release/version/resolve-current-version.d.ts.map +1 -1
- package/src/command-line/release/version/resolve-current-version.js +1 -1
- package/src/command-line/release/version/test-utils.d.ts +13 -4
- package/src/command-line/release/version/test-utils.d.ts.map +1 -1
- package/src/command-line/release/version/test-utils.js +26 -11
- package/src/command-line/release/version/version-actions.d.ts +12 -5
- package/src/command-line/release/version/version-actions.d.ts.map +1 -1
- package/src/command-line/release/version/version-actions.js +36 -19
- package/src/command-line/release/version.d.ts +6 -1
- package/src/command-line/release/version.d.ts.map +1 -1
- package/src/command-line/release/version.js +57 -28
- package/src/config/nx-json.d.ts +139 -58
- package/src/config/nx-json.d.ts.map +1 -1
- package/src/config/nx-json.js +8 -8
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.d.ts +4 -0
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +23 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts +6 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts.map +1 -0
- package/src/daemon/message-types/register-project-graph-listener.js +11 -0
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts +3 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
- package/src/daemon/server/project-graph-listener-sockets.d.ts +8 -0
- package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -0
- package/src/daemon/server/project-graph-listener-sockets.js +24 -0
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +9 -2
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts +3 -0
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts.map +1 -0
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.js +100 -0
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/is-tui-enabled.d.ts.map +1 -1
- package/src/tasks-runner/is-tui-enabled.js +0 -1
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/run-command.js +5 -2
- package/src/utils/package-manager.d.ts.map +1 -1
- package/src/utils/package-manager.js +1 -3
|
@@ -64,38 +64,64 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
64
64
|
});
|
|
65
65
|
process.exit(1);
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
title: 'No AI agents are configured',
|
|
71
|
-
bodyLines: [
|
|
72
|
-
'You can configure AI agents by running `nx configure-ai-agents`.',
|
|
73
|
-
],
|
|
74
|
-
});
|
|
75
|
-
process.exit(0);
|
|
76
|
-
}
|
|
67
|
+
// important for wording
|
|
68
|
+
const usingAllAgents = normalizedOptions.agents.length === utils_1.supportedAgents.length;
|
|
69
|
+
if (normalizedOptions.check) {
|
|
77
70
|
const outOfDateAgents = fullyConfiguredAgents.filter((a) => a?.outdated);
|
|
78
|
-
if
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
// only error if something is fully configured but outdated
|
|
72
|
+
if (normalizedOptions.check === 'outdated') {
|
|
73
|
+
if (fullyConfiguredAgents.length === 0) {
|
|
74
|
+
output_1.output.log({
|
|
75
|
+
title: 'No AI agents are configured',
|
|
76
|
+
bodyLines: [
|
|
77
|
+
'You can configure AI agents by running `nx configure-ai-agents`.',
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
process.exit(0);
|
|
81
|
+
}
|
|
82
|
+
if (outOfDateAgents.length === 0) {
|
|
83
|
+
output_1.output.success({
|
|
84
|
+
title: 'All configured AI agents are up to date',
|
|
85
|
+
bodyLines: fullyConfiguredAgents.map((a) => `- ${a.displayName}`),
|
|
86
|
+
});
|
|
87
|
+
process.exit(0);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
output_1.output.log({
|
|
91
|
+
title: 'The following AI agents are out of date:',
|
|
92
|
+
bodyLines: [
|
|
93
|
+
...outOfDateAgents.map((a) => {
|
|
94
|
+
const rulesPath = a.rulesPath;
|
|
95
|
+
const displayPath = rulesPath.startsWith(workspace_root_1.workspaceRoot)
|
|
96
|
+
? (0, path_1.relative)(workspace_root_1.workspaceRoot, rulesPath)
|
|
97
|
+
: rulesPath;
|
|
98
|
+
return `- ${a.displayName} (${displayPath})`;
|
|
99
|
+
}),
|
|
100
|
+
'',
|
|
101
|
+
'You can update them by running `nx configure-ai-agents`.',
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
// error on any partial, outdated or non-configured agent
|
|
84
107
|
}
|
|
85
|
-
else {
|
|
86
|
-
|
|
87
|
-
|
|
108
|
+
else if (normalizedOptions.check === 'all') {
|
|
109
|
+
if (partiallyConfiguredAgents.length === 0 &&
|
|
110
|
+
outOfDateAgents.length === 0 &&
|
|
111
|
+
nonConfiguredAgents.length === 0) {
|
|
112
|
+
output_1.output.success({
|
|
113
|
+
title: `All ${!usingAllAgents ? 'selected' : 'supported'} AI agents are fully configured and up to date`,
|
|
114
|
+
bodyLines: fullyConfiguredAgents.map((a) => `- ${a.displayName}`),
|
|
115
|
+
});
|
|
116
|
+
process.exit(0);
|
|
117
|
+
}
|
|
118
|
+
output_1.output.error({
|
|
119
|
+
title: 'The following agents are not fully configured or up to date:',
|
|
88
120
|
bodyLines: [
|
|
89
|
-
...
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
: rulesPath;
|
|
94
|
-
return `- ${a.displayName} (${displayPath})`;
|
|
95
|
-
}),
|
|
96
|
-
'',
|
|
97
|
-
'You can update them by running `nx configure-ai-agents`.',
|
|
98
|
-
],
|
|
121
|
+
...partiallyConfiguredAgents,
|
|
122
|
+
...outOfDateAgents,
|
|
123
|
+
...nonConfiguredAgents,
|
|
124
|
+
].map((a) => getAgentChoiceForPrompt(a).message),
|
|
99
125
|
});
|
|
100
126
|
process.exit(1);
|
|
101
127
|
}
|
|
@@ -123,7 +149,6 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
123
149
|
currentIndex++;
|
|
124
150
|
});
|
|
125
151
|
if (allAgentChoices.length === 0) {
|
|
126
|
-
const usingAllAgents = normalizedOptions.agents.length === utils_1.supportedAgents.length;
|
|
127
152
|
output_1.output.success({
|
|
128
153
|
title: `No new agents to configure. All ${!usingAllAgents ? 'selected' : 'supported'} AI agents are already configured:`,
|
|
129
154
|
bodyLines: fullyConfiguredAgents.map((agent) => `- ${agent.displayName}`),
|
|
@@ -228,9 +253,11 @@ function getAgentChoiceForPrompt(agent) {
|
|
|
228
253
|
}
|
|
229
254
|
function normalizeOptions(options) {
|
|
230
255
|
const agents = (options.agents ?? utils_1.supportedAgents).filter((a) => utils_1.supportedAgents.includes(a));
|
|
256
|
+
// it used to be just --check which was implicitly 'outdated'
|
|
257
|
+
const check = (options.check === true ? 'outdated' : options.check) ?? false;
|
|
231
258
|
return {
|
|
232
259
|
...options,
|
|
233
260
|
agents,
|
|
234
|
-
check
|
|
261
|
+
check,
|
|
235
262
|
};
|
|
236
263
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/migrate/migrate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/migrate/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -934,10 +934,6 @@ function runInstall(nxWorkspaceRoot) {
|
|
|
934
934
|
else {
|
|
935
935
|
pmCommands = (0, package_manager_1.getPackageManagerCommand)();
|
|
936
936
|
}
|
|
937
|
-
// TODO: remove this
|
|
938
|
-
if (packageManager ?? (0, package_manager_1.detectPackageManager)() === 'npm') {
|
|
939
|
-
process.env.npm_config_legacy_peer_deps ??= 'true';
|
|
940
|
-
}
|
|
941
937
|
const installCommand = `${pmCommands.install} ${pmCommands.ignoreScriptsFlag ?? ''}`;
|
|
942
938
|
output_1.output.log({
|
|
943
939
|
title: `Running '${installCommand}' to make sure necessary packages are installed`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/login/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/login/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE,aAkB/B,CAAC"}
|
|
@@ -4,9 +4,9 @@ exports.yargsLoginCommand = void 0;
|
|
|
4
4
|
const shared_options_1 = require("../../yargs-utils/shared-options");
|
|
5
5
|
exports.yargsLoginCommand = {
|
|
6
6
|
command: 'login [nxCloudUrl]',
|
|
7
|
-
describe: 'Login to Nx Cloud. This command is an alias for
|
|
7
|
+
describe: 'Login to Nx Cloud. This command is an alias for `nx-cloud login`.',
|
|
8
8
|
builder: (yargs) => (0, shared_options_1.withVerbose)(yargs.positional('nxCloudUrl', {
|
|
9
|
-
describe: 'The Nx Cloud URL of the instance you are trying to connect to. If no positional argument is provided, this command will connect to
|
|
9
|
+
describe: 'The Nx Cloud URL of the instance you are trying to connect to. If no positional argument is provided, this command will connect to your configured Nx Cloud instance by default.',
|
|
10
10
|
type: 'string',
|
|
11
11
|
required: false,
|
|
12
12
|
}))
|
|
@@ -4,7 +4,7 @@ exports.yargsLogoutCommand = void 0;
|
|
|
4
4
|
const shared_options_1 = require("../../yargs-utils/shared-options");
|
|
5
5
|
exports.yargsLogoutCommand = {
|
|
6
6
|
command: 'logout',
|
|
7
|
-
describe: 'Logout from Nx Cloud. This command is an alias for
|
|
7
|
+
describe: 'Logout from Nx Cloud. This command is an alias for `nx-cloud logout`.',
|
|
8
8
|
builder: (yargs) => (0, shared_options_1.withVerbose)(yargs)
|
|
9
9
|
.help(false)
|
|
10
10
|
.showHelpOnFail(false)
|
|
@@ -95,7 +95,7 @@ exports.commandsObject = yargs
|
|
|
95
95
|
.command(resolveConformanceCommandObject())
|
|
96
96
|
.command(resolveConformanceCheckCommandObject())
|
|
97
97
|
.scriptName('nx')
|
|
98
|
-
.help()
|
|
98
|
+
.help(false)
|
|
99
99
|
// NOTE: we handle --version in nx.ts, this just tells yargs that the option exists
|
|
100
100
|
// so that it shows up in help. The default yargs implementation of --version is not
|
|
101
101
|
// hit, as the implementation in nx.ts is hit first and calls process.exit(0).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAkB1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAkB1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAepD,OAAO,EAEL,SAAS,EAUV,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,cAAc,EASf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE;QACnB,cAAc,EAAE,cAAc,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B,GAAI,MAAM,gBAAgB,oBACV,CAAC;AAExD,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAOnE,MAAM,gBAAgB,KACrB,OAAO,CAAC,wBAAwB,CAAC,CAgqBrC"}
|
|
@@ -19,18 +19,18 @@ const path_1 = require("../../utils/path");
|
|
|
19
19
|
const workspace_root_1 = require("../../utils/workspace-root");
|
|
20
20
|
const config_1 = require("./config/config");
|
|
21
21
|
const deep_merge_json_1 = require("./config/deep-merge-json");
|
|
22
|
-
const filter_release_groups_1 = require("./config/filter-release-groups");
|
|
23
22
|
const version_plans_1 = require("./config/version-plans");
|
|
24
23
|
const git_1 = require("./utils/git");
|
|
25
24
|
const launch_editor_1 = require("./utils/launch-editor");
|
|
26
25
|
const markdown_1 = require("./utils/markdown");
|
|
27
26
|
const print_changes_1 = require("./utils/print-changes");
|
|
28
27
|
const print_config_1 = require("./utils/print-config");
|
|
28
|
+
const release_graph_1 = require("./utils/release-graph");
|
|
29
29
|
const remote_release_client_1 = require("./utils/remote-release-clients/remote-release-client");
|
|
30
30
|
const resolve_changelog_renderer_1 = require("./utils/resolve-changelog-renderer");
|
|
31
31
|
const resolve_nx_json_error_message_1 = require("./utils/resolve-nx-json-error-message");
|
|
32
|
-
const version_plan_utils_1 = require("./utils/version-plan-utils");
|
|
33
32
|
const shared_1 = require("./utils/shared");
|
|
33
|
+
const version_plan_utils_1 = require("./utils/version-plan-utils");
|
|
34
34
|
const releaseChangelogCLIHandler = (args) => (0, handle_errors_1.handleErrors)(args.verbose, () => createAPI({})(args));
|
|
35
35
|
exports.releaseChangelogCLIHandler = releaseChangelogCLIHandler;
|
|
36
36
|
function createAPI(overrideReleaseConfig) {
|
|
@@ -74,19 +74,30 @@ function createAPI(overrideReleaseConfig) {
|
|
|
74
74
|
});
|
|
75
75
|
process.exit(1);
|
|
76
76
|
}
|
|
77
|
-
const
|
|
78
|
-
if
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
const tree = new tree_1.FsTree(workspace_root_1.workspaceRoot, args.verbose);
|
|
78
|
+
// Use pre-built release graph if provided, otherwise create a new one
|
|
79
|
+
const releaseGraph = args.releaseGraph ||
|
|
80
|
+
(await (0, release_graph_1.createReleaseGraph)({
|
|
81
|
+
tree,
|
|
82
|
+
projectGraph,
|
|
83
|
+
nxReleaseConfig,
|
|
84
|
+
filters: {
|
|
85
|
+
projects: args.projects,
|
|
86
|
+
groups: args.groups,
|
|
87
|
+
},
|
|
88
|
+
firstRelease: args.firstRelease,
|
|
89
|
+
verbose: args.verbose,
|
|
90
|
+
}));
|
|
91
|
+
// Display filter log if filters were applied (only when graph was created, not reused)
|
|
92
|
+
if (!args.releaseGraph &&
|
|
93
|
+
releaseGraph.filterLog &&
|
|
83
94
|
process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG !== 'true') {
|
|
84
|
-
output_1.output.note(filterLog);
|
|
95
|
+
output_1.output.note(releaseGraph.filterLog);
|
|
85
96
|
}
|
|
86
97
|
const rawVersionPlans = await (0, version_plans_1.readRawVersionPlans)();
|
|
87
|
-
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
|
|
98
|
+
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
|
|
88
99
|
// Validate version plans against the filter after resolution
|
|
89
|
-
const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGroups, releaseGroupToFilteredProjects);
|
|
100
|
+
const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects);
|
|
90
101
|
if (versionPlanValidationError) {
|
|
91
102
|
output_1.output.error(versionPlanValidationError);
|
|
92
103
|
process.exit(1);
|
|
@@ -106,7 +117,6 @@ function createAPI(overrideReleaseConfig) {
|
|
|
106
117
|
});
|
|
107
118
|
return {};
|
|
108
119
|
}
|
|
109
|
-
const tree = new tree_1.FsTree(workspace_root_1.workspaceRoot, args.verbose);
|
|
110
120
|
const useAutomaticFromRef = nxReleaseConfig.changelog?.automaticFromRef || args.firstRelease;
|
|
111
121
|
/**
|
|
112
122
|
* For determining the versions to use within changelog files, there are a few different possibilities:
|
|
@@ -122,7 +132,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
122
132
|
* - in this case, the version property will be used as the reference for the workspace changelog, and the versionData object will be used
|
|
123
133
|
* to generate project changelogs
|
|
124
134
|
*/
|
|
125
|
-
const { workspaceChangelogVersion, projectsVersionData } = resolveChangelogVersions(args,
|
|
135
|
+
const { workspaceChangelogVersion, projectsVersionData } = resolveChangelogVersions(args, releaseGraph);
|
|
126
136
|
const to = args.to || 'HEAD';
|
|
127
137
|
const toSHA = await (0, git_1.getCommitHash)(to);
|
|
128
138
|
const headSHA = to === 'HEAD' ? toSHA : await (0, git_1.getCommitHash)('HEAD');
|
|
@@ -145,19 +155,19 @@ function createAPI(overrideReleaseConfig) {
|
|
|
145
155
|
throw new Error(`You are attempting to recreate the changelog for an old release, but you have enabled auto-commit mode. Please disable auto-commit mode by updating your nx.json, or passing --git-commit=false`);
|
|
146
156
|
}
|
|
147
157
|
const commitMessage = args.gitCommitMessage || nxReleaseConfig.changelog.git.commitMessage;
|
|
148
|
-
const commitMessageValues = (0, shared_1.createCommitMessageValues)(releaseGroups, releaseGroupToFilteredProjects, projectsVersionData, commitMessage);
|
|
158
|
+
const commitMessageValues = (0, shared_1.createCommitMessageValues)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects, projectsVersionData, commitMessage);
|
|
149
159
|
// Resolve any git tags as early as possible so that we can hard error in case of any duplicates before reaching the actual git command
|
|
150
160
|
const gitTagValues = args.gitTag ?? nxReleaseConfig.changelog.git.tag
|
|
151
|
-
? (0, shared_1.createGitTagValues)(releaseGroups, releaseGroupToFilteredProjects, projectsVersionData)
|
|
161
|
+
? (0, shared_1.createGitTagValues)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects, projectsVersionData)
|
|
152
162
|
: [];
|
|
153
163
|
(0, shared_1.handleDuplicateGitTags)(gitTagValues);
|
|
154
164
|
const postGitTasks = [];
|
|
155
165
|
let workspaceChangelogChanges = [];
|
|
156
166
|
// If there are multiple release groups, we'll just skip the workspace changelog anyway.
|
|
157
|
-
const versionPlansEnabledForWorkspaceChangelog = releaseGroups[0].resolvedVersionPlans;
|
|
167
|
+
const versionPlansEnabledForWorkspaceChangelog = releaseGraph.releaseGroups[0].resolvedVersionPlans;
|
|
158
168
|
if (versionPlansEnabledForWorkspaceChangelog) {
|
|
159
|
-
if (releaseGroups.length === 1) {
|
|
160
|
-
const releaseGroup = releaseGroups[0];
|
|
169
|
+
if (releaseGraph.releaseGroups.length === 1) {
|
|
170
|
+
const releaseGroup = releaseGraph.releaseGroups[0];
|
|
161
171
|
if (releaseGroup.projectsRelationship === 'fixed') {
|
|
162
172
|
const versionPlans = releaseGroup.resolvedVersionPlans;
|
|
163
173
|
workspaceChangelogChanges = versionPlans
|
|
@@ -203,12 +213,12 @@ function createAPI(overrideReleaseConfig) {
|
|
|
203
213
|
}
|
|
204
214
|
else {
|
|
205
215
|
let workspaceChangelogFromRef = args.from ||
|
|
206
|
-
(await (0, git_1.getLatestGitTagForPattern)(nxReleaseConfig.
|
|
207
|
-
checkAllBranchesWhen: nxReleaseConfig.
|
|
216
|
+
(await (0, git_1.getLatestGitTagForPattern)(nxReleaseConfig.releaseTag.pattern, {}, {
|
|
217
|
+
checkAllBranchesWhen: nxReleaseConfig.releaseTag.checkAllBranchesWhen,
|
|
208
218
|
preid: workspacePreid ??
|
|
209
219
|
projectsPreid?.[Object.keys(projectsPreid)[0]],
|
|
210
|
-
|
|
211
|
-
|
|
220
|
+
requireSemver: nxReleaseConfig.releaseTag.requireSemver,
|
|
221
|
+
strictPreid: nxReleaseConfig.releaseTag.strictPreid,
|
|
212
222
|
}))?.tag;
|
|
213
223
|
if (!workspaceChangelogFromRef) {
|
|
214
224
|
if (useAutomaticFromRef) {
|
|
@@ -218,7 +228,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
218
228
|
}
|
|
219
229
|
}
|
|
220
230
|
else {
|
|
221
|
-
throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.
|
|
231
|
+
throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
|
|
222
232
|
}
|
|
223
233
|
}
|
|
224
234
|
// Make sure that the fromRef is actually resolvable
|
|
@@ -254,7 +264,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
254
264
|
* and figuring them out during the main iteration would be too late.
|
|
255
265
|
*/
|
|
256
266
|
const projectToAdditionalDependencyBumps = new Map();
|
|
257
|
-
for (const releaseGroup of releaseGroups) {
|
|
267
|
+
for (const releaseGroup of releaseGraph.releaseGroups) {
|
|
258
268
|
if (releaseGroup.projectsRelationship !== 'independent') {
|
|
259
269
|
continue;
|
|
260
270
|
}
|
|
@@ -285,7 +295,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
285
295
|
}
|
|
286
296
|
}
|
|
287
297
|
const allProjectChangelogs = {};
|
|
288
|
-
for (const releaseGroup of releaseGroups) {
|
|
298
|
+
for (const releaseGroup of releaseGraph.releaseGroups) {
|
|
289
299
|
const config = releaseGroup.changelog;
|
|
290
300
|
// The entire feature is disabled at the release group level, exit early
|
|
291
301
|
if (config === false) {
|
|
@@ -293,7 +303,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
293
303
|
}
|
|
294
304
|
const projects = args.projects?.length
|
|
295
305
|
? // If the user has passed a list of projects, we need to use the filtered list of projects within the release group, plus any dependents
|
|
296
|
-
Array.from(releaseGroupToFilteredProjects.get(releaseGroup)).flatMap((project) => {
|
|
306
|
+
Array.from(releaseGraph.releaseGroupToFilteredProjects.get(releaseGroup)).flatMap((project) => {
|
|
297
307
|
return [
|
|
298
308
|
project,
|
|
299
309
|
...(projectsVersionData[project]?.dependentProjects.map((dep) => dep.source) || []),
|
|
@@ -337,14 +347,14 @@ function createAPI(overrideReleaseConfig) {
|
|
|
337
347
|
}
|
|
338
348
|
else {
|
|
339
349
|
let fromRef = args.from ||
|
|
340
|
-
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.
|
|
350
|
+
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTag.pattern, {
|
|
341
351
|
projectName: project.name,
|
|
342
352
|
releaseGroupName: releaseGroup.name,
|
|
343
353
|
}, {
|
|
344
|
-
checkAllBranchesWhen: releaseGroup.
|
|
354
|
+
checkAllBranchesWhen: releaseGroup.releaseTag.checkAllBranchesWhen,
|
|
345
355
|
preid: projectsPreid[project.name],
|
|
346
|
-
|
|
347
|
-
|
|
356
|
+
requireSemver: releaseGroup.releaseTag.requireSemver,
|
|
357
|
+
strictPreid: releaseGroup.releaseTag.strictPreid,
|
|
348
358
|
}))?.tag;
|
|
349
359
|
let commits;
|
|
350
360
|
if (!fromRef && useAutomaticFromRef) {
|
|
@@ -360,7 +370,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
360
370
|
}
|
|
361
371
|
}
|
|
362
372
|
if (!fromRef && !commits) {
|
|
363
|
-
throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.
|
|
373
|
+
throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
|
|
364
374
|
}
|
|
365
375
|
if (!commits) {
|
|
366
376
|
commits = await filterProjectCommits({
|
|
@@ -451,12 +461,12 @@ function createAPI(overrideReleaseConfig) {
|
|
|
451
461
|
}
|
|
452
462
|
else {
|
|
453
463
|
let fromRef = args.from ||
|
|
454
|
-
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.
|
|
455
|
-
checkAllBranchesWhen: releaseGroup.
|
|
464
|
+
(await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTag.pattern, {}, {
|
|
465
|
+
checkAllBranchesWhen: releaseGroup.releaseTag.checkAllBranchesWhen,
|
|
456
466
|
preid: workspacePreid ??
|
|
457
467
|
projectsPreid?.[Object.keys(projectsPreid)[0]],
|
|
458
|
-
|
|
459
|
-
|
|
468
|
+
requireSemver: releaseGroup.releaseTag.requireSemver,
|
|
469
|
+
strictPreid: releaseGroup.releaseTag.strictPreid,
|
|
460
470
|
}))?.tag;
|
|
461
471
|
if (!fromRef) {
|
|
462
472
|
if (useAutomaticFromRef) {
|
|
@@ -466,7 +476,7 @@ function createAPI(overrideReleaseConfig) {
|
|
|
466
476
|
}
|
|
467
477
|
}
|
|
468
478
|
else {
|
|
469
|
-
throw new Error(`Unable to determine the previous git tag. If this is the first release of your release group, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.
|
|
479
|
+
throw new Error(`Unable to determine the previous git tag. If this is the first release of your release group, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
|
|
470
480
|
}
|
|
471
481
|
}
|
|
472
482
|
// Make sure that the fromRef is actually resolvable
|
|
@@ -509,19 +519,19 @@ function createAPI(overrideReleaseConfig) {
|
|
|
509
519
|
}
|
|
510
520
|
}
|
|
511
521
|
}
|
|
512
|
-
await applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTasks, commitMessageValues, gitTagValues,
|
|
522
|
+
await applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTasks, commitMessageValues, gitTagValues, releaseGraph);
|
|
513
523
|
return {
|
|
514
524
|
workspaceChangelog,
|
|
515
525
|
projectChangelogs: allProjectChangelogs,
|
|
516
526
|
};
|
|
517
527
|
};
|
|
518
528
|
}
|
|
519
|
-
function resolveChangelogVersions(args,
|
|
529
|
+
function resolveChangelogVersions(args, releaseGraph) {
|
|
520
530
|
if (!args.version && !args.versionData) {
|
|
521
531
|
throw new Error(`You must provide a version string and/or a versionData object.`);
|
|
522
532
|
}
|
|
523
|
-
const versionData = releaseGroups.reduce((versionData, releaseGroup) => {
|
|
524
|
-
const releaseGroupProjectNames = Array.from(releaseGroupToFilteredProjects.get(releaseGroup));
|
|
533
|
+
const versionData = releaseGraph.releaseGroups.reduce((versionData, releaseGroup) => {
|
|
534
|
+
const releaseGroupProjectNames = Array.from(releaseGraph.releaseGroupToFilteredProjects.get(releaseGroup));
|
|
525
535
|
for (const projectName of releaseGroupProjectNames) {
|
|
526
536
|
if (!args.versionData) {
|
|
527
537
|
versionData[projectName] = {
|
|
@@ -537,7 +547,7 @@ function resolveChangelogVersions(args, releaseGroups, releaseGroupToFilteredPro
|
|
|
537
547
|
* otherwise it suggests a filtering mismatch between the version and changelog command invocations.
|
|
538
548
|
*/
|
|
539
549
|
if (!args.versionData[projectName]) {
|
|
540
|
-
throw new Error(`The provided versionData object does not contain a version for project "${projectName}". This suggests a filtering mismatch between the version and changelog command invocations.`);
|
|
550
|
+
throw new Error(`The provided versionData object does not contain a version for project "${projectName}". This suggests a filtering mismatch between the version and changelog command invocations. Please ensure that you have used the same "group" or "project" filter between commands.`);
|
|
541
551
|
}
|
|
542
552
|
}
|
|
543
553
|
return versionData;
|
|
@@ -560,7 +570,7 @@ function applyRemoteReleaseProviderName(newRemoteReleaseProviderName) {
|
|
|
560
570
|
remoteReleaseProviderName = newRemoteReleaseProviderName;
|
|
561
571
|
}
|
|
562
572
|
}
|
|
563
|
-
async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTasks, commitMessageValues, gitTagValues,
|
|
573
|
+
async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTasks, commitMessageValues, gitTagValues, releaseGraph) {
|
|
564
574
|
let latestCommit = toSHA;
|
|
565
575
|
const changes = tree.listChanges();
|
|
566
576
|
/**
|
|
@@ -603,8 +613,8 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
|
|
|
603
613
|
let deletedFiles = [];
|
|
604
614
|
if (args.deleteVersionPlans) {
|
|
605
615
|
const planFiles = new Set();
|
|
606
|
-
releaseGroups.forEach((group) => {
|
|
607
|
-
const filteredProjects = releaseGroupToFilteredProjects.get(group);
|
|
616
|
+
releaseGraph.releaseGroups.forEach((group) => {
|
|
617
|
+
const filteredProjects = releaseGraph.releaseGroupToFilteredProjects.get(group);
|
|
608
618
|
if (group.resolvedVersionPlans) {
|
|
609
619
|
// Check each version plan individually to see if it should be deleted
|
|
610
620
|
const plansToDelete = [];
|
|
@@ -734,7 +744,7 @@ async function generateChangelogForWorkspace({ tree, args, nxReleaseConfig, work
|
|
|
734
744
|
}
|
|
735
745
|
const releaseVersion = new shared_1.ReleaseVersion({
|
|
736
746
|
version: workspaceChangelogVersion,
|
|
737
|
-
releaseTagPattern: nxReleaseConfig.
|
|
747
|
+
releaseTagPattern: nxReleaseConfig.releaseTag.pattern,
|
|
738
748
|
});
|
|
739
749
|
if (interpolatedTreePath) {
|
|
740
750
|
const prefix = dryRun ? 'Previewing' : 'Generating';
|
|
@@ -835,10 +845,11 @@ async function generateChangelogForProjects({ tree, args, changes, projectsVersi
|
|
|
835
845
|
}
|
|
836
846
|
const preferDockerVersion = (0, shared_1.shouldPreferDockerVersionForReleaseGroup)(releaseGroup);
|
|
837
847
|
const releaseVersion = new shared_1.ReleaseVersion({
|
|
838
|
-
version: preferDockerVersion &&
|
|
848
|
+
version: (preferDockerVersion === true || preferDockerVersion === 'both') &&
|
|
849
|
+
projectsVersionData[project.name].dockerVersion
|
|
839
850
|
? projectsVersionData[project.name].dockerVersion
|
|
840
851
|
: projectsVersionData[project.name].newVersion,
|
|
841
|
-
releaseTagPattern: releaseGroup.
|
|
852
|
+
releaseTagPattern: releaseGroup.releaseTag.pattern,
|
|
842
853
|
projectName: project.name,
|
|
843
854
|
});
|
|
844
855
|
if (interpolatedTreePath) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CommandModule } from 'yargs';
|
|
2
|
-
import { OutputStyle, RunManyOptions } from '../yargs-utils/shared-options';
|
|
3
|
-
import {
|
|
1
|
+
import { type CommandModule } from 'yargs';
|
|
2
|
+
import { type OutputStyle, type RunManyOptions } from '../yargs-utils/shared-options';
|
|
3
|
+
import type { ReleaseGraph } from './utils/release-graph';
|
|
4
|
+
import type { VersionData } from './utils/shared';
|
|
4
5
|
export interface BaseNxReleaseArgs {
|
|
5
6
|
verbose?: boolean;
|
|
6
7
|
printConfig?: boolean | 'debug';
|
|
@@ -31,6 +32,7 @@ export type VersionOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & Firs
|
|
|
31
32
|
preid?: string;
|
|
32
33
|
stageChanges?: boolean;
|
|
33
34
|
versionActionsOptionsOverrides?: Record<string, unknown>;
|
|
35
|
+
releaseGraph?: ReleaseGraph;
|
|
34
36
|
};
|
|
35
37
|
export type ChangelogOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & FirstReleaseArgs & {
|
|
36
38
|
version?: string | null;
|
|
@@ -39,6 +41,7 @@ export type ChangelogOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & Fi
|
|
|
39
41
|
from?: string;
|
|
40
42
|
interactive?: string;
|
|
41
43
|
createRelease?: false | 'github' | 'gitlab';
|
|
44
|
+
releaseGraph?: ReleaseGraph;
|
|
42
45
|
};
|
|
43
46
|
export type PublishOptions = NxReleaseArgs & Partial<RunManyOptions> & {
|
|
44
47
|
outputStyle?: OutputStyle;
|
|
@@ -48,6 +51,7 @@ export type PublishOptions = NxReleaseArgs & Partial<RunManyOptions> & {
|
|
|
48
51
|
access?: string;
|
|
49
52
|
otp?: number;
|
|
50
53
|
versionData?: VersionData;
|
|
54
|
+
releaseGraph?: ReleaseGraph;
|
|
51
55
|
};
|
|
52
56
|
export type PlanOptions = NxReleaseArgs & {
|
|
53
57
|
bump?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/command-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,9 @@ type RemoveBooleanFromProperties<T, K extends keyof T> = {
|
|
|
29
29
|
type RemoveBooleanFromPropertiesOnEach<T, K extends keyof T[keyof T]> = {
|
|
30
30
|
[U in keyof T]: RemoveBooleanFromProperties<T[U], K>;
|
|
31
31
|
};
|
|
32
|
+
type RemoveDeprecatedPropertiesFromEach<T> = {
|
|
33
|
+
[K in keyof T]: Omit<T[K], 'releaseTagPattern' | 'releaseTagPatternCheckAllBranchesWhen' | 'releaseTagPatternRequireSemver' | 'releaseTagPatternPreferDockerVersion' | 'releaseTagPatternStrictPreid'>;
|
|
34
|
+
};
|
|
32
35
|
export declare const IMPLICIT_DEFAULT_RELEASE_GROUP = "__default__";
|
|
33
36
|
export declare const DEFAULT_VERSION_ACTIONS_PATH = "@nx/js/src/release/version-actions";
|
|
34
37
|
/**
|
|
@@ -41,13 +44,14 @@ export declare const DEFAULT_VERSION_ACTIONS_PATH = "@nx/js/src/release/version-
|
|
|
41
44
|
* pattern such as directories and globs).
|
|
42
45
|
*/
|
|
43
46
|
export type NxReleaseConfig = Omit<DeepRequired<NxReleaseConfiguration & {
|
|
44
|
-
groups: EnsureDockerOptional<DeepRequired<RemoveTrueFromPropertiesOnEach<EnsureProjectsArray<NxReleaseConfiguration['groups']>, 'changelog' | 'docker'
|
|
47
|
+
groups: RemoveDeprecatedPropertiesFromEach<EnsureDockerOptional<DeepRequired<RemoveTrueFromPropertiesOnEach<EnsureProjectsArray<NxReleaseConfiguration['groups']>, 'changelog' | 'docker'>>>>;
|
|
45
48
|
changelog: RemoveTrueFromProperties<DeepRequired<NxReleaseConfiguration['changelog']>, 'workspaceChangelog' | 'projectChangelogs'>;
|
|
46
49
|
conventionalCommits: {
|
|
47
50
|
types: RemoveBooleanFromPropertiesOnEach<DeepRequired<RemoveBooleanFromProperties<DeepRequired<NxReleaseConfiguration['conventionalCommits']['types']>, string>>, 'changelog'>;
|
|
48
51
|
};
|
|
49
|
-
}>, 'projects' | 'docker'> & {
|
|
52
|
+
}>, 'projects' | 'docker' | 'releaseTagPattern' | 'releaseTagPatternCheckAllBranchesWhen' | 'releaseTagPatternRequireSemver' | 'releaseTagPatternPreferDockerVersion' | 'releaseTagPatternStrictPreid'> & {
|
|
50
53
|
docker: DeepRequired<NxReleaseDockerConfiguration> | undefined;
|
|
54
|
+
releaseTag: DeepRequired<NonNullable<NxReleaseConfiguration['releaseTag']>>;
|
|
51
55
|
};
|
|
52
56
|
export interface CreateNxReleaseConfigError {
|
|
53
57
|
code: 'PROJECTS_AND_GROUPS_DEFINED' | 'RELEASE_GROUP_MATCHES_NO_PROJECTS' | 'RELEASE_GROUP_RELEASE_TAG_PATTERN_VERSION_PLACEHOLDER_MISSING_OR_EXCESSIVE' | 'PROJECT_MATCHES_MULTIPLE_GROUPS' | 'CONVENTIONAL_COMMITS_SHORTHAND_MIXED_WITH_OVERLAPPING_OPTIONS' | 'GLOBAL_GIT_CONFIG_MIXED_WITH_GRANULAR_GIT_CONFIG' | 'CANNOT_RESOLVE_CHANGELOG_RENDERER' | 'INVALID_CHANGELOG_CREATE_RELEASE_PROVIDER' | 'INVALID_CHANGELOG_CREATE_RELEASE_HOSTNAME' | 'INVALID_CHANGELOG_CREATE_RELEASE_API_BASE_URL' | 'GIT_PUSH_FALSE_WITH_CREATE_RELEASE';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,mBAAmB,EAEnB,sBAAsB,EACtB,4BAA4B,EAG7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAa7E,KAAK,YAAY,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH,KAAK,oBAAoB,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;QACrC,MAAM,EAAE,YAAY,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAC;KAChE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,GAC1C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/C,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AACxD,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AACF,KAAK,8BAA8B,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI;KAClE,CAAC,IAAI,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CAClD,CAAC;AACF,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;AAC9D,KAAK,2BAA2B,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AACF,KAAK,iCAAiC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,8BAA8B,gBAAgB,CAAC;AAE5D,eAAO,MAAM,4BAA4B,uCACH,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,YAAY,CACV,sBAAsB,GAAG;IACvB,MAAM,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"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"}
|