@goodbones/core 0.1.0-beta.6 → 0.1.0-beta.8

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 (108) hide show
  1. package/build/dts/core/campaigns.d.ts +140 -0
  2. package/build/dts/core/campaigns.d.ts.map +1 -0
  3. package/build/dts/core/ledger.d.ts +61 -0
  4. package/build/dts/core/ledger.d.ts.map +1 -0
  5. package/build/dts/core/structure.d.ts +1 -0
  6. package/build/dts/core/structure.d.ts.map +1 -1
  7. package/build/dts/domain/architecture-config.d.ts +309 -1
  8. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  9. package/build/dts/domain/facts.d.ts +1 -0
  10. package/build/dts/domain/facts.d.ts.map +1 -1
  11. package/build/dts/domain/report.d.ts +15 -0
  12. package/build/dts/domain/report.d.ts.map +1 -0
  13. package/build/dts/domain/snapshot.d.ts +55 -3
  14. package/build/dts/domain/snapshot.d.ts.map +1 -1
  15. package/build/dts/domain/violation.d.ts +1 -1
  16. package/build/dts/domain/violation.d.ts.map +1 -1
  17. package/build/dts/index.d.ts +11 -3
  18. package/build/dts/index.d.ts.map +1 -1
  19. package/build/dts/infrastructure/campaign-functions.d.ts +7 -0
  20. package/build/dts/infrastructure/campaign-functions.d.ts.map +1 -0
  21. package/build/dts/infrastructure/report-source-fake.d.ts +4 -0
  22. package/build/dts/infrastructure/report-source-fake.d.ts.map +1 -0
  23. package/build/dts/infrastructure/report-source-live.d.ts +3 -0
  24. package/build/dts/infrastructure/report-source-live.d.ts.map +1 -0
  25. package/build/dts/infrastructure/syntax-matcher-fake.d.ts +10 -0
  26. package/build/dts/infrastructure/syntax-matcher-fake.d.ts.map +1 -0
  27. package/build/dts/load/policy.d.ts +14 -0
  28. package/build/dts/load/policy.d.ts.map +1 -1
  29. package/build/dts/manifest/compile.d.ts +2 -1
  30. package/build/dts/manifest/compile.d.ts.map +1 -1
  31. package/build/dts/manifest/json-schema.d.ts.map +1 -1
  32. package/build/dts/manifest/manifest.d.ts +362 -0
  33. package/build/dts/manifest/manifest.d.ts.map +1 -1
  34. package/build/dts/ports/campaign-predicate.d.ts +24 -0
  35. package/build/dts/ports/campaign-predicate.d.ts.map +1 -0
  36. package/build/dts/ports/language.d.ts +2 -0
  37. package/build/dts/ports/language.d.ts.map +1 -1
  38. package/build/dts/ports/report-source.d.ts +12 -0
  39. package/build/dts/ports/report-source.d.ts.map +1 -0
  40. package/build/dts/ports/syntax-matcher.d.ts +21 -0
  41. package/build/dts/ports/syntax-matcher.d.ts.map +1 -0
  42. package/build/dts/testing.d.ts +2 -0
  43. package/build/dts/testing.d.ts.map +1 -1
  44. package/build/esm/core/campaigns.js +732 -0
  45. package/build/esm/core/campaigns.js.map +1 -0
  46. package/build/esm/core/ledger.js +171 -0
  47. package/build/esm/core/ledger.js.map +1 -0
  48. package/build/esm/core/structure.js +5 -2
  49. package/build/esm/core/structure.js.map +1 -1
  50. package/build/esm/domain/architecture-config.js +133 -1
  51. package/build/esm/domain/architecture-config.js.map +1 -1
  52. package/build/esm/domain/report.js +151 -0
  53. package/build/esm/domain/report.js.map +1 -0
  54. package/build/esm/domain/snapshot.js +21 -0
  55. package/build/esm/domain/snapshot.js.map +1 -1
  56. package/build/esm/domain/violation.js.map +1 -1
  57. package/build/esm/index.js +7 -1
  58. package/build/esm/index.js.map +1 -1
  59. package/build/esm/infrastructure/campaign-functions.js +67 -0
  60. package/build/esm/infrastructure/campaign-functions.js.map +1 -0
  61. package/build/esm/infrastructure/report-source-fake.js +6 -0
  62. package/build/esm/infrastructure/report-source-fake.js.map +1 -0
  63. package/build/esm/infrastructure/report-source-live.js +57 -0
  64. package/build/esm/infrastructure/report-source-live.js.map +1 -0
  65. package/build/esm/infrastructure/syntax-matcher-fake.js +33 -0
  66. package/build/esm/infrastructure/syntax-matcher-fake.js.map +1 -0
  67. package/build/esm/load/policy.js +121 -1
  68. package/build/esm/load/policy.js.map +1 -1
  69. package/build/esm/manifest/compile.js +186 -1
  70. package/build/esm/manifest/compile.js.map +1 -1
  71. package/build/esm/manifest/json-schema.js +7 -3
  72. package/build/esm/manifest/json-schema.js.map +1 -1
  73. package/build/esm/manifest/manifest.js +148 -1
  74. package/build/esm/manifest/manifest.js.map +1 -1
  75. package/build/esm/ports/campaign-predicate.js +2 -0
  76. package/build/esm/ports/campaign-predicate.js.map +1 -0
  77. package/build/esm/ports/report-source.js +2 -0
  78. package/build/esm/ports/report-source.js.map +1 -0
  79. package/build/esm/ports/syntax-matcher.js +12 -0
  80. package/build/esm/ports/syntax-matcher.js.map +1 -0
  81. package/build/esm/testing.js +2 -0
  82. package/build/esm/testing.js.map +1 -1
  83. package/package.json +1 -1
  84. package/schema/architecture-node.schema.json +843 -0
  85. package/schema/architecture.schema.json +1253 -0
  86. package/schema/conformance.schema.json +118 -3
  87. package/src/core/campaigns.ts +1006 -0
  88. package/src/core/ledger.ts +242 -0
  89. package/src/core/structure.ts +10 -5
  90. package/src/domain/architecture-config.ts +178 -1
  91. package/src/domain/facts.ts +9 -4
  92. package/src/domain/report.ts +186 -0
  93. package/src/domain/snapshot.ts +52 -0
  94. package/src/domain/violation.ts +4 -1
  95. package/src/index.ts +74 -0
  96. package/src/infrastructure/campaign-functions.ts +98 -0
  97. package/src/infrastructure/report-source-fake.ts +10 -0
  98. package/src/infrastructure/report-source-live.ts +66 -0
  99. package/src/infrastructure/syntax-matcher-fake.ts +51 -0
  100. package/src/load/policy.ts +187 -1
  101. package/src/manifest/compile.ts +221 -0
  102. package/src/manifest/json-schema.ts +7 -3
  103. package/src/manifest/manifest.ts +192 -1
  104. package/src/ports/campaign-predicate.ts +30 -0
  105. package/src/ports/language.ts +6 -0
  106. package/src/ports/report-source.ts +21 -0
  107. package/src/ports/syntax-matcher.ts +42 -0
  108. package/src/testing.ts +2 -0
