oazapfts 4.0.0 → 4.1.0

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.
@@ -4,6 +4,9 @@ import { Opts } from ".";
4
4
  export declare const verbs: string[];
5
5
  declare type ContentType = "json" | "form" | "multipart";
6
6
  export declare const contentTypes: Record<string, ContentType>;
7
+ declare type SchemaObject = OpenAPIV3.SchemaObject & {
8
+ const?: unknown;
9
+ };
7
10
  /**
8
11
  * Get the name of a formatter function for a given parameter.
9
12
  */
@@ -65,24 +68,28 @@ export default class ApiGenerator {
65
68
  * Create a type alias for the schema referenced by the given ReferenceObject
66
69
  */
67
70
  getRefAlias(obj: OpenAPIV3.ReferenceObject): ts.TypeReferenceNode;
68
- getUnionType(variants: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[], discriminator?: OpenAPIV3.DiscriminatorObject): ts.TypeNode;
71
+ getUnionType(variants: (OpenAPIV3.ReferenceObject | SchemaObject)[], discriminator?: OpenAPIV3.DiscriminatorObject): ts.TypeNode;
69
72
  /**
70
73
  * Creates a type node from a given schema.
71
74
  * Delegates to getBaseTypeFromSchema internally and
72
75
  * optionally adds a union with null.
73
76
  */
74
- getTypeFromSchema(schema?: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
77
+ getTypeFromSchema(schema?: SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
75
78
  /**
76
79
  * This is the very core of the OpenAPI to TS conversion - it takes a
77
80
  * schema and returns the appropriate type.
78
81
  */
79
- getBaseTypeFromSchema(schema?: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
82
+ getBaseTypeFromSchema(schema?: SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
83
+ /**
84
+ * Creates literal type (or union) from an array of values
85
+ */
86
+ getTypeFromEnum(values: unknown[]): ts.LiteralTypeNode | ts.KeywordTypeNode<ts.KeywordTypeSyntaxKind> | ts.UnionTypeNode;
80
87
  /**
81
88
  * Recursively creates a type literal with the given props.
82
89
  */
83
90
  getTypeFromProperties(props: {
84
- [prop: string]: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
85
- }, required?: string[], additionalProperties?: boolean | OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeLiteralNode;
91
+ [prop: string]: SchemaObject | OpenAPIV3.ReferenceObject;
92
+ }, required?: string[], additionalProperties?: boolean | SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeLiteralNode;
86
93
  getTypeFromResponses(responses: OpenAPIV3.ResponsesObject): ts.UnionTypeNode;
87
94
  getTypeFromResponse(resOrRef: OpenAPIV3.ResponseObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
88
95
  getResponseType(responses?: OpenAPIV3.ResponsesObject): "json" | "text" | "blob";
@@ -356,23 +356,14 @@ class ApiGenerator {
356
356
  return this.getTypeFromProperties(schema.properties || {}, schema.required, schema.additionalProperties);
357
357
  }
358
358
  if (schema.enum) {
359
- // enum -> union of literal types
360
- const types = schema.enum.map((s) => {
361
- if (s === null)
362
- return cg.keywordType.null;
363
- if (typeof s === "boolean")
364
- return s
365
- ? typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.TrueKeyword))
366
- : typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.FalseKeyword));
367
- if (typeof s === "number")
368
- return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createNumericLiteral(s));
369
- return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createStringLiteral(s));
370
- });
371
- return types.length > 1 ? typescript_1.factory.createUnionTypeNode(types) : types[0];
359
+ return this.getTypeFromEnum(schema.enum);
372
360
  }
373
361
  if (schema.format == "binary") {
374
362
  return typescript_1.factory.createTypeReferenceNode("Blob", []);
375
363
  }
