@goodbones/core 0.1.0-beta.1 → 0.1.0-beta.10

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 (164) hide show
  1. package/build/dts/core/campaigns.d.ts +141 -0
  2. package/build/dts/core/campaigns.d.ts.map +1 -0
  3. package/build/dts/core/coverage.d.ts +20 -0
  4. package/build/dts/core/coverage.d.ts.map +1 -1
  5. package/build/dts/core/graph.d.ts +2 -0
  6. package/build/dts/core/graph.d.ts.map +1 -1
  7. package/build/dts/core/imports.d.ts +3 -1
  8. package/build/dts/core/imports.d.ts.map +1 -1
  9. package/build/dts/core/ledger.d.ts +61 -0
  10. package/build/dts/core/ledger.d.ts.map +1 -0
  11. package/build/dts/core/slack.d.ts +22 -0
  12. package/build/dts/core/slack.d.ts.map +1 -0
  13. package/build/dts/core/structure.d.ts +1 -0
  14. package/build/dts/core/structure.d.ts.map +1 -1
  15. package/build/dts/domain/architecture-config.d.ts +324 -1
  16. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  17. package/build/dts/domain/architecture-error.d.ts +8 -0
  18. package/build/dts/domain/architecture-error.d.ts.map +1 -1
  19. package/build/dts/domain/facts.d.ts +1 -0
  20. package/build/dts/domain/facts.d.ts.map +1 -1
  21. package/build/dts/domain/manifest-location.d.ts +9 -0
  22. package/build/dts/domain/manifest-location.d.ts.map +1 -0
  23. package/build/dts/domain/report.d.ts +16 -0
  24. package/build/dts/domain/report.d.ts.map +1 -0
  25. package/build/dts/domain/snapshot.d.ts +224 -0
  26. package/build/dts/domain/snapshot.d.ts.map +1 -0
  27. package/build/dts/domain/violation.d.ts +1 -1
  28. package/build/dts/domain/violation.d.ts.map +1 -1
  29. package/build/dts/index.d.ts +24 -9
  30. package/build/dts/index.d.ts.map +1 -1
  31. package/build/dts/infrastructure/campaign-functions.d.ts +7 -0
  32. package/build/dts/infrastructure/campaign-functions.d.ts.map +1 -0
  33. package/build/dts/infrastructure/manifest-file.d.ts +11 -2
  34. package/build/dts/infrastructure/manifest-file.d.ts.map +1 -1
  35. package/build/dts/infrastructure/manifest-include.d.ts +16 -0
  36. package/build/dts/infrastructure/manifest-include.d.ts.map +1 -0
  37. package/build/dts/infrastructure/report-source-fake.d.ts +4 -0
  38. package/build/dts/infrastructure/report-source-fake.d.ts.map +1 -0
  39. package/build/dts/infrastructure/report-source-live.d.ts +3 -0
  40. package/build/dts/infrastructure/report-source-live.d.ts.map +1 -0
  41. package/build/dts/infrastructure/syntax-matcher-fake.d.ts +10 -0
  42. package/build/dts/infrastructure/syntax-matcher-fake.d.ts.map +1 -0
  43. package/build/dts/infrastructure/walk.d.ts +6 -0
  44. package/build/dts/infrastructure/walk.d.ts.map +1 -1
  45. package/build/dts/load/policy.d.ts +16 -0
  46. package/build/dts/load/policy.d.ts.map +1 -1
  47. package/build/dts/manifest/compile.d.ts +7 -2
  48. package/build/dts/manifest/compile.d.ts.map +1 -1
  49. package/build/dts/manifest/expand.d.ts +27 -0
  50. package/build/dts/manifest/expand.d.ts.map +1 -0
  51. package/build/dts/manifest/infer.d.ts +55 -0
  52. package/build/dts/manifest/infer.d.ts.map +1 -0
  53. package/build/dts/manifest/json-schema.d.ts +10 -0
  54. package/build/dts/manifest/json-schema.d.ts.map +1 -0
  55. package/build/dts/manifest/manifest.d.ts +381 -1
  56. package/build/dts/manifest/manifest.d.ts.map +1 -1
  57. package/build/dts/ports/campaign-predicate.d.ts +24 -0
  58. package/build/dts/ports/campaign-predicate.d.ts.map +1 -0
  59. package/build/dts/ports/language.d.ts +4 -0
  60. package/build/dts/ports/language.d.ts.map +1 -1
  61. package/build/dts/ports/report-source.d.ts +14 -0
  62. package/build/dts/ports/report-source.d.ts.map +1 -0
  63. package/build/dts/ports/syntax-matcher.d.ts +21 -0
  64. package/build/dts/ports/syntax-matcher.d.ts.map +1 -0
  65. package/build/dts/testing.d.ts +2 -0
  66. package/build/dts/testing.d.ts.map +1 -1
  67. package/build/esm/core/campaigns.js +778 -0
  68. package/build/esm/core/campaigns.js.map +1 -0
  69. package/build/esm/core/coverage.js +107 -32
  70. package/build/esm/core/coverage.js.map +1 -1
  71. package/build/esm/core/graph.js +45 -0
  72. package/build/esm/core/graph.js.map +1 -1
  73. package/build/esm/core/imports.js +14 -9
  74. package/build/esm/core/imports.js.map +1 -1
  75. package/build/esm/core/ledger.js +171 -0
  76. package/build/esm/core/ledger.js.map +1 -0
  77. package/build/esm/core/slack.js +76 -0
  78. package/build/esm/core/slack.js.map +1 -0
  79. package/build/esm/core/structure.js +5 -2
  80. package/build/esm/core/structure.js.map +1 -1
  81. package/build/esm/domain/architecture-config.js +158 -1
  82. package/build/esm/domain/architecture-config.js.map +1 -1
  83. package/build/esm/domain/architecture-error.js +27 -0
  84. package/build/esm/domain/architecture-error.js.map +1 -1
  85. package/build/esm/domain/manifest-location.js +21 -0
  86. package/build/esm/domain/manifest-location.js.map +1 -0
  87. package/build/esm/domain/report.js +168 -0
  88. package/build/esm/domain/report.js.map +1 -0
  89. package/build/esm/domain/snapshot.js +141 -0
  90. package/build/esm/domain/snapshot.js.map +1 -0
  91. package/build/esm/domain/violation.js.map +1 -1
  92. package/build/esm/index.js +21 -8
  93. package/build/esm/index.js.map +1 -1
  94. package/build/esm/infrastructure/campaign-functions.js +67 -0
  95. package/build/esm/infrastructure/campaign-functions.js.map +1 -0
  96. package/build/esm/infrastructure/manifest-file.js +158 -7
  97. package/build/esm/infrastructure/manifest-file.js.map +1 -1
  98. package/build/esm/infrastructure/manifest-include.js +187 -0
  99. package/build/esm/infrastructure/manifest-include.js.map +1 -0
  100. package/build/esm/infrastructure/report-source-fake.js +6 -0
  101. package/build/esm/infrastructure/report-source-fake.js.map +1 -0
  102. package/build/esm/infrastructure/report-source-live.js +165 -0
  103. package/build/esm/infrastructure/report-source-live.js.map +1 -0
  104. package/build/esm/infrastructure/syntax-matcher-fake.js +33 -0
  105. package/build/esm/infrastructure/syntax-matcher-fake.js.map +1 -0
  106. package/build/esm/infrastructure/walk.js +57 -1
  107. package/build/esm/infrastructure/walk.js.map +1 -1
  108. package/build/esm/load/policy.js +123 -3
  109. package/build/esm/load/policy.js.map +1 -1
  110. package/build/esm/manifest/compile.js +228 -26
  111. package/build/esm/manifest/compile.js.map +1 -1
  112. package/build/esm/manifest/expand.js +116 -0
  113. package/build/esm/manifest/expand.js.map +1 -0
  114. package/build/esm/manifest/infer.js +455 -0
  115. package/build/esm/manifest/infer.js.map +1 -0
  116. package/build/esm/manifest/json-schema.js +135 -0
  117. package/build/esm/manifest/json-schema.js.map +1 -0
  118. package/build/esm/manifest/manifest.js +243 -5
  119. package/build/esm/manifest/manifest.js.map +1 -1
  120. package/build/esm/ports/campaign-predicate.js +2 -0
  121. package/build/esm/ports/campaign-predicate.js.map +1 -0
  122. package/build/esm/ports/report-source.js +7 -0
  123. package/build/esm/ports/report-source.js.map +1 -0
  124. package/build/esm/ports/syntax-matcher.js +12 -0
  125. package/build/esm/ports/syntax-matcher.js.map +1 -0
  126. package/build/esm/testing.js +2 -0
  127. package/build/esm/testing.js.map +1 -1
  128. package/package.json +9 -3
  129. package/schema/architecture-node.schema.json +2405 -0
  130. package/schema/architecture.schema.json +2825 -0
  131. package/schema/conformance.schema.json +775 -0
  132. package/src/core/campaigns.ts +1056 -0
  133. package/src/core/coverage.ts +164 -34
  134. package/src/core/graph.ts +48 -0
  135. package/src/core/imports.ts +29 -13
  136. package/src/core/ledger.ts +242 -0
  137. package/src/core/slack.ts +135 -0
  138. package/src/core/structure.ts +10 -5
  139. package/src/domain/architecture-config.ts +205 -1
  140. package/src/domain/architecture-error.ts +30 -0
  141. package/src/domain/facts.ts +9 -4
  142. package/src/domain/manifest-location.ts +41 -0
  143. package/src/domain/report.ts +203 -0
  144. package/src/domain/snapshot.ts +302 -0
  145. package/src/domain/violation.ts +4 -1
  146. package/src/index.ts +172 -3
  147. package/src/infrastructure/campaign-functions.ts +98 -0
  148. package/src/infrastructure/manifest-file.ts +204 -8
  149. package/src/infrastructure/manifest-include.ts +318 -0
  150. package/src/infrastructure/report-source-fake.ts +10 -0
  151. package/src/infrastructure/report-source-live.ts +192 -0
  152. package/src/infrastructure/syntax-matcher-fake.ts +51 -0
  153. package/src/infrastructure/walk.ts +70 -1
  154. package/src/load/policy.ts +193 -3
  155. package/src/manifest/compile.ts +290 -28
  156. package/src/manifest/expand.ts +183 -0
  157. package/src/manifest/infer.ts +643 -0
  158. package/src/manifest/json-schema.ts +168 -0
  159. package/src/manifest/manifest.ts +339 -11
  160. package/src/ports/campaign-predicate.ts +30 -0
  161. package/src/ports/language.ts +17 -0
  162. package/src/ports/report-source.ts +35 -0
  163. package/src/ports/syntax-matcher.ts +42 -0
  164. package/src/testing.ts +2 -0
