validator refactor progress

This commit is contained in:
2026-03-03 00:13:37 -05:00
parent e14f53e7d9
commit 3898c43742
81 changed files with 6331 additions and 7934 deletions

View File

@ -1,11 +1,15 @@
[
{
"description": "a schema given for items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "integer"
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "integer"
}
}
]
},
"tests": [
{
@ -44,9 +48,13 @@
},
{
"description": "items with boolean schema (true)",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": true
}
]
},
"tests": [
{
@ -67,9 +75,13 @@
},
{
"description": "items with boolean schema (false)",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false
}
]
},
"tests": [
{
@ -90,39 +102,43 @@
},
{
"description": "items and subitems",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"item": {
"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/sub-item"
"$ref": "#/$defs/item"
},
{
"$ref": "#/$defs/sub-item"
"$ref": "#/$defs/item"
},
{
"$ref": "#/$defs/item"
}
]
},
"sub-item": {
"type": "object",
"required": [
"foo"
]
}
},
"type": "array",
"items": false,
"prefixItems": [
{
"$ref": "#/$defs/item"
},
{
"$ref": "#/$defs/item"
},
{
"$ref": "#/$defs/item"
}
]
},
@ -301,21 +317,25 @@
},
{
"description": "nested items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "array",
"items": {
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
}
}
]
},
"tests": [
{
@ -418,14 +438,18 @@
},
{
"description": "prefixItems with no additional items allowed",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{},
{},
{}
],
"items": false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{},
{},
{}
],
"items": false
}
]
},
"tests": [
{
@ -471,20 +495,24 @@
},
{
"description": "items does not look in applicators, valid case",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"prefixItems": [
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"minimum": 3
"prefixItems": [
{
"minimum": 3
}
]
}
]
],
"items": {
"minimum": 5
}
}
],
"items": {
"minimum": 5
}
]
},
"tests": [
{
@ -507,16 +535,20 @@
},
{
"description": "prefixItems validation adjusts the starting index for items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
"database": {
"schemas": [
{
"type": "string"
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{
"type": "string"
}
],
"items": {
"type": "integer"
}
}
],
"items": {
"type": "integer"
}
]
},
"tests": [
{
@ -540,12 +572,16 @@
},
{
"description": "items with heterogeneous array",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{}
],
"items": false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{}
],
"items": false
}
]
},
"tests": [
{
@ -568,11 +604,15 @@
},
{
"description": "items with null instance elements",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "null"
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"type": "null"
}
}
]
},
"tests": [
{
@ -586,10 +626,14 @@
},
{
"description": "extensible: true allows extra items (when items is false)",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false,
"extensible": true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": false,
"extensible": true
}
]
},
"tests": [
{
@ -603,12 +647,16 @@
},
{
"description": "extensible: true allows extra properties for items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"minimum": 5
},
"extensible": true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"items": {
"minimum": 5
},
"extensible": true
}
]
},
"tests": [
{
@ -630,10 +678,14 @@
},
{
"description": "array: simple extensible array",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": true
}
]
},
"tests": [
{
@ -653,10 +705,14 @@
},
{
"description": "array: strict array",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"extensible": false
}
]
},
"tests": [
{
@ -675,12 +731,16 @@
},
{
"description": "array: items extensible",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"extensible": true
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"extensible": true
}
}
]
},
"tests": [
{
@ -701,13 +761,17 @@
},
{
"description": "array: items strict",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"extensible": false
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"extensible": false
}
}
]
},
"tests": [
{