justus 0.5.1 → 0.5.2
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/dts-generator.cjs +267 -42
- package/dist/dts-generator.cjs.map +2 -2
- package/dist/dts-generator.d.ts +32 -3
- package/dist/dts-generator.mjs +266 -42
- package/dist/dts-generator.mjs.map +2 -2
- package/dist/extra/uuid.cjs.map +1 -1
- package/dist/extra/uuid.d.ts +1 -1
- package/dist/extra/uuid.mjs.map +1 -1
- package/dist/types.cjs +3 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +13 -2
- package/dist/types.mjs +3 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utilities.cjs +2 -0
- package/dist/utilities.cjs.map +1 -1
- package/dist/utilities.d.ts +1 -5
- package/dist/utilities.mjs +2 -0
- package/dist/utilities.mjs.map +1 -1
- package/package.json +4 -4
- package/src/dts-generator.ts +414 -56
- package/src/extra/uuid.ts +1 -1
- package/src/types.ts +14 -2
- package/src/utilities.ts +4 -5
package/dist/dts-generator.mjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// dts-generator.ts
|
|
2
2
|
import ts from "typescript";
|
|
3
3
|
import { assertSchema } from "./errors.mjs";
|
|
4
|
+
import { EAN13Validator } from "./extra/ean13.mjs";
|
|
4
5
|
import { URLValidator } from "./extra/url.mjs";
|
|
6
|
+
import { UUIDValidator } from "./extra/uuid.mjs";
|
|
5
7
|
import { getValidator } from "./utilities.mjs";
|
|
6
8
|
import { AnyValidator } from "./validators/any.mjs";
|
|
7
9
|
import { AnyArrayValidator, ArrayValidator } from "./validators/array.mjs";
|
|
@@ -15,45 +17,231 @@ import { OptionalValidator } from "./validators/optional.mjs";
|
|
|
15
17
|
import { AnyStringValidator, StringValidator } from "./validators/string.mjs";
|
|
16
18
|
import { TupleValidator } from "./validators/tuple.mjs";
|
|
17
19
|
import { AllOfValidator, OneOfValidator } from "./validators/union.mjs";
|
|
20
|
+
function typeEqual(a, b) {
|
|
21
|
+
function eq(a2, b2) {
|
|
22
|
+
if (typeof a2 == "object" && a2 != null && (typeof b2 == "object" && b2 != null)) {
|
|
23
|
+
for (const key in a2) {
|
|
24
|
+
if (!eq(a2[key], b2[key]))
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
for (const key in b2) {
|
|
28
|
+
if (!eq(a2[key], b2[key]))
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
} else {
|
|
33
|
+
return a2 === b2;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return eq(a, b);
|
|
37
|
+
}
|
|
18
38
|
var generators = /* @__PURE__ */ new Map();
|
|
19
39
|
function registerTypeGenerator(validator, generator) {
|
|
20
40
|
generators.set(validator, generator);
|
|
21
41
|
}
|
|
22
|
-
function generateTypes(validations) {
|
|
42
|
+
function generateTypes(validations, isInput = false) {
|
|
23
43
|
const validators = /* @__PURE__ */ new Map();
|
|
24
44
|
const references = /* @__PURE__ */ new Map();
|
|
25
|
-
|
|
45
|
+
for (const [name, validation] of Object.entries(validations)) {
|
|
26
46
|
const validator = getValidator(validation);
|
|
47
|
+
validators.set(name, validator);
|
|
27
48
|
if (!references.has(validator))
|
|
28
49
|
references.set(validator, name);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
for (const [name,
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
referenceable.delete(validator);
|
|
36
|
-
}
|
|
37
|
-
const type = generateTypeNode(validator, referenceable);
|
|
38
|
-
const modifiers = [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)];
|
|
39
|
-
const decl = ts.factory.createTypeAliasDeclaration(modifiers, name, [], type);
|
|
40
|
-
types.push(decl);
|
|
50
|
+
}
|
|
51
|
+
const types = generateTypeNodes(validators, references, isInput);
|
|
52
|
+
const aliases = [];
|
|
53
|
+
for (const [name, type] of types.entries()) {
|
|
54
|
+
const alias = ts.factory.createTypeAliasDeclaration(exportModifiers, name, [], type);
|
|
55
|
+
aliases.push(alias);
|
|
41
56
|
}
|
|
42
57
|
return ts.createPrinter().printList(
|
|
43
58
|
ts.ListFormat.SourceFileStatements,
|
|
44
|
-
ts.factory.createNodeArray(
|
|
59
|
+
ts.factory.createNodeArray(aliases),
|
|
60
|
+
ts.createSourceFile("types.d.ts", "", ts.ScriptTarget.Latest)
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
function generateDeclarations(validations) {
|
|
64
|
+
const names = [];
|
|
65
|
+
const outputValidators = /* @__PURE__ */ new Map();
|
|
66
|
+
const outputReferences = /* @__PURE__ */ new Map();
|
|
67
|
+
const inputValidators = /* @__PURE__ */ new Map();
|
|
68
|
+
const inputReferences = /* @__PURE__ */ new Map();
|
|
69
|
+
for (const [name, validation] of Object.entries(validations)) {
|
|
70
|
+
const prefix = /validator$/i.test(name) ? name.slice(0, -9) : /validation$/i.test(name) ? name.slice(0, -10) : name;
|
|
71
|
+
const output = `${prefix.slice(0, 1).toUpperCase()}${prefix.slice(1)}`;
|
|
72
|
+
const input = `${prefix.slice(0, 1).toUpperCase()}${prefix.slice(1)}Input`;
|
|
73
|
+
const validator = getValidator(validation);
|
|
74
|
+
names.push({ name, output, input });
|
|
75
|
+
outputValidators.set(output, validator);
|
|
76
|
+
inputValidators.set(input, validator);
|
|
77
|
+
if (!outputReferences.has(validator))
|
|
78
|
+
outputReferences.set(validator, output);
|
|
79
|
+
if (!inputReferences.has(validator))
|
|
80
|
+
inputReferences.set(validator, input);
|
|
81
|
+
}
|
|
82
|
+
const outputTypes = generateTypeNodes(outputValidators, outputReferences, false);
|
|
83
|
+
const inputTypes = generateTypeNodes(inputValidators, inputReferences, true);
|
|
84
|
+
const statements = [];
|
|
85
|
+
for (const { name, input, output } of names) {
|
|
86
|
+
const outputType = outputTypes.get(output);
|
|
87
|
+
const inputType = inputTypes.get(input);
|
|
88
|
+
const validation = validations[name];
|
|
89
|
+
const validator = outputValidators.get(output);
|
|
90
|
+
assertSchema(!!outputType, `No output type "${output}" generated for validation "${name}"`);
|
|
91
|
+
assertSchema(!!inputType, `No input type "${input}" generated for validation "${name}"`);
|
|
92
|
+
assertSchema(!!validator, `No validator for "${name}"`);
|
|
93
|
+
const sameType = typeEqual(inputType, outputType);
|
|
94
|
+
const inputAlias = sameType ? ts.factory.createTypeReferenceNode(output) : inputType;
|
|
95
|
+
const outputDeclaration = ts.factory.createTypeAliasDeclaration(exportModifiers, output, [], outputType);
|
|
96
|
+
const inputDeclaration = ts.factory.createTypeAliasDeclaration(exportModifiers, input, [], inputAlias);
|
|
97
|
+
const variableDeclarationType = generateVariableDeclarationType(validation, validator, outputReferences);
|
|
98
|
+
const variableDeclaration = ts.factory.createVariableStatement(
|
|
99
|
+
exportModifiers,
|
|
100
|
+
// "export"
|
|
101
|
+
ts.factory.createVariableDeclarationList([
|
|
102
|
+
ts.factory.createVariableDeclaration(
|
|
103
|
+
name,
|
|
104
|
+
// ..................................... "myTypeValidator"
|
|
105
|
+
void 0,
|
|
106
|
+
// no exclamation token
|
|
107
|
+
variableDeclarationType
|
|
108
|
+
)
|
|
109
|
+
], ts.NodeFlags.Const)
|
|
110
|
+
// ......................... "const"
|
|
111
|
+
);
|
|
112
|
+
ts.addSyntheticLeadingComment(
|
|
113
|
+
outputDeclaration,
|
|
114
|
+
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
115
|
+
` ${`----- ${name} `.padEnd(74, "-")} `,
|
|
116
|
+
true
|
|
117
|
+
// newline
|
|
118
|
+
);
|
|
119
|
+
ts.addSyntheticLeadingComment(
|
|
120
|
+
outputDeclaration,
|
|
121
|
+
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
122
|
+
`* Validated type for {@link ${name}} `,
|
|
123
|
+
true
|
|
124
|
+
// newline
|
|
125
|
+
);
|
|
126
|
+
ts.addSyntheticLeadingComment(
|
|
127
|
+
inputDeclaration,
|
|
128
|
+
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
129
|
+
`* Input type for {@link ${name}} `,
|
|
130
|
+
true
|
|
131
|
+
// newline
|
|
132
|
+
);
|
|
133
|
+
ts.addSyntheticLeadingComment(
|
|
134
|
+
variableDeclaration,
|
|
135
|
+
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
136
|
+
`* The \`${name}\` validator `,
|
|
137
|
+
true
|
|
138
|
+
// newline
|
|
139
|
+
);
|
|
140
|
+
statements.push(
|
|
141
|
+
outputDeclaration,
|
|
142
|
+
inputDeclaration,
|
|
143
|
+
variableDeclaration
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
const dts = ts.createPrinter().printList(
|
|
147
|
+
ts.ListFormat.SourceFileStatements,
|
|
148
|
+
ts.factory.createNodeArray(statements),
|
|
45
149
|
ts.createSourceFile("types.d.ts", "", ts.ScriptTarget.Latest)
|
|
46
150
|
);
|
|
151
|
+
return `// Generated on ${(/* @__PURE__ */ new Date()).toUTCString()}
|
|
152
|
+
|
|
153
|
+
${dts}`;
|
|
154
|
+
}
|
|
155
|
+
function isValidator(validation) {
|
|
156
|
+
assertSchema(validation !== void 0, 'Found "undefined" validation in tree');
|
|
157
|
+
if (validation === null)
|
|
158
|
+
return false;
|
|
159
|
+
if (typeof validation !== "function" && typeof validation !== "object") {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (Array.isArray(validation))
|
|
163
|
+
return false;
|
|
164
|
+
if ("validate" in validation && typeof validation.validate === "function") {
|
|
165
|
+
return !isValidator(validation.validate);
|
|
166
|
+
} else {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function generateJustusTypeImport(typeName, typeArguments = []) {
|
|
171
|
+
return ts.factory.createImportTypeNode(
|
|
172
|
+
// .................... "import"
|
|
173
|
+
ts.factory.createLiteralTypeNode(
|
|
174
|
+
ts.factory.createStringLiteral("justus")
|
|
175
|
+
// .......... "justus"
|
|
176
|
+
),
|
|
177
|
+
void 0,
|
|
178
|
+
// import assertions
|
|
179
|
+
ts.factory.createIdentifier(typeName),
|
|
180
|
+
// ................. "JustusType"
|
|
181
|
+
typeArguments
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
function generateVariableDeclarationType(validation, validator, references) {
|
|
185
|
+
if (isValidator(validation)) {
|
|
186
|
+
const validatedType = generateTypeNode(validator, references, false);
|
|
187
|
+
return generateJustusTypeImport("Validator", [validatedType]);
|
|
188
|
+
}
|
|
189
|
+
if (validator instanceof ConstantValidator) {
|
|
190
|
+
return generateTypeNode(validator, references, false);
|
|
191
|
+
}
|
|
192
|
+
if (validator instanceof ObjectValidator) {
|
|
193
|
+
const properties = [];
|
|
194
|
+
for (const [key, valueValidator] of validator.validators.entries()) {
|
|
195
|
+
const value = validator.schema[key];
|
|
196
|
+
const type = generateVariableDeclarationType(value, valueValidator, references);
|
|
197
|
+
properties.push(ts.factory.createPropertySignature(
|
|
198
|
+
readonlyModifiers,
|
|
199
|
+
key,
|
|
200
|
+
void 0,
|
|
201
|
+
// no question mark
|
|
202
|
+
type
|
|
203
|
+
));
|
|
204
|
+
}
|
|
205
|
+
if (validator.additionalProperties) {
|
|
206
|
+
const additional = validator.additionalProperties;
|
|
207
|
+
const type = generateVariableDeclarationType(additional, additional, references);
|
|
208
|
+
properties.push(ts.factory.createPropertySignature(
|
|
209
|
+
readonlyModifiers,
|
|
210
|
+
ts.factory.createComputedPropertyName(
|
|
211
|
+
ts.factory.createPropertyAccessExpression(
|
|
212
|
+
ts.factory.createIdentifier("Symbol"),
|
|
213
|
+
"justusAdditionalValidator"
|
|
214
|
+
)
|
|
215
|
+
),
|
|
216
|
+
void 0,
|
|
217
|
+
// no question mark
|
|
218
|
+
type
|
|
219
|
+
));
|
|
220
|
+
}
|
|
221
|
+
return ts.factory.createTypeLiteralNode(properties);
|
|
222
|
+
}
|
|
223
|
+
assertSchema(false, `Unable to generate variable declaration for ${validator.constructor.name}`);
|
|
47
224
|
}
|
|
48
|
-
function
|
|
225
|
+
function generateTypeNodes(validators, references, isInput) {
|
|
226
|
+
const types = /* @__PURE__ */ new Map();
|
|
227
|
+
for (const [name, validator] of validators.entries()) {
|
|
228
|
+
const referenceable = new Map(references);
|
|
229
|
+
if (referenceable.get(validator) === name)
|
|
230
|
+
referenceable.delete(validator);
|
|
231
|
+
types.set(name, generateTypeNode(validator, referenceable, isInput));
|
|
232
|
+
}
|
|
233
|
+
return types;
|
|
234
|
+
}
|
|
235
|
+
function generateTypeNode(validator, references, isInput) {
|
|
49
236
|
const reference = references.get(validator);
|
|
50
237
|
if (reference)
|
|
51
238
|
return ts.factory.createTypeReferenceNode(reference);
|
|
52
239
|
const generator = generators.get(validator) || generators.get(validator.constructor);
|
|
53
240
|
assertSchema(!!generator, `Type generator for "${validator.constructor.name}" not found`);
|
|
54
|
-
const type = generator(validator, references);
|
|
55
|
-
if (!validator.optional)
|
|
241
|
+
const type = generator(validator, references, isInput);
|
|
242
|
+
if (!(validator.optional || isInput && validator.defaultValue !== void 0)) {
|
|
56
243
|
return type;
|
|
244
|
+
}
|
|
57
245
|
if (type === neverType)
|
|
58
246
|
return undefinedType;
|
|
59
247
|
if (ts.isUnionTypeNode(type)) {
|
|
@@ -64,6 +252,7 @@ function generateTypeNode(validator, references) {
|
|
|
64
252
|
var anyType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
|
|
65
253
|
var anyArrayType = ts.factory.createArrayTypeNode(anyType);
|
|
66
254
|
var booleanType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword);
|
|
255
|
+
var dateType = ts.factory.createTypeReferenceNode("Date");
|
|
67
256
|
var numberType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
|
|
68
257
|
var neverType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword);
|
|
69
258
|
var stringType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
|
|
@@ -81,42 +270,54 @@ var recordType = ts.factory.createMappedTypeNode(
|
|
|
81
270
|
void 0
|
|
82
271
|
);
|
|
83
272
|
var optionalKeyword = ts.factory.createToken(ts.SyntaxKind.QuestionToken);
|
|
273
|
+
var exportModifiers = [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)];
|
|
274
|
+
var readonlyModifiers = [ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)];
|
|
84
275
|
registerTypeGenerator(AnyValidator, () => anyType);
|
|
85
276
|
registerTypeGenerator(AnyArrayValidator, () => anyArrayType);
|
|
86
277
|
registerTypeGenerator(AnyNumberValidator, () => numberType);
|
|
87
278
|
registerTypeGenerator(AnyObjectValidator, () => recordType);
|
|
88
279
|
registerTypeGenerator(AnyStringValidator, () => stringType);
|
|
89
|
-
registerTypeGenerator(BooleanValidator, () => booleanType);
|
|
90
280
|
registerTypeGenerator(NeverValidator, () => neverType);
|
|
91
|
-
registerTypeGenerator(
|
|
92
|
-
|
|
93
|
-
registerTypeGenerator(ArrayValidator, (validator, references) => {
|
|
94
|
-
const itemType = generateTypeNode(validator.items, references);
|
|
281
|
+
registerTypeGenerator(ArrayValidator, (validator, references, isInput) => {
|
|
282
|
+
const itemType = generateTypeNode(validator.items, references, isInput);
|
|
95
283
|
return ts.factory.createArrayTypeNode(itemType);
|
|
96
284
|
});
|
|
285
|
+
registerTypeGenerator(BooleanValidator, (validator, _references, isInput) => {
|
|
286
|
+
return isInput && validator.fromString ? ts.factory.createUnionTypeNode([
|
|
287
|
+
booleanType,
|
|
288
|
+
ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("true")),
|
|
289
|
+
ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("false"))
|
|
290
|
+
]) : booleanType;
|
|
291
|
+
});
|
|
97
292
|
registerTypeGenerator(ConstantValidator, (validator) => {
|
|
98
293
|
const literal = typeof validator.constant === "number" ? ts.factory.createNumericLiteral(validator.constant) : typeof validator.constant === "string" ? ts.factory.createStringLiteral(validator.constant) : validator.constant === false ? ts.factory.createFalse() : validator.constant === true ? ts.factory.createTrue() : validator.constant === null ? ts.factory.createNull() : void 0;
|
|
99
294
|
assertSchema(!!literal, `Invalid constant "${validator.constant}"`);
|
|
100
295
|
return ts.factory.createLiteralTypeNode(literal);
|
|
101
296
|
});
|
|
102
|
-
registerTypeGenerator(
|
|
297
|
+
registerTypeGenerator(DateValidator, (validator, _references, isInput) => {
|
|
298
|
+
return isInput ? validator.format === "iso" ? stringType : validator.format === "timestamp" ? numberType : ts.factory.createUnionTypeNode([dateType, numberType, stringType]) : dateType;
|
|
299
|
+
});
|
|
300
|
+
registerTypeGenerator(NumberValidator, (validator, _references, isInput) => {
|
|
301
|
+
if (isInput) {
|
|
302
|
+
return validator.fromString ? ts.factory.createUnionTypeNode([numberType, stringType]) : numberType;
|
|
303
|
+
}
|
|
103
304
|
if (!validator.brand)
|
|
104
305
|
return numberType;
|
|
105
306
|
const signature = ts.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
|
|
106
307
|
const literal = ts.factory.createTypeLiteralNode([signature]);
|
|
107
308
|
return ts.factory.createIntersectionTypeNode([numberType, literal]);
|
|
108
309
|
});
|
|
109
|
-
registerTypeGenerator(OptionalValidator, (validator, references) => {
|
|
110
|
-
return generateTypeNode(validator.validator, references);
|
|
310
|
+
registerTypeGenerator(OptionalValidator, (validator, references, isInput) => {
|
|
311
|
+
return generateTypeNode(validator.validator, references, isInput);
|
|
111
312
|
});
|
|
112
|
-
registerTypeGenerator(StringValidator, (validator) => {
|
|
113
|
-
if (!validator.brand)
|
|
313
|
+
registerTypeGenerator(StringValidator, (validator, _references, isInput) => {
|
|
314
|
+
if (!validator.brand || isInput)
|
|
114
315
|
return stringType;
|
|
115
316
|
const signature = ts.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
|
|
116
317
|
const literal = ts.factory.createTypeLiteralNode([signature]);
|
|
117
318
|
return ts.factory.createIntersectionTypeNode([stringType, literal]);
|
|
118
319
|
});
|
|
119
|
-
registerTypeGenerator(TupleValidator, (validator, references) => {
|
|
320
|
+
registerTypeGenerator(TupleValidator, (validator, references, isInput) => {
|
|
120
321
|
const members = validator.members;
|
|
121
322
|
const { count, first, next } = members.reduce(({ count: count2, first: first2, next: next2 }, { single }, i) => {
|
|
122
323
|
if (!single) {
|
|
@@ -129,35 +330,35 @@ registerTypeGenerator(TupleValidator, (validator, references) => {
|
|
|
129
330
|
}, { count: 0, first: members.length, next: -1 });
|
|
130
331
|
if (count < 2) {
|
|
131
332
|
const types2 = members.map(({ single, validator: validator2 }) => {
|
|
132
|
-
const memberType = generateTypeNode(validator2, references);
|
|
333
|
+
const memberType = generateTypeNode(validator2, references, isInput);
|
|
133
334
|
if (single)
|
|
134
|
-
return generateTypeNode(validator2, references);
|
|
335
|
+
return generateTypeNode(validator2, references, isInput);
|
|
135
336
|
const arrayType = ts.factory.createArrayTypeNode(memberType);
|
|
136
337
|
return ts.factory.createRestTypeNode(arrayType);
|
|
137
338
|
});
|
|
138
339
|
return ts.factory.createTupleTypeNode(types2);
|
|
139
340
|
}
|
|
140
|
-
const before = members.slice(0, first).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
141
|
-
const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
142
|
-
const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
341
|
+
const before = members.slice(0, first).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
342
|
+
const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
343
|
+
const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
143
344
|
const union = ts.factory.createUnionTypeNode(types);
|
|
144
345
|
const array = ts.factory.createArrayTypeNode(union);
|
|
145
346
|
const rest = ts.factory.createRestTypeNode(array);
|
|
146
347
|
return ts.factory.createTupleTypeNode([...before, rest, ...after]);
|
|
147
348
|
});
|
|
148
|
-
registerTypeGenerator(AllOfValidator, (validator, references) => {
|
|
149
|
-
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
|
|
349
|
+
registerTypeGenerator(AllOfValidator, (validator, references, isInput) => {
|
|
350
|
+
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references, isInput));
|
|
150
351
|
return ts.factory.createIntersectionTypeNode(members);
|
|
151
352
|
});
|
|
152
|
-
registerTypeGenerator(OneOfValidator, (validator, references) => {
|
|
153
|
-
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
|
|
353
|
+
registerTypeGenerator(OneOfValidator, (validator, references, isInput) => {
|
|
354
|
+
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references, isInput));
|
|
154
355
|
return ts.factory.createUnionTypeNode(members);
|
|
155
356
|
});
|
|
156
|
-
registerTypeGenerator(ObjectValidator, (validator, references) => {
|
|
357
|
+
registerTypeGenerator(ObjectValidator, (validator, references, isInput) => {
|
|
157
358
|
const properties = [];
|
|
158
359
|
for (const [key, valueValidator] of validator.validators.entries()) {
|
|
159
|
-
const type = generateTypeNode(valueValidator, references);
|
|
160
|
-
const optional = valueValidator.optional;
|
|
360
|
+
const type = generateTypeNode(valueValidator, references, isInput);
|
|
361
|
+
const optional = isInput && valueValidator.defaultValue !== void 0 || valueValidator.optional;
|
|
161
362
|
const signature = ts.factory.createPropertySignature(
|
|
162
363
|
void 0,
|
|
163
364
|
key,
|
|
@@ -167,7 +368,7 @@ registerTypeGenerator(ObjectValidator, (validator, references) => {
|
|
|
167
368
|
properties.push(signature);
|
|
168
369
|
}
|
|
169
370
|
if (validator.additionalProperties) {
|
|
170
|
-
const propertyType = generateTypeNode(validator.additionalProperties, references);
|
|
371
|
+
const propertyType = generateTypeNode(validator.additionalProperties, references, isInput);
|
|
171
372
|
const extra = ts.factory.createMappedTypeNode(
|
|
172
373
|
void 0,
|
|
173
374
|
// readonly
|
|
@@ -188,7 +389,30 @@ registerTypeGenerator(ObjectValidator, (validator, references) => {
|
|
|
188
389
|
return ts.factory.createTypeLiteralNode(properties);
|
|
189
390
|
}
|
|
190
391
|
});
|
|
392
|
+
registerTypeGenerator(EAN13Validator, (_validator, _references, isInput) => {
|
|
393
|
+
if (isInput)
|
|
394
|
+
return ts.factory.createUnionTypeNode([numberType, stringType]);
|
|
395
|
+
const signature = ts.factory.createPropertySignature(void 0, "__ean_13", void 0, neverType);
|
|
396
|
+
const literal = ts.factory.createTypeLiteralNode([signature]);
|
|
397
|
+
return ts.factory.createIntersectionTypeNode([stringType, literal]);
|
|
398
|
+
});
|
|
399
|
+
registerTypeGenerator(UUIDValidator, (_validator, _references, isInput) => {
|
|
400
|
+
if (isInput)
|
|
401
|
+
return stringType;
|
|
402
|
+
const signature = ts.factory.createPropertySignature(void 0, "__uuid", void 0, neverType);
|
|
403
|
+
const literal = ts.factory.createTypeLiteralNode([signature]);
|
|
404
|
+
return ts.factory.createIntersectionTypeNode([stringType, literal]);
|
|
405
|
+
});
|
|
406
|
+
registerTypeGenerator(URLValidator, (_validator, _references, isInput) => {
|
|
407
|
+
const urlType = ts.factory.createTypeReferenceNode("URL");
|
|
408
|
+
if (isInput) {
|
|
409
|
+
return ts.factory.createUnionTypeNode([urlType, stringType]);
|
|
410
|
+
} else {
|
|
411
|
+
return urlType;
|
|
412
|
+
}
|
|
413
|
+
});
|
|
191
414
|
export {
|
|
415
|
+
generateDeclarations,
|
|
192
416
|
generateTypes,
|
|
193
417
|
registerTypeGenerator
|
|
194
418
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/dts-generator.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["count", "first", "next", "types", "validator"]
|
|
4
|
+
"mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB,sBAAsB;AAClD,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,yBAAyB;AAClC,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB,sBAAsB;AAW/C,SAAS,UAAU,GAAa,GAAsB;AACpD,WAAS,GAAGA,IAAQC,IAAiB;AACnC,QAAK,OAAOD,MAAK,YAAYA,MAAK,SAC7B,OAAOC,MAAK,YAAYA,MAAK,OAAQ;AACxC,iBAAW,OAAOD,IAAG;AACnB,YAAI,CAAE,GAAGA,GAAE,GAAG,GAAGC,GAAE,GAAG,CAAC;AAAG,iBAAO;AAAA,MACnC;AACA,iBAAW,OAAOA,IAAG;AAEnB,YAAI,CAAE,GAAGD,GAAE,GAAG,GAAGC,GAAE,GAAG,CAAC;AAAG,iBAAO;AAAA,MACnC;AACA,aAAO;AAAA,IACT,OAAO;AACL,aAAOD,OAAMC;AAAA,IACf;AAAA,EACF;AAEA,SAAO,GAAG,GAAG,CAAC;AAChB;AAuBA,IAAM,aAAa,oBAAI,IAA8C;AAG9D,SAAS,sBACZ,WACA,WACI;AACN,aAAW,IAAI,WAAW,SAAS;AACrC;AAYO,SAAS,cACZ,aACA,UAAmB,OACb;AAER,QAAM,aAAa,oBAAI,IAAuB;AAE9C,QAAM,aAAa,oBAAI,IAAuB;AAG9C,aAAW,CAAE,MAAM,UAAW,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC9D,UAAM,YAAY,aAAa,UAAU;AACzC,eAAW,IAAI,MAAM,SAAS;AAC9B,QAAI,CAAE,WAAW,IAAI,SAAS;AAAG,iBAAW,IAAI,WAAW,IAAI;AAAA,EACjE;AAGA,QAAM,QAAQ,kBAAkB,YAAY,YAAY,OAAO;AAG/D,QAAM,UAAqC,CAAC;AAC5C,aAAW,CAAE,MAAM,IAAK,KAAK,MAAM,QAAQ,GAAG;AAC5C,UAAM,QAAQ,GAAG,QAAQ,2BAA2B,iBAAiB,MAAM,CAAC,GAAG,IAAI;AACnF,YAAQ,KAAK,KAAK;AAAA,EACpB;AAGA,SAAO,GAAG,cAAc,EAAE;AAAA,IACtB,GAAG,WAAW;AAAA,IACd,GAAG,QAAQ,gBAAgB,OAAO;AAAA,IAClC,GAAG,iBAAiB,cAAc,IAAI,GAAG,aAAa,MAAM;AAAA,EAAC;AACnE;AAqBO,SAAS,qBAAqB,aAAiD;AAEpF,QAAM,QAA2D,CAAC;AAElE,QAAM,mBAAmB,oBAAI,IAAuB;AACpD,QAAM,mBAAmB,oBAAI,IAAuB;AAEpD,QAAM,kBAAkB,oBAAI,IAAuB;AACnD,QAAM,kBAAkB,oBAAI,IAAuB;AAGnD,aAAW,CAAE,MAAM,UAAW,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE9D,UAAM,SAAS,cAAc,KAAK,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAC3C,eAAe,KAAK,IAAI,IAAI,KAAK,MAAM,GAAG,GAAG,IAC7C;AAEf,UAAM,SAAS,GAAG,OAAO,MAAM,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC;AACpE,UAAM,QAAQ,GAAG,OAAO,MAAM,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC;AAEnE,UAAM,YAAY,aAAa,UAAU;AAGzC,UAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,CAAC;AAClC,qBAAiB,IAAI,QAAQ,SAAS;AACtC,oBAAgB,IAAI,OAAO,SAAS;AACpC,QAAI,CAAE,iBAAiB,IAAI,SAAS;AAAG,uBAAiB,IAAI,WAAW,MAAM;AAC7E,QAAI,CAAE,gBAAgB,IAAI,SAAS;AAAG,sBAAgB,IAAI,WAAW,KAAK;AAAA,EAC5E;AAGA,QAAM,cAAc,kBAAkB,kBAAkB,kBAAkB,KAAK;AAC/E,QAAM,aAAa,kBAAkB,iBAAiB,iBAAiB,IAAI;AAG3E,QAAM,aAA6B,CAAC;AAGpC,aAAW,EAAE,MAAM,OAAO,OAAO,KAAK,OAAO;AAE3C,UAAM,aAAa,YAAY,IAAI,MAAM;AACzC,UAAM,YAAY,WAAW,IAAI,KAAK;AACtC,UAAM,aAAa,YAAY,IAAI;AACnC,UAAM,YAAY,iBAAiB,IAAI,MAAM;AAC7C,iBAAa,CAAC,CAAE,YAAY,mBAAmB,MAAM,+BAA+B,IAAI,GAAG;AAC3F,iBAAa,CAAC,CAAE,WAAW,kBAAkB,KAAK,+BAA+B,IAAI,GAAG;AACxF,iBAAa,CAAC,CAAE,WAAW,qBAAqB,IAAI,GAAG;AAGvD,UAAM,WAAW,UAAU,WAAW,UAAU;AAGhD,UAAM,aAAa,WAAW,GAAG,QAAQ,wBAAwB,MAAM,IAAI;AAM3E,UAAM,oBAAoB,GAAG,QAAQ,2BAA2B,iBAAiB,QAAQ,CAAC,GAAG,UAAU;AACvG,UAAM,mBAAmB,GAAG,QAAQ,2BAA2B,iBAAiB,OAAO,CAAC,GAAG,UAAU;AAGrG,UAAM,0BAA0B,gCAAgC,YAAY,WAAW,gBAAgB;AAGvG,UAAM,sBACJ,GAAG,QAAQ;AAAA,MACP;AAAA;AAAA,MACA,GAAG,QAAQ,8BAA8B;AAAA,QACvC,GAAG,QAAQ;AAAA,UACP;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA,QACJ;AAAA,MACF,GAAG,GAAG,UAAU,KAAK;AAAA;AAAA,IACzB;AAGF,OAAG;AAAA,MACC;AAAA,MACA,GAAG,WAAW;AAAA,MACd,IAAI,SAAS,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC;AAAA,MACpC;AAAA;AAAA,IACJ;AAEA,OAAG;AAAA,MACC;AAAA,MACA,GAAG,WAAW;AAAA,MACd,+BAA+B,IAAI;AAAA,MACnC;AAAA;AAAA,IACJ;AAEA,OAAG;AAAA,MACC;AAAA,MACA,GAAG,WAAW;AAAA,MACd,2BAA2B,IAAI;AAAA,MAC/B;AAAA;AAAA,IACJ;AAEA,OAAG;AAAA,MACC;AAAA,MACA,GAAG,WAAW;AAAA,MACd,WAAW,IAAI;AAAA,MACf;AAAA;AAAA,IACJ;AAGA,eAAW;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACF;AAGA,QAAM,MAAM,GAAG,cAAc,EAAE;AAAA,IAC3B,GAAG,WAAW;AAAA,IACd,GAAG,QAAQ,gBAAgB,UAAU;AAAA,IACrC,GAAG,iBAAiB,cAAc,IAAI,GAAG,aAAa,MAAM;AAAA,EAAC;AAEjE,SAAO,oBAAmB,oBAAI,KAAK,GAAE,YAAY,CAAC;AAAA;AAAA,EAAO,GAAG;AAC9D;AAOA,SAAS,YAAY,YAA4D;AAC/E,eAAa,eAAe,QAAW,sCAAsC;AAG7E,MAAI,eAAe;AAAM,WAAO;AAChC,MAAK,OAAO,eAAe,cAAgB,OAAO,eAAe,UAAW;AAC1E,WAAO;AAAA,EACT;AAGA,MAAI,MAAM,QAAQ,UAAU;AAAG,WAAO;AAItC,MAAK,cAAc,cAAgB,OAAO,WAAW,aAAa,YAAa;AAC7E,WAAO,CAAE,YAAY,WAAW,QAAQ;AAAA,EAC1C,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAGA,SAAS,yBACL,UACA,gBAA+B,CAAC,GACrB;AACb,SAAO,GAAG,QAAQ;AAAA;AAAA,IACd,GAAG,QAAQ;AAAA,MACP,GAAG,QAAQ,oBAAoB,QAAQ;AAAA;AAAA,IAC3C;AAAA,IACA;AAAA;AAAA,IACA,GAAG,QAAQ,iBAAiB,QAAQ;AAAA;AAAA,IACpC;AAAA,EAAa;AACnB;AAGA,SAAS,gCACL,YACA,WACA,YACW;AASb,MAAI,YAAY,UAAU,GAAG;AAC3B,UAAM,gBAAgB,iBAAiB,WAAW,YAAY,KAAK;AACnE,WAAO,yBAAyB,aAAa,CAAE,aAAc,CAAC;AAAA,EAChE;AAGA,MAAI,qBAAqB,mBAAmB;AAC1C,WAAO,iBAAiB,WAAW,YAAY,KAAK;AAAA,EACtD;AAGA,MAAI,qBAAqB,iBAAiB;AACxC,UAAM,aAAqC,CAAC;AAE5C,eAAW,CAAE,KAAK,cAAe,KAAK,UAAU,WAAW,QAAQ,GAAG;AACpE,YAAM,QAAQ,UAAU,OAAO,GAAG;AAClC,YAAM,OAAO,gCAAgC,OAAO,gBAAgB,UAAU;AAE9E,iBAAW,KAAK,GAAG,QAAQ;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QACA;AAAA,MAAI,CAAC;AAAA,IACX;AAEA,QAAI,UAAU,sBAAsB;AAClC,YAAM,aAAa,UAAU;AAC7B,YAAM,OAAO,gCAAgC,YAAY,YAAY,UAAU;AAE/E,iBAAW,KAAK,GAAG,QAAQ;AAAA,QACvB;AAAA,QACA,GAAG,QAAQ;AAAA,UACP,GAAG,QAAQ;AAAA,YACP,GAAG,QAAQ,iBAAiB,QAAQ;AAAA,YACpC;AAAA,UAA2B;AAAA,QAAC;AAAA,QACpC;AAAA;AAAA,QACA;AAAA,MAAI,CAAC;AAAA,IACX;AAEA,WAAO,GAAG,QAAQ,sBAAsB,UAAU;AAAA,EACpD;AAGA,eAAa,OAAO,+CAA+C,UAAU,YAAY,IAAI,EAAE;AACjG;AAOA,SAAS,kBACL,YACA,YACA,SACwB;AAE1B,QAAM,QAAQ,oBAAI,IAAyB;AAG3C,aAAW,CAAE,MAAM,SAAU,KAAK,WAAW,QAAQ,GAAG;AAItD,UAAM,gBAAgB,IAAI,IAAI,UAAU;AACxC,QAAI,cAAc,IAAI,SAAS,MAAM;AAAM,oBAAc,OAAO,SAAS;AAEzE,UAAM,IAAI,MAAM,iBAAiB,WAAW,eAAe,OAAO,CAAC;AAAA,EACrE;AAGA,SAAO;AACT;AAGA,SAAS,iBACL,WACA,YACA,SACW;AACb,QAAM,YAAY,WAAW,IAAI,SAAS;AAC1C,MAAI;AAAW,WAAO,GAAG,QAAQ,wBAAwB,SAAS;AAElE,QAAM,YAAY,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,UAAU,WAAW;AACnF,eAAa,CAAC,CAAE,WAAW,uBAAuB,UAAU,YAAY,IAAI,aAAa;AACzF,QAAM,OAAO,UAAU,WAAW,YAAY,OAAO;AAIrD,MAAI,EAAE,UAAU,YAAa,WAAY,UAAU,iBAAiB,SAAc;AAChF,WAAO;AAAA,EACT;AAGA,MAAI,SAAS;AAAW,WAAO;AAG/B,MAAI,GAAG,gBAAgB,IAAI,GAAG;AAC5B,WAAO,GAAG,QAAQ,oBAAoB,CAAE,GAAG,KAAK,OAAO,aAAc,CAAC;AAAA,EACxE;AAGA,SAAO,GAAG,QAAQ,oBAAoB,CAAE,MAAM,aAAc,CAAC;AAC/D;AAMA,IAAM,UAAU,GAAG,QAAQ,sBAAsB,GAAG,WAAW,UAAU;AACzE,IAAM,eAAe,GAAG,QAAQ,oBAAoB,OAAO;AAC3D,IAAM,cAAc,GAAG,QAAQ,sBAAsB,GAAG,WAAW,cAAc;AACjF,IAAM,WAAW,GAAG,QAAQ,wBAAwB,MAAM;AAC1D,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,YAAY,GAAG,QAAQ,sBAAsB,GAAG,WAAW,YAAY;AAC7E,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,gBAAgB,GAAG,QAAQ,sBAAsB,GAAG,WAAW,gBAAgB;AACrF,IAAM,aAAa,GAAG,QAAQ;AAAA,EAC1B;AAAA;AAAA,EACA,GAAG,QAAQ,+BAA+B,CAAC,GAAG,OAAO,UAAU;AAAA,EAC/D;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAS;AAGb,IAAM,kBAAkB,GAAG,QAAQ,YAAY,GAAG,WAAW,aAAa;AAE1E,IAAM,kBAAkB,CAAE,GAAG,QAAQ,eAAe,GAAG,WAAW,aAAa,CAAE;AAEjF,IAAM,oBAAoB,CAAE,GAAG,QAAQ,eAAe,GAAG,WAAW,eAAgB,CAAE;AAMtF,sBAAsB,cAAc,MAAM,OAAO;AACjD,sBAAsB,mBAAmB,MAAM,YAAY;AAC3D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,gBAAgB,MAAM,SAAS;AAMrD,sBAAsB,gBAAgB,CAAC,WAAW,YAAY,YAAY;AACxE,QAAM,WAAW,iBAAiB,UAAU,OAAO,YAAY,OAAO;AACtE,SAAO,GAAG,QAAQ,oBAAoB,QAAQ;AAChD,CAAC;AAED,sBAAsB,kBAAkB,CAAC,WAAW,aAAa,YAAY;AAC3E,SAAQ,WAAW,UAAU,aACzB,GAAG,QAAQ,oBAAoB;AAAA,IAC7B;AAAA,IACA,GAAG,QAAQ,sBAAsB,GAAG,QAAQ,oBAAoB,MAAM,CAAC;AAAA,IACvE,GAAG,QAAQ,sBAAsB,GAAG,QAAQ,oBAAoB,OAAO,CAAC;AAAA,EAC1E,CAAC,IACD;AACN,CAAC;AAED,sBAAsB,mBAAmB,CAAC,cAAc;AACtD,QAAM,UACJ,OAAO,UAAU,aAAa,WAAW,GAAG,QAAQ,qBAAqB,UAAU,QAAQ,IAC3F,OAAO,UAAU,aAAa,WAAW,GAAG,QAAQ,oBAAoB,UAAU,QAAQ,IAC1F,UAAU,aAAa,QAAQ,GAAG,QAAQ,YAAY,IACtD,UAAU,aAAa,OAAO,GAAG,QAAQ,WAAW,IACpD,UAAU,aAAa,OAAO,GAAG,QAAQ,WAAW,IACpD;AAEF,eAAa,CAAC,CAAE,SAAS,qBAAqB,UAAU,QAAQ,GAAG;AACnE,SAAO,GAAG,QAAQ,sBAAsB,OAAO;AACjD,CAAC;AAED,sBAAsB,eAAe,CAAC,WAA0B,aAAa,YAAY;AACvF,SAAO,UACI,UAAU,WAAW,QAAQ,aAC7B,UAAU,WAAW,cAAc,aACnC,GAAG,QAAQ,oBAAoB,CAAE,UAAU,YAAY,UAAW,CAAC,IACvE;AACT,CAAC;AAED,sBAAsB,iBAAiB,CAAC,WAA4B,aAAa,YAAY;AAC3F,MAAI,SAAS;AACX,WAAO,UAAU,aACf,GAAG,QAAQ,oBAAoB,CAAE,YAAY,UAAW,CAAC,IACzD;AAAA,EACJ;AAEA,MAAI,CAAE,UAAU;AAAO,WAAO;AAE9B,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,WAAW,UAAU,KAAK,IAAI,QAAW,SAAS;AAClH,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,mBAAmB,CAAC,WAA8B,YAAY,YAAqB;AAGvG,SAAO,iBAAiB,UAAU,WAAW,YAAY,OAAO;AAClE,CAAC;AAED,sBAAsB,iBAAiB,CAAC,WAA4B,aAAa,YAAY;AAC3F,MAAK,CAAE,UAAU,SAAW;AAAU,WAAO;AAE7C,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,WAAW,UAAU,KAAK,IAAI,QAAW,SAAS;AAClH,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAgC,YAAY,YAAY;AAC7F,QAAM,UAAU,UAAU;AAG1B,QAAM,EAAE,OAAO,OAAO,KAAK,IACvB,QAAQ,OAAO,CAAC,EAAE,OAAAC,QAAO,OAAAC,QAAO,MAAAC,MAAK,GAAG,EAAE,OAAO,GAAG,MAAM;AACxD,QAAI,CAAE,QAAQ;AACZ,UAAI,IAAID;AAAO,QAAAA,SAAQ;AACvB,MAAAC,QAAO,IAAI;AACX,MAAAF,UAAS;AAAA,IACX;AACA,WAAO,EAAE,OAAAA,QAAO,OAAAC,QAAO,MAAAC,MAAK;AAAA,EAC9B,GAAG,EAAE,OAAO,GAAG,OAAO,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAGpD,MAAI,QAAQ,GAAG;AACb,UAAMC,SAAQ,QAAQ,IAAI,CAAC,EAAE,QAAQ,WAAAC,WAAU,MAAM;AACnD,YAAM,aAAa,iBAAiBA,YAAW,YAAY,OAAO;AAElE,UAAI;AAAQ,eAAO,iBAAiBA,YAAW,YAAY,OAAO;AAElE,YAAM,YAAY,GAAG,QAAQ,oBAAoB,UAAU;AAC3D,aAAO,GAAG,QAAQ,mBAAmB,SAAS;AAAA,IAChD,CAAC;AAED,WAAO,GAAG,QAAQ,oBAAoBD,MAAK;AAAA,EAC7C;AAIA,QAAM,SAAS,QAAQ,MAAM,GAAG,KAAK,EAChC,IAAI,CAAC,EAAE,WAAAC,WAAU,MAAM,iBAAiBA,YAAW,YAAY,OAAO,CAAC;AAC5E,QAAM,QAAQ,QAAQ,MAAM,OAAO,IAAI,EAClC,IAAI,CAAC,EAAE,WAAAA,WAAU,MAAM,iBAAiBA,YAAW,YAAY,OAAO,CAAC;AAC5E,QAAM,QAAQ,QAAQ,MAAM,IAAI,EAC3B,IAAI,CAAC,EAAE,WAAAA,WAAU,MAAM,iBAAiBA,YAAW,YAAY,OAAO,CAAC;AAE5E,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,QAAM,OAAO,GAAG,QAAQ,mBAAmB,KAAK;AAEhD,SAAO,GAAG,QAAQ,oBAAoB,CAAE,GAAG,QAAQ,MAAM,GAAG,KAAM,CAAC;AACrE,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAW,YAAY,YAAY;AACxE,QAAM,UAAU,UAAU,WAAW,IAAI,CAACA,eAAc,iBAAiBA,YAAW,YAAY,OAAO,CAAC;AACxG,SAAO,GAAG,QAAQ,2BAA2B,OAAO;AACtD,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAW,YAAY,YAAY;AACxE,QAAM,UAAU,UAAU,WAAW,IAAI,CAACA,eAAc,iBAAiBA,YAAW,YAAY,OAAO,CAAC;AACxG,SAAO,GAAG,QAAQ,oBAAoB,OAAO;AAC/C,CAAC;AAED,sBAAsB,iBAAiB,CAAC,WAAW,YAAY,YAAY;AACzE,QAAM,aAAqC,CAAC;AAE5C,aAAW,CAAE,KAAK,cAAe,KAAK,UAAU,WAAW,QAAQ,GAAG;AACpE,UAAM,OAAO,iBAAiB,gBAAgB,YAAY,OAAO;AAIjE,UAAM,WAAY,WAAW,eAAe,iBAAiB,UAC5C,eAAe;AAEhC,UAAM,YAAY,GAAG,QAAQ;AAAA,MACzB;AAAA,MACA;AAAA,MACA,WAAW,kBAAkB;AAAA,MAC7B;AAAA,IAAI;AAER,eAAW,KAAK,SAAS;AAAA,EAC3B;AAEA,MAAI,UAAU,sBAAsB;AAClC,UAAM,eAAe,iBAAiB,UAAU,sBAAsB,YAAY,OAAO;AAEzF,UAAM,QAAQ,GAAG,QAAQ;AAAA,MACrB;AAAA;AAAA,MACA,GAAG,QAAQ,+BAA+B,CAAC,GAAG,OAAO,UAAU;AAAA,MAC/D;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,IAAS;AAEb,QAAI,WAAW,UAAU;AAAG,aAAO;AAEnC,UAAM,OAAO,GAAG,QAAQ,sBAAsB,UAAU;AACxD,WAAO,GAAG,QAAQ,2BAA2B,CAAE,MAAM,KAAM,CAAC;AAAA,EAC9D,OAAO;AACL,WAAO,GAAG,QAAQ,sBAAsB,UAAU;AAAA,EACpD;AACF,CAAC;AAID,sBAAsB,gBAAgB,CAAC,YAAY,aAAa,YAAY;AAC1E,MAAI;AAAS,WAAO,GAAG,QAAQ,oBAAoB,CAAE,YAAY,UAAW,CAAC;AAE7E,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,YAAY,QAAW,SAAS;AAChG,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,eAAe,CAAC,YAAY,aAAa,YAAY;AACzE,MAAI;AAAS,WAAO;AAEpB,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,UAAU,QAAW,SAAS;AAC9F,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,cAAc,CAAC,YAAY,aAAa,YAAY;AACxE,QAAM,UAAU,GAAG,QAAQ,wBAAwB,KAAK;AACxD,MAAI,SAAS;AACX,WAAO,GAAG,QAAQ,oBAAoB,CAAE,SAAS,UAAW,CAAC;AAAA,EAC/D,OAAO;AACL,WAAO;AAAA,EACT;AACF,CAAC;",
|
|
5
|
+
"names": ["a", "b", "count", "first", "next", "types", "validator"]
|
|
6
6
|
}
|
package/dist/extra/uuid.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extra/uuid.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,8BAAoC;AAAA,EACrE,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,UAAU,CAAC;AAAA,EAC5D;AAAA,EAGA,SAAS,OAAwB;AAC/B,WAAO,MAAM,SAAS,KAAK,EAAE,YAAY;AAAA,EAC3C;AACF;AAEO,IAAM,OAAO,IAAI,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/extra/uuid.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const UUID_EXPR: RegExp;
|
|
|
3
3
|
export type UUIDString = string & {
|
|
4
4
|
__uuid: never;
|
|
5
5
|
};
|
|
6
|
-
export declare class UUIDValidator extends StringValidator<UUIDString> {
|
|
6
|
+
export declare class UUIDValidator extends StringValidator<UUIDString, string> {
|
|
7
7
|
constructor();
|
|
8
8
|
validate(value: unknown): UUIDString;
|
|
9
9
|
}
|
package/dist/extra/uuid.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extra/uuid.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,uBAAuB;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,
|
|
4
|
+
"mappings": ";AAAA,SAAS,uBAAuB;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,gBAAoC;AAAA,EACrE,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,UAAU,CAAC;AAAA,EAC5D;AAAA,EAGA,SAAS,OAAwB;AAC/B,WAAO,MAAM,SAAS,KAAK,EAAE,YAAY;AAAA,EAC3C;AACF;AAEO,IAAM,OAAO,IAAI,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/types.cjs
CHANGED
|
@@ -38,6 +38,7 @@ var defaultValidationOptions = {
|
|
|
38
38
|
function makeValidatorFactory(validator, factory) {
|
|
39
39
|
return Object.assign(factory, {
|
|
40
40
|
optional: validator.optional,
|
|
41
|
+
defaultValue: validator.defaultValue,
|
|
41
42
|
validate: validator.validate.bind(validator),
|
|
42
43
|
[Symbol.iterator]: validator[Symbol.iterator].bind(validator),
|
|
43
44
|
[Symbol.justusValidator]: validator
|
|
@@ -45,7 +46,8 @@ function makeValidatorFactory(validator, factory) {
|
|
|
45
46
|
}
|
|
46
47
|
var AbstractValidator = class {
|
|
47
48
|
[Symbol.justusValidator] = this;
|
|
48
|
-
optional =
|
|
49
|
+
optional = false;
|
|
50
|
+
defaultValue = void 0;
|
|
49
51
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
50
52
|
*[Symbol.iterator]() {
|
|
51
53
|
yield { [Symbol.justusRestValidator]: this };
|
package/dist/types.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAkCO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,cAAc,UAAU;AAAA,IACxB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACwD;AAAA,EAC7D,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAoB;AAAA,EACpB,eAA8B;AAAA;AAAA,EAM9B,EAAG,OAAO,QAAQ,IAAyC;AACzD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -29,7 +29,17 @@ export declare const defaultValidationOptions: Readonly<Required<ValidationOptio
|
|
|
29
29
|
*/
|
|
30
30
|
export interface Validator<T = any, I = T> extends Iterable<TupleRestParameter<T, I>> {
|
|
31
31
|
[Symbol.justusValidator]: this;
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* A flag indicating whether the type being validated is _optional_ (the input
|
|
34
|
+
* can be `undefined`) or not (default: `false`).
|
|
35
|
+
*/
|
|
36
|
+
optional: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The _default_ replaced by this `Validator` when the input is `undefined`.
|
|
39
|
+
*
|
|
40
|
+
* This is used in conjunction with the `optional` flag.
|
|
41
|
+
*/
|
|
42
|
+
defaultValue: T | undefined;
|
|
33
43
|
/** Validate a _value_ and optionally convert it to the required `Type` */
|
|
34
44
|
validate(value: unknown, options?: ValidationOptions | undefined): T;
|
|
35
45
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
@@ -48,7 +58,8 @@ export declare function makeValidatorFactory<V extends Validator, F extends (...
|
|
|
48
58
|
*/
|
|
49
59
|
export declare abstract class AbstractValidator<T, I = T> implements Validator<T, I>, Iterable<TupleRestParameter<T, I>> {
|
|
50
60
|
[Symbol.justusValidator]: this;
|
|
51
|
-
optional
|
|
61
|
+
optional: boolean;
|
|
62
|
+
defaultValue: T | undefined;
|
|
52
63
|
/** Validate a _value_ and optionally convert it to the required `Type` */
|
|
53
64
|
abstract validate(value: unknown, options?: ValidationOptions | undefined): T;
|
|
54
65
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
package/dist/types.mjs
CHANGED
|
@@ -12,6 +12,7 @@ var defaultValidationOptions = {
|
|
|
12
12
|
function makeValidatorFactory(validator, factory) {
|
|
13
13
|
return Object.assign(factory, {
|
|
14
14
|
optional: validator.optional,
|
|
15
|
+
defaultValue: validator.defaultValue,
|
|
15
16
|
validate: validator.validate.bind(validator),
|
|
16
17
|
[Symbol.iterator]: validator[Symbol.iterator].bind(validator),
|
|
17
18
|
[Symbol.justusValidator]: validator
|
|
@@ -19,7 +20,8 @@ function makeValidatorFactory(validator, factory) {
|
|
|
19
20
|
}
|
|
20
21
|
var AbstractValidator = class {
|
|
21
22
|
[Symbol.justusValidator] = this;
|
|
22
|
-
optional =
|
|
23
|
+
optional = false;
|
|
24
|
+
defaultValue = void 0;
|
|
23
25
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
24
26
|
*[Symbol.iterator]() {
|
|
25
27
|
yield { [Symbol.justusRestValidator]: this };
|
package/dist/types.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;
|
|
4
|
+
"mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAkCO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,cAAc,UAAU;AAAA,IACxB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACwD;AAAA,EAC7D,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAoB;AAAA,EACpB,eAA8B;AAAA;AAAA,EAM9B,EAAG,OAAO,QAAQ,IAAyC;AACzD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utilities.cjs
CHANGED
|
@@ -23,8 +23,10 @@ __export(utilities_exports, {
|
|
|
23
23
|
getValidator: () => getValidator
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(utilities_exports);
|
|
26
|
+
var import_errors = require("./errors.cjs");
|
|
26
27
|
var import_registry = require("./registry.cjs");
|
|
27
28
|
function getValidator(validation) {
|
|
29
|
+
(0, import_errors.assertSchema)(validation !== void 0, "No validator for undefined validation");
|
|
28
30
|
if (validation === null)
|
|
29
31
|
return new (import_registry.registry.get("constant"))(null);
|
|
30
32
|
if (validation[Symbol.justusValidator]) {
|
package/dist/utilities.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAyB;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,sBAAyB;AASlB,SAAS,aAAa,YAAmC;AAC9D,kCAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
import type { Validation, Validator } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Return the `Validator` for the given `Validation`.
|
|
4
|
-
*
|
|
5
|
-
* When `validation` is `undefined` it will return a `Validator<any>`,
|
|
6
|
-
*/
|
|
2
|
+
/** Return the `Validator` for the given `Validation` */
|
|
7
3
|
export declare function getValidator(validation: Validation): Validator;
|
package/dist/utilities.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// utilities.ts
|
|
2
|
+
import { assertSchema } from "./errors.mjs";
|
|
2
3
|
import { registry } from "./registry.mjs";
|
|
3
4
|
function getValidator(validation) {
|
|
5
|
+
assertSchema(validation !== void 0, "No validator for undefined validation");
|
|
4
6
|
if (validation === null)
|
|
5
7
|
return new (registry.get("constant"))(null);
|
|
6
8
|
if (validation[Symbol.justusValidator]) {
|
package/dist/utilities.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,gBAAgB;
|
|
4
|
+
"mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AASlB,SAAS,aAAa,YAAmC;AAC9D,eAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|