@typespec/openapi3 0.64.0-dev.1 → 0.64.0-dev.4

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 (57) hide show
  1. package/README.md +4 -0
  2. package/dist/src/attach-extensions.d.ts +3 -0
  3. package/dist/src/attach-extensions.d.ts.map +1 -0
  4. package/dist/src/attach-extensions.js +11 -0
  5. package/dist/src/attach-extensions.js.map +1 -0
  6. package/dist/src/encoding.d.ts +2 -2
  7. package/dist/src/encoding.d.ts.map +1 -1
  8. package/dist/src/encoding.js +3 -2
  9. package/dist/src/encoding.js.map +1 -1
  10. package/dist/src/json-schema.d.ts +3 -0
  11. package/dist/src/json-schema.d.ts.map +1 -0
  12. package/dist/src/json-schema.js +9 -0
  13. package/dist/src/json-schema.js.map +1 -0
  14. package/dist/src/lib.d.ts +1 -0
  15. package/dist/src/lib.d.ts.map +1 -1
  16. package/dist/src/lib.js +12 -0
  17. package/dist/src/lib.js.map +1 -1
  18. package/dist/src/openapi-helpers-3-0.d.ts +6 -0
  19. package/dist/src/openapi-helpers-3-0.d.ts.map +1 -0
  20. package/dist/src/openapi-helpers-3-0.js +15 -0
  21. package/dist/src/openapi-helpers-3-0.js.map +1 -0
  22. package/dist/src/openapi-helpers-3-1.d.ts +6 -0
  23. package/dist/src/openapi-helpers-3-1.d.ts.map +1 -0
  24. package/dist/src/openapi-helpers-3-1.js +23 -0
  25. package/dist/src/openapi-helpers-3-1.js.map +1 -0
  26. package/dist/src/openapi-spec-mappings.d.ts +33 -0
  27. package/dist/src/openapi-spec-mappings.d.ts.map +1 -0
  28. package/dist/src/openapi-spec-mappings.js +53 -0
  29. package/dist/src/openapi-spec-mappings.js.map +1 -0
  30. package/dist/src/openapi.d.ts +2 -1
  31. package/dist/src/openapi.d.ts.map +1 -1
  32. package/dist/src/openapi.js +42 -44
  33. package/dist/src/openapi.js.map +1 -1
  34. package/dist/src/schema-emitter-3-0.d.ts +19 -0
  35. package/dist/src/schema-emitter-3-0.d.ts.map +1 -0
  36. package/dist/src/schema-emitter-3-0.js +199 -0
  37. package/dist/src/schema-emitter-3-0.js.map +1 -0
  38. package/dist/src/schema-emitter-3-1.d.ts +24 -0
  39. package/dist/src/schema-emitter-3-1.d.ts.map +1 -0
  40. package/dist/src/schema-emitter-3-1.js +226 -0
  41. package/dist/src/schema-emitter-3-1.js.map +1 -0
  42. package/dist/src/schema-emitter.d.ts +33 -10
  43. package/dist/src/schema-emitter.d.ts.map +1 -1
  44. package/dist/src/schema-emitter.js +104 -280
  45. package/dist/src/schema-emitter.js.map +1 -1
  46. package/dist/src/std-scalar-schemas.d.ts +2 -2
  47. package/dist/src/std-scalar-schemas.d.ts.map +1 -1
  48. package/dist/src/types.d.ts +352 -2
  49. package/dist/src/types.d.ts.map +1 -1
  50. package/dist/src/util.d.ts +10 -0
  51. package/dist/src/util.d.ts.map +1 -1
  52. package/dist/src/util.js +42 -0
  53. package/dist/src/util.js.map +1 -1
  54. package/dist/src/xml-module.d.ts +3 -3
  55. package/dist/src/xml-module.d.ts.map +1 -1
  56. package/dist/src/xml-module.js.map +1 -1
  57. package/package.json +6 -1
