nx 22.1.0-canary.20251111-647d751 → 22.1.0-canary.20251114-b3e6b03
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/bin/init-local.d.ts.map +1 -1
- package/bin/init-local.js +40 -2
- package/executors.json +16 -16
- package/generators.json +13 -13
- package/migrations.json +143 -143
- package/package.json +14 -11
- package/presets/npm.json +4 -4
- package/schemas/nx-schema.json +1285 -1285
- package/schemas/project-schema.json +359 -359
- package/schemas/workspace-schema.json +165 -165
- package/src/ai/set-up-ai-agents/schema.json +31 -31
- package/src/command-line/add/add.d.ts.map +1 -1
- package/src/command-line/add/add.js +5 -2
- 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 +3 -1
- package/src/command-line/init/command-object.d.ts.map +1 -1
- package/src/command-line/init/command-object.js +10 -0
- package/src/command-line/init/init-v2.d.ts +1 -1
- package/src/command-line/init/init-v2.d.ts.map +1 -1
- package/src/command-line/init/init-v2.js +29 -1
- package/src/command-line/migrate/migrate.d.ts.map +1 -1
- package/src/command-line/migrate/migrate.js +2 -1
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/styles.css +2 -2
- package/src/daemon/client/client.d.ts +3 -0
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +14 -0
- package/src/daemon/message-types/nx-console.d.ts +18 -0
- package/src/daemon/message-types/nx-console.d.ts.map +1 -0
- package/src/daemon/message-types/nx-console.js +19 -0
- package/src/daemon/server/handle-nx-console.d.ts +4 -0
- package/src/daemon/server/handle-nx-console.d.ts.map +1 -0
- package/src/daemon/server/handle-nx-console.js +54 -0
- package/src/daemon/server/nx-console-operations.d.ts +31 -0
- package/src/daemon/server/nx-console-operations.d.ts.map +1 -0
- package/src/daemon/server/nx-console-operations.js +135 -0
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +12 -0
- package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
- package/src/daemon/server/shutdown-utils.js +3 -0
- package/src/devkit-internals.d.ts +1 -1
- package/src/devkit-internals.d.ts.map +1 -1
- package/src/devkit-internals.js +2 -1
- package/src/executors/noop/schema.json +8 -8
- package/src/executors/run-commands/schema.json +187 -187
- package/src/executors/run-script/schema.json +25 -25
- package/src/native/index.d.ts +37 -34
- package/src/native/native-bindings.js +1 -0
- package/src/native/nx.wasi-browser.js +53 -45
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +38 -38
- package/src/tasks-runner/process-metrics-service.d.ts +2 -2
- package/src/tasks-runner/process-metrics-service.d.ts.map +1 -1
- package/src/tasks-runner/tasks-schedule.d.ts.map +1 -1
- package/src/tasks-runner/tasks-schedule.js +10 -3
- package/src/utils/package-json.d.ts +4 -0
- package/src/utils/package-json.d.ts.map +1 -1
- package/src/utils/package-json.js +45 -11
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
},
|
|
13
|
-
"__unparsed__": {
|
|
14
|
-
"hidden": true,
|
|
15
|
-
"type": "array",
|
|
16
|
-
"items": {
|
|
17
|
-
"type": "string"
|
|
18
|
-
},
|
|
19
|
-
"$default": {
|
|
20
|
-
"$source": "unparsed"
|
|
21
|
-
},
|
|
22
|
-
"x-priority": "internal"
|
|
23
|
-
}
|
|
2
|
+
"version": 2,
|
|
3
|
+
"title": "Run Script",
|
|
4
|
+
"description": "Run any NPM script of a project in the project's root directory.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"cli": "nx",
|
|
7
|
+
"outputCapture": "pipe",
|
|
8
|
+
"properties": {
|
|
9
|
+
"script": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "An npm script name in the `package.json` file of the project (e.g., `build`)."
|
|
24
12
|
},
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
"__unparsed__": {
|
|
14
|
+
"hidden": true,
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"$default": {
|
|
20
|
+
"$source": "unparsed"
|
|
21
|
+
},
|
|
22
|
+
"x-priority": "internal"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"additionalProperties": true,
|
|
26
|
+
"required": ["script"],
|
|
27
|
+
"examplesFile": "../../../docs/run-script-examples.md"
|
|
28
28
|
}
|
package/src/native/index.d.ts
CHANGED
|
@@ -193,13 +193,6 @@ export declare class WorkspaceContext {
|
|
|
193
193
|
getFilesInDirectory(directory: string): Array<string>
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
/** Batch metrics snapshot */
|
|
197
|
-
export interface BatchMetricsSnapshot {
|
|
198
|
-
batchId: string
|
|
199
|
-
taskIds: Array<string>
|
|
200
|
-
processes: Array<ProcessMetrics>
|
|
201
|
-
}
|
|
202
|
-
|
|
203
196
|
export interface CachedResult {
|
|
204
197
|
code: number
|
|
205
198
|
terminalOutput?: string
|
|
@@ -272,6 +265,30 @@ export declare export declare function getFilesForOutputs(directory: string, ent
|
|
|
272
265
|
|
|
273
266
|
export declare export declare function getTransformableOutputs(outputs: Array<string>): Array<string>
|
|
274
267
|
|
|
268
|
+
/**
|
|
269
|
+
* Group information - union of different process group types
|
|
270
|
+
* Use group_type to discriminate which optional fields are present
|
|
271
|
+
*/
|
|
272
|
+
export interface GroupInfo {
|
|
273
|
+
/** Type discriminator: MainCLI, Daemon, Task, or Batch */
|
|
274
|
+
groupType: GroupType
|
|
275
|
+
/** Display name for the group */
|
|
276
|
+
displayName: string
|
|
277
|
+
/** Unique ID for this group */
|
|
278
|
+
id: string
|
|
279
|
+
/** Task IDs in this batch (present for Batch groups) */
|
|
280
|
+
taskIds?: Array<string>
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/** Group type discriminator */
|
|
284
|
+
export declare const enum GroupType {
|
|
285
|
+
MainCLI = 'MainCLI',
|
|
286
|
+
MainCliSubprocesses = 'MainCliSubprocesses',
|
|
287
|
+
Daemon = 'Daemon',
|
|
288
|
+
Task = 'Task',
|
|
289
|
+
Batch = 'Batch'
|
|
290
|
+
}
|
|
291
|
+
|
|
275
292
|
export declare export declare function hashArray(input: Array<string | undefined | null>): string
|
|
276
293
|
|
|
277
294
|
export interface HashDetails {
|
|
@@ -311,10 +328,19 @@ export declare export declare function isEditorInstalled(editor: SupportedEditor
|
|
|
311
328
|
|
|
312
329
|
export declare export declare function logDebug(message: string): void
|
|
313
330
|
|
|
331
|
+
/** Combined metadata for groups and processes */
|
|
332
|
+
export interface Metadata {
|
|
333
|
+
/** Group-level metadata */
|
|
334
|
+
groups: Record<string, GroupInfo>
|
|
335
|
+
/** Process-level metadata (keyed by PID as string for NAPI compatibility) */
|
|
336
|
+
processes: Record<string, ProcessMetadata>
|
|
337
|
+
}
|
|
338
|
+
|
|
314
339
|
/** Metrics update sent every collection cycle */
|
|
315
340
|
export interface MetricsUpdate {
|
|
316
|
-
|
|
317
|
-
|
|
341
|
+
timestamp: number
|
|
342
|
+
processes: Array<ProcessMetrics>
|
|
343
|
+
metadata: Metadata
|
|
318
344
|
}
|
|
319
345
|
|
|
320
346
|
/** Stripped version of the NxJson interface for use in rust */
|
|
@@ -344,6 +370,8 @@ export interface ProcessMetadata {
|
|
|
344
370
|
exePath: string
|
|
345
371
|
cwd: string
|
|
346
372
|
alias?: string
|
|
373
|
+
groupId: string
|
|
374
|
+
isRoot: boolean
|
|
347
375
|
}
|
|
348
376
|
|
|
349
377
|
/** Process metrics (dynamic, changes every collection) */
|
|
@@ -353,22 +381,6 @@ export interface ProcessMetrics {
|
|
|
353
381
|
memory: number
|
|
354
382
|
}
|
|
355
383
|
|
|
356
|
-
/** Organized collection of process metrics with timestamp */
|
|
357
|
-
export interface ProcessMetricsSnapshot {
|
|
358
|
-
timestamp: number
|
|
359
|
-
system: SystemMetrics
|
|
360
|
-
mainCli?: ProcessTreeMetrics
|
|
361
|
-
daemon?: ProcessTreeMetrics
|
|
362
|
-
tasks: Record<string, Array<ProcessMetrics>>
|
|
363
|
-
batches: Record<string, BatchMetricsSnapshot>
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/** Metrics for a process and its subprocesses (used for both CLI and daemon) */
|
|
367
|
-
export interface ProcessTreeMetrics {
|
|
368
|
-
main: ProcessMetrics
|
|
369
|
-
subprocesses: Array<ProcessMetrics>
|
|
370
|
-
}
|
|
371
|
-
|
|
372
384
|
export interface Project {
|
|
373
385
|
root: string
|
|
374
386
|
namedInputs?: Record<string, Array<JsInputs>>
|
|
@@ -410,15 +422,6 @@ export interface SystemInfo {
|
|
|
410
422
|
totalMemory: number
|
|
411
423
|
}
|
|
412
424
|
|
|
413
|
-
/** System metrics (dynamic, changes every collection) */
|
|
414
|
-
export interface SystemMetrics {
|
|
415
|
-
cpu: number
|
|
416
|
-
memory: number
|
|
417
|
-
availableMemory: number
|
|
418
|
-
swapUsed: number
|
|
419
|
-
swapTotal: number
|
|
420
|
-
}
|
|
421
|
-
|
|
422
425
|
export interface Target {
|
|
423
426
|
executor?: string
|
|
424
427
|
inputs?: Array<JsInputs>
|
|
@@ -390,6 +390,7 @@ module.exports.getBinaryTarget = nativeBinding.getBinaryTarget
|
|
|
390
390
|
module.exports.getDefaultMaxCacheSize = nativeBinding.getDefaultMaxCacheSize
|
|
391
391
|
module.exports.getFilesForOutputs = nativeBinding.getFilesForOutputs
|
|
392
392
|
module.exports.getTransformableOutputs = nativeBinding.getTransformableOutputs
|
|
393
|
+
module.exports.GroupType = nativeBinding.GroupType
|
|
393
394
|
module.exports.hashArray = nativeBinding.hashArray
|
|
394
395
|
module.exports.hashFile = nativeBinding.hashFile
|
|
395
396
|
module.exports.installNxConsole = nativeBinding.installNxConsole
|
|
@@ -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
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
"installationSource": {
|
|
15
|
-
"type": "string",
|
|
16
|
-
"description": "Name of Nx Cloud installation invoker (ex. user, add-nx-to-monorepo, create-nx-workspace, nx-upgrade",
|
|
17
|
-
"default": "user"
|
|
18
|
-
},
|
|
19
|
-
"hideFormatLogs": {
|
|
20
|
-
"type": "boolean",
|
|
21
|
-
"description": "Hide formatting logs",
|
|
22
|
-
"x-priority": "internal"
|
|
23
|
-
},
|
|
24
|
-
"generateToken": {
|
|
25
|
-
"type": "boolean",
|
|
26
|
-
"description": "Explicitly asks for a token to be created, do not override existing tokens from Nx Cloud"
|
|
27
|
-
},
|
|
28
|
-
"github": {
|
|
29
|
-
"type": "boolean",
|
|
30
|
-
"description": "If the user will be using GitHub as their git hosting provider",
|
|
31
|
-
"default": false
|
|
32
|
-
},
|
|
33
|
-
"directory": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"description": "The directory where the workspace is located",
|
|
36
|
-
"x-priority": "internal"
|
|
37
|
-
}
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"id": "NxCloudInit",
|
|
4
|
+
"title": "Add Nx Cloud Configuration to the workspace",
|
|
5
|
+
"description": "Connect a workspace to Nx Cloud.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"cli": "nx",
|
|
8
|
+
"properties": {
|
|
9
|
+
"analytics": {
|
|
10
|
+
"type": "boolean",
|
|
11
|
+
"description": "Anonymously store hashed machine ID for task runs",
|
|
12
|
+
"default": false
|
|
38
13
|
},
|
|
39
|
-
"
|
|
40
|
-
|
|
14
|
+
"installationSource": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Name of Nx Cloud installation invoker (ex. user, add-nx-to-monorepo, create-nx-workspace, nx-upgrade",
|
|
17
|
+
"default": "user"
|
|
18
|
+
},
|
|
19
|
+
"hideFormatLogs": {
|
|
20
|
+
"type": "boolean",
|
|
21
|
+
"description": "Hide formatting logs",
|
|
22
|
+
"x-priority": "internal"
|
|
23
|
+
},
|
|
24
|
+
"generateToken": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"description": "Explicitly asks for a token to be created, do not override existing tokens from Nx Cloud"
|
|
27
|
+
},
|
|
28
|
+
"github": {
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"description": "If the user will be using GitHub as their git hosting provider",
|
|
31
|
+
"default": false
|
|
32
|
+
},
|
|
33
|
+
"directory": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The directory where the workspace is located",
|
|
36
|
+
"x-priority": "internal"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": false,
|
|
40
|
+
"required": []
|
|
41
41
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProcessMetadata, ProcessMetrics,
|
|
2
|
-
export type { ProcessMetadata, ProcessMetrics,
|
|
1
|
+
import { ProcessMetadata, ProcessMetrics, MetricsUpdate, SystemInfo, Metadata, GroupInfo, GroupType } from '../native';
|
|
2
|
+
export type { ProcessMetadata, ProcessMetrics, MetricsUpdate, SystemInfo, Metadata, GroupInfo, GroupType, };
|
|
3
3
|
export type MetricsCallback = (event: MetricsUpdate) => void;
|
|
4
4
|
/**
|
|
5
5
|
* Simplified service providing subscription-based access to Rust metrics collector
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-metrics-service.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/process-metrics-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"process-metrics-service.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/process-metrics-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,GACV,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE7D;;;;GAIG;AACH,cAAM,qBAAqB;IACzB,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,iBAAiB,CAAS;;IAmBlC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA+B1C;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQtD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQpE;;OAEG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IASlC;;OAEG;IACH,QAAQ,IAAI,IAAI;CAOjB;AAOD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,CAKhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-schedule.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/tasks-schedule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB1B,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,mBAAmB,CAA8B;gBAGtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,yBAAyB;IAGxC,IAAI;IAkBJ,iBAAiB;IAMvB,QAAQ;IASR,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAW1B,oBAAoB;;;;IAOpB,QAAQ;IAQR,SAAS,IAAI,KAAK;IAMlB,kBAAkB,IAAI,IAAI,EAAE;YAUrB,aAAa;YAWb,YAAY;YAkDZ,eAAe;
|
|
1
|
+
{"version":3,"file":"tasks-schedule.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/tasks-schedule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB1B,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,mBAAmB,CAA8B;gBAGtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,yBAAyB;IAGxC,IAAI;IAkBJ,iBAAiB;IAMvB,QAAQ;IASR,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAW1B,oBAAoB;;;;IAOpB,QAAQ;IAQR,SAAS,IAAI,KAAK;IAMlB,kBAAkB,IAAI,IAAI,EAAE;YAUrB,aAAa;YAWb,YAAY;YAkDZ,eAAe;IAkB7B,OAAO,CAAC,aAAa;YAUP,qBAAqB;IA+DnC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,cAAc;IAiCf,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGzD"}
|
|
@@ -128,7 +128,7 @@ class TasksSchedule {
|
|
|
128
128
|
for (const root of this.notScheduledTaskGraph.roots) {
|
|
129
129
|
const rootTask = this.notScheduledTaskGraph.tasks[root];
|
|
130
130
|
const executorName = (0, utils_1.getExecutorNameForTask)(rootTask, this.projectGraph);
|
|
131
|
-
await this.processTaskForBatches(batchMap, rootTask, executorName, true);
|
|
131
|
+
await this.processTaskForBatches(batchMap, rootTask, executorName, true, new Set());
|
|
132
132
|
}
|
|
133
133
|
for (const [executorName, taskGraph] of Object.entries(batchMap)) {
|
|
134
134
|
this.scheduleBatch({ executorName, taskGraph });
|
|
@@ -139,7 +139,11 @@ class TasksSchedule {
|
|
|
139
139
|
this.notScheduledTaskGraph = (0, utils_1.removeTasksFromTaskGraph)(this.notScheduledTaskGraph, Object.keys(taskGraph.tasks));
|
|
140
140
|
this.scheduledBatches.push({ executorName, taskGraph });
|
|
141
141
|
}
|
|
142
|
-
async processTaskForBatches(batches, task, rootExecutorName, isRoot) {
|
|
142
|
+
async processTaskForBatches(batches, task, rootExecutorName, isRoot, visitedInBatch) {
|
|
143
|
+
// Skip if already processed in this batch - prevents redundant traversals
|
|
144
|
+
if (visitedInBatch.has(task.id)) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
143
147
|
if (!this.canBatchTaskBeScheduled(task, batches[rootExecutorName])) {
|
|
144
148
|
return;
|
|
145
149
|
}
|
|
@@ -151,6 +155,9 @@ class TasksSchedule {
|
|
|
151
155
|
if (!batchImplementationFactory) {
|
|
152
156
|
return;
|
|
153
157
|
}
|
|
158
|
+
// Mark as visited only after all checks pass and we're actually adding to batch
|
|
159
|
+
// This ensures tasks can be added if they pass checks from any path
|
|
160
|
+
visitedInBatch.add(task.id);
|
|
154
161
|
const batch = (batches[rootExecutorName] =
|
|
155
162
|
batches[rootExecutorName] ??
|
|
156
163
|
{
|
|
@@ -169,7 +176,7 @@ class TasksSchedule {
|
|
|
169
176
|
}
|
|
170
177
|
for (const dep of this.reverseTaskDeps[task.id]) {
|
|
171
178
|
const depTask = this.taskGraph.tasks[dep];
|
|
172
|
-
await this.processTaskForBatches(batches, depTask, rootExecutorName, false);
|
|
179
|
+
await this.processTaskForBatches(batches, depTask, rootExecutorName, false, visitedInBatch);
|
|
173
180
|
}
|
|
174
181
|
}
|
|
175
182
|
canBatchTaskBeScheduled(task, batchTaskGraph) {
|
|
@@ -110,6 +110,10 @@ export declare function installPackageToTmp(pkg: string, requiredVersion: string
|
|
|
110
110
|
tempDir: string;
|
|
111
111
|
cleanup: () => void;
|
|
112
112
|
};
|
|
113
|
+
export declare function installPackageToTmpAsync(pkg: string, requiredVersion: string): Promise<{
|
|
114
|
+
tempDir: string;
|
|
115
|
+
cleanup: () => void;
|
|
116
|
+
}>;
|
|
113
117
|
/**
|
|
114
118
|
* Get the resolved version of a dependency from package.json.
|
|
115
119
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/package-json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/package-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,13 @@ exports.readTargetsFromPackageJson = readTargetsFromPackageJson;
|
|
|
9
9
|
exports.readModulePackageJsonWithoutFallbacks = readModulePackageJsonWithoutFallbacks;
|
|
10
10
|
exports.readModulePackageJson = readModulePackageJson;
|
|
11
11
|
exports.installPackageToTmp = installPackageToTmp;
|
|
12
|
+
exports.installPackageToTmpAsync = installPackageToTmpAsync;
|
|
12
13
|
exports.getDependencyVersionFromPackageJson = getDependencyVersionFromPackageJson;
|
|
13
14
|
const child_process_1 = require("child_process");
|
|
15
|
+
const util_1 = require("util");
|
|
14
16
|
const fs_1 = require("fs");
|
|
15
17
|
const path_1 = require("path");
|
|
18
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
16
19
|
const tmp_1 = require("tmp");
|
|
17
20
|
const json_1 = require("../generators/utils/json");
|
|
18
21
|
const project_configuration_utils_1 = require("../project-graph/utils/project-configuration-utils");
|
|
@@ -199,7 +202,11 @@ function readModulePackageJson(moduleSpecifier, requirePaths = (0, installation_
|
|
|
199
202
|
path: packageJsonPath,
|
|
200
203
|
};
|
|
201
204
|
}
|
|
202
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Prepares all necessary information for installing a package to a temporary directory.
|
|
207
|
+
* This is used by both sync and async installation functions.
|
|
208
|
+
*/
|
|
209
|
+
function preparePackageInstallation(pkg, requiredVersion) {
|
|
203
210
|
const { dir: tempDir, cleanup } = (0, package_manager_1.createTempNpmDirectory)?.() ?? {
|
|
204
211
|
dir: (0, tmp_1.dirSync)().name,
|
|
205
212
|
cleanup: () => { },
|
|
@@ -209,29 +216,56 @@ function installPackageToTmp(pkg, requiredVersion) {
|
|
|
209
216
|
const isVerbose = process.env.NX_VERBOSE_LOGGING === 'true';
|
|
210
217
|
generatePackageManagerFiles(tempDir, packageManager);
|
|
211
218
|
const preInstallCommand = (0, package_manager_1.getPackageManagerCommand)(packageManager).preInstall;
|
|
212
|
-
if (preInstallCommand) {
|
|
213
|
-
// ensure package.json and repo in tmp folder is set to a proper package manager state
|
|
214
|
-
(0, child_process_1.execSync)(preInstallCommand, {
|
|
215
|
-
cwd: tempDir,
|
|
216
|
-
stdio: isVerbose ? 'inherit' : 'ignore',
|
|
217
|
-
windowsHide: false,
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
219
|
const pmCommands = (0, package_manager_1.getPackageManagerCommand)(packageManager);
|
|
221
220
|
let addCommand = pmCommands.addDev;
|
|
222
221
|
if (packageManager === 'pnpm') {
|
|
223
222
|
addCommand = 'pnpm add -D'; // we need to ensure that we are not using workspace command
|
|
224
223
|
}
|
|
225
|
-
|
|
224
|
+
const installCommand = `${addCommand} ${pkg}@${requiredVersion} ${pmCommands.ignoreScriptsFlag ?? ''}`;
|
|
225
|
+
const execOptions = {
|
|
226
226
|
cwd: tempDir,
|
|
227
227
|
stdio: isVerbose ? 'inherit' : 'ignore',
|
|
228
228
|
windowsHide: false,
|
|
229
|
-
}
|
|
229
|
+
};
|
|
230
230
|
return {
|
|
231
231
|
tempDir,
|
|
232
232
|
cleanup,
|
|
233
|
+
preInstallCommand,
|
|
234
|
+
installCommand,
|
|
235
|
+
execOptions,
|
|
233
236
|
};
|
|
234
237
|
}
|
|
238
|
+
function installPackageToTmp(pkg, requiredVersion) {
|
|
239
|
+
const { tempDir, cleanup, preInstallCommand, installCommand, execOptions } = preparePackageInstallation(pkg, requiredVersion);
|
|
240
|
+
if (preInstallCommand) {
|
|
241
|
+
// ensure package.json and repo in tmp folder is set to a proper package manager state
|
|
242
|
+
(0, child_process_1.execSync)(preInstallCommand, execOptions);
|
|
243
|
+
}
|
|
244
|
+
(0, child_process_1.execSync)(installCommand, execOptions);
|
|
245
|
+
return {
|
|
246
|
+
tempDir,
|
|
247
|
+
cleanup,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
async function installPackageToTmpAsync(pkg, requiredVersion) {
|
|
251
|
+
const { tempDir, cleanup, preInstallCommand, installCommand, execOptions } = preparePackageInstallation(pkg, requiredVersion);
|
|
252
|
+
try {
|
|
253
|
+
if (preInstallCommand) {
|
|
254
|
+
// ensure package.json and repo in tmp folder is set to a proper package manager state
|
|
255
|
+
await execAsync(preInstallCommand, execOptions);
|
|
256
|
+
}
|
|
257
|
+
await execAsync(installCommand, execOptions);
|
|
258
|
+
return {
|
|
259
|
+
tempDir,
|
|
260
|
+
cleanup,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
// Clean up on error
|
|
265
|
+
cleanup();
|
|
266
|
+
throw error;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
235
269
|
function getDependencyVersionFromPackageJson(treeOrPackageName, packageNameOrRoot, packageJsonPathOrObjectOrRoot, dependencyLookup) {
|
|
236
270
|
if (typeof treeOrPackageName !== 'string') {
|
|
237
271
|
return getDependencyVersionFromPackageJsonFromTree(treeOrPackageName, packageNameOrRoot, packageJsonPathOrObjectOrRoot, dependencyLookup);
|