nx 22.0.1 → 22.1.0-canary.20251023-59cf495

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.
@@ -1,396 +1,396 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://nx.dev/reference/project-configuration",
4
- "title": "JSON schema for Nx projects",
5
- "type": "object",
6
- "properties": {
7
- "name": {
8
- "type": "string",
9
- "description": "Project's name. Optional if specified in workspace.json"
10
- },
11
- "root": {
12
- "type": "string",
13
- "description": "Project's location relative to the root of the workspace"
14
- },
15
- "sourceRoot": {
16
- "type": "string",
17
- "description": "The location of project's sources relative to the root of the workspace"
18
- },
19
- "projectType": {
20
- "type": "string",
21
- "description": "Type of project supported",
22
- "enum": ["library", "application"]
23
- },
24
- "generators": {
25
- "type": "object",
26
- "description": "List of default values used by generators"
27
- },
28
- "namedInputs": {
29
- "type": "object",
30
- "description": "Named inputs used by inputs defined in targets",
31
- "additionalProperties": {
32
- "$ref": "#/definitions/inputs"
33
- }
34
- },
35
- "targets": {
36
- "type": "object",
37
- "description": "Configures all the targets which define what tasks you can run against the project",
38
- "additionalProperties": {
39
- "type": "object",
40
- "properties": {
41
- "executor": {
42
- "description": "The function that Nx will invoke when you run this target",
43
- "type": "string"
44
- },
45
- "options": {
46
- "type": "object"
47
- },
48
- "outputs": {
49
- "type": "array",
50
- "items": {
51
- "type": "string"
52
- }
53
- },
54
- "defaultConfiguration": {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "https://nx.dev/reference/project-configuration",
4
+ "title": "JSON schema for Nx projects",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
55
8
  "type": "string",
56
- "description": "The name of a configuration to use as the default if a configuration is not provided"
57
- },
58
- "configurations": {
9
+ "description": "Project's name. Optional if specified in workspace.json"
10
+ },
11
+ "root": {
12
+ "type": "string",
13
+ "description": "Project's location relative to the root of the workspace"
14
+ },
15
+ "sourceRoot": {
16
+ "type": "string",
17
+ "description": "The location of project's sources relative to the root of the workspace"
18
+ },
19
+ "projectType": {
20
+ "type": "string",
21
+ "description": "Type of project supported",
22
+ "enum": ["library", "application"]
23
+ },
24
+ "generators": {
25
+ "type": "object",
26
+ "description": "List of default values used by generators"
27
+ },
28
+ "namedInputs": {
59
29
  "type": "object",
60
- "description": "provides extra sets of values that will be merged into the options map",
30
+ "description": "Named inputs used by inputs defined in targets",
61
31
  "additionalProperties": {
62
- "type": "object"
32
+ "$ref": "#/definitions/inputs"
63
33
  }
64
- },
65
- "inputs": {
66
- "$ref": "#/definitions/inputs"
67
- },
68
- "dependsOn": {
69
- "type": "array",
70
- "items": {
71
- "oneOf": [
72
- {
73
- "type": "string"
74
- },
75
- {
76
- "type": "object",
77
- "properties": {
78
- "projects": {
79
- "oneOf": [
80
- {
81
- "type": "string",
82
- "description": "A project name"
83
- },
84
- {
85
- "type": "array",
86
- "description": "An array of project names",
87
- "items": {
34
+ },
35
+ "targets": {
36
+ "type": "object",
37
+ "description": "Configures all the targets which define what tasks you can run against the project",
38
+ "additionalProperties": {
39
+ "type": "object",
40
+ "properties": {
41
+ "executor": {
42
+ "description": "The function that Nx will invoke when you run this target",
43
+ "type": "string"
44
+ },
45
+ "options": {
46
+ "type": "object"
47
+ },
48
+ "outputs": {
49
+ "type": "array",
50
+ "items": {
88
51
  "type": "string"
89
- }
90
52
  }
91
- ]
92
53
  },
93
- "dependencies": {
94
- "type": "boolean"
54
+ "defaultConfiguration": {
55
+ "type": "string",
56
+ "description": "The name of a configuration to use as the default if a configuration is not provided"
95
57
  },
96
- "target": {
97
- "type": "string",
98
- "description": "The name of the target."
58
+ "configurations": {
59
+ "type": "object",
60
+ "description": "provides extra sets of values that will be merged into the options map",
61
+ "additionalProperties": {
62
+ "type": "object"
63
+ }
99
64
  },
100
- "params": {
101
- "type": "string",
102
- "description": "Configuration for params handling.",
103
- "enum": ["ignore", "forward"],
104
- "default": "ignore"
105
- }
106
- },
107
- "oneOf": [
108
- {
109
- "required": ["projects", "target"]
65
+ "inputs": {
66
+ "$ref": "#/definitions/inputs"
110
67
  },
111
- {
112
- "required": ["dependencies", "target"]
68
+ "dependsOn": {
69
+ "type": "array",
70
+ "items": {
71
+ "oneOf": [
72
+ {
73
+ "type": "string"
74
+ },
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "projects": {
79
+ "oneOf": [
80
+ {
81
+ "type": "string",
82
+ "description": "A project name"
83
+ },
84
+ {
85
+ "type": "array",
86
+ "description": "An array of project names",
87
+ "items": {
88
+ "type": "string"
89
+ }
90
+ }
91
+ ]
92
+ },
93
+ "dependencies": {
94
+ "type": "boolean"
95
+ },
96
+ "target": {
97
+ "type": "string",
98
+ "description": "The name of the target."
99
+ },
100
+ "params": {
101
+ "type": "string",
102
+ "description": "Configuration for params handling.",
103
+ "enum": ["ignore", "forward"],
104
+ "default": "ignore"
105
+ }
106
+ },
107
+ "oneOf": [
108
+ {
109
+ "required": ["projects", "target"]
110
+ },
111
+ {
112
+ "required": ["dependencies", "target"]
113
+ },
114
+ {
115
+ "required": ["target"],
116
+ "not": {
117
+ "anyOf": [
118
+ {
119
+ "required": ["projects"]
120
+ },
121
+ {
122
+ "required": ["dependencies"]
123
+ }
124
+ ]
125
+ }
126
+ }
127
+ ],
128
+ "additionalProperties": false
129
+ }
130
+ ]
131
+ }
113
132
  },
114
- {
115
- "required": ["target"],
116
- "not": {
117
- "anyOf": [
118
- {
119
- "required": ["projects"]
120
- },
121
- {
122
- "required": ["dependencies"]
123
- }
124
- ]
125
- }
133
+ "command": {
134
+ "type": "string",
135
+ "description": "A shorthand for using the nx:run-commands executor"
136
+ },
137
+ "cache": {
138
+ "type": "boolean",
139
+ "description": "Specifies if the given target should be cacheable"
140
+ },
141
+ "continuous": {
142
+ "type": "boolean",
143
+ "default": false,
144
+ "description": "Whether this target runs continuously until stopped"
145
+ },
146
+ "parallelism": {
147
+ "type": "boolean",
148
+ "default": true,
149
+ "description": "Whether this target can be run in parallel with other tasks"
150
+ },
151
+ "metadata": {
152
+ "type": "object",
153
+ "description": "Metadata about the target",
154
+ "properties": {
155
+ "description": {
156
+ "type": "string",
157
+ "description": "A description of the target"
158
+ }
159
+ },
160
+ "additionalProperties": true
161
+ },
162
+ "syncGenerators": {
163
+ "type": "array",
164
+ "items": {
165
+ "type": "string"
166
+ },
167
+ "description": "List of generators to run before the target to ensure the workspace is up to date"
126
168
  }
127
- ],
128
- "additionalProperties": false
129
169
  }
130
- ]
131
170
  }
132
- },
133
- "command": {
134
- "type": "string",
135
- "description": "A shorthand for using the nx:run-commands executor"
136
- },
137
- "cache": {
138
- "type": "boolean",
139
- "description": "Specifies if the given target should be cacheable"
140
- },
141
- "continuous": {
142
- "type": "boolean",
143
- "default": false,
144
- "description": "Whether this target runs continuously until stopped"
145
- },
146
- "parallelism": {
147
- "type": "boolean",
148
- "default": true,
149
- "description": "Whether this target can be run in parallel with other tasks"
150
- },
151
- "metadata": {
152
- "type": "object",
153
- "description": "Metadata about the target",
154
- "properties": {
155
- "description": {
156
- "type": "string",
157
- "description": "A description of the target"
158
- }
159
- },
160
- "additionalProperties": true
161
- },
162
- "syncGenerators": {
171
+ },
172
+ "tags": {
163
173
  "type": "array",
164
174
  "items": {
165
- "type": "string"
166
- },
167
- "description": "List of generators to run before the target to ensure the workspace is up to date"
168
- }
169
- }
170
- }
171
- },
172
- "tags": {
173
- "type": "array",
174
- "items": {
175
- "type": "string"
176
- }
177
- },
178
- "implicitDependencies": {
179
- "type": "array",
180
- "items": {
181
- "type": "string"
182
- }
183
- },
184
- "metadata": {
185
- "type": "object",
186
- "description": "Metadata about the project.",
187
- "properties": {
188
- "description": {
189
- "type": "string",
190
- "description": "A description of the project."
191
- }
192
- },
193
- "additionalProperties": true
194
- },
195
- "release": {
196
- "type": "object",
197
- "description": "Configuration for the nx release commands.",
198
- "properties": {
199
- "version": {
200
- "$ref": "#/definitions/NxReleaseVersionConfiguration"
201
- }
202
- }
203
- }
204
- },
205
- "definitions": {
206
- "inputs": {
207
- "type": "array",
208
- "items": {
209
- "oneOf": [
210
- {
211
- "type": "string"
212
- },
213
- {
175
+ "type": "string"
176
+ }
177
+ },
178
+ "implicitDependencies": {
179
+ "type": "array",
180
+ "items": {
181
+ "type": "string"
182
+ }
183
+ },
184
+ "metadata": {
214
185
  "type": "object",
186
+ "description": "Metadata about the project.",
215
187
  "properties": {
216
- "fileset": {
217
- "type": "string",
218
- "description": "A glob used to determine a fileset."
219
- }
188
+ "description": {
189
+ "type": "string",
190
+ "description": "A description of the project."
191
+ }
220
192
  },
221
- "additionalProperties": false
222
- },
223
- {
193
+ "additionalProperties": true
194
+ },
195
+ "release": {
224
196
  "type": "object",
197
+ "description": "Configuration for the nx release commands.",
225
198
  "properties": {
226
- "projects": {
199
+ "version": {
200
+ "$ref": "#/definitions/NxReleaseVersionConfiguration"
201
+ }
202
+ }
203
+ }
204
+ },
205
+ "definitions": {
206
+ "inputs": {
207
+ "type": "array",
208
+ "items": {
227
209
  "oneOf": [
228
- {
229
- "type": "string",
230
- "description": "The project that the targets belong to."
231
- },
232
- {
233
- "type": "array",
234
- "description": "The projects that the targets belong to.",
235
- "items": {
236
- "type": "string"
237
- }
238
- }
239
- ]
240
- },
241
- "dependencies": {
242
- "type": "boolean",
243
- "description": "Include files belonging to the input for all the project dependencies of this target."
244
- },
245
- "input": {
246
- "type": "string",
247
- "description": "The name of the input."
248
- }
249
- },
250
- "oneOf": [
251
- {
252
- "required": ["projects", "input"]
253
- },
254
- {
255
- "required": ["dependencies", "input"]
256
- },
257
- {
258
- "required": ["input"],
259
- "not": {
260
- "anyOf": [
261
210
  {
262
- "required": ["projects"]
211
+ "type": "string"
212
+ },
213
+ {
214
+ "type": "object",
215
+ "properties": {
216
+ "fileset": {
217
+ "type": "string",
218
+ "description": "A glob used to determine a fileset."
219
+ }
220
+ },
221
+ "additionalProperties": false
222
+ },
223
+ {
224
+ "type": "object",
225
+ "properties": {
226
+ "projects": {
227
+ "oneOf": [
228
+ {
229
+ "type": "string",
230
+ "description": "The project that the targets belong to."
231
+ },
232
+ {
233
+ "type": "array",
234
+ "description": "The projects that the targets belong to.",
235
+ "items": {
236
+ "type": "string"
237
+ }
238
+ }
239
+ ]
240
+ },
241
+ "dependencies": {
242
+ "type": "boolean",
243
+ "description": "Include files belonging to the input for all the project dependencies of this target."
244
+ },
245
+ "input": {
246
+ "type": "string",
247
+ "description": "The name of the input."
248
+ }
249
+ },
250
+ "oneOf": [
251
+ {
252
+ "required": ["projects", "input"]
253
+ },
254
+ {
255
+ "required": ["dependencies", "input"]
256
+ },
257
+ {
258
+ "required": ["input"],
259
+ "not": {
260
+ "anyOf": [
261
+ {
262
+ "required": ["projects"]
263
+ },
264
+ {
265
+ "required": ["dependencies"]
266
+ }
267
+ ]
268
+ }
269
+ }
270
+ ],
271
+ "additionalProperties": false
272
+ },
273
+ {
274
+ "type": "object",
275
+ "properties": {
276
+ "runtime": {
277
+ "type": "string",
278
+ "description": "The command that will be executed and included into the hash."
279
+ }
280
+ },
281
+ "additionalProperties": false
263
282
  },
264
283
  {
265
- "required": ["dependencies"]
284
+ "type": "object",
285
+ "properties": {
286
+ "env": {
287
+ "type": "string",
288
+ "description": "The env var that will be included into the hash."
289
+ }
290
+ },
291
+ "additionalProperties": false
292
+ },
293
+ {
294
+ "type": "object",
295
+ "properties": {
296
+ "externalDependencies": {
297
+ "type": "array",
298
+ "items": {
299
+ "type": "string"
300
+ },
301
+ "description": "The list of external dependencies that our target depends on for `nx:run-commands` and community plugins."
302
+ }
303
+ },
304
+ "additionalProperties": false
305
+ },
306
+ {
307
+ "type": "object",
308
+ "properties": {
309
+ "dependentTasksOutputFiles": {
310
+ "type": "string",
311
+ "description": "The glob list of output files that project depends on."
312
+ },
313
+ "transitive": {
314
+ "type": "boolean",
315
+ "description": "Whether the check for outputs should be recursive or stop at the first level of dependencies."
316
+ }
317
+ },
318
+ "required": ["dependentTasksOutputFiles"],
319
+ "additionalProperties": false
266
320
  }
267
- ]
268
- }
269
- }
270
- ],
271
- "additionalProperties": false
272
- },
273
- {
274
- "type": "object",
275
- "properties": {
276
- "runtime": {
277
- "type": "string",
278
- "description": "The command that will be executed and included into the hash."
279
- }
280
- },
281
- "additionalProperties": false
282
- },
283
- {
284
- "type": "object",
285
- "properties": {
286
- "env": {
287
- "type": "string",
288
- "description": "The env var that will be included into the hash."
289
- }
290
- },
291
- "additionalProperties": false
292
- },
293
- {
321
+ ]
322
+ }
323
+ },
324
+ "NxReleaseVersionConfiguration": {
294
325
  "type": "object",
326
+ "description": "Project-specific configuration for the versioning phase of releases. This is a subset of the version configuration options available at the workspace level.",
327
+ "additionalProperties": false,
295
328
  "properties": {
296
- "externalDependencies": {
297
- "type": "array",
298
- "items": {
299
- "type": "string"
329
+ "manifestRootsToUpdate": {
330
+ "type": "array",
331
+ "items": {
332
+ "oneOf": [
333
+ {
334
+ "type": "string",
335
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
336
+ },
337
+ {
338
+ "type": "object",
339
+ "properties": {
340
+ "path": {
341
+ "type": "string",
342
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
343
+ },
344
+ "preserveLocalDependencyProtocols": {
345
+ "type": "boolean",
346
+ "description": "Whether to preserve local dependency references using protocols like 'workspace:' or 'file:'. Set this to false for dist files that need to be published if not using a package manager that swaps references at publish time like pnpm or bun.",
347
+ "default": true
348
+ }
349
+ },
350
+ "required": ["path"],
351
+ "additionalProperties": false
352
+ }
353
+ ]
354
+ },
355
+ "description": "A list of directories containing manifest files (such as package.json) to apply updates to when versioning. By default, only the project root will be used, but you could customize this to only version a manifest in a dist directory, or even version multiple manifests in different directories, such as both source and dist."
300
356
  },
301
- "description": "The list of external dependencies that our target depends on for `nx:run-commands` and community plugins."
302
- }
303
- },
304
- "additionalProperties": false
305
- },
306
- {
307
- "type": "object",
308
- "properties": {
309
- "dependentTasksOutputFiles": {
310
- "type": "string",
311
- "description": "The glob list of output files that project depends on."
312
- },
313
- "transitive": {
314
- "type": "boolean",
315
- "description": "Whether the check for outputs should be recursive or stop at the first level of dependencies."
316
- }
317
- },
318
- "required": ["dependentTasksOutputFiles"],
319
- "additionalProperties": false
320
- }
321
- ]
322
- }
323
- },
324
- "NxReleaseVersionConfiguration": {
325
- "type": "object",
326
- "description": "Project-specific configuration for the versioning phase of releases. This is a subset of the version configuration options available at the workspace level.",
327
- "additionalProperties": false,
328
- "properties": {
329
- "manifestRootsToUpdate": {
330
- "type": "array",
331
- "items": {
332
- "oneOf": [
333
- {
334
- "type": "string",
335
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
336
- },
337
- {
338
- "type": "object",
339
- "properties": {
340
- "path": {
357
+ "currentVersionResolver": {
341
358
  "type": "string",
342
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
343
- },
344
- "preserveLocalDependencyProtocols": {
359
+ "enum": ["registry", "disk", "git-tag", "none"],
360
+ "description": "The resolver to use for determining the current version of a project during versioning. This is needed for versioning approaches which involve relatively modifying a current version to arrive at a new version, such as semver bumps like 'patch', 'minor' etc. Using 'none' explicitly declares that the current version is not needed to compute the new version, and should only be used with appropriate version actions implementations that support it."
361
+ },
362
+ "currentVersionResolverMetadata": {
363
+ "type": "object",
364
+ "additionalProperties": true,
365
+ "description": "Metadata to provide to the configured currentVersionResolver to help it in determining the current version. What to pass here is specific to each resolver."
366
+ },
367
+ "fallbackCurrentVersionResolver": {
368
+ "type": "string",
369
+ "enum": ["disk"],
370
+ "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
371
+ },
372
+ "versionPrefix": {
373
+ "type": "string",
374
+ "enum": ["auto", "", "~", "^", "="],
375
+ "default": "auto",
376
+ "description": "The prefix to use when versioning dependencies. This can be one of the following: auto, '', '~', '^', '=', where auto means the existing prefix will be preserved."
377
+ },
378
+ "preserveLocalDependencyProtocols": {
345
379
  "type": "boolean",
346
- "description": "Whether to preserve local dependency references using protocols like 'workspace:' or 'file:'. Set this to false for dist files that need to be published if not using a package manager that swaps references at publish time like pnpm or bun.",
380
+ "description": "Whether to preserve local dependency protocols (e.g. file references, or the `workspace:` protocol in package.json files) of local dependencies when updating them during versioning.",
347
381
  "default": true
348
- }
349
382
  },
350
- "required": ["path"],
351
- "additionalProperties": false
352
- }
353
- ]
354
- },
355
- "description": "A list of directories containing manifest files (such as package.json) to apply updates to when versioning. By default, only the project root will be used, but you could customize this to only version a manifest in a dist directory, or even version multiple manifests in different directories, such as both source and dist."
356
- },
357
- "currentVersionResolver": {
358
- "type": "string",
359
- "enum": ["registry", "disk", "git-tag", "none"],
360
- "description": "The resolver to use for determining the current version of a project during versioning. This is needed for versioning approaches which involve relatively modifying a current version to arrive at a new version, such as semver bumps like 'patch', 'minor' etc. Using 'none' explicitly declares that the current version is not needed to compute the new version, and should only be used with appropriate version actions implementations that support it."
361
- },
362
- "currentVersionResolverMetadata": {
363
- "type": "object",
364
- "additionalProperties": true,
365
- "description": "Metadata to provide to the configured currentVersionResolver to help it in determining the current version. What to pass here is specific to each resolver."
366
- },
367
- "fallbackCurrentVersionResolver": {
368
- "type": "string",
369
- "enum": ["disk"],
370
- "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
371
- },
372
- "versionPrefix": {
373
- "type": "string",
374
- "enum": ["auto", "", "~", "^", "="],
375
- "default": "auto",
376
- "description": "The prefix to use when versioning dependencies. This can be one of the following: auto, '', '~', '^', '=', where auto means the existing prefix will be preserved."
377
- },
378
- "preserveLocalDependencyProtocols": {
379
- "type": "boolean",
380
- "description": "Whether to preserve local dependency protocols (e.g. file references, or the `workspace:` protocol in package.json files) of local dependencies when updating them during versioning.",
381
- "default": true
382
- },
383
- "versionActions": {
384
- "type": "string",
385
- "description": "The path to the version actions implementation to use for releasing all projects by default. This can also be overridden on the release group and project levels.",
386
- "default": "@nx/js/src/release"
387
- },
388
- "versionActionsOptions": {
389
- "type": "object",
390
- "description": "The specific options that are defined by each version actions implementation. They will be passed to the version actions implementation when running a release.",
391
- "additionalProperties": true
383
+ "versionActions": {
384
+ "type": "string",
385
+ "description": "The path to the version actions implementation to use for releasing all projects by default. This can also be overridden on the release group and project levels.",
386
+ "default": "@nx/js/src/release"
387
+ },
388
+ "versionActionsOptions": {
389
+ "type": "object",
390
+ "description": "The specific options that are defined by each version actions implementation. They will be passed to the version actions implementation when running a release.",
391
+ "additionalProperties": true
392
+ }
393
+ }
392
394
  }
393
- }
394
395
  }
395
- }
396
396
  }