@@ -0,0 +1,226 @@
1
+ import { compilerAssert, getExamples, getMaxValueExclusive, getMinValueExclusive, serializeValueAsJson, } from "@typespec/compiler";
2
+ import { ArrayBuilder, createAssetEmitter, ObjectBuilder, Placeholder, } from "@typespec/compiler/emitter-framework";
3
+ import { shouldInline } from "@typespec/openapi";
4
+ import { getOneOf } from "./decorators.js";
5
+ import { reportDiagnostic } from "./lib.js";
6
+ import { applyEncoding, getRawBinarySchema } from "./openapi-helpers-3-1.js";
7
+ import { Builders, OpenAPI3SchemaEmitterBase } from "./schema-emitter.js";
8
+ import { isBytesKeptRaw, isLiteralType, literalType } from "./util.js";
9
+ function createWrappedSchemaEmitterClass(metadataInfo, visibilityUsage, options, optionalDependencies) {
10
+ return class extends OpenAPI31SchemaEmitter {
11
+ constructor(emitter) {
12
+ super(emitter, metadataInfo, visibilityUsage, options, optionalDependencies);
13
+ }
14
+ };
15
+ }
16
+ export const createSchemaEmitter3_1 = ({ program, context, ...rest }) => {
17
+ return createAssetEmitter(program, createWrappedSchemaEmitterClass(rest.metadataInfo, rest.visibilityUsage, rest.options, rest.optionalDependencies), context);
18
+ };
19
+ /**
20
+ * OpenAPI 3.1 schema emitter. Deals with emitting content of `components/schemas` section.
21
+ */
22
+ export class OpenAPI31SchemaEmitter extends OpenAPI3SchemaEmitterBase {
23
+ #applySchemaExamples(program, type, target) {
24
+ const examples = getExamples(program, type);
25
+ if (examples.length > 0) {
26
+ target.set("examples", examples.map((example) => serializeValueAsJson(program, example.value, type)));
27
+ }
28
+ }
29
+ applyCustomConstraints(type, target, refSchema) {
30
+ const applyConstraint = (fn, key) => {
31
+ const value = fn(program, type);
32
+ if (value !== undefined) {
33
+ target[key] = value;
34
+ }
35
+ };
36
+ const applyTypeConstraint = (fn, key) => {
37
+ const constraintType = fn(this.emitter.getProgram(), type);
38
+ if (constraintType) {
39
+ const ref = this.emitter.emitTypeReference(constraintType);
40
+ compilerAssert(ref.kind === "code", "Unexpected non-code result from emit reference");
41
+ target.set(key, ref.value);
42
+ }
43
+ };
44
+ const program = this.emitter.getProgram();
45
+ const minValueExclusive = getMinValueExclusive(program, type);
46
+ if (minValueExclusive !== undefined) {
47
+ target.minimum = undefined;
48
+ target.exclusiveMinimum = minValueExclusive;
49
+ }
50
+ const maxValueExclusive = getMaxValueExclusive(program, type);
51
+ if (maxValueExclusive !== undefined) {
52
+ target.maximum = undefined;
53
+ target.exclusiveMaximum = maxValueExclusive;
54
+ }
55
+ // apply json schema decorators
56
+ const jsonSchemaModule = this._jsonSchemaModule;
57
+ if (jsonSchemaModule) {
58
+ applyTypeConstraint(jsonSchemaModule.getContains, "contains");
59
+ applyConstraint(jsonSchemaModule.getMinContains, "minContains");
60
+ applyConstraint(jsonSchemaModule.getMaxContains, "maxContains");
61
+ applyConstraint(jsonSchemaModule.getContentEncoding, "contentEncoding");
62
+ applyConstraint(jsonSchemaModule.getContentMediaType, "contentMediaType");
63
+ applyTypeConstraint(jsonSchemaModule.getContentSchema, "contentSchema");
64
+ const prefixItems = jsonSchemaModule.getPrefixItems(program, type);
65
+ if (prefixItems) {
66
+ const prefixItemsSchema = new ArrayBuilder();
67
+ for (const item of prefixItems.values) {
68
+ prefixItemsSchema.push(this.emitter.emitTypeReference(item));
69
+ }
70
+ target.set("prefixItems", prefixItemsSchema);
71
+ }
72
+ }
73
+ this.#applySchemaExamples(program, type, target);
74
+ }
75
+ applyEncoding(typespecType, target) {
76
+ return applyEncoding(this.emitter.getProgram(), typespecType, target, this._options);
77
+ }
78
+ getRawBinarySchema() {
79
+ return getRawBinarySchema();
80
+ }
81
+ getSchemaForStdScalars(scalar) {
82
+ // Raw binary data is handled separately when resolving a request/response body.
83
+ // Open API 3.1 treats encoded binaries differently from Open API 3.0, so we need to handle
84
+ // the Scalar 'bytes' special here.
85
+ // @see https://spec.openapis.org/oas/v3.1.1.html#working-with-binary-data
86
+ if (scalar.name === "bytes") {
87
+ const contentType = this.emitter.getContext().contentType;
88
+ return { type: "string", contentMediaType: contentType, contentEncoding: "base64" };
89
+ }
90
+ return super.getSchemaForStdScalars(scalar);
91
+ }
92
+ enumSchema(en) {
93
+ const program = this.emitter.getProgram();
94
+ if (en.members.size === 0) {
95
+ reportDiagnostic(program, { code: "empty-enum", target: en });
96
+ return {};
97
+ }
98
+ const enumTypes = new Set();
99
+ const enumValues = new Set();
100
+ for (const member of en.members.values()) {
101
+ enumTypes.add(typeof member.value === "number" ? "number" : "string");
102
+ enumValues.add(member.value ?? member.name);
103
+ }
104
+ const enumTypesArray = [...enumTypes];
105
+ const schema = {
106
+ type: enumTypesArray.length === 1 ? enumTypesArray[0] : enumTypesArray,
107
+ enum: [...enumValues],
108
+ };
109
+ return this.applyConstraints(en, schema);
110
+ }
111
+ unionSchema(union) {
112
+ const program = this.emitter.getProgram();
113
+ if (union.variants.size === 0) {
114
+ reportDiagnostic(program, { code: "empty-union", target: union });
115
+ return new ObjectBuilder({});
116
+ }
117
+ const variants = Array.from(union.variants.values());
118
+ const literalVariantEnumByType = {};
119
+ const ofType = getOneOf(program, union) ? "oneOf" : "anyOf";
120
+ const schemaMembers = [];
121
+ const isMultipart = this.getContentType().startsWith("multipart/");
122
+ // 1. Iterate over all the union variants to generate a schema for each one.
123
+ for (const variant of variants) {
124
+ // 2. Special handling for multipart - want to treat as binary
125
+ if (isMultipart && isBytesKeptRaw(program, variant.type)) {
126
+ schemaMembers.push({ schema: this.getRawBinarySchema(), type: variant.type });
127
+ continue;
128
+ }
129
+ // 3.a. Literal types are actual values (though not Value types)
130
+ if (isLiteralType(variant.type)) {
131
+ // Create schemas grouped by kind (boolean, string, numeric)
132
+ // and add the literals seen to each respective `enum` array
133
+ if (!literalVariantEnumByType[variant.type.kind]) {
134
+ const enumValue = [variant.type.value];
135
+ literalVariantEnumByType[variant.type.kind] = enumValue;
136
+ schemaMembers.push({
137
+ schema: { type: literalType(variant.type), enum: enumValue },
138
+ type: null,
139
+ });
140
+ }
141
+ else {
142
+ literalVariantEnumByType[variant.type.kind].push(variant.type.value);
143
+ }
144
+ }
145
+ else {
146
+ // 3.b. Anything else, we get the schema for that type.
147
+ const enumSchema = this.emitter.emitTypeReference(variant.type, {
148
+ referenceContext: isMultipart ? { contentType: "application/json" } : {},
149
+ });
150
+ compilerAssert(enumSchema.kind === "code", "Unexpected enum schema. Should be kind: code");
151
+ schemaMembers.push({ schema: enumSchema.value, type: variant.type });
152
+ }
153
+ }
154
+ const wrapWithObjectBuilder = (schemaMember, { mergeUnionWideConstraints }) => {
155
+ const schema = schemaMember.schema;
156
+ const type = schemaMember.type;
157
+ const additionalProps = mergeUnionWideConstraints
158
+ ? this.applyConstraints(union, {})
159
+ : {};
160
+ if (Object.keys(additionalProps).length === 0) {
161
+ return new ObjectBuilder(schema);
162
+ }
163
+ else {
164
+ if ((schema instanceof Placeholder || "$ref" in schema) &&
165
+ !(type && shouldInline(program, type))) {
166
+ if (type && (type.kind === "Model" || type.kind === "Scalar")) {
167
+ return new ObjectBuilder({
168
+ type: "object",
169
+ allOf: Builders.array([schema]),
170
+ ...additionalProps,
171
+ });
172
+ }
173
+ else {
174
+ return new ObjectBuilder({ allOf: Builders.array([schema]), ...additionalProps });
175
+ }
176
+ }
177
+ else {
178
+ const merged = new ObjectBuilder(schema);
179
+ for (const [key, value] of Object.entries(additionalProps)) {
180
+ merged.set(key, value);
181
+ }
182
+ return merged;
183
+ }
184
+ }
185
+ };
186
+ if (schemaMembers.length === 0) {
187
+ compilerAssert(false, "Attempting to emit an empty union");
188
+ }
189
+ if (schemaMembers.length === 1) {
190
+ return wrapWithObjectBuilder(schemaMembers[0], { mergeUnionWideConstraints: true });
191
+ }
192
+ const schema = {
193
+ [ofType]: schemaMembers.map((m) => wrapWithObjectBuilder(m, { mergeUnionWideConstraints: false })),
194
+ };
195
+ this.applyDiscriminator(union, schema);
196
+ return this.applyConstraints(union, schema);
197
+ }
198
+ intrinsic(intrinsic, name) {
199
+ switch (name) {
200
+ case "unknown":
201
+ return {};
202
+ case "null":
203
+ return { type: "null" };
204
+ }
205
+ reportDiagnostic(this.emitter.getProgram(), {
206
+ code: "invalid-schema",
207
+ format: { type: name },
208
+ target: intrinsic,
209
+ });
210
+ return {};
211
+ }
212
+ tupleLiteral(tuple) {
213
+ return new ObjectBuilder({
214
+ type: "array",
215
+ prefixItems: this.emitter.emitTupleLiteralValues(tuple),
216
+ });
217
+ }
218
+ tupleLiteralValues(tuple) {
219
+ const values = new ArrayBuilder();
220
+ for (const value of tuple.values.values()) {
221
+ values.push(this.emitter.emitType(value));
222
+ }
223
+ return values;
224
+ }
225
+ }
226
+ //# sourceMappingURL=schema-emitter-3-1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-emitter-3-1.js","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,35 @@
1
- import { BooleanLiteral, Enum, EnumMember, IntrinsicType, Model, ModelProperty, NumericLiteral, Program, Scalar, StringLiteral, StringTemplate, Tuple, Type, Union, UnionVariant, Value } from "@typespec/compiler";
2
- import { AssetEmitter, Context, Declaration, EmitEntity, EmitterOutput, ReferenceCycle, Scope, TypeEmitter } from "@typespec/compiler/emitter-framework";
1
+ import { BooleanLiteral, DiscriminatedUnion, Enum, EnumMember, IntrinsicScalarName, Model, ModelProperty, NumericLiteral, Program, Scalar, StringLiteral, StringTemplate, Tuple, Type, Union, UnionVariant } from "@typespec/compiler";
2
+ import { ArrayBuilder, AssetEmitter, Context, Declaration, EmitEntity, EmitterOutput, ObjectBuilder, Placeholder, ReferenceCycle, Scope, TypeEmitter } from "@typespec/compiler/emitter-framework";
3
3
  import { MetadataInfo } from "@typespec/http";
