@@ -6,101 +6,138 @@ export type Schema =
6
6
| IntegerSchema
7
7
| BooleanSchema
8
8
| NullSchema ;
9
- // | BaseSchema;
10
9
11
- export interface BaseSchema {
12
- type ?: string | undefined ;
10
+ // export type JsonType = "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
11
+
12
+ // export interface JSONSchema {
13
+ // type?: string | undefined;
14
+ // $id?: string | undefined;
15
+ // id?: string | undefined;
16
+ // $schema?: string | undefined;
17
+ // $ref?: string | undefined;
18
+ // $anchor?: string | undefined;
19
+ // $defs?: { [key: string]: JSONSchema } | undefined;
20
+ // definitions?: { [key: string]: JSONSchema } | undefined;
21
+ // $comment?: string | undefined;
22
+ // title?: string | undefined;
23
+ // description?: string | undefined;
24
+ // default?: unknown | undefined;
25
+ // examples?: unknown[] | undefined;
26
+ // readOnly?: boolean | undefined;
27
+ // writeOnly?: boolean | undefined;
28
+ // deprecated?: boolean | undefined;
29
+ // allOf?: JSONSchema[] | undefined;
30
+ // anyOf?: JSONSchema[] | undefined;
31
+ // oneOf?: JSONSchema[] | undefined;
32
+ // not?: JSONSchema | undefined;
33
+ // if?: JSONSchema | undefined;
34
+ // then?: JSONSchema | undefined;
35
+ // else?: JSONSchema | undefined;
36
+ // enum?: Array<string | number | boolean | null> | undefined;
37
+ // const?: string | number | boolean | null | undefined;
38
+ // [k: string]: unknown;
39
+
40
+ // /** A special key used as an intermediate representation of extends-style relationships. Omitted as a $ref with additional properties. */
41
+ // // _ref?: JSONSchema;
42
+ // _prefault?: unknown | undefined;
43
+ // }
44
+
45
+ export type _JSONSchema = boolean | JSONSchema ;
46
+ export type JSONSchema = {
47
+ [ k : string ] : unknown ;
48
+ $schema ?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | undefined ;
13
49
$id ?: string | undefined ;
14
- id ?: string | undefined ;
15
- $schema ?: string | undefined ;
16
- $ref ?: string | undefined ;
17
50
$anchor ?: string | undefined ;
18
- $defs ?: { [ key : string ] : BaseSchema } | undefined ;
19
- definitions ?: { [ key : string ] : BaseSchema } | undefined ;
51
+ $ref ?: string | undefined ;
52
+ $dynamicRef ?: string | undefined ;
53
+ $dynamicAnchor ?: string | undefined ;
54
+ $vocabulary ?: Record < string , boolean > | undefined ;
20
55
$comment ?: string | undefined ;
56
+ $defs ?: Record < string , JSONSchema > | undefined ;
57
+ type ?: "object" | "array" | "string" | "number" | "boolean" | "null" | "integer" | undefined ;
58
+ additionalItems ?: _JSONSchema | undefined ;
59
+ unevaluatedItems ?: _JSONSchema | undefined ;
60
+ prefixItems ?: _JSONSchema [ ] | undefined ;
61
+ items ?: _JSONSchema | _JSONSchema [ ] | undefined ;
62
+ contains ?: _JSONSchema | undefined ;
63
+ additionalProperties ?: _JSONSchema | undefined ;
64
+ unevaluatedProperties ?: _JSONSchema | undefined ;
65
+ properties ?: Record < string , _JSONSchema > | undefined ;
66
+ patternProperties ?: Record < string , _JSONSchema > | undefined ;
67
+ dependentSchemas ?: Record < string , _JSONSchema > | undefined ;
68
+ propertyNames ?: _JSONSchema | undefined ;
69
+ if ?: _JSONSchema | undefined ;
70
+ then ?: _JSONSchema | undefined ;
71
+ else ?: _JSONSchema | undefined ;
72
+ allOf ?: JSONSchema [ ] | undefined ;
73
+ anyOf ?: JSONSchema [ ] | undefined ;
74
+ oneOf ?: JSONSchema [ ] | undefined ;
75
+ not ?: _JSONSchema | undefined ;
76
+ multipleOf ?: number | undefined ;
77
+ maximum ?: number | undefined ;
78
+ exclusiveMaximum ?: number | undefined ;
79
+ minimum ?: number | undefined ;
80
+ exclusiveMinimum ?: number | undefined ;
81
+ maxLength ?: number | undefined ;
82
+ minLength ?: number | undefined ;
83
+ pattern ?: string | undefined ;
84
+ maxItems ?: number | undefined ;
85
+ minItems ?: number | undefined ;
86
+ uniqueItems ?: boolean | undefined ;
87
+ maxContains ?: number | undefined ;
88
+ minContains ?: number | undefined ;
89
+ maxProperties ?: number | undefined ;
90
+ minProperties ?: number | undefined ;
91
+ required ?: string [ ] | undefined ;
92
+ dependentRequired ?: Record < string , string [ ] > | undefined ;
93
+ enum ?: Array < string | number | boolean | null > | undefined ;
94
+ const ?: string | number | boolean | null | undefined ;
95
+
96
+ // metadata
97
+ id ?: string | undefined ;
21
98
title ?: string | undefined ;
22
99
description ?: string | undefined ;
23
100
default ?: unknown | undefined ;
24
- examples ?: unknown [ ] | undefined ;
101
+ deprecated ?: boolean | undefined ;
25
102
readOnly ?: boolean | undefined ;
26
103
writeOnly ?: boolean | undefined ;
27
- deprecated ?: boolean | undefined ;
28
- allOf ?: BaseSchema [ ] | undefined ;
29
- anyOf ?: BaseSchema [ ] | undefined ;
30
- oneOf ?: BaseSchema [ ] | undefined ;
31
- not ?: BaseSchema | undefined ;
32
- if ?: BaseSchema | undefined ;
33
- then ?: BaseSchema | undefined ;
34
- else ?: BaseSchema | undefined ;
35
- enum ?: Array < string | number | boolean | null > | undefined ;
36
- const ?: string | number | boolean | null | undefined ;
37
- [ k : string ] : unknown ;
104
+ examples ?: unknown [ ] | undefined ;
105
+ format ?: string | undefined ;
106
+ contentMediaType ?: string | undefined ;
107
+ contentEncoding ?: string | undefined ;
108
+ contentSchema ?: JSONSchema | undefined ;
38
109
39
- /** A special key used as an intermediate representation of extends-style relationships. Omitted as a $ref with additional properties. */
40
- // _ref?: BaseSchema;
110
+ // internal
41
111
_prefault ?: unknown | undefined ;
42
- }
112
+ } ;
43
113
44
- export interface ObjectSchema extends BaseSchema {
114
+ // for backwards compatibility
115
+ export type BaseSchema = JSONSchema ;
116
+
117
+ export interface ObjectSchema extends JSONSchema {
45
118
type : "object" ;
46
- properties ?: { [ key : string ] : BaseSchema } | undefined ;
47
- patternProperties ?: { [ key : string ] : BaseSchema } | undefined ;
48
- additionalProperties ?: BaseSchema | boolean | undefined ;
49
- required ?: string [ ] | undefined ;
50
- dependentRequired ?: { [ key : string ] : string [ ] } | undefined ;
51
- propertyNames ?: BaseSchema | undefined ;
52
- minProperties ?: number | undefined ;
53
- maxProperties ?: number | undefined ;
54
- unevaluatedProperties ?: BaseSchema | boolean | undefined ;
55
- dependentSchemas ?: { [ key : string ] : BaseSchema } | undefined ;
56
119
}
57
120
58
- export interface ArraySchema extends BaseSchema {
121
+ export interface ArraySchema extends JSONSchema {
59
122
type : "array" ;
60
- items ?: BaseSchema | BaseSchema [ ] | undefined ;
61
- prefixItems ?: BaseSchema [ ] | undefined ;
62
- additionalItems ?: BaseSchema | boolean ; // (deprecated | undefined)
63
- contains ?: BaseSchema | undefined ;
64
- minItems ?: number | undefined ;
65
- maxItems ?: number | undefined ;
66
- minContains ?: number | undefined ;
67
- maxContains ?: number | undefined ;
68
- uniqueItems ?: boolean | undefined ;
69
- unevaluatedItems ?: BaseSchema | boolean | undefined ;
70
123
}
71
124
72
- export interface StringSchema extends BaseSchema {
125
+ export interface StringSchema extends JSONSchema {
73
126
type : "string" ;
74
- minLength ?: number | undefined ;
75
- maxLength ?: number | undefined ;
76
- pattern ?: string | undefined ;
77
- format ?: string | undefined ;
78
- contentEncoding ?: string | undefined ;
79
- contentMediaType ?: string | undefined ;
80
127
}
81
128
82
- export interface NumberSchema extends BaseSchema {
129
+ export interface NumberSchema extends JSONSchema {
83
130
type : "number" ;
84
- minimum ?: number | undefined ;
85
- maximum ?: number | undefined ;
86
- exclusiveMinimum ?: number | undefined ;
87
- exclusiveMaximum ?: number | undefined ;
88
- multipleOf ?: number | undefined ;
89
131
}
90
132
91
- export interface IntegerSchema extends BaseSchema {
133
+ export interface IntegerSchema extends JSONSchema {
92
134
type : "integer" ;
93
- minimum ?: number | undefined ;
94
- maximum ?: number | undefined ;
95
- exclusiveMinimum ?: number | undefined ;
96
- exclusiveMaximum ?: number | undefined ;
97
- multipleOf ?: number | undefined ;
98
135
}
99
136
100
- export interface BooleanSchema extends BaseSchema {
137
+ export interface BooleanSchema extends JSONSchema {
101
138
type : "boolean" ;
102
139
}
103
140
104
- export interface NullSchema extends BaseSchema {
141
+ export interface NullSchema extends JSONSchema {
105
142
type : "null" ;
106
143
}
0 commit comments