364
+ if (schema.const) {
365
+ return this.getTypeFromEnum([schema.const]);
366
+ }
376
367
  if (schema.type) {
377
368
  // string, boolean, null, number
378
369
  if (schema.type in cg.keywordType)
@@ -382,6 +373,25 @@ class ApiGenerator {
382
373
  }
383
374
  return cg.keywordType.any;
384
375
  }
376
+ /**
377
+ * Creates literal type (or union) from an array of values
378
+ */
379
+ getTypeFromEnum(values) {
380
+ const types = values.map((s) => {
381
+ if (s === null)
382
+ return cg.keywordType.null;
383
+ if (typeof s === "boolean")
384
+ return s
385
+ ? typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.TrueKeyword))
386
+ : typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.FalseKeyword));
387
+ if (typeof s === "number")
388
+ return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createNumericLiteral(s));
389
+ if (typeof s === "string")
390
+ return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createStringLiteral(s));
391
+ throw new Error(`Unexpected ${String(s)} of type ${typeof s} in enum`);
392
+ });
393
+ return types.length > 1 ? typescript_1.factory.createUnionTypeNode(types) : types[0];
394
+ }
385
395
  /**
386
396
  * Recursively creates a type literal with the given props.
387
397
  */
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,yDAAyC;AACzC,gDAAwB;AAExB,gDAAkC;AAClC,qEAAoE;AAIvD,QAAA,KAAK,GAAG;IACnB,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,OAAO;CACR,CAAC;AAIW,QAAA,YAAY,GAAgC;IACvD,KAAK,EAAE,MAAM;IACb,kBAAkB,EAAE,MAAM;IAC1B,sBAAsB,EAAE,MAAM;IAC9B,0BAA0B,EAAE,MAAM;IAClC,sBAAsB,EAAE,MAAM;IAC9B,mCAAmC,EAAE,MAAM;IAC3C,qBAAqB,EAAE,WAAW;CACnC,CAAC;AAOF;;GAEG;AACH,SAAgB,YAAY,CAAC,EAC3B,KAAK,GAAG,MAAM,EACd,OAAO,GAAG,IAAI,GACY;IAC1B,IAAI,OAAO,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IACrD,IAAI,OAAO;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,KAAK,KAAK,gBAAgB;QAAE,OAAO,OAAO,CAAC;IAC/C,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,oCASC;AAED,SAAgB,sBAAsB,CAAC,EAAW;IAChD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO;IAChC,EAAE,GAAG,gBAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;AAC1C,CAAC;AALD,wDAKC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,IAAY,EACZ,WAAoB;IAEpB,MAAM,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAClB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzE,OAAO,gBAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AATD,4CASC;AAED,SAAgB,UAAU,CAAC,MAAW;IACpC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CAAC,GAAQ;IAClC,OAAO,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AAC9B,CAAC;AAFD,kCAEC;AAED,sDAAsD;AACtD,SAAgB,YAAY,CAAC,IAAS,EAAE,GAAW;IACjD,MAAM,IAAI,GAAG,GAAG;SACb,KAAK,CAAC,CAAC,CAAC;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,GAAG,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;KACvC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAXD,oCAWC;AACD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,gBAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtD;AACH,CAAC;AAJD,4CAIC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAAY,EAAE,EAAkB;IAClE,MAAM,KAAK,GAA0D,EAAE,CAAC;IACxE,6DAA6D;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CACvB,8BAA8B,EAC9B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,gBAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC;YACT,UAAU,EAAE,EAAE,CAAC,UAAU,CACvB,oBAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAC9C,EAAE,IAAI,EAAE,CAAC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,CACjD;YACD,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,IAAI,EAAE,EAAE;QACN,oCAAoC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;KAC7C;IACD,OAAO,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAvBD,kDAuBC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,IAAqB;IAChE,OAAO,EAAE,CAAC,UAAU,CAClB,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC9B,IAAI,CACL,EACD,EAAE,IAAI,EAAE,CACT,CAAC;AACJ,CAAC;AARD,wCAQC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,IAAY,EACZ,IAAqB,EACrB,QAAwB;IAExB,OAAO,EAAE,CAAC,UAAU,CAClB,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,IAAI,CACL,EACD,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;AACJ,CAAC;AAZD,oDAYC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,MAAmC;IACpE,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,EAAE;YACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;SACR;QACD,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;gBACnB,IAAI;gBACJ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACf;QACD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AA1BD,gDA0BC;AAED;;GAEG;AACH,MAAqB,YAAY;IAC/B,YACkB,IAAwB,EACxB,OAAa,EAAE;IAC/B,kGAAkG;IAClF,cAAc,KAAK;QAHnB,SAAI,GAAJ,IAAI,CAAoB;QACxB,SAAI,GAAJ,IAAI,CAAW;QAEf,gBAAW,GAAX,WAAW,CAAQ;QAGrC,YAAO,GAA8B,EAAE,CAAC;QAExC,0EAA0E;QAC1E,SAAI,GAAyC,EAAE,CAAC;QAEhD,0CAA0C;QAC1C,gBAAW,GAA2B,EAAE,CAAC;IARtC,CAAC;IAUJ,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,CAAI,GAAkC;QAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,oDAAoD,CAC5F,CAAC;SACH;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAM,CAAC;IAC3C,CAAC;IAED,YAAY,CAAI,KAA4C;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAe;;QAClB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;QAC3E,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;YAC1E,OAAO,CAAC,QAAQ,CAAC;SAClB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;YAChC,IAAI,IAAI,IAAI,CAAC;SACd;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,GAA8B;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAe,GAAG,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAC9B,gBAAC,CAAC,UAAU,CAAC,gBAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CACrE,CAAC;YAEF,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAEzE,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,EAAE,CAAC,0BAA0B,CAAC;gBAC5B,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,IAAI;gBACJ,IAAI;aACL,CAAC,CACH,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CACV,QAAsD,EACtD,aAA6C;QAE7C,IAAI,aAAa,EAAE;YACjB,uDAAuD;YACvD,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE;gBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC1D;YAED,0FAA0F;YAC1F,qFAAqF;YACrF,kCAAkC;YAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CACzB,CACF,CAAC;YAEF,OAAO,oBAAO,CAAC,mBAAmB,CAE9B;gBACE,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAChD,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;oBACpC,kBAAkB;oBAClB,EAAE,IAAI,EAAE,UAAU,EAAE;iBACrB,CACF;gBACD,GAAG,QAAQ;qBACR,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;wBACzB,mFAAmF;wBACnF,eAAe;wBACf,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;qBACH;oBACD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBACf,IAAI,CAAC,cAAc,CAAE,MAAoC,CAAC,IAAI,CAAC;oBAC/D,MAAM;iBACP,CAAC;aAEP,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,EAAE;YACtC,yEAAyE;YACzE,oBAAO,CAAC,0BAA0B,CAAC;gBACjC,oBAAO,CAAC,qBAAqB,CAAC;oBAC5B,EAAE,CAAC,uBAAuB,CAAC;wBACzB,IAAI,EAAE,aAAa,CAAC,YAAY;wBAChC,IAAI,EAAE,oBAAO,CAAC,qBAAqB,CACjC,oBAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAChD;qBACF,CAAC;iBACH,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAChC,CAAC,CACH,CACF,CAAC;SACH;aAAM;YACL,0BAA0B;YAC1B,OAAO,oBAAO,CAAC,mBAAmB,CAChC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CACzD,CAAC;SACH;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,MAAiD;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC,MAAM,CAAC;YACvB,CAAC,CAAC,oBAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,qBAAqB,CACnB,MAAiD;QAEjD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;QACvC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACjC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,iBAAiB;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;SAC9D;QACD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,iBAAiB;YACjB,OAAO,oBAAO,CAAC,mBAAmB,CAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAC7D,CAAC;SACH;QACD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,wBAAwB;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAC/B,CAAC;YAEF,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,oBAAoB,EAAE;gBACpD,6BAA6B;gBAC7B,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,qBAAqB,CACxB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,oBAAoB,CAC5B,CACF,CAAC;aACH;YACD,OAAO,oBAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;SAClD;QACD,IAAI,OAAO,IAAI,MAAM,EAAE;YACrB,iBAAiB;YACjB,OAAO,oBAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1E;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,oBAAoB,EAAE;YACpD,6BAA6B;YAC7B,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,oBAAoB,CAC5B,CAAC;SACH;QACD,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1C;QACD,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE;YAC7B,OAAO,oBAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACpD;QACD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW;gBAAE,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;SAC7D;QAED,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAiB;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YAC3C,IAAI,OAAO,CAAC,KAAK,SAAS;gBACxB,OAAO,CAAC;oBACN,CAAC,CAAC,oBAAO,CAAC,qBAAqB,CAC3B,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAClD;oBACH,CAAC,CAAC,oBAAO,CAAC,qBAAqB,CAC3B,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CACnD,CAAC;YACR,IAAI,OAAO,CAAC,KAAK,QAAQ;gBACvB,OAAO,oBAAO,CAAC,qBAAqB,CAAC,oBAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,KAAK,QAAQ;gBACvB,OAAO,oBAAO,CAAC,qBAAqB,CAAC,oBAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,KAEC,EACD,QAAmB,EACnB,oBAAyE;QAEzE,MAAM,OAAO,GAAqB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC3C,IAAI,GAAG,oBAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;aACtE;YACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;gBAChC,aAAa,EAAE,CAAC,UAAU;gBAC1B,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,oBAAoB,EAAE;YACxB,MAAM,IAAI,GACR,oBAAoB,KAAK,IAAI;gBAC3B,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG;gBACpB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;YAEnD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7C;QACD,OAAO,oBAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB,CAAC,SAAoC;QACvD,OAAO,oBAAO,CAAC,mBAAmB,CAChC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;YAC5C,MAAM,UAAU,GACd,IAAI,KAAK,SAAS;gBAChB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM;gBACvB,CAAC,CAAC,oBAAO,CAAC,qBAAqB,CAAC,oBAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAExE,MAAM,KAAK,GAAG;gBACZ,EAAE,CAAC,uBAAuB,CAAC;oBACzB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,UAAU;iBACjB,CAAC;aACH,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;gBACpC,KAAK,CAAC,IAAI,CACR,EAAE,CAAC,uBAAuB,CAAC;oBACzB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;iBACf,CAAC,CACH,CAAC;aACH;YACD,OAAO,oBAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,mBAAmB,CACjB,QAA8D;QAE9D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;QACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,eAAe,CACb,SAAqC;QAErC,0BAA0B;QAC1B,IAAI,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;QAE9B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACvB,CAAC;QAEF,sEAAsE;QACtE,IACE,CAAC,iBAAiB,CAAC,IAAI,CACrB,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA,CACnD,EACD;YACA,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;;YACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,QAAQ,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAY,CAAC,QAAQ,CAAC,KAAK,MAAM,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,wDAAwD;QACxD,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;QAED,qCAAqC;QACrC,IACE,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,WAC7B,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA,EAAA,CACxE,EACD;YACA,OAAO,MAAM,CAAC;SACf;QAED,8BAA8B;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC;QACX,IAAI,WAAW,EAAE;YACf,MAAM,GAAG,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;SAClD;QACD,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;QAED,uCAAuC;QACvC,qBAAqB;QACrB,IACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAC7D;YACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC3B;QAED,0EAA0E;QAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,EAAiB;;QAC1B,OAAO,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,yEAAyE;QACzE,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CACvB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,8BAA8B,CAAC,CACxD,CAAC;QAEF,qDAAqD;QACrD,MAAM,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5E,oGAAoG;QACpG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACrB,WAAW,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACtD,CAAC,CAAC;QAEH,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,4BAA4B,CACrD,IAAI,CAAC,UAAU,EACf,UAAU,CACX,CAAC;QACF,IAAI,CAAC,WAAW,IAAI,CAAC,oBAAE,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QAED,EAAE,CAAC,mBAAmB,CACpB,WAAW,EACX,SAAS,EACT,IAAA,gCAAc,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CACxC,CAAC;QAEF,yCAAyC;QACzC,MAAM,SAAS,GAA6B,EAAE,CAAC;QAE/C,2CAA2C;QAC3C,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;aACR;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClC,6CAA6C;gBAC7C,IAAI,CAAC,aAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAEpC,MAAM,EAAE,GAA+B,IAAY,CAAC,IAAI,CAAC,CAAC;gBAC1D,MAAM,EACJ,WAAW,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,IAAI,GACL,GAAG,EAAE,CAAC;gBAEP,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO;iBACR;gBAED,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBACrD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,mEAAmE;oBACnE,qEAAqE;oBACrE,oCAAoC;oBACpC,IAAI,IAAI,KAAK,CAAC;iBACf;gBAED,+BAA+B;gBAC/B,MAAM,kBAAkB,GAAG;oBACzB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;oBACrC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC;iBACpC,CAAC;gBAEF,qEAAqE;gBACrE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW;oBACjC,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;oBACxC,CAAC,CAAC,kBAAkB,CAAC;gBAEvB,+BAA+B;gBAC/B,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,gBAAC,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAEjE,gDAAgD;gBAChD,MAAM,QAAQ,GAAQ,EAAE,CAAC;gBACzB,UAAU;qBACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;qBACnC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEL,iEAAiE;gBACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBACjD,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC5D,CAAC,CACH,CAAC;gBAEF,IAAI,IAAS,CAAC;gBACd,IAAI,OAAO,CAAC;gBAEZ,sBAAsB;gBACtB,IAAI,WAAW,EAAE;oBACf,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC5C,OAAO,GAAG,gBAAC,CAAC,SAAS,CAClB,IAAY,CAAC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CACzD,CAAC;oBACF,YAAY,CAAC,IAAI,CACf,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;wBAC1B,IAAI;wBACJ,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ;qBAC9B,CAAC,CACH,CAAC;iBACH;gBAED,6CAA6C;gBAC7C,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,YAAY,CAAC,IAAI,CACf,EAAE,CAAC,eAAe,CAChB,EAAE,CAAC,mBAAmB,CACpB,QAAQ;yBACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;yBACnC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACjD,EACD;wBACE,WAAW,EAAE,oBAAO,CAAC,6BAA6B,EAAE;wBACpD,IAAI,EAAE,oBAAO,CAAC,qBAAqB,CACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,EAAE,CAAC,uBAAuB,CAAC;4BACzB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BACpC,aAAa,EAAE,IAAI;4BACnB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAC1B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAC9B;yBACF,CAAC,CACH,CACF;qBACF,CACF,CACF,CAAC;iBACH;gBAED,YAAY,CAAC,IAAI,CACf,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE;oBACzB,IAAI,EAAE,oBAAO,CAAC,uBAAuB,CACnC,sBAAsB,EACtB,SAAS,CACV;oBACD,aAAa,EAAE,IAAI;iBACpB,CAAC,CACH,CAAC;gBAEF,iCAAiC;gBAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,UAAU;qBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;qBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,EAAE,CAAC;gBACP,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChB,MAAM,iBAAiB,GAAG,gBAAC,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBACzD,EAAE,GAAG,cAAc,CACjB,OAAO,EACP,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE;wBACzD,+EAA+E;wBAC/E,OAAO,cAAc,CAAC,MAAM,EAAE;4BAC5B,EAAE,CAAC,mBAAmB,CACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9C;yBACF,CAAC,CAAC;oBACL,CAAC,CAAC,CACH,CAAC;iBACH;gBAED,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAkC;oBAC1C,oBAAO,CAAC,sBAAsB,CAAC,oBAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;iBACjE,CAAC;gBAEF,IAAI,MAAM,KAAK,KAAK,EAAE;oBACpB,IAAI,CAAC,IAAI,CACP,oBAAO,CAAC,wBAAwB,CAC9B,QAAQ,EACR,oBAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACpC,CACF,CAAC;iBACH;gBAED,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,IAAI,CACP,EAAE,CAAC,wBAAwB,CACzB,MAAM,EACN,oBAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAClC,CACF,CAAC;iBACH;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,IAAI,CAAC,IAAI,CACP,oBAAO,CAAC,wBAAwB,CAC9B,SAAS,EACT,oBAAO,CAAC,6BAA6B,CACnC;wBACE,oBAAO,CAAC,sBAAsB,CAC5B,oBAAO,CAAC,gBAAgB,CACtB,oBAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAChC,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAChC,SAAS,CACV,CACF,CACF;wBACD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,EAAE,CAAC,wBAAwB,CACzB,IAAI,EACJ,oBAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACzC,CACF;qBACF,EACD,IAAI,CACL,CACF,CACF,CAAC;iBACH;gBAED,MAAM,IAAI,GAAoB,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBACrD,OAAO,CAAC,CAAC,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,GAAG,oBAAO,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;iBACzF;gBAED,SAAS,CAAC,IAAI,CACZ,EAAE,CAAC,UAAU,CACX,EAAE,CAAC,yBAAyB,CAC1B,IAAI,EACJ;oBACE,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAChC,EACD,YAAY,EACZ,EAAE,CAAC,KAAK,CACN,oBAAO,CAAC,qBAAqB,CAC3B,IAAI,CAAC,UAAU,CACb,oBAAoB,CAClB;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW;iBAClB,CAAC,UAAU,CAAC,EACb,IAAI,EACJ,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM;oBAC5C,CAAC,CAAC;wBACE,IAAI,CAAC,oBAAoB,CAAC,SAAU,CAAC;4BACnC,oBAAE,CAAC,UAAU,CAAC,UAAU;qBAC3B;oBACH,CAAC,CAAC,SAAS,CACd,CACF,CACF,CACF,CACF,EACD,OAAO,IAAI,WAAW,CACvB,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,UAAU,EAAE,EAAE,CAAC,WAAW,CACxB,IAAI,CAAC,UAAU,EACf,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CACnC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjrBD,+BAirBC"}
@@ -49,6 +49,12 @@ describe("generate", () => {
49
49
  const circleTypeDefinition = "export type Circle = Shape & { radius?: number; } & { circumference?: number; };";
50
50
  expect(oneLine).toContain(circleTypeDefinition);
51
51
  }));
