significantly simplified the validator and work continues on query

This commit is contained in:
2026-03-03 17:58:31 -05:00
parent 3898c43742
commit e7f20e2cb6
58 changed files with 5446 additions and 5693 deletions

View File

@ -4,10 +4,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "integer"
}
},
"$id": "items_0_0"
}
]
},
@ -19,7 +19,8 @@
2,
3
],
"valid": true
"valid": true,
"schema_id": "items_0_0"
},
{
"description": "wrong type of items",
@ -27,14 +28,16 @@
1,
"x"
],
"valid": false
"valid": false,
"schema_id": "items_0_0"
},
{
"description": "non-arrays are invalid",
"data": {
"foo": "bar"
},
"valid": false
"valid": false,
"schema_id": "items_0_0"
},
{
"description": "JavaScript pseudo-arrays are invalid",
@ -42,7 +45,8 @@
"0": "invalid",
"length": 1
},
"valid": false
"valid": false,
"schema_id": "items_0_0"
}
]
},
@ -51,8 +55,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": true
"items": true,
"$id": "items_1_0"
}
]
},
@ -64,12 +68,14 @@
"foo",
true
],
"valid": true
"valid": true,
"schema_id": "items_1_0"
},
{
"description": "empty array is valid",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_1_0"
}
]
},
@ -78,8 +84,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false
"items": false,
"$id": "items_2_0"
}
]
},
@ -91,12 +97,14 @@
"foo",
true
],
"valid": false
"valid": false,
"schema_id": "items_2_0"
},
{
"description": "empty array is valid",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_2_0"
}
]
},
@ -105,39 +113,39 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"item": {
"type": "array",
"items": false,
"prefixItems": [
{
"$ref": "#/$defs/sub-item"
},
{
"$ref": "#/$defs/sub-item"
}
]
},
"sub-item": {
"type": "object",
"required": [
"foo"
]
}
},
"type": "array",
"items": false,
"prefixItems": [
{
"$ref": "#/$defs/item"
"$ref": "item"
},
{
"$ref": "#/$defs/item"
"$ref": "item"
},
{
"$ref": "#/$defs/item"
"$ref": "item"
}
],
"$id": "items_3_0"
},
{
"$id": "item",
"type": "array",
"items": false,
"prefixItems": [
{
"$ref": "sub-item"
},
{
"$ref": "sub-item"
}
]
},
{
"$id": "sub-item",
"type": "object",
"required": [
"foo"
]
}
]
@ -171,7 +179,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
},
{
"description": "too many items",
@ -209,7 +218,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
},
{
"description": "too many sub-items",
@ -242,7 +252,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
},
{
"description": "wrong item",
@ -267,7 +278,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
},
{
"description": "wrong sub-item",
@ -295,7 +307,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
},
{
"description": "fewer items is invalid",
@ -311,7 +324,8 @@
}
]
],
"valid": false
"valid": false,
"schema_id": "items_3_0"
}
]
},
@ -320,7 +334,6 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "array",
@ -333,7 +346,8 @@
}
}
}
}
},
"$id": "items_4_0"
}
]
},
@ -370,7 +384,8 @@
]
]
],
"valid": true
"valid": true,
"schema_id": "items_4_0"
},
{
"description": "nested array with invalid type",
@ -404,7 +419,8 @@
]
]
],
"valid": false
"valid": false,
"schema_id": "items_4_0"
},
{
"description": "not deep enough",
@ -432,7 +448,8 @@
]
]
],
"valid": false
"valid": false,
"schema_id": "items_4_0"
}
]
},
@ -441,13 +458,13 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{},
{},
{}
],
"items": false
"items": false,
"$id": "items_5_0"
}
]
},
@ -455,14 +472,16 @@
{
"description": "empty array",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_5_0"
},
{
"description": "fewer number of items present (1)",
"data": [
1
],
"valid": true
"valid": true,
"schema_id": "items_5_0"
},
{
"description": "fewer number of items present (2)",
@ -470,7 +489,8 @@
1,
2
],
"valid": true
"valid": true,
"schema_id": "items_5_0"
},
{
"description": "equal number of items present",
@ -479,7 +499,8 @@
2,
3
],
"valid": true
"valid": true,
"schema_id": "items_5_0"
},
{
"description": "additional items are not permitted",
@ -489,7 +510,8 @@
3,
4
],
"valid": false
"valid": false,
"schema_id": "items_5_0"
}
]
},
@ -498,7 +520,6 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"prefixItems": [
@ -510,7 +531,8 @@
],
"items": {
"minimum": 5
}
},
"$id": "items_6_0"
}
]
},
@ -521,7 +543,8 @@
3,
5
],
"valid": false
"valid": false,
"schema_id": "items_6_0"
},
{
"description": "prefixItems in allOf does not constrain items, valid case",
@ -529,7 +552,8 @@
5,
5
],
"valid": true
"valid": true,
"schema_id": "items_6_0"
}
]
},
@ -538,7 +562,6 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{
"type": "string"
@ -546,7 +569,8 @@
],
"items": {
"type": "integer"
}
},
"$id": "items_7_0"
}
]
},
@ -558,7 +582,8 @@
2,
3
],
"valid": true
"valid": true,
"schema_id": "items_7_0"
},
{
"description": "wrong type of second item",
@ -566,7 +591,8 @@
"x",
"y"
],
"valid": false
"valid": false,
"schema_id": "items_7_0"
}
]
},
@ -575,11 +601,11 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{}
],
"items": false
"items": false,
"$id": "items_8_0"
}
]
},
@ -591,14 +617,16 @@
"bar",
37
],
"valid": false
"valid": false,
"schema_id": "items_8_0"
},
{
"description": "valid instance",
"data": [
null
],
"valid": true
"valid": true,
"schema_id": "items_8_0"
}
]
},
@ -607,10 +635,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "null"
}
},
"$id": "items_9_0"
}
]
},
@ -620,7 +648,8 @@
"data": [
null
],
"valid": true
"valid": true,
"schema_id": "items_9_0"
}
]
},
@ -629,9 +658,9 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false,
"extensible": true
"extensible": true,
"$id": "items_10_0"
}
]
},
@ -641,7 +670,8 @@
"data": [
1
],
"valid": false
"valid": false,
"schema_id": "items_10_0"
}
]
},
@ -650,11 +680,11 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"minimum": 5
},
"extensible": true
"extensible": true,
"$id": "items_11_0"
}
]
},
@ -665,14 +695,16 @@
5,
6
],
"valid": true
"valid": true,
"schema_id": "items_11_0"
},
{
"description": "invalid item (less than min) is invalid even with extensible: true",
"data": [
4
],
"valid": false
"valid": false,
"schema_id": "items_11_0"
}
]
},
@ -681,9 +713,9 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": true
"extensible": true,
"$id": "items_12_0"
}
]
},
@ -691,7 +723,8 @@
{
"description": "empty array is valid",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_12_0"
},
{
"description": "array with items is valid (extensible)",
@ -699,7 +732,8 @@
1,
"foo"
],
"valid": true
"valid": true,
"schema_id": "items_12_0"
}
]
},
@ -708,9 +742,9 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": false
"extensible": false,
"$id": "items_13_0"
}
]
},
@ -718,14 +752,16 @@
{
"description": "empty array is valid",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_13_0"
},
{
"description": "array with items is invalid (strict)",
"data": [
1
],
"valid": false
"valid": false,
"schema_id": "items_13_0"
}
]
},
@ -734,11 +770,11 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"extensible": true
}
},
"$id": "items_14_0"
}
]
},
@ -746,7 +782,8 @@
{
"description": "empty array is valid",
"data": [],
"valid": true
"valid": true,
"schema_id": "items_14_0"
},
{
"description": "array with items is valid (items explicitly allowed to be anything extensible)",
@ -755,7 +792,8 @@
"foo",
{}
],
"valid": true
"valid": true,
"schema_id": "items_14_0"
}
]
},
@ -764,12 +802,12 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"extensible": false
}
},
"$id": "items_15_0"
}
]
},
@ -779,14 +817,16 @@
"data": [
{}
],
"valid": true
"valid": true,
"schema_id": "items_15_0"
},
{
"description": "array with strict object items is valid",
"data": [
{}
],
"valid": true
"valid": true,
"schema_id": "items_15_0"
},
{
"description": "array with invalid strict object items (extra property)",
@ -795,7 +835,8 @@
"extra": 1
}
],
"valid": false
"valid": false,
"schema_id": "items_15_0"
}
]
}