effect 3.11.4 → 3.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/JSONSchema.js +226 -134
- package/dist/cjs/JSONSchema.js.map +1 -1
- package/dist/cjs/Schema.js +29 -10
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/SchemaAST.js +34 -9
- package/dist/cjs/SchemaAST.js.map +1 -1
- package/dist/cjs/internal/core.js +6 -7
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Effect.d.ts +50 -19
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/JSONSchema.d.ts +57 -1
- package/dist/dts/JSONSchema.d.ts.map +1 -1
- package/dist/dts/Schema.d.ts +1 -1
- package/dist/dts/Schema.d.ts.map +1 -1
- package/dist/dts/SchemaAST.d.ts +1 -1
- package/dist/dts/SchemaAST.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts +5 -0
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/JSONSchema.js +224 -133
- package/dist/esm/JSONSchema.js.map +1 -1
- package/dist/esm/Schema.js +29 -10
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/SchemaAST.js +31 -7
- package/dist/esm/SchemaAST.js.map +1 -1
- package/dist/esm/internal/core.js +7 -6
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Effect.ts +68 -20
- package/src/JSONSchema.ts +233 -134
- package/src/Schema.ts +25 -10
- package/src/SchemaAST.ts +31 -7
- package/src/internal/core.ts +9 -6
- package/src/internal/version.ts +1 -1
package/dist/esm/JSONSchema.js
CHANGED
|
@@ -11,33 +11,68 @@ import * as AST from "./SchemaAST.js";
|
|
|
11
11
|
* @since 3.10.0
|
|
12
12
|
*/
|
|
13
13
|
export const make = schema => {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (!Record.isEmptyRecord($defs)) {
|
|
27
|
-
out.$defs = $defs;
|
|
14
|
+
const definitions = {};
|
|
15
|
+
const ast = AST.isTransformation(schema.ast) && isParseJsonTransformation(schema.ast.from)
|
|
16
|
+
// Special case top level `parseJson` transformations
|
|
17
|
+
? schema.ast.to : schema.ast;
|
|
18
|
+
const out = fromAST(ast, {
|
|
19
|
+
definitions
|
|
20
|
+
});
|
|
21
|
+
out.$schema = $schema;
|
|
22
|
+
if (!Record.isEmptyRecord(definitions)) {
|
|
23
|
+
out.$defs = definitions;
|
|
28
24
|
}
|
|
29
25
|
return out;
|
|
30
26
|
};
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Returns a JSON Schema with additional options and definitions.
|
|
29
|
+
*
|
|
30
|
+
* **Warning**
|
|
31
|
+
*
|
|
32
|
+
* This function is experimental and subject to change.
|
|
33
|
+
*
|
|
34
|
+
* **Details**
|
|
35
|
+
*
|
|
36
|
+
* - `definitions`: A record of definitions that are included in the schema.
|
|
37
|
+
* - `definitionPath`: The path to the definitions within the schema (defaults
|
|
38
|
+
* to "#/$defs/").
|
|
39
|
+
* - `target`: Which spec to target. Possible values are:
|
|
40
|
+
* - `'jsonSchema7'`: JSON Schema draft-07 (default behavior).
|
|
41
|
+
* - `'jsonSchema2019-09'`: JSON Schema draft-2019-09.
|
|
42
|
+
* - `'openApi3.1'`: OpenAPI 3.1.
|
|
43
|
+
* - `topLevelReferenceStrategy`: Controls the handling of the top-level
|
|
44
|
+
* reference. Possible values are:
|
|
45
|
+
* - `"keep"`: Keep the top-level reference (default behavior).
|
|
46
|
+
* - `"skip"`: Skip the top-level reference.
|
|
47
|
+
*
|
|
48
|
+
* @category encoding
|
|
49
|
+
* @since 3.11.5
|
|
50
|
+
* @experimental
|
|
51
|
+
*/
|
|
52
|
+
export const fromAST = (ast, options) => {
|
|
53
|
+
const definitionPath = options.definitionPath ?? "#/$defs/";
|
|
54
|
+
const getRef = id => definitionPath + id;
|
|
55
|
+
const target = options.target ?? "jsonSchema7";
|
|
56
|
+
const handleIdentifier = options.topLevelReferenceStrategy !== "skip";
|
|
57
|
+
return go(ast, options.definitions, handleIdentifier, [], {
|
|
58
|
+
getRef,
|
|
59
|
+
target
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
const constNever = {
|
|
63
|
+
"$id": "/schemas/never",
|
|
64
|
+
"not": {}
|
|
33
65
|
};
|
|
34
|
-
const
|
|
35
|
-
$id: "/schemas/
|
|
66
|
+
const constAny = {
|
|
67
|
+
"$id": "/schemas/any"
|
|
36
68
|
};
|
|
37
|
-
const
|
|
38
|
-
$id: "/schemas/
|
|
69
|
+
const constUnknown = {
|
|
70
|
+
"$id": "/schemas/unknown"
|
|
39
71
|
};
|
|
40
|
-
const
|
|
72
|
+
const constVoid = {
|
|
73
|
+
"$id": "/schemas/void"
|
|
74
|
+
};
|
|
75
|
+
const constAnyObject = {
|
|
41
76
|
"$id": "/schemas/object",
|
|
42
77
|
"anyOf": [{
|
|
43
78
|
"type": "object"
|
|
@@ -45,14 +80,14 @@ const objectJsonSchema = {
|
|
|
45
80
|
"type": "array"
|
|
46
81
|
}]
|
|
47
82
|
};
|
|
48
|
-
const
|
|
83
|
+
const constEmpty = {
|
|
49
84
|
"$id": "/schemas/{}",
|
|
50
85
|
"anyOf": [{
|
|
51
86
|
"type": "object"
|
|
52
87
|
}, {
|
|
53
88
|
"type": "array"
|
|
54
89
|
}]
|
|
55
|
-
}
|
|
90
|
+
};
|
|
56
91
|
const $schema = "http://json-schema.org/draft-07/schema#";
|
|
57
92
|
const getJsonSchemaAnnotations = annotated => Record.getSomes({
|
|
58
93
|
description: AST.getDescriptionAnnotation(annotated),
|
|
@@ -85,90 +120,104 @@ const getASTJsonSchemaAnnotations = ast => {
|
|
|
85
120
|
const pruneUndefinedFromPropertySignature = ast => {
|
|
86
121
|
if (Option.isNone(AST.getJSONSchemaAnnotation(ast))) {
|
|
87
122
|
switch (ast._tag) {
|
|
123
|
+
case "UndefinedKeyword":
|
|
124
|
+
return AST.neverKeyword;
|
|
88
125
|
case "Union":
|
|
89
126
|
{
|
|
90
|
-
const types =
|
|
91
|
-
|
|
92
|
-
|
|
127
|
+
const types = [];
|
|
128
|
+
let hasUndefined = false;
|
|
129
|
+
for (const type of ast.types) {
|
|
130
|
+
const pruned = pruneUndefinedFromPropertySignature(type);
|
|
131
|
+
if (pruned) {
|
|
132
|
+
hasUndefined = true;
|
|
133
|
+
if (!AST.isNeverKeyword(pruned)) {
|
|
134
|
+
types.push(pruned);
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
types.push(type);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (hasUndefined) {
|
|
141
|
+
return AST.Union.make(types);
|
|
93
142
|
}
|
|
94
143
|
break;
|
|
95
144
|
}
|
|
145
|
+
case "Suspend":
|
|
146
|
+
return pruneUndefinedFromPropertySignature(ast.f());
|
|
96
147
|
case "Transformation":
|
|
97
|
-
return pruneUndefinedFromPropertySignature(
|
|
148
|
+
return pruneUndefinedFromPropertySignature(ast.from);
|
|
98
149
|
}
|
|
99
150
|
}
|
|
100
151
|
};
|
|
101
|
-
/** @internal */
|
|
102
|
-
export const DEFINITION_PREFIX = "#/$defs/";
|
|
103
|
-
const get$ref = id => `${DEFINITION_PREFIX}${id}`;
|
|
104
|
-
const getRefinementInnerTransformation = ast => {
|
|
105
|
-
switch (ast.from._tag) {
|
|
106
|
-
case "Transformation":
|
|
107
|
-
return ast.from;
|
|
108
|
-
case "Refinement":
|
|
109
|
-
return getRefinementInnerTransformation(ast.from);
|
|
110
|
-
case "Suspend":
|
|
111
|
-
{
|
|
112
|
-
const from = ast.from.f();
|
|
113
|
-
if (AST.isRefinement(from)) {
|
|
114
|
-
return getRefinementInnerTransformation(from);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
152
|
const isParseJsonTransformation = ast => ast.annotations[AST.SchemaIdAnnotationId] === AST.ParseJsonSchemaId;
|
|
120
|
-
function merge(a, b) {
|
|
121
|
-
return {
|
|
122
|
-
...a,
|
|
123
|
-
...b
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
153
|
const isOverrideAnnotation = jsonSchema => {
|
|
127
154
|
return "type" in jsonSchema || "oneOf" in jsonSchema || "anyOf" in jsonSchema || "const" in jsonSchema || "enum" in jsonSchema || "$ref" in jsonSchema;
|
|
128
155
|
};
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
...handler
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
} else if (!isOverrideAnnotation(handler)) {
|
|
149
|
-
return go(t, $defs, true, path);
|
|
150
|
-
}
|
|
156
|
+
// Returns true if the schema is an enum with no other properties.
|
|
157
|
+
// This is used to merge enums together.
|
|
158
|
+
const isEnumOnly = schema => "enum" in schema && Object.keys(schema).length === 1;
|
|
159
|
+
const mergeRefinements = (from, jsonSchema, annotations) => {
|
|
160
|
+
const out = {
|
|
161
|
+
...from,
|
|
162
|
+
...annotations,
|
|
163
|
+
...jsonSchema
|
|
164
|
+
};
|
|
165
|
+
out.allOf ??= [];
|
|
166
|
+
const handle = (name, filter) => {
|
|
167
|
+
if (name in jsonSchema && name in from) {
|
|
168
|
+
out.allOf.unshift({
|
|
169
|
+
[name]: from[name]
|
|
170
|
+
});
|
|
171
|
+
out.allOf = out.allOf.filter(filter);
|
|
151
172
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
173
|
+
};
|
|
174
|
+
handle("minLength", i => i.minLength > jsonSchema.minLength);
|
|
175
|
+
handle("maxLength", i => i.maxLength < jsonSchema.maxLength);
|
|
176
|
+
handle("pattern", i => i.pattern !== jsonSchema.pattern);
|
|
177
|
+
handle("minItems", i => i.minItems > jsonSchema.minItems);
|
|
178
|
+
handle("maxItems", i => i.maxItems < jsonSchema.maxItems);
|
|
179
|
+
handle("minimum", i => i.minimum > jsonSchema.minimum);
|
|
180
|
+
handle("maximum", i => i.maximum < jsonSchema.maximum);
|
|
181
|
+
handle("exclusiveMinimum", i => i.exclusiveMinimum > jsonSchema.exclusiveMinimum);
|
|
182
|
+
handle("exclusiveMaximum", i => i.exclusiveMaximum < jsonSchema.exclusiveMaximum);
|
|
183
|
+
handle("multipleOf", i => i.multipleOf !== jsonSchema.multipleOf);
|
|
184
|
+
if (out.allOf.length === 0) {
|
|
185
|
+
delete out.allOf;
|
|
157
186
|
}
|
|
158
|
-
|
|
187
|
+
return out;
|
|
188
|
+
};
|
|
189
|
+
const go = (ast, $defs, handleIdentifier, path, options) => {
|
|
190
|
+
if (handleIdentifier) {
|
|
159
191
|
const identifier = AST.getJSONIdentifier(ast);
|
|
160
192
|
if (Option.isSome(identifier)) {
|
|
161
193
|
const id = identifier.value;
|
|
162
194
|
const out = {
|
|
163
|
-
$ref:
|
|
195
|
+
$ref: options.getRef(id)
|
|
164
196
|
};
|
|
165
197
|
if (!Record.has($defs, id)) {
|
|
166
198
|
$defs[id] = out;
|
|
167
|
-
$defs[id] = go(ast, $defs, false, path);
|
|
199
|
+
$defs[id] = go(ast, $defs, false, path, options);
|
|
168
200
|
}
|
|
169
201
|
return out;
|
|
170
202
|
}
|
|
171
203
|
}
|
|
204
|
+
const hook = AST.getJSONSchemaAnnotation(ast);
|
|
205
|
+
if (Option.isSome(hook)) {
|
|
206
|
+
const handler = hook.value;
|
|
207
|
+
if (AST.isRefinement(ast)) {
|
|
208
|
+
const t = AST.getTransformationFrom(ast);
|
|
209
|
+
if (t === undefined) {
|
|
210
|
+
return mergeRefinements(go(ast.from, $defs, handleIdentifier, path, options), handler, getJsonSchemaAnnotations(ast));
|
|
211
|
+
} else if (!isOverrideAnnotation(handler)) {
|
|
212
|
+
return go(t, $defs, handleIdentifier, path, options);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return handler;
|
|
216
|
+
}
|
|
217
|
+
const surrogate = AST.getSurrogateAnnotation(ast);
|
|
218
|
+
if (Option.isSome(surrogate)) {
|
|
219
|
+
return go(surrogate.value, $defs, handleIdentifier, path, options);
|
|
220
|
+
}
|
|
172
221
|
switch (ast._tag) {
|
|
173
222
|
case "Declaration":
|
|
174
223
|
throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
|
|
@@ -176,13 +225,15 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
176
225
|
{
|
|
177
226
|
const literal = ast.literal;
|
|
178
227
|
if (literal === null) {
|
|
179
|
-
return
|
|
180
|
-
enum: [null]
|
|
181
|
-
|
|
228
|
+
return {
|
|
229
|
+
enum: [null],
|
|
230
|
+
...getJsonSchemaAnnotations(ast)
|
|
231
|
+
};
|
|
182
232
|
} else if (Predicate.isString(literal) || Predicate.isNumber(literal) || Predicate.isBoolean(literal)) {
|
|
183
|
-
return
|
|
184
|
-
enum: [literal]
|
|
185
|
-
|
|
233
|
+
return {
|
|
234
|
+
enum: [literal],
|
|
235
|
+
...getJsonSchemaAnnotations(ast)
|
|
236
|
+
};
|
|
186
237
|
}
|
|
187
238
|
throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
|
|
188
239
|
}
|
|
@@ -191,15 +242,30 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
191
242
|
case "UndefinedKeyword":
|
|
192
243
|
throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
|
|
193
244
|
case "VoidKeyword":
|
|
194
|
-
return
|
|
245
|
+
return {
|
|
246
|
+
...constVoid,
|
|
247
|
+
...getJsonSchemaAnnotations(ast)
|
|
248
|
+
};
|
|
195
249
|
case "NeverKeyword":
|
|
196
|
-
|
|
250
|
+
return {
|
|
251
|
+
...constNever,
|
|
252
|
+
...getJsonSchemaAnnotations(ast)
|
|
253
|
+
};
|
|
197
254
|
case "UnknownKeyword":
|
|
198
|
-
return
|
|
255
|
+
return {
|
|
256
|
+
...constUnknown,
|
|
257
|
+
...getJsonSchemaAnnotations(ast)
|
|
258
|
+
};
|
|
199
259
|
case "AnyKeyword":
|
|
200
|
-
return
|
|
260
|
+
return {
|
|
261
|
+
...constAny,
|
|
262
|
+
...getJsonSchemaAnnotations(ast)
|
|
263
|
+
};
|
|
201
264
|
case "ObjectKeyword":
|
|
202
|
-
return
|
|
265
|
+
return {
|
|
266
|
+
...constAnyObject,
|
|
267
|
+
...getJsonSchemaAnnotations(ast)
|
|
268
|
+
};
|
|
203
269
|
case "StringKeyword":
|
|
204
270
|
return {
|
|
205
271
|
type: "string",
|
|
@@ -221,8 +287,14 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
221
287
|
throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
|
|
222
288
|
case "TupleType":
|
|
223
289
|
{
|
|
224
|
-
const elements = ast.elements.map((e, i) =>
|
|
225
|
-
|
|
290
|
+
const elements = ast.elements.map((e, i) => ({
|
|
291
|
+
...go(e.type, $defs, true, path.concat(i), options),
|
|
292
|
+
...getJsonSchemaAnnotations(e)
|
|
293
|
+
}));
|
|
294
|
+
const rest = ast.rest.map(annotatedAST => ({
|
|
295
|
+
...go(annotatedAST.type, $defs, true, path, options),
|
|
296
|
+
...getJsonSchemaAnnotations(annotatedAST)
|
|
297
|
+
}));
|
|
226
298
|
const output = {
|
|
227
299
|
type: "array"
|
|
228
300
|
};
|
|
@@ -259,12 +331,18 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
259
331
|
output.maxItems = 0;
|
|
260
332
|
}
|
|
261
333
|
}
|
|
262
|
-
return
|
|
334
|
+
return {
|
|
335
|
+
...output,
|
|
336
|
+
...getJsonSchemaAnnotations(ast)
|
|
337
|
+
};
|
|
263
338
|
}
|
|
264
339
|
case "TypeLiteral":
|
|
265
340
|
{
|
|
266
341
|
if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
|
|
267
|
-
return
|
|
342
|
+
return {
|
|
343
|
+
...constEmpty,
|
|
344
|
+
...getJsonSchemaAnnotations(ast)
|
|
345
|
+
};
|
|
268
346
|
}
|
|
269
347
|
let patternProperties = undefined;
|
|
270
348
|
let propertyNames = undefined;
|
|
@@ -273,12 +351,12 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
273
351
|
switch (parameter._tag) {
|
|
274
352
|
case "StringKeyword":
|
|
275
353
|
{
|
|
276
|
-
patternProperties = go(is.type, $defs, true, path);
|
|
354
|
+
patternProperties = go(is.type, $defs, true, path, options);
|
|
277
355
|
break;
|
|
278
356
|
}
|
|
279
357
|
case "TemplateLiteral":
|
|
280
358
|
{
|
|
281
|
-
patternProperties = go(is.type, $defs, true, path);
|
|
359
|
+
patternProperties = go(is.type, $defs, true, path, options);
|
|
282
360
|
propertyNames = {
|
|
283
361
|
type: "string",
|
|
284
362
|
pattern: AST.getTemplateLiteralRegExp(parameter).source
|
|
@@ -287,8 +365,8 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
287
365
|
}
|
|
288
366
|
case "Refinement":
|
|
289
367
|
{
|
|
290
|
-
patternProperties = go(is.type, $defs, true, path);
|
|
291
|
-
propertyNames = go(parameter, $defs, true, path);
|
|
368
|
+
patternProperties = go(is.type, $defs, true, path, options);
|
|
369
|
+
propertyNames = go(parameter, $defs, true, path, options);
|
|
292
370
|
break;
|
|
293
371
|
}
|
|
294
372
|
case "SymbolKeyword":
|
|
@@ -309,7 +387,10 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
309
387
|
const name = ps.name;
|
|
310
388
|
if (Predicate.isString(name)) {
|
|
311
389
|
const pruned = pruneUndefinedFromPropertySignature(ps.type);
|
|
312
|
-
output.properties[name] =
|
|
390
|
+
output.properties[name] = {
|
|
391
|
+
...go(pruned ?? ps.type, $defs, true, path.concat(ps.name), options),
|
|
392
|
+
...getJsonSchemaAnnotations(ps)
|
|
393
|
+
};
|
|
313
394
|
// ---------------------------------------------
|
|
314
395
|
// handle optional property signatures
|
|
315
396
|
// ---------------------------------------------
|
|
@@ -332,67 +413,74 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
332
413
|
if (propertyNames !== undefined) {
|
|
333
414
|
output.propertyNames = propertyNames;
|
|
334
415
|
}
|
|
335
|
-
return
|
|
416
|
+
return {
|
|
417
|
+
...output,
|
|
418
|
+
...getJsonSchemaAnnotations(ast)
|
|
419
|
+
};
|
|
336
420
|
}
|
|
337
421
|
case "Union":
|
|
338
422
|
{
|
|
339
|
-
const enums = [];
|
|
340
423
|
const anyOf = [];
|
|
341
424
|
for (const type of ast.types) {
|
|
342
|
-
const schema = go(type, $defs, true, path);
|
|
425
|
+
const schema = go(type, $defs, true, path, options);
|
|
343
426
|
if ("enum" in schema) {
|
|
344
427
|
if (Object.keys(schema).length > 1) {
|
|
345
428
|
anyOf.push(schema);
|
|
346
429
|
} else {
|
|
347
|
-
|
|
348
|
-
|
|
430
|
+
const last = anyOf[anyOf.length - 1];
|
|
431
|
+
if (last !== undefined && isEnumOnly(last)) {
|
|
432
|
+
for (const e of schema.enum) {
|
|
433
|
+
last.enum.push(e);
|
|
434
|
+
}
|
|
435
|
+
} else {
|
|
436
|
+
anyOf.push(schema);
|
|
349
437
|
}
|
|
350
438
|
}
|
|
351
439
|
} else {
|
|
352
440
|
anyOf.push(schema);
|
|
353
441
|
}
|
|
354
442
|
}
|
|
355
|
-
if (anyOf.length === 0) {
|
|
356
|
-
return
|
|
357
|
-
enum:
|
|
358
|
-
|
|
443
|
+
if (anyOf.length === 1 && isEnumOnly(anyOf[0])) {
|
|
444
|
+
return {
|
|
445
|
+
enum: anyOf[0].enum,
|
|
446
|
+
...getJsonSchemaAnnotations(ast)
|
|
447
|
+
};
|
|
359
448
|
} else {
|
|
360
|
-
|
|
361
|
-
anyOf
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
}
|
|
365
|
-
return merge({
|
|
366
|
-
anyOf
|
|
367
|
-
}, getJsonSchemaAnnotations(ast));
|
|
449
|
+
return {
|
|
450
|
+
anyOf,
|
|
451
|
+
...getJsonSchemaAnnotations(ast)
|
|
452
|
+
};
|
|
368
453
|
}
|
|
369
454
|
}
|
|
370
455
|
case "Enums":
|
|
371
456
|
{
|
|
372
|
-
return
|
|
457
|
+
return {
|
|
373
458
|
$comment: "/schemas/enums",
|
|
374
459
|
anyOf: ast.enums.map(e => ({
|
|
375
460
|
title: e[0],
|
|
376
461
|
enum: [e[1]]
|
|
377
|
-
}))
|
|
378
|
-
|
|
462
|
+
})),
|
|
463
|
+
...getJsonSchemaAnnotations(ast)
|
|
464
|
+
};
|
|
379
465
|
}
|
|
380
466
|
case "Refinement":
|
|
381
467
|
{
|
|
382
|
-
if
|
|
468
|
+
// The jsonSchema annotation is required only if the refinement does not have a transformation
|
|
469
|
+
if (AST.getTransformationFrom(ast) === undefined) {
|
|
383
470
|
throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
|
|
384
471
|
}
|
|
385
|
-
return go(ast.from, $defs,
|
|
472
|
+
return go(ast.from, $defs, handleIdentifier, path, options);
|
|
386
473
|
}
|
|
387
474
|
case "TemplateLiteral":
|
|
388
475
|
{
|
|
389
476
|
const regex = AST.getTemplateLiteralRegExp(ast);
|
|
390
|
-
return
|
|
477
|
+
return {
|
|
391
478
|
type: "string",
|
|
392
479
|
title: String(ast),
|
|
393
480
|
description: "a template literal",
|
|
394
|
-
pattern: regex.source
|
|
395
|
-
|
|
481
|
+
pattern: regex.source,
|
|
482
|
+
...getJsonSchemaAnnotations(ast)
|
|
483
|
+
};
|
|
396
484
|
}
|
|
397
485
|
case "Suspend":
|
|
398
486
|
{
|
|
@@ -400,16 +488,19 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
400
488
|
if (Option.isNone(identifier)) {
|
|
401
489
|
throw new Error(errors_.getJSONSchemaMissingIdentifierAnnotationErrorMessage(path, ast));
|
|
402
490
|
}
|
|
403
|
-
return go(ast.f(), $defs,
|
|
491
|
+
return go(ast.f(), $defs, handleIdentifier, path, options);
|
|
404
492
|
}
|
|
405
493
|
case "Transformation":
|
|
406
494
|
{
|
|
407
|
-
// Properly handle S.parseJson transformations by focusing on
|
|
408
|
-
// the 'to' side of the AST. This approach prevents the generation of useless schemas
|
|
409
|
-
// derived from the 'from' side (type: string), ensuring the output matches the intended
|
|
410
|
-
// complex schema type.
|
|
411
495
|
if (isParseJsonTransformation(ast.from)) {
|
|
412
|
-
|
|
496
|
+
const out = {
|
|
497
|
+
"type": "string",
|
|
498
|
+
"contentMediaType": "application/json"
|
|
499
|
+
};
|
|
500
|
+
if (options.target !== "jsonSchema7") {
|
|
501
|
+
out["contentSchema"] = go(ast.to, $defs, handleIdentifier, path, options);
|
|
502
|
+
}
|
|
503
|
+
return out;
|
|
413
504
|
}
|
|
414
505
|
let next = ast.from;
|
|
415
506
|
if (AST.isTypeLiteralTransformation(ast.transformation)) {
|
|
@@ -434,7 +525,7 @@ const go = (ast, $defs, handleIdentifier, path) => {
|
|
|
434
525
|
});
|
|
435
526
|
}
|
|
436
527
|
}
|
|
437
|
-
return go(next, $defs,
|
|
528
|
+
return go(next, $defs, handleIdentifier, path, options);
|
|
438
529
|
}
|
|
439
530
|
}
|
|
440
531
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONSchema.js","names":["errors_","Option","Predicate","Record","AST","make","schema","$defs","jsonSchema","go","ast","out","$schema","id","get$ref","isEmptyRecord","anyJsonSchema","$id","unknownJsonSchema","voidJsonSchema","objectJsonSchema","empty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","default","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefinedFromPropertySignature","isNone","getJSONSchemaAnnotation","types","filter","type","isUndefinedKeyword","length","Union","isParseJsonTransformation","from","to","DEFINITION_PREFIX","getRefinementInnerTransformation","f","isRefinement","SchemaIdAnnotationId","ParseJsonSchemaId","merge","a","b","isOverrideAnnotation","handleIdentifier","path","hook","isSome","handler","value","t","undefined","e","surrogate","getSurrogateAnnotation","isTransformation","identifier","getJSONIdentifier","$ref","has","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","elements","map","i","concat","rest","annotatedAST","output","len","minItems","element","isOptional","items","restLength","head","isHomogeneous","every","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","maxItems","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","pattern","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","ps","name","pruned","push","getJSONSchemaUnsupportedKeyErrorMessage","enums","anyOf","Object","keys","$comment","encodedBoundAST","regex","String","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"JSONSchema.js","names":["errors_","Option","Predicate","Record","AST","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","out","fromAST","$schema","isEmptyRecord","$defs","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","default","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefinedFromPropertySignature","isNone","getJSONSchemaAnnotation","neverKeyword","types","hasUndefined","type","pruned","isNeverKeyword","push","Union","f","SchemaIdAnnotationId","ParseJsonSchemaId","isOverrideAnnotation","jsonSchema","isEnumOnly","Object","keys","length","mergeRefinements","allOf","handle","name","filter","unshift","i","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","path","identifier","getJSONIdentifier","isSome","value","$ref","has","hook","handler","isRefinement","t","getTransformationFrom","undefined","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","elements","map","e","concat","rest","annotatedAST","output","len","element","isOptional","items","restLength","head","isHomogeneous","every","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","ps","getJSONSchemaUnsupportedKeyErrorMessage","anyOf","last","$comment","enums","regex","String","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,OAAO,MAAM,6BAA6B;AACtD,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AA+NrC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAqB;EAC/E,MAAMC,WAAW,GAAwB,EAAE;EAC3C,MAAMC,GAAG,GAAGJ,GAAG,CAACK,gBAAgB,CAACH,MAAM,CAACE,GAAG,CAAC,IAAIE,yBAAyB,CAACJ,MAAM,CAACE,GAAG,CAACG,IAAI;EACvF;EAAA,EACEL,MAAM,CAACE,GAAG,CAACI,EAAE,GACbN,MAAM,CAACE,GAAG;EACd,MAAMK,GAAG,GAAoBC,OAAO,CAACN,GAAG,EAAE;IACxCD;GACD,CAAC;EACFM,GAAG,CAACE,OAAO,GAAGA,OAAO;EACrB,IAAI,CAACZ,MAAM,CAACa,aAAa,CAACT,WAAW,CAAC,EAAE;IACtCM,GAAG,CAACI,KAAK,GAAGV,WAAW;EACzB;EACA,OAAOM,GAAG;AACZ,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,OAAO,GAAGA,CAACN,GAAY,EAAEU,OAKrC,KAAiB;EAChB,MAAMC,cAAc,GAAGD,OAAO,CAACC,cAAc,IAAI,UAAU;EAC3D,MAAMC,MAAM,GAAIC,EAAU,IAAKF,cAAc,GAAGE,EAAE;EAClD,MAAMC,MAAM,GAAWJ,OAAO,CAACI,MAAM,IAAI,aAAa;EACtD,MAAMC,gBAAgB,GAAGL,OAAO,CAACM,yBAAyB,KAAK,MAAM;EACrE,OAAOC,EAAE,CAACjB,GAAG,EAAEU,OAAO,CAACX,WAAW,EAAEgB,gBAAgB,EAAE,EAAE,EAAE;IACxDH,MAAM;IACNE;GACD,CAAC;AACJ,CAAC;AAED,MAAMI,UAAU,GAAgB;EAC9B,KAAK,EAAE,gBAAgB;EACvB,KAAK,EAAE;CACR;AAED,MAAMC,QAAQ,GAAgB;EAC5B,KAAK,EAAE;CACR;AAED,MAAMC,YAAY,GAAgB;EAChC,KAAK,EAAE;CACR;AAED,MAAMC,SAAS,GAAgB;EAC7B,KAAK,EAAE;CACR;AAED,MAAMC,cAAc,GAAgB;EAClC,KAAK,EAAE,iBAAiB;EACxB,OAAO,EAAE,CACP;IAAE,MAAM,EAAE;EAAQ,CAAE,EACpB;IAAE,MAAM,EAAE;EAAO,CAAE;CAEtB;AAED,MAAMC,UAAU,GAAgB;EAC9B,KAAK,EAAE,aAAa;EACpB,OAAO,EAAE,CACP;IAAE,MAAM,EAAE;EAAQ,CAAE,EACpB;IAAE,MAAM,EAAE;EAAO,CAAE;CAEtB;AAED,MAAMhB,OAAO,GAAG,yCAAyC;AAEzD,MAAMiB,wBAAwB,GAAIC,SAAwB,IACxD9B,MAAM,CAAC+B,QAAQ,CAAC;EACdC,WAAW,EAAE/B,GAAG,CAACgC,wBAAwB,CAACH,SAAS,CAAC;EACpDI,KAAK,EAAEjC,GAAG,CAACkC,kBAAkB,CAACL,SAAS,CAAC;EACxCM,QAAQ,EAAEnC,GAAG,CAACoC,qBAAqB,CAACP,SAAS,CAAC;EAC9CQ,OAAO,EAAErC,GAAG,CAACsC,oBAAoB,CAACT,SAAS;CAC5C,CAAC;AAEJ,MAAMU,kCAAkC,GAAGA,CACzCC,qBAA4C,EAC5CpC,GAAY,KACa;EACzB,IAAIoC,qBAAqB,CAAC,OAAO,CAAC,KAAKpC,GAAG,CAACqC,WAAW,CAACzC,GAAG,CAAC0C,iBAAiB,CAAC,EAAE;IAC7E,OAAOF,qBAAqB,CAAC,OAAO,CAAC;EACvC;EACA,IAAIA,qBAAqB,CAAC,aAAa,CAAC,KAAKpC,GAAG,CAACqC,WAAW,CAACzC,GAAG,CAAC2C,uBAAuB,CAAC,EAAE;IACzF,OAAOH,qBAAqB,CAAC,aAAa,CAAC;EAC7C;EACA,OAAOA,qBAAqB;AAC9B,CAAC;AAED,MAAMI,2BAA2B,GAAIxC,GAAY,IAA2B;EAC1E,MAAMoC,qBAAqB,GAAGZ,wBAAwB,CAACxB,GAAG,CAAC;EAC3D,QAAQA,GAAG,CAACyC,IAAI;IACd,KAAK,eAAe;MAClB,OAAON,kCAAkC,CAACC,qBAAqB,EAAExC,GAAG,CAAC8C,aAAa,CAAC;IACrF,KAAK,eAAe;MAClB,OAAOP,kCAAkC,CAACC,qBAAqB,EAAExC,GAAG,CAAC+C,aAAa,CAAC;IACrF,KAAK,gBAAgB;MACnB,OAAOR,kCAAkC,CAACC,qBAAqB,EAAExC,GAAG,CAACgD,cAAc,CAAC;IACtF;MACE,OAAOR,qBAAqB;EAChC;AACF,CAAC;AAED,MAAMS,mCAAmC,GAAI7C,GAAY,IAAyB;EAChF,IAAIP,MAAM,CAACqD,MAAM,CAAClD,GAAG,CAACmD,uBAAuB,CAAC/C,GAAG,CAAC,CAAC,EAAE;IACnD,QAAQA,GAAG,CAACyC,IAAI;MACd,KAAK,kBAAkB;QACrB,OAAO7C,GAAG,CAACoD,YAAY;MACzB,KAAK,OAAO;QAAE;UACZ,MAAMC,KAAK,GAAmB,EAAE;UAChC,IAAIC,YAAY,GAAG,KAAK;UACxB,KAAK,MAAMC,IAAI,IAAInD,GAAG,CAACiD,KAAK,EAAE;YAC5B,MAAMG,MAAM,GAAGP,mCAAmC,CAACM,IAAI,CAAC;YACxD,IAAIC,MAAM,EAAE;cACVF,YAAY,GAAG,IAAI;cACnB,IAAI,CAACtD,GAAG,CAACyD,cAAc,CAACD,MAAM,CAAC,EAAE;gBAC/BH,KAAK,CAACK,IAAI,CAACF,MAAM,CAAC;cACpB;YACF,CAAC,MAAM;cACLH,KAAK,CAACK,IAAI,CAACH,IAAI,CAAC;YAClB;UACF;UACA,IAAID,YAAY,EAAE;YAChB,OAAOtD,GAAG,CAAC2D,KAAK,CAAC1D,IAAI,CAACoD,KAAK,CAAC;UAC9B;UACA;QACF;MACA,KAAK,SAAS;QACZ,OAAOJ,mCAAmC,CAAC7C,GAAG,CAACwD,CAAC,EAAE,CAAC;MACrD,KAAK,gBAAgB;QACnB,OAAOX,mCAAmC,CAAC7C,GAAG,CAACG,IAAI,CAAC;IACxD;EACF;AACF,CAAC;AAED,MAAMD,yBAAyB,GAAIF,GAAY,IAC7CA,GAAG,CAACqC,WAAW,CAACzC,GAAG,CAAC6D,oBAAoB,CAAC,KAAK7D,GAAG,CAAC8D,iBAAiB;AAErE,MAAMC,oBAAoB,GAAIC,UAAuB,IAAa;EAChE,OAAQ,MAAM,IAAIA,UAAU,IAAM,OAAO,IAAIA,UAAW,IAAK,OAAO,IAAIA,UAAW,IAAK,OAAO,IAAIA,UAAW,IAC3G,MAAM,IAAIA,UAAW,IAAK,MAAM,IAAIA,UAAW;AACpD,CAAC;AAED;AACA;AACA,MAAMC,UAAU,GAAI/D,MAAmB,IACrC,MAAM,IAAIA,MAAM,IAAIgE,MAAM,CAACC,IAAI,CAACjE,MAAM,CAAC,CAACkE,MAAM,KAAK,CAAC;AAEtD,MAAMC,gBAAgB,GAAGA,CAAC9D,IAAS,EAAEyD,UAAe,EAAEvB,WAAgB,KAAS;EAC7E,MAAMhC,GAAG,GAAQ;IAAE,GAAGF,IAAI;IAAE,GAAGkC,WAAW;IAAE,GAAGuB;EAAU,CAAE;EAC3DvD,GAAG,CAAC6D,KAAK,KAAK,EAAE;EAEhB,MAAMC,MAAM,GAAGA,CAACC,IAAY,EAAEC,MAA2B,KAAI;IAC3D,IAAID,IAAI,IAAIR,UAAU,IAAIQ,IAAI,IAAIjE,IAAI,EAAE;MACtCE,GAAG,CAAC6D,KAAK,CAACI,OAAO,CAAC;QAAE,CAACF,IAAI,GAAGjE,IAAI,CAACiE,IAAI;MAAC,CAAE,CAAC;MACzC/D,GAAG,CAAC6D,KAAK,GAAG7D,GAAG,CAAC6D,KAAK,CAACG,MAAM,CAACA,MAAM,CAAC;IACtC;EACF,CAAC;EAEDF,MAAM,CAAC,WAAW,EAAGI,CAAC,IAAKA,CAAC,CAACC,SAAS,GAAGZ,UAAU,CAACY,SAAS,CAAC;EAC9DL,MAAM,CAAC,WAAW,EAAGI,CAAC,IAAKA,CAAC,CAACE,SAAS,GAAGb,UAAU,CAACa,SAAS,CAAC;EAC9DN,MAAM,CAAC,SAAS,EAAGI,CAAC,IAAKA,CAAC,CAACG,OAAO,KAAKd,UAAU,CAACc,OAAO,CAAC;EAC1DP,MAAM,CAAC,UAAU,EAAGI,CAAC,IAAKA,CAAC,CAACI,QAAQ,GAAGf,UAAU,CAACe,QAAQ,CAAC;EAC3DR,MAAM,CAAC,UAAU,EAAGI,CAAC,IAAKA,CAAC,CAACK,QAAQ,GAAGhB,UAAU,CAACgB,QAAQ,CAAC;EAC3DT,MAAM,CAAC,SAAS,EAAGI,CAAC,IAAKA,CAAC,CAACM,OAAO,GAAGjB,UAAU,CAACiB,OAAO,CAAC;EACxDV,MAAM,CAAC,SAAS,EAAGI,CAAC,IAAKA,CAAC,CAACO,OAAO,GAAGlB,UAAU,CAACkB,OAAO,CAAC;EACxDX,MAAM,CAAC,kBAAkB,EAAGI,CAAC,IAAKA,CAAC,CAACQ,gBAAgB,GAAGnB,UAAU,CAACmB,gBAAgB,CAAC;EACnFZ,MAAM,CAAC,kBAAkB,EAAGI,CAAC,IAAKA,CAAC,CAACS,gBAAgB,GAAGpB,UAAU,CAACoB,gBAAgB,CAAC;EACnFb,MAAM,CAAC,YAAY,EAAGI,CAAC,IAAKA,CAAC,CAACU,UAAU,KAAKrB,UAAU,CAACqB,UAAU,CAAC;EAEnE,IAAI5E,GAAG,CAAC6D,KAAK,CAACF,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO3D,GAAG,CAAC6D,KAAK;EAClB;EACA,OAAO7D,GAAG;AACZ,CAAC;AAED,MAAMY,EAAE,GAAGA,CACTjB,GAAY,EACZS,KAAkC,EAClCM,gBAAyB,EACzBmE,IAAgC,EAChCxE,OAGC,KACc;EACf,IAAIK,gBAAgB,EAAE;IACpB,MAAMoE,UAAU,GAAGvF,GAAG,CAACwF,iBAAiB,CAACpF,GAAG,CAAC;IAC7C,IAAIP,MAAM,CAAC4F,MAAM,CAACF,UAAU,CAAC,EAAE;MAC7B,MAAMtE,EAAE,GAAGsE,UAAU,CAACG,KAAK;MAC3B,MAAMjF,GAAG,GAAG;QAAEkF,IAAI,EAAE7E,OAAO,CAACE,MAAM,CAACC,EAAE;MAAC,CAAE;MACxC,IAAI,CAAClB,MAAM,CAAC6F,GAAG,CAAC/E,KAAK,EAAEI,EAAE,CAAC,EAAE;QAC1BJ,KAAK,CAACI,EAAE,CAAC,GAAGR,GAAG;QACfI,KAAK,CAACI,EAAE,CAAC,GAAGI,EAAE,CAACjB,GAAG,EAAES,KAAK,EAAE,KAAK,EAAEyE,IAAI,EAAExE,OAAO,CAAC;MAClD;MACA,OAAOL,GAAG;IACZ;EACF;EACA,MAAMoF,IAAI,GAAG7F,GAAG,CAACmD,uBAAuB,CAAC/C,GAAG,CAAC;EAC7C,IAAIP,MAAM,CAAC4F,MAAM,CAACI,IAAI,CAAC,EAAE;IACvB,MAAMC,OAAO,GAAGD,IAAI,CAACH,KAAoB;IACzC,IAAI1F,GAAG,CAAC+F,YAAY,CAAC3F,GAAG,CAAC,EAAE;MACzB,MAAM4F,CAAC,GAAGhG,GAAG,CAACiG,qBAAqB,CAAC7F,GAAG,CAAC;MACxC,IAAI4F,CAAC,KAAKE,SAAS,EAAE;QACnB,OAAO7B,gBAAgB,CACrBhD,EAAE,CAACjB,GAAG,CAACG,IAAI,EAAEM,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC,EACpDgF,OAAO,EACPlE,wBAAwB,CAACxB,GAAG,CAAC,CAC9B;MACH,CAAC,MAAM,IAAI,CAAC2D,oBAAoB,CAAC+B,OAAO,CAAC,EAAE;QACzC,OAAOzE,EAAE,CAAC2E,CAAC,EAAEnF,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;MACtD;IACF;IACA,OAAOgF,OAAO;EAChB;EACA,MAAMK,SAAS,GAAGnG,GAAG,CAACoG,sBAAsB,CAAChG,GAAG,CAAC;EACjD,IAAIP,MAAM,CAAC4F,MAAM,CAACU,SAAS,CAAC,EAAE;IAC5B,OAAO9E,EAAE,CAAC8E,SAAS,CAACT,KAAK,EAAE7E,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;EACpE;EACA,QAAQV,GAAG,CAACyC,IAAI;IACd,KAAK,aAAa;MAChB,MAAM,IAAIwD,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;IAChF,KAAK,SAAS;MAAE;QACd,MAAMmG,OAAO,GAAGnG,GAAG,CAACmG,OAAO;QAC3B,IAAIA,OAAO,KAAK,IAAI,EAAE;UACpB,OAAO;YAAEC,IAAI,EAAE,CAAC,IAAI,CAAC;YAAE,GAAG5E,wBAAwB,CAACxB,GAAG;UAAC,CAAE;QAC3D,CAAC,MAAM,IAAIN,SAAS,CAAC2G,QAAQ,CAACF,OAAO,CAAC,IAAIzG,SAAS,CAAC4G,QAAQ,CAACH,OAAO,CAAC,IAAIzG,SAAS,CAAC6G,SAAS,CAACJ,OAAO,CAAC,EAAE;UACrG,OAAO;YAAEC,IAAI,EAAE,CAACD,OAAO,CAAC;YAAE,GAAG3E,wBAAwB,CAACxB,GAAG;UAAC,CAAE;QAC9D;QACA,MAAM,IAAIiG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;MAChF;IACA,KAAK,cAAc;MACjB,MAAM,IAAIiG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;IAChF,KAAK,kBAAkB;MACrB,MAAM,IAAIiG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;IAChF,KAAK,aAAa;MAChB,OAAO;QAAE,GAAGqB,SAAS;QAAE,GAAGG,wBAAwB,CAACxB,GAAG;MAAC,CAAE;IAC3D,KAAK,cAAc;MACjB,OAAO;QAAE,GAAGkB,UAAU;QAAE,GAAGM,wBAAwB,CAACxB,GAAG;MAAC,CAAE;IAC5D,KAAK,gBAAgB;MACnB,OAAO;QAAE,GAAGoB,YAAY;QAAE,GAAGI,wBAAwB,CAACxB,GAAG;MAAC,CAAE;IAC9D,KAAK,YAAY;MACf,OAAO;QAAE,GAAGmB,QAAQ;QAAE,GAAGK,wBAAwB,CAACxB,GAAG;MAAC,CAAE;IAC1D,KAAK,eAAe;MAClB,OAAO;QAAE,GAAGsB,cAAc;QAAE,GAAGE,wBAAwB,CAACxB,GAAG;MAAC,CAAE;IAChE,KAAK,eAAe;MAClB,OAAO;QAAEmD,IAAI,EAAE,QAAQ;QAAE,GAAGX,2BAA2B,CAACxC,GAAG;MAAC,CAAE;IAChE,KAAK,eAAe;MAClB,OAAO;QAAEmD,IAAI,EAAE,QAAQ;QAAE,GAAGX,2BAA2B,CAACxC,GAAG;MAAC,CAAE;IAChE,KAAK,gBAAgB;MACnB,OAAO;QAAEmD,IAAI,EAAE,SAAS;QAAE,GAAGX,2BAA2B,CAACxC,GAAG;MAAC,CAAE;IACjE,KAAK,eAAe;MAClB,MAAM,IAAIiG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;IAChF,KAAK,eAAe;MAClB,MAAM,IAAIiG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;IAChF,KAAK,WAAW;MAAE;QAChB,MAAMwG,QAAQ,GAAGxG,GAAG,CAACwG,QAAQ,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEnC,CAAC,MAAM;UAC3C,GAAGtD,EAAE,CAACyF,CAAC,CAACvD,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,CAACyB,MAAM,CAACpC,CAAC,CAAC,EAAE7D,OAAO,CAAC;UACnD,GAAGc,wBAAwB,CAACkF,CAAC;SAC9B,CAAC,CAAC;QACH,MAAME,IAAI,GAAG5G,GAAG,CAAC4G,IAAI,CAACH,GAAG,CAAEI,YAAY,KAAM;UAC3C,GAAG5F,EAAE,CAAC4F,YAAY,CAAC1D,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;UACpD,GAAGc,wBAAwB,CAACqF,YAAY;SACzC,CAAC,CAAC;QACH,MAAMC,MAAM,GAAqB;UAAE3D,IAAI,EAAE;QAAO,CAAE;QAClD;QACA;QACA;QACA,MAAM4D,GAAG,GAAG/G,GAAG,CAACwG,QAAQ,CAACxC,MAAM;QAC/B,IAAI+C,GAAG,GAAG,CAAC,EAAE;UACXD,MAAM,CAACnC,QAAQ,GAAGoC,GAAG,GAAG/G,GAAG,CAACwG,QAAQ,CAACnC,MAAM,CAAE2C,OAAO,IAAKA,OAAO,CAACC,UAAU,CAAC,CAACjD,MAAM;UACnF8C,MAAM,CAACI,KAAK,GAAGV,QAAQ;QACzB;QACA;QACA;QACA;QACA,MAAMW,UAAU,GAAGP,IAAI,CAAC5C,MAAM;QAC9B,IAAImD,UAAU,GAAG,CAAC,EAAE;UAClB,MAAMC,IAAI,GAAGR,IAAI,CAAC,CAAC,CAAC;UACpB,MAAMS,aAAa,GAAGF,UAAU,KAAK,CAAC,IAAInH,GAAG,CAACwG,QAAQ,CAACc,KAAK,CAAEZ,CAAC,IAAKA,CAAC,CAACvD,IAAI,KAAKnD,GAAG,CAAC4G,IAAI,CAAC,CAAC,CAAC,CAACzD,IAAI,CAAC;UAChG,IAAIkE,aAAa,EAAE;YACjBP,MAAM,CAACI,KAAK,GAAGE,IAAI;UACrB,CAAC,MAAM;YACLN,MAAM,CAACS,eAAe,GAAGH,IAAI;UAC/B;UAEA;UACA;UACA;UACA,IAAID,UAAU,GAAG,CAAC,EAAE;YAClB,MAAM,IAAIlB,KAAK,CAACzG,OAAO,CAACgI,oDAAoD,CAACtC,IAAI,CAAC,CAAC;UACrF;QACF,CAAC,MAAM;UACL,IAAI6B,GAAG,GAAG,CAAC,EAAE;YACXD,MAAM,CAACS,eAAe,GAAG,KAAK;UAChC,CAAC,MAAM;YACLT,MAAM,CAAClC,QAAQ,GAAG,CAAC;UACrB;QACF;QAEA,OAAO;UAAE,GAAGkC,MAAM;UAAE,GAAGtF,wBAAwB,CAACxB,GAAG;QAAC,CAAE;MACxD;IACA,KAAK,aAAa;MAAE;QAClB,IAAIA,GAAG,CAACyH,kBAAkB,CAACzD,MAAM,KAAK,CAAC,IAAIhE,GAAG,CAAC0H,eAAe,CAAC1D,MAAM,KAAK,CAAC,EAAE;UAC3E,OAAO;YAAE,GAAGzC,UAAU;YAAE,GAAGC,wBAAwB,CAACxB,GAAG;UAAC,CAAE;QAC5D;QACA,IAAI2H,iBAAiB,GAA4B7B,SAAS;QAC1D,IAAI8B,aAAa,GAA4B9B,SAAS;QACtD,KAAK,MAAM+B,EAAE,IAAI7H,GAAG,CAAC0H,eAAe,EAAE;UACpC,MAAMI,SAAS,GAAGD,EAAE,CAACC,SAAS;UAC9B,QAAQA,SAAS,CAACrF,IAAI;YACpB,KAAK,eAAe;cAAE;gBACpBkF,iBAAiB,GAAG1G,EAAE,CAAC4G,EAAE,CAAC1E,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;gBAC3D;cACF;YACA,KAAK,iBAAiB;cAAE;gBACtBiH,iBAAiB,GAAG1G,EAAE,CAAC4G,EAAE,CAAC1E,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;gBAC3DkH,aAAa,GAAG;kBACdzE,IAAI,EAAE,QAAQ;kBACduB,OAAO,EAAE9E,GAAG,CAACmI,wBAAwB,CAACD,SAAS,CAAC,CAACE;iBAClD;gBACD;cACF;YACA,KAAK,YAAY;cAAE;gBACjBL,iBAAiB,GAAG1G,EAAE,CAAC4G,EAAE,CAAC1E,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;gBAC3DkH,aAAa,GAAG3G,EAAE,CAAC6G,SAAS,EAAErH,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;gBACzD;cACF;YACA,KAAK,eAAe;cAClB,MAAM,IAAIuF,KAAK,CAACzG,OAAO,CAACyI,6CAA6C,CAAC/C,IAAI,EAAE4C,SAAS,CAAC,CAAC;UAC3F;QACF;QACA,MAAMhB,MAAM,GAAsB;UAChC3D,IAAI,EAAE,QAAQ;UACd+E,QAAQ,EAAE,EAAE;UACZC,UAAU,EAAE,EAAE;UACdC,oBAAoB,EAAE;SACvB;QACD;QACA;QACA;QACA,KAAK,IAAI7D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvE,GAAG,CAACyH,kBAAkB,CAACzD,MAAM,EAAEO,CAAC,EAAE,EAAE;UACtD,MAAM8D,EAAE,GAAGrI,GAAG,CAACyH,kBAAkB,CAAClD,CAAC,CAAC;UACpC,MAAMH,IAAI,GAAGiE,EAAE,CAACjE,IAAI;UACpB,IAAI1E,SAAS,CAAC2G,QAAQ,CAACjC,IAAI,CAAC,EAAE;YAC5B,MAAMhB,MAAM,GAAGP,mCAAmC,CAACwF,EAAE,CAAClF,IAAI,CAAC;YAC3D2D,MAAM,CAACqB,UAAU,CAAC/D,IAAI,CAAC,GAAG;cACxB,GAAGnD,EAAE,CAACmC,MAAM,IAAIiF,EAAE,CAAClF,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,CAACyB,MAAM,CAAC0B,EAAE,CAACjE,IAAI,CAAC,EAAE1D,OAAO,CAAC;cACpE,GAAGc,wBAAwB,CAAC6G,EAAE;aAC/B;YACD;YACA;YACA;YACA,IAAI,CAACA,EAAE,CAACpB,UAAU,IAAI7D,MAAM,KAAK0C,SAAS,EAAE;cAC1CgB,MAAM,CAACoB,QAAQ,CAAC5E,IAAI,CAACc,IAAI,CAAC;YAC5B;UACF,CAAC,MAAM;YACL,MAAM,IAAI6B,KAAK,CAACzG,OAAO,CAAC8I,uCAAuC,CAAClE,IAAI,EAAEc,IAAI,CAAC,CAAC;UAC9E;QACF;QACA;QACA;QACA;QACA,IAAIyC,iBAAiB,KAAK7B,SAAS,EAAE;UACnC,OAAOgB,MAAM,CAACsB,oBAAoB;UAClCtB,MAAM,CAACa,iBAAiB,GAAG;YAAE,EAAE,EAAEA;UAAiB,CAAE;QACtD;QACA,IAAIC,aAAa,KAAK9B,SAAS,EAAE;UAC/BgB,MAAM,CAACc,aAAa,GAAGA,aAAa;QACtC;QAEA,OAAO;UAAE,GAAGd,MAAM;UAAE,GAAGtF,wBAAwB,CAACxB,GAAG;QAAC,CAAE;MACxD;IACA,KAAK,OAAO;MAAE;QACZ,MAAMuI,KAAK,GAAuB,EAAE;QACpC,KAAK,MAAMpF,IAAI,IAAInD,GAAG,CAACiD,KAAK,EAAE;UAC5B,MAAMnD,MAAM,GAAGmB,EAAE,CAACkC,IAAI,EAAE1C,KAAK,EAAE,IAAI,EAAEyE,IAAI,EAAExE,OAAO,CAAC;UACnD,IAAI,MAAM,IAAIZ,MAAM,EAAE;YACpB,IAAIgE,MAAM,CAACC,IAAI,CAACjE,MAAM,CAAC,CAACkE,MAAM,GAAG,CAAC,EAAE;cAClCuE,KAAK,CAACjF,IAAI,CAACxD,MAAM,CAAC;YACpB,CAAC,MAAM;cACL,MAAM0I,IAAI,GAAGD,KAAK,CAACA,KAAK,CAACvE,MAAM,GAAG,CAAC,CAAC;cACpC,IAAIwE,IAAI,KAAK1C,SAAS,IAAIjC,UAAU,CAAC2E,IAAI,CAAC,EAAE;gBAC1C,KAAK,MAAM9B,CAAC,IAAI5G,MAAM,CAACsG,IAAI,EAAE;kBAC3BoC,IAAI,CAACpC,IAAI,CAAC9C,IAAI,CAACoD,CAAC,CAAC;gBACnB;cACF,CAAC,MAAM;gBACL6B,KAAK,CAACjF,IAAI,CAACxD,MAAM,CAAC;cACpB;YACF;UACF,CAAC,MAAM;YACLyI,KAAK,CAACjF,IAAI,CAACxD,MAAM,CAAC;UACpB;QACF;QACA,IAAIyI,KAAK,CAACvE,MAAM,KAAK,CAAC,IAAIH,UAAU,CAAC0E,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;UAC9C,OAAO;YAAEnC,IAAI,EAAEmC,KAAK,CAAC,CAAC,CAAC,CAACnC,IAAI;YAAE,GAAG5E,wBAAwB,CAACxB,GAAG;UAAC,CAAE;QAClE,CAAC,MAAM;UACL,OAAO;YAAEuI,KAAK;YAAE,GAAG/G,wBAAwB,CAACxB,GAAG;UAAC,CAAE;QACpD;MACF;IACA,KAAK,OAAO;MAAE;QACZ,OAAO;UACLyI,QAAQ,EAAE,gBAAgB;UAC1BF,KAAK,EAAEvI,GAAG,CAAC0I,KAAK,CAACjC,GAAG,CAAEC,CAAC,KAAM;YAAE7E,KAAK,EAAE6E,CAAC,CAAC,CAAC,CAAC;YAAEN,IAAI,EAAE,CAACM,CAAC,CAAC,CAAC,CAAC;UAAC,CAAE,CAAC,CAAC;UAC5D,GAAGlF,wBAAwB,CAACxB,GAAG;SAChC;MACH;IACA,KAAK,YAAY;MAAE;QACjB;QACA,IAAIJ,GAAG,CAACiG,qBAAqB,CAAC7F,GAAG,CAAC,KAAK8F,SAAS,EAAE;UAChD,MAAM,IAAIG,KAAK,CAACzG,OAAO,CAAC0G,0CAA0C,CAAChB,IAAI,EAAElF,GAAG,CAAC,CAAC;QAChF;QACA,OAAOiB,EAAE,CAACjB,GAAG,CAACG,IAAI,EAAEM,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;MAC7D;IACA,KAAK,iBAAiB;MAAE;QACtB,MAAMiI,KAAK,GAAG/I,GAAG,CAACmI,wBAAwB,CAAC/H,GAAG,CAAC;QAC/C,OAAO;UACLmD,IAAI,EAAE,QAAQ;UACdtB,KAAK,EAAE+G,MAAM,CAAC5I,GAAG,CAAC;UAClB2B,WAAW,EAAE,oBAAoB;UACjC+C,OAAO,EAAEiE,KAAK,CAACX,MAAM;UACrB,GAAGxG,wBAAwB,CAACxB,GAAG;SAChC;MACH;IACA,KAAK,SAAS;MAAE;QACd,MAAMmF,UAAU,GAAG1F,MAAM,CAACoJ,MAAM,CAACjJ,GAAG,CAACwF,iBAAiB,CAACpF,GAAG,CAAC,EAAE,MAAMJ,GAAG,CAACwF,iBAAiB,CAACpF,GAAG,CAACwD,CAAC,EAAE,CAAC,CAAC;QAClG,IAAI/D,MAAM,CAACqD,MAAM,CAACqC,UAAU,CAAC,EAAE;UAC7B,MAAM,IAAIc,KAAK,CAACzG,OAAO,CAACsJ,oDAAoD,CAAC5D,IAAI,EAAElF,GAAG,CAAC,CAAC;QAC1F;QACA,OAAOiB,EAAE,CAACjB,GAAG,CAACwD,CAAC,EAAE,EAAE/C,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;MAC5D;IACA,KAAK,gBAAgB;MAAE;QACrB,IAAIR,yBAAyB,CAACF,GAAG,CAACG,IAAI,CAAC,EAAE;UACvC,MAAME,GAAG,GAAwD;YAC/D,MAAM,EAAE,QAAQ;YAChB,kBAAkB,EAAE;WACrB;UACD,IAAIK,OAAO,CAACI,MAAM,KAAK,aAAa,EAAE;YACpCT,GAAG,CAAC,eAAe,CAAC,GAAGY,EAAE,CAACjB,GAAG,CAACI,EAAE,EAAEK,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;UAC3E;UACA,OAAOL,GAAG;QACZ;QACA,IAAI0I,IAAI,GAAG/I,GAAG,CAACG,IAAI;QACnB,IAAIP,GAAG,CAACoJ,2BAA2B,CAAChJ,GAAG,CAACiJ,cAAc,CAAC,EAAE;UACvD;UACA;UACA,MAAM9D,UAAU,GAAGvF,GAAG,CAACsJ,uBAAuB,CAAClJ,GAAG,CAAC;UACnD,IAAIP,MAAM,CAAC4F,MAAM,CAACF,UAAU,CAAC,IAAI1F,MAAM,CAACqD,MAAM,CAAClD,GAAG,CAACsJ,uBAAuB,CAACH,IAAI,CAAC,CAAC,EAAE;YACjFA,IAAI,GAAGnJ,GAAG,CAACyC,WAAW,CAAC0G,IAAI,EAAE;cAAE,CAACnJ,GAAG,CAACuJ,sBAAsB,GAAGhE,UAAU,CAACG;YAAK,CAAE,CAAC;UAClF;UACA,MAAMzD,KAAK,GAAGjC,GAAG,CAACkC,kBAAkB,CAAC9B,GAAG,CAAC;UACzC,IAAIP,MAAM,CAAC4F,MAAM,CAACxD,KAAK,CAAC,IAAIpC,MAAM,CAACqD,MAAM,CAAClD,GAAG,CAACkC,kBAAkB,CAACiH,IAAI,CAAC,CAAC,EAAE;YACvEA,IAAI,GAAGnJ,GAAG,CAACyC,WAAW,CAAC0G,IAAI,EAAE;cAAE,CAACnJ,GAAG,CAAC0C,iBAAiB,GAAGT,KAAK,CAACyD;YAAK,CAAE,CAAC;UACxE;UACA,MAAM3D,WAAW,GAAG/B,GAAG,CAACgC,wBAAwB,CAAC5B,GAAG,CAAC;UACrD,IAAIP,MAAM,CAAC4F,MAAM,CAAC1D,WAAW,CAAC,IAAIlC,MAAM,CAACqD,MAAM,CAAClD,GAAG,CAACgC,wBAAwB,CAACmH,IAAI,CAAC,CAAC,EAAE;YACnFA,IAAI,GAAGnJ,GAAG,CAACyC,WAAW,CAAC0G,IAAI,EAAE;cAAE,CAACnJ,GAAG,CAAC2C,uBAAuB,GAAGZ,WAAW,CAAC2D;YAAK,CAAE,CAAC;UACpF;QACF;QACA,OAAOrE,EAAE,CAAC8H,IAAI,EAAEtI,KAAK,EAAEM,gBAAgB,EAAEmE,IAAI,EAAExE,OAAO,CAAC;MACzD;EACF;AACF,CAAC","ignoreList":[]}
|