@json-schema-engine/core 0.0.1

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/coverage.d.ts +30 -0
  4. package/dist/coverage.d.ts.map +1 -0
  5. package/dist/coverage.js +81 -0
  6. package/dist/coverage.js.map +1 -0
  7. package/dist/cursor.d.ts +16 -0
  8. package/dist/cursor.d.ts.map +1 -0
  9. package/dist/cursor.js +28 -0
  10. package/dist/cursor.js.map +1 -0
  11. package/dist/dialect.d.ts +316 -0
  12. package/dist/dialect.d.ts.map +1 -0
  13. package/dist/dialect.js +135 -0
  14. package/dist/dialect.js.map +1 -0
  15. package/dist/engine.d.ts +203 -0
  16. package/dist/engine.d.ts.map +1 -0
  17. package/dist/engine.js +493 -0
  18. package/dist/engine.js.map +1 -0
  19. package/dist/index.d.ts +182 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +370 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/json.d.ts +49 -0
  24. package/dist/json.d.ts.map +1 -0
  25. package/dist/json.js +128 -0
  26. package/dist/json.js.map +1 -0
  27. package/dist/keywords/applicator.d.ts +57 -0
  28. package/dist/keywords/applicator.d.ts.map +1 -0
  29. package/dist/keywords/applicator.js +789 -0
  30. package/dist/keywords/applicator.js.map +1 -0
  31. package/dist/keywords/core.d.ts +42 -0
  32. package/dist/keywords/core.d.ts.map +1 -0
  33. package/dist/keywords/core.js +139 -0
  34. package/dist/keywords/core.js.map +1 -0
  35. package/dist/keywords/format.d.ts +43 -0
  36. package/dist/keywords/format.d.ts.map +1 -0
  37. package/dist/keywords/format.js +101 -0
  38. package/dist/keywords/format.js.map +1 -0
  39. package/dist/keywords/metaschemas2019.d.ts +3 -0
  40. package/dist/keywords/metaschemas2019.d.ts.map +1 -0
  41. package/dist/keywords/metaschemas2019.js +406 -0
  42. package/dist/keywords/metaschemas2019.js.map +1 -0
  43. package/dist/keywords/metaschemas2020.d.ts +3 -0
  44. package/dist/keywords/metaschemas2020.d.ts.map +1 -0
  45. package/dist/keywords/metaschemas2020.js +441 -0
  46. package/dist/keywords/metaschemas2020.js.map +1 -0
  47. package/dist/keywords/metaschemas6.d.ts +3 -0
  48. package/dist/keywords/metaschemas6.d.ts.map +1 -0
  49. package/dist/keywords/metaschemas6.js +221 -0
  50. package/dist/keywords/metaschemas6.js.map +1 -0
  51. package/dist/keywords/metaschemas7.d.ts +3 -0
  52. package/dist/keywords/metaschemas7.d.ts.map +1 -0
  53. package/dist/keywords/metaschemas7.js +248 -0
  54. package/dist/keywords/metaschemas7.js.map +1 -0
  55. package/dist/keywords/unevaluated.d.ts +14 -0
  56. package/dist/keywords/unevaluated.d.ts.map +1 -0
  57. package/dist/keywords/unevaluated.js +296 -0
  58. package/dist/keywords/unevaluated.js.map +1 -0
  59. package/dist/keywords/validation.d.ts +21 -0
  60. package/dist/keywords/validation.d.ts.map +1 -0
  61. package/dist/keywords/validation.js +332 -0
  62. package/dist/keywords/validation.js.map +1 -0
  63. package/dist/keywords/vocab2019.d.ts +36 -0
  64. package/dist/keywords/vocab2019.d.ts.map +1 -0
  65. package/dist/keywords/vocab2019.js +585 -0
  66. package/dist/keywords/vocab2019.js.map +1 -0
  67. package/dist/keywords/vocab2020.d.ts +20 -0
  68. package/dist/keywords/vocab2020.d.ts.map +1 -0
  69. package/dist/keywords/vocab2020.js +55 -0
  70. package/dist/keywords/vocab2020.js.map +1 -0
  71. package/dist/keywords/vocab7.d.ts +46 -0
  72. package/dist/keywords/vocab7.d.ts.map +1 -0
  73. package/dist/keywords/vocab7.js +305 -0
  74. package/dist/keywords/vocab7.js.map +1 -0
  75. package/dist/loader.d.ts +41 -0
  76. package/dist/loader.d.ts.map +1 -0
  77. package/dist/loader.js +13 -0
  78. package/dist/loader.js.map +1 -0
  79. package/dist/lowering.d.ts +371 -0
  80. package/dist/lowering.d.ts.map +1 -0
  81. package/dist/lowering.js +59 -0
  82. package/dist/lowering.js.map +1 -0
  83. package/dist/output.d.ts +251 -0
  84. package/dist/output.d.ts.map +1 -0
  85. package/dist/output.js +357 -0
  86. package/dist/output.js.map +1 -0
  87. package/dist/records.d.ts +71 -0
  88. package/dist/records.d.ts.map +1 -0
  89. package/dist/records.js +150 -0
  90. package/dist/records.js.map +1 -0
  91. package/dist/ref.d.ts +10 -0
  92. package/dist/ref.d.ts.map +1 -0
  93. package/dist/ref.js +5 -0
  94. package/dist/ref.js.map +1 -0
  95. package/dist/regex.d.ts +45 -0
  96. package/dist/regex.d.ts.map +1 -0
  97. package/dist/regex.js +163 -0
  98. package/dist/regex.js.map +1 -0
  99. package/dist/registry.d.ts +141 -0
  100. package/dist/registry.d.ts.map +1 -0
  101. package/dist/registry.js +407 -0
  102. package/dist/registry.js.map +1 -0
  103. package/dist/result.d.ts +109 -0
  104. package/dist/result.d.ts.map +1 -0
  105. package/dist/result.js +112 -0
  106. package/dist/result.js.map +1 -0
  107. package/dist/uri.d.ts +18 -0
  108. package/dist/uri.d.ts.map +1 -0
  109. package/dist/uri.js +27 -0
  110. package/dist/uri.js.map +1 -0
  111. package/dist/walk.d.ts +25 -0
  112. package/dist/walk.d.ts.map +1 -0
  113. package/dist/walk.js +65 -0
  114. package/dist/walk.js.map +1 -0
  115. package/package.json +32 -0
  116. package/src/coverage.ts +88 -0
  117. package/src/cursor.ts +42 -0
  118. package/src/dialect.ts +428 -0
  119. package/src/engine.ts +741 -0
  120. package/src/index.ts +699 -0
  121. package/src/json.ts +137 -0
  122. package/src/keywords/applicator.ts +895 -0
  123. package/src/keywords/core.ts +168 -0
  124. package/src/keywords/format.ts +143 -0
  125. package/src/keywords/metaschemas2019.ts +410 -0
  126. package/src/keywords/metaschemas2020.ts +443 -0
  127. package/src/keywords/metaschemas6.ts +226 -0
  128. package/src/keywords/metaschemas7.ts +253 -0
  129. package/src/keywords/unevaluated.ts +329 -0
  130. package/src/keywords/validation.ts +627 -0
  131. package/src/keywords/vocab2019.ts +676 -0
  132. package/src/keywords/vocab2020.ts +82 -0
  133. package/src/keywords/vocab7.ts +393 -0
  134. package/src/loader.ts +60 -0
  135. package/src/lowering.ts +414 -0
  136. package/src/output.ts +651 -0
  137. package/src/records.ts +226 -0
  138. package/src/ref.ts +14 -0
  139. package/src/regex.ts +171 -0
  140. package/src/registry.ts +481 -0
  141. package/src/result.ts +252 -0
  142. package/src/uri.ts +35 -0
  143. package/src/walk.ts +88 -0
