@goodbones/core 0.1.0-beta.2 → 0.1.0-beta.3

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.
Files changed (33) hide show
  1. package/build/dts/domain/manifest-location.d.ts +2 -0
  2. package/build/dts/domain/manifest-location.d.ts.map +1 -1
  3. package/build/dts/index.d.ts +3 -2
  4. package/build/dts/index.d.ts.map +1 -1
  5. package/build/dts/infrastructure/manifest-file.d.ts +1 -0
  6. package/build/dts/infrastructure/manifest-file.d.ts.map +1 -1
  7. package/build/dts/infrastructure/manifest-include.d.ts +16 -0
  8. package/build/dts/infrastructure/manifest-include.d.ts.map +1 -0
  9. package/build/dts/manifest/json-schema.d.ts +2 -0
  10. package/build/dts/manifest/json-schema.d.ts.map +1 -1
  11. package/build/dts/manifest/manifest.d.ts +1 -1
  12. package/build/dts/manifest/manifest.d.ts.map +1 -1
  13. package/build/esm/domain/manifest-location.js +16 -1
  14. package/build/esm/domain/manifest-location.js.map +1 -1
  15. package/build/esm/index.js +3 -1
  16. package/build/esm/index.js.map +1 -1
  17. package/build/esm/infrastructure/manifest-file.js +31 -17
  18. package/build/esm/infrastructure/manifest-file.js.map +1 -1
  19. package/build/esm/infrastructure/manifest-include.js +187 -0
  20. package/build/esm/infrastructure/manifest-include.js.map +1 -0
  21. package/build/esm/manifest/json-schema.js +72 -17
  22. package/build/esm/manifest/json-schema.js.map +1 -1
  23. package/build/esm/manifest/manifest.js +7 -18
  24. package/build/esm/manifest/manifest.js.map +1 -1
  25. package/package.json +1 -1
  26. package/schema/architecture-node.schema.json +1518 -0
  27. package/schema/architecture.schema.json +1102 -691
  28. package/src/domain/manifest-location.ts +22 -0
  29. package/src/index.ts +13 -1
  30. package/src/infrastructure/manifest-file.ts +37 -17
  31. package/src/infrastructure/manifest-include.ts +318 -0
  32. package/src/manifest/json-schema.ts +83 -18
  33. package/src/manifest/manifest.ts +11 -20
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "defs": {
18
18
  "type": "object",
19
- "description": "Named fragments, referenced elsewhere in the manifest as `{ use: \"<name>\" }`. A fragment may itself contain `use`.",
19
+ "description": "Named fragments, referenced elsewhere in the manifest as `{ use: \"<name>\" }`. A fragment may itself contain `use`. Every file's `defs` share one namespace.",
20
20
  "additionalProperties": true
21
21
  },