52
+ it("should handle enums", () => __awaiter(void 0, void 0, void 0, function* () {
53
+ const api = (0, index_1.printAst)(new generate_2.default(spec.petstore).generateApi());
54
+ const oneLine = api.replace(/\s+/g, " ");
55
+ const enumTypeDefinition = `export type Option = ("one" | "two" | "three")[];`;
56
+ expect(oneLine).toContain(enumTypeDefinition);
57
+ }));
52
58
  });
53
59
  describe("generate with application/geo+json", () => {
54
60
  let spec;
@@ -72,4 +78,16 @@ describe("generate with blob download", () => {
72
78
  expect(oneLine).toContain("return oazapfts.fetchBlob<{ status: 200; data: Blob; }>(`/file/${encodeURIComponent(fileId)}/download`, { ...opts });");
73
79
  }));
74
80
  });
81
+ describe("generate with const", () => {
82
+ let spec;
83
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
84
+ spec = (yield swagger_parser_1.default.bundle(__dirname + "/../../demo/const.json"));
85
+ }));
86
+ it("should generate an api with literal type set to const value", () => __awaiter(void 0, void 0, void 0, function* () {
87
+ const artefact = (0, index_1.printAst)(new generate_2.default(spec).generateApi());
88
+ const oneLine = artefact.replace(/\s+/g, " ");
89
+ const constTypeDefinition = `export type Shape = "circle";`;
90
+ expect(oneLine).toContain(constTypeDefinition);
91
+ }));
92
+ });
75
93
  //# sourceMappingURL=generate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../src/codegen/generate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../src/codegen/generate.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oazapfts",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "OpenApi TypeScript client generator",
