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