UNPKG

alterschema

Version:

Convert between schema specifications

196 lines (195 loc) 5.33 kB
{ "walker": "jsonschema-draft4", "rules": [ { "vocabulary": "core", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/upgrade-official-metaschema", "type": "object", "required": [ "$schema" ], "properties": { "$schema": { "const": "http://json-schema.org/draft-04/schema#" } } }, "transform": { "$merge": [ { "$eval": "schema" }, { "$$schema": "http://json-schema.org/draft-06/schema#" } ] } }, { "vocabulary": "core", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/id", "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'id')" }, { "$$id": { "$eval": "schema.id" } } ] } }, { "vocabulary": "validation", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/boolean-exclusive-minimum-true", "type": "object", "required": [ "minimum", "exclusiveMinimum" ], "properties": { "minimum": { "type": "number" }, "exclusiveMinimum": { "const": true } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'minimum')" }, { "exclusiveMinimum": { "$eval": "schema.minimum" } } ] } }, { "vocabulary": "validation", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/boolean-exclusive-maximum-true", "type": "object", "required": [ "maximum", "exclusiveMaximum" ], "properties": { "maximum": { "type": "number" }, "exclusiveMaximum": { "const": true } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'maximum')" }, { "exclusiveMaximum": { "$eval": "schema.maximum" } } ] } }, { "vocabulary": "validation", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/boolean-exclusive-minimum-false", "type": "object", "required": [ "minimum", "exclusiveMinimum" ], "properties": { "minimum": { "type": "number" }, "exclusiveMinimum": { "const": false } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'exclusiveMinimum')" } ] } }, { "vocabulary": "validation", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/boolean-exclusive-maximum-false", "type": "object", "required": [ "maximum", "exclusiveMaximum" ], "properties": { "maximum": { "type": "number" }, "exclusiveMaximum": { "const": false } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'exclusiveMaximum')" } ] } }, { "vocabulary": "core", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/empty-object", "const": {} }, "transform": { "$eval": "true" } }, { "vocabulary": "core", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/negated-empty-object", "const": { "not": true } }, "transform": { "$eval": "false" } }, { "vocabulary": "validation", "condition": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/sourcemeta/alterschema/rules/jsonschema-draft4-to-draft6/enum-to-const", "type": "object", "required": [ "enum" ], "properties": { "enum": { "type": "array", "minItems": 1, "maxItems": 1 } } }, "transform": { "$merge": [ { "$eval": "omit(schema, 'enum')" }, { "const": { "$eval": "schema.enum[0]" } } ] } } ] }