@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,2405 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://dataquail.github.io/goodbones/schema/architecture-node.schema.json",
4
+ "title": "Architecture manifest node",
5
+ "description": "One node of an architecture manifest's tree, as a file the manifest includes. See https://dataquail.github.io/goodbones/architecture-rules/manifest/#splitting-the-manifest-include.",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string",
10
+ "description": "For editors. Ignored by the loader."
11
+ },
12
+ "defs": {
13
+ "type": "object",
14
+ "description": "Named fragments, referenced elsewhere in the manifest as `{ use: \"<name>\" }`. A fragment may itself contain `use`. Every file's `defs` share one namespace.",
15
+ "additionalProperties": true
16
+ },
17
+ "message": {
18
+ "type": "string"
19
+ },
20
+ "partial": {
21
+ "type": "boolean"
22
+ },
23
+ "layout": {
24
+ "type": "string",
25
+ "enum": [
26
+ "open"
27
+ ]
28
+ },
29
+ "name": {
30
+ "anyOf": [
31
+ {
32
+ "type": "string",
33
+ "enum": [
34
+ "kebab-case",
35
+ "camelCase",
36
+ "PascalCase",
37
+ "snake_case"
38
+ ]
39
+ },
40
+ {
41
+ "anyOf": [
42
+ {
43
+ "$ref": "#/$defs/Use"
44
+ },
45
+ {
46
+ "$ref": "#/$defs/Include"
47
+ },
48
+ {
49
+ "type": "object",
50
+ "properties": {
51
+ "regex": {
52
+ "type": "string"
53
+ },
54
+ "message": {
55
+ "type": "string"
56
+ }
57
+ },
58
+ "required": [
59
+ "regex"
60
+ ],
61
+ "additionalProperties": false
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "anyOf": [
67
+ {
68
+ "$ref": "#/$defs/Use"
69
+ },
70
+ {
71
+ "$ref": "#/$defs/Include"
72
+ },
73
+ {
74
+ "type": "object",
75
+ "properties": {
76
+ "like": {
77
+ "type": "string"
78
+ },
79
+ "message": {
80
+ "type": "string"
81
+ }
82
+ },
83
+ "required": [
84
+ "like"
85
+ ],
86
+ "additionalProperties": false
87
+ }
88
+ ]
89
+ }
90
+ ]
91
+ },
92
+ "imports": {
93
+ "anyOf": [
94
+ {
95
+ "$ref": "#/$defs/Use"
96
+ },
97
+ {
98
+ "$ref": "#/$defs/Include"
99
+ },
100
+ {
101
+ "type": "object",
102
+ "properties": {
103
+ "message": {
104
+ "type": "string"
105
+ },
106
+ "allow": {
107
+ "anyOf": [
108
+ {
109
+ "type": "string"
110
+ },
111
+ {
112
+ "anyOf": [
113
+ {
114
+ "$ref": "#/$defs/Include"
115
+ },
116
+ {
117
+ "type": "array",
118
+ "items": {
119
+ "type": "string"
120
+ }
121
+ }
122
+ ]
123
+ }
124
+ ]
125
+ },
126
+ "external": {
127
+ "anyOf": [
128
+ {
129
+ "$ref": "#/$defs/Include"
130
+ },
131
+ {
132
+ "type": "array",
133
+ "items": {
134
+ "type": "string"
135
+ }
136
+ }
137
+ ]
138
+ },
139
+ "deny": {
140
+ "anyOf": [
141
+ {
142
+ "$ref": "#/$defs/Include"
143
+ },
144
+ {
145
+ "type": "array",
146
+ "items": {
147
+ "anyOf": [
148
+ {
149
+ "$ref": "#/$defs/Use"
150
+ },
151
+ {
152
+ "$ref": "#/$defs/Include"
153
+ },
154
+ {
155
+ "type": "object",
156
+ "properties": {
157
+ "match": {
158
+ "anyOf": [
159
+ {
160
+ "type": "string"
161
+ },
162
+ {
163
+ "anyOf": [
164
+ {
165
+ "$ref": "#/$defs/Include"
166
+ },
167
+ {
168
+ "type": "array",
169
+ "items": {
170
+ "type": "string"
171
+ }
172
+ }
173
+ ]
174
+ }
175
+ ]
176
+ },
177
+ "matchNot": {
178
+ "anyOf": [
179
+ {
180
+ "type": "string"
181
+ },
182
+ {
183
+ "anyOf": [
184
+ {
185
+ "$ref": "#/$defs/Include"
186
+ },
187
+ {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "string"
191
+ }
192
+ }
193
+ ]
194
+ }
195
+ ]
196
+ },
197
+ "except": {
198
+ "anyOf": [
199
+ {
200
+ "type": "string"
201
+ },
202
+ {
203
+ "anyOf": [
204
+ {
205
+ "$ref": "#/$defs/Include"
206
+ },
207
+ {
208
+ "type": "array",
209
+ "items": {
210
+ "type": "string"
211
+ }
212
+ }
213
+ ]
214
+ }
215
+ ]
216
+ },
217
+ "message": {
218
+ "type": "string"
219
+ }
220
+ },
221
+ "required": [
222
+ "match",
223
+ "message"
224
+ ],
225
+ "additionalProperties": false
226
+ }
227
+ ]
228
+ }
229
+ }
230
+ ]
231
+ },
232
+ "reset": {
233
+ "type": "boolean"
234
+ },
235
+ "unrestricted": {
236
+ "type": "boolean"
237
+ }
238
+ },
239
+ "additionalProperties": false
240
+ }
241
+ ]
242
+ },
243
+ "importedBy": {
244
+ "anyOf": [
245
+ {
246
+ "$ref": "#/$defs/Use"
247
+ },
248
+ {
249
+ "$ref": "#/$defs/Include"
250
+ },
251
+ {
252
+ "type": "object",
253
+ "properties": {
254
+ "message": {
255
+ "type": "string"
256
+ },
257
+ "allow": {
258
+ "anyOf": [
259
+ {
260
+ "type": "string"
261
+ },
262
+ {
263
+ "anyOf": [
264
+ {
265
+ "$ref": "#/$defs/Include"
266
+ },
267
+ {
268
+ "type": "array",
269
+ "items": {
270
+ "type": "string"
271
+ }
272
+ }
273
+ ]
274
+ }
275
+ ]
276
+ },
277
+ "matchNot": {
278
+ "anyOf": [
279
+ {
280
+ "type": "string"
281
+ },
282
+ {
283
+ "anyOf": [
284
+ {
285
+ "$ref": "#/$defs/Include"
286
+ },
287
+ {
288
+ "type": "array",
289
+ "items": {
290
+ "type": "string"
291
+ }
292
+ }
293
+ ]
294
+ }
295
+ ]
296
+ }
297
+ },
298
+ "required": [
299
+ "message",
300
+ "allow"
301
+ ],
302
+ "additionalProperties": false
303
+ }
304
+ ]
305
+ },
306
+ "members": {
307
+ "anyOf": [
308
+ {
309
+ "$ref": "#/$defs/Include"
310
+ },
311
+ {
312
+ "type": "array",
313
+ "items": {
314
+ "anyOf": [
315
+ {
316
+ "$ref": "#/$defs/Use"
317
+ },
318
+ {
319
+ "$ref": "#/$defs/Include"
320
+ },
321
+ {
322
+ "type": "object",
323
+ "properties": {
324
+ "message": {
325
+ "type": "string"
326
+ },
327
+ "subject": {
328
+ "type": "string",
329
+ "enum": [
330
+ "members",
331
+ "calls"
332
+ ]
333
+ },
334
+ "in": {
335
+ "anyOf": [
336
+ {
337
+ "type": "string"
338
+ },
339
+ {
340
+ "anyOf": [
341
+ {
342
+ "$ref": "#/$defs/Include"
343
+ },
344
+ {
345
+ "type": "array",
346
+ "items": {
347
+ "type": "string"
348
+ }
349
+ }
350
+ ]
351
+ }
352
+ ]
353
+ },
354
+ "declares": {
355
+ "anyOf": [
356
+ {
357
+ "$ref": "#/$defs/Include"
358
+ },
359
+ {
360
+ "type": "array",
361
+ "items": {
362
+ "type": "string",
363
+ "enum": [
364
+ "function",
365
+ "class",
366
+ "variable",
367
+ "type",
368
+ "interface",
369
+ "enum",
370
+ "expression",
371
+ "other"
372
+ ]
373
+ }
374
+ }
375
+ ]
376
+ },
377
+ "match": {
378
+ "anyOf": [
379
+ {
380
+ "type": "string"
381
+ },
382
+ {
383
+ "anyOf": [
384
+ {
385
+ "$ref": "#/$defs/Include"
386
+ },
387
+ {
388
+ "type": "array",
389
+ "items": {
390
+ "type": "string"
391
+ }
392
+ }
393
+ ]
394
+ }
395
+ ]
396
+ },
397
+ "matchNot": {
398
+ "anyOf": [
399
+ {
400
+ "type": "string"
401
+ },
402
+ {
403
+ "anyOf": [
404
+ {
405
+ "$ref": "#/$defs/Include"
406
+ },
407
+ {
408
+ "type": "array",
409
+ "items": {
410
+ "type": "string"
411
+ }
412
+ }
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ "allow": {
418
+ "anyOf": [
419
+ {
420
+ "type": "string"
421
+ },
422
+ {
423
+ "anyOf": [
424
+ {
425
+ "$ref": "#/$defs/Include"
426
+ },
427
+ {
428
+ "type": "array",
429
+ "items": {
430
+ "type": "string"
431
+ }
432
+ }
433
+ ]
434
+ }
435
+ ]
436
+ },
437
+ "probe": {
438
+ "anyOf": [
439
+ {
440
+ "$ref": "#/$defs/Use"
441
+ },
442
+ {
443
+ "$ref": "#/$defs/Include"
444
+ },
445
+ {
446
+ "type": "object",
447
+ "properties": {
448
+ "source": {
449
+ "type": "string"
450
+ },
451
+ "name": {
452
+ "type": "string"
453
+ }
454
+ },
455
+ "required": [
456
+ "source",
457
+ "name"
458
+ ],
459
+ "additionalProperties": false
460
+ }
461
+ ]
462
+ }
463
+ },
464
+ "required": [
465
+ "message",
466
+ "subject"
467
+ ],
468
+ "additionalProperties": false
469
+ }
470
+ ]
471
+ }
472
+ }
473
+ ]
474
+ },
475
+ "surface": {
476
+ "anyOf": [
477
+ {
478
+ "$ref": "#/$defs/Include"
479
+ },
480
+ {
481
+ "type": "array",
482
+ "items": {
483
+ "anyOf": [
484
+ {
485
+ "$ref": "#/$defs/Use"
486
+ },
487
+ {
488
+ "$ref": "#/$defs/Include"
489
+ },
490
+ {
491
+ "type": "object",
492
+ "properties": {
493
+ "message": {
494
+ "type": "string"
495
+ },
496
+ "kinds": {
497
+ "anyOf": [
498
+ {
499
+ "$ref": "#/$defs/Include"
500
+ },
501
+ {
502
+ "type": "array",
503
+ "items": {
504
+ "type": "string",
505
+ "enum": [
506
+ "named",
507
+ "default",
508
+ "namespace"
509
+ ]
510
+ }
511
+ }
512
+ ]
513
+ },
514
+ "declares": {
515
+ "anyOf": [
516
+ {
517
+ "$ref": "#/$defs/Include"
518
+ },
519
+ {
520
+ "type": "array",
521
+ "items": {
522
+ "type": "string",
523
+ "enum": [
524
+ "function",
525
+ "class",
526
+ "variable",
527
+ "type",
528
+ "interface",
529
+ "enum",
530
+ "expression",
531
+ "other"
532
+ ]
533
+ }
534
+ }
535
+ ]
536
+ },
537
+ "reexport": {
538
+ "type": "boolean"
539
+ },
540
+ "match": {
541
+ "anyOf": [
542
+ {
543
+ "type": "string"
544
+ },
545
+ {
546
+ "anyOf": [
547
+ {
548
+ "$ref": "#/$defs/Include"
549
+ },
550
+ {
551
+ "type": "array",
552
+ "items": {
553
+ "type": "string"
554
+ }
555
+ }
556
+ ]
557
+ }
558
+ ]
559
+ },
560
+ "matchNot": {
561
+ "anyOf": [
562
+ {
563
+ "type": "string"
564
+ },
565
+ {
566
+ "anyOf": [
567
+ {
568
+ "$ref": "#/$defs/Include"
569
+ },
570
+ {
571
+ "type": "array",
572
+ "items": {
573
+ "type": "string"
574
+ }
575
+ }
576
+ ]
577
+ }
578
+ ]
579
+ },
580
+ "forbid": {
581
+ "type": "boolean"
582
+ },
583
+ "allow": {
584
+ "anyOf": [
585
+ {
586
+ "type": "string"
587
+ },
588
+ {
589
+ "anyOf": [
590
+ {
591
+ "$ref": "#/$defs/Include"
592
+ },
593
+ {
594
+ "type": "array",
595
+ "items": {
596
+ "type": "string"
597
+ }
598
+ }
599
+ ]
600
+ }
601
+ ]
602
+ },
603
+ "convention": {
604
+ "anyOf": [
605
+ {
606
+ "type": "string",
607
+ "enum": [
608
+ "kebab-case",
609
+ "camelCase",
610
+ "PascalCase",
611
+ "snake_case"
612
+ ]
613
+ },
614
+ {
615
+ "anyOf": [
616
+ {
617
+ "$ref": "#/$defs/Use"
618
+ },
619
+ {
620
+ "$ref": "#/$defs/Include"
621
+ },
622
+ {
623
+ "type": "object",
624
+ "properties": {
625
+ "regex": {
626
+ "type": "string"
627
+ }
628
+ },
629
+ "required": [
630
+ "regex"
631
+ ],
632
+ "additionalProperties": false
633
+ }
634
+ ]
635
+ }
636
+ ]
637
+ },
638
+ "count": {
639
+ "anyOf": [
640
+ {
641
+ "$ref": "#/$defs/Use"
642
+ },
643
+ {
644
+ "$ref": "#/$defs/Include"
645
+ },
646
+ {
647
+ "type": "object",
648
+ "properties": {
649
+ "min": {
650
+ "type": "number"
651
+ },
652
+ "max": {
653
+ "type": "number"
654
+ }
655
+ },
656
+ "additionalProperties": false
657
+ }
658
+ ]
659
+ },
660
+ "except": {
661
+ "anyOf": [
662
+ {
663
+ "type": "string"
664
+ },
665
+ {
666
+ "anyOf": [
667
+ {
668
+ "$ref": "#/$defs/Include"
669
+ },
670
+ {
671
+ "type": "array",
672
+ "items": {
673
+ "type": "string"
674
+ }
675
+ }
676
+ ]
677
+ }
678
+ ]
679
+ },
680
+ "probe": {
681
+ "anyOf": [
682
+ {
683
+ "$ref": "#/$defs/Use"
684
+ },
685
+ {
686
+ "$ref": "#/$defs/Include"
687
+ },
688
+ {
689
+ "type": "object",
690
+ "properties": {
691
+ "source": {
692
+ "type": "string"
693
+ }
694
+ },
695
+ "required": [
696
+ "source"
697
+ ],
698
+ "additionalProperties": false
699
+ }
700
+ ]
701
+ }
702
+ },
703
+ "required": [
704
+ "message"
705
+ ],
706
+ "additionalProperties": false
707
+ }
708
+ ]
709
+ }
710
+ }
711
+ ]
712
+ },
713
+ "requires": {
714
+ "anyOf": [
715
+ {
716
+ "$ref": "#/$defs/Include"
717
+ },
718
+ {
719
+ "type": "array",
720
+ "items": {
721
+ "type": "string"
722
+ }
723
+ }
724
+ ]
725
+ },
726
+ "requiresNot": {
727
+ "anyOf": [
728
+ {
729
+ "$ref": "#/$defs/Include"
730
+ },
731
+ {
732
+ "type": "array",
733
+ "items": {
734
+ "type": "string"
735
+ }
736
+ }
737
+ ]
738
+ },
739
+ "children": {
740
+ "type": "object",
741
+ "additionalProperties": {
742
+ "$ref": "#/$defs/ManifestNode"
743
+ }
744
+ }
745
+ },
746
+ "additionalProperties": false,
747
+ "$defs": {
748
+ "Detector": {
749
+ "anyOf": [
750
+ {
751
+ "anyOf": [
752
+ {
753
+ "$ref": "#/$defs/Use"
754
+ },
755
+ {
756
+ "$ref": "#/$defs/Include"
757
+ },
758
+ {
759
+ "type": "object",
760
+ "properties": {
761
+ "all": {
762
+ "anyOf": [
763
+ {
764
+ "$ref": "#/$defs/Include"
765
+ },
766
+ {
767
+ "type": "array",
768
+ "items": {
769
+ "$ref": "#/$defs/Detector"
770
+ }
771
+ }
772
+ ]
773
+ }
774
+ },
775
+ "required": [
776
+ "all"
777
+ ],
778
+ "additionalProperties": false
779
+ }
780
+ ]
781
+ },
782
+ {
783
+ "anyOf": [
784
+ {
785
+ "$ref": "#/$defs/Use"
786
+ },
787
+ {
788
+ "$ref": "#/$defs/Include"
789
+ },
790
+ {
791
+ "type": "object",
792
+ "properties": {
793
+ "any": {
794
+ "anyOf": [
795
+ {
796
+ "$ref": "#/$defs/Include"
797
+ },
798
+ {
799
+ "type": "array",
800
+ "items": {
801
+ "$ref": "#/$defs/Detector"
802
+ }
803
+ }
804
+ ]
805
+ }
806
+ },
807
+ "required": [
808
+ "any"
809
+ ],
810
+ "additionalProperties": false
811
+ }
812
+ ]
813
+ },
814
+ {
815
+ "anyOf": [
816
+ {
817
+ "$ref": "#/$defs/Use"
818
+ },
819
+ {
820
+ "$ref": "#/$defs/Include"
821
+ },
822
+ {
823
+ "type": "object",
824
+ "properties": {
825
+ "not": {
826
+ "$ref": "#/$defs/Detector"
827
+ }
828
+ },
829
+ "required": [
830
+ "not"
831
+ ],
832
+ "additionalProperties": false
833
+ }
834
+ ]
835
+ },
836
+ {
837
+ "anyOf": [
838
+ {
839
+ "$ref": "#/$defs/Use"
840
+ },
841
+ {
842
+ "$ref": "#/$defs/Include"
843
+ },
844
+ {
845
+ "type": "object",
846
+ "properties": {
847
+ "path": {
848
+ "anyOf": [
849
+ {
850
+ "$ref": "#/$defs/Use"
851
+ },
852
+ {
853
+ "$ref": "#/$defs/Include"
854
+ },
855
+ {
856
+ "type": "object",
857
+ "properties": {
858
+ "file": {
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
+ "fileNot": {
879
+ "anyOf": [
880
+ {
881
+ "type": "string"
882
+ },
883
+ {
884
+ "anyOf": [
885
+ {
886
+ "$ref": "#/$defs/Include"
887
+ },
888
+ {
889
+ "type": "array",
890
+ "items": {
891
+ "type": "string"
892
+ }
893
+ }
894
+ ]
895
+ }
896
+ ]
897
+ },
898
+ "subject": {
899
+ "type": "number"
900
+ },
901
+ "convention": {
902
+ "anyOf": [
903
+ {
904
+ "type": "string",
905
+ "enum": [
906
+ "kebab-case",
907
+ "camelCase",
908
+ "PascalCase",
909
+ "snake_case"
910
+ ]
911
+ },
912
+ {
913
+ "anyOf": [
914
+ {
915
+ "$ref": "#/$defs/Use"
916
+ },
917
+ {
918
+ "$ref": "#/$defs/Include"
919
+ },
920
+ {
921
+ "type": "object",
922
+ "properties": {
923
+ "regex": {
924
+ "type": "string"
925
+ }
926
+ },
927
+ "required": [
928
+ "regex"
929
+ ],
930
+ "additionalProperties": false
931
+ }
932
+ ]
933
+ }
934
+ ]
935
+ }
936
+ },
937
+ "required": [
938
+ "file"
939
+ ],
940
+ "additionalProperties": false
941
+ }
942
+ ]
943
+ }
944
+ },
945
+ "required": [
946
+ "path"
947
+ ],
948
+ "additionalProperties": false
949
+ }
950
+ ]
951
+ },
952
+ {
953
+ "anyOf": [
954
+ {
955
+ "$ref": "#/$defs/Use"
956
+ },
957
+ {
958
+ "$ref": "#/$defs/Include"
959
+ },
960
+ {
961
+ "type": "object",
962
+ "properties": {
963
+ "imports": {
964
+ "anyOf": [
965
+ {
966
+ "$ref": "#/$defs/Use"
967
+ },
968
+ {
969
+ "$ref": "#/$defs/Include"
970
+ },
971
+ {
972
+ "type": "object",
973
+ "properties": {
974
+ "resolves": {
975
+ "anyOf": [
976
+ {
977
+ "type": "string"
978
+ },
979
+ {
980
+ "anyOf": [
981
+ {
982
+ "$ref": "#/$defs/Use"
983
+ },
984
+ {
985
+ "$ref": "#/$defs/Include"
986
+ },
987
+ {
988
+ "type": "object",
989
+ "properties": {
990
+ "external": {
991
+ "type": "string"
992
+ }
993
+ },
994
+ "required": [
995
+ "external"
996
+ ],
997
+ "additionalProperties": false
998
+ }
999
+ ]
1000
+ },
1001
+ {
1002
+ "anyOf": [
1003
+ {
1004
+ "$ref": "#/$defs/Use"
1005
+ },
1006
+ {
1007
+ "$ref": "#/$defs/Include"
1008
+ },
1009
+ {
1010
+ "type": "object",
1011
+ "properties": {
1012
+ "builtin": {
1013
+ "type": "string"
1014
+ }
1015
+ },
1016
+ "required": [
1017
+ "builtin"
1018
+ ],
1019
+ "additionalProperties": false
1020
+ }
1021
+ ]
1022
+ }
1023
+ ]
1024
+ },
1025
+ "symbols": {
1026
+ "anyOf": [
1027
+ {
1028
+ "$ref": "#/$defs/Include"
1029
+ },
1030
+ {
1031
+ "type": "array",
1032
+ "items": {
1033
+ "type": "string"
1034
+ }
1035
+ }
1036
+ ]
1037
+ }
1038
+ },
1039
+ "required": [
1040
+ "resolves"
1041
+ ],
1042
+ "additionalProperties": false
1043
+ }
1044
+ ]
1045
+ }
1046
+ },
1047
+ "required": [
1048
+ "imports"
1049
+ ],
1050
+ "additionalProperties": false
1051
+ }
1052
+ ]
1053
+ },
1054
+ {
1055
+ "anyOf": [
1056
+ {
1057
+ "$ref": "#/$defs/Use"
1058
+ },
1059
+ {
1060
+ "$ref": "#/$defs/Include"
1061
+ },
1062
+ {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "exports": {
1066
+ "anyOf": [
1067
+ {
1068
+ "$ref": "#/$defs/Use"
1069
+ },
1070
+ {
1071
+ "$ref": "#/$defs/Include"
1072
+ },
1073
+ {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "name": {
1077
+ "anyOf": [
1078
+ {
1079
+ "type": "string"
1080
+ },
1081
+ {
1082
+ "anyOf": [
1083
+ {
1084
+ "$ref": "#/$defs/Include"
1085
+ },
1086
+ {
1087
+ "type": "array",
1088
+ "items": {
1089
+ "type": "string"
1090
+ }
1091
+ }
1092
+ ]
1093
+ }
1094
+ ]
1095
+ },
1096
+ "kinds": {
1097
+ "anyOf": [
1098
+ {
1099
+ "$ref": "#/$defs/Include"
1100
+ },
1101
+ {
1102
+ "type": "array",
1103
+ "items": {
1104
+ "type": "string",
1105
+ "enum": [
1106
+ "named",
1107
+ "default",
1108
+ "namespace"
1109
+ ]
1110
+ }
1111
+ }
1112
+ ]
1113
+ },
1114
+ "declares": {
1115
+ "anyOf": [
1116
+ {
1117
+ "$ref": "#/$defs/Include"
1118
+ },
1119
+ {
1120
+ "type": "array",
1121
+ "items": {
1122
+ "type": "string",
1123
+ "enum": [
1124
+ "function",
1125
+ "class",
1126
+ "variable",
1127
+ "type",
1128
+ "interface",
1129
+ "enum",
1130
+ "expression",
1131
+ "other"
1132
+ ]
1133
+ }
1134
+ }
1135
+ ]
1136
+ },
1137
+ "reexport": {
1138
+ "type": "boolean"
1139
+ }
1140
+ },
1141
+ "additionalProperties": false
1142
+ }
1143
+ ]
1144
+ }
1145
+ },
1146
+ "required": [
1147
+ "exports"
1148
+ ],
1149
+ "additionalProperties": false
1150
+ }
1151
+ ]
1152
+ },
1153
+ {
1154
+ "anyOf": [
1155
+ {
1156
+ "$ref": "#/$defs/Use"
1157
+ },
1158
+ {
1159
+ "$ref": "#/$defs/Include"
1160
+ },
1161
+ {
1162
+ "type": "object",
1163
+ "properties": {
1164
+ "members": {
1165
+ "anyOf": [
1166
+ {
1167
+ "$ref": "#/$defs/Use"
1168
+ },
1169
+ {
1170
+ "$ref": "#/$defs/Include"
1171
+ },
1172
+ {
1173
+ "type": "object",
1174
+ "properties": {
1175
+ "subject": {
1176
+ "type": "string",
1177
+ "enum": [
1178
+ "members",
1179
+ "calls"
1180
+ ]
1181
+ },
1182
+ "name": {
1183
+ "anyOf": [
1184
+ {
1185
+ "type": "string"
1186
+ },
1187
+ {
1188
+ "anyOf": [
1189
+ {
1190
+ "$ref": "#/$defs/Include"
1191
+ },
1192
+ {
1193
+ "type": "array",
1194
+ "items": {
1195
+ "type": "string"
1196
+ }
1197
+ }
1198
+ ]
1199
+ }
1200
+ ]
1201
+ },
1202
+ "in": {
1203
+ "anyOf": [
1204
+ {
1205
+ "type": "string"
1206
+ },
1207
+ {
1208
+ "anyOf": [
1209
+ {
1210
+ "$ref": "#/$defs/Include"
1211
+ },
1212
+ {
1213
+ "type": "array",
1214
+ "items": {
1215
+ "type": "string"
1216
+ }
1217
+ }
1218
+ ]
1219
+ }
1220
+ ]
1221
+ },
1222
+ "declares": {
1223
+ "anyOf": [
1224
+ {
1225
+ "$ref": "#/$defs/Include"
1226
+ },
1227
+ {
1228
+ "type": "array",
1229
+ "items": {
1230
+ "type": "string",
1231
+ "enum": [
1232
+ "function",
1233
+ "class",
1234
+ "variable",
1235
+ "type",
1236
+ "interface",
1237
+ "enum",
1238
+ "expression",
1239
+ "other"
1240
+ ]
1241
+ }
1242
+ }
1243
+ ]
1244
+ }
1245
+ },
1246
+ "required": [
1247
+ "subject"
1248
+ ],
1249
+ "additionalProperties": false
1250
+ }
1251
+ ]
1252
+ }
1253
+ },
1254
+ "required": [
1255
+ "members"
1256
+ ],
1257
+ "additionalProperties": false
1258
+ }
1259
+ ]
1260
+ },
1261
+ {
1262
+ "anyOf": [
1263
+ {
1264
+ "$ref": "#/$defs/Use"
1265
+ },
1266
+ {
1267
+ "$ref": "#/$defs/Include"
1268
+ },
1269
+ {
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "requires": {
1273
+ "anyOf": [
1274
+ {
1275
+ "$ref": "#/$defs/Include"
1276
+ },
1277
+ {
1278
+ "type": "array",
1279
+ "items": {
1280
+ "type": "string"
1281
+ }
1282
+ }
1283
+ ]
1284
+ }
1285
+ },
1286
+ "required": [
1287
+ "requires"
1288
+ ],
1289
+ "additionalProperties": false
1290
+ }
1291
+ ]
1292
+ },
1293
+ {
1294
+ "anyOf": [
1295
+ {
1296
+ "$ref": "#/$defs/Use"
1297
+ },
1298
+ {
1299
+ "$ref": "#/$defs/Include"
1300
+ },
1301
+ {
1302
+ "type": "object",
1303
+ "properties": {
1304
+ "content": {
1305
+ "anyOf": [
1306
+ {
1307
+ "$ref": "#/$defs/Use"
1308
+ },
1309
+ {
1310
+ "$ref": "#/$defs/Include"
1311
+ },
1312
+ {
1313
+ "type": "object",
1314
+ "properties": {
1315
+ "regex": {
1316
+ "type": "string"
1317
+ }
1318
+ },
1319
+ "required": [
1320
+ "regex"
1321
+ ],
1322
+ "additionalProperties": false
1323
+ }
1324
+ ]
1325
+ }
1326
+ },
1327
+ "required": [
1328
+ "content"
1329
+ ],
1330
+ "additionalProperties": false
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "anyOf": [
1336
+ {
1337
+ "$ref": "#/$defs/Use"
1338
+ },
1339
+ {
1340
+ "$ref": "#/$defs/Include"
1341
+ },
1342
+ {
1343
+ "type": "object",
1344
+ "properties": {
1345
+ "syntax": {
1346
+ "anyOf": [
1347
+ {
1348
+ "$ref": "#/$defs/Use"
1349
+ },
1350
+ {
1351
+ "$ref": "#/$defs/Include"
1352
+ },
1353
+ {
1354
+ "type": "object",
1355
+ "properties": {
1356
+ "pattern": {},
1357
+ "kind": {},
1358
+ "regex": {},
1359
+ "nthChild": {},
1360
+ "inside": {},
1361
+ "has": {},
1362
+ "precedes": {},
1363
+ "follows": {},
1364
+ "all": {},
1365
+ "any": {},
1366
+ "not": {},
1367
+ "where": {
1368
+ "type": "object",
1369
+ "additionalProperties": {
1370
+ "anyOf": [
1371
+ {
1372
+ "$ref": "#/$defs/Use"
1373
+ },
1374
+ {
1375
+ "$ref": "#/$defs/Include"
1376
+ },
1377
+ {
1378
+ "type": "object",
1379
+ "properties": {
1380
+ "regex": {
1381
+ "type": "string"
1382
+ },
1383
+ "binding": {
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
+ "member": {
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
+ "additionalProperties": false
1468
+ }
1469
+ ]
1470
+ }
1471
+ }
1472
+ },
1473
+ "additionalProperties": false
1474
+ }
1475
+ ]
1476
+ }
1477
+ },
1478
+ "required": [
1479
+ "syntax"
1480
+ ],
1481
+ "additionalProperties": false
1482
+ }
1483
+ ]
1484
+ },
1485
+ {
1486
+ "anyOf": [
1487
+ {
1488
+ "$ref": "#/$defs/Use"
1489
+ },
1490
+ {
1491
+ "$ref": "#/$defs/Include"
1492
+ },
1493
+ {
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "report": {
1497
+ "anyOf": [
1498
+ {
1499
+ "$ref": "#/$defs/Use"
1500
+ },
1501
+ {
1502
+ "$ref": "#/$defs/Include"
1503
+ },
1504
+ {
1505
+ "type": "object",
1506
+ "properties": {
1507
+ "command": {
1508
+ "anyOf": [
1509
+ {
1510
+ "type": "string"
1511
+ },
1512
+ {
1513
+ "anyOf": [
1514
+ {
1515
+ "$ref": "#/$defs/Include"
1516
+ },
1517
+ {
1518
+ "type": "array",
1519
+ "items": {
1520
+ "type": "string"
1521
+ },
1522
+ "allOf": [
1523
+ {
1524
+ "minItems": 1
1525
+ }
1526
+ ]
1527
+ }
1528
+ ]
1529
+ }
1530
+ ]
1531
+ },
1532
+ "file": {
1533
+ "anyOf": [
1534
+ {
1535
+ "type": "string"
1536
+ },
1537
+ {
1538
+ "anyOf": [
1539
+ {
1540
+ "$ref": "#/$defs/Include"
1541
+ },
1542
+ {
1543
+ "type": "array",
1544
+ "items": {
1545
+ "type": "string"
1546
+ },
1547
+ "allOf": [
1548
+ {
1549
+ "minItems": 1
1550
+ }
1551
+ ]
1552
+ }
1553
+ ]
1554
+ }
1555
+ ]
1556
+ },
1557
+ "format": {
1558
+ "type": "string",
1559
+ "enum": [
1560
+ "tsc",
1561
+ "eslint",
1562
+ "oxlint",
1563
+ "regex"
1564
+ ]
1565
+ },
1566
+ "pattern": {
1567
+ "type": "string"
1568
+ },
1569
+ "codes": {
1570
+ "anyOf": [
1571
+ {
1572
+ "$ref": "#/$defs/Include"
1573
+ },
1574
+ {
1575
+ "type": "array",
1576
+ "items": {
1577
+ "type": "string"
1578
+ }
1579
+ }
1580
+ ]
1581
+ },
1582
+ "codesNot": {
1583
+ "anyOf": [
1584
+ {
1585
+ "$ref": "#/$defs/Include"
1586
+ },
1587
+ {
1588
+ "type": "array",
1589
+ "items": {
1590
+ "type": "string"
1591
+ }
1592
+ }
1593
+ ]
1594
+ }
1595
+ },
1596
+ "required": [
1597
+ "format"
1598
+ ],
1599
+ "additionalProperties": false
1600
+ }
1601
+ ]
1602
+ }
1603
+ },
1604
+ "required": [
1605
+ "report"
1606
+ ],
1607
+ "additionalProperties": false
1608
+ }
1609
+ ]
1610
+ },
1611
+ {
1612
+ "anyOf": [
1613
+ {
1614
+ "$ref": "#/$defs/Use"
1615
+ },
1616
+ {
1617
+ "$ref": "#/$defs/Include"
1618
+ },
1619
+ {
1620
+ "type": "object",
1621
+ "properties": {
1622
+ "fn": {
1623
+ "type": "string"
1624
+ }
1625
+ },
1626
+ "required": [
1627
+ "fn"
1628
+ ],
1629
+ "additionalProperties": false
1630
+ }
1631
+ ]
1632
+ }
1633
+ ]
1634
+ },
1635
+ "ManifestNode": {
1636
+ "anyOf": [
1637
+ {
1638
+ "$ref": "#/$defs/Use"
1639
+ },
1640
+ {
1641
+ "$ref": "#/$defs/Include"
1642
+ },
1643
+ {
1644
+ "type": "object",
1645
+ "properties": {
1646
+ "message": {
1647
+ "type": "string"
1648
+ },
1649
+ "partial": {
1650
+ "type": "boolean"
1651
+ },
1652
+ "layout": {
1653
+ "type": "string",
1654
+ "enum": [
1655
+ "open"
1656
+ ]
1657
+ },
1658
+ "name": {
1659
+ "anyOf": [
1660
+ {
1661
+ "type": "string",
1662
+ "enum": [
1663
+ "kebab-case",
1664
+ "camelCase",
1665
+ "PascalCase",
1666
+ "snake_case"
1667
+ ]
1668
+ },
1669
+ {
1670
+ "anyOf": [
1671
+ {
1672
+ "$ref": "#/$defs/Use"
1673
+ },
1674
+ {
1675
+ "$ref": "#/$defs/Include"
1676
+ },
1677
+ {
1678
+ "type": "object",
1679
+ "properties": {
1680
+ "regex": {
1681
+ "type": "string"
1682
+ },
1683
+ "message": {
1684
+ "type": "string"
1685
+ }
1686
+ },
1687
+ "required": [
1688
+ "regex"
1689
+ ],
1690
+ "additionalProperties": false
1691
+ }
1692
+ ]
1693
+ },
1694
+ {
1695
+ "anyOf": [
1696
+ {
1697
+ "$ref": "#/$defs/Use"
1698
+ },
1699
+ {
1700
+ "$ref": "#/$defs/Include"
1701
+ },
1702
+ {
1703
+ "type": "object",
1704
+ "properties": {
1705
+ "like": {
1706
+ "type": "string"
1707
+ },
1708
+ "message": {
1709
+ "type": "string"
1710
+ }
1711
+ },
1712
+ "required": [
1713
+ "like"
1714
+ ],
1715
+ "additionalProperties": false
1716
+ }
1717
+ ]
1718
+ }
1719
+ ]
1720
+ },
1721
+ "imports": {
1722
+ "anyOf": [
1723
+ {
1724
+ "$ref": "#/$defs/Use"
1725
+ },
1726
+ {
1727
+ "$ref": "#/$defs/Include"
1728
+ },
1729
+ {
1730
+ "type": "object",
1731
+ "properties": {
1732
+ "message": {
1733
+ "type": "string"
1734
+ },
1735
+ "allow": {
1736
+ "anyOf": [
1737
+ {
1738
+ "type": "string"
1739
+ },
1740
+ {
1741
+ "anyOf": [
1742
+ {
1743
+ "$ref": "#/$defs/Include"
1744
+ },
1745
+ {
1746
+ "type": "array",
1747
+ "items": {
1748
+ "type": "string"
1749
+ }
1750
+ }
1751
+ ]
1752
+ }
1753
+ ]
1754
+ },
1755
+ "external": {
1756
+ "anyOf": [
1757
+ {
1758
+ "$ref": "#/$defs/Include"
1759
+ },
1760
+ {
1761
+ "type": "array",
1762
+ "items": {
1763
+ "type": "string"
1764
+ }
1765
+ }
1766
+ ]
1767
+ },
1768
+ "deny": {
1769
+ "anyOf": [
1770
+ {
1771
+ "$ref": "#/$defs/Include"
1772
+ },
1773
+ {
1774
+ "type": "array",
1775
+ "items": {
1776
+ "anyOf": [
1777
+ {
1778
+ "$ref": "#/$defs/Use"
1779
+ },
1780
+ {
1781
+ "$ref": "#/$defs/Include"
1782
+ },
1783
+ {
1784
+ "type": "object",
1785
+ "properties": {
1786
+ "match": {
1787
+ "anyOf": [
1788
+ {
1789
+ "type": "string"
1790
+ },
1791
+ {
1792
+ "anyOf": [
1793
+ {
1794
+ "$ref": "#/$defs/Include"
1795
+ },
1796
+ {
1797
+ "type": "array",
1798
+ "items": {
1799
+ "type": "string"
1800
+ }
1801
+ }
1802
+ ]
1803
+ }
1804
+ ]
1805
+ },
1806
+ "matchNot": {
1807
+ "anyOf": [
1808
+ {
1809
+ "type": "string"
1810
+ },
1811
+ {
1812
+ "anyOf": [
1813
+ {
1814
+ "$ref": "#/$defs/Include"
1815
+ },
1816
+ {
1817
+ "type": "array",
1818
+ "items": {
1819
+ "type": "string"
1820
+ }
1821
+ }
1822
+ ]
1823
+ }
1824
+ ]
1825
+ },
1826
+ "except": {
1827
+ "anyOf": [
1828
+ {
1829
+ "type": "string"
1830
+ },
1831
+ {
1832
+ "anyOf": [
1833
+ {
1834
+ "$ref": "#/$defs/Include"
1835
+ },
1836
+ {
1837
+ "type": "array",
1838
+ "items": {
1839
+ "type": "string"
1840
+ }
1841
+ }
1842
+ ]
1843
+ }
1844
+ ]
1845
+ },
1846
+ "message": {
1847
+ "type": "string"
1848
+ }
1849
+ },
1850
+ "required": [
1851
+ "match",
1852
+ "message"
1853
+ ],
1854
+ "additionalProperties": false
1855
+ }
1856
+ ]
1857
+ }
1858
+ }
1859
+ ]
1860
+ },
1861
+ "reset": {
1862
+ "type": "boolean"
1863
+ },
1864
+ "unrestricted": {
1865
+ "type": "boolean"
1866
+ }
1867
+ },
1868
+ "additionalProperties": false
1869
+ }
1870
+ ]
1871
+ },
1872
+ "importedBy": {
1873
+ "anyOf": [
1874
+ {
1875
+ "$ref": "#/$defs/Use"
1876
+ },
1877
+ {
1878
+ "$ref": "#/$defs/Include"
1879
+ },
1880
+ {
1881
+ "type": "object",
1882
+ "properties": {
1883
+ "message": {
1884
+ "type": "string"
1885
+ },
1886
+ "allow": {
1887
+ "anyOf": [
1888
+ {
1889
+ "type": "string"
1890
+ },
1891
+ {
1892
+ "anyOf": [
1893
+ {
1894
+ "$ref": "#/$defs/Include"
1895
+ },
1896
+ {
1897
+ "type": "array",
1898
+ "items": {
1899
+ "type": "string"
1900
+ }
1901
+ }
1902
+ ]
1903
+ }
1904
+ ]
1905
+ },
1906
+ "matchNot": {
1907
+ "anyOf": [
1908
+ {
1909
+ "type": "string"
1910
+ },
1911
+ {
1912
+ "anyOf": [
1913
+ {
1914
+ "$ref": "#/$defs/Include"
1915
+ },
1916
+ {
1917
+ "type": "array",
1918
+ "items": {
1919
+ "type": "string"
1920
+ }
1921
+ }
1922
+ ]
1923
+ }
1924
+ ]
1925
+ }
1926
+ },
1927
+ "required": [
1928
+ "message",
1929
+ "allow"
1930
+ ],
1931
+ "additionalProperties": false
1932
+ }
1933
+ ]
1934
+ },
1935
+ "members": {
1936
+ "anyOf": [
1937
+ {
1938
+ "$ref": "#/$defs/Include"
1939
+ },
1940
+ {
1941
+ "type": "array",
1942
+ "items": {
1943
+ "anyOf": [
1944
+ {
1945
+ "$ref": "#/$defs/Use"
1946
+ },
1947
+ {
1948
+ "$ref": "#/$defs/Include"
1949
+ },
1950
+ {
1951
+ "type": "object",
1952
+ "properties": {
1953
+ "message": {
1954
+ "type": "string"
1955
+ },
1956
+ "subject": {
1957
+ "type": "string",
1958
+ "enum": [
1959
+ "members",
1960
+ "calls"
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
+ "match": {
2007
+ "anyOf": [
2008
+ {
2009
+ "type": "string"
2010
+ },
2011
+ {
2012
+ "anyOf": [
2013
+ {
2014
+ "$ref": "#/$defs/Include"
2015
+ },
2016
+ {
2017
+ "type": "array",
2018
+ "items": {
2019
+ "type": "string"
2020
+ }
2021
+ }
2022
+ ]
2023
+ }
2024
+ ]
2025
+ },
2026
+ "matchNot": {
2027
+ "anyOf": [
2028
+ {
2029
+ "type": "string"
2030
+ },
2031
+ {
2032
+ "anyOf": [
2033
+ {
2034
+ "$ref": "#/$defs/Include"
2035
+ },
2036
+ {
2037
+ "type": "array",
2038
+ "items": {
2039
+ "type": "string"
2040
+ }
2041
+ }
2042
+ ]
2043
+ }
2044
+ ]
2045
+ },
2046
+ "allow": {
2047
+ "anyOf": [
2048
+ {
2049
+ "type": "string"
2050
+ },
2051
+ {
2052
+ "anyOf": [
2053
+ {
2054
+ "$ref": "#/$defs/Include"
2055
+ },
2056
+ {
2057
+ "type": "array",
2058
+ "items": {
2059
+ "type": "string"
2060
+ }
2061
+ }
2062
+ ]
2063
+ }
2064
+ ]
2065
+ },
2066
+ "probe": {
2067
+ "anyOf": [
2068
+ {
2069
+ "$ref": "#/$defs/Use"
2070
+ },
2071
+ {
2072
+ "$ref": "#/$defs/Include"
2073
+ },
2074
+ {
2075
+ "type": "object",
2076
+ "properties": {
2077
+ "source": {
2078
+ "type": "string"
2079
+ },
2080
+ "name": {
2081
+ "type": "string"
2082
+ }
2083
+ },
2084
+ "required": [
2085
+ "source",
2086
+ "name"
2087
+ ],
2088
+ "additionalProperties": false
2089
+ }
2090
+ ]
2091
+ }
2092
+ },
2093
+ "required": [
2094
+ "message",
2095
+ "subject"
2096
+ ],
2097
+ "additionalProperties": false
2098
+ }
2099
+ ]
2100
+ }
2101
+ }
2102
+ ]
2103
+ },
2104
+ "surface": {
2105
+ "anyOf": [
2106
+ {
2107
+ "$ref": "#/$defs/Include"
2108
+ },
2109
+ {
2110
+ "type": "array",
2111
+ "items": {
2112
+ "anyOf": [
2113
+ {
2114
+ "$ref": "#/$defs/Use"
2115
+ },
2116
+ {
2117
+ "$ref": "#/$defs/Include"
2118
+ },
2119
+ {
2120
+ "type": "object",
2121
+ "properties": {
2122
+ "message": {
2123
+ "type": "string"
2124
+ },
2125
+ "kinds": {
2126
+ "anyOf": [
2127
+ {
2128
+ "$ref": "#/$defs/Include"
2129
+ },
2130
+ {
2131
+ "type": "array",
2132
+ "items": {
2133
+ "type": "string",
2134
+ "enum": [
2135
+ "named",
2136
+ "default",
2137
+ "namespace"
2138
+ ]
2139
+ }
2140
+ }
2141
+ ]
2142
+ },
2143
+ "declares": {
2144
+ "anyOf": [
2145
+ {
2146
+ "$ref": "#/$defs/Include"
2147
+ },
2148
+ {
2149
+ "type": "array",
2150
+ "items": {
2151
+ "type": "string",
2152
+ "enum": [
2153
+ "function",
2154
+ "class",
2155
+ "variable",
2156
+ "type",
2157
+ "interface",
2158
+ "enum",
2159
+ "expression",
2160
+ "other"
2161
+ ]
2162
+ }
2163
+ }
2164
+ ]
2165
+ },
2166
+ "reexport": {
2167
+ "type": "boolean"
2168
+ },
2169
+ "match": {
2170
+ "anyOf": [
2171
+ {
2172
+ "type": "string"
2173
+ },
2174
+ {
2175
+ "anyOf": [
2176
+ {
2177
+ "$ref": "#/$defs/Include"
2178
+ },
2179
+ {
2180
+ "type": "array",
2181
+ "items": {
2182
+ "type": "string"
2183
+ }
2184
+ }
2185
+ ]
2186
+ }
2187
+ ]
2188
+ },
2189
+ "matchNot": {
2190
+ "anyOf": [
2191
+ {
2192
+ "type": "string"
2193
+ },
2194
+ {
2195
+ "anyOf": [
2196
+ {
2197
+ "$ref": "#/$defs/Include"
2198
+ },
2199
+ {
2200
+ "type": "array",
2201
+ "items": {
2202
+ "type": "string"
2203
+ }
2204
+ }
2205
+ ]
2206
+ }
2207
+ ]
2208
+ },
2209
+ "forbid": {
2210
+ "type": "boolean"
2211
+ },
2212
+ "allow": {
2213
+ "anyOf": [
2214
+ {
2215
+ "type": "string"
2216
+ },
2217
+ {
2218
+ "anyOf": [
2219
+ {
2220
+ "$ref": "#/$defs/Include"
2221
+ },
2222
+ {
2223
+ "type": "array",
2224
+ "items": {
2225
+ "type": "string"
2226
+ }
2227
+ }
2228
+ ]
2229
+ }
2230
+ ]
2231
+ },
2232
+ "convention": {
2233
+ "anyOf": [
2234
+ {
2235
+ "type": "string",
2236
+ "enum": [
2237
+ "kebab-case",
2238
+ "camelCase",
2239
+ "PascalCase",
2240
+ "snake_case"
2241
+ ]
2242
+ },
2243
+ {
2244
+ "anyOf": [
2245
+ {
2246
+ "$ref": "#/$defs/Use"
2247
+ },
2248
+ {
2249
+ "$ref": "#/$defs/Include"
2250
+ },
2251
+ {
2252
+ "type": "object",
2253
+ "properties": {
2254
+ "regex": {
2255
+ "type": "string"
2256
+ }
2257
+ },
2258
+ "required": [
2259
+ "regex"
2260
+ ],
2261
+ "additionalProperties": false
2262
+ }
2263
+ ]
2264
+ }
2265
+ ]
2266
+ },
2267
+ "count": {
2268
+ "anyOf": [
2269
+ {
2270
+ "$ref": "#/$defs/Use"
2271
+ },
2272
+ {
2273
+ "$ref": "#/$defs/Include"
2274
+ },
2275
+ {
2276
+ "type": "object",
2277
+ "properties": {
2278
+ "min": {
2279
+ "type": "number"
2280
+ },
2281
+ "max": {
2282
+ "type": "number"
2283
+ }
2284
+ },
2285
+ "additionalProperties": false
2286
+ }
2287
+ ]
2288
+ },
2289
+ "except": {
2290
+ "anyOf": [
2291
+ {
2292
+ "type": "string"
2293
+ },
2294
+ {
2295
+ "anyOf": [
2296
+ {
2297
+ "$ref": "#/$defs/Include"
2298
+ },
2299
+ {
2300
+ "type": "array",
2301
+ "items": {
2302
+ "type": "string"
2303
+ }
2304
+ }
2305
+ ]
2306
+ }
2307
+ ]
2308
+ },
2309
+ "probe": {
2310
+ "anyOf": [
2311
+ {
2312
+ "$ref": "#/$defs/Use"
2313
+ },
2314
+ {
2315
+ "$ref": "#/$defs/Include"
2316
+ },
2317
+ {
2318
+ "type": "object",
2319
+ "properties": {
2320
+ "source": {
2321
+ "type": "string"
2322
+ }
2323
+ },
2324
+ "required": [
2325
+ "source"
2326
+ ],
2327
+ "additionalProperties": false
2328
+ }
2329
+ ]
2330
+ }
2331
+ },
2332
+ "required": [
2333
+ "message"
2334
+ ],
2335
+ "additionalProperties": false
2336
+ }
2337
+ ]
2338
+ }
2339
+ }
2340
+ ]
2341
+ },
2342
+ "requires": {
2343
+ "anyOf": [
2344
+ {
2345
+ "$ref": "#/$defs/Include"
2346
+ },
2347
+ {
2348
+ "type": "array",
2349
+ "items": {
2350
+ "type": "string"
2351
+ }
2352
+ }
2353
+ ]
2354
+ },
2355
+ "requiresNot": {
2356
+ "anyOf": [
2357
+ {
2358
+ "$ref": "#/$defs/Include"
2359
+ },
2360
+ {
2361
+ "type": "array",
2362
+ "items": {
2363
+ "type": "string"
2364
+ }
2365
+ }
2366
+ ]
2367
+ },
2368
+ "children": {
2369
+ "type": "object",
2370
+ "additionalProperties": {
2371
+ "$ref": "#/$defs/ManifestNode"
2372
+ }
2373
+ }
2374
+ },
2375
+ "additionalProperties": false
2376
+ }
2377
+ ]
2378
+ },
2379
+ "Use": {
2380
+ "type": "object",
2381
+ "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.",
2382
+ "properties": {
2383
+ "use": {
2384
+ "type": "string"
2385
+ }
2386
+ },
2387
+ "required": [
2388
+ "use"
2389
+ ]
2390
+ },
2391
+ "Include": {
2392
+ "type": "object",
2393
+ "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`.",
2394
+ "properties": {
2395
+ "include": {
2396
+ "type": "string"
2397
+ }
2398
+ },
2399
+ "required": [
2400
+ "include"
2401
+ ],
2402
+ "additionalProperties": false
2403
+ }
2404
+ }
2405
+ }