@trapi/swagger 0.3.8 → 1.0.0-alpha.11

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 (154) hide show
  1. package/dist/config/index.d.ts +3 -0
  2. package/dist/config/index.d.ts.map +1 -0
  3. package/dist/config/index.js +25 -0
  4. package/dist/config/index.js.map +1 -0
  5. package/dist/config/type.d.ts +83 -0
  6. package/dist/config/type.d.ts.map +1 -0
  7. package/dist/config/type.js +9 -0
  8. package/dist/config/type.js.map +1 -0
  9. package/dist/config/utils.d.ts +3 -0
  10. package/dist/config/utils.d.ts.map +1 -0
  11. package/dist/config/utils.js +54 -0
  12. package/dist/config/utils.js.map +1 -0
  13. package/dist/constants.d.ts +15 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +27 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/generator/abstract.d.ts +35 -0
  18. package/dist/generator/abstract.d.ts.map +1 -0
  19. package/dist/generator/abstract.js +252 -0
  20. package/dist/generator/abstract.js.map +1 -0
  21. package/dist/{specification → generator}/index.d.ts +0 -2
  22. package/dist/generator/index.d.ts.map +1 -0
  23. package/dist/{specification → generator}/index.js +1 -3
  24. package/dist/generator/index.js.map +1 -0
  25. package/dist/generator/module.d.ts +14 -0
  26. package/dist/generator/module.d.ts.map +1 -0
  27. package/dist/generator/module.js +35 -0
  28. package/dist/generator/module.js.map +1 -0
  29. package/dist/generator/v2/index.d.ts +2 -0
  30. package/dist/generator/v2/index.d.ts.map +1 -0
  31. package/dist/{specification/utils → generator/v2}/index.js +2 -2
  32. package/dist/generator/v2/index.js.map +1 -0
  33. package/dist/generator/v2/module.d.ts +25 -0
  34. package/dist/generator/v2/module.d.ts.map +1 -0
  35. package/dist/generator/v2/module.js +517 -0
  36. package/dist/generator/v2/module.js.map +1 -0
  37. package/dist/generator/v3/index.d.ts +2 -0
  38. package/dist/generator/v3/index.d.ts.map +1 -0
  39. package/dist/generator/v3/index.js +24 -0
  40. package/dist/generator/v3/index.js.map +1 -0
  41. package/dist/generator/v3/module.d.ts +30 -0
  42. package/dist/generator/v3/module.d.ts.map +1 -0
  43. package/dist/generator/v3/module.js +499 -0
  44. package/dist/generator/v3/module.js.map +1 -0
  45. package/dist/index.d.ts +4 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/metadata.d.ts +3 -4
  50. package/dist/metadata.d.ts.map +1 -1
  51. package/dist/metadata.js +3 -15
  52. package/dist/metadata.js.map +1 -1
  53. package/dist/schema/constants.d.ts +28 -0
  54. package/dist/schema/constants.d.ts.map +1 -0
  55. package/dist/schema/constants.js +40 -0
  56. package/dist/schema/constants.js.map +1 -0
  57. package/dist/schema/index.d.ts +5 -0
  58. package/dist/schema/index.d.ts.map +1 -0
  59. package/dist/schema/index.js +27 -0
  60. package/dist/schema/index.js.map +1 -0
  61. package/dist/schema/type.d.ts +139 -0
  62. package/dist/schema/type.d.ts.map +1 -0
  63. package/dist/schema/type.js.map +1 -0
  64. package/dist/schema/v2/constants.d.ts +8 -0
  65. package/dist/schema/v2/constants.d.ts.map +1 -0
  66. package/dist/schema/v2/constants.js +18 -0
  67. package/dist/schema/v2/constants.js.map +1 -0
  68. package/dist/schema/v2/index.d.ts +3 -0
  69. package/dist/schema/v2/index.d.ts.map +1 -0
  70. package/dist/{specification/v3 → schema/v2}/index.js +1 -1
  71. package/dist/schema/v2/index.js.map +1 -0
  72. package/dist/schema/v2/type.d.ts +116 -0
  73. package/dist/schema/v2/type.d.ts.map +1 -0
  74. package/dist/schema/v2/type.js.map +1 -0
  75. package/dist/schema/v3/constants.d.ts +7 -0
  76. package/dist/schema/v3/constants.d.ts.map +1 -0
  77. package/dist/schema/v3/constants.js +17 -0
  78. package/dist/schema/v3/constants.js.map +1 -0
  79. package/dist/schema/v3/index.d.ts +3 -0
  80. package/dist/schema/v3/index.d.ts.map +1 -0
  81. package/dist/{specification/v2 → schema/v3}/index.js +1 -1
  82. package/dist/schema/v3/index.js.map +1 -0
  83. package/dist/schema/v3/type.d.ts +159 -0
  84. package/dist/schema/v3/type.d.ts.map +1 -0
  85. package/dist/schema/v3/type.js +9 -0
  86. package/dist/schema/v3/type.js.map +1 -0
  87. package/dist/type.d.ts +44 -2
  88. package/dist/type.d.ts.map +1 -1
  89. package/dist/utils/character.d.ts +3 -0
  90. package/dist/utils/character.d.ts.map +1 -0
  91. package/dist/{specification/utils → utils}/character.js +4 -5
  92. package/dist/utils/character.js.map +1 -0
  93. package/dist/utils/index.d.ts +2 -1
  94. package/dist/utils/index.d.ts.map +1 -1
  95. package/dist/utils/index.js +2 -1
  96. package/dist/utils/index.js.map +1 -1
  97. package/dist/utils/object.d.ts.map +1 -1
  98. package/dist/utils/object.js +1 -0
  99. package/dist/utils/object.js.map +1 -1
  100. package/dist/utils/value.d.ts +2 -0
  101. package/dist/utils/value.d.ts.map +1 -0
  102. package/dist/utils/value.js +26 -0
  103. package/dist/utils/value.js.map +1 -0
  104. package/package.json +7 -10
  105. package/dist/module.d.ts +0 -8
  106. package/dist/module.d.ts.map +0 -1
  107. package/dist/module.js +0 -31
  108. package/dist/module.js.map +0 -1
  109. package/dist/specification/abstract.d.ts +0 -29
  110. package/dist/specification/abstract.d.ts.map +0 -1
  111. package/dist/specification/abstract.js +0 -226
  112. package/dist/specification/abstract.js.map +0 -1
  113. package/dist/specification/index.d.ts.map +0 -1
  114. package/dist/specification/index.js.map +0 -1
  115. package/dist/specification/module.d.ts +0 -5
  116. package/dist/specification/module.d.ts.map +0 -1
  117. package/dist/specification/module.js +0 -29
  118. package/dist/specification/module.js.map +0 -1
  119. package/dist/specification/type.d.ts +0 -268
  120. package/dist/specification/type.d.ts.map +0 -1
  121. package/dist/specification/type.js +0 -18
  122. package/dist/specification/type.js.map +0 -1
  123. package/dist/specification/utils/character.d.ts +0 -3
  124. package/dist/specification/utils/character.d.ts.map +0 -1
  125. package/dist/specification/utils/character.js.map +0 -1
  126. package/dist/specification/utils/index.d.ts +0 -2
  127. package/dist/specification/utils/index.d.ts.map +0 -1
  128. package/dist/specification/utils/index.js.map +0 -1
  129. package/dist/specification/v2/index.d.ts +0 -3
  130. package/dist/specification/v2/index.d.ts.map +0 -1
  131. package/dist/specification/v2/index.js.map +0 -1
  132. package/dist/specification/v2/module.d.ts +0 -24
  133. package/dist/specification/v2/module.d.ts.map +0 -1
  134. package/dist/specification/v2/module.js +0 -389
  135. package/dist/specification/v2/module.js.map +0 -1
  136. package/dist/specification/v2/type.d.ts +0 -79
  137. package/dist/specification/v2/type.d.ts.map +0 -1
  138. package/dist/specification/v2/type.js.map +0 -1
  139. package/dist/specification/v3/index.d.ts +0 -3
  140. package/dist/specification/v3/index.d.ts.map +0 -1
  141. package/dist/specification/v3/index.js.map +0 -1
  142. package/dist/specification/v3/module.d.ts +0 -25
  143. package/dist/specification/v3/module.d.ts.map +0 -1
  144. package/dist/specification/v3/module.js +0 -377
  145. package/dist/specification/v3/module.js.map +0 -1
  146. package/dist/specification/v3/type.d.ts +0 -121
  147. package/dist/specification/v3/type.d.ts.map +0 -1
  148. package/dist/specification/v3/type.js.map +0 -1
  149. package/dist/utils/package-json.d.ts +0 -3
  150. package/dist/utils/package-json.d.ts.map +0 -1
  151. package/dist/utils/package-json.js +0 -35
  152. package/dist/utils/package-json.js.map +0 -1
  153. /package/dist/{specification/v2 → schema}/type.js +0 -0
  154. /package/dist/{specification/v3 → schema/v2}/type.js +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./module"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/v3/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB"}
