/* Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR' »heimdall« is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. »heimdall« is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with »heimdall«. If not, see . */ namespace _heimdall.helpers.json_schema { /** */ /* type type_name = ( "null" | "boolean" | "integer" | "float" | "string" | "array" | "object" ); */ /** * @see https://json-schema.org/ * @see https://json-schema.org/understanding-json-schema/reference/type.html */ export type type_schema = ( { description ?: string; deprecated ?: boolean; } & ( { type : "any"; default ?: any; } | { type : "null"; default ?: null; } | { type : "boolean"; default ?: boolean; enum ?: Array; } | { type : "integer"; default ?: int; enum ?: Array; minimum ?: int; exclusiveMinimum ?: int; maximum ?: int; exclusiveMaximum ?: int; } | { type : "number"; default ?: float; enum ?: Array; minimum ?: float; exclusiveMinimum ?: float; maximum ?: float; exclusiveMaximum ?: float; } | { type : "string"; default ?: string; enum ?: Array; minLength ?: int; maxLength ?: int; pattern ?: string; } | /** * @see https://json-schema.org/understanding-json-schema/reference/object.html#object */ { type : "object"; additionalProperties ?: ( false | type_schema ); properties ?: Record; required ?: Array; unevaluatedProperties ?: boolean; default ?: Object; enum ?: Array; } | { type : "array"; items ?: type_schema; default ?: Array; enum ?: Array>; } | { anyOf : Array; default ?: any; } | { allOf : Array; default ?: any; } ) ); }