skir-typescript-gen 0.0.1 → 0.0.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/index.d.ts.map +1 -1
- package/dist/index.js +147 -32
- package/dist/index.js.map +1 -1
- package/dist/record_info.d.ts +0 -2
- package/dist/record_info.d.ts.map +1 -1
- package/dist/record_info.js +0 -3
- package/dist/record_info.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +169 -42
- package/src/record_info.ts +0 -5
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAQd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,QAAA,MAAM,MAAM;;;iBAOV,CAAC;AAEH,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAErC,cAAM,uBAAwB,YAAW,aAAa,CAAC,MAAM,CAAC;IAC5D,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,UAAU;;;sBAAU;IAC7B,QAAQ,CAAC,OAAO,WAAW;IAE3B,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM;CAyBvE;AAg3BD,eAAO,MAAM,SAAS,yBAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -74,7 +74,7 @@ class TsModuleCodeGenerator {
|
|
|
74
74
|
"${this.inModule.path}",
|
|
75
75
|
[\n`);
|
|
76
76
|
for (const recordLocation of this.inModule.records) {
|
|
77
|
-
this.
|
|
77
|
+
this.pushJsonLike(this.getRecordSpec(recordLocation));
|
|
78
78
|
this.push(",\n");
|
|
79
79
|
}
|
|
80
80
|
this.push(`
|
|
@@ -167,7 +167,12 @@ class TsModuleCodeGenerator {
|
|
|
167
167
|
writeFrozenClassForStruct(struct) {
|
|
168
168
|
const { fileType } = this;
|
|
169
169
|
const { className } = struct;
|
|
170
|
-
this.
|
|
170
|
+
this.pushDocstring([
|
|
171
|
+
this.getDocTextForDocstring(struct.doc),
|
|
172
|
+
`\nDeeply immutable. If you need mutability, use \`${className.type}.Mutable\`.`,
|
|
173
|
+
className.isNested ? `\n@alias ${className.type}` : "",
|
|
174
|
+
]);
|
|
175
|
+
this.push(!className.isNested ? "export " : "");
|
|
171
176
|
if (fileType === ".d.ts") {
|
|
172
177
|
this.push("declare ");
|
|
173
178
|
}
|
|
@@ -180,18 +185,31 @@ class TsModuleCodeGenerator {
|
|
|
180
185
|
declarePropertiesOfFrozenClass(struct) {
|
|
181
186
|
const { className, fields, indexableFields } = struct;
|
|
182
187
|
this.push(`
|
|
188
|
+
/**
|
|
189
|
+
* Creates a new instance of \`${className.type}\`.
|
|
190
|
+
*
|
|
191
|
+
* You must specify all the fields unless you use \`create<"partial">({...})>\`,
|
|
192
|
+
* in which case missing fields are set to their default values.
|
|
193
|
+
*/
|
|
183
194
|
static create<_Wholeness extends "whole" | "partial" = "whole">(
|
|
184
195
|
initializer: ${className.type}.Initializer<_Wholeness>
|
|
185
196
|
): ${className.type};\n\n`);
|
|
186
197
|
this.push("private constructor();\n\n");
|
|
187
198
|
for (const field of fields) {
|
|
199
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
188
200
|
this.push(`readonly ${field.property}: ${field.tsTypes.frozen};\n`);
|
|
189
201
|
}
|
|
190
202
|
this.pushEol();
|
|
191
203
|
if (indexableFields.length) {
|
|
192
204
|
for (const indexableField of indexableFields) {
|
|
193
205
|
const { searchMethodName } = indexableField;
|
|
194
|
-
const { keyType, frozenValueType, searchMethodParamName } = indexableField.indexable;
|
|
206
|
+
const { keyExpression, keyType, frozenValueType, searchMethodParamName, } = indexableField.indexable;
|
|
207
|
+
this.pushDocstring([
|
|
208
|
+
`Searches for an item of \`${indexableField.property}\` by its key.`,
|
|
209
|
+
`The key of an item \`v\` is \`${keyExpression}\`.`,
|
|
210
|
+
"If multiple items share the same key, the last occurrence is returned.",
|
|
211
|
+
"Returns `undefined` if the key was not found.",
|
|
212
|
+
]);
|
|
195
213
|
this.push(`${searchMethodName}(`);
|
|
196
214
|
this.push(`${searchMethodParamName}: ${keyType}`);
|
|
197
215
|
this.push(`): ${frozenValueType} | undefined;\n`);
|
|
@@ -199,12 +217,19 @@ class TsModuleCodeGenerator {
|
|
|
199
217
|
this.pushEol();
|
|
200
218
|
}
|
|
201
219
|
this.push(`
|
|
220
|
+
/** Returns this instance (no-op). */
|
|
202
221
|
toFrozen(): this;
|
|
222
|
+
|
|
223
|
+
/** Returns a mutable shallow copy of this instance. */
|
|
203
224
|
toMutable(): ${className.type}.Mutable;
|
|
204
225
|
|
|
226
|
+
/** Default instance with all fields set to their default values. */
|
|
205
227
|
static readonly DEFAULT: ${className.type};
|
|
228
|
+
|
|
229
|
+
/** Serializer for \`${className.type}\` instances. */
|
|
206
230
|
static readonly serializer: $.Serializer<${className.type}>;
|
|
207
231
|
|
|
232
|
+
/** Mutable version of this class. */
|
|
208
233
|
static readonly Mutable: typeof ${className.value}_Mutable;\n`);
|
|
209
234
|
this.declareNestedClasses(struct.nestedRecords);
|
|
210
235
|
this.pushEol();
|
|
@@ -213,6 +238,7 @@ class TsModuleCodeGenerator {
|
|
|
213
238
|
this.push("private readonly FROZEN: undefined;\n");
|
|
214
239
|
}
|
|
215
240
|
declareNestedClasses(nestedKeys) {
|
|
241
|
+
this.pushEol();
|
|
216
242
|
const { typeSpeller } = this;
|
|
217
243
|
// Export the constructor of every nested class as a property of this class.
|
|
218
244
|
for (const nestedKey of nestedKeys) {
|
|
@@ -224,15 +250,24 @@ class TsModuleCodeGenerator {
|
|
|
224
250
|
declareMutableClassForStruct(struct) {
|
|
225
251
|
const { fileType } = this;
|
|
226
252
|
const { className, fields, fieldsWithMutableGetter } = struct;
|
|
227
|
-
this.
|
|
253
|
+
this.pushDocstring([
|
|
254
|
+
`Mutable version of \`${className.type}\`.\n`,
|
|
255
|
+
`@alias ${className.type}.Mutable`,
|
|
256
|
+
]);
|
|
228
257
|
if (fileType === ".d.ts") {
|
|
229
258
|
this.push("declare ");
|
|
230
259
|
}
|
|
231
260
|
this.push(`class ${className.value}_Mutable {\n`);
|
|
232
261
|
this.push(`
|
|
262
|
+
/**
|
|
263
|
+
* Creates a new mutable instance.
|
|
264
|
+
*
|
|
265
|
+
* Fields not specified in \`initializer\` will be set to their default values.
|
|
266
|
+
*/
|
|
233
267
|
constructor(initializer?: ${className.type}.Initializer<"partial">);\n\n`);
|
|
234
268
|
// Declare the fields.
|
|
235
269
|
for (const field of fields) {
|
|
270
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
236
271
|
const type = field.tsTypes["maybe-mutable"];
|
|
237
272
|
this.push(`${field.property}: ${type};\n`);
|
|
238
273
|
}
|
|
@@ -244,9 +279,8 @@ class TsModuleCodeGenerator {
|
|
|
244
279
|
}
|
|
245
280
|
this.pushEol();
|
|
246
281
|
}
|
|
247
|
-
this.
|
|
248
|
-
|
|
249
|
-
toMutable(): this;\n`);
|
|
282
|
+
this.pushDocstring("Returns a deeply-immutable copy of this instance.");
|
|
283
|
+
this.push(`toFrozen(): ${className.type};`);
|
|
250
284
|
this.pushEol();
|
|
251
285
|
this.push("readonly [$._INITIALIZER]: ");
|
|
252
286
|
this.push(`${className.type}.Initializer | undefined;\n`);
|
|
@@ -255,7 +289,12 @@ class TsModuleCodeGenerator {
|
|
|
255
289
|
writeClassForEnum(enumInfo) {
|
|
256
290
|
const { fileType } = this;
|
|
257
291
|
const { className } = enumInfo;
|
|
258
|
-
this.
|
|
292
|
+
this.pushDocstring([
|
|
293
|
+
this.getDocTextForDocstring(enumInfo.doc),
|
|
294
|
+
"\nDeeply immutable.\n",
|
|
295
|
+
className.isNested ? `@alias ${className.type}` : "",
|
|
296
|
+
]);
|
|
297
|
+
this.push(!className.isNested ? "export " : "");
|
|
259
298
|
if (fileType === ".d.ts") {
|
|
260
299
|
this.push("declare ");
|
|
261
300
|
}
|
|
@@ -269,23 +308,53 @@ class TsModuleCodeGenerator {
|
|
|
269
308
|
}
|
|
270
309
|
}
|
|
271
310
|
declarePropertiesOfClassForEnum(enumInfo) {
|
|
272
|
-
const { className, constantVariants
|
|
311
|
+
const { className, constantVariants, onlyConstants, wrapperVariants } = enumInfo;
|
|
273
312
|
// Declare the enum constants.
|
|
274
|
-
for (const
|
|
275
|
-
this.
|
|
313
|
+
for (const variant of constantVariants) {
|
|
314
|
+
this.pushDocstring(variant.number === 0
|
|
315
|
+
? [
|
|
316
|
+
`Constant indicating an unknown \`${className.type}\` (kind: '?').\n`,
|
|
317
|
+
`Default value for fields of type \`${className.type}\`.`,
|
|
318
|
+
]
|
|
319
|
+
: this.getDocTextForDocstring(variant.doc));
|
|
320
|
+
this.push(`static readonly ${variant.property}: ${className.type};\n`);
|
|
276
321
|
}
|
|
277
322
|
this.pushEol();
|
|
278
323
|
// Declare the `create` function.
|
|
324
|
+
{
|
|
325
|
+
const docLines = [
|
|
326
|
+
`Gets or creates a \`${className.type}\` instance from the given initializer.`,
|
|
327
|
+
];
|
|
328
|
+
if (!onlyConstants) {
|
|
329
|
+
docLines.push("To create wrapper variants, use `create({kind: ..., value: ...})`.");
|
|
330
|
+
docLines.push("Possible values for `kind` are: " +
|
|
331
|
+
wrapperVariants.map((v) => `'${v.name}'`).join(", ") +
|
|
332
|
+
".");
|
|
333
|
+
}
|
|
334
|
+
for (const variant of wrapperVariants) {
|
|
335
|
+
if (variant.doc.text.length <= 0) {
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
const variantDoc = this.getDocTextForDocstring(variant.doc);
|
|
339
|
+
docLines.push(`Doc for '${variant.name}': ${variantDoc}`);
|
|
340
|
+
}
|
|
341
|
+
this.pushDocstring(docLines);
|
|
342
|
+
}
|
|
279
343
|
this.push(`static create<_Wholeness extends "whole" | "partial" = "whole">(
|
|
280
344
|
initializer: ${className.type}.Initializer<_Wholeness>
|
|
281
345
|
): ${className.type};\n\n`);
|
|
282
|
-
// Declare the `
|
|
283
|
-
this.
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
346
|
+
// Declare the `union`.
|
|
347
|
+
this.pushEol();
|
|
348
|
+
this.pushDocstring([
|
|
349
|
+
"This instance as the union of all the variant types.\n",
|
|
350
|
+
"Use `union.kind` to determine the variant held by this instance.",
|
|
351
|
+
onlyConstants
|
|
352
|
+
? ""
|
|
353
|
+
: "If it's a wrapper variant, 'union.value' is the wrapped value.",
|
|
354
|
+
]);
|
|
355
|
+
this.push(`declare readonly union: ${className.type}.UnionView;\n`);
|
|
288
356
|
this.pushEol();
|
|
357
|
+
this.pushDocstring(`Serializer for \`${className.type}\` instances.`);
|
|
289
358
|
this.push(`static readonly serializer: $.Serializer<${className.type}>;\n`);
|
|
290
359
|
this.declareNestedClasses(enumInfo.nestedRecords);
|
|
291
360
|
}
|
|
@@ -314,8 +383,13 @@ class TsModuleCodeGenerator {
|
|
|
314
383
|
this.push("}\n}\n\n");
|
|
315
384
|
}
|
|
316
385
|
declareMutableGetter(field) {
|
|
386
|
+
this.pushDocstring([
|
|
387
|
+
`If the value of \`${field.property}\` is already mutable, returns it as-is.`,
|
|
388
|
+
`Otherwise, makes a mutable copy, assigns it back to \`${field.property}\` and returns it.`,
|
|
389
|
+
]);
|
|
317
390
|
const { mutable } = field.tsTypes;
|
|
318
391
|
this.push(`get ${field.mutableGetterName}(): ${mutable};\n`);
|
|
392
|
+
this.pushEol();
|
|
319
393
|
}
|
|
320
394
|
defineInitFunctionForStruct(record) {
|
|
321
395
|
const { typeSpeller } = this;
|
|
@@ -358,6 +432,7 @@ class TsModuleCodeGenerator {
|
|
|
358
432
|
this.push('interface _Initializer<_Wholeness extends "whole" | "partial"> {\n');
|
|
359
433
|
for (const field of fields) {
|
|
360
434
|
const type = field.tsTypes.initializer;
|
|
435
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
361
436
|
this.push(`readonly ${field.property}: ${type};\n`);
|
|
362
437
|
}
|
|
363
438
|
this.push("}\n\n");
|
|
@@ -372,28 +447,27 @@ class TsModuleCodeGenerator {
|
|
|
372
447
|
}
|
|
373
448
|
// Declare the Mutable and OrMutable types.
|
|
374
449
|
this.push(`
|
|
450
|
+
/** Mutable version of ${className.type}. */
|
|
375
451
|
export type Mutable = ${className.value}_Mutable;
|
|
376
452
|
export type OrMutable = ${className.name} | Mutable;\n\n`);
|
|
377
453
|
}
|
|
378
454
|
declareEnumSpecificTypes(enumInfo) {
|
|
379
|
-
const { initializerType, kindType,
|
|
455
|
+
const { initializerType, kindType, unionViewType } = enumInfo;
|
|
456
|
+
this.pushDocstring("Identifies a variant.");
|
|
380
457
|
this.push(`export type Kind = ${kindType};\n\n`);
|
|
381
|
-
if (!onlyConstants) {
|
|
382
|
-
this.push(`export type Value = ${enumInfo.valueType};\n\n`);
|
|
383
|
-
}
|
|
384
458
|
this.push(`export type Initializer<_Wholeness extends "whole" | "partial" = "whole"> = ${initializerType};\n\n`);
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
}
|
|
459
|
+
this.pushDocstring(`View of a \`${enumInfo.className.type}\` as a union type.`);
|
|
460
|
+
this.push(`export type UnionView = ${unionViewType};\n\n`);
|
|
388
461
|
}
|
|
389
462
|
writeMethod(method) {
|
|
390
463
|
const { fileType, typeSpeller } = this;
|
|
391
|
-
const { number, requestType, responseType } = method;
|
|
464
|
+
const { doc, number, requestType, responseType } = method;
|
|
392
465
|
const name = method.name.text;
|
|
393
466
|
const varName = maybeEscapeTopLevelUpperCaseName(name);
|
|
394
467
|
if (fileType === ".d.ts") {
|
|
395
468
|
const reqTsType = typeSpeller.getTsType(requestType, "frozen");
|
|
396
469
|
const respTsType = typeSpeller.getTsType(responseType, "frozen");
|
|
470
|
+
this.pushDocstring(this.getDocTextForDocstring(doc));
|
|
397
471
|
this.push(`
|
|
398
472
|
export const ${varName}: $.Method<${reqTsType}, ${respTsType}>;\n\n`);
|
|
399
473
|
}
|
|
@@ -406,7 +480,7 @@ class TsModuleCodeGenerator {
|
|
|
406
480
|
number: ${number},
|
|
407
481
|
requestSerializer: ${reqSerializer},
|
|
408
482
|
responseSerializer: ${respSerializer},
|
|
409
|
-
doc: ${JSON.stringify(
|
|
483
|
+
doc: ${JSON.stringify(doc.text)},
|
|
410
484
|
};\n\n`);
|
|
411
485
|
}
|
|
412
486
|
}
|
|
@@ -532,7 +606,7 @@ class TsModuleCodeGenerator {
|
|
|
532
606
|
}
|
|
533
607
|
throw TypeError();
|
|
534
608
|
}
|
|
535
|
-
|
|
609
|
+
pushJsonLike(jsonLike) {
|
|
536
610
|
if (jsonLike instanceof JavascriptIdentifier) {
|
|
537
611
|
this.push(jsonLike.identifier);
|
|
538
612
|
}
|
|
@@ -542,7 +616,7 @@ class TsModuleCodeGenerator {
|
|
|
542
616
|
else if (Array.isArray(jsonLike)) {
|
|
543
617
|
this.push("[\n");
|
|
544
618
|
for (const item of jsonLike) {
|
|
545
|
-
this.
|
|
619
|
+
this.pushJsonLike(item);
|
|
546
620
|
this.push(",\n");
|
|
547
621
|
}
|
|
548
622
|
this.push("]");
|
|
@@ -554,7 +628,7 @@ class TsModuleCodeGenerator {
|
|
|
554
628
|
continue;
|
|
555
629
|
}
|
|
556
630
|
this.push(`${name}: `);
|
|
557
|
-
this.
|
|
631
|
+
this.pushJsonLike(value);
|
|
558
632
|
this.push(",\n");
|
|
559
633
|
}
|
|
560
634
|
this.push("}");
|
|
@@ -565,6 +639,7 @@ class TsModuleCodeGenerator {
|
|
|
565
639
|
const name = constant.name.text;
|
|
566
640
|
if (fileType === ".d.ts") {
|
|
567
641
|
const type = typeSpeller.getTsType(constant.type, "frozen");
|
|
642
|
+
this.pushDocstring(this.getDocTextForDocstring(constant.doc));
|
|
568
643
|
this.push(`export const ${name}: ${type};\n\n`);
|
|
569
644
|
}
|
|
570
645
|
else {
|
|
@@ -575,6 +650,40 @@ class TsModuleCodeGenerator {
|
|
|
575
650
|
this.push(");\n\n");
|
|
576
651
|
}
|
|
577
652
|
}
|
|
653
|
+
getDocTextForDocstring(doc) {
|
|
654
|
+
return doc.pieces
|
|
655
|
+
.map((p) => {
|
|
656
|
+
switch (p.kind) {
|
|
657
|
+
case "text":
|
|
658
|
+
return p.text;
|
|
659
|
+
case "reference":
|
|
660
|
+
return `\`${p.referenceRange.text.slice(1, -1)}\``;
|
|
661
|
+
}
|
|
662
|
+
})
|
|
663
|
+
.join("");
|
|
664
|
+
}
|
|
665
|
+
pushDocstring(textOrLines) {
|
|
666
|
+
const text = (typeof textOrLines === "string" ? textOrLines : textOrLines.join("\n"))
|
|
667
|
+
.replace(/^\s*\n+/g, "")
|
|
668
|
+
.replace(/\n+\s*$/g, "")
|
|
669
|
+
.replace(/\n{3,}/g, "\n\n");
|
|
670
|
+
if (text.length <= 0) {
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
const lines = text.split("\n");
|
|
674
|
+
const escape = (line) => line.replace(/\*\//g, "* /");
|
|
675
|
+
if (lines.length === 1) {
|
|
676
|
+
const line = escape(lines[0]);
|
|
677
|
+
this.push(`/** ${line} */\n`);
|
|
678
|
+
}
|
|
679
|
+
else {
|
|
680
|
+
this.push("/**\n");
|
|
681
|
+
for (const line of lines.map(escape)) {
|
|
682
|
+
this.push(` * ${line}\n`);
|
|
683
|
+
}
|
|
684
|
+
this.push(" */\n");
|
|
685
|
+
}
|
|
686
|
+
}
|
|
578
687
|
push(code) {
|
|
579
688
|
this.code += code.trimStart();
|
|
580
689
|
}
|
|
@@ -629,9 +738,15 @@ class TsModuleCodeGenerator {
|
|
|
629
738
|
break;
|
|
630
739
|
}
|
|
631
740
|
}
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
741
|
+
let indent = indentUnit.repeat(contextStack.length);
|
|
742
|
+
if (line.startsWith("*")) {
|
|
743
|
+
// Docstring: make sure the stars are aligned.
|
|
744
|
+
indent += " ";
|
|
745
|
+
}
|
|
746
|
+
result += `${indent}${line}\n`;
|
|
747
|
+
if (line.startsWith("//") ||
|
|
748
|
+
line.startsWith("/*") ||
|
|
749
|
+
line.startsWith("*")) {
|
|
635
750
|
continue;
|
|
636
751
|
}
|
|
637
752
|
const lastChar = line.slice(-1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,CAAC;AAW9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAKL,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;KACjB,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACzC,CAAC,CAAC;AAIH,MAAM,uBAAuB;IAA7B;QACW,OAAE,GAAG,YAAY,CAAC;QAClB,eAAU,GAAG,MAAM,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;IA2B7B,CAAC;IAzBC,YAAY,CAAC,KAAkC;QAC7C,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;gBAC3C,IAAI,EAAE,IAAI,qBAAqB,CAC7B,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,CACN,CAAC,QAAQ,EAAE;aACb,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;gBAC7C,IAAI,EAAE,IAAI,qBAAqB,CAC7B,MAAM,EACN,SAAS,EACT,MAAM,EACN,OAAO,CACR,CAAC,QAAQ,EAAE;aACb,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChC,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,qBAAqB;IACzB,YACmB,QAAgB,EACjC,SAAiD,EAChC,MAAc,EACd,QAAyB;QAHzB,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAiB;QAw1BpC,SAAI,GAAG,EAAE,CAAC;QAt1BhB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,QAAQ;QACN,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;4BAWc,IAAI,CAAC,uBAAuB,EAAE;SACjD,CAAC,CAAC;QAEP,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;QAED,4EAA4E;QAC5E,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC;YACN,qBAAqB,CAAC,SAAS;;YAE/B,qBAAqB,CAAC,SAAS;;;eAG5B,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACjB,CAAC,CAAC;gBACV,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC;;iBAED,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC;UACN,qBAAqB,CAAC,SAAS;;UAE/B,qBAAqB,CAAC,SAAS,MAAM,CAAC,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC;UACN,qBAAqB,CAAC,SAAS;;UAE/B,qBAAqB,CAAC,SAAS,MAAM,CAAC,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAEO,uBAAuB;QAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QACpC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,6CAA6C;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,GAAG,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,YAAY;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC;YACpC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5C,IAAI,MAAM,GACR,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACpD,mBAAmB,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,GAAG,KAAK,MAAM,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,EAAE;iBACd,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;qBACrB,GAAG,CAAC,gCAAgC,CAAC;qBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY,MAAM,MAAM,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,MAAsB;QAClD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC;QACN,qBAAqB,CAAC,SAAS;WAC5B,UAAU,IAAI,SAAS,CAAC,IAAI;QAC/B,qBAAqB,CAAC,SAAS,MAAM,CAAC,CAAC;QAE3C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,MAAkB;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC;YACjB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC;YACvC,qDAAqD,SAAS,CAAC,IAAI,aAAa;YAChF,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,4BAA4B,CAAC,CAAC;QAEhE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;IAC9B,CAAC;IAEO,8BAA8B,CAAC,MAAkB;QACvD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC;;uCAEyB,SAAS,CAAC,IAAI;;;;;;uBAM9B,SAAS,CAAC,IAAI;WAC1B,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;gBAC5C,MAAM,EACJ,aAAa,EACb,OAAO,EACP,eAAe,EACf,qBAAqB,GACtB,GAAG,cAAc,CAAC,SAAU,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC;oBACjB,6BAA6B,cAAc,CAAC,QAAQ,gBAAgB;oBACpE,iCAAiC,aAAa,KAAK;oBACnD,wEAAwE;oBACxE,+CAA+C;iBAChD,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,KAAK,OAAO,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,MAAM,eAAe,iBAAiB,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;;;;;qBAKO,SAAS,CAAC,IAAI;;;iCAGF,SAAS,CAAC,IAAI;;6BAElB,SAAS,CAAC,IAAI;iDACM,SAAS,CAAC,IAAI;;;wCAGvB,SAAS,CAAC,KAAK,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,6BAA6B,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACrD,CAAC;IAEO,oBAAoB,CAAC,UAAgC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,4EAA4E;QAC5E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,mBAAmB,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,UAAU,eAAe,CAAC,KAAK,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,4BAA4B,CAAC,MAAkB;QACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC;YACjB,wBAAwB,SAAS,CAAC,IAAI,OAAO;YAC7C,UAAU,SAAS,CAAC,IAAI,UAAU;SACnC,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC;;;;;;kCAMoB,SAAS,CAAC,IAAI,+BAA+B,CAAC,CAAC;QAE7E,sBAAsB;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,+BAA+B;QAC/B,IAAI,uBAAuB,CAAC,MAAM,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,mDAAmD,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,6BAA6B,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;IAC9B,CAAC;IAEO,iBAAiB,CAAC,QAAkB;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC;YACjB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzC,uBAAuB;YACvB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,0BAA0B,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QAE5B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,+BAA+B,CAAC,QAAkB;QACxD,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,GACnE,QAAQ,CAAC;QAEX,8BAA8B;QAC9B,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAChB,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC;oBACE,oCAAoC,SAAS,CAAC,IAAI,mBAAmB;oBACrE,sCAAsC,SAAS,CAAC,IAAI,KAAK;iBAC1D;gBACH,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAC7C,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,QAAQ,MAAM,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,iCAAiC;QACjC,CAAC;YACC,MAAM,QAAQ,GAAG;gBACf,uBAAuB,SAAS,CAAC,IAAI,yCAAyC;aAC/E,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CACX,oEAAoE,CACrE,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,kCAAkC;oBAChC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpD,GAAG,CACN,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACjC,SAAS;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,IAAI,CACP;uBACiB,SAAS,CAAC,IAAI;WAC1B,SAAS,CAAC,IAAI,OAAO,CAC3B,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,CAAC;YACjB,wDAAwD;YACxD,kEAAkE;YAClE,aAAa;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,gEAAgE;SACrE,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,2BAA2B,SAAS,CAAC,IAAI,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,aAAa,CAAC,oBAAoB,SAAS,CAAC,IAAI,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,4CAA4C,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAEO,gCAAgC,CAAC,QAAkB;QACzD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EACJ,SAAS,EACT,aAAa,EACb,eAAe,EAAE,aAAa,GAC/B,GAAG,QAAQ,CAAC;QACb,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;gCACkB,SAAS,CAAC,KAAK;;4BAEnB,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,kBAAkB,CAAC;gBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,OAAO;gBACf,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC;iBACC,KAAK,CAAC,UAAU;qBACZ,WAAW;cAClB,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAEO,oBAAoB,CAAC,KAAkB;QAC7C,IAAI,CAAC,aAAa,CAAC;YACjB,qBAAqB,KAAK,CAAC,QAAQ,0CAA0C;YAC7E,yDAAyD,KAAK,CAAC,QAAQ,oBAAoB;SAC5F,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,iBAAiB,OAAO,OAAO,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,2BAA2B,CAAC,MAAkB;QACpD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC;qBACO,SAAS,CAAC,KAAK,2BAA2B,CAAC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,eAAe,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC;gBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,MAAM;gBACd,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,QAAQ,MAAM,MAAM,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;IACjC,CAAC;IAEO,yBAAyB,CAAC,MAAkB;QAClD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC;QAE5D,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,+CAA+C;QAC/C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CACP,eAAe,eAAe,CAAC,IAAI,MAAM,eAAe,CAAC,KAAK,KAAK,CACpE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;IAClC,CAAC;IAEO,0BAA0B,CAAC,MAAkB;QACnD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAErC,qCAAqC;QACrC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CACP,oEAAoE,CACrE,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,QAAQ,KAAK,IAAI,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CACP;qGAC6F,CAC9F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,qBAAqB;YACrB,IAAI,CAAC,IAAI,CACP;gDACwC,CACzC,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC;+BACiB,SAAS,CAAC,IAAI;8BACf,SAAS,CAAC,KAAK;gCACb,SAAS,CAAC,IAAI,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAEO,wBAAwB,CAAC,QAAkB;QACjD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,sBAAsB,QAAQ,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CACP,+EAA+E,eAAe,OAAO,CACtG,CAAC;QACF,IAAI,CAAC,aAAa,CAChB,eAAe,QAAQ,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAC5D,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,2BAA2B,aAAa,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,OAAO,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,WAAY,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,YAAa,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC;uBACO,OAAO,cAAc,SAAS,KAAK,UAAU,QAAQ,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAY,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC;uBACO,OAAO;mBACX,IAAI;oBACH,MAAM;+BACK,aAAa;gCACZ,cAAc;iBAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;eAC1B,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAkB;QAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,OAAO,GAAG,SAAS,CAAC,KAAK,aAAa,CAAC;YACzC,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO,qBAAqB,IAAI,GAAG,CAAC;YACtC,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjD,OAAO,wBAAwB,KAAK,GAAG,CAAC;YAC1C,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,OAAO,0BAA0B,IAAI,CAAC,SAAS,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;QACD,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,MAAsB;QAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAEzD,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAkB;QACtC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QACrD,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/C,MAAM,EAAE,IAAI,oBAAoB,CAAC,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1D,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,UAAU,EAAE,gBAAgB;gBAC1B,CAAC,CAAC,IAAI,oBAAoB,CAAC,gBAAgB,CAAC;gBAC5C,CAAC,CAAC,SAAS;YACb,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAClD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,YAAY;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAChD,aAAa,EAAE,KAAK,CAAC,gBAAgB;oBACnC,CAAC,CAAC,KAAK,CAAC,iBAAiB;oBACzB,CAAC,CAAC,SAAS;gBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBACxB,CAAC,CAAC;wBACE,YAAY,EAAE,KAAK,CAAC,gBAAgB;wBACpC,KAAK,EAAE,IAAI,oBAAoB,CAC7B,UAAU,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,CAC1C;wBACD,aAAa,EACX,KAAK,CAAC,SAAS,CAAC,kBAAkB,KAAK,GAAG;4BACxC,CAAC,CAAC,IAAI,oBAAoB,CACtB,UAAU,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAC/C;4BACH,CAAC,CAAC,SAAS;qBAChB;oBACH,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YACH,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,MAAM,EACJ,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,GAChB,GAAG,QAAQ,CAAC;QACb,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/C,aAAa,EAAE,aAAa;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,oBAAoB,CAAC,gBAAgB,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/D,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,UAAU,EAAE,gBAAgB;gBAC1B,CAAC,CAAC,IAAI,oBAAoB,CAAC,gBAAgB,CAAC;gBAC5C,CAAC,CAAC,SAAS;YACb,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACtD,QAAQ,EAAE,gBAAgB;iBACvB,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,CAAC;gBACC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aACrD,CAAa,CACjB;iBACA,MAAM,CACL,eAAe,CAAC,GAAG,CACjB,CAAC,OAAO,EAAE,EAAE,CACV,CAAC;gBACC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACpD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aACrC,CAAa,CACjB,CACF;YACH,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAAkB;QACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC;iBAChD,CAAC;YACJ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC5C,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAEO,YAAY,CAAC,QAAkB;QACrC,IAAI,QAAQ,YAAY,oBAAoB,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,QAAkB;QACtC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,IAAI,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,mBAAmB,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAIO,sBAAsB,CAAC,GAAQ;QACrC,OAAO,GAAG,CAAC,MAAM;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,MAAM;oBACT,OAAO,CAAC,CAAC,IAAI,CAAC;gBAChB,KAAK,WAAW;oBACd,OAAO,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,WAAuC;QAC3D,MAAM,IAAI,GAAG,CACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACvE;aACE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACpB,CAAC;IAEO,yBAAyB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,wEAAwE;QACxE,uCAAuC;QACvC,MAAM,YAAY,GAA6C,EAAE,CAAC;QAClE,8CAA8C;QAC9C,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;QACnD,MAAM,sBAAsB,GAAG,CAAC,CAAwB,EAAU,EAAE;YAClE,QAAQ,CAAC,EAAE,CAAC;gBACV,KAAK,GAAG;oBACN,OAAO,GAAG,CAAC;gBACb,KAAK,GAAG;oBACN,OAAO,GAAG,CAAC;gBACb,KAAK,GAAG;oBACN,OAAO,GAAG,CAAC;gBACb,KAAK,GAAG;oBACN,OAAO,GAAG,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,4BAA4B;gBAC5B,MAAM,IAAI,IAAI,CAAC;gBACf,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;oBAC/C,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;wBACnC,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BAC7B,MAAM,KAAK,EAAE,CAAC;wBAChB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC;wBACtB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,8CAA8C;gBAC9C,MAAM,IAAI,GAAG,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC;YAC/B,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EACpB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,iCAAiC;oBACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC;wBACtB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC3C,YAAY,CAAC,GAAG,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CACL,MAAM;YACJ,uEAAuE;aACtE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1B,uEAAuE;aACtE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1B,wEAAwE;aACvE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1B,qDAAqD;aACpD,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;YAC7B,sDAAsD;aACrD,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;YAC7B,oCAAoC;aACnC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;aAC3B,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC3B,CAAC;IACJ,CAAC;;AAzJuB,+BAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,AAAxC,CAAyC;AA+J5E,MAAM,oBAAoB;IACxB,YAAqB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;CAC5C;AAWD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC"}
|
package/dist/record_info.d.ts
CHANGED
|
@@ -34,8 +34,6 @@ export interface EnumInfo {
|
|
|
34
34
|
readonly constantVariants: readonly EnumConstantVariant[];
|
|
35
35
|
readonly wrapperVariants: readonly EnumWrapperVariant[];
|
|
36
36
|
readonly kindType: TsType;
|
|
37
|
-
/** Union of `undefined` and the frozen type of all the wrapper variants. */
|
|
38
|
-
readonly valueType: TsType;
|
|
39
37
|
readonly initializerType: TsType;
|
|
40
38
|
readonly valueOnlyInitializerType: TsType;
|
|
41
39
|
readonly unionViewType: TsType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_info.d.ts","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAGH,SAAS,EACT,cAAc,EAEd,YAAY,EAGb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAgB,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,aAAa,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAE3C,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,SAAS,WAAW,EAAE,CAAC;IACzD,gDAAgD;IAChD,QAAQ,CAAC,eAAe,EAAE,SAAS,WAAW,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,aAAa,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAE3C,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"record_info.d.ts","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"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"}
|
package/dist/record_info.js
CHANGED
|
@@ -109,7 +109,6 @@ class RecordInfoCreator {
|
|
|
109
109
|
const constantVariants = [];
|
|
110
110
|
const wrapperVariants = [];
|
|
111
111
|
const typesInKindTypeUnion = [];
|
|
112
|
-
const typesInValueTypeUnion = [TsType.UNDEFINED];
|
|
113
112
|
const typesInInitializerUnion = [];
|
|
114
113
|
const typesInValueOnlyInitializerUnion = [];
|
|
115
114
|
const typesInUnionView = [];
|
|
@@ -146,7 +145,6 @@ class RecordInfoCreator {
|
|
|
146
145
|
const nameLiteral = TsType.literal(name);
|
|
147
146
|
const { frozen, initializer } = enumVariant.tsTypes;
|
|
148
147
|
wrapperVariants.push(enumVariant);
|
|
149
|
-
typesInValueTypeUnion.push(frozen);
|
|
150
148
|
typesInKindTypeUnion.push(nameLiteral);
|
|
151
149
|
typesInInitializerUnion.push(TsType.inlineInterface({
|
|
152
150
|
kind: nameLiteral,
|
|
@@ -172,7 +170,6 @@ class RecordInfoCreator {
|
|
|
172
170
|
constantVariants: constantVariants,
|
|
173
171
|
wrapperVariants: wrapperVariants,
|
|
174
172
|
kindType: TsType.union(typesInKindTypeUnion),
|
|
175
|
-
valueType: TsType.union(typesInValueTypeUnion),
|
|
176
173
|
initializerType: TsType.union(typesInInitializerUnion),
|
|
177
174
|
valueOnlyInitializerType: TsType.union(typesInValueOnlyInitializerUnion),
|
|
178
175
|
unionViewType: TsType.union(typesInUnionView),
|
package/dist/record_info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAmI1E,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,WAAwB;IAExB,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,iBAAiB;IACrB,YACmB,MAAsB,EACtB,WAAwB;QADxB,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QAEzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAID,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE/B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACjE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAY;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,UAAU,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,gBAAgB,GAAG,SAAS,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,gBAAgB,GACpB,CAAC,KAAK,CAAC,WAAW;YAClB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACxB,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;QAC3B,IAAI,SAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,0BAA0B;YAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,qDAAqD;gBACrD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC3D,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,KAAK,eAAe,EAAE,CAAC;YAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,qBAAqB,GAAG,GAAG,CAAC,IAAI;iBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAChB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CACnE;iBACA,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,IACE,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAC9C,qBAAqB,KAAK,MAAM,EAChC,CAAC;gBACD,qBAAqB,GAAG,GAAG,qBAAqB,GAAG,CAAC;YACtD,CAAC;YACD,SAAS,GAAG;gBACV,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,aAAa;gBAC5B,kBAAkB,EAAE,kBAAkB;gBACtC,eAAe,EAAE,eAAe;gBAChC,qBAAqB,EAAE,qBAAqB;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,gBAAgB,EAAE,gBAAgB;YAClC,iBAAiB,EAAE,iBAAiB;YACpC,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,gBAAgB,GAA0B,EAAE,CAAC;QACnD,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,MAAM,gCAAgC,GAAa,EAAE,CAAC;QACtD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,MAAM,wBAAwB,GAAG,CAAC,CAAsB,EAAQ,EAAE;YAChE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;gBACrB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aACxB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,wCAAwC;QACxC,wBAAwB,CAAC;YACvB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC9B,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,sBAAsB;gBACtB,wBAAwB,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;gBACpD,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,uBAAuB,CAAC,IAAI,CAC1B,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gCAAgC,CAAC,IAAI,CACnC,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,MAAM;iBACd,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,aAAa,EAAE,CAAC,eAAe,CAAC,MAAM;YACtC,gBAAgB,EAAE,gBAAgB;YAClC,eAAe,EAAE,eAAe;YAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACtD,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;YACxE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;SAC9C,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,OAAc;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAC,OAAc;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;YAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;SAClC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,cAAqB;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;QACtD,MAAM,OAAO,GAAG,EAAgC,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,IAAuC;QAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,SAAS,CAAC;oBACf,KAAK,QAAQ;wBACX,OAAO,GAAG,CAAC;oBACb,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,0BAA0B;wBAC1B,OAAO,cAAc,CAAC;oBACxB,KAAK,WAAW;wBACd,OAAO,cAAc,CAAC;oBACxB,KAAK,OAAO;wBACV,OAAO,cAAc,CAAC;oBACxB,OAAO,CAAC,CAAC,CAAC;wBACR,MAAM,CAAC,GAAU,IAAI,CAAC,SAAS,CAAC;wBAChC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,kCAAkC,GAAwB,IAAI,GAAG,CAAC;IACtE,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IACpE,SAAS;CACV,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,sBAAsB,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,kCAAkC,CAAC,GAAG,CAAC,WAAW,CAAC;QACnD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,uBAAuB;AACvB,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,gCAAgC,CAAC,GAAG,CAAC,WAAW,CAAC;QACtD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,WAAW;IACX,KAAK;IACL,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,SAAS;IACT,aAAa;IACb,SAAS;IACT,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,IAAI;IACJ,WAAW;IACX,OAAO;IACP,OAAO;CACR,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skir-typescript-gen",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"prettier": "^3.2.4",
|
|
46
46
|
"prettier-plugin-organize-imports": "^4.2.0",
|
|
47
47
|
"skir": "^0.0.3",
|
|
48
|
-
"skir-client": "^0.0.
|
|
48
|
+
"skir-client": "^0.0.10",
|
|
49
49
|
"ts-node": "^10.9.2",
|
|
50
50
|
"typescript": "^5.3.3"
|
|
51
51
|
}
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as paths from "path";
|
|
|
2
2
|
import type {
|
|
3
3
|
CodeGenerator,
|
|
4
4
|
Constant,
|
|
5
|
+
Doc,
|
|
5
6
|
Method,
|
|
6
7
|
Module,
|
|
7
8
|
RecordKey,
|
|
@@ -108,7 +109,7 @@ class TsModuleCodeGenerator {
|
|
|
108
109
|
"${this.inModule.path}",
|
|
109
110
|
[\n`);
|
|
110
111
|
for (const recordLocation of this.inModule.records) {
|
|
111
|
-
this.
|
|
112
|
+
this.pushJsonLike(this.getRecordSpec(recordLocation));
|
|
112
113
|
this.push(",\n");
|
|
113
114
|
}
|
|
114
115
|
this.push(`
|
|
@@ -209,9 +210,12 @@ class TsModuleCodeGenerator {
|
|
|
209
210
|
private writeFrozenClassForStruct(struct: StructInfo): void {
|
|
210
211
|
const { fileType } = this;
|
|
211
212
|
const { className } = struct;
|
|
212
|
-
this.
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
this.pushDocstring([
|
|
214
|
+
this.getDocTextForDocstring(struct.doc),
|
|
215
|
+
`\nDeeply immutable. If you need mutability, use \`${className.type}.Mutable\`.`,
|
|
216
|
+
className.isNested ? `\n@alias ${className.type}` : "",
|
|
217
|
+
]);
|
|
218
|
+
this.push(!className.isNested ? "export " : "");
|
|
215
219
|
if (fileType === ".d.ts") {
|
|
216
220
|
this.push("declare ");
|
|
217
221
|
}
|
|
@@ -227,19 +231,36 @@ class TsModuleCodeGenerator {
|
|
|
227
231
|
private declarePropertiesOfFrozenClass(struct: StructInfo): void {
|
|
228
232
|
const { className, fields, indexableFields } = struct;
|
|
229
233
|
this.push(`
|
|
234
|
+
/**
|
|
235
|
+
* Creates a new instance of \`${className.type}\`.
|
|
236
|
+
*
|
|
237
|
+
* You must specify all the fields unless you use \`create<"partial">({...})>\`,
|
|
238
|
+
* in which case missing fields are set to their default values.
|
|
239
|
+
*/
|
|
230
240
|
static create<_Wholeness extends "whole" | "partial" = "whole">(
|
|
231
241
|
initializer: ${className.type}.Initializer<_Wholeness>
|
|
232
242
|
): ${className.type};\n\n`);
|
|
233
243
|
this.push("private constructor();\n\n");
|
|
234
244
|
for (const field of fields) {
|
|
245
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
235
246
|
this.push(`readonly ${field.property}: ${field.tsTypes.frozen};\n`);
|
|
236
247
|
}
|
|
237
248
|
this.pushEol();
|
|
238
249
|
if (indexableFields.length) {
|
|
239
250
|
for (const indexableField of indexableFields) {
|
|
240
251
|
const { searchMethodName } = indexableField;
|
|
241
|
-
const {
|
|
242
|
-
|
|
252
|
+
const {
|
|
253
|
+
keyExpression,
|
|
254
|
+
keyType,
|
|
255
|
+
frozenValueType,
|
|
256
|
+
searchMethodParamName,
|
|
257
|
+
} = indexableField.indexable!;
|
|
258
|
+
this.pushDocstring([
|
|
259
|
+
`Searches for an item of \`${indexableField.property}\` by its key.`,
|
|
260
|
+
`The key of an item \`v\` is \`${keyExpression}\`.`,
|
|
261
|
+
"If multiple items share the same key, the last occurrence is returned.",
|
|
262
|
+
"Returns `undefined` if the key was not found.",
|
|
263
|
+
]);
|
|
243
264
|
this.push(`${searchMethodName}(`);
|
|
244
265
|
this.push(`${searchMethodParamName}: ${keyType}`);
|
|
245
266
|
this.push(`): ${frozenValueType} | undefined;\n`);
|
|
@@ -247,12 +268,19 @@ class TsModuleCodeGenerator {
|
|
|
247
268
|
this.pushEol();
|
|
248
269
|
}
|
|
249
270
|
this.push(`
|
|
271
|
+
/** Returns this instance (no-op). */
|
|
250
272
|
toFrozen(): this;
|
|
273
|
+
|
|
274
|
+
/** Returns a mutable shallow copy of this instance. */
|
|
251
275
|
toMutable(): ${className.type}.Mutable;
|
|
252
276
|
|
|
277
|
+
/** Default instance with all fields set to their default values. */
|
|
253
278
|
static readonly DEFAULT: ${className.type};
|
|
279
|
+
|
|
280
|
+
/** Serializer for \`${className.type}\` instances. */
|
|
254
281
|
static readonly serializer: $.Serializer<${className.type}>;
|
|
255
282
|
|
|
283
|
+
/** Mutable version of this class. */
|
|
256
284
|
static readonly Mutable: typeof ${className.value}_Mutable;\n`);
|
|
257
285
|
this.declareNestedClasses(struct.nestedRecords);
|
|
258
286
|
this.pushEol();
|
|
@@ -262,6 +290,7 @@ class TsModuleCodeGenerator {
|
|
|
262
290
|
}
|
|
263
291
|
|
|
264
292
|
private declareNestedClasses(nestedKeys: readonly RecordKey[]): void {
|
|
293
|
+
this.pushEol();
|
|
265
294
|
const { typeSpeller } = this;
|
|
266
295
|
// Export the constructor of every nested class as a property of this class.
|
|
267
296
|
for (const nestedKey of nestedKeys) {
|
|
@@ -274,16 +303,25 @@ class TsModuleCodeGenerator {
|
|
|
274
303
|
private declareMutableClassForStruct(struct: StructInfo): void {
|
|
275
304
|
const { fileType } = this;
|
|
276
305
|
const { className, fields, fieldsWithMutableGetter } = struct;
|
|
277
|
-
this.
|
|
306
|
+
this.pushDocstring([
|
|
307
|
+
`Mutable version of \`${className.type}\`.\n`,
|
|
308
|
+
`@alias ${className.type}.Mutable`,
|
|
309
|
+
]);
|
|
278
310
|
if (fileType === ".d.ts") {
|
|
279
311
|
this.push("declare ");
|
|
280
312
|
}
|
|
281
313
|
this.push(`class ${className.value}_Mutable {\n`);
|
|
282
314
|
this.push(`
|
|
315
|
+
/**
|
|
316
|
+
* Creates a new mutable instance.
|
|
317
|
+
*
|
|
318
|
+
* Fields not specified in \`initializer\` will be set to their default values.
|
|
319
|
+
*/
|
|
283
320
|
constructor(initializer?: ${className.type}.Initializer<"partial">);\n\n`);
|
|
284
321
|
|
|
285
322
|
// Declare the fields.
|
|
286
323
|
for (const field of fields) {
|
|
324
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
287
325
|
const type = field.tsTypes["maybe-mutable"];
|
|
288
326
|
this.push(`${field.property}: ${type};\n`);
|
|
289
327
|
}
|
|
@@ -297,9 +335,8 @@ class TsModuleCodeGenerator {
|
|
|
297
335
|
this.pushEol();
|
|
298
336
|
}
|
|
299
337
|
|
|
300
|
-
this.
|
|
301
|
-
|
|
302
|
-
toMutable(): this;\n`);
|
|
338
|
+
this.pushDocstring("Returns a deeply-immutable copy of this instance.");
|
|
339
|
+
this.push(`toFrozen(): ${className.type};`);
|
|
303
340
|
this.pushEol();
|
|
304
341
|
this.push("readonly [$._INITIALIZER]: ");
|
|
305
342
|
this.push(`${className.type}.Initializer | undefined;\n`);
|
|
@@ -309,9 +346,12 @@ class TsModuleCodeGenerator {
|
|
|
309
346
|
private writeClassForEnum(enumInfo: EnumInfo): void {
|
|
310
347
|
const { fileType } = this;
|
|
311
348
|
const { className } = enumInfo;
|
|
312
|
-
this.
|
|
313
|
-
|
|
314
|
-
|
|
349
|
+
this.pushDocstring([
|
|
350
|
+
this.getDocTextForDocstring(enumInfo.doc),
|
|
351
|
+
"\nDeeply immutable.\n",
|
|
352
|
+
className.isNested ? `@alias ${className.type}` : "",
|
|
353
|
+
]);
|
|
354
|
+
this.push(!className.isNested ? "export " : "");
|
|
315
355
|
if (fileType === ".d.ts") {
|
|
316
356
|
this.push("declare ");
|
|
317
357
|
}
|
|
@@ -327,33 +367,66 @@ class TsModuleCodeGenerator {
|
|
|
327
367
|
}
|
|
328
368
|
|
|
329
369
|
private declarePropertiesOfClassForEnum(enumInfo: EnumInfo): void {
|
|
330
|
-
const {
|
|
331
|
-
|
|
332
|
-
constantVariants: constantFields,
|
|
333
|
-
onlyConstants,
|
|
334
|
-
} = enumInfo;
|
|
370
|
+
const { className, constantVariants, onlyConstants, wrapperVariants } =
|
|
371
|
+
enumInfo;
|
|
335
372
|
|
|
336
373
|
// Declare the enum constants.
|
|
337
|
-
for (const
|
|
338
|
-
this.
|
|
374
|
+
for (const variant of constantVariants) {
|
|
375
|
+
this.pushDocstring(
|
|
376
|
+
variant.number === 0
|
|
377
|
+
? [
|
|
378
|
+
`Constant indicating an unknown \`${className.type}\` (kind: '?').\n`,
|
|
379
|
+
`Default value for fields of type \`${className.type}\`.`,
|
|
380
|
+
]
|
|
381
|
+
: this.getDocTextForDocstring(variant.doc),
|
|
382
|
+
);
|
|
383
|
+
this.push(`static readonly ${variant.property}: ${className.type};\n`);
|
|
339
384
|
}
|
|
340
385
|
this.pushEol();
|
|
341
386
|
|
|
342
387
|
// Declare the `create` function.
|
|
388
|
+
{
|
|
389
|
+
const docLines = [
|
|
390
|
+
`Gets or creates a \`${className.type}\` instance from the given initializer.`,
|
|
391
|
+
];
|
|
392
|
+
if (!onlyConstants) {
|
|
393
|
+
docLines.push(
|
|
394
|
+
"To create wrapper variants, use `create({kind: ..., value: ...})`.",
|
|
395
|
+
);
|
|
396
|
+
docLines.push(
|
|
397
|
+
"Possible values for `kind` are: " +
|
|
398
|
+
wrapperVariants.map((v) => `'${v.name}'`).join(", ") +
|
|
399
|
+
".",
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
for (const variant of wrapperVariants) {
|
|
403
|
+
if (variant.doc.text.length <= 0) {
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
const variantDoc = this.getDocTextForDocstring(variant.doc);
|
|
407
|
+
docLines.push(`Doc for '${variant.name}': ${variantDoc}`);
|
|
408
|
+
}
|
|
409
|
+
this.pushDocstring(docLines);
|
|
410
|
+
}
|
|
343
411
|
this.push(
|
|
344
412
|
`static create<_Wholeness extends "whole" | "partial" = "whole">(
|
|
345
413
|
initializer: ${className.type}.Initializer<_Wholeness>
|
|
346
414
|
): ${className.type};\n\n`,
|
|
347
415
|
);
|
|
348
416
|
|
|
349
|
-
// Declare the `
|
|
350
|
-
this.
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
417
|
+
// Declare the `union`.
|
|
418
|
+
this.pushEol();
|
|
419
|
+
this.pushDocstring([
|
|
420
|
+
"This instance as the union of all the variant types.\n",
|
|
421
|
+
"Use `union.kind` to determine the variant held by this instance.",
|
|
422
|
+
onlyConstants
|
|
423
|
+
? ""
|
|
424
|
+
: "If it's a wrapper variant, 'union.value' is the wrapped value.",
|
|
425
|
+
]);
|
|
426
|
+
this.push(`declare readonly union: ${className.type}.UnionView;\n`);
|
|
355
427
|
this.pushEol();
|
|
356
428
|
|
|
429
|
+
this.pushDocstring(`Serializer for \`${className.type}\` instances.`);
|
|
357
430
|
this.push(`static readonly serializer: $.Serializer<${className.type}>;\n`);
|
|
358
431
|
this.declareNestedClasses(enumInfo.nestedRecords);
|
|
359
432
|
}
|
|
@@ -388,8 +461,13 @@ class TsModuleCodeGenerator {
|
|
|
388
461
|
}
|
|
389
462
|
|
|
390
463
|
private declareMutableGetter(field: StructField): void {
|
|
464
|
+
this.pushDocstring([
|
|
465
|
+
`If the value of \`${field.property}\` is already mutable, returns it as-is.`,
|
|
466
|
+
`Otherwise, makes a mutable copy, assigns it back to \`${field.property}\` and returns it.`,
|
|
467
|
+
]);
|
|
391
468
|
const { mutable } = field.tsTypes;
|
|
392
469
|
this.push(`get ${field.mutableGetterName}(): ${mutable};\n`);
|
|
470
|
+
this.pushEol();
|
|
393
471
|
}
|
|
394
472
|
|
|
395
473
|
private defineInitFunctionForStruct(record: StructInfo): void {
|
|
@@ -443,6 +521,7 @@ class TsModuleCodeGenerator {
|
|
|
443
521
|
);
|
|
444
522
|
for (const field of fields) {
|
|
445
523
|
const type = field.tsTypes.initializer;
|
|
524
|
+
this.pushDocstring(this.getDocTextForDocstring(field.doc));
|
|
446
525
|
this.push(`readonly ${field.property}: ${type};\n`);
|
|
447
526
|
}
|
|
448
527
|
this.push("}\n\n");
|
|
@@ -461,33 +540,33 @@ class TsModuleCodeGenerator {
|
|
|
461
540
|
|
|
462
541
|
// Declare the Mutable and OrMutable types.
|
|
463
542
|
this.push(`
|
|
543
|
+
/** Mutable version of ${className.type}. */
|
|
464
544
|
export type Mutable = ${className.value}_Mutable;
|
|
465
545
|
export type OrMutable = ${className.name} | Mutable;\n\n`);
|
|
466
546
|
}
|
|
467
547
|
|
|
468
548
|
private declareEnumSpecificTypes(enumInfo: EnumInfo): void {
|
|
469
|
-
const { initializerType, kindType,
|
|
470
|
-
|
|
549
|
+
const { initializerType, kindType, unionViewType } = enumInfo;
|
|
550
|
+
this.pushDocstring("Identifies a variant.");
|
|
471
551
|
this.push(`export type Kind = ${kindType};\n\n`);
|
|
472
|
-
if (!onlyConstants) {
|
|
473
|
-
this.push(`export type Value = ${enumInfo.valueType};\n\n`);
|
|
474
|
-
}
|
|
475
552
|
this.push(
|
|
476
553
|
`export type Initializer<_Wholeness extends "whole" | "partial" = "whole"> = ${initializerType};\n\n`,
|
|
477
554
|
);
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
555
|
+
this.pushDocstring(
|
|
556
|
+
`View of a \`${enumInfo.className.type}\` as a union type.`,
|
|
557
|
+
);
|
|
558
|
+
this.push(`export type UnionView = ${unionViewType};\n\n`);
|
|
481
559
|
}
|
|
482
560
|
|
|
483
561
|
private writeMethod(method: Method): void {
|
|
484
562
|
const { fileType, typeSpeller } = this;
|
|
485
|
-
const { number, requestType, responseType } = method;
|
|
563
|
+
const { doc, number, requestType, responseType } = method;
|
|
486
564
|
const name = method.name.text;
|
|
487
565
|
const varName = maybeEscapeTopLevelUpperCaseName(name);
|
|
488
566
|
if (fileType === ".d.ts") {
|
|
489
567
|
const reqTsType = typeSpeller.getTsType(requestType!, "frozen");
|
|
490
568
|
const respTsType = typeSpeller.getTsType(responseType!, "frozen");
|
|
569
|
+
this.pushDocstring(this.getDocTextForDocstring(doc));
|
|
491
570
|
this.push(`
|
|
492
571
|
export const ${varName}: $.Method<${reqTsType}, ${respTsType}>;\n\n`);
|
|
493
572
|
} else {
|
|
@@ -499,7 +578,7 @@ class TsModuleCodeGenerator {
|
|
|
499
578
|
number: ${number},
|
|
500
579
|
requestSerializer: ${reqSerializer},
|
|
501
580
|
responseSerializer: ${respSerializer},
|
|
502
|
-
doc: ${JSON.stringify(
|
|
581
|
+
doc: ${JSON.stringify(doc.text)},
|
|
503
582
|
};\n\n`);
|
|
504
583
|
}
|
|
505
584
|
}
|
|
@@ -649,7 +728,7 @@ class TsModuleCodeGenerator {
|
|
|
649
728
|
throw TypeError();
|
|
650
729
|
}
|
|
651
730
|
|
|
652
|
-
private
|
|
731
|
+
private pushJsonLike(jsonLike: JsonLike): void {
|
|
653
732
|
if (jsonLike instanceof JavascriptIdentifier) {
|
|
654
733
|
this.push(jsonLike.identifier);
|
|
655
734
|
} else if (typeof jsonLike === "string" || typeof jsonLike === "number") {
|
|
@@ -657,7 +736,7 @@ class TsModuleCodeGenerator {
|
|
|
657
736
|
} else if (Array.isArray(jsonLike)) {
|
|
658
737
|
this.push("[\n");
|
|
659
738
|
for (const item of jsonLike) {
|
|
660
|
-
this.
|
|
739
|
+
this.pushJsonLike(item);
|
|
661
740
|
this.push(",\n");
|
|
662
741
|
}
|
|
663
742
|
this.push("]");
|
|
@@ -668,7 +747,7 @@ class TsModuleCodeGenerator {
|
|
|
668
747
|
continue;
|
|
669
748
|
}
|
|
670
749
|
this.push(`${name}: `);
|
|
671
|
-
this.
|
|
750
|
+
this.pushJsonLike(value);
|
|
672
751
|
this.push(",\n");
|
|
673
752
|
}
|
|
674
753
|
this.push("}");
|
|
@@ -680,6 +759,7 @@ class TsModuleCodeGenerator {
|
|
|
680
759
|
const name = constant.name.text;
|
|
681
760
|
if (fileType === ".d.ts") {
|
|
682
761
|
const type = typeSpeller.getTsType(constant.type!, "frozen");
|
|
762
|
+
this.pushDocstring(this.getDocTextForDocstring(constant.doc));
|
|
683
763
|
this.push(`export const ${name}: ${type};\n\n`);
|
|
684
764
|
} else {
|
|
685
765
|
this.push(`export const ${name} = /*@__PURE__*/ `);
|
|
@@ -692,6 +772,45 @@ class TsModuleCodeGenerator {
|
|
|
692
772
|
|
|
693
773
|
private static readonly SEPARATOR = `// ${"-".repeat(80 - "// ".length)}`;
|
|
694
774
|
|
|
775
|
+
private getDocTextForDocstring(doc: Doc): string {
|
|
776
|
+
return doc.pieces
|
|
777
|
+
.map((p) => {
|
|
778
|
+
switch (p.kind) {
|
|
779
|
+
case "text":
|
|
780
|
+
return p.text;
|
|
781
|
+
case "reference":
|
|
782
|
+
return `\`${p.referenceRange.text.slice(1, -1)}\``;
|
|
783
|
+
}
|
|
784
|
+
})
|
|
785
|
+
.join("");
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
private pushDocstring(textOrLines: string | readonly string[]): void {
|
|
789
|
+
const text = (
|
|
790
|
+
typeof textOrLines === "string" ? textOrLines : textOrLines.join("\n")
|
|
791
|
+
)
|
|
792
|
+
.replace(/^\s*\n+/g, "")
|
|
793
|
+
.replace(/\n+\s*$/g, "")
|
|
794
|
+
.replace(/\n{3,}/g, "\n\n");
|
|
795
|
+
|
|
796
|
+
if (text.length <= 0) {
|
|
797
|
+
return;
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
const lines = text.split("\n");
|
|
801
|
+
const escape = (line: string): string => line.replace(/\*\//g, "* /");
|
|
802
|
+
if (lines.length === 1) {
|
|
803
|
+
const line = escape(lines[0]!);
|
|
804
|
+
this.push(`/** ${line} */\n`);
|
|
805
|
+
} else {
|
|
806
|
+
this.push("/**\n");
|
|
807
|
+
for (const line of lines.map(escape)) {
|
|
808
|
+
this.push(` * ${line}\n`);
|
|
809
|
+
}
|
|
810
|
+
this.push(" */\n");
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
|
|
695
814
|
private push(code: string): void {
|
|
696
815
|
this.code += code.trimStart();
|
|
697
816
|
}
|
|
@@ -749,9 +868,17 @@ class TsModuleCodeGenerator {
|
|
|
749
868
|
break;
|
|
750
869
|
}
|
|
751
870
|
}
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
871
|
+
let indent = indentUnit.repeat(contextStack.length);
|
|
872
|
+
if (line.startsWith("*")) {
|
|
873
|
+
// Docstring: make sure the stars are aligned.
|
|
874
|
+
indent += " ";
|
|
875
|
+
}
|
|
876
|
+
result += `${indent}${line}\n`;
|
|
877
|
+
if (
|
|
878
|
+
line.startsWith("//") ||
|
|
879
|
+
line.startsWith("/*") ||
|
|
880
|
+
line.startsWith("*")
|
|
881
|
+
) {
|
|
755
882
|
continue;
|
|
756
883
|
}
|
|
757
884
|
const lastChar = line.slice(-1);
|
package/src/record_info.ts
CHANGED
|
@@ -50,8 +50,6 @@ export interface EnumInfo {
|
|
|
50
50
|
readonly constantVariants: readonly EnumConstantVariant[];
|
|
51
51
|
readonly wrapperVariants: readonly EnumWrapperVariant[];
|
|
52
52
|
readonly kindType: TsType;
|
|
53
|
-
/** Union of `undefined` and the frozen type of all the wrapper variants. */
|
|
54
|
-
readonly valueType: TsType;
|
|
55
53
|
readonly initializerType: TsType;
|
|
56
54
|
readonly valueOnlyInitializerType: TsType;
|
|
57
55
|
readonly unionViewType: TsType;
|
|
@@ -270,7 +268,6 @@ class RecordInfoCreator {
|
|
|
270
268
|
const constantVariants: EnumConstantVariant[] = [];
|
|
271
269
|
const wrapperVariants: EnumWrapperVariant[] = [];
|
|
272
270
|
const typesInKindTypeUnion: TsType[] = [];
|
|
273
|
-
const typesInValueTypeUnion: TsType[] = [TsType.UNDEFINED];
|
|
274
271
|
const typesInInitializerUnion: TsType[] = [];
|
|
275
272
|
const typesInValueOnlyInitializerUnion: TsType[] = [];
|
|
276
273
|
const typesInUnionView: TsType[] = [];
|
|
@@ -311,7 +308,6 @@ class RecordInfoCreator {
|
|
|
311
308
|
const nameLiteral = TsType.literal(name);
|
|
312
309
|
const { frozen, initializer } = enumVariant.tsTypes;
|
|
313
310
|
wrapperVariants.push(enumVariant);
|
|
314
|
-
typesInValueTypeUnion.push(frozen);
|
|
315
311
|
typesInKindTypeUnion.push(nameLiteral);
|
|
316
312
|
typesInInitializerUnion.push(
|
|
317
313
|
TsType.inlineInterface({
|
|
@@ -344,7 +340,6 @@ class RecordInfoCreator {
|
|
|
344
340
|
constantVariants: constantVariants,
|
|
345
341
|
wrapperVariants: wrapperVariants,
|
|
346
342
|
kindType: TsType.union(typesInKindTypeUnion),
|
|
347
|
-
valueType: TsType.union(typesInValueTypeUnion),
|
|
348
343
|
initializerType: TsType.union(typesInInitializerUnion),
|
|
349
344
|
valueOnlyInitializerType: TsType.union(typesInValueOnlyInitializerUnion),
|
|
350
345
|
unionViewType: TsType.union(typesInUnionView),
|