@tsoa-next/cli 8.0.1 → 8.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.
Files changed (77) hide show
  1. package/dist/api.d.ts +2 -1
  2. package/dist/api.js +171 -148
  3. package/dist/api.js.map +1 -1
  4. package/dist/cli.d.ts +1 -2
  5. package/dist/cli.js +2 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/metadataGeneration/controllerGenerator.js +10 -13
  8. package/dist/metadataGeneration/controllerGenerator.js.map +1 -1
  9. package/dist/metadataGeneration/exceptions.d.ts +3 -3
  10. package/dist/metadataGeneration/exceptions.js +5 -12
  11. package/dist/metadataGeneration/exceptions.js.map +1 -1
  12. package/dist/metadataGeneration/extension.js +2 -2
  13. package/dist/metadataGeneration/extension.js.map +1 -1
  14. package/dist/metadataGeneration/initializer-value.js +90 -80
  15. package/dist/metadataGeneration/initializer-value.js.map +1 -1
  16. package/dist/metadataGeneration/metadataGenerator.js +20 -22
  17. package/dist/metadataGeneration/metadataGenerator.js.map +1 -1
  18. package/dist/metadataGeneration/methodGenerator.d.ts +1 -0
  19. package/dist/metadataGeneration/methodGenerator.js +39 -27
  20. package/dist/metadataGeneration/methodGenerator.js.map +1 -1
  21. package/dist/metadataGeneration/parameterGenerator.d.ts +5 -0
  22. package/dist/metadataGeneration/parameterGenerator.js +79 -90
  23. package/dist/metadataGeneration/parameterGenerator.js.map +1 -1
  24. package/dist/metadataGeneration/transformer/dateTransformer.js +3 -5
  25. package/dist/metadataGeneration/transformer/dateTransformer.js.map +1 -1
  26. package/dist/metadataGeneration/transformer/enumTransformer.d.ts +2 -0
  27. package/dist/metadataGeneration/transformer/enumTransformer.js +34 -12
  28. package/dist/metadataGeneration/transformer/enumTransformer.js.map +1 -1
  29. package/dist/metadataGeneration/transformer/primitiveTransformer.js +2 -4
  30. package/dist/metadataGeneration/transformer/primitiveTransformer.js.map +1 -1
  31. package/dist/metadataGeneration/transformer/propertyTransformer.d.ts +1 -0
  32. package/dist/metadataGeneration/transformer/propertyTransformer.js +14 -19
  33. package/dist/metadataGeneration/transformer/propertyTransformer.js.map +1 -1
  34. package/dist/metadataGeneration/transformer/referenceTransformer.d.ts +2 -0
  35. package/dist/metadataGeneration/transformer/referenceTransformer.js +35 -18
  36. package/dist/metadataGeneration/transformer/referenceTransformer.js.map +1 -1
  37. package/dist/metadataGeneration/transformer/transformer.js +3 -4
  38. package/dist/metadataGeneration/transformer/transformer.js.map +1 -1
  39. package/dist/metadataGeneration/typeResolver.d.ts +79 -0
  40. package/dist/metadataGeneration/typeResolver.js +906 -735
  41. package/dist/metadataGeneration/typeResolver.js.map +1 -1
  42. package/dist/module/generate-routes.d.ts +1 -2
  43. package/dist/module/generate-routes.js +18 -17
  44. package/dist/module/generate-routes.js.map +1 -1
  45. package/dist/module/generate-spec.js +1 -3
  46. package/dist/module/generate-spec.js.map +1 -1
  47. package/dist/routeGeneration/defaultRouteGenerator.js +2 -2
  48. package/dist/routeGeneration/defaultRouteGenerator.js.map +1 -1
  49. package/dist/routeGeneration/routeGenerator.d.ts +2 -0
  50. package/dist/routeGeneration/routeGenerator.js +20 -30
  51. package/dist/routeGeneration/routeGenerator.js.map +1 -1
  52. package/dist/swagger/specGenerator.js +1 -1
  53. package/dist/swagger/specGenerator.js.map +1 -1
  54. package/dist/swagger/specGenerator2.d.ts +12 -0
  55. package/dist/swagger/specGenerator2.js +200 -170
  56. package/dist/swagger/specGenerator2.js.map +1 -1
  57. package/dist/swagger/specGenerator3.d.ts +17 -87
  58. package/dist/swagger/specGenerator3.js +178 -172
  59. package/dist/swagger/specGenerator3.js.map +1 -1
  60. package/dist/utils/decoratorUtils.js +25 -32
  61. package/dist/utils/decoratorUtils.js.map +1 -1
  62. package/dist/utils/fs.d.ts +1 -1
  63. package/dist/utils/fs.js +5 -5
  64. package/dist/utils/fs.js.map +1 -1
  65. package/dist/utils/headerTypeHelpers.js +2 -5
  66. package/dist/utils/headerTypeHelpers.js.map +1 -1
  67. package/dist/utils/importClassesFromDirectories.js +2 -2
  68. package/dist/utils/importClassesFromDirectories.js.map +1 -1
  69. package/dist/utils/jsDocUtils.js +4 -11
  70. package/dist/utils/jsDocUtils.js.map +1 -1
  71. package/dist/utils/pathUtils.js +2 -2
  72. package/dist/utils/pathUtils.js.map +1 -1
  73. package/dist/utils/swaggerUtils.js +7 -1
  74. package/dist/utils/swaggerUtils.js.map +1 -1
  75. package/dist/utils/validatorUtils.js +60 -97
  76. package/dist/utils/validatorUtils.js.map +1 -1
  77. package/package.json +2 -2
