Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
86test cases
99files differ
89modified
10new
0deleted
5,844changed lines
+3,366 −2,478insertions / deletions
Base f00220db5ff34e26b5f1eae16c025bffba2457d7 · PR merge 8d8b0e7eab3247f1ff1414cc2bc9314638093b18 · Head 3334d3b5b8c7b31f5d4977e2c3fdf9a1ecc774fe · raw patch
Test case

test/inputs/json/misc/0a91a.json

1 generated file · +15 −15
Mtypescript-effect-schemadefault / TopLevel.ts+15 −15
@@ -189,25 +189,25 @@ export class Commit extends S.Class<Commit>("Commit")({
189189 }) {}
190190
191191 export class Payload extends S.Class<Payload>("Payload")({
192- "action": S.optional(S.NullOr(S.String)),
193- "before": S.optional(S.NullOr(S.String)),
194- "commits": S.optional(S.NullOr(S.Array(Commit))),
192+ "action": S.optional(S.String),
193+ "before": S.optional(S.String),
194+ "commits": S.optional(S.Array(Commit)),
195195 "description": S.optional(S.NullOr(S.String)),
196- "distinct_size": S.optional(S.NullOr(S.Int)),
197- "head": S.optional(S.NullOr(S.String)),
198- "master_branch": S.optional(S.NullOr(S.String)),
199- "number": S.optional(S.NullOr(S.Int)),
200- "pull_request": S.optional(S.NullOr(PullRequest)),
201- "push_id": S.optional(S.NullOr(S.Int)),
202- "pusher_type": S.optional(S.NullOr(S.String)),
203- "ref": S.optional(S.NullOr(S.String)),
204- "ref_type": S.optional(S.NullOr(S.String)),
205- "size": S.optional(S.NullOr(S.Int)),
196+ "distinct_size": S.optional(S.Int),
197+ "head": S.optional(S.String),
198+ "master_branch": S.optional(S.String),
199+ "number": S.optional(S.Int),
200+ "pull_request": S.optional(PullRequest),
201+ "push_id": S.optional(S.Int),
202+ "pusher_type": S.optional(S.String),
203+ "ref": S.optional(S.String),
204+ "ref_type": S.optional(S.String),
205+ "size": S.optional(S.Int),
206206 }) {}
207207
208208 export class Actor extends S.Class<Actor>("Actor")({
209209 "avatar_url": S.String,
210- "display_login": S.optional(S.NullOr(S.String)),
210+ "display_login": S.optional(S.String),
211211 "gravatar_id": S.String,
212212 "id": S.Int,
213213 "login": S.String,
@@ -218,7 +218,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
218218 "actor": Actor,
219219 "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
220220 "id": S.String,
221- "org": S.optional(S.NullOr(Actor)),
221+ "org": S.optional(Actor),
222222 "payload": Payload,
223223 "public": S.Boolean,
224224 "repo": TopLevelRepo,
Test case

test/inputs/json/misc/0cffa.json

1 generated file · +19 −19
Mtypescript-effect-schemadefault / TopLevel.ts+19 −19
@@ -49,11 +49,11 @@ export class Looping extends S.Class<Looping>("Looping")({
4949 }) {}
5050
5151 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
52- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
53- "hash": S.optional(S.NullOr(S.String)),
52+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
53+ "hash": S.optional(S.String),
5454 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
55- "mp4": S.optional(S.NullOr(S.String)),
56- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
55+ "mp4": S.optional(S.String),
56+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5757 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5858 "url": S.String,
5959 "webp": S.String,
@@ -68,37 +68,37 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6868 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6969 }) {}
7070
71-export class Downsized extends S.Class<Downsized>("Downsized")({
71+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
7272 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
73- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
73+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7474 "url": S.String,
7575 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7676 }) {}
7777
7878 export class Images extends S.Class<Images>("Images")({
79- "downsized": Downsized,
80- "downsized_large": Downsized,
81- "downsized_medium": Downsized,
79+ "downsized": The480_WStill,
80+ "downsized_large": The480_WStill,
81+ "downsized_medium": The480_WStill,
8282 "downsized_small": DownsizedSmall,
83- "downsized_still": Downsized,
83+ "downsized_still": The480_WStill,
8484 "fixed_height": FixedHeight,
8585 "fixed_height_downsampled": FixedHeight,
8686 "fixed_height_small": FixedHeight,
87- "fixed_height_small_still": Downsized,
88- "fixed_height_still": Downsized,
87+ "fixed_height_small_still": The480_WStill,
88+ "fixed_height_still": The480_WStill,
8989 "fixed_width": FixedHeight,
9090 "fixed_width_downsampled": FixedHeight,
9191 "fixed_width_small": FixedHeight,
92- "fixed_width_small_still": Downsized,
93- "fixed_width_still": Downsized,
92+ "fixed_width_small_still": The480_WStill,
93+ "fixed_width_still": The480_WStill,
9494 "looping": Looping,
9595 "original": FixedHeight,
9696 "original_mp4": DownsizedSmall,
97- "original_still": Downsized,
97+ "original_still": The480_WStill,
9898 "preview": DownsizedSmall,
99- "preview_gif": Downsized,
100- "preview_webp": Downsized,
101- "480w_still": S.optional(S.NullOr(Downsized)),
99+ "preview_gif": The480_WStill,
100+ "preview_webp": The480_WStill,
101+ "480w_still": S.optional(The480_WStill),
102102 }) {}
103103
104104 export class Datum extends S.Class<Datum>("Datum")({
@@ -118,7 +118,7 @@ export class Datum extends S.Class<Datum>("Datum")({
118118 "trending_datetime": S.String,
119119 "type": Type,
120120 "url": S.String,
121- "user": S.optional(S.NullOr(User)),
121+ "user": S.optional(User),
122122 "username": Username,
123123 }) {}
Test case

test/inputs/json/misc/127a1.json

1 generated file · +20 −20
Mtypescript-effect-schemadefault / TopLevel.ts+20 −20
@@ -38,7 +38,7 @@ export class User extends S.Class<User>("User")({
3838 "banner_url": S.String,
3939 "display_name": S.String,
4040 "profile_url": S.String,
41- "twitter": S.optional(S.NullOr(S.String)),
41+ "twitter": S.optional(S.String),
4242 "username": Username,
4343 }) {}
4444
@@ -48,11 +48,11 @@ export class Looping extends S.Class<Looping>("Looping")({
4848 }) {}
4949
5050 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
51- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
52- "hash": S.optional(S.NullOr(S.String)),
51+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
52+ "hash": S.optional(S.String),
5353 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
54- "mp4": S.optional(S.NullOr(S.String)),
55- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
54+ "mp4": S.optional(S.String),
55+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5656 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5757 "url": S.String,
5858 "webp": S.String,
@@ -67,37 +67,37 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6767 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6868 }) {}
6969
70-export class Downsized extends S.Class<Downsized>("Downsized")({
70+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
7171 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
72- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
72+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7373 "url": S.String,
7474 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7575 }) {}
7676
7777 export class Images extends S.Class<Images>("Images")({
78- "downsized": Downsized,
79- "downsized_large": Downsized,
80- "downsized_medium": Downsized,
78+ "downsized": The480_WStill,
79+ "downsized_large": The480_WStill,
80+ "downsized_medium": The480_WStill,
8181 "downsized_small": DownsizedSmall,
82- "downsized_still": Downsized,
82+ "downsized_still": The480_WStill,
8383 "fixed_height": FixedHeight,
8484 "fixed_height_downsampled": FixedHeight,
8585 "fixed_height_small": FixedHeight,
86- "fixed_height_small_still": Downsized,
87- "fixed_height_still": Downsized,
86+ "fixed_height_small_still": The480_WStill,
87+ "fixed_height_still": The480_WStill,
8888 "fixed_width": FixedHeight,
8989 "fixed_width_downsampled": FixedHeight,
9090 "fixed_width_small": FixedHeight,
91- "fixed_width_small_still": Downsized,
92- "fixed_width_still": Downsized,
91+ "fixed_width_small_still": The480_WStill,
92+ "fixed_width_still": The480_WStill,
9393 "looping": Looping,
9494 "original": FixedHeight,
9595 "original_mp4": DownsizedSmall,
96- "original_still": Downsized,
96+ "original_still": The480_WStill,
9797 "preview": DownsizedSmall,
98- "preview_gif": Downsized,
99- "preview_webp": Downsized,
100- "480w_still": S.optional(S.NullOr(Downsized)),
98+ "preview_gif": The480_WStill,
99+ "preview_webp": The480_WStill,
100+ "480w_still": S.optional(The480_WStill),
101101 }) {}
102102
103103 export class Datum extends S.Class<Datum>("Datum")({
@@ -117,7 +117,7 @@ export class Datum extends S.Class<Datum>("Datum")({
117117 "trending_datetime": S.String,
118118 "type": Type,
119119 "url": S.String,
120- "user": S.optional(S.NullOr(User)),
120+ "user": S.optional(User),
121121 "username": Username,
122122 }) {}
Test case

test/inputs/json/misc/176f1.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,8 +2,8 @@ import * as S from "effect/Schema";
22
33
44 export class Footnote extends S.Class<Footnote>("Footnote")({
5- "code": S.optional(S.NullOr(S.String)),
6- "text": S.optional(S.NullOr(S.String)),
5+ "code": S.optional(S.String),
6+ "text": S.optional(S.String),
77 }) {}
88
99 export class Datum extends S.Class<Datum>("Datum")({
Test case

test/inputs/json/misc/1b409.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -75,10 +75,10 @@ export class Person extends S.Class<Person>("Person")({
7575
7676 export class Extra extends S.Class<Extra>("Extra")({
7777 "address": S.String,
78- "contact_form": S.optional(S.NullOr(S.String)),
78+ "contact_form": S.optional(S.String),
7979 "fax": S.optional(S.NullOr(S.String)),
8080 "office": S.String,
81- "rss_url": S.optional(S.NullOr(S.String)),
81+ "rss_url": S.optional(S.String),
8282 }) {}
8383
8484 export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
Test case

test/inputs/json/misc/26b49.json

1 generated file · +21 −21
Mtypescript-effect-schemadefault / TopLevel.ts+21 −21
@@ -32,7 +32,7 @@ export class User extends S.Class<User>("User")({
3232 "banner_url": S.String,
3333 "display_name": S.String,
3434 "profile_url": S.String,
35- "twitter": S.optional(S.NullOr(S.String)),
35+ "twitter": S.optional(S.String),
3636 "username": S.String,
3737 }) {}
3838
@@ -42,11 +42,11 @@ export class Looping extends S.Class<Looping>("Looping")({
4242 }) {}
4343
4444 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
45- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
46- "hash": S.optional(S.NullOr(S.String)),
45+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
46+ "hash": S.optional(S.String),
4747 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
48- "mp4": S.optional(S.NullOr(S.String)),
49- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
48+ "mp4": S.optional(S.String),
49+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5050 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5151 "url": S.String,
5252 "webp": S.String,
@@ -61,38 +61,38 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6161 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6262 }) {}
6363
64-export class Downsized extends S.Class<Downsized>("Downsized")({
64+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
6565 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
66- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
66+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
6767 "url": S.String,
6868 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6969 }) {}
7070
7171 export class Images extends S.Class<Images>("Images")({
72- "downsized": Downsized,
73- "downsized_large": Downsized,
74- "downsized_medium": Downsized,
72+ "downsized": The480_WStill,
73+ "downsized_large": The480_WStill,
74+ "downsized_medium": The480_WStill,
7575 "downsized_small": DownsizedSmall,
76- "downsized_still": Downsized,
76+ "downsized_still": The480_WStill,
7777 "fixed_height": FixedHeight,
7878 "fixed_height_downsampled": FixedHeight,
7979 "fixed_height_small": FixedHeight,
80- "fixed_height_small_still": Downsized,
81- "fixed_height_still": Downsized,
80+ "fixed_height_small_still": The480_WStill,
81+ "fixed_height_still": The480_WStill,
8282 "fixed_width": FixedHeight,
8383 "fixed_width_downsampled": FixedHeight,
8484 "fixed_width_small": FixedHeight,
85- "fixed_width_small_still": Downsized,
86- "fixed_width_still": Downsized,
87- "hd": S.optional(S.NullOr(DownsizedSmall)),
85+ "fixed_width_small_still": The480_WStill,
86+ "fixed_width_still": The480_WStill,
87+ "hd": S.optional(DownsizedSmall),
8888 "looping": Looping,
8989 "original": FixedHeight,
9090 "original_mp4": DownsizedSmall,
91- "original_still": Downsized,
91+ "original_still": The480_WStill,
9292 "preview": DownsizedSmall,
93- "preview_gif": Downsized,
94- "preview_webp": Downsized,
95- "480w_still": S.optional(S.NullOr(Downsized)),
93+ "preview_gif": The480_WStill,
94+ "preview_webp": The480_WStill,
95+ "480w_still": S.optional(The480_WStill),
9696 }) {}
9797
9898 export class Datum extends S.Class<Datum>("Datum")({
@@ -112,7 +112,7 @@ export class Datum extends S.Class<Datum>("Datum")({
112112 "trending_datetime": S.String,
113113 "type": Type,
114114 "url": S.String,
115- "user": S.optional(S.NullOr(User)),
115+ "user": S.optional(User),
116116 "username": S.String,
117117 }) {}
Test case

test/inputs/json/misc/26c9c.json

1 generated file · +10 −10
Mtypescript-effect-schemadefault / TopLevel.ts+10 −10
@@ -105,10 +105,10 @@ export class Grant extends S.Class<Grant>("Grant")({
105105 }) {}
106106
107107 export class Format extends S.Class<Format>("Format")({
108- "align": S.optional(S.NullOr(S.String)),
109- "noCommas": S.optional(S.NullOr(S.Literal("true", "false"))),
110- "precisionStyle": S.optional(S.NullOr(S.String)),
111- "view": S.optional(S.NullOr(S.String)),
108+ "align": S.optional(S.String),
109+ "noCommas": S.optional(S.Literal("true", "false")),
110+ "precisionStyle": S.optional(S.String),
111+ "view": S.optional(S.String),
112112 }) {}
113113
114114 export class Top extends S.Class<Top>("Top")({
@@ -117,27 +117,27 @@ export class Top extends S.Class<Top>("Top")({
117117 }) {}
118118
119119 export class CachedContents extends S.Class<CachedContents>("CachedContents")({
120- "average": S.optional(S.NullOr(S.String)),
120+ "average": S.optional(S.String),
121121 "largest": S.String,
122122 "non_null": S.Int,
123123 "null": S.Int,
124124 "smallest": S.String,
125- "sum": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
125+ "sum": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
126126 "top": S.Array(Top),
127127 }) {}
128128
129129 export class Column extends S.Class<Column>("Column")({
130- "cachedContents": S.optional(S.NullOr(CachedContents)),
130+ "cachedContents": S.optional(CachedContents),
131131 "dataTypeName": S.String,
132132 "fieldName": S.String,
133- "flags": S.optional(S.NullOr(S.Array(S.String))),
133+ "flags": S.optional(S.Array(S.String)),
134134 "format": Format,
135135 "id": S.Int,
136136 "name": S.String,
137137 "position": S.Int,
138138 "renderTypeName": S.String,
139- "tableColumnId": S.optional(S.NullOr(S.Int)),
140- "width": S.optional(S.NullOr(S.Int)),
139+ "tableColumnId": S.optional(S.Int),
140+ "width": S.optional(S.Int),
141141 }) {}
142142
143143 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/27332.json

1 generated file · +6 −6
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -68,10 +68,10 @@ export class Preview extends S.Class<Preview>("Preview")({
6868 }) {}
6969
7070 export class MediaEmbed extends S.Class<MediaEmbed>("MediaEmbed")({
71- "content": S.optional(S.NullOr(S.String)),
72- "height": S.optional(S.NullOr(S.Int)),
73- "scrolling": S.optional(S.NullOr(S.Boolean)),
74- "width": S.optional(S.NullOr(S.Int)),
71+ "content": S.optional(S.String),
72+ "height": S.optional(S.Int),
73+ "scrolling": S.optional(S.Boolean),
74+ "width": S.optional(S.Int),
7575 }) {}
7676
7777 export class Oembed extends S.Class<Oembed>("Oembed")({
@@ -132,8 +132,8 @@ export class ChildData extends S.Class<ChildData>("ChildData")({
132132 "num_reports": S.Null,
133133 "over_18": S.Boolean,
134134 "permalink": S.String,
135- "post_hint": S.optional(S.NullOr(PostHint)),
136- "preview": S.optional(S.NullOr(Preview)),
135+ "post_hint": S.optional(PostHint),
136+ "preview": S.optional(Preview),
137137 "quarantine": S.Boolean,
138138 "removal_reason": S.Null,
139139 "report_reasons": S.Null,
Test case

test/inputs/json/misc/29f47.json

1 generated file · +11 −11
Mtypescript-effect-schemadefault / TopLevel.ts+11 −11
@@ -50,11 +50,6 @@ export const Kind = S.Literal(
5050 );
5151 export type Kind = S.Schema.Type<typeof Kind>;
5252
53-export class Variants extends S.Class<Variants>("Variants")({
54- "gif": S.optional(S.NullOr(S.suspend(() => Gif))),
55- "mp4": S.optional(S.NullOr(S.suspend(() => Gif))),
56-}) {}
57-
5853 export class Source extends S.Class<Source>("Source")({
5954 "height": S.Int,
6055 "url": S.String,
@@ -65,7 +60,7 @@ export class Image extends S.Class<Image>("Image")({
6560 "id": S.String,
6661 "resolutions": S.Array(Source),
6762 "source": Source,
68- "variants": Variants,
63+ "variants": S.suspend(() => Variants),
6964 }) {}
7065
7166 export class Preview extends S.Class<Preview>("Preview")({
@@ -114,8 +109,8 @@ export class ChildData extends S.Class<ChildData>("ChildData")({
114109 "num_reports": S.Null,
115110 "over_18": S.Boolean,
116111 "permalink": S.String,
117- "post_hint": S.optional(S.NullOr(PostHint)),
118- "preview": S.optional(S.NullOr(Preview)),
112+ "post_hint": S.optional(PostHint),
113+ "preview": S.optional(Preview),
119114 "quarantine": S.Boolean,
120115 "removal_reason": S.Null,
121116 "report_reasons": S.Null,
@@ -155,12 +150,17 @@ export class TopLevelData extends S.Class<TopLevelData>("TopLevelData")({
155150 "modhash": S.String,
156151 }) {}
157152
153+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
154+ "data": TopLevelData,
155+ "kind": S.String,
156+}) {}
157+
158158 export class Gif extends S.Class<Gif>("Gif")({
159159 "resolutions": S.Array(Source),
160160 "source": Source,
161161 }) {}
162162
163-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
164- "data": TopLevelData,
165- "kind": S.String,
163+export class Variants extends S.Class<Variants>("Variants")({
164+ "gif": S.optional(Gif),
165+ "mp4": S.optional(Gif),
166166 }) {}
Test case

test/inputs/json/misc/2d4e2.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -102,9 +102,9 @@ export class Person extends S.Class<Person>("Person")({
102102 export class Extra extends S.Class<Extra>("Extra")({
103103 "address": S.String,
104104 "contact_form": S.String,
105- "fax": S.optional(S.NullOr(S.String)),
105+ "fax": S.optional(S.String),
106106 "office": S.String,
107- "rss_url": S.optional(S.NullOr(S.String)),
107+ "rss_url": S.optional(S.String),
108108 }) {}
109109
110110 export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
Test case

test/inputs/json/misc/31189.json

1 generated file · +5 −5
Mtypescript-effect-schemadefault / TopLevel.ts+5 −5
@@ -7,12 +7,12 @@ export const EffectiveFromEnum = S.Literal(
77 export type EffectiveFromEnum = S.Schema.Type<typeof EffectiveFromEnum>;
88
99 export class Rates extends S.Class<Rates>("Rates")({
10- "parking": S.optional(S.NullOr(S.Number)),
11- "reduced": S.optional(S.NullOr(S.Number)),
12- "reduced1": S.optional(S.NullOr(S.Number)),
13- "reduced2": S.optional(S.NullOr(S.Number)),
10+ "parking": S.optional(S.Number),
11+ "reduced": S.optional(S.Number),
12+ "reduced1": S.optional(S.Number),
13+ "reduced2": S.optional(S.Number),
1414 "standard": S.Number,
15- "super_reduced": S.optional(S.NullOr(S.Number)),
15+ "super_reduced": S.optional(S.Number),
1616 }) {}
1717
1818 export class Period extends S.Class<Period>("Period")({
Test case

test/inputs/json/misc/33d2e.json

1 generated file · +16 −16
Mtypescript-effect-schemadefault / TopLevel.ts+16 −16
@@ -28,34 +28,34 @@ export const Category = S.Literal(
2828 export type Category = S.Schema.Type<typeof Category>;
2929
3030 export class AffiliationClass extends S.Class<AffiliationClass>("AffiliationClass")({
31- "city": S.optional(S.NullOr(S.String)),
32- "country": S.optional(S.NullOr(S.String)),
33- "name": S.optional(S.NullOr(S.String)),
31+ "city": S.optional(S.String),
32+ "country": S.optional(S.String),
33+ "name": S.optional(S.String),
3434 }) {}
3535
3636 export class Prize extends S.Class<Prize>("Prize")({
3737 "affiliations": S.Array(S.Union(S.Array(S.Any), AffiliationClass)),
38- "category": S.optional(S.NullOr(Category)),
39- "motivation": S.optional(S.NullOr(S.String)),
40- "overallMotivation": S.optional(S.NullOr(S.String)),
41- "share": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
42- "year": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
38+ "category": S.optional(Category),
39+ "motivation": S.optional(S.String),
40+ "overallMotivation": S.optional(S.String),
41+ "share": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
42+ "year": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
4343 }) {}
4444
4545 export class Laureate extends S.Class<Laureate>("Laureate")({
4646 "born": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
47- "bornCity": S.optional(S.NullOr(S.String)),
48- "bornCountry": S.optional(S.NullOr(S.String)),
49- "bornCountryCode": S.optional(S.NullOr(S.String)),
47+ "bornCity": S.optional(S.String),
48+ "bornCountry": S.optional(S.String),
49+ "bornCountryCode": S.optional(S.String),
5050 "died": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
51- "diedCity": S.optional(S.NullOr(S.String)),
52- "diedCountry": S.optional(S.NullOr(S.String)),
53- "diedCountryCode": S.optional(S.NullOr(S.String)),
54- "firstname": S.optional(S.NullOr(S.String)),
51+ "diedCity": S.optional(S.String),
52+ "diedCountry": S.optional(S.String),
53+ "diedCountryCode": S.optional(S.String),
54+ "firstname": S.optional(S.String),
5555 "gender": Gender,
5656 "id": S.String.pipe(S.pattern(/^-?\d+$/)),
5757 "prizes": S.Array(Prize),
58- "surname": S.optional(S.NullOr(S.String)),
58+ "surname": S.optional(S.String),
5959 }) {}
6060
6161 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/json/misc/3e9a3.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,8 +2,8 @@ import * as S from "effect/Schema";
22
33
44 export class Footnote extends S.Class<Footnote>("Footnote")({
5- "code": S.optional(S.NullOr(S.String)),
6- "text": S.optional(S.NullOr(S.String)),
5+ "code": S.optional(S.String),
6+ "text": S.optional(S.String),
77 }) {}
88
99 export class Datum extends S.Class<Datum>("Datum")({
Test case

test/inputs/json/misc/421d4.json

1 generated file · +9 −9
Mtypescript-effect-schemadefault / TopLevel.ts+9 −9
@@ -42,27 +42,27 @@ export class Top extends S.Class<Top>("Top")({
4242 }) {}
4343
4444 export class CachedContents extends S.Class<CachedContents>("CachedContents")({
45- "average": S.optional(S.NullOr(S.String)),
46- "largest": S.optional(S.NullOr(S.String)),
45+ "average": S.optional(S.String),
46+ "largest": S.optional(S.String),
4747 "non_null": S.Int,
4848 "null": S.Int,
49- "smallest": S.optional(S.NullOr(S.String)),
50- "sum": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
51- "top": S.optional(S.NullOr(S.Array(Top))),
49+ "smallest": S.optional(S.String),
50+ "sum": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
51+ "top": S.optional(S.Array(Top)),
5252 }) {}
5353
5454 export class Column extends S.Class<Column>("Column")({
55- "cachedContents": S.optional(S.NullOr(CachedContents)),
55+ "cachedContents": S.optional(CachedContents),
5656 "dataTypeName": S.String,
5757 "fieldName": S.String,
58- "flags": S.optional(S.NullOr(S.Array(S.String))),
58+ "flags": S.optional(S.Array(S.String)),
5959 "format": Query,
6060 "id": S.Int,
6161 "name": S.String,
6262 "position": S.Int,
6363 "renderTypeName": S.String,
64- "tableColumnId": S.optional(S.NullOr(S.Int)),
65- "width": S.optional(S.NullOr(S.Int)),
64+ "tableColumnId": S.optional(S.Int),
65+ "width": S.optional(S.Int),
6666 }) {}
6767
6868 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/437e7.json

1 generated file · +5 −5
Mtypescript-effect-schemadefault / TopLevel.ts+5 −5
@@ -42,10 +42,10 @@ export class Looping extends S.Class<Looping>("Looping")({
4242 }) {}
4343
4444 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
45- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
45+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
4646 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
47- "mp4": S.optional(S.NullOr(S.String)),
48- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
47+ "mp4": S.optional(S.String),
48+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
4949 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5050 "url": S.String,
5151 "webp": S.String,
@@ -62,7 +62,7 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6262
6363 export class Downsized extends S.Class<Downsized>("Downsized")({
6464 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
65- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
65+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
6666 "url": S.String,
6767 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6868 }) {}
@@ -109,7 +109,7 @@ export class Datum extends S.Class<Datum>("Datum")({
109109 "trending_datetime": S.String,
110110 "type": Type,
111111 "url": S.String,
112- "user": S.optional(S.NullOr(User)),
112+ "user": S.optional(User),
113113 "username": S.String,
114114 }) {}
Test case

test/inputs/json/misc/4d6fb.json

1 generated file · +6 −6
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -59,10 +59,10 @@ export class Preview extends S.Class<Preview>("Preview")({
5959 }) {}
6060
6161 export class MediaEmbed extends S.Class<MediaEmbed>("MediaEmbed")({
62- "content": S.optional(S.NullOr(S.String)),
63- "height": S.optional(S.NullOr(S.Int)),
64- "scrolling": S.optional(S.NullOr(S.Boolean)),
65- "width": S.optional(S.NullOr(S.Int)),
62+ "content": S.optional(S.String),
63+ "height": S.optional(S.Int),
64+ "scrolling": S.optional(S.Boolean),
65+ "width": S.optional(S.Int),
6666 }) {}
6767
6868 export class Oembed extends S.Class<Oembed>("Oembed")({
@@ -124,8 +124,8 @@ export class ChildData extends S.Class<ChildData>("ChildData")({
124124 "num_reports": S.Null,
125125 "over_18": S.Boolean,
126126 "permalink": S.String,
127- "post_hint": S.optional(S.NullOr(PostHint)),
128- "preview": S.optional(S.NullOr(Preview)),
127+ "post_hint": S.optional(PostHint),
128+ "preview": S.optional(Preview),
129129 "quarantine": S.Boolean,
130130 "removal_reason": S.Null,
131131 "report_reasons": S.Null,
Test case

test/inputs/json/misc/5f7fe.json

1 generated file · +6 −6
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -112,8 +112,8 @@ export class Grant extends S.Class<Grant>("Grant")({
112112 }) {}
113113
114114 export class Format extends S.Class<Format>("Format")({
115- "align": S.optional(S.NullOr(S.String)),
116- "view": S.optional(S.NullOr(S.String)),
115+ "align": S.optional(S.String),
116+ "view": S.optional(S.String),
117117 }) {}
118118
119119 export class Top extends S.Class<Top>("Top")({
@@ -130,17 +130,17 @@ export class CachedContents extends S.Class<CachedContents>("CachedContents")({
130130 }) {}
131131
132132 export class Column extends S.Class<Column>("Column")({
133- "cachedContents": S.optional(S.NullOr(CachedContents)),
133+ "cachedContents": S.optional(CachedContents),
134134 "dataTypeName": TypeName,
135135 "fieldName": S.String,
136- "flags": S.optional(S.NullOr(S.Array(S.String))),
136+ "flags": S.optional(S.Array(S.String)),
137137 "format": Format,
138138 "id": S.Int,
139139 "name": S.String,
140140 "position": S.Int,
141141 "renderTypeName": TypeName,
142- "tableColumnId": S.optional(S.NullOr(S.Int)),
143- "width": S.optional(S.NullOr(S.Int)),
142+ "tableColumnId": S.optional(S.Int),
143+ "width": S.optional(S.Int),
144144 }) {}
145145
146146 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/617e8.json

1 generated file · +7 −7
Mtypescript-effect-schemadefault / TopLevel.ts+7 −7
@@ -110,8 +110,8 @@ export class Grant extends S.Class<Grant>("Grant")({
110110 }) {}
111111
112112 export class Format extends S.Class<Format>("Format")({
113- "align": S.optional(S.NullOr(S.String)),
114- "view": S.optional(S.NullOr(S.String)),
113+ "align": S.optional(S.String),
114+ "view": S.optional(S.String),
115115 }) {}
116116
117117 export class Top extends S.Class<Top>("Top")({
@@ -128,18 +128,18 @@ export class CachedContents extends S.Class<CachedContents>("CachedContents")({
128128 }) {}
129129
130130 export class Column extends S.Class<Column>("Column")({
131- "cachedContents": S.optional(S.NullOr(CachedContents)),
131+ "cachedContents": S.optional(CachedContents),
132132 "dataTypeName": TypeName,
133- "description": S.optional(S.NullOr(S.String)),
133+ "description": S.optional(S.String),
134134 "fieldName": S.String,
135- "flags": S.optional(S.NullOr(S.Array(S.String))),
135+ "flags": S.optional(S.Array(S.String)),
136136 "format": Format,
137137 "id": S.Int,
138138 "name": S.String,
139139 "position": S.Int,
140140 "renderTypeName": TypeName,
141- "tableColumnId": S.optional(S.NullOr(S.Int)),
142- "width": S.optional(S.NullOr(S.Int)),
141+ "tableColumnId": S.optional(S.Int),
142+ "width": S.optional(S.Int),
143143 }) {}
144144
145145 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/65dec.json

1 generated file · +14 −14
Mtypescript-effect-schemadefault / TopLevel.ts+14 −14
@@ -67,32 +67,32 @@ export class LegalityElement extends S.Class<LegalityElement>("LegalityElement")
6767 export class Card extends S.Class<Card>("Card")({
6868 "artist": S.String,
6969 "cmc": S.Int,
70- "colorIdentity": S.optional(S.NullOr(S.Array(ColorIdentity))),
71- "colors": S.optional(S.NullOr(S.Array(Watermark))),
72- "flavor": S.optional(S.NullOr(S.String)),
70+ "colorIdentity": S.optional(S.Array(ColorIdentity)),
71+ "colors": S.optional(S.Array(Watermark)),
72+ "flavor": S.optional(S.String),
7373 "id": S.String,
7474 "imageName": S.String,
7575 "layout": Layout,
7676 "legalities": S.Array(LegalityElement),
77- "manaCost": S.optional(S.NullOr(S.String)),
78- "mciNumber": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
77+ "manaCost": S.optional(S.String),
78+ "mciNumber": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7979 "multiverseid": S.Int,
8080 "name": S.String,
8181 "originalText": S.String,
8282 "originalType": S.String,
83- "power": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
83+ "power": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
8484 "printings": S.Array(S.String),
8585 "rarity": Rarity,
86- "reserved": S.optional(S.NullOr(S.Boolean)),
87- "rulings": S.optional(S.NullOr(S.Array(Ruling))),
88- "subtypes": S.optional(S.NullOr(S.Array(S.String))),
89- "supertypes": S.optional(S.NullOr(S.Array(S.String))),
90- "text": S.optional(S.NullOr(S.String)),
91- "toughness": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
86+ "reserved": S.optional(S.Boolean),
87+ "rulings": S.optional(S.Array(Ruling)),
88+ "subtypes": S.optional(S.Array(S.String)),
89+ "supertypes": S.optional(S.Array(S.String)),
90+ "text": S.optional(S.String),
91+ "toughness": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
9292 "type": S.String,
9393 "types": S.Array(Type),
94- "variations": S.optional(S.NullOr(S.Array(S.Int))),
95- "watermark": S.optional(S.NullOr(Watermark)),
94+ "variations": S.optional(S.Array(S.Int)),
95+ "watermark": S.optional(Watermark),
9696 }) {}
9797
9898 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/json/misc/6de06.json

1 generated file · +17 −17
Mtypescript-effect-schemadefault / TopLevel.ts+17 −17
@@ -20,13 +20,6 @@ export const Kind = S.Literal(
2020 );
2121 export type Kind = S.Schema.Type<typeof Kind>;
2222
23-export class Variants extends S.Class<Variants>("Variants")({
24- "gif": S.optional(S.NullOr(S.suspend(() => Gif))),
25- "mp4": S.optional(S.NullOr(S.suspend(() => Gif))),
26- "nsfw": S.optional(S.NullOr(S.suspend(() => Gif))),
27- "obfuscated": S.optional(S.NullOr(S.suspend(() => Gif))),
28-}) {}
29-
3023 export class Source extends S.Class<Source>("Source")({
3124 "height": S.Int,
3225 "url": S.String,
@@ -37,7 +30,7 @@ export class Image extends S.Class<Image>("Image")({
3730 "id": S.String,
3831 "resolutions": S.Array(Source),
3932 "source": Source,
40- "variants": Variants,
33+ "variants": S.suspend(() => Variants),
4134 }) {}
4235
4336 export class Preview extends S.Class<Preview>("Preview")({
@@ -46,10 +39,10 @@ export class Preview extends S.Class<Preview>("Preview")({
4639 }) {}
4740
4841 export class MediaEmbed extends S.Class<MediaEmbed>("MediaEmbed")({
49- "content": S.optional(S.NullOr(S.String)),
50- "height": S.optional(S.NullOr(S.Int)),
51- "scrolling": S.optional(S.NullOr(S.Boolean)),
52- "width": S.optional(S.NullOr(S.Int)),
42+ "content": S.optional(S.String),
43+ "height": S.optional(S.Int),
44+ "scrolling": S.optional(S.Boolean),
45+ "width": S.optional(S.Int),
5346 }) {}
5447
5548 export class Oembed extends S.Class<Oembed>("Oembed")({
@@ -110,8 +103,8 @@ export class ChildData extends S.Class<ChildData>("ChildData")({
110103 "num_reports": S.Null,
111104 "over_18": S.Boolean,
112105 "permalink": S.String,
113- "post_hint": S.optional(S.NullOr(PostHint)),
114- "preview": S.optional(S.NullOr(Preview)),
106+ "post_hint": S.optional(PostHint),
107+ "preview": S.optional(Preview),
115108 "quarantine": S.Boolean,
116109 "removal_reason": S.Null,
117110 "report_reasons": S.Null,
@@ -151,12 +144,19 @@ export class TopLevelData extends S.Class<TopLevelData>("TopLevelData")({
151144 "modhash": S.String,
152145 }) {}
153146
147+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
148+ "data": TopLevelData,
149+ "kind": S.String,
150+}) {}
151+
154152 export class Gif extends S.Class<Gif>("Gif")({
155153 "resolutions": S.Array(Source),
156154 "source": Source,
157155 }) {}
158156
159-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
160- "data": TopLevelData,
161- "kind": S.String,
157+export class Variants extends S.Class<Variants>("Variants")({
158+ "gif": S.optional(Gif),
159+ "mp4": S.optional(Gif),
160+ "nsfw": S.optional(Gif),
161+ "obfuscated": S.optional(Gif),
162162 }) {}
Test case

test/inputs/json/misc/734ad.json

1 generated file · +4 −4
Mtypescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -17,14 +17,14 @@ export class Result extends S.Class<Result>("Result")({
1717 "activity_inter_groups": S.String,
1818 "activity_other": S.NullOr(S.String),
1919 "activity_relevant_comm": S.String,
20- "be_office_country": S.optional(S.NullOr(S.String)),
20+ "be_office_country": S.optional(S.String),
2121 "be_office_lat": S.optional(S.NullOr(S.Number)),
2222 "be_office_lon": S.optional(S.NullOr(S.Number)),
23- "be_office_phone": S.optional(S.NullOr(S.String)),
23+ "be_office_phone": S.optional(S.String),
2424 "be_office_post_code": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
2525 "be_office_postbox": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
26- "be_office_street": S.optional(S.NullOr(S.String)),
27- "be_office_town": S.optional(S.NullOr(S.String)),
26+ "be_office_street": S.optional(S.String),
27+ "be_office_town": S.optional(S.String),
2828 "code_of_conduct": S.String,
2929 "contact_country": S.Int,
3030 "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
Test case

test/inputs/json/misc/7681c.json

1 generated file · +20 −20
Mtypescript-effect-schemadefault / TopLevel.ts+20 −20
@@ -40,7 +40,7 @@ export class User extends S.Class<User>("User")({
4040 "banner_url": S.String,
4141 "display_name": S.String,
4242 "profile_url": S.String,
43- "twitter": S.optional(S.NullOr(S.String)),
43+ "twitter": S.optional(S.String),
4444 "username": S.String,
4545 }) {}
4646
@@ -50,11 +50,11 @@ export class Looping extends S.Class<Looping>("Looping")({
5050 }) {}
5151
5252 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
53- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
54- "hash": S.optional(S.NullOr(S.String)),
53+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
54+ "hash": S.optional(S.String),
5555 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
56- "mp4": S.optional(S.NullOr(S.String)),
57- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
56+ "mp4": S.optional(S.String),
57+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5858 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5959 "url": S.String,
6060 "webp": S.String,
@@ -69,37 +69,37 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6969 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7070 }) {}
7171
72-export class Downsized extends S.Class<Downsized>("Downsized")({
72+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
7373 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
74- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
74+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7575 "url": S.String,
7676 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7777 }) {}
7878
7979 export class Images extends S.Class<Images>("Images")({
80- "downsized": Downsized,
81- "downsized_large": Downsized,
82- "downsized_medium": Downsized,
80+ "downsized": The480_WStill,
81+ "downsized_large": The480_WStill,
82+ "downsized_medium": The480_WStill,
8383 "downsized_small": DownsizedSmall,
84- "downsized_still": Downsized,
84+ "downsized_still": The480_WStill,
8585 "fixed_height": FixedHeight,
8686 "fixed_height_downsampled": FixedHeight,
8787 "fixed_height_small": FixedHeight,
88- "fixed_height_small_still": Downsized,
89- "fixed_height_still": Downsized,
88+ "fixed_height_small_still": The480_WStill,
89+ "fixed_height_still": The480_WStill,
9090 "fixed_width": FixedHeight,
9191 "fixed_width_downsampled": FixedHeight,
9292 "fixed_width_small": FixedHeight,
93- "fixed_width_small_still": Downsized,
94- "fixed_width_still": Downsized,
93+ "fixed_width_small_still": The480_WStill,
94+ "fixed_width_still": The480_WStill,
9595 "looping": Looping,
9696 "original": FixedHeight,
9797 "original_mp4": DownsizedSmall,
98- "original_still": Downsized,
98+ "original_still": The480_WStill,
9999 "preview": DownsizedSmall,
100- "preview_gif": Downsized,
101- "preview_webp": Downsized,
102- "480w_still": S.optional(S.NullOr(Downsized)),
100+ "preview_gif": The480_WStill,
101+ "preview_webp": The480_WStill,
102+ "480w_still": S.optional(The480_WStill),
103103 }) {}
104104
105105 export class Datum extends S.Class<Datum>("Datum")({
@@ -119,7 +119,7 @@ export class Datum extends S.Class<Datum>("Datum")({
119119 "trending_datetime": S.String,
120120 "type": Type,
121121 "url": S.String,
122- "user": S.optional(S.NullOr(User)),
122+ "user": S.optional(User),
123123 "username": Username,
124124 }) {}
Test case

test/inputs/json/misc/77392.json

1 generated file · +3 −3
Mtypescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -25,14 +25,14 @@ export type Pha = S.Schema.Type<typeof Pha>;
2525 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
2626 "designation": S.String,
2727 "discovery_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
28- "h_mag": S.optional(S.NullOr(S.String)),
28+ "h_mag": S.optional(S.String),
2929 "i_deg": S.String,
3030 "moid_au": S.String,
3131 "orbit_class": OrbitClass,
32- "period_yr": S.optional(S.NullOr(S.String)),
32+ "period_yr": S.optional(S.String),
3333 "pha": Pha,
3434 "q_au_1": S.String,
35- "q_au_2": S.optional(S.NullOr(S.String)),
35+ "q_au_2": S.optional(S.String),
3636 }) {}
3737
3838 export const TopLevel = S.Array(TopLevelElement);
Test case

test/inputs/json/misc/8592b.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -90,8 +90,8 @@ export class ChildData extends S.Class<ChildData>("ChildData")({
9090 "num_reports": S.Null,
9191 "over_18": S.Boolean,
9292 "permalink": S.String,
93- "post_hint": S.optional(S.NullOr(PostHint)),
94- "preview": S.optional(S.NullOr(S.suspend(() => Preview))),
93+ "post_hint": S.optional(PostHint),
94+ "preview": S.optional(S.suspend(() => Preview)),
9595 "quarantine": S.Boolean,
9696 "removal_reason": S.Null,
9797 "report_reasons": S.Null,
Test case

test/inputs/json/misc/a3d8c.json

1 generated file · +6 −6
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -49,27 +49,27 @@ export class Top extends S.Class<Top>("Top")({
4949 }) {}
5050
5151 export class CachedContents extends S.Class<CachedContents>("CachedContents")({
52- "average": S.optional(S.NullOr(S.String)),
52+ "average": S.optional(S.String),
5353 "largest": S.String,
5454 "non_null": S.Int,
5555 "null": S.Int,
5656 "smallest": S.String,
57- "sum": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
57+ "sum": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5858 "top": S.Array(Top),
5959 }) {}
6060
6161 export class Column extends S.Class<Column>("Column")({
62- "cachedContents": S.optional(S.NullOr(CachedContents)),
62+ "cachedContents": S.optional(CachedContents),
6363 "dataTypeName": TypeName,
6464 "fieldName": S.String,
65- "flags": S.optional(S.NullOr(S.Array(S.String))),
65+ "flags": S.optional(S.Array(S.String)),
6666 "format": Query,
6767 "id": S.Int,
6868 "name": S.String,
6969 "position": S.Int,
7070 "renderTypeName": TypeName,
71- "tableColumnId": S.optional(S.NullOr(S.Int)),
72- "width": S.optional(S.NullOr(S.Int)),
71+ "tableColumnId": S.optional(S.Int),
72+ "width": S.optional(S.Int),
7373 }) {}
7474
7575 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/b4865.json

1 generated file · +7 −7
Mtypescript-effect-schemadefault / TopLevel.ts+7 −7
@@ -25,18 +25,18 @@ export class Geolocation extends S.Class<Geolocation>("Geolocation")({
2525 }) {}
2626
2727 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
28- ":@computed_region_cbhk_fwbd": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
29- ":@computed_region_nnqa_25f4": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
28+ ":@computed_region_cbhk_fwbd": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
29+ ":@computed_region_nnqa_25f4": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
3030 "fall": Fall,
31- "geolocation": S.optional(S.NullOr(Geolocation)),
31+ "geolocation": S.optional(Geolocation),
3232 "id": S.String.pipe(S.pattern(/^-?\d+$/)),
33- "mass": S.optional(S.NullOr(S.String)),
33+ "mass": S.optional(S.String),
3434 "name": S.String,
3535 "nametype": Nametype,
3636 "recclass": S.String,
37- "reclat": S.optional(S.NullOr(S.String)),
38- "reclong": S.optional(S.NullOr(S.String)),
39- "year": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
37+ "reclat": S.optional(S.String),
38+ "reclong": S.optional(S.String),
39+ "year": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
4040 }) {}
4141
4242 export const TopLevel = S.Array(TopLevelElement);
Test case

test/inputs/json/misc/be234.json

1 generated file · +13 −13
Mtypescript-effect-schemadefault / TopLevel.ts+13 −13
@@ -48,11 +48,6 @@ export const Kind = S.Literal(
4848 );
4949 export type Kind = S.Schema.Type<typeof Kind>;
5050
51-export class Variants extends S.Class<Variants>("Variants")({
52- "gif": S.optional(S.NullOr(S.suspend(() => Gif))),
53- "mp4": S.optional(S.NullOr(S.suspend(() => Gif))),
54-}) {}
55-
5651 export class Source extends S.Class<Source>("Source")({
5752 "height": S.Int,
5853 "url": S.String,
@@ -63,7 +58,7 @@ export class Image extends S.Class<Image>("Image")({
6358 "id": S.String,
6459 "resolutions": S.Array(Source),
6560 "source": Source,
66- "variants": Variants,
61+ "variants": S.suspend(() => Variants),
6762 }) {}
6863
6964 export class Preview extends S.Class<Preview>("Preview")({
@@ -72,10 +67,10 @@ export class Preview extends S.Class<Preview>("Preview")({
7267 }) {}
7368
7469 export class MediaEmbed extends S.Class<MediaEmbed>("MediaEmbed")({
75- "content": S.optional(S.NullOr(S.String)),
76- "height": S.optional(S.NullOr(S.Int)),
77- "scrolling": S.optional(S.NullOr(S.Boolean)),
78- "width": S.optional(S.NullOr(S.Int)),
70+ "content": S.optional(S.String),
71+ "height": S.optional(S.Int),
72+ "scrolling": S.optional(S.Boolean),
73+ "width": S.optional(S.Int),
7974 }) {}
8075
8176 export class Oembed extends S.Class<Oembed>("Oembed")({
@@ -177,12 +172,17 @@ export class TopLevelData extends S.Class<TopLevelData>("TopLevelData")({
177172 "modhash": S.String,
178173 }) {}
179174
175+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
176+ "data": TopLevelData,
177+ "kind": S.String,
178+}) {}
179+
180180 export class Gif extends S.Class<Gif>("Gif")({
181181 "resolutions": S.Array(Source),
182182 "source": Source,
183183 }) {}
184184
185-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
186- "data": TopLevelData,
187- "kind": S.String,
185+export class Variants extends S.Class<Variants>("Variants")({
186+ "gif": S.optional(Gif),
187+ "mp4": S.optional(Gif),
188188 }) {}
Test case

test/inputs/json/misc/c3303.json

1 generated file · +19 −19
Mtypescript-effect-schemadefault / TopLevel.ts+19 −19
@@ -47,11 +47,11 @@ export class Looping extends S.Class<Looping>("Looping")({
4747 }) {}
4848
4949 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
50- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
51- "hash": S.optional(S.NullOr(S.String)),
50+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
51+ "hash": S.optional(S.String),
5252 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
53- "mp4": S.optional(S.NullOr(S.String)),
54- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
53+ "mp4": S.optional(S.String),
54+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5555 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5656 "url": S.String,
5757 "webp": S.String,
@@ -66,37 +66,37 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6666 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6767 }) {}
6868
69-export class Downsized extends S.Class<Downsized>("Downsized")({
69+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
7070 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
71- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
71+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7272 "url": S.String,
7373 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7474 }) {}
7575
7676 export class Images extends S.Class<Images>("Images")({
77- "downsized": Downsized,
78- "downsized_large": Downsized,
79- "downsized_medium": Downsized,
77+ "downsized": The480_WStill,
78+ "downsized_large": The480_WStill,
79+ "downsized_medium": The480_WStill,
8080 "downsized_small": DownsizedSmall,
81- "downsized_still": Downsized,
81+ "downsized_still": The480_WStill,
8282 "fixed_height": FixedHeight,
8383 "fixed_height_downsampled": FixedHeight,
8484 "fixed_height_small": FixedHeight,
85- "fixed_height_small_still": Downsized,
86- "fixed_height_still": Downsized,
85+ "fixed_height_small_still": The480_WStill,
86+ "fixed_height_still": The480_WStill,
8787 "fixed_width": FixedHeight,
8888 "fixed_width_downsampled": FixedHeight,
8989 "fixed_width_small": FixedHeight,
90- "fixed_width_small_still": Downsized,
91- "fixed_width_still": Downsized,
90+ "fixed_width_small_still": The480_WStill,
91+ "fixed_width_still": The480_WStill,
9292 "looping": Looping,
9393 "original": FixedHeight,
9494 "original_mp4": DownsizedSmall,
95- "original_still": Downsized,
95+ "original_still": The480_WStill,
9696 "preview": DownsizedSmall,
97- "preview_gif": Downsized,
98- "preview_webp": Downsized,
99- "480w_still": S.optional(S.NullOr(Downsized)),
97+ "preview_gif": The480_WStill,
98+ "preview_webp": The480_WStill,
99+ "480w_still": S.optional(The480_WStill),
100100 }) {}
101101
102102 export class Datum extends S.Class<Datum>("Datum")({
@@ -116,7 +116,7 @@ export class Datum extends S.Class<Datum>("Datum")({
116116 "trending_datetime": S.String,
117117 "type": Type,
118118 "url": S.String,
119- "user": S.optional(S.NullOr(User)),
119+ "user": S.optional(User),
120120 "username": Username,
121121 }) {}
Test case

test/inputs/json/misc/cb0cc.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -14,7 +14,7 @@ export type Category = S.Schema.Type<typeof Category>;
1414 export class Laureate extends S.Class<Laureate>("Laureate")({
1515 "firstname": S.String,
1616 "id": S.String.pipe(S.pattern(/^-?\d+$/)),
17- "motivation": S.optional(S.NullOr(S.String)),
17+ "motivation": S.optional(S.String),
1818 "share": S.String.pipe(S.pattern(/^-?\d+$/)),
1919 "surname": S.String,
2020 }) {}
@@ -22,7 +22,7 @@ export class Laureate extends S.Class<Laureate>("Laureate")({
2222 export class Prize extends S.Class<Prize>("Prize")({
2323 "category": Category,
2424 "laureates": S.Array(Laureate),
25- "overallMotivation": S.optional(S.NullOr(S.String)),
25+ "overallMotivation": S.optional(S.String),
2626 "year": S.String.pipe(S.pattern(/^-?\d+$/)),
2727 }) {}
Test case

test/inputs/json/misc/dc44f.json

1 generated file · +14 −14
Mtypescript-effect-schemadefault / TopLevel.ts+14 −14
@@ -116,31 +116,31 @@ export class LegalityElement extends S.Class<LegalityElement>("LegalityElement")
116116 export class Card extends S.Class<Card>("Card")({
117117 "artist": S.String,
118118 "cmc": S.Int,
119- "colorIdentity": S.optional(S.NullOr(S.Array(ColorIdentity))),
120- "colors": S.optional(S.NullOr(S.Array(Color))),
121- "flavor": S.optional(S.NullOr(S.String)),
119+ "colorIdentity": S.optional(S.Array(ColorIdentity)),
120+ "colors": S.optional(S.Array(Color)),
121+ "flavor": S.optional(S.String),
122122 "id": S.String,
123123 "imageName": S.String,
124124 "layout": Layout,
125125 "legalities": S.Array(LegalityElement),
126- "manaCost": S.optional(S.NullOr(S.String)),
127- "mciNumber": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
126+ "manaCost": S.optional(S.String),
127+ "mciNumber": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
128128 "multiverseid": S.Int,
129129 "name": S.String,
130- "originalText": S.optional(S.NullOr(S.String)),
130+ "originalText": S.optional(S.String),
131131 "originalType": S.String,
132- "power": S.optional(S.NullOr(S.String)),
132+ "power": S.optional(S.String),
133133 "printings": S.Array(S.String),
134134 "rarity": Rarity,
135- "reserved": S.optional(S.NullOr(S.Boolean)),
136- "rulings": S.optional(S.NullOr(S.Array(Ruling))),
137- "subtypes": S.optional(S.NullOr(S.Array(S.String))),
138- "supertypes": S.optional(S.NullOr(S.Array(Supertype))),
139- "text": S.optional(S.NullOr(S.String)),
140- "toughness": S.optional(S.NullOr(S.String)),
135+ "reserved": S.optional(S.Boolean),
136+ "rulings": S.optional(S.Array(Ruling)),
137+ "subtypes": S.optional(S.Array(S.String)),
138+ "supertypes": S.optional(S.Array(Supertype)),
139+ "text": S.optional(S.String),
140+ "toughness": S.optional(S.String),
141141 "type": S.String,
142142 "types": S.Array(Type),
143- "variations": S.optional(S.NullOr(S.Array(S.Int))),
143+ "variations": S.optional(S.Array(S.Int)),
144144 }) {}
145145
146146 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/json/misc/dd1ce.json

1 generated file · +14 −14
Mtypescript-effect-schemadefault / TopLevel.ts+14 −14
@@ -116,31 +116,31 @@ export class LegalityElement extends S.Class<LegalityElement>("LegalityElement")
116116 export class Card extends S.Class<Card>("Card")({
117117 "artist": S.String,
118118 "cmc": S.Int,
119- "colorIdentity": S.optional(S.NullOr(S.Array(ColorIdentity))),
120- "colors": S.optional(S.NullOr(S.Array(Color))),
121- "flavor": S.optional(S.NullOr(S.String)),
119+ "colorIdentity": S.optional(S.Array(ColorIdentity)),
120+ "colors": S.optional(S.Array(Color)),
121+ "flavor": S.optional(S.String),
122122 "id": S.String,
123123 "imageName": S.String,
124124 "layout": Layout,
125125 "legalities": S.Array(LegalityElement),
126- "manaCost": S.optional(S.NullOr(S.String)),
127- "mciNumber": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
126+ "manaCost": S.optional(S.String),
127+ "mciNumber": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
128128 "multiverseid": S.Int,
129129 "name": S.String,
130- "originalText": S.optional(S.NullOr(S.String)),
130+ "originalText": S.optional(S.String),
131131 "originalType": S.String,
132- "power": S.optional(S.NullOr(S.String)),
132+ "power": S.optional(S.String),
133133 "printings": S.Array(S.String),
134134 "rarity": Rarity,
135- "reserved": S.optional(S.NullOr(S.Boolean)),
136- "rulings": S.optional(S.NullOr(S.Array(Ruling))),
137- "subtypes": S.optional(S.NullOr(S.Array(S.String))),
138- "supertypes": S.optional(S.NullOr(S.Array(Supertype))),
139- "text": S.optional(S.NullOr(S.String)),
140- "toughness": S.optional(S.NullOr(S.String)),
135+ "reserved": S.optional(S.Boolean),
136+ "rulings": S.optional(S.Array(Ruling)),
137+ "subtypes": S.optional(S.Array(S.String)),
138+ "supertypes": S.optional(S.Array(Supertype)),
139+ "text": S.optional(S.String),
140+ "toughness": S.optional(S.String),
141141 "type": S.String,
142142 "types": S.Array(Type),
143- "variations": S.optional(S.NullOr(S.Array(S.Int))),
143+ "variations": S.optional(S.Array(S.Int)),
144144 }) {}
145145
146146 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/json/misc/e0ac7.json

1 generated file · +7 −7
Mtypescript-effect-schemadefault / TopLevel.ts+7 −7
@@ -41,11 +41,11 @@ export class Looping extends S.Class<Looping>("Looping")({
4141 }) {}
4242
4343 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
44- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
45- "hash": S.optional(S.NullOr(S.String)),
44+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
45+ "hash": S.optional(S.String),
4646 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
47- "mp4": S.optional(S.NullOr(S.String)),
48- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
47+ "mp4": S.optional(S.String),
48+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
4949 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
5050 "url": S.String,
5151 "webp": S.String,
@@ -62,7 +62,7 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
6262
6363 export class Downsized extends S.Class<Downsized>("Downsized")({
6464 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
65- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
65+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
6666 "url": S.String,
6767 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
6868 }) {}
@@ -83,7 +83,7 @@ export class Images extends S.Class<Images>("Images")({
8383 "fixed_width_small": FixedHeight,
8484 "fixed_width_small_still": Downsized,
8585 "fixed_width_still": Downsized,
86- "hd": S.optional(S.NullOr(DownsizedSmall)),
86+ "hd": S.optional(DownsizedSmall),
8787 "looping": Looping,
8888 "original": FixedHeight,
8989 "original_mp4": DownsizedSmall,
@@ -110,7 +110,7 @@ export class Datum extends S.Class<Datum>("Datum")({
110110 "trending_datetime": S.String,
111111 "type": Type,
112112 "url": S.String,
113- "user": S.optional(S.NullOr(User)),
113+ "user": S.optional(User),
114114 "username": S.String,
115115 }) {}
Test case

test/inputs/json/misc/e8b04.json

1 generated file · +53 −53
Mtypescript-effect-schemadefault / TopLevel.ts+53 −53
@@ -132,8 +132,8 @@ export type ViewType = S.Schema.Type<typeof ViewType>;
132132 export class TableAuthor extends S.Class<TableAuthor>("TableAuthor")({
133133 "displayName": S.String,
134134 "id": S.String,
135- "rights": S.optional(S.NullOr(S.Array(S.String))),
136- "roleName": S.optional(S.NullOr(RoleName)),
135+ "rights": S.optional(S.Array(S.String)),
136+ "roleName": S.optional(RoleName),
137137 "screenName": S.String,
138138 }) {}
139139
@@ -143,14 +143,14 @@ export class Ratings extends S.Class<Ratings>("Ratings")({
143143
144144 export class Owner extends S.Class<Owner>("Owner")({
145145 "displayName": S.String,
146- "flags": S.optional(S.NullOr(S.Array(S.String))),
146+ "flags": S.optional(S.Array(S.String)),
147147 "id": S.String,
148- "lastNotificationSeenAt": S.optional(S.NullOr(S.Int)),
149- "profileImageUrlLarge": S.optional(S.NullOr(S.String)),
150- "profileImageUrlMedium": S.optional(S.NullOr(S.String)),
151- "profileImageUrlSmall": S.optional(S.NullOr(S.String)),
152- "rights": S.optional(S.NullOr(S.Array(S.String))),
153- "roleName": S.optional(S.NullOr(RoleName)),
148+ "lastNotificationSeenAt": S.optional(S.Int),
149+ "profileImageUrlLarge": S.optional(S.String),
150+ "profileImageUrlMedium": S.optional(S.String),
151+ "profileImageUrlSmall": S.optional(S.String),
152+ "rights": S.optional(S.Array(S.String)),
153+ "roleName": S.optional(RoleName),
154154 "screenName": S.String,
155155 }) {}
156156
@@ -199,8 +199,8 @@ export class RichRendererConfigs extends S.Class<RichRendererConfigs>("RichRende
199199 }) {}
200200
201201 export class PurpleVisible extends S.Class<PurpleVisible>("PurpleVisible")({
202- "fatrow": S.optional(S.NullOr(S.Boolean)),
203- "table": S.optional(S.NullOr(S.Boolean)),
202+ "fatrow": S.optional(S.Boolean),
203+ "table": S.optional(S.Boolean),
204204 }) {}
205205
206206 export class MetadataRenderTypeConfig extends S.Class<MetadataRenderTypeConfig>("MetadataRenderTypeConfig")({
@@ -212,31 +212,31 @@ export class TableColumnId extends S.Class<TableColumnId>("TableColumnId")({
212212 }) {}
213213
214214 export class ChildMetadata extends S.Class<ChildMetadata>("ChildMetadata")({
215- "customValues": S.optional(S.NullOr(S.Array(S.String))),
216- "freeform": S.optional(S.NullOr(S.Boolean)),
217- "includeAuto": S.optional(S.NullOr(S.Int)),
218- "operator": S.optional(S.NullOr(MetadataOperator)),
219- "tableColumnId": S.optional(S.NullOr(TableColumnId)),
220- "unifiedVersion": S.optional(S.NullOr(S.Int)),
215+ "customValues": S.optional(S.Array(S.String)),
216+ "freeform": S.optional(S.Boolean),
217+ "includeAuto": S.optional(S.Int),
218+ "operator": S.optional(MetadataOperator),
219+ "tableColumnId": S.optional(TableColumnId),
220+ "unifiedVersion": S.optional(S.Int),
221221 }) {}
222222
223223 export class Child extends S.Class<Child>("Child")({
224224 "columnFieldName": ChildColumnFieldName,
225- "metadata": S.optional(S.NullOr(ChildMetadata)),
225+ "metadata": S.optional(ChildMetadata),
226226 "operator": ChildOperator,
227- "value": S.optional(S.NullOr(S.String)),
227+ "value": S.optional(S.String),
228228 }) {}
229229
230230 export class Where extends S.Class<Where>("Where")({
231- "children": S.optional(S.NullOr(S.Array(Child))),
232- "columnFieldName": S.optional(S.NullOr(ChildColumnFieldName)),
233- "metadata": S.optional(S.NullOr(ChildMetadata)),
231+ "children": S.optional(S.Array(Child)),
232+ "columnFieldName": S.optional(ChildColumnFieldName),
233+ "metadata": S.optional(ChildMetadata),
234234 "operator": WhereOperator,
235- "value": S.optional(S.NullOr(S.String)),
235+ "value": S.optional(S.String),
236236 }) {}
237237
238238 export class Select extends S.Class<Select>("Select")({
239- "aggregate": S.optional(S.NullOr(S.String)),
239+ "aggregate": S.optional(S.String),
240240 "columnFieldName": S.String,
241241 }) {}
242242
@@ -250,10 +250,10 @@ export class Group extends S.Class<Group>("Group")({
250250 }) {}
251251
252252 export class JsonQuery extends S.Class<JsonQuery>("JsonQuery")({
253- "group": S.optional(S.NullOr(S.Array(Group))),
254- "order": S.optional(S.NullOr(S.Array(Order))),
255- "select": S.optional(S.NullOr(S.Array(Select))),
256- "where": S.optional(S.NullOr(Where)),
253+ "group": S.optional(S.Array(Group)),
254+ "order": S.optional(S.Array(Order)),
255+ "select": S.optional(S.Array(Select)),
256+ "where": S.optional(Where),
257257 }) {}
258258
259259 export class Test extends S.Class<Test>("Test")({
@@ -265,16 +265,16 @@ export class CustomFields extends S.Class<CustomFields>("CustomFields")({
265265 }) {}
266266
267267 export class TopLevelMetadata extends S.Class<TopLevelMetadata>("TopLevelMetadata")({
268- "availableDisplayTypes": S.optional(S.NullOr(S.Array(DisplayType))),
269- "custom_fields": S.optional(S.NullOr(CustomFields)),
270- "jsonQuery": S.optional(S.NullOr(JsonQuery)),
271- "rdfClass": S.optional(S.NullOr(S.String)),
272- "rdfSubject": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
273- "renderTypeConfig": S.optional(S.NullOr(MetadataRenderTypeConfig)),
274- "richRendererConfigs": S.optional(S.NullOr(RichRendererConfigs)),
275- "rowIdentifier": S.optional(S.NullOr(S.String)),
276- "rowLabel": S.optional(S.NullOr(S.String)),
277- "v1_archived_properties": S.optional(S.NullOr(V1ArchivedProperties)),
268+ "availableDisplayTypes": S.optional(S.Array(DisplayType)),
269+ "custom_fields": S.optional(CustomFields),
270+ "jsonQuery": S.optional(JsonQuery),
271+ "rdfClass": S.optional(S.String),
272+ "rdfSubject": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
273+ "renderTypeConfig": S.optional(MetadataRenderTypeConfig),
274+ "richRendererConfigs": S.optional(RichRendererConfigs),
275+ "rowIdentifier": S.optional(S.String),
276+ "rowLabel": S.optional(S.String),
277+ "v1_archived_properties": S.optional(V1ArchivedProperties),
278278 }) {}
279279
280280 export class Grant extends S.Class<Grant>("Grant")({
@@ -285,21 +285,21 @@ export class Grant extends S.Class<Grant>("Grant")({
285285
286286 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
287287 "averageRating": S.Int,
288- "category": S.optional(S.NullOr(S.String)),
288+ "category": S.optional(S.String),
289289 "createdAt": S.Int,
290- "description": S.optional(S.NullOr(S.String)),
291- "displayType": S.optional(S.NullOr(DisplayType)),
290+ "description": S.optional(S.String),
291+ "displayType": S.optional(DisplayType),
292292 "downloadCount": S.Int,
293- "flags": S.optional(S.NullOr(S.Array(TopLevelFlag))),
293+ "flags": S.optional(S.Array(TopLevelFlag)),
294294 "grants": S.Array(Grant),
295295 "hideFromCatalog": S.Boolean,
296296 "hideFromDataJson": S.Boolean,
297297 "id": S.String,
298- "indexUpdatedAt": S.optional(S.NullOr(S.Int)),
298+ "indexUpdatedAt": S.optional(S.Int),
299299 "locale": S.String,
300300 "metadata": TopLevelMetadata,
301- "moderationStatus": S.optional(S.NullOr(S.Boolean)),
302- "modifyingViewUid": S.optional(S.NullOr(ModifyingViewUid)),
301+ "moderationStatus": S.optional(S.Boolean),
302+ "modifyingViewUid": S.optional(ModifyingViewUid),
303303 "name": S.String,
304304 "newBackend": S.Boolean,
305305 "numberOfComments": S.Int,
@@ -307,19 +307,19 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
307307 "owner": Owner,
308308 "provenance": Provenance,
309309 "publicationAppendEnabled": S.Boolean,
310- "publicationDate": S.optional(S.NullOr(S.Int)),
310+ "publicationDate": S.optional(S.Int),
311311 "publicationGroup": S.Int,
312312 "publicationStage": PublicationStage,
313- "ratings": S.optional(S.NullOr(Ratings)),
314- "resourceName": S.optional(S.NullOr(S.String)),
313+ "ratings": S.optional(Ratings),
314+ "resourceName": S.optional(S.String),
315315 "rights": S.Array(Right),
316- "rowClass": S.optional(S.NullOr(S.String)),
317- "rowIdentifierColumnId": S.optional(S.NullOr(S.Int)),
318- "rowsUpdatedAt": S.optional(S.NullOr(S.Int)),
319- "rowsUpdatedBy": S.optional(S.NullOr(RowsUpdatedBy)),
316+ "rowClass": S.optional(S.String),
317+ "rowIdentifierColumnId": S.optional(S.Int),
318+ "rowsUpdatedAt": S.optional(S.Int),
319+ "rowsUpdatedBy": S.optional(RowsUpdatedBy),
320320 "tableAuthor": TableAuthor,
321321 "tableId": S.Int,
322- "tags": S.optional(S.NullOr(S.Array(S.String))),
322+ "tags": S.optional(S.Array(S.String)),
323323 "totalTimesRated": S.Int,
324324 "viewCount": S.Int,
325325 "viewLastModified": S.Int,
Test case

test/inputs/json/misc/f6a65.json

1 generated file · +19 −19
Mtypescript-effect-schemadefault / TopLevel.ts+19 −19
@@ -51,11 +51,11 @@ export class Looping extends S.Class<Looping>("Looping")({
5151 }) {}
5252
5353 export class FixedHeight extends S.Class<FixedHeight>("FixedHeight")({
54- "frames": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
55- "hash": S.optional(S.NullOr(S.String)),
54+ "frames": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
55+ "hash": S.optional(S.String),
5656 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
57- "mp4": S.optional(S.NullOr(S.String)),
58- "mp4_size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
57+ "mp4": S.optional(S.String),
58+ "mp4_size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5959 "size": S.String.pipe(S.pattern(/^-?\d+$/)),
6060 "url": S.String,
6161 "webp": S.String,
@@ -70,37 +70,37 @@ export class DownsizedSmall extends S.Class<DownsizedSmall>("DownsizedSmall")({
7070 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7171 }) {}
7272
73-export class Downsized extends S.Class<Downsized>("Downsized")({
73+export class The480_WStill extends S.Class<The480_WStill>("The480_WStill")({
7474 "height": S.String.pipe(S.pattern(/^-?\d+$/)),
75- "size": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
75+ "size": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
7676 "url": S.String,
7777 "width": S.String.pipe(S.pattern(/^-?\d+$/)),
7878 }) {}
7979
8080 export class Images extends S.Class<Images>("Images")({
81- "downsized": Downsized,
82- "downsized_large": Downsized,
83- "downsized_medium": Downsized,
81+ "downsized": The480_WStill,
82+ "downsized_large": The480_WStill,
83+ "downsized_medium": The480_WStill,
8484 "downsized_small": DownsizedSmall,
85- "downsized_still": Downsized,
85+ "downsized_still": The480_WStill,
8686 "fixed_height": FixedHeight,
8787 "fixed_height_downsampled": FixedHeight,
8888 "fixed_height_small": FixedHeight,
89- "fixed_height_small_still": Downsized,
90- "fixed_height_still": Downsized,
89+ "fixed_height_small_still": The480_WStill,
90+ "fixed_height_still": The480_WStill,
9191 "fixed_width": FixedHeight,
9292 "fixed_width_downsampled": FixedHeight,
9393 "fixed_width_small": FixedHeight,
94- "fixed_width_small_still": Downsized,
95- "fixed_width_still": Downsized,
94+ "fixed_width_small_still": The480_WStill,
95+ "fixed_width_still": The480_WStill,
9696 "looping": Looping,
9797 "original": FixedHeight,
9898 "original_mp4": DownsizedSmall,
99- "original_still": Downsized,
99+ "original_still": The480_WStill,
100100 "preview": DownsizedSmall,
101- "preview_gif": Downsized,
102- "preview_webp": Downsized,
103- "480w_still": S.optional(S.NullOr(Downsized)),
101+ "preview_gif": The480_WStill,
102+ "preview_webp": The480_WStill,
103+ "480w_still": S.optional(The480_WStill),
104104 }) {}
105105
106106 export class Datum extends S.Class<Datum>("Datum")({
@@ -120,7 +120,7 @@ export class Datum extends S.Class<Datum>("Datum")({
120120 "trending_datetime": S.String,
121121 "type": Type,
122122 "url": S.String,
123- "user": S.optional(S.NullOr(User)),
123+ "user": S.optional(User),
124124 "username": Username,
125125 }) {}
Test case

test/inputs/json/misc/f74d5.json

1 generated file · +6 −6
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -49,27 +49,27 @@ export class Top extends S.Class<Top>("Top")({
4949 }) {}
5050
5151 export class CachedContents extends S.Class<CachedContents>("CachedContents")({
52- "average": S.optional(S.NullOr(S.String)),
52+ "average": S.optional(S.String),
5353 "largest": S.String,
5454 "non_null": S.Int,
5555 "null": S.Int,
5656 "smallest": S.String,
57- "sum": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
57+ "sum": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
5858 "top": S.Array(Top),
5959 }) {}
6060
6161 export class Column extends S.Class<Column>("Column")({
62- "cachedContents": S.optional(S.NullOr(CachedContents)),
62+ "cachedContents": S.optional(CachedContents),
6363 "dataTypeName": TypeName,
6464 "fieldName": S.String,
65- "flags": S.optional(S.NullOr(S.Array(S.String))),
65+ "flags": S.optional(S.Array(S.String)),
6666 "format": Query,
6767 "id": S.Int,
6868 "name": S.String,
6969 "position": S.Int,
7070 "renderTypeName": TypeName,
71- "tableColumnId": S.optional(S.NullOr(S.Int)),
72- "width": S.optional(S.NullOr(S.Int)),
71+ "tableColumnId": S.optional(S.Int),
72+ "width": S.optional(S.Int),
7373 }) {}
7474
7575 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/misc/fcca3.json

1 generated file · +10 −10
Mtypescript-effect-schemadefault / TopLevel.ts+10 −10
@@ -134,9 +134,9 @@ export class Grant extends S.Class<Grant>("Grant")({
134134 }) {}
135135
136136 export class Format extends S.Class<Format>("Format")({
137- "align": S.optional(S.NullOr(S.String)),
138- "noCommas": S.optional(S.NullOr(S.Literal("true", "false"))),
139- "precisionStyle": S.optional(S.NullOr(S.String)),
137+ "align": S.optional(S.String),
138+ "noCommas": S.optional(S.Literal("true", "false")),
139+ "precisionStyle": S.optional(S.String),
140140 }) {}
141141
142142 export class Top extends S.Class<Top>("Top")({
@@ -145,28 +145,28 @@ export class Top extends S.Class<Top>("Top")({
145145 }) {}
146146
147147 export class CachedContents extends S.Class<CachedContents>("CachedContents")({
148- "average": S.optional(S.NullOr(S.String)),
148+ "average": S.optional(S.String),
149149 "largest": S.String,
150150 "non_null": S.Int,
151151 "null": S.Int,
152152 "smallest": S.String,
153- "sum": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
153+ "sum": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
154154 "top": S.Array(Top),
155155 }) {}
156156
157157 export class Column extends S.Class<Column>("Column")({
158- "cachedContents": S.optional(S.NullOr(CachedContents)),
158+ "cachedContents": S.optional(CachedContents),
159159 "dataTypeName": TypeName,
160- "description": S.optional(S.NullOr(S.String)),
160+ "description": S.optional(S.String),
161161 "fieldName": S.String,
162- "flags": S.optional(S.NullOr(S.Array(S.String))),
162+ "flags": S.optional(S.Array(S.String)),
163163 "format": Format,
164164 "id": S.Int,
165165 "name": S.String,
166166 "position": S.Int,
167167 "renderTypeName": TypeName,
168- "tableColumnId": S.optional(S.NullOr(S.Int)),
169- "width": S.optional(S.NullOr(S.Int)),
168+ "tableColumnId": S.optional(S.Int),
169+ "width": S.optional(S.Int),
170170 }) {}
171171
172172 export class View extends S.Class<View>("View")({
Test case

test/inputs/json/priority/bug2521.json

1 generated file · +1 −1
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class Option extends S.Class<Option>("Option")({
5- "foo": S.optional(S.NullOr(S.String)),
5+ "foo": S.optional(S.String),
66 "name": S.String,
77 }) {}
Test case

test/inputs/json/priority/bug427.json

1 generated file · +333 −333
Mtypescript-effect-schemadefault / TopLevel.ts+333 −333
@@ -91,271 +91,296 @@ export const TentacledKindString = S.Literal(
9191 );
9292 export type TentacledKindString = S.Schema.Type<typeof TentacledKindString>;
9393
94-export class IndecentComment extends S.Class<IndecentComment>("IndecentComment")({
94+export class IndecentFlags extends S.Class<IndecentFlags>("IndecentFlags")({
95+ "hasExportAssignment": S.optional(S.Boolean),
96+ "isAbstract": S.optional(S.Boolean),
97+ "isConst": S.optional(S.Boolean),
98+ "isExported": S.optional(S.Boolean),
99+ "isLet": S.optional(S.Boolean),
100+ "isPrivate": S.optional(S.Boolean),
101+ "isProtected": S.optional(S.Boolean),
102+}) {}
103+
104+export class IndigoComment extends S.Class<IndigoComment>("IndigoComment")({
105+ "returns": S.String,
95106 "shortText": S.String,
96- "tags": S.optional(S.NullOr(S.Array(S.suspend(() => Tag)))),
97107 }) {}
98108
99-export class MischievousType extends S.Class<MischievousType>("MischievousType")({
100- "id": S.optional(S.NullOr(S.Int)),
101- "name": S.optional(S.NullOr(Name)),
102- "operator": S.optional(S.NullOr(S.String)),
103- "target": S.optional(S.NullOr(S.suspend(() => ElementType))),
104- "type": S.String,
109+export class IndigoFlags extends S.Class<IndigoFlags>("IndigoFlags")({
110+ "isPrivate": S.optional(S.Boolean),
111+ "isProtected": S.optional(S.Boolean),
105112 }) {}
106113
107-export class FriskyType extends S.Class<FriskyType>("FriskyType")({
108- "declaration": S.optional(S.NullOr(S.suspend(() => IndigoDeclaration))),
109- "name": S.optional(S.NullOr(Name)),
114+export class ExtendedBy extends S.Class<ExtendedBy>("ExtendedBy")({
115+ "constraint": S.optional(S.suspend(() => ExtendedBy)),
116+ "id": S.optional(S.Int),
117+ "name": S.String,
110118 "type": TypeEnum,
119+ "typeArguments": S.optional(S.Array(S.suspend(() => ExtendedBy))),
111120 }) {}
112121
113-export class MagentaType extends S.Class<MagentaType>("MagentaType")({
114- "declaration": S.optional(S.NullOr(S.suspend(() => StickyDeclaration))),
115- "elementType": S.optional(S.NullOr(S.suspend(() => ElementType))),
116- "elements": S.optional(S.NullOr(S.Array(S.suspend(() => ExtendedBy)))),
117- "id": S.optional(S.NullOr(S.Int)),
118- "name": S.optional(S.NullOr(S.String)),
119- "type": TypeEnum,
120- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => FluffyTypeArgument)))),
121- "types": S.optional(S.NullOr(S.Array(S.suspend(() => ExtendedBy)))),
122- "value": S.optional(S.NullOr(S.String)),
122+export class StickyFlags extends S.Class<StickyFlags>("StickyFlags")({
123+ "isAbstract": S.optional(S.Boolean),
124+ "isConstructorProperty": S.optional(S.Boolean),
125+ "isExported": S.optional(S.Boolean),
126+ "isPrivate": S.optional(S.Boolean),
127+ "isProtected": S.optional(S.Boolean),
128+ "isPublic": S.optional(S.Boolean),
129+ "isStatic": S.optional(S.Boolean),
123130 }) {}
124131
125-export class CunningType extends S.Class<CunningType>("CunningType")({
126- "declaration": S.optional(S.NullOr(S.suspend(() => PurpleDeclaration))),
127- "id": S.optional(S.NullOr(S.Int)),
128- "name": S.optional(S.NullOr(Name)),
129- "type": TypeEnum,
130- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
132+export class Tag extends S.Class<Tag>("Tag")({
133+ "tag": S.String,
134+ "text": S.String,
131135 }) {}
132136
133-export class AmbitiousType extends S.Class<AmbitiousType>("AmbitiousType")({
134- "declaration": S.optional(S.NullOr(S.suspend(() => TentacledDeclaration))),
135- "elementType": S.optional(S.NullOr(S.suspend(() => ElementType))),
136- "id": S.optional(S.NullOr(S.Int)),
137- "name": S.optional(S.NullOr(S.String)),
138- "type": TypeEnum,
139- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
137+export class StickyComment extends S.Class<StickyComment>("StickyComment")({
138+ "returns": S.optional(S.String),
139+ "shortText": S.optional(S.String),
140+ "tags": S.optional(S.Array(Tag)),
141+ "text": S.optional(S.String),
140142 }) {}
141143
142-export class IndecentFlags extends S.Class<IndecentFlags>("IndecentFlags")({
143- "hasExportAssignment": S.optional(S.NullOr(S.Boolean)),
144- "isAbstract": S.optional(S.NullOr(S.Boolean)),
145- "isConst": S.optional(S.NullOr(S.Boolean)),
146- "isExported": S.optional(S.NullOr(S.Boolean)),
147- "isLet": S.optional(S.NullOr(S.Boolean)),
148- "isPrivate": S.optional(S.NullOr(S.Boolean)),
149- "isProtected": S.optional(S.NullOr(S.Boolean)),
144+export class TentacledFlags extends S.Class<TentacledFlags>("TentacledFlags")({
145+ "isOptional": S.optional(S.Boolean),
146+ "isRest": S.optional(S.Boolean),
150147 }) {}
151148
152-export class IndigoComment extends S.Class<IndigoComment>("IndigoComment")({
153- "returns": S.String,
154- "shortText": S.String,
149+export class TentacledComment extends S.Class<TentacledComment>("TentacledComment")({
150+ "shortText": S.optional(S.String),
151+ "text": S.optional(S.String),
155152 }) {}
156153
157-export class IndecentType extends S.Class<IndecentType>("IndecentType")({
158- "declaration": S.optional(S.NullOr(S.suspend(() => GetSignature))),
159- "elements": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
160- "name": S.optional(S.NullOr(Name)),
161- "type": TypeEnum,
154+export class Group extends S.Class<Group>("Group")({
155+ "children": S.Array(S.Int),
156+ "kind": S.Int,
157+ "title": S.String,
162158 }) {}
163159
164-export class IndigoType extends S.Class<IndigoType>("IndigoType")({
165- "constraint": S.optional(S.NullOr(S.suspend(() => ExtendedBy))),
166- "declaration": S.optional(S.NullOr(S.suspend(() => FluffyDeclaration))),
167- "elementType": S.optional(S.NullOr(S.suspend(() => ExtendedBy))),
168- "elements": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
169- "id": S.optional(S.NullOr(S.Int)),
170- "name": S.optional(S.NullOr(S.String)),
171- "type": TypeEnum,
172- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => PurpleTypeArgument)))),
173- "types": S.optional(S.NullOr(S.Array(S.suspend(() => TypeElement)))),
160+export class GetSignatureComment extends S.Class<GetSignatureComment>("GetSignatureComment")({
161+ "returns": S.optional(S.String),
162+ "shortText": S.optional(S.String),
163+ "text": S.optional(S.String),
174164 }) {}
175165
176-export class StickyType extends S.Class<StickyType>("StickyType")({
177- "constraint": S.optional(S.NullOr(S.suspend(() => ExtendedBy))),
178- "declaration": S.optional(S.NullOr(S.suspend(() => GetSignature))),
179- "elementType": S.optional(S.NullOr(S.suspend(() => ElementType))),
180- "elements": S.optional(S.NullOr(S.Array(S.suspend(() => ExtendedBy)))),
181- "id": S.optional(S.NullOr(S.Int)),
182- "name": S.optional(S.NullOr(S.String)),
183- "type": TypeEnum,
184- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
166+export class Source extends S.Class<Source>("Source")({
167+ "character": S.Int,
168+ "fileName": FileName,
169+ "line": S.Int,
185170 }) {}
186171
187-export class TypeParameter extends S.Class<TypeParameter>("TypeParameter")({
188- "comment": S.optional(S.NullOr(S.suspend(() => PurpleComment))),
189- "flags": S.suspend(() => GetSignatureFlags),
190- "id": S.Int,
191- "kind": S.Int,
192- "kindString": S.String,
193- "name": S.String,
194- "type": S.optional(S.NullOr(MischievousType)),
172+export class FluffyFlags extends S.Class<FluffyFlags>("FluffyFlags")({
173+ "isOptional": S.optional(S.Boolean),
195174 }) {}
196175
197-export class IndigoFlags extends S.Class<IndigoFlags>("IndigoFlags")({
198- "isPrivate": S.optional(S.NullOr(S.Boolean)),
199- "isProtected": S.optional(S.NullOr(S.Boolean)),
176+export class FluffyComment extends S.Class<FluffyComment>("FluffyComment")({
177+ "text": S.String,
200178 }) {}
201179
202-export class ExtendedBy extends S.Class<ExtendedBy>("ExtendedBy")({
203- "constraint": S.optional(S.NullOr(S.suspend(() => ExtendedBy))),
204- "id": S.optional(S.NullOr(S.Int)),
205- "name": S.String,
180+export class ElementType extends S.Class<ElementType>("ElementType")({
181+ "name": Name,
206182 "type": TypeEnum,
207- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ExtendedBy)))),
208183 }) {}
209184
210-export class StickyFlags extends S.Class<StickyFlags>("StickyFlags")({
211- "isAbstract": S.optional(S.NullOr(S.Boolean)),
212- "isConstructorProperty": S.optional(S.NullOr(S.Boolean)),
213- "isExported": S.optional(S.NullOr(S.Boolean)),
214- "isPrivate": S.optional(S.NullOr(S.Boolean)),
215- "isProtected": S.optional(S.NullOr(S.Boolean)),
216- "isPublic": S.optional(S.NullOr(S.Boolean)),
217- "isStatic": S.optional(S.NullOr(S.Boolean)),
185+export class MischievousType extends S.Class<MischievousType>("MischievousType")({
186+ "id": S.optional(S.Int),
187+ "name": S.optional(Name),
188+ "operator": S.optional(S.String),
189+ "target": S.optional(ElementType),
190+ "type": S.String,
218191 }) {}
219192
220-export class Tag extends S.Class<Tag>("Tag")({
221- "tag": S.String,
222- "text": S.String,
193+export class TypeParameter extends S.Class<TypeParameter>("TypeParameter")({
194+ "comment": S.optional(S.suspend(() => PurpleComment)),
195+ "flags": S.suspend(() => GetSignatureFlags),
196+ "id": S.Int,
197+ "kind": S.Int,
198+ "kindString": S.String,
199+ "name": S.String,
200+ "type": S.optional(MischievousType),
223201 }) {}
224202
225-export class StickyComment extends S.Class<StickyComment>("StickyComment")({
226- "returns": S.optional(S.NullOr(S.String)),
227- "shortText": S.optional(S.NullOr(S.String)),
228- "tags": S.optional(S.NullOr(S.Array(Tag))),
229- "text": S.optional(S.NullOr(S.String)),
203+export class FluffyTypeArgument extends S.Class<FluffyTypeArgument>("FluffyTypeArgument")({
204+ "type": TypeEnum,
205+ "types": S.Array(ElementType),
230206 }) {}
231207
232-export class TypeElement extends S.Class<TypeElement>("TypeElement")({
233- "declaration": S.optional(S.NullOr(S.suspend(() => GetSignature))),
234- "elementType": S.optional(S.NullOr(S.suspend(() => ElementType))),
235- "name": S.optional(S.NullOr(Name)),
236- "type": TypeEnum,
237- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
208+export class GetSignatureFlags extends S.Class<GetSignatureFlags>("GetSignatureFlags")({
238209 }) {}
239210
240-export class FluffyTypeArgument extends S.Class<FluffyTypeArgument>("FluffyTypeArgument")({
241- "type": TypeEnum,
242- "types": S.Array(S.suspend(() => ElementType)),
211+export class PurpleTypeArgument extends S.Class<PurpleTypeArgument>("PurpleTypeArgument")({
212+ "operator": S.String,
213+ "target": ElementType,
214+ "type": S.String,
243215 }) {}
244216
245-export class TentacledType extends S.Class<TentacledType>("TentacledType")({
246- "declaration": S.optional(S.NullOr(S.suspend(() => PurpleDeclaration))),
247- "name": S.optional(S.NullOr(Name)),
248- "type": TypeEnum,
217+export class PurpleFlags extends S.Class<PurpleFlags>("PurpleFlags")({
218+ "isExported": S.optional(S.Boolean),
249219 }) {}
250220
251-export class FluffyType extends S.Class<FluffyType>("FluffyType")({
252- "elementType": S.optional(S.NullOr(S.suspend(() => ElementType))),
253- "name": S.optional(S.NullOr(Name)),
254- "type": TypeEnum,
255- "typeArguments": S.optional(S.NullOr(S.Array(S.suspend(() => ElementType)))),
221+export class PurpleComment extends S.Class<PurpleComment>("PurpleComment")({
222+ "shortText": S.String,
256223 }) {}
257224
258-export class TentacledFlags extends S.Class<TentacledFlags>("TentacledFlags")({
259- "isOptional": S.optional(S.NullOr(S.Boolean)),
260- "isRest": S.optional(S.NullOr(S.Boolean)),
225+export class TentacledChild extends S.Class<TentacledChild>("TentacledChild")({
226+ "comment": S.optional(PurpleComment),
227+ "defaultValue": S.optional(S.String),
228+ "flags": PurpleFlags,
229+ "id": S.Int,
230+ "kind": S.Int,
231+ "kindString": PurpleKindString,
232+ "name": S.String,
233+ "signatures": S.optional(S.Array(S.suspend(() => PurpleSignature))),
234+ "sources": S.Array(Source),
235+ "type": S.optional(S.suspend(() => TypeElement)),
261236 }) {}
262237
263-export class IndigoDeclaration extends S.Class<IndigoDeclaration>("IndigoDeclaration")({
264- "children": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignature)))),
265- "flags": S.suspend(() => GetSignatureFlags),
266- "groups": S.optional(S.NullOr(S.Array(S.suspend(() => Group)))),
238+export class FluffyParameter extends S.Class<FluffyParameter>("FluffyParameter")({
239+ "comment": S.optional(FluffyComment),
240+ "flags": FluffyFlags,
267241 "id": S.Int,
268242 "kind": S.Int,
269243 "kindString": S.String,
270244 "name": S.String,
271- "signatures": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignature)))),
272- "sources": S.Array(S.suspend(() => Source)),
245+ "sources": S.optional(S.Array(Source)),
246+ "type": ElementType,
273247 }) {}
274248
275-export class PurpleParameter extends S.Class<PurpleParameter>("PurpleParameter")({
276- "comment": S.optional(S.NullOr(S.suspend(() => TentacledComment))),
277- "flags": S.suspend(() => GetSignatureFlags),
249+export class FluffyChild extends S.Class<FluffyChild>("FluffyChild")({
250+ "children": S.optional(S.Array(TentacledChild)),
251+ "comment": S.optional(StickyComment),
252+ "defaultValue": S.optional(S.String),
253+ "flags": StickyFlags,
254+ "getSignature": S.optional(S.suspend(() => GetSignature)),
255+ "groups": S.optional(S.Array(Group)),
278256 "id": S.Int,
257+ "implementationOf": S.optional(ExtendedBy),
258+ "inheritedFrom": S.optional(ExtendedBy),
279259 "kind": S.Int,
280- "kindString": ParameterKindString,
260+ "kindString": PurpleKindString,
281261 "name": S.String,
282- "type": StickyType,
262+ "overwrites": S.optional(ExtendedBy),
263+ "setSignature": S.optional(S.suspend(() => GetSignature)),
264+ "signatures": S.optional(S.Array(S.suspend(() => FluffySignature))),
265+ "sources": S.Array(Source),
266+ "type": S.optional(S.suspend(() => IndigoType)),
283267 }) {}
284268
285-export class IndecentChild extends S.Class<IndecentChild>("IndecentChild")({
286- "flags": S.suspend(() => FluffyFlags),
269+export class PurpleChild extends S.Class<PurpleChild>("PurpleChild")({
270+ "children": S.optional(S.Array(FluffyChild)),
271+ "comment": S.optional(StickyComment),
272+ "defaultValue": S.optional(S.String),
273+ "extendedBy": S.optional(S.Array(ExtendedBy)),
274+ "extendedTypes": S.optional(S.Array(ExtendedBy)),
275+ "flags": IndecentFlags,
276+ "groups": S.optional(S.Array(Group)),
287277 "id": S.Int,
278+ "implementedBy": S.optional(S.Array(ExtendedBy)),
279+ "implementedTypes": S.optional(S.Array(ExtendedBy)),
288280 "kind": S.Int,
289- "kindString": PurpleKindString,
281+ "kindString": FluffyKindString,
290282 "name": S.String,
291- "sources": S.Array(S.suspend(() => Source)),
292- "type": FriskyType,
283+ "signatures": S.optional(S.Array(S.suspend(() => StickySignature))),
284+ "sources": S.Array(Source),
285+ "type": S.optional(S.suspend(() => MagentaType)),
286+ "typeParameter": S.optional(S.Array(TypeParameter)),
293287 }) {}
294288
295-export class StickyDeclaration extends S.Class<StickyDeclaration>("StickyDeclaration")({
296- "children": S.optional(S.NullOr(S.Array(IndecentChild))),
297- "flags": S.suspend(() => GetSignatureFlags),
298- "groups": S.optional(S.NullOr(S.Array(S.suspend(() => Group)))),
289+export class TopLevelChild extends S.Class<TopLevelChild>("TopLevelChild")({
290+ "children": S.Array(PurpleChild),
291+ "comment": S.optional(S.suspend(() => IndecentComment)),
292+ "flags": PurpleFlags,
293+ "groups": S.Array(Group),
294+ "id": S.Int,
295+ "kind": S.Int,
296+ "kindString": TentacledKindString,
297+ "name": S.String,
298+ "originalName": S.String,
299+ "sources": S.Array(Source),
300+}) {}
301+
302+export class IndigoDeclaration extends S.Class<IndigoDeclaration>("IndigoDeclaration")({
303+ "children": S.optional(S.Array(S.suspend(() => GetSignature))),
304+ "flags": GetSignatureFlags,
305+ "groups": S.optional(S.Array(Group)),
299306 "id": S.Int,
300307 "kind": S.Int,
301308 "kindString": S.String,
302309 "name": S.String,
303- "signatures": S.Array(S.suspend(() => GetSignature)),
304- "sources": S.Array(S.suspend(() => Source)),
310+ "signatures": S.optional(S.Array(S.suspend(() => GetSignature))),
311+ "sources": S.Array(Source),
305312 }) {}
306313
307-export class TentacledComment extends S.Class<TentacledComment>("TentacledComment")({
308- "shortText": S.optional(S.NullOr(S.String)),
309- "text": S.optional(S.NullOr(S.String)),
314+export class FriskyType extends S.Class<FriskyType>("FriskyType")({
315+ "declaration": S.optional(IndigoDeclaration),
316+ "name": S.optional(Name),
317+ "type": TypeEnum,
310318 }) {}
311319
312-export class PurpleTypeArgument extends S.Class<PurpleTypeArgument>("PurpleTypeArgument")({
313- "operator": S.String,
314- "target": S.suspend(() => ElementType),
315- "type": S.String,
320+export class IndecentComment extends S.Class<IndecentComment>("IndecentComment")({
321+ "shortText": S.String,
322+ "tags": S.optional(S.Array(Tag)),
316323 }) {}
317324
318-export class TentacledDeclaration extends S.Class<TentacledDeclaration>("TentacledDeclaration")({
319- "children": S.optional(S.NullOr(S.Array(S.suspend(() => IndigoChild)))),
320- "flags": S.suspend(() => GetSignatureFlags),
321- "groups": S.optional(S.NullOr(S.Array(S.suspend(() => Group)))),
325+export class IndecentChild extends S.Class<IndecentChild>("IndecentChild")({
326+ "flags": FluffyFlags,
327+ "id": S.Int,
328+ "kind": S.Int,
329+ "kindString": PurpleKindString,
330+ "name": S.String,
331+ "sources": S.Array(Source),
332+ "type": FriskyType,
333+}) {}
334+
335+export class StickyDeclaration extends S.Class<StickyDeclaration>("StickyDeclaration")({
336+ "children": S.optional(S.Array(IndecentChild)),
337+ "flags": GetSignatureFlags,
338+ "groups": S.optional(S.Array(Group)),
322339 "id": S.Int,
323- "indexSignature": S.optional(S.NullOr(S.suspend(() => IndexSignatureElement))),
324340 "kind": S.Int,
325341 "kindString": S.String,
326342 "name": S.String,
327- "signatures": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignature)))),
328- "sources": S.Array(S.suspend(() => Source)),
343+ "signatures": S.Array(S.suspend(() => GetSignature)),
344+ "sources": S.Array(Source),
329345 }) {}
330346
331-export class HilariousType extends S.Class<HilariousType>("HilariousType")({
332- "declaration": S.suspend(() => GetSignature),
347+export class FluffyType extends S.Class<FluffyType>("FluffyType")({
348+ "elementType": S.optional(ElementType),
349+ "name": S.optional(Name),
333350 "type": TypeEnum,
351+ "typeArguments": S.optional(S.Array(ElementType)),
334352 }) {}
335353
336-export class IndexSignature extends S.Class<IndexSignature>("IndexSignature")({
337- "flags": S.suspend(() => GetSignatureFlags),
354+export class PurpleSignature extends S.Class<PurpleSignature>("PurpleSignature")({
355+ "comment": S.optional(PurpleComment),
356+ "flags": GetSignatureFlags,
338357 "id": S.Int,
339358 "kind": S.Int,
340- "kindString": S.String,
359+ "kindString": SignatureKindString,
341360 "name": S.String,
342361 "parameters": S.Array(S.suspend(() => GetSignature)),
343- "type": HilariousType,
362+ "type": S.suspend(() => TentacledType),
344363 }) {}
345364
346-export class FluffyParameter extends S.Class<FluffyParameter>("FluffyParameter")({
347- "comment": S.optional(S.NullOr(S.suspend(() => FluffyComment))),
348- "flags": S.suspend(() => FluffyFlags),
365+export class CunningType extends S.Class<CunningType>("CunningType")({
366+ "declaration": S.optional(S.suspend(() => PurpleDeclaration)),
367+ "id": S.optional(S.Int),
368+ "name": S.optional(Name),
369+ "type": TypeEnum,
370+ "typeArguments": S.optional(S.Array(ElementType)),
371+}) {}
372+
373+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
374+ "children": S.Array(TopLevelChild),
375+ "flags": GetSignatureFlags,
376+ "groups": S.Array(Group),
349377 "id": S.Int,
350378 "kind": S.Int,
351- "kindString": S.String,
352379 "name": S.String,
353- "sources": S.optional(S.NullOr(S.Array(S.suspend(() => Source)))),
354- "type": S.suspend(() => ElementType),
355380 }) {}
356381
357382 export class GetSignatureParameter extends S.Class<GetSignatureParameter>("GetSignatureParameter")({
358- "comment": S.optional(S.NullOr(TentacledComment)),
383+ "comment": S.optional(TentacledComment),
359384 "flags": TentacledFlags,
360385 "id": S.Int,
361386 "kind": S.Int,
@@ -364,42 +389,42 @@ export class GetSignatureParameter extends S.Class<GetSignatureParameter>("GetSi
364389 "type": FluffyType,
365390 }) {}
366391
367-export class Group extends S.Class<Group>("Group")({
368- "children": S.Array(S.Int),
369- "kind": S.Int,
370- "title": S.String,
371-}) {}
372-
373-export class GetSignatureComment extends S.Class<GetSignatureComment>("GetSignatureComment")({
374- "returns": S.optional(S.NullOr(S.String)),
375- "shortText": S.optional(S.NullOr(S.String)),
376- "text": S.optional(S.NullOr(S.String)),
392+export class HilariousType extends S.Class<HilariousType>("HilariousType")({
393+ "declaration": S.suspend(() => GetSignature),
394+ "type": TypeEnum,
377395 }) {}
378396
379-export class TentacledParameter extends S.Class<TentacledParameter>("TentacledParameter")({
380- "comment": S.optional(S.NullOr(TentacledComment)),
381- "defaultValue": S.optional(S.NullOr(S.String)),
382- "flags": TentacledFlags,
397+export class IndexSignature extends S.Class<IndexSignature>("IndexSignature")({
398+ "flags": GetSignatureFlags,
383399 "id": S.Int,
384400 "kind": S.Int,
385- "kindString": ParameterKindString,
401+ "kindString": S.String,
386402 "name": S.String,
387- "originalName": S.optional(S.NullOr(S.String)),
388- "type": AmbitiousType,
403+ "parameters": S.Array(S.suspend(() => GetSignature)),
404+ "type": HilariousType,
389405 }) {}
390406
391-export class Source extends S.Class<Source>("Source")({
392- "character": S.Int,
393- "fileName": FileName,
394- "line": S.Int,
407+export class MagentaType extends S.Class<MagentaType>("MagentaType")({
408+ "declaration": S.optional(StickyDeclaration),
409+ "elementType": S.optional(ElementType),
410+ "elements": S.optional(S.Array(ExtendedBy)),
411+ "id": S.optional(S.Int),
412+ "name": S.optional(S.String),
413+ "type": TypeEnum,
414+ "typeArguments": S.optional(S.Array(FluffyTypeArgument)),
415+ "types": S.optional(S.Array(ExtendedBy)),
416+ "value": S.optional(S.String),
395417 }) {}
396418
397-export class FluffyFlags extends S.Class<FluffyFlags>("FluffyFlags")({
398- "isOptional": S.optional(S.NullOr(S.Boolean)),
419+export class IndecentType extends S.Class<IndecentType>("IndecentType")({
420+ "declaration": S.optional(S.suspend(() => GetSignature)),
421+ "elements": S.optional(S.Array(ElementType)),
422+ "name": S.optional(Name),
423+ "type": TypeEnum,
399424 }) {}
400425
401426 export class StickyChild extends S.Class<StickyChild>("StickyChild")({
402- "comment": S.optional(S.NullOr(S.suspend(() => FluffyComment))),
427+ "comment": S.optional(FluffyComment),
403428 "flags": FluffyFlags,
404429 "id": S.Int,
405430 "kind": S.Int,
@@ -409,78 +434,79 @@ export class StickyChild extends S.Class<StickyChild>("StickyChild")({
409434 "type": IndecentType,
410435 }) {}
411436
412-export class FluffyDeclaration extends S.Class<FluffyDeclaration>("FluffyDeclaration")({
413- "children": S.optional(S.NullOr(S.Array(StickyChild))),
414- "flags": S.suspend(() => GetSignatureFlags),
415- "groups": S.optional(S.NullOr(S.Array(Group))),
437+export class GetSignatureType extends S.Class<GetSignatureType>("GetSignatureType")({
438+ "declaration": S.optional(S.suspend(() => GetSignature)),
439+ "elementType": S.optional(ElementType),
440+ "name": S.optional(Name),
441+ "type": TypeEnum,
442+}) {}
443+
444+export class IndexSignatureElement extends S.Class<IndexSignatureElement>("IndexSignatureElement")({
445+ "flags": GetSignatureFlags,
416446 "id": S.Int,
417- "indexSignature": S.optional(S.NullOr(IndexSignature)),
418447 "kind": S.Int,
419448 "kindString": S.String,
420449 "name": S.String,
421- "signatures": S.optional(S.NullOr(S.Array(S.suspend(() => TentacledSignature)))),
422- "sources": S.Array(Source),
423-}) {}
424-
425-export class FluffyComment extends S.Class<FluffyComment>("FluffyComment")({
426- "text": S.String,
427-}) {}
428-
429-export class ElementType extends S.Class<ElementType>("ElementType")({
430- "name": Name,
431- "type": TypeEnum,
450+ "parameters": S.optional(S.Array(S.suspend(() => GetSignature))),
451+ "type": S.suspend(() => PurpleType),
432452 }) {}
433453
434454 export class PurpleType extends S.Class<PurpleType>("PurpleType")({
435- "declaration": S.optional(S.NullOr(S.suspend(() => GetSignature))),
436- "name": S.optional(S.NullOr(Name)),
455+ "declaration": S.optional(S.suspend(() => GetSignature)),
456+ "name": S.optional(Name),
437457 "type": TypeEnum,
438458 }) {}
439459
440-export class GetSignatureType extends S.Class<GetSignatureType>("GetSignatureType")({
441- "declaration": S.optional(S.NullOr(S.suspend(() => GetSignature))),
442- "elementType": S.optional(S.NullOr(ElementType)),
443- "name": S.optional(S.NullOr(Name)),
444- "type": TypeEnum,
445-}) {}
446-
447-export class GetSignatureFlags extends S.Class<GetSignatureFlags>("GetSignatureFlags")({
448-}) {}
449-
450-export class PurpleSignature extends S.Class<PurpleSignature>("PurpleSignature")({
451- "comment": S.optional(S.NullOr(S.suspend(() => PurpleComment))),
460+export class TentacledSignature extends S.Class<TentacledSignature>("TentacledSignature")({
461+ "comment": S.optional(IndigoComment),
452462 "flags": GetSignatureFlags,
453463 "id": S.Int,
454464 "kind": S.Int,
455465 "kindString": SignatureKindString,
456466 "name": S.String,
457- "parameters": S.Array(S.suspend(() => GetSignature)),
458- "type": TentacledType,
467+ "parameters": S.optional(S.Array(FluffyParameter)),
468+ "type": ExtendedBy,
459469 }) {}
460470
461-export class StickySignature extends S.Class<StickySignature>("StickySignature")({
462- "comment": StickyComment,
463- "flags": IndigoFlags,
471+export class GetSignatureChild extends S.Class<GetSignatureChild>("GetSignatureChild")({
472+ "comment": S.optional(FluffyComment),
473+ "flags": FluffyFlags,
464474 "id": S.Int,
465475 "kind": S.Int,
466- "kindString": SignatureKindString,
476+ "kindString": PurpleKindString,
467477 "name": S.String,
468- "parameters": S.optional(S.NullOr(S.Array(TentacledParameter))),
469- "type": CunningType,
470- "typeParameter": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignature)))),
478+ "sources": S.Array(Source),
479+ "type": PurpleType,
471480 }) {}
472481
473-export class PurpleFlags extends S.Class<PurpleFlags>("PurpleFlags")({
474- "isExported": S.optional(S.NullOr(S.Boolean)),
482+export class GetSignature extends S.Class<GetSignature>("GetSignature")({
483+ "children": S.optional(S.Array(GetSignatureChild)),
484+ "comment": S.optional(GetSignatureComment),
485+ "defaultValue": S.optional(S.String),
486+ "flags": GetSignatureFlags,
487+ "groups": S.optional(S.Array(Group)),
488+ "id": S.Int,
489+ "kind": S.Int,
490+ "kindString": S.String,
491+ "name": S.String,
492+ "parameters": S.optional(S.Array(GetSignatureParameter)),
493+ "signatures": S.optional(S.Array(IndexSignatureElement)),
494+ "sources": S.optional(S.Array(Source)),
495+ "type": S.optional(GetSignatureType),
496+ "typeParameter": S.optional(S.Array(S.suspend(() => GetSignature))),
475497 }) {}
476498
477-export class PurpleComment extends S.Class<PurpleComment>("PurpleComment")({
478- "shortText": S.String,
499+export class TypeElement extends S.Class<TypeElement>("TypeElement")({
500+ "declaration": S.optional(GetSignature),
501+ "elementType": S.optional(ElementType),
502+ "name": S.optional(Name),
503+ "type": TypeEnum,
504+ "typeArguments": S.optional(S.Array(ElementType)),
479505 }) {}
480506
481507 export class IndigoChild extends S.Class<IndigoChild>("IndigoChild")({
482508 "comment": FluffyComment,
483- "defaultValue": S.optional(S.NullOr(S.String)),
509+ "defaultValue": S.optional(S.String),
484510 "flags": FluffyFlags,
485511 "id": S.Int,
486512 "kind": S.Int,
@@ -490,72 +516,54 @@ export class IndigoChild extends S.Class<IndigoChild>("IndigoChild")({
490516 "type": IndecentType,
491517 }) {}
492518
493-export class TentacledSignature extends S.Class<TentacledSignature>("TentacledSignature")({
494- "comment": S.optional(S.NullOr(IndigoComment)),
519+export class TentacledDeclaration extends S.Class<TentacledDeclaration>("TentacledDeclaration")({
520+ "children": S.optional(S.Array(IndigoChild)),
495521 "flags": GetSignatureFlags,
522+ "groups": S.optional(S.Array(Group)),
496523 "id": S.Int,
524+ "indexSignature": S.optional(IndexSignatureElement),
497525 "kind": S.Int,
498- "kindString": SignatureKindString,
526+ "kindString": S.String,
499527 "name": S.String,
500- "parameters": S.optional(S.NullOr(S.Array(FluffyParameter))),
501- "type": ExtendedBy,
528+ "signatures": S.optional(S.Array(GetSignature)),
529+ "sources": S.Array(Source),
502530 }) {}
503531
504-export class TentacledChild extends S.Class<TentacledChild>("TentacledChild")({
505- "comment": S.optional(S.NullOr(PurpleComment)),
506- "defaultValue": S.optional(S.NullOr(S.String)),
507- "flags": PurpleFlags,
508- "id": S.Int,
509- "kind": S.Int,
510- "kindString": PurpleKindString,
511- "name": S.String,
512- "signatures": S.optional(S.NullOr(S.Array(PurpleSignature))),
513- "sources": S.Array(Source),
514- "type": S.optional(S.NullOr(TypeElement)),
532+export class AmbitiousType extends S.Class<AmbitiousType>("AmbitiousType")({
533+ "declaration": S.optional(TentacledDeclaration),
534+ "elementType": S.optional(ElementType),
535+ "id": S.optional(S.Int),
536+ "name": S.optional(S.String),
537+ "type": TypeEnum,
538+ "typeArguments": S.optional(S.Array(ElementType)),
515539 }) {}
516540
517-export class FluffyChild extends S.Class<FluffyChild>("FluffyChild")({
518- "children": S.optional(S.NullOr(S.Array(TentacledChild))),
519- "comment": S.optional(S.NullOr(StickyComment)),
520- "defaultValue": S.optional(S.NullOr(S.String)),
521- "flags": StickyFlags,
522- "getSignature": S.optional(S.NullOr(S.suspend(() => GetSignature))),
523- "groups": S.optional(S.NullOr(S.Array(Group))),
541+export class TentacledParameter extends S.Class<TentacledParameter>("TentacledParameter")({
542+ "comment": S.optional(TentacledComment),
543+ "defaultValue": S.optional(S.String),
544+ "flags": TentacledFlags,
524545 "id": S.Int,
525- "implementationOf": S.optional(S.NullOr(ExtendedBy)),
526- "inheritedFrom": S.optional(S.NullOr(ExtendedBy)),
527546 "kind": S.Int,
528- "kindString": PurpleKindString,
547+ "kindString": ParameterKindString,
529548 "name": S.String,
530- "overwrites": S.optional(S.NullOr(ExtendedBy)),
531- "setSignature": S.optional(S.NullOr(S.suspend(() => GetSignature))),
532- "signatures": S.optional(S.NullOr(S.Array(S.suspend(() => FluffySignature)))),
533- "sources": S.Array(Source),
534- "type": S.optional(S.NullOr(IndigoType)),
549+ "originalName": S.optional(S.String),
550+ "type": AmbitiousType,
535551 }) {}
536552
537-export class PurpleChild extends S.Class<PurpleChild>("PurpleChild")({
538- "children": S.optional(S.NullOr(S.Array(FluffyChild))),
539- "comment": S.optional(S.NullOr(StickyComment)),
540- "defaultValue": S.optional(S.NullOr(S.String)),
541- "extendedBy": S.optional(S.NullOr(S.Array(ExtendedBy))),
542- "extendedTypes": S.optional(S.NullOr(S.Array(ExtendedBy))),
543- "flags": IndecentFlags,
544- "groups": S.optional(S.NullOr(S.Array(Group))),
553+export class StickySignature extends S.Class<StickySignature>("StickySignature")({
554+ "comment": StickyComment,
555+ "flags": IndigoFlags,
545556 "id": S.Int,
546- "implementedBy": S.optional(S.NullOr(S.Array(ExtendedBy))),
547- "implementedTypes": S.optional(S.NullOr(S.Array(ExtendedBy))),
548557 "kind": S.Int,
549- "kindString": FluffyKindString,
558+ "kindString": SignatureKindString,
550559 "name": S.String,
551- "signatures": S.optional(S.NullOr(S.Array(StickySignature))),
552- "sources": S.Array(Source),
553- "type": S.optional(S.NullOr(MagentaType)),
554- "typeParameter": S.optional(S.NullOr(S.Array(TypeParameter))),
560+ "parameters": S.optional(S.Array(TentacledParameter)),
561+ "type": CunningType,
562+ "typeParameter": S.optional(S.Array(GetSignature)),
555563 }) {}
556564
557565 export class PurpleDeclaration extends S.Class<PurpleDeclaration>("PurpleDeclaration")({
558- "children": S.Array(S.suspend(() => GetSignature)),
566+ "children": S.Array(GetSignature),
559567 "flags": GetSignatureFlags,
560568 "groups": S.Array(Group),
561569 "id": S.Int,
@@ -564,77 +572,69 @@ export class PurpleDeclaration extends S.Class<PurpleDeclaration>("PurpleDeclara
564572 "name": S.String,
565573 }) {}
566574
567-export class GetSignature extends S.Class<GetSignature>("GetSignature")({
568- "children": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignatureChild)))),
569- "comment": S.optional(S.NullOr(GetSignatureComment)),
570- "defaultValue": S.optional(S.NullOr(S.String)),
575+export class FluffyDeclaration extends S.Class<FluffyDeclaration>("FluffyDeclaration")({
576+ "children": S.optional(S.Array(StickyChild)),
571577 "flags": GetSignatureFlags,
572- "groups": S.optional(S.NullOr(S.Array(Group))),
578+ "groups": S.optional(S.Array(Group)),
573579 "id": S.Int,
580+ "indexSignature": S.optional(IndexSignature),
574581 "kind": S.Int,
575582 "kindString": S.String,
576583 "name": S.String,
577- "parameters": S.optional(S.NullOr(S.Array(GetSignatureParameter))),
578- "signatures": S.optional(S.NullOr(S.Array(S.suspend(() => IndexSignatureElement)))),
579- "sources": S.optional(S.NullOr(S.Array(Source))),
580- "type": S.optional(S.NullOr(GetSignatureType)),
581- "typeParameter": S.optional(S.NullOr(S.Array(S.suspend(() => GetSignature)))),
584+ "signatures": S.optional(S.Array(TentacledSignature)),
585+ "sources": S.Array(Source),
582586 }) {}
583587
584-export class TopLevelChild extends S.Class<TopLevelChild>("TopLevelChild")({
585- "children": S.Array(PurpleChild),
586- "comment": S.optional(S.NullOr(IndecentComment)),
587- "flags": PurpleFlags,
588- "groups": S.Array(Group),
589- "id": S.Int,
590- "kind": S.Int,
591- "kindString": TentacledKindString,
592- "name": S.String,
593- "originalName": S.String,
594- "sources": S.Array(Source),
588+export class IndigoType extends S.Class<IndigoType>("IndigoType")({
589+ "constraint": S.optional(ExtendedBy),
590+ "declaration": S.optional(FluffyDeclaration),
591+ "elementType": S.optional(ExtendedBy),
592+ "elements": S.optional(S.Array(ElementType)),
593+ "id": S.optional(S.Int),
594+ "name": S.optional(S.String),
595+ "type": TypeEnum,
596+ "typeArguments": S.optional(S.Array(PurpleTypeArgument)),
597+ "types": S.optional(S.Array(TypeElement)),
595598 }) {}
596599
597-export class IndexSignatureElement extends S.Class<IndexSignatureElement>("IndexSignatureElement")({
598- "flags": GetSignatureFlags,
599- "id": S.Int,
600- "kind": S.Int,
601- "kindString": S.String,
602- "name": S.String,
603- "parameters": S.optional(S.NullOr(S.Array(GetSignature))),
604- "type": PurpleType,
600+export class StickyType extends S.Class<StickyType>("StickyType")({
601+ "constraint": S.optional(ExtendedBy),
602+ "declaration": S.optional(GetSignature),
603+ "elementType": S.optional(ElementType),
604+ "elements": S.optional(S.Array(ExtendedBy)),
605+ "id": S.optional(S.Int),
606+ "name": S.optional(S.String),
607+ "type": TypeEnum,
608+ "typeArguments": S.optional(S.Array(ElementType)),
605609 }) {}
606610
607-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
608- "children": S.Array(TopLevelChild),
611+export class PurpleParameter extends S.Class<PurpleParameter>("PurpleParameter")({
612+ "comment": S.optional(TentacledComment),
609613 "flags": GetSignatureFlags,
610- "groups": S.Array(Group),
611614 "id": S.Int,
612615 "kind": S.Int,
616+ "kindString": ParameterKindString,
613617 "name": S.String,
618+ "type": StickyType,
614619 }) {}
615620
616-export class GetSignatureChild extends S.Class<GetSignatureChild>("GetSignatureChild")({
617- "comment": S.optional(S.NullOr(FluffyComment)),
618- "flags": FluffyFlags,
619- "id": S.Int,
620- "kind": S.Int,
621- "kindString": PurpleKindString,
622- "name": S.String,
623- "sources": S.Array(Source),
624- "type": PurpleType,
621+export class TentacledType extends S.Class<TentacledType>("TentacledType")({
622+ "declaration": S.optional(PurpleDeclaration),
623+ "name": S.optional(Name),
624+ "type": TypeEnum,
625625 }) {}
626626
627627 export class FluffySignature extends S.Class<FluffySignature>("FluffySignature")({
628- "comment": S.optional(S.NullOr(StickyComment)),
628+ "comment": S.optional(StickyComment),
629629 "flags": IndigoFlags,
630630 "id": S.Int,
631- "implementationOf": S.optional(S.NullOr(ExtendedBy)),
632- "inheritedFrom": S.optional(S.NullOr(ExtendedBy)),
631+ "implementationOf": S.optional(ExtendedBy),
632+ "inheritedFrom": S.optional(ExtendedBy),
633633 "kind": S.Int,
634634 "kindString": SignatureKindString,
635635 "name": S.String,
636- "overwrites": S.optional(S.NullOr(ExtendedBy)),
637- "parameters": S.optional(S.NullOr(S.Array(PurpleParameter))),
636+ "overwrites": S.optional(ExtendedBy),
637+ "parameters": S.optional(S.Array(PurpleParameter)),
638638 "type": ExtendedBy,
639- "typeParameter": S.optional(S.NullOr(S.Array(GetSignature))),
639+ "typeParameter": S.optional(S.Array(GetSignature)),
640640 }) {}
Test case

test/inputs/json/priority/combinations1.json

2 generated files · +24 −24
Mtypescript-effect-schemadefault / TopLevel.ts+12 −12
@@ -14,14 +14,14 @@ export class HemocoeleClass extends S.Class<HemocoeleClass>("HemocoeleClass")({
1414 "amelification": S.optional(S.Null),
1515 "autobiographic": S.optional(S.Null),
1616 "berat": S.optional(S.Null),
17- "catharticalness": S.optional(S.NullOr(S.Number)),
18- "Chirotherium": S.optional(S.NullOr(S.Int)),
19- "disdiapason": S.optional(S.NullOr(S.String)),
17+ "catharticalness": S.optional(S.Number),
18+ "Chirotherium": S.optional(S.Int),
19+ "disdiapason": S.optional(S.String),
2020 "disproportionably": S.optional(S.Null),
2121 "erythrite": S.optional(S.Null),
2222 "graphic": S.optional(S.Null),
2323 "hepatological": S.optional(S.Null),
24- "homocerc": S.optional(S.NullOr(S.Boolean)),
24+ "homocerc": S.optional(S.Boolean),
2525 "incommensurably": S.optional(S.Null),
2626 "misaffirm": S.optional(S.Null),
2727 "nonbookish": S.optional(S.Null),
@@ -201,11 +201,11 @@ export class CredulityClass extends S.Class<CredulityClass>("CredulityClass")({
201201 export class CoadjustClass extends S.Class<CoadjustClass>("CoadjustClass")({
202202 "amidosulphonal": S.optional(S.Null),
203203 "Benny": S.optional(S.Null),
204- "catharticalness": S.optional(S.NullOr(S.Number)),
205- "Chirotherium": S.optional(S.NullOr(S.Int)),
206- "disdiapason": S.optional(S.NullOr(S.String)),
204+ "catharticalness": S.optional(S.Number),
205+ "Chirotherium": S.optional(S.Int),
206+ "disdiapason": S.optional(S.String),
207207 "ensnare": S.optional(S.Null),
208- "homocerc": S.optional(S.NullOr(S.Boolean)),
208+ "homocerc": S.optional(S.Boolean),
209209 "hybridizer": S.optional(S.Null),
210210 "leastwise": S.optional(S.Null),
211211 "lof": S.optional(S.Null),
@@ -238,13 +238,13 @@ export class ChemotherapeuticClass extends S.Class<ChemotherapeuticClass>("Chemo
238238 "angioneurotic": S.optional(S.Null),
239239 "availment": S.optional(S.Null),
240240 "bladelet": S.optional(S.Null),
241- "catharticalness": S.optional(S.NullOr(S.Number)),
241+ "catharticalness": S.optional(S.Number),
242242 "caulis": S.optional(S.Null),
243243 "chalcus": S.optional(S.Null),
244- "Chirotherium": S.optional(S.NullOr(S.Int)),
245- "disdiapason": S.optional(S.NullOr(S.String)),
244+ "Chirotherium": S.optional(S.Int),
245+ "disdiapason": S.optional(S.String),
246246 "enteradenological": S.optional(S.Null),
247- "homocerc": S.optional(S.NullOr(S.Boolean)),
247+ "homocerc": S.optional(S.Boolean),
248248 "imporosity": S.optional(S.Null),
249249 "insistently": S.optional(S.Null),
250250 "intraparietal": S.optional(S.Null),
Mtypescript-effect-schemajust-schema-true--8c4ca457bcba / TopLevel.ts+12 −12
@@ -14,14 +14,14 @@ export class HemocoeleClass extends S.Class<HemocoeleClass>("HemocoeleClass")({
1414 "amelification": S.optional(S.Null),
1515 "autobiographic": S.optional(S.Null),
1616 "berat": S.optional(S.Null),
17- "catharticalness": S.optional(S.NullOr(S.Number)),
18- "Chirotherium": S.optional(S.NullOr(S.Int)),
19- "disdiapason": S.optional(S.NullOr(S.String)),
17+ "catharticalness": S.optional(S.Number),
18+ "Chirotherium": S.optional(S.Int),
19+ "disdiapason": S.optional(S.String),
2020 "disproportionably": S.optional(S.Null),
2121 "erythrite": S.optional(S.Null),
2222 "graphic": S.optional(S.Null),
2323 "hepatological": S.optional(S.Null),
24- "homocerc": S.optional(S.NullOr(S.Boolean)),
24+ "homocerc": S.optional(S.Boolean),
2525 "incommensurably": S.optional(S.Null),
2626 "misaffirm": S.optional(S.Null),
2727 "nonbookish": S.optional(S.Null),
@@ -201,11 +201,11 @@ export class CredulityClass extends S.Class<CredulityClass>("CredulityClass")({
201201 export class CoadjustClass extends S.Class<CoadjustClass>("CoadjustClass")({
202202 "amidosulphonal": S.optional(S.Null),
203203 "Benny": S.optional(S.Null),
204- "catharticalness": S.optional(S.NullOr(S.Number)),
205- "Chirotherium": S.optional(S.NullOr(S.Int)),
206- "disdiapason": S.optional(S.NullOr(S.String)),
204+ "catharticalness": S.optional(S.Number),
205+ "Chirotherium": S.optional(S.Int),
206+ "disdiapason": S.optional(S.String),
207207 "ensnare": S.optional(S.Null),
208- "homocerc": S.optional(S.NullOr(S.Boolean)),
208+ "homocerc": S.optional(S.Boolean),
209209 "hybridizer": S.optional(S.Null),
210210 "leastwise": S.optional(S.Null),
211211 "lof": S.optional(S.Null),
@@ -238,13 +238,13 @@ export class ChemotherapeuticClass extends S.Class<ChemotherapeuticClass>("Chemo
238238 "angioneurotic": S.optional(S.Null),
239239 "availment": S.optional(S.Null),
240240 "bladelet": S.optional(S.Null),
241- "catharticalness": S.optional(S.NullOr(S.Number)),
241+ "catharticalness": S.optional(S.Number),
242242 "caulis": S.optional(S.Null),
243243 "chalcus": S.optional(S.Null),
244- "Chirotherium": S.optional(S.NullOr(S.Int)),
245- "disdiapason": S.optional(S.NullOr(S.String)),
244+ "Chirotherium": S.optional(S.Int),
245+ "disdiapason": S.optional(S.String),
246246 "enteradenological": S.optional(S.Null),
247- "homocerc": S.optional(S.NullOr(S.Boolean)),
247+ "homocerc": S.optional(S.Boolean),
248248 "imporosity": S.optional(S.Null),
249249 "insistently": S.optional(S.Null),
250250 "intraparietal": S.optional(S.Null),
Test case

test/inputs/json/priority/combinations2.json

2 generated files · +144 −144
Mtypescript-effect-schemadefault / TopLevel.ts+72 −72
@@ -25,31 +25,31 @@ export class OskarClass extends S.Class<OskarClass>("OskarClass")({
2525 }) {}
2626
2727 export class LaviniaClass extends S.Class<LaviniaClass>("LaviniaClass")({
28- "agitable": S.optional(S.NullOr(S.Int)),
29- "asininity": S.optional(S.NullOr(S.Int)),
30- "benefiter": S.optional(S.NullOr(S.Int)),
31- "bronzelike": S.optional(S.NullOr(S.Int)),
32- "catharticalness": S.optional(S.NullOr(S.Number)),
33- "Chirotherium": S.optional(S.NullOr(S.Int)),
34- "cholesteatomatous": S.optional(S.NullOr(S.Int)),
35- "deprivement": S.optional(S.NullOr(S.Int)),
36- "disdiapason": S.optional(S.NullOr(S.String)),
37- "flippantness": S.optional(S.NullOr(S.Int)),
38- "fogproof": S.optional(S.NullOr(S.Int)),
39- "homocerc": S.optional(S.NullOr(S.Boolean)),
40- "merrymeeting": S.optional(S.NullOr(S.Int)),
28+ "agitable": S.optional(S.Int),
29+ "asininity": S.optional(S.Int),
30+ "benefiter": S.optional(S.Int),
31+ "bronzelike": S.optional(S.Int),
32+ "catharticalness": S.optional(S.Number),
33+ "Chirotherium": S.optional(S.Int),
34+ "cholesteatomatous": S.optional(S.Int),
35+ "deprivement": S.optional(S.Int),
36+ "disdiapason": S.optional(S.String),
37+ "flippantness": S.optional(S.Int),
38+ "fogproof": S.optional(S.Int),
39+ "homocerc": S.optional(S.Boolean),
40+ "merrymeeting": S.optional(S.Int),
4141 "nonbookish": S.optional(S.Null),
42- "overcareful": S.optional(S.NullOr(S.Int)),
43- "panaris": S.optional(S.NullOr(S.Int)),
44- "preacceptance": S.optional(S.NullOr(S.Int)),
45- "quinoxaline": S.optional(S.NullOr(S.Int)),
46- "sig": S.optional(S.NullOr(S.Int)),
47- "superconfusion": S.optional(S.NullOr(S.Int)),
48- "Tacana": S.optional(S.NullOr(S.Int)),
49- "tillotter": S.optional(S.NullOr(S.Int)),
50- "tranquillize": S.optional(S.NullOr(S.Int)),
51- "unquestionable": S.optional(S.NullOr(S.Int)),
52- "uproute": S.optional(S.NullOr(S.Int)),
42+ "overcareful": S.optional(S.Int),
43+ "panaris": S.optional(S.Int),
44+ "preacceptance": S.optional(S.Int),
45+ "quinoxaline": S.optional(S.Int),
46+ "sig": S.optional(S.Int),
47+ "superconfusion": S.optional(S.Int),
48+ "Tacana": S.optional(S.Int),
49+ "tillotter": S.optional(S.Int),
50+ "tranquillize": S.optional(S.Int),
51+ "unquestionable": S.optional(S.Int),
52+ "uproute": S.optional(S.Int),
5353 }) {}
5454
5555 export class GryphosaurusClass extends S.Class<GryphosaurusClass>("GryphosaurusClass")({
@@ -76,31 +76,31 @@ export class GryphosaurusClass extends S.Class<GryphosaurusClass>("GryphosaurusC
7676 }) {}
7777
7878 export class DiscordiaClass extends S.Class<DiscordiaClass>("DiscordiaClass")({
79- "Altaic": S.optional(S.NullOr(S.Int)),
80- "amoristic": S.optional(S.NullOr(S.Int)),
81- "blennophthalmia": S.optional(S.NullOr(S.Int)),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
83- "Chirotherium": S.optional(S.NullOr(S.Int)),
84- "disciplinability": S.optional(S.NullOr(S.Int)),
85- "disdiapason": S.optional(S.NullOr(S.String)),
86- "goofer": S.optional(S.NullOr(S.Int)),
87- "homocerc": S.optional(S.NullOr(S.Boolean)),
88- "laryngograph": S.optional(S.NullOr(S.Int)),
89- "leucitis": S.optional(S.NullOr(S.Int)),
90- "lymphocyst": S.optional(S.NullOr(S.Int)),
91- "microcosmology": S.optional(S.NullOr(S.Int)),
92- "nauseation": S.optional(S.NullOr(S.Int)),
79+ "Altaic": S.optional(S.Int),
80+ "amoristic": S.optional(S.Int),
81+ "blennophthalmia": S.optional(S.Int),
82+ "catharticalness": S.optional(S.Number),
83+ "Chirotherium": S.optional(S.Int),
84+ "disciplinability": S.optional(S.Int),
85+ "disdiapason": S.optional(S.String),
86+ "goofer": S.optional(S.Int),
87+ "homocerc": S.optional(S.Boolean),
88+ "laryngograph": S.optional(S.Int),
89+ "leucitis": S.optional(S.Int),
90+ "lymphocyst": S.optional(S.Int),
91+ "microcosmology": S.optional(S.Int),
92+ "nauseation": S.optional(S.Int),
9393 "nonbookish": S.optional(S.Null),
94- "Patarin": S.optional(S.NullOr(S.Int)),
95- "preliberal": S.optional(S.NullOr(S.Int)),
96- "prettifier": S.optional(S.NullOr(S.Int)),
97- "rangework": S.optional(S.NullOr(S.Int)),
98- "redient": S.optional(S.NullOr(S.Int)),
99- "subfusiform": S.optional(S.NullOr(S.Int)),
100- "suicidical": S.optional(S.NullOr(S.Int)),
101- "swow": S.optional(S.NullOr(S.Int)),
102- "wastrel": S.optional(S.NullOr(S.Int)),
103- "wingle": S.optional(S.NullOr(S.Int)),
94+ "Patarin": S.optional(S.Int),
95+ "preliberal": S.optional(S.Int),
96+ "prettifier": S.optional(S.Int),
97+ "rangework": S.optional(S.Int),
98+ "redient": S.optional(S.Int),
99+ "subfusiform": S.optional(S.Int),
100+ "suicidical": S.optional(S.Int),
101+ "swow": S.optional(S.Int),
102+ "wastrel": S.optional(S.Int),
103+ "wingle": S.optional(S.Int),
104104 }) {}
105105
106106 export class ChytridiaceaeClass extends S.Class<ChytridiaceaeClass>("ChytridiaceaeClass")({
@@ -173,31 +173,31 @@ export class AnkeeClass extends S.Class<AnkeeClass>("AnkeeClass")({
173173 }) {}
174174
175175 export class Amphithyron extends S.Class<Amphithyron>("Amphithyron")({
176- "akroasis": S.optional(S.NullOr(S.Int)),
177- "antiphonical": S.optional(S.NullOr(S.Int)),
178- "basebred": S.optional(S.NullOr(S.Int)),
179- "catharticalness": S.optional(S.NullOr(S.Number)),
180- "Chirotherium": S.optional(S.NullOr(S.Int)),
181- "conductometric": S.optional(S.NullOr(S.Int)),
182- "disdiapason": S.optional(S.NullOr(S.String)),
183- "ensilation": S.optional(S.NullOr(S.Int)),
184- "eyebolt": S.optional(S.NullOr(S.Int)),
185- "fistulated": S.optional(S.NullOr(S.Int)),
186- "heteropod": S.optional(S.NullOr(S.Int)),
187- "homocerc": S.optional(S.NullOr(S.Boolean)),
188- "Juniperus": S.optional(S.NullOr(S.Int)),
189- "labyrinthically": S.optional(S.NullOr(S.Int)),
190- "martyrization": S.optional(S.NullOr(S.Int)),
191- "mispolicy": S.optional(S.NullOr(S.Int)),
192- "multipara": S.optional(S.NullOr(S.Int)),
193- "Nazirite": S.optional(S.NullOr(S.Int)),
176+ "akroasis": S.optional(S.Int),
177+ "antiphonical": S.optional(S.Int),
178+ "basebred": S.optional(S.Int),
179+ "catharticalness": S.optional(S.Number),
180+ "Chirotherium": S.optional(S.Int),
181+ "conductometric": S.optional(S.Int),
182+ "disdiapason": S.optional(S.String),
183+ "ensilation": S.optional(S.Int),
184+ "eyebolt": S.optional(S.Int),
185+ "fistulated": S.optional(S.Int),
186+ "heteropod": S.optional(S.Int),
187+ "homocerc": S.optional(S.Boolean),
188+ "Juniperus": S.optional(S.Int),
189+ "labyrinthically": S.optional(S.Int),
190+ "martyrization": S.optional(S.Int),
191+ "mispolicy": S.optional(S.Int),
192+ "multipara": S.optional(S.Int),
193+ "Nazirite": S.optional(S.Int),
194194 "nonbookish": S.optional(S.Null),
195- "possessorial": S.optional(S.NullOr(S.Int)),
196- "shamed": S.optional(S.NullOr(S.Int)),
197- "shelfworn": S.optional(S.NullOr(S.Int)),
198- "stagnum": S.optional(S.NullOr(S.Int)),
199- "Those": S.optional(S.NullOr(S.Int)),
200- "undecimal": S.optional(S.NullOr(S.Int)),
195+ "possessorial": S.optional(S.Int),
196+ "shamed": S.optional(S.Int),
197+ "shelfworn": S.optional(S.Int),
198+ "stagnum": S.optional(S.Int),
199+ "Those": S.optional(S.Int),
200+ "undecimal": S.optional(S.Int),
201201 }) {}
202202
203203 export class Rebecca extends S.Class<Rebecca>("Rebecca")({
Mtypescript-effect-schemajust-schema-true--8c4ca457bcba / TopLevel.ts+72 −72
@@ -25,31 +25,31 @@ export class OskarClass extends S.Class<OskarClass>("OskarClass")({
2525 }) {}
2626
2727 export class LaviniaClass extends S.Class<LaviniaClass>("LaviniaClass")({
28- "agitable": S.optional(S.NullOr(S.Int)),
29- "asininity": S.optional(S.NullOr(S.Int)),
30- "benefiter": S.optional(S.NullOr(S.Int)),
31- "bronzelike": S.optional(S.NullOr(S.Int)),
32- "catharticalness": S.optional(S.NullOr(S.Number)),
33- "Chirotherium": S.optional(S.NullOr(S.Int)),
34- "cholesteatomatous": S.optional(S.NullOr(S.Int)),
35- "deprivement": S.optional(S.NullOr(S.Int)),
36- "disdiapason": S.optional(S.NullOr(S.String)),
37- "flippantness": S.optional(S.NullOr(S.Int)),
38- "fogproof": S.optional(S.NullOr(S.Int)),
39- "homocerc": S.optional(S.NullOr(S.Boolean)),
40- "merrymeeting": S.optional(S.NullOr(S.Int)),
28+ "agitable": S.optional(S.Int),
29+ "asininity": S.optional(S.Int),
30+ "benefiter": S.optional(S.Int),
31+ "bronzelike": S.optional(S.Int),
32+ "catharticalness": S.optional(S.Number),
33+ "Chirotherium": S.optional(S.Int),
34+ "cholesteatomatous": S.optional(S.Int),
35+ "deprivement": S.optional(S.Int),
36+ "disdiapason": S.optional(S.String),
37+ "flippantness": S.optional(S.Int),
38+ "fogproof": S.optional(S.Int),
39+ "homocerc": S.optional(S.Boolean),
40+ "merrymeeting": S.optional(S.Int),
4141 "nonbookish": S.optional(S.Null),
42- "overcareful": S.optional(S.NullOr(S.Int)),
43- "panaris": S.optional(S.NullOr(S.Int)),
44- "preacceptance": S.optional(S.NullOr(S.Int)),
45- "quinoxaline": S.optional(S.NullOr(S.Int)),
46- "sig": S.optional(S.NullOr(S.Int)),
47- "superconfusion": S.optional(S.NullOr(S.Int)),
48- "Tacana": S.optional(S.NullOr(S.Int)),
49- "tillotter": S.optional(S.NullOr(S.Int)),
50- "tranquillize": S.optional(S.NullOr(S.Int)),
51- "unquestionable": S.optional(S.NullOr(S.Int)),
52- "uproute": S.optional(S.NullOr(S.Int)),
42+ "overcareful": S.optional(S.Int),
43+ "panaris": S.optional(S.Int),
44+ "preacceptance": S.optional(S.Int),
45+ "quinoxaline": S.optional(S.Int),
46+ "sig": S.optional(S.Int),
47+ "superconfusion": S.optional(S.Int),
48+ "Tacana": S.optional(S.Int),
49+ "tillotter": S.optional(S.Int),
50+ "tranquillize": S.optional(S.Int),
51+ "unquestionable": S.optional(S.Int),
52+ "uproute": S.optional(S.Int),
5353 }) {}
5454
5555 export class GryphosaurusClass extends S.Class<GryphosaurusClass>("GryphosaurusClass")({
@@ -76,31 +76,31 @@ export class GryphosaurusClass extends S.Class<GryphosaurusClass>("GryphosaurusC
7676 }) {}
7777
7878 export class DiscordiaClass extends S.Class<DiscordiaClass>("DiscordiaClass")({
79- "Altaic": S.optional(S.NullOr(S.Int)),
80- "amoristic": S.optional(S.NullOr(S.Int)),
81- "blennophthalmia": S.optional(S.NullOr(S.Int)),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
83- "Chirotherium": S.optional(S.NullOr(S.Int)),
84- "disciplinability": S.optional(S.NullOr(S.Int)),
85- "disdiapason": S.optional(S.NullOr(S.String)),
86- "goofer": S.optional(S.NullOr(S.Int)),
87- "homocerc": S.optional(S.NullOr(S.Boolean)),
88- "laryngograph": S.optional(S.NullOr(S.Int)),
89- "leucitis": S.optional(S.NullOr(S.Int)),
90- "lymphocyst": S.optional(S.NullOr(S.Int)),
91- "microcosmology": S.optional(S.NullOr(S.Int)),
92- "nauseation": S.optional(S.NullOr(S.Int)),
79+ "Altaic": S.optional(S.Int),
80+ "amoristic": S.optional(S.Int),
81+ "blennophthalmia": S.optional(S.Int),
82+ "catharticalness": S.optional(S.Number),
83+ "Chirotherium": S.optional(S.Int),
84+ "disciplinability": S.optional(S.Int),
85+ "disdiapason": S.optional(S.String),
86+ "goofer": S.optional(S.Int),
87+ "homocerc": S.optional(S.Boolean),
88+ "laryngograph": S.optional(S.Int),
89+ "leucitis": S.optional(S.Int),
90+ "lymphocyst": S.optional(S.Int),
91+ "microcosmology": S.optional(S.Int),
92+ "nauseation": S.optional(S.Int),
9393 "nonbookish": S.optional(S.Null),
94- "Patarin": S.optional(S.NullOr(S.Int)),
95- "preliberal": S.optional(S.NullOr(S.Int)),
96- "prettifier": S.optional(S.NullOr(S.Int)),
97- "rangework": S.optional(S.NullOr(S.Int)),
98- "redient": S.optional(S.NullOr(S.Int)),
99- "subfusiform": S.optional(S.NullOr(S.Int)),
100- "suicidical": S.optional(S.NullOr(S.Int)),
101- "swow": S.optional(S.NullOr(S.Int)),
102- "wastrel": S.optional(S.NullOr(S.Int)),
103- "wingle": S.optional(S.NullOr(S.Int)),
94+ "Patarin": S.optional(S.Int),
95+ "preliberal": S.optional(S.Int),
96+ "prettifier": S.optional(S.Int),
97+ "rangework": S.optional(S.Int),
98+ "redient": S.optional(S.Int),
99+ "subfusiform": S.optional(S.Int),
100+ "suicidical": S.optional(S.Int),
101+ "swow": S.optional(S.Int),
102+ "wastrel": S.optional(S.Int),
103+ "wingle": S.optional(S.Int),
104104 }) {}
105105
106106 export class ChytridiaceaeClass extends S.Class<ChytridiaceaeClass>("ChytridiaceaeClass")({
@@ -173,31 +173,31 @@ export class AnkeeClass extends S.Class<AnkeeClass>("AnkeeClass")({
173173 }) {}
174174
175175 export class Amphithyron extends S.Class<Amphithyron>("Amphithyron")({
176- "akroasis": S.optional(S.NullOr(S.Int)),
177- "antiphonical": S.optional(S.NullOr(S.Int)),
178- "basebred": S.optional(S.NullOr(S.Int)),
179- "catharticalness": S.optional(S.NullOr(S.Number)),
180- "Chirotherium": S.optional(S.NullOr(S.Int)),
181- "conductometric": S.optional(S.NullOr(S.Int)),
182- "disdiapason": S.optional(S.NullOr(S.String)),
183- "ensilation": S.optional(S.NullOr(S.Int)),
184- "eyebolt": S.optional(S.NullOr(S.Int)),
185- "fistulated": S.optional(S.NullOr(S.Int)),
186- "heteropod": S.optional(S.NullOr(S.Int)),
187- "homocerc": S.optional(S.NullOr(S.Boolean)),
188- "Juniperus": S.optional(S.NullOr(S.Int)),
189- "labyrinthically": S.optional(S.NullOr(S.Int)),
190- "martyrization": S.optional(S.NullOr(S.Int)),
191- "mispolicy": S.optional(S.NullOr(S.Int)),
192- "multipara": S.optional(S.NullOr(S.Int)),
193- "Nazirite": S.optional(S.NullOr(S.Int)),
176+ "akroasis": S.optional(S.Int),
177+ "antiphonical": S.optional(S.Int),
178+ "basebred": S.optional(S.Int),
179+ "catharticalness": S.optional(S.Number),
180+ "Chirotherium": S.optional(S.Int),
181+ "conductometric": S.optional(S.Int),
182+ "disdiapason": S.optional(S.String),
183+ "ensilation": S.optional(S.Int),
184+ "eyebolt": S.optional(S.Int),
185+ "fistulated": S.optional(S.Int),
186+ "heteropod": S.optional(S.Int),
187+ "homocerc": S.optional(S.Boolean),
188+ "Juniperus": S.optional(S.Int),
189+ "labyrinthically": S.optional(S.Int),
190+ "martyrization": S.optional(S.Int),
191+ "mispolicy": S.optional(S.Int),
192+ "multipara": S.optional(S.Int),
193+ "Nazirite": S.optional(S.Int),
194194 "nonbookish": S.optional(S.Null),
195- "possessorial": S.optional(S.NullOr(S.Int)),
196- "shamed": S.optional(S.NullOr(S.Int)),
197- "shelfworn": S.optional(S.NullOr(S.Int)),
198- "stagnum": S.optional(S.NullOr(S.Int)),
199- "Those": S.optional(S.NullOr(S.Int)),
200- "undecimal": S.optional(S.NullOr(S.Int)),
195+ "possessorial": S.optional(S.Int),
196+ "shamed": S.optional(S.Int),
197+ "shelfworn": S.optional(S.Int),
198+ "stagnum": S.optional(S.Int),
199+ "Those": S.optional(S.Int),
200+ "undecimal": S.optional(S.Int),
201201 }) {}
202202
203203 export class Rebecca extends S.Class<Rebecca>("Rebecca")({
Test case

test/inputs/json/priority/combinations3.json

2 generated files · +160 −160
Mtypescript-effect-schemadefault / TopLevel.ts+80 −80
@@ -49,18 +49,18 @@ export class PotwhiskyClass extends S.Class<PotwhiskyClass>("PotwhiskyClass")({
4949
5050 export class Pneumocele extends S.Class<Pneumocele>("Pneumocele")({
5151 "Carbonarism": S.optional(S.Null),
52- "catharticalness": S.optional(S.NullOr(S.Number)),
53- "Chirotherium": S.optional(S.NullOr(S.Int)),
52+ "catharticalness": S.optional(S.Number),
53+ "Chirotherium": S.optional(S.Int),
5454 "cineolic": S.optional(S.Null),
5555 "cobbly": S.optional(S.Null),
5656 "conchyliferous": S.optional(S.Null),
5757 "congregation": S.optional(S.Null),
58- "disdiapason": S.optional(S.NullOr(S.String)),
58+ "disdiapason": S.optional(S.String),
5959 "enterotomy": S.optional(S.Null),
6060 "entophytal": S.optional(S.Null),
6161 "fewtrils": S.optional(S.Null),
6262 "herem": S.optional(S.Null),
63- "homocerc": S.optional(S.NullOr(S.Boolean)),
63+ "homocerc": S.optional(S.Boolean),
6464 "Koniga": S.optional(S.Null),
6565 "meticulosity": S.optional(S.Null),
6666 "Micky": S.optional(S.Null),
@@ -76,31 +76,31 @@ export class Pneumocele extends S.Class<Pneumocele>("Pneumocele")({
7676 }) {}
7777
7878 export class PiaculumClass extends S.Class<PiaculumClass>("PiaculumClass")({
79- "alada": S.optional(S.NullOr(S.Int)),
80- "amphistomous": S.optional(S.NullOr(S.Int)),
81- "boysenberry": S.optional(S.NullOr(S.Int)),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
83- "Chirotherium": S.optional(S.NullOr(S.Int)),
84- "decardinalize": S.optional(S.NullOr(S.Int)),
85- "discouragement": S.optional(S.NullOr(S.Int)),
86- "disdiapason": S.optional(S.NullOr(S.String)),
87- "doitrified": S.optional(S.NullOr(S.Int)),
88- "hexaspermous": S.optional(S.NullOr(S.Int)),
89- "homocerc": S.optional(S.NullOr(S.Boolean)),
90- "insinking": S.optional(S.NullOr(S.Int)),
91- "loathfulness": S.optional(S.NullOr(S.Int)),
92- "miasmatical": S.optional(S.NullOr(S.Int)),
93- "neurofibril": S.optional(S.NullOr(S.Int)),
79+ "alada": S.optional(S.Int),
80+ "amphistomous": S.optional(S.Int),
81+ "boysenberry": S.optional(S.Int),
82+ "catharticalness": S.optional(S.Number),
83+ "Chirotherium": S.optional(S.Int),
84+ "decardinalize": S.optional(S.Int),
85+ "discouragement": S.optional(S.Int),
86+ "disdiapason": S.optional(S.String),
87+ "doitrified": S.optional(S.Int),
88+ "hexaspermous": S.optional(S.Int),
89+ "homocerc": S.optional(S.Boolean),
90+ "insinking": S.optional(S.Int),
91+ "loathfulness": S.optional(S.Int),
92+ "miasmatical": S.optional(S.Int),
93+ "neurofibril": S.optional(S.Int),
9494 "nonbookish": S.optional(S.Null),
95- "phonendoscope": S.optional(S.NullOr(S.Int)),
96- "pilferment": S.optional(S.NullOr(S.Int)),
97- "predismissory": S.optional(S.NullOr(S.Int)),
98- "preinscription": S.optional(S.NullOr(S.Int)),
99- "quotative": S.optional(S.NullOr(S.Int)),
100- "sienna": S.optional(S.NullOr(S.Int)),
101- "thorax": S.optional(S.NullOr(S.Int)),
102- "yachting": S.optional(S.NullOr(S.Int)),
103- "Zipper": S.optional(S.NullOr(S.Int)),
95+ "phonendoscope": S.optional(S.Int),
96+ "pilferment": S.optional(S.Int),
97+ "predismissory": S.optional(S.Int),
98+ "preinscription": S.optional(S.Int),
99+ "quotative": S.optional(S.Int),
100+ "sienna": S.optional(S.Int),
101+ "thorax": S.optional(S.Int),
102+ "yachting": S.optional(S.Int),
103+ "Zipper": S.optional(S.Int),
104104 }) {}
105105
106106 export class OutrivalClass extends S.Class<OutrivalClass>("OutrivalClass")({
@@ -159,16 +159,16 @@ export class Noncontributing extends S.Class<Noncontributing>("Noncontributing")
159159
160160 export class MonotheisticallyClass extends S.Class<MonotheisticallyClass>("MonotheisticallyClass")({
161161 "blaspheme": S.optional(S.Null),
162- "catharticalness": S.optional(S.NullOr(S.Number)),
162+ "catharticalness": S.optional(S.Number),
163163 "celiosalpingectomy": S.optional(S.Null),
164- "Chirotherium": S.optional(S.NullOr(S.Int)),
164+ "Chirotherium": S.optional(S.Int),
165165 "consummativeness": S.optional(S.Null),
166- "disdiapason": S.optional(S.NullOr(S.String)),
166+ "disdiapason": S.optional(S.String),
167167 "egestive": S.optional(S.Null),
168168 "enchylema": S.optional(S.Null),
169169 "gasconade": S.optional(S.Null),
170170 "holidayer": S.optional(S.Null),
171- "homocerc": S.optional(S.NullOr(S.Boolean)),
171+ "homocerc": S.optional(S.Boolean),
172172 "intuitionalism": S.optional(S.Null),
173173 "lophiostomate": S.optional(S.Null),
174174 "nonbookish": S.optional(S.Null),
@@ -194,79 +194,79 @@ export class MonaziteClass extends S.Class<MonaziteClass>("MonaziteClass")({
194194 }) {}
195195
196196 export class Maslin extends S.Class<Maslin>("Maslin")({
197- "Alicant": S.optional(S.NullOr(S.Int)),
197+ "Alicant": S.optional(S.Int),
198198 "antiatonement": S.optional(S.Null),
199- "anticorrosive": S.optional(S.NullOr(S.Int)),
199+ "anticorrosive": S.optional(S.Int),
200200 "aphidozer": S.optional(S.Null),
201201 "Bakuninist": S.optional(S.Null),
202- "be": S.optional(S.NullOr(S.Int)),
203- "catharticalness": S.optional(S.NullOr(S.Number)),
204- "Chirotherium": S.optional(S.NullOr(S.Int)),
205- "chub": S.optional(S.NullOr(S.Int)),
206- "cuprosilicon": S.optional(S.NullOr(S.Int)),
207- "curtailedly": S.optional(S.NullOr(S.Int)),
208- "dellenite": S.optional(S.NullOr(S.Int)),
209- "Dimitry": S.optional(S.NullOr(S.Int)),
210- "disdiapason": S.optional(S.NullOr(S.String)),
202+ "be": S.optional(S.Int),
203+ "catharticalness": S.optional(S.Number),
204+ "Chirotherium": S.optional(S.Int),
205+ "chub": S.optional(S.Int),
206+ "cuprosilicon": S.optional(S.Int),
207+ "curtailedly": S.optional(S.Int),
208+ "dellenite": S.optional(S.Int),
209+ "Dimitry": S.optional(S.Int),
210+ "disdiapason": S.optional(S.String),
211211 "edifying": S.optional(S.Null),
212- "ethmoiditis": S.optional(S.NullOr(S.Int)),
212+ "ethmoiditis": S.optional(S.Int),
213213 "gastralgy": S.optional(S.Null),
214- "goatherd": S.optional(S.NullOr(S.Int)),
215- "hammerdress": S.optional(S.NullOr(S.Int)),
214+ "goatherd": S.optional(S.Int),
215+ "hammerdress": S.optional(S.Int),
216216 "hangfire": S.optional(S.Null),
217- "homocerc": S.optional(S.NullOr(S.Boolean)),
218- "lacunosity": S.optional(S.NullOr(S.Int)),
217+ "homocerc": S.optional(S.Boolean),
218+ "lacunosity": S.optional(S.Int),
219219 "longiloquence": S.optional(S.Null),
220- "mameliere": S.optional(S.NullOr(S.Int)),
220+ "mameliere": S.optional(S.Int),
221221 "motherless": S.optional(S.Null),
222222 "nonbookish": S.optional(S.Null),
223223 "noncorrodible": S.optional(S.Null),
224224 "nonsensicality": S.optional(S.Null),
225- "oafishly": S.optional(S.NullOr(S.Int)),
225+ "oafishly": S.optional(S.Int),
226226 "pfund": S.optional(S.Null),
227227 "preadvisory": S.optional(S.Null),
228228 "retroflexed": S.optional(S.Null),
229- "saccharulmic": S.optional(S.NullOr(S.Int)),
230- "scowlful": S.optional(S.NullOr(S.Int)),
229+ "saccharulmic": S.optional(S.Int),
230+ "scowlful": S.optional(S.Int),
231231 "secluded": S.optional(S.Null),
232232 "slackage": S.optional(S.Null),
233- "sphaeridial": S.optional(S.NullOr(S.Int)),
233+ "sphaeridial": S.optional(S.Int),
234234 "spondulics": S.optional(S.Null),
235- "subsecive": S.optional(S.NullOr(S.Int)),
235+ "subsecive": S.optional(S.Int),
236236 "swellmobsman": S.optional(S.Null),
237- "trachyglossate": S.optional(S.NullOr(S.Int)),
237+ "trachyglossate": S.optional(S.Int),
238238 "trialogue": S.optional(S.Null),
239- "unassuaged": S.optional(S.NullOr(S.Int)),
239+ "unassuaged": S.optional(S.Int),
240240 "ungross": S.optional(S.Null),
241241 "unjudiciously": S.optional(S.Null),
242242 }) {}
243243
244244 export class LupusClass extends S.Class<LupusClass>("LupusClass")({
245- "catharticalness": S.optional(S.NullOr(S.Number)),
246- "Chirotherium": S.optional(S.NullOr(S.Int)),
247- "Chlorioninae": S.optional(S.NullOr(S.Int)),
248- "Corvinae": S.optional(S.NullOr(S.Int)),
249- "Crassina": S.optional(S.NullOr(S.Int)),
250- "disdiapason": S.optional(S.NullOr(S.String)),
251- "exiguity": S.optional(S.NullOr(S.Int)),
252- "farcist": S.optional(S.NullOr(S.Int)),
253- "holographical": S.optional(S.NullOr(S.Int)),
254- "homocerc": S.optional(S.NullOr(S.Boolean)),
255- "ichthyophagan": S.optional(S.NullOr(S.Int)),
256- "implacable": S.optional(S.NullOr(S.Int)),
245+ "catharticalness": S.optional(S.Number),
246+ "Chirotherium": S.optional(S.Int),
247+ "Chlorioninae": S.optional(S.Int),
248+ "Corvinae": S.optional(S.Int),
249+ "Crassina": S.optional(S.Int),
250+ "disdiapason": S.optional(S.String),
251+ "exiguity": S.optional(S.Int),
252+ "farcist": S.optional(S.Int),
253+ "holographical": S.optional(S.Int),
254+ "homocerc": S.optional(S.Boolean),
255+ "ichthyophagan": S.optional(S.Int),
256+ "implacable": S.optional(S.Int),
257257 "nonbookish": S.optional(S.Null),
258- "outshiner": S.optional(S.NullOr(S.Int)),
259- "overweather": S.optional(S.NullOr(S.Int)),
260- "protonegroid": S.optional(S.NullOr(S.Int)),
261- "shallowish": S.optional(S.NullOr(S.Int)),
262- "snoke": S.optional(S.NullOr(S.Int)),
263- "snout": S.optional(S.NullOr(S.Int)),
264- "surveillance": S.optional(S.NullOr(S.Int)),
265- "threshingtime": S.optional(S.NullOr(S.Int)),
266- "Thysanocarpus": S.optional(S.NullOr(S.Int)),
267- "unsignificantly": S.optional(S.NullOr(S.Int)),
268- "unsnap": S.optional(S.NullOr(S.Int)),
269- "vendible": S.optional(S.NullOr(S.Int)),
258+ "outshiner": S.optional(S.Int),
259+ "overweather": S.optional(S.Int),
260+ "protonegroid": S.optional(S.Int),
261+ "shallowish": S.optional(S.Int),
262+ "snoke": S.optional(S.Int),
263+ "snout": S.optional(S.Int),
264+ "surveillance": S.optional(S.Int),
265+ "threshingtime": S.optional(S.Int),
266+ "Thysanocarpus": S.optional(S.Int),
267+ "unsignificantly": S.optional(S.Int),
268+ "unsnap": S.optional(S.Int),
269+ "vendible": S.optional(S.Int),
270270 }) {}
271271
272272 export class LandlubberlyClass extends S.Class<LandlubberlyClass>("LandlubberlyClass")({
Mtypescript-effect-schemajust-schema-true--8c4ca457bcba / TopLevel.ts+80 −80
@@ -49,18 +49,18 @@ export class PotwhiskyClass extends S.Class<PotwhiskyClass>("PotwhiskyClass")({
4949
5050 export class Pneumocele extends S.Class<Pneumocele>("Pneumocele")({
5151 "Carbonarism": S.optional(S.Null),
52- "catharticalness": S.optional(S.NullOr(S.Number)),
53- "Chirotherium": S.optional(S.NullOr(S.Int)),
52+ "catharticalness": S.optional(S.Number),
53+ "Chirotherium": S.optional(S.Int),
5454 "cineolic": S.optional(S.Null),
5555 "cobbly": S.optional(S.Null),
5656 "conchyliferous": S.optional(S.Null),
5757 "congregation": S.optional(S.Null),
58- "disdiapason": S.optional(S.NullOr(S.String)),
58+ "disdiapason": S.optional(S.String),
5959 "enterotomy": S.optional(S.Null),
6060 "entophytal": S.optional(S.Null),
6161 "fewtrils": S.optional(S.Null),
6262 "herem": S.optional(S.Null),
63- "homocerc": S.optional(S.NullOr(S.Boolean)),
63+ "homocerc": S.optional(S.Boolean),
6464 "Koniga": S.optional(S.Null),
6565 "meticulosity": S.optional(S.Null),
6666 "Micky": S.optional(S.Null),
@@ -76,31 +76,31 @@ export class Pneumocele extends S.Class<Pneumocele>("Pneumocele")({
7676 }) {}
7777
7878 export class PiaculumClass extends S.Class<PiaculumClass>("PiaculumClass")({
79- "alada": S.optional(S.NullOr(S.Int)),
80- "amphistomous": S.optional(S.NullOr(S.Int)),
81- "boysenberry": S.optional(S.NullOr(S.Int)),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
83- "Chirotherium": S.optional(S.NullOr(S.Int)),
84- "decardinalize": S.optional(S.NullOr(S.Int)),
85- "discouragement": S.optional(S.NullOr(S.Int)),
86- "disdiapason": S.optional(S.NullOr(S.String)),
87- "doitrified": S.optional(S.NullOr(S.Int)),
88- "hexaspermous": S.optional(S.NullOr(S.Int)),
89- "homocerc": S.optional(S.NullOr(S.Boolean)),
90- "insinking": S.optional(S.NullOr(S.Int)),
91- "loathfulness": S.optional(S.NullOr(S.Int)),
92- "miasmatical": S.optional(S.NullOr(S.Int)),
93- "neurofibril": S.optional(S.NullOr(S.Int)),
79+ "alada": S.optional(S.Int),
80+ "amphistomous": S.optional(S.Int),
81+ "boysenberry": S.optional(S.Int),
82+ "catharticalness": S.optional(S.Number),
83+ "Chirotherium": S.optional(S.Int),
84+ "decardinalize": S.optional(S.Int),
85+ "discouragement": S.optional(S.Int),
86+ "disdiapason": S.optional(S.String),
87+ "doitrified": S.optional(S.Int),
88+ "hexaspermous": S.optional(S.Int),
89+ "homocerc": S.optional(S.Boolean),
90+ "insinking": S.optional(S.Int),
91+ "loathfulness": S.optional(S.Int),
92+ "miasmatical": S.optional(S.Int),
93+ "neurofibril": S.optional(S.Int),
9494 "nonbookish": S.optional(S.Null),
95- "phonendoscope": S.optional(S.NullOr(S.Int)),
96- "pilferment": S.optional(S.NullOr(S.Int)),
97- "predismissory": S.optional(S.NullOr(S.Int)),
98- "preinscription": S.optional(S.NullOr(S.Int)),
99- "quotative": S.optional(S.NullOr(S.Int)),
100- "sienna": S.optional(S.NullOr(S.Int)),
101- "thorax": S.optional(S.NullOr(S.Int)),
102- "yachting": S.optional(S.NullOr(S.Int)),
103- "Zipper": S.optional(S.NullOr(S.Int)),
95+ "phonendoscope": S.optional(S.Int),
96+ "pilferment": S.optional(S.Int),
97+ "predismissory": S.optional(S.Int),
98+ "preinscription": S.optional(S.Int),
99+ "quotative": S.optional(S.Int),
100+ "sienna": S.optional(S.Int),
101+ "thorax": S.optional(S.Int),
102+ "yachting": S.optional(S.Int),
103+ "Zipper": S.optional(S.Int),
104104 }) {}
105105
106106 export class OutrivalClass extends S.Class<OutrivalClass>("OutrivalClass")({
@@ -159,16 +159,16 @@ export class Noncontributing extends S.Class<Noncontributing>("Noncontributing")
159159
160160 export class MonotheisticallyClass extends S.Class<MonotheisticallyClass>("MonotheisticallyClass")({
161161 "blaspheme": S.optional(S.Null),
162- "catharticalness": S.optional(S.NullOr(S.Number)),
162+ "catharticalness": S.optional(S.Number),
163163 "celiosalpingectomy": S.optional(S.Null),
164- "Chirotherium": S.optional(S.NullOr(S.Int)),
164+ "Chirotherium": S.optional(S.Int),
165165 "consummativeness": S.optional(S.Null),
166- "disdiapason": S.optional(S.NullOr(S.String)),
166+ "disdiapason": S.optional(S.String),
167167 "egestive": S.optional(S.Null),
168168 "enchylema": S.optional(S.Null),
169169 "gasconade": S.optional(S.Null),
170170 "holidayer": S.optional(S.Null),
171- "homocerc": S.optional(S.NullOr(S.Boolean)),
171+ "homocerc": S.optional(S.Boolean),
172172 "intuitionalism": S.optional(S.Null),
173173 "lophiostomate": S.optional(S.Null),
174174 "nonbookish": S.optional(S.Null),
@@ -194,79 +194,79 @@ export class MonaziteClass extends S.Class<MonaziteClass>("MonaziteClass")({
194194 }) {}
195195
196196 export class Maslin extends S.Class<Maslin>("Maslin")({
197- "Alicant": S.optional(S.NullOr(S.Int)),
197+ "Alicant": S.optional(S.Int),
198198 "antiatonement": S.optional(S.Null),
199- "anticorrosive": S.optional(S.NullOr(S.Int)),
199+ "anticorrosive": S.optional(S.Int),
200200 "aphidozer": S.optional(S.Null),
201201 "Bakuninist": S.optional(S.Null),
202- "be": S.optional(S.NullOr(S.Int)),
203- "catharticalness": S.optional(S.NullOr(S.Number)),
204- "Chirotherium": S.optional(S.NullOr(S.Int)),
205- "chub": S.optional(S.NullOr(S.Int)),
206- "cuprosilicon": S.optional(S.NullOr(S.Int)),
207- "curtailedly": S.optional(S.NullOr(S.Int)),
208- "dellenite": S.optional(S.NullOr(S.Int)),
209- "Dimitry": S.optional(S.NullOr(S.Int)),
210- "disdiapason": S.optional(S.NullOr(S.String)),
202+ "be": S.optional(S.Int),
203+ "catharticalness": S.optional(S.Number),
204+ "Chirotherium": S.optional(S.Int),
205+ "chub": S.optional(S.Int),
206+ "cuprosilicon": S.optional(S.Int),
207+ "curtailedly": S.optional(S.Int),
208+ "dellenite": S.optional(S.Int),
209+ "Dimitry": S.optional(S.Int),
210+ "disdiapason": S.optional(S.String),
211211 "edifying": S.optional(S.Null),
212- "ethmoiditis": S.optional(S.NullOr(S.Int)),
212+ "ethmoiditis": S.optional(S.Int),
213213 "gastralgy": S.optional(S.Null),
214- "goatherd": S.optional(S.NullOr(S.Int)),
215- "hammerdress": S.optional(S.NullOr(S.Int)),
214+ "goatherd": S.optional(S.Int),
215+ "hammerdress": S.optional(S.Int),
216216 "hangfire": S.optional(S.Null),
217- "homocerc": S.optional(S.NullOr(S.Boolean)),
218- "lacunosity": S.optional(S.NullOr(S.Int)),
217+ "homocerc": S.optional(S.Boolean),
218+ "lacunosity": S.optional(S.Int),
219219 "longiloquence": S.optional(S.Null),
220- "mameliere": S.optional(S.NullOr(S.Int)),
220+ "mameliere": S.optional(S.Int),
221221 "motherless": S.optional(S.Null),
222222 "nonbookish": S.optional(S.Null),
223223 "noncorrodible": S.optional(S.Null),
224224 "nonsensicality": S.optional(S.Null),
225- "oafishly": S.optional(S.NullOr(S.Int)),
225+ "oafishly": S.optional(S.Int),
226226 "pfund": S.optional(S.Null),
227227 "preadvisory": S.optional(S.Null),
228228 "retroflexed": S.optional(S.Null),
229- "saccharulmic": S.optional(S.NullOr(S.Int)),
230- "scowlful": S.optional(S.NullOr(S.Int)),
229+ "saccharulmic": S.optional(S.Int),
230+ "scowlful": S.optional(S.Int),
231231 "secluded": S.optional(S.Null),
232232 "slackage": S.optional(S.Null),
233- "sphaeridial": S.optional(S.NullOr(S.Int)),
233+ "sphaeridial": S.optional(S.Int),
234234 "spondulics": S.optional(S.Null),
235- "subsecive": S.optional(S.NullOr(S.Int)),
235+ "subsecive": S.optional(S.Int),
236236 "swellmobsman": S.optional(S.Null),
237- "trachyglossate": S.optional(S.NullOr(S.Int)),
237+ "trachyglossate": S.optional(S.Int),
238238 "trialogue": S.optional(S.Null),
239- "unassuaged": S.optional(S.NullOr(S.Int)),
239+ "unassuaged": S.optional(S.Int),
240240 "ungross": S.optional(S.Null),
241241 "unjudiciously": S.optional(S.Null),
242242 }) {}
243243
244244 export class LupusClass extends S.Class<LupusClass>("LupusClass")({
245- "catharticalness": S.optional(S.NullOr(S.Number)),
246- "Chirotherium": S.optional(S.NullOr(S.Int)),
247- "Chlorioninae": S.optional(S.NullOr(S.Int)),
248- "Corvinae": S.optional(S.NullOr(S.Int)),
249- "Crassina": S.optional(S.NullOr(S.Int)),
250- "disdiapason": S.optional(S.NullOr(S.String)),
251- "exiguity": S.optional(S.NullOr(S.Int)),
252- "farcist": S.optional(S.NullOr(S.Int)),
253- "holographical": S.optional(S.NullOr(S.Int)),
254- "homocerc": S.optional(S.NullOr(S.Boolean)),
255- "ichthyophagan": S.optional(S.NullOr(S.Int)),
256- "implacable": S.optional(S.NullOr(S.Int)),
245+ "catharticalness": S.optional(S.Number),
246+ "Chirotherium": S.optional(S.Int),
247+ "Chlorioninae": S.optional(S.Int),
248+ "Corvinae": S.optional(S.Int),
249+ "Crassina": S.optional(S.Int),
250+ "disdiapason": S.optional(S.String),
251+ "exiguity": S.optional(S.Int),
252+ "farcist": S.optional(S.Int),
253+ "holographical": S.optional(S.Int),
254+ "homocerc": S.optional(S.Boolean),
255+ "ichthyophagan": S.optional(S.Int),
256+ "implacable": S.optional(S.Int),
257257 "nonbookish": S.optional(S.Null),
258- "outshiner": S.optional(S.NullOr(S.Int)),
259- "overweather": S.optional(S.NullOr(S.Int)),
260- "protonegroid": S.optional(S.NullOr(S.Int)),
261- "shallowish": S.optional(S.NullOr(S.Int)),
262- "snoke": S.optional(S.NullOr(S.Int)),
263- "snout": S.optional(S.NullOr(S.Int)),
264- "surveillance": S.optional(S.NullOr(S.Int)),
265- "threshingtime": S.optional(S.NullOr(S.Int)),
266- "Thysanocarpus": S.optional(S.NullOr(S.Int)),
267- "unsignificantly": S.optional(S.NullOr(S.Int)),
268- "unsnap": S.optional(S.NullOr(S.Int)),
269- "vendible": S.optional(S.NullOr(S.Int)),
258+ "outshiner": S.optional(S.Int),
259+ "overweather": S.optional(S.Int),
260+ "protonegroid": S.optional(S.Int),
261+ "shallowish": S.optional(S.Int),
262+ "snoke": S.optional(S.Int),
263+ "snout": S.optional(S.Int),
264+ "surveillance": S.optional(S.Int),
265+ "threshingtime": S.optional(S.Int),
266+ "Thysanocarpus": S.optional(S.Int),
267+ "unsignificantly": S.optional(S.Int),
268+ "unsnap": S.optional(S.Int),
269+ "vendible": S.optional(S.Int),
270270 }) {}
271271
272272 export class LandlubberlyClass extends S.Class<LandlubberlyClass>("LandlubberlyClass")({
Test case

test/inputs/json/priority/combinations4.json

2 generated files · +168 −168
Mtypescript-effect-schemadefault / TopLevel.ts+84 −84
@@ -48,48 +48,48 @@ export class UnstressedClass extends S.Class<UnstressedClass>("UnstressedClass")
4848 }) {}
4949
5050 export class UnimpeachablyClass extends S.Class<UnimpeachablyClass>("UnimpeachablyClass")({
51- "acerin": S.optional(S.NullOr(S.Int)),
52- "Bobadil": S.optional(S.NullOr(S.Int)),
53- "catharticalness": S.optional(S.NullOr(S.Number)),
54- "Chirotherium": S.optional(S.NullOr(S.Int)),
55- "chlorophylligenous": S.optional(S.NullOr(S.Int)),
56- "conversational": S.optional(S.NullOr(S.Int)),
57- "demiowl": S.optional(S.NullOr(S.Int)),
58- "disdiapason": S.optional(S.NullOr(S.String)),
59- "ectorhinal": S.optional(S.NullOr(S.Int)),
60- "gamblesomeness": S.optional(S.NullOr(S.Int)),
61- "homocerc": S.optional(S.NullOr(S.Boolean)),
62- "irrorate": S.optional(S.NullOr(S.Int)),
63- "kindergartening": S.optional(S.NullOr(S.Int)),
64- "lateritic": S.optional(S.NullOr(S.Int)),
65- "mespil": S.optional(S.NullOr(S.Int)),
66- "misconfiguration": S.optional(S.NullOr(S.Int)),
51+ "acerin": S.optional(S.Int),
52+ "Bobadil": S.optional(S.Int),
53+ "catharticalness": S.optional(S.Number),
54+ "Chirotherium": S.optional(S.Int),
55+ "chlorophylligenous": S.optional(S.Int),
56+ "conversational": S.optional(S.Int),
57+ "demiowl": S.optional(S.Int),
58+ "disdiapason": S.optional(S.String),
59+ "ectorhinal": S.optional(S.Int),
60+ "gamblesomeness": S.optional(S.Int),
61+ "homocerc": S.optional(S.Boolean),
62+ "irrorate": S.optional(S.Int),
63+ "kindergartening": S.optional(S.Int),
64+ "lateritic": S.optional(S.Int),
65+ "mespil": S.optional(S.Int),
66+ "misconfiguration": S.optional(S.Int),
6767 "nonbookish": S.optional(S.Null),
68- "planometry": S.optional(S.NullOr(S.Int)),
69- "Quiina": S.optional(S.NullOr(S.Int)),
70- "Robert": S.optional(S.NullOr(S.Int)),
71- "rot": S.optional(S.NullOr(S.Int)),
72- "subcinctorium": S.optional(S.NullOr(S.Int)),
73- "tussocker": S.optional(S.NullOr(S.Int)),
74- "ultraproud": S.optional(S.NullOr(S.Int)),
75- "unsuggestedness": S.optional(S.NullOr(S.Int)),
68+ "planometry": S.optional(S.Int),
69+ "Quiina": S.optional(S.Int),
70+ "Robert": S.optional(S.Int),
71+ "rot": S.optional(S.Int),
72+ "subcinctorium": S.optional(S.Int),
73+ "tussocker": S.optional(S.Int),
74+ "ultraproud": S.optional(S.Int),
75+ "unsuggestedness": S.optional(S.Int),
7676 }) {}
7777
7878 export class TruantcyClass extends S.Class<TruantcyClass>("TruantcyClass")({
7979 "alfiona": S.optional(S.Null),
8080 "ascaridiasis": S.optional(S.Null),
8181 "bungey": S.optional(S.Null),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
82+ "catharticalness": S.optional(S.Number),
8383 "ceroxyle": S.optional(S.Null),
84- "Chirotherium": S.optional(S.NullOr(S.Int)),
84+ "Chirotherium": S.optional(S.Int),
8585 "chorology": S.optional(S.Null),
86- "disdiapason": S.optional(S.NullOr(S.String)),
86+ "disdiapason": S.optional(S.String),
8787 "enmarble": S.optional(S.Null),
8888 "Epeira": S.optional(S.Null),
8989 "Eurylaimi": S.optional(S.Null),
9090 "germination": S.optional(S.Null),
9191 "hallelujah": S.optional(S.Null),
92- "homocerc": S.optional(S.NullOr(S.Boolean)),
92+ "homocerc": S.optional(S.Boolean),
9393 "lev": S.optional(S.Null),
9494 "mouthing": S.optional(S.Null),
9595 "nonbookish": S.optional(S.Null),
@@ -104,59 +104,59 @@ export class TruantcyClass extends S.Class<TruantcyClass>("TruantcyClass")({
104104 }) {}
105105
106106 export class StrenuosityClass extends S.Class<StrenuosityClass>("StrenuosityClass")({
107- "bliss": S.optional(S.NullOr(S.Int)),
108- "buccate": S.optional(S.NullOr(S.Int)),
109- "bulletproof": S.optional(S.NullOr(S.Int)),
110- "catharticalness": S.optional(S.NullOr(S.Number)),
111- "Chirotherium": S.optional(S.NullOr(S.Int)),
112- "crumblingness": S.optional(S.NullOr(S.Int)),
113- "disdiapason": S.optional(S.NullOr(S.String)),
114- "engagedly": S.optional(S.NullOr(S.Int)),
115- "fightable": S.optional(S.NullOr(S.Int)),
116- "hoariness": S.optional(S.NullOr(S.Int)),
117- "homocerc": S.optional(S.NullOr(S.Boolean)),
118- "hypopodium": S.optional(S.NullOr(S.Int)),
119- "luxurist": S.optional(S.NullOr(S.Int)),
120- "mechanician": S.optional(S.NullOr(S.Int)),
107+ "bliss": S.optional(S.Int),
108+ "buccate": S.optional(S.Int),
109+ "bulletproof": S.optional(S.Int),
110+ "catharticalness": S.optional(S.Number),
111+ "Chirotherium": S.optional(S.Int),
112+ "crumblingness": S.optional(S.Int),
113+ "disdiapason": S.optional(S.String),
114+ "engagedly": S.optional(S.Int),
115+ "fightable": S.optional(S.Int),
116+ "hoariness": S.optional(S.Int),
117+ "homocerc": S.optional(S.Boolean),
118+ "hypopodium": S.optional(S.Int),
119+ "luxurist": S.optional(S.Int),
120+ "mechanician": S.optional(S.Int),
121121 "nonbookish": S.optional(S.Null),
122- "Onopordon": S.optional(S.NullOr(S.Int)),
123- "podgily": S.optional(S.NullOr(S.Int)),
124- "reformableness": S.optional(S.NullOr(S.Int)),
125- "scatterbrains": S.optional(S.NullOr(S.Int)),
126- "seminuria": S.optional(S.NullOr(S.Int)),
127- "Sodomite": S.optional(S.NullOr(S.Int)),
128- "tramp": S.optional(S.NullOr(S.Int)),
129- "undueness": S.optional(S.NullOr(S.Int)),
130- "worthily": S.optional(S.NullOr(S.Int)),
131- "Yankeeist": S.optional(S.NullOr(S.Int)),
122+ "Onopordon": S.optional(S.Int),
123+ "podgily": S.optional(S.Int),
124+ "reformableness": S.optional(S.Int),
125+ "scatterbrains": S.optional(S.Int),
126+ "seminuria": S.optional(S.Int),
127+ "Sodomite": S.optional(S.Int),
128+ "tramp": S.optional(S.Int),
129+ "undueness": S.optional(S.Int),
130+ "worthily": S.optional(S.Int),
131+ "Yankeeist": S.optional(S.Int),
132132 }) {}
133133
134134 export class Staghunting extends S.Class<Staghunting>("Staghunting")({
135- "calorimetric": S.optional(S.NullOr(S.Int)),
136- "canid": S.optional(S.NullOr(S.Int)),
137- "catharticalness": S.optional(S.NullOr(S.Number)),
138- "Chirotherium": S.optional(S.NullOr(S.Int)),
139- "disdiapason": S.optional(S.NullOr(S.String)),
140- "ditriglyphic": S.optional(S.NullOr(S.Int)),
141- "floriferousness": S.optional(S.NullOr(S.Int)),
142- "gamelike": S.optional(S.NullOr(S.Int)),
143- "grig": S.optional(S.NullOr(S.Int)),
144- "homocerc": S.optional(S.NullOr(S.Boolean)),
145- "interloan": S.optional(S.NullOr(S.Int)),
146- "lithotomy": S.optional(S.NullOr(S.Int)),
147- "loric": S.optional(S.NullOr(S.Int)),
148- "membranocoriaceous": S.optional(S.NullOr(S.Int)),
149- "membranogenic": S.optional(S.NullOr(S.Int)),
135+ "calorimetric": S.optional(S.Int),
136+ "canid": S.optional(S.Int),
137+ "catharticalness": S.optional(S.Number),
138+ "Chirotherium": S.optional(S.Int),
139+ "disdiapason": S.optional(S.String),
140+ "ditriglyphic": S.optional(S.Int),
141+ "floriferousness": S.optional(S.Int),
142+ "gamelike": S.optional(S.Int),
143+ "grig": S.optional(S.Int),
144+ "homocerc": S.optional(S.Boolean),
145+ "interloan": S.optional(S.Int),
146+ "lithotomy": S.optional(S.Int),
147+ "loric": S.optional(S.Int),
148+ "membranocoriaceous": S.optional(S.Int),
149+ "membranogenic": S.optional(S.Int),
150150 "nonbookish": S.optional(S.Null),
151- "overtrump": S.optional(S.NullOr(S.Int)),
152- "scotino": S.optional(S.NullOr(S.Int)),
153- "seasonable": S.optional(S.NullOr(S.Int)),
154- "sephen": S.optional(S.NullOr(S.Int)),
155- "stigmarioid": S.optional(S.NullOr(S.Int)),
156- "tired": S.optional(S.NullOr(S.Int)),
157- "trifid": S.optional(S.NullOr(S.Int)),
158- "undefeatedly": S.optional(S.NullOr(S.Int)),
159- "ungirlish": S.optional(S.NullOr(S.Int)),
151+ "overtrump": S.optional(S.Int),
152+ "scotino": S.optional(S.Int),
153+ "seasonable": S.optional(S.Int),
154+ "sephen": S.optional(S.Int),
155+ "stigmarioid": S.optional(S.Int),
156+ "tired": S.optional(S.Int),
157+ "trifid": S.optional(S.Int),
158+ "undefeatedly": S.optional(S.Int),
159+ "ungirlish": S.optional(S.Int),
160160 }) {}
161161
162162 export class SisteringClass extends S.Class<SisteringClass>("SisteringClass")({
@@ -208,13 +208,13 @@ export class Scatty extends S.Class<Scatty>("Scatty")({
208208 export class SaxtenClass extends S.Class<SaxtenClass>("SaxtenClass")({
209209 "algarrobilla": S.optional(S.Null),
210210 "bowgrace": S.optional(S.Null),
211- "catharticalness": S.optional(S.NullOr(S.Number)),
211+ "catharticalness": S.optional(S.Number),
212212 "Centaurid": S.optional(S.Null),
213- "Chirotherium": S.optional(S.NullOr(S.Int)),
214- "disdiapason": S.optional(S.NullOr(S.String)),
213+ "Chirotherium": S.optional(S.Int),
214+ "disdiapason": S.optional(S.String),
215215 "flix": S.optional(S.Null),
216216 "germanely": S.optional(S.Null),
217- "homocerc": S.optional(S.NullOr(S.Boolean)),
217+ "homocerc": S.optional(S.Boolean),
218218 "inhume": S.optional(S.Null),
219219 "lepidote": S.optional(S.Null),
220220 "megalochirous": S.optional(S.Null),
@@ -306,16 +306,16 @@ export class Reimagine extends S.Class<Reimagine>("Reimagine")({
306306 "adducible": S.optional(S.Null),
307307 "anabolin": S.optional(S.Null),
308308 "brainy": S.optional(S.Null),
309- "catharticalness": S.optional(S.NullOr(S.Number)),
310- "Chirotherium": S.optional(S.NullOr(S.Int)),
309+ "catharticalness": S.optional(S.Number),
310+ "Chirotherium": S.optional(S.Int),
311311 "chrysamine": S.optional(S.Null),
312- "disdiapason": S.optional(S.NullOr(S.String)),
312+ "disdiapason": S.optional(S.String),
313313 "fluxweed": S.optional(S.Null),
314314 "glaucine": S.optional(S.Null),
315315 "grobianism": S.optional(S.Null),
316316 "Hermo": S.optional(S.Null),
317317 "hieroglyphist": S.optional(S.Null),
318- "homocerc": S.optional(S.NullOr(S.Boolean)),
318+ "homocerc": S.optional(S.Boolean),
319319 "icteroid": S.optional(S.Null),
320320 "immortal": S.optional(S.Null),
321321 "impetulant": S.optional(S.Null),
Mtypescript-effect-schemajust-schema-true--8c4ca457bcba / TopLevel.ts+84 −84
@@ -48,48 +48,48 @@ export class UnstressedClass extends S.Class<UnstressedClass>("UnstressedClass")
4848 }) {}
4949
5050 export class UnimpeachablyClass extends S.Class<UnimpeachablyClass>("UnimpeachablyClass")({
51- "acerin": S.optional(S.NullOr(S.Int)),
52- "Bobadil": S.optional(S.NullOr(S.Int)),
53- "catharticalness": S.optional(S.NullOr(S.Number)),
54- "Chirotherium": S.optional(S.NullOr(S.Int)),
55- "chlorophylligenous": S.optional(S.NullOr(S.Int)),
56- "conversational": S.optional(S.NullOr(S.Int)),
57- "demiowl": S.optional(S.NullOr(S.Int)),
58- "disdiapason": S.optional(S.NullOr(S.String)),
59- "ectorhinal": S.optional(S.NullOr(S.Int)),
60- "gamblesomeness": S.optional(S.NullOr(S.Int)),
61- "homocerc": S.optional(S.NullOr(S.Boolean)),
62- "irrorate": S.optional(S.NullOr(S.Int)),
63- "kindergartening": S.optional(S.NullOr(S.Int)),
64- "lateritic": S.optional(S.NullOr(S.Int)),
65- "mespil": S.optional(S.NullOr(S.Int)),
66- "misconfiguration": S.optional(S.NullOr(S.Int)),
51+ "acerin": S.optional(S.Int),
52+ "Bobadil": S.optional(S.Int),
53+ "catharticalness": S.optional(S.Number),
54+ "Chirotherium": S.optional(S.Int),
55+ "chlorophylligenous": S.optional(S.Int),
56+ "conversational": S.optional(S.Int),
57+ "demiowl": S.optional(S.Int),
58+ "disdiapason": S.optional(S.String),
59+ "ectorhinal": S.optional(S.Int),
60+ "gamblesomeness": S.optional(S.Int),
61+ "homocerc": S.optional(S.Boolean),
62+ "irrorate": S.optional(S.Int),
63+ "kindergartening": S.optional(S.Int),
64+ "lateritic": S.optional(S.Int),
65+ "mespil": S.optional(S.Int),
66+ "misconfiguration": S.optional(S.Int),
6767 "nonbookish": S.optional(S.Null),
68- "planometry": S.optional(S.NullOr(S.Int)),
69- "Quiina": S.optional(S.NullOr(S.Int)),
70- "Robert": S.optional(S.NullOr(S.Int)),
71- "rot": S.optional(S.NullOr(S.Int)),
72- "subcinctorium": S.optional(S.NullOr(S.Int)),
73- "tussocker": S.optional(S.NullOr(S.Int)),
74- "ultraproud": S.optional(S.NullOr(S.Int)),
75- "unsuggestedness": S.optional(S.NullOr(S.Int)),
68+ "planometry": S.optional(S.Int),
69+ "Quiina": S.optional(S.Int),
70+ "Robert": S.optional(S.Int),
71+ "rot": S.optional(S.Int),
72+ "subcinctorium": S.optional(S.Int),
73+ "tussocker": S.optional(S.Int),
74+ "ultraproud": S.optional(S.Int),
75+ "unsuggestedness": S.optional(S.Int),
7676 }) {}
7777
7878 export class TruantcyClass extends S.Class<TruantcyClass>("TruantcyClass")({
7979 "alfiona": S.optional(S.Null),
8080 "ascaridiasis": S.optional(S.Null),
8181 "bungey": S.optional(S.Null),
82- "catharticalness": S.optional(S.NullOr(S.Number)),
82+ "catharticalness": S.optional(S.Number),
8383 "ceroxyle": S.optional(S.Null),
84- "Chirotherium": S.optional(S.NullOr(S.Int)),
84+ "Chirotherium": S.optional(S.Int),
8585 "chorology": S.optional(S.Null),
86- "disdiapason": S.optional(S.NullOr(S.String)),
86+ "disdiapason": S.optional(S.String),
8787 "enmarble": S.optional(S.Null),
8888 "Epeira": S.optional(S.Null),
8989 "Eurylaimi": S.optional(S.Null),
9090 "germination": S.optional(S.Null),
9191 "hallelujah": S.optional(S.Null),
92- "homocerc": S.optional(S.NullOr(S.Boolean)),
92+ "homocerc": S.optional(S.Boolean),
9393 "lev": S.optional(S.Null),
9494 "mouthing": S.optional(S.Null),
9595 "nonbookish": S.optional(S.Null),
@@ -104,59 +104,59 @@ export class TruantcyClass extends S.Class<TruantcyClass>("TruantcyClass")({
104104 }) {}
105105
106106 export class StrenuosityClass extends S.Class<StrenuosityClass>("StrenuosityClass")({
107- "bliss": S.optional(S.NullOr(S.Int)),
108- "buccate": S.optional(S.NullOr(S.Int)),
109- "bulletproof": S.optional(S.NullOr(S.Int)),
110- "catharticalness": S.optional(S.NullOr(S.Number)),
111- "Chirotherium": S.optional(S.NullOr(S.Int)),
112- "crumblingness": S.optional(S.NullOr(S.Int)),
113- "disdiapason": S.optional(S.NullOr(S.String)),
114- "engagedly": S.optional(S.NullOr(S.Int)),
115- "fightable": S.optional(S.NullOr(S.Int)),
116- "hoariness": S.optional(S.NullOr(S.Int)),
117- "homocerc": S.optional(S.NullOr(S.Boolean)),
118- "hypopodium": S.optional(S.NullOr(S.Int)),
119- "luxurist": S.optional(S.NullOr(S.Int)),
120- "mechanician": S.optional(S.NullOr(S.Int)),
107+ "bliss": S.optional(S.Int),
108+ "buccate": S.optional(S.Int),
109+ "bulletproof": S.optional(S.Int),
110+ "catharticalness": S.optional(S.Number),
111+ "Chirotherium": S.optional(S.Int),
112+ "crumblingness": S.optional(S.Int),
113+ "disdiapason": S.optional(S.String),
114+ "engagedly": S.optional(S.Int),
115+ "fightable": S.optional(S.Int),
116+ "hoariness": S.optional(S.Int),
117+ "homocerc": S.optional(S.Boolean),
118+ "hypopodium": S.optional(S.Int),
119+ "luxurist": S.optional(S.Int),
120+ "mechanician": S.optional(S.Int),
121121 "nonbookish": S.optional(S.Null),
122- "Onopordon": S.optional(S.NullOr(S.Int)),
123- "podgily": S.optional(S.NullOr(S.Int)),
124- "reformableness": S.optional(S.NullOr(S.Int)),
125- "scatterbrains": S.optional(S.NullOr(S.Int)),
126- "seminuria": S.optional(S.NullOr(S.Int)),
127- "Sodomite": S.optional(S.NullOr(S.Int)),
128- "tramp": S.optional(S.NullOr(S.Int)),
129- "undueness": S.optional(S.NullOr(S.Int)),
130- "worthily": S.optional(S.NullOr(S.Int)),
131- "Yankeeist": S.optional(S.NullOr(S.Int)),
122+ "Onopordon": S.optional(S.Int),
123+ "podgily": S.optional(S.Int),
124+ "reformableness": S.optional(S.Int),
125+ "scatterbrains": S.optional(S.Int),
126+ "seminuria": S.optional(S.Int),
127+ "Sodomite": S.optional(S.Int),
128+ "tramp": S.optional(S.Int),
129+ "undueness": S.optional(S.Int),
130+ "worthily": S.optional(S.Int),
131+ "Yankeeist": S.optional(S.Int),
132132 }) {}
133133
134134 export class Staghunting extends S.Class<Staghunting>("Staghunting")({
135- "calorimetric": S.optional(S.NullOr(S.Int)),
136- "canid": S.optional(S.NullOr(S.Int)),
137- "catharticalness": S.optional(S.NullOr(S.Number)),
138- "Chirotherium": S.optional(S.NullOr(S.Int)),
139- "disdiapason": S.optional(S.NullOr(S.String)),
140- "ditriglyphic": S.optional(S.NullOr(S.Int)),
141- "floriferousness": S.optional(S.NullOr(S.Int)),
142- "gamelike": S.optional(S.NullOr(S.Int)),
143- "grig": S.optional(S.NullOr(S.Int)),
144- "homocerc": S.optional(S.NullOr(S.Boolean)),
145- "interloan": S.optional(S.NullOr(S.Int)),
146- "lithotomy": S.optional(S.NullOr(S.Int)),
147- "loric": S.optional(S.NullOr(S.Int)),
148- "membranocoriaceous": S.optional(S.NullOr(S.Int)),
149- "membranogenic": S.optional(S.NullOr(S.Int)),
135+ "calorimetric": S.optional(S.Int),
136+ "canid": S.optional(S.Int),
137+ "catharticalness": S.optional(S.Number),
138+ "Chirotherium": S.optional(S.Int),
139+ "disdiapason": S.optional(S.String),
140+ "ditriglyphic": S.optional(S.Int),
141+ "floriferousness": S.optional(S.Int),
142+ "gamelike": S.optional(S.Int),
143+ "grig": S.optional(S.Int),
144+ "homocerc": S.optional(S.Boolean),
145+ "interloan": S.optional(S.Int),
146+ "lithotomy": S.optional(S.Int),
147+ "loric": S.optional(S.Int),
148+ "membranocoriaceous": S.optional(S.Int),
149+ "membranogenic": S.optional(S.Int),
150150 "nonbookish": S.optional(S.Null),
151- "overtrump": S.optional(S.NullOr(S.Int)),
152- "scotino": S.optional(S.NullOr(S.Int)),
153- "seasonable": S.optional(S.NullOr(S.Int)),
154- "sephen": S.optional(S.NullOr(S.Int)),
155- "stigmarioid": S.optional(S.NullOr(S.Int)),
156- "tired": S.optional(S.NullOr(S.Int)),
157- "trifid": S.optional(S.NullOr(S.Int)),
158- "undefeatedly": S.optional(S.NullOr(S.Int)),
159- "ungirlish": S.optional(S.NullOr(S.Int)),
151+ "overtrump": S.optional(S.Int),
152+ "scotino": S.optional(S.Int),
153+ "seasonable": S.optional(S.Int),
154+ "sephen": S.optional(S.Int),
155+ "stigmarioid": S.optional(S.Int),
156+ "tired": S.optional(S.Int),
157+ "trifid": S.optional(S.Int),
158+ "undefeatedly": S.optional(S.Int),
159+ "ungirlish": S.optional(S.Int),
160160 }) {}
161161
162162 export class SisteringClass extends S.Class<SisteringClass>("SisteringClass")({
@@ -208,13 +208,13 @@ export class Scatty extends S.Class<Scatty>("Scatty")({
208208 export class SaxtenClass extends S.Class<SaxtenClass>("SaxtenClass")({
209209 "algarrobilla": S.optional(S.Null),
210210 "bowgrace": S.optional(S.Null),
211- "catharticalness": S.optional(S.NullOr(S.Number)),
211+ "catharticalness": S.optional(S.Number),
212212 "Centaurid": S.optional(S.Null),
213- "Chirotherium": S.optional(S.NullOr(S.Int)),
214- "disdiapason": S.optional(S.NullOr(S.String)),
213+ "Chirotherium": S.optional(S.Int),
214+ "disdiapason": S.optional(S.String),
215215 "flix": S.optional(S.Null),
216216 "germanely": S.optional(S.Null),
217- "homocerc": S.optional(S.NullOr(S.Boolean)),
217+ "homocerc": S.optional(S.Boolean),
218218 "inhume": S.optional(S.Null),
219219 "lepidote": S.optional(S.Null),
220220 "megalochirous": S.optional(S.Null),
@@ -306,16 +306,16 @@ export class Reimagine extends S.Class<Reimagine>("Reimagine")({
306306 "adducible": S.optional(S.Null),
307307 "anabolin": S.optional(S.Null),
308308 "brainy": S.optional(S.Null),
309- "catharticalness": S.optional(S.NullOr(S.Number)),
310- "Chirotherium": S.optional(S.NullOr(S.Int)),
309+ "catharticalness": S.optional(S.Number),
310+ "Chirotherium": S.optional(S.Int),
311311 "chrysamine": S.optional(S.Null),
312- "disdiapason": S.optional(S.NullOr(S.String)),
312+ "disdiapason": S.optional(S.String),
313313 "fluxweed": S.optional(S.Null),
314314 "glaucine": S.optional(S.Null),
315315 "grobianism": S.optional(S.Null),
316316 "Hermo": S.optional(S.Null),
317317 "hieroglyphist": S.optional(S.Null),
318- "homocerc": S.optional(S.NullOr(S.Boolean)),
318+ "homocerc": S.optional(S.Boolean),
319319 "icteroid": S.optional(S.Null),
320320 "immortal": S.optional(S.Null),
321321 "impetulant": S.optional(S.Null),
Test case

test/inputs/json/priority/direct-recursive.json

1 generated file · +1 −1
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "also": S.optional(S.NullOr(S.suspend(() => TopLevel))),
5+ "also": S.optional(S.suspend(() => TopLevel)),
66 "bar": S.Boolean,
77 "foo": S.Int,
88 "moo": S.Number,
Test case

test/inputs/json/priority/empty-enum.json

1 generated file · +1 −1
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class Foo extends S.Class<Foo>("Foo")({
5- "bar": S.optional(S.NullOr(S.String)),
5+ "bar": S.optional(S.String),
66 }) {}
77
88 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/json/priority/nbl-stats.json

1 generated file · +59 −59
Mtypescript-effect-schemadefault / TopLevel.ts+59 −59
@@ -114,8 +114,8 @@ export class Comp extends S.Class<Comp>("Comp")({
114114
115115 export class Pl extends S.Class<Pl>("Pl")({
116116 "active": S.Int,
117- "captain": S.optional(S.NullOr(S.Int)),
118- "comp": S.optional(S.NullOr(Comp)),
117+ "captain": S.optional(S.Int),
118+ "comp": S.optional(Comp),
119119 "eff_1": S.Int,
120120 "eff_2": S.Int,
121121 "eff_3": S.Number,
@@ -172,47 +172,39 @@ export class Time extends S.Class<Time>("Time")({
172172 }) {}
173173
174174 export class Scorer extends S.Class<Scorer>("Scorer")({
175- "familyName": S.optional(S.NullOr(S.String)),
176- "familyNameInitial": S.optional(S.NullOr(FamilyNameInitial)),
177- "firstName": S.optional(S.NullOr(S.String)),
178- "firstNameInitial": S.optional(S.NullOr(FirstNameInitial)),
179- "gt": S.optional(S.NullOr(S.String)),
180- "internationalFamilyName": S.optional(S.NullOr(S.String)),
181- "internationalFamilyNameInitial": S.optional(S.NullOr(FamilyNameInitial)),
182- "internationalFirstName": S.optional(S.NullOr(S.String)),
183- "internationalFirstNameInitial": S.optional(S.NullOr(FirstNameInitial)),
184- "name": S.optional(S.NullOr(S.String)),
185- "per": S.optional(S.NullOr(S.Int)),
186- "perType": S.optional(S.NullOr(PerType)),
187- "player": S.optional(S.NullOr(S.String)),
175+ "familyName": S.optional(S.String),
176+ "familyNameInitial": S.optional(FamilyNameInitial),
177+ "firstName": S.optional(S.String),
178+ "firstNameInitial": S.optional(FirstNameInitial),
179+ "gt": S.optional(S.String),
180+ "internationalFamilyName": S.optional(S.String),
181+ "internationalFamilyNameInitial": S.optional(FamilyNameInitial),
182+ "internationalFirstName": S.optional(S.String),
183+ "internationalFirstNameInitial": S.optional(FirstNameInitial),
184+ "name": S.optional(S.String),
185+ "per": S.optional(S.Int),
186+ "perType": S.optional(PerType),
187+ "player": S.optional(S.String),
188188 "pno": S.Int,
189- "scoreboardName": S.optional(S.NullOr(ScoreboardName)),
189+ "scoreboardName": S.optional(ScoreboardName),
190190 "shirtNumber": S.String,
191- "summary": S.optional(S.NullOr(S.String)),
192- "times": S.optional(S.NullOr(S.Array(Time))),
191+ "summary": S.optional(S.String),
192+ "times": S.optional(S.Array(Time)),
193193 "tno": S.Int,
194- "tot": S.optional(S.NullOr(S.Int)),
195-}) {}
196-
197-export class Totallds extends S.Class<Totallds>("Totallds")({
198- "sAssists": S.Record({ key: S.String, value: Scorer}),
199- "sBlocks": S.Record({ key: S.String, value: Scorer}),
200- "sPoints": S.Record({ key: S.String, value: Scorer}),
201- "sReboundsTotal": S.Record({ key: S.String, value: Scorer}),
202- "sSteals": S.Record({ key: S.String, value: Scorer}),
194+ "tot": S.optional(S.Int),
203195 }) {}
204196
205197 export class Pbp extends S.Class<Pbp>("Pbp")({
206198 "actionType": ActionType,
207- "familyName": S.optional(S.NullOr(S.String)),
208- "familyNameInitial": S.optional(S.NullOr(FamilyNameInitial)),
209- "firstName": S.optional(S.NullOr(S.String)),
210- "firstNameInitial": S.optional(S.NullOr(FirstNameInitial)),
199+ "familyName": S.optional(S.String),
200+ "familyNameInitial": S.optional(FamilyNameInitial),
201+ "firstName": S.optional(S.String),
202+ "firstNameInitial": S.optional(FirstNameInitial),
211203 "gt": S.String,
212- "internationalFamilyName": S.optional(S.NullOr(S.String)),
213- "internationalFamilyNameInitial": S.optional(S.NullOr(FamilyNameInitial)),
214- "internationalFirstName": S.optional(S.NullOr(S.String)),
215- "internationalFirstNameInitial": S.optional(S.NullOr(FirstNameInitial)),
204+ "internationalFamilyName": S.optional(S.String),
205+ "internationalFamilyNameInitial": S.optional(FamilyNameInitial),
206+ "internationalFirstName": S.optional(S.String),
207+ "internationalFirstNameInitial": S.optional(FirstNameInitial),
216208 "lead": S.Int,
217209 "period": S.Int,
218210 "periodType": PerType,
@@ -221,7 +213,7 @@ export class Pbp extends S.Class<Pbp>("Pbp")({
221213 "qualifier": S.String,
222214 "s1": S.Int,
223215 "s2": S.Int,
224- "scoreboardName": S.optional(S.NullOr(ScoreboardName)),
216+ "scoreboardName": S.optional(ScoreboardName),
225217 "scoring": S.Int,
226218 "shirtNumber": S.String,
227219 "subType": S.String,
@@ -229,6 +221,14 @@ export class Pbp extends S.Class<Pbp>("Pbp")({
229221 "tno": S.Int,
230222 }) {}
231223
224+export class Totallds extends S.Class<Totallds>("Totallds")({
225+ "sAssists": S.Record({ key: S.String, value: Scorer}),
226+ "sBlocks": S.Record({ key: S.String, value: Scorer}),
227+ "sPoints": S.Record({ key: S.String, value: Scorer}),
228+ "sReboundsTotal": S.Record({ key: S.String, value: Scorer}),
229+ "sSteals": S.Record({ key: S.String, value: Scorer}),
230+}) {}
231+
232232 export class Team extends S.Class<Team>("Team")({
233233 "teamCode": S.String,
234234 "teamCodeInternational": S.String,
@@ -250,6 +250,29 @@ export class Othermatch extends S.Class<Othermatch>("Othermatch")({
250250 "team2Score": S.Int,
251251 }) {}
252252
253+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
254+ "attendance": S.Int,
255+ "clock": S.String,
256+ "disableMatch": S.Int,
257+ "inOT": S.Int,
258+ "leaddata": S.Array(S.Array(S.Union(LeaddatumEnum, S.Int))),
259+ "officials_referee1": S.String,
260+ "officials_referee2": S.String,
261+ "officials_referee3": S.String,
262+ "othermatches": S.Array(Othermatch),
263+ "pbp": S.Array(Pbp),
264+ "period": S.Int,
265+ "periodLengthOVERTIME": S.Int,
266+ "periodLengthREGULAR": S.Int,
267+ "periodType": PerType,
268+ "periodsMax": S.Int,
269+ "scorers": S.Record({ key: S.String, value: S.Array(Scorer)}),
270+ "timeline": S.Array(S.Any),
271+ "tm": S.Record({ key: S.String, value: S.suspend(() => Tm)}),
272+ "totalTimeAdded": S.Int,
273+ "totallds": Totallds,
274+}) {}
275+
253276 export class SBlocks extends S.Class<SBlocks>("SBlocks")({
254277 "1": Scorer,
255278 }) {}
@@ -329,26 +352,3 @@ export class Tm extends S.Class<Tm>("Tm")({
329352 "tot_sTwoPointersMade": S.Int,
330353 "tot_sTwoPointersPercentage": S.Int,
331354 }) {}
332-
333-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
334- "attendance": S.Int,
335- "clock": S.String,
336- "disableMatch": S.Int,
337- "inOT": S.Int,
338- "leaddata": S.Array(S.Array(S.Union(LeaddatumEnum, S.Int))),
339- "officials_referee1": S.String,
340- "officials_referee2": S.String,
341- "officials_referee3": S.String,
342- "othermatches": S.Array(Othermatch),
343- "pbp": S.Array(Pbp),
344- "period": S.Int,
345- "periodLengthOVERTIME": S.Int,
346- "periodLengthREGULAR": S.Int,
347- "periodType": PerType,
348- "periodsMax": S.Int,
349- "scorers": S.Record({ key: S.String, value: S.Array(Scorer)}),
350- "timeline": S.Array(S.Any),
351- "tm": S.Record({ key: S.String, value: Tm}),
352- "totalTimeAdded": S.Int,
353- "totallds": Totallds,
354-}) {}
Test case

test/inputs/json/priority/optional-union.json

1 generated file · +1 −1
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
5- "a": S.optional(S.Union(S.Int, S.String, S.Null)),
5+ "a": S.optional(S.Union(S.Int, S.String)),
66 }) {}
77
88 export const TopLevel = S.Array(TopLevelElement);
Test case

test/inputs/json/priority/recursive.json

1 generated file · +9 −9
Mtypescript-effect-schemadefault / TopLevel.ts+9 −9
@@ -1,15 +1,8 @@
11 import * as S from "effect/Schema";
22
33
4-export class FormatsClass extends S.Class<FormatsClass>("FormatsClass")({
5- "formats": S.optional(S.NullOr(S.Array(S.suspend(() => Format)))),
6- "height": S.Int,
7- "url": S.String,
8- "width": S.Int,
9-}) {}
10-
114 export class Format extends S.Class<Format>("Format")({
12- "formats": FormatsClass,
5+ "formats": S.suspend(() => FormatsClass),
136 }) {}
147
158 export class Currency extends S.Class<Currency>("Currency")({
@@ -79,7 +72,7 @@ export class ProductProduct extends S.Class<ProductProduct>("ProductProduct")({
7972 "quantity": S.Int,
8073 "rating": Rating,
8174 "specification": Specification,
82- "thumbnail": FormatsClass,
75+ "thumbnail": S.suspend(() => FormatsClass),
8376 "totalsellers": S.Int,
8477 }) {}
8578
@@ -123,3 +116,10 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
123116 "totalresultsavailable": S.Int,
124117 "totalresultsreturned": S.Int,
125118 }) {}
119+
120+export class FormatsClass extends S.Class<FormatsClass>("FormatsClass")({
121+ "formats": S.optional(S.Array(Format)),
122+ "height": S.Int,
123+ "url": S.String,
124+ "width": S.Int,
125+}) {}
Test case

test/inputs/json/samples/github-events.json

1 generated file · +19 −19
Mtypescript-effect-schemadefault / TopLevel.ts+19 −19
@@ -230,22 +230,22 @@ export class Milestone extends S.Class<Milestone>("Milestone")({
230230 }) {}
231231
232232 export class Payload extends S.Class<Payload>("Payload")({
233- "action": S.optional(S.NullOr(S.String)),
234- "before": S.optional(S.NullOr(S.String)),
235- "comment": S.optional(S.NullOr(Comment)),
236- "commits": S.optional(S.NullOr(S.Array(Commit))),
237- "description": S.optional(S.NullOr(S.String)),
238- "distinct_size": S.optional(S.NullOr(S.Int)),
239- "head": S.optional(S.NullOr(S.String)),
240- "issue": S.optional(S.NullOr(S.suspend(() => Issue))),
241- "master_branch": S.optional(S.NullOr(S.String)),
242- "number": S.optional(S.NullOr(S.Int)),
243- "pull_request": S.optional(S.NullOr(PayloadPullRequest)),
244- "push_id": S.optional(S.NullOr(S.Int)),
245- "pusher_type": S.optional(S.NullOr(S.String)),
246- "ref": S.optional(S.NullOr(S.String)),
247- "ref_type": S.optional(S.NullOr(S.String)),
248- "size": S.optional(S.NullOr(S.Int)),
233+ "action": S.optional(S.String),
234+ "before": S.optional(S.String),
235+ "comment": S.optional(Comment),
236+ "commits": S.optional(S.Array(Commit)),
237+ "description": S.optional(S.String),
238+ "distinct_size": S.optional(S.Int),
239+ "head": S.optional(S.String),
240+ "issue": S.optional(S.suspend(() => Issue)),
241+ "master_branch": S.optional(S.String),
242+ "number": S.optional(S.Int),
243+ "pull_request": S.optional(PayloadPullRequest),
244+ "push_id": S.optional(S.Int),
245+ "pusher_type": S.optional(S.String),
246+ "ref": S.optional(S.String),
247+ "ref_type": S.optional(S.String),
248+ "size": S.optional(S.Int),
249249 }) {}
250250
251251 export class Issue extends S.Class<Issue>("Issue")({
@@ -264,7 +264,7 @@ export class Issue extends S.Class<Issue>("Issue")({
264264 "locked": S.Boolean,
265265 "milestone": S.NullOr(Milestone),
266266 "number": S.Int,
267- "pull_request": S.optional(S.NullOr(IssuePullRequest)),
267+ "pull_request": S.optional(IssuePullRequest),
268268 "repository_url": S.String,
269269 "state": S.String,
270270 "title": S.String,
@@ -275,7 +275,7 @@ export class Issue extends S.Class<Issue>("Issue")({
275275
276276 export class Actor extends S.Class<Actor>("Actor")({
277277 "avatar_url": S.String,
278- "display_login": S.optional(S.NullOr(S.String)),
278+ "display_login": S.optional(S.String),
279279 "gravatar_id": S.String,
280280 "id": S.Int,
281281 "login": S.String,
@@ -286,7 +286,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
286286 "actor": Actor,
287287 "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
288288 "id": S.String,
289- "org": S.optional(S.NullOr(Actor)),
289+ "org": S.optional(Actor),
290290 "payload": Payload,
291291 "public": S.Boolean,
292292 "repo": TopLevelRepo,
Test case

test/inputs/json/samples/kitchen-sink.json

1 generated file · +1 −1
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -9,7 +9,7 @@ export class PurplePerson extends S.Class<PurplePerson>("PurplePerson")({
99 export class PersonElement extends S.Class<PersonElement>("PersonElement")({
1010 "intOrString": S.Union(S.Int, S.NumberFromString.pipe(S.int())),
1111 "name": S.String,
12- "optionalValue": S.optional(S.NullOr(S.Boolean)),
12+ "optionalValue": S.optional(S.Boolean),
1313 }) {}
1414
1515 export class DifferentThingClass extends S.Class<DifferentThingClass>("DifferentThingClass")({
Test case

test/inputs/json/samples/null-safe.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -8,8 +8,8 @@ export class Address extends S.Class<Address>("Address")({
88 }) {}
99
1010 export class Item extends S.Class<Item>("Item")({
11- "address": S.optional(S.NullOr(Address)),
12- "created_at": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
11+ "address": S.optional(Address),
12+ "created_at": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
1313 "name": S.String,
1414 "sex": S.NullOr(S.Int),
1515 }) {}
Test case

test/inputs/json/samples/pokedex.json

1 generated file · +3 −3
Mtypescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -41,16 +41,16 @@ export class Evolution extends S.Class<Evolution>("Evolution")({
4141 export class Pokemon extends S.Class<Pokemon>("Pokemon")({
4242 "avg_spawns": S.Number,
4343 "candy": S.String,
44- "candy_count": S.optional(S.NullOr(S.Int)),
44+ "candy_count": S.optional(S.Int),
4545 "egg": Egg,
4646 "height": S.String,
4747 "id": S.Int,
4848 "img": S.String,
4949 "multipliers": S.NullOr(S.Array(S.Number)),
5050 "name": S.String,
51- "next_evolution": S.optional(S.NullOr(S.Array(Evolution))),
51+ "next_evolution": S.optional(S.Array(Evolution)),
5252 "num": S.String,
53- "prev_evolution": S.optional(S.NullOr(S.Array(Evolution))),
53+ "prev_evolution": S.optional(S.Array(Evolution)),
5454 "spawn_chance": S.Number,
5555 "spawn_time": S.String,
5656 "type": S.Array(Type),
Test case

test/inputs/json/samples/reddit.json

1 generated file · +9 −9
Mtypescript-effect-schemadefault / TopLevel.ts+9 −9
@@ -52,11 +52,6 @@ export const Kind = S.Literal(
5252 );
5353 export type Kind = S.Schema.Type<typeof Kind>;
5454
55-export class Variants extends S.Class<Variants>("Variants")({
56- "gif": S.optional(S.NullOr(S.suspend(() => Gif))),
57- "mp4": S.optional(S.NullOr(S.suspend(() => Gif))),
58-}) {}
59-
6055 export class Source extends S.Class<Source>("Source")({
6156 "height": S.Int,
6257 "url": S.String,
@@ -67,7 +62,7 @@ export class Image extends S.Class<Image>("Image")({
6762 "id": S.String,
6863 "resolutions": S.Array(Source),
6964 "source": Source,
70- "variants": Variants,
65+ "variants": S.suspend(() => Variants),
7166 }) {}
7267
7368 export class Preview extends S.Class<Preview>("Preview")({
@@ -159,12 +154,17 @@ export class TopLevelData extends S.Class<TopLevelData>("TopLevelData")({
159154 "modhash": S.String,
160155 }) {}
161156
157+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
158+ "data": TopLevelData,
159+ "kind": S.String,
160+}) {}
161+
162162 export class Gif extends S.Class<Gif>("Gif")({
163163 "resolutions": S.Array(Source),
164164 "source": Source,
165165 }) {}
166166
167-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
168- "data": TopLevelData,
169- "kind": S.String,
167+export class Variants extends S.Class<Variants>("Variants")({
168+ "gif": S.optional(Gif),
169+ "mp4": S.optional(Gif),
170170 }) {}
Test case

test/inputs/json/samples/us-senators.json

1 generated file · +2 −2
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -101,9 +101,9 @@ export class Person extends S.Class<Person>("Person")({
101101 export class Extra extends S.Class<Extra>("Extra")({
102102 "address": S.String,
103103 "contact_form": S.String,
104- "fax": S.optional(S.NullOr(S.String)),
104+ "fax": S.optional(S.String),
105105 "office": S.String,
106- "rss_url": S.optional(S.NullOr(S.String)),
106+ "rss_url": S.optional(S.String),
107107 }) {}
108108
109109 export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
Test case

test/inputs/schema/all-of-additional-properties-false.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -18,6 +18,6 @@ export type Type = S.Schema.Type<typeof Type>;
1818 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
1919 "amount": S.Number,
2020 "frequency": Frequency,
21- "description": S.optional(S.NullOr(S.String)),
21+ "description": S.optional(S.String),
2222 "type": Type,
2323 }) {}
Test case

test/inputs/schema/bool-string.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -7,11 +7,11 @@ export const UnionWithBoolAndEnumEnum = S.Literal(
77 export type UnionWithBoolAndEnumEnum = S.Schema.Type<typeof UnionWithBoolAndEnumEnum>;
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "arrNullable": S.optional(S.NullOr(S.Array(S.NullOr(S.Literal("true", "false"))))),
11- "arrOne": S.optional(S.NullOr(S.Array(S.Literal("true", "false")))),
10+ "arrNullable": S.optional(S.Array(S.NullOr(S.Literal("true", "false")))),
11+ "arrOne": S.optional(S.Array(S.Literal("true", "false"))),
1212 "nullable": S.NullOr(S.Literal("true", "false")),
1313 "one": S.Literal("true", "false"),
14- "optional": S.optional(S.NullOr(S.Literal("true", "false"))),
14+ "optional": S.optional(S.Literal("true", "false")),
1515 "unionWithBool": S.Union(S.Boolean, S.transform(S.Literal("true", "false"), S.Boolean, { strict: true, decode: (value) => value === "true", encode: (value) => value ? "true" : "false" })),
1616 "unionWithBoolAndEnum": S.Union(S.Boolean, S.transform(S.Literal("true", "false"), S.Boolean, { strict: true, decode: (value) => value === "true", encode: (value) => value ? "true" : "false" }), UnionWithBoolAndEnumEnum),
1717 }) {}
Test case

test/inputs/schema/camelCase.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,6 +2,6 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "myProperty": S.optional(S.NullOr(S.String)),
6- "secondProperty": S.optional(S.NullOr(S.String)),
5+ "myProperty": S.optional(S.String),
6+ "secondProperty": S.optional(S.String),
77 }) {}
Test case

test/inputs/schema/class-map-union.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,9 +2,9 @@ import * as S from "effect/Schema";
22
33
44 export class UnionClass extends S.Class<UnionClass>("UnionClass")({
5- "quux": S.optional(S.NullOr(S.Int)),
5+ "quux": S.optional(S.Int),
66 }) {}
77
88 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
9- "union": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Union(S.Boolean, S.Number, S.String, UnionClass)}))),
9+ "union": S.optional(S.Record({ key: S.String, value: S.Union(S.Boolean, S.Number, S.String, UnionClass)})),
1010 }) {}
Test case

test/inputs/schema/class-with-additional.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "map": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Union(S.Boolean, S.Number)}))),
5+ "map": S.optional(S.Record({ key: S.String, value: S.Union(S.Boolean, S.Number)})),
66 }) {}
Test case

test/inputs/schema/comment-injection.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -2,8 +2,8 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "trailingBackslash": S.optional(S.NullOr(S.String)),
6- "trailingQuote": S.optional(S.NullOr(S.String)),
7- "trailingTripleQuote": S.optional(S.NullOr(S.String)),
5+ "trailingBackslash": S.optional(S.String),
6+ "trailingQuote": S.optional(S.String),
7+ "trailingTripleQuote": S.optional(S.String),
88 "value": S.String,
99 }) {}
Test case

test/inputs/schema/constructor.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -5,5 +5,5 @@ export class Constructor extends S.Class<Constructor>("Constructor")({
55 }) {}
66
77 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
8- "constructor": S.optional(S.Union(S.Number, Constructor, S.Null)),
8+ "constructor": S.optional(S.Union(S.Number, Constructor)),
99 }) {}
Test case

test/inputs/schema/description-with-double-quotes.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "foo": S.optional(S.NullOr(S.Boolean)),
5+ "foo": S.optional(S.Boolean),
66 }) {}
Test case

test/inputs/schema/description.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -13,9 +13,9 @@ export class ObjectOrStringClass extends S.Class<ObjectOrStringClass>("ObjectOrS
1313 }) {}
1414
1515 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
16- "bar": S.optional(S.NullOr(S.Boolean)),
16+ "bar": S.optional(S.Boolean),
1717 "enum": Enum,
18- "foo": S.optional(S.NullOr(S.Number)),
18+ "foo": S.optional(S.Number),
1919 "object-or-string": S.Union(S.String, ObjectOrStringClass),
2020 "union": S.Union(S.Number, S.String),
2121 }) {}
Test case

test/inputs/schema/enum.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -25,9 +25,9 @@ export const Lvc = S.Literal(
2525 export type Lvc = S.Schema.Type<typeof Lvc>;
2626
2727 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
28- "arr": S.optional(S.NullOr(S.Array(S.Union(OtherArr, S.Int)))),
29- "for": S.optional(S.NullOr(S.String)),
28+ "arr": S.optional(S.Array(S.Union(OtherArr, S.Int))),
29+ "for": S.optional(S.String),
3030 "gve": Gve,
31- "lvc": S.optional(S.NullOr(Lvc)),
32- "otherArr": S.optional(S.NullOr(S.Array(OtherArr))),
31+ "lvc": S.optional(Lvc),
32+ "otherArr": S.optional(S.Array(OtherArr)),
3333 }) {}
Test case

test/inputs/schema/implicit-one-of.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "foo": S.Int,
6- "bar": S.optional(S.NullOr(S.Boolean)),
7- "quux": S.optional(S.NullOr(S.String)),
6+ "bar": S.optional(S.Boolean),
7+ "quux": S.optional(S.String),
88 }) {}
Test case

test/inputs/schema/integer-string.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -7,11 +7,11 @@ export const UnionWithIntAndEnumEnum = S.Literal(
77 export type UnionWithIntAndEnumEnum = S.Schema.Type<typeof UnionWithIntAndEnumEnum>;
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "arrNullable": S.optional(S.NullOr(S.Array(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))))),
11- "arrOne": S.optional(S.NullOr(S.Array(S.String.pipe(S.pattern(/^-?\d+$/))))),
10+ "arrNullable": S.optional(S.Array(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/))))),
11+ "arrOne": S.optional(S.Array(S.String.pipe(S.pattern(/^-?\d+$/)))),
1212 "nullable": S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/))),
1313 "one": S.String.pipe(S.pattern(/^-?\d+$/)),
14- "optional": S.optional(S.NullOr(S.String.pipe(S.pattern(/^-?\d+$/)))),
14+ "optional": S.optional(S.String.pipe(S.pattern(/^-?\d+$/))),
1515 "unionWithInt": S.Union(S.Int, S.NumberFromString.pipe(S.int())),
1616 "unionWithIntAndEnum": S.Union(UnionWithIntAndEnumEnum, S.Int, S.NumberFromString.pipe(S.int())),
1717 }) {}
Test case

test/inputs/schema/intersection-nested.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "intersection": S.optional(S.NullOr(S.Number)),
5+ "intersection": S.optional(S.Number),
66 }) {}
Test case

test/inputs/schema/intersection.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -3,9 +3,9 @@ import * as S from "effect/Schema";
33
44 export class Intersection extends S.Class<Intersection>("Intersection")({
55 "foo": S.Number,
6- "bar": S.optional(S.NullOr(S.String)),
6+ "bar": S.optional(S.String),
77 }) {}
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "intersection": S.optional(S.NullOr(Intersection)),
10+ "intersection": S.optional(Intersection),
1111 }) {}
Test case

test/inputs/schema/keyword-enum.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -283,5 +283,5 @@ export const Enum = S.Literal(
283283 export type Enum = S.Schema.Type<typeof Enum>;
284284
285285 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
286- "enum": S.optional(S.NullOr(Enum)),
286+ "enum": S.optional(Enum),
287287 }) {}
Test case

test/inputs/schema/keyword-unions.schema

1 generated file · +277 −277
Mschema-typescript-effect-schemadefault / TopLevel.ts+277 −277
@@ -830,281 +830,281 @@ export class Abstract extends S.Class<Abstract>("Abstract")({
830830 }) {}
831831
832832 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
833- "_": S.optional(S.Union(S.Number, Empty, S.Null)),
834- "_Bool": S.optional(S.Union(S.Number, BoolClass, S.Null)),
835- "_Complex": S.optional(S.Union(S.Number, Complex, S.Null)),
836- "_Imaginery": S.optional(S.Union(S.Number, Imaginery, S.Null)),
837- "abstract": S.optional(S.Union(S.Number, Abstract, S.Null)),
838- "alignas": S.optional(S.Union(S.Number, Alignas, S.Null)),
839- "alignof": S.optional(S.Union(S.Number, Alignof, S.Null)),
840- "and": S.optional(S.Union(S.Number, And, S.Null)),
841- "and_eq": S.optional(S.Union(S.Number, AndEq, S.Null)),
842- "any": S.optional(S.Union(S.Number, AnyClass, S.Null)),
843- "Any": S.optional(S.Union(S.Number, Any, S.Null)),
844- "array": S.optional(S.Union(S.Number, ArrayClass, S.Null)),
845- "as": S.optional(S.Union(S.Number, As, S.Null)),
846- "asm": S.optional(S.Union(S.Number, Asm, S.Null)),
847- "assert": S.optional(S.Union(S.Number, Assert, S.Null)),
848- "associatedtype": S.optional(S.Union(S.Number, Associatedtype, S.Null)),
849- "associativity": S.optional(S.Union(S.Number, Associativity, S.Null)),
850- "async": S.optional(S.Union(S.Number, Async, S.Null)),
851- "atomic": S.optional(S.Union(S.Number, Atomic, S.Null)),
852- "atomic_cancel": S.optional(S.Union(S.Number, AtomicCancel, S.Null)),
853- "atomic_commit": S.optional(S.Union(S.Number, AtomicCommit, S.Null)),
854- "atomic_noexcept": S.optional(S.Union(S.Number, AtomicNoexcept, S.Null)),
855- "auto": S.optional(S.Union(S.Number, Auto, S.Null)),
856- "await": S.optional(S.Union(S.Number, Await, S.Null)),
857- "base": S.optional(S.Union(S.Number, Base, S.Null)),
858- "bitand": S.optional(S.Union(S.Number, Bitand, S.Null)),
859- "bitor": S.optional(S.Union(S.Number, Bitor, S.Null)),
860- "BOOL": S.optional(S.Union(S.Number, Bool, S.Null)),
861- "bool": S.optional(S.Union(S.Number, UnionBoolBool, S.Null)),
862- "boolean": S.optional(S.Union(S.Number, Boolean, S.Null)),
863- "break": S.optional(S.Union(S.Number, Break, S.Null)),
864- "bycopy": S.optional(S.Union(S.Number, Bycopy, S.Null)),
865- "byref": S.optional(S.Union(S.Number, Byref, S.Null)),
866- "byte": S.optional(S.Union(S.Number, Byte, S.Null)),
867- "case": S.optional(S.Union(S.Number, Case, S.Null)),
868- "catch": S.optional(S.Union(S.Number, Catch, S.Null)),
869- "chan": S.optional(S.Union(S.Number, Chan, S.Null)),
870- "char": S.optional(S.Union(S.Number, Char, S.Null)),
871- "char16_t": S.optional(S.Union(S.Number, Char16T, S.Null)),
872- "char32_t": S.optional(S.Union(S.Number, Char32T, S.Null)),
873- "checked": S.optional(S.Union(S.Number, Checked, S.Null)),
874- "class": S.optional(S.Union(S.Number, UnionClassClass, S.Null)),
875- "Class": S.optional(S.Union(S.Number, ClassClass, S.Null)),
876- "co_await": S.optional(S.Union(S.Number, CoAwait, S.Null)),
877- "co_return": S.optional(S.Union(S.Number, CoReturn, S.Null)),
878- "co_yield": S.optional(S.Union(S.Number, CoYield, S.Null)),
879- "compl": S.optional(S.Union(S.Number, Compl, S.Null)),
880- "concept": S.optional(S.Union(S.Number, Concept, S.Null)),
881- "console": S.optional(S.Union(S.Number, Console, S.Null)),
882- "const": S.optional(S.Union(S.Number, Const, S.Null)),
883- "const_cast": S.optional(S.Union(S.Number, ConstCast, S.Null)),
884- "constexpr": S.optional(S.Union(S.Number, Constexpr, S.Null)),
885- "constructor": S.optional(S.Union(S.Number, Constructor, S.Null)),
886- "continue": S.optional(S.Union(S.Number, Continue, S.Null)),
887- "convenience": S.optional(S.Union(S.Number, Convenience, S.Null)),
888- "convert": S.optional(S.Union(S.Number, Convert, S.Null)),
889- "converter": S.optional(S.Union(S.Number, Converter, S.Null)),
890- "date": S.optional(S.Union(S.Number, DateClass, S.Null)),
891- "date_parse_handling": S.optional(S.Union(S.Number, DateParseHandling, S.Null)),
892- "debugger": S.optional(S.Union(S.Number, Debugger, S.Null)),
893- "decimal": S.optional(S.Union(S.Number, Decimal, S.Null)),
894- "declare": S.optional(S.Union(S.Number, Declare, S.Null)),
895- "decltype": S.optional(S.Union(S.Number, Decltype, S.Null)),
896- "decode_string": S.optional(S.Union(S.Number, DecodeString, S.Null)),
897- "def": S.optional(S.Union(S.Number, Def, S.Null)),
898- "default": S.optional(S.Union(S.Number, Default, S.Null)),
899- "defer": S.optional(S.Union(S.Number, Defer, S.Null)),
900- "deinit": S.optional(S.Union(S.Number, Deinit, S.Null)),
901- "del": S.optional(S.Union(S.Number, Del, S.Null)),
902- "delegate": S.optional(S.Union(S.Number, Delegate, S.Null)),
903- "delete": S.optional(S.Union(S.Number, Delete, S.Null)),
904- "dict": S.optional(S.Union(S.Number, Dict, S.Null)),
905- "dictionary": S.optional(S.Union(S.Number, Dictionary, S.Null)),
906- "didSet": S.optional(S.Union(S.Number, DidSet, S.Null)),
907- "do": S.optional(S.Union(S.Number, Do, S.Null)),
908- "double": S.optional(S.Union(S.Number, Double, S.Null)),
909- "dummy": S.optional(S.NullOr(S.Number)),
910- "dynamic": S.optional(S.Union(S.Number, Dynamic, S.Null)),
911- "dynamic_cast": S.optional(S.Union(S.Number, DynamicCast, S.Null)),
912- "elif": S.optional(S.Union(S.Number, Elif, S.Null)),
913- "else": S.optional(S.Union(S.Number, Else, S.Null)),
914- "encode_quick_type": S.optional(S.Union(S.Number, EncodeQuickType, S.Null)),
915- "enum": S.optional(S.Union(S.Number, Enum, S.Null)),
916- "event": S.optional(S.Union(S.Number, Event, S.Null)),
917- "except": S.optional(S.Union(S.Number, Except, S.Null)),
918- "exception": S.optional(S.Union(S.Number, Exception, S.Null)),
919- "explicit": S.optional(S.Union(S.Number, Explicit, S.Null)),
920- "export": S.optional(S.Union(S.Number, Export, S.Null)),
921- "exposing": S.optional(S.Union(S.Number, Exposing, S.Null)),
922- "extends": S.optional(S.Union(S.Number, Extends, S.Null)),
923- "extension": S.optional(S.Union(S.Number, Extension, S.Null)),
924- "extern": S.optional(S.Union(S.Number, Extern, S.Null)),
925- "fallthrough": S.optional(S.Union(S.Number, Fallthrough, S.Null)),
926- "false": S.optional(S.Union(S.Number, FalseClass, S.Null)),
927- "False": S.optional(S.Union(S.Number, False, S.Null)),
928- "fileprivate": S.optional(S.Union(S.Number, Fileprivate, S.Null)),
929- "final": S.optional(S.Union(S.Number, Final, S.Null)),
930- "finally": S.optional(S.Union(S.Number, Finally, S.Null)),
931- "fixed": S.optional(S.Union(S.Number, Fixed, S.Null)),
932- "float": S.optional(S.Union(S.Number, Float, S.Null)),
933- "for": S.optional(S.Union(S.Number, For, S.Null)),
934- "foreach": S.optional(S.Union(S.Number, Foreach, S.Null)),
935- "friend": S.optional(S.Union(S.Number, Friend, S.Null)),
936- "from": S.optional(S.Union(S.Number, From, S.Null)),
937- "from_json": S.optional(S.Union(S.Number, FromJson, S.Null)),
938- "func": S.optional(S.Union(S.Number, Func, S.Null)),
939- "function": S.optional(S.Union(S.Number, Function, S.Null)),
940- "get": S.optional(S.Union(S.Number, Get, S.Null)),
941- "global": S.optional(S.Union(S.Number, Global, S.Null)),
942- "go": S.optional(S.Union(S.Number, Go, S.Null)),
943- "goto": S.optional(S.Union(S.Number, Goto, S.Null)),
944- "guard": S.optional(S.Union(S.Number, Guard, S.Null)),
945- "hasOwnProperty": S.optional(S.Union(S.Number, HasOwnProperty, S.Null)),
946- "id": S.optional(S.Union(S.Number, Id, S.Null)),
947- "if": S.optional(S.Union(S.Number, If, S.Null)),
948- "IMP": S.optional(S.Union(S.Number, Imp, S.Null)),
949- "implements": S.optional(S.Union(S.Number, Implements, S.Null)),
950- "implicit": S.optional(S.Union(S.Number, Implicit, S.Null)),
951- "import": S.optional(S.Union(S.Number, Import, S.Null)),
952- "in": S.optional(S.Union(S.Number, In, S.Null)),
953- "indirect": S.optional(S.Union(S.Number, Indirect, S.Null)),
954- "infix": S.optional(S.Union(S.Number, Infix, S.Null)),
955- "init": S.optional(S.Union(S.Number, Init, S.Null)),
956- "inline": S.optional(S.Union(S.Number, Inline, S.Null)),
957- "inout": S.optional(S.Union(S.Number, Inout, S.Null)),
958- "instanceof": S.optional(S.Union(S.Number, Instanceof, S.Null)),
959- "int": S.optional(S.Union(S.Number, Int, S.Null)),
960- "interface": S.optional(S.Union(S.Number, Interface, S.Null)),
961- "internal": S.optional(S.Union(S.Number, Internal, S.Null)),
962- "is": S.optional(S.Union(S.Number, Is, S.Null)),
963- "iterable": S.optional(S.Union(S.Number, Iterable, S.Null)),
964- "jdec": S.optional(S.Union(S.Number, Jdec, S.Null)),
965- "jenc": S.optional(S.Union(S.Number, Jenc, S.Null)),
966- "jpipe": S.optional(S.Union(S.Number, Jpipe, S.Null)),
967- "json": S.optional(S.Union(S.Number, Json, S.Null)),
968- "json_converter": S.optional(S.Union(S.Number, JsonConverter, S.Null)),
969- "json_serializer": S.optional(S.Union(S.Number, JsonSerializer, S.Null)),
970- "json_token": S.optional(S.Union(S.Number, JsonToken, S.Null)),
971- "json_writer": S.optional(S.Union(S.Number, JsonWriter, S.Null)),
972- "lambda": S.optional(S.Union(S.Number, Lambda, S.Null)),
973- "lazy": S.optional(S.Union(S.Number, Lazy, S.Null)),
974- "left": S.optional(S.Union(S.Number, Left, S.Null)),
975- "let": S.optional(S.Union(S.Number, Let, S.Null)),
976- "list": S.optional(S.Union(S.Number, List, S.Null)),
977- "lock": S.optional(S.Union(S.Number, Lock, S.Null)),
978- "long": S.optional(S.Union(S.Number, Long, S.Null)),
979- "map": S.optional(S.Union(S.Number, Map, S.Null)),
980- "metadata_property_handling": S.optional(S.Union(S.Number, MetadataPropertyHandling, S.Null)),
981- "module": S.optional(S.Union(S.Number, Module, S.Null)),
982- "mutable": S.optional(S.Union(S.Number, Mutable, S.Null)),
983- "mutating": S.optional(S.Union(S.Number, Mutating, S.Null)),
984- "namespace": S.optional(S.Union(S.Number, Namespace, S.Null)),
985- "native": S.optional(S.Union(S.Number, Native, S.Null)),
986- "new": S.optional(S.Union(S.Number, New, S.Null)),
987- "newtonsoft": S.optional(S.Union(S.Number, Newtonsoft, S.Null)),
988- "nil": S.optional(S.Union(S.Number, Nil, S.Null)),
989- "NO": S.optional(S.Union(S.Number, No, S.Null)),
990- "noexcept": S.optional(S.Union(S.Number, Noexcept, S.Null)),
991- "nonatomic": S.optional(S.Union(S.Number, Nonatomic, S.Null)),
992- "none": S.optional(S.Union(S.Number, NoneClass, S.Null)),
993- "None": S.optional(S.Union(S.Number, None, S.Null)),
994- "nonlocal": S.optional(S.Union(S.Number, Nonlocal, S.Null)),
995- "nonmutating": S.optional(S.Union(S.Number, Nonmutating, S.Null)),
996- "not": S.optional(S.Union(S.Number, Not, S.Null)),
997- "not_eq": S.optional(S.Union(S.Number, NotEq, S.Null)),
998- "NSString": S.optional(S.Union(S.Number, NsString, S.Null)),
999- "NULL": S.optional(S.Union(S.Number, Null, S.Null)),
1000- "null": S.optional(S.Union(S.Number, NullClass, S.Null)),
1001- "nullptr": S.optional(S.Union(S.Number, Nullptr, S.Null)),
1002- "number": S.optional(S.Union(S.Number, Number, S.Null)),
1003- "object": S.optional(S.Union(S.Number, ObjectClass, S.Null)),
1004- "of": S.optional(S.Union(S.Number, Of, S.Null)),
1005- "oneway": S.optional(S.Union(S.Number, Oneway, S.Null)),
1006- "open": S.optional(S.Union(S.Number, Open, S.Null)),
1007- "operator": S.optional(S.Union(S.Number, Operator, S.Null)),
1008- "optional": S.optional(S.Union(S.Number, Optional, S.Null)),
1009- "or": S.optional(S.Union(S.Number, Or, S.Null)),
1010- "or_eq": S.optional(S.Union(S.Number, OrEq, S.Null)),
1011- "out": S.optional(S.Union(S.Number, Out, S.Null)),
1012- "override": S.optional(S.Union(S.Number, Override, S.Null)),
1013- "package": S.optional(S.Union(S.Number, Package, S.Null)),
1014- "params": S.optional(S.Union(S.Number, Params, S.Null)),
1015- "pass": S.optional(S.Union(S.Number, Pass, S.Null)),
1016- "port": S.optional(S.Union(S.Number, Port, S.Null)),
1017- "postfix": S.optional(S.Union(S.Number, Postfix, S.Null)),
1018- "precedence": S.optional(S.Union(S.Number, Precedence, S.Null)),
1019- "prefix": S.optional(S.Union(S.Number, Prefix, S.Null)),
1020- "print": S.optional(S.Union(S.Number, Print, S.Null)),
1021- "printf": S.optional(S.Union(S.Number, Printf, S.Null)),
1022- "private": S.optional(S.Union(S.Number, Private, S.Null)),
1023- "protected": S.optional(S.Union(S.Number, Protected, S.Null)),
1024- "Protocol": S.optional(S.Union(S.Number, Protocol, S.Null)),
1025- "protocol": S.optional(S.Union(S.Number, ProtocolClass, S.Null)),
1026- "public": S.optional(S.Union(S.Number, Public, S.Null)),
1027- "quicktype": S.optional(S.Union(S.Number, Quicktype, S.Null)),
1028- "raise": S.optional(S.Union(S.Number, Raise, S.Null)),
1029- "range": S.optional(S.Union(S.Number, Range, S.Null)),
1030- "readonly": S.optional(S.Union(S.Number, Readonly, S.Null)),
1031- "ref": S.optional(S.Union(S.Number, Ref, S.Null)),
1032- "register": S.optional(S.Union(S.Number, Register, S.Null)),
1033- "reinterpret_cast": S.optional(S.Union(S.Number, ReinterpretCast, S.Null)),
1034- "repeat": S.optional(S.Union(S.Number, Repeat, S.Null)),
1035- "require": S.optional(S.Union(S.Number, Require, S.Null)),
1036- "required": S.optional(S.Union(S.Number, Required, S.Null)),
1037- "requires": S.optional(S.Union(S.Number, Requires, S.Null)),
1038- "restrict": S.optional(S.Union(S.Number, Restrict, S.Null)),
1039- "retain": S.optional(S.Union(S.Number, Retain, S.Null)),
1040- "rethrows": S.optional(S.Union(S.Number, Rethrows, S.Null)),
1041- "return": S.optional(S.Union(S.Number, Return, S.Null)),
1042- "right": S.optional(S.Union(S.Number, Right, S.Null)),
1043- "sbyte": S.optional(S.Union(S.Number, Sbyte, S.Null)),
1044- "sealed": S.optional(S.Union(S.Number, Sealed, S.Null)),
1045- "SEL": S.optional(S.Union(S.Number, Sel, S.Null)),
1046- "select": S.optional(S.Union(S.Number, Select, S.Null)),
1047- "Self": S.optional(S.Union(S.Number, Self, S.Null)),
1048- "self": S.optional(S.Union(S.Number, SelfClass, S.Null)),
1049- "serialize": S.optional(S.Union(S.Number, Serialize, S.Null)),
1050- "set": S.optional(S.Union(S.Number, Set, S.Null)),
1051- "short": S.optional(S.Union(S.Number, Short, S.Null)),
1052- "signed": S.optional(S.Union(S.Number, Signed, S.Null)),
1053- "sizeof": S.optional(S.Union(S.Number, Sizeof, S.Null)),
1054- "stackalloc": S.optional(S.Union(S.Number, Stackalloc, S.Null)),
1055- "static": S.optional(S.Union(S.Number, Static, S.Null)),
1056- "static_assert": S.optional(S.Union(S.Number, StaticAssert, S.Null)),
1057- "static_cast": S.optional(S.Union(S.Number, StaticCast, S.Null)),
1058- "strictfp": S.optional(S.Union(S.Number, Strictfp, S.Null)),
1059- "string": S.optional(S.Union(S.Number, StringClass, S.Null)),
1060- "struct": S.optional(S.Union(S.Number, Struct, S.Null)),
1061- "subscript": S.optional(S.Union(S.Number, Subscript, S.Null)),
1062- "super": S.optional(S.Union(S.Number, Super, S.Null)),
1063- "switch": S.optional(S.Union(S.Number, Switch, S.Null)),
1064- "symbol": S.optional(S.Union(S.Number, Symbol, S.Null)),
1065- "synchronized": S.optional(S.Union(S.Number, Synchronized, S.Null)),
1066- "system": S.optional(S.Union(S.Number, System, S.Null)),
1067- "template": S.optional(S.Union(S.Number, Template, S.Null)),
1068- "then": S.optional(S.Union(S.Number, Then, S.Null)),
1069- "this": S.optional(S.Union(S.Number, This, S.Null)),
1070- "thread_local": S.optional(S.Union(S.Number, ThreadLocal, S.Null)),
1071- "throw": S.optional(S.Union(S.Number, Throw, S.Null)),
1072- "throws": S.optional(S.Union(S.Number, Throws, S.Null)),
1073- "to_json": S.optional(S.Union(S.Number, ToJson, S.Null)),
1074- "top_level": S.optional(S.Union(S.Number, TopLevelClass, S.Null)),
1075- "transient": S.optional(S.Union(S.Number, Transient, S.Null)),
1076- "True": S.optional(S.Union(S.Number, True, S.Null)),
1077- "true": S.optional(S.Union(S.Number, TrueClass, S.Null)),
1078- "try": S.optional(S.Union(S.Number, Try, S.Null)),
1079- "Type": S.optional(S.Union(S.Number, Type, S.Null)),
1080- "type": S.optional(S.Union(S.Number, TypeClass, S.Null)),
1081- "typealias": S.optional(S.Union(S.Number, Typealias, S.Null)),
1082- "typedef": S.optional(S.Union(S.Number, Typedef, S.Null)),
1083- "typeid": S.optional(S.Union(S.Number, Typeid, S.Null)),
1084- "typename": S.optional(S.Union(S.Number, Typename, S.Null)),
1085- "typeof": S.optional(S.Union(S.Number, Typeof, S.Null)),
1086- "uint": S.optional(S.Union(S.Number, Uint, S.Null)),
1087- "ulong": S.optional(S.Union(S.Number, Ulong, S.Null)),
1088- "unchecked": S.optional(S.Union(S.Number, Unchecked, S.Null)),
1089- "undefined": S.optional(S.Union(S.Number, Undefined, S.Null)),
1090- "union": S.optional(S.Union(S.Number, Union, S.Null)),
1091- "unowned": S.optional(S.Union(S.Number, Unowned, S.Null)),
1092- "unsafe": S.optional(S.Union(S.Number, Unsafe, S.Null)),
1093- "unsigned": S.optional(S.Union(S.Number, Unsigned, S.Null)),
1094- "ushort": S.optional(S.Union(S.Number, Ushort, S.Null)),
1095- "using": S.optional(S.Union(S.Number, Using, S.Null)),
1096- "var": S.optional(S.Union(S.Number, Var, S.Null)),
1097- "virtual": S.optional(S.Union(S.Number, Virtual, S.Null)),
1098- "void": S.optional(S.Union(S.Number, Void, S.Null)),
1099- "volatile": S.optional(S.Union(S.Number, Volatile, S.Null)),
1100- "wchar_t": S.optional(S.Union(S.Number, WcharT, S.Null)),
1101- "weak": S.optional(S.Union(S.Number, Weak, S.Null)),
1102- "where": S.optional(S.Union(S.Number, Where, S.Null)),
1103- "while": S.optional(S.Union(S.Number, While, S.Null)),
1104- "willSet": S.optional(S.Union(S.Number, WillSet, S.Null)),
1105- "with": S.optional(S.Union(S.Number, With, S.Null)),
1106- "xor": S.optional(S.Union(S.Number, Xor, S.Null)),
1107- "xor_eq": S.optional(S.Union(S.Number, XorEq, S.Null)),
1108- "YES": S.optional(S.Union(S.Number, Yes, S.Null)),
1109- "yield": S.optional(S.Union(S.Number, Yield, S.Null)),
833+ "_": S.optional(S.Union(S.Number, Empty)),
834+ "_Bool": S.optional(S.Union(S.Number, BoolClass)),
835+ "_Complex": S.optional(S.Union(S.Number, Complex)),
836+ "_Imaginery": S.optional(S.Union(S.Number, Imaginery)),
837+ "abstract": S.optional(S.Union(S.Number, Abstract)),
838+ "alignas": S.optional(S.Union(S.Number, Alignas)),
839+ "alignof": S.optional(S.Union(S.Number, Alignof)),
840+ "and": S.optional(S.Union(S.Number, And)),
841+ "and_eq": S.optional(S.Union(S.Number, AndEq)),
842+ "any": S.optional(S.Union(S.Number, AnyClass)),
843+ "Any": S.optional(S.Union(S.Number, Any)),
844+ "array": S.optional(S.Union(S.Number, ArrayClass)),
845+ "as": S.optional(S.Union(S.Number, As)),
846+ "asm": S.optional(S.Union(S.Number, Asm)),
847+ "assert": S.optional(S.Union(S.Number, Assert)),
848+ "associatedtype": S.optional(S.Union(S.Number, Associatedtype)),
849+ "associativity": S.optional(S.Union(S.Number, Associativity)),
850+ "async": S.optional(S.Union(S.Number, Async)),
851+ "atomic": S.optional(S.Union(S.Number, Atomic)),
852+ "atomic_cancel": S.optional(S.Union(S.Number, AtomicCancel)),
853+ "atomic_commit": S.optional(S.Union(S.Number, AtomicCommit)),
854+ "atomic_noexcept": S.optional(S.Union(S.Number, AtomicNoexcept)),
855+ "auto": S.optional(S.Union(S.Number, Auto)),
856+ "await": S.optional(S.Union(S.Number, Await)),
857+ "base": S.optional(S.Union(S.Number, Base)),
858+ "bitand": S.optional(S.Union(S.Number, Bitand)),
859+ "bitor": S.optional(S.Union(S.Number, Bitor)),
860+ "BOOL": S.optional(S.Union(S.Number, Bool)),
861+ "bool": S.optional(S.Union(S.Number, UnionBoolBool)),
862+ "boolean": S.optional(S.Union(S.Number, Boolean)),
863+ "break": S.optional(S.Union(S.Number, Break)),
864+ "bycopy": S.optional(S.Union(S.Number, Bycopy)),
865+ "byref": S.optional(S.Union(S.Number, Byref)),
866+ "byte": S.optional(S.Union(S.Number, Byte)),
867+ "case": S.optional(S.Union(S.Number, Case)),
868+ "catch": S.optional(S.Union(S.Number, Catch)),
869+ "chan": S.optional(S.Union(S.Number, Chan)),
870+ "char": S.optional(S.Union(S.Number, Char)),
871+ "char16_t": S.optional(S.Union(S.Number, Char16T)),
872+ "char32_t": S.optional(S.Union(S.Number, Char32T)),
873+ "checked": S.optional(S.Union(S.Number, Checked)),
874+ "class": S.optional(S.Union(S.Number, UnionClassClass)),
875+ "Class": S.optional(S.Union(S.Number, ClassClass)),
876+ "co_await": S.optional(S.Union(S.Number, CoAwait)),
877+ "co_return": S.optional(S.Union(S.Number, CoReturn)),
878+ "co_yield": S.optional(S.Union(S.Number, CoYield)),
879+ "compl": S.optional(S.Union(S.Number, Compl)),
880+ "concept": S.optional(S.Union(S.Number, Concept)),
881+ "console": S.optional(S.Union(S.Number, Console)),
882+ "const": S.optional(S.Union(S.Number, Const)),
883+ "const_cast": S.optional(S.Union(S.Number, ConstCast)),
884+ "constexpr": S.optional(S.Union(S.Number, Constexpr)),
885+ "constructor": S.optional(S.Union(S.Number, Constructor)),
886+ "continue": S.optional(S.Union(S.Number, Continue)),
887+ "convenience": S.optional(S.Union(S.Number, Convenience)),
888+ "convert": S.optional(S.Union(S.Number, Convert)),
889+ "converter": S.optional(S.Union(S.Number, Converter)),
890+ "date": S.optional(S.Union(S.Number, DateClass)),
891+ "date_parse_handling": S.optional(S.Union(S.Number, DateParseHandling)),
892+ "debugger": S.optional(S.Union(S.Number, Debugger)),
893+ "decimal": S.optional(S.Union(S.Number, Decimal)),
894+ "declare": S.optional(S.Union(S.Number, Declare)),
895+ "decltype": S.optional(S.Union(S.Number, Decltype)),
896+ "decode_string": S.optional(S.Union(S.Number, DecodeString)),
897+ "def": S.optional(S.Union(S.Number, Def)),
898+ "default": S.optional(S.Union(S.Number, Default)),
899+ "defer": S.optional(S.Union(S.Number, Defer)),
900+ "deinit": S.optional(S.Union(S.Number, Deinit)),
901+ "del": S.optional(S.Union(S.Number, Del)),
902+ "delegate": S.optional(S.Union(S.Number, Delegate)),
903+ "delete": S.optional(S.Union(S.Number, Delete)),
904+ "dict": S.optional(S.Union(S.Number, Dict)),
905+ "dictionary": S.optional(S.Union(S.Number, Dictionary)),
906+ "didSet": S.optional(S.Union(S.Number, DidSet)),
907+ "do": S.optional(S.Union(S.Number, Do)),
908+ "double": S.optional(S.Union(S.Number, Double)),
909+ "dummy": S.optional(S.Number),
910+ "dynamic": S.optional(S.Union(S.Number, Dynamic)),
911+ "dynamic_cast": S.optional(S.Union(S.Number, DynamicCast)),
912+ "elif": S.optional(S.Union(S.Number, Elif)),
913+ "else": S.optional(S.Union(S.Number, Else)),
914+ "encode_quick_type": S.optional(S.Union(S.Number, EncodeQuickType)),
915+ "enum": S.optional(S.Union(S.Number, Enum)),
916+ "event": S.optional(S.Union(S.Number, Event)),
917+ "except": S.optional(S.Union(S.Number, Except)),
918+ "exception": S.optional(S.Union(S.Number, Exception)),
919+ "explicit": S.optional(S.Union(S.Number, Explicit)),
920+ "export": S.optional(S.Union(S.Number, Export)),
921+ "exposing": S.optional(S.Union(S.Number, Exposing)),
922+ "extends": S.optional(S.Union(S.Number, Extends)),
923+ "extension": S.optional(S.Union(S.Number, Extension)),
924+ "extern": S.optional(S.Union(S.Number, Extern)),
925+ "fallthrough": S.optional(S.Union(S.Number, Fallthrough)),
926+ "false": S.optional(S.Union(S.Number, FalseClass)),
927+ "False": S.optional(S.Union(S.Number, False)),
928+ "fileprivate": S.optional(S.Union(S.Number, Fileprivate)),
929+ "final": S.optional(S.Union(S.Number, Final)),
930+ "finally": S.optional(S.Union(S.Number, Finally)),
931+ "fixed": S.optional(S.Union(S.Number, Fixed)),
932+ "float": S.optional(S.Union(S.Number, Float)),
933+ "for": S.optional(S.Union(S.Number, For)),
934+ "foreach": S.optional(S.Union(S.Number, Foreach)),
935+ "friend": S.optional(S.Union(S.Number, Friend)),
936+ "from": S.optional(S.Union(S.Number, From)),
937+ "from_json": S.optional(S.Union(S.Number, FromJson)),
938+ "func": S.optional(S.Union(S.Number, Func)),
939+ "function": S.optional(S.Union(S.Number, Function)),
940+ "get": S.optional(S.Union(S.Number, Get)),
941+ "global": S.optional(S.Union(S.Number, Global)),
942+ "go": S.optional(S.Union(S.Number, Go)),
943+ "goto": S.optional(S.Union(S.Number, Goto)),
944+ "guard": S.optional(S.Union(S.Number, Guard)),
945+ "hasOwnProperty": S.optional(S.Union(S.Number, HasOwnProperty)),
946+ "id": S.optional(S.Union(S.Number, Id)),
947+ "if": S.optional(S.Union(S.Number, If)),
948+ "IMP": S.optional(S.Union(S.Number, Imp)),
949+ "implements": S.optional(S.Union(S.Number, Implements)),
950+ "implicit": S.optional(S.Union(S.Number, Implicit)),
951+ "import": S.optional(S.Union(S.Number, Import)),
952+ "in": S.optional(S.Union(S.Number, In)),
953+ "indirect": S.optional(S.Union(S.Number, Indirect)),
954+ "infix": S.optional(S.Union(S.Number, Infix)),
955+ "init": S.optional(S.Union(S.Number, Init)),
956+ "inline": S.optional(S.Union(S.Number, Inline)),
957+ "inout": S.optional(S.Union(S.Number, Inout)),
958+ "instanceof": S.optional(S.Union(S.Number, Instanceof)),
959+ "int": S.optional(S.Union(S.Number, Int)),
960+ "interface": S.optional(S.Union(S.Number, Interface)),
961+ "internal": S.optional(S.Union(S.Number, Internal)),
962+ "is": S.optional(S.Union(S.Number, Is)),
963+ "iterable": S.optional(S.Union(S.Number, Iterable)),
964+ "jdec": S.optional(S.Union(S.Number, Jdec)),
965+ "jenc": S.optional(S.Union(S.Number, Jenc)),
966+ "jpipe": S.optional(S.Union(S.Number, Jpipe)),
967+ "json": S.optional(S.Union(S.Number, Json)),
968+ "json_converter": S.optional(S.Union(S.Number, JsonConverter)),
969+ "json_serializer": S.optional(S.Union(S.Number, JsonSerializer)),
970+ "json_token": S.optional(S.Union(S.Number, JsonToken)),
971+ "json_writer": S.optional(S.Union(S.Number, JsonWriter)),
972+ "lambda": S.optional(S.Union(S.Number, Lambda)),
973+ "lazy": S.optional(S.Union(S.Number, Lazy)),
974+ "left": S.optional(S.Union(S.Number, Left)),
975+ "let": S.optional(S.Union(S.Number, Let)),
976+ "list": S.optional(S.Union(S.Number, List)),
977+ "lock": S.optional(S.Union(S.Number, Lock)),
978+ "long": S.optional(S.Union(S.Number, Long)),
979+ "map": S.optional(S.Union(S.Number, Map)),
980+ "metadata_property_handling": S.optional(S.Union(S.Number, MetadataPropertyHandling)),
981+ "module": S.optional(S.Union(S.Number, Module)),
982+ "mutable": S.optional(S.Union(S.Number, Mutable)),
983+ "mutating": S.optional(S.Union(S.Number, Mutating)),
984+ "namespace": S.optional(S.Union(S.Number, Namespace)),
985+ "native": S.optional(S.Union(S.Number, Native)),
986+ "new": S.optional(S.Union(S.Number, New)),
987+ "newtonsoft": S.optional(S.Union(S.Number, Newtonsoft)),
988+ "nil": S.optional(S.Union(S.Number, Nil)),
989+ "NO": S.optional(S.Union(S.Number, No)),
990+ "noexcept": S.optional(S.Union(S.Number, Noexcept)),
991+ "nonatomic": S.optional(S.Union(S.Number, Nonatomic)),
992+ "none": S.optional(S.Union(S.Number, NoneClass)),
993+ "None": S.optional(S.Union(S.Number, None)),
994+ "nonlocal": S.optional(S.Union(S.Number, Nonlocal)),
995+ "nonmutating": S.optional(S.Union(S.Number, Nonmutating)),
996+ "not": S.optional(S.Union(S.Number, Not)),
997+ "not_eq": S.optional(S.Union(S.Number, NotEq)),
998+ "NSString": S.optional(S.Union(S.Number, NsString)),
999+ "NULL": S.optional(S.Union(S.Number, Null)),
1000+ "null": S.optional(S.Union(S.Number, NullClass)),
1001+ "nullptr": S.optional(S.Union(S.Number, Nullptr)),
1002+ "number": S.optional(S.Union(S.Number, Number)),
1003+ "object": S.optional(S.Union(S.Number, ObjectClass)),
1004+ "of": S.optional(S.Union(S.Number, Of)),
1005+ "oneway": S.optional(S.Union(S.Number, Oneway)),
1006+ "open": S.optional(S.Union(S.Number, Open)),
1007+ "operator": S.optional(S.Union(S.Number, Operator)),
1008+ "optional": S.optional(S.Union(S.Number, Optional)),
1009+ "or": S.optional(S.Union(S.Number, Or)),
1010+ "or_eq": S.optional(S.Union(S.Number, OrEq)),
1011+ "out": S.optional(S.Union(S.Number, Out)),
1012+ "override": S.optional(S.Union(S.Number, Override)),
1013+ "package": S.optional(S.Union(S.Number, Package)),
1014+ "params": S.optional(S.Union(S.Number, Params)),
1015+ "pass": S.optional(S.Union(S.Number, Pass)),
1016+ "port": S.optional(S.Union(S.Number, Port)),
1017+ "postfix": S.optional(S.Union(S.Number, Postfix)),
1018+ "precedence": S.optional(S.Union(S.Number, Precedence)),
1019+ "prefix": S.optional(S.Union(S.Number, Prefix)),
1020+ "print": S.optional(S.Union(S.Number, Print)),
1021+ "printf": S.optional(S.Union(S.Number, Printf)),
1022+ "private": S.optional(S.Union(S.Number, Private)),
1023+ "protected": S.optional(S.Union(S.Number, Protected)),
1024+ "Protocol": S.optional(S.Union(S.Number, Protocol)),
1025+ "protocol": S.optional(S.Union(S.Number, ProtocolClass)),
1026+ "public": S.optional(S.Union(S.Number, Public)),
1027+ "quicktype": S.optional(S.Union(S.Number, Quicktype)),
1028+ "raise": S.optional(S.Union(S.Number, Raise)),
1029+ "range": S.optional(S.Union(S.Number, Range)),
1030+ "readonly": S.optional(S.Union(S.Number, Readonly)),
1031+ "ref": S.optional(S.Union(S.Number, Ref)),
1032+ "register": S.optional(S.Union(S.Number, Register)),
1033+ "reinterpret_cast": S.optional(S.Union(S.Number, ReinterpretCast)),
1034+ "repeat": S.optional(S.Union(S.Number, Repeat)),
1035+ "require": S.optional(S.Union(S.Number, Require)),
1036+ "required": S.optional(S.Union(S.Number, Required)),
1037+ "requires": S.optional(S.Union(S.Number, Requires)),
1038+ "restrict": S.optional(S.Union(S.Number, Restrict)),
1039+ "retain": S.optional(S.Union(S.Number, Retain)),
1040+ "rethrows": S.optional(S.Union(S.Number, Rethrows)),
1041+ "return": S.optional(S.Union(S.Number, Return)),
1042+ "right": S.optional(S.Union(S.Number, Right)),
1043+ "sbyte": S.optional(S.Union(S.Number, Sbyte)),
1044+ "sealed": S.optional(S.Union(S.Number, Sealed)),
1045+ "SEL": S.optional(S.Union(S.Number, Sel)),
1046+ "select": S.optional(S.Union(S.Number, Select)),
1047+ "Self": S.optional(S.Union(S.Number, Self)),
1048+ "self": S.optional(S.Union(S.Number, SelfClass)),
1049+ "serialize": S.optional(S.Union(S.Number, Serialize)),
1050+ "set": S.optional(S.Union(S.Number, Set)),
1051+ "short": S.optional(S.Union(S.Number, Short)),
1052+ "signed": S.optional(S.Union(S.Number, Signed)),
1053+ "sizeof": S.optional(S.Union(S.Number, Sizeof)),
1054+ "stackalloc": S.optional(S.Union(S.Number, Stackalloc)),
1055+ "static": S.optional(S.Union(S.Number, Static)),
1056+ "static_assert": S.optional(S.Union(S.Number, StaticAssert)),
1057+ "static_cast": S.optional(S.Union(S.Number, StaticCast)),
1058+ "strictfp": S.optional(S.Union(S.Number, Strictfp)),
1059+ "string": S.optional(S.Union(S.Number, StringClass)),
1060+ "struct": S.optional(S.Union(S.Number, Struct)),
1061+ "subscript": S.optional(S.Union(S.Number, Subscript)),
1062+ "super": S.optional(S.Union(S.Number, Super)),
1063+ "switch": S.optional(S.Union(S.Number, Switch)),
1064+ "symbol": S.optional(S.Union(S.Number, Symbol)),
1065+ "synchronized": S.optional(S.Union(S.Number, Synchronized)),
1066+ "system": S.optional(S.Union(S.Number, System)),
1067+ "template": S.optional(S.Union(S.Number, Template)),
1068+ "then": S.optional(S.Union(S.Number, Then)),
1069+ "this": S.optional(S.Union(S.Number, This)),
1070+ "thread_local": S.optional(S.Union(S.Number, ThreadLocal)),
1071+ "throw": S.optional(S.Union(S.Number, Throw)),
1072+ "throws": S.optional(S.Union(S.Number, Throws)),
1073+ "to_json": S.optional(S.Union(S.Number, ToJson)),
1074+ "top_level": S.optional(S.Union(S.Number, TopLevelClass)),
1075+ "transient": S.optional(S.Union(S.Number, Transient)),
1076+ "True": S.optional(S.Union(S.Number, True)),
1077+ "true": S.optional(S.Union(S.Number, TrueClass)),
1078+ "try": S.optional(S.Union(S.Number, Try)),
1079+ "Type": S.optional(S.Union(S.Number, Type)),
1080+ "type": S.optional(S.Union(S.Number, TypeClass)),
1081+ "typealias": S.optional(S.Union(S.Number, Typealias)),
1082+ "typedef": S.optional(S.Union(S.Number, Typedef)),
1083+ "typeid": S.optional(S.Union(S.Number, Typeid)),
1084+ "typename": S.optional(S.Union(S.Number, Typename)),
1085+ "typeof": S.optional(S.Union(S.Number, Typeof)),
1086+ "uint": S.optional(S.Union(S.Number, Uint)),
1087+ "ulong": S.optional(S.Union(S.Number, Ulong)),
1088+ "unchecked": S.optional(S.Union(S.Number, Unchecked)),
1089+ "undefined": S.optional(S.Union(S.Number, Undefined)),
1090+ "union": S.optional(S.Union(S.Number, Union)),
1091+ "unowned": S.optional(S.Union(S.Number, Unowned)),
1092+ "unsafe": S.optional(S.Union(S.Number, Unsafe)),
1093+ "unsigned": S.optional(S.Union(S.Number, Unsigned)),
1094+ "ushort": S.optional(S.Union(S.Number, Ushort)),
1095+ "using": S.optional(S.Union(S.Number, Using)),
1096+ "var": S.optional(S.Union(S.Number, Var)),
1097+ "virtual": S.optional(S.Union(S.Number, Virtual)),
1098+ "void": S.optional(S.Union(S.Number, Void)),
1099+ "volatile": S.optional(S.Union(S.Number, Volatile)),
1100+ "wchar_t": S.optional(S.Union(S.Number, WcharT)),
1101+ "weak": S.optional(S.Union(S.Number, Weak)),
1102+ "where": S.optional(S.Union(S.Number, Where)),
1103+ "while": S.optional(S.Union(S.Number, While)),
1104+ "willSet": S.optional(S.Union(S.Number, WillSet)),
1105+ "with": S.optional(S.Union(S.Number, With)),
1106+ "xor": S.optional(S.Union(S.Number, Xor)),
1107+ "xor_eq": S.optional(S.Union(S.Number, XorEq)),
1108+ "YES": S.optional(S.Union(S.Number, Yes)),
1109+ "yield": S.optional(S.Union(S.Number, Yield)),
11101110 }) {}
Test case

test/inputs/schema/list.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "next": S.optional(S.NullOr(S.suspend(() => TopLevel))),
5+ "next": S.optional(S.suspend(() => TopLevel)),
66 }) {}
Test case

test/inputs/schema/mutually-recursive.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -1,10 +1,10 @@
11 import * as S from "effect/Schema";
22
33
4-export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "bar": S.optional(S.NullOr(S.suspend(() => Bar))),
4+export class Bar extends S.Class<Bar>("Bar")({
5+ "foo": S.Union(S.Array(S.suspend(() => TopLevel)), S.suspend(() => TopLevel)),
66 }) {}
77
8-export class Bar extends S.Class<Bar>("Bar")({
9- "foo": S.Union(S.Array(TopLevel), TopLevel),
8+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
9+ "bar": S.optional(Bar),
1010 }) {}
Test case

test/inputs/schema/nested-intersection-union.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -2,10 +2,10 @@ import * as S from "effect/Schema";
22
33
44 export class Item extends S.Class<Item>("Item")({
5- "content": S.optional(S.NullOr(S.String)),
6- "id": S.optional(S.NullOr(S.String)),
7- "output": S.optional(S.NullOr(S.String)),
8- "summary": S.optional(S.NullOr(S.String)),
5+ "content": S.optional(S.String),
6+ "id": S.optional(S.String),
7+ "output": S.optional(S.String),
8+ "summary": S.optional(S.String),
99 }) {}
1010
1111 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
Test case

test/inputs/schema/object-type-required.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,5 +3,5 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "foo": S.String,
6- "bar": S.optional(S.NullOr(S.String)),
6+ "bar": S.optional(S.String),
77 }) {}
Test case

test/inputs/schema/optional-const-ref.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -7,11 +7,11 @@ export class Coordinate extends S.Class<Coordinate>("Coordinate")({
77 }) {}
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "coordinates": S.optional(S.NullOr(S.Array(Coordinate))),
11- "count": S.optional(S.NullOr(S.Int.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(100)))),
12- "label": S.optional(S.NullOr(S.String.pipe(S.filter(value => Array.from(value).length >= 2)).pipe(S.filter(value => Array.from(value).length <= 16)))),
10+ "coordinates": S.optional(S.Array(Coordinate)),
11+ "count": S.optional(S.Int.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(100))),
12+ "label": S.optional(S.String.pipe(S.filter(value => Array.from(value).length >= 2)).pipe(S.filter(value => Array.from(value).length <= 16))),
1313 "requiredCoordinates": S.Array(Coordinate),
1414 "requiredCount": S.Int.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(100)),
1515 "requiredLabel": S.String.pipe(S.filter(value => Array.from(value).length >= 2)).pipe(S.filter(value => Array.from(value).length <= 16)),
16- "weight": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0.5)).pipe(S.lessThanOrEqualTo(99.5)))),
16+ "weight": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0.5)).pipe(S.lessThanOrEqualTo(99.5))),
1717 }) {}
Test case

test/inputs/schema/optional-constraints.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -2,9 +2,9 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "optDouble": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0.5)).pipe(S.lessThanOrEqualTo(99.5)))),
6- "optInt": S.optional(S.NullOr(S.Int.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(100)))),
7- "optPattern": S.optional(S.NullOr(S.String.pipe(S.pattern(new RegExp("^[a-z]+$"))))),
8- "optString": S.optional(S.NullOr(S.String.pipe(S.filter(value => Array.from(value).length >= 3)).pipe(S.filter(value => Array.from(value).length <= 10)))),
5+ "optDouble": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0.5)).pipe(S.lessThanOrEqualTo(99.5))),
6+ "optInt": S.optional(S.Int.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(100))),
7+ "optPattern": S.optional(S.String.pipe(S.pattern(new RegExp("^[a-z]+$")))),
8+ "optString": S.optional(S.String.pipe(S.filter(value => Array.from(value).length >= 3)).pipe(S.filter(value => Array.from(value).length <= 10))),
99 "reqZeroMin": S.Int.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(100)),
1010 }) {}
Test case

test/inputs/schema/optional-date-time.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -2,9 +2,9 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "optional-date": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)))),
6- "optional-date-time": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
7- "optional-time": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
5+ "optional-date": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/))),
6+ "optional-date-time": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
7+ "optional-time": S.optional(S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
88 "required-date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
99 "required-date-time": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
1010 "required-time": S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
Test case

test/inputs/schema/optional-enum.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -9,5 +9,5 @@ export type Shortcut = S.Schema.Type<typeof Shortcut>;
99
1010 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
1111 "name": S.String,
12- "shortcut": S.optional(S.NullOr(Shortcut)),
12+ "shortcut": S.optional(Shortcut),
1313 }) {}
Test case

test/inputs/schema/optional-property.schema

10 generated files · +888 −0
Aschema-cjsondefault / TopLevel.c+65 −0
@@ -0,0 +1,65 @@
1+/**
2+ * TopLevel.c
3+ * This file has been autogenerated using quicktype https://github.com/quicktype/quicktype - DO NOT EDIT
4+ */
5+
6+#include "TopLevel.h"
7+
8+struct TopLevel * cJSON_ParseTopLevel(const char * s) {
9+ struct TopLevel * x = NULL;
10+ if (NULL != s) {
11+ cJSON * j = cJSON_Parse(s);
12+ if (NULL != j) {
13+ x = cJSON_GetTopLevelValue(j);
14+ cJSON_Delete(j);
15+ }
16+ }
17+ return x;
18+}
19+
20+struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
21+ struct TopLevel * x = NULL;
22+ if (NULL != j) {
23+ if (NULL != (x = cJSON_malloc(sizeof(struct TopLevel)))) {
24+ memset(x, 0, sizeof(struct TopLevel));
25+ if (cJSON_HasObjectItem(j, "value")) {
26+ if (!cJSON_IsString(cJSON_GetObjectItemCaseSensitive(j, "value"))) { cJSON_DeleteTopLevel(x); return NULL; }
27+ x->value = strdup(cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(j, "value")));
28+ }
29+ }
30+ }
31+ return x;
32+}
33+
34+cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
35+ cJSON * j = NULL;
36+ if (NULL != x) {
37+ if (NULL != (j = cJSON_CreateObject())) {
38+ if (NULL != x->value) {
39+ cJSON_AddStringToObject(j, "value", x->value);
40+ }
41+ }
42+ }
43+ return j;
44+}
45+
46+char * cJSON_PrintTopLevel(const struct TopLevel * x) {
47+ char * s = NULL;
48+ if (NULL != x) {
49+ cJSON * j = cJSON_CreateTopLevel(x);
50+ if (NULL != j) {
51+ s = cJSON_Print(j);
52+ cJSON_Delete(j);
53+ }
54+ }
55+ return s;
56+}
57+
58+void cJSON_DeleteTopLevel(struct TopLevel * x) {
59+ if (NULL != x) {
60+ if (NULL != x->value) {
61+ cJSON_free(x->value);
62+ }
63+ cJSON_free(x);
64+ }
65+}
Aschema-cjsondefault / TopLevel.h+55 −0
@@ -0,0 +1,55 @@
1+/**
2+ * TopLevel.h
3+ * This file has been autogenerated using quicktype https://github.com/quicktype/quicktype - DO NOT EDIT
4+ * This file depends of https://github.com/DaveGamble/cJSON, https://github.com/joelguittet/c-list and https://github.com/joelguittet/c-hashtable
5+ * To parse json data from json string use the following: struct <type> * data = cJSON_Parse<type>(<string>);
6+ * To get json data from cJSON object use the following: struct <type> * data = cJSON_Get<type>Value(<cjson>);
7+ * To get cJSON object from json data use the following: cJSON * cjson = cJSON_Create<type>(<data>);
8+ * To print json string from json data use the following: char * string = cJSON_Print<type>(<data>);
9+ * To delete json data use the following: cJSON_Delete<type>(<data>);
10+ */
11+
12+#ifndef __TOPLEVEL_H__
13+#define __TOPLEVEL_H__
14+
15+#ifdef __cplusplus
16+extern "C" {
17+#endif
18+
19+#include <stdint.h>
20+#include <stdbool.h>
21+#include <stdlib.h>
22+#include <string.h>
23+#include <regex.h>
24+#include <cJSON.h>
25+#include <hashtable.h>
26+#include <list.h>
27+
28+#define quicktype_cJSON_Duplicate(j) cJSON_Duplicate(j, true)
29+#define cJSON_Integer (1 << 18)
30+#define quicktype_cJSON_IsInteger(j) (cJSON_IsNumber(j) && (j)->valuedouble == (int64_t)(j)->valuedouble)
31+#ifndef cJSON_Bool
32+#define cJSON_Bool (cJSON_True | cJSON_False)
33+#endif
34+#ifndef cJSON_Map
35+#define cJSON_Map (1 << 16)
36+#endif
37+#ifndef cJSON_Enum
38+#define cJSON_Enum (1 << 17)
39+#endif
40+
41+struct TopLevel {
42+ char * value;
43+};
44+
45+struct TopLevel * cJSON_ParseTopLevel(const char * s);
46+struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j);
47+cJSON * cJSON_CreateTopLevel(const struct TopLevel * x);
48+char * cJSON_PrintTopLevel(const struct TopLevel * x);
49+void cJSON_DeleteTopLevel(struct TopLevel * x);
50+
51+#ifdef __cplusplus
52+}
53+#endif
54+
55+#endif /* __TOPLEVEL_H__ */
Aschema-csharp-recordsdefault / QuickType.cs+61 −0
@@ -0,0 +1,61 @@
1+// <auto-generated />
2+//
3+// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
4+//
5+// using QuickType;
6+//
7+// var topLevel = TopLevel.FromJson(jsonString);
8+#nullable enable
9+#pragma warning disable CS8618
10+#pragma warning disable CS8601
11+#pragma warning disable CS8602
12+#pragma warning disable CS8603
13+#pragma warning disable CS8604
14+#pragma warning disable CS8625
15+#pragma warning disable CS8765
16+
17+namespace QuickType
18+{
19+ using System;
20+ using System.Collections.Generic;
21+
22+ using System.Globalization;
23+ using Newtonsoft.Json;
24+ using Newtonsoft.Json.Converters;
25+
26+ public partial record TopLevel
27+ {
28+ [JsonProperty("value", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
29+ public string? Value { get; set; }
30+ }
31+
32+ public partial record TopLevel
33+ {
34+ public static TopLevel FromJson(string json) => JsonConvert.DeserializeObject<TopLevel>(json, QuickType.Converter.Settings);
35+ }
36+
37+ public static partial class Serialize
38+ {
39+ public static string ToJson(this TopLevel self) => JsonConvert.SerializeObject(self, QuickType.Converter.Settings);
40+ }
41+
42+ internal static partial class Converter
43+ {
44+ public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
45+ {
46+ MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
47+ DateParseHandling = DateParseHandling.None,
48+ Converters =
49+ {
50+ new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
51+ },
52+ };
53+ }
54+}
55+#pragma warning restore CS8618
56+#pragma warning restore CS8601
57+#pragma warning restore CS8602
58+#pragma warning restore CS8603
59+#pragma warning restore CS8604
60+#pragma warning restore CS8625
61+#pragma warning restore CS8765
Aschema-csharpdefault / QuickType.cs+61 −0
@@ -0,0 +1,61 @@
1+// <auto-generated />
2+//
3+// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
4+//
5+// using QuickType;
6+//
7+// var topLevel = TopLevel.FromJson(jsonString);
8+#nullable enable
9+#pragma warning disable CS8618
10+#pragma warning disable CS8601
11+#pragma warning disable CS8602
12+#pragma warning disable CS8603
13+#pragma warning disable CS8604
14+#pragma warning disable CS8625
15+#pragma warning disable CS8765
16+
17+namespace QuickType
18+{
19+ using System;
20+ using System.Collections.Generic;
21+
22+ using System.Globalization;
23+ using Newtonsoft.Json;
24+ using Newtonsoft.Json.Converters;
25+
26+ public partial class TopLevel
27+ {
28+ [JsonProperty("value", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
29+ public string? Value { get; set; }
30+ }
31+
32+ public partial class TopLevel
33+ {
34+ public static TopLevel FromJson(string json) => JsonConvert.DeserializeObject<TopLevel>(json, QuickType.Converter.Settings);
35+ }
36+
37+ public static partial class Serialize
38+ {
39+ public static string ToJson(this TopLevel self) => JsonConvert.SerializeObject(self, QuickType.Converter.Settings);
40+ }
41+
42+ internal static partial class Converter
43+ {
44+ public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
45+ {
46+ MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
47+ DateParseHandling = DateParseHandling.None,
48+ Converters =
49+ {
50+ new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
51+ },
52+ };
53+ }
54+}
55+#pragma warning restore CS8618
56+#pragma warning restore CS8601
57+#pragma warning restore CS8602
58+#pragma warning restore CS8603
59+#pragma warning restore CS8604
60+#pragma warning restore CS8625
61+#pragma warning restore CS8765
Aschema-flowdefault / TopLevel.js+209 −0
@@ -0,0 +1,209 @@
1+// @flow
2+
3+// To parse this data:
4+//
5+// const Convert = require("./TopLevel");
6+//
7+// const topLevel = Convert.toTopLevel(json);
8+//
9+// These functions will throw an error if the JSON doesn't
10+// match the expected interface, even if the JSON is valid.
11+
12+export type TopLevel = {
13+ value?: string;
14+};
15+
16+// Converts JSON strings to/from your types
17+// and asserts the results of JSON.parse at runtime
18+function toTopLevel(json: string): TopLevel {
19+ return cast(JSON.parse(json), r("TopLevel"));
20+}
21+
22+function topLevelToJson(value: TopLevel): string {
23+ return JSON.stringify(uncast(value, r("TopLevel")), null, 2);
24+}
25+
26+function invalidValue(typ: any, val: any, key: any, parent: any = '') {
27+ const prettyTyp = prettyTypeName(typ);
28+ const parentText = parent ? ` on ${parent}` : '';
29+ const keyText = key ? ` for key "${key}"` : '';
30+ throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
31+}
32+
33+function prettyTypeName(typ: any): string {
34+ if (Array.isArray(typ)) {
35+ if (typ.length === 2 && typ[0] === undefined) {
36+ return `an optional ${prettyTypeName(typ[1])}`;
37+ } else {
38+ return `one of [${typ.map(a => { return prettyTypeName(a); }).join(", ")}]`;
39+ }
40+ } else if (typeof typ === "object" && typ.literal !== undefined) {
41+ return typ.literal;
42+ } else {
43+ return typeof typ;
44+ }
45+}
46+
47+function jsonToJSProps(typ: any): any {
48+ if (typ.jsonToJS === undefined) {
49+ const map: any = {};
50+ typ.props.forEach((p: any) => map[p.json] = { key: p.js, typ: p.typ });
51+ typ.jsonToJS = map;
52+ }
53+ return typ.jsonToJS;
54+}
55+
56+function jsToJSONProps(typ: any): any {
57+ if (typ.jsToJSON === undefined) {
58+ const map: any = {};
59+ typ.props.forEach((p: any) => map[p.js] = { key: p.json, typ: p.typ });
60+ typ.jsToJSON = map;
61+ }
62+ return typ.jsToJSON;
63+}
64+
65+function transform(val: any, typ: any, getProps: any, key: any = '', parent: any = ''): any {
66+ function transformPrimitive(typ: string, val: any): any {
67+ if (typeof typ === typeof val) return val;
68+ return invalidValue(typ, val, key, parent);
69+ }
70+
71+ function transformUnion(typs: any[], val: any): any {
72+ // val must validate against one typ in typs
73+ const l = typs.length;
74+ for (let i = 0; i < l; i++) {
75+ const typ = typs[i];
76+ try {
77+ return transform(val, typ, getProps);
78+ } catch (_) {}
79+ }
80+ return invalidValue(typs, val, key, parent);
81+ }
82+
83+ function transformEnum(cases: string[], val: any): any {
84+ if (cases.indexOf(val) !== -1) return val;
85+ return invalidValue(cases.map(a => { return l(a); }), val, key, parent);
86+ }
87+
88+ function transformArray(typ: any, val: any): any {
89+ // val must be an array with no invalid elements
90+ if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
91+
92+ return val.map(el => transform(el, typ, getProps));
93+ }
94+
95+ function transformDate(val: any): any {
96+ if (val === null) {
97+ return null;
98+ }
99+ const d = new Date(val);
100+ if (isNaN(d.valueOf())) {
101+ return invalidValue(l("Date"), val, key, parent);
102+ }
103+ return d;
104+ }
105+
106+ function transformObject(props: { [k: string]: any }, additional: any, val: any): any {
107+ if (val === null || typeof val !== "object" || Array.isArray(val)) {
108+ return invalidValue(l(ref || "object"), val, key, parent);
109+ }
110+ const result: any = {};
111+ Object.getOwnPropertyNames(props).forEach(key => {
112+ const prop = props[key];
113+ const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
114+ result[prop.key] = transform(v, prop.typ, getProps, key, ref);
115+ });
116+ Object.getOwnPropertyNames(val).forEach(key => {
117+ if (!Object.prototype.hasOwnProperty.call(props, key)) {
118+ result[key] = transform(val[key], additional, getProps, key, ref);
119+ }
120+ });
121+ return result;
122+ }
123+
124+ if (typ === "any") return val;
125+ if (typ === null) {
126+ if (val === null) return val;
127+ return invalidValue(typ, val, key, parent);
128+ }
129+ if (typ === false) return invalidValue(typ, val, key, parent);
130+ let ref: any = undefined;
131+ while (typeof typ === "object" && typ.ref !== undefined) {
132+ ref = typ.ref;
133+ typ = typeMap[typ.ref];
134+ }
135+ if (Array.isArray(typ)) return transformEnum(typ, val);
136+ if (typeof typ === "object") {
137+ return typ.hasOwnProperty("pattern") ? typeof val === "string" && new RegExp(typ.pattern).test(val) ? val : invalidValue(typ, val, key, parent)
138+ : typ.hasOwnProperty("string") ? typeof val === "string" && (typ.min === undefined || Array.from(val).length >= typ.min) && (typ.max === undefined || Array.from(val).length <= typ.max) ? transform(val, typ.string, getProps, key, parent) : invalidValue(typ, val, key, parent)
139+ : typ.hasOwnProperty("number") ? typeof val === "number" && (typ.min === undefined || val >= typ.min) && (typ.max === undefined || val <= typ.max) ? transform(val, typ.number, getProps, key, parent) : invalidValue(typ, val, key, parent)
140+ : typ.hasOwnProperty("integer") ? typeof val === "number" && val % 1 === 0 ? val : invalidValue(l("integer"), val, key, parent)
141+ : typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val)
142+ : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val)
143+ : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val)
144+ : invalidValue(typ, val, key, parent);
145+ }
146+ // Numbers can be parsed by Date but shouldn't be.
147+ if (typ === Date && typeof val !== "number") return transformDate(val);
148+ return transformPrimitive(typ, val);
149+}
150+
151+function cast<T>(val: any, typ: any): T {
152+ return transform(val, typ, jsonToJSProps);
153+}
154+
155+function uncast<T>(val: T, typ: any): any {
156+ return transform(val, typ, jsToJSONProps);
157+}
158+
159+function l(typ: any) {
160+ return { literal: typ };
161+}
162+
163+function a(typ: any) {
164+ return { arrayItems: typ };
165+}
166+
167+function i(typ: any) {
168+ return { integer: typ };
169+}
170+
171+function p(pattern: any) {
172+ return { pattern };
173+}
174+
175+function s(typ: any, min: any, max: any) {
176+ return { string: typ, min, max };
177+}
178+
179+function n(typ: any, min: any, max: any) {
180+ return { number: typ, min, max };
181+}
182+
183+function u(...typs: any[]) {
184+ return { unionMembers: typs };
185+}
186+
187+function o(props: any[], additional: any) {
188+ return { props, additional };
189+}
190+
191+function m(additional: any) {
192+ const props: any[] = [];
193+ return { props, additional };
194+}
195+
196+function r(name: string) {
197+ return { ref: name };
198+}
199+
200+const typeMap: any = {
201+ "TopLevel": o([
202+ { json: "value", js: "value", typ: u(undefined, "") },
203+ ], false),
204+};
205+
206+module.exports = {
207+ "topLevelToJson": topLevelToJson,
208+ "toTopLevel": toTopLevel,
209+};
Aschema-javascriptdefault / TopLevel.js+203 −0
@@ -0,0 +1,203 @@
1+// To parse this data:
2+//
3+// const Convert = require("./TopLevel");
4+//
5+// const topLevel = Convert.toTopLevel(json);
6+//
7+// These functions will throw an error if the JSON doesn't
8+// match the expected interface, even if the JSON is valid.
9+
10+// Converts JSON strings to/from your types
11+// and asserts the results of JSON.parse at runtime
12+function toTopLevel(json) {
13+ return cast(JSON.parse(json), r("TopLevel"));
14+}
15+
16+function topLevelToJson(value) {
17+ return JSON.stringify(uncast(value, r("TopLevel")), null, 2);
18+}
19+
20+function invalidValue(typ, val, key, parent = '') {
21+ const prettyTyp = prettyTypeName(typ);
22+ const parentText = parent ? ` on ${parent}` : '';
23+ const keyText = key ? ` for key "${key}"` : '';
24+ throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
25+}
26+
27+function prettyTypeName(typ) {
28+ if (Array.isArray(typ)) {
29+ if (typ.length === 2 && typ[0] === undefined) {
30+ return `an optional ${prettyTypeName(typ[1])}`;
31+ } else {
32+ return `one of [${typ.map(a => { return prettyTypeName(a); }).join(", ")}]`;
33+ }
34+ } else if (typeof typ === "object" && typ.literal !== undefined) {
35+ return typ.literal;
36+ } else {
37+ return typeof typ;
38+ }
39+}
40+
41+function jsonToJSProps(typ) {
42+ if (typ.jsonToJS === undefined) {
43+ const map = {};
44+ typ.props.forEach((p) => map[p.json] = { key: p.js, typ: p.typ });
45+ typ.jsonToJS = map;
46+ }
47+ return typ.jsonToJS;
48+}
49+
50+function jsToJSONProps(typ) {
51+ if (typ.jsToJSON === undefined) {
52+ const map = {};
53+ typ.props.forEach((p) => map[p.js] = { key: p.json, typ: p.typ });
54+ typ.jsToJSON = map;
55+ }
56+ return typ.jsToJSON;
57+}
58+
59+function transform(val, typ, getProps, key = '', parent = '') {
60+ function transformPrimitive(typ, val) {
61+ if (typeof typ === typeof val) return val;
62+ return invalidValue(typ, val, key, parent);
63+ }
64+
65+ function transformUnion(typs, val) {
66+ // val must validate against one typ in typs
67+ const l = typs.length;
68+ for (let i = 0; i < l; i++) {
69+ const typ = typs[i];
70+ try {
71+ return transform(val, typ, getProps);
72+ } catch (_) {}
73+ }
74+ return invalidValue(typs, val, key, parent);
75+ }
76+
77+ function transformEnum(cases, val) {
78+ if (cases.indexOf(val) !== -1) return val;
79+ return invalidValue(cases.map(a => { return l(a); }), val, key, parent);
80+ }
81+
82+ function transformArray(typ, val) {
83+ // val must be an array with no invalid elements
84+ if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
85+
86+ return val.map(el => transform(el, typ, getProps));
87+ }
88+
89+ function transformDate(val) {
90+ if (val === null) {
91+ return null;
92+ }
93+ const d = new Date(val);
94+ if (isNaN(d.valueOf())) {
95+ return invalidValue(l("Date"), val, key, parent);
96+ }
97+ return d;
98+ }
99+
100+ function transformObject(props, additional, val) {
101+ if (val === null || typeof val !== "object" || Array.isArray(val)) {
102+ return invalidValue(l(ref || "object"), val, key, parent);
103+ }
104+ const result = {};
105+ Object.getOwnPropertyNames(props).forEach(key => {
106+ const prop = props[key];
107+ const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
108+ result[prop.key] = transform(v, prop.typ, getProps, key, ref);
109+ });
110+ Object.getOwnPropertyNames(val).forEach(key => {
111+ if (!Object.prototype.hasOwnProperty.call(props, key)) {
112+ result[key] = transform(val[key], additional, getProps, key, ref);
113+ }
114+ });
115+ return result;
116+ }
117+
118+ if (typ === "any") return val;
119+ if (typ === null) {
120+ if (val === null) return val;
121+ return invalidValue(typ, val, key, parent);
122+ }
123+ if (typ === false) return invalidValue(typ, val, key, parent);
124+ let ref = undefined;
125+ while (typeof typ === "object" && typ.ref !== undefined) {
126+ ref = typ.ref;
127+ typ = typeMap[typ.ref];
128+ }
129+ if (Array.isArray(typ)) return transformEnum(typ, val);
130+ if (typeof typ === "object") {
131+ return typ.hasOwnProperty("pattern") ? typeof val === "string" && new RegExp(typ.pattern).test(val) ? val : invalidValue(typ, val, key, parent)
132+ : typ.hasOwnProperty("string") ? typeof val === "string" && (typ.min === undefined || Array.from(val).length >= typ.min) && (typ.max === undefined || Array.from(val).length <= typ.max) ? transform(val, typ.string, getProps, key, parent) : invalidValue(typ, val, key, parent)
133+ : typ.hasOwnProperty("number") ? typeof val === "number" && (typ.min === undefined || val >= typ.min) && (typ.max === undefined || val <= typ.max) ? transform(val, typ.number, getProps, key, parent) : invalidValue(typ, val, key, parent)
134+ : typ.hasOwnProperty("integer") ? typeof val === "number" && val % 1 === 0 ? val : invalidValue(l("integer"), val, key, parent)
135+ : typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val)
136+ : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val)
137+ : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val)
138+ : invalidValue(typ, val, key, parent);
139+ }
140+ // Numbers can be parsed by Date but shouldn't be.
141+ if (typ === Date && typeof val !== "number") return transformDate(val);
142+ return transformPrimitive(typ, val);
143+}
144+
145+function cast(val, typ) {
146+ return transform(val, typ, jsonToJSProps);
147+}
148+
149+function uncast(val, typ) {
150+ return transform(val, typ, jsToJSONProps);
151+}
152+
153+function l(typ) {
154+ return { literal: typ };
155+}
156+
157+function a(typ) {
158+ return { arrayItems: typ };
159+}
160+
161+function i(typ) {
162+ return { integer: typ };
163+}
164+
165+function p(pattern) {
166+ return { pattern };
167+}
168+
169+function s(typ, min, max) {
170+ return { string: typ, min, max };
171+}
172+
173+function n(typ, min, max) {
174+ return { number: typ, min, max };
175+}
176+
177+function u(...typs) {
178+ return { unionMembers: typs };
179+}
180+
181+function o(props, additional) {
182+ return { props, additional };
183+}
184+
185+function m(additional) {
186+ const props = [];
187+ return { props, additional };
188+}
189+
190+function r(name) {
191+ return { ref: name };
192+}
193+
194+const typeMap = {
195+ "TopLevel": o([
196+ { json: "value", js: "value", typ: u(undefined, "") },
197+ ], false),
198+};
199+
200+module.exports = {
201+ "topLevelToJson": topLevelToJson,
202+ "toTopLevel": toTopLevel,
203+};
Aschema-schemadefault / TopLevel.schema+17 −0
@@ -0,0 +1,17 @@
1+{
2+ "$schema": "http://json-schema.org/draft-06/schema#",
3+ "$ref": "#/definitions/TopLevel",
4+ "definitions": {
5+ "TopLevel": {
6+ "type": "object",
7+ "additionalProperties": false,
8+ "properties": {
9+ "value": {
10+ "type": "string"
11+ }
12+ },
13+ "required": [],
14+ "title": "TopLevel"
15+ }
16+ }
17+}
Aschema-typescript-effect-schemadefault / TopLevel.ts+6 −0
@@ -0,0 +1,6 @@
1+import * as S from "effect/Schema";
2+
3+
4+export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5+ "value": S.optional(S.String),
6+}) {}
Aschema-typescript-zoddefault / TopLevel.ts+7 −0
@@ -0,0 +1,7 @@
1+import * as z from "zod";
2+
3+
4+export const TopLevelSchema = z.object({
5+ "value": z.string().optional(),
6+});
7+export type TopLevel = z.infer<typeof TopLevelSchema>;
Aschema-typescriptdefault / TopLevel.ts+204 −0
@@ -0,0 +1,204 @@
1+// To parse this data:
2+//
3+// import { Convert, TopLevel } from "./TopLevel";
4+//
5+// const topLevel = Convert.toTopLevel(json);
6+//
7+// These functions will throw an error if the JSON doesn't
8+// match the expected interface, even if the JSON is valid.
9+
10+export interface TopLevel {
11+ value?: string;
12+}
13+
14+// Converts JSON strings to/from your types
15+// and asserts the results of JSON.parse at runtime
16+export class Convert {
17+ public static toTopLevel(json: string): TopLevel {
18+ return cast(JSON.parse(json), r("TopLevel"));
19+ }
20+
21+ public static topLevelToJson(value: TopLevel): string {
22+ return JSON.stringify(uncast(value, r("TopLevel")), null, 2);
23+ }
24+}
25+
26+function invalidValue(typ: any, val: any, key: any, parent: any = ''): never {
27+ const prettyTyp = prettyTypeName(typ);
28+ const parentText = parent ? ` on ${parent}` : '';
29+ const keyText = key ? ` for key "${key}"` : '';
30+ throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
31+}
32+
33+function prettyTypeName(typ: any): string {
34+ if (Array.isArray(typ)) {
35+ if (typ.length === 2 && typ[0] === undefined) {
36+ return `an optional ${prettyTypeName(typ[1])}`;
37+ } else {
38+ return `one of [${typ.map(a => { return prettyTypeName(a); }).join(", ")}]`;
39+ }
40+ } else if (typeof typ === "object" && typ.literal !== undefined) {
41+ return typ.literal;
42+ } else {
43+ return typeof typ;
44+ }
45+}
46+
47+function jsonToJSProps(typ: any): any {
48+ if (typ.jsonToJS === undefined) {
49+ const map: any = {};
50+ typ.props.forEach((p: any) => map[p.json] = { key: p.js, typ: p.typ });
51+ typ.jsonToJS = map;
52+ }
53+ return typ.jsonToJS;
54+}
55+
56+function jsToJSONProps(typ: any): any {
57+ if (typ.jsToJSON === undefined) {
58+ const map: any = {};
59+ typ.props.forEach((p: any) => map[p.js] = { key: p.json, typ: p.typ });
60+ typ.jsToJSON = map;
61+ }
62+ return typ.jsToJSON;
63+}
64+
65+function transform(val: any, typ: any, getProps: any, key: any = '', parent: any = ''): any {
66+ function transformPrimitive(typ: string, val: any): any {
67+ if (typeof typ === typeof val) return val;
68+ return invalidValue(typ, val, key, parent);
69+ }
70+
71+ function transformUnion(typs: any[], val: any): any {
72+ // val must validate against one typ in typs
73+ const l = typs.length;
74+ for (let i = 0; i < l; i++) {
75+ const typ = typs[i];
76+ try {
77+ return transform(val, typ, getProps);
78+ } catch (_) {}
79+ }
80+ return invalidValue(typs, val, key, parent);
81+ }
82+
83+ function transformEnum(cases: string[], val: any): any {
84+ if (cases.indexOf(val) !== -1) return val;
85+ return invalidValue(cases.map(a => { return l(a); }), val, key, parent);
86+ }
87+
88+ function transformArray(typ: any, val: any): any {
89+ // val must be an array with no invalid elements
90+ if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
91+
92+ return val.map(el => transform(el, typ, getProps));
93+ }
94+
95+ function transformDate(val: any): any {
96+ if (val === null) {
97+ return null;
98+ }
99+ const d = new Date(val);
100+ if (isNaN(d.valueOf())) {
101+ return invalidValue(l("Date"), val, key, parent);
102+ }
103+ return d;
104+ }
105+
106+ function transformObject(props: { [k: string]: any }, additional: any, val: any): any {
107+ if (val === null || typeof val !== "object" || Array.isArray(val)) {
108+ return invalidValue(l(ref || "object"), val, key, parent);
109+ }
110+ const result: any = {};
111+ Object.getOwnPropertyNames(props).forEach(key => {
112+ const prop = props[key];
113+ const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
114+ result[prop.key] = transform(v, prop.typ, getProps, key, ref);
115+ });
116+ Object.getOwnPropertyNames(val).forEach(key => {
117+ if (!Object.prototype.hasOwnProperty.call(props, key)) {
118+ result[key] = transform(val[key], additional, getProps, key, ref);
119+ }
120+ });
121+ return result;
122+ }
123+
124+ if (typ === "any") return val;
125+ if (typ === null) {
126+ if (val === null) return val;
127+ return invalidValue(typ, val, key, parent);
128+ }
129+ if (typ === false) return invalidValue(typ, val, key, parent);
130+ let ref: any = undefined;
131+ while (typeof typ === "object" && typ.ref !== undefined) {
132+ ref = typ.ref;
133+ typ = typeMap[typ.ref];
134+ }
135+ if (Array.isArray(typ)) return transformEnum(typ, val);
136+ if (typeof typ === "object") {
137+ return typ.hasOwnProperty("pattern") ? typeof val === "string" && new RegExp(typ.pattern).test(val) ? val : invalidValue(typ, val, key, parent)
138+ : typ.hasOwnProperty("string") ? typeof val === "string" && (typ.min === undefined || Array.from(val).length >= typ.min) && (typ.max === undefined || Array.from(val).length <= typ.max) ? transform(val, typ.string, getProps, key, parent) : invalidValue(typ, val, key, parent)
139+ : typ.hasOwnProperty("number") ? typeof val === "number" && (typ.min === undefined || val >= typ.min) && (typ.max === undefined || val <= typ.max) ? transform(val, typ.number, getProps, key, parent) : invalidValue(typ, val, key, parent)
140+ : typ.hasOwnProperty("integer") ? typeof val === "number" && val % 1 === 0 ? val : invalidValue(l("integer"), val, key, parent)
141+ : typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val)
142+ : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val)
143+ : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val)
144+ : invalidValue(typ, val, key, parent);
145+ }
146+ // Numbers can be parsed by Date but shouldn't be.
147+ if (typ === Date && typeof val !== "number") return transformDate(val);
148+ return transformPrimitive(typ, val);
149+}
150+
151+function cast<T>(val: any, typ: any): T {
152+ return transform(val, typ, jsonToJSProps);
153+}
154+
155+function uncast<T>(val: T, typ: any): any {
156+ return transform(val, typ, jsToJSONProps);
157+}
158+
159+function l(typ: any) {
160+ return { literal: typ };
161+}
162+
163+function a(typ: any) {
164+ return { arrayItems: typ };
165+}
166+
167+function i(typ: any) {
168+ return { integer: typ };
169+}
170+
171+function p(pattern: any) {
172+ return { pattern };
173+}
174+
175+function s(typ: any, min: any, max: any) {
176+ return { string: typ, min, max };
177+}
178+
179+function n(typ: any, min: any, max: any) {
180+ return { number: typ, min, max };
181+}
182+
183+function u(...typs: any[]) {
184+ return { unionMembers: typs };
185+}
186+
187+function o(props: any[], additional: any) {
188+ return { props, additional };
189+}
190+
191+function m(additional: any) {
192+ const props: any[] = [];
193+ return { props, additional };
194+}
195+
196+function r(name: string) {
197+ return { ref: name };
198+}
199+
200+const typeMap: any = {
201+ "TopLevel": o([
202+ { json: "value", js: "value", typ: u(undefined, "") },
203+ ], false),
204+};
Test case

test/inputs/schema/postman-collection.schema

1 generated file · +4 −4
Mschema-typescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -2,11 +2,11 @@ import * as S from "effect/Schema";
22
33
44 export class Response extends S.Class<Response>("Response")({
5- "body": S.optional(S.NullOr(S.String)),
5+ "body": S.optional(S.String),
66 }) {}
77
88 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
9- "item": S.optional(S.NullOr(S.Array(S.suspend(() => TopLevel)))),
10- "name": S.optional(S.NullOr(S.String)),
11- "response": S.optional(S.NullOr(S.Array(Response))),
9+ "item": S.optional(S.Array(S.suspend(() => TopLevel))),
10+ "name": S.optional(S.String),
11+ "response": S.optional(S.Array(Response)),
1212 }) {}
Test case

test/inputs/schema/ref-remote.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "next": S.optional(S.NullOr(S.suspend(() => TopLevel))),
5+ "next": S.optional(S.suspend(() => TopLevel)),
66 }) {}
Test case

test/inputs/schema/renaming-bug.schema

1 generated file · +32 −32
Mschema-typescript-effect-schemadefault / TopLevel.ts+32 −32
@@ -26,75 +26,75 @@ export const Name = S.Literal(
2626 export type Name = S.Schema.Type<typeof Name>;
2727
2828 export class VehicleType extends S.Class<VehicleType>("VehicleType")({
29- "name": S.optional(S.NullOr(Name)),
30- "width": S.optional(S.NullOr(Axis)),
31- "length": S.optional(S.NullOr(Axis)),
29+ "name": S.optional(Name),
30+ "width": S.optional(Axis),
31+ "length": S.optional(Axis),
3232 }) {}
3333
3434 export class Limit extends S.Class<Limit>("Limit")({
35- "maximum": S.optional(S.NullOr(S.Number)),
36- "minimum": S.optional(S.NullOr(S.Number)),
35+ "maximum": S.optional(S.Number),
36+ "minimum": S.optional(S.Number),
3737 }) {}
3838
3939 export class Speed extends S.Class<Speed>("Speed")({
40- "velocity": S.optional(S.NullOr(Limit)),
40+ "velocity": S.optional(Limit),
4141 }) {}
4242
4343 export class Vehicle extends S.Class<Vehicle>("Vehicle")({
44- "brand": S.optional(S.NullOr(S.String)),
45- "id": S.optional(S.NullOr(S.String.pipe(S.filter(value => Array.from(value).length >= 1)))),
46- "speed": S.optional(S.NullOr(Speed)),
47- "subModule": S.optional(S.NullOr(S.Boolean)),
48- "type": S.optional(S.NullOr(VehicleType)),
49- "year": S.optional(S.NullOr(S.String)),
44+ "brand": S.optional(S.String),
45+ "id": S.optional(S.String.pipe(S.filter(value => Array.from(value).length >= 1))),
46+ "speed": S.optional(Speed),
47+ "subModule": S.optional(S.Boolean),
48+ "type": S.optional(VehicleType),
49+ "year": S.optional(S.String),
5050 }) {}
5151
5252 export class History extends S.Class<History>("History")({
53- "class": S.optional(S.NullOr(S.String)),
53+ "class": S.optional(S.String),
5454 }) {}
5555
5656 export class Part extends S.Class<Part>("Part")({
57- "depth": S.optional(S.NullOr(S.String)),
58- "length": S.optional(S.NullOr(S.String)),
59- "width": S.optional(S.NullOr(S.String)),
57+ "depth": S.optional(S.String),
58+ "length": S.optional(S.String),
59+ "width": S.optional(S.String),
6060 }) {}
6161
6262 export class RectShape extends S.Class<RectShape>("RectShape")({
63- "parts": S.optional(S.NullOr(S.Array(Part))),
63+ "parts": S.optional(S.Array(Part)),
6464 }) {}
6565
6666 export class CircularShape extends S.Class<CircularShape>("CircularShape")({
67- "shapeName": S.optional(S.NullOr(S.String)),
67+ "shapeName": S.optional(S.String),
6868 }) {}
6969
7070 export class Geometry extends S.Class<Geometry>("Geometry")({
71- "rectShape": S.optional(S.NullOr(RectShape)),
72- "circularShape": S.optional(S.NullOr(S.Array(CircularShape))),
71+ "rectShape": S.optional(RectShape),
72+ "circularShape": S.optional(S.Array(CircularShape)),
7373 }) {}
7474
7575 export class Shape extends S.Class<Shape>("Shape")({
76- "geometry": S.optional(S.NullOr(Geometry)),
77- "history": S.optional(S.NullOr(History)),
76+ "geometry": S.optional(Geometry),
77+ "history": S.optional(History),
7878 }) {}
7979
8080 export class Color extends S.Class<Color>("Color")({
81- "rgb": S.optional(S.NullOr(S.Number)),
81+ "rgb": S.optional(S.Number),
8282 }) {}
8383
8484 export class Berry extends S.Class<Berry>("Berry")({
85- "color": S.optional(S.NullOr(Color)),
86- "name": S.optional(S.NullOr(S.String.pipe(S.filter(value => Array.from(value).length >= 1)))),
87- "shapes": S.optional(S.NullOr(S.Array(Shape))),
85+ "color": S.optional(Color),
86+ "name": S.optional(S.String.pipe(S.filter(value => Array.from(value).length >= 1))),
87+ "shapes": S.optional(S.Array(Shape)),
8888 }) {}
8989
9090 export class Fruit extends S.Class<Fruit>("Fruit")({
91- "apple": S.optional(S.NullOr(S.Boolean)),
92- "berries": S.optional(S.NullOr(S.Array(Berry))),
93- "orange": S.optional(S.NullOr(S.Boolean)),
91+ "apple": S.optional(S.Boolean),
92+ "berries": S.optional(S.Array(Berry)),
93+ "orange": S.optional(S.Boolean),
9494 }) {}
9595
9696 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
97- "version": S.optional(S.NullOr(S.String.pipe(S.pattern(new RegExp("^\\d{1,5}.{1}\\d{1,5}.{1}\\d{1,5}$"))))),
98- "fruits": S.optional(S.NullOr(S.Array(Fruit))),
99- "vehicles": S.optional(S.NullOr(S.Array(Vehicle))),
97+ "version": S.optional(S.String.pipe(S.pattern(new RegExp("^\\d{1,5}.{1}\\d{1,5}.{1}\\d{1,5}$")))),
98+ "fruits": S.optional(S.Array(Fruit)),
99+ "vehicles": S.optional(S.Array(Vehicle)),
100100 }) {}
Test case

test/inputs/schema/simple-ref.schema

1 generated file · +1 −1
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,5 +2,5 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "next": S.optional(S.NullOr(S.suspend(() => TopLevel))),
5+ "next": S.optional(S.suspend(() => TopLevel)),
66 }) {}
Test case

test/inputs/schema/unevaluated-properties.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -11,10 +11,10 @@ export class ClosedClass extends S.Class<ClosedClass>("ClosedClass")({
1111
1212 export class Config extends S.Class<Config>("Config")({
1313 "closed": S.optional(S.Union(S.Array(S.Any), S.Boolean, S.Number, S.Int, S.String, ClosedClass, S.Null)),
14- "name": S.optional(S.NullOr(S.String)),
15- "settings": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Array(Item)}))),
14+ "name": S.optional(S.String),
15+ "settings": S.optional(S.Record({ key: S.String, value: S.Array(Item)})),
1616 }) {}
1717
1818 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
19- "config": S.optional(S.NullOr(Config)),
19+ "config": S.optional(Config),
2020 }) {}
Test case

test/inputs/schema/union.schema

1 generated file · +2 −2
Mschema-typescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,9 +2,9 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
5- "one": S.optional(S.NullOr(S.Int)),
5+ "one": S.optional(S.Int),
66 "two": S.Boolean,
7- "three": S.optional(S.NullOr(S.Number)),
7+ "three": S.optional(S.Number),
88 }) {}
99
1010 export const TopLevel = S.Array(TopLevelElement);
Test case

test/inputs/schema/uuid.schema

1 generated file · +3 −3
Mschema-typescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -7,10 +7,10 @@ export const UnionWithEnumEnum = S.Literal(
77 export type UnionWithEnumEnum = S.Schema.Type<typeof UnionWithEnumEnum>;
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "arrNullable": S.optional(S.NullOr(S.Array(S.NullOr(S.UUID)))),
11- "arrOne": S.optional(S.NullOr(S.Array(S.UUID))),
10+ "arrNullable": S.optional(S.Array(S.NullOr(S.UUID))),
11+ "arrOne": S.optional(S.Array(S.UUID)),
1212 "nullable": S.NullOr(S.UUID),
1313 "one": S.UUID,
14- "optional": S.optional(S.NullOr(S.UUID)),
14+ "optional": S.optional(S.UUID),
1515 "unionWithEnum": S.Union(UnionWithEnumEnum, S.UUID),
1616 }) {}
Test case

test/inputs/schema/vega-lite.schema

1 generated file · +773 −773
Mschema-typescript-effect-schemadefault / TopLevel.ts+773 −773
@@ -588,8 +588,8 @@ export const SelectionDefType = S.Literal(
588588 export type SelectionDefType = S.Schema.Type<typeof SelectionDefType>;
589589
590590 export class Repeat extends S.Class<Repeat>("Repeat")({
591- "column": S.optional(S.NullOr(S.Array(S.String))),
592- "row": S.optional(S.NullOr(S.Array(S.String))),
591+ "column": S.optional(S.Array(S.String)),
592+ "row": S.optional(S.Array(S.String)),
593593 }) {}
594594
595595 export class AggregatedFieldDef extends S.Class<AggregatedFieldDef>("AggregatedFieldDef")({
@@ -598,320 +598,229 @@ export class AggregatedFieldDef extends S.Class<AggregatedFieldDef>("AggregatedF
598598 "op": AggregateOp,
599599 }) {}
600600
601-export class Transform extends S.Class<Transform>("Transform")({
602- "filter": S.optional(S.Union(S.String, S.suspend(() => Predicate), S.Null)),
603- "as": S.optional(S.Union(S.Array(S.String), S.String, S.Null)),
604- "calculate": S.optional(S.NullOr(S.String)),
605- "default": S.optional(S.NullOr(S.String)),
606- "from": S.optional(S.NullOr(S.suspend(() => LookupData))),
607- "lookup": S.optional(S.NullOr(S.String)),
608- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
609- "field": S.optional(S.NullOr(S.String)),
610- "timeUnit": S.optional(S.NullOr(TimeUnit)),
611- "aggregate": S.optional(S.NullOr(S.Array(AggregatedFieldDef))),
612- "groupby": S.optional(S.NullOr(S.Array(S.String))),
613-}) {}
614-
615601 export class TitleParams extends S.Class<TitleParams>("TitleParams")({
616- "anchor": S.optional(S.NullOr(Anchor)),
617- "offset": S.optional(S.NullOr(S.Number)),
618- "orient": S.optional(S.NullOr(TitleOrient)),
619- "style": S.optional(S.Union(S.Array(S.String), S.String, S.Null)),
602+ "anchor": S.optional(Anchor),
603+ "offset": S.optional(S.Number),
604+ "orient": S.optional(TitleOrient),
605+ "style": S.optional(S.Union(S.Array(S.String), S.String)),
620606 "text": S.String,
621607 }) {}
622608
623-export class SelectionDef extends S.Class<SelectionDef>("SelectionDef")({
624- "bind": S.optional(S.Union(BindEnum, S.Record({ key: S.String, value: S.suspend(() => VgBinding)}), S.Null)),
625- "empty": S.optional(S.NullOr(Empty)),
626- "encodings": S.optional(S.NullOr(S.Array(SingleDefChannel))),
627- "fields": S.optional(S.NullOr(S.Array(S.String))),
628- "nearest": S.optional(S.NullOr(S.Boolean)),
629- "on": S.optional(S.Any),
630- "resolve": S.optional(S.NullOr(SelectionResolution)),
631- "type": SelectionDefType,
632- "toggle": S.optional(S.Union(S.Boolean, S.String, S.Null)),
633- "mark": S.optional(S.NullOr(S.suspend(() => BrushConfig))),
634- "translate": S.optional(S.Union(S.Boolean, S.String, S.Null)),
635- "zoom": S.optional(S.Union(S.Boolean, S.String, S.Null)),
636-}) {}
637-
638609 export class ScaleResolveMap extends S.Class<ScaleResolveMap>("ScaleResolveMap")({
639- "color": S.optional(S.NullOr(ResolveMode)),
640- "opacity": S.optional(S.NullOr(ResolveMode)),
641- "shape": S.optional(S.NullOr(ResolveMode)),
642- "size": S.optional(S.NullOr(ResolveMode)),
643- "x": S.optional(S.NullOr(ResolveMode)),
644- "y": S.optional(S.NullOr(ResolveMode)),
610+ "color": S.optional(ResolveMode),
611+ "opacity": S.optional(ResolveMode),
612+ "shape": S.optional(ResolveMode),
613+ "size": S.optional(ResolveMode),
614+ "x": S.optional(ResolveMode),
615+ "y": S.optional(ResolveMode),
645616 }) {}
646617
647618 export class LegendResolveMap extends S.Class<LegendResolveMap>("LegendResolveMap")({
648- "color": S.optional(S.NullOr(ResolveMode)),
649- "opacity": S.optional(S.NullOr(ResolveMode)),
650- "shape": S.optional(S.NullOr(ResolveMode)),
651- "size": S.optional(S.NullOr(ResolveMode)),
619+ "color": S.optional(ResolveMode),
620+ "opacity": S.optional(ResolveMode),
621+ "shape": S.optional(ResolveMode),
622+ "size": S.optional(ResolveMode),
652623 }) {}
653624
654625 export class AxisResolveMap extends S.Class<AxisResolveMap>("AxisResolveMap")({
655- "x": S.optional(S.NullOr(ResolveMode)),
656- "y": S.optional(S.NullOr(ResolveMode)),
626+ "x": S.optional(ResolveMode),
627+ "y": S.optional(ResolveMode),
657628 }) {}
658629
659630 export class Resolve extends S.Class<Resolve>("Resolve")({
660- "axis": S.optional(S.NullOr(AxisResolveMap)),
661- "legend": S.optional(S.NullOr(LegendResolveMap)),
662- "scale": S.optional(S.NullOr(ScaleResolveMap)),
631+ "axis": S.optional(AxisResolveMap),
632+ "legend": S.optional(LegendResolveMap),
633+ "scale": S.optional(ScaleResolveMap),
663634 }) {}
664635
665636 export class Projection extends S.Class<Projection>("Projection")({
666- "center": S.optional(S.NullOr(S.Array(S.Number))),
667- "clipAngle": S.optional(S.NullOr(S.Number)),
668- "clipExtent": S.optional(S.NullOr(S.Array(S.Array(S.Number)))),
669- "coefficient": S.optional(S.NullOr(S.Number)),
670- "distance": S.optional(S.NullOr(S.Number)),
671- "fraction": S.optional(S.NullOr(S.Number)),
672- "lobes": S.optional(S.NullOr(S.Number)),
673- "parallel": S.optional(S.NullOr(S.Number)),
674- "precision": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Union(S.Number, S.String)}))),
675- "radius": S.optional(S.NullOr(S.Number)),
676- "ratio": S.optional(S.NullOr(S.Number)),
677- "rotate": S.optional(S.NullOr(S.Array(S.Number))),
678- "spacing": S.optional(S.NullOr(S.Number)),
679- "tilt": S.optional(S.NullOr(S.Number)),
680- "type": S.optional(S.NullOr(VgProjectionType)),
637+ "center": S.optional(S.Array(S.Number)),
638+ "clipAngle": S.optional(S.Number),
639+ "clipExtent": S.optional(S.Array(S.Array(S.Number))),
640+ "coefficient": S.optional(S.Number),
641+ "distance": S.optional(S.Number),
642+ "fraction": S.optional(S.Number),
643+ "lobes": S.optional(S.Number),
644+ "parallel": S.optional(S.Number),
645+ "precision": S.optional(S.Record({ key: S.String, value: S.Union(S.Number, S.String)})),
646+ "radius": S.optional(S.Number),
647+ "ratio": S.optional(S.Number),
648+ "rotate": S.optional(S.Array(S.Number)),
649+ "spacing": S.optional(S.Number),
650+ "tilt": S.optional(S.Number),
651+ "type": S.optional(VgProjectionType),
681652 }) {}
682653
683654 export class MarkDef extends S.Class<MarkDef>("MarkDef")({
684- "align": S.optional(S.NullOr(HorizontalAlign)),
685- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
686- "baseline": S.optional(S.NullOr(VerticalAlign)),
687- "clip": S.optional(S.NullOr(S.Boolean)),
688- "color": S.optional(S.NullOr(S.String)),
689- "cursor": S.optional(S.NullOr(Cursor)),
690- "dx": S.optional(S.NullOr(S.Number)),
691- "dy": S.optional(S.NullOr(S.Number)),
692- "fill": S.optional(S.NullOr(S.String)),
693- "filled": S.optional(S.NullOr(S.Boolean)),
694- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
695- "font": S.optional(S.NullOr(S.String)),
696- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
697- "fontStyle": S.optional(S.NullOr(FontStyle)),
698- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
699- "href": S.optional(S.NullOr(S.String)),
700- "interpolate": S.optional(S.NullOr(Interpolate)),
701- "limit": S.optional(S.NullOr(S.Number)),
702- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
703- "orient": S.optional(S.NullOr(Orient)),
704- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
705- "shape": S.optional(S.NullOr(S.String)),
706- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
707- "stroke": S.optional(S.NullOr(S.String)),
708- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
709- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
710- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
711- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
712- "style": S.optional(S.Union(S.Array(S.String), S.String, S.Null)),
713- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
714- "text": S.optional(S.NullOr(S.String)),
715- "theta": S.optional(S.NullOr(S.Number)),
655+ "align": S.optional(HorizontalAlign),
656+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
657+ "baseline": S.optional(VerticalAlign),
658+ "clip": S.optional(S.Boolean),
659+ "color": S.optional(S.String),
660+ "cursor": S.optional(Cursor),
661+ "dx": S.optional(S.Number),
662+ "dy": S.optional(S.Number),
663+ "fill": S.optional(S.String),
664+ "filled": S.optional(S.Boolean),
665+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
666+ "font": S.optional(S.String),
667+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
668+ "fontStyle": S.optional(FontStyle),
669+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
670+ "href": S.optional(S.String),
671+ "interpolate": S.optional(Interpolate),
672+ "limit": S.optional(S.Number),
673+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
674+ "orient": S.optional(Orient),
675+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
676+ "shape": S.optional(S.String),
677+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
678+ "stroke": S.optional(S.String),
679+ "strokeDash": S.optional(S.Array(S.Number)),
680+ "strokeDashOffset": S.optional(S.Number),
681+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
682+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
683+ "style": S.optional(S.Union(S.Array(S.String), S.String)),
684+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
685+ "text": S.optional(S.String),
686+ "theta": S.optional(S.Number),
716687 "type": Mark,
717688 }) {}
718689
719-export class LayerSpec extends S.Class<LayerSpec>("LayerSpec")({
720- "data": S.optional(S.NullOr(S.suspend(() => Data))),
721- "description": S.optional(S.NullOr(S.String)),
722- "height": S.optional(S.NullOr(S.Number)),
723- "layer": S.optional(S.NullOr(S.Array(S.suspend(() => LayerSpec)))),
724- "name": S.optional(S.NullOr(S.String)),
725- "resolve": S.optional(S.NullOr(Resolve)),
726- "title": S.optional(S.Union(S.String, TitleParams, S.Null)),
727- "transform": S.optional(S.NullOr(S.Array(Transform))),
728- "width": S.optional(S.NullOr(S.Number)),
729- "encoding": S.optional(S.NullOr(S.suspend(() => Encoding))),
730- "mark": S.optional(S.Union(Mark, MarkDef, S.Null)),
731- "projection": S.optional(S.NullOr(Projection)),
732- "selection": S.optional(S.NullOr(S.Record({ key: S.String, value: SelectionDef}))),
733-}) {}
734-
735-export class Encoding extends S.Class<Encoding>("Encoding")({
736- "color": S.optional(S.NullOr(S.suspend(() => MarkPropDefWithCondition))),
737- "detail": S.optional(S.Union(S.Array(S.suspend(() => FieldDef)), S.suspend(() => FieldDef), S.Null)),
738- "href": S.optional(S.NullOr(S.suspend(() => DefWithCondition))),
739- "opacity": S.optional(S.NullOr(S.suspend(() => MarkPropDefWithCondition))),
740- "order": S.optional(S.Union(S.Array(S.suspend(() => OrderFieldDef)), S.suspend(() => OrderFieldDef), S.Null)),
741- "shape": S.optional(S.NullOr(S.suspend(() => MarkPropDefWithCondition))),
742- "size": S.optional(S.NullOr(S.suspend(() => MarkPropDefWithCondition))),
743- "text": S.optional(S.NullOr(S.suspend(() => TextDefWithCondition))),
744- "tooltip": S.optional(S.NullOr(S.suspend(() => TextDefWithCondition))),
745- "x": S.optional(S.NullOr(S.suspend(() => XClass))),
746- "x2": S.optional(S.NullOr(S.suspend(() => X2Class))),
747- "y": S.optional(S.NullOr(S.suspend(() => XClass))),
748- "y2": S.optional(S.NullOr(S.suspend(() => X2Class))),
749-}) {}
750-
751-export class Spec extends S.Class<Spec>("Spec")({
752- "data": S.optional(S.NullOr(S.suspend(() => Data))),
753- "description": S.optional(S.NullOr(S.String)),
754- "height": S.optional(S.NullOr(S.Number)),
755- "layer": S.optional(S.NullOr(S.Array(LayerSpec))),
756- "name": S.optional(S.NullOr(S.String)),
757- "resolve": S.optional(S.NullOr(Resolve)),
758- "title": S.optional(S.Union(S.String, TitleParams, S.Null)),
759- "transform": S.optional(S.NullOr(S.Array(Transform))),
760- "width": S.optional(S.NullOr(S.Number)),
761- "encoding": S.optional(S.NullOr(Encoding)),
762- "mark": S.optional(S.Union(Mark, MarkDef, S.Null)),
763- "projection": S.optional(S.NullOr(Projection)),
764- "selection": S.optional(S.NullOr(S.Record({ key: S.String, value: SelectionDef}))),
765- "facet": S.optional(S.NullOr(S.suspend(() => FacetMapping))),
766- "spec": S.optional(S.NullOr(S.suspend(() => Spec))),
767- "repeat": S.optional(S.NullOr(Repeat)),
768- "vconcat": S.optional(S.NullOr(S.Array(S.suspend(() => Spec)))),
769- "hconcat": S.optional(S.NullOr(S.Array(S.suspend(() => Spec)))),
770-}) {}
771-
772-export class FacetMapping extends S.Class<FacetMapping>("FacetMapping")({
773- "column": S.optional(S.NullOr(S.suspend(() => FacetFieldDef))),
774- "row": S.optional(S.NullOr(S.suspend(() => FacetFieldDef))),
775-}) {}
776-
777690 export class X2Class extends S.Class<X2Class>("X2Class")({
778- "aggregate": S.optional(S.NullOr(AggregateOp)),
779- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
780- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
781- "timeUnit": S.optional(S.NullOr(TimeUnit)),
782- "type": S.optional(S.NullOr(Type)),
783- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
691+ "aggregate": S.optional(AggregateOp),
692+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
693+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
694+ "timeUnit": S.optional(TimeUnit),
695+ "type": S.optional(Type),
696+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
784697 }) {}
785698
786699 export class Axis extends S.Class<Axis>("Axis")({
787- "domain": S.optional(S.NullOr(S.Boolean)),
788- "format": S.optional(S.NullOr(S.String)),
789- "grid": S.optional(S.NullOr(S.Boolean)),
790- "labelAngle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360)))),
791- "labelBound": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
792- "labelFlush": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
793- "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum, S.Null)),
794- "labelPadding": S.optional(S.NullOr(S.Number)),
795- "labels": S.optional(S.NullOr(S.Boolean)),
796- "maxExtent": S.optional(S.NullOr(S.Number)),
797- "minExtent": S.optional(S.NullOr(S.Number)),
798- "offset": S.optional(S.NullOr(S.Number)),
799- "orient": S.optional(S.NullOr(TitleOrient)),
800- "position": S.optional(S.NullOr(S.Number)),
801- "tickCount": S.optional(S.NullOr(S.Number)),
802- "ticks": S.optional(S.NullOr(S.Boolean)),
803- "tickSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
700+ "domain": S.optional(S.Boolean),
701+ "format": S.optional(S.String),
702+ "grid": S.optional(S.Boolean),
703+ "labelAngle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360))),
704+ "labelBound": S.optional(S.Union(S.Boolean, S.Number)),
705+ "labelFlush": S.optional(S.Union(S.Boolean, S.Number)),
706+ "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum)),
707+ "labelPadding": S.optional(S.Number),
708+ "labels": S.optional(S.Boolean),
709+ "maxExtent": S.optional(S.Number),
710+ "minExtent": S.optional(S.Number),
711+ "offset": S.optional(S.Number),
712+ "orient": S.optional(TitleOrient),
713+ "position": S.optional(S.Number),
714+ "tickCount": S.optional(S.Number),
715+ "ticks": S.optional(S.Boolean),
716+ "tickSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
804717 "title": S.optional(S.NullOr(S.String)),
805- "titleMaxLength": S.optional(S.NullOr(S.Number)),
806- "titlePadding": S.optional(S.NullOr(S.Number)),
807- "values": S.optional(S.NullOr(S.Array(S.Union(S.Number, S.suspend(() => DateTime))))),
808- "zindex": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
809-}) {}
810-
811-export class XClass extends S.Class<XClass>("XClass")({
812- "aggregate": S.optional(S.NullOr(AggregateOp)),
813- "axis": S.optional(S.NullOr(Axis)),
814- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
815- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
816- "scale": S.optional(S.NullOr(S.suspend(() => Scale))),
817- "sort": S.optional(S.Union(SortEnum, S.suspend(() => SortField), S.Null)),
818- "stack": S.optional(S.NullOr(StackOffset)),
819- "timeUnit": S.optional(S.NullOr(TimeUnit)),
820- "type": S.optional(S.NullOr(Type)),
821- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
718+ "titleMaxLength": S.optional(S.Number),
719+ "titlePadding": S.optional(S.Number),
720+ "values": S.optional(S.Array(S.Union(S.Number, S.suspend(() => DateTime)))),
721+ "zindex": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
822722 }) {}
823723
824724 export class ConditionalPredicateTextFieldDefClass extends S.Class<ConditionalPredicateTextFieldDefClass>("ConditionalPredicateTextFieldDefClass")({
825- "test": S.optional(S.Union(S.String, S.suspend(() => Predicate), S.Null)),
826- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
827- "selection": S.optional(S.Union(S.String, S.suspend(() => Selection), S.Null)),
828- "aggregate": S.optional(S.NullOr(AggregateOp)),
829- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
830- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
831- "format": S.optional(S.NullOr(S.String)),
832- "timeUnit": S.optional(S.NullOr(TimeUnit)),
833- "type": S.optional(S.NullOr(Type)),
725+ "test": S.optional(S.Union(S.String, S.suspend(() => Predicate))),
726+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
727+ "selection": S.optional(S.Union(S.String, S.suspend(() => Selection))),
728+ "aggregate": S.optional(AggregateOp),
729+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
730+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
731+ "format": S.optional(S.String),
732+ "timeUnit": S.optional(TimeUnit),
733+ "type": S.optional(Type),
834734 }) {}
835735
836736 export class TextDefWithCondition extends S.Class<TextDefWithCondition>("TextDefWithCondition")({
837- "aggregate": S.optional(S.NullOr(AggregateOp)),
838- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
839- "condition": S.optional(S.Union(S.Array(S.suspend(() => ConditionalValueDef)), ConditionalPredicateTextFieldDefClass, S.Null)),
840- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
841- "format": S.optional(S.NullOr(S.String)),
842- "timeUnit": S.optional(S.NullOr(TimeUnit)),
843- "type": S.optional(S.NullOr(Type)),
844- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
737+ "aggregate": S.optional(AggregateOp),
738+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
739+ "condition": S.optional(S.Union(S.Array(S.suspend(() => ConditionalValueDef)), ConditionalPredicateTextFieldDefClass)),
740+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
741+ "format": S.optional(S.String),
742+ "timeUnit": S.optional(TimeUnit),
743+ "type": S.optional(Type),
744+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
845745 }) {}
846746
847747 export class OrderFieldDef extends S.Class<OrderFieldDef>("OrderFieldDef")({
848- "aggregate": S.optional(S.NullOr(AggregateOp)),
849- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
850- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
748+ "aggregate": S.optional(AggregateOp),
749+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
750+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
851751 "sort": S.optional(S.NullOr(SortEnum)),
852- "timeUnit": S.optional(S.NullOr(TimeUnit)),
752+ "timeUnit": S.optional(TimeUnit),
853753 "type": Type,
854754 }) {}
855755
856756 export class ConditionalPredicateFieldDefClass extends S.Class<ConditionalPredicateFieldDefClass>("ConditionalPredicateFieldDefClass")({
857- "test": S.optional(S.Union(S.String, S.suspend(() => Predicate), S.Null)),
858- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
859- "selection": S.optional(S.Union(S.String, S.suspend(() => Selection), S.Null)),
860- "aggregate": S.optional(S.NullOr(AggregateOp)),
861- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
862- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
863- "timeUnit": S.optional(S.NullOr(TimeUnit)),
864- "type": S.optional(S.NullOr(Type)),
757+ "test": S.optional(S.Union(S.String, S.suspend(() => Predicate))),
758+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
759+ "selection": S.optional(S.Union(S.String, S.suspend(() => Selection))),
760+ "aggregate": S.optional(AggregateOp),
761+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
762+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
763+ "timeUnit": S.optional(TimeUnit),
764+ "type": S.optional(Type),
865765 }) {}
866766
867767 export class DefWithCondition extends S.Class<DefWithCondition>("DefWithCondition")({
868- "aggregate": S.optional(S.NullOr(AggregateOp)),
869- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
870- "condition": S.optional(S.Union(S.Array(S.suspend(() => ConditionalValueDef)), ConditionalPredicateFieldDefClass, S.Null)),
871- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
872- "timeUnit": S.optional(S.NullOr(TimeUnit)),
873- "type": S.optional(S.NullOr(Type)),
874- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
768+ "aggregate": S.optional(AggregateOp),
769+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
770+ "condition": S.optional(S.Union(S.Array(S.suspend(() => ConditionalValueDef)), ConditionalPredicateFieldDefClass)),
771+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
772+ "timeUnit": S.optional(TimeUnit),
773+ "type": S.optional(Type),
774+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
875775 }) {}
876776
877777 export class FieldDef extends S.Class<FieldDef>("FieldDef")({
878- "aggregate": S.optional(S.NullOr(AggregateOp)),
879- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
880- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
881- "timeUnit": S.optional(S.NullOr(TimeUnit)),
778+ "aggregate": S.optional(AggregateOp),
779+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
780+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
781+ "timeUnit": S.optional(TimeUnit),
882782 "type": Type,
883783 }) {}
884784
885785 export class Header extends S.Class<Header>("Header")({
886- "format": S.optional(S.NullOr(S.String)),
887- "labelAngle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360)))),
786+ "format": S.optional(S.String),
787+ "labelAngle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360))),
888788 "title": S.optional(S.NullOr(S.String)),
889789 }) {}
890790
891-export class LookupData extends S.Class<LookupData>("LookupData")({
892- "data": S.suspend(() => Data),
893- "fields": S.optional(S.NullOr(S.Array(S.String))),
894- "key": S.String,
791+export class SelectionDef extends S.Class<SelectionDef>("SelectionDef")({
792+ "bind": S.optional(S.Union(BindEnum, S.Record({ key: S.String, value: S.suspend(() => VgBinding)}))),
793+ "empty": S.optional(Empty),
794+ "encodings": S.optional(S.Array(SingleDefChannel)),
795+ "fields": S.optional(S.Array(S.String)),
796+ "nearest": S.optional(S.Boolean),
797+ "on": S.optional(S.Any),
798+ "resolve": S.optional(SelectionResolution),
799+ "type": SelectionDefType,
800+ "toggle": S.optional(S.Union(S.Boolean, S.String)),
801+ "mark": S.optional(S.suspend(() => BrushConfig)),
802+ "translate": S.optional(S.Union(S.Boolean, S.String)),
803+ "zoom": S.optional(S.Union(S.Boolean, S.String)),
895804 }) {}
896805
897806 export class FacetFieldDef extends S.Class<FacetFieldDef>("FacetFieldDef")({
898- "aggregate": S.optional(S.NullOr(AggregateOp)),
899- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
900- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
901- "header": S.optional(S.NullOr(Header)),
807+ "aggregate": S.optional(AggregateOp),
808+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
809+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
810+ "header": S.optional(Header),
902811 "sort": S.optional(S.NullOr(SortEnum)),
903- "timeUnit": S.optional(S.NullOr(TimeUnit)),
812+ "timeUnit": S.optional(TimeUnit),
904813 "type": Type,
905814 }) {}
906815
907816 export class SortField extends S.Class<SortField>("SortField")({
908- "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef), S.Null)),
817+ "field": S.optional(S.Union(S.String, S.suspend(() => RepeatRef))),
909818 "op": AggregateOp,
910819 "order": S.optional(S.NullOr(SortEnum)),
911820 }) {}
912821
913822 export class SchemeParams extends S.Class<SchemeParams>("SchemeParams")({
914- "extent": S.optional(S.NullOr(S.Array(S.Number))),
823+ "extent": S.optional(S.Array(S.Number)),
915824 "name": S.String,
916825 }) {}
917826
@@ -921,45 +830,65 @@ export class NiceClass extends S.Class<NiceClass>("NiceClass")({
921830 }) {}
922831
923832 export class InterpolateParams extends S.Class<InterpolateParams>("InterpolateParams")({
924- "gamma": S.optional(S.NullOr(S.Number)),
833+ "gamma": S.optional(S.Number),
925834 "type": InterpolateParamsType,
926835 }) {}
927836
928837 export class DomainClass extends S.Class<DomainClass>("DomainClass")({
929- "field": S.optional(S.NullOr(S.String)),
838+ "field": S.optional(S.String),
930839 "selection": S.String,
931- "encoding": S.optional(S.NullOr(S.String)),
840+ "encoding": S.optional(S.String),
932841 }) {}
933842
934843 export class Scale extends S.Class<Scale>("Scale")({
935- "base": S.optional(S.NullOr(S.Number)),
936- "clamp": S.optional(S.NullOr(S.Boolean)),
937- "domain": S.optional(S.Union(S.Array(S.Union(S.Boolean, S.Number, S.String, S.suspend(() => DateTime))), Domain, DomainClass, S.Null)),
938- "exponent": S.optional(S.NullOr(S.Number)),
939- "interpolate": S.optional(S.Union(Interpolate, InterpolateParams, S.Null)),
940- "nice": S.optional(S.Union(S.Boolean, S.Number, NiceTime, NiceClass, S.Null)),
941- "padding": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
942- "paddingInner": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
943- "paddingOuter": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
944- "range": S.optional(S.Union(S.Array(S.Union(S.Number, S.String)), S.String, S.Null)),
844+ "base": S.optional(S.Number),
845+ "clamp": S.optional(S.Boolean),
846+ "domain": S.optional(S.Union(S.Array(S.Union(S.Boolean, S.Number, S.String, S.suspend(() => DateTime))), Domain, DomainClass)),
847+ "exponent": S.optional(S.Number),
848+ "interpolate": S.optional(S.Union(Interpolate, InterpolateParams)),
849+ "nice": S.optional(S.Union(S.Boolean, S.Number, NiceTime, NiceClass)),
850+ "padding": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
851+ "paddingInner": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
852+ "paddingOuter": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
853+ "range": S.optional(S.Union(S.Array(S.Union(S.Number, S.String)), S.String)),
945854 "rangeStep": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
946- "round": S.optional(S.NullOr(S.Boolean)),
947- "scheme": S.optional(S.Union(S.String, SchemeParams, S.Null)),
948- "type": S.optional(S.NullOr(ScaleType)),
949- "zero": S.optional(S.NullOr(S.Boolean)),
855+ "round": S.optional(S.Boolean),
856+ "scheme": S.optional(S.Union(S.String, SchemeParams)),
857+ "type": S.optional(ScaleType),
858+ "zero": S.optional(S.Boolean),
859+}) {}
860+
861+export class LookupData extends S.Class<LookupData>("LookupData")({
862+ "data": S.suspend(() => Data),
863+ "fields": S.optional(S.Array(S.String)),
864+ "key": S.String,
950865 }) {}
951866
952867 export class Legend extends S.Class<Legend>("Legend")({
953- "entryPadding": S.optional(S.NullOr(S.Number)),
954- "format": S.optional(S.NullOr(S.String)),
955- "offset": S.optional(S.NullOr(S.Number)),
956- "orient": S.optional(S.NullOr(LegendOrient)),
957- "padding": S.optional(S.NullOr(S.Number)),
958- "tickCount": S.optional(S.NullOr(S.Number)),
868+ "entryPadding": S.optional(S.Number),
869+ "format": S.optional(S.String),
870+ "offset": S.optional(S.Number),
871+ "orient": S.optional(LegendOrient),
872+ "padding": S.optional(S.Number),
873+ "tickCount": S.optional(S.Number),
959874 "title": S.optional(S.NullOr(S.String)),
960- "type": S.optional(S.NullOr(LegendType)),
961- "values": S.optional(S.NullOr(S.Array(S.Union(S.Number, S.String, S.suspend(() => DateTime))))),
962- "zindex": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
875+ "type": S.optional(LegendType),
876+ "values": S.optional(S.Array(S.Union(S.Number, S.String, S.suspend(() => DateTime)))),
877+ "zindex": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
878+}) {}
879+
880+export class Transform extends S.Class<Transform>("Transform")({
881+ "filter": S.optional(S.Union(S.String, S.suspend(() => Predicate))),
882+ "as": S.optional(S.Union(S.Array(S.String), S.String)),
883+ "calculate": S.optional(S.String),
884+ "default": S.optional(S.String),
885+ "from": S.optional(LookupData),
886+ "lookup": S.optional(S.String),
887+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
888+ "field": S.optional(S.String),
889+ "timeUnit": S.optional(TimeUnit),
890+ "aggregate": S.optional(S.Array(AggregatedFieldDef)),
891+ "groupby": S.optional(S.Array(S.String)),
963892 }) {}
964893
965894 export class RepeatRef extends S.Class<RepeatRef>("RepeatRef")({
@@ -967,609 +896,680 @@ export class RepeatRef extends S.Class<RepeatRef>("RepeatRef")({
967896 }) {}
968897
969898 export class ConditionalPredicateMarkPropFieldDefClass extends S.Class<ConditionalPredicateMarkPropFieldDefClass>("ConditionalPredicateMarkPropFieldDefClass")({
970- "test": S.optional(S.Union(S.String, S.suspend(() => Predicate), S.Null)),
971- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
972- "selection": S.optional(S.Union(S.String, S.suspend(() => Selection), S.Null)),
973- "aggregate": S.optional(S.NullOr(AggregateOp)),
974- "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams), S.Null)),
975- "field": S.optional(S.Union(S.String, RepeatRef, S.Null)),
899+ "test": S.optional(S.Union(S.String, S.suspend(() => Predicate))),
900+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
901+ "selection": S.optional(S.Union(S.String, S.suspend(() => Selection))),
902+ "aggregate": S.optional(AggregateOp),
903+ "bin": S.optional(S.Union(S.Boolean, S.suspend(() => BinParams))),
904+ "field": S.optional(S.Union(S.String, RepeatRef)),
976905 "legend": S.optional(S.NullOr(Legend)),
977- "scale": S.optional(S.NullOr(Scale)),
906+ "scale": S.optional(Scale),
978907 "sort": S.optional(S.Union(SortEnum, SortField, S.Null)),
979- "timeUnit": S.optional(S.NullOr(TimeUnit)),
980- "type": S.optional(S.NullOr(Type)),
908+ "timeUnit": S.optional(TimeUnit),
909+ "type": S.optional(Type),
981910 }) {}
982911
983912 export class DateTime extends S.Class<DateTime>("DateTime")({
984- "date": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(31)))),
985- "day": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(7)), S.String, S.Null)),
986- "hours": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(23)))),
987- "milliseconds": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(999)))),
988- "minutes": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(59)))),
989- "month": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(12)), S.String, S.Null)),
990- "quarter": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(4)))),
991- "seconds": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(59)))),
992- "utc": S.optional(S.NullOr(S.Boolean)),
993- "year": S.optional(S.NullOr(S.Number)),
913+ "date": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(31))),
914+ "day": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(7)), S.String)),
915+ "hours": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(23))),
916+ "milliseconds": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(999))),
917+ "minutes": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(59))),
918+ "month": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(12)), S.String)),
919+ "quarter": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(1)).pipe(S.lessThanOrEqualTo(4))),
920+ "seconds": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(59))),
921+ "utc": S.optional(S.Boolean),
922+ "year": S.optional(S.Number),
994923 }) {}
995924
996925 export class Predicate extends S.Class<Predicate>("Predicate")({
997- "not": S.optional(S.Union(S.String, S.suspend(() => Predicate), S.Null)),
998- "and": S.optional(S.NullOr(S.Array(S.Union(S.String, S.suspend(() => Predicate))))),
999- "or": S.optional(S.NullOr(S.Array(S.Union(S.String, S.suspend(() => Predicate))))),
1000- "equal": S.optional(S.Union(S.Boolean, S.Number, S.String, DateTime, S.Null)),
1001- "field": S.optional(S.NullOr(S.String)),
1002- "timeUnit": S.optional(S.NullOr(TimeUnit)),
1003- "range": S.optional(S.NullOr(S.Array(S.Union(S.Number, DateTime, S.Null)).pipe(S.minItems(2)).pipe(S.maxItems(2)))),
1004- "oneOf": S.optional(S.NullOr(S.Array(S.Union(S.Boolean, S.Number, S.String, DateTime)))),
1005- "selection": S.optional(S.Union(S.String, S.suspend(() => Selection), S.Null)),
926+ "not": S.optional(S.Union(S.String, S.suspend(() => Predicate))),
927+ "and": S.optional(S.Array(S.Union(S.String, S.suspend(() => Predicate)))),
928+ "or": S.optional(S.Array(S.Union(S.String, S.suspend(() => Predicate)))),
929+ "equal": S.optional(S.Union(S.Boolean, S.Number, S.String, DateTime)),
930+ "field": S.optional(S.String),
931+ "timeUnit": S.optional(TimeUnit),
932+ "range": S.optional(S.Array(S.Union(S.Number, DateTime, S.Null)).pipe(S.minItems(2)).pipe(S.maxItems(2))),
933+ "oneOf": S.optional(S.Array(S.Union(S.Boolean, S.Number, S.String, DateTime))),
934+ "selection": S.optional(S.Union(S.String, S.suspend(() => Selection))),
1006935 }) {}
1007936
1008937 export class Selection extends S.Class<Selection>("Selection")({
1009- "not": S.optional(S.Union(S.String, S.suspend(() => Selection), S.Null)),
1010- "and": S.optional(S.NullOr(S.Array(S.Union(S.String, S.suspend(() => Selection))))),
1011- "or": S.optional(S.NullOr(S.Array(S.Union(S.String, S.suspend(() => Selection))))),
938+ "not": S.optional(S.Union(S.String, S.suspend(() => Selection))),
939+ "and": S.optional(S.Array(S.Union(S.String, S.suspend(() => Selection)))),
940+ "or": S.optional(S.Array(S.Union(S.String, S.suspend(() => Selection)))),
1012941 }) {}
1013942
1014943 export class ConditionalValueDef extends S.Class<ConditionalValueDef>("ConditionalValueDef")({
1015- "test": S.optional(S.Union(S.String, Predicate, S.Null)),
944+ "test": S.optional(S.Union(S.String, Predicate)),
1016945 "value": S.Union(S.Boolean, S.Number, S.String),
1017- "selection": S.optional(S.Union(S.String, Selection, S.Null)),
946+ "selection": S.optional(S.Union(S.String, Selection)),
1018947 }) {}
1019948
1020949 export class BinParams extends S.Class<BinParams>("BinParams")({
1021- "base": S.optional(S.NullOr(S.Number)),
1022- "divide": S.optional(S.NullOr(S.Array(S.Number).pipe(S.minItems(1)))),
1023- "extent": S.optional(S.NullOr(S.Array(S.Number).pipe(S.minItems(2)).pipe(S.maxItems(2)))),
1024- "maxbins": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(2)))),
1025- "minstep": S.optional(S.NullOr(S.Number)),
1026- "nice": S.optional(S.NullOr(S.Boolean)),
1027- "step": S.optional(S.NullOr(S.Number)),
1028- "steps": S.optional(S.NullOr(S.Array(S.Number).pipe(S.minItems(1)))),
950+ "base": S.optional(S.Number),
951+ "divide": S.optional(S.Array(S.Number).pipe(S.minItems(1))),
952+ "extent": S.optional(S.Array(S.Number).pipe(S.minItems(2)).pipe(S.maxItems(2))),
953+ "maxbins": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(2))),
954+ "minstep": S.optional(S.Number),
955+ "nice": S.optional(S.Boolean),
956+ "step": S.optional(S.Number),
957+ "steps": S.optional(S.Array(S.Number).pipe(S.minItems(1))),
1029958 }) {}
1030959
1031960 export class MarkPropDefWithCondition extends S.Class<MarkPropDefWithCondition>("MarkPropDefWithCondition")({
1032- "aggregate": S.optional(S.NullOr(AggregateOp)),
1033- "bin": S.optional(S.Union(S.Boolean, BinParams, S.Null)),
1034- "condition": S.optional(S.Union(S.Array(ConditionalValueDef), ConditionalPredicateMarkPropFieldDefClass, S.Null)),
1035- "field": S.optional(S.Union(S.String, RepeatRef, S.Null)),
961+ "aggregate": S.optional(AggregateOp),
962+ "bin": S.optional(S.Union(S.Boolean, BinParams)),
963+ "condition": S.optional(S.Union(S.Array(ConditionalValueDef), ConditionalPredicateMarkPropFieldDefClass)),
964+ "field": S.optional(S.Union(S.String, RepeatRef)),
1036965 "legend": S.optional(S.NullOr(Legend)),
1037- "scale": S.optional(S.NullOr(Scale)),
966+ "scale": S.optional(Scale),
1038967 "sort": S.optional(S.Union(SortEnum, SortField, S.Null)),
1039- "timeUnit": S.optional(S.NullOr(TimeUnit)),
1040- "type": S.optional(S.NullOr(Type)),
1041- "value": S.optional(S.Union(S.Boolean, S.Number, S.String, S.Null)),
968+ "timeUnit": S.optional(TimeUnit),
969+ "type": S.optional(Type),
970+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
1042971 }) {}
1043972
1044973 export class EncodingWithFacet extends S.Class<EncodingWithFacet>("EncodingWithFacet")({
1045- "color": S.optional(S.NullOr(MarkPropDefWithCondition)),
1046- "column": S.optional(S.NullOr(FacetFieldDef)),
1047- "detail": S.optional(S.Union(S.Array(FieldDef), FieldDef, S.Null)),
1048- "href": S.optional(S.NullOr(DefWithCondition)),
1049- "opacity": S.optional(S.NullOr(MarkPropDefWithCondition)),
1050- "order": S.optional(S.Union(S.Array(OrderFieldDef), OrderFieldDef, S.Null)),
1051- "row": S.optional(S.NullOr(FacetFieldDef)),
1052- "shape": S.optional(S.NullOr(MarkPropDefWithCondition)),
1053- "size": S.optional(S.NullOr(MarkPropDefWithCondition)),
1054- "text": S.optional(S.NullOr(TextDefWithCondition)),
1055- "tooltip": S.optional(S.NullOr(TextDefWithCondition)),
1056- "x": S.optional(S.NullOr(XClass)),
1057- "x2": S.optional(S.NullOr(X2Class)),
1058- "y": S.optional(S.NullOr(XClass)),
1059- "y2": S.optional(S.NullOr(X2Class)),
974+ "color": S.optional(MarkPropDefWithCondition),
975+ "column": S.optional(FacetFieldDef),
976+ "detail": S.optional(S.Union(S.Array(FieldDef), FieldDef)),
977+ "href": S.optional(DefWithCondition),
978+ "opacity": S.optional(MarkPropDefWithCondition),
979+ "order": S.optional(S.Union(S.Array(OrderFieldDef), OrderFieldDef)),
980+ "row": S.optional(FacetFieldDef),
981+ "shape": S.optional(MarkPropDefWithCondition),
982+ "size": S.optional(MarkPropDefWithCondition),
983+ "text": S.optional(TextDefWithCondition),
984+ "tooltip": S.optional(TextDefWithCondition),
985+ "x": S.optional(S.suspend(() => XClass)),
986+ "x2": S.optional(X2Class),
987+ "y": S.optional(S.suspend(() => XClass)),
988+ "y2": S.optional(X2Class),
1060989 }) {}
1061990
1062991 export class DataFormat extends S.Class<DataFormat>("DataFormat")({
1063- "parse": S.optional(S.Union(ParseEnum, S.Record({ key: S.String, value: S.Any}), S.Null)),
1064- "type": S.optional(S.NullOr(DataFormatType)),
1065- "property": S.optional(S.NullOr(S.String)),
1066- "feature": S.optional(S.NullOr(S.String)),
1067- "mesh": S.optional(S.NullOr(S.String)),
992+ "parse": S.optional(S.Union(ParseEnum, S.Record({ key: S.String, value: S.Any}))),
993+ "type": S.optional(DataFormatType),
994+ "property": S.optional(S.String),
995+ "feature": S.optional(S.String),
996+ "mesh": S.optional(S.String),
1068997 }) {}
1069998
1070999 export class Data extends S.Class<Data>("Data")({
1071- "format": S.optional(S.NullOr(DataFormat)),
1072- "url": S.optional(S.NullOr(S.String)),
1073- "values": S.optional(S.Union(S.Array(S.Union(S.Boolean, S.Number, S.Record({ key: S.String, value: S.Any}), S.String)), S.Record({ key: S.String, value: S.Any}), S.String, S.Null)),
1074- "name": S.optional(S.NullOr(S.String)),
1000+ "format": S.optional(DataFormat),
1001+ "url": S.optional(S.String),
1002+ "values": S.optional(S.Union(S.Array(S.Union(S.Boolean, S.Number, S.Record({ key: S.String, value: S.Any}), S.String)), S.Record({ key: S.String, value: S.Any}), S.String)),
1003+ "name": S.optional(S.String),
10751004 }) {}
10761005
10771006 export class ViewConfig extends S.Class<ViewConfig>("ViewConfig")({
1078- "clip": S.optional(S.NullOr(S.Boolean)),
1079- "fill": S.optional(S.NullOr(S.String)),
1080- "fillOpacity": S.optional(S.NullOr(S.Number)),
1081- "height": S.optional(S.NullOr(S.Number)),
1082- "stroke": S.optional(S.NullOr(S.String)),
1083- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1084- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1085- "strokeOpacity": S.optional(S.NullOr(S.Number)),
1086- "strokeWidth": S.optional(S.NullOr(S.Number)),
1087- "width": S.optional(S.NullOr(S.Number)),
1007+ "clip": S.optional(S.Boolean),
1008+ "fill": S.optional(S.String),
1009+ "fillOpacity": S.optional(S.Number),
1010+ "height": S.optional(S.Number),
1011+ "stroke": S.optional(S.String),
1012+ "strokeDash": S.optional(S.Array(S.Number)),
1013+ "strokeDashOffset": S.optional(S.Number),
1014+ "strokeOpacity": S.optional(S.Number),
1015+ "strokeWidth": S.optional(S.Number),
1016+ "width": S.optional(S.Number),
10881017 }) {}
10891018
10901019 export class VgTitleConfig extends S.Class<VgTitleConfig>("VgTitleConfig")({
1091- "anchor": S.optional(S.NullOr(Anchor)),
1092- "angle": S.optional(S.NullOr(S.Number)),
1093- "baseline": S.optional(S.NullOr(VerticalAlign)),
1094- "color": S.optional(S.NullOr(S.String)),
1095- "font": S.optional(S.NullOr(S.String)),
1096- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1097- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1098- "limit": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1099- "offset": S.optional(S.NullOr(S.Number)),
1100- "orient": S.optional(S.NullOr(TitleOrient)),
1020+ "anchor": S.optional(Anchor),
1021+ "angle": S.optional(S.Number),
1022+ "baseline": S.optional(VerticalAlign),
1023+ "color": S.optional(S.String),
1024+ "font": S.optional(S.String),
1025+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1026+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1027+ "limit": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1028+ "offset": S.optional(S.Number),
1029+ "orient": S.optional(TitleOrient),
11011030 }) {}
11021031
11031032 export class TickConfig extends S.Class<TickConfig>("TickConfig")({
1104- "align": S.optional(S.NullOr(HorizontalAlign)),
1105- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
1106- "bandSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1107- "baseline": S.optional(S.NullOr(VerticalAlign)),
1108- "color": S.optional(S.NullOr(S.String)),
1109- "cursor": S.optional(S.NullOr(Cursor)),
1110- "dx": S.optional(S.NullOr(S.Number)),
1111- "dy": S.optional(S.NullOr(S.Number)),
1112- "fill": S.optional(S.NullOr(S.String)),
1113- "filled": S.optional(S.NullOr(S.Boolean)),
1114- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1115- "font": S.optional(S.NullOr(S.String)),
1116- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1117- "fontStyle": S.optional(S.NullOr(FontStyle)),
1118- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1119- "href": S.optional(S.NullOr(S.String)),
1120- "interpolate": S.optional(S.NullOr(Interpolate)),
1121- "limit": S.optional(S.NullOr(S.Number)),
1122- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1123- "orient": S.optional(S.NullOr(Orient)),
1124- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1125- "shape": S.optional(S.NullOr(S.String)),
1126- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1127- "stroke": S.optional(S.NullOr(S.String)),
1128- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1129- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1130- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1131- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1132- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1133- "text": S.optional(S.NullOr(S.String)),
1134- "theta": S.optional(S.NullOr(S.Number)),
1135- "thickness": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1033+ "align": S.optional(HorizontalAlign),
1034+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
1035+ "bandSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1036+ "baseline": S.optional(VerticalAlign),
1037+ "color": S.optional(S.String),
1038+ "cursor": S.optional(Cursor),
1039+ "dx": S.optional(S.Number),
1040+ "dy": S.optional(S.Number),
1041+ "fill": S.optional(S.String),
1042+ "filled": S.optional(S.Boolean),
1043+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1044+ "font": S.optional(S.String),
1045+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1046+ "fontStyle": S.optional(FontStyle),
1047+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1048+ "href": S.optional(S.String),
1049+ "interpolate": S.optional(Interpolate),
1050+ "limit": S.optional(S.Number),
1051+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1052+ "orient": S.optional(Orient),
1053+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1054+ "shape": S.optional(S.String),
1055+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1056+ "stroke": S.optional(S.String),
1057+ "strokeDash": S.optional(S.Array(S.Number)),
1058+ "strokeDashOffset": S.optional(S.Number),
1059+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1060+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1061+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1062+ "text": S.optional(S.String),
1063+ "theta": S.optional(S.Number),
1064+ "thickness": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
11361065 }) {}
11371066
11381067 export class TextConfig extends S.Class<TextConfig>("TextConfig")({
1139- "align": S.optional(S.NullOr(HorizontalAlign)),
1140- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
1141- "baseline": S.optional(S.NullOr(VerticalAlign)),
1142- "color": S.optional(S.NullOr(S.String)),
1143- "cursor": S.optional(S.NullOr(Cursor)),
1144- "dx": S.optional(S.NullOr(S.Number)),
1145- "dy": S.optional(S.NullOr(S.Number)),
1146- "fill": S.optional(S.NullOr(S.String)),
1147- "filled": S.optional(S.NullOr(S.Boolean)),
1148- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1149- "font": S.optional(S.NullOr(S.String)),
1150- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1151- "fontStyle": S.optional(S.NullOr(FontStyle)),
1152- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1153- "href": S.optional(S.NullOr(S.String)),
1154- "interpolate": S.optional(S.NullOr(Interpolate)),
1155- "limit": S.optional(S.NullOr(S.Number)),
1156- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1157- "orient": S.optional(S.NullOr(Orient)),
1158- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1159- "shape": S.optional(S.NullOr(S.String)),
1160- "shortTimeLabels": S.optional(S.NullOr(S.Boolean)),
1161- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1162- "stroke": S.optional(S.NullOr(S.String)),
1163- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1164- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1165- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1166- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1167- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1168- "text": S.optional(S.NullOr(S.String)),
1169- "theta": S.optional(S.NullOr(S.Number)),
1068+ "align": S.optional(HorizontalAlign),
1069+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
1070+ "baseline": S.optional(VerticalAlign),
1071+ "color": S.optional(S.String),
1072+ "cursor": S.optional(Cursor),
1073+ "dx": S.optional(S.Number),
1074+ "dy": S.optional(S.Number),
1075+ "fill": S.optional(S.String),
1076+ "filled": S.optional(S.Boolean),
1077+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1078+ "font": S.optional(S.String),
1079+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1080+ "fontStyle": S.optional(FontStyle),
1081+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1082+ "href": S.optional(S.String),
1083+ "interpolate": S.optional(Interpolate),
1084+ "limit": S.optional(S.Number),
1085+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1086+ "orient": S.optional(Orient),
1087+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1088+ "shape": S.optional(S.String),
1089+ "shortTimeLabels": S.optional(S.Boolean),
1090+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1091+ "stroke": S.optional(S.String),
1092+ "strokeDash": S.optional(S.Array(S.Number)),
1093+ "strokeDashOffset": S.optional(S.Number),
1094+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1095+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1096+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1097+ "text": S.optional(S.String),
1098+ "theta": S.optional(S.Number),
11701099 }) {}
11711100
11721101 export class VgMarkConfig extends S.Class<VgMarkConfig>("VgMarkConfig")({
1173- "align": S.optional(S.NullOr(HorizontalAlign)),
1174- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
1175- "baseline": S.optional(S.NullOr(VerticalAlign)),
1176- "cursor": S.optional(S.NullOr(Cursor)),
1177- "dx": S.optional(S.NullOr(S.Number)),
1178- "dy": S.optional(S.NullOr(S.Number)),
1179- "fill": S.optional(S.NullOr(S.String)),
1180- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1181- "font": S.optional(S.NullOr(S.String)),
1182- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1183- "fontStyle": S.optional(S.NullOr(FontStyle)),
1184- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1185- "href": S.optional(S.NullOr(S.String)),
1186- "interpolate": S.optional(S.NullOr(Interpolate)),
1187- "limit": S.optional(S.NullOr(S.Number)),
1188- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1189- "orient": S.optional(S.NullOr(Orient)),
1190- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1191- "shape": S.optional(S.NullOr(S.String)),
1192- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1193- "stroke": S.optional(S.NullOr(S.String)),
1194- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1195- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1196- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1197- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1198- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1199- "text": S.optional(S.NullOr(S.String)),
1200- "theta": S.optional(S.NullOr(S.Number)),
1102+ "align": S.optional(HorizontalAlign),
1103+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
1104+ "baseline": S.optional(VerticalAlign),
1105+ "cursor": S.optional(Cursor),
1106+ "dx": S.optional(S.Number),
1107+ "dy": S.optional(S.Number),
1108+ "fill": S.optional(S.String),
1109+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1110+ "font": S.optional(S.String),
1111+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1112+ "fontStyle": S.optional(FontStyle),
1113+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1114+ "href": S.optional(S.String),
1115+ "interpolate": S.optional(Interpolate),
1116+ "limit": S.optional(S.Number),
1117+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1118+ "orient": S.optional(Orient),
1119+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1120+ "shape": S.optional(S.String),
1121+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1122+ "stroke": S.optional(S.String),
1123+ "strokeDash": S.optional(S.Array(S.Number)),
1124+ "strokeDashOffset": S.optional(S.Number),
1125+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1126+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1127+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1128+ "text": S.optional(S.String),
1129+ "theta": S.optional(S.Number),
12011130 }) {}
12021131
12031132 export class VgBinding extends S.Class<VgBinding>("VgBinding")({
1204- "element": S.optional(S.NullOr(S.String)),
1133+ "element": S.optional(S.String),
12051134 "input": S.String,
1206- "options": S.optional(S.NullOr(S.Array(S.String))),
1207- "max": S.optional(S.NullOr(S.Number)),
1208- "min": S.optional(S.NullOr(S.Number)),
1209- "step": S.optional(S.NullOr(S.Number)),
1135+ "options": S.optional(S.Array(S.String)),
1136+ "max": S.optional(S.Number),
1137+ "min": S.optional(S.Number),
1138+ "step": S.optional(S.Number),
12101139 }) {}
12111140
12121141 export class SingleSelectionConfig extends S.Class<SingleSelectionConfig>("SingleSelectionConfig")({
1213- "bind": S.optional(S.NullOr(S.Record({ key: S.String, value: VgBinding}))),
1214- "empty": S.optional(S.NullOr(Empty)),
1215- "encodings": S.optional(S.NullOr(S.Array(SingleDefChannel))),
1216- "fields": S.optional(S.NullOr(S.Array(S.String))),
1217- "nearest": S.optional(S.NullOr(S.Boolean)),
1142+ "bind": S.optional(S.Record({ key: S.String, value: VgBinding})),
1143+ "empty": S.optional(Empty),
1144+ "encodings": S.optional(S.Array(SingleDefChannel)),
1145+ "fields": S.optional(S.Array(S.String)),
1146+ "nearest": S.optional(S.Boolean),
12181147 "on": S.optional(S.Any),
1219- "resolve": S.optional(S.NullOr(SelectionResolution)),
1148+ "resolve": S.optional(SelectionResolution),
12201149 }) {}
12211150
12221151 export class MultiSelectionConfig extends S.Class<MultiSelectionConfig>("MultiSelectionConfig")({
1223- "empty": S.optional(S.NullOr(Empty)),
1224- "encodings": S.optional(S.NullOr(S.Array(SingleDefChannel))),
1225- "fields": S.optional(S.NullOr(S.Array(S.String))),
1226- "nearest": S.optional(S.NullOr(S.Boolean)),
1152+ "empty": S.optional(Empty),
1153+ "encodings": S.optional(S.Array(SingleDefChannel)),
1154+ "fields": S.optional(S.Array(S.String)),
1155+ "nearest": S.optional(S.Boolean),
12271156 "on": S.optional(S.Any),
1228- "resolve": S.optional(S.NullOr(SelectionResolution)),
1229- "toggle": S.optional(S.Union(S.Boolean, S.String, S.Null)),
1157+ "resolve": S.optional(SelectionResolution),
1158+ "toggle": S.optional(S.Union(S.Boolean, S.String)),
12301159 }) {}
12311160
12321161 export class BrushConfig extends S.Class<BrushConfig>("BrushConfig")({
1233- "fill": S.optional(S.NullOr(S.String)),
1234- "fillOpacity": S.optional(S.NullOr(S.Number)),
1235- "stroke": S.optional(S.NullOr(S.String)),
1236- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1237- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1238- "strokeOpacity": S.optional(S.NullOr(S.Number)),
1239- "strokeWidth": S.optional(S.NullOr(S.Number)),
1162+ "fill": S.optional(S.String),
1163+ "fillOpacity": S.optional(S.Number),
1164+ "stroke": S.optional(S.String),
1165+ "strokeDash": S.optional(S.Array(S.Number)),
1166+ "strokeDashOffset": S.optional(S.Number),
1167+ "strokeOpacity": S.optional(S.Number),
1168+ "strokeWidth": S.optional(S.Number),
12401169 }) {}
12411170
12421171 export class IntervalSelectionConfig extends S.Class<IntervalSelectionConfig>("IntervalSelectionConfig")({
1243- "bind": S.optional(S.NullOr(BindEnum)),
1244- "empty": S.optional(S.NullOr(Empty)),
1245- "encodings": S.optional(S.NullOr(S.Array(SingleDefChannel))),
1246- "fields": S.optional(S.NullOr(S.Array(S.String))),
1247- "mark": S.optional(S.NullOr(BrushConfig)),
1172+ "bind": S.optional(BindEnum),
1173+ "empty": S.optional(Empty),
1174+ "encodings": S.optional(S.Array(SingleDefChannel)),
1175+ "fields": S.optional(S.Array(S.String)),
1176+ "mark": S.optional(BrushConfig),
12481177 "on": S.optional(S.Any),
1249- "resolve": S.optional(S.NullOr(SelectionResolution)),
1250- "translate": S.optional(S.Union(S.Boolean, S.String, S.Null)),
1251- "zoom": S.optional(S.Union(S.Boolean, S.String, S.Null)),
1178+ "resolve": S.optional(SelectionResolution),
1179+ "translate": S.optional(S.Union(S.Boolean, S.String)),
1180+ "zoom": S.optional(S.Union(S.Boolean, S.String)),
1181+}) {}
1182+
1183+export class XClass extends S.Class<XClass>("XClass")({
1184+ "aggregate": S.optional(AggregateOp),
1185+ "axis": S.optional(S.NullOr(Axis)),
1186+ "bin": S.optional(S.Union(S.Boolean, BinParams)),
1187+ "field": S.optional(S.Union(S.String, RepeatRef)),
1188+ "scale": S.optional(Scale),
1189+ "sort": S.optional(S.Union(SortEnum, SortField, S.Null)),
1190+ "stack": S.optional(S.NullOr(StackOffset)),
1191+ "timeUnit": S.optional(TimeUnit),
1192+ "type": S.optional(Type),
1193+ "value": S.optional(S.Union(S.Boolean, S.Number, S.String)),
12521194 }) {}
12531195
12541196 export class SelectionConfig extends S.Class<SelectionConfig>("SelectionConfig")({
1255- "interval": S.optional(S.NullOr(IntervalSelectionConfig)),
1256- "multi": S.optional(S.NullOr(MultiSelectionConfig)),
1257- "single": S.optional(S.NullOr(SingleSelectionConfig)),
1197+ "interval": S.optional(IntervalSelectionConfig),
1198+ "multi": S.optional(MultiSelectionConfig),
1199+ "single": S.optional(SingleSelectionConfig),
12581200 }) {}
12591201
12601202 export class ScaleConfig extends S.Class<ScaleConfig>("ScaleConfig")({
1261- "bandPaddingInner": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1262- "bandPaddingOuter": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1263- "clamp": S.optional(S.NullOr(S.Boolean)),
1264- "continuousPadding": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1265- "maxBandSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1266- "maxFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1267- "maxOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1268- "maxSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1269- "maxStrokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1270- "minBandSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1271- "minFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1272- "minOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1273- "minSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1274- "minStrokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1275- "pointPadding": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1203+ "bandPaddingInner": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1204+ "bandPaddingOuter": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1205+ "clamp": S.optional(S.Boolean),
1206+ "continuousPadding": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1207+ "maxBandSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1208+ "maxFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1209+ "maxOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1210+ "maxSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1211+ "maxStrokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1212+ "minBandSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1213+ "minFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1214+ "minOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1215+ "minSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1216+ "minStrokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1217+ "pointPadding": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
12761218 "rangeStep": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1277- "round": S.optional(S.NullOr(S.Boolean)),
1278- "textXRangeStep": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1279- "useUnaggregatedDomain": S.optional(S.NullOr(S.Boolean)),
1219+ "round": S.optional(S.Boolean),
1220+ "textXRangeStep": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1221+ "useUnaggregatedDomain": S.optional(S.Boolean),
12801222 }) {}
12811223
12821224 export class VgScheme extends S.Class<VgScheme>("VgScheme")({
1283- "count": S.optional(S.NullOr(S.Number)),
1284- "extent": S.optional(S.NullOr(S.Array(S.Number))),
1285- "scheme": S.optional(S.NullOr(S.String)),
1286- "step": S.optional(S.NullOr(S.Number)),
1225+ "count": S.optional(S.Number),
1226+ "extent": S.optional(S.Array(S.Number)),
1227+ "scheme": S.optional(S.String),
1228+ "step": S.optional(S.Number),
12871229 }) {}
12881230
12891231 export class ProjectionConfig extends S.Class<ProjectionConfig>("ProjectionConfig")({
1290- "center": S.optional(S.NullOr(S.Array(S.Number))),
1291- "clipAngle": S.optional(S.NullOr(S.Number)),
1292- "clipExtent": S.optional(S.NullOr(S.Array(S.Array(S.Number)))),
1293- "coefficient": S.optional(S.NullOr(S.Number)),
1294- "distance": S.optional(S.NullOr(S.Number)),
1295- "fraction": S.optional(S.NullOr(S.Number)),
1296- "lobes": S.optional(S.NullOr(S.Number)),
1297- "parallel": S.optional(S.NullOr(S.Number)),
1298- "precision": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Union(S.Number, S.String)}))),
1299- "radius": S.optional(S.NullOr(S.Number)),
1300- "ratio": S.optional(S.NullOr(S.Number)),
1301- "rotate": S.optional(S.NullOr(S.Array(S.Number))),
1302- "spacing": S.optional(S.NullOr(S.Number)),
1303- "tilt": S.optional(S.NullOr(S.Number)),
1304- "type": S.optional(S.NullOr(VgProjectionType)),
1232+ "center": S.optional(S.Array(S.Number)),
1233+ "clipAngle": S.optional(S.Number),
1234+ "clipExtent": S.optional(S.Array(S.Array(S.Number))),
1235+ "coefficient": S.optional(S.Number),
1236+ "distance": S.optional(S.Number),
1237+ "fraction": S.optional(S.Number),
1238+ "lobes": S.optional(S.Number),
1239+ "parallel": S.optional(S.Number),
1240+ "precision": S.optional(S.Record({ key: S.String, value: S.Union(S.Number, S.String)})),
1241+ "radius": S.optional(S.Number),
1242+ "ratio": S.optional(S.Number),
1243+ "rotate": S.optional(S.Array(S.Number)),
1244+ "spacing": S.optional(S.Number),
1245+ "tilt": S.optional(S.Number),
1246+ "type": S.optional(VgProjectionType),
1247+}) {}
1248+
1249+export class FacetMapping extends S.Class<FacetMapping>("FacetMapping")({
1250+ "column": S.optional(FacetFieldDef),
1251+ "row": S.optional(FacetFieldDef),
13051252 }) {}
13061253
13071254 export class PaddingClass extends S.Class<PaddingClass>("PaddingClass")({
1308- "bottom": S.optional(S.NullOr(S.Number)),
1309- "left": S.optional(S.NullOr(S.Number)),
1310- "right": S.optional(S.NullOr(S.Number)),
1311- "top": S.optional(S.NullOr(S.Number)),
1255+ "bottom": S.optional(S.Number),
1256+ "left": S.optional(S.Number),
1257+ "right": S.optional(S.Number),
1258+ "top": S.optional(S.Number),
13121259 }) {}
13131260
13141261 export class LegendConfig extends S.Class<LegendConfig>("LegendConfig")({
1315- "cornerRadius": S.optional(S.NullOr(S.Number)),
1316- "entryPadding": S.optional(S.NullOr(S.Number)),
1317- "fillColor": S.optional(S.NullOr(S.String)),
1318- "gradientHeight": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1319- "gradientLabelBaseline": S.optional(S.NullOr(S.String)),
1320- "gradientLabelLimit": S.optional(S.NullOr(S.Number)),
1321- "gradientLabelOffset": S.optional(S.NullOr(S.Number)),
1322- "gradientStrokeColor": S.optional(S.NullOr(S.String)),
1323- "gradientStrokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1324- "gradientWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1325- "labelAlign": S.optional(S.NullOr(S.String)),
1326- "labelBaseline": S.optional(S.NullOr(S.String)),
1327- "labelColor": S.optional(S.NullOr(S.String)),
1328- "labelFont": S.optional(S.NullOr(S.String)),
1329- "labelFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1330- "labelLimit": S.optional(S.NullOr(S.Number)),
1331- "labelOffset": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1332- "offset": S.optional(S.NullOr(S.Number)),
1333- "orient": S.optional(S.NullOr(LegendOrient)),
1334- "padding": S.optional(S.NullOr(S.Number)),
1335- "shortTimeLabels": S.optional(S.NullOr(S.Boolean)),
1336- "strokeColor": S.optional(S.NullOr(S.String)),
1337- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1338- "strokeWidth": S.optional(S.NullOr(S.Number)),
1339- "symbolColor": S.optional(S.NullOr(S.String)),
1340- "symbolSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1341- "symbolStrokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1342- "symbolType": S.optional(S.NullOr(S.String)),
1343- "titleAlign": S.optional(S.NullOr(S.String)),
1344- "titleBaseline": S.optional(S.NullOr(S.String)),
1345- "titleColor": S.optional(S.NullOr(S.String)),
1346- "titleFont": S.optional(S.NullOr(S.String)),
1347- "titleFontSize": S.optional(S.NullOr(S.Number)),
1348- "titleFontWeight": S.optional(S.Union(S.Number, S.String, S.Null)),
1349- "titleLimit": S.optional(S.NullOr(S.Number)),
1350- "titlePadding": S.optional(S.NullOr(S.Number)),
1262+ "cornerRadius": S.optional(S.Number),
1263+ "entryPadding": S.optional(S.Number),
1264+ "fillColor": S.optional(S.String),
1265+ "gradientHeight": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1266+ "gradientLabelBaseline": S.optional(S.String),
1267+ "gradientLabelLimit": S.optional(S.Number),
1268+ "gradientLabelOffset": S.optional(S.Number),
1269+ "gradientStrokeColor": S.optional(S.String),
1270+ "gradientStrokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1271+ "gradientWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1272+ "labelAlign": S.optional(S.String),
1273+ "labelBaseline": S.optional(S.String),
1274+ "labelColor": S.optional(S.String),
1275+ "labelFont": S.optional(S.String),
1276+ "labelFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1277+ "labelLimit": S.optional(S.Number),
1278+ "labelOffset": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1279+ "offset": S.optional(S.Number),
1280+ "orient": S.optional(LegendOrient),
1281+ "padding": S.optional(S.Number),
1282+ "shortTimeLabels": S.optional(S.Boolean),
1283+ "strokeColor": S.optional(S.String),
1284+ "strokeDash": S.optional(S.Array(S.Number)),
1285+ "strokeWidth": S.optional(S.Number),
1286+ "symbolColor": S.optional(S.String),
1287+ "symbolSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1288+ "symbolStrokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1289+ "symbolType": S.optional(S.String),
1290+ "titleAlign": S.optional(S.String),
1291+ "titleBaseline": S.optional(S.String),
1292+ "titleColor": S.optional(S.String),
1293+ "titleFont": S.optional(S.String),
1294+ "titleFontSize": S.optional(S.Number),
1295+ "titleFontWeight": S.optional(S.Union(S.Number, S.String)),
1296+ "titleLimit": S.optional(S.Number),
1297+ "titlePadding": S.optional(S.Number),
13511298 }) {}
13521299
13531300 export class BarConfig extends S.Class<BarConfig>("BarConfig")({
1354- "align": S.optional(S.NullOr(HorizontalAlign)),
1355- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
1356- "baseline": S.optional(S.NullOr(VerticalAlign)),
1357- "binSpacing": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1358- "color": S.optional(S.NullOr(S.String)),
1359- "continuousBandSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1360- "cursor": S.optional(S.NullOr(Cursor)),
1361- "discreteBandSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1362- "dx": S.optional(S.NullOr(S.Number)),
1363- "dy": S.optional(S.NullOr(S.Number)),
1364- "fill": S.optional(S.NullOr(S.String)),
1365- "filled": S.optional(S.NullOr(S.Boolean)),
1366- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1367- "font": S.optional(S.NullOr(S.String)),
1368- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1369- "fontStyle": S.optional(S.NullOr(FontStyle)),
1370- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1371- "href": S.optional(S.NullOr(S.String)),
1372- "interpolate": S.optional(S.NullOr(Interpolate)),
1373- "limit": S.optional(S.NullOr(S.Number)),
1374- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1375- "orient": S.optional(S.NullOr(Orient)),
1376- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1377- "shape": S.optional(S.NullOr(S.String)),
1378- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1379- "stroke": S.optional(S.NullOr(S.String)),
1380- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1381- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1382- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1383- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1384- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1385- "text": S.optional(S.NullOr(S.String)),
1386- "theta": S.optional(S.NullOr(S.Number)),
1301+ "align": S.optional(HorizontalAlign),
1302+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
1303+ "baseline": S.optional(VerticalAlign),
1304+ "binSpacing": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1305+ "color": S.optional(S.String),
1306+ "continuousBandSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1307+ "cursor": S.optional(Cursor),
1308+ "discreteBandSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1309+ "dx": S.optional(S.Number),
1310+ "dy": S.optional(S.Number),
1311+ "fill": S.optional(S.String),
1312+ "filled": S.optional(S.Boolean),
1313+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1314+ "font": S.optional(S.String),
1315+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1316+ "fontStyle": S.optional(FontStyle),
1317+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1318+ "href": S.optional(S.String),
1319+ "interpolate": S.optional(Interpolate),
1320+ "limit": S.optional(S.Number),
1321+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1322+ "orient": S.optional(Orient),
1323+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1324+ "shape": S.optional(S.String),
1325+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1326+ "stroke": S.optional(S.String),
1327+ "strokeDash": S.optional(S.Array(S.Number)),
1328+ "strokeDashOffset": S.optional(S.Number),
1329+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1330+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1331+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1332+ "text": S.optional(S.String),
1333+ "theta": S.optional(S.Number),
13871334 }) {}
13881335
13891336 export class VgAxisConfig extends S.Class<VgAxisConfig>("VgAxisConfig")({
1390- "bandPosition": S.optional(S.NullOr(S.Number)),
1391- "domain": S.optional(S.NullOr(S.Boolean)),
1392- "domainColor": S.optional(S.NullOr(S.String)),
1393- "domainWidth": S.optional(S.NullOr(S.Number)),
1394- "grid": S.optional(S.NullOr(S.Boolean)),
1395- "gridColor": S.optional(S.NullOr(S.String)),
1396- "gridDash": S.optional(S.NullOr(S.Array(S.Number))),
1397- "gridOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1398- "gridWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1399- "labelAngle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360)))),
1400- "labelBound": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
1401- "labelColor": S.optional(S.NullOr(S.String)),
1402- "labelFlush": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
1403- "labelFont": S.optional(S.NullOr(S.String)),
1404- "labelFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1405- "labelLimit": S.optional(S.NullOr(S.Number)),
1406- "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum, S.Null)),
1407- "labelPadding": S.optional(S.NullOr(S.Number)),
1408- "labels": S.optional(S.NullOr(S.Boolean)),
1409- "maxExtent": S.optional(S.NullOr(S.Number)),
1410- "minExtent": S.optional(S.NullOr(S.Number)),
1411- "tickColor": S.optional(S.NullOr(S.String)),
1412- "tickRound": S.optional(S.NullOr(S.Boolean)),
1413- "ticks": S.optional(S.NullOr(S.Boolean)),
1414- "tickSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1415- "tickWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1416- "titleAlign": S.optional(S.NullOr(S.String)),
1417- "titleAngle": S.optional(S.NullOr(S.Number)),
1418- "titleBaseline": S.optional(S.NullOr(S.String)),
1419- "titleColor": S.optional(S.NullOr(S.String)),
1420- "titleFont": S.optional(S.NullOr(S.String)),
1421- "titleFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1422- "titleFontWeight": S.optional(S.Union(S.Number, S.String, S.Null)),
1423- "titleLimit": S.optional(S.NullOr(S.Number)),
1424- "titleMaxLength": S.optional(S.NullOr(S.Number)),
1425- "titlePadding": S.optional(S.NullOr(S.Number)),
1426- "titleX": S.optional(S.NullOr(S.Number)),
1427- "titleY": S.optional(S.NullOr(S.Number)),
1337+ "bandPosition": S.optional(S.Number),
1338+ "domain": S.optional(S.Boolean),
1339+ "domainColor": S.optional(S.String),
1340+ "domainWidth": S.optional(S.Number),
1341+ "grid": S.optional(S.Boolean),
1342+ "gridColor": S.optional(S.String),
1343+ "gridDash": S.optional(S.Array(S.Number)),
1344+ "gridOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1345+ "gridWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1346+ "labelAngle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360))),
1347+ "labelBound": S.optional(S.Union(S.Boolean, S.Number)),
1348+ "labelColor": S.optional(S.String),
1349+ "labelFlush": S.optional(S.Union(S.Boolean, S.Number)),
1350+ "labelFont": S.optional(S.String),
1351+ "labelFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1352+ "labelLimit": S.optional(S.Number),
1353+ "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum)),
1354+ "labelPadding": S.optional(S.Number),
1355+ "labels": S.optional(S.Boolean),
1356+ "maxExtent": S.optional(S.Number),
1357+ "minExtent": S.optional(S.Number),
1358+ "tickColor": S.optional(S.String),
1359+ "tickRound": S.optional(S.Boolean),
1360+ "ticks": S.optional(S.Boolean),
1361+ "tickSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1362+ "tickWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1363+ "titleAlign": S.optional(S.String),
1364+ "titleAngle": S.optional(S.Number),
1365+ "titleBaseline": S.optional(S.String),
1366+ "titleColor": S.optional(S.String),
1367+ "titleFont": S.optional(S.String),
1368+ "titleFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1369+ "titleFontWeight": S.optional(S.Union(S.Number, S.String)),
1370+ "titleLimit": S.optional(S.Number),
1371+ "titleMaxLength": S.optional(S.Number),
1372+ "titlePadding": S.optional(S.Number),
1373+ "titleX": S.optional(S.Number),
1374+ "titleY": S.optional(S.Number),
14281375 }) {}
14291376
14301377 export class AxisConfig extends S.Class<AxisConfig>("AxisConfig")({
1431- "bandPosition": S.optional(S.NullOr(S.Number)),
1432- "domain": S.optional(S.NullOr(S.Boolean)),
1433- "domainColor": S.optional(S.NullOr(S.String)),
1434- "domainWidth": S.optional(S.NullOr(S.Number)),
1435- "grid": S.optional(S.NullOr(S.Boolean)),
1436- "gridColor": S.optional(S.NullOr(S.String)),
1437- "gridDash": S.optional(S.NullOr(S.Array(S.Number))),
1438- "gridOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1439- "gridWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1440- "labelAngle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360)))),
1441- "labelBound": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
1442- "labelColor": S.optional(S.NullOr(S.String)),
1443- "labelFlush": S.optional(S.Union(S.Boolean, S.Number, S.Null)),
1444- "labelFont": S.optional(S.NullOr(S.String)),
1445- "labelFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1446- "labelLimit": S.optional(S.NullOr(S.Number)),
1447- "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum, S.Null)),
1448- "labelPadding": S.optional(S.NullOr(S.Number)),
1449- "labels": S.optional(S.NullOr(S.Boolean)),
1450- "maxExtent": S.optional(S.NullOr(S.Number)),
1451- "minExtent": S.optional(S.NullOr(S.Number)),
1452- "shortTimeLabels": S.optional(S.NullOr(S.Boolean)),
1453- "tickColor": S.optional(S.NullOr(S.String)),
1454- "tickRound": S.optional(S.NullOr(S.Boolean)),
1455- "ticks": S.optional(S.NullOr(S.Boolean)),
1456- "tickSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1457- "tickWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1458- "titleAlign": S.optional(S.NullOr(S.String)),
1459- "titleAngle": S.optional(S.NullOr(S.Number)),
1460- "titleBaseline": S.optional(S.NullOr(S.String)),
1461- "titleColor": S.optional(S.NullOr(S.String)),
1462- "titleFont": S.optional(S.NullOr(S.String)),
1463- "titleFontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1464- "titleFontWeight": S.optional(S.Union(S.Number, S.String, S.Null)),
1465- "titleLimit": S.optional(S.NullOr(S.Number)),
1466- "titleMaxLength": S.optional(S.NullOr(S.Number)),
1467- "titlePadding": S.optional(S.NullOr(S.Number)),
1468- "titleX": S.optional(S.NullOr(S.Number)),
1469- "titleY": S.optional(S.NullOr(S.Number)),
1378+ "bandPosition": S.optional(S.Number),
1379+ "domain": S.optional(S.Boolean),
1380+ "domainColor": S.optional(S.String),
1381+ "domainWidth": S.optional(S.Number),
1382+ "grid": S.optional(S.Boolean),
1383+ "gridColor": S.optional(S.String),
1384+ "gridDash": S.optional(S.Array(S.Number)),
1385+ "gridOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1386+ "gridWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1387+ "labelAngle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(-360)).pipe(S.lessThanOrEqualTo(360))),
1388+ "labelBound": S.optional(S.Union(S.Boolean, S.Number)),
1389+ "labelColor": S.optional(S.String),
1390+ "labelFlush": S.optional(S.Union(S.Boolean, S.Number)),
1391+ "labelFont": S.optional(S.String),
1392+ "labelFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1393+ "labelLimit": S.optional(S.Number),
1394+ "labelOverlap": S.optional(S.Union(S.Boolean, LabelOverlapEnum)),
1395+ "labelPadding": S.optional(S.Number),
1396+ "labels": S.optional(S.Boolean),
1397+ "maxExtent": S.optional(S.Number),
1398+ "minExtent": S.optional(S.Number),
1399+ "shortTimeLabels": S.optional(S.Boolean),
1400+ "tickColor": S.optional(S.String),
1401+ "tickRound": S.optional(S.Boolean),
1402+ "ticks": S.optional(S.Boolean),
1403+ "tickSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1404+ "tickWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1405+ "titleAlign": S.optional(S.String),
1406+ "titleAngle": S.optional(S.Number),
1407+ "titleBaseline": S.optional(S.String),
1408+ "titleColor": S.optional(S.String),
1409+ "titleFont": S.optional(S.String),
1410+ "titleFontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1411+ "titleFontWeight": S.optional(S.Union(S.Number, S.String)),
1412+ "titleLimit": S.optional(S.Number),
1413+ "titleMaxLength": S.optional(S.Number),
1414+ "titlePadding": S.optional(S.Number),
1415+ "titleX": S.optional(S.Number),
1416+ "titleY": S.optional(S.Number),
14701417 }) {}
14711418
14721419 export class MarkConfig extends S.Class<MarkConfig>("MarkConfig")({
1473- "align": S.optional(S.NullOr(HorizontalAlign)),
1474- "angle": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360)))),
1475- "baseline": S.optional(S.NullOr(VerticalAlign)),
1476- "color": S.optional(S.NullOr(S.String)),
1477- "cursor": S.optional(S.NullOr(Cursor)),
1478- "dx": S.optional(S.NullOr(S.Number)),
1479- "dy": S.optional(S.NullOr(S.Number)),
1480- "fill": S.optional(S.NullOr(S.String)),
1481- "filled": S.optional(S.NullOr(S.Boolean)),
1482- "fillOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1483- "font": S.optional(S.NullOr(S.String)),
1484- "fontSize": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1485- "fontStyle": S.optional(S.NullOr(FontStyle)),
1486- "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight, S.Null)),
1487- "href": S.optional(S.NullOr(S.String)),
1488- "interpolate": S.optional(S.NullOr(Interpolate)),
1489- "limit": S.optional(S.NullOr(S.Number)),
1490- "opacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1491- "orient": S.optional(S.NullOr(Orient)),
1492- "radius": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1493- "shape": S.optional(S.NullOr(S.String)),
1494- "size": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1495- "stroke": S.optional(S.NullOr(S.String)),
1496- "strokeDash": S.optional(S.NullOr(S.Array(S.Number))),
1497- "strokeDashOffset": S.optional(S.NullOr(S.Number)),
1498- "strokeOpacity": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1499- "strokeWidth": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)))),
1500- "tension": S.optional(S.NullOr(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1)))),
1501- "text": S.optional(S.NullOr(S.String)),
1502- "theta": S.optional(S.NullOr(S.Number)),
1420+ "align": S.optional(HorizontalAlign),
1421+ "angle": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(360))),
1422+ "baseline": S.optional(VerticalAlign),
1423+ "color": S.optional(S.String),
1424+ "cursor": S.optional(Cursor),
1425+ "dx": S.optional(S.Number),
1426+ "dy": S.optional(S.Number),
1427+ "fill": S.optional(S.String),
1428+ "filled": S.optional(S.Boolean),
1429+ "fillOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1430+ "font": S.optional(S.String),
1431+ "fontSize": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1432+ "fontStyle": S.optional(FontStyle),
1433+ "fontWeight": S.optional(S.Union(S.Number.pipe(S.greaterThanOrEqualTo(100)).pipe(S.lessThanOrEqualTo(900)), FontWeight)),
1434+ "href": S.optional(S.String),
1435+ "interpolate": S.optional(Interpolate),
1436+ "limit": S.optional(S.Number),
1437+ "opacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1438+ "orient": S.optional(Orient),
1439+ "radius": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1440+ "shape": S.optional(S.String),
1441+ "size": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1442+ "stroke": S.optional(S.String),
1443+ "strokeDash": S.optional(S.Array(S.Number)),
1444+ "strokeDashOffset": S.optional(S.Number),
1445+ "strokeOpacity": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1446+ "strokeWidth": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0))),
1447+ "tension": S.optional(S.Number.pipe(S.greaterThanOrEqualTo(0)).pipe(S.lessThanOrEqualTo(1))),
1448+ "text": S.optional(S.String),
1449+ "theta": S.optional(S.Number),
15031450 }) {}
15041451
15051452 export class Config extends S.Class<Config>("Config")({
1506- "area": S.optional(S.NullOr(MarkConfig)),
1507- "autosize": S.optional(S.Union(AutosizeType, S.suspend(() => AutoSizeParams), S.Null)),
1508- "axis": S.optional(S.NullOr(AxisConfig)),
1509- "axisBand": S.optional(S.NullOr(VgAxisConfig)),
1510- "axisBottom": S.optional(S.NullOr(VgAxisConfig)),
1511- "axisLeft": S.optional(S.NullOr(VgAxisConfig)),
1512- "axisRight": S.optional(S.NullOr(VgAxisConfig)),
1513- "axisTop": S.optional(S.NullOr(VgAxisConfig)),
1514- "axisX": S.optional(S.NullOr(VgAxisConfig)),
1515- "axisY": S.optional(S.NullOr(VgAxisConfig)),
1516- "background": S.optional(S.NullOr(S.String)),
1517- "bar": S.optional(S.NullOr(BarConfig)),
1518- "circle": S.optional(S.NullOr(MarkConfig)),
1519- "countTitle": S.optional(S.NullOr(S.String)),
1520- "fieldTitle": S.optional(S.NullOr(FieldTitle)),
1521- "geoshape": S.optional(S.NullOr(MarkConfig)),
1522- "invalidValues": S.optional(S.NullOr(InvalidValues)),
1523- "legend": S.optional(S.NullOr(LegendConfig)),
1524- "line": S.optional(S.NullOr(MarkConfig)),
1525- "mark": S.optional(S.NullOr(MarkConfig)),
1526- "numberFormat": S.optional(S.NullOr(S.String)),
1527- "padding": S.optional(S.Union(S.Number, PaddingClass, S.Null)),
1528- "point": S.optional(S.NullOr(MarkConfig)),
1529- "projection": S.optional(S.NullOr(ProjectionConfig)),
1530- "range": S.optional(S.NullOr(S.Record({ key: S.String, value: S.Union(S.Array(S.Union(S.Number, S.String)), VgScheme)}))),
1531- "rect": S.optional(S.NullOr(MarkConfig)),
1532- "rule": S.optional(S.NullOr(MarkConfig)),
1533- "scale": S.optional(S.NullOr(ScaleConfig)),
1534- "selection": S.optional(S.NullOr(SelectionConfig)),
1535- "square": S.optional(S.NullOr(MarkConfig)),
1536- "stack": S.optional(S.NullOr(StackOffset)),
1537- "style": S.optional(S.NullOr(S.Record({ key: S.String, value: VgMarkConfig}))),
1538- "text": S.optional(S.NullOr(TextConfig)),
1539- "tick": S.optional(S.NullOr(TickConfig)),
1540- "timeFormat": S.optional(S.NullOr(S.String)),
1541- "title": S.optional(S.NullOr(VgTitleConfig)),
1542- "view": S.optional(S.NullOr(ViewConfig)),
1453+ "area": S.optional(MarkConfig),
1454+ "autosize": S.optional(S.Union(AutosizeType, S.suspend(() => AutoSizeParams))),
1455+ "axis": S.optional(AxisConfig),
1456+ "axisBand": S.optional(VgAxisConfig),
1457+ "axisBottom": S.optional(VgAxisConfig),
1458+ "axisLeft": S.optional(VgAxisConfig),
1459+ "axisRight": S.optional(VgAxisConfig),
1460+ "axisTop": S.optional(VgAxisConfig),
1461+ "axisX": S.optional(VgAxisConfig),
1462+ "axisY": S.optional(VgAxisConfig),
1463+ "background": S.optional(S.String),
1464+ "bar": S.optional(BarConfig),
1465+ "circle": S.optional(MarkConfig),
1466+ "countTitle": S.optional(S.String),
1467+ "fieldTitle": S.optional(FieldTitle),
1468+ "geoshape": S.optional(MarkConfig),
1469+ "invalidValues": S.optional(InvalidValues),
1470+ "legend": S.optional(LegendConfig),
1471+ "line": S.optional(MarkConfig),
1472+ "mark": S.optional(MarkConfig),
1473+ "numberFormat": S.optional(S.String),
1474+ "padding": S.optional(S.Union(S.Number, PaddingClass)),
1475+ "point": S.optional(MarkConfig),
1476+ "projection": S.optional(ProjectionConfig),
1477+ "range": S.optional(S.Record({ key: S.String, value: S.Union(S.Array(S.Union(S.Number, S.String)), VgScheme)})),
1478+ "rect": S.optional(MarkConfig),
1479+ "rule": S.optional(MarkConfig),
1480+ "scale": S.optional(ScaleConfig),
1481+ "selection": S.optional(SelectionConfig),
1482+ "square": S.optional(MarkConfig),
1483+ "stack": S.optional(StackOffset),
1484+ "style": S.optional(S.Record({ key: S.String, value: VgMarkConfig})),
1485+ "text": S.optional(TextConfig),
1486+ "tick": S.optional(TickConfig),
1487+ "timeFormat": S.optional(S.String),
1488+ "title": S.optional(VgTitleConfig),
1489+ "view": S.optional(ViewConfig),
15431490 }) {}
15441491
15451492 export class AutoSizeParams extends S.Class<AutoSizeParams>("AutoSizeParams")({
1546- "contains": S.optional(S.NullOr(Contains)),
1547- "resize": S.optional(S.NullOr(S.Boolean)),
1548- "type": S.optional(S.NullOr(AutosizeType)),
1493+ "contains": S.optional(Contains),
1494+ "resize": S.optional(S.Boolean),
1495+ "type": S.optional(AutosizeType),
1496+}) {}
1497+
1498+export class Encoding extends S.Class<Encoding>("Encoding")({
1499+ "color": S.optional(MarkPropDefWithCondition),
1500+ "detail": S.optional(S.Union(S.Array(FieldDef), FieldDef)),
1501+ "href": S.optional(DefWithCondition),
1502+ "opacity": S.optional(MarkPropDefWithCondition),
1503+ "order": S.optional(S.Union(S.Array(OrderFieldDef), OrderFieldDef)),
1504+ "shape": S.optional(MarkPropDefWithCondition),
1505+ "size": S.optional(MarkPropDefWithCondition),
1506+ "text": S.optional(TextDefWithCondition),
1507+ "tooltip": S.optional(TextDefWithCondition),
1508+ "x": S.optional(XClass),
1509+ "x2": S.optional(X2Class),
1510+ "y": S.optional(XClass),
1511+ "y2": S.optional(X2Class),
15491512 }) {}
15501513
15511514 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
1552- "$schema": S.optional(S.NullOr(S.String)),
1553- "autosize": S.optional(S.Union(AutosizeType, AutoSizeParams, S.Null)),
1554- "background": S.optional(S.NullOr(S.String)),
1555- "config": S.optional(S.NullOr(Config)),
1556- "data": S.optional(S.NullOr(Data)),
1557- "description": S.optional(S.NullOr(S.String)),
1558- "encoding": S.optional(S.NullOr(EncodingWithFacet)),
1559- "height": S.optional(S.NullOr(S.Number)),
1560- "mark": S.optional(S.Union(Mark, MarkDef, S.Null)),
1561- "name": S.optional(S.NullOr(S.String)),
1562- "padding": S.optional(S.Union(S.Number, PaddingClass, S.Null)),
1563- "projection": S.optional(S.NullOr(Projection)),
1564- "selection": S.optional(S.NullOr(S.Record({ key: S.String, value: SelectionDef}))),
1565- "title": S.optional(S.Union(S.String, TitleParams, S.Null)),
1566- "transform": S.optional(S.NullOr(S.Array(Transform))),
1567- "width": S.optional(S.NullOr(S.Number)),
1568- "layer": S.optional(S.NullOr(S.Array(LayerSpec))),
1569- "resolve": S.optional(S.NullOr(Resolve)),
1570- "facet": S.optional(S.NullOr(FacetMapping)),
1571- "spec": S.optional(S.NullOr(Spec)),
1572- "repeat": S.optional(S.NullOr(Repeat)),
1573- "vconcat": S.optional(S.NullOr(S.Array(Spec))),
1574- "hconcat": S.optional(S.NullOr(S.Array(Spec))),
1515+ "$schema": S.optional(S.String),
1516+ "autosize": S.optional(S.Union(AutosizeType, AutoSizeParams)),
1517+ "background": S.optional(S.String),
1518+ "config": S.optional(Config),
1519+ "data": S.optional(Data),
1520+ "description": S.optional(S.String),
1521+ "encoding": S.optional(EncodingWithFacet),
1522+ "height": S.optional(S.Number),
1523+ "mark": S.optional(S.Union(Mark, MarkDef)),
1524+ "name": S.optional(S.String),
1525+ "padding": S.optional(S.Union(S.Number, PaddingClass)),
1526+ "projection": S.optional(Projection),
1527+ "selection": S.optional(S.Record({ key: S.String, value: SelectionDef})),
1528+ "title": S.optional(S.Union(S.String, TitleParams)),
1529+ "transform": S.optional(S.Array(Transform)),
1530+ "width": S.optional(S.Number),
1531+ "layer": S.optional(S.Array(S.suspend(() => LayerSpec))),
1532+ "resolve": S.optional(Resolve),
1533+ "facet": S.optional(FacetMapping),
1534+ "spec": S.optional(S.suspend(() => Spec)),
1535+ "repeat": S.optional(Repeat),
1536+ "vconcat": S.optional(S.Array(S.suspend(() => Spec))),
1537+ "hconcat": S.optional(S.Array(S.suspend(() => Spec))),
1538+}) {}
1539+
1540+export class Spec extends S.Class<Spec>("Spec")({
1541+ "data": S.optional(Data),
1542+ "description": S.optional(S.String),
1543+ "height": S.optional(S.Number),
1544+ "layer": S.optional(S.Array(S.suspend(() => LayerSpec))),
1545+ "name": S.optional(S.String),
1546+ "resolve": S.optional(Resolve),
1547+ "title": S.optional(S.Union(S.String, TitleParams)),
1548+ "transform": S.optional(S.Array(Transform)),
1549+ "width": S.optional(S.Number),
1550+ "encoding": S.optional(Encoding),
1551+ "mark": S.optional(S.Union(Mark, MarkDef)),
1552+ "projection": S.optional(Projection),
1553+ "selection": S.optional(S.Record({ key: S.String, value: SelectionDef})),
1554+ "facet": S.optional(FacetMapping),
1555+ "spec": S.optional(S.suspend(() => Spec)),
1556+ "repeat": S.optional(Repeat),
1557+ "vconcat": S.optional(S.Array(S.suspend(() => Spec))),
1558+ "hconcat": S.optional(S.Array(S.suspend(() => Spec))),
1559+}) {}
1560+
1561+export class LayerSpec extends S.Class<LayerSpec>("LayerSpec")({
1562+ "data": S.optional(Data),
1563+ "description": S.optional(S.String),
1564+ "height": S.optional(S.Number),
1565+ "layer": S.optional(S.Array(S.suspend(() => LayerSpec))),
1566+ "name": S.optional(S.String),
1567+ "resolve": S.optional(Resolve),
1568+ "title": S.optional(S.Union(S.String, TitleParams)),
1569+ "transform": S.optional(S.Array(Transform)),
1570+ "width": S.optional(S.Number),
1571+ "encoding": S.optional(Encoding),
1572+ "mark": S.optional(S.Union(Mark, MarkDef)),
1573+ "projection": S.optional(Projection),
1574+ "selection": S.optional(S.Record({ key: S.String, value: SelectionDef})),
15751575 }) {}
No generated files match these filters.