5
5
  "main": "lib/index.js",
6
6
  "bin": {
@@ -55,6 +55,15 @@ describe("generate", () => {
55
55
 
56
56
  expect(oneLine).toContain(circleTypeDefinition);
57
57
  });
58
+
59
+ it("should handle enums", async () => {
60
+ const api = printAst(new ApiGenerator(spec.petstore).generateApi());
61
+ const oneLine = api.replace(/\s+/g, " ");
62
+
63
+ const enumTypeDefinition = `export type Option = ("one" | "two" | "three")[];`;
64
+
65
+ expect(oneLine).toContain(enumTypeDefinition);
66
+ });
58
67
  });
59
68
 
60
69
  describe("generate with application/geo+json", () => {
@@ -92,3 +101,20 @@ describe("generate with blob download", () => {
92
101
  );
93
102
  });
94
103
  });
104
+
105
+ describe("generate with const", () => {
106
+ let spec: OpenAPIV3.Document;
107
+
108
+ beforeAll(async () => {
109
+ spec = (await SwaggerParser.bundle(
110
+ __dirname + "/../../demo/const.json"
111
+ )) as any;
112
+ });
113
+
114
+ it("should generate an api with literal type set to const value", async () => {
115
+ const artefact = printAst(new ApiGenerator(spec).generateApi());
116
+ const oneLine = artefact.replace(/\s+/g, " ");
117
+ const constTypeDefinition = `export type Shape = "circle";`;
118
+ expect(oneLine).toContain(constTypeDefinition);
119
+ });
120
+ });
@@ -30,6 +30,11 @@ export const contentTypes: Record<string, ContentType> = {
30
30
  "multipart/form-data": "multipart",
31
31
  };