@@ -0,0 +1,30 @@
1
+ import type { EnumType, IntersectionType, Method, Parameter, RefAliasType, RefEnumType, RefObjectType, ReferenceType, ResolverProperty, Response, UnionType } from '@trapi/metadata';
2
+ import { ParameterSource } from '@trapi/metadata';
3
+ import type { OperationV3, ParameterV3, ResponseV3, SchemaV3, SpecV3 } from '../../schema';
4
+ import { ParameterSourceV3 } from '../../schema';
5
+ import { AbstractSpecGenerator } from '../abstract';
6
+ export declare class V3Generator extends AbstractSpecGenerator<SpecV3, SchemaV3> {
7
+ build(): Promise<SpecV3>;
8
+ private buildComponents;
9
+ private static translateSecurityDefinitions;
10
+ private buildPaths;
11
+ private buildMethod;
12
+ private buildRequestBodyWithFormData;
13
+ private buildRequestBody;
14
+ private buildMediaType;
15
+ protected buildResponses(input: Response[]): Record<string, ResponseV3>;
16
+ protected buildOperation(controllerName: string, method: Method): OperationV3;
17
+ protected transformParameterSource(source: `${ParameterSource}`): `${ParameterSourceV3}` | undefined;
18
+ protected buildParameter(input: Parameter): ParameterV3;
19
+ private transformParameterExamples;
20
+ private buildServers;
21
+ protected buildSchemaForRefObject(input: RefObjectType): SchemaV3;
22
+ protected buildSchemaForRefEnum(referenceType: RefEnumType): SchemaV3;
23
+ protected buildSchemaForRefAlias(referenceType: RefAliasType): SchemaV3;
24
+ protected buildProperties<T>(properties: ResolverProperty[]): Record<string, SchemaV3>;
25
+ protected getSchemaForIntersectionType(type: IntersectionType): SchemaV3;
26
+ protected getSchemaForEnumType(enumType: EnumType): SchemaV3;
27
+ protected getSchemaForReferenceType(referenceType: ReferenceType): SchemaV3;
28
+ protected getSchemaForUnionType(type: UnionType): SchemaV3;
29
+ }
30
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/generator/v3/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,QAAQ,EAER,SAAS,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,eAAe,EAQlB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAKR,WAAW,EACX,WAAW,EAGX,UAAU,EACV,QAAQ,EAGR,MAAM,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAEH,iBAAiB,EACpB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,WAAY,SAAQ,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC9D,KAAK,IAAK,OAAO,CAAC,MAAM,CAAC;IAyB/B,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAyB3C,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,WAAW;IAuFnB,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAOtB,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IA8DxE,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAkB7E,SAAS,CAAC,wBAAwB,CAC9B,MAAM,EAAE,GAAG,eAAe,EAAE,GAC5B,GAAG,iBAAiB,EAAE,GAAG,SAAS;IAoBtC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW;IAiDvD,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,YAAY;IAapB,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAI,QAAQ;IAuBlE,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,WAAW,GAAI,QAAQ;IAoCtE,SAAS,CAAC,sBAAsB,CAAC,aAAa,EAAE,YAAY,GAAI,QAAQ;IAcxE,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IA6BtF,SAAS,CAAC,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,GAAI,QAAQ;IAIzE,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAW5D,SAAS,CAAC,yBAAyB,CAAC,aAAa,EAAE,aAAa,GAAG,QAAQ;IAM3E,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAI,QAAQ;CA0D9D"}
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021-2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.V3Generator = void 0;
10
+ const metadata_1 = require("@trapi/metadata");
11
+ const node_url_1 = require("node:url");
12
+ const smob_1 = require("smob");
13
+ const schema_1 = require("../../schema");
14
+ const utils_1 = require("../../utils");
15
+ const abstract_1 = require("../abstract");
16
+ class V3Generator extends abstract_1.AbstractSpecGenerator {
17
+ async build() {
18
+ if (typeof this.spec !== 'undefined') {
19
+ return this.spec;
20
+ }
21
+ let spec = {
22
+ components: this.buildComponents(),
23
+ info: this.buildInfo(),
24
+ openapi: '3.1.0',
25
+ paths: this.buildPaths(),
26
+ servers: this.buildServers(),
27
+ tags: [],
28
+ };
29
+ if (this.config.specificationExtra) {
30
+ spec = (0, smob_1.merge)(spec, this.config.specificationExtra);
31
+ }
32
+ this.spec = spec;
33
+ await this.save();
34
+ return spec;
35
+ }
36
+ buildComponents() {
37
+ const components = {
38
+ examples: {},
39
+ headers: {},
40
+ parameters: {},
41
+ requestBodies: {},
42
+ responses: {},
43
+ schemas: this.buildSchemasForReferenceTypes((output, referenceType) => {
44
+ if (referenceType.deprecated) {
45
+ output.deprecated = true;
46
+ }
47
+ }),
48
+ securitySchemes: {},
49
+ };
50
+ if (this.config.securityDefinitions) {
51
+ components.securitySchemes = V3Generator.translateSecurityDefinitions(this.config.securityDefinitions);
52
+ }
53
+ return components;
54
+ }
55
+ static translateSecurityDefinitions(securityDefinitions) {
56
+ const output = {};
57
+ const keys = Object.keys(securityDefinitions);
58
+ for (let i = 0; i < keys.length; i++) {
59
+ const securityDefinition = securityDefinitions[keys[i]];
60
+ switch (securityDefinition.type) {
61
+ case 'http':
62
+ output[keys[i]] = securityDefinition;
63
+ break;
64
+ case 'oauth2':
65
+ output[keys[i]] = securityDefinition;
66
+ break;
67
+ case 'apiKey':
68
+ output[keys[i]] = securityDefinition;
69
+ break;
70
+ }
71
+ }
72
+ return output;
73
+ }
74
+ buildPaths() {
75
+ const output = {};
76
+ for (let i = 0; i < this.metadata.controllers.length; i++) {
77
+ const controller = this.metadata.controllers[i];
78
+ for (let j = 0; j < controller.methods.length; j++) {
79
+ const method = controller.methods[j];
80
+ if (method.hidden) {
81
+ continue;
82
+ }
83
+ let path = (0, utils_1.removeFinalCharacter)((0, utils_1.removeDuplicateSlashes)(`/${controller.path}/${method.path}`), '/');
84
+ path = (0, utils_1.normalizePathParameters)(path);
85
+ output[path] = output[path] || {};
86
+ output[path][method.method] = this.buildMethod(controller.name, method);
87
+ }
88
+ }
89
+ return output;
90
+ }
91
+ buildMethod(controllerName, method) {
92
+ const output = this.buildOperation(controllerName, method);
93
+ output.description = method.description;
94
+ output.summary = method.summary;
95
+ output.tags = method.tags;
96
+ // Use operationId tag otherwise fallback to generate. Warning: This doesn't check uniqueness.
97
+ output.operationId = method.operationId || output.operationId;
98
+ if (method.deprecated) {
99
+ output.deprecated = method.deprecated;
100
+ }
101
+ if (method.security) {
102
+ output.security = method.security;
103
+ }
104
+ const parameters = this.groupParameters(method.parameters);
105
+ output.parameters = [
106
+ ...(parameters[metadata_1.ParameterSource.QUERY_PROP] || []),
107
+ ...(parameters[metadata_1.ParameterSource.HEADER] || []),
108
+ ...(parameters[metadata_1.ParameterSource.PATH] || []),
109
+ ...(parameters[metadata_1.ParameterSource.COOKIE] || []),
110
+ ]
111
+ .map((p) => this.buildParameter(p));
112
+ // ignore ParameterSource.QUERY!
113
+ const bodyParams = parameters[metadata_1.ParameterSource.BODY] || [];
114
+ const formParams = parameters[metadata_1.ParameterSource.FORM_DATA] || [];
115
+ if (bodyParams.length > 1) {
116
+ throw new Error('Only one body parameter allowed per controller method.');
117
+ }
118
+ if (bodyParams.length > 0 && formParams.length > 0) {
119
+ throw new Error('Either body parameter or form parameters allowed per controller method - not both.');
120
+ }
121
+ const bodyPropParams = parameters[metadata_1.ParameterSource.BODY_PROP] || [];
122
+ if (bodyPropParams.length > 0) {
123
+ if (bodyParams.length === 0) {
124
+ bodyParams.push({
125
+ in: metadata_1.ParameterSource.BODY,
126
+ name: 'body',
127
+ description: '',
128
+ parameterName: bodyPropParams[0].parameterName || 'body',
129
+ required: true,
130
+ type: {
131
+ typeName: metadata_1.TypeName.NESTED_OBJECT_LITERAL,
132
+ properties: [],
133
+ },
134
+ validators: {},
135
+ deprecated: false,
136
+ });
137
+ }
138
+ if ((0, metadata_1.isNestedObjectLiteralType)(bodyParams[0].type)) {
139
+ for (let i = 0; i < bodyPropParams.length; i++) {
140
+ bodyParams[0].type.properties.push({
141
+ default: bodyPropParams[i].default,
142
+ validators: bodyPropParams[i].validators,
143
+ description: bodyPropParams[i].description,
144
+ name: bodyPropParams[i].name,
145
+ type: bodyPropParams[i].type,
146
+ required: bodyPropParams[i].required,
147
+ deprecated: bodyPropParams[i].deprecated,
148
+ });
149
+ }
150
+ }
151
+ }
152
+ if (bodyParams.length > 0) {
153
+ output.requestBody = this.buildRequestBody(bodyParams[0]);
154
+ }
155
+ else if (formParams.length > 0) {
156
+ output.requestBody = this.buildRequestBodyWithFormData(formParams);
157
+ }
158
+ for (let i = 0; i < method.extensions.length; i++) {
159
+ output[method.extensions[i].key] = method.extensions[i].value;
160
+ }
161
+ return output;
162
+ }
163
+ buildRequestBodyWithFormData(parameters) {
164
+ const required = [];
165
+ const properties = {};
166
+ const keys = Object.keys(parameters);
167
+ for (let i = 0; i < parameters.length; i++) {
168
+ const { schema } = this.buildMediaType(parameters[keys[i]]);
169
+ properties[parameters[keys[i]].name] = schema;
170
+ if (parameters[keys[i]].required) {
171
+ required.push(parameters[keys[i]].name);
172
+ }
173
+ }
174
+ return {
175
+ required: required.length > 0,
176
+ content: {
177
+ 'multipart/form-data': {
178
+ schema: {
179
+ type: schema_1.DataTypeName.OBJECT,
180
+ properties,
181
+ // An empty list required: [] is not valid.
182
+ // If all properties are optional, do not specify the required keyword.
183
+ ...(required && required.length && { required }),
184
+ },
185
+ },
186
+ },
187
+ };
188
+ }
189
+ buildRequestBody(parameter) {
190
+ const mediaType = this.buildMediaType(parameter);
191
+ return {
192
+ description: parameter.description,
193
+ required: parameter.required,
194
+ content: {
195
+ 'application/json': mediaType,
196
+ },
197
+ };
198
+ }
199
+ buildMediaType(parameter) {
200
+ return {
201
+ schema: this.getSchemaForType(parameter.type),
202
+ examples: this.transformParameterExamples(parameter),
203
+ };
204
+ }
205
+ buildResponses(input) {
206
+ const output = {};
207
+ for (let i = 0; i < input.length; i++) {
208
+ const res = input[i];
209
+ const name = res.status || 'default';
210
+ output[name] = {
211
+ description: res.description,
212
+ };
213
+ if (res.schema &&
214
+ !(0, metadata_1.isVoidType)(res.schema)) {
215
+ const examples = {};
216
+ if (res.examples &&
217
+ res.examples.length > 0) {
218
+ for (let i = 0; i < res.examples.length; i++) {
219
+ const label = res.examples[i].label || `example${i + 1}`;
220
+ examples[label] = {
221
+ value: res.examples[i].value,
222
+ };
223
+ }
224
+ }
225
+ output[name].content = output[name].content || {};
226
+ const contentTypes = res.produces || ['application/json'];
227
+ for (let i = 0; i < contentTypes.length; i++) {
228
+ output[name].content[contentTypes[i]] = {
229
+ schema: this.getSchemaForType(res.schema),
230
+ examples,
231
+ };
232
+ }
233
+ }
234
+ if (res.headers) {
235
+ const headers = {};
236
+ if ((0, metadata_1.isRefObjectType)(res.headers)) {
237
+ headers[res.headers.refName] = {
238
+ schema: this.getSchemaForReferenceType(res.headers),
239
+ description: res.headers.description,
240
+ };
241
+ }
242
+ else if ((0, metadata_1.isNestedObjectLiteralType)(res.headers)) {
243
+ res.headers.properties.forEach((each) => {
244
+ headers[each.name] = {
245
+ schema: this.getSchemaForType(each.type),
246
+ description: each.description,
247
+ required: each.required,
248
+ };
249
+ });
250
+ }
251
+ output[res.name].headers = headers;
252
+ }
253
+ }
254
+ return output;
255
+ }
256
+ buildOperation(controllerName, method) {
257
+ const operation = {
258
+ operationId: this.getOperationId(method.name),
259
+ responses: this.buildResponses(method.responses),
260
+ };
261
+ if (method.description) {
262
+ operation.description = method.description;
263
+ }
264
+ if (method.security) {
265
+ operation.security = method.security;
266
+ }
267
+ if (method.deprecated) {
268
+ operation.deprecated = method.deprecated;
269
+ }
270
+ return operation;
271
+ }
272
+ transformParameterSource(source) {
273
+ if (source === metadata_1.ParameterSource.COOKIE) {
274
+ return schema_1.ParameterSourceV3.COOKIE;
275
+ }
276
+ if (source === metadata_1.ParameterSource.HEADER) {
277
+ return schema_1.ParameterSourceV3.HEADER;
278
+ }
279
+ if (source === metadata_1.ParameterSource.PATH) {
280
+ return schema_1.ParameterSourceV3.PATH;
281
+ }
282
+ if (source === metadata_1.ParameterSource.QUERY_PROP || source === metadata_1.ParameterSource.QUERY) {
283
+ return schema_1.ParameterSourceV3.QUERY;
284
+ }
285
+ return undefined;
286
+ }
287
+ buildParameter(input) {
288
+ const sourceIn = this.transformParameterSource(input.in);
289
+ if (!sourceIn) {
290
+ throw new Error(`The parameter source "${input.in}" is not valid for generating a document.`);
291
+ }
292
+ const parameter = {
293
+ allowEmptyValue: false,
294
+ deprecated: false,
295
+ description: input.description,
296
+ in: sourceIn,
297
+ name: input.name,
298
+ required: input.required,
299
+ schema: {
300
+ default: input.default,
301
+ format: undefined,
302
+ ...this.transformValidators(input.validators),
303
+ },
304
+ };
305
+ if (input.deprecated) {
306
+ parameter.deprecated = true;
307
+ }
308
+ const parameterType = this.getSchemaForType(input.type);
309
+ if (parameterType.format) {
310
+ parameter.schema.format = parameterType.format;
311
+ }
312
+ if (parameterType.$ref) {
313
+ parameter.schema = parameterType;
314
+ return parameter;
315
+ }
316
+ if ((0, metadata_1.isAnyType)(input.type)) {
317
+ parameter.schema.type = schema_1.DataTypeName.STRING;
318
+ }
319
+ else {
320
+ if (parameterType.type) {
321
+ parameter.schema.type = parameterType.type;
322
+ }
323
+ parameter.schema.items = parameterType.items;
324
+ parameter.schema.enum = parameterType.enum;
325
+ }
326
+ parameter.examples = this.transformParameterExamples(input);
327
+ return parameter;
328
+ }
329
+ transformParameterExamples(parameter) {
330
+ const output = {};
331
+ if (parameter.examples &&
332
+ parameter.examples.length > 0) {
333
+ for (let i = 0; i < parameter.examples.length; i++) {
334
+ const label = parameter.examples[i].label || `example${i + 1}`;
335
+ output[label] = {
336
+ value: parameter.examples[i].value,
337
+ };
338
+ }
339
+ }
340
+ return output;
341
+ }
342
+ buildServers() {
343
+ const servers = [];
344
+ for (let i = 0; i < this.config.servers.length; i++) {
345
+ const url = new node_url_1.URL(this.config.servers[i].url, 'http://localhost:3000/');
346
+ servers.push({
347
+ url: `${url.protocol}//${url.host}${url.pathname || ''}`,
348
+ ...(this.config.servers[i].description ? { description: this.config.servers[i].description } : {}),
349
+ });
350
+ }
351
+ return servers;
352
+ }
353
+ buildSchemaForRefObject(input) {
354
+ const required = input.properties
355
+ .filter((p) => p.required && !this.isUndefinedProperty(p))
356
+ .map((p) => p.name);
357
+ const schema = {
358
+ description: input.description,
359
+ properties: this.buildProperties(input.properties),
360
+ required: required && required.length > 0 ? Array.from(new Set(required)) : undefined,
361
+ type: 'object',
362
+ };
363
+ if (input.additionalProperties) {
364
+ schema.additionalProperties = this.getSchemaForType(input.additionalProperties);
365
+ }
366
+ if (input.example) {
367
+ schema.example = input.example;
368
+ }
369
+ return schema;
370
+ }
371
+ buildSchemaForRefEnum(referenceType) {
372
+ const type = this.decideEnumType(referenceType.members);
373
+ const typesUsed = this.determineTypesUsedInEnum(referenceType.members);
374
+ if (typesUsed.length === 1) {
375
+ const schema = {
376
+ description: referenceType.description,
377
+ enum: referenceType.members,
378
+ type,
379
+ };
380
+ if (typeof referenceType.memberNames !== undefined &&
381
+ referenceType.members.length === referenceType.memberNames.length) {
382
+ schema['x-enum-varnames'] = referenceType.memberNames;
383
+ }
384
+ return schema;
385
+ }
386
+ const schema = {
387
+ description: referenceType.description,
388
+ anyOf: [],
389
+ };
390
+ for (let i = 0; i < typesUsed.length; i++) {
391
+ schema.anyOf.push({
392
+ type: typesUsed[i],
393
+ enum: referenceType.members.filter((e) => typeof e === typesUsed[i]),
394
+ });
395
+ }
396
+ return schema;
397
+ }
398
+ buildSchemaForRefAlias(referenceType) {
399
+ const swaggerType = this.getSchemaForType(referenceType.type);
400
+ const format = referenceType.format;
401
+ return {
402
+ ...swaggerType,
403
+ default: referenceType.default || swaggerType.default,
404
+ example: referenceType.example,
405
+ format: format || swaggerType.format,
406
+ description: referenceType.description,
407
+ ...this.transformValidators(referenceType.validators),
408
+ };
409
+ }
410
+ buildProperties(properties) {
411
+ const output = {};
412
+ properties.forEach((property) => {
413
+ const swaggerType = this.getSchemaForType(property.type);
414
+ swaggerType.description = property.description;
415
+ swaggerType.example = property.example;
416
+ swaggerType.format = property.format || swaggerType.format;
417
+ if (!swaggerType.$ref) {
418
+ swaggerType.default = property.default;
419
+ }
420
+ if (property.deprecated) {
421
+ swaggerType.deprecated = true;
422
+ }
423
+ const extensions = this.transformExtensions(property.extensions);
424
+ const validators = this.transformValidators(property.validators);
425
+ output[property.name] = {
426
+ ...swaggerType,
427
+ ...validators,
428
+ ...extensions,
429
+ };
430
+ });
431
+ return output;
432
+ }
433
+ getSchemaForIntersectionType(type) {
434
+ return { allOf: type.members.map((x) => this.getSchemaForType(x)) };
435
+ }
436
+ getSchemaForEnumType(enumType) {
437
+ const type = this.decideEnumType(enumType.members);
438
+ const nullable = !!enumType.members.includes(null);
439
+ return {
440
+ type,
441
+ enum: enumType.members.map((member) => (0, utils_1.transformValueTo)(type, member)),
442
+ nullable,
443
+ };
444
+ }
445
+ getSchemaForReferenceType(referenceType) {
446
+ return {
447
+ $ref: `#/components/schemas/${referenceType.refName}`,
448
+ };
449
+ }
450
+ getSchemaForUnionType(type) {
451
+ const members = [];
452
+ let nullable = false;
453
+ const enumMembers = {};
454
+ for (let i = 0; i < type.members.length; i++) {
455
+ const member = type.members[i];
456
+ if ((0, metadata_1.isEnumType)(member)) {
457
+ for (let j = 0; j < member.members.length; j++) {
458
+ const memberChild = member.members[j];
459
+ if (memberChild === null || memberChild === undefined) {
460
+ nullable = true;
461
+ continue;
462
+ }
463
+ const typeOf = typeof memberChild;
464
+ if (typeOf === 'string' || typeOf === 'number' || typeOf === 'boolean') {
465
+ enumMembers[typeOf] = enumMembers[typeOf] || [];
466
+ enumMembers[typeOf].push(memberChild);
467
+ }
468
+ }
469
+ }
470
+ if (!(0, metadata_1.isAnyType)(member) &&
471
+ !(0, metadata_1.isUndefinedType)(member) &&
472
+ !(0, metadata_1.isEnumType)(member)) {
473
+ members.push(member);
474
+ }
475
+ }
476
+ const schemas = [];
477
+ for (let i = 0; i < members.length; i++) {
478
+ schemas.push(this.getSchemaForType(members[i]));
479
+ }
480
+ const enumMembersKeys = Object.keys(enumMembers);
481
+ for (let i = 0; i < enumMembersKeys.length; i++) {
482
+ const enumType = {
483
+ typeName: 'enum',
484
+ members: enumMembers[enumMembersKeys[i]],
485
+ };
486
+ schemas.push(this.getSchemaForEnumType(enumType));
487
+ }
488
+ if (schemas.length === 1) {
489
+ const schema = schemas[0];
490
+ if (schema.$ref) {
491
+ return { allOf: [schema], nullable };
492
+ }
493
+ return { ...schema, nullable };
494
+ }
495
+ return { anyOf: schemas, ...(nullable ? { nullable } : {}) };
496
+ }
497
+ }
498
+ exports.V3Generator = V3Generator;
499
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/generator/v3/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAgBH,8CASyB;AACzB,uCAA+B;AAC/B,+BAA6B;AAgB7B,yCAGsB;AAEtB,uCAEqB;AACrB,0CAAoD;AAEpD,MAAa,WAAY,SAAQ,gCAAuC;IACpE,KAAK,CAAC,KAAK;QACP,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAClC,OAAO,IAAI,CAAC,IAAI,CAAC;SACpB;QAED,IAAI,IAAI,GAAW;YACf,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE;YAClC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;YACtB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,IAAI,EAAE,EAAE;SACX,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;YAChC,IAAI,GAAG,IAAA,YAAK,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,eAAe;QACnB,MAAM,UAAU,GAAG;YACf,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;gBAClE,IAAI,aAAa,CAAC,UAAU,EAAE;oBAC1B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;iBAC5B;YACL,CAAC,CAAC;YACF,eAAe,EAAE,EAAE;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACjC,UAAU,CAAC,eAAe,GAAG,WAAW,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;SAC1G;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,4BAA4B,CACvC,mBAAwC;QAExC,MAAM,MAAM,GAAgC,EAAE,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,kBAAkB,GAAwB,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7E,QAAQ,kBAAkB,CAAC,IAAI,EAAE;gBAC7B,KAAK,MAAM;oBACP,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;oBACrC,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;oBACrC,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;oBACrC,MAAM;aACb;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,UAAU;QACd,MAAM,MAAM,GAAmD,EAAE,CAAC;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,SAAS;iBACZ;gBAED,IAAI,IAAI,GAAG,IAAA,4BAAoB,EAAC,IAAA,8BAAsB,EAAC,IAAI,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnG,IAAI,GAAG,IAAA,+BAAuB,EAAC,IAAI,CAAC,CAAC;gBAErC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aAC3E;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,cAAsB,EAAE,MAAc;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACxC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAE1B,8FAA8F;QAC9F,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;QAE9D,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;SACzC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAiB,CAAC;SAC9C;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3D,MAAM,CAAC,UAAU,GAAG;YAChB,GAAG,CAAC,UAAU,CAAC,0BAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACjD,GAAG,CAAC,UAAU,CAAC,0BAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,GAAG,CAAC,UAAU,CAAC,0BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,GAAG,CAAC,UAAU,CAAC,0BAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAChD;aACI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,gCAAgC;QAEhC,MAAM,UAAU,GAAG,UAAU,CAAC,0BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,0BAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAC7E;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;SACzG;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,0BAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,UAAU,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,0BAAe,CAAC,IAAI;oBACxB,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,EAAE;oBACf,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,MAAM;oBACxD,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE;wBACF,QAAQ,EAAE,mBAAQ,CAAC,qBAAqB;wBACxC,UAAU,EAAE,EAAE;qBACjB;oBACD,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;aACN;YAED,IAAI,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC/B,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO;wBAClC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU;wBACxC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW;wBAC1C,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;wBAC5B,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;wBAC5B,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ;wBACpC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU;qBAC3C,CAAC,CAAC;iBACN;aACJ;SACJ;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D;aAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;SACtE;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACjE;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,4BAA4B,CAAC,UAAuB;QACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAA6B,EAAE,CAAC;QAEhD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YAE9C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC9B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO;YACH,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,EAAE;gBACL,qBAAqB,EAAE;oBACnB,MAAM,EAAE;wBACJ,IAAI,EAAE,qBAAY,CAAC,MAAM;wBACzB,UAAU;wBACV,2CAA2C;wBAC3C,uEAAuE;wBACvE,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAC;qBACnD;iBACJ;aACJ;SACJ,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,SAAoB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjD,OAAO;YACH,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE;gBACL,kBAAkB,EAAE,SAAS;aAChC;SACJ,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,SAAoB;QACvC,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC;SACvD,CAAC;IACN,CAAC;IAES,cAAc,CAAC,KAAiB;QACtC,MAAM,MAAM,GAA+B,EAAE,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAY,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,GAAG;gBACX,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAC;YAEF,IACI,GAAG,CAAC,MAAM;gBACV,CAAC,IAAA,qBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,EACzB;gBACE,MAAM,QAAQ,GAA6B,EAAE,CAAC;gBAC9C,IACI,GAAG,CAAC,QAAQ;oBACZ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACzB;oBACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzD,QAAQ,CAAC,KAAK,CAAC,GAAG;4BACd,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;yBAC/B,CAAC;qBACL;iBACJ;gBAED,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;gBAElD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;wBACpC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;wBACzC,QAAQ;qBACX,CAAC;iBACL;aACJ;YAED,IAAI,GAAG,CAAC,OAAO,EAAE;gBACb,MAAM,OAAO,GAA6B,EAAE,CAAC;gBAC7C,IAAI,IAAA,0BAAe,EAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;wBAC3B,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAa;wBAC/D,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW;qBACvC,CAAC;iBACL;qBAAM,IAAI,IAAA,oCAAyB,EAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAC/C,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,EAAE;wBACtD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;4BACjB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAa;4BACpD,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBAC1B,CAAC;oBACN,CAAC,CAAC,CAAC;iBACN;gBAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;aACtC;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,cAAc,CAAC,cAAsB,EAAE,MAAc;QAC3D,MAAM,SAAS,GAAiB;YAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;SACnD,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,EAAE;YACpB,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;SAC9C;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SACxC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;SAC5C;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,wBAAwB,CAC9B,MAA4B;QAE5B,IAAI,MAAM,KAAK,0BAAe,CAAC,MAAM,EAAE;YACnC,OAAO,0BAAiB,CAAC,MAAM,CAAC;SACnC;QAED,IAAI,MAAM,KAAK,0BAAe,CAAC,MAAM,EAAE;YACnC,OAAO,0BAAiB,CAAC,MAAM,CAAC;SACnC;QAED,IAAI,MAAM,KAAK,0BAAe,CAAC,IAAI,EAAE;YACjC,OAAO,0BAAiB,CAAC,IAAI,CAAC;SACjC;QAED,IAAI,MAAM,KAAK,0BAAe,CAAC,UAAU,IAAI,MAAM,KAAK,0BAAe,CAAC,KAAK,EAAE;YAC3E,OAAO,0BAAiB,CAAC,KAAK,CAAC;SAClC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,cAAc,CAAC,KAAgB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;SACjG;QAED,MAAM,SAAS,GAAiB;YAC5B,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,SAAS;gBACjB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC;aAChD;SACJ,CAAC;QAEF,IAAI,KAAK,CAAC,UAAU,EAAE;YAClB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;SAC/B;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,aAAa,CAAC,MAAM,EAAE;YACtB,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;SAClD;QAED,IAAI,aAAa,CAAC,IAAI,EAAE;YACpB,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;YACjC,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,IAAA,oBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvB,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,qBAAY,CAAC,MAAM,CAAC;SAC/C;aAAM;YACH,IAAI,aAAa,CAAC,IAAI,EAAE;gBACpB,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAoB,CAAC;aAC9D;YACD,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;SAC9C;QAED,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAE5D,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,0BAA0B,CAAC,SAAoB;QACnD,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,IACI,SAAS,CAAC,QAAQ;YAClB,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAC/B;YACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,KAAK,CAAC,GAAG;oBACZ,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;iBACrC,CAAC;aACL;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,YAAY;QAChB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC;gBACT,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrG,CAAC,CAAC;SACN;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,uBAAuB,CAAC,KAAoB;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExB,MAAM,MAAM,GAAc;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACrF,IAAI,EAAE,QAAQ;SACjB,CAAC;QAEF,IAAI,KAAK,CAAC,oBAAoB,EAAE;YAC5B,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACnF;QAED,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAClC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,qBAAqB,CAAC,aAA0B;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,MAAM,GAAa;gBACrB,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,IAAI,EAAE,aAAa,CAAC,OAAO;gBAC3B,IAAI;aACP,CAAC;YAEF,IACI,OAAO,aAAa,CAAC,WAAW,KAAK,SAAS;gBAC9C,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,CAAC,MAAM,EACnE;gBACE,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;aACzD;YAED,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,MAAM,GAAc;YACtB,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,KAAK,EAAE,EAAE;SACZ,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAsB;gBACvC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;aACvE,CAAC,CAAC;SACN;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,sBAAsB,CAAC,aAA2B;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAwB,CAAC;QAEtD,OAAO;YACH,GAAI,WAAwB;YAC5B,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO;YACrD,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,MAAM;YACpC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC;SACxD,CAAC;IACN,CAAC;IAES,eAAe,CAAI,UAA8B;QACvD,MAAM,MAAM,GAA6B,EAAE,CAAC;QAE5C,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAa,CAAC;YACrE,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YAC/C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACvC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAwB,IAAI,WAAW,CAAC,MAAM,CAAC;YAE7E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;gBACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;aAC1C;YAED,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACrB,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;aACjC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACpB,GAAG,WAAW;gBACd,GAAG,UAAU;gBACb,GAAG,UAAU;aAChB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,4BAA4B,CAAC,IAAsB;QACzD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IAES,oBAAoB,CAAC,QAAkB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnD,OAAO;YACH,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,QAAQ;SACX,CAAC;IACN,CAAC;IAES,yBAAyB,CAAC,aAA4B;QAC5D,OAAO;YACH,IAAI,EAAE,wBAAwB,aAAa,CAAC,OAAO,EAAE;SACxD,CAAC;IACN,CAAC;IAES,qBAAqB,CAAC,IAAe;QAC3C,MAAM,OAAO,GAAY,EAAE,CAAC;QAE5B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,WAAW,GAAsD,EAAE,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAA,qBAAU,EAAC,MAAM,CAAC,EAAE;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;wBACnD,QAAQ,GAAG,IAAI,CAAC;wBAChB,SAAS;qBACZ;oBAED,MAAM,MAAM,GAAG,OAAO,WAAW,CAAC;oBAClC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;wBACpE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChD,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qBACzC;iBACJ;aACJ;YAED,IACI,CAAC,IAAA,oBAAS,EAAC,MAAM,CAAC;gBAClB,CAAC,IAAA,0BAAe,EAAC,MAAM,CAAC;gBACxB,CAAC,IAAA,qBAAU,EAAC,MAAM,CAAC,EACrB;gBACE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;SACJ;QAED,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAc;gBACxB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aAC3C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrD;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,MAAM,CAAC,IAAI,EAAE;gBACb,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;aACxC;YAED,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;SAClC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;CACJ;AAjlBD,kCAilBC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ export * from './config';
2
+ export * from './constants';
1
3
  export * from './metadata';