@@ -713,6 +713,416 @@
713
713
  }
714
714
  ]
715
715
  },
716
+ "campaigns": {
717
+ "anyOf": [
718
+ {
719
+ "$ref": "#/$defs/Include"
720
+ },
721
+ {
722
+ "type": "array",
723
+ "items": {
724
+ "anyOf": [
725
+ {
726
+ "$ref": "#/$defs/Use"
727
+ },
728
+ {
729
+ "$ref": "#/$defs/Include"
730
+ },
731
+ {
732
+ "type": "object",
733
+ "properties": {
734
+ "id": {
735
+ "type": "string",
736
+ "allOf": [
737
+ {
738
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
739
+ }
740
+ ]
741
+ },
742
+ "title": {
743
+ "type": "string"
744
+ },
745
+ "why": {
746
+ "type": "string"
747
+ },
748
+ "how": {
749
+ "type": "string"
750
+ },
751
+ "owner": {
752
+ "type": "string"
753
+ },
754
+ "scope": {
755
+ "anyOf": [
756
+ {
757
+ "type": "string"
758
+ },
759
+ {
760
+ "anyOf": [
761
+ {
762
+ "$ref": "#/$defs/Include"
763
+ },
764
+ {
765
+ "type": "array",
766
+ "items": {
767
+ "type": "string"
768
+ }
769
+ }
770
+ ]
771
+ }
772
+ ]
773
+ },
774
+ "unit": {
775
+ "type": "string",
776
+ "enum": [
777
+ "file",
778
+ "declaration",
779
+ "match"
780
+ ]
781
+ },
782
+ "detect": {
783
+ "$ref": "#/$defs/Detector"
784
+ },
785
+ "probes": {
786
+ "anyOf": [
787
+ {
788
+ "$ref": "#/$defs/Use"
789
+ },
790
+ {
791
+ "$ref": "#/$defs/Include"
792
+ },
793
+ {
794
+ "type": "object",
795
+ "properties": {
796
+ "fires": {
797
+ "anyOf": [
798
+ {
799
+ "$ref": "#/$defs/Include"
800
+ },
801
+ {
802
+ "type": "array",
803
+ "items": {
804
+ "anyOf": [
805
+ {
806
+ "$ref": "#/$defs/Use"
807
+ },
808
+ {
809
+ "$ref": "#/$defs/Include"
810
+ },
811
+ {
812
+ "type": "object",
813
+ "properties": {
814
+ "path": {
815
+ "type": "string"
816
+ },
817
+ "source": {
818
+ "type": "string"
819
+ },
820
+ "edges": {
821
+ "type": "object",
822
+ "additionalProperties": {
823
+ "anyOf": [
824
+ {
825
+ "type": "string"
826
+ },
827
+ {
828
+ "anyOf": [
829
+ {
830
+ "$ref": "#/$defs/Use"
831
+ },
832
+ {
833
+ "$ref": "#/$defs/Include"
834
+ },
835
+ {
836
+ "type": "object",
837
+ "properties": {
838
+ "external": {
839
+ "type": "string"
840
+ }
841
+ },
842
+ "required": [
843
+ "external"
844
+ ],
845
+ "additionalProperties": false
846
+ }
847
+ ]
848
+ },
849
+ {
850
+ "anyOf": [
851
+ {
852
+ "$ref": "#/$defs/Use"
853
+ },
854
+ {
855
+ "$ref": "#/$defs/Include"
856
+ },
857
+ {
858
+ "type": "object",
859
+ "properties": {
860
+ "builtin": {
861
+ "type": "string"
862
+ }
863
+ },
864
+ "required": [
865
+ "builtin"
866
+ ],
867
+ "additionalProperties": false
868
+ }
869
+ ]
870
+ }
871
+ ]
872
+ }
873
+ },
874
+ "files": {
875
+ "anyOf": [
876
+ {
877
+ "$ref": "#/$defs/Include"
878
+ },
879
+ {
880
+ "type": "array",
881
+ "items": {
882
+ "type": "string"
883
+ }
884
+ }
885
+ ]
886
+ },
887
+ "report": {
888
+ "anyOf": [
889
+ {
890
+ "$ref": "#/$defs/Include"
891
+ },
892
+ {
893
+ "type": "array",
894
+ "items": {
895
+ "anyOf": [
896
+ {
897
+ "$ref": "#/$defs/Use"
898
+ },
899
+ {
900
+ "$ref": "#/$defs/Include"
901
+ },
902
+ {
903
+ "type": "object",
904
+ "properties": {
905
+ "line": {
906
+ "type": "number"
907
+ },
908
+ "column": {
909
+ "type": "number"
910
+ },
911
+ "code": {
912
+ "type": "string"
913
+ },
914
+ "message": {
915
+ "type": "string"
916
+ }
917
+ },
918
+ "required": [
919
+ "line"
920
+ ],
921
+ "additionalProperties": false
922
+ }
923
+ ]
924
+ }
925
+ }
926
+ ]
927
+ }
928
+ },
929
+ "required": [
930
+ "path"
931
+ ],
932
+ "additionalProperties": false
933
+ }
934
+ ]
935
+ }
936
+ }
937
+ ]
938
+ },
939
+ "ignores": {
940
+ "anyOf": [
941
+ {
942
+ "$ref": "#/$defs/Include"
943
+ },
944
+ {
945
+ "type": "array",
946
+ "items": {
947
+ "anyOf": [
948
+ {
949
+ "$ref": "#/$defs/Use"
950
+ },
951
+ {
952
+ "$ref": "#/$defs/Include"
953
+ },
954
+ {
955
+ "type": "object",
956
+ "properties": {
957
+ "path": {
958
+ "type": "string"
959
+ },
960
+ "source": {
961
+ "type": "string"
962
+ },
963
+ "edges": {
964
+ "type": "object",
965
+ "additionalProperties": {
966
+ "anyOf": [
967
+ {
968
+ "type": "string"
969
+ },
970
+ {
971
+ "anyOf": [
972
+ {
973
+ "$ref": "#/$defs/Use"
974
+ },
975
+ {
976
+ "$ref": "#/$defs/Include"
977
+ },
978
+ {
979
+ "type": "object",
980
+ "properties": {
981
+ "external": {
982
+ "type": "string"
983
+ }
984
+ },
985
+ "required": [
986
+ "external"
987
+ ],
988
+ "additionalProperties": false
989
+ }
990
+ ]
991
+ },
992
+ {
993
+ "anyOf": [
994
+ {
995
+ "$ref": "#/$defs/Use"
996
+ },
997
+ {
998
+ "$ref": "#/$defs/Include"
999
+ },
1000
+ {
1001
+ "type": "object",
1002
+ "properties": {
1003
+ "builtin": {
1004
+ "type": "string"
1005
+ }
1006
+ },
1007
+ "required": [
1008
+ "builtin"
1009
+ ],
1010
+ "additionalProperties": false
1011
+ }
1012
+ ]
1013
+ }
1014
+ ]
1015
+ }
1016
+ },
1017
+ "files": {
1018
+ "anyOf": [
1019
+ {
1020
+ "$ref": "#/$defs/Include"
1021
+ },
1022
+ {
1023
+ "type": "array",
1024
+ "items": {
1025
+ "type": "string"
1026
+ }
1027
+ }
1028
+ ]
1029
+ },
1030
+ "report": {
1031
+ "anyOf": [
1032
+ {
1033
+ "$ref": "#/$defs/Include"
1034
+ },
1035
+ {
1036
+ "type": "array",
1037
+ "items": {
1038
+ "anyOf": [
1039
+ {
1040
+ "$ref": "#/$defs/Use"
1041
+ },
1042
+ {
1043
+ "$ref": "#/$defs/Include"
1044
+ },
1045
+ {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "line": {
1049
+ "type": "number"
1050
+ },
1051
+ "column": {
1052
+ "type": "number"
1053
+ },
1054
+ "code": {
1055
+ "type": "string"
1056
+ },
1057
+ "message": {
1058
+ "type": "string"
1059
+ }
1060
+ },
1061
+ "required": [
1062
+ "line"
1063
+ ],
1064
+ "additionalProperties": false
1065
+ }
1066
+ ]
1067
+ }
1068
+ }
1069
+ ]
1070
+ }
1071
+ },
1072
+ "required": [
1073
+ "path"
1074
+ ],
1075
+ "additionalProperties": false
1076
+ }
1077
+ ]
1078
+ }
1079
+ }
1080
+ ]
1081
+ }
1082
+ },
1083
+ "required": [
1084
+ "fires"
1085
+ ],
1086
+ "additionalProperties": false
1087
+ }
1088
+ ]
1089
+ },
1090
+ "staleAfter": {
1091
+ "type": "string",
1092
+ "allOf": [
1093
+ {
1094
+ "pattern": "^\\d+[dh]$"
1095
+ }
1096
+ ]
1097
+ },
1098
+ "onComplete": {
1099
+ "type": "string",
1100
+ "enum": [
1101
+ "keep",
1102
+ "remove"
1103
+ ]
1104
+ }
1105
+ },
1106
+ "required": [
1107
+ "id",
1108
+ "why",
1109
+ "how",
1110
+ "scope",
1111
+ "unit",
1112
+ "detect",
1113
+ "probes",
1114
+ "staleAfter"
1115
+ ],
1116
+ "additionalProperties": false
1117
+ }
1118
+ ]
1119
+ }
1120
+ }
1121
+ ]
1122
+ },
1123
+ "ledger": {
1124
+ "type": "string"
1125
+ },
716
1126
  "aliases": {
717
1127
  "type": "object",
718
1128
  "additionalProperties": {
@@ -727,6 +1137,849 @@
727
1137
  }
728
1138
  },
