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

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 (150) hide show
  1. package/build/dts/core/coverage.d.ts +20 -0
  2. package/build/dts/core/coverage.d.ts.map +1 -1
  3. package/build/dts/core/graph.d.ts +2 -0
  4. package/build/dts/core/graph.d.ts.map +1 -1
  5. package/build/dts/core/imports.d.ts +3 -1
  6. package/build/dts/core/imports.d.ts.map +1 -1
  7. package/build/dts/core/slack.d.ts +22 -0
  8. package/build/dts/core/slack.d.ts.map +1 -0
  9. package/build/dts/core/structure.d.ts +1 -0
  10. package/build/dts/core/structure.d.ts.map +1 -1
  11. package/build/dts/domain/architecture-config.d.ts +19 -3
  12. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  13. package/build/dts/domain/architecture-error.d.ts +8 -0
  14. package/build/dts/domain/architecture-error.d.ts.map +1 -1
  15. package/build/dts/domain/facts.d.ts +1 -0
  16. package/build/dts/domain/facts.d.ts.map +1 -1
  17. package/build/dts/domain/manifest-location.d.ts +9 -0
  18. package/build/dts/domain/manifest-location.d.ts.map +1 -0
  19. package/build/dts/domain/snapshot.d.ts +356 -0
  20. package/build/dts/domain/snapshot.d.ts.map +1 -0
  21. package/build/dts/domain/violation.d.ts +1 -1
  22. package/build/dts/domain/violation.d.ts.map +1 -1
  23. package/build/dts/index.d.ts +22 -10
  24. package/build/dts/index.d.ts.map +1 -1
  25. package/build/dts/infrastructure/file-system-fake.d.ts.map +1 -1
  26. package/build/dts/infrastructure/file-system-live.d.ts.map +1 -1
  27. package/build/dts/infrastructure/manifest-file.d.ts +11 -2
  28. package/build/dts/infrastructure/manifest-file.d.ts.map +1 -1
  29. package/build/dts/infrastructure/manifest-include.d.ts +16 -0
  30. package/build/dts/infrastructure/manifest-include.d.ts.map +1 -0
  31. package/build/dts/infrastructure/syntax-matcher-fake.d.ts +10 -0
  32. package/build/dts/infrastructure/syntax-matcher-fake.d.ts.map +1 -0
  33. package/build/dts/infrastructure/walk.d.ts +12 -1
  34. package/build/dts/infrastructure/walk.d.ts.map +1 -1
  35. package/build/dts/load/extension.d.ts +33 -0
  36. package/build/dts/load/extension.d.ts.map +1 -0
  37. package/build/dts/load/policy.d.ts +10 -0
  38. package/build/dts/load/policy.d.ts.map +1 -1
  39. package/build/dts/manifest/compile.d.ts +11 -1
  40. package/build/dts/manifest/compile.d.ts.map +1 -1
  41. package/build/dts/manifest/expand.d.ts +27 -0
  42. package/build/dts/manifest/expand.d.ts.map +1 -0
  43. package/build/dts/manifest/extension.d.ts +8 -0
  44. package/build/dts/manifest/extension.d.ts.map +1 -0
  45. package/build/dts/manifest/glob.d.ts +1 -0
  46. package/build/dts/manifest/glob.d.ts.map +1 -1
  47. package/build/dts/manifest/infer.d.ts +55 -0
  48. package/build/dts/manifest/infer.d.ts.map +1 -0
  49. package/build/dts/manifest/json-schema.d.ts +14 -0
  50. package/build/dts/manifest/json-schema.d.ts.map +1 -0
  51. package/build/dts/manifest/manifest.d.ts +26 -1
  52. package/build/dts/manifest/manifest.d.ts.map +1 -1
  53. package/build/dts/ports/file-system.d.ts +1 -0
  54. package/build/dts/ports/file-system.d.ts.map +1 -1
  55. package/build/dts/ports/language.d.ts +4 -0
  56. package/build/dts/ports/language.d.ts.map +1 -1
  57. package/build/dts/ports/syntax-matcher.d.ts +21 -0
  58. package/build/dts/ports/syntax-matcher.d.ts.map +1 -0
  59. package/build/dts/testing.d.ts +1 -0
  60. package/build/dts/testing.d.ts.map +1 -1
  61. package/build/esm/core/coverage.js +107 -32
  62. package/build/esm/core/coverage.js.map +1 -1
  63. package/build/esm/core/graph.js +45 -0
  64. package/build/esm/core/graph.js.map +1 -1
  65. package/build/esm/core/imports.js +14 -9
  66. package/build/esm/core/imports.js.map +1 -1
  67. package/build/esm/core/slack.js +76 -0
  68. package/build/esm/core/slack.js.map +1 -0
  69. package/build/esm/core/structure.js +6 -3
  70. package/build/esm/core/structure.js.map +1 -1
  71. package/build/esm/domain/architecture-config.js +28 -4
  72. package/build/esm/domain/architecture-config.js.map +1 -1
  73. package/build/esm/domain/architecture-error.js +27 -0
  74. package/build/esm/domain/architecture-error.js.map +1 -1
  75. package/build/esm/domain/manifest-location.js +21 -0
  76. package/build/esm/domain/manifest-location.js.map +1 -0
  77. package/build/esm/domain/snapshot.js +181 -0
  78. package/build/esm/domain/snapshot.js.map +1 -0
  79. package/build/esm/domain/violation.js.map +1 -1
  80. package/build/esm/index.js +28 -9
  81. package/build/esm/index.js.map +1 -1
  82. package/build/esm/infrastructure/file-system-fake.js +10 -0
  83. package/build/esm/infrastructure/file-system-fake.js.map +1 -1
  84. package/build/esm/infrastructure/file-system-live.js +9 -1
  85. package/build/esm/infrastructure/file-system-live.js.map +1 -1
  86. package/build/esm/infrastructure/manifest-file.js +158 -7
  87. package/build/esm/infrastructure/manifest-file.js.map +1 -1
  88. package/build/esm/infrastructure/manifest-include.js +187 -0
  89. package/build/esm/infrastructure/manifest-include.js.map +1 -0
  90. package/build/esm/infrastructure/syntax-matcher-fake.js +33 -0
  91. package/build/esm/infrastructure/syntax-matcher-fake.js.map +1 -0
  92. package/build/esm/infrastructure/walk.js +106 -4
  93. package/build/esm/infrastructure/walk.js.map +1 -1
  94. package/build/esm/load/extension.js +2 -0
  95. package/build/esm/load/extension.js.map +1 -0
  96. package/build/esm/load/policy.js +49 -2
  97. package/build/esm/load/policy.js.map +1 -1
  98. package/build/esm/manifest/compile.js +50 -27
  99. package/build/esm/manifest/compile.js.map +1 -1
  100. package/build/esm/manifest/expand.js +116 -0
  101. package/build/esm/manifest/expand.js.map +1 -0
  102. package/build/esm/manifest/extension.js +2 -0
  103. package/build/esm/manifest/extension.js.map +1 -0
  104. package/build/esm/manifest/glob.js +3 -0
  105. package/build/esm/manifest/glob.js.map +1 -1
  106. package/build/esm/manifest/infer.js +455 -0
  107. package/build/esm/manifest/infer.js.map +1 -0
  108. package/build/esm/manifest/json-schema.js +169 -0
  109. package/build/esm/manifest/json-schema.js.map +1 -0
  110. package/build/esm/manifest/manifest.js +127 -5
  111. package/build/esm/manifest/manifest.js.map +1 -1
  112. package/build/esm/ports/syntax-matcher.js +12 -0
  113. package/build/esm/ports/syntax-matcher.js.map +1 -0
  114. package/build/esm/testing.js +1 -0
  115. package/build/esm/testing.js.map +1 -1
  116. package/package.json +9 -3
  117. package/schema/architecture-node.schema.json +1518 -0
  118. package/schema/architecture.schema.json +4498 -0
  119. package/schema/conformance.schema.json +1019 -0
  120. package/src/core/coverage.ts +164 -34
  121. package/src/core/graph.ts +48 -0
  122. package/src/core/imports.ts +29 -13
  123. package/src/core/slack.ts +135 -0
  124. package/src/core/structure.ts +15 -8
  125. package/src/domain/architecture-config.ts +31 -4
  126. package/src/domain/architecture-error.ts +30 -0
  127. package/src/domain/facts.ts +9 -4
  128. package/src/domain/manifest-location.ts +41 -0
  129. package/src/domain/snapshot.ts +402 -0
  130. package/src/domain/violation.ts +4 -1
  131. package/src/index.ts +149 -7
  132. package/src/infrastructure/file-system-fake.ts +12 -0
  133. package/src/infrastructure/file-system-live.ts +8 -1
  134. package/src/infrastructure/manifest-file.ts +204 -8
  135. package/src/infrastructure/manifest-include.ts +318 -0
  136. package/src/infrastructure/syntax-matcher-fake.ts +51 -0
  137. package/src/infrastructure/walk.ts +127 -3
  138. package/src/load/extension.ts +66 -0
  139. package/src/load/policy.ts +77 -2
  140. package/src/manifest/compile.ts +81 -30
  141. package/src/manifest/expand.ts +183 -0
  142. package/src/manifest/extension.ts +41 -0
  143. package/src/manifest/glob.ts +5 -0
  144. package/src/manifest/infer.ts +643 -0
  145. package/src/manifest/json-schema.ts +210 -0
  146. package/src/manifest/manifest.ts +206 -10
  147. package/src/ports/file-system.ts +3 -0
  148. package/src/ports/language.ts +17 -0
  149. package/src/ports/syntax-matcher.ts +42 -0
  150. package/src/testing.ts +1 -0