22
22
  "resolve": {
@@ -24,35 +24,48 @@
24
24
  {
25
25
  "$ref": "#/$defs/Use"
26
26
  },
27
+ {
28
+ "$ref": "#/$defs/Include"
29
+ },
27
30
  {
28
31
  "type": "object",
29
32
  "properties": {
30
33
  "scopes": {
31
- "type": "array",
32
- "items": {
33
- "anyOf": [
34
- {
35
- "$ref": "#/$defs/Use"
36
- },
37
- {
38
- "type": "object",
39
- "properties": {
40
- "files": {
41
- "type": "string"
34
+ "anyOf": [
35
+ {
36
+ "$ref": "#/$defs/Include"
37
+ },
38
+ {
39
+ "type": "array",
40
+ "items": {
41
+ "anyOf": [
42
+ {
43
+ "$ref": "#/$defs/Use"
42
44
  },
43
- "language": {
44
- "type": "string"
45
+ {
46
+ "$ref": "#/$defs/Include"
45
47
  },
46
- "options": {}
47
- },
48
- "required": [
49
- "files",
50
- "language"
51
- ],
52
- "additionalProperties": false
48
+ {
49
+ "type": "object",
50
+ "properties": {
51
+ "files": {
52
+ "type": "string"
53
+ },
54
+ "language": {
55
+ "type": "string"
56
+ },
57
+ "options": {}
58
+ },
59
+ "required": [
60
+ "files",
61
+ "language"
62
+ ],
63
+ "additionalProperties": false
64
+ }
65
+ ]
53
66
  }
54
- ]
55
- }
67
+ }
68
+ ]
56
69
  },
57
70
  "unresolved": {
58
71
  "type": "string",
@@ -62,10 +75,17 @@
62
75
  ]
63
76
  },
64
77
  "ignoreUnresolved": {
65
- "type": "array",
66
- "items": {
67
- "type": "string"
68
- }
78
+ "anyOf": [
79
+ {
80
+ "$ref": "#/$defs/Include"
81
+ },
82
+ {
83
+ "type": "array",
84
+ "items": {
85
+ "type": "string"
86
+ }
87
+ }
88
+ ]
69
89
  }
70
90
  },
71
91
  "required": [
@@ -79,207 +99,32 @@
79
99
  "type": "string"
80
100
  },
81
101
  "deny": {
82
- "type": "array",
83
- "items": {
84
- "anyOf": [
85
- {
86
- "$ref": "#/$defs/Use"
87
- },
88
- {
89
- "type": "object",
90
- "properties": {
91
- "match": {
92
- "anyOf": [
93
- {
94
- "type": "string"
95
- },
96
- {
97
- "type": "array",
98
- "items": {
99
- "type": "string"
100
- }
101
- }
102
- ]
103
- },
104
- "matchNot": {
105
- "anyOf": [
106
- {
107
- "type": "string"
108
- },
109
- {
110
- "type": "array",
111
- "items": {
112
- "type": "string"
113
- }
114
- }
115
- ]
116
- },
117
- "except": {
118
- "anyOf": [
119
- {
120
- "type": "string"
121
- },
122
- {
123
- "type": "array",
124
- "items": {
125
- "type": "string"
126
- }
127
- }
128
- ]
129
- },
130
- "message": {
131
- "type": "string"
132
- }
133
- },
134
- "required": [
135
- "match",
136
- "message"
137
- ],
138
- "additionalProperties": false
139
- }
140
- ]
141
- }
142
- },
143
- "exports": {
144
- "type": "array",
145
- "items": {
146
- "anyOf": [
147
- {
148
- "$ref": "#/$defs/Use"
149
- },
150
- {
151
- "type": "object",
152
- "properties": {
153
- "name": {
154
- "type": "string"
155
- },
156
- "message": {
157
- "type": "string"
158
- },
159
- "module": {
160
- "anyOf": [
161
- {
162
- "type": "string"
163
- },
164
- {
165
- "type": "array",
166
- "items": {
167
- "type": "string"
168
- }
169
- }
170
- ]
171
- },
172
- "symbols": {
173
- "type": "array",
174
- "items": {
175
- "type": "string"
176
- }
177
- },
178
- "kinds": {
179
- "type": "array",
180
- "items": {
181
- "type": "string",
182
- "enum": [
183
- "named",
184
- "default",
185
- "namespace"
186
- ]
187
- }
188
- },
189
- "except": {
190
- "anyOf": [
191
- {
192
- "type": "string"
193
- },
194
- {
195
- "type": "array",
196
- "items": {
197
- "type": "string"
198
- }
199
- }
200
- ]
201
- },
202
- "fix": {
203
- "type": "string",
204
- "enum": [
205
- "subpath-namespace-import"
206
- ]
207
- },
208
- "probe": {
209
- "anyOf": [
210
- {
211
- "$ref": "#/$defs/Use"
212
- },
213
- {
214
- "type": "object",
215
- "properties": {
216
- "source": {
217
- "type": "string"
218
- },
219
- "symbol": {
220
- "type": "string"
221
- }
222
- },
223
- "required": [
224
- "source",
225
- "symbol"
226
- ],
227
- "additionalProperties": false
228
- }
229
- ]
230
- }
231
- },
232
- "required": [
233
- "name",
234
- "message",
235
- "module"
236
- ],
237
- "additionalProperties": false
238
- }
239
- ]
240
- }
241
- },
242
- "graph": {
243
102
  "anyOf": [
244
103
  {
245
- "$ref": "#/$defs/Use"
104
+ "$ref": "#/$defs/Include"
246
105
  },
247
106
  {
248
- "type": "object",
249
- "properties": {
250
- "cycles": {
251
- "type": "array",
252
- "items": {
253
- "anyOf": [
254
- {
255
- "$ref": "#/$defs/Use"
256
- },
257
- {
258
- "type": "object",
259
- "properties": {
260
- "name": {
261
- "type": "string"
262
- },
263
- "message": {
107
+ "type": "array",
108
+ "items": {
109
+ "anyOf": [
110
+ {
111
+ "$ref": "#/$defs/Use"
112
+ },
113
+ {
114
+ "$ref": "#/$defs/Include"
115
+ },
116
+ {
117
+ "type": "object",
118
+ "properties": {
119
+ "match": {
120
+ "anyOf": [
121
+ {
264
122
  "type": "string"
265
123
  },
266
- "within": {
267
- "anyOf": [
268
- {
269
- "type": "string"
270
- },
271
- {
272
- "type": "array",
273
- "items": {
274
- "type": "string"
275
- }
276
- }
277
- ]
278
- },
279
- "withinNot": {
124
+ {
280
125
  "anyOf": [
281
126
  {
282
- "type": "string"
127
+ "$ref": "#/$defs/Include"
283
128
  },
284
129
  {
285
130
  "type": "array",
@@ -289,50 +134,17 @@
289
134
  }
290
135
  ]
291
136
  }
292
- },
293
- "required": [
294
- "name",
295
- "message",
296
- "within"
297
- ],
298
- "additionalProperties": false
299
- }
300
- ]
301
- }
302
- },
303
- "orphans": {
304
- "type": "array",
305
- "items": {
306
- "anyOf": [
307
- {
308
- "$ref": "#/$defs/Use"
137
+ ]
309
138
  },
310
- {
311
- "type": "object",
312
- "properties": {
313
- "name": {
139
+ "matchNot": {
140
+ "anyOf": [
141
+ {
314
142
  "type": "string"
315
143
  },
316
- "message": {
317
- "type": "string"
318
- },
319
- "within": {
320
- "anyOf": [
321
- {
322
- "type": "string"
323
- },
324
- {
325
- "type": "array",
326
- "items": {
327
- "type": "string"
328
- }
329
- }
330
- ]
331
- },
332
- "withinNot": {
144
+ {
333
145
  "anyOf": [
334
146
  {
335
- "type": "string"
147
+ "$ref": "#/$defs/Include"
336
148
  },
337
149
  {
338
150
  "type": "array",
@@ -341,11 +153,18 @@
341
153
  }
342
154
  }
343
155
  ]
156
+ }
157
+ ]
158
+ },
159
+ "except": {
160
+ "anyOf": [
161
+ {
162
+ "type": "string"
344
163
  },
345
- "entry": {
164
+ {
346
165
  "anyOf": [
347
166
  {
348
- "type": "string"
167
+ "$ref": "#/$defs/Include"
349
168
  },
350
169
  {
351
170
  "type": "array",
@@ -355,38 +174,56 @@
355
174
  }
356
175
  ]
357
176
  }
358
- },
359
- "required": [
360
- "name",
361
- "message",
362
- "within",
363
- "entry"
364
- ],
365
- "additionalProperties": false
177
+ ]
178
+ },
179
+ "message": {
180
+ "type": "string"
366
181
  }
367
- ]
182
+ },
183
+ "required": [
184
+ "match",
185
+ "message"
186
+ ],
187
+ "additionalProperties": false
368
188
  }
369
- },
370
- "reach": {
371
- "type": "array",
372
- "items": {
373
- "anyOf": [
374
- {
375
- "$ref": "#/$defs/Use"
189
+ ]
190
+ }
191
+ }
192
+ ]
193
+ },
194
+ "exports": {
195
+ "anyOf": [
196
+ {
197
+ "$ref": "#/$defs/Include"
198
+ },
199
+ {
200
+ "type": "array",
201
+ "items": {
202
+ "anyOf": [
203
+ {
204
+ "$ref": "#/$defs/Use"
205
+ },
206
+ {
207
+ "$ref": "#/$defs/Include"
208
+ },
209
+ {
210
+ "type": "object",
211
+ "properties": {
212
+ "name": {
213
+ "type": "string"
376
214
  },
377
- {
378
- "type": "object",
379
- "properties": {
380
- "name": {
381
- "type": "string"
382
- },
383
- "message": {
215
+ "message": {
216
+ "type": "string"
217
+ },
218
+ "module": {
219
+ "anyOf": [
220
+ {
384
221
  "type": "string"
385
222
  },
386
- "from": {
223
+ {
387
224
  "anyOf": [
388
225
  {
389
- "type": "string"
226
+ "$ref": "#/$defs/Include"
390
227
  },
391
228
  {
392
229
  "type": "array",
@@ -395,37 +232,49 @@
395
232
  }
396
233
  }
397
234
  ]
235
+ }
236
+ ]
237
+ },
238
+ "symbols": {
239
+ "anyOf": [
240
+ {
241
+ "$ref": "#/$defs/Include"
398
242
  },
399
- "fromNot": {
400
- "anyOf": [
401
- {
402
- "type": "string"
403
- },
404
- {
405
- "type": "array",
406
- "items": {
407
- "type": "string"
408
- }
409
- }
410
- ]
243
+ {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "string"
247
+ }
248
+ }
249
+ ]
250
+ },
251
+ "kinds": {
252
+ "anyOf": [
253
+ {
254
+ "$ref": "#/$defs/Include"
411
255
  },
412
- "to": {
413
- "anyOf": [
414
- {
415
- "type": "string"
416
- },
417
- {
418
- "type": "array",
419
- "items": {
420
- "type": "string"
421
- }
422
- }
423
- ]
256
+ {
257
+ "type": "array",
258
+ "items": {
259
+ "type": "string",
260
+ "enum": [
261
+ "named",
262
+ "default",
263
+ "namespace"
264
+ ]
265
+ }
266
+ }
267
+ ]
268
+ },
269
+ "except": {
270
+ "anyOf": [
271
+ {
272
+ "type": "string"
424
273
  },
425
- "toNot": {
274
+ {
426
275
  "anyOf": [
427
276
  {
428
- "type": "string"
277
+ "$ref": "#/$defs/Include"
429
278
  },
430
279
  {
431
280
  "type": "array",
@@ -434,79 +283,431 @@
434
283
  }
435
284
  }
436
285
  ]
286
+ }
287
+ ]
288
+ },
289
+ "fix": {
290
+ "type": "string",
291
+ "enum": [
292
+ "subpath-namespace-import"
293
+ ]
294
+ },
295
+ "probe": {
296
+ "anyOf": [
297
+ {
298
+ "$ref": "#/$defs/Use"
437
299
  },
438
- "via": {
439
- "anyOf": [
440
- {
300
+ {
301
+ "$ref": "#/$defs/Include"
302
+ },
303
+ {
304
+ "type": "object",
305
+ "properties": {
306
+ "source": {
441
307
  "type": "string"
442
308
  },
443
- {
444
- "type": "array",
445
- "items": {
446
- "type": "string"
447
- }
309
+ "symbol": {
310
+ "type": "string"
448
311
  }
449
- ]
312
+ },
313
+ "required": [
314
+ "source",
315
+ "symbol"
316
+ ],
317
+ "additionalProperties": false
450
318
  }
451
- },
452
- "required": [
453
- "name",
454
- "message",
455
- "from",
456
- "to"
457
- ],
458
- "additionalProperties": false
319
+ ]
459
320
  }
460
- ]
321
+ },
322
+ "required": [
323
+ "name",
324
+ "message",
325
+ "module"
326
+ ],
327
+ "additionalProperties": false
461
328
  }
462
- }
463
- },
464
- "additionalProperties": false
329
+ ]
330
+ }
465
331
  }
466
332
  ]
467
333
  },
468
- "limits": {
334
+ "graph": {
469
335
  "anyOf": [
470
336
  {
471
337
  "$ref": "#/$defs/Use"
472
338
  },
339
+ {
340
+ "$ref": "#/$defs/Include"
341
+ },
473
342
  {
474
343
  "type": "object",
475
344
  "properties": {
476
- "unrestricted": {
477
- "type": "number"
478
- },
479
- "partial": {
480
- "type": "number"
481
- },
482
- "coverage": {
345
+ "cycles": {
483
346
  "anyOf": [
484
347
  {
485
- "$ref": "#/$defs/Use"
348
+ "$ref": "#/$defs/Include"
486
349
  },
487
350
  {
488
- "type": "object",
489
- "properties": {
490
- "imports": {
491
- "type": "number"
492
- },
493
- "structure": {
494
- "type": "number"
495
- },
496
- "members": {
497
- "type": "number"
498
- },
499
- "surface": {
500
- "type": "number"
501
- },
502
- "graph": {
503
- "type": "number"
504
- }
505
- },
506
- "additionalProperties": false
507
- }
508
- ]
509
- }
351
+ "type": "array",
352
+ "items": {
353
+ "anyOf": [
354
+ {
355
+ "$ref": "#/$defs/Use"
356
+ },
357
+ {
358
+ "$ref": "#/$defs/Include"
359
+ },
360
+ {
361
+ "type": "object",
362
+ "properties": {
363
+ "name": {
364
+ "type": "string"
365
+ },
366
+ "message": {
367
+ "type": "string"
368
+ },
369
+ "within": {
370
+ "anyOf": [
371
+ {
372
+ "type": "string"
373
+ },
374
+ {
375
+ "anyOf": [
376
+ {
377
+ "$ref": "#/$defs/Include"
378
+ },
379
+ {
380
+ "type": "array",
381
+ "items": {
382
+ "type": "string"
383
+ }
384
+ }
385
+ ]
386
+ }
387
+ ]
388
+ },
389
+ "withinNot": {
390
+ "anyOf": [
391
+ {
392
+ "type": "string"
393
+ },
394
+ {
395
+ "anyOf": [
396
+ {
397
+ "$ref": "#/$defs/Include"
398
+ },
399
+ {
400
+ "type": "array",
401
+ "items": {
402
+ "type": "string"
403
+ }
404
+ }
405
+ ]
406
+ }
407
+ ]
408
+ }
409
+ },
410
+ "required": [
411
+ "name",
412
+ "message",
413
+ "within"
414
+ ],
415
+ "additionalProperties": false
416
+ }
417
+ ]
418
+ }
419
+ }
420
+ ]
421
+ },
422
+ "orphans": {
423
+ "anyOf": [
424
+ {
425
+ "$ref": "#/$defs/Include"
426
+ },
427
+ {
428
+ "type": "array",
429
+ "items": {
430
+ "anyOf": [
431
+ {
432
+ "$ref": "#/$defs/Use"
433
+ },
434
+ {
435
+ "$ref": "#/$defs/Include"
436
+ },
437
+ {
438
+ "type": "object",
439
+ "properties": {
440
+ "name": {
441
+ "type": "string"
442
+ },
443
+ "message": {
444
+ "type": "string"
445
+ },
446
+ "within": {
447
+ "anyOf": [
448
+ {
449
+ "type": "string"
450
+ },
451
+ {
452
+ "anyOf": [
453
+ {
454
+ "$ref": "#/$defs/Include"
455
+ },
456
+ {
457
+ "type": "array",
458
+ "items": {
459
+ "type": "string"
460
+ }
461
+ }
462
+ ]
463
+ }
464
+ ]
465
+ },
466
+ "withinNot": {
467
+ "anyOf": [
468
+ {
469
+ "type": "string"
470
+ },
471
+ {
472
+ "anyOf": [
473
+ {
474
+ "$ref": "#/$defs/Include"
475
+ },
476
+ {
477
+ "type": "array",
478
+ "items": {
479
+ "type": "string"
480
+ }
481
+ }
482
+ ]
483
+ }
484
+ ]
485
+ },
486
+ "entry": {
487
+ "anyOf": [
488
+ {
489
+ "type": "string"
490
+ },
491
+ {
492
+ "anyOf": [
493
+ {
494
+ "$ref": "#/$defs/Include"
495
+ },
496
+ {
497
+ "type": "array",
498
+ "items": {
499
+ "type": "string"
500
+ }
501
+ }
502
+ ]
503
+ }
504
+ ]
505
+ }
506
+ },
507
+ "required": [
508
+ "name",
509
+ "message",
510
+ "within",
511
+ "entry"
512
+ ],
513
+ "additionalProperties": false
514
+ }
515
+ ]
516
+ }
517
+ }
518
+ ]
519
+ },
520
+ "reach": {
521
+ "anyOf": [
522
+ {
523
+ "$ref": "#/$defs/Include"
524
+ },
525
+ {
526
+ "type": "array",
527
+ "items": {
528
+ "anyOf": [
529
+ {
530
+ "$ref": "#/$defs/Use"
531
+ },
532
+ {
533
+ "$ref": "#/$defs/Include"
534
+ },
535
+ {
536
+ "type": "object",
537
+ "properties": {
538
+ "name": {
539
+ "type": "string"
540
+ },
541
+ "message": {
542
+ "type": "string"
543
+ },
544
+ "from": {
545
+ "anyOf": [
546
+ {
547
+ "type": "string"
548
+ },
549
+ {
550
+ "anyOf": [
551
+ {
552
+ "$ref": "#/$defs/Include"
553
+ },
554
+ {
555
+ "type": "array",
556
+ "items": {
557
+ "type": "string"
558
+ }
559
+ }
560
+ ]
561
+ }
562
+ ]
563
+ },
564
+ "fromNot": {
565
+ "anyOf": [
566
+ {
567
+ "type": "string"
568
+ },
569
+ {
570
+ "anyOf": [
571
+ {
572
+ "$ref": "#/$defs/Include"
573
+ },
574
+ {
575
+ "type": "array",
576
+ "items": {
577
+ "type": "string"
578
+ }
579
+ }
580
+ ]
581
+ }
582
+ ]
583
+ },
584
+ "to": {
585
+ "anyOf": [
586
+ {
587
+ "type": "string"
588
+ },
589
+ {
590
+ "anyOf": [
591
+ {
592
+ "$ref": "#/$defs/Include"
593
+ },
594
+ {
595
+ "type": "array",
596
+ "items": {
597
+ "type": "string"
598
+ }
599
+ }
600
+ ]
601
+ }
602
+ ]
603
+ },
604
+ "toNot": {
605
+ "anyOf": [
606
+ {
607
+ "type": "string"
608
+ },
609
+ {
610
+ "anyOf": [
611
+ {
612
+ "$ref": "#/$defs/Include"
613
+ },
614
+ {
615
+ "type": "array",
616
+ "items": {
617
+ "type": "string"
618
+ }
619
+ }
620
+ ]
621
+ }
622
+ ]
623
+ },
624
+ "via": {
625
+ "anyOf": [
626
+ {
627
+ "type": "string"
628
+ },
629
+ {
630
+ "anyOf": [
631
+ {
632
+ "$ref": "#/$defs/Include"
633
+ },
634
+ {
635
+ "type": "array",
636
+ "items": {
637
+ "type": "string"
638
+ }
639
+ }
640
+ ]
641
+ }
642
+ ]
643
+ }
644
+ },
645
+ "required": [
646
+ "name",
647
+ "message",
648
+ "from",
649
+ "to"
650
+ ],
651
+ "additionalProperties": false
652
+ }
653
+ ]
654
+ }
655
+ }
656
+ ]
657
+ }
658
+ },
659
+ "additionalProperties": false
660
+ }
661
+ ]
662
+ },
663
+ "limits": {
664
+ "anyOf": [
665
+ {
666
+ "$ref": "#/$defs/Use"
667
+ },
668
+ {
669
+ "$ref": "#/$defs/Include"
670
+ },
671
+ {
672
+ "type": "object",
673
+ "properties": {
674
+ "unrestricted": {
675
+ "type": "number"
676
+ },
677
+ "partial": {
678
+ "type": "number"
679
+ },
680
+ "coverage": {
681
+ "anyOf": [
682
+ {
683
+ "$ref": "#/$defs/Use"
684
+ },
685
+ {
686
+ "$ref": "#/$defs/Include"
687
+ },
688
+ {
689
+ "type": "object",
690
+ "properties": {
691
+ "imports": {
692
+ "type": "number"
693
+ },
694
+ "structure": {
695
+ "type": "number"
696
+ },
697
+ "members": {
698
+ "type": "number"
699
+ },
700
+ "surface": {
701
+ "type": "number"
702
+ },
703
+ "graph": {
704
+ "type": "number"
705
+ }
706
+ },
707
+ "additionalProperties": false
708
+ }
709
+ ]
710
+ }
510
711
  },
511
712
  "additionalProperties": false
512
713
  }
@@ -531,6 +732,9 @@
531
732
  {
532
733
  "$ref": "#/$defs/Use"
533
734
  },
735
+ {
736
+ "$ref": "#/$defs/Include"
737
+ },
534
738
  {
535
739
  "type": "object",
536
740
  "properties": {
@@ -562,6 +766,9 @@
562
766
  {
563
767
  "$ref": "#/$defs/Use"
564
768
  },
769
+ {
770
+ "$ref": "#/$defs/Include"
771
+ },
565
772
  {
566
773
  "type": "object",
567
774
  "properties": {
@@ -584,6 +791,9 @@
584
791
  {
585
792
  "$ref": "#/$defs/Use"
586
793
  },
794
+ {
795
+ "$ref": "#/$defs/Include"
796
+ },
587
797
  {
588
798
  "type": "object",
589
799
  "properties": {
@@ -608,6 +818,9 @@
608
818
  {
609
819
  "$ref": "#/$defs/Use"
610
820
  },
821
+ {
822
+ "$ref": "#/$defs/Include"
823
+ },
611
824
  {
612
825
  "type": "object",
613
826
  "properties": {
@@ -619,6 +832,26 @@
619
832
  {
620
833
  "type": "string"
621
834
  },
835
+ {
836
+ "anyOf": [
837
+ {
838
+ "$ref": "#/$defs/Include"
839
+ },
840
+ {
841
+ "type": "array",
842
+ "items": {
843
+ "type": "string"
844
+ }
845
+ }
846
+ ]
847
+ }
848
+ ]
849
+ },
850
+ "external": {
851
+ "anyOf": [
852
+ {
853
+ "$ref": "#/$defs/Include"
854
+ },
622
855
  {
623
856
  "type": "array",
624
857
  "items": {
@@ -627,73 +860,98 @@
627
860
  }
628
861
  ]
629
862
  },
630
- "external": {
631
- "type": "array",
632
- "items": {
633
- "type": "string"
634
- }
635
- },
636
863
  "deny": {
637
- "type": "array",
638
- "items": {
639
- "anyOf": [
640
- {
641
- "$ref": "#/$defs/Use"
642
- },
643
- {
644
- "type": "object",
645
- "properties": {
646
- "match": {
647
- "anyOf": [
648
- {
649
- "type": "string"
650
- },
651
- {
652
- "type": "array",
653
- "items": {
654
- "type": "string"
655
- }
656
- }
657
- ]
864
+ "anyOf": [
865
+ {
866
+ "$ref": "#/$defs/Include"
867
+ },
868
+ {
869
+ "type": "array",
870
+ "items": {
871
+ "anyOf": [
872
+ {
873
+ "$ref": "#/$defs/Use"
658
874
  },
659
- "matchNot": {
660
- "anyOf": [
661
- {
662
- "type": "string"
663
- },
664
- {
665
- "type": "array",
666
- "items": {
667
- "type": "string"
668
- }
669
- }
670
- ]
875
+ {
876
+ "$ref": "#/$defs/Include"
671
877
  },
672
- "except": {
673
- "anyOf": [
674
- {
675
- "type": "string"
878
+ {
879
+ "type": "object",
880
+ "properties": {
881
+ "match": {
882
+ "anyOf": [
883
+ {
884
+ "type": "string"
885
+ },
886
+ {
887
+ "anyOf": [
888
+ {
889
+ "$ref": "#/$defs/Include"
890
+ },
891
+ {
892
+ "type": "array",
893
+ "items": {
894
+ "type": "string"
895
+ }
896
+ }
897
+ ]
898
+ }
899
+ ]
676
900
  },
677
- {
678
- "type": "array",
679
- "items": {
680
- "type": "string"
681
- }
901
+ "matchNot": {
902
+ "anyOf": [
903
+ {
904
+ "type": "string"
905
+ },
906
+ {
907
+ "anyOf": [
908
+ {
909
+ "$ref": "#/$defs/Include"
910
+ },
911
+ {
912
+ "type": "array",
913
+ "items": {
914
+ "type": "string"
915
+ }
916
+ }
917
+ ]
918
+ }
919
+ ]
920
+ },
921
+ "except": {
922
+ "anyOf": [
923
+ {
924
+ "type": "string"
925
+ },
926
+ {
927
+ "anyOf": [
928
+ {
929
+ "$ref": "#/$defs/Include"
930
+ },
931
+ {
932
+ "type": "array",
933
+ "items": {
934
+ "type": "string"
935
+ }
936
+ }
937
+ ]
938
+ }
939
+ ]
940
+ },
941
+ "message": {
942
+ "type": "string"
682
943
  }
683
- ]
684
- },
685
- "message": {
686
- "type": "string"
944
+ },
945
+ "required": [
946
+ "match",
947
+ "message"
948
+ ],
949
+ "additionalProperties": false
687
950
  }
688
- },
689
- "required": [
690
- "match",
691
- "message"
692
- ],
693
- "additionalProperties": false
951
+ ]
694
952
  }
695
- ]
696
- }
953
+ }
954
+ ]
697
955
  },
698
956
  "reset": {
699
957
  "type": "boolean"
@@ -711,6 +969,9 @@
711
969
  {
712
970
  "$ref": "#/$defs/Use"
713
971
  },
972
+ {
973
+ "$ref": "#/$defs/Include"
974
+ },
714
975
  {
715
976
  "type": "object",
716
977
  "properties": {
@@ -723,10 +984,17 @@
723
984
  "type": "string"
724
985
  },
725
986
  {
726
- "type": "array",
727
- "items": {
728
- "type": "string"
729
- }
987
+ "anyOf": [
988
+ {
989
+ "$ref": "#/$defs/Include"
990
+ },
991
+ {
992
+ "type": "array",
993
+ "items": {
994
+ "type": "string"
995
+ }
996
+ }
997
+ ]
730
998
  }
731
999
  ]
732
1000
  },
@@ -736,10 +1004,17 @@
736
1004
  "type": "string"
737
1005
  },
738
1006
  {
739
- "type": "array",
740
- "items": {
741
- "type": "string"
742
- }
1007
+ "anyOf": [
1008
+ {
1009
+ "$ref": "#/$defs/Include"
1010
+ },
1011
+ {
1012
+ "type": "array",
1013
+ "items": {
1014
+ "type": "string"
1015
+ }
1016
+ }
1017
+ ]
743
1018
  }
744
1019
  ]
745
1020
  }
@@ -753,314 +1028,437 @@
753
1028
  ]
754
1029
  },
755
1030
  "members": {
756
- "type": "array",
757
- "items": {
758
- "anyOf": [
759
- {
760
- "$ref": "#/$defs/Use"
761
- },
762
- {
763
- "type": "object",
764
- "properties": {
765
- "message": {
766
- "type": "string"
1031
+ "anyOf": [
1032
+ {
1033
+ "$ref": "#/$defs/Include"
1034
+ },
1035
+ {
1036
+ "type": "array",
1037
+ "items": {
1038
+ "anyOf": [
1039
+ {
1040
+ "$ref": "#/$defs/Use"
767
1041
  },
768
- "subject": {
769
- "type": "string",
770
- "enum": [
771
- "members",
772
- "calls"
773
- ]
1042
+ {
1043
+ "$ref": "#/$defs/Include"
774
1044
  },
775
- "in": {
776
- "anyOf": [
777
- {
1045
+ {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "message": {
778
1049
  "type": "string"
779
1050
  },
780
- {
781
- "type": "array",
782
- "items": {
783
- "type": "string"
784
- }
785
- }
786
- ]
787
- },
788
- "declares": {
789
- "type": "array",
790
- "items": {
791
- "type": "string",
792
- "enum": [
793
- "function",
794
- "class",
795
- "variable",
796
- "type",
797
- "interface",
798
- "enum",
799
- "expression",
800
- "other"
801
- ]
802
- }
803
- },
804
- "match": {
805
- "anyOf": [
806
- {
807
- "type": "string"
1051
+ "subject": {
1052
+ "type": "string",
1053
+ "enum": [
1054
+ "members",
1055
+ "calls"
1056
+ ]
808
1057
  },
809
- {
810
- "type": "array",
811
- "items": {
812
- "type": "string"
813
- }
814
- }
815
- ]
816
- },
817
- "matchNot": {
818
- "anyOf": [
819
- {
820
- "type": "string"
1058
+ "in": {
1059
+ "anyOf": [
1060
+ {
1061
+ "type": "string"
1062
+ },
1063
+ {
1064
+ "anyOf": [
1065
+ {
1066
+ "$ref": "#/$defs/Include"
1067
+ },
1068
+ {
1069
+ "type": "array",
1070
+ "items": {
1071
+ "type": "string"
1072
+ }
1073
+ }
1074
+ ]
1075
+ }
1076
+ ]
821
1077
  },
822
- {
823
- "type": "array",
824
- "items": {
825
- "type": "string"
826
- }
827
- }
828
- ]
829
- },
830
- "allow": {
831
- "anyOf": [
832
- {
833
- "type": "string"
1078
+ "declares": {
1079
+ "anyOf": [
1080
+ {
1081
+ "$ref": "#/$defs/Include"
1082
+ },
1083
+ {
1084
+ "type": "array",
1085
+ "items": {
1086
+ "type": "string",
1087
+ "enum": [
1088
+ "function",
1089
+ "class",
1090
+ "variable",
1091
+ "type",
1092
+ "interface",
1093
+ "enum",
1094
+ "expression",
1095
+ "other"
1096
+ ]
1097
+ }
1098
+ }
1099
+ ]
834
1100
  },
835
- {
836
- "type": "array",
837
- "items": {
838
- "type": "string"
839
- }
840
- }
841
- ]
842
- },
843
- "probe": {
844
- "anyOf": [
845
- {
846
- "$ref": "#/$defs/Use"
1101
+ "match": {
1102
+ "anyOf": [
1103
+ {
1104
+ "type": "string"
1105
+ },
1106
+ {
1107
+ "anyOf": [
1108
+ {
1109
+ "$ref": "#/$defs/Include"
1110
+ },
1111
+ {
1112
+ "type": "array",
1113
+ "items": {
1114
+ "type": "string"
1115
+ }
1116
+ }
1117
+ ]
1118
+ }
1119
+ ]
847
1120
  },
848
- {
849
- "type": "object",
850
- "properties": {
851
- "source": {
1121
+ "matchNot": {
1122
+ "anyOf": [
1123
+ {
852
1124
  "type": "string"
853
1125
  },
854
- "name": {
1126
+ {
1127
+ "anyOf": [
1128
+ {
1129
+ "$ref": "#/$defs/Include"
1130
+ },
1131
+ {
1132
+ "type": "array",
1133
+ "items": {
1134
+ "type": "string"
1135
+ }
1136
+ }
1137
+ ]
1138
+ }
1139
+ ]
1140
+ },
1141
+ "allow": {
1142
+ "anyOf": [
1143
+ {
855
1144
  "type": "string"
1145
+ },
1146
+ {
1147
+ "anyOf": [
1148
+ {
1149
+ "$ref": "#/$defs/Include"
1150
+ },
1151
+ {
1152
+ "type": "array",
1153
+ "items": {
1154
+ "type": "string"
1155
+ }
1156
+ }
1157
+ ]
1158
+ }
1159
+ ]
1160
+ },
1161
+ "probe": {
1162
+ "anyOf": [
1163
+ {
1164
+ "$ref": "#/$defs/Use"
1165
+ },
1166
+ {
1167
+ "$ref": "#/$defs/Include"
1168
+ },
1169
+ {
1170
+ "type": "object",
1171
+ "properties": {
1172
+ "source": {
1173
+ "type": "string"
1174
+ },
1175
+ "name": {
1176
+ "type": "string"
1177
+ }
1178
+ },
1179
+ "required": [
1180
+ "source",
1181
+ "name"
1182
+ ],
1183
+ "additionalProperties": false
856
1184
  }
857
- },
858
- "required": [
859
- "source",
860
- "name"
861
- ],
862
- "additionalProperties": false
1185
+ ]
863
1186
  }
864
- ]
1187
+ },
1188
+ "required": [
1189
+ "message",
1190
+ "subject"
1191
+ ],
1192
+ "additionalProperties": false
865
1193
  }
866
- },
867
- "required": [
868
- "message",
869
- "subject"
870
- ],
871
- "additionalProperties": false
1194
+ ]
872
1195
  }
873
- ]
874
- }
1196
+ }
1197
+ ]
875
1198
  },
876
1199
  "surface": {
877
- "type": "array",
878
- "items": {
879
- "anyOf": [
880
- {
881
- "$ref": "#/$defs/Use"
882
- },
883
- {
884
- "type": "object",
885
- "properties": {
886
- "message": {
887
- "type": "string"
888
- },
889
- "kinds": {
890
- "type": "array",
891
- "items": {
892
- "type": "string",
893
- "enum": [
894
- "named",
895
- "default",
896
- "namespace"
897
- ]
898
- }
899
- },
900
- "declares": {
901
- "type": "array",
902
- "items": {
903
- "type": "string",
904
- "enum": [
905
- "function",
906
- "class",
907
- "variable",
908
- "type",
909
- "interface",
910
- "enum",
911
- "expression",
912
- "other"
913
- ]
914
- }
1200
+ "anyOf": [
1201
+ {
1202
+ "$ref": "#/$defs/Include"
1203
+ },
1204
+ {
1205
+ "type": "array",
1206
+ "items": {
1207
+ "anyOf": [
1208
+ {
1209
+ "$ref": "#/$defs/Use"
915
1210
  },
916
- "reexport": {
917
- "type": "boolean"
1211
+ {
1212
+ "$ref": "#/$defs/Include"
918
1213
  },
919
- "match": {
920
- "anyOf": [
921
- {
1214
+ {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "message": {
922
1218
  "type": "string"
923
1219
  },
924
- {
925
- "type": "array",
926
- "items": {
927
- "type": "string"
928
- }
929
- }
930
- ]
931
- },
932
- "matchNot": {
933
- "anyOf": [
934
- {
935
- "type": "string"
1220
+ "kinds": {
1221
+ "anyOf": [
1222
+ {
1223
+ "$ref": "#/$defs/Include"
1224
+ },
1225
+ {
1226
+ "type": "array",
1227
+ "items": {
1228
+ "type": "string",
1229
+ "enum": [
1230
+ "named",
1231
+ "default",
1232
+ "namespace"
1233
+ ]
1234
+ }
1235
+ }
1236
+ ]
936
1237
  },
937
- {
938
- "type": "array",
939
- "items": {
940
- "type": "string"
941
- }
942
- }
943
- ]
944
- },
945
- "forbid": {
946
- "type": "boolean"
947
- },
948
- "allow": {
949
- "anyOf": [
950
- {
951
- "type": "string"
1238
+ "declares": {
1239
+ "anyOf": [
1240
+ {
1241
+ "$ref": "#/$defs/Include"
1242
+ },
1243
+ {
1244
+ "type": "array",
1245
+ "items": {
1246
+ "type": "string",
1247
+ "enum": [
1248
+ "function",
1249
+ "class",
1250
+ "variable",
1251
+ "type",
1252
+ "interface",
1253
+ "enum",
1254
+ "expression",
1255
+ "other"
1256
+ ]
1257
+ }
1258
+ }
1259
+ ]
952
1260
  },
953
- {
954
- "type": "array",
955
- "items": {
956
- "type": "string"
957
- }
958
- }
959
- ]
960
- },
961
- "convention": {
962
- "anyOf": [
963
- {
964
- "type": "string",
965
- "enum": [
966
- "kebab-case",
967
- "camelCase",
968
- "PascalCase",
969
- "snake_case"
1261
+ "reexport": {
1262
+ "type": "boolean"
1263
+ },
1264
+ "match": {
1265
+ "anyOf": [
1266
+ {
1267
+ "type": "string"
1268
+ },
1269
+ {
1270
+ "anyOf": [
1271
+ {
1272
+ "$ref": "#/$defs/Include"
1273
+ },
1274
+ {
1275
+ "type": "array",
1276
+ "items": {
1277
+ "type": "string"
1278
+ }
1279
+ }
1280
+ ]
1281
+ }
970
1282
  ]
971
1283
  },
972
- {
1284
+ "matchNot": {
1285
+ "anyOf": [
1286
+ {
1287
+ "type": "string"
1288
+ },
1289
+ {
1290
+ "anyOf": [
1291
+ {
1292
+ "$ref": "#/$defs/Include"
1293
+ },
1294
+ {
1295
+ "type": "array",
1296
+ "items": {
1297
+ "type": "string"
1298
+ }
1299
+ }
1300
+ ]
1301
+ }
1302
+ ]
1303
+ },
1304
+ "forbid": {
1305
+ "type": "boolean"
1306
+ },
1307
+ "allow": {
1308
+ "anyOf": [
1309
+ {
1310
+ "type": "string"
1311
+ },
1312
+ {
1313
+ "anyOf": [
1314
+ {
1315
+ "$ref": "#/$defs/Include"
1316
+ },
1317
+ {
1318
+ "type": "array",
1319
+ "items": {
1320
+ "type": "string"
1321
+ }
1322
+ }
1323
+ ]
1324
+ }
1325
+ ]
1326
+ },
1327
+ "convention": {
1328
+ "anyOf": [
1329
+ {
1330
+ "type": "string",
1331
+ "enum": [
1332
+ "kebab-case",
1333
+ "camelCase",
1334
+ "PascalCase",
1335
+ "snake_case"
1336
+ ]
1337
+ },
1338
+ {
1339
+ "anyOf": [
1340
+ {
1341
+ "$ref": "#/$defs/Use"
1342
+ },
1343
+ {
1344
+ "$ref": "#/$defs/Include"
1345
+ },
1346
+ {
1347
+ "type": "object",
1348
+ "properties": {
1349
+ "regex": {
1350
+ "type": "string"
1351
+ }
1352
+ },
1353
+ "required": [
1354
+ "regex"
1355
+ ],
1356
+ "additionalProperties": false
1357
+ }
1358
+ ]
1359
+ }
1360
+ ]
1361
+ },
1362
+ "count": {
973
1363
  "anyOf": [
974
1364
  {
975
1365
  "$ref": "#/$defs/Use"
976
1366
  },
1367
+ {
1368
+ "$ref": "#/$defs/Include"
1369
+ },
977
1370
  {
978
1371
  "type": "object",
979
1372
  "properties": {
980
- "regex": {
981
- "type": "string"
1373
+ "min": {
1374
+ "type": "number"
1375
+ },
1376
+ "max": {
1377
+ "type": "number"
982
1378
  }
983
1379
  },
984
- "required": [
985
- "regex"
986
- ],
987
1380
  "additionalProperties": false
988
1381
  }
989
1382
  ]
990
- }
991
- ]
992
- },
993
- "count": {
994
- "anyOf": [
995
- {
996
- "$ref": "#/$defs/Use"
997
1383
  },
998
- {
999
- "type": "object",
1000
- "properties": {
1001
- "min": {
1002
- "type": "number"
1384
+ "except": {
1385
+ "anyOf": [
1386
+ {
1387
+ "type": "string"
1003
1388
  },
1004
- "max": {
1005
- "type": "number"
1389
+ {
1390
+ "anyOf": [
1391
+ {
1392
+ "$ref": "#/$defs/Include"
1393
+ },
1394
+ {
1395
+ "type": "array",
1396
+ "items": {
1397
+ "type": "string"
1398
+ }
1399
+ }
1400
+ ]
1006
1401
  }
1007
- },
1008
- "additionalProperties": false
1009
- }
1010
- ]
1011
- },
1012
- "except": {
1013
- "anyOf": [
1014
- {
1015
- "type": "string"
1016
- },
1017
- {
1018
- "type": "array",
1019
- "items": {
1020
- "type": "string"
1021
- }
1022
- }
1023
- ]
1024
- },
1025
- "probe": {
1026
- "anyOf": [
1027
- {
1028
- "$ref": "#/$defs/Use"
1402
+ ]
1029
1403
  },
1030
- {
1031
- "type": "object",
1032
- "properties": {
1033
- "source": {
1034
- "type": "string"
1404
+ "probe": {
1405
+ "anyOf": [
1406
+ {
1407
+ "$ref": "#/$defs/Use"
1408
+ },
1409
+ {
1410
+ "$ref": "#/$defs/Include"
1411
+ },
1412
+ {
1413
+ "type": "object",
1414
+ "properties": {
1415
+ "source": {
1416
+ "type": "string"
1417
+ }
1418
+ },
1419
+ "required": [
1420
+ "source"
1421
+ ],
1422
+ "additionalProperties": false
1035
1423
  }
1036
- },
1037
- "required": [
1038
- "source"
1039
- ],
1040
- "additionalProperties": false
1424
+ ]
1041
1425
  }
1042
- ]
1426
+ },
1427
+ "required": [
1428
+ "message"
1429
+ ],
1430
+ "additionalProperties": false
1043
1431
  }
1044
- },
1045
- "required": [
1046
- "message"
1047
- ],
1048
- "additionalProperties": false
1432
+ ]
1049
1433
  }
1050
- ]
1051
- }
1434
+ }
1435
+ ]
1052
1436
  },
1053
1437
  "requires": {
1054
- "type": "array",
1055
- "items": {
1056
- "type": "string"
1057
- }
1438
+ "anyOf": [
1439
+ {
1440
+ "$ref": "#/$defs/Include"
1441
+ },
1442
+ {
1443
+ "type": "array",
1444
+ "items": {
1445
+ "type": "string"
1446
+ }
1447
+ }
1448
+ ]
1058
1449
  },
1059
1450
  "requiresNot": {
1060
- "type": "array",
1061
- "items": {
1062
- "type": "string"
1063
- }
1451
+ "anyOf": [
1452
+ {
1453
+ "$ref": "#/$defs/Include"
1454
+ },
1455
+ {
1456
+ "type": "array",
1457
+ "items": {
1458
+ "type": "string"
1459
+ }
1460
+ }
1461
+ ]
1064
1462
  },
1065
1463
  "children": {
1066
1464
  "type": "object",
@@ -1084,6 +1482,19 @@
1084
1482
  "required": [
1085
1483
  "use"
1086
1484
  ]
1485
+ },
1486
+ "Include": {
1487
+ "type": "object",
1488
+ "description": "A reference to another YAML or JSON file, relative to this one. Replaced by that file's whole value before the manifest is decoded; a list item naming a file that holds a list is spliced in. Nothing may be written beside `include`.",
1489
+ "properties": {
1490
+ "include": {
1491
+ "type": "string"
1492
+ }
1493
+ },
1494
+ "required": [
1495
+ "include"
1496
+ ],
1497
+ "additionalProperties": false
1087
1498
  }
1088
1499
  }
1089
1500
  }