32
32
 
33
+ // augment SchemaObject type to allow slowly adopting new OAS3.1+ features
34
+ type SchemaObject = OpenAPIV3.SchemaObject & {
35
+ const?: unknown;
36
+ };
37
+
33
38
  /**
34
39
  * Get the name of a formatter function for a given parameter.
35
40
  */
@@ -262,7 +267,7 @@ export default class ApiGenerator {
262
267
  const { $ref } = obj;
263
268
  let ref = this.refs[$ref];
264
269
  if (!ref) {
265
- const schema = this.resolve<OpenAPIV3.SchemaObject>(obj);
270
+ const schema = this.resolve<SchemaObject>(obj);
266
271
  const name = this.getUniqueAlias(
267
272
  _.upperFirst(_.camelCase(schema.title || this.getRefBasename($ref)))
268
273
  );
@@ -282,7 +287,7 @@ export default class ApiGenerator {
282
287
  }
283
288
 
284
289
  getUnionType(
285
- variants: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[],
290
+ variants: (OpenAPIV3.ReferenceObject | SchemaObject)[],
286
291
  discriminator?: OpenAPIV3.DiscriminatorObject
287
292
  ): ts.TypeNode {
288
293
  if (discriminator) {
@@ -354,7 +359,7 @@ export default class ApiGenerator {
354
359
  * optionally adds a union with null.
355
360
  */
356
361
  getTypeFromSchema(
357
- schema?: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject
362
+ schema?: SchemaObject | OpenAPIV3.ReferenceObject
358
363
  ): ts.TypeNode {
359
364
  const type = this.getBaseTypeFromSchema(schema);
360
365
  return isNullable(schema)
@@ -367,7 +372,7 @@ export default class ApiGenerator {
367
372
  * schema and returns the appropriate type.
368
373
  */
369
374
  getBaseTypeFromSchema(
370
- schema?: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject
375
+ schema?: SchemaObject | OpenAPIV3.ReferenceObject
371
376
  ): ts.TypeNode {
372
377
  if (!schema) return cg.keywordType.any;
373
378
  if (isReference(schema)) {
@@ -415,26 +420,14 @@ export default class ApiGenerator {
415
420
  );
416
421
  }
417
422
  if (schema.enum) {
418
- // enum -> union of literal types
419
- const types = schema.enum.map((s) => {
420
- if (s === null) return cg.keywordType.null;
421
- if (typeof s === "boolean")
422
- return s
423
- ? factory.createLiteralTypeNode(
424
- ts.factory.createToken(ts.SyntaxKind.TrueKeyword)
425
- )
426
- : factory.createLiteralTypeNode(
427
- ts.factory.createToken(ts.SyntaxKind.FalseKeyword)
428
- );
429
- if (typeof s === "number")
430
- return factory.createLiteralTypeNode(factory.createNumericLiteral(s));
431
- return factory.createLiteralTypeNode(factory.createStringLiteral(s));
432
- });
433
- return types.length > 1 ? factory.createUnionTypeNode(types) : types[0];
423
+ return this.getTypeFromEnum(schema.enum);
434
424
  }
435
425
  if (schema.format == "binary") {
436
426
  return factory.createTypeReferenceNode("Blob", []);
437
427
  }
428
+ if (schema.const) {
429
+ return this.getTypeFromEnum([schema.const]);
430
+ }
438
431
  if (schema.type) {
439
432
  // string, boolean, null, number
440
433
  if (schema.type in cg.keywordType) return cg.keywordType[schema.type];
@@ -444,18 +437,38 @@ export default class ApiGenerator {
444
437
  return cg.keywordType.any;
445
438
  }
446
439
 
440
+ /**
441
+ * Creates literal type (or union) from an array of values
442
+ */
443
+ getTypeFromEnum(values: unknown[]) {
444
+ const types = values.map((s) => {
445
+ if (s === null) return cg.keywordType.null;
446
+ if (typeof s === "boolean")
447
+ return s
448
+ ? factory.createLiteralTypeNode(
449
+ ts.factory.createToken(ts.SyntaxKind.TrueKeyword)
450
+ )
451
+ : factory.createLiteralTypeNode(
452
+ ts.factory.createToken(ts.SyntaxKind.FalseKeyword)
453
+ );
454
+ if (typeof s === "number")
455
+ return factory.createLiteralTypeNode(factory.createNumericLiteral(s));
456
+ if (typeof s === "string")
457
+ return factory.createLiteralTypeNode(factory.createStringLiteral(s));
458
+ throw new Error(`Unexpected ${String(s)} of type ${typeof s} in enum`);
459
+ });
460
+ return types.length > 1 ? factory.createUnionTypeNode(types) : types[0];
461
+ }
462
+
447
463
  /**
448
464
  * Recursively creates a type literal with the given props.
449
465
  */
450
466
  getTypeFromProperties(
451
467
  props: {
452
- [prop: string]: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
468
+ [prop: string]: SchemaObject | OpenAPIV3.ReferenceObject;
453
469
  },
454
470
  required?: string[],
455
- additionalProperties?:
456
- | boolean
457
- | OpenAPIV3.SchemaObject
458
- | OpenAPIV3.ReferenceObject
471
+ additionalProperties?: boolean | SchemaObject | OpenAPIV3.ReferenceObject
459
472
  ) {
460
473
  const members: ts.TypeElement[] = Object.keys(props).map((name) => {
461
474
  const schema = props[name];