@@ -0,0 +1,4498 @@
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
+ "aliases": {
745
+ "type": "object",
746
+ "additionalProperties": {
747
+ "type": "string"
748
+ }
749
+ },
750
+ "tree": {
751
+ "type": "object",
752
+ "additionalProperties": {
753
+ "$ref": "#/$defs/ManifestNode"
754
+ }
755
+ },
756
+ "campaigns": {
757
+ "type": "object",
758
+ "patternProperties": {
759
+ "^[a-z0-9]+(?:-[a-z0-9]+)*$": {
760
+ "anyOf": [
761
+ {
762
+ "$ref": "#/$defs/Use"
763
+ },
764
+ {
765
+ "$ref": "#/$defs/Include"
766
+ },
767
+ {
768
+ "type": "object",
769
+ "properties": {
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
+ "anyOf": [
786
+ {
787
+ "type": "string"
788
+ },
789
+ {
790
+ "anyOf": [
791
+ {
792
+ "$ref": "#/$defs/Include"
793
+ },
794
+ {
795
+ "type": "array",
796
+ "items": {
797
+ "type": "string"
798
+ }
799
+ }
800
+ ]
801
+ }
802
+ ]
803
+ },
804
+ {
805
+ "anyOf": [
806
+ {
807
+ "$ref": "#/$defs/Use"
808
+ },
809
+ {
810
+ "$ref": "#/$defs/Include"
811
+ },
812
+ {
813
+ "type": "object",
814
+ "properties": {
815
+ "path": {
816
+ "anyOf": [
817
+ {
818
+ "type": "string"
819
+ },
820
+ {
821
+ "anyOf": [
822
+ {
823
+ "$ref": "#/$defs/Include"
824
+ },
825
+ {
826
+ "type": "array",
827
+ "items": {
828
+ "type": "string"
829
+ }
830
+ }
831
+ ]
832
+ }
833
+ ]
834
+ },
835
+ "extensions": {
836
+ "anyOf": [
837
+ {
838
+ "$ref": "#/$defs/Include"
839
+ },
840
+ {
841
+ "type": "array",
842
+ "items": {
843
+ "type": "string"
844
+ }
845
+ }
846
+ ]
847
+ }
848
+ },
849
+ "required": [
850
+ "path"
851
+ ],
852
+ "additionalProperties": false
853
+ }
854
+ ]
855
+ }
856
+ ]
857
+ },
858
+ "legacy": {
859
+ "anyOf": [
860
+ {
861
+ "type": "string"
862
+ },
863
+ {
864
+ "anyOf": [
865
+ {
866
+ "$ref": "#/$defs/Include"
867
+ },
868
+ {
869
+ "type": "array",
870
+ "items": {
871
+ "type": "string"
872
+ }
873
+ }
874
+ ]
875
+ }
876
+ ]
877
+ },
878
+ "perimeter": {
879
+ "anyOf": [
880
+ {
881
+ "type": "string",
882
+ "enum": [
883
+ "file",
884
+ "nx"
885
+ ]
886
+ },
887
+ {
888
+ "anyOf": [
889
+ {
890
+ "$ref": "#/$defs/Use"
891
+ },
892
+ {
893
+ "$ref": "#/$defs/Include"
894
+ },
895
+ {
896
+ "type": "object",
897
+ "properties": {
898
+ "glob": {
899
+ "anyOf": [
900
+ {
901
+ "type": "string"
902
+ },
903
+ {
904
+ "anyOf": [
905
+ {
906
+ "$ref": "#/$defs/Include"
907
+ },
908
+ {
909
+ "type": "array",
910
+ "items": {
911
+ "type": "string"
912
+ }
913
+ }
914
+ ]
915
+ }
916
+ ]
917
+ }
918
+ },
919
+ "required": [
920
+ "glob"
921
+ ],
922
+ "additionalProperties": false
923
+ }
924
+ ]
925
+ },
926
+ {
927
+ "anyOf": [
928
+ {
929
+ "$ref": "#/$defs/Use"
930
+ },
931
+ {
932
+ "$ref": "#/$defs/Include"
933
+ },
934
+ {
935
+ "type": "object",
936
+ "properties": {
937
+ "marker": {
938
+ "anyOf": [
939
+ {
940
+ "type": "string"
941
+ },
942
+ {
943
+ "anyOf": [
944
+ {
945
+ "$ref": "#/$defs/Include"
946
+ },
947
+ {
948
+ "type": "array",
949
+ "items": {
950
+ "type": "string"
951
+ }
952
+ }
953
+ ]
954
+ }
955
+ ]
956
+ },
957
+ "probes": {
958
+ "anyOf": [
959
+ {
960
+ "$ref": "#/$defs/Use"
961
+ },
962
+ {
963
+ "$ref": "#/$defs/Include"
964
+ },
965
+ {
966
+ "type": "object",
967
+ "properties": {
968
+ "fires": {
969
+ "anyOf": [
970
+ {
971
+ "type": "string"
972
+ },
973
+ {
974
+ "anyOf": [
975
+ {
976
+ "$ref": "#/$defs/Include"
977
+ },
978
+ {
979
+ "type": "array",
980
+ "items": {
981
+ "type": "string"
982
+ }
983
+ }
984
+ ]
985
+ }
986
+ ]
987
+ },
988
+ "ignores": {
989
+ "anyOf": [
990
+ {
991
+ "type": "string"
992
+ },
993
+ {
994
+ "anyOf": [
995
+ {
996
+ "$ref": "#/$defs/Include"
997
+ },
998
+ {
999
+ "type": "array",
1000
+ "items": {
1001
+ "type": "string"
1002
+ }
1003
+ }
1004
+ ]
1005
+ }
1006
+ ]
1007
+ }
1008
+ },
1009
+ "additionalProperties": false
1010
+ }
1011
+ ]
1012
+ }
1013
+ },
1014
+ "required": [
1015
+ "marker"
1016
+ ],
1017
+ "additionalProperties": false
1018
+ }
1019
+ ]
1020
+ },
1021
+ {
1022
+ "anyOf": [
1023
+ {
1024
+ "$ref": "#/$defs/Use"
1025
+ },
1026
+ {
1027
+ "$ref": "#/$defs/Include"
1028
+ },
1029
+ {
1030
+ "type": "object",
1031
+ "properties": {
1032
+ "match": {
1033
+ "$ref": "#/$defs/Detector"
1034
+ },
1035
+ "holdout": {
1036
+ "type": "string",
1037
+ "enum": [
1038
+ "declaration",
1039
+ "match"
1040
+ ]
1041
+ },
1042
+ "probes": {
1043
+ "anyOf": [
1044
+ {
1045
+ "$ref": "#/$defs/Use"
1046
+ },
1047
+ {
1048
+ "$ref": "#/$defs/Include"
1049
+ },
1050
+ {
1051
+ "type": "object",
1052
+ "properties": {
1053
+ "fires": {
1054
+ "anyOf": [
1055
+ {
1056
+ "$ref": "#/$defs/Include"
1057
+ },
1058
+ {
1059
+ "type": "array",
1060
+ "items": {
1061
+ "anyOf": [
1062
+ {
1063
+ "$ref": "#/$defs/Use"
1064
+ },
1065
+ {
1066
+ "$ref": "#/$defs/Include"
1067
+ },
1068
+ {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "path": {
1072
+ "type": "string"
1073
+ },
1074
+ "source": {
1075
+ "type": "string"
1076
+ },
1077
+ "edges": {
1078
+ "type": "object",
1079
+ "additionalProperties": {
1080
+ "anyOf": [
1081
+ {
1082
+ "type": "string"
1083
+ },
1084
+ {
1085
+ "anyOf": [
1086
+ {
1087
+ "$ref": "#/$defs/Use"
1088
+ },
1089
+ {
1090
+ "$ref": "#/$defs/Include"
1091
+ },
1092
+ {
1093
+ "type": "object",
1094
+ "properties": {
1095
+ "external": {
1096
+ "type": "string"
1097
+ }
1098
+ },
1099
+ "required": [
1100
+ "external"
1101
+ ],
1102
+ "additionalProperties": false
1103
+ }
1104
+ ]
1105
+ },
1106
+ {
1107
+ "anyOf": [
1108
+ {
1109
+ "$ref": "#/$defs/Use"
1110
+ },
1111
+ {
1112
+ "$ref": "#/$defs/Include"
1113
+ },
1114
+ {
1115
+ "type": "object",
1116
+ "properties": {
1117
+ "builtin": {
1118
+ "type": "string"
1119
+ }
1120
+ },
1121
+ "required": [
1122
+ "builtin"
1123
+ ],
1124
+ "additionalProperties": false
1125
+ }
1126
+ ]
1127
+ }
1128
+ ]
1129
+ }
1130
+ },
1131
+ "files": {
1132
+ "anyOf": [
1133
+ {
1134
+ "$ref": "#/$defs/Include"
1135
+ },
1136
+ {
1137
+ "type": "array",
1138
+ "items": {
1139
+ "type": "string"
1140
+ }
1141
+ }
1142
+ ]
1143
+ },
1144
+ "report": {
1145
+ "anyOf": [
1146
+ {
1147
+ "$ref": "#/$defs/Include"
1148
+ },
1149
+ {
1150
+ "type": "array",
1151
+ "items": {
1152
+ "anyOf": [
1153
+ {
1154
+ "$ref": "#/$defs/Use"
1155
+ },
1156
+ {
1157
+ "$ref": "#/$defs/Include"
1158
+ },
1159
+ {
1160
+ "type": "object",
1161
+ "properties": {
1162
+ "line": {
1163
+ "type": "number"
1164
+ },
1165
+ "column": {
1166
+ "type": "number"
1167
+ },
1168
+ "code": {
1169
+ "type": "string"
1170
+ },
1171
+ "message": {
1172
+ "type": "string"
1173
+ }
1174
+ },
1175
+ "required": [
1176
+ "line"
1177
+ ],
1178
+ "additionalProperties": false
1179
+ }
1180
+ ]
1181
+ }
1182
+ }
1183
+ ]
1184
+ }
1185
+ },
1186
+ "required": [
1187
+ "path"
1188
+ ],
1189
+ "additionalProperties": false
1190
+ }
1191
+ ]
1192
+ }
1193
+ }
1194
+ ]
1195
+ },
1196
+ "ignores": {
1197
+ "anyOf": [
1198
+ {
1199
+ "$ref": "#/$defs/Include"
1200
+ },
1201
+ {
1202
+ "type": "array",
1203
+ "items": {
1204
+ "anyOf": [
1205
+ {
1206
+ "$ref": "#/$defs/Use"
1207
+ },
1208
+ {
1209
+ "$ref": "#/$defs/Include"
1210
+ },
1211
+ {
1212
+ "type": "object",
1213
+ "properties": {
1214
+ "path": {
1215
+ "type": "string"
1216
+ },
1217
+ "source": {
1218
+ "type": "string"
1219
+ },
1220
+ "edges": {
1221
+ "type": "object",
1222
+ "additionalProperties": {
1223
+ "anyOf": [
1224
+ {
1225
+ "type": "string"
1226
+ },
1227
+ {
1228
+ "anyOf": [
1229
+ {
1230
+ "$ref": "#/$defs/Use"
1231
+ },
1232
+ {
1233
+ "$ref": "#/$defs/Include"
1234
+ },
1235
+ {
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "external": {
1239
+ "type": "string"
1240
+ }
1241
+ },
1242
+ "required": [
1243
+ "external"
1244
+ ],
1245
+ "additionalProperties": false
1246
+ }
1247
+ ]
1248
+ },
1249
+ {
1250
+ "anyOf": [
1251
+ {
1252
+ "$ref": "#/$defs/Use"
1253
+ },
1254
+ {
1255
+ "$ref": "#/$defs/Include"
1256
+ },
1257
+ {
1258
+ "type": "object",
1259
+ "properties": {
1260
+ "builtin": {
1261
+ "type": "string"
1262
+ }
1263
+ },
1264
+ "required": [
1265
+ "builtin"
1266
+ ],
1267
+ "additionalProperties": false
1268
+ }
1269
+ ]
1270
+ }
1271
+ ]
1272
+ }
1273
+ },
1274
+ "files": {
1275
+ "anyOf": [
1276
+ {
1277
+ "$ref": "#/$defs/Include"
1278
+ },
1279
+ {
1280
+ "type": "array",
1281
+ "items": {
1282
+ "type": "string"
1283
+ }
1284
+ }
1285
+ ]
1286
+ },
1287
+ "report": {
1288
+ "anyOf": [
1289
+ {
1290
+ "$ref": "#/$defs/Include"
1291
+ },
1292
+ {
1293
+ "type": "array",
1294
+ "items": {
1295
+ "anyOf": [
1296
+ {
1297
+ "$ref": "#/$defs/Use"
1298
+ },
1299
+ {
1300
+ "$ref": "#/$defs/Include"
1301
+ },
1302
+ {
1303
+ "type": "object",
1304
+ "properties": {
1305
+ "line": {
1306
+ "type": "number"
1307
+ },
1308
+ "column": {
1309
+ "type": "number"
1310
+ },
1311
+ "code": {
1312
+ "type": "string"
1313
+ },
1314
+ "message": {
1315
+ "type": "string"
1316
+ }
1317
+ },
1318
+ "required": [
1319
+ "line"
1320
+ ],
1321
+ "additionalProperties": false
1322
+ }
1323
+ ]
1324
+ }
1325
+ }
1326
+ ]
1327
+ }
1328
+ },
1329
+ "required": [
1330
+ "path"
1331
+ ],
1332
+ "additionalProperties": false
1333
+ }
1334
+ ]
1335
+ }
1336
+ }
1337
+ ]
1338
+ }
1339
+ },
1340
+ "required": [
1341
+ "fires"
1342
+ ],
1343
+ "additionalProperties": false
1344
+ }
1345
+ ]
1346
+ }
1347
+ },
1348
+ "required": [
1349
+ "match",
1350
+ "probes"
1351
+ ],
1352
+ "additionalProperties": false
1353
+ }
1354
+ ]
1355
+ }
1356
+ ]
1357
+ },
1358
+ "onTouch": {
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "advise",
1362
+ "ratchet",
1363
+ "paydown"
1364
+ ]
1365
+ },
1366
+ "phases": {
1367
+ "anyOf": [
1368
+ {
1369
+ "$ref": "#/$defs/Include"
1370
+ },
1371
+ {
1372
+ "type": "array",
1373
+ "items": {
1374
+ "anyOf": [
1375
+ {
1376
+ "$ref": "#/$defs/Use"
1377
+ },
1378
+ {
1379
+ "$ref": "#/$defs/Include"
1380
+ },
1381
+ {
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "id": {
1385
+ "type": "string",
1386
+ "allOf": [
1387
+ {
1388
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
1389
+ }
1390
+ ]
1391
+ },
1392
+ "intent": {
1393
+ "type": "string"
1394
+ },
1395
+ "objectives": {
1396
+ "anyOf": [
1397
+ {
1398
+ "$ref": "#/$defs/Include"
1399
+ },
1400
+ {
1401
+ "type": "array",
1402
+ "items": {
1403
+ "type": "string",
1404
+ "allOf": [
1405
+ {
1406
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
1407
+ }
1408
+ ]
1409
+ }
1410
+ }
1411
+ ]
1412
+ },
1413
+ "attested": {
1414
+ "type": "boolean"
1415
+ },
1416
+ "onTouch": {
1417
+ "type": "string",
1418
+ "enum": [
1419
+ "advise",
1420
+ "ratchet",
1421
+ "paydown"
1422
+ ]
1423
+ },
1424
+ "endState": {
1425
+ "type": "object"
1426
+ },
1427
+ "concessions": {
1428
+ "anyOf": [
1429
+ {
1430
+ "$ref": "#/$defs/Include"
1431
+ },
1432
+ {
1433
+ "type": "array",
1434
+ "items": {
1435
+ "anyOf": [
1436
+ {
1437
+ "$ref": "#/$defs/Use"
1438
+ },
1439
+ {
1440
+ "$ref": "#/$defs/Include"
1441
+ },
1442
+ {
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "reason": {
1446
+ "type": "string"
1447
+ },
1448
+ "at": {
1449
+ "type": "string"
1450
+ },
1451
+ "by": {
1452
+ "type": "string"
1453
+ }
1454
+ },
1455
+ "required": [
1456
+ "reason",
1457
+ "at"
1458
+ ],
1459
+ "additionalProperties": false
1460
+ }
1461
+ ]
1462
+ }
1463
+ }
1464
+ ]
1465
+ }
1466
+ },
1467
+ "required": [
1468
+ "id"
1469
+ ],
1470
+ "additionalProperties": false
1471
+ }
1472
+ ]
1473
+ }
1474
+ }
1475
+ ]
1476
+ },
1477
+ "endState": {
1478
+ "type": "object"
1479
+ },
1480
+ "objectives": {
1481
+ "type": "object",
1482
+ "patternProperties": {
1483
+ "^[a-z0-9]+(?:-[a-z0-9]+)*$": {
1484
+ "anyOf": [
1485
+ {
1486
+ "$ref": "#/$defs/Use"
1487
+ },
1488
+ {
1489
+ "$ref": "#/$defs/Include"
1490
+ },
1491
+ {
1492
+ "type": "object",
1493
+ "properties": {
1494
+ "how": {
1495
+ "type": "string"
1496
+ },
1497
+ "why": {
1498
+ "type": "string"
1499
+ },
1500
+ "holdout": {
1501
+ "type": "string",
1502
+ "enum": [
1503
+ "file",
1504
+ "declaration",
1505
+ "match",
1506
+ "sector"
1507
+ ]
1508
+ },
1509
+ "match": {
1510
+ "anyOf": [
1511
+ {
1512
+ "anyOf": [
1513
+ {
1514
+ "$ref": "#/$defs/Use"
1515
+ },
1516
+ {
1517
+ "$ref": "#/$defs/Include"
1518
+ },
1519
+ {
1520
+ "type": "object",
1521
+ "properties": {
1522
+ "all": {
1523
+ "anyOf": [
1524
+ {
1525
+ "$ref": "#/$defs/Include"
1526
+ },
1527
+ {
1528
+ "type": "array",
1529
+ "items": {
1530
+ "$ref": "#/$defs/Detector"
1531
+ }
1532
+ }
1533
+ ]
1534
+ }
1535
+ },
1536
+ "required": [
1537
+ "all"
1538
+ ],
1539
+ "additionalProperties": false
1540
+ }
1541
+ ]
1542
+ },
1543
+ {
1544
+ "anyOf": [
1545
+ {
1546
+ "$ref": "#/$defs/Use"
1547
+ },
1548
+ {
1549
+ "$ref": "#/$defs/Include"
1550
+ },
1551
+ {
1552
+ "type": "object",
1553
+ "properties": {
1554
+ "any": {
1555
+ "anyOf": [
1556
+ {
1557
+ "$ref": "#/$defs/Include"
1558
+ },
1559
+ {
1560
+ "type": "array",
1561
+ "items": {
1562
+ "$ref": "#/$defs/Detector"
1563
+ }
1564
+ }
1565
+ ]
1566
+ }
1567
+ },
1568
+ "required": [
1569
+ "any"
1570
+ ],
1571
+ "additionalProperties": false
1572
+ }
1573
+ ]
1574
+ },
1575
+ {
1576
+ "anyOf": [
1577
+ {
1578
+ "$ref": "#/$defs/Use"
1579
+ },
1580
+ {
1581
+ "$ref": "#/$defs/Include"
1582
+ },
1583
+ {
1584
+ "type": "object",
1585
+ "properties": {
1586
+ "not": {
1587
+ "$ref": "#/$defs/Detector"
1588
+ }
1589
+ },
1590
+ "required": [
1591
+ "not"
1592
+ ],
1593
+ "additionalProperties": false
1594
+ }
1595
+ ]
1596
+ },
1597
+ {
1598
+ "anyOf": [
1599
+ {
1600
+ "$ref": "#/$defs/Use"
1601
+ },
1602
+ {
1603
+ "$ref": "#/$defs/Include"
1604
+ },
1605
+ {
1606
+ "type": "object",
1607
+ "properties": {
1608
+ "path": {
1609
+ "anyOf": [
1610
+ {
1611
+ "$ref": "#/$defs/Use"
1612
+ },
1613
+ {
1614
+ "$ref": "#/$defs/Include"
1615
+ },
1616
+ {
1617
+ "type": "object",
1618
+ "properties": {
1619
+ "file": {
1620
+ "anyOf": [
1621
+ {
1622
+ "type": "string"
1623
+ },
1624
+ {
1625
+ "anyOf": [
1626
+ {
1627
+ "$ref": "#/$defs/Include"
1628
+ },
1629
+ {
1630
+ "type": "array",
1631
+ "items": {
1632
+ "type": "string"
1633
+ }
1634
+ }
1635
+ ]
1636
+ }
1637
+ ]
1638
+ },
1639
+ "fileNot": {
1640
+ "anyOf": [
1641
+ {
1642
+ "type": "string"
1643
+ },
1644
+ {
1645
+ "anyOf": [
1646
+ {
1647
+ "$ref": "#/$defs/Include"
1648
+ },
1649
+ {
1650
+ "type": "array",
1651
+ "items": {
1652
+ "type": "string"
1653
+ }
1654
+ }
1655
+ ]
1656
+ }
1657
+ ]
1658
+ },
1659
+ "subject": {
1660
+ "type": "number"
1661
+ },
1662
+ "convention": {
1663
+ "anyOf": [
1664
+ {
1665
+ "type": "string",
1666
+ "enum": [
1667
+ "kebab-case",
1668
+ "camelCase",
1669
+ "PascalCase",
1670
+ "snake_case"
1671
+ ]
1672
+ },
1673
+ {
1674
+ "anyOf": [
1675
+ {
1676
+ "$ref": "#/$defs/Use"
1677
+ },
1678
+ {
1679
+ "$ref": "#/$defs/Include"
1680
+ },
1681
+ {
1682
+ "type": "object",
1683
+ "properties": {
1684
+ "regex": {
1685
+ "type": "string"
1686
+ }
1687
+ },
1688
+ "required": [
1689
+ "regex"
1690
+ ],
1691
+ "additionalProperties": false
1692
+ }
1693
+ ]
1694
+ }
1695
+ ]
1696
+ }
1697
+ },
1698
+ "required": [
1699
+ "file"
1700
+ ],
1701
+ "additionalProperties": false
1702
+ }
1703
+ ]
1704
+ }
1705
+ },
1706
+ "required": [
1707
+ "path"
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
+ "imports": {
1725
+ "anyOf": [
1726
+ {
1727
+ "$ref": "#/$defs/Use"
1728
+ },
1729
+ {
1730
+ "$ref": "#/$defs/Include"
1731
+ },
1732
+ {
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "resolves": {
1736
+ "anyOf": [
1737
+ {
1738
+ "type": "string"
1739
+ },
1740
+ {
1741
+ "anyOf": [
1742
+ {
1743
+ "$ref": "#/$defs/Use"
1744
+ },
1745
+ {
1746
+ "$ref": "#/$defs/Include"
1747
+ },
1748
+ {
1749
+ "type": "object",
1750
+ "properties": {
1751
+ "external": {
1752
+ "type": "string"
1753
+ }
1754
+ },
1755
+ "required": [
1756
+ "external"
1757
+ ],
1758
+ "additionalProperties": false
1759
+ }
1760
+ ]
1761
+ },
1762
+ {
1763
+ "anyOf": [
1764
+ {
1765
+ "$ref": "#/$defs/Use"
1766
+ },
1767
+ {
1768
+ "$ref": "#/$defs/Include"
1769
+ },
1770
+ {
1771
+ "type": "object",
1772
+ "properties": {
1773
+ "builtin": {
1774
+ "type": "string"
1775
+ }
1776
+ },
1777
+ "required": [
1778
+ "builtin"
1779
+ ],
1780
+ "additionalProperties": false
1781
+ }
1782
+ ]
1783
+ }
1784
+ ]
1785
+ },
1786
+ "symbols": {
1787
+ "anyOf": [
1788
+ {
1789
+ "$ref": "#/$defs/Include"
1790
+ },
1791
+ {
1792
+ "type": "array",
1793
+ "items": {
1794
+ "type": "string"
1795
+ }
1796
+ }
1797
+ ]
1798
+ }
1799
+ },
1800
+ "required": [
1801
+ "resolves"
1802
+ ],
1803
+ "additionalProperties": false
1804
+ }
1805
+ ]
1806
+ }
1807
+ },
1808
+ "required": [
1809
+ "imports"
1810
+ ],
1811
+ "additionalProperties": false
1812
+ }
1813
+ ]
1814
+ },
1815
+ {
1816
+ "anyOf": [
1817
+ {
1818
+ "$ref": "#/$defs/Use"
1819
+ },
1820
+ {
1821
+ "$ref": "#/$defs/Include"
1822
+ },
1823
+ {
1824
+ "type": "object",
1825
+ "properties": {
1826
+ "exports": {
1827
+ "anyOf": [
1828
+ {
1829
+ "$ref": "#/$defs/Use"
1830
+ },
1831
+ {
1832
+ "$ref": "#/$defs/Include"
1833
+ },
1834
+ {
1835
+ "type": "object",
1836
+ "properties": {
1837
+ "name": {
1838
+ "anyOf": [
1839
+ {
1840
+ "type": "string"
1841
+ },
1842
+ {
1843
+ "anyOf": [
1844
+ {
1845
+ "$ref": "#/$defs/Include"
1846
+ },
1847
+ {
1848
+ "type": "array",
1849
+ "items": {
1850
+ "type": "string"
1851
+ }
1852
+ }
1853
+ ]
1854
+ }
1855
+ ]
1856
+ },
1857
+ "kinds": {
1858
+ "anyOf": [
1859
+ {
1860
+ "$ref": "#/$defs/Include"
1861
+ },
1862
+ {
1863
+ "type": "array",
1864
+ "items": {
1865
+ "type": "string",
1866
+ "enum": [
1867
+ "named",
1868
+ "default",
1869
+ "namespace"
1870
+ ]
1871
+ }
1872
+ }
1873
+ ]
1874
+ },
1875
+ "declares": {
1876
+ "anyOf": [
1877
+ {
1878
+ "$ref": "#/$defs/Include"
1879
+ },
1880
+ {
1881
+ "type": "array",
1882
+ "items": {
1883
+ "type": "string",
1884
+ "enum": [
1885
+ "function",
1886
+ "class",
1887
+ "variable",
1888
+ "type",
1889
+ "interface",
1890
+ "enum",
1891
+ "expression",
1892
+ "other"
1893
+ ]
1894
+ }
1895
+ }
1896
+ ]
1897
+ },
1898
+ "reexport": {
1899
+ "type": "boolean"
1900
+ }
1901
+ },
1902
+ "additionalProperties": false
1903
+ }
1904
+ ]
1905
+ }
1906
+ },
1907
+ "required": [
1908
+ "exports"
1909
+ ],
1910
+ "additionalProperties": false
1911
+ }
1912
+ ]
1913
+ },
1914
+ {
1915
+ "anyOf": [
1916
+ {
1917
+ "$ref": "#/$defs/Use"
1918
+ },
1919
+ {
1920
+ "$ref": "#/$defs/Include"
1921
+ },
1922
+ {
1923
+ "type": "object",
1924
+ "properties": {
1925
+ "members": {
1926
+ "anyOf": [
1927
+ {
1928
+ "$ref": "#/$defs/Use"
1929
+ },
1930
+ {
1931
+ "$ref": "#/$defs/Include"
1932
+ },
1933
+ {
1934
+ "type": "object",
1935
+ "properties": {
1936
+ "subject": {
1937
+ "type": "string",
1938
+ "enum": [
1939
+ "members",
1940
+ "calls"
1941
+ ]
1942
+ },
1943
+ "name": {
1944
+ "anyOf": [
1945
+ {
1946
+ "type": "string"
1947
+ },
1948
+ {
1949
+ "anyOf": [
1950
+ {
1951
+ "$ref": "#/$defs/Include"
1952
+ },
1953
+ {
1954
+ "type": "array",
1955
+ "items": {
1956
+ "type": "string"
1957
+ }
1958
+ }
1959
+ ]
1960
+ }
1961
+ ]
1962
+ },
1963
+ "in": {
1964
+ "anyOf": [
1965
+ {
1966
+ "type": "string"
1967
+ },
1968
+ {
1969
+ "anyOf": [
1970
+ {
1971
+ "$ref": "#/$defs/Include"
1972
+ },
1973
+ {
1974
+ "type": "array",
1975
+ "items": {
1976
+ "type": "string"
1977
+ }
1978
+ }
1979
+ ]
1980
+ }
1981
+ ]
1982
+ },
1983
+ "declares": {
1984
+ "anyOf": [
1985
+ {
1986
+ "$ref": "#/$defs/Include"
1987
+ },
1988
+ {
1989
+ "type": "array",
1990
+ "items": {
1991
+ "type": "string",
1992
+ "enum": [
1993
+ "function",
1994
+ "class",
1995
+ "variable",
1996
+ "type",
1997
+ "interface",
1998
+ "enum",
1999
+ "expression",
2000
+ "other"
2001
+ ]
2002
+ }
2003
+ }
2004
+ ]
2005
+ }
2006
+ },
2007
+ "required": [
2008
+ "subject"
2009
+ ],
2010
+ "additionalProperties": false
2011
+ }
2012
+ ]
2013
+ }
2014
+ },
2015
+ "required": [
2016
+ "members"
2017
+ ],
2018
+ "additionalProperties": false
2019
+ }
2020
+ ]
2021
+ },
2022
+ {
2023
+ "anyOf": [
2024
+ {
2025
+ "$ref": "#/$defs/Use"
2026
+ },
2027
+ {
2028
+ "$ref": "#/$defs/Include"
2029
+ },
2030
+ {
2031
+ "type": "object",
2032
+ "properties": {
2033
+ "requires": {
2034
+ "anyOf": [
2035
+ {
2036
+ "$ref": "#/$defs/Include"
2037
+ },
2038
+ {
2039
+ "type": "array",
2040
+ "items": {
2041
+ "type": "string"
2042
+ }
2043
+ }
2044
+ ]
2045
+ }
2046
+ },
2047
+ "required": [
2048
+ "requires"
2049
+ ],
2050
+ "additionalProperties": false
2051
+ }
2052
+ ]
2053
+ },
2054
+ {
2055
+ "anyOf": [
2056
+ {
2057
+ "$ref": "#/$defs/Use"
2058
+ },
2059
+ {
2060
+ "$ref": "#/$defs/Include"
2061
+ },
2062
+ {
2063
+ "type": "object",
2064
+ "properties": {
2065
+ "content": {
2066
+ "anyOf": [
2067
+ {
2068
+ "$ref": "#/$defs/Use"
2069
+ },
2070
+ {
2071
+ "$ref": "#/$defs/Include"
2072
+ },
2073
+ {
2074
+ "type": "object",
2075
+ "properties": {
2076
+ "regex": {
2077
+ "type": "string"
2078
+ }
2079
+ },
2080
+ "required": [
2081
+ "regex"
2082
+ ],
2083
+ "additionalProperties": false
2084
+ }
2085
+ ]
2086
+ }
2087
+ },
2088
+ "required": [
2089
+ "content"
2090
+ ],
2091
+ "additionalProperties": false
2092
+ }
2093
+ ]
2094
+ },
2095
+ {
2096
+ "anyOf": [
2097
+ {
2098
+ "$ref": "#/$defs/Use"
2099
+ },
2100
+ {
2101
+ "$ref": "#/$defs/Include"
2102
+ },
2103
+ {
2104
+ "type": "object",
2105
+ "properties": {
2106
+ "syntax": {
2107
+ "anyOf": [
2108
+ {
2109
+ "$ref": "#/$defs/Use"
2110
+ },
2111
+ {
2112
+ "$ref": "#/$defs/Include"
2113
+ },
2114
+ {
2115
+ "type": "object",
2116
+ "properties": {
2117
+ "pattern": {},
2118
+ "kind": {},
2119
+ "regex": {},
2120
+ "nthChild": {},
2121
+ "inside": {},
2122
+ "has": {},
2123
+ "precedes": {},
2124
+ "follows": {},
2125
+ "all": {},
2126
+ "any": {},
2127
+ "not": {},
2128
+ "where": {
2129
+ "type": "object",
2130
+ "additionalProperties": {
2131
+ "anyOf": [
2132
+ {
2133
+ "$ref": "#/$defs/Use"
2134
+ },
2135
+ {
2136
+ "$ref": "#/$defs/Include"
2137
+ },
2138
+ {
2139
+ "type": "object",
2140
+ "properties": {
2141
+ "regex": {
2142
+ "type": "string"
2143
+ },
2144
+ "binding": {
2145
+ "anyOf": [
2146
+ {
2147
+ "$ref": "#/$defs/Use"
2148
+ },
2149
+ {
2150
+ "$ref": "#/$defs/Include"
2151
+ },
2152
+ {
2153
+ "type": "object",
2154
+ "properties": {
2155
+ "resolves": {
2156
+ "anyOf": [
2157
+ {
2158
+ "type": "string"
2159
+ },
2160
+ {
2161
+ "anyOf": [
2162
+ {
2163
+ "$ref": "#/$defs/Use"
2164
+ },
2165
+ {
2166
+ "$ref": "#/$defs/Include"
2167
+ },
2168
+ {
2169
+ "type": "object",
2170
+ "properties": {
2171
+ "external": {
2172
+ "type": "string"
2173
+ }
2174
+ },
2175
+ "required": [
2176
+ "external"
2177
+ ],
2178
+ "additionalProperties": false
2179
+ }
2180
+ ]
2181
+ },
2182
+ {
2183
+ "anyOf": [
2184
+ {
2185
+ "$ref": "#/$defs/Use"
2186
+ },
2187
+ {
2188
+ "$ref": "#/$defs/Include"
2189
+ },
2190
+ {
2191
+ "type": "object",
2192
+ "properties": {
2193
+ "builtin": {
2194
+ "type": "string"
2195
+ }
2196
+ },
2197
+ "required": [
2198
+ "builtin"
2199
+ ],
2200
+ "additionalProperties": false
2201
+ }
2202
+ ]
2203
+ }
2204
+ ]
2205
+ },
2206
+ "member": {
2207
+ "anyOf": [
2208
+ {
2209
+ "$ref": "#/$defs/Include"
2210
+ },
2211
+ {
2212
+ "type": "array",
2213
+ "items": {
2214
+ "type": "string"
2215
+ }
2216
+ }
2217
+ ]
2218
+ }
2219
+ },
2220
+ "required": [
2221
+ "resolves"
2222
+ ],
2223
+ "additionalProperties": false
2224
+ }
2225
+ ]
2226
+ }
2227
+ },
2228
+ "additionalProperties": false
2229
+ }
2230
+ ]
2231
+ }
2232
+ }
2233
+ },
2234
+ "additionalProperties": false
2235
+ }
2236
+ ]
2237
+ }
2238
+ },
2239
+ "required": [
2240
+ "syntax"
2241
+ ],
2242
+ "additionalProperties": false
2243
+ }
2244
+ ]
2245
+ },
2246
+ {
2247
+ "anyOf": [
2248
+ {
2249
+ "$ref": "#/$defs/Use"
2250
+ },
2251
+ {
2252
+ "$ref": "#/$defs/Include"
2253
+ },
2254
+ {
2255
+ "type": "object",
2256
+ "properties": {
2257
+ "report": {
2258
+ "anyOf": [
2259
+ {
2260
+ "$ref": "#/$defs/Use"
2261
+ },
2262
+ {
2263
+ "$ref": "#/$defs/Include"
2264
+ },
2265
+ {
2266
+ "type": "object",
2267
+ "properties": {
2268
+ "command": {
2269
+ "anyOf": [
2270
+ {
2271
+ "type": "string"
2272
+ },
2273
+ {
2274
+ "anyOf": [
2275
+ {
2276
+ "$ref": "#/$defs/Include"
2277
+ },
2278
+ {
2279
+ "type": "array",
2280
+ "items": {
2281
+ "type": "string"
2282
+ },
2283
+ "allOf": [
2284
+ {
2285
+ "minItems": 1
2286
+ }
2287
+ ]
2288
+ }
2289
+ ]
2290
+ }
2291
+ ]
2292
+ },
2293
+ "file": {
2294
+ "anyOf": [
2295
+ {
2296
+ "type": "string"
2297
+ },
2298
+ {
2299
+ "anyOf": [
2300
+ {
2301
+ "$ref": "#/$defs/Include"
2302
+ },
2303
+ {
2304
+ "type": "array",
2305
+ "items": {
2306
+ "type": "string"
2307
+ },
2308
+ "allOf": [
2309
+ {
2310
+ "minItems": 1
2311
+ }
2312
+ ]
2313
+ }
2314
+ ]
2315
+ }
2316
+ ]
2317
+ },
2318
+ "format": {
2319
+ "type": "string",
2320
+ "enum": [
2321
+ "tsc",
2322
+ "eslint",
2323
+ "oxlint",
2324
+ "regex"
2325
+ ]
2326
+ },
2327
+ "pattern": {
2328
+ "type": "string"
2329
+ },
2330
+ "codes": {
2331
+ "anyOf": [
2332
+ {
2333
+ "$ref": "#/$defs/Include"
2334
+ },
2335
+ {
2336
+ "type": "array",
2337
+ "items": {
2338
+ "type": "string"
2339
+ }
2340
+ }
2341
+ ]
2342
+ },
2343
+ "codesNot": {
2344
+ "anyOf": [
2345
+ {
2346
+ "$ref": "#/$defs/Include"
2347
+ },
2348
+ {
2349
+ "type": "array",
2350
+ "items": {
2351
+ "type": "string"
2352
+ }
2353
+ }
2354
+ ]
2355
+ }
2356
+ },
2357
+ "required": [
2358
+ "format"
2359
+ ],
2360
+ "additionalProperties": false
2361
+ }
2362
+ ]
2363
+ }
2364
+ },
2365
+ "required": [
2366
+ "report"
2367
+ ],
2368
+ "additionalProperties": false
2369
+ }
2370
+ ]
2371
+ },
2372
+ {
2373
+ "anyOf": [
2374
+ {
2375
+ "$ref": "#/$defs/Use"
2376
+ },
2377
+ {
2378
+ "$ref": "#/$defs/Include"
2379
+ },
2380
+ {
2381
+ "type": "object",
2382
+ "properties": {
2383
+ "fn": {
2384
+ "type": "string"
2385
+ }
2386
+ },
2387
+ "required": [
2388
+ "fn"
2389
+ ],
2390
+ "additionalProperties": false
2391
+ }
2392
+ ]
2393
+ }
2394
+ ]
2395
+ },
2396
+ "sector": {
2397
+ "anyOf": [
2398
+ {
2399
+ "anyOf": [
2400
+ {
2401
+ "$ref": "#/$defs/Use"
2402
+ },
2403
+ {
2404
+ "$ref": "#/$defs/Include"
2405
+ },
2406
+ {
2407
+ "type": "object",
2408
+ "properties": {
2409
+ "has": {
2410
+ "$ref": "#/$defs/Detector"
2411
+ }
2412
+ },
2413
+ "required": [
2414
+ "has"
2415
+ ],
2416
+ "additionalProperties": false
2417
+ }
2418
+ ]
2419
+ },
2420
+ {
2421
+ "anyOf": [
2422
+ {
2423
+ "$ref": "#/$defs/Use"
2424
+ },
2425
+ {
2426
+ "$ref": "#/$defs/Include"
2427
+ },
2428
+ {
2429
+ "type": "object",
2430
+ "properties": {
2431
+ "oneRoot": {
2432
+ "type": "boolean",
2433
+ "enum": [
2434
+ true
2435
+ ]
2436
+ }
2437
+ },
2438
+ "required": [
2439
+ "oneRoot"
2440
+ ],
2441
+ "additionalProperties": false
2442
+ }
2443
+ ]
2444
+ },
2445
+ {
2446
+ "anyOf": [
2447
+ {
2448
+ "$ref": "#/$defs/Use"
2449
+ },
2450
+ {
2451
+ "$ref": "#/$defs/Include"
2452
+ },
2453
+ {
2454
+ "type": "object",
2455
+ "properties": {
2456
+ "oneHost": {
2457
+ "anyOf": [
2458
+ {
2459
+ "type": "string"
2460
+ },
2461
+ {
2462
+ "anyOf": [
2463
+ {
2464
+ "$ref": "#/$defs/Include"
2465
+ },
2466
+ {
2467
+ "type": "array",
2468
+ "items": {
2469
+ "type": "string"
2470
+ }
2471
+ }
2472
+ ]
2473
+ }
2474
+ ]
2475
+ }
2476
+ },
2477
+ "required": [
2478
+ "oneHost"
2479
+ ],
2480
+ "additionalProperties": false
2481
+ }
2482
+ ]
2483
+ }
2484
+ ]
2485
+ },
2486
+ "until": {
2487
+ "type": "string",
2488
+ "allOf": [
2489
+ {
2490
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
2491
+ }
2492
+ ]
2493
+ },
2494
+ "probes": {
2495
+ "anyOf": [
2496
+ {
2497
+ "$ref": "#/$defs/Use"
2498
+ },
2499
+ {
2500
+ "$ref": "#/$defs/Include"
2501
+ },
2502
+ {
2503
+ "type": "object",
2504
+ "properties": {
2505
+ "fires": {
2506
+ "anyOf": [
2507
+ {
2508
+ "$ref": "#/$defs/Include"
2509
+ },
2510
+ {
2511
+ "type": "array",
2512
+ "items": {
2513
+ "anyOf": [
2514
+ {
2515
+ "$ref": "#/$defs/Use"
2516
+ },
2517
+ {
2518
+ "$ref": "#/$defs/Include"
2519
+ },
2520
+ {
2521
+ "type": "object",
2522
+ "properties": {
2523
+ "path": {
2524
+ "type": "string"
2525
+ },
2526
+ "source": {
2527
+ "type": "string"
2528
+ },
2529
+ "edges": {
2530
+ "type": "object",
2531
+ "additionalProperties": {
2532
+ "anyOf": [
2533
+ {
2534
+ "type": "string"
2535
+ },
2536
+ {
2537
+ "anyOf": [
2538
+ {
2539
+ "$ref": "#/$defs/Use"
2540
+ },
2541
+ {
2542
+ "$ref": "#/$defs/Include"
2543
+ },
2544
+ {
2545
+ "type": "object",
2546
+ "properties": {
2547
+ "external": {
2548
+ "type": "string"
2549
+ }
2550
+ },
2551
+ "required": [
2552
+ "external"
2553
+ ],
2554
+ "additionalProperties": false
2555
+ }
2556
+ ]
2557
+ },
2558
+ {
2559
+ "anyOf": [
2560
+ {
2561
+ "$ref": "#/$defs/Use"
2562
+ },
2563
+ {
2564
+ "$ref": "#/$defs/Include"
2565
+ },
2566
+ {
2567
+ "type": "object",
2568
+ "properties": {
2569
+ "builtin": {
2570
+ "type": "string"
2571
+ }
2572
+ },
2573
+ "required": [
2574
+ "builtin"
2575
+ ],
2576
+ "additionalProperties": false
2577
+ }
2578
+ ]
2579
+ }
2580
+ ]
2581
+ }
2582
+ },
2583
+ "files": {
2584
+ "anyOf": [
2585
+ {
2586
+ "$ref": "#/$defs/Include"
2587
+ },
2588
+ {
2589
+ "type": "array",
2590
+ "items": {
2591
+ "type": "string"
2592
+ }
2593
+ }
2594
+ ]
2595
+ },
2596
+ "report": {
2597
+ "anyOf": [
2598
+ {
2599
+ "$ref": "#/$defs/Include"
2600
+ },
2601
+ {
2602
+ "type": "array",
2603
+ "items": {
2604
+ "anyOf": [
2605
+ {
2606
+ "$ref": "#/$defs/Use"
2607
+ },
2608
+ {
2609
+ "$ref": "#/$defs/Include"
2610
+ },
2611
+ {
2612
+ "type": "object",
2613
+ "properties": {
2614
+ "line": {
2615
+ "type": "number"
2616
+ },
2617
+ "column": {
2618
+ "type": "number"
2619
+ },
2620
+ "code": {
2621
+ "type": "string"
2622
+ },
2623
+ "message": {
2624
+ "type": "string"
2625
+ }
2626
+ },
2627
+ "required": [
2628
+ "line"
2629
+ ],
2630
+ "additionalProperties": false
2631
+ }
2632
+ ]
2633
+ }
2634
+ }
2635
+ ]
2636
+ }
2637
+ },
2638
+ "required": [
2639
+ "path"
2640
+ ],
2641
+ "additionalProperties": false
2642
+ }
2643
+ ]
2644
+ }
2645
+ }
2646
+ ]
2647
+ },
2648
+ "ignores": {
2649
+ "anyOf": [
2650
+ {
2651
+ "$ref": "#/$defs/Include"
2652
+ },
2653
+ {
2654
+ "type": "array",
2655
+ "items": {
2656
+ "anyOf": [
2657
+ {
2658
+ "$ref": "#/$defs/Use"
2659
+ },
2660
+ {
2661
+ "$ref": "#/$defs/Include"
2662
+ },
2663
+ {
2664
+ "type": "object",
2665
+ "properties": {
2666
+ "path": {
2667
+ "type": "string"
2668
+ },
2669
+ "source": {
2670
+ "type": "string"
2671
+ },
2672
+ "edges": {
2673
+ "type": "object",
2674
+ "additionalProperties": {
2675
+ "anyOf": [
2676
+ {
2677
+ "type": "string"
2678
+ },
2679
+ {
2680
+ "anyOf": [
2681
+ {
2682
+ "$ref": "#/$defs/Use"
2683
+ },
2684
+ {
2685
+ "$ref": "#/$defs/Include"
2686
+ },
2687
+ {
2688
+ "type": "object",
2689
+ "properties": {
2690
+ "external": {
2691
+ "type": "string"
2692
+ }
2693
+ },
2694
+ "required": [
2695
+ "external"
2696
+ ],
2697
+ "additionalProperties": false
2698
+ }
2699
+ ]
2700
+ },
2701
+ {
2702
+ "anyOf": [
2703
+ {
2704
+ "$ref": "#/$defs/Use"
2705
+ },
2706
+ {
2707
+ "$ref": "#/$defs/Include"
2708
+ },
2709
+ {
2710
+ "type": "object",
2711
+ "properties": {
2712
+ "builtin": {
2713
+ "type": "string"
2714
+ }
2715
+ },
2716
+ "required": [
2717
+ "builtin"
2718
+ ],
2719
+ "additionalProperties": false
2720
+ }
2721
+ ]
2722
+ }
2723
+ ]
2724
+ }
2725
+ },
2726
+ "files": {
2727
+ "anyOf": [
2728
+ {
2729
+ "$ref": "#/$defs/Include"
2730
+ },
2731
+ {
2732
+ "type": "array",
2733
+ "items": {
2734
+ "type": "string"
2735
+ }
2736
+ }
2737
+ ]
2738
+ },
2739
+ "report": {
2740
+ "anyOf": [
2741
+ {
2742
+ "$ref": "#/$defs/Include"
2743
+ },
2744
+ {
2745
+ "type": "array",
2746
+ "items": {
2747
+ "anyOf": [
2748
+ {
2749
+ "$ref": "#/$defs/Use"
2750
+ },
2751
+ {
2752
+ "$ref": "#/$defs/Include"
2753
+ },
2754
+ {
2755
+ "type": "object",
2756
+ "properties": {
2757
+ "line": {
2758
+ "type": "number"
2759
+ },
2760
+ "column": {
2761
+ "type": "number"
2762
+ },
2763
+ "code": {
2764
+ "type": "string"
2765
+ },
2766
+ "message": {
2767
+ "type": "string"
2768
+ }
2769
+ },
2770
+ "required": [
2771
+ "line"
2772
+ ],
2773
+ "additionalProperties": false
2774
+ }
2775
+ ]
2776
+ }
2777
+ }
2778
+ ]
2779
+ }
2780
+ },
2781
+ "required": [
2782
+ "path"
2783
+ ],
2784
+ "additionalProperties": false
2785
+ }
2786
+ ]
2787
+ }
2788
+ }
2789
+ ]
2790
+ }
2791
+ },
2792
+ "required": [
2793
+ "fires"
2794
+ ],
2795
+ "additionalProperties": false
2796
+ }
2797
+ ]
2798
+ }
2799
+ },
2800
+ "required": [
2801
+ "holdout"
2802
+ ],
2803
+ "additionalProperties": false
2804
+ }
2805
+ ]
2806
+ }
2807
+ },
2808
+ "additionalProperties": false
2809
+ },
2810
+ "staleAfter": {
2811
+ "type": "string",
2812
+ "allOf": [
2813
+ {
2814
+ "pattern": "^\\d+[dh]$"
2815
+ }
2816
+ ]
2817
+ },
2818
+ "onComplete": {
2819
+ "type": "string",
2820
+ "enum": [
2821
+ "keep",
2822
+ "remove"
2823
+ ]
2824
+ }
2825
+ },
2826
+ "required": [
2827
+ "objectives"
2828
+ ],
2829
+ "additionalProperties": false
2830
+ }
2831
+ ]
2832
+ }
2833
+ },
2834
+ "additionalProperties": false
2835
+ },
2836
+ "ledger": {
2837
+ "type": "string"
2838
+ }
2839
+ },
2840
+ "$defs": {
2841
+ "ManifestNode": {
2842
+ "anyOf": [
2843
+ {
2844
+ "$ref": "#/$defs/Use"
2845
+ },
2846
+ {
2847
+ "$ref": "#/$defs/Include"
2848
+ },
2849
+ {
2850
+ "type": "object",
2851
+ "properties": {
2852
+ "message": {
2853
+ "type": "string"
2854
+ },
2855
+ "partial": {
2856
+ "type": "boolean"
2857
+ },
2858
+ "layout": {
2859
+ "type": "string",
2860
+ "enum": [
2861
+ "open"
2862
+ ]
2863
+ },
2864
+ "name": {
2865
+ "anyOf": [
2866
+ {
2867
+ "type": "string",
2868
+ "enum": [
2869
+ "kebab-case",
2870
+ "camelCase",
2871
+ "PascalCase",
2872
+ "snake_case"
2873
+ ]
2874
+ },
2875
+ {
2876
+ "anyOf": [
2877
+ {
2878
+ "$ref": "#/$defs/Use"
2879
+ },
2880
+ {
2881
+ "$ref": "#/$defs/Include"
2882
+ },
2883
+ {
2884
+ "type": "object",
2885
+ "properties": {
2886
+ "regex": {
2887
+ "type": "string"
2888
+ },
2889
+ "message": {
2890
+ "type": "string"
2891
+ }
2892
+ },
2893
+ "required": [
2894
+ "regex"
2895
+ ],
2896
+ "additionalProperties": false
2897
+ }
2898
+ ]
2899
+ },
2900
+ {
2901
+ "anyOf": [
2902
+ {
2903
+ "$ref": "#/$defs/Use"
2904
+ },
2905
+ {
2906
+ "$ref": "#/$defs/Include"
2907
+ },
2908
+ {
2909
+ "type": "object",
2910
+ "properties": {
2911
+ "like": {
2912
+ "type": "string"
2913
+ },
2914
+ "message": {
2915
+ "type": "string"
2916
+ }
2917
+ },
2918
+ "required": [
2919
+ "like"
2920
+ ],
2921
+ "additionalProperties": false
2922
+ }
2923
+ ]
2924
+ }
2925
+ ]
2926
+ },
2927
+ "imports": {
2928
+ "anyOf": [
2929
+ {
2930
+ "$ref": "#/$defs/Use"
2931
+ },
2932
+ {
2933
+ "$ref": "#/$defs/Include"
2934
+ },
2935
+ {
2936
+ "type": "object",
2937
+ "properties": {
2938
+ "message": {
2939
+ "type": "string"
2940
+ },
2941
+ "allow": {
2942
+ "anyOf": [
2943
+ {
2944
+ "type": "string"
2945
+ },
2946
+ {
2947
+ "anyOf": [
2948
+ {
2949
+ "$ref": "#/$defs/Include"
2950
+ },
2951
+ {
2952
+ "type": "array",
2953
+ "items": {
2954
+ "type": "string"
2955
+ }
2956
+ }
2957
+ ]
2958
+ }
2959
+ ]
2960
+ },
2961
+ "external": {
2962
+ "anyOf": [
2963
+ {
2964
+ "$ref": "#/$defs/Include"
2965
+ },
2966
+ {
2967
+ "type": "array",
2968
+ "items": {
2969
+ "type": "string"
2970
+ }
2971
+ }
2972
+ ]
2973
+ },
2974
+ "deny": {
2975
+ "anyOf": [
2976
+ {
2977
+ "$ref": "#/$defs/Include"
2978
+ },
2979
+ {
2980
+ "type": "array",
2981
+ "items": {
2982
+ "anyOf": [
2983
+ {
2984
+ "$ref": "#/$defs/Use"
2985
+ },
2986
+ {
2987
+ "$ref": "#/$defs/Include"
2988
+ },
2989
+ {
2990
+ "type": "object",
2991
+ "properties": {
2992
+ "match": {
2993
+ "anyOf": [
2994
+ {
2995
+ "type": "string"
2996
+ },
2997
+ {
2998
+ "anyOf": [
2999
+ {
3000
+ "$ref": "#/$defs/Include"
3001
+ },
3002
+ {
3003
+ "type": "array",
3004
+ "items": {
3005
+ "type": "string"
3006
+ }
3007
+ }
3008
+ ]
3009
+ }
3010
+ ]
3011
+ },
3012
+ "matchNot": {
3013
+ "anyOf": [
3014
+ {
3015
+ "type": "string"
3016
+ },
3017
+ {
3018
+ "anyOf": [
3019
+ {
3020
+ "$ref": "#/$defs/Include"
3021
+ },
3022
+ {
3023
+ "type": "array",
3024
+ "items": {
3025
+ "type": "string"
3026
+ }
3027
+ }
3028
+ ]
3029
+ }
3030
+ ]
3031
+ },
3032
+ "except": {
3033
+ "anyOf": [
3034
+ {
3035
+ "type": "string"
3036
+ },
3037
+ {
3038
+ "anyOf": [
3039
+ {
3040
+ "$ref": "#/$defs/Include"
3041
+ },
3042
+ {
3043
+ "type": "array",
3044
+ "items": {
3045
+ "type": "string"
3046
+ }
3047
+ }
3048
+ ]
3049
+ }
3050
+ ]
3051
+ },
3052
+ "message": {
3053
+ "type": "string"
3054
+ }
3055
+ },
3056
+ "required": [
3057
+ "match",
3058
+ "message"
3059
+ ],
3060
+ "additionalProperties": false
3061
+ }
3062
+ ]
3063
+ }
3064
+ }
3065
+ ]
3066
+ },
3067
+ "reset": {
3068
+ "type": "boolean"
3069
+ },
3070
+ "unrestricted": {
3071
+ "type": "boolean"
3072
+ }
3073
+ },
3074
+ "additionalProperties": false
3075
+ }
3076
+ ]
3077
+ },
3078
+ "importedBy": {
3079
+ "anyOf": [
3080
+ {
3081
+ "$ref": "#/$defs/Use"
3082
+ },
3083
+ {
3084
+ "$ref": "#/$defs/Include"
3085
+ },
3086
+ {
3087
+ "type": "object",
3088
+ "properties": {
3089
+ "message": {
3090
+ "type": "string"
3091
+ },
3092
+ "allow": {
3093
+ "anyOf": [
3094
+ {
3095
+ "type": "string"
3096
+ },
3097
+ {
3098
+ "anyOf": [
3099
+ {
3100
+ "$ref": "#/$defs/Include"
3101
+ },
3102
+ {
3103
+ "type": "array",
3104
+ "items": {
3105
+ "type": "string"
3106
+ }
3107
+ }
3108
+ ]
3109
+ }
3110
+ ]
3111
+ },
3112
+ "matchNot": {
3113
+ "anyOf": [
3114
+ {
3115
+ "type": "string"
3116
+ },
3117
+ {
3118
+ "anyOf": [
3119
+ {
3120
+ "$ref": "#/$defs/Include"
3121
+ },
3122
+ {
3123
+ "type": "array",
3124
+ "items": {
3125
+ "type": "string"
3126
+ }
3127
+ }
3128
+ ]
3129
+ }
3130
+ ]
3131
+ }
3132
+ },
3133
+ "required": [
3134
+ "message",
3135
+ "allow"
3136
+ ],
3137
+ "additionalProperties": false
3138
+ }
3139
+ ]
3140
+ },
3141
+ "members": {
3142
+ "anyOf": [
3143
+ {
3144
+ "$ref": "#/$defs/Include"
3145
+ },
3146
+ {
3147
+ "type": "array",
3148
+ "items": {
3149
+ "anyOf": [
3150
+ {
3151
+ "$ref": "#/$defs/Use"
3152
+ },
3153
+ {
3154
+ "$ref": "#/$defs/Include"
3155
+ },
3156
+ {
3157
+ "type": "object",
3158
+ "properties": {
3159
+ "message": {
3160
+ "type": "string"
3161
+ },
3162
+ "subject": {
3163
+ "type": "string",
3164
+ "enum": [
3165
+ "members",
3166
+ "calls"
3167
+ ]
3168
+ },
3169
+ "in": {
3170
+ "anyOf": [
3171
+ {
3172
+ "type": "string"
3173
+ },
3174
+ {
3175
+ "anyOf": [
3176
+ {
3177
+ "$ref": "#/$defs/Include"
3178
+ },
3179
+ {
3180
+ "type": "array",
3181
+ "items": {
3182
+ "type": "string"
3183
+ }
3184
+ }
3185
+ ]
3186
+ }
3187
+ ]
3188
+ },
3189
+ "declares": {
3190
+ "anyOf": [
3191
+ {
3192
+ "$ref": "#/$defs/Include"
3193
+ },
3194
+ {
3195
+ "type": "array",
3196
+ "items": {
3197
+ "type": "string",
3198
+ "enum": [
3199
+ "function",
3200
+ "class",
3201
+ "variable",
3202
+ "type",
3203
+ "interface",
3204
+ "enum",
3205
+ "expression",
3206
+ "other"
3207
+ ]
3208
+ }
3209
+ }
3210
+ ]
3211
+ },
3212
+ "match": {
3213
+ "anyOf": [
3214
+ {
3215
+ "type": "string"
3216
+ },
3217
+ {
3218
+ "anyOf": [
3219
+ {
3220
+ "$ref": "#/$defs/Include"
3221
+ },
3222
+ {
3223
+ "type": "array",
3224
+ "items": {
3225
+ "type": "string"
3226
+ }
3227
+ }
3228
+ ]
3229
+ }
3230
+ ]
3231
+ },
3232
+ "matchNot": {
3233
+ "anyOf": [
3234
+ {
3235
+ "type": "string"
3236
+ },
3237
+ {
3238
+ "anyOf": [
3239
+ {
3240
+ "$ref": "#/$defs/Include"
3241
+ },
3242
+ {
3243
+ "type": "array",
3244
+ "items": {
3245
+ "type": "string"
3246
+ }
3247
+ }
3248
+ ]
3249
+ }
3250
+ ]
3251
+ },
3252
+ "allow": {
3253
+ "anyOf": [
3254
+ {
3255
+ "type": "string"
3256
+ },
3257
+ {
3258
+ "anyOf": [
3259
+ {
3260
+ "$ref": "#/$defs/Include"
3261
+ },
3262
+ {
3263
+ "type": "array",
3264
+ "items": {
3265
+ "type": "string"
3266
+ }
3267
+ }
3268
+ ]
3269
+ }
3270
+ ]
3271
+ },
3272
+ "probe": {
3273
+ "anyOf": [
3274
+ {
3275
+ "$ref": "#/$defs/Use"
3276
+ },
3277
+ {
3278
+ "$ref": "#/$defs/Include"
3279
+ },
3280
+ {
3281
+ "type": "object",
3282
+ "properties": {
3283
+ "source": {
3284
+ "type": "string"
3285
+ },
3286
+ "name": {
3287
+ "type": "string"
3288
+ }
3289
+ },
3290
+ "required": [
3291
+ "source",
3292
+ "name"
3293
+ ],
3294
+ "additionalProperties": false
3295
+ }
3296
+ ]
3297
+ }
3298
+ },
3299
+ "required": [
3300
+ "message",
3301
+ "subject"
3302
+ ],
3303
+ "additionalProperties": false
3304
+ }
3305
+ ]
3306
+ }
3307
+ }
3308
+ ]
3309
+ },
3310
+ "surface": {
3311
+ "anyOf": [
3312
+ {
3313
+ "$ref": "#/$defs/Include"
3314
+ },
3315
+ {
3316
+ "type": "array",
3317
+ "items": {
3318
+ "anyOf": [
3319
+ {
3320
+ "$ref": "#/$defs/Use"
3321
+ },
3322
+ {
3323
+ "$ref": "#/$defs/Include"
3324
+ },
3325
+ {
3326
+ "type": "object",
3327
+ "properties": {
3328
+ "message": {
3329
+ "type": "string"
3330
+ },
3331
+ "kinds": {
3332
+ "anyOf": [
3333
+ {
3334
+ "$ref": "#/$defs/Include"
3335
+ },
3336
+ {
3337
+ "type": "array",
3338
+ "items": {
3339
+ "type": "string",
3340
+ "enum": [
3341
+ "named",
3342
+ "default",
3343
+ "namespace"
3344
+ ]
3345
+ }
3346
+ }
3347
+ ]
3348
+ },
3349
+ "declares": {
3350
+ "anyOf": [
3351
+ {
3352
+ "$ref": "#/$defs/Include"
3353
+ },
3354
+ {
3355
+ "type": "array",
3356
+ "items": {
3357
+ "type": "string",
3358
+ "enum": [
3359
+ "function",
3360
+ "class",
3361
+ "variable",
3362
+ "type",
3363
+ "interface",
3364
+ "enum",
3365
+ "expression",
3366
+ "other"
3367
+ ]
3368
+ }
3369
+ }
3370
+ ]
3371
+ },
3372
+ "reexport": {
3373
+ "type": "boolean"
3374
+ },
3375
+ "match": {
3376
+ "anyOf": [
3377
+ {
3378
+ "type": "string"
3379
+ },
3380
+ {
3381
+ "anyOf": [
3382
+ {
3383
+ "$ref": "#/$defs/Include"
3384
+ },
3385
+ {
3386
+ "type": "array",
3387
+ "items": {
3388
+ "type": "string"
3389
+ }
3390
+ }
3391
+ ]
3392
+ }
3393
+ ]
3394
+ },
3395
+ "matchNot": {
3396
+ "anyOf": [
3397
+ {
3398
+ "type": "string"
3399
+ },
3400
+ {
3401
+ "anyOf": [
3402
+ {
3403
+ "$ref": "#/$defs/Include"
3404
+ },
3405
+ {
3406
+ "type": "array",
3407
+ "items": {
3408
+ "type": "string"
3409
+ }
3410
+ }
3411
+ ]
3412
+ }
3413
+ ]
3414
+ },
3415
+ "forbid": {
3416
+ "type": "boolean"
3417
+ },
3418
+ "allow": {
3419
+ "anyOf": [
3420
+ {
3421
+ "type": "string"
3422
+ },
3423
+ {
3424
+ "anyOf": [
3425
+ {
3426
+ "$ref": "#/$defs/Include"
3427
+ },
3428
+ {
3429
+ "type": "array",
3430
+ "items": {
3431
+ "type": "string"
3432
+ }
3433
+ }
3434
+ ]
3435
+ }
3436
+ ]
3437
+ },
3438
+ "convention": {
3439
+ "anyOf": [
3440
+ {
3441
+ "type": "string",
3442
+ "enum": [
3443
+ "kebab-case",
3444
+ "camelCase",
3445
+ "PascalCase",
3446
+ "snake_case"
3447
+ ]
3448
+ },
3449
+ {
3450
+ "anyOf": [
3451
+ {
3452
+ "$ref": "#/$defs/Use"
3453
+ },
3454
+ {
3455
+ "$ref": "#/$defs/Include"
3456
+ },
3457
+ {
3458
+ "type": "object",
3459
+ "properties": {
3460
+ "regex": {
3461
+ "type": "string"
3462
+ }
3463
+ },
3464
+ "required": [
3465
+ "regex"
3466
+ ],
3467
+ "additionalProperties": false
3468
+ }
3469
+ ]
3470
+ }
3471
+ ]
3472
+ },
3473
+ "count": {
3474
+ "anyOf": [
3475
+ {
3476
+ "$ref": "#/$defs/Use"
3477
+ },
3478
+ {
3479
+ "$ref": "#/$defs/Include"
3480
+ },
3481
+ {
3482
+ "type": "object",
3483
+ "properties": {
3484
+ "min": {
3485
+ "type": "number"
3486
+ },
3487
+ "max": {
3488
+ "type": "number"
3489
+ }
3490
+ },
3491
+ "additionalProperties": false
3492
+ }
3493
+ ]
3494
+ },
3495
+ "except": {
3496
+ "anyOf": [
3497
+ {
3498
+ "type": "string"
3499
+ },
3500
+ {
3501
+ "anyOf": [
3502
+ {
3503
+ "$ref": "#/$defs/Include"
3504
+ },
3505
+ {
3506
+ "type": "array",
3507
+ "items": {
3508
+ "type": "string"
3509
+ }
3510
+ }
3511
+ ]
3512
+ }
3513
+ ]
3514
+ },
3515
+ "probe": {
3516
+ "anyOf": [
3517
+ {
3518
+ "$ref": "#/$defs/Use"
3519
+ },
3520
+ {
3521
+ "$ref": "#/$defs/Include"
3522
+ },
3523
+ {
3524
+ "type": "object",
3525
+ "properties": {
3526
+ "source": {
3527
+ "type": "string"
3528
+ }
3529
+ },
3530
+ "required": [
3531
+ "source"
3532
+ ],
3533
+ "additionalProperties": false
3534
+ }
3535
+ ]
3536
+ }
3537
+ },
3538
+ "required": [
3539
+ "message"
3540
+ ],
3541
+ "additionalProperties": false
3542
+ }
3543
+ ]
3544
+ }
3545
+ }
3546
+ ]
3547
+ },
3548
+ "requires": {
3549
+ "anyOf": [
3550
+ {
3551
+ "$ref": "#/$defs/Include"
3552
+ },
3553
+ {
3554
+ "type": "array",
3555
+ "items": {
3556
+ "type": "string"
3557
+ }
3558
+ }
3559
+ ]
3560
+ },
3561
+ "requiresNot": {
3562
+ "anyOf": [
3563
+ {
3564
+ "$ref": "#/$defs/Include"
3565
+ },
3566
+ {
3567
+ "type": "array",
3568
+ "items": {
3569
+ "type": "string"
3570
+ }
3571
+ }
3572
+ ]
3573
+ },
3574
+ "children": {
3575
+ "type": "object",
3576
+ "additionalProperties": {
3577
+ "$ref": "#/$defs/ManifestNode"
3578
+ }
3579
+ }
3580
+ },
3581
+ "additionalProperties": false
3582
+ }
3583
+ ]
3584
+ },
3585
+ "Detector": {
3586
+ "anyOf": [
3587
+ {
3588
+ "anyOf": [
3589
+ {
3590
+ "$ref": "#/$defs/Use"
3591
+ },
3592
+ {
3593
+ "$ref": "#/$defs/Include"
3594
+ },
3595
+ {
3596
+ "type": "object",
3597
+ "properties": {
3598
+ "all": {
3599
+ "anyOf": [
3600
+ {
3601
+ "$ref": "#/$defs/Include"
3602
+ },
3603
+ {
3604
+ "type": "array",
3605
+ "items": {
3606
+ "$ref": "#/$defs/Detector"
3607
+ }
3608
+ }
3609
+ ]
3610
+ }
3611
+ },
3612
+ "required": [
3613
+ "all"
3614
+ ],
3615
+ "additionalProperties": false
3616
+ }
3617
+ ]
3618
+ },
3619
+ {
3620
+ "anyOf": [
3621
+ {
3622
+ "$ref": "#/$defs/Use"
3623
+ },
3624
+ {
3625
+ "$ref": "#/$defs/Include"
3626
+ },
3627
+ {
3628
+ "type": "object",
3629
+ "properties": {
3630
+ "any": {
3631
+ "anyOf": [
3632
+ {
3633
+ "$ref": "#/$defs/Include"
3634
+ },
3635
+ {
3636
+ "type": "array",
3637
+ "items": {
3638
+ "$ref": "#/$defs/Detector"
3639
+ }
3640
+ }
3641
+ ]
3642
+ }
3643
+ },
3644
+ "required": [
3645
+ "any"
3646
+ ],
3647
+ "additionalProperties": false
3648
+ }
3649
+ ]
3650
+ },
3651
+ {
3652
+ "anyOf": [
3653
+ {
3654
+ "$ref": "#/$defs/Use"
3655
+ },
3656
+ {
3657
+ "$ref": "#/$defs/Include"
3658
+ },
3659
+ {
3660
+ "type": "object",
3661
+ "properties": {
3662
+ "not": {
3663
+ "$ref": "#/$defs/Detector"
3664
+ }
3665
+ },
3666
+ "required": [
3667
+ "not"
3668
+ ],
3669
+ "additionalProperties": false
3670
+ }
3671
+ ]
3672
+ },
3673
+ {
3674
+ "anyOf": [
3675
+ {
3676
+ "$ref": "#/$defs/Use"
3677
+ },
3678
+ {
3679
+ "$ref": "#/$defs/Include"
3680
+ },
3681
+ {
3682
+ "type": "object",
3683
+ "properties": {
3684
+ "path": {
3685
+ "anyOf": [
3686
+ {
3687
+ "$ref": "#/$defs/Use"
3688
+ },
3689
+ {
3690
+ "$ref": "#/$defs/Include"
3691
+ },
3692
+ {
3693
+ "type": "object",
3694
+ "properties": {
3695
+ "file": {
3696
+ "anyOf": [
3697
+ {
3698
+ "type": "string"
3699
+ },
3700
+ {
3701
+ "anyOf": [
3702
+ {
3703
+ "$ref": "#/$defs/Include"
3704
+ },
3705
+ {
3706
+ "type": "array",
3707
+ "items": {
3708
+ "type": "string"
3709
+ }
3710
+ }
3711
+ ]
3712
+ }
3713
+ ]
3714
+ },
3715
+ "fileNot": {
3716
+ "anyOf": [
3717
+ {
3718
+ "type": "string"
3719
+ },
3720
+ {
3721
+ "anyOf": [
3722
+ {
3723
+ "$ref": "#/$defs/Include"
3724
+ },
3725
+ {
3726
+ "type": "array",
3727
+ "items": {
3728
+ "type": "string"
3729
+ }
3730
+ }
3731
+ ]
3732
+ }
3733
+ ]
3734
+ },
3735
+ "subject": {
3736
+ "type": "number"
3737
+ },
3738
+ "convention": {
3739
+ "anyOf": [
3740
+ {
3741
+ "type": "string",
3742
+ "enum": [
3743
+ "kebab-case",
3744
+ "camelCase",
3745
+ "PascalCase",
3746
+ "snake_case"
3747
+ ]
3748
+ },
3749
+ {
3750
+ "anyOf": [
3751
+ {
3752
+ "$ref": "#/$defs/Use"
3753
+ },
3754
+ {
3755
+ "$ref": "#/$defs/Include"
3756
+ },
3757
+ {
3758
+ "type": "object",
3759
+ "properties": {
3760
+ "regex": {
3761
+ "type": "string"
3762
+ }
3763
+ },
3764
+ "required": [
3765
+ "regex"
3766
+ ],
3767
+ "additionalProperties": false
3768
+ }
3769
+ ]
3770
+ }
3771
+ ]
3772
+ }
3773
+ },
3774
+ "required": [
3775
+ "file"
3776
+ ],
3777
+ "additionalProperties": false
3778
+ }
3779
+ ]
3780
+ }
3781
+ },
3782
+ "required": [
3783
+ "path"
3784
+ ],
3785
+ "additionalProperties": false
3786
+ }
3787
+ ]
3788
+ },
3789
+ {
3790
+ "anyOf": [
3791
+ {
3792
+ "$ref": "#/$defs/Use"
3793
+ },
3794
+ {
3795
+ "$ref": "#/$defs/Include"
3796
+ },
3797
+ {
3798
+ "type": "object",
3799
+ "properties": {
3800
+ "imports": {
3801
+ "anyOf": [
3802
+ {
3803
+ "$ref": "#/$defs/Use"
3804
+ },
3805
+ {
3806
+ "$ref": "#/$defs/Include"
3807
+ },
3808
+ {
3809
+ "type": "object",
3810
+ "properties": {
3811
+ "resolves": {
3812
+ "anyOf": [
3813
+ {
3814
+ "type": "string"
3815
+ },
3816
+ {
3817
+ "anyOf": [
3818
+ {
3819
+ "$ref": "#/$defs/Use"
3820
+ },
3821
+ {
3822
+ "$ref": "#/$defs/Include"
3823
+ },
3824
+ {
3825
+ "type": "object",
3826
+ "properties": {
3827
+ "external": {
3828
+ "type": "string"
3829
+ }
3830
+ },
3831
+ "required": [
3832
+ "external"
3833
+ ],
3834
+ "additionalProperties": false
3835
+ }
3836
+ ]
3837
+ },
3838
+ {
3839
+ "anyOf": [
3840
+ {
3841
+ "$ref": "#/$defs/Use"
3842
+ },
3843
+ {
3844
+ "$ref": "#/$defs/Include"
3845
+ },
3846
+ {
3847
+ "type": "object",
3848
+ "properties": {
3849
+ "builtin": {
3850
+ "type": "string"
3851
+ }
3852
+ },
3853
+ "required": [
3854
+ "builtin"
3855
+ ],
3856
+ "additionalProperties": false
3857
+ }
3858
+ ]
3859
+ }
3860
+ ]
3861
+ },
3862
+ "symbols": {
3863
+ "anyOf": [
3864
+ {
3865
+ "$ref": "#/$defs/Include"
3866
+ },
3867
+ {
3868
+ "type": "array",
3869
+ "items": {
3870
+ "type": "string"
3871
+ }
3872
+ }
3873
+ ]
3874
+ }
3875
+ },
3876
+ "required": [
3877
+ "resolves"
3878
+ ],
3879
+ "additionalProperties": false
3880
+ }
3881
+ ]
3882
+ }
3883
+ },
3884
+ "required": [
3885
+ "imports"
3886
+ ],
3887
+ "additionalProperties": false
3888
+ }
3889
+ ]
3890
+ },
3891
+ {
3892
+ "anyOf": [
3893
+ {
3894
+ "$ref": "#/$defs/Use"
3895
+ },
3896
+ {
3897
+ "$ref": "#/$defs/Include"
3898
+ },
3899
+ {
3900
+ "type": "object",
3901
+ "properties": {
3902
+ "exports": {
3903
+ "anyOf": [
3904
+ {
3905
+ "$ref": "#/$defs/Use"
3906
+ },
3907
+ {
3908
+ "$ref": "#/$defs/Include"
3909
+ },
3910
+ {
3911
+ "type": "object",
3912
+ "properties": {
3913
+ "name": {
3914
+ "anyOf": [
3915
+ {
3916
+ "type": "string"
3917
+ },
3918
+ {
3919
+ "anyOf": [
3920
+ {
3921
+ "$ref": "#/$defs/Include"
3922
+ },
3923
+ {
3924
+ "type": "array",
3925
+ "items": {
3926
+ "type": "string"
3927
+ }
3928
+ }
3929
+ ]
3930
+ }
3931
+ ]
3932
+ },
3933
+ "kinds": {
3934
+ "anyOf": [
3935
+ {
3936
+ "$ref": "#/$defs/Include"
3937
+ },
3938
+ {
3939
+ "type": "array",
3940
+ "items": {
3941
+ "type": "string",
3942
+ "enum": [
3943
+ "named",
3944
+ "default",
3945
+ "namespace"
3946
+ ]
3947
+ }
3948
+ }
3949
+ ]
3950
+ },
3951
+ "declares": {
3952
+ "anyOf": [
3953
+ {
3954
+ "$ref": "#/$defs/Include"
3955
+ },
3956
+ {
3957
+ "type": "array",
3958
+ "items": {
3959
+ "type": "string",
3960
+ "enum": [
3961
+ "function",
3962
+ "class",
3963
+ "variable",
3964
+ "type",
3965
+ "interface",
3966
+ "enum",
3967
+ "expression",
3968
+ "other"
3969
+ ]
3970
+ }
3971
+ }
3972
+ ]
3973
+ },
3974
+ "reexport": {
3975
+ "type": "boolean"
3976
+ }
3977
+ },
3978
+ "additionalProperties": false
3979
+ }
3980
+ ]
3981
+ }
3982
+ },
3983
+ "required": [
3984
+ "exports"
3985
+ ],
3986
+ "additionalProperties": false
3987
+ }
3988
+ ]
3989
+ },
3990
+ {
3991
+ "anyOf": [
3992
+ {
3993
+ "$ref": "#/$defs/Use"
3994
+ },
3995
+ {
3996
+ "$ref": "#/$defs/Include"
3997
+ },
3998
+ {
3999
+ "type": "object",
4000
+ "properties": {
4001
+ "members": {
4002
+ "anyOf": [
4003
+ {
4004
+ "$ref": "#/$defs/Use"
4005
+ },
4006
+ {
4007
+ "$ref": "#/$defs/Include"
4008
+ },
4009
+ {
4010
+ "type": "object",
4011
+ "properties": {
4012
+ "subject": {
4013
+ "type": "string",
4014
+ "enum": [
4015
+ "members",
4016
+ "calls"
4017
+ ]
4018
+ },
4019
+ "name": {
4020
+ "anyOf": [
4021
+ {
4022
+ "type": "string"
4023
+ },
4024
+ {
4025
+ "anyOf": [
4026
+ {
4027
+ "$ref": "#/$defs/Include"
4028
+ },
4029
+ {
4030
+ "type": "array",
4031
+ "items": {
4032
+ "type": "string"
4033
+ }
4034
+ }
4035
+ ]
4036
+ }
4037
+ ]
4038
+ },
4039
+ "in": {
4040
+ "anyOf": [
4041
+ {
4042
+ "type": "string"
4043
+ },
4044
+ {
4045
+ "anyOf": [
4046
+ {
4047
+ "$ref": "#/$defs/Include"
4048
+ },
4049
+ {
4050
+ "type": "array",
4051
+ "items": {
4052
+ "type": "string"
4053
+ }
4054
+ }
4055
+ ]
4056
+ }
4057
+ ]
4058
+ },
4059
+ "declares": {
4060
+ "anyOf": [
4061
+ {
4062
+ "$ref": "#/$defs/Include"
4063
+ },
4064
+ {
4065
+ "type": "array",
4066
+ "items": {
4067
+ "type": "string",
4068
+ "enum": [
4069
+ "function",
4070
+ "class",
4071
+ "variable",
4072
+ "type",
4073
+ "interface",
4074
+ "enum",
4075
+ "expression",
4076
+ "other"
4077
+ ]
4078
+ }
4079
+ }
4080
+ ]
4081
+ }
4082
+ },
4083
+ "required": [
4084
+ "subject"
4085
+ ],
4086
+ "additionalProperties": false
4087
+ }
4088
+ ]
4089
+ }
4090
+ },
4091
+ "required": [
4092
+ "members"
4093
+ ],
4094
+ "additionalProperties": false
4095
+ }
4096
+ ]
4097
+ },
4098
+ {
4099
+ "anyOf": [
4100
+ {
4101
+ "$ref": "#/$defs/Use"
4102
+ },
4103
+ {
4104
+ "$ref": "#/$defs/Include"
4105
+ },
4106
+ {
4107
+ "type": "object",
4108
+ "properties": {
4109
+ "requires": {
4110
+ "anyOf": [
4111
+ {
4112
+ "$ref": "#/$defs/Include"
4113
+ },
4114
+ {
4115
+ "type": "array",
4116
+ "items": {
4117
+ "type": "string"
4118
+ }
4119
+ }
4120
+ ]
4121
+ }
4122
+ },
4123
+ "required": [
4124
+ "requires"
4125
+ ],
4126
+ "additionalProperties": false
4127
+ }
4128
+ ]
4129
+ },
4130
+ {
4131
+ "anyOf": [
4132
+ {
4133
+ "$ref": "#/$defs/Use"
4134
+ },
4135
+ {
4136
+ "$ref": "#/$defs/Include"
4137
+ },
4138
+ {
4139
+ "type": "object",
4140
+ "properties": {
4141
+ "content": {
4142
+ "anyOf": [
4143
+ {
4144
+ "$ref": "#/$defs/Use"
4145
+ },
4146
+ {
4147
+ "$ref": "#/$defs/Include"
4148
+ },
4149
+ {
4150
+ "type": "object",
4151
+ "properties": {
4152
+ "regex": {
4153
+ "type": "string"
4154
+ }
4155
+ },
4156
+ "required": [
4157
+ "regex"
4158
+ ],
4159
+ "additionalProperties": false
4160
+ }
4161
+ ]
4162
+ }
4163
+ },
4164
+ "required": [
4165
+ "content"
4166
+ ],
4167
+ "additionalProperties": false
4168
+ }
4169
+ ]
4170
+ },
4171
+ {
4172
+ "anyOf": [
4173
+ {
4174
+ "$ref": "#/$defs/Use"
4175
+ },
4176
+ {
4177
+ "$ref": "#/$defs/Include"
4178
+ },
4179
+ {
4180
+ "type": "object",
4181
+ "properties": {
4182
+ "syntax": {
4183
+ "anyOf": [
4184
+ {
4185
+ "$ref": "#/$defs/Use"
4186
+ },
4187
+ {
4188
+ "$ref": "#/$defs/Include"
4189
+ },
4190
+ {
4191
+ "type": "object",
4192
+ "properties": {
4193
+ "pattern": {},
4194
+ "kind": {},
4195
+ "regex": {},
4196
+ "nthChild": {},
4197
+ "inside": {},
4198
+ "has": {},
4199
+ "precedes": {},
4200
+ "follows": {},
4201
+ "all": {},
4202
+ "any": {},
4203
+ "not": {},
4204
+ "where": {
4205
+ "type": "object",
4206
+ "additionalProperties": {
4207
+ "anyOf": [
4208
+ {
4209
+ "$ref": "#/$defs/Use"
4210
+ },
4211
+ {
4212
+ "$ref": "#/$defs/Include"
4213
+ },
4214
+ {
4215
+ "type": "object",
4216
+ "properties": {
4217
+ "regex": {
4218
+ "type": "string"
4219
+ },
4220
+ "binding": {
4221
+ "anyOf": [
4222
+ {
4223
+ "$ref": "#/$defs/Use"
4224
+ },
4225
+ {
4226
+ "$ref": "#/$defs/Include"
4227
+ },
4228
+ {
4229
+ "type": "object",
4230
+ "properties": {
4231
+ "resolves": {
4232
+ "anyOf": [
4233
+ {
4234
+ "type": "string"
4235
+ },
4236
+ {
4237
+ "anyOf": [
4238
+ {
4239
+ "$ref": "#/$defs/Use"
4240
+ },
4241
+ {
4242
+ "$ref": "#/$defs/Include"
4243
+ },
4244
+ {
4245
+ "type": "object",
4246
+ "properties": {
4247
+ "external": {
4248
+ "type": "string"
4249
+ }
4250
+ },
4251
+ "required": [
4252
+ "external"
4253
+ ],
4254
+ "additionalProperties": false
4255
+ }
4256
+ ]
4257
+ },
4258
+ {
4259
+ "anyOf": [
4260
+ {
4261
+ "$ref": "#/$defs/Use"
4262
+ },
4263
+ {
4264
+ "$ref": "#/$defs/Include"
4265
+ },
4266
+ {
4267
+ "type": "object",
4268
+ "properties": {
4269
+ "builtin": {
4270
+ "type": "string"
4271
+ }
4272
+ },
4273
+ "required": [
4274
+ "builtin"
4275
+ ],
4276
+ "additionalProperties": false
4277
+ }
4278
+ ]
4279
+ }
4280
+ ]
4281
+ },
4282
+ "member": {
4283
+ "anyOf": [
4284
+ {
4285
+ "$ref": "#/$defs/Include"
4286
+ },
4287
+ {
4288
+ "type": "array",
4289
+ "items": {
4290
+ "type": "string"
4291
+ }
4292
+ }
4293
+ ]
4294
+ }
4295
+ },
4296
+ "required": [
4297
+ "resolves"
4298
+ ],
4299
+ "additionalProperties": false
4300
+ }
4301
+ ]
4302
+ }
4303
+ },
4304
+ "additionalProperties": false
4305
+ }
4306
+ ]
4307
+ }
4308
+ }
4309
+ },
4310
+ "additionalProperties": false
4311
+ }
4312
+ ]
4313
+ }
4314
+ },
4315
+ "required": [
4316
+ "syntax"
4317
+ ],
4318
+ "additionalProperties": false
4319
+ }
4320
+ ]
4321
+ },
4322
+ {
4323
+ "anyOf": [
4324
+ {
4325
+ "$ref": "#/$defs/Use"
4326
+ },
4327
+ {
4328
+ "$ref": "#/$defs/Include"
4329
+ },
4330
+ {
4331
+ "type": "object",
4332
+ "properties": {
4333
+ "report": {
4334
+ "anyOf": [
4335
+ {
4336
+ "$ref": "#/$defs/Use"
4337
+ },
4338
+ {
4339
+ "$ref": "#/$defs/Include"
4340
+ },
4341
+ {
4342
+ "type": "object",
4343
+ "properties": {
4344
+ "command": {
4345
+ "anyOf": [
4346
+ {
4347
+ "type": "string"
4348
+ },
4349
+ {
4350
+ "anyOf": [
4351
+ {
4352
+ "$ref": "#/$defs/Include"
4353
+ },
4354
+ {
4355
+ "type": "array",
4356
+ "items": {
4357
+ "type": "string"
4358
+ },
4359
+ "allOf": [
4360
+ {
4361
+ "minItems": 1
4362
+ }
4363
+ ]
4364
+ }
4365
+ ]
4366
+ }
4367
+ ]
4368
+ },
4369
+ "file": {
4370
+ "anyOf": [
4371
+ {
4372
+ "type": "string"
4373
+ },
4374
+ {
4375
+ "anyOf": [
4376
+ {
4377
+ "$ref": "#/$defs/Include"
4378
+ },
4379
+ {
4380
+ "type": "array",
4381
+ "items": {
4382
+ "type": "string"
4383
+ },
4384
+ "allOf": [
4385
+ {
4386
+ "minItems": 1
4387
+ }
4388
+ ]
4389
+ }
4390
+ ]
4391
+ }
4392
+ ]
4393
+ },
4394
+ "format": {
4395
+ "type": "string",
4396
+ "enum": [
4397
+ "tsc",
4398
+ "eslint",
4399
+ "oxlint",
4400
+ "regex"
4401
+ ]
4402
+ },
4403
+ "pattern": {
4404
+ "type": "string"
4405
+ },
4406
+ "codes": {
4407
+ "anyOf": [
4408
+ {
4409
+ "$ref": "#/$defs/Include"
4410
+ },
4411
+ {
4412
+ "type": "array",
4413
+ "items": {
4414
+ "type": "string"
4415
+ }
4416
+ }
4417
+ ]
4418
+ },
4419
+ "codesNot": {
4420
+ "anyOf": [
4421
+ {
4422
+ "$ref": "#/$defs/Include"
4423
+ },
4424
+ {
4425
+ "type": "array",
4426
+ "items": {
4427
+ "type": "string"
4428
+ }
4429
+ }
4430
+ ]
4431
+ }
4432
+ },
4433
+ "required": [
4434
+ "format"
4435
+ ],
4436
+ "additionalProperties": false
4437
+ }
4438
+ ]
4439
+ }
4440
+ },
4441
+ "required": [
4442
+ "report"
4443
+ ],
4444
+ "additionalProperties": false
4445
+ }
4446
+ ]
4447
+ },
4448
+ {
4449
+ "anyOf": [
4450
+ {
4451
+ "$ref": "#/$defs/Use"
4452
+ },
4453
+ {
4454
+ "$ref": "#/$defs/Include"
4455
+ },
4456
+ {
4457
+ "type": "object",
4458
+ "properties": {
4459
+ "fn": {
4460
+ "type": "string"
4461
+ }
4462
+ },
4463
+ "required": [
4464
+ "fn"
4465
+ ],
4466
+ "additionalProperties": false
4467
+ }
4468
+ ]
4469
+ }
4470
+ ]
4471
+ },
4472
+ "Use": {
4473
+ "type": "object",
4474
+ "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.",
4475
+ "properties": {
4476
+ "use": {
4477
+ "type": "string"
4478
+ }
4479
+ },
4480
+ "required": [
4481
+ "use"
4482
+ ]
4483
+ },
4484
+ "Include": {
4485
+ "type": "object",
4486
+ "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`.",
4487
+ "properties": {
4488
+ "include": {
4489
+ "type": "string"
4490
+ }
4491
+ },
4492
+ "required": [
4493
+ "include"
4494
+ ],
4495
+ "additionalProperties": false
4496
+ }
4497
+ }
4498
+ }