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,16 +1,20 @@
[
{
"description": "object properties validation",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "integer"
},
"bar": {
"type": "string"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "integer"
},
"bar": {
"type": "string"
}
}
}
}
]
},
"tests": [
{
@ -56,12 +60,16 @@
},
{
"description": "properties with boolean schema",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": true,
"bar": false
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": true,
"bar": false
}
}
]
},
"tests": [
{
@ -95,28 +103,32 @@
},
{
"description": "properties with escaped characters",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo\nbar": {
"type": "number"
},
"foo\"bar": {
"type": "number"
},
"foo\\bar": {
"type": "number"
},
"foo\rbar": {
"type": "number"
},
"foo\tbar": {
"type": "number"
},
"foo\fbar": {
"type": "number"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo\nbar": {
"type": "number"
},
"foo\"bar": {
"type": "number"
},
"foo\\bar": {
"type": "number"
},
"foo\rbar": {
"type": "number"
},
"foo\tbar": {
"type": "number"
},
"foo\fbar": {
"type": "number"
}
}
}
}
]
},
"tests": [
{
@ -147,13 +159,17 @@
},
{
"description": "properties with null valued instance properties",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "null"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "null"
}
}
}
}
]
},
"tests": [
{
@ -168,23 +184,27 @@
{
"description": "properties whose names are Javascript object property names",
"comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"__proto__": {
"type": "number"
},
"toString": {
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"length": {
"type": "string"
"__proto__": {
"type": "number"
},
"toString": {
"properties": {
"length": {
"type": "string"
}
}
},
"constructor": {
"type": "number"
}
}
},
"constructor": {
"type": "number"
}
}
]
},
"tests": [
{
@ -242,14 +262,18 @@
},
{
"description": "extensible: true allows extra properties",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "integer"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "integer"
}
},
"extensible": true
}
},
"extensible": true
]
},
"tests": [
{
@ -264,13 +288,17 @@
},
{
"description": "strict by default: extra properties invalid",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "string"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "string"
}
}
}
}
]
},
"tests": [
{
@ -285,17 +313,21 @@
},
{
"description": "inheritance: nested object inherits strictness from strict parent",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"nested": {
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "string"
"nested": {
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
]
},
"tests": [
{
@ -312,18 +344,22 @@
},
{
"description": "override: nested object allows extra properties if extensible: true",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"nested": {
"extensible": true,
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"foo": {
"type": "string"
"nested": {
"extensible": true,
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
]
},
"tests": [
{
@ -340,18 +376,22 @@
},
{
"description": "inheritance: nested object inherits looseness from loose parent",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"nested": {
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"foo": {
"type": "string"
"nested": {
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
]
},
"tests": [
{
@ -368,19 +408,23 @@
},
{
"description": "override: nested object enforces strictness if extensible: false",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"nested": {
"extensible": false,
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"foo": {
"type": "string"
"nested": {
"extensible": false,
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
]
},
"tests": [
{
@ -397,20 +441,24 @@
},
{
"description": "arrays: inline items inherit strictness from strict parent",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"list": {
"type": "array",
"items": {
"properties": {
"foo": {
"type": "string"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"list": {
"type": "array",
"items": {
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
}
]
},
"tests": [
{
@ -429,21 +477,25 @@
},
{
"description": "arrays: inline items inherit looseness from loose parent",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"list": {
"type": "array",
"items": {
"properties": {
"foo": {
"type": "string"
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"extensible": true,
"properties": {
"list": {
"type": "array",
"items": {
"properties": {
"foo": {
"type": "string"
}
}
}
}
}
}
}
]
},
"tests": [
{