106 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			106 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * Primitive type | ||
|  |  * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
 | ||
|  |  */ | ||
|  | export type JSONSchemaTypeName = ({} & string) | 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null'; | ||
|  | /** | ||
|  |  * Primitive type | ||
|  |  * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
 | ||
|  |  */ | ||
|  | export type JSONSchemaType = string | number | boolean | JSONSchemaObject | JSONSchemaArray | null; | ||
|  | export interface JSONSchemaObject { | ||
|  |     [key: string]: JSONSchemaType; | ||
|  | } | ||
|  | export interface JSONSchemaArray extends Array<JSONSchemaType> { | ||
|  | } | ||
|  | /** | ||
|  |  * Meta schema | ||
|  |  * | ||
|  |  * Recommended values: | ||
|  |  * - 'http://json-schema.org/schema#' | ||
|  |  * - 'http://json-schema.org/hyper-schema#' | ||
|  |  * - 'http://json-schema.org/draft-07/schema#' | ||
|  |  * - 'http://json-schema.org/draft-07/hyper-schema#' | ||
|  |  * | ||
|  |  * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-5
 | ||
|  |  */ | ||
|  | export type JSONSchemaVersion = string; | ||
|  | /** | ||
|  |  * JSON Schema v7 | ||
|  |  * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01
 | ||
|  |  */ | ||
|  | export type JSONSchemaDefinition = JSONSchema | boolean; | ||
|  | export interface JSONSchema { | ||
|  |     $id?: string | undefined; | ||
|  |     $comment?: string | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1
 | ||
|  |      */ | ||
|  |     type?: JSONSchemaTypeName | JSONSchemaTypeName[] | undefined; | ||
|  |     enum?: JSONSchemaType[] | undefined; | ||
|  |     const?: JSONSchemaType | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.2
 | ||
|  |      */ | ||
|  |     multipleOf?: number | undefined; | ||
|  |     maximum?: number | undefined; | ||
|  |     exclusiveMaximum?: number | undefined; | ||
|  |     minimum?: number | undefined; | ||
|  |     exclusiveMinimum?: number | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.3
 | ||
|  |      */ | ||
|  |     maxLength?: number | undefined; | ||
|  |     minLength?: number | undefined; | ||
|  |     pattern?: string | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4
 | ||
|  |      */ | ||
|  |     items?: JSONSchemaDefinition | JSONSchemaDefinition[] | undefined; | ||
|  |     additionalItems?: JSONSchemaDefinition | undefined; | ||
|  |     maxItems?: number | undefined; | ||
|  |     minItems?: number | undefined; | ||
|  |     uniqueItems?: boolean | undefined; | ||
|  |     contains?: JSONSchemaDefinition | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.5
 | ||
|  |      */ | ||
|  |     maxProperties?: number | undefined; | ||
|  |     minProperties?: number | undefined; | ||
|  |     required?: string[] | undefined; | ||
|  |     properties?: { | ||
|  |         [key: string]: JSONSchemaDefinition; | ||
|  |     } | undefined; | ||
|  |     patternProperties?: { | ||
|  |         [key: string]: JSONSchemaDefinition; | ||
|  |     } | undefined; | ||
|  |     additionalProperties?: JSONSchemaDefinition | undefined; | ||
|  |     propertyNames?: JSONSchemaDefinition | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6
 | ||
|  |      */ | ||
|  |     if?: JSONSchemaDefinition | undefined; | ||
|  |     then?: JSONSchemaDefinition | undefined; | ||
|  |     else?: JSONSchemaDefinition | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7
 | ||
|  |      */ | ||
|  |     allOf?: JSONSchemaDefinition[] | undefined; | ||
|  |     anyOf?: JSONSchemaDefinition[] | undefined; | ||
|  |     oneOf?: JSONSchemaDefinition[] | undefined; | ||
|  |     not?: JSONSchemaDefinition | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7
 | ||
|  |      */ | ||
|  |     format?: string | undefined; | ||
|  |     /** | ||
|  |      * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-10
 | ||
|  |      */ | ||
|  |     title?: string | undefined; | ||
|  |     description?: string | undefined; | ||
|  |     default?: JSONSchemaType | undefined; | ||
|  |     readOnly?: boolean | undefined; | ||
|  |     writeOnly?: boolean | undefined; | ||
|  |     examples?: JSONSchemaType | undefined; | ||
|  | } | ||
|  | //# sourceMappingURL=jsonschema.d.ts.map
 |