@leyman/nx-plugin 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1,624 @@
1
+ {
2
+ "type": "object",
3
+ "title": "@leyman/nx-plugin",
4
+ "description": "Infers the targets of TypeScript ESM packages",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "targets": {
8
+ "type": "object",
9
+ "description": "Each target's options, or `false` to infer it nowhere",
10
+ "additionalProperties": false,
11
+ "properties": {
12
+ "biome": {
13
+ "oneOf": [
14
+ {
15
+ "description": "Infer the target nowhere",
16
+ "const": false
17
+ },
18
+ {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "properties": {
22
+ "name": {
23
+ "type": "string",
24
+ "description": "Name of the target. Defaults to the target's own"
25
+ },
26
+ "include": {
27
+ "type": "array",
28
+ "description": "Projects that get the target whatever their files",
29
+ "items": {
30
+ "type": "string",
31
+ "description": "Root of a project, e.g. `packages/a`"
32
+ }
33
+ },
34
+ "exclude": {
35
+ "type": "array",
36
+ "description": "Projects that never get the target",
37
+ "items": {
38
+ "type": "string",
39
+ "description": "Root of a project, e.g. `packages/a`"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ ]
45
+ },
46
+ "eslint": {
47
+ "oneOf": [
48
+ {
49
+ "description": "Infer the target nowhere",
50
+ "const": false
51
+ },
52
+ {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "properties": {
56
+ "name": {
57
+ "type": "string",
58
+ "description": "Name of the target. Defaults to the target's own"
59
+ },
60
+ "include": {
61
+ "type": "array",
62
+ "description": "Projects that get the target whatever their files",
63
+ "items": {
64
+ "type": "string",
65
+ "description": "Root of a project, e.g. `packages/a`"
66
+ }
67
+ },
68
+ "exclude": {
69
+ "type": "array",
70
+ "description": "Projects that never get the target",
71
+ "items": {
72
+ "type": "string",
73
+ "description": "Root of a project, e.g. `packages/a`"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ]
79
+ },
80
+ "check-package": {
81
+ "oneOf": [
82
+ {
83
+ "description": "Infer the target nowhere",
84
+ "const": false
85
+ },
86
+ {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "properties": {
90
+ "name": {
91
+ "type": "string",
92
+ "description": "Name of the target. Defaults to the target's own"
93
+ },
94
+ "include": {
95
+ "type": "array",
96
+ "description": "Projects that get the target whatever their files",
97
+ "items": {
98
+ "type": "string",
99
+ "description": "Root of a project, e.g. `packages/a`"
100
+ }
101
+ },
102
+ "exclude": {
103
+ "type": "array",
104
+ "description": "Projects that never get the target",
105
+ "items": {
106
+ "type": "string",
107
+ "description": "Root of a project, e.g. `packages/a`"
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ]
113
+ },
114
+ "update-ts-references": {
115
+ "oneOf": [
116
+ {
117
+ "description": "Infer the target nowhere",
118
+ "const": false
119
+ },
120
+ {
121
+ "type": "object",
122
+ "additionalProperties": false,
123
+ "properties": {
124
+ "name": {
125
+ "type": "string",
126
+ "description": "Name of the target. Defaults to the target's own"
127
+ },
128
+ "include": {
129
+ "type": "array",
130
+ "description": "Projects that get the target whatever their files",
131
+ "items": {
132
+ "type": "string",
133
+ "description": "Root of a project, e.g. `packages/a`"
134
+ }
135
+ },
136
+ "exclude": {
137
+ "type": "array",
138
+ "description": "Projects that never get the target",
139
+ "items": {
140
+ "type": "string",
141
+ "description": "Root of a project, e.g. `packages/a`"
142
+ }
143
+ }
144
+ }
145
+ }
146
+ ]
147
+ },
148
+ "tsc": {
149
+ "oneOf": [
150
+ {
151
+ "description": "Infer the target nowhere",
152
+ "const": false
153
+ },
154
+ {
155
+ "type": "object",
156
+ "additionalProperties": false,
157
+ "properties": {
158
+ "name": {
159
+ "type": "string",
160
+ "description": "Name of the target. Defaults to the target's own"
161
+ },
162
+ "include": {
163
+ "type": "array",
164
+ "description": "Projects that get the target whatever their files",
165
+ "items": {
166
+ "type": "string",
167
+ "description": "Root of a project, e.g. `packages/a`"
168
+ }
169
+ },
170
+ "exclude": {
171
+ "type": "array",
172
+ "description": "Projects that never get the target",
173
+ "items": {
174
+ "type": "string",
175
+ "description": "Root of a project, e.g. `packages/a`"
176
+ }
177
+ }
178
+ }
179
+ }
180
+ ]
181
+ },
182
+ "tsc-test": {
183
+ "oneOf": [
184
+ {
185
+ "description": "Infer the target nowhere",
186
+ "const": false
187
+ },
188
+ {
189
+ "type": "object",
190
+ "additionalProperties": false,
191
+ "properties": {
192
+ "name": {
193
+ "type": "string",
194
+ "description": "Name of the target. Defaults to the target's own"
195
+ },
196
+ "include": {
197
+ "type": "array",
198
+ "description": "Projects that get the target whatever their files",
199
+ "items": {
200
+ "type": "string",
201
+ "description": "Root of a project, e.g. `packages/a`"
202
+ }
203
+ },
204
+ "exclude": {
205
+ "type": "array",
206
+ "description": "Projects that never get the target",
207
+ "items": {
208
+ "type": "string",
209
+ "description": "Root of a project, e.g. `packages/a`"
210
+ }
211
+ }
212
+ }
213
+ }
214
+ ]
215
+ },
216
+ "mocha-unit-test": {
217
+ "oneOf": [
218
+ {
219
+ "description": "Infer the target nowhere",
220
+ "const": false
221
+ },
222
+ {
223
+ "type": "object",
224
+ "additionalProperties": false,
225
+ "properties": {
226
+ "name": {
227
+ "type": "string",
228
+ "description": "Name of the target. Defaults to the target's own"
229
+ },
230
+ "include": {
231
+ "type": "array",
232
+ "description": "Projects that get the target whatever their files",
233
+ "items": {
234
+ "type": "string",
235
+ "description": "Root of a project, e.g. `packages/a`"
236
+ }
237
+ },
238
+ "exclude": {
239
+ "type": "array",
240
+ "description": "Projects that never get the target",
241
+ "items": {
242
+ "type": "string",
243
+ "description": "Root of a project, e.g. `packages/a`"
244
+ }
245
+ }
246
+ }
247
+ }
248
+ ]
249
+ },
250
+ "mocha-integration-test": {
251
+ "oneOf": [
252
+ {
253
+ "description": "Infer the target nowhere",
254
+ "const": false
255
+ },
256
+ {
257
+ "type": "object",
258
+ "additionalProperties": false,
259
+ "properties": {
260
+ "name": {
261
+ "type": "string",
262
+ "description": "Name of the target. Defaults to the target's own"
263
+ },
264
+ "include": {
265
+ "type": "array",
266
+ "description": "Projects that get the target whatever their files",
267
+ "items": {
268
+ "type": "string",
269
+ "description": "Root of a project, e.g. `packages/a`"
270
+ }
271
+ },
272
+ "exclude": {
273
+ "type": "array",
274
+ "description": "Projects that never get the target",
275
+ "items": {
276
+ "type": "string",
277
+ "description": "Root of a project, e.g. `packages/a`"
278
+ }
279
+ }
280
+ }
281
+ }
282
+ ]
283
+ },
284
+ "vitest-unit-test": {
285
+ "oneOf": [
286
+ {
287
+ "description": "Infer the target nowhere",
288
+ "const": false
289
+ },
290
+ {
291
+ "type": "object",
292
+ "additionalProperties": false,
293
+ "properties": {
294
+ "name": {
295
+ "type": "string",
296
+ "description": "Name of the target. Defaults to the target's own"
297
+ },
298
+ "include": {
299
+ "type": "array",
300
+ "description": "Projects that get the target whatever their files",
301
+ "items": {
302
+ "type": "string",
303
+ "description": "Root of a project, e.g. `packages/a`"
304
+ }
305
+ },
306
+ "exclude": {
307
+ "type": "array",
308
+ "description": "Projects that never get the target",
309
+ "items": {
310
+ "type": "string",
311
+ "description": "Root of a project, e.g. `packages/a`"
312
+ }
313
+ }
314
+ }
315
+ }
316
+ ]
317
+ },
318
+ "coverage-report": {
319
+ "oneOf": [
320
+ {
321
+ "description": "Infer the target nowhere",
322
+ "const": false
323
+ },
324
+ {
325
+ "type": "object",
326
+ "additionalProperties": false,
327
+ "properties": {
328
+ "name": {
329
+ "type": "string",
330
+ "description": "Name of the target. Defaults to the target's own"
331
+ },
332
+ "include": {
333
+ "type": "array",
334
+ "description": "Projects that get the target whatever their files",
335
+ "items": {
336
+ "type": "string",
337
+ "description": "Root of a project, e.g. `packages/a`"
338
+ }
339
+ },
340
+ "exclude": {
341
+ "type": "array",
342
+ "description": "Projects that never get the target",
343
+ "items": {
344
+ "type": "string",
345
+ "description": "Root of a project, e.g. `packages/a`"
346
+ }
347
+ }
348
+ }
349
+ }
350
+ ]
351
+ },
352
+ "sync-injected": {
353
+ "oneOf": [
354
+ {
355
+ "description": "Infer the target nowhere",
356
+ "const": false
357
+ },
358
+ {
359
+ "type": "object",
360
+ "additionalProperties": false,
361
+ "properties": {
362
+ "name": {
363
+ "type": "string",
364
+ "description": "Name of the target. Defaults to the target's own"
365
+ },
366
+ "include": {
367
+ "type": "array",
368
+ "description": "Projects that get the target whatever their files",
369
+ "items": {
370
+ "type": "string",
371
+ "description": "Root of a project, e.g. `packages/a`"
372
+ }
373
+ },
374
+ "exclude": {
375
+ "type": "array",
376
+ "description": "Projects that never get the target",
377
+ "items": {
378
+ "type": "string",
379
+ "description": "Root of a project, e.g. `packages/a`"
380
+ }
381
+ }
382
+ }
383
+ }
384
+ ]
385
+ }
386
+ }
387
+ },
388
+ "configs": {
389
+ "type": "object",
390
+ "description": "Paths of the shared configs, relative to each project",
391
+ "additionalProperties": false,
392
+ "properties": {
393
+ "swc": {
394
+ "type": "string",
395
+ "default": "node_modules/@leyman/configs/swcrc.jsonc"
396
+ },
397
+ "c8": {
398
+ "type": "string",
399
+ "default": "node_modules/@leyman/configs/c8rc.json"
400
+ },
401
+ "vitest": {
402
+ "type": "string",
403
+ "default": "node_modules/@leyman/configs/vitest.config.js"
404
+ }
405
+ }
406
+ },
407
+ "scripts": {
408
+ "type": "string",
409
+ "description": "Directory to run the plugin's scripts from, instead of the package's bins (`leyman-swc-compile`...)"
410
+ },
411
+ "coverage": {
412
+ "type": "object",
413
+ "description": "Coverage thresholds `coverage-report` passes to c8, over the c8 config's",
414
+ "additionalProperties": false,
415
+ "properties": {
416
+ "branches": {
417
+ "type": "number",
418
+ "minimum": 0,
419
+ "maximum": 100
420
+ },
421
+ "functions": {
422
+ "type": "number",
423
+ "minimum": 0,
424
+ "maximum": 100
425
+ },
426
+ "lines": {
427
+ "type": "number",
428
+ "minimum": 0,
429
+ "maximum": 100
430
+ },
431
+ "statements": {
432
+ "type": "number",
433
+ "minimum": 0,
434
+ "maximum": 100
435
+ }
436
+ }
437
+ },
438
+ "checkPackage": {
439
+ "type": "object",
440
+ "description": "Options of `check-package`",
441
+ "additionalProperties": false,
442
+ "properties": {
443
+ "profile": {
444
+ "description": "The module resolutions every entry point must work under",
445
+ "enum": [
446
+ "esm-only",
447
+ "node16",
448
+ "strict"
449
+ ]
450
+ },
451
+ "floorTsconfig": {
452
+ "oneOf": [
453
+ {
454
+ "type": "string",
455
+ "default": "@leyman/configs/tsconfig.node-{major}.json",
456
+ "description": "The config a package's `tsconfig.json` must extend, with `{major}` for its support floor"
457
+ },
458
+ {
459
+ "description": "Not checked",
460
+ "const": false
461
+ }
462
+ ]
463
+ },
464
+ "inputs": {
465
+ "type": "array",
466
+ "description": "What a change of check-package itself is hashed by",
467
+ "items": {
468
+ "oneOf": [
469
+ {
470
+ "type": "string",
471
+ "description": "A file pattern, or the name of a named input"
472
+ },
473
+ {
474
+ "type": "object",
475
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
476
+ }
477
+ ]
478
+ }
479
+ }
480
+ }
481
+ },
482
+ "inputs": {
483
+ "type": "object",
484
+ "description": "What changes of the shared tools are hashed by",
485
+ "additionalProperties": false,
486
+ "properties": {
487
+ "configs": {
488
+ "type": "array",
489
+ "description": "The shared configs, for every target that reads one",
490
+ "items": {
491
+ "oneOf": [
492
+ {
493
+ "type": "string",
494
+ "description": "A file pattern, or the name of a named input"
495
+ },
496
+ {
497
+ "type": "object",
498
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
499
+ }
500
+ ]
501
+ }
502
+ },
503
+ "tools": {
504
+ "type": "array",
505
+ "description": "This plugin's scripts, for every target that runs one",
506
+ "items": {
507
+ "oneOf": [
508
+ {
509
+ "type": "string",
510
+ "description": "A file pattern, or the name of a named input"
511
+ },
512
+ {
513
+ "type": "object",
514
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
515
+ }
516
+ ]
517
+ }
518
+ }
519
+ }
520
+ },
521
+ "namedInputs": {
522
+ "type": "object",
523
+ "description": "Inputs added to the end of each named input, such as a file the tests read",
524
+ "additionalProperties": false,
525
+ "properties": {
526
+ "dependency-files": {
527
+ "type": "array",
528
+ "items": {
529
+ "oneOf": [
530
+ {
531
+ "type": "string",
532
+ "description": "A file pattern, or the name of a named input"
533
+ },
534
+ {
535
+ "type": "object",
536
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
537
+ }
538
+ ]
539
+ }
540
+ },
541
+ "package-files": {
542
+ "type": "array",
543
+ "items": {
544
+ "oneOf": [
545
+ {
546
+ "type": "string",
547
+ "description": "A file pattern, or the name of a named input"
548
+ },
549
+ {
550
+ "type": "object",
551
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
552
+ }
553
+ ]
554
+ }
555
+ },
556
+ "eslint-input": {
557
+ "type": "array",
558
+ "items": {
559
+ "oneOf": [
560
+ {
561
+ "type": "string",
562
+ "description": "A file pattern, or the name of a named input"
563
+ },
564
+ {
565
+ "type": "object",
566
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
567
+ }
568
+ ]
569
+ }
570
+ },
571
+ "ts-source": {
572
+ "type": "array",
573
+ "items": {
574
+ "oneOf": [
575
+ {
576
+ "type": "string",
577
+ "description": "A file pattern, or the name of a named input"
578
+ },
579
+ {
580
+ "type": "object",
581
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
582
+ }
583
+ ]
584
+ }
585
+ },
586
+ "dependency-builds": {
587
+ "type": "array",
588
+ "items": {
589
+ "oneOf": [
590
+ {
591
+ "type": "string",
592
+ "description": "A file pattern, or the name of a named input"
593
+ },
594
+ {
595
+ "type": "object",
596
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
597
+ }
598
+ ]
599
+ }
600
+ },
601
+ "test-source": {
602
+ "type": "array",
603
+ "items": {
604
+ "oneOf": [
605
+ {
606
+ "type": "string",
607
+ "description": "A file pattern, or the name of a named input"
608
+ },
609
+ {
610
+ "type": "object",
611
+ "description": "An input object, such as `{ \"externalDependencies\": [\"pkg\"] }`"
612
+ }
613
+ ]
614
+ }
615
+ }
616
+ }
617
+ },
618
+ "$schema": {
619
+ "type": "string",
620
+ "description": "Path or URL of this JSON schema"
621
+ }
622
+ },
623
+ "$schema": "https://json-schema.org/draft/2020-12/schema"
624
+ }