nx 22.1.0 → 22.1.2
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/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 +12 -12
- package/src/ai/constants.d.ts +6 -1
- package/src/ai/constants.d.ts.map +1 -1
- package/src/ai/constants.js +14 -3
- package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
- package/src/ai/set-up-ai-agents/set-up-ai-agents.js +41 -7
- package/src/command-line/daemon/command-object.d.ts +3 -2
- package/src/command-line/daemon/command-object.d.ts.map +1 -1
- package/src/command-line/daemon/command-object.js +11 -4
- package/src/command-line/graph/graph.d.ts.map +1 -1
- package/src/command-line/graph/graph.js +25 -16
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +1 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts.map +1 -1
- package/src/command-line/release/utils/resolve-semver-specifier.js +3 -3
- package/src/command-line/release/utils/shared.d.ts +2 -1
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +27 -1
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +1 -1
- package/src/command-line/report/report.d.ts +4 -0
- package/src/command-line/report/report.d.ts.map +1 -1
- package/src/command-line/report/report.js +72 -1
- package/src/command-line/yargs-utils/arguments-of.d.ts +12 -0
- package/src/command-line/yargs-utils/arguments-of.d.ts.map +1 -0
- package/src/command-line/yargs-utils/arguments-of.js +9 -0
- package/src/core/graph/main.js +1 -1
- package/src/daemon/cache.d.ts +2 -1
- package/src/daemon/cache.d.ts.map +1 -1
- package/src/daemon/cache.js +10 -26
- package/src/daemon/client/client.d.ts +2 -0
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +55 -26
- package/src/daemon/is-nx-version-mismatch.d.ts +3 -0
- package/src/daemon/is-nx-version-mismatch.d.ts.map +1 -0
- package/src/daemon/is-nx-version-mismatch.js +24 -0
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +7 -18
- package/src/daemon/tmp-dir.d.ts.map +1 -1
- package/src/daemon/tmp-dir.js +1 -0
- package/src/native/nx.wasi-browser.js +53 -45
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/project-graph/error-types.d.ts +3 -2
- package/src/project-graph/error-types.d.ts.map +1 -1
- package/src/project-graph/error-types.js +9 -2
- package/src/project-graph/plugins/get-plugins.d.ts.map +1 -1
- package/src/project-graph/plugins/get-plugins.js +33 -35
- package/src/project-graph/plugins/in-process-loader.d.ts.map +1 -1
- package/src/project-graph/plugins/in-process-loader.js +2 -2
- package/src/project-graph/plugins/isolation/plugin-pool.js +3 -2
- package/src/project-graph/plugins/isolation/plugin-worker.js +3 -3
- package/src/project-graph/plugins/loaded-nx-plugin.d.ts +5 -0
- package/src/project-graph/plugins/loaded-nx-plugin.d.ts.map +1 -1
- package/src/project-graph/plugins/loaded-nx-plugin.js +5 -0
- package/src/project-graph/project-graph.d.ts +1 -0
- package/src/project-graph/project-graph.d.ts.map +1 -1
- package/src/project-graph/project-graph.js +21 -0
- package/src/project-graph/utils/project-configuration-utils.d.ts +1 -1
- package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
- package/src/project-graph/utils/project-configuration-utils.js +46 -15
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +1 -1
- package/src/project-graph/utils/retrieve-workspace-files.d.ts.map +1 -1
- package/src/tasks-runner/pseudo-terminal.js +1 -1
- package/src/tasks-runner/task-orchestrator.d.ts +1 -0
- package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +22 -5
- package/src/tasks-runner/utils.d.ts.map +1 -1
- package/src/tasks-runner/utils.js +3 -2
- package/src/utils/ab-testing.js +1 -1
- package/src/utils/assert-workspace-validity.d.ts.map +1 -1
- package/src/utils/assert-workspace-validity.js +5 -8
- package/src/utils/call-sites.d.ts +15 -0
- package/src/utils/call-sites.d.ts.map +1 -0
- package/src/utils/call-sites.js +28 -0
- package/src/utils/package-manager.d.ts +1 -0
- package/src/utils/package-manager.d.ts.map +1 -1
- package/src/utils/package-manager.js +4 -0
package/src/daemon/cache.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export interface DaemonProcessJson {
|
|
2
2
|
processId: number;
|
|
3
|
+
socketPath: string;
|
|
4
|
+
nxVersion: string;
|
|
3
5
|
}
|
|
4
6
|
export declare const serverProcessJsonPath: string;
|
|
5
7
|
export declare function readDaemonProcessJsonCache(): DaemonProcessJson | null;
|
|
6
8
|
export declare function deleteDaemonJsonProcessCache(): void;
|
|
7
9
|
export declare function writeDaemonJsonProcessCache(daemonJson: DaemonProcessJson): Promise<void>;
|
|
8
|
-
export declare function waitForDaemonToExitAndCleanupProcessJson(): Promise<void>;
|
|
9
10
|
export declare function getDaemonProcessIdSync(): number | null;
|
|
10
11
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/cache.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,iBAAiB,GAAG,IAAI,CAWrE;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD;AAED,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAIf;AAGD,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAUtD"}
|
package/src/daemon/cache.js
CHANGED
|
@@ -4,18 +4,25 @@ exports.serverProcessJsonPath = void 0;
|
|
|
4
4
|
exports.readDaemonProcessJsonCache = readDaemonProcessJsonCache;
|
|
5
5
|
exports.deleteDaemonJsonProcessCache = deleteDaemonJsonProcessCache;
|
|
6
6
|
exports.writeDaemonJsonProcessCache = writeDaemonJsonProcessCache;
|
|
7
|
-
exports.waitForDaemonToExitAndCleanupProcessJson = waitForDaemonToExitAndCleanupProcessJson;
|
|
8
7
|
exports.getDaemonProcessIdSync = getDaemonProcessIdSync;
|
|
9
8
|
const node_fs_1 = require("node:fs");
|
|
10
9
|
const path_1 = require("path");
|
|
11
10
|
const tmp_dir_1 = require("./tmp-dir");
|
|
12
11
|
const fileutils_1 = require("../utils/fileutils");
|
|
12
|
+
const versions_1 = require("../utils/versions");
|
|
13
13
|
exports.serverProcessJsonPath = (0, path_1.join)(tmp_dir_1.DAEMON_DIR_FOR_CURRENT_WORKSPACE, 'server-process.json');
|
|
14
14
|
function readDaemonProcessJsonCache() {
|
|
15
|
-
|
|
15
|
+
try {
|
|
16
|
+
const daemonJson = (0, fileutils_1.readJsonFile)(exports.serverProcessJsonPath);
|
|
17
|
+
// If the daemon version doesn't match the client version, treat it as stale
|
|
18
|
+
if (daemonJson.nxVersion !== versions_1.nxVersion) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return daemonJson;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
16
24
|
return null;
|
|
17
25
|
}
|
|
18
|
-
return (0, fileutils_1.readJsonFile)(exports.serverProcessJsonPath);
|
|
19
26
|
}
|
|
20
27
|
function deleteDaemonJsonProcessCache() {
|
|
21
28
|
try {
|
|
@@ -30,29 +37,6 @@ async function writeDaemonJsonProcessCache(daemonJson) {
|
|
|
30
37
|
appendNewLine: true,
|
|
31
38
|
});
|
|
32
39
|
}
|
|
33
|
-
async function waitForDaemonToExitAndCleanupProcessJson() {
|
|
34
|
-
const daemonProcessJson = readDaemonProcessJsonCache();
|
|
35
|
-
if (daemonProcessJson && daemonProcessJson.processId) {
|
|
36
|
-
await new Promise((resolve, reject) => {
|
|
37
|
-
let count = 0;
|
|
38
|
-
const interval = setInterval(() => {
|
|
39
|
-
try {
|
|
40
|
-
// sending a signal 0 to a process checks if the process is running instead of actually killing it
|
|
41
|
-
process.kill(daemonProcessJson.processId, 0);
|
|
42
|
-
}
|
|
43
|
-
catch (e) {
|
|
44
|
-
clearInterval(interval);
|
|
45
|
-
resolve();
|
|
46
|
-
}
|
|
47
|
-
if ((count += 1) > 200) {
|
|
48
|
-
clearInterval(interval);
|
|
49
|
-
reject(`Daemon process ${daemonProcessJson.processId} didn't exit after 2 seconds.`);
|
|
50
|
-
}
|
|
51
|
-
}, 10);
|
|
52
|
-
});
|
|
53
|
-
deleteDaemonJsonProcessCache();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
40
|
// Must be sync for the help output use case
|
|
57
41
|
function getDaemonProcessIdSync() {
|
|
58
42
|
if (!(0, node_fs_1.existsSync)(exports.serverProcessJsonPath)) {
|
|
@@ -28,6 +28,7 @@ export declare class DaemonClient {
|
|
|
28
28
|
private _err;
|
|
29
29
|
enabled(): boolean;
|
|
30
30
|
reset(): void;
|
|
31
|
+
private getSocketPath;
|
|
31
32
|
requestShutdown(): Promise<void>;
|
|
32
33
|
getProjectGraphAndSourceMaps(): Promise<{
|
|
33
34
|
projectGraph: ProjectGraph;
|
|
@@ -73,6 +74,7 @@ export declare class DaemonClient {
|
|
|
73
74
|
getNxConsoleStatus(): Promise<NxConsoleStatusResponse>;
|
|
74
75
|
setNxConsolePreferenceAndInstall(preference: boolean): Promise<SetNxConsolePreferenceAndInstallResponse>;
|
|
75
76
|
isServerAvailable(): Promise<boolean>;
|
|
77
|
+
private startDaemonIfNecessary;
|
|
76
78
|
private sendToDaemonViaQueue;
|
|
77
79
|
private setUpConnection;
|
|
78
80
|
private sendMessageToDaemon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ const net_1 = require("net");
|
|
|
10
10
|
const path_1 = require("path");
|
|
11
11
|
const perf_hooks_1 = require("perf_hooks");
|
|
12
12
|
const output_1 = require("../../utils/output");
|
|
13
|
-
const socket_utils_1 = require("../socket-utils");
|
|
14
13
|
const tmp_dir_1 = require("../tmp-dir");
|
|
15
14
|
const is_ci_1 = require("../../utils/is-ci");
|
|
16
15
|
const nx_json_1 = require("../../config/nx-json");
|
|
@@ -18,6 +17,7 @@ const configuration_1 = require("../../config/configuration");
|
|
|
18
17
|
const promised_based_queue_1 = require("../../utils/promised-based-queue");
|
|
19
18
|
const daemon_socket_messenger_1 = require("./daemon-socket-messenger");
|
|
20
19
|
const cache_1 = require("../cache");
|
|
20
|
+
const is_nx_version_mismatch_1 = require("../is-nx-version-mismatch");
|
|
21
21
|
const error_types_1 = require("../../project-graph/error-types");
|
|
22
22
|
const native_1 = require("../../native");
|
|
23
23
|
const get_nx_workspace_files_1 = require("../message-types/get-nx-workspace-files");
|
|
@@ -35,6 +35,7 @@ const register_project_graph_listener_1 = require("../message-types/register-pro
|
|
|
35
35
|
const nx_console_1 = require("../message-types/nx-console");
|
|
36
36
|
const node_v8_1 = require("node:v8");
|
|
37
37
|
const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
|
|
38
|
+
const project_graph_1 = require("../../project-graph/project-graph");
|
|
38
39
|
const DAEMON_ENV_SETTINGS = {
|
|
39
40
|
NX_PROJECT_GLOB_CACHE: 'false',
|
|
40
41
|
NX_CACHE_PROJECTS_CONFIG: 'false',
|
|
@@ -81,7 +82,9 @@ class DaemonClient {
|
|
|
81
82
|
// docker=true,env=false => no daemon
|
|
82
83
|
// docker=true,env=true => daemon
|
|
83
84
|
// WASM => no daemon because file watching does not work
|
|
84
|
-
|
|
85
|
+
// version mismatch => no daemon because the installed nx version differs from the running one
|
|
86
|
+
if ((0, is_nx_version_mismatch_1.isNxVersionMismatch)() ||
|
|
87
|
+
(((0, is_ci_1.isCI)() || isDocker()) && env !== 'true') ||
|
|
85
88
|
(0, tmp_dir_1.isDaemonDisabled)() ||
|
|
86
89
|
nxJsonIsNotPresent() ||
|
|
87
90
|
(useDaemonProcessOption === undefined && env === 'false') ||
|
|
@@ -117,10 +120,20 @@ class DaemonClient {
|
|
|
117
120
|
this._daemonStatus = DaemonStatus.DISCONNECTED;
|
|
118
121
|
this._waitForDaemonReady = new Promise((resolve) => (this._daemonReady = resolve));
|
|
119
122
|
}
|
|
123
|
+
getSocketPath() {
|
|
124
|
+
const daemonProcessJson = (0, cache_1.readDaemonProcessJsonCache)();
|
|
125
|
+
if (daemonProcessJson?.socketPath) {
|
|
126
|
+
return daemonProcessJson.socketPath;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
throw daemonProcessException('Unable to connect to daemon: no socket path available');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
120
132
|
async requestShutdown() {
|
|
121
133
|
return this.sendToDaemonViaQueue({ type: 'REQUEST_SHUTDOWN' });
|
|
122
134
|
}
|
|
123
135
|
async getProjectGraphAndSourceMaps() {
|
|
136
|
+
(0, project_graph_1.preventRecursionInGraphConstruction)();
|
|
124
137
|
let spinner;
|
|
125
138
|
// If the graph takes a while to load, we want to show a spinner.
|
|
126
139
|
spinner = new delayed_spinner_1.DelayedSpinner('Calculating the project graph on the Nx Daemon').scheduleMessageUpdate('Calculating the project graph on the Nx Daemon is taking longer than expected. Re-run with NX_DAEMON=false to see more details.', { ciDelay: 60_000, delay: 30_000 });
|
|
@@ -172,8 +185,10 @@ class DaemonClient {
|
|
|
172
185
|
}
|
|
173
186
|
}
|
|
174
187
|
let messenger;
|
|
175
|
-
await this.queue.sendToQueue(() => {
|
|
176
|
-
|
|
188
|
+
await this.queue.sendToQueue(async () => {
|
|
189
|
+
await this.startDaemonIfNecessary();
|
|
190
|
+
const socketPath = this.getSocketPath();
|
|
191
|
+
messenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)(socketPath)).listen((message) => {
|
|
177
192
|
try {
|
|
178
193
|
const parsedMessage = (0, consume_messages_from_socket_1.isJsonMessage)(message)
|
|
179
194
|
? JSON.parse(message)
|
|
@@ -194,8 +209,10 @@ class DaemonClient {
|
|
|
194
209
|
}
|
|
195
210
|
async registerProjectGraphRecomputationListener(callback) {
|
|
196
211
|
let messenger;
|
|
197
|
-
await this.queue.sendToQueue(() => {
|
|
198
|
-
|
|
212
|
+
await this.queue.sendToQueue(async () => {
|
|
213
|
+
await this.startDaemonIfNecessary();
|
|
214
|
+
const socketPath = this.getSocketPath();
|
|
215
|
+
messenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)(socketPath)).listen((message) => {
|
|
199
216
|
try {
|
|
200
217
|
const parsedMessage = (0, consume_messages_from_socket_1.isJsonMessage)(message)
|
|
201
218
|
? JSON.parse(message)
|
|
@@ -374,7 +391,12 @@ class DaemonClient {
|
|
|
374
391
|
async isServerAvailable() {
|
|
375
392
|
return new Promise((resolve) => {
|
|
376
393
|
try {
|
|
377
|
-
const
|
|
394
|
+
const socketPath = this.getSocketPath();
|
|
395
|
+
if (!socketPath) {
|
|
396
|
+
resolve(false);
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const socket = (0, net_1.connect)(socketPath, () => {
|
|
378
400
|
socket.destroy();
|
|
379
401
|
resolve(true);
|
|
380
402
|
});
|
|
@@ -387,11 +409,35 @@ class DaemonClient {
|
|
|
387
409
|
}
|
|
388
410
|
});
|
|
389
411
|
}
|
|
412
|
+
async startDaemonIfNecessary() {
|
|
413
|
+
if (this._daemonStatus == DaemonStatus.CONNECTED) {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
// Ensure daemon is running and socket path is available
|
|
417
|
+
if (this._daemonStatus == DaemonStatus.DISCONNECTED) {
|
|
418
|
+
this._daemonStatus = DaemonStatus.CONNECTING;
|
|
419
|
+
let daemonPid = null;
|
|
420
|
+
if (!(await this.isServerAvailable())) {
|
|
421
|
+
daemonPid = await this.startInBackground();
|
|
422
|
+
}
|
|
423
|
+
this.setUpConnection();
|
|
424
|
+
this._daemonStatus = DaemonStatus.CONNECTED;
|
|
425
|
+
this._daemonReady();
|
|
426
|
+
daemonPid ??= (0, cache_1.getDaemonProcessIdSync)();
|
|
427
|
+
await this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
428
|
+
}
|
|
429
|
+
else if (this._daemonStatus == DaemonStatus.CONNECTING) {
|
|
430
|
+
await this._waitForDaemonReady;
|
|
431
|
+
const daemonPid = (0, cache_1.getDaemonProcessIdSync)();
|
|
432
|
+
await this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
390
435
|
async sendToDaemonViaQueue(messageToDaemon, force) {
|
|
391
436
|
return this.queue.sendToQueue(() => this.sendMessageToDaemon(messageToDaemon, force));
|
|
392
437
|
}
|
|
393
438
|
setUpConnection() {
|
|
394
|
-
|
|
439
|
+
const socketPath = this.getSocketPath();
|
|
440
|
+
this.socketMessenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)(socketPath)).listen((message) => this.handleMessage(message), () => {
|
|
395
441
|
// it's ok for the daemon to terminate if the client doesn't wait on
|
|
396
442
|
// any messages from the daemon
|
|
397
443
|
if (this.queue.isEmpty()) {
|
|
@@ -419,7 +465,6 @@ class DaemonClient {
|
|
|
419
465
|
}
|
|
420
466
|
else if (err.message.startsWith('connect ECONNREFUSED')) {
|
|
421
467
|
error = daemonProcessException(`A server instance had not been fully shut down. Please try running the command again.`);
|
|
422
|
-
(0, socket_utils_1.killSocketOrPath)();
|
|
423
468
|
}
|
|
424
469
|
else if (err.message.startsWith('read ECONNRESET')) {
|
|
425
470
|
error = daemonProcessException(`Unable to connect to the daemon process.`);
|
|
@@ -431,23 +476,7 @@ class DaemonClient {
|
|
|
431
476
|
});
|
|
432
477
|
}
|
|
433
478
|
async sendMessageToDaemon(message, force) {
|
|
434
|
-
|
|
435
|
-
this._daemonStatus = DaemonStatus.CONNECTING;
|
|
436
|
-
let daemonPid = null;
|
|
437
|
-
if (!(await this.isServerAvailable())) {
|
|
438
|
-
daemonPid = await this.startInBackground();
|
|
439
|
-
}
|
|
440
|
-
this.setUpConnection();
|
|
441
|
-
this._daemonStatus = DaemonStatus.CONNECTED;
|
|
442
|
-
this._daemonReady();
|
|
443
|
-
daemonPid ??= (0, cache_1.getDaemonProcessIdSync)();
|
|
444
|
-
await this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
445
|
-
}
|
|
446
|
-
else if (this._daemonStatus == DaemonStatus.CONNECTING) {
|
|
447
|
-
await this._waitForDaemonReady;
|
|
448
|
-
const daemonPid = (0, cache_1.getDaemonProcessIdSync)();
|
|
449
|
-
await this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
450
|
-
}
|
|
479
|
+
await this.startDaemonIfNecessary();
|
|
451
480
|
// An open promise isn't enough to keep the event loop
|
|
452
481
|
// alive, so we set a timeout here and clear it when we hear
|
|
453
482
|
// back
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-nx-version-mismatch.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/is-nx-version-mismatch.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAWrD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInstalledNxVersion = getInstalledNxVersion;
|
|
4
|
+
exports.isNxVersionMismatch = isNxVersionMismatch;
|
|
5
|
+
const fileutils_1 = require("../utils/fileutils");
|
|
6
|
+
const versions_1 = require("../utils/versions");
|
|
7
|
+
const workspace_root_1 = require("../utils/workspace-root");
|
|
8
|
+
const installation_directory_1 = require("../utils/installation-directory");
|
|
9
|
+
function getInstalledNxVersion() {
|
|
10
|
+
try {
|
|
11
|
+
const nxPackageJsonPath = require.resolve('nx/package.json', {
|
|
12
|
+
paths: (0, installation_directory_1.getNxRequirePaths)(workspace_root_1.workspaceRoot),
|
|
13
|
+
});
|
|
14
|
+
const { version } = (0, fileutils_1.readJsonFile)(nxPackageJsonPath);
|
|
15
|
+
return version;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// node modules are absent
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function isNxVersionMismatch() {
|
|
23
|
+
return getInstalledNxVersion() !== versions_1.nxVersion;
|
|
24
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AA+JnD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAAa,CAAC;AA8RlD,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,iBA6BpB;AAoLD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAyEnD"}
|
|
@@ -10,11 +10,11 @@ const perf_hooks_1 = require("perf_hooks");
|
|
|
10
10
|
const file_hasher_1 = require("../../hasher/file-hasher");
|
|
11
11
|
const native_1 = require("../../native");
|
|
12
12
|
const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
|
|
13
|
-
const fileutils_1 = require("../../utils/fileutils");
|
|
14
13
|
const versions_1 = require("../../utils/versions");
|
|
15
14
|
const workspace_context_1 = require("../../utils/workspace-context");
|
|
16
15
|
const workspace_root_1 = require("../../utils/workspace-root");
|
|
17
16
|
const cache_1 = require("../cache");
|
|
17
|
+
const is_nx_version_mismatch_1 = require("../is-nx-version-mismatch");
|
|
18
18
|
const socket_utils_1 = require("../socket-utils");
|
|
19
19
|
const file_watcher_sockets_1 = require("./file-watching/file-watcher-sockets");
|
|
20
20
|
const project_graph_listener_sockets_1 = require("./project-graph-listener-sockets");
|
|
@@ -265,7 +265,7 @@ function registerProcessTerminationListeners() {
|
|
|
265
265
|
}
|
|
266
266
|
let existingLockHash;
|
|
267
267
|
function daemonIsOutdated() {
|
|
268
|
-
if (
|
|
268
|
+
if ((0, is_nx_version_mismatch_1.isNxVersionMismatch)()) {
|
|
269
269
|
return 'NX_VERSION_CHANGED';
|
|
270
270
|
}
|
|
271
271
|
else if (lockFileHashChanged()) {
|
|
@@ -273,20 +273,6 @@ function daemonIsOutdated() {
|
|
|
273
273
|
}
|
|
274
274
|
return null;
|
|
275
275
|
}
|
|
276
|
-
function nxVersionChanged() {
|
|
277
|
-
return versions_1.nxVersion !== getInstalledNxVersion();
|
|
278
|
-
}
|
|
279
|
-
const nxPackageJsonPath = require.resolve('nx/package.json');
|
|
280
|
-
function getInstalledNxVersion() {
|
|
281
|
-
try {
|
|
282
|
-
const { version } = (0, fileutils_1.readJsonFile)(nxPackageJsonPath);
|
|
283
|
-
return version;
|
|
284
|
-
}
|
|
285
|
-
catch (e) {
|
|
286
|
-
// node modules are absent, so we can return null, which would shut down the daemon
|
|
287
|
-
return null;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
276
|
function lockFileHashChanged() {
|
|
291
277
|
const lockHashes = [
|
|
292
278
|
(0, path_1.join)(workspace_root_1.workspaceRoot, 'package-lock.json'),
|
|
@@ -393,9 +379,12 @@ const handleOutputsChanges = async (err, changeEvents) => {
|
|
|
393
379
|
};
|
|
394
380
|
async function startServer() {
|
|
395
381
|
(0, workspace_context_1.setupWorkspaceContext)(workspace_root_1.workspaceRoot);
|
|
382
|
+
const socketPath = (0, socket_utils_1.getFullOsSocketPath)();
|
|
396
383
|
// Persist metadata about the background process so that it can be cleaned up later if needed
|
|
397
384
|
await (0, cache_1.writeDaemonJsonProcessCache)({
|
|
398
385
|
processId: process.pid,
|
|
386
|
+
socketPath,
|
|
387
|
+
nxVersion: versions_1.nxVersion,
|
|
399
388
|
});
|
|
400
389
|
// See notes in socket-command-line-utils.ts on OS differences regarding clean up of existings connections.
|
|
401
390
|
if (!socket_utils_1.isWindows) {
|
|
@@ -412,9 +401,9 @@ async function startServer() {
|
|
|
412
401
|
}, 20).unref();
|
|
413
402
|
return new Promise(async (resolve, reject) => {
|
|
414
403
|
try {
|
|
415
|
-
server.listen(
|
|
404
|
+
server.listen(socketPath, async () => {
|
|
416
405
|
try {
|
|
417
|
-
logger_1.serverLogger.log(`Started listening on: ${
|
|
406
|
+
logger_1.serverLogger.log(`Started listening on: ${socketPath}`);
|
|
418
407
|
// this triggers the storage of the lock file hash
|
|
419
408
|
daemonIsOutdated();
|
|
420
409
|
if (!(0, shutdown_utils_1.getWatcherInstance)()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmp-dir.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/tmp-dir.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gCAAgC,QAG5C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAGlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAK5B,CAAC;AAEJ,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,UAI7C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,QAElD;AAED,wBAAgB,gBAAgB,YAO/B;
|
|
1
|
+
{"version":3,"file":"tmp-dir.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/tmp-dir.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gCAAgC,QAG5C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAGlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAK5B,CAAC;AAEJ,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,UAI7C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,QAElD;AAED,wBAAgB,gBAAgB,YAO/B;AAUD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,UAAQ,UAYjD;AAED,wBAAgB,eAAe,SAI9B"}
|
package/src/daemon/tmp-dir.js
CHANGED
|
@@ -43,6 +43,7 @@ function isDaemonDisabled() {
|
|
|
43
43
|
function socketDirName() {
|
|
44
44
|
const hasher = (0, crypto_1.createHash)('sha256');
|
|
45
45
|
hasher.update(workspace_root_1.workspaceRoot.toLowerCase());
|
|
46
|
+
hasher.update(String(process.pid));
|
|
46
47
|
const unique = hasher.digest('hex').substring(0, 20);
|
|
47
48
|
return (0, path_1.join)(tmp_1.tmpdir, unique);
|
|
48
49
|
}
|
|
@@ -59,51 +59,55 @@ function __napi_rs_initialize_modules(__napiInstance) {
|
|
|
59
59
|
__napiInstance.exports['__napi_register__get_transformable_outputs_5']?.()
|
|
60
60
|
__napiInstance.exports['__napi_register__hash_array_6']?.()
|
|
61
61
|
__napiInstance.exports['__napi_register__hash_file_7']?.()
|
|
62
|
-
__napiInstance.exports['
|
|
63
|
-
__napiInstance.exports['
|
|
64
|
-
__napiInstance.exports['
|
|
65
|
-
__napiInstance.exports['
|
|
66
|
-
__napiInstance.exports['
|
|
67
|
-
__napiInstance.exports['
|
|
68
|
-
__napiInstance.exports['
|
|
69
|
-
__napiInstance.exports['
|
|
70
|
-
__napiInstance.exports['
|
|
71
|
-
__napiInstance.exports['
|
|
72
|
-
__napiInstance.exports['
|
|
73
|
-
__napiInstance.exports['
|
|
74
|
-
__napiInstance.exports['
|
|
75
|
-
__napiInstance.exports['
|
|
76
|
-
__napiInstance.exports['
|
|
77
|
-
__napiInstance.exports['
|
|
78
|
-
__napiInstance.exports['
|
|
79
|
-
__napiInstance.exports['
|
|
80
|
-
__napiInstance.exports['
|
|
81
|
-
__napiInstance.exports['
|
|
82
|
-
__napiInstance.exports['
|
|
83
|
-
__napiInstance.exports['
|
|
84
|
-
__napiInstance.exports['
|
|
85
|
-
__napiInstance.exports['
|
|
86
|
-
__napiInstance.exports['
|
|
87
|
-
__napiInstance.exports['
|
|
88
|
-
__napiInstance.exports['
|
|
89
|
-
__napiInstance.exports['
|
|
90
|
-
__napiInstance.exports['
|
|
91
|
-
__napiInstance.exports['
|
|
92
|
-
__napiInstance.exports['
|
|
93
|
-
__napiInstance.exports['
|
|
94
|
-
__napiInstance.exports['
|
|
95
|
-
__napiInstance.exports['
|
|
96
|
-
__napiInstance.exports['
|
|
97
|
-
__napiInstance.exports['
|
|
98
|
-
__napiInstance.exports['
|
|
99
|
-
__napiInstance.exports['
|
|
100
|
-
__napiInstance.exports['
|
|
101
|
-
__napiInstance.exports['
|
|
102
|
-
__napiInstance.exports['
|
|
103
|
-
__napiInstance.exports['
|
|
104
|
-
__napiInstance.exports['
|
|
105
|
-
__napiInstance.exports['
|
|
106
|
-
__napiInstance.exports['
|
|
62
|
+
__napiInstance.exports['__napi_register__SupportedEditor_8']?.()
|
|
63
|
+
__napiInstance.exports['__napi_register__can_install_nx_console_9']?.()
|
|
64
|
+
__napiInstance.exports['__napi_register__can_install_nx_console_for_editor_10']?.()
|
|
65
|
+
__napiInstance.exports['__napi_register__install_nx_console_11']?.()
|
|
66
|
+
__napiInstance.exports['__napi_register__install_nx_console_for_editor_12']?.()
|
|
67
|
+
__napiInstance.exports['__napi_register__is_editor_installed_13']?.()
|
|
68
|
+
__napiInstance.exports['__napi_register__NxConsolePreferences_struct_14']?.()
|
|
69
|
+
__napiInstance.exports['__napi_register__NxConsolePreferences_impl_18']?.()
|
|
70
|
+
__napiInstance.exports['__napi_register__log_debug_19']?.()
|
|
71
|
+
__napiInstance.exports['__napi_register__IS_WASM_20']?.()
|
|
72
|
+
__napiInstance.exports['__napi_register__get_binary_target_21']?.()
|
|
73
|
+
__napiInstance.exports['__napi_register__ImportResult_struct_22']?.()
|
|
74
|
+
__napiInstance.exports['__napi_register__find_imports_23']?.()
|
|
75
|
+
__napiInstance.exports['__napi_register__transfer_project_graph_24']?.()
|
|
76
|
+
__napiInstance.exports['__napi_register__ExternalNode_struct_25']?.()
|
|
77
|
+
__napiInstance.exports['__napi_register__Target_struct_26']?.()
|
|
78
|
+
__napiInstance.exports['__napi_register__Project_struct_27']?.()
|
|
79
|
+
__napiInstance.exports['__napi_register__ProjectGraph_struct_28']?.()
|
|
80
|
+
__napiInstance.exports['__napi_register__HashPlanInspector_struct_29']?.()
|
|
81
|
+
__napiInstance.exports['__napi_register__HashPlanInspector_impl_32']?.()
|
|
82
|
+
__napiInstance.exports['__napi_register__HashPlanner_struct_33']?.()
|
|
83
|
+
__napiInstance.exports['__napi_register__HashPlanner_impl_37']?.()
|
|
84
|
+
__napiInstance.exports['__napi_register__HashDetails_struct_38']?.()
|
|
85
|
+
__napiInstance.exports['__napi_register__HasherOptions_struct_39']?.()
|
|
86
|
+
__napiInstance.exports['__napi_register__TaskHasher_struct_40']?.()
|
|
87
|
+
__napiInstance.exports['__napi_register__TaskHasher_impl_43']?.()
|
|
88
|
+
__napiInstance.exports['__napi_register__Task_struct_44']?.()
|
|
89
|
+
__napiInstance.exports['__napi_register__TaskTarget_struct_45']?.()
|
|
90
|
+
__napiInstance.exports['__napi_register__TaskResult_struct_46']?.()
|
|
91
|
+
__napiInstance.exports['__napi_register__TaskGraph_struct_47']?.()
|
|
92
|
+
__napiInstance.exports['__napi_register__FileData_struct_48']?.()
|
|
93
|
+
__napiInstance.exports['__napi_register__InputsInput_struct_49']?.()
|
|
94
|
+
__napiInstance.exports['__napi_register__FileSetInput_struct_50']?.()
|
|
95
|
+
__napiInstance.exports['__napi_register__RuntimeInput_struct_51']?.()
|
|
96
|
+
__napiInstance.exports['__napi_register__EnvironmentInput_struct_52']?.()
|
|
97
|
+
__napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_53']?.()
|
|
98
|
+
__napiInstance.exports['__napi_register__DepsOutputsInput_struct_54']?.()
|
|
99
|
+
__napiInstance.exports['__napi_register__NxJson_struct_55']?.()
|
|
100
|
+
__napiInstance.exports['__napi_register__is_ai_agent_56']?.()
|
|
101
|
+
__napiInstance.exports['__napi_register__FileLock_struct_57']?.()
|
|
102
|
+
__napiInstance.exports['__napi_register__FileLock_impl_59']?.()
|
|
103
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_struct_60']?.()
|
|
104
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_impl_71']?.()
|
|
105
|
+
__napiInstance.exports['__napi_register__WorkspaceErrors_72']?.()
|
|
106
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_73']?.()
|
|
107
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_74']?.()
|
|
108
|
+
__napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_75']?.()
|
|
109
|
+
__napiInstance.exports['__napi_register__FileMap_struct_76']?.()
|
|
110
|
+
__napiInstance.exports['__napi_register____test_only_transfer_file_map_77']?.()
|
|
107
111
|
}
|
|
108
112
|
export const FileLock = __napiModule.exports.FileLock
|
|
109
113
|
export const HashPlanInspector = __napiModule.exports.HashPlanInspector
|
|
@@ -113,6 +117,7 @@ export const NxConsolePreferences = __napiModule.exports.NxConsolePreferences
|
|
|
113
117
|
export const TaskHasher = __napiModule.exports.TaskHasher
|
|
114
118
|
export const WorkspaceContext = __napiModule.exports.WorkspaceContext
|
|
115
119
|
export const canInstallNxConsole = __napiModule.exports.canInstallNxConsole
|
|
120
|
+
export const canInstallNxConsoleForEditor = __napiModule.exports.canInstallNxConsoleForEditor
|
|
116
121
|
export const copy = __napiModule.exports.copy
|
|
117
122
|
export const expandOutputs = __napiModule.exports.expandOutputs
|
|
118
123
|
export const findImports = __napiModule.exports.findImports
|
|
@@ -122,10 +127,13 @@ export const getTransformableOutputs = __napiModule.exports.getTransformableOutp
|
|
|
122
127
|
export const hashArray = __napiModule.exports.hashArray
|
|
123
128
|
export const hashFile = __napiModule.exports.hashFile
|
|
124
129
|
export const installNxConsole = __napiModule.exports.installNxConsole
|
|
130
|
+
export const installNxConsoleForEditor = __napiModule.exports.installNxConsoleForEditor
|
|
125
131
|
export const IS_WASM = __napiModule.exports.IS_WASM
|
|
126
132
|
export const isAiAgent = __napiModule.exports.isAiAgent
|
|
133
|
+
export const isEditorInstalled = __napiModule.exports.isEditorInstalled
|
|
127
134
|
export const logDebug = __napiModule.exports.logDebug
|
|
128
135
|
export const remove = __napiModule.exports.remove
|
|
136
|
+
export const SupportedEditor = __napiModule.exports.SupportedEditor
|
|
129
137
|
export const testOnlyTransferFileMap = __napiModule.exports.testOnlyTransferFileMap
|
|
130
138
|
export const transferProjectGraph = __napiModule.exports.transferProjectGraph
|
|
131
139
|
export const validateOutputs = __napiModule.exports.validateOutputs
|
|
Binary file
|
|
@@ -49,9 +49,9 @@ export declare class ProjectWithNoNameError extends Error {
|
|
|
49
49
|
}
|
|
50
50
|
export declare function isProjectWithNoNameError(e: unknown): e is ProjectWithNoNameError;
|
|
51
51
|
export declare class ProjectConfigurationsError extends Error {
|
|
52
|
-
readonly errors: Array<MergeNodesError | AggregateCreateNodesError | ProjectsWithNoNameError | MultipleProjectsWithSameNameError>;
|
|
52
|
+
readonly errors: Array<MergeNodesError | AggregateCreateNodesError | ProjectsWithNoNameError | MultipleProjectsWithSameNameError | WorkspaceValidityError>;
|
|
53
53
|
readonly partialProjectConfigurationsResult: ConfigurationResult;
|
|
54
|
-
constructor(errors: Array<MergeNodesError | AggregateCreateNodesError | ProjectsWithNoNameError | MultipleProjectsWithSameNameError>, partialProjectConfigurationsResult: ConfigurationResult);
|
|
54
|
+
constructor(errors: Array<MergeNodesError | AggregateCreateNodesError | ProjectsWithNoNameError | MultipleProjectsWithSameNameError | WorkspaceValidityError>, partialProjectConfigurationsResult: ConfigurationResult);
|
|
55
55
|
}
|
|
56
56
|
export declare function isProjectConfigurationsError(e: unknown): e is ProjectConfigurationsError;
|
|
57
57
|
/**
|
|
@@ -115,6 +115,7 @@ export declare class ProcessDependenciesError extends Error {
|
|
|
115
115
|
export declare class WorkspaceValidityError extends Error {
|
|
116
116
|
message: string;
|
|
117
117
|
constructor(message: string);
|
|
118
|
+
toString(): string;
|
|
118
119
|
}
|
|
119
120
|
export declare function isWorkspaceValidityError(e: unknown): e is WorkspaceValidityError;
|
|
120
121
|
export declare class AggregateProjectGraphError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/project-graph/error-types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,eAAe,GACf,mBAAmB,GACnB,uBAAuB,GACvB,iCAAiC,GACjC,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,qBAAa,2BAA4B,SAAQ,KAAK;;CAMrD;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;IAKxC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,EACtD,mBAAmB,EAAE,YAAY,EACjC,iBAAiB,EAAE,uBAAuB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/project-graph/error-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,11 @@ class ProjectGraphError extends Error {
|
|
|
25
25
|
const messageFragments = ['Failed to process project graph.'];
|
|
26
26
|
const mergeNodesErrors = [];
|
|
27
27
|
const unknownErrors = [];
|
|
28
|
-
|
|
28
|
+
// Lets us throw aggregate errors without special handling,
|
|
29
|
+
// to avoid cases where users fix an error and get hit with another one
|
|
30
|
+
// which was already there but not reported.
|
|
31
|
+
let flat = errors.flatMap((e) => e instanceof AggregateError ? e.errors : e);
|
|
32
|
+
for (const e of flat) {
|
|
29
33
|
if (
|
|
30
34
|
// Known errors that are self-explanatory
|
|
31
35
|
isAggregateCreateNodesError(e) ||
|
|
@@ -311,11 +315,14 @@ function isProcessDependenciesError(e) {
|
|
|
311
315
|
}
|
|
312
316
|
class WorkspaceValidityError extends Error {
|
|
313
317
|
constructor(message) {
|
|
314
|
-
message = `Configuration Error\n${message}`;
|
|
315
318
|
super(message);
|
|
316
319
|
this.message = message;
|
|
320
|
+
this.message = `[Configuration Error]:\n${message}`;
|
|
317
321
|
this.name = this.constructor.name;
|
|
318
322
|
}
|
|
323
|
+
toString() {
|
|
324
|
+
return this.message;
|
|
325
|
+
}
|
|
319
326
|
}
|
|
320
327
|
exports.WorkspaceValidityError = WorkspaceValidityError;
|
|
321
328
|
function isWorkspaceValidityError(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-plugins.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/plugins/get-plugins.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-plugins.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/plugins/get-plugins.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAwBzD,wBAAsB,UAAU,CAC9B,IAAI,SAAgB,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B;AAaD,wBAAsB,qBAAqB,CAAC,IAAI,SAAgB,6BAyB/D;AAED,wBAAgB,cAAc,SAK7B"}
|