@@ -0,0 +1,2825 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://dataquail.github.io/goodbones/schema/architecture.schema.json",
4
+ "title": "Architecture manifest",
5
+ "description": "One manifest of a repository's architecture, read by @goodbones/cli and @goodbones/oxlint. See https://dataquail.github.io/goodbones/architecture-rules/manifest/.",
6
+ "type": "object",
7
+ "required": [
8
+ "resolve",
9
+ "tree"
10
+ ],
11
+ "additionalProperties": false,
12
+ "properties": {
13
+ "$schema": {
14
+ "type": "string",
15
+ "description": "For editors. Ignored by the loader."
16
+ },
17
+ "defs": {
18
+ "type": "object",
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
+ "additionalProperties": true
21
+ },
22
+ "resolve": {
23
+ "anyOf": [
24
+ {
25
+ "$ref": "#/$defs/Use"
26
+ },
27
+ {
28
+ "$ref": "#/$defs/Include"
29
+ },
30
+ {
31
+ "type": "object",
32
+ "properties": {
33
+ "scopes": {
34
+ "anyOf": [
35
+ {
36
+ "$ref": "#/$defs/Include"
37
+ },
38
+ {
39
+ "type": "array",
40
+ "items": {
41
+ "anyOf": [
42
+ {
43
+ "$ref": "#/$defs/Use"
44
+ },
45
+ {
46
+ "$ref": "#/$defs/Include"
47
+ },
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
+ ]
66
+ }
67
+ }
68
+ ]
69
+ },
70
+ "unresolved": {
71
+ "type": "string",
72
+ "enum": [
73
+ "error",
74
+ "off"
75
+ ]
76
+ },
77
+ "ignoreUnresolved": {
78
+ "anyOf": [
79
+ {
80
+ "$ref": "#/$defs/Include"
81
+ },
82
+ {
83
+ "type": "array",
84
+ "items": {
85
+ "type": "string"
86
+ }
87
+ }
88
+ ]
89
+ }
90
+ },
91
+ "required": [
92
+ "scopes"
93
+ ],
94
+ "additionalProperties": false
95
+ }
96
+ ]
97
+ },
98
+ "baseline": {
99
+ "type": "string"
100
+ },
101
+ "deny": {
102
+ "anyOf": [
103
+ {
104
+ "$ref": "#/$defs/Include"
105
+ },
106
+ {
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
+ {
122
+ "type": "string"
123
+ },
124
+ {
125
+ "anyOf": [
126
+ {
127
+ "$ref": "#/$defs/Include"
128
+ },
129
+ {
130
+ "type": "array",
131
+ "items": {
132
+ "type": "string"
133
+ }
134
+ }
135
+ ]
136
+ }
137
+ ]
138
+ },
139
+ "matchNot": {
140
+ "anyOf": [
141
+ {
142
+ "type": "string"
143
+ },
144
+ {
145
+ "anyOf": [
146
+ {
147
+ "$ref": "#/$defs/Include"
148
+ },
149
+ {
150
+ "type": "array",
151
+ "items": {
152
+ "type": "string"
153
+ }
154
+ }
155
+ ]
156
+ }
157
+ ]
158
+ },
159
+ "except": {
160
+ "anyOf": [
161
+ {
162
+ "type": "string"
163
+ },
164
+ {
165
+ "anyOf": [
166
+ {
167
+ "$ref": "#/$defs/Include"
168
+ },
169
+ {
170
+ "type": "array",
171
+ "items": {
172
+ "type": "string"
173
+ }
174
+ }
175
+ ]
176
+ }
177
+ ]
178
+ },
179
+ "message": {
180
+ "type": "string"
181
+ }
182
+ },
183
+ "required": [
184
+ "match",
185
+ "message"
186
+ ],
187
+ "additionalProperties": false
188
+ }
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"
214
+ },
215
+ "message": {
216
+ "type": "string"
217
+ },
218
+ "module": {
219
+ "anyOf": [
220
+ {
221
+ "type": "string"
222
+ },
223
+ {
224
+ "anyOf": [
225
+ {
226
+ "$ref": "#/$defs/Include"
227
+ },
228
+ {
229
+ "type": "array",
230
+ "items": {
231
+ "type": "string"
232
+ }
233
+ }
234
+ ]
235
+ }
236
+ ]
237
+ },
238
+ "symbols": {
239
+ "anyOf": [
240
+ {
241
+ "$ref": "#/$defs/Include"
242
+ },
243
+ {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "string"
247
+ }
248
+ }
249
+ ]
250
+ },
251
+ "kinds": {
252
+ "anyOf": [
253
+ {
254
+ "$ref": "#/$defs/Include"
255
+ },
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"
273
+ },
274
+ {
275
+ "anyOf": [
276
+ {
277
+ "$ref": "#/$defs/Include"
278
+ },
279
+ {
280
+ "type": "array",
281
+ "items": {
282
+ "type": "string"
283
+ }
284
+ }
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"
299
+ },
300
+ {
301
+ "$ref": "#/$defs/Include"
302
+ },
303
+ {
304
+ "type": "object",
305
+ "properties": {
306
+ "source": {
307
+ "type": "string"
308
+ },
309
+ "symbol": {
310
+ "type": "string"
311
+ }
312
+ },
313
+ "required": [
314
+ "source",
315
+ "symbol"
316
+ ],
317
+ "additionalProperties": false
318
+ }
319
+ ]
320
+ }
321
+ },
322
+ "required": [
323
+ "name",
324
+ "message",
325
+ "module"
326
+ ],
327
+ "additionalProperties": false
328
+ }
329
+ ]
330
+ }
331
+ }
332
+ ]
333
+ },
334
+ "graph": {
335
+ "anyOf": [
336
+ {
337
+ "$ref": "#/$defs/Use"
338
+ },
339
+ {
340
+ "$ref": "#/$defs/Include"
341
+ },
342
+ {
343
+ "type": "object",
344
+ "properties": {
345
+ "cycles": {
346
+ "anyOf": [
347
+ {
348
+ "$ref": "#/$defs/Include"
349
+ },
350
+ {
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
+ },
711
+ "conformance": {
712
+ "anyOf": [
713
+ {
714
+ "$ref": "#/$defs/Use"
715
+ },
716
+ {
717
+ "$ref": "#/$defs/Include"
718
+ },
719
+ {
720
+ "type": "object",
721
+ "properties": {
722
+ "residue": {
723
+ "type": "number"
724
+ },
725
+ "vacant": {
726
+ "type": "number"
727
+ },
728
+ "slack": {
729
+ "type": "number"
730
+ },
731
+ "concentration": {
732
+ "type": "number"
733
+ }
734
+ },
735
+ "additionalProperties": false
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "additionalProperties": false
741
+ }
742
+ ]
743
+ },
744
+ "campaigns": {
745
+ "anyOf": [
746
+ {
747
+ "$ref": "#/$defs/Include"
748
+ },
749
+ {
750
+ "type": "array",
751
+ "items": {
752
+ "anyOf": [
753
+ {
754
+ "$ref": "#/$defs/Use"
755
+ },
756
+ {
757
+ "$ref": "#/$defs/Include"
758
+ },
759
+ {
760
+ "type": "object",
761
+ "properties": {
762
+ "id": {
763
+ "type": "string",
764
+ "allOf": [
765
+ {
766
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
767
+ }
768
+ ]
769
+ },
770
+ "title": {
771
+ "type": "string"
772
+ },
773
+ "why": {
774
+ "type": "string"
775
+ },
776
+ "how": {
777
+ "type": "string"
778
+ },
779
+ "owner": {
780
+ "type": "string"
781
+ },
782
+ "scope": {
783
+ "anyOf": [
784
+ {
785
+ "type": "string"
786
+ },
787
+ {
788
+ "anyOf": [
789
+ {
790
+ "$ref": "#/$defs/Include"
791
+ },
792
+ {
793
+ "type": "array",
794
+ "items": {
795
+ "type": "string"
796
+ }
797
+ }
798
+ ]
799
+ }
800
+ ]
801
+ },
802
+ "unit": {
803
+ "type": "string",
804
+ "enum": [
805
+ "file",
806
+ "declaration",
807
+ "match"
808
+ ]
809
+ },
810
+ "detect": {
811
+ "$ref": "#/$defs/Detector"
812
+ },
813
+ "probes": {
814
+ "anyOf": [
815
+ {
816
+ "$ref": "#/$defs/Use"
817
+ },
818
+ {
819
+ "$ref": "#/$defs/Include"
820
+ },
821
+ {
822
+ "type": "object",
823
+ "properties": {
824
+ "fires": {
825
+ "anyOf": [
826
+ {
827
+ "$ref": "#/$defs/Include"
828
+ },
829
+ {
830
+ "type": "array",
831
+ "items": {
832
+ "anyOf": [
833
+ {
834
+ "$ref": "#/$defs/Use"
835
+ },
836
+ {
837
+ "$ref": "#/$defs/Include"
838
+ },
839
+ {
840
+ "type": "object",
841
+ "properties": {
842
+ "path": {
843
+ "type": "string"
844
+ },
845
+ "source": {
846
+ "type": "string"
847
+ },
848
+ "edges": {
849
+ "type": "object",
850
+ "additionalProperties": {
851
+ "anyOf": [
852
+ {
853
+ "type": "string"
854
+ },
855
+ {
856
+ "anyOf": [
857
+ {
858
+ "$ref": "#/$defs/Use"
859
+ },
860
+ {
861
+ "$ref": "#/$defs/Include"
862
+ },
863
+ {
864
+ "type": "object",
865
+ "properties": {
866
+ "external": {
867
+ "type": "string"
868
+ }
869
+ },
870
+ "required": [
871
+ "external"
872
+ ],
873
+ "additionalProperties": false
874
+ }
875
+ ]
876
+ },
877
+ {
878
+ "anyOf": [
879
+ {
880
+ "$ref": "#/$defs/Use"
881
+ },
882
+ {
883
+ "$ref": "#/$defs/Include"
884
+ },
885
+ {
886
+ "type": "object",
887
+ "properties": {
888
+ "builtin": {
889
+ "type": "string"
890
+ }
891
+ },
892
+ "required": [
893
+ "builtin"
894
+ ],
895
+ "additionalProperties": false
896
+ }
897
+ ]
898
+ }
899
+ ]
900
+ }
901
+ },
902
+ "files": {
903
+ "anyOf": [
904
+ {
905
+ "$ref": "#/$defs/Include"
906
+ },
907
+ {
908
+ "type": "array",
909
+ "items": {
910
+ "type": "string"
911
+ }
912
+ }
913
+ ]
914
+ },
915
+ "report": {
916
+ "anyOf": [
917
+ {
918
+ "$ref": "#/$defs/Include"
919
+ },
920
+ {
921
+ "type": "array",
922
+ "items": {
923
+ "anyOf": [
924
+ {
925
+ "$ref": "#/$defs/Use"
926
+ },
927
+ {
928
+ "$ref": "#/$defs/Include"
929
+ },
930
+ {
931
+ "type": "object",
932
+ "properties": {
933
+ "line": {
934
+ "type": "number"
935
+ },
936
+ "column": {
937
+ "type": "number"
938
+ },
939
+ "code": {
940
+ "type": "string"
941
+ },
942
+ "message": {
943
+ "type": "string"
944
+ }
945
+ },
946
+ "required": [
947
+ "line"
948
+ ],
949
+ "additionalProperties": false
950
+ }
951
+ ]
952
+ }
953
+ }
954
+ ]
955
+ }
956
+ },
957
+ "required": [
958
+ "path"
959
+ ],
960
+ "additionalProperties": false
961
+ }
962
+ ]
963
+ }
964
+ }
965
+ ]
966
+ },
967
+ "ignores": {
968
+ "anyOf": [
969
+ {
970
+ "$ref": "#/$defs/Include"
971
+ },
972
+ {
973
+ "type": "array",
974
+ "items": {
975
+ "anyOf": [
976
+ {
977
+ "$ref": "#/$defs/Use"
978
+ },
979
+ {
980
+ "$ref": "#/$defs/Include"
981
+ },
982
+ {
983
+ "type": "object",
984
+ "properties": {
985
+ "path": {
986
+ "type": "string"
987
+ },
988
+ "source": {
989
+ "type": "string"
990
+ },
991
+ "edges": {
992
+ "type": "object",
993
+ "additionalProperties": {
994
+ "anyOf": [
995
+ {
996
+ "type": "string"
997
+ },
998
+ {
999
+ "anyOf": [
1000
+ {
1001
+ "$ref": "#/$defs/Use"
1002
+ },
1003
+ {
1004
+ "$ref": "#/$defs/Include"
1005
+ },
1006
+ {
1007
+ "type": "object",
1008
+ "properties": {
1009
+ "external": {
1010
+ "type": "string"
1011
+ }
1012
+ },
1013
+ "required": [
1014
+ "external"
1015
+ ],
1016
+ "additionalProperties": false
1017
+ }
1018
+ ]
1019
+ },
1020
+ {
1021
+ "anyOf": [
1022
+ {
1023
+ "$ref": "#/$defs/Use"
1024
+ },
1025
+ {
1026
+ "$ref": "#/$defs/Include"
1027
+ },
1028
+ {
1029
+ "type": "object",
1030
+ "properties": {
1031
+ "builtin": {
1032
+ "type": "string"
1033
+ }
1034
+ },
1035
+ "required": [
1036
+ "builtin"
1037
+ ],
1038
+ "additionalProperties": false
1039
+ }
1040
+ ]
1041
+ }
1042
+ ]
1043
+ }
1044
+ },
1045
+ "files": {
1046
+ "anyOf": [
1047
+ {
1048
+ "$ref": "#/$defs/Include"
1049
+ },
1050
+ {
1051
+ "type": "array",
1052
+ "items": {
1053
+ "type": "string"
1054
+ }
1055
+ }
1056
+ ]
1057
+ },
1058
+ "report": {
1059
+ "anyOf": [
1060
+ {
1061
+ "$ref": "#/$defs/Include"
1062
+ },
1063
+ {
1064
+ "type": "array",
1065
+ "items": {
1066
+ "anyOf": [
1067
+ {
1068
+ "$ref": "#/$defs/Use"
1069
+ },
1070
+ {
1071
+ "$ref": "#/$defs/Include"
1072
+ },
1073
+ {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "line": {
1077
+ "type": "number"
1078
+ },
1079
+ "column": {
1080
+ "type": "number"
1081
+ },
1082
+ "code": {
1083
+ "type": "string"
1084
+ },
1085
+ "message": {
1086
+ "type": "string"
1087
+ }
1088
+ },
1089
+ "required": [
1090
+ "line"
1091
+ ],
1092
+ "additionalProperties": false
1093
+ }
1094
+ ]
1095
+ }
1096
+ }
1097
+ ]
1098
+ }
1099
+ },
1100
+ "required": [
1101
+ "path"
1102
+ ],
1103
+ "additionalProperties": false
1104
+ }
1105
+ ]
1106
+ }
1107
+ }
1108
+ ]
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "fires"
1113
+ ],
1114
+ "additionalProperties": false
1115
+ }
1116
+ ]
1117
+ },
1118
+ "staleAfter": {
1119
+ "type": "string",
1120
+ "allOf": [
1121
+ {
1122
+ "pattern": "^\\d+[dh]$"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "onComplete": {
1127
+ "type": "string",
1128
+ "enum": [
1129
+ "keep",
1130
+ "remove"
1131
+ ]
1132
+ }
1133
+ },
1134
+ "required": [
1135
+ "id",
1136
+ "why",
1137
+ "how",
1138
+ "scope",
1139
+ "unit",
1140
+ "detect",
1141
+ "probes",
1142
+ "staleAfter"
1143
+ ],
1144
+ "additionalProperties": false
1145
+ }
1146
+ ]
1147
+ }
1148
+ }
1149
+ ]
1150
+ },
1151
+ "ledger": {
1152
+ "type": "string"
1153
+ },
1154
+ "aliases": {
1155
+ "type": "object",
1156
+ "additionalProperties": {
1157
+ "type": "string"
1158
+ }
1159
+ },
1160
+ "tree": {
1161
+ "type": "object",
1162
+ "additionalProperties": {
1163
+ "$ref": "#/$defs/ManifestNode"
1164
+ }
1165
+ }
1166
+ },
1167
+ "$defs": {
1168
+ "Detector": {
1169
+ "anyOf": [
1170
+ {
1171
+ "anyOf": [
1172
+ {
1173
+ "$ref": "#/$defs/Use"
1174
+ },
1175
+ {
1176
+ "$ref": "#/$defs/Include"
1177
+ },
1178
+ {
1179
+ "type": "object",
1180
+ "properties": {
1181
+ "all": {
1182
+ "anyOf": [
1183
+ {
1184
+ "$ref": "#/$defs/Include"
1185
+ },
1186
+ {
1187
+ "type": "array",
1188
+ "items": {
1189
+ "$ref": "#/$defs/Detector"
1190
+ }
1191
+ }
1192
+ ]
1193
+ }
1194
+ },
1195
+ "required": [
1196
+ "all"
1197
+ ],
1198
+ "additionalProperties": false
1199
+ }
1200
+ ]
1201
+ },
1202
+ {
1203
+ "anyOf": [
1204
+ {
1205
+ "$ref": "#/$defs/Use"
1206
+ },
1207
+ {
1208
+ "$ref": "#/$defs/Include"
1209
+ },
1210
+ {
1211
+ "type": "object",
1212
+ "properties": {
1213
+ "any": {
1214
+ "anyOf": [
1215
+ {
1216
+ "$ref": "#/$defs/Include"
1217
+ },
1218
+ {
1219
+ "type": "array",
1220
+ "items": {
1221
+ "$ref": "#/$defs/Detector"
1222
+ }
1223
+ }
1224
+ ]
1225
+ }
1226
+ },
1227
+ "required": [
1228
+ "any"
1229
+ ],
1230
+ "additionalProperties": false
1231
+ }
1232
+ ]
1233
+ },
1234
+ {
1235
+ "anyOf": [
1236
+ {
1237
+ "$ref": "#/$defs/Use"
1238
+ },
1239
+ {
1240
+ "$ref": "#/$defs/Include"
1241
+ },
1242
+ {
1243
+ "type": "object",
1244
+ "properties": {
1245
+ "not": {
1246
+ "$ref": "#/$defs/Detector"
1247
+ }
1248
+ },
1249
+ "required": [
1250
+ "not"
1251
+ ],
1252
+ "additionalProperties": false
1253
+ }
1254
+ ]
1255
+ },
1256
+ {
1257
+ "anyOf": [
1258
+ {
1259
+ "$ref": "#/$defs/Use"
1260
+ },
1261
+ {
1262
+ "$ref": "#/$defs/Include"
1263
+ },
1264
+ {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "path": {
1268
+ "anyOf": [
1269
+ {
1270
+ "$ref": "#/$defs/Use"
1271
+ },
1272
+ {
1273
+ "$ref": "#/$defs/Include"
1274
+ },
1275
+ {
1276
+ "type": "object",
1277
+ "properties": {
1278
+ "file": {
1279
+ "anyOf": [
1280
+ {
1281
+ "type": "string"
1282
+ },
1283
+ {
1284
+ "anyOf": [
1285
+ {
1286
+ "$ref": "#/$defs/Include"
1287
+ },
1288
+ {
1289
+ "type": "array",
1290
+ "items": {
1291
+ "type": "string"
1292
+ }
1293
+ }
1294
+ ]
1295
+ }
1296
+ ]
1297
+ },
1298
+ "fileNot": {
1299
+ "anyOf": [
1300
+ {
1301
+ "type": "string"
1302
+ },
1303
+ {
1304
+ "anyOf": [
1305
+ {
1306
+ "$ref": "#/$defs/Include"
1307
+ },
1308
+ {
1309
+ "type": "array",
1310
+ "items": {
1311
+ "type": "string"
1312
+ }
1313
+ }
1314
+ ]
1315
+ }
1316
+ ]
1317
+ },
1318
+ "subject": {
1319
+ "type": "number"
1320
+ },
1321
+ "convention": {
1322
+ "anyOf": [
1323
+ {
1324
+ "type": "string",
1325
+ "enum": [
1326
+ "kebab-case",
1327
+ "camelCase",
1328
+ "PascalCase",
1329
+ "snake_case"
1330
+ ]
1331
+ },
1332
+ {
1333
+ "anyOf": [
1334
+ {
1335
+ "$ref": "#/$defs/Use"
1336
+ },
1337
+ {
1338
+ "$ref": "#/$defs/Include"
1339
+ },
1340
+ {
1341
+ "type": "object",
1342
+ "properties": {
1343
+ "regex": {
1344
+ "type": "string"
1345
+ }
1346
+ },
1347
+ "required": [
1348
+ "regex"
1349
+ ],
1350
+ "additionalProperties": false
1351
+ }
1352
+ ]
1353
+ }
1354
+ ]
1355
+ }
1356
+ },
1357
+ "required": [
1358
+ "file"
1359
+ ],
1360
+ "additionalProperties": false
1361
+ }
1362
+ ]
1363
+ }
1364
+ },
1365
+ "required": [
1366
+ "path"
1367
+ ],
1368
+ "additionalProperties": false
1369
+ }
1370
+ ]
1371
+ },
1372
+ {
1373
+ "anyOf": [
1374
+ {
1375
+ "$ref": "#/$defs/Use"
1376
+ },
1377
+ {
1378
+ "$ref": "#/$defs/Include"
1379
+ },
1380
+ {
1381
+ "type": "object",
1382
+ "properties": {
1383
+ "imports": {
1384
+ "anyOf": [
1385
+ {
1386
+ "$ref": "#/$defs/Use"
1387
+ },
1388
+ {
1389
+ "$ref": "#/$defs/Include"
1390
+ },
1391
+ {
1392
+ "type": "object",
1393
+ "properties": {
1394
+ "resolves": {
1395
+ "anyOf": [
1396
+ {
1397
+ "type": "string"
1398
+ },
1399
+ {
1400
+ "anyOf": [
1401
+ {
1402
+ "$ref": "#/$defs/Use"
1403
+ },
1404
+ {
1405
+ "$ref": "#/$defs/Include"
1406
+ },
1407
+ {
1408
+ "type": "object",
1409
+ "properties": {
1410
+ "external": {
1411
+ "type": "string"
1412
+ }
1413
+ },
1414
+ "required": [
1415
+ "external"
1416
+ ],
1417
+ "additionalProperties": false
1418
+ }
1419
+ ]
1420
+ },
1421
+ {
1422
+ "anyOf": [
1423
+ {
1424
+ "$ref": "#/$defs/Use"
1425
+ },
1426
+ {
1427
+ "$ref": "#/$defs/Include"
1428
+ },
1429
+ {
1430
+ "type": "object",
1431
+ "properties": {
1432
+ "builtin": {
1433
+ "type": "string"
1434
+ }
1435
+ },
1436
+ "required": [
1437
+ "builtin"
1438
+ ],
1439
+ "additionalProperties": false
1440
+ }
1441
+ ]
1442
+ }
1443
+ ]
1444
+ },
1445
+ "symbols": {
1446
+ "anyOf": [
1447
+ {
1448
+ "$ref": "#/$defs/Include"
1449
+ },
1450
+ {
1451
+ "type": "array",
1452
+ "items": {
1453
+ "type": "string"
1454
+ }
1455
+ }
1456
+ ]
1457
+ }
1458
+ },
1459
+ "required": [
1460
+ "resolves"
1461
+ ],
1462
+ "additionalProperties": false
1463
+ }
1464
+ ]
1465
+ }
1466
+ },
1467
+ "required": [
1468
+ "imports"
1469
+ ],
1470
+ "additionalProperties": false
1471
+ }
1472
+ ]
1473
+ },
1474
+ {
1475
+ "anyOf": [
1476
+ {
1477
+ "$ref": "#/$defs/Use"
1478
+ },
1479
+ {
1480
+ "$ref": "#/$defs/Include"
1481
+ },
1482
+ {
1483
+ "type": "object",
1484
+ "properties": {
1485
+ "exports": {
1486
+ "anyOf": [
1487
+ {
1488
+ "$ref": "#/$defs/Use"
1489
+ },
1490
+ {
1491
+ "$ref": "#/$defs/Include"
1492
+ },
1493
+ {
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "name": {
1497
+ "anyOf": [
1498
+ {
1499
+ "type": "string"
1500
+ },
1501
+ {
1502
+ "anyOf": [
1503
+ {
1504
+ "$ref": "#/$defs/Include"
1505
+ },
1506
+ {
1507
+ "type": "array",
1508
+ "items": {
1509
+ "type": "string"
1510
+ }
1511
+ }
1512
+ ]
1513
+ }
1514
+ ]
1515
+ },
1516
+ "kinds": {
1517
+ "anyOf": [
1518
+ {
1519
+ "$ref": "#/$defs/Include"
1520
+ },
1521
+ {
1522
+ "type": "array",
1523
+ "items": {
1524
+ "type": "string",
1525
+ "enum": [
1526
+ "named",
1527
+ "default",
1528
+ "namespace"
1529
+ ]
1530
+ }
1531
+ }
1532
+ ]
1533
+ },
1534
+ "declares": {
1535
+ "anyOf": [
1536
+ {
1537
+ "$ref": "#/$defs/Include"
1538
+ },
1539
+ {
1540
+ "type": "array",
1541
+ "items": {
1542
+ "type": "string",
1543
+ "enum": [
1544
+ "function",
1545
+ "class",
1546
+ "variable",
1547
+ "type",
1548
+ "interface",
1549
+ "enum",
1550
+ "expression",
1551
+ "other"
1552
+ ]
1553
+ }
1554
+ }
1555
+ ]
1556
+ },
1557
+ "reexport": {
1558
+ "type": "boolean"
1559
+ }
1560
+ },
1561
+ "additionalProperties": false
1562
+ }
1563
+ ]
1564
+ }
1565
+ },
1566
+ "required": [
1567
+ "exports"
1568
+ ],
1569
+ "additionalProperties": false
1570
+ }
1571
+ ]
1572
+ },
1573
+ {
1574
+ "anyOf": [
1575
+ {
1576
+ "$ref": "#/$defs/Use"
1577
+ },
1578
+ {
1579
+ "$ref": "#/$defs/Include"
1580
+ },
1581
+ {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "members": {
1585
+ "anyOf": [
1586
+ {
1587
+ "$ref": "#/$defs/Use"
1588
+ },
1589
+ {
1590
+ "$ref": "#/$defs/Include"
1591
+ },
1592
+ {
1593
+ "type": "object",
1594
+ "properties": {
1595
+ "subject": {
1596
+ "type": "string",
1597
+ "enum": [
1598
+ "members",
1599
+ "calls"
1600
+ ]
1601
+ },
1602
+ "name": {
1603
+ "anyOf": [
1604
+ {
1605
+ "type": "string"
1606
+ },
1607
+ {
1608
+ "anyOf": [
1609
+ {
1610
+ "$ref": "#/$defs/Include"
1611
+ },
1612
+ {
1613
+ "type": "array",
1614
+ "items": {
1615
+ "type": "string"
1616
+ }
1617
+ }
1618
+ ]
1619
+ }
1620
+ ]
1621
+ },
1622
+ "in": {
1623
+ "anyOf": [
1624
+ {
1625
+ "type": "string"
1626
+ },
1627
+ {
1628
+ "anyOf": [
1629
+ {
1630
+ "$ref": "#/$defs/Include"
1631
+ },
1632
+ {
1633
+ "type": "array",
1634
+ "items": {
1635
+ "type": "string"
1636
+ }
1637
+ }
1638
+ ]
1639
+ }
1640
+ ]
1641
+ },
1642
+ "declares": {
1643
+ "anyOf": [
1644
+ {
1645
+ "$ref": "#/$defs/Include"
1646
+ },
1647
+ {
1648
+ "type": "array",
1649
+ "items": {
1650
+ "type": "string",
1651
+ "enum": [
1652
+ "function",
1653
+ "class",
1654
+ "variable",
1655
+ "type",
1656
+ "interface",
1657
+ "enum",
1658
+ "expression",
1659
+ "other"
1660
+ ]
1661
+ }
1662
+ }
1663
+ ]
1664
+ }
1665
+ },
1666
+ "required": [
1667
+ "subject"
1668
+ ],
1669
+ "additionalProperties": false
1670
+ }
1671
+ ]
1672
+ }
1673
+ },
1674
+ "required": [
1675
+ "members"
1676
+ ],
1677
+ "additionalProperties": false
1678
+ }
1679
+ ]
1680
+ },
1681
+ {
1682
+ "anyOf": [
1683
+ {
1684
+ "$ref": "#/$defs/Use"
1685
+ },
1686
+ {
1687
+ "$ref": "#/$defs/Include"
1688
+ },
1689
+ {
1690
+ "type": "object",
1691
+ "properties": {
1692
+ "requires": {
1693
+ "anyOf": [
1694
+ {
1695
+ "$ref": "#/$defs/Include"
1696
+ },
1697
+ {
1698
+ "type": "array",
1699
+ "items": {
1700
+ "type": "string"
1701
+ }
1702
+ }
1703
+ ]
1704
+ }
1705
+ },
1706
+ "required": [
1707
+ "requires"
1708
+ ],
1709
+ "additionalProperties": false
1710
+ }
1711
+ ]
1712
+ },
1713
+ {
1714
+ "anyOf": [
1715
+ {
1716
+ "$ref": "#/$defs/Use"
1717
+ },
1718
+ {
1719
+ "$ref": "#/$defs/Include"
1720
+ },
1721
+ {
1722
+ "type": "object",
1723
+ "properties": {
1724
+ "content": {
1725
+ "anyOf": [
1726
+ {
1727
+ "$ref": "#/$defs/Use"
1728
+ },
1729
+ {
1730
+ "$ref": "#/$defs/Include"
1731
+ },
1732
+ {
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "regex": {
1736
+ "type": "string"
1737
+ }
1738
+ },
1739
+ "required": [
1740
+ "regex"
1741
+ ],
1742
+ "additionalProperties": false
1743
+ }
1744
+ ]
1745
+ }
1746
+ },
1747
+ "required": [
1748
+ "content"
1749
+ ],
1750
+ "additionalProperties": false
1751
+ }
1752
+ ]
1753
+ },
1754
+ {
1755
+ "anyOf": [
1756
+ {
1757
+ "$ref": "#/$defs/Use"
1758
+ },
1759
+ {
1760
+ "$ref": "#/$defs/Include"
1761
+ },
1762
+ {
1763
+ "type": "object",
1764
+ "properties": {
1765
+ "syntax": {
1766
+ "anyOf": [
1767
+ {
1768
+ "$ref": "#/$defs/Use"
1769
+ },
1770
+ {
1771
+ "$ref": "#/$defs/Include"
1772
+ },
1773
+ {
1774
+ "type": "object",
1775
+ "properties": {
1776
+ "pattern": {},
1777
+ "kind": {},
1778
+ "regex": {},
1779
+ "nthChild": {},
1780
+ "inside": {},
1781
+ "has": {},
1782
+ "precedes": {},
1783
+ "follows": {},
1784
+ "all": {},
1785
+ "any": {},
1786
+ "not": {},
1787
+ "where": {
1788
+ "type": "object",
1789
+ "additionalProperties": {
1790
+ "anyOf": [
1791
+ {
1792
+ "$ref": "#/$defs/Use"
1793
+ },
1794
+ {
1795
+ "$ref": "#/$defs/Include"
1796
+ },
1797
+ {
1798
+ "type": "object",
1799
+ "properties": {
1800
+ "regex": {
1801
+ "type": "string"
1802
+ },
1803
+ "binding": {
1804
+ "anyOf": [
1805
+ {
1806
+ "$ref": "#/$defs/Use"
1807
+ },
1808
+ {
1809
+ "$ref": "#/$defs/Include"
1810
+ },
1811
+ {
1812
+ "type": "object",
1813
+ "properties": {
1814
+ "resolves": {
1815
+ "anyOf": [
1816
+ {
1817
+ "type": "string"
1818
+ },
1819
+ {
1820
+ "anyOf": [
1821
+ {
1822
+ "$ref": "#/$defs/Use"
1823
+ },
1824
+ {
1825
+ "$ref": "#/$defs/Include"
1826
+ },
1827
+ {
1828
+ "type": "object",
1829
+ "properties": {
1830
+ "external": {
1831
+ "type": "string"
1832
+ }
1833
+ },
1834
+ "required": [
1835
+ "external"
1836
+ ],
1837
+ "additionalProperties": false
1838
+ }
1839
+ ]
1840
+ },
1841
+ {
1842
+ "anyOf": [
1843
+ {
1844
+ "$ref": "#/$defs/Use"
1845
+ },
1846
+ {
1847
+ "$ref": "#/$defs/Include"
1848
+ },
1849
+ {
1850
+ "type": "object",
1851
+ "properties": {
1852
+ "builtin": {
1853
+ "type": "string"
1854
+ }
1855
+ },
1856
+ "required": [
1857
+ "builtin"
1858
+ ],
1859
+ "additionalProperties": false
1860
+ }
1861
+ ]
1862
+ }
1863
+ ]
1864
+ },
1865
+ "member": {
1866
+ "anyOf": [
1867
+ {
1868
+ "$ref": "#/$defs/Include"
1869
+ },
1870
+ {
1871
+ "type": "array",
1872
+ "items": {
1873
+ "type": "string"
1874
+ }
1875
+ }
1876
+ ]
1877
+ }
1878
+ },
1879
+ "required": [
1880
+ "resolves"
1881
+ ],
1882
+ "additionalProperties": false
1883
+ }
1884
+ ]
1885
+ }
1886
+ },
1887
+ "additionalProperties": false
1888
+ }
1889
+ ]
1890
+ }
1891
+ }
1892
+ },
1893
+ "additionalProperties": false
1894
+ }
1895
+ ]
1896
+ }
1897
+ },
1898
+ "required": [
1899
+ "syntax"
1900
+ ],
1901
+ "additionalProperties": false
1902
+ }
1903
+ ]
1904
+ },
1905
+ {
1906
+ "anyOf": [
1907
+ {
1908
+ "$ref": "#/$defs/Use"
1909
+ },
1910
+ {
1911
+ "$ref": "#/$defs/Include"
1912
+ },
1913
+ {
1914
+ "type": "object",
1915
+ "properties": {
1916
+ "report": {
1917
+ "anyOf": [
1918
+ {
1919
+ "$ref": "#/$defs/Use"
1920
+ },
1921
+ {
1922
+ "$ref": "#/$defs/Include"
1923
+ },
1924
+ {
1925
+ "type": "object",
1926
+ "properties": {
1927
+ "command": {
1928
+ "anyOf": [
1929
+ {
1930
+ "type": "string"
1931
+ },
1932
+ {
1933
+ "anyOf": [
1934
+ {
1935
+ "$ref": "#/$defs/Include"
1936
+ },
1937
+ {
1938
+ "type": "array",
1939
+ "items": {
1940
+ "type": "string"
1941
+ },
1942
+ "allOf": [
1943
+ {
1944
+ "minItems": 1
1945
+ }
1946
+ ]
1947
+ }
1948
+ ]
1949
+ }
1950
+ ]
1951
+ },
1952
+ "file": {
1953
+ "anyOf": [
1954
+ {
1955
+ "type": "string"
1956
+ },
1957
+ {
1958
+ "anyOf": [
1959
+ {
1960
+ "$ref": "#/$defs/Include"
1961
+ },
1962
+ {
1963
+ "type": "array",
1964
+ "items": {
1965
+ "type": "string"
1966
+ },
1967
+ "allOf": [
1968
+ {
1969
+ "minItems": 1
1970
+ }
1971
+ ]
1972
+ }
1973
+ ]
1974
+ }
1975
+ ]
1976
+ },
1977
+ "format": {
1978
+ "type": "string",
1979
+ "enum": [
1980
+ "tsc",
1981
+ "eslint",
1982
+ "oxlint",
1983
+ "regex"
1984
+ ]
1985
+ },
1986
+ "pattern": {
1987
+ "type": "string"
1988
+ },
1989
+ "codes": {
1990
+ "anyOf": [
1991
+ {
1992
+ "$ref": "#/$defs/Include"
1993
+ },
1994
+ {
1995
+ "type": "array",
1996
+ "items": {
1997
+ "type": "string"
1998
+ }
1999
+ }
2000
+ ]
2001
+ },
2002
+ "codesNot": {
2003
+ "anyOf": [
2004
+ {
2005
+ "$ref": "#/$defs/Include"
2006
+ },
2007
+ {
2008
+ "type": "array",
2009
+ "items": {
2010
+ "type": "string"
2011
+ }
2012
+ }
2013
+ ]
2014
+ }
2015
+ },
2016
+ "required": [
2017
+ "format"
2018
+ ],
2019
+ "additionalProperties": false
2020
+ }
2021
+ ]
2022
+ }
2023
+ },
2024
+ "required": [
2025
+ "report"
2026
+ ],
2027
+ "additionalProperties": false
2028
+ }
2029
+ ]
2030
+ },
2031
+ {
2032
+ "anyOf": [
2033
+ {
2034
+ "$ref": "#/$defs/Use"
2035
+ },
2036
+ {
2037
+ "$ref": "#/$defs/Include"
2038
+ },
2039
+ {
2040
+ "type": "object",
2041
+ "properties": {
2042
+ "fn": {
2043
+ "type": "string"
2044
+ }
2045
+ },
2046
+ "required": [
2047
+ "fn"
2048
+ ],
2049
+ "additionalProperties": false
2050
+ }
2051
+ ]
2052
+ }
2053
+ ]
2054
+ },
2055
+ "ManifestNode": {
2056
+ "anyOf": [
2057
+ {
2058
+ "$ref": "#/$defs/Use"
2059
+ },
2060
+ {
2061
+ "$ref": "#/$defs/Include"
2062
+ },
2063
+ {
2064
+ "type": "object",
2065
+ "properties": {
2066
+ "message": {
2067
+ "type": "string"
2068
+ },
2069
+ "partial": {
2070
+ "type": "boolean"
2071
+ },
2072
+ "layout": {
2073
+ "type": "string",
2074
+ "enum": [
2075
+ "open"
2076
+ ]
2077
+ },
2078
+ "name": {
2079
+ "anyOf": [
2080
+ {
2081
+ "type": "string",
2082
+ "enum": [
2083
+ "kebab-case",
2084
+ "camelCase",
2085
+ "PascalCase",
2086
+ "snake_case"
2087
+ ]
2088
+ },
2089
+ {
2090
+ "anyOf": [
2091
+ {
2092
+ "$ref": "#/$defs/Use"
2093
+ },
2094
+ {
2095
+ "$ref": "#/$defs/Include"
2096
+ },
2097
+ {
2098
+ "type": "object",
2099
+ "properties": {
2100
+ "regex": {
2101
+ "type": "string"
2102
+ },
2103
+ "message": {
2104
+ "type": "string"
2105
+ }
2106
+ },
2107
+ "required": [
2108
+ "regex"
2109
+ ],
2110
+ "additionalProperties": false
2111
+ }
2112
+ ]
2113
+ },
2114
+ {
2115
+ "anyOf": [
2116
+ {
2117
+ "$ref": "#/$defs/Use"
2118
+ },
2119
+ {
2120
+ "$ref": "#/$defs/Include"
2121
+ },
2122
+ {
2123
+ "type": "object",
2124
+ "properties": {
2125
+ "like": {
2126
+ "type": "string"
2127
+ },
2128
+ "message": {
2129
+ "type": "string"
2130
+ }
2131
+ },
2132
+ "required": [
2133
+ "like"
2134
+ ],
2135
+ "additionalProperties": false
2136
+ }
2137
+ ]
2138
+ }
2139
+ ]
2140
+ },
2141
+ "imports": {
2142
+ "anyOf": [
2143
+ {
2144
+ "$ref": "#/$defs/Use"
2145
+ },
2146
+ {
2147
+ "$ref": "#/$defs/Include"
2148
+ },
2149
+ {
2150
+ "type": "object",
2151
+ "properties": {
2152
+ "message": {
2153
+ "type": "string"
2154
+ },
2155
+ "allow": {
2156
+ "anyOf": [
2157
+ {
2158
+ "type": "string"
2159
+ },
2160
+ {
2161
+ "anyOf": [
2162
+ {
2163
+ "$ref": "#/$defs/Include"
2164
+ },
2165
+ {
2166
+ "type": "array",
2167
+ "items": {
2168
+ "type": "string"
2169
+ }
2170
+ }
2171
+ ]
2172
+ }
2173
+ ]
2174
+ },
2175
+ "external": {
2176
+ "anyOf": [
2177
+ {
2178
+ "$ref": "#/$defs/Include"
2179
+ },
2180
+ {
2181
+ "type": "array",
2182
+ "items": {
2183
+ "type": "string"
2184
+ }
2185
+ }
2186
+ ]
2187
+ },
2188
+ "deny": {
2189
+ "anyOf": [
2190
+ {
2191
+ "$ref": "#/$defs/Include"
2192
+ },
2193
+ {
2194
+ "type": "array",
2195
+ "items": {
2196
+ "anyOf": [
2197
+ {
2198
+ "$ref": "#/$defs/Use"
2199
+ },
2200
+ {
2201
+ "$ref": "#/$defs/Include"
2202
+ },
2203
+ {
2204
+ "type": "object",
2205
+ "properties": {
2206
+ "match": {
2207
+ "anyOf": [
2208
+ {
2209
+ "type": "string"
2210
+ },
2211
+ {
2212
+ "anyOf": [
2213
+ {
2214
+ "$ref": "#/$defs/Include"
2215
+ },
2216
+ {
2217
+ "type": "array",
2218
+ "items": {
2219
+ "type": "string"
2220
+ }
2221
+ }
2222
+ ]
2223
+ }
2224
+ ]
2225
+ },
2226
+ "matchNot": {
2227
+ "anyOf": [
2228
+ {
2229
+ "type": "string"
2230
+ },
2231
+ {
2232
+ "anyOf": [
2233
+ {
2234
+ "$ref": "#/$defs/Include"
2235
+ },
2236
+ {
2237
+ "type": "array",
2238
+ "items": {
2239
+ "type": "string"
2240
+ }
2241
+ }
2242
+ ]
2243
+ }
2244
+ ]
2245
+ },
2246
+ "except": {
2247
+ "anyOf": [
2248
+ {
2249
+ "type": "string"
2250
+ },
2251
+ {
2252
+ "anyOf": [
2253
+ {
2254
+ "$ref": "#/$defs/Include"
2255
+ },
2256
+ {
2257
+ "type": "array",
2258
+ "items": {
2259
+ "type": "string"
2260
+ }
2261
+ }
2262
+ ]
2263
+ }
2264
+ ]
2265
+ },
2266
+ "message": {
2267
+ "type": "string"
2268
+ }
2269
+ },
2270
+ "required": [
2271
+ "match",
2272
+ "message"
2273
+ ],
2274
+ "additionalProperties": false
2275
+ }
2276
+ ]
2277
+ }
2278
+ }
2279
+ ]
2280
+ },
2281
+ "reset": {
2282
+ "type": "boolean"
2283
+ },
2284
+ "unrestricted": {
2285
+ "type": "boolean"
2286
+ }
2287
+ },
2288
+ "additionalProperties": false
2289
+ }
2290
+ ]
2291
+ },
2292
+ "importedBy": {
2293
+ "anyOf": [
2294
+ {
2295
+ "$ref": "#/$defs/Use"
2296
+ },
2297
+ {
2298
+ "$ref": "#/$defs/Include"
2299
+ },
2300
+ {
2301
+ "type": "object",
2302
+ "properties": {
2303
+ "message": {
2304
+ "type": "string"
2305
+ },
2306
+ "allow": {
2307
+ "anyOf": [
2308
+ {
2309
+ "type": "string"
2310
+ },
2311
+ {
2312
+ "anyOf": [
2313
+ {
2314
+ "$ref": "#/$defs/Include"
2315
+ },
2316
+ {
2317
+ "type": "array",
2318
+ "items": {
2319
+ "type": "string"
2320
+ }
2321
+ }
2322
+ ]
2323
+ }
2324
+ ]
2325
+ },
2326
+ "matchNot": {
2327
+ "anyOf": [
2328
+ {
2329
+ "type": "string"
2330
+ },
2331
+ {
2332
+ "anyOf": [
2333
+ {
2334
+ "$ref": "#/$defs/Include"
2335
+ },
2336
+ {
2337
+ "type": "array",
2338
+ "items": {
2339
+ "type": "string"
2340
+ }
2341
+ }
2342
+ ]
2343
+ }
2344
+ ]
2345
+ }
2346
+ },
2347
+ "required": [
2348
+ "message",
2349
+ "allow"
2350
+ ],
2351
+ "additionalProperties": false
2352
+ }
2353
+ ]
2354
+ },
2355
+ "members": {
2356
+ "anyOf": [
2357
+ {
2358
+ "$ref": "#/$defs/Include"
2359
+ },
2360
+ {
2361
+ "type": "array",
2362
+ "items": {
2363
+ "anyOf": [
2364
+ {
2365
+ "$ref": "#/$defs/Use"
2366
+ },
2367
+ {
2368
+ "$ref": "#/$defs/Include"
2369
+ },
2370
+ {
2371
+ "type": "object",
2372
+ "properties": {
2373
+ "message": {
2374
+ "type": "string"
2375
+ },
2376
+ "subject": {
2377
+ "type": "string",
2378
+ "enum": [
2379
+ "members",
2380
+ "calls"
2381
+ ]
2382
+ },
2383
+ "in": {
2384
+ "anyOf": [
2385
+ {
2386
+ "type": "string"
2387
+ },
2388
+ {
2389
+ "anyOf": [
2390
+ {
2391
+ "$ref": "#/$defs/Include"
2392
+ },
2393
+ {
2394
+ "type": "array",
2395
+ "items": {
2396
+ "type": "string"
2397
+ }
2398
+ }
2399
+ ]
2400
+ }
2401
+ ]
2402
+ },
2403
+ "declares": {
2404
+ "anyOf": [
2405
+ {
2406
+ "$ref": "#/$defs/Include"
2407
+ },
2408
+ {
2409
+ "type": "array",
2410
+ "items": {
2411
+ "type": "string",
2412
+ "enum": [
2413
+ "function",
2414
+ "class",
2415
+ "variable",
2416
+ "type",
2417
+ "interface",
2418
+ "enum",
2419
+ "expression",
2420
+ "other"
2421
+ ]
2422
+ }
2423
+ }
2424
+ ]
2425
+ },
2426
+ "match": {
2427
+ "anyOf": [
2428
+ {
2429
+ "type": "string"
2430
+ },
2431
+ {
2432
+ "anyOf": [
2433
+ {
2434
+ "$ref": "#/$defs/Include"
2435
+ },
2436
+ {
2437
+ "type": "array",
2438
+ "items": {
2439
+ "type": "string"
2440
+ }
2441
+ }
2442
+ ]
2443
+ }
2444
+ ]
2445
+ },
2446
+ "matchNot": {
2447
+ "anyOf": [
2448
+ {
2449
+ "type": "string"
2450
+ },
2451
+ {
2452
+ "anyOf": [
2453
+ {
2454
+ "$ref": "#/$defs/Include"
2455
+ },
2456
+ {
2457
+ "type": "array",
2458
+ "items": {
2459
+ "type": "string"
2460
+ }
2461
+ }
2462
+ ]
2463
+ }
2464
+ ]
2465
+ },
2466
+ "allow": {
2467
+ "anyOf": [
2468
+ {
2469
+ "type": "string"
2470
+ },
2471
+ {
2472
+ "anyOf": [
2473
+ {
2474
+ "$ref": "#/$defs/Include"
2475
+ },
2476
+ {
2477
+ "type": "array",
2478
+ "items": {
2479
+ "type": "string"
2480
+ }
2481
+ }
2482
+ ]
2483
+ }
2484
+ ]
2485
+ },
2486
+ "probe": {
2487
+ "anyOf": [
2488
+ {
2489
+ "$ref": "#/$defs/Use"
2490
+ },
2491
+ {
2492
+ "$ref": "#/$defs/Include"
2493
+ },
2494
+ {
2495
+ "type": "object",
2496
+ "properties": {
2497
+ "source": {
2498
+ "type": "string"
2499
+ },
2500
+ "name": {
2501
+ "type": "string"
2502
+ }
2503
+ },
2504
+ "required": [
2505
+ "source",
2506
+ "name"
2507
+ ],
2508
+ "additionalProperties": false
2509
+ }
2510
+ ]
2511
+ }
2512
+ },
2513
+ "required": [
2514
+ "message",
2515
+ "subject"
2516
+ ],
2517
+ "additionalProperties": false
2518
+ }
2519
+ ]
2520
+ }
2521
+ }
2522
+ ]
2523
+ },
2524
+ "surface": {
2525
+ "anyOf": [
2526
+ {
2527
+ "$ref": "#/$defs/Include"
2528
+ },
2529
+ {
2530
+ "type": "array",
2531
+ "items": {
2532
+ "anyOf": [
2533
+ {
2534
+ "$ref": "#/$defs/Use"
2535
+ },
2536
+ {
2537
+ "$ref": "#/$defs/Include"
2538
+ },
2539
+ {
2540
+ "type": "object",
2541
+ "properties": {
2542
+ "message": {
2543
+ "type": "string"
2544
+ },
2545
+ "kinds": {
2546
+ "anyOf": [
2547
+ {
2548
+ "$ref": "#/$defs/Include"
2549
+ },
2550
+ {
2551
+ "type": "array",
2552
+ "items": {
2553
+ "type": "string",
2554
+ "enum": [
2555
+ "named",
2556
+ "default",
2557
+ "namespace"
2558
+ ]
2559
+ }
2560
+ }
2561
+ ]
2562
+ },
2563
+ "declares": {
2564
+ "anyOf": [
2565
+ {
2566
+ "$ref": "#/$defs/Include"
2567
+ },
2568
+ {
2569
+ "type": "array",
2570
+ "items": {
2571
+ "type": "string",
2572
+ "enum": [
2573
+ "function",
2574
+ "class",
2575
+ "variable",
2576
+ "type",
2577
+ "interface",
2578
+ "enum",
2579
+ "expression",
2580
+ "other"
2581
+ ]
2582
+ }
2583
+ }
2584
+ ]
2585
+ },
2586
+ "reexport": {
2587
+ "type": "boolean"
2588
+ },
2589
+ "match": {
2590
+ "anyOf": [
2591
+ {
2592
+ "type": "string"
2593
+ },
2594
+ {
2595
+ "anyOf": [
2596
+ {
2597
+ "$ref": "#/$defs/Include"
2598
+ },
2599
+ {
2600
+ "type": "array",
2601
+ "items": {
2602
+ "type": "string"
2603
+ }
2604
+ }
2605
+ ]
2606
+ }
2607
+ ]
2608
+ },
2609
+ "matchNot": {
2610
+ "anyOf": [
2611
+ {
2612
+ "type": "string"
2613
+ },
2614
+ {
2615
+ "anyOf": [
2616
+ {
2617
+ "$ref": "#/$defs/Include"
2618
+ },
2619
+ {
2620
+ "type": "array",
2621
+ "items": {
2622
+ "type": "string"
2623
+ }
2624
+ }
2625
+ ]
2626
+ }
2627
+ ]
2628
+ },
2629
+ "forbid": {
2630
+ "type": "boolean"
2631
+ },
2632
+ "allow": {
2633
+ "anyOf": [
2634
+ {
2635
+ "type": "string"
2636
+ },
2637
+ {
2638
+ "anyOf": [
2639
+ {
2640
+ "$ref": "#/$defs/Include"
2641
+ },
2642
+ {
2643
+ "type": "array",
2644
+ "items": {
2645
+ "type": "string"
2646
+ }
2647
+ }
2648
+ ]
2649
+ }
2650
+ ]
2651
+ },
2652
+ "convention": {
2653
+ "anyOf": [
2654
+ {
2655
+ "type": "string",
2656
+ "enum": [
2657
+ "kebab-case",
2658
+ "camelCase",
2659
+ "PascalCase",
2660
+ "snake_case"
2661
+ ]
2662
+ },
2663
+ {
2664
+ "anyOf": [
2665
+ {
2666
+ "$ref": "#/$defs/Use"
2667
+ },
2668
+ {
2669
+ "$ref": "#/$defs/Include"
2670
+ },
2671
+ {
2672
+ "type": "object",
2673
+ "properties": {
2674
+ "regex": {
2675
+ "type": "string"
2676
+ }
2677
+ },
2678
+ "required": [
2679
+ "regex"
2680
+ ],
2681
+ "additionalProperties": false
2682
+ }
2683
+ ]
2684
+ }
2685
+ ]
2686
+ },
2687
+ "count": {
2688
+ "anyOf": [
2689
+ {
2690
+ "$ref": "#/$defs/Use"
2691
+ },
2692
+ {
2693
+ "$ref": "#/$defs/Include"
2694
+ },
2695
+ {
2696
+ "type": "object",
2697
+ "properties": {
2698
+ "min": {
2699
+ "type": "number"
2700
+ },
2701
+ "max": {
2702
+ "type": "number"
2703
+ }
2704
+ },
2705
+ "additionalProperties": false
2706
+ }
2707
+ ]
2708
+ },
2709
+ "except": {
2710
+ "anyOf": [
2711
+ {
2712
+ "type": "string"
2713
+ },
2714
+ {
2715
+ "anyOf": [
2716
+ {
2717
+ "$ref": "#/$defs/Include"
2718
+ },
2719
+ {
2720
+ "type": "array",
2721
+ "items": {
2722
+ "type": "string"
2723
+ }
2724
+ }
2725
+ ]
2726
+ }
2727
+ ]
2728
+ },
2729
+ "probe": {
2730
+ "anyOf": [
2731
+ {
2732
+ "$ref": "#/$defs/Use"
2733
+ },
2734
+ {
2735
+ "$ref": "#/$defs/Include"
2736
+ },
2737
+ {
2738
+ "type": "object",
2739
+ "properties": {
2740
+ "source": {
2741
+ "type": "string"
2742
+ }
2743
+ },
2744
+ "required": [
2745
+ "source"
2746
+ ],
2747
+ "additionalProperties": false
2748
+ }
2749
+ ]
2750
+ }
2751
+ },
2752
+ "required": [
2753
+ "message"
2754
+ ],
2755
+ "additionalProperties": false
2756
+ }
2757
+ ]
2758
+ }
2759
+ }
2760
+ ]
2761
+ },
2762
+ "requires": {
2763
+ "anyOf": [
2764
+ {
2765
+ "$ref": "#/$defs/Include"
2766
+ },
2767
+ {
2768
+ "type": "array",
2769
+ "items": {
2770
+ "type": "string"
2771
+ }
2772
+ }
2773
+ ]
2774
+ },
2775
+ "requiresNot": {
2776
+ "anyOf": [
2777
+ {
2778
+ "$ref": "#/$defs/Include"
2779
+ },
2780
+ {
2781
+ "type": "array",
2782
+ "items": {
2783
+ "type": "string"
2784
+ }
2785
+ }
2786
+ ]
2787
+ },
2788
+ "children": {
2789
+ "type": "object",
2790
+ "additionalProperties": {
2791
+ "$ref": "#/$defs/ManifestNode"
2792
+ }
2793
+ }
2794
+ },
2795
+ "additionalProperties": false
2796
+ }
2797
+ ]
2798
+ },
2799
+ "Use": {
2800
+ "type": "object",
2801
+ "description": "A reference to a fragment under the top-level `defs`. Replaced by a copy of the fragment before the manifest is decoded; any other key written beside `use` overrides the fragment's key of the same name.",
2802
+ "properties": {
2803
+ "use": {
2804
+ "type": "string"
2805
+ }
2806
+ },
2807
+ "required": [
2808
+ "use"
2809
+ ]
2810
+ },
2811
+ "Include": {
2812
+ "type": "object",
2813
+ "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`.",
2814
+ "properties": {
2815
+ "include": {
2816
+ "type": "string"
2817
+ }
2818
+ },
2819
+ "required": [
2820
+ "include"
2821
+ ],
2822
+ "additionalProperties": false
2823
+ }
2824
+ }
2825
+ }