4
+ import { JsonSchemaModule } from "./json-schema.js";
4
5
  import { OpenAPI3EmitterOptions } from "./lib.js";
5
6
  import { ResolvedOpenAPI3EmitterOptions } from "./openapi.js";
6
- import { OpenAPI3Schema, OpenAPI3SchemaProperty } from "./types.js";
7
+ import { OpenAPI3Schema, OpenAPI3SchemaProperty, OpenAPISchema3_1 } from "./types.js";
7
8
  import { VisibilityUsageTracker } from "./visibility-usage.js";
8
9
  import { XmlModule } from "./xml-module.js";
9
10
  /**
10
- * OpenAPI3 schema emitter. Deals with emitting content of `components/schemas` section.
11
+ * Base OpenAPI3 schema emitter. Deals with emitting content of `components/schemas` section.
11
12
  */
12
- export declare class OpenAPI3SchemaEmitter extends TypeEmitter<Record<string, any>, OpenAPI3EmitterOptions> {
13
+ export declare class OpenAPI3SchemaEmitterBase<Schema extends OpenAPI3Schema | OpenAPISchema3_1> extends TypeEmitter<Record<string, any>, OpenAPI3EmitterOptions> {
13
14
  #private;
14
- constructor(emitter: AssetEmitter<Record<string, any>, OpenAPI3EmitterOptions>, metadataInfo: MetadataInfo, visibilityUsage: VisibilityUsageTracker, options: ResolvedOpenAPI3EmitterOptions, xmlModule: XmlModule | undefined);
15
+ protected _metadataInfo: MetadataInfo;
16
+ protected _visibilityUsage: VisibilityUsageTracker;
17
+ protected _options: ResolvedOpenAPI3EmitterOptions;
18
+ protected _jsonSchemaModule: JsonSchemaModule | undefined;
19
+ protected _xmlModule: XmlModule | undefined;
20
+ constructor(emitter: AssetEmitter<Record<string, any>, OpenAPI3EmitterOptions>, metadataInfo: MetadataInfo, visibilityUsage: VisibilityUsageTracker, options: ResolvedOpenAPI3EmitterOptions, optionalDependencies: {
21
+ jsonSchemaModule?: JsonSchemaModule;
22
+ xmlModule?: XmlModule;
23
+ });
15
24
  modelDeclarationReferenceContext(model: Model, name: string): Context;
16
25
  modelLiteralReferenceContext(model: Model): Context;
17
26
  scalarDeclarationReferenceContext(scalar: Scalar, name: string): Context;
18
27
  enumDeclarationReferenceContext(en: Enum, name: string): Context;
19
28
  unionDeclarationReferenceContext(union: Union): Context;
20
29
  reduceContext(type: Type): Context;
30
+ applyDiscriminator(type: Model | Union, schema: Schema): void;
21
31
  modelDeclaration(model: Model, _: string): EmitterOutput<object>;
32
+ getContentType(): string;
22
33
  modelLiteral(model: Model): EmitterOutput<object>;
23
34
  modelInstantiation(model: Model, name: string | undefined): EmitterOutput<Record<string, any>>;
24
35
  arrayDeclaration(array: Model, name: string, elementType: Type): EmitterOutput<object>;
@@ -26,27 +37,39 @@ export declare class OpenAPI3SchemaEmitter extends TypeEmitter<Record<string, an
26
37
  arrayLiteral(array: Model, elementType: Type): EmitterOutput<object>;
27
38
  arrayLiteralReferenceContext(array: Model, elementType: Type): Context;
28
39
  modelProperties(model: Model): EmitterOutput<Record<string, OpenAPI3SchemaProperty>>;
40
+ getRawBinarySchema(): Schema;
29
41
  modelPropertyLiteral(prop: ModelProperty): EmitterOutput<object>;
30
42
  booleanLiteral(boolean: BooleanLiteral): EmitterOutput<object>;
31
43
  stringLiteral(string: StringLiteral): EmitterOutput<object>;
32
44
  stringTemplate(string: StringTemplate): EmitterOutput<object>;
33
45
  numericLiteral(number: NumericLiteral): EmitterOutput<object>;
34
46
  enumDeclaration(en: Enum, name: string): EmitterOutput<object>;
47
+ enumSchema(en: Enum): Schema;
35
48
  enumMember(member: EnumMember): EmitterOutput<Record<string, any>>;
36
49
  enumMemberReference(member: EnumMember): EmitterOutput<Record<string, any>>;
37
50
  unionDeclaration(union: Union, name: string): EmitterOutput<object>;
51
+ unionSchema(union: Union): ObjectBuilder<Schema>;
52
+ getDiscriminatorMapping(union: DiscriminatedUnion): Record<string, string>;
38
53
  unionLiteral(union: Union): EmitterOutput<object>;
39
54
  unionVariants(union: Union): EmitterOutput<object>;
40
55
  unionVariant(variant: UnionVariant): EmitterOutput<object>;
41
56
  modelPropertyReference(prop: ModelProperty): EmitterOutput<object>;
42
57
  reference(targetDeclaration: Declaration<Record<string, unknown>>, pathUp: Scope<Record<string, unknown>>[], pathDown: Scope<Record<string, unknown>>[], commonScope: Scope<Record<string, unknown>> | null): object | EmitEntity<Record<string, unknown>>;
43
58
  circularReference(target: EmitEntity<Record<string, any>>, scope: Scope<Record<string, any>> | undefined, cycle: ReferenceCycle): Record<string, any> | EmitEntity<Record<string, any>>;
44
- scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<OpenAPI3Schema>;
59
+ scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<Schema>;
45
60
  scalarInstantiation(scalar: Scalar, name: string | undefined): EmitterOutput<Record<string, any>>;
46
61
  tupleLiteral(tuple: Tuple): EmitterOutput<Record<string, any>>;
47
- intrinsic(intrinsic: IntrinsicType, name: string): EmitterOutput<object>;
62
+ getSchemaForStdScalars(scalar: Scalar & {
63
+ name: IntrinsicScalarName;
64
+ }): Schema;
65
+ applyCustomConstraints(type: Scalar | Model | ModelProperty | Union | Enum, target: Schema, refSchema?: Schema): void;
66
+ applyConstraints(type: Scalar | Model | ModelProperty | Union | Enum, original: Schema, refSchema?: Schema): ObjectBuilder<Schema>;
67
+ applyXml(type: Scalar | Model | ModelProperty | Union | Enum, schema: Schema, refSchema?: Schema): void;
68
+ applyEncoding(typespecType: Scalar | ModelProperty, target: Schema | Placeholder<Schema>): Schema;
48
69
  programContext(program: Program): Context;
49
70
  }
50
- export declare function getDefaultValue(program: Program, defaultType: Value, modelProperty: ModelProperty): any;
51
- export declare function isBytesKeptRaw(program: Program, type: Type): boolean;
71
+ export declare const Builders: {
72
+ readonly array: <T>(items: T[]) => ArrayBuilder<T>;
73
+ readonly object: <T extends Record<string, unknown>>(obj: T) => ObjectBuilder<T[string]>;
74
+ };
52
75
  //# sourceMappingURL=schema-emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,cAAc,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EAEJ,KAAK,EACL,YAAY,EAyBb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,EAEL,WAAW,EACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAmC,MAAM,gBAAgB,CAAC;AAU/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAEL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,yBAAyB,CACpC,MAAM,SAAS,cAAc,GAAG,gBAAgB,CAChD,SAAQ,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC;;IAChE,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IACtC,SAAS,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IACnD,SAAS,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IACnD,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;gBAG1C,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,EAClE,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,8BAA8B,EACvC,oBAAoB,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IAUtF,gCAAgC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrE,4BAA4B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAInD,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxE,+BAA+B,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhE,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIvD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAelC,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAc7D,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IA0DhE,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAcjD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAS9F,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;IAStF,gCAAgC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO;IAMxF,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;IAUpE,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO;IA0CtE,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAoCpF,kBAAkB,IAAI,MAAM;IAI5B,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAqFhE,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAI9D,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAI3D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAW7D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAI7D,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAK9D,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM;IAK5B,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIlE,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAY3E,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAMnE,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAMhD,uBAAuB,CAAC,KAAK,EAAE,kBAAkB;IAUjD,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAIjD,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAQlD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;IAI1D,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAIlE,SAAS,CACP,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EACxC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,GACjD,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiB/C,iBAAiB,CACf,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACvC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EAC7C,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAcxD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAWtE,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIrC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAmB9D,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAAG,MAAM;IAI9E,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM;IAGpB,gBAAgB,CACd,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAAC,MAAM,CAAC;IA4DxB,QAAQ,CACN,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAgEP,aAAa,CACX,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GACnC,MAAM;IAIT,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAI1C;AAED,eAAO,MAAM,QAAQ;qBACX,CAAC,SAAS,CAAC,EAAE,KAAG,YAAY,CAAC,CAAC,CAAC;sBAO9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,KAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAOrE,CAAC"}