729
1139
  "$defs": {
1140
+ "Detector": {
1141
+ "anyOf": [
1142
+ {
1143
+ "anyOf": [
1144
+ {
1145
+ "$ref": "#/$defs/Use"
1146
+ },
1147
+ {
1148
+ "$ref": "#/$defs/Include"
1149
+ },
1150
+ {
1151
+ "type": "object",
1152
+ "properties": {
1153
+ "all": {
1154
+ "anyOf": [
1155
+ {
1156
+ "$ref": "#/$defs/Include"
1157
+ },
1158
+ {
1159
+ "type": "array",
1160
+ "items": {
1161
+ "$ref": "#/$defs/Detector"
1162
+ }
1163
+ }
1164
+ ]
1165
+ }
1166
+ },
1167
+ "required": [
1168
+ "all"
1169
+ ],
1170
+ "additionalProperties": false
1171
+ }
1172
+ ]
1173
+ },
1174
+ {
1175
+ "anyOf": [
1176
+ {
1177
+ "$ref": "#/$defs/Use"
1178
+ },
1179
+ {
1180
+ "$ref": "#/$defs/Include"
1181
+ },
1182
+ {
1183
+ "type": "object",
1184
+ "properties": {
1185
+ "any": {
1186
+ "anyOf": [
1187
+ {
1188
+ "$ref": "#/$defs/Include"
1189
+ },
1190
+ {
1191
+ "type": "array",
1192
+ "items": {
1193
+ "$ref": "#/$defs/Detector"
1194
+ }
1195
+ }
1196
+ ]
1197
+ }
1198
+ },
1199
+ "required": [
1200
+ "any"
1201
+ ],
1202
+ "additionalProperties": false
1203
+ }
1204
+ ]
1205
+ },
1206
+ {
1207
+ "anyOf": [
1208
+ {
1209
+ "$ref": "#/$defs/Use"
1210
+ },
1211
+ {
1212
+ "$ref": "#/$defs/Include"
1213
+ },
1214
+ {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "not": {
1218
+ "$ref": "#/$defs/Detector"
1219
+ }
1220
+ },
1221
+ "required": [
1222
+ "not"
1223
+ ],
1224
+ "additionalProperties": false
1225
+ }
1226
+ ]
1227
+ },
1228
+ {
1229
+ "anyOf": [
1230
+ {
1231
+ "$ref": "#/$defs/Use"
1232
+ },
1233
+ {
1234
+ "$ref": "#/$defs/Include"
1235
+ },
1236
+ {
1237
+ "type": "object",
1238
+ "properties": {
1239
+ "path": {
1240
+ "anyOf": [
1241
+ {
1242
+ "$ref": "#/$defs/Use"
1243
+ },
1244
+ {
1245
+ "$ref": "#/$defs/Include"
1246
+ },
1247
+ {
1248
+ "type": "object",
1249
+ "properties": {
1250
+ "file": {
1251
+ "anyOf": [
1252
+ {
1253
+ "type": "string"
1254
+ },
1255
+ {
1256
+ "anyOf": [
1257
+ {
1258
+ "$ref": "#/$defs/Include"
1259
+ },
1260
+ {
1261
+ "type": "array",
1262
+ "items": {
1263
+ "type": "string"
1264
+ }
1265
+ }
1266
+ ]
1267
+ }
1268
+ ]
1269
+ },
1270
+ "fileNot": {
1271
+ "anyOf": [
1272
+ {
1273
+ "type": "string"
1274
+ },
1275
+ {
1276
+ "anyOf": [
1277
+ {
1278
+ "$ref": "#/$defs/Include"
1279
+ },
1280
+ {
1281
+ "type": "array",
1282
+ "items": {
1283
+ "type": "string"
1284
+ }
1285
+ }
1286
+ ]
1287
+ }
1288
+ ]
1289
+ },
1290
+ "subject": {
1291
+ "type": "number"
1292
+ },
1293
+ "convention": {
1294
+ "anyOf": [
1295
+ {
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "kebab-case",
1299
+ "camelCase",
1300
+ "PascalCase",
1301
+ "snake_case"
1302
+ ]
1303
+ },
1304
+ {
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
+ }
1328
+ },
1329
+ "required": [
1330
+ "file"
1331
+ ],
1332
+ "additionalProperties": false
1333
+ }
1334
+ ]
1335
+ }
1336
+ },
1337
+ "required": [
1338
+ "path"
1339
+ ],
1340
+ "additionalProperties": false
1341
+ }
1342
+ ]
1343
+ },
1344
+ {
1345
+ "anyOf": [
1346
+ {
1347
+ "$ref": "#/$defs/Use"
1348
+ },
1349
+ {
1350
+ "$ref": "#/$defs/Include"
1351
+ },
1352
+ {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "imports": {
1356
+ "anyOf": [
1357
+ {
1358
+ "$ref": "#/$defs/Use"
1359
+ },
1360
+ {
1361
+ "$ref": "#/$defs/Include"
1362
+ },
1363
+ {
1364
+ "type": "object",
1365
+ "properties": {
1366
+ "resolves": {
1367
+ "anyOf": [
1368
+ {
1369
+ "type": "string"
1370
+ },
1371
+ {
1372
+ "anyOf": [
1373
+ {
1374
+ "$ref": "#/$defs/Use"
1375
+ },
1376
+ {
1377
+ "$ref": "#/$defs/Include"
1378
+ },
1379
+ {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "external": {
1383
+ "type": "string"
1384
+ }
1385
+ },
1386
+ "required": [
1387
+ "external"
1388
+ ],
1389
+ "additionalProperties": false
1390
+ }
1391
+ ]
1392
+ },
1393
+ {
1394
+ "anyOf": [
1395
+ {
1396
+ "$ref": "#/$defs/Use"
1397
+ },
1398
+ {
1399
+ "$ref": "#/$defs/Include"
1400
+ },
1401
+ {
1402
+ "type": "object",
1403
+ "properties": {
1404
+ "builtin": {
1405
+ "type": "string"
1406
+ }
1407
+ },
1408
+ "required": [
1409
+ "builtin"
1410
+ ],
1411
+ "additionalProperties": false
1412
+ }
1413
+ ]
1414
+ }
1415
+ ]
1416
+ },
1417
+ "symbols": {
1418
+ "anyOf": [
1419
+ {
1420
+ "$ref": "#/$defs/Include"
1421
+ },
1422
+ {
1423
+ "type": "array",
1424
+ "items": {
1425
+ "type": "string"
1426
+ }
1427
+ }
1428
+ ]
1429
+ }
1430
+ },
1431
+ "required": [
1432
+ "resolves"
1433
+ ],
1434
+ "additionalProperties": false
1435
+ }
1436
+ ]
1437
+ }
1438
+ },
1439
+ "required": [
1440
+ "imports"
1441
+ ],
1442
+ "additionalProperties": false
1443
+ }
1444
+ ]
1445
+ },
1446
+ {
1447
+ "anyOf": [
1448
+ {
1449
+ "$ref": "#/$defs/Use"
1450
+ },
1451
+ {
1452
+ "$ref": "#/$defs/Include"
1453
+ },
1454
+ {
1455
+ "type": "object",
1456
+ "properties": {
1457
+ "exports": {
1458
+ "anyOf": [
1459
+ {
1460
+ "$ref": "#/$defs/Use"
1461
+ },
1462
+ {
1463
+ "$ref": "#/$defs/Include"
1464
+ },
1465
+ {
1466
+ "type": "object",
1467
+ "properties": {
1468
+ "name": {
1469
+ "anyOf": [
1470
+ {
1471
+ "type": "string"
1472
+ },
1473
+ {
1474
+ "anyOf": [
1475
+ {
1476
+ "$ref": "#/$defs/Include"
1477
+ },
1478
+ {
1479
+ "type": "array",
1480
+ "items": {
1481
+ "type": "string"
1482
+ }
1483
+ }
1484
+ ]
1485
+ }
1486
+ ]
1487
+ },
1488
+ "kinds": {
1489
+ "anyOf": [
1490
+ {
1491
+ "$ref": "#/$defs/Include"
1492
+ },
1493
+ {
1494
+ "type": "array",
1495
+ "items": {
1496
+ "type": "string",
1497
+ "enum": [
1498
+ "named",
1499
+ "default",
1500
+ "namespace"
1501
+ ]
1502
+ }
1503
+ }
1504
+ ]
1505
+ },
1506
+ "declares": {
1507
+ "anyOf": [
1508
+ {
1509
+ "$ref": "#/$defs/Include"
1510
+ },
1511
+ {
1512
+ "type": "array",
1513
+ "items": {
1514
+ "type": "string",
1515
+ "enum": [
1516
+ "function",
1517
+ "class",
1518
+ "variable",
1519
+ "type",
1520
+ "interface",
1521
+ "enum",
1522
+ "expression",
1523
+ "other"
1524
+ ]
1525
+ }
1526
+ }
1527
+ ]
1528
+ },
1529
+ "reexport": {
1530
+ "type": "boolean"
1531
+ }
1532
+ },
1533
+ "additionalProperties": false
1534
+ }
1535
+ ]
1536
+ }
1537
+ },
1538
+ "required": [
1539
+ "exports"
1540
+ ],
1541
+ "additionalProperties": false
1542
+ }
1543
+ ]
1544
+ },
1545
+ {
1546
+ "anyOf": [
1547
+ {
1548
+ "$ref": "#/$defs/Use"
1549
+ },
1550
+ {
1551
+ "$ref": "#/$defs/Include"
1552
+ },
1553
+ {
1554
+ "type": "object",
1555
+ "properties": {
1556
+ "members": {
1557
+ "anyOf": [
1558
+ {
1559
+ "$ref": "#/$defs/Use"
1560
+ },
1561
+ {
1562
+ "$ref": "#/$defs/Include"
1563
+ },
1564
+ {
1565
+ "type": "object",
1566
+ "properties": {
1567
+ "subject": {
1568
+ "type": "string",
1569
+ "enum": [
1570
+ "members",
1571
+ "calls"
1572
+ ]
1573
+ },
1574
+ "name": {
1575
+ "anyOf": [
1576
+ {
1577
+ "type": "string"
1578
+ },
1579
+ {
1580
+ "anyOf": [
1581
+ {
1582
+ "$ref": "#/$defs/Include"
1583
+ },
1584
+ {
1585
+ "type": "array",
1586
+ "items": {
1587
+ "type": "string"
1588
+ }
1589
+ }
1590
+ ]
1591
+ }
1592
+ ]
1593
+ },
1594
+ "in": {
1595
+ "anyOf": [
1596
+ {
1597
+ "type": "string"
1598
+ },
1599
+ {
1600
+ "anyOf": [
1601
+ {
1602
+ "$ref": "#/$defs/Include"
1603
+ },
1604
+ {
1605
+ "type": "array",
1606
+ "items": {
1607
+ "type": "string"
1608
+ }
1609
+ }
1610
+ ]
1611
+ }
1612
+ ]
1613
+ },
1614
+ "declares": {
1615
+ "anyOf": [
1616
+ {
1617
+ "$ref": "#/$defs/Include"
1618
+ },
1619
+ {
1620
+ "type": "array",
1621
+ "items": {
1622
+ "type": "string",
1623
+ "enum": [
1624
+ "function",
1625
+ "class",
1626
+ "variable",
1627
+ "type",
1628
+ "interface",
1629
+ "enum",
1630
+ "expression",
1631
+ "other"
1632
+ ]
1633
+ }
1634
+ }
1635
+ ]
1636
+ }
1637
+ },
1638
+ "required": [
1639
+ "subject"
1640
+ ],
1641
+ "additionalProperties": false
1642
+ }
1643
+ ]
1644
+ }
1645
+ },
1646
+ "required": [
1647
+ "members"
1648
+ ],
1649
+ "additionalProperties": false
1650
+ }
1651
+ ]
1652
+ },
1653
+ {
1654
+ "anyOf": [
1655
+ {
1656
+ "$ref": "#/$defs/Use"
1657
+ },
1658
+ {
1659
+ "$ref": "#/$defs/Include"
1660
+ },
1661
+ {
1662
+ "type": "object",
1663
+ "properties": {
1664
+ "requires": {
1665
+ "anyOf": [
1666
+ {
1667
+ "$ref": "#/$defs/Include"
1668
+ },
1669
+ {
1670
+ "type": "array",
1671
+ "items": {
1672
+ "type": "string"
1673
+ }
1674
+ }
1675
+ ]
1676
+ }
1677
+ },
1678
+ "required": [
1679
+ "requires"
1680
+ ],
1681
+ "additionalProperties": false
1682
+ }
1683
+ ]
1684
+ },
1685
+ {
1686
+ "anyOf": [
1687
+ {
1688
+ "$ref": "#/$defs/Use"
1689
+ },
1690
+ {
1691
+ "$ref": "#/$defs/Include"
1692
+ },
1693
+ {
1694
+ "type": "object",
1695
+ "properties": {
1696
+ "content": {
1697
+ "anyOf": [
1698
+ {
1699
+ "$ref": "#/$defs/Use"
1700
+ },
1701
+ {
1702
+ "$ref": "#/$defs/Include"
1703
+ },
1704
+ {
1705
+ "type": "object",
1706
+ "properties": {
1707
+ "regex": {
1708
+ "type": "string"
1709
+ }
1710
+ },
1711
+ "required": [
1712
+ "regex"
1713
+ ],
1714
+ "additionalProperties": false
1715
+ }
1716
+ ]
1717
+ }
1718
+ },
1719
+ "required": [
1720
+ "content"
1721
+ ],
1722
+ "additionalProperties": false
1723
+ }
1724
+ ]
1725
+ },
1726
+ {
1727
+ "anyOf": [
1728
+ {
1729
+ "$ref": "#/$defs/Use"
1730
+ },
1731
+ {
1732
+ "$ref": "#/$defs/Include"
1733
+ },
1734
+ {
1735
+ "type": "object",
1736
+ "properties": {
1737
+ "syntax": {
1738
+ "anyOf": [
1739
+ {
1740
+ "$ref": "#/$defs/Use"
1741
+ },
1742
+ {
1743
+ "$ref": "#/$defs/Include"
1744
+ },
1745
+ {
1746
+ "type": "object",
1747
+ "properties": {
1748
+ "pattern": {},
1749
+ "kind": {},
1750
+ "regex": {},
1751
+ "nthChild": {},
1752
+ "inside": {},
1753
+ "has": {},
1754
+ "precedes": {},
1755
+ "follows": {},
1756
+ "all": {},
1757
+ "any": {},
1758
+ "not": {},
1759
+ "where": {
1760
+ "type": "object",
1761
+ "additionalProperties": {
1762
+ "anyOf": [
1763
+ {
1764
+ "$ref": "#/$defs/Use"
1765
+ },
1766
+ {
1767
+ "$ref": "#/$defs/Include"
1768
+ },
1769
+ {
1770
+ "type": "object",
1771
+ "properties": {
1772
+ "regex": {
1773
+ "type": "string"
1774
+ },
1775
+ "binding": {
1776
+ "anyOf": [
1777
+ {
1778
+ "$ref": "#/$defs/Use"
1779
+ },
1780
+ {
1781
+ "$ref": "#/$defs/Include"
1782
+ },
1783
+ {
1784
+ "type": "object",
1785
+ "properties": {
1786
+ "resolves": {
1787
+ "anyOf": [
1788
+ {
1789
+ "type": "string"
1790
+ },
1791
+ {
1792
+ "anyOf": [
1793
+ {
1794
+ "$ref": "#/$defs/Use"
1795
+ },
1796
+ {
1797
+ "$ref": "#/$defs/Include"
1798
+ },
1799
+ {
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "external": {
1803
+ "type": "string"
1804
+ }
1805
+ },
1806
+ "required": [
1807
+ "external"
1808
+ ],
1809
+ "additionalProperties": false
1810
+ }
1811
+ ]
1812
+ },
1813
+ {
1814
+ "anyOf": [
1815
+ {
1816
+ "$ref": "#/$defs/Use"
1817
+ },
1818
+ {
1819
+ "$ref": "#/$defs/Include"
1820
+ },
1821
+ {
1822
+ "type": "object",
1823
+ "properties": {
1824
+ "builtin": {
1825
+ "type": "string"
1826
+ }
1827
+ },
1828
+ "required": [
1829
+ "builtin"
1830
+ ],
1831
+ "additionalProperties": false
1832
+ }
1833
+ ]
1834
+ }
1835
+ ]
1836
+ },
1837
+ "member": {
1838
+ "anyOf": [
1839
+ {
1840
+ "$ref": "#/$defs/Include"
1841
+ },
1842
+ {
1843
+ "type": "array",
1844
+ "items": {
1845
+ "type": "string"
1846
+ }
1847
+ }
1848
+ ]
1849
+ }
1850
+ },
1851
+ "required": [
1852
+ "resolves"
1853
+ ],
1854
+ "additionalProperties": false
1855
+ }
1856
+ ]
1857
+ }
1858
+ },
1859
+ "additionalProperties": false
1860
+ }
1861
+ ]
1862
+ }
1863
+ }
1864
+ },
1865
+ "additionalProperties": false
1866
+ }
1867
+ ]
1868
+ }
1869
+ },
1870
+ "required": [
1871
+ "syntax"
1872
+ ],
1873
+ "additionalProperties": false
1874
+ }
1875
+ ]
1876
+ },
1877
+ {
1878
+ "anyOf": [
1879
+ {
1880
+ "$ref": "#/$defs/Use"
1881
+ },
1882
+ {
1883
+ "$ref": "#/$defs/Include"
1884
+ },
1885
+ {
1886
+ "type": "object",
1887
+ "properties": {
1888
+ "report": {
1889
+ "anyOf": [
1890
+ {
1891
+ "$ref": "#/$defs/Use"
1892
+ },
1893
+ {
1894
+ "$ref": "#/$defs/Include"
1895
+ },
1896
+ {
1897
+ "type": "object",
1898
+ "properties": {
1899
+ "command": {
1900
+ "type": "string"
1901
+ },
1902
+ "file": {
1903
+ "type": "string"
1904
+ },
1905
+ "format": {
1906
+ "type": "string",
1907
+ "enum": [
1908
+ "tsc",
1909
+ "eslint",
1910
+ "oxlint",
1911
+ "regex"
1912
+ ]
1913
+ },
1914
+ "pattern": {
1915
+ "type": "string"
1916
+ },
1917
+ "codes": {
1918
+ "anyOf": [
1919
+ {
1920
+ "$ref": "#/$defs/Include"
1921
+ },
1922
+ {
1923
+ "type": "array",
1924
+ "items": {
1925
+ "type": "string"
1926
+ }
1927
+ }
1928
+ ]
1929
+ },
1930
+ "codesNot": {
1931
+ "anyOf": [
1932
+ {
1933
+ "$ref": "#/$defs/Include"
1934
+ },
1935
+ {
1936
+ "type": "array",
1937
+ "items": {
1938
+ "type": "string"
1939
+ }
1940
+ }
1941
+ ]
1942
+ }
1943
+ },
1944
+ "required": [
1945
+ "format"
1946
+ ],
1947
+ "additionalProperties": false
1948
+ }
1949
+ ]
1950
+ }
1951
+ },
1952
+ "required": [
1953
+ "report"
1954
+ ],
1955
+ "additionalProperties": false
1956
+ }
1957
+ ]
1958
+ },
1959
+ {
1960
+ "anyOf": [
1961
+ {
1962
+ "$ref": "#/$defs/Use"
1963
+ },
1964
+ {
1965
+ "$ref": "#/$defs/Include"
1966
+ },
1967
+ {
1968
+ "type": "object",
1969
+ "properties": {
1970
+ "fn": {
1971
+ "type": "string"
1972
+ }
1973
+ },
1974
+ "required": [
1975
+ "fn"
1976
+ ],
1977
+ "additionalProperties": false
1978
+ }
1979
+ ]
1980
+ }
1981
+ ]
1982
+ },
730
1983
  "ManifestNode": {
731
1984
  "anyOf": [
732
1985
  {