@tsoa-next/runtime 7.1.0 → 7.2.1
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/README.MD +8 -2
- package/dist/config.d.ts +9 -2
- package/dist/decorators/example.d.ts +1 -1
- package/dist/decorators/example.js +1 -1
- package/dist/decorators/example.js.map +1 -1
- package/dist/decorators/methods.d.ts +7 -7
- package/dist/decorators/methods.js +7 -7
- package/dist/decorators/methods.js.map +1 -1
- package/dist/decorators/middlewares.d.ts +2 -1
- package/dist/decorators/middlewares.js +9 -6
- package/dist/decorators/middlewares.js.map +1 -1
- package/dist/decorators/operationid.d.ts +1 -1
- package/dist/decorators/operationid.js +1 -1
- package/dist/decorators/operationid.js.map +1 -1
- package/dist/decorators/parameter.d.ts +9 -9
- package/dist/decorators/parameter.js +9 -9
- package/dist/decorators/parameter.js.map +1 -1
- package/dist/decorators/response.d.ts +3 -3
- package/dist/decorators/response.js +3 -3
- package/dist/decorators/response.js.map +1 -1
- package/dist/decorators/route.d.ts +1 -1
- package/dist/decorators/route.js +1 -1
- package/dist/decorators/route.js.map +1 -1
- package/dist/decorators/security.d.ts +2 -2
- package/dist/decorators/security.js +1 -1
- package/dist/decorators/security.js.map +1 -1
- package/dist/decorators/tags.d.ts +1 -1
- package/dist/decorators/tags.js +1 -1
- package/dist/decorators/tags.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/interfaces/iocModule.d.ts +4 -2
- package/dist/interfaces/response.d.ts +1 -1
- package/dist/metadataGeneration/tsoa.d.ts +13 -9
- package/dist/routeGeneration/templateHelpers.d.ts +37 -20
- package/dist/routeGeneration/templateHelpers.js +76 -22
- package/dist/routeGeneration/templateHelpers.js.map +1 -1
- package/dist/routeGeneration/templates/express/expressTemplateService.d.ts +6 -4
- package/dist/routeGeneration/templates/express/expressTemplateService.js +27 -8
- package/dist/routeGeneration/templates/express/expressTemplateService.js.map +1 -1
- package/dist/routeGeneration/templates/hapi/hapiTemplateService.d.ts +20 -8
- package/dist/routeGeneration/templates/hapi/hapiTemplateService.js +58 -11
- package/dist/routeGeneration/templates/hapi/hapiTemplateService.js.map +1 -1
- package/dist/routeGeneration/templates/index.d.ts +1 -1
- package/dist/routeGeneration/templates/index.js +1 -1
- package/dist/routeGeneration/templates/index.js.map +1 -1
- package/dist/routeGeneration/templates/koa/koaTemplateService.d.ts +13 -6
- package/dist/routeGeneration/templates/koa/koaTemplateService.js +55 -13
- package/dist/routeGeneration/templates/koa/koaTemplateService.js.map +1 -1
- package/dist/routeGeneration/templates/templateService.d.ts +9 -4
- package/dist/routeGeneration/templates/templateService.js +39 -1
- package/dist/routeGeneration/templates/templateService.js.map +1 -1
- package/dist/swagger/swagger.d.ts +42 -41
- package/dist/swagger/swagger.js +4 -0
- package/dist/swagger/swagger.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,9 @@ import { ExtensionType } from '../decorators/extension';
|
|
|
2
2
|
import type { Swagger } from '../swagger/swagger';
|
|
3
3
|
import { Validator } from '..';
|
|
4
4
|
export declare namespace Tsoa {
|
|
5
|
+
export type Example = string | number | boolean | null | undefined | Date | Example[] | {
|
|
6
|
+
[exampleName: string]: Example;
|
|
7
|
+
};
|
|
5
8
|
export interface Metadata {
|
|
6
9
|
controllers: Controller[];
|
|
7
10
|
referenceTypeMap: ReferenceTypeMap;
|
|
@@ -34,9 +37,7 @@ export declare namespace Tsoa {
|
|
|
34
37
|
}
|
|
35
38
|
export interface Parameter {
|
|
36
39
|
parameterName: string;
|
|
37
|
-
example?:
|
|
38
|
-
[exampleName: string]: Swagger.Example3;
|
|
39
|
-
}>;
|
|
40
|
+
example?: Example[];
|
|
40
41
|
description?: string;
|
|
41
42
|
in: 'query' | 'queries' | 'header' | 'path' | 'formData' | 'body' | 'body-prop' | 'request' | 'request-prop' | 'res';
|
|
42
43
|
name: string;
|
|
@@ -49,15 +50,20 @@ export declare namespace Tsoa {
|
|
|
49
50
|
title?: string;
|
|
50
51
|
$ref?: Swagger.BaseSchema;
|
|
51
52
|
}
|
|
52
|
-
export interface ResParameter extends
|
|
53
|
+
export interface ResParameter extends Parameter {
|
|
53
54
|
in: 'res';
|
|
54
55
|
description: string;
|
|
56
|
+
produces?: string[];
|
|
57
|
+
schema?: Type;
|
|
58
|
+
examples?: Example[];
|
|
59
|
+
exampleLabels?: Array<string | undefined>;
|
|
60
|
+
headers?: HeaderType;
|
|
55
61
|
}
|
|
56
62
|
export interface ArrayParameter extends Parameter {
|
|
57
63
|
type: ArrayType;
|
|
58
64
|
collectionFormat?: 'csv' | 'multi' | 'pipes' | 'ssv' | 'tsv';
|
|
59
65
|
}
|
|
60
|
-
type AllKeys<T> = T extends
|
|
66
|
+
type AllKeys<T> = T extends unknown ? keyof T : never;
|
|
61
67
|
export type ValidatorKey = AllKeys<Validator>;
|
|
62
68
|
export type SchemaValidatorKey = Exclude<ValidatorKey, `is${string}` | 'minDate' | 'maxDate'>;
|
|
63
69
|
export type Validators = Partial<Record<ValidatorKey, {
|
|
@@ -73,12 +79,10 @@ export declare namespace Tsoa {
|
|
|
73
79
|
}
|
|
74
80
|
export interface Response {
|
|
75
81
|
description: string;
|
|
76
|
-
name: string;
|
|
82
|
+
name: string | number;
|
|
77
83
|
produces?: string[];
|
|
78
84
|
schema?: Type;
|
|
79
|
-
examples?:
|
|
80
|
-
[exampleName: string]: Swagger.Example3;
|
|
81
|
-
}>;
|
|
85
|
+
examples?: Example[];
|
|
82
86
|
exampleLabels?: Array<string | undefined>;
|
|
83
87
|
headers?: HeaderType;
|
|
84
88
|
}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { AdditionalProps } from './additionalProps';
|
|
2
2
|
import { TsoaRoute } from './tsoa-route';
|
|
3
|
-
export declare function ValidateParam(property: TsoaRoute.PropertySchema, value:
|
|
3
|
+
export declare function ValidateParam<TValue>(property: TsoaRoute.PropertySchema, value: TValue, generatedModels: TsoaRoute.Models, name: string | undefined, fieldErrors: FieldErrors, isBodyParam: boolean, parent: string | undefined, config: AdditionalProps): TValue;
|
|
4
4
|
export declare class ValidationService {
|
|
5
5
|
private readonly models;
|
|
6
6
|
private readonly config;
|
|
7
7
|
private validationStack;
|
|
8
8
|
constructor(models: TsoaRoute.Models, config: AdditionalProps);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
private isRecord;
|
|
10
|
+
ValidateParam<TValue>(property: TsoaRoute.PropertySchema, rawValue: TValue, name: string | undefined, fieldErrors: FieldErrors, isBodyParam: boolean, parent?: string): TValue;
|
|
11
|
+
hasCorrectJsType(value: unknown, type: 'object' | 'boolean' | 'number' | 'string', isBodyParam: boolean): boolean;
|
|
12
|
+
validateNestedObjectLiteral(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, nestedProperties: {
|
|
12
13
|
[name: string]: TsoaRoute.PropertySchema;
|
|
13
|
-
} | undefined, additionalProperties: TsoaRoute.PropertySchema | boolean | undefined, parent: string):
|
|
14
|
-
validateInt(name: string, value:
|
|
15
|
-
validateFloat(name: string, value:
|
|
14
|
+
} | undefined, additionalProperties: TsoaRoute.PropertySchema | boolean | undefined, parent: string): Record<string, unknown> | undefined;
|
|
15
|
+
validateInt(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: IntegerValidator, parent?: string): number | undefined;
|
|
16
|
+
validateFloat(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: FloatValidator, parent?: string): number | undefined;
|
|
16
17
|
validateEnum(name: string, value: unknown, fieldErrors: FieldErrors, members?: Array<string | number | boolean | null>, parent?: string): unknown;
|
|
17
|
-
validateDate(name: string, value:
|
|
18
|
-
validateDateTime(name: string, value:
|
|
19
|
-
validateString(name: string, value:
|
|
20
|
-
validateBool(name: string, value:
|
|
21
|
-
validateUndefined(name: string, value:
|
|
22
|
-
validateArray(name: string, value:
|
|
23
|
-
validateBuffer(
|
|
24
|
-
validateUnion(name: string, value:
|
|
25
|
-
validateIntersection(name: string, value:
|
|
18
|
+
validateDate(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: DateValidator, parent?: string): Date | undefined;
|
|
19
|
+
validateDateTime(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: DateTimeValidator, parent?: string): Date | undefined;
|
|
20
|
+
validateString(name: string, value: unknown, fieldErrors: FieldErrors, validators?: StringValidator, parent?: string): string | undefined;
|
|
21
|
+
validateBool(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: BooleanValidator, parent?: string): boolean | undefined;
|
|
22
|
+
validateUndefined(name: string, value: unknown, fieldErrors: FieldErrors, parent?: string): undefined;
|
|
23
|
+
validateArray(name: string, value: unknown, fieldErrors: FieldErrors, isBodyParam: boolean, schema?: TsoaRoute.PropertySchema, validators?: ArrayValidator, parent?: string): unknown[] | undefined;
|
|
24
|
+
validateBuffer(name: string, value: unknown, fieldErrors: FieldErrors, parent?: string): Buffer | undefined;
|
|
25
|
+
validateUnion<TValue>(name: string, value: TValue, fieldErrors: FieldErrors, isBodyParam: boolean, property: TsoaRoute.PropertySchema, parent?: string): TValue;
|
|
26
|
+
validateIntersection<TValue>(name: string, value: TValue, fieldErrors: FieldErrors, isBodyParam: boolean, subSchemas: TsoaRoute.PropertySchema[] | undefined, parent?: string): TValue;
|
|
26
27
|
private toModelLike;
|
|
27
28
|
/**
|
|
28
29
|
* combine all schemas once, ignoring order ie
|
|
@@ -45,14 +46,14 @@ export declare class ValidationService {
|
|
|
45
46
|
private getAllCombinations;
|
|
46
47
|
private combineProperties;
|
|
47
48
|
private getExcessPropertiesFor;
|
|
48
|
-
validateModel(input: {
|
|
49
|
+
validateModel<TValue>(input: {
|
|
49
50
|
name: string;
|
|
50
|
-
value:
|
|
51
|
+
value: TValue;
|
|
51
52
|
modelDefinition: TsoaRoute.ModelSchema;
|
|
52
53
|
fieldErrors: FieldErrors;
|
|
53
54
|
isBodyParam: boolean;
|
|
54
55
|
parent?: string;
|
|
55
|
-
}):
|
|
56
|
+
}): TValue;
|
|
56
57
|
/**
|
|
57
58
|
* Creates a new ValidationService instance with specific configuration
|
|
58
59
|
* @param overrides Configuration overrides
|
|
@@ -99,6 +100,14 @@ export interface IntegerValidator {
|
|
|
99
100
|
value: number;
|
|
100
101
|
errorMsg?: string;
|
|
101
102
|
};
|
|
103
|
+
exclusiveMinimum?: {
|
|
104
|
+
value: number;
|
|
105
|
+
errorMsg?: string;
|
|
106
|
+
};
|
|
107
|
+
exclusiveMaximum?: {
|
|
108
|
+
value: number;
|
|
109
|
+
errorMsg?: string;
|
|
110
|
+
};
|
|
102
111
|
}
|
|
103
112
|
export interface FloatValidator {
|
|
104
113
|
isFloat?: {
|
|
@@ -115,6 +124,14 @@ export interface FloatValidator {
|
|
|
115
124
|
value: number;
|
|
116
125
|
errorMsg?: string;
|
|
117
126
|
};
|
|
127
|
+
exclusiveMinimum?: {
|
|
128
|
+
value: number;
|
|
129
|
+
errorMsg?: string;
|
|
130
|
+
};
|
|
131
|
+
exclusiveMaximum?: {
|
|
132
|
+
value: number;
|
|
133
|
+
errorMsg?: string;
|
|
134
|
+
};
|
|
118
135
|
}
|
|
119
136
|
export interface DateValidator {
|
|
120
137
|
isDate?: {
|
|
@@ -188,7 +205,7 @@ export type Validator = IntegerValidator | FloatValidator | DateValidator | Date
|
|
|
188
205
|
export interface FieldErrors {
|
|
189
206
|
[name: string]: {
|
|
190
207
|
message: string;
|
|
191
|
-
value?:
|
|
208
|
+
value?: unknown;
|
|
192
209
|
};
|
|
193
210
|
}
|
|
194
211
|
export interface Exception extends Error {
|
|
@@ -8,7 +8,6 @@ exports.ValidateParam = ValidateParam;
|
|
|
8
8
|
const validator_1 = __importDefault(require("validator"));
|
|
9
9
|
const assertNever_1 = require("../utils/assertNever");
|
|
10
10
|
const tsoa_route_1 = require("./tsoa-route");
|
|
11
|
-
// for backwards compatibility with custom templates
|
|
12
11
|
function ValidateParam(property, value, generatedModels, name = '', fieldErrors, isBodyParam, parent = '', config) {
|
|
13
12
|
return new ValidationService(generatedModels, config).ValidateParam(property, value, name, fieldErrors, isBodyParam, parent);
|
|
14
13
|
}
|
|
@@ -20,6 +19,9 @@ class ValidationService {
|
|
|
20
19
|
this.models = models;
|
|
21
20
|
this.config = config;
|
|
22
21
|
}
|
|
22
|
+
isRecord(value) {
|
|
23
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
24
|
+
}
|
|
23
25
|
ValidateParam(property, rawValue, name = '', fieldErrors, isBodyParam, parent = '') {
|
|
24
26
|
let value = rawValue;
|
|
25
27
|
// If undefined is allowed type, we can move to value validation
|
|
@@ -70,7 +72,7 @@ class ValidationService {
|
|
|
70
72
|
case 'datetime':
|
|
71
73
|
return this.validateDateTime(name, value, fieldErrors, isBodyParam, property.validators, parent);
|
|
72
74
|
case 'buffer':
|
|
73
|
-
return this.validateBuffer(name, value);
|
|
75
|
+
return this.validateBuffer(name, value, fieldErrors, parent);
|
|
74
76
|
case 'union':
|
|
75
77
|
return this.validateUnion(name, value, fieldErrors, isBodyParam, property, parent);
|
|
76
78
|
case 'intersection':
|
|
@@ -103,7 +105,7 @@ class ValidationService {
|
|
|
103
105
|
return !isBodyParam || this.config.bodyCoercion || typeof value === type;
|
|
104
106
|
}
|
|
105
107
|
validateNestedObjectLiteral(name, value, fieldErrors, isBodyParam, nestedProperties, additionalProperties, parent) {
|
|
106
|
-
if (
|
|
108
|
+
if (!this.isRecord(value)) {
|
|
107
109
|
fieldErrors[parent + name] = {
|
|
108
110
|
message: `invalid object`,
|
|
109
111
|
value,
|
|
@@ -141,7 +143,7 @@ class ValidationService {
|
|
|
141
143
|
value[key] = validatedProp;
|
|
142
144
|
}
|
|
143
145
|
});
|
|
144
|
-
if (typeof additionalProperties === 'object'
|
|
146
|
+
if (typeof additionalProperties === 'object') {
|
|
145
147
|
const keys = Object.keys(value).filter(key => typeof nestedProperties[key] === 'undefined');
|
|
146
148
|
keys.forEach(key => {
|
|
147
149
|
const validatedProp = this.ValidateParam(additionalProperties, value[key], key, fieldErrors, isBodyParam, parent + name + '.');
|
|
@@ -186,6 +188,15 @@ class ValidationService {
|
|
|
186
188
|
return;
|
|
187
189
|
}
|
|
188
190
|
}
|
|
191
|
+
if (validators.exclusiveMinimum && validators.exclusiveMinimum.value !== undefined) {
|
|
192
|
+
if (validators.exclusiveMinimum.value >= numberValue) {
|
|
193
|
+
fieldErrors[parent + name] = {
|
|
194
|
+
message: validators.exclusiveMinimum.errorMsg || `exclusiveMin ${validators.exclusiveMinimum.value}`,
|
|
195
|
+
value,
|
|
196
|
+
};
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
189
200
|
if (validators.maximum && validators.maximum.value !== undefined) {
|
|
190
201
|
if (validators.maximum.value < numberValue) {
|
|
191
202
|
fieldErrors[parent + name] = {
|
|
@@ -195,6 +206,15 @@ class ValidationService {
|
|
|
195
206
|
return;
|
|
196
207
|
}
|
|
197
208
|
}
|
|
209
|
+
if (validators.exclusiveMaximum && validators.exclusiveMaximum.value !== undefined) {
|
|
210
|
+
if (validators.exclusiveMaximum.value <= numberValue) {
|
|
211
|
+
fieldErrors[parent + name] = {
|
|
212
|
+
message: validators.exclusiveMaximum.errorMsg || `exclusiveMax ${validators.exclusiveMaximum.value}`,
|
|
213
|
+
value,
|
|
214
|
+
};
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
198
218
|
return numberValue;
|
|
199
219
|
}
|
|
200
220
|
validateFloat(name, value, fieldErrors, isBodyParam, validators, parent = '') {
|
|
@@ -227,6 +247,15 @@ class ValidationService {
|
|
|
227
247
|
return;
|
|
228
248
|
}
|
|
229
249
|
}
|
|
250
|
+
if (validators.exclusiveMinimum && validators.exclusiveMinimum.value !== undefined) {
|
|
251
|
+
if (validators.exclusiveMinimum.value >= numberValue) {
|
|
252
|
+
fieldErrors[parent + name] = {
|
|
253
|
+
message: validators.exclusiveMinimum.errorMsg || `exclusiveMin ${validators.exclusiveMinimum.value}`,
|
|
254
|
+
value,
|
|
255
|
+
};
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
230
259
|
if (validators.maximum && validators.maximum.value !== undefined) {
|
|
231
260
|
if (validators.maximum.value < numberValue) {
|
|
232
261
|
fieldErrors[parent + name] = {
|
|
@@ -236,6 +265,15 @@ class ValidationService {
|
|
|
236
265
|
return;
|
|
237
266
|
}
|
|
238
267
|
}
|
|
268
|
+
if (validators.exclusiveMaximum && validators.exclusiveMaximum.value !== undefined) {
|
|
269
|
+
if (validators.exclusiveMaximum.value <= numberValue) {
|
|
270
|
+
fieldErrors[parent + name] = {
|
|
271
|
+
message: validators.exclusiveMaximum.errorMsg || `exclusiveMax ${validators.exclusiveMaximum.value}`,
|
|
272
|
+
value,
|
|
273
|
+
};
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
239
277
|
return numberValue;
|
|
240
278
|
}
|
|
241
279
|
validateEnum(name, value, fieldErrors, members, parent = '') {
|
|
@@ -415,11 +453,13 @@ class ValidationService {
|
|
|
415
453
|
const previousErrors = Object.keys(fieldErrors).length;
|
|
416
454
|
if (Array.isArray(value)) {
|
|
417
455
|
arrayValue = value.map((elementValue, index) => {
|
|
418
|
-
|
|
456
|
+
const validatedElement = this.ValidateParam(schema, elementValue, `$${index}`, fieldErrors, isBodyParam, name + '.');
|
|
457
|
+
return validatedElement;
|
|
419
458
|
});
|
|
420
459
|
}
|
|
421
460
|
else {
|
|
422
|
-
|
|
461
|
+
const validatedElement = this.ValidateParam(schema, value, '$0', fieldErrors, isBodyParam, name + '.');
|
|
462
|
+
arrayValue = [validatedElement];
|
|
423
463
|
}
|
|
424
464
|
if (Object.keys(fieldErrors).length > previousErrors) {
|
|
425
465
|
return;
|
|
@@ -460,8 +500,21 @@ class ValidationService {
|
|
|
460
500
|
}
|
|
461
501
|
return arrayValue;
|
|
462
502
|
}
|
|
463
|
-
validateBuffer(
|
|
464
|
-
|
|
503
|
+
validateBuffer(name, value, fieldErrors, parent = '') {
|
|
504
|
+
if (Buffer.isBuffer(value)) {
|
|
505
|
+
return value;
|
|
506
|
+
}
|
|
507
|
+
if (typeof value === 'string') {
|
|
508
|
+
return Buffer.from(value);
|
|
509
|
+
}
|
|
510
|
+
if (value instanceof Uint8Array) {
|
|
511
|
+
return Buffer.from(value);
|
|
512
|
+
}
|
|
513
|
+
fieldErrors[parent + name] = {
|
|
514
|
+
message: 'invalid buffer value',
|
|
515
|
+
value,
|
|
516
|
+
};
|
|
517
|
+
return;
|
|
465
518
|
}
|
|
466
519
|
validateUnion(name, value, fieldErrors, isBodyParam, property, parent = '') {
|
|
467
520
|
if (!property.subSchemas) {
|
|
@@ -497,10 +550,12 @@ class ValidationService {
|
|
|
497
550
|
const cleanValue = this.createChildValidationService({
|
|
498
551
|
noImplicitAdditionalProperties: 'silently-remove-extras',
|
|
499
552
|
}).ValidateParam(subSchema, this.deepClone(value), name, subFieldError, isBodyParam, parent);
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
553
|
+
if (this.isRecord(cleanValue)) {
|
|
554
|
+
cleanValues = {
|
|
555
|
+
...cleanValues,
|
|
556
|
+
...cleanValue,
|
|
557
|
+
};
|
|
558
|
+
}
|
|
504
559
|
subFieldErrors.push(subFieldError);
|
|
505
560
|
});
|
|
506
561
|
const filtered = subFieldErrors.filter(subFieldError => Object.keys(subFieldError).length !== 0);
|
|
@@ -524,7 +579,7 @@ class ValidationService {
|
|
|
524
579
|
};
|
|
525
580
|
const schemasWithRequiredProps = schemas.filter(schema => Object.keys(getRequiredPropError(schema)).length === 0);
|
|
526
581
|
if (this.config.noImplicitAdditionalProperties === 'ignore') {
|
|
527
|
-
return { ...value, ...cleanValues };
|
|
582
|
+
return this.isRecord(value) ? { ...value, ...cleanValues } : cleanValues;
|
|
528
583
|
}
|
|
529
584
|
if (this.config.noImplicitAdditionalProperties === 'silently-remove-extras') {
|
|
530
585
|
if (schemasWithRequiredProps.length > 0) {
|
|
@@ -538,7 +593,7 @@ class ValidationService {
|
|
|
538
593
|
return;
|
|
539
594
|
}
|
|
540
595
|
}
|
|
541
|
-
if (schemasWithRequiredProps.length > 0 && schemasWithRequiredProps.some(schema => this.getExcessPropertiesFor(schema, Object.keys(value)).length === 0)) {
|
|
596
|
+
if (this.isRecord(value) && schemasWithRequiredProps.length > 0 && schemasWithRequiredProps.some(schema => this.getExcessPropertiesFor(schema, Object.keys(value)).length === 0)) {
|
|
542
597
|
return cleanValues;
|
|
543
598
|
}
|
|
544
599
|
else {
|
|
@@ -654,7 +709,7 @@ class ValidationService {
|
|
|
654
709
|
return this.ValidateParam(modelDefinition.type, value, name, fieldErrors, isBodyParam, parent);
|
|
655
710
|
}
|
|
656
711
|
const fieldPath = parent + name;
|
|
657
|
-
if (
|
|
712
|
+
if (!this.isRecord(value)) {
|
|
658
713
|
fieldErrors[fieldPath] = {
|
|
659
714
|
message: `invalid object`,
|
|
660
715
|
value,
|
|
@@ -754,14 +809,13 @@ class ValidationService {
|
|
|
754
809
|
return new Date(obj.getTime());
|
|
755
810
|
}
|
|
756
811
|
if (obj instanceof RegExp) {
|
|
757
|
-
|
|
812
|
+
// Preserve the existing instance instead of reconstructing a pattern from untrusted data.
|
|
813
|
+
return obj;
|
|
758
814
|
}
|
|
759
|
-
if (obj
|
|
760
|
-
const
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
return cloneArr;
|
|
815
|
+
if (Array.isArray(obj)) {
|
|
816
|
+
const arrayValues = obj;
|
|
817
|
+
const clonedArray = arrayValues.map(value => this.deepClone(value));
|
|
818
|
+
return clonedArray;
|
|
765
819
|
}
|
|
766
820
|
if (Buffer && obj instanceof Buffer) {
|
|
767
821
|
return Buffer.from(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateHelpers.js","sourceRoot":"","sources":["../../src/routeGeneration/templateHelpers.ts"],"names":[],"mappings":";;;;;;AAQA,sCAWC;AAnBD,0DAAiC;AACjC,sDAAkD;AAElD,6CAAiF;AAIjF,oDAAoD;AACpD,SAAgB,aAAa,CAC3B,QAAkC,EAClC,KAAU,EACV,eAAiC,EACjC,IAAI,GAAG,EAAE,EACT,WAAwB,EACxB,WAAoB,EACpB,MAAM,GAAG,EAAE,EACX,MAAuB;IAEvB,OAAO,IAAI,iBAAiB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;AAC9H,CAAC;AAED,MAAa,iBAAiB;IAIT;IACA;IAJX,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAA;IAEhD,YACmB,MAAwB,EACxB,MAAuB;QADvB,WAAM,GAAN,MAAM,CAAkB;QACxB,WAAM,GAAN,MAAM,CAAiB;IACvC,CAAC;IAEG,aAAa,CAAC,QAAkC,EAAE,QAAa,EAAE,IAAI,GAAG,EAAE,EAAE,WAAwB,EAAE,WAAoB,EAAE,MAAM,GAAG,EAAE;QAC5I,IAAI,KAAK,GAAG,QAAQ,CAAA;QACpB,gEAAgE;QAChE,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7D,uHAAuH;YACvH,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC;gBACpI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC1B,CAAC;iBAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC7B,mFAAmF;gBACnF,IAAI,OAAO,GAAG,IAAI,IAAI,eAAe,CAAA;gBACrC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;oBACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;wBAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAmB,CAAC,EAAE,QAAQ,CAAA;wBAC1D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;4BACrC,OAAO,GAAG,QAAQ,CAAA;wBACpB,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO;oBACP,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA6B,EAAE,MAAM,CAAC,CAAA;YACtG,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA8B,EAAE,MAAM,CAAC,CAAA;YAClH,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA8B,EAAE,MAAM,CAAC,CAAA;YACjH,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA4B,EAAE,MAAM,CAAC,CAAA;YACjH,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC5E,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAA4B,EAAE,MAAM,CAAC,CAAA;YACjI,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA2B,EAAE,MAAM,CAAC,CAAA;YAC/G,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAA+B,EAAE,MAAM,CAAC,CAAA;YACvH,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACzC,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;YACpF,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACtG,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YACjE,KAAK,KAAK;gBACR,OAAO,KAAK,CAAA;YACd,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;YAClJ;gBACE,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACjB,uDAAuD;oBACvD,MAAM,OAAO,GAAG,GAAG,MAAM,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAA;oBAClD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtC,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACjC,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC1H,CAAC;4BAAS,CAAC;wBACT,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBACtC,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,KAAU,EAAE,IAAgD,EAAE,WAAoB;QACxG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,KAAK,KAAK,IAAI,CAAA;IAC1E,CAAC;IAEM,2BAA2B,CAChC,IAAY,EACZ,KAAU,EACV,WAAwB,EACxB,WAAoB,EACpB,gBAA0E,EAC1E,oBAAoE,EACpE,MAAc;QAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO,EAAE,gBAAgB;gBACzB,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;QAEtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,uBAAuB;gBACrB,yGAAyG;gBACzG,sBAAsB;gBACtB,4EAA4E,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAA;QAC/D,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAClJ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,YAAY,KAAK,wBAAwB,EAAE,CAAC;oBAC9C,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;wBAC/B,OAAO,KAAK,CAAC,UAAU,CAAC,CAAA;oBAC1B,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,IAAI,YAAY,KAAK,iBAAiB,EAAE,CAAC;oBACvC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;wBAC3B,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,sDAAsD;wBACxF,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;qBAC5F,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;YAE/H,qGAAqG;YACrG,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtH,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,OAAO,oBAAoB,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAA;YAC3F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;gBAC9H,qGAAqG;gBACrG,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAK,WAAW,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpH,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAA;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACrD,OAAM;QACR,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,WAAW,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAA6B,EAAE,MAAM,GAAG,EAAE;QACrI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5F,IAAI,OAAO,GAAG,wBAAwB,CAAA;YACtC,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAClD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAA;gBACrC,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpD,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,mBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzE,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzE,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAA2B,EAAE,MAAM,GAAG,EAAE;QACrI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9F,IAAI,OAAO,GAAG,sBAAsB,CAAA;YACpC,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACtD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAA;gBACvC,CAAC;gBACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACxD,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAA;gBACxC,CAAC;YACH,CAAC;YACD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,mBAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzE,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzE,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,KAAc,EAAE,WAAwB,EAAE,OAAiD,EAAE,MAAM,GAAG,EAAE;QACxI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO,EAAE,WAAW;gBACpB,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEzH,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC5G,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO,EAAE,oCAAoC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACzE,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAA0B,EAAE,MAAM,GAAG,EAAE;QACnI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAClH,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,+CAA+C,CAAA;YAC5J,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;oBAC/E,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;oBAC/E,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEM,gBAAgB,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAA8B,EAAE,MAAM,GAAG,EAAE;QAC3I,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAClH,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,4DAA4D,CAAA;YACrL,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;oBAC/E,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;oBAC/E,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IAEM,cAAc,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,UAA4B,EAAE,MAAM,GAAG,EAAE;QACjH,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAA;YACzI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrE,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE;oBACnF,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrE,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE;oBACnF,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,mBAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;oBACpF,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAA6B,EAAE,MAAM,GAAG,EAAE;QACtI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAA;YACd,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAA;QAC7I,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;YAC3B,OAAO;YACP,KAAK;SACN,CAAA;QACD,OAAM;IACR,CAAC;IAEM,iBAAiB,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,MAAM,GAAG,EAAE;QACtF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,yBAAyB,CAAA;QACzC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;YAC3B,OAAO;YACP,KAAK;SACN,CAAA;QACD,OAAM;IACR,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,KAAY,EAAE,WAAwB,EAAE,WAAoB,EAAE,MAAiC,EAAE,UAA2B,EAAE,MAAM,GAAG,EAAE;QAC1K,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACnH,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAA;YAC/H,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,UAAU,GAAG,EAAW,CAAA;QAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;gBAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,GAAG,GAAG,CAAC,CAAA;YACpG,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACrD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;oBAChF,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClD,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,IAAI,YAAY,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;oBAChF,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACjC,OAAO,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,KAAK,KAAK,CAAA;YAC1C,CAAC,CAAC,CAAA;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,IAAI,uBAAuB;oBACnE,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEM,cAAc,CAAC,KAAa,EAAE,KAAa;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,QAAkC,EAAE,MAAM,GAAG,EAAE;QAC5I,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,uBAAuB;gBACrB,0GAA0G;gBAC1G,4EAA4E,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,cAAc,GAAkB,EAAE,CAAA;QAExC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAgB,EAAE,CAAA;YAErC,iFAAiF;YACjF,uEAAuE;YACvE,MAAM,iBAAiB,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YACrL,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAElC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,UAAU,CAAA;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,8DAA8D,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;QAC1I,OAAM;IACR,CAAC;IAEM,oBAAoB,CAAC,IAAY,EAAE,KAAU,EAAE,WAAwB,EAAE,WAAoB,EAAE,UAAkD,EAAE,MAAM,GAAG,EAAE;QACnK,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,uBAAuB;gBACrB,iHAAiH;gBACjH,4EAA4E,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,cAAc,GAAkB,EAAE,CAAA;QACxC,IAAI,WAAW,GAAG,EAAE,CAAA;QAEpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,aAAa,GAAgB,EAAE,CAAA;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC;gBACnD,8BAA8B,EAAE,wBAAwB;aACzD,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAC5F,WAAW,GAAG;gBACZ,GAAG,WAAW;gBACd,GAAG,UAAU;aACd,CAAA;YACD,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QAEhG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,+DAA+D,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YACrI,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAE3G,MAAM,oBAAoB,GAAG,CAAC,MAA6B,EAAE,EAAE;YAC7D,MAAM,iBAAiB,GAAG,EAAE,CAAA;YAC5B,IAAI,CAAC,4BAA4B,CAAC;gBAChC,8BAA8B,EAAE,QAAQ;aACzC,CAAC,CAAC,aAAa,CAAC;gBACf,IAAI;gBACJ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5B,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,iBAAiB;gBAC9B,WAAW;aACZ,CAAC,CAAA;YACF,OAAO,iBAAiB,CAAA;QAC1B,CAAC,CAAA;QAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QAEjH,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,WAAW,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,wBAAwB,EAAE,CAAC;YAC5E,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,WAAW,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;oBAC3B,OAAO,EAAE,0EAA0E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBAChJ,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACzJ,OAAO,WAAW,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;gBAC3B,OAAO,EAAE,0EAA0E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBAChJ,KAAK;aACN,CAAA;YACD,OAAM;QACR,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,MAAgC;QAClD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC1C,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;YAC7G,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACnC,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAA;QAC5H,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YACnE,MAAM,OAAO,GAAuC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;YAEnH,OAAO,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAuC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;YACnH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,4BAA4B,CAAC,aAAiD;QACpF,MAAM,GAAG,GAAqC,EAAE,CAAA;QAChD,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QAE3D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,0CAA0C;YAC1C,IAAI,gBAAgB,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5C,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;gBAC7E,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA;YAC/F,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,kBAAkB,CAAI,MAAa;QACzC,SAAS,OAAO,CAAC,OAAY,EAAE,KAAa;YAC1C,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9B,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;gBAC3B,OAAO,CAAC,GAAG,EAAE,CAAA;YACf,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACd,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,iBAAiB,CAAC,CAAiC,EAAE,CAAiC;QAC5F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,oBAAoB,IAAI,KAAK,EAAE,CAAA;IACrK,CAAC;IAEO,sBAAsB,CAAC,eAA+C,EAAE,UAAoB;QAClG,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;QAExE,IAAI,eAAe,CAAC,oBAAoB,EAAE,CAAC;YACzC,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,QAAQ,EAAE,CAAC;YACnE,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,KAA4I;QAC/J,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,KAAK,CAAA;QACrF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;QAEtD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACnF,CAAC;YAED,IAAI,eAAe,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAChG,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAA;YAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,WAAW,CAAC,SAAS,CAAC,GAAG;oBACvB,OAAO,EAAE,gBAAgB;oBACzB,KAAK;iBACN,CAAA;gBACD,OAAM;YACR,CAAC;YAED,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,IAAI,EAAE,CAAA;YACnD,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YACxE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAEvD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACrD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,GAAG,GAAG,CAAC,CAAA;gBAE/G,qGAAqG;gBACrG,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7F,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,CAAA;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,kBAAkB,GAAG,CAAC,0BAAkC,EAAE,EAAE;gBAChE,OAAO,mBAAmB,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAChI,CAAC,CAAA;YAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAA;YAEjE,IAAI,oBAAoB,KAAK,IAAI,IAAI,IAAA,oDAAuC,EAAC,oBAAoB,CAAC,EAAE,CAAC;gBACnG,uDAAuD;YACzD,CAAC;iBAAM,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,iBAAiB,EAAE,CAAC;4BACrE,WAAW,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,GAAG;gCACnC,OAAO,EAAE,IAAI,GAAG,sDAAsD;gCACtE,KAAK,EAAE,GAAG;6BACX,CAAA;wBACH,CAAC;6BAAM,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,wBAAwB,EAAE,CAAC;4BACnF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;wBACnB,CAAC;6BAAM,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,KAAK,QAAQ,EAAE,CAAC;4BACnE,8CAA8C;wBAChD,CAAC;6BAAM,CAAC;4BACN,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAA;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,GAAG,GAAG,CAAC,CAAA;wBAC3H,qGAAqG;wBACrG,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAK,WAAW,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrH,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,CAAA;wBAC7B,CAAC;6BAAM,CAAC;4BACN,WAAW,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,GAAG;gCACnC,OAAO,EAAE,+DAA+D,GAAG,EAAE;gCAC7E,KAAK,EAAE,GAAG;6BACX,CAAA;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACrD,OAAM;QACR,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACK,4BAA4B,CAAC,YAAsC,EAAE;QAC3E,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE;YACxC,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,SAAS;SACb,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CAAI,GAAM;QACzB,2BAA2B;QAC3B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,GAAG,CAAA;QACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAQ,CAAA;QACvC,CAAC;QAED,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAQ,CAAA;QACjD,CAAC;QAED,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAU,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,QAAe,CAAA;QACxB,CAAC;QAED,IAAI,MAAM,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAQ,CAAA;QAChC,CAAC;QAED,uBAAuB;QACvB,MAAM,QAAQ,GAAQ,EAAE,CAAA;QACxB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CAAC,WAAwB,EAAE,QAAgB,EAAE,MAAc,EAAE,SAAwB,EAAE,KAAU;QACzH,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1H,WAAW,CAAC,QAAQ,CAAC,GAAG;YACtB,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE;YAChF,KAAK;SACN,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACK,yBAAyB,CAAC,MAAqB,EAAE,SAAkB;QACzE,MAAM,kBAAkB,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAA;QAElF,uCAAuC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;QAChC,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,kCAAkC;QAClC,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,IAAI,cAAc,GAAG,CAAC,CAAA;QAEtB,0DAA0D;QAC1D,MAAM,eAAe,GAAG,WAAW,UAAU,eAAe,CAAA;QAC5D,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,GAAG,EAAE,CAAA,CAAC,wBAAwB;QAE1E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,eAAe,GAAG,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,6CAA6C;YAExI,IAAI,eAAe,GAAG,aAAa,GAAG,kBAAkB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACtB,aAAa,GAAG,eAAe,CAAA;gBAC/B,cAAc,EAAE,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAK;YACP,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,cAAc,GAAG,UAAU,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,UAAU,GAAG,cAAc,eAAe,CAAA;YACzF,sCAAsC;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;gBACvC,yDAAyD;gBACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,EAAE,CAAA;oBACb,cAAc,EAAE,CAAA;oBAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,UAAU,GAAG,cAAc,eAAe,CAAA;gBACnF,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAl5BD,8CAk5BC;AAyDD,MAAa,aAAc,SAAQ,KAAK;IAK7B;IACA;IALF,MAAM,GAAG,GAAG,CAAA;IACZ,IAAI,GAAG,eAAe,CAAA;IAE7B,YACS,MAAmB,EACnB,OAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,WAAM,GAAN,MAAM,CAAa;QACnB,YAAO,GAAP,OAAO,CAAQ;QAGtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;CACF;AAXD,sCAWC"}
|
|
1
|
+
{"version":3,"file":"templateHelpers.js","sourceRoot":"","sources":["../../src/routeGeneration/templateHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,13 @@ import { Request as ExRequest, Response as ExResponse, NextFunction as ExNext }
|
|
|
2
2
|
import { Controller } from '../../../interfaces/controller';
|
|
3
3
|
import { TsoaRoute } from '../../tsoa-route';
|
|
4
4
|
import { TemplateService } from '../templateService';
|
|
5
|
+
type HeaderRecord = Record<string, string | string[] | undefined>;
|
|
5
6
|
type ExpressApiHandlerParameters = {
|
|
6
7
|
methodName: string;
|
|
7
8
|
controller: Controller | object;
|
|
8
9
|
response: ExResponse;
|
|
9
10
|
next: ExNext;
|
|
10
|
-
validatedArgs:
|
|
11
|
+
validatedArgs: unknown[];
|
|
11
12
|
successStatus?: number;
|
|
12
13
|
};
|
|
13
14
|
type ExpressValidationArgsParameters = {
|
|
@@ -17,13 +18,14 @@ type ExpressValidationArgsParameters = {
|
|
|
17
18
|
};
|
|
18
19
|
type ExpressReturnHandlerParameters = {
|
|
19
20
|
response: ExResponse;
|
|
20
|
-
headers:
|
|
21
|
+
headers: HeaderRecord | undefined;
|
|
21
22
|
statusCode?: number;
|
|
22
|
-
data?:
|
|
23
|
+
data?: unknown;
|
|
23
24
|
};
|
|
24
25
|
export declare class ExpressTemplateService extends TemplateService<ExpressApiHandlerParameters, ExpressValidationArgsParameters, ExpressReturnHandlerParameters> {
|
|
25
26
|
apiHandler(params: ExpressApiHandlerParameters): Promise<void>;
|
|
26
|
-
getValidatedArgs(params: ExpressValidationArgsParameters):
|
|
27
|
+
getValidatedArgs(params: ExpressValidationArgsParameters): unknown[];
|
|
27
28
|
protected returnHandler(params: ExpressReturnHandlerParameters): void;
|
|
29
|
+
private isReadableStream;
|
|
28
30
|
}
|
|
29
31
|
export {};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExpressTemplateService = void 0;
|
|
4
4
|
const templateHelpers_1 = require("../../templateHelpers");
|
|
5
5
|
const templateService_1 = require("../templateService");
|
|
6
|
+
const node_stream_1 = require("node:stream");
|
|
6
7
|
class ExpressTemplateService extends templateService_1.TemplateService {
|
|
7
8
|
async apiHandler(params) {
|
|
8
9
|
const { methodName, controller, response, validatedArgs, successStatus, next } = params;
|
|
@@ -43,7 +44,8 @@ class ExpressTemplateService extends templateService_1.TemplateService {
|
|
|
43
44
|
return this.validationService.ValidateParam(param, request.header(name), name, fieldErrors, false, undefined);
|
|
44
45
|
case 'body': {
|
|
45
46
|
const bodyFieldErrors = {};
|
|
46
|
-
const
|
|
47
|
+
const normalizedBody = this.normalizeRequestBody(request.body, request.headers);
|
|
48
|
+
const bodyArgs = this.validationService.ValidateParam(param, normalizedBody, name, bodyFieldErrors, true, undefined);
|
|
47
49
|
Object.keys(bodyFieldErrors).forEach(key => {
|
|
48
50
|
fieldErrors[key] = { message: bodyFieldErrors[key].message };
|
|
49
51
|
});
|
|
@@ -51,7 +53,8 @@ class ExpressTemplateService extends templateService_1.TemplateService {
|
|
|
51
53
|
}
|
|
52
54
|
case 'body-prop': {
|
|
53
55
|
const bodyPropFieldErrors = {};
|
|
54
|
-
const
|
|
56
|
+
const bodyPropValue = this.getBodyProperty(request.body, request.headers, name);
|
|
57
|
+
const bodyPropArgs = this.validationService.ValidateParam(param, bodyPropValue, name, bodyPropFieldErrors, true, 'body.');
|
|
55
58
|
Object.keys(bodyPropFieldErrors).forEach(key => {
|
|
56
59
|
fieldErrors[key] = { message: bodyPropFieldErrors[key].message };
|
|
57
60
|
});
|
|
@@ -65,14 +68,21 @@ class ExpressTemplateService extends templateService_1.TemplateService {
|
|
|
65
68
|
if (param.dataType === 'array') {
|
|
66
69
|
return fileArgs;
|
|
67
70
|
}
|
|
68
|
-
|
|
71
|
+
if (Array.isArray(fileArgs) && fileArgs.length === 1) {
|
|
72
|
+
const firstFile = fileArgs[0];
|
|
73
|
+
return firstFile;
|
|
74
|
+
}
|
|
75
|
+
return fileArgs;
|
|
69
76
|
}
|
|
70
|
-
|
|
77
|
+
const bodyValue = this.isRecord(request.body) ? request.body[name] : undefined;
|
|
78
|
+
return this.validationService.ValidateParam(param, bodyValue, name, fieldErrors, false, undefined);
|
|
71
79
|
}
|
|
72
80
|
case 'res':
|
|
73
|
-
return (status, data, headers) => {
|
|
81
|
+
return ((status, data, headers) => {
|
|
74
82
|
this.returnHandler({ response, headers, statusCode: status, data });
|
|
75
|
-
};
|
|
83
|
+
});
|
|
84
|
+
default:
|
|
85
|
+
return undefined;
|
|
76
86
|
}
|
|
77
87
|
});
|
|
78
88
|
if (Object.keys(fieldErrors).length > 0) {
|
|
@@ -88,11 +98,14 @@ class ExpressTemplateService extends templateService_1.TemplateService {
|
|
|
88
98
|
return;
|
|
89
99
|
}
|
|
90
100
|
Object.keys(headers).forEach((name) => {
|
|
91
|
-
|
|
101
|
+
const headerValue = headers[name];
|
|
102
|
+
if (headerValue !== undefined) {
|
|
103
|
+
response.set(name, headerValue);
|
|
104
|
+
}
|
|
92
105
|
});
|
|
93
106
|
// Check if the response is marked to be JSON
|
|
94
107
|
const isJsonResponse = response.get('Content-Type')?.includes('json') || false;
|
|
95
|
-
if (
|
|
108
|
+
if (this.isReadableStream(data)) {
|
|
96
109
|
response.status(statusCode || 200);
|
|
97
110
|
data.pipe(response);
|
|
98
111
|
}
|
|
@@ -113,6 +126,12 @@ class ExpressTemplateService extends templateService_1.TemplateService {
|
|
|
113
126
|
response.status(statusCode || 204).end();
|
|
114
127
|
}
|
|
115
128
|
}
|
|
129
|
+
isReadableStream(data) {
|
|
130
|
+
if (!this.isRecord(data)) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return typeof data.pipe === 'function' && (data instanceof node_stream_1.Readable || data.readable === true || typeof data._read === 'function');
|
|
134
|
+
}
|
|
116
135
|
}
|
|
117
136
|
exports.ExpressTemplateService = ExpressTemplateService;
|
|
118
137
|
//# sourceMappingURL=expressTemplateService.js.map
|