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,27 +1,31 @@
[
{
"description": "allOf",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"properties": {
"bar": {
"type": "integer"
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"properties": {
"bar": {
"type": "integer"
}
},
"required": [
"bar"
]
},
{
"properties": {
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
}
},
"required": [
"bar"
]
},
{
"properties": {
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
}
]
@ -61,39 +65,43 @@
},
{
"description": "allOf with base schema",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"type": "integer"
},
"baz": {},
"foo": {
"type": "string"
}
},
"required": [
"bar"
],
"allOf": [
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"type": "integer"
},
"baz": {},
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
},
{
"properties": {
"baz": {
"type": "null"
"bar"
],
"allOf": [
{
"properties": {
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
},
{
"properties": {
"baz": {
"type": "null"
}
},
"required": [
"baz"
]
}
},
"required": [
"baz"
]
}
]
@ -143,14 +151,18 @@
},
{
"description": "allOf simple types",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"maximum": 30
},
{
"minimum": 20
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"maximum": 30
},
{
"minimum": 20
}
]
}
]
},
@ -169,11 +181,15 @@
},
{
"description": "allOf with boolean schemas, all true",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
true,
true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
true,
true
]
}
]
},
"tests": [
@ -186,11 +202,15 @@
},
{
"description": "allOf with boolean schemas, some false",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
true,
false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
true,
false
]
}
]
},
"tests": [
@ -203,11 +223,15 @@
},
{
"description": "allOf with boolean schemas, all false",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
false,
false
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
false,
false
]
}
]
},
"tests": [
@ -220,10 +244,14 @@
},
{
"description": "allOf with one empty schema",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{}
]
}
]
},
"tests": [
@ -236,11 +264,15 @@
},
{
"description": "allOf with two empty schemas",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{},
{}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{},
{}
]
}
]
},
"tests": [
@ -253,12 +285,16 @@
},
{
"description": "allOf with the first empty schema",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{},
"database": {
"schemas": [
{
"type": "number"
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{},
{
"type": "number"
}
]
}
]
},
@ -277,13 +313,17 @@
},
{
"description": "allOf with the last empty schema",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"type": "number"
},
{}
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"type": "number"
},
{}
]
}
]
},
"tests": [
@ -301,13 +341,17 @@
},
{
"description": "nested allOf, to check validation semantics",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"type": "null"
"allOf": [
{
"type": "null"
}
]
}
]
}
@ -328,21 +372,25 @@
},
{
"description": "allOf combined with anyOf, oneOf",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"multipleOf": 2
}
],
"anyOf": [
{
"multipleOf": 3
}
],
"oneOf": [
{
"multipleOf": 5
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"multipleOf": 2
}
],
"anyOf": [
{
"multipleOf": 3
}
],
"oneOf": [
{
"multipleOf": 5
}
]
}
]
},
@ -391,31 +439,35 @@
},
{
"description": "extensible: true allows extra properties in allOf",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"properties": {
"bar": {
"type": "integer"
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"properties": {
"bar": {
"type": "integer"
}
},
"required": [
"bar"
]
},
{
"properties": {
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
}
},
"required": [
"bar"
]
},
{
"properties": {
"foo": {
"type": "string"
}
},
"required": [
"foo"
]
],
"extensible": true
}
],
"extensible": true
]
},
"tests": [
{
@ -431,22 +483,26 @@
},
{
"description": "strict by default with allOf properties",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"properties": {
"foo": {
"const": 1
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"properties": {
"foo": {
"const": 1
}
}
},
{
"properties": {
"bar": {
"const": 2
}
}
}
}
},
{
"properties": {
"bar": {
"const": 2
}
}
]
}
]
},
@ -472,23 +528,27 @@
},
{
"description": "allOf with nested extensible: true (partial looseness)",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"properties": {
"foo": {
"const": 1
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"properties": {
"foo": {
"const": 1
}
}
},
{
"extensible": true,
"properties": {
"bar": {
"const": 2
}
}
}
}
},
{
"extensible": true,
"properties": {
"bar": {
"const": 2
}
}
]
}
]
},
@ -506,31 +566,35 @@
},
{
"description": "strictness: allOf composition with strict refs",
"schema": {
"allOf": [
"database": {
"schemas": [
{
"$ref": "#/$defs/partA"
},
{
"$ref": "#/$defs/partB"
}
],
"$defs": {
"partA": {
"properties": {
"id": {
"type": "string"
"allOf": [
{
"$ref": "#/$defs/partA"
},
{
"$ref": "#/$defs/partB"
}
}
},
"partB": {
"properties": {
"name": {
"type": "string"
],
"$defs": {
"partA": {
"properties": {
"id": {
"type": "string"
}
}
},
"partB": {
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
]
},
"tests": [
{