2
- export * from './module';
3
- export * from './specification';
4
+ export * from './generator';
5
+ export * from './schema';
4
6
  export * from './type';
5
7
  export * from './utils';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -20,9 +20,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./config"), exports);
24
+ __exportStar(require("./constants"), exports);
23
25
  __exportStar(require("./metadata"), exports);
24
- __exportStar(require("./module"), exports);
25
- __exportStar(require("./specification"), exports);
26
+ __exportStar(require("./generator"), exports);
27
+ __exportStar(require("./schema"), exports);
26
28
  __exportStar(require("./type"), exports);
27
29
  __exportStar(require("./utils"), exports);
28
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,2CAAyB;AACzB,kDAAgC;AAChC,yCAAuB;AACvB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB"}
@@ -1,5 +1,4 @@
1
- import { IsDouble, IsFloat, IsInt, IsLong, RequestConsumes, RequestFileParam, ResponseDescription, ResponseExample, ResponseProduces, SwaggerDeprecated, SwaggerHidden, SwaggerTags } from '@trapi/decorators';
2
- import { Cache as MetadataCache, Config as MetadataConfig, GeneratorOutput as MetadataGeneratorOutput, createMetadataGenerator, generateMetadata } from '@trapi/metadata';
3
- type MetadataCacheConfig = MetadataCache.Config;
4
- export { generateMetadata, createMetadataGenerator, MetadataGeneratorOutput, MetadataCacheConfig, MetadataConfig, RequestConsumes, RequestFileParam, ResponseDescription, ResponseExample, ResponseProduces, SwaggerTags, SwaggerHidden, SwaggerDeprecated, IsDouble, IsFloat, IsLong, IsInt, };
1
+ import { DecoratorConfig, DecoratorID, Metadata, Options as MetadataOptions, PresetSchema, TsCompilerOptions, TsConfig, generateMetadata, isMetadata } from '@trapi/metadata';
2
+ import type { CacheOptions } from '@trapi/metadata';
3
+ export { DecoratorConfig, DecoratorID, generateMetadata, isMetadata, CacheOptions, Metadata, MetadataOptions, PresetSchema, TsCompilerOptions, TsConfig, };
5
4
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,KAAK,IAAI,aAAa,EACtB,MAAM,IAAI,cAAc,EACxB,eAAe,IAAI,uBAAuB,EAC1C,uBAAuB,EACvB,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;AAEhD,OAAO,EAEH,gBAAgB,EAChB,uBAAuB,EAGvB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EAGd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,GACR,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,eAAe,EACf,WAAW,EACX,QAAQ,EACR,OAAO,IAAI,eAAe,EAC1B,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EACH,eAAe,EACf,WAAW,EAGX,gBAAgB,EAChB,UAAU,EAEV,YAAY,EAGZ,QAAQ,EACR,eAAe,EAEf,YAAY,EAEZ,iBAAiB,EACjB,QAAQ,GACX,CAAC"}