@@ -2,13 +2,10 @@ import { Swagger, Tsoa } from '@tsoa-next/runtime';
2
2
  import type { ExtendedSpecConfig } from '../api';
3
3
  import { SpecGenerator } from './specGenerator';
4
4
  /**
5
- * TODO:
6
- * Handle formData parameters
7
- * Handle requestBodies of type other than json
8
- * Handle requestBodies as reusable objects
9
- * Handle headers, examples, responses, etc.
10
- * Cleaner interface between SpecGenerator2 and SpecGenerator3
11
- * Also accept OpenAPI 3.0.0 metadata, like components/securitySchemes instead of securityDefinitions
5
+ * Known follow-up areas remain in this generator:
6
+ * Handle richer form-data/request-body shapes, reusable request bodies,
7
+ * response/header examples, cleaner SpecGenerator2/3 boundaries,
8
+ * and OpenAPI 3-native metadata inputs such as components/securitySchemes.
12
9
  */
13
10
  export declare class SpecGenerator3 extends SpecGenerator {
14
11
  protected readonly metadata: Tsoa.Metadata;
@@ -70,90 +67,23 @@ export declare class SpecGenerator3 extends SpecGenerator {
70
67
  protected isNull(type: Tsoa.Type): boolean;
71
68
  protected groupEnums(types: Swagger.BaseSchema[]): Swagger.BaseSchema<unknown>[];
72
69
  protected removeDuplicateSwaggerTypes(types: Swagger.BaseSchema[]): Swagger.BaseSchema[];
73
- protected getSwaggerTypeForUnionType(type: Tsoa.UnionType, title?: string): {
74
- allOf: Swagger.BaseSchema<unknown>[];
75
- nullable: true;
76
- } | {
77
- nullable: true;
78
- type?: string;
79
- format?: Swagger.DataFormat;
80
- $ref?: string;
81
- title?: string;
82
- description?: string;
83
- default?: string | boolean | number | unknown;
84
- multipleOf?: number;
85
- maximum?: number;
86
- minimum?: number;
87
- maxLength?: number;
88
- minLength?: number;
89
- pattern?: string;
90
- maxItems?: number;
91
- minItems?: number;
92
- uniqueItems?: boolean;
93
- maxProperties?: number;
94
- minProperties?: number;
95
- enum?: Array<boolean | string | number | null>;
96
- 'x-enum-varnames'?: string[];
97
- additionalProperties?: boolean | Swagger.BaseSchema;
98
- properties?: {
99
- [propertyName: string]: unknown;
100
- } | undefined;
101
- discriminator?: string;
102
- readOnly?: boolean;
103
- xml?: Swagger.XML;
104
- externalDocs?: Swagger.ExternalDocs;
105
- example?: unknown;
106
- required?: string[];
107
- items?: Swagger.BaseSchema;
108
- allOf?: undefined;
109
- } | {
110
- anyOf: Swagger.BaseSchema<unknown>[];
111
- nullable: true;
112
- title?: string | undefined;
113
- allOf?: undefined;
114
- } | {
115
- type?: string;
116
- format?: Swagger.DataFormat;
117
- $ref?: string;
118
- title?: string;
119
- description?: string;
120
- default?: string | boolean | number | unknown;
121
- multipleOf?: number;
122
- maximum?: number;
123
- minimum?: number;
124
- maxLength?: number;
125
- minLength?: number;
126
- pattern?: string;
127
- maxItems?: number;
128
- minItems?: number;
129
- uniqueItems?: boolean;
130
- maxProperties?: number;
131
- minProperties?: number;
132
- enum?: Array<boolean | string | number | null>;
133
- 'x-enum-varnames'?: string[];
134
- additionalProperties?: boolean | Swagger.BaseSchema;
135
- properties?: {
136
- [propertyName: string]: unknown;
137
- } | undefined;
138
- discriminator?: string;
139
- readOnly?: boolean;
140
- xml?: Swagger.XML;
141
- externalDocs?: Swagger.ExternalDocs;
142
- example?: unknown;
143
- required?: string[];
144
- items?: Swagger.BaseSchema;
145
- allOf?: undefined;
146
- nullable?: undefined;
147
- } | {
148
- anyOf: Swagger.BaseSchema<unknown>[];
149
- title?: string | undefined;
150
- allOf?: undefined;
151
- nullable?: undefined;
152
- };
70
+ protected getSwaggerTypeForUnionType(type: Tsoa.UnionType, title?: string): Swagger.Schema3;
153
71
  protected getSwaggerTypeForIntersectionType(type: Tsoa.IntersectionType, title?: string): {
154
72
  title?: string | undefined;
155
73
  allOf: Swagger.BaseSchema<unknown>[];
156
74
  };
157
75
  protected getSwaggerTypeForEnumType(enumType: Tsoa.EnumType, title?: string): Swagger.Schema3;
158
76
  protected transformSchemaValidators(validators: Partial<Record<Tsoa.SchemaValidatorKey, unknown>>): Partial<Record<Tsoa.SchemaValidatorKey, unknown>>;
77
+ private buildReferenceSchema;
78
+ private buildRefObjectSchema;
79
+ private buildRefEnumSchema;
80
+ private buildRefAliasSchema;
81
+ private applyReferenceSchemaMetadata;
82
+ private getRequiredPropertyNames;
83
+ private buildResponse;
84
+ private buildResponseContent;
85
+ private applyResponseExamples;
86
+ private buildResponseHeaders;
87
+ private buildNullableUnionType;
88
+ private buildNonNullableUnionType;
159
89
  }
@@ -9,13 +9,10 @@ const pathUtils_1 = require("./../utils/pathUtils");
9
9
  const swaggerUtils_1 = require("./../utils/swaggerUtils");
10
10
  const specGenerator_1 = require("./specGenerator");
11
11
  /**
12
- * TODO:
13
- * Handle formData parameters
14
- * Handle requestBodies of type other than json
15
- * Handle requestBodies as reusable objects
16
- * Handle headers, examples, responses, etc.
17
- * Cleaner interface between SpecGenerator2 and SpecGenerator3
18
- * Also accept OpenAPI 3.0.0 metadata, like components/securitySchemes instead of securityDefinitions
12
+ * Known follow-up areas remain in this generator:
13
+ * Handle richer form-data/request-body shapes, reusable request bodies,
14
+ * response/header examples, cleaner SpecGenerator2/3 boundaries,
15
+ * and OpenAPI 3-native metadata inputs such as components/securitySchemes.
19
16
  */
20
17
  class SpecGenerator3 extends specGenerator_1.SpecGenerator {
21
18
  metadata;
@@ -137,87 +134,9 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
137
134
  }
138
135
  buildSchema() {
139
136
  const schema = {};
140
- Object.keys(this.metadata.referenceTypeMap).forEach(typeName => {
141
- const referenceType = this.metadata.referenceTypeMap[typeName];
142
- if (referenceType.dataType === 'refObject') {
143
- const properties = referenceType.properties ?? [];
144
- const required = properties.filter(p => this.isRequiredWithoutDefault(p) && !this.hasUndefined(p)).map(p => p.name);
145
- schema[referenceType.refName] = {
146
- description: referenceType.description,
147
- properties: this.buildProperties(properties),
148
- required: required.length > 0 ? Array.from(new Set(required)) : undefined,
149
- type: 'object',
150
- };
151
- if (referenceType.additionalProperties) {
152
- schema[referenceType.refName].additionalProperties = this.buildAdditionalProperties(referenceType.additionalProperties);
153
- }
154
- else {
155
- // Since additionalProperties was not explicitly set in the TypeScript interface for this model
156
- // ...we need to make a decision
157
- schema[referenceType.refName].additionalProperties = this.determineImplicitAdditionalPropertiesValue();
158
- }
159
- if (referenceType.example) {
160
- schema[referenceType.refName].example = referenceType.example;
161
- }
162
- if (referenceType.title) {
163
- schema[referenceType.refName].title = referenceType.title;
164
- }
165
- }
166
- else if (referenceType.dataType === 'refEnum') {
167
- const enumTypes = this.determineTypesUsedInEnum(referenceType.enums);
168
- if (enumTypes.size === 1) {
169
- schema[referenceType.refName] = {
170
- description: referenceType.description,
171
- enum: referenceType.enums,
172
- type: enumTypes.has('string') ? 'string' : 'number',
173
- };
174
- if (this.config.xEnumVarnames && referenceType.enumVarnames?.length === referenceType.enums.length) {
175
- schema[referenceType.refName]['x-enum-varnames'] = referenceType.enumVarnames;
176
- }
177
- }
178
- else {
179
- schema[referenceType.refName] = {
180
- description: referenceType.description,
181
- anyOf: [
182
- {
183
- type: 'number',
184
- enum: referenceType.enums.filter(e => typeof e === 'number'),
185
- },
186
- {
187
- type: 'string',
188
- enum: referenceType.enums.filter(e => typeof e === 'string'),
189
- },
190
- ],
191
- };
192
- }
193
- if (referenceType.example) {
194
- schema[referenceType.refName].example = referenceType.example;
195
- }
196
- if (referenceType.title) {
197
- schema[referenceType.refName].title = referenceType.title;
198
- }
199
- }
200
- else if (referenceType.dataType === 'refAlias') {
201
- const swaggerType = this.getSwaggerType(referenceType.type);
202
- const format = referenceType.format;
203
- const validators = this.getSchemaValidators(referenceType.validators);
204
- schema[referenceType.refName] = {
205
- ...swaggerType,
206
- default: referenceType.default || swaggerType.default,
207
- example: referenceType.example,
208
- format: format || swaggerType.format,
209
- description: referenceType.description,
210
- ...(referenceType.title && { title: referenceType.title }),
211
- ...validators,
212
- };
213
- }
214
- else {
215
- (0, runtime_1.assertNever)(referenceType);
216
- }
217
- if (referenceType.deprecated) {
218
- schema[referenceType.refName].deprecated = true;
219
- }
220
- });
137
+ for (const referenceType of Object.values(this.metadata.referenceTypeMap)) {
138
+ schema[referenceType.refName] = this.buildReferenceSchema(referenceType);
139
+ }
221
140
  return schema;
222
141
  }
223
142
  buildPaths() {
@@ -257,7 +176,7 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
257
176
  const queriesParams = method.parameters.filter(p => p.in === 'queries');
258
177
  pathMethod.parameters = method.parameters
259
178
  .filter(p => {
260
- return ['body', 'formData', 'request', 'body-prop', 'res', 'queries', 'request-prop'].indexOf(p.in) === -1;
179
+ return !['body', 'formData', 'request', 'body-prop', 'res', 'queries', 'request-prop'].includes(p.in);
261
180
  })
262
181
  .map(p => this.buildParameter(p));
263
182
  if (queriesParams.length > 1) {
@@ -302,59 +221,8 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
302
221
  }
303
222
  buildOperation(controllerName, method, defaultProduces) {
304
223
  const swaggerResponses = {};
305
- method.responses.forEach((res) => {
306
- swaggerResponses[res.name] = {
307
- description: res.description,
308
- };
309
- if (res.schema && !(0, isVoidType_1.isVoidType)(res.schema)) {
310
- swaggerResponses[res.name].content = {};
311
- const produces = res.produces || defaultProduces || [swaggerUtils_1.DEFAULT_RESPONSE_MEDIA_TYPE];
312
- for (const p of produces) {
313
- const { content } = swaggerResponses[res.name];
314
- swaggerResponses[res.name].content = {
315
- ...content,
316
- [p]: {
317
- schema: this.getSwaggerType(res.schema, this.config.useTitleTagsForInlineObjects ? this.getOperationId(controllerName, method) + 'Response' : undefined),
318
- },
319
- };
320
- }
321
- if (res.examples) {
322
- let exampleCounter = 1;
323
- const examples = res.examples.reduce((acc, ex, currentIndex) => {
324
- const exampleLabel = res.exampleLabels?.[currentIndex];
325
- acc[exampleLabel ?? `Example ${exampleCounter++}`] = { value: ex };
326
- return acc;
327
- }, {});
328
- const content = swaggerResponses[res.name].content;
329
- if (content) {
330
- for (const p of produces) {
331
- content[p].examples = examples;
332
- }
333
- }
334
- }
335
- }
336
- if (res.headers) {
337
- const headers = {};
338
- if (res.headers.dataType === 'refObject') {
339
- headers[res.headers.refName] = {
340
- schema: this.getSwaggerTypeForReferenceType(res.headers),
341
- description: res.headers.description,
342
- };
343
- }
344
- else if (res.headers.dataType === 'nestedObjectLiteral') {
345
- res.headers.properties.forEach((each) => {
346
- headers[each.name] = {
347
- schema: this.getSwaggerType(each.type),
348
- description: each.description,
349
- required: this.isRequiredWithoutDefault(each),
350
- };
351
- });
352
- }
353
- else {
354
- (0, runtime_1.assertNever)(res.headers);
355
- }
356
- swaggerResponses[res.name].headers = headers;
357
- }
224
+ method.responses.forEach((response) => {
225
+ swaggerResponses[response.name] = this.buildResponse(controllerName, method, response, defaultProduces);
358
226
  });
359
227
  const operation = {
360
228
  operationId: this.getOperationId(controllerName, method),
@@ -459,7 +327,7 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
459
327
  }
460
328
  if (parameterType.$ref) {
461
329
  parameter.schema = this.mergeSchemaExtensions(parameterType, this.getExternalValidatorExtension(source));
462
- return Object.assign(parameter, this.buildExamples(source));
330
+ return { ...parameter, ...this.buildExamples(source) };
463
331
  }
464
332
  const validatorObjs = this.getSchemaValidators(source.validators);
465
333
  if (source.type.dataType === 'any') {
@@ -474,8 +342,8 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
474
342
  }
475
343
  parameter.schema.enum = parameterType.enum;
476
344
  }
477
- parameter.schema = Object.assign({}, parameter.schema, validatorObjs);
478
- return Object.assign(parameter, this.buildExamples(source));
345
+ parameter.schema = { ...parameter.schema, ...validatorObjs };
346
+ return { ...parameter, ...this.buildExamples(source) };
479
347
  }
480
348
  mergeSchemaExtensions(schema, extensions) {
481
349
  const filteredExtensions = Object.fromEntries(Object.entries(extensions).filter(([, value]) => value !== undefined));
@@ -628,33 +496,9 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
628
496
  .map(x => this.getSwaggerType(x))));
629
497
  const nullable = type.types.some(x => this.isNull(x));
630
498
  if (nullable) {
631
- if (actualSwaggerTypes.length === 1) {
632
- const [swaggerType] = actualSwaggerTypes;
633
- // for ref union with null, use an allOf with a single
634
- // element since you can't attach nullable directly to a ref.
635
- // https://swagger.io/docs/specification/using-ref/#syntax
636
- if (swaggerType.$ref) {
637
- return { allOf: [swaggerType], nullable };
638
- }
639
- // Note that null must be explicitly included in the list of enum values. Using nullable: true alone is not enough here.
640
- // https://swagger.io/docs/specification/data-models/enums/
641
- if (swaggerType.enum) {
642
- swaggerType.enum.push(null);
643
- }
644
- return { ...(title && { title }), ...swaggerType, nullable };
645
- }
646
- else {
647
- return { ...(title && { title }), anyOf: actualSwaggerTypes, nullable };
648
- }
649
- }
650
- else {
651
- if (actualSwaggerTypes.length === 1) {
652
- return { ...(title && { title }), ...actualSwaggerTypes[0] };
653
- }
654
- else {
655
- return { ...(title && { title }), anyOf: actualSwaggerTypes };
656
- }
499
+ return this.buildNullableUnionType(actualSwaggerTypes, title);
657
500
  }
501
+ return this.buildNonNullableUnionType(actualSwaggerTypes, title);
658
502
  }
659
503
  getSwaggerTypeForIntersectionType(type, title) {
660
504
  return { allOf: type.types.map(x => this.getSwaggerType(x)), ...(title && { title }) };
@@ -663,7 +507,7 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
663
507
  const types = this.determineTypesUsedInEnum(enumType.enums);
664
508
  if (types.size === 1) {
665
509
  const type = types.values().next().value;
666
- const nullable = enumType.enums.includes(null) ? true : false;
510
+ const nullable = enumType.enums.includes(null);
667
511
  return { ...(title && { title }), type, enum: enumType.enums.map(member => (0, swaggerUtils_1.getValue)(type, member)), nullable };
668
512
  }
669
513
  else {
@@ -674,6 +518,168 @@ class SpecGenerator3 extends specGenerator_1.SpecGenerator {
674
518
  transformSchemaValidators(validators) {
675
519
  return this.transformExclusiveNumericValidatorsForLegacySpec(validators);
676
520
  }
521
+ buildReferenceSchema(referenceType) {
522
+ let schema;
523
+ switch (referenceType.dataType) {
524
+ case 'refObject':
525
+ schema = this.buildRefObjectSchema(referenceType);
526
+ break;
527
+ case 'refEnum':
528
+ schema = this.buildRefEnumSchema(referenceType);
529
+ break;
530
+ case 'refAlias':
531
+ schema = this.buildRefAliasSchema(referenceType);
532
+ break;
533
+ default:
534
+ return (0, runtime_1.assertNever)(referenceType);
535
+ }
536
+ return this.applyReferenceSchemaMetadata(schema, referenceType);
537
+ }
538
+ buildRefObjectSchema(referenceType) {
539
+ const properties = referenceType.properties ?? [];
540
+ return {
541
+ description: referenceType.description,
542
+ properties: this.buildProperties(properties),
543
+ required: this.getRequiredPropertyNames(properties),
544
+ type: 'object',
545
+ additionalProperties: referenceType.additionalProperties ? this.buildAdditionalProperties(referenceType.additionalProperties) : this.determineImplicitAdditionalPropertiesValue(),
546
+ };
547
+ }
548
+ buildRefEnumSchema(referenceType) {
549
+ const enumTypes = this.determineTypesUsedInEnum(referenceType.enums);
550
+ const schema = enumTypes.size === 1
551
+ ? {
552
+ description: referenceType.description,
553
+ enum: referenceType.enums,
554
+ type: enumTypes.has('string') ? 'string' : 'number',
555
+ }
556
+ : {
557
+ description: referenceType.description,
558
+ anyOf: [
559
+ {
560
+ type: 'number',
561
+ enum: referenceType.enums.filter(e => typeof e === 'number'),
562
+ },
563
+ {
564
+ type: 'string',
565
+ enum: referenceType.enums.filter(e => typeof e === 'string'),
566
+ },
567
+ ],
568
+ };
569
+ if (this.config.xEnumVarnames && referenceType.enumVarnames?.length === referenceType.enums.length) {
570
+ schema['x-enum-varnames'] = referenceType.enumVarnames;
571
+ }
572
+ return schema;
573
+ }
574
+ buildRefAliasSchema(referenceType) {
575
+ const swaggerType = this.getSwaggerType(referenceType.type);
576
+ const format = referenceType.format;
577
+ const validators = this.getSchemaValidators(referenceType.validators);
578
+ const schema = {
579
+ ...swaggerType,
580
+ default: referenceType.default || swaggerType.default,
581
+ example: referenceType.example,
582
+ format: format || swaggerType.format,
583
+ description: referenceType.description,
584
+ ...validators,
585
+ };
586
+ if (referenceType.title) {
587
+ schema.title = referenceType.title;
588
+ }
589
+ return schema;
590
+ }
591
+ applyReferenceSchemaMetadata(schema, referenceType) {
592
+ if (referenceType.example) {
593
+ schema.example = referenceType.example;
594
+ }
595
+ if (referenceType.title) {
596
+ schema.title = referenceType.title;
597
+ }
598
+ if (referenceType.deprecated) {
599
+ schema.deprecated = true;
600
+ }
601
+ return schema;
602
+ }
603
+ getRequiredPropertyNames(properties) {
604
+ const required = properties.filter(p => this.isRequiredWithoutDefault(p) && !this.hasUndefined(p)).map(p => p.name);
605
+ return required.length > 0 ? Array.from(new Set(required)) : undefined;
606
+ }
607
+ buildResponse(controllerName, method, response, defaultProduces) {
608
+ const swaggerResponse = {
609
+ description: response.description,
610
+ };
611
+ if (response.schema && !(0, isVoidType_1.isVoidType)(response.schema)) {
612
+ const produces = response.produces || defaultProduces || [swaggerUtils_1.DEFAULT_RESPONSE_MEDIA_TYPE];
613
+ swaggerResponse.content = this.buildResponseContent(controllerName, method, response, produces);
614
+ if (response.examples && swaggerResponse.content) {
615
+ this.applyResponseExamples(swaggerResponse.content, produces, response.examples, response.exampleLabels);
616
+ }
617
+ }
618
+ if (response.headers) {
619
+ swaggerResponse.headers = this.buildResponseHeaders(response.headers);
620
+ }
621
+ return swaggerResponse;
622
+ }
623
+ buildResponseContent(controllerName, method, response, produces) {
624
+ const content = {};
625
+ for (const mediaType of produces) {
626
+ content[mediaType] = {
627
+ schema: this.getSwaggerType(response.schema, this.config.useTitleTagsForInlineObjects ? this.getOperationId(controllerName, method) + 'Response' : undefined),
628
+ };
629
+ }
630
+ return content;
631
+ }
632
+ applyResponseExamples(content, produces, examples, exampleLabels) {
633
+ let exampleCounter = 1;
634
+ const responseExamples = examples.reduce((acc, example, currentIndex) => {
635
+ const exampleLabel = exampleLabels?.[currentIndex];
636
+ acc[exampleLabel ?? `Example ${exampleCounter++}`] = { value: example };
637
+ return acc;
638
+ }, {});
639
+ for (const mediaType of produces) {
640
+ content[mediaType].examples = responseExamples;
641
+ }
642
+ }
643
+ buildResponseHeaders(headers) {
644
+ if (headers.dataType === 'refObject') {
645
+ return {
646
+ [headers.refName]: {
647
+ schema: this.getSwaggerTypeForReferenceType(headers),
648
+ description: headers.description,
649
+ },
650
+ };
651
+ }
652
+ if (headers.dataType === 'nestedObjectLiteral') {
653
+ return headers.properties.reduce((headerMap, property) => {
654
+ headerMap[property.name] = {
655
+ schema: this.getSwaggerType(property.type),
656
+ description: property.description,
657
+ required: this.isRequiredWithoutDefault(property),
658
+ };
659
+ return headerMap;
660
+ }, {});
661
+ }
662
+ return (0, runtime_1.assertNever)(headers);
663
+ }
664
+ buildNullableUnionType(actualSwaggerTypes, title) {
665
+ if (actualSwaggerTypes.length !== 1) {
666
+ return { ...(title && { title }), anyOf: actualSwaggerTypes, nullable: true };
667
+ }
668
+ const [swaggerType] = actualSwaggerTypes;
669
+ if (swaggerType.$ref) {
670
+ return { allOf: [swaggerType], nullable: true };
671
+ }
672
+ if (swaggerType.enum) {
673
+ swaggerType.enum.push(null);
674
+ }
675
+ return { ...(title && { title }), ...swaggerType, nullable: true };
676
+ }
677
+ buildNonNullableUnionType(actualSwaggerTypes, title) {
678
+ if (actualSwaggerTypes.length === 1) {
679
+ return { ...(title && { title }), ...actualSwaggerTypes[0] };
680
+ }
681
+ return { ...(title && { title }), anyOf: actualSwaggerTypes };
682
+ }
677
683
  }
678
684
  exports.SpecGenerator3 = SpecGenerator3;
679
685
  //# sourceMappingURL=specGenerator3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"specGenerator3.js","sourceRoot":"","sources":["../../src/swagger/specGenerator3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specGenerator3.js","sourceRoot":"","sources":["../../src/swagger/specGenerator3.ts"],"names":[],"mappings":";;;AAAA,gDAA+D;AAC/D,+CAAiD;AAGjD,oDAAgD;AAChD,kDAAmD;AAEnD,oDAA4E;AAC5E,0DAA2G;AAC3G,mDAA+C;AAE/C;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,6BAAa;IAM1B;IACA;IANX,yBAAyB,CAAC,IAAe;QACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,YACqB,QAAuB,EACvB,MAA0B;QAE7C,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAHJ,aAAQ,GAAR,QAAQ,CAAe;QACvB,WAAM,GAAN,MAAM,CAAoB;IAG/C,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,GAAmB;YACzB,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE;YAClC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACvB,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAA;YAChE,MAAM,UAAU,GAAgG;gBAC9G,SAAS,EAAE,MAAM,CAAC,MAAM;gBACxB,SAAS,EAAE,0BAAc;gBACzB,SAAS,EAAE,CAAC,IAAuB,EAAE,KAAwB,EAAqB,EAAE,CAAC,IAAA,oBAAS,EAAC,IAAI,EAAE,KAAK,CAAC;aAC5G,CAAA;YAED,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAoC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAyB,CAA8B,CAAA;QACtJ,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAES,SAAS;QACjB,MAAM,IAAI,GAAiB;YACzB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;SAC9B,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACpC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAES,eAAe;QACvB,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;YAC3B,eAAe,EAAE,EAAE;SACpB,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACjG,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAES,4BAA4B,CAAC,WAAwD;QAC7F,MAAM,IAAI,GAAgD,EAAE,CAAA;QAC5D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,GAAG;oBACV,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,MAAM;iBACa,CAAA;YAC7B,CAAC;iBAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9C,qEAAqE;gBACrE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAKP,CAAA;gBAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;oBAC1B,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW;oBACzC,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE;iBAClE,CAA4B,CAAA;gBAE7B,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE,EAAiC,CAAA;gBAC1H,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC7E,KAAK,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE,EAAiC,CAAA;gBAClL,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC9E,KAAK,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE,EAAiC,CAAA;gBACnI,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC3E,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE,EAAiC,CAAA;gBAC1I,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAES,YAAY,CAAC,UAAmB;QACxC,OAAO,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAA;IAC7H,CAAC;IAES,aAAa,CAAC,UAAmB;QACzC,OAAO,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAA;IAC5J,CAAC;IAES,YAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;QACvE,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,QAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACxF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,IAAI,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAA;QACjF,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAqB,CAAA;IAC7E,CAAC;IAES,WAAW;QACnB,MAAM,MAAM,GAAwC,EAAE,CAAA;QACtD,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1E,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAC1E,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAES,UAAU;QAClB,MAAM,KAAK,GAA0C,EAAE,CAAA;QAEvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7C,MAAM,wBAAwB,GAAG,IAAA,yBAAa,EAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACpE,2DAA2D;YAC3D,UAAU,CAAC,OAAO;iBACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAClC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChB,MAAM,oBAAoB,GAAG,IAAA,yBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAC5D,IAAI,IAAI,GAAG,IAAA,yBAAa,EAAC,GAAG,wBAAwB,GAAG,oBAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC9F,IAAI,GAAG,IAAA,kCAAsB,EAAC,IAAI,CAAC,CAAA;gBACnC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC/B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC7E,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IACd,CAAC;IAES,WAAW,CAAC,cAAsB,EAAE,MAAmB,EAAE,UAAsE,EAAE,eAA0B;QACnK,MAAM,UAAU,GAAuB,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;QACnG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;QACtC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QAC3C,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QACnC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAE7B,+FAA+F;QAC/F,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAA;QAErE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QACvC,CAAC;QAED,MAAM,UAAU,GAAqB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QACnF,MAAM,cAAc,GAAqB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAA;QAC5F,MAAM,UAAU,GAAqB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;QACvF,MAAM,aAAa,GAAqB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;QAEzF,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACvG,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QAEnC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;QACvG,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC;oBACd,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,MAAM;oBACZ,aAAa,EAAE,MAAM;oBACrB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE;wBACJ,QAAQ,EAAE,qBAAqB;wBAC/B,UAAU,EAAE,EAAE;qBACiB;oBACjC,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,IAAI,GAAiC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAoC,CAAA;YAC7F,cAAc,CAAC,OAAO,CAAC,CAAC,SAAyB,EAAE,EAAE;gBACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAA0B,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QACvF,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAChG,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,CAAC;IAES,cAAc,CAAC,cAAsB,EAAE,MAAmB,EAAE,eAA0B;QAC9F,MAAM,gBAAgB,GAA0C,EAAE,CAAA;QAElE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAuB,EAAE,EAAE;YACnD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAuB;YACpC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC;YACxD,SAAS,EAAE,gBAAgB;SAC5B,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,4BAA4B,CAAC,cAAsB,EAAE,MAAmB,EAAE,UAA4B;QAC9G,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,UAAU,GAAgD,EAAE,CAAA;QAClE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YACxE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAO,CAAA;YAC9C,IAAI,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;YACD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzB,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;YAC9D,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAwB;YACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,EAAE;gBACP,qBAAqB,EAAE;oBACrB,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU;wBACV,2CAA2C;wBAC3C,uEAAuE;wBACvE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;qBACzC;iBACF;aACF;SACF,CAAA;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,gBAAgB,CAAC,cAAsB,EAAE,MAAmB,EAAE,SAAyB;QAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,yCAA0B,CAAA;QAE9D,MAAM,WAAW,GAAwB;YACvC,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC;YAClD,OAAO,EAAE;gBACP,CAAC,QAAQ,CAAC,EAAE,SAAS;aACtB;SACF,CAAA;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,cAAc,CAAC,cAAsB,EAAE,MAAmB,EAAE,SAAyB;QAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAA6B,CAAA;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CACvC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAoB,EAC1K;YACE,GAAG,UAAU;YACb,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;YACpE,GAAG,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC;SACjD,CACF,CAAA;QAED,MAAM,SAAS,GAAsB;YACnC,MAAM;SACP,CAAA;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAA;QAC3C,MAAM,sBAAsB,GAAG,SAAS,CAAC,aAAa,CAAA;QACtD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,SAAS,CAAC,OAAO,GAAG,iBAAiB,CAAA;QACvC,CAAC;aAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,SAAS,CAAC,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,cAAc,GAAG,CAAC,CAAA;YACtB,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;gBACxG,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC,YAAY,CAAC,CAAA;gBAC3D,GAAG,CAAC,YAAY,IAAI,WAAW,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;gBAClE,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,qBAAqB,CAAC,MAAsB;QACpD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,qBAAqB,EAAE,CAAC;YAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAA;YAEzC,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACxG,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,gCAAgC,CAAC,CAAA;IAC1E,CAAC;IAES,cAAc,CAAC,MAAsB;QAC7C,MAAM,SAAS,GAAG;YAChB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;YAC/C,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,SAAS;gBACjB,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;aAC9C;SACoB,CAAA;QACvB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAA;QAC7B,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACtD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YACvB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAgC,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3H,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAA;QACxD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAA6B,CAAA;QAE7F,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACnC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvB,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzE,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACrE,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAA;QAC5C,CAAC;QAED,SAAS,CAAC,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;QAE5D,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAA;IACxD,CAAC;IAEO,qBAAqB,CAAC,MAAuB,EAAE,UAAoC;QACzF,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAA6B,CAAA;QAEhJ,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,kBAAkB;aACtB,CAAA;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,GAAG,kBAAkB;SACtB,CAAA;IACH,CAAC;IAES,aAAa,CAAC,MAAyD;QAI/E,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;QAE5D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;QAC/B,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1C,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACf,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,IAAI,GAAG,KAAK,IAAI,WAAW,cAAc,EAAE,EAAE,CAAA;YACnD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAAsC,CACvC,CAAA;QAED,OAAO,EAAE,QAAQ,EAAE,CAAA;IACrB,CAAC;IAES,eAAe,CAAC,MAAuB;QAC/C,MAAM,UAAU,GAAgD,EAAE,CAAA;QAElE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACxB,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAoB,CAAA;YACnG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA4B,CAAA;YACpD,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;YAC9C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;YACtC,WAAW,CAAC,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,MAAM,CAAA;YACjD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACtB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;gBAEtC,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,GAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAA8B,EAAE,CAAA;YAClH,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,WAAW,CAAC,UAAU,GAAG,IAAI,CAAA;YAC/B,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;YACpC,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACrC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAA;gBAC5C,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAES,8BAA8B,CAAC,aAAiC;QACxE,OAAO,EAAE,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA;IACtF,CAAC;IAEO,gBAAgB,CAAC,MAA0B;QACjD,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,yBAAyB,EAAE,GAAG,MAAM,CAAA;QAC9F,MAAM,SAAS,GAAoB;YACjC,GAAG,yBAAyB;YAC5B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAA;QAED,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,OAAO,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC9C,SAAS,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QACvD,CAAC;aAAM,IAAI,oBAAoB,IAAI,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClF,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,mBAAmB,GAAgD,EAAE,CAAA;YAC3E,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,EAAE;gBACpE,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7C,mBAAmB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;gBAC3E,CAAC;YACH,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,UAAU,GAAG,mBAAmB,CAAA;QAC5C,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;IACpD,CAAC;IAES,8BAA8B,CAAC,QAAmC;QAC1E,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,gFAAgF;YAChF,sFAAsF;YACtF,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACvD,CAAC;IAES,MAAM,CAAC,IAAe;QAC9B,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACtF,CAAC;IAED,oDAAoD;IACpD,EAAE;IACF,2EAA2E;IAC3E,qEAAqE;IACrE,mBAAmB;IACT,UAAU,CAAC,KAA2B;QAC9C,MAAM,WAAW,GAAyB,EAAE,CAAA;QAC5C,MAAM,gBAAgB,GAAqE,EAAE,CAAA;QAC7F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;oBAClC,CAAC;oBACD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;gBAC5D,CAAC;YACH,CAAC;YACD,0BAA0B;iBACrB,CAAC;gBACJ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC/C,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAChD,CAAC,CACH,CAAA;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,2BAA2B,CAAC,KAA2B;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACpC,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAuB,CAAC,CAAA;QAC7F,CAAC;IACH,CAAC;IAES,0BAA0B,CAAC,IAAoB,EAAE,KAAc;QACvE,kCAAkC;QAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,CACzD,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,KAAK;aACP,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CACpC,CACmB,CAAA;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAErD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;IAClE,CAAC;IAES,iCAAiC,CAAC,IAA2B,EAAE,KAAc;QACrF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACxF,CAAC;IAES,yBAAyB,CAAC,QAAuB,EAAE,KAAc;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE3D,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9C,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,uBAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;QAChH,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnD,MAAM,IAAI,KAAK,CAAC,6DAA6D,eAAe,EAAE,CAAC,CAAA;QACjG,CAAC;IACH,CAAC;IAES,yBAAyB,CAAC,UAA6D;QAC/F,OAAO,IAAI,CAAC,gDAAgD,CAAC,UAAU,CAAC,CAAA;IAC1E,CAAC;IAEO,oBAAoB,CAAC,aAAiC;QAC5D,IAAI,MAAuB,CAAA;QAE3B,QAAQ,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/B,KAAK,WAAW;gBACd,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,SAAS;gBACZ,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;gBAC/C,MAAK;YACP,KAAK,UAAU;gBACb,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;gBAChD,MAAK;YACP;gBACE,OAAO,IAAA,qBAAW,EAAC,aAAa,CAAC,CAAA;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACjE,CAAC;IAEO,oBAAoB,CAAC,aAAiC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAA;QACjD,OAAO;YACL,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC;YACnD,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0CAA0C,EAAE;SAClL,CAAA;IACH,CAAC;IAEO,kBAAkB,CAAC,aAA+B;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpE,MAAM,MAAM,GACV,SAAS,CAAC,IAAI,KAAK,CAAC;YAClB,CAAC,CAAC;gBACE,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,IAAI,EAAE,aAAa,CAAC,KAAK;gBACzB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;aACpD;YACH,CAAC,CAAC;gBACE,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;qBAC7D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;qBAC7D;iBACF;aACF,CAAA;QAEP,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC,YAAY,EAAE,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnG,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,YAAY,CAAA;QACxD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,mBAAmB,CAAC,aAAgC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,MAA4B,CAAA;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAA6B,CAAA;QACjG,MAAM,MAAM,GAAoB;YAC9B,GAAI,WAA+B;YACnC,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO;YACrD,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,MAAM;YACpC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,GAAG,UAAU;SACd,CAAA;QAED,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAA;QACpC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,4BAA4B,CAAC,MAAuB,EAAE,aAAiC;QAC7F,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAA;QACxC,CAAC;QAED,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAA;QACpC,CAAC;QAED,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,wBAAwB,CAAC,UAA2B;QAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACnH,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,CAAC;IAEO,aAAa,CAAC,cAAsB,EAAE,MAAmB,EAAE,QAAuB,EAAE,eAA0B;QACpH,MAAM,eAAe,GAAsB;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAA,uBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,eAAe,IAAI,CAAC,0CAA2B,CAAC,CAAA;YACtF,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAE/F,IAAI,QAAQ,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBACjD,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC1G,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAEO,oBAAoB,CAAC,cAAsB,EAAE,MAAmB,EAAE,QAAuB,EAAE,QAAkB;QACnH,MAAM,OAAO,GAA8C,EAAE,CAAA;QAE7D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,SAAS,CAAC,GAAG;gBACnB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAO,EAAE,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAoB;aAClL,CAAA;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,qBAAqB,CAAC,OAAkD,EAAE,QAAkB,EAAE,QAAwB,EAAE,aAAyC;QACvK,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;YACxG,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC,YAAY,CAAC,CAAA;YAClD,GAAG,CAAC,YAAY,IAAI,WAAW,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;YACvE,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,gBAAgB,CAAA;QAChD,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,OAAwB;QACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrC,OAAO;gBACL,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACjB,MAAM,EAAE,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAoB;oBACvE,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;aACF,CAAA;QACH,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,qBAAqB,EAAE,CAAC;YAC/C,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAkC,CAAC,SAA0C,EAAE,QAAuB,EAAE,EAAE;gBACxI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;oBACzB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAoB;oBAC7D,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;iBAClD,CAAA;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC;QAED,OAAO,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAEO,sBAAsB,CAAC,kBAAqC,EAAE,KAAc;QAClF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC/E,CAAC;QAED,MAAM,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAA;QACxC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACjD,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAEO,yBAAyB,CAAC,kBAAqC,EAAE,KAAc;QACrF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,CAAC;QAED,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC/D,CAAC;CACF;AA/xBD,wCA+xBC"}