@@ -0,0 +1,410 @@
1
+ // The 2019-09 metaschema resources, vendored verbatim from
2
+ // https://json-schema.org/draft/2019-09/* (JSON Schema specification
3
+ // artifacts, BSD-licensed). Same role as metaschemas2020.ts.
4
+ import { JsonValue } from "../json.js";
5
+
6
+ export const METASCHEMAS_2019_09: readonly (readonly [string, JsonValue])[] = [
7
+ ["https://json-schema.org/draft/2019-09/schema", {
8
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
9
+ "$id": "https://json-schema.org/draft/2019-09/schema",
10
+ "$vocabulary": {
11
+ "https://json-schema.org/draft/2019-09/vocab/core": true,
12
+ "https://json-schema.org/draft/2019-09/vocab/applicator": true,
13
+ "https://json-schema.org/draft/2019-09/vocab/validation": true,
14
+ "https://json-schema.org/draft/2019-09/vocab/meta-data": true,
15
+ "https://json-schema.org/draft/2019-09/vocab/format": false,
16
+ "https://json-schema.org/draft/2019-09/vocab/content": true
17
+ },
18
+ "$recursiveAnchor": true,
19
+ "title": "Core and Validation specifications meta-schema",
20
+ "allOf": [
21
+ {
22
+ "$ref": "meta/core"
23
+ },
24
+ {
25
+ "$ref": "meta/applicator"
26
+ },
27
+ {
28
+ "$ref": "meta/validation"
29
+ },
30
+ {
31
+ "$ref": "meta/meta-data"
32
+ },
33
+ {
34
+ "$ref": "meta/format"
35
+ },
36
+ {
37
+ "$ref": "meta/content"
38
+ }
39
+ ],
40
+ "type": [
41
+ "object",
42
+ "boolean"
43
+ ],
44
+ "properties": {
45
+ "definitions": {
46
+ "$comment": "While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.",
47
+ "type": "object",
48
+ "additionalProperties": {
49
+ "$recursiveRef": "#"
50
+ },
51
+ "default": {}
52
+ },
53
+ "dependencies": {
54
+ "$comment": "\"dependencies\" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to \"dependentSchemas\" and \"dependentRequired\"",
55
+ "type": "object",
56
+ "additionalProperties": {
57
+ "anyOf": [
58
+ {
59
+ "$recursiveRef": "#"
60
+ },
61
+ {
62
+ "$ref": "meta/validation#/$defs/stringArray"
63
+ }
64
+ ]
65
+ }
66
+ }
67
+ }
68
+ }],
69
+ ["https://json-schema.org/draft/2019-09/meta/core", {
70
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
71
+ "$id": "https://json-schema.org/draft/2019-09/meta/core",
72
+ "$recursiveAnchor": true,
73
+ "title": "Core vocabulary meta-schema",
74
+ "type": [
75
+ "object",
76
+ "boolean"
77
+ ],
78
+ "properties": {
79
+ "$id": {
80
+ "type": "string",
81
+ "format": "uri-reference",
82
+ "$comment": "Non-empty fragments not allowed.",
83
+ "pattern": "^[^#]*#?$"
84
+ },
85
+ "$schema": {
86
+ "type": "string",
87
+ "format": "uri"
88
+ },
89
+ "$anchor": {
90
+ "type": "string",
91
+ "pattern": "^[A-Za-z][-A-Za-z0-9.:_]*$"
92
+ },
93
+ "$ref": {
94
+ "type": "string",
95
+ "format": "uri-reference"
96
+ },
97
+ "$recursiveRef": {
98
+ "type": "string",
99
+ "format": "uri-reference"
100
+ },
101
+ "$recursiveAnchor": {
102
+ "type": "boolean",
103
+ "default": false
104
+ },
105
+ "$vocabulary": {
106
+ "type": "object",
107
+ "propertyNames": {
108
+ "type": "string",
109
+ "format": "uri"
110
+ },
111
+ "additionalProperties": {
112
+ "type": "boolean"
113
+ }
114
+ },
115
+ "$comment": {
116
+ "type": "string"
117
+ },
118
+ "$defs": {
119
+ "type": "object",
120
+ "additionalProperties": {
121
+ "$recursiveRef": "#"
122
+ },
123
+ "default": {}
124
+ }
125
+ }
126
+ }],
127
+ ["https://json-schema.org/draft/2019-09/meta/applicator", {
128
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
129
+ "$id": "https://json-schema.org/draft/2019-09/meta/applicator",
130
+ "$recursiveAnchor": true,
131
+ "title": "Applicator vocabulary meta-schema",
132
+ "type": [
133
+ "object",
134
+ "boolean"
135
+ ],
136
+ "properties": {
137
+ "additionalItems": {
138
+ "$recursiveRef": "#"
139
+ },
140
+ "unevaluatedItems": {
141
+ "$recursiveRef": "#"
142
+ },
143
+ "items": {
144
+ "anyOf": [
145
+ {
146
+ "$recursiveRef": "#"
147
+ },
148
+ {
149
+ "$ref": "#/$defs/schemaArray"
150
+ }
151
+ ]
152
+ },
153
+ "contains": {
154
+ "$recursiveRef": "#"
155
+ },
156
+ "additionalProperties": {
157
+ "$recursiveRef": "#"
158
+ },
159
+ "unevaluatedProperties": {
160
+ "$recursiveRef": "#"
161
+ },
162
+ "properties": {
163
+ "type": "object",
164
+ "additionalProperties": {
165
+ "$recursiveRef": "#"
166
+ },
167
+ "default": {}
168
+ },
169
+ "patternProperties": {
170
+ "type": "object",
171
+ "additionalProperties": {
172
+ "$recursiveRef": "#"
173
+ },
174
+ "propertyNames": {
175
+ "format": "regex"
176
+ },
177
+ "default": {}
178
+ },
179
+ "dependentSchemas": {
180
+ "type": "object",
181
+ "additionalProperties": {
182
+ "$recursiveRef": "#"
183
+ }
184
+ },
185
+ "propertyNames": {
186
+ "$recursiveRef": "#"
187
+ },
188
+ "if": {
189
+ "$recursiveRef": "#"
190
+ },
191
+ "then": {
192
+ "$recursiveRef": "#"
193
+ },
194
+ "else": {
195
+ "$recursiveRef": "#"
196
+ },
197
+ "allOf": {
198
+ "$ref": "#/$defs/schemaArray"
199
+ },
200
+ "anyOf": {
201
+ "$ref": "#/$defs/schemaArray"
202
+ },
203
+ "oneOf": {
204
+ "$ref": "#/$defs/schemaArray"
205
+ },
206
+ "not": {
207
+ "$recursiveRef": "#"
208
+ }
209
+ },
210
+ "$defs": {
211
+ "schemaArray": {
212
+ "type": "array",
213
+ "minItems": 1,
214
+ "items": {
215
+ "$recursiveRef": "#"
216
+ }
217
+ }
218
+ }
219
+ }],
220
+ ["https://json-schema.org/draft/2019-09/meta/validation", {
221
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
222
+ "$id": "https://json-schema.org/draft/2019-09/meta/validation",
223
+ "$recursiveAnchor": true,
224
+ "title": "Validation vocabulary meta-schema",
225
+ "type": [
226
+ "object",
227
+ "boolean"
228
+ ],
229
+ "properties": {
230
+ "multipleOf": {
231
+ "type": "number",
232
+ "exclusiveMinimum": 0
233
+ },
234
+ "maximum": {
235
+ "type": "number"
236
+ },
237
+ "exclusiveMaximum": {
238
+ "type": "number"
239
+ },
240
+ "minimum": {
241
+ "type": "number"
242
+ },
243
+ "exclusiveMinimum": {
244
+ "type": "number"
245
+ },
246
+ "maxLength": {
247
+ "$ref": "#/$defs/nonNegativeInteger"
248
+ },
249
+ "minLength": {
250
+ "$ref": "#/$defs/nonNegativeIntegerDefault0"
251
+ },
252
+ "pattern": {
253
+ "type": "string",
254
+ "format": "regex"
255
+ },
256
+ "maxItems": {
257
+ "$ref": "#/$defs/nonNegativeInteger"
258
+ },
259
+ "minItems": {
260
+ "$ref": "#/$defs/nonNegativeIntegerDefault0"
261
+ },
262
+ "uniqueItems": {
263
+ "type": "boolean",
264
+ "default": false
265
+ },
266
+ "maxContains": {
267
+ "$ref": "#/$defs/nonNegativeInteger"
268
+ },
269
+ "minContains": {
270
+ "$ref": "#/$defs/nonNegativeInteger",
271
+ "default": 1
272
+ },
273
+ "maxProperties": {
274
+ "$ref": "#/$defs/nonNegativeInteger"
275
+ },
276
+ "minProperties": {
277
+ "$ref": "#/$defs/nonNegativeIntegerDefault0"
278
+ },
279
+ "required": {
280
+ "$ref": "#/$defs/stringArray"
281
+ },
282
+ "dependentRequired": {
283
+ "type": "object",
284
+ "additionalProperties": {
285
+ "$ref": "#/$defs/stringArray"
286
+ }
287
+ },
288
+ "const": true,
289
+ "enum": {
290
+ "type": "array",
291
+ "items": true
292
+ },
293
+ "type": {
294
+ "anyOf": [
295
+ {
296
+ "$ref": "#/$defs/simpleTypes"
297
+ },
298
+ {
299
+ "type": "array",
300
+ "items": {
301
+ "$ref": "#/$defs/simpleTypes"
302
+ },
303
+ "minItems": 1,
304
+ "uniqueItems": true
305
+ }
306
+ ]
307
+ }
308
+ },
309
+ "$defs": {
310
+ "nonNegativeInteger": {
311
+ "type": "integer",
312
+ "minimum": 0
313
+ },
314
+ "nonNegativeIntegerDefault0": {
315
+ "$ref": "#/$defs/nonNegativeInteger",
316
+ "default": 0
317
+ },
318
+ "simpleTypes": {
319
+ "enum": [
320
+ "array",
321
+ "boolean",
322
+ "integer",
323
+ "null",
324
+ "number",
325
+ "object",
326
+ "string"
327
+ ]
328
+ },
329
+ "stringArray": {
330
+ "type": "array",
331
+ "items": {
332
+ "type": "string"
333
+ },
334
+ "uniqueItems": true,
335
+ "default": []
336
+ }
337
+ }
338
+ }],
339
+ ["https://json-schema.org/draft/2019-09/meta/meta-data", {
340
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
341
+ "$id": "https://json-schema.org/draft/2019-09/meta/meta-data",
342
+ "$recursiveAnchor": true,
343
+ "title": "Meta-data vocabulary meta-schema",
344
+ "type": [
345
+ "object",
346
+ "boolean"
347
+ ],
348
+ "properties": {
349
+ "title": {
350
+ "type": "string"
351
+ },
352
+ "description": {
353
+ "type": "string"
354
+ },
355
+ "default": true,
356
+ "deprecated": {
357
+ "type": "boolean",
358
+ "default": false
359
+ },
360
+ "readOnly": {
361
+ "type": "boolean",
362
+ "default": false
363
+ },
364
+ "writeOnly": {
365
+ "type": "boolean",
366
+ "default": false
367
+ },
368
+ "examples": {
369
+ "type": "array",
370
+ "items": true
371
+ }
372
+ }
373
+ }],
374
+ ["https://json-schema.org/draft/2019-09/meta/format", {
375
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
376
+ "$id": "https://json-schema.org/draft/2019-09/meta/format",
377
+ "$recursiveAnchor": true,
378
+ "title": "Format vocabulary meta-schema",
379
+ "type": [
380
+ "object",
381
+ "boolean"
382
+ ],
383
+ "properties": {
384
+ "format": {
385
+ "type": "string"
386
+ }
387
+ }
388
+ }],
389
+ ["https://json-schema.org/draft/2019-09/meta/content", {
390
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
391
+ "$id": "https://json-schema.org/draft/2019-09/meta/content",
392
+ "$recursiveAnchor": true,
393
+ "title": "Content vocabulary meta-schema",
394
+ "type": [
395
+ "object",
396
+ "boolean"
397
+ ],
398
+ "properties": {
399
+ "contentMediaType": {
400
+ "type": "string"
401
+ },
402
+ "contentEncoding": {
403
+ "type": "string"
404
+ },
405
+ "contentSchema": {
406
+ "$recursiveRef": "#"
407
+ }
408
+ }
409
+ }],
410
+ ];