@tsoa-next/cli 8.0.0 → 8.0.1-dev.44.a051324b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/api.d.ts +2 -1
  2. package/dist/api.js +172 -144
  3. package/dist/api.js.map +1 -1
  4. package/dist/cli.d.ts +1 -2
  5. package/dist/cli.js +2 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/metadataGeneration/controllerGenerator.js +10 -13
  8. package/dist/metadataGeneration/controllerGenerator.js.map +1 -1
  9. package/dist/metadataGeneration/exceptions.d.ts +3 -3
  10. package/dist/metadataGeneration/exceptions.js +5 -12
  11. package/dist/metadataGeneration/exceptions.js.map +1 -1
  12. package/dist/metadataGeneration/extension.js +2 -2
  13. package/dist/metadataGeneration/extension.js.map +1 -1
  14. package/dist/metadataGeneration/initializer-value.js +90 -80
  15. package/dist/metadataGeneration/initializer-value.js.map +1 -1
  16. package/dist/metadataGeneration/metadataGenerator.js +20 -22
  17. package/dist/metadataGeneration/metadataGenerator.js.map +1 -1
  18. package/dist/metadataGeneration/methodGenerator.d.ts +1 -0
  19. package/dist/metadataGeneration/methodGenerator.js +39 -27
  20. package/dist/metadataGeneration/methodGenerator.js.map +1 -1
  21. package/dist/metadataGeneration/parameterGenerator.d.ts +5 -0
  22. package/dist/metadataGeneration/parameterGenerator.js +79 -90
  23. package/dist/metadataGeneration/parameterGenerator.js.map +1 -1
  24. package/dist/metadataGeneration/transformer/dateTransformer.js +3 -5
  25. package/dist/metadataGeneration/transformer/dateTransformer.js.map +1 -1
  26. package/dist/metadataGeneration/transformer/enumTransformer.d.ts +2 -0
  27. package/dist/metadataGeneration/transformer/enumTransformer.js +34 -12
  28. package/dist/metadataGeneration/transformer/enumTransformer.js.map +1 -1
  29. package/dist/metadataGeneration/transformer/primitiveTransformer.js +2 -4
  30. package/dist/metadataGeneration/transformer/primitiveTransformer.js.map +1 -1
  31. package/dist/metadataGeneration/transformer/propertyTransformer.d.ts +1 -0
  32. package/dist/metadataGeneration/transformer/propertyTransformer.js +14 -19
  33. package/dist/metadataGeneration/transformer/propertyTransformer.js.map +1 -1
  34. package/dist/metadataGeneration/transformer/referenceTransformer.d.ts +2 -0
  35. package/dist/metadataGeneration/transformer/referenceTransformer.js +35 -18
  36. package/dist/metadataGeneration/transformer/referenceTransformer.js.map +1 -1
  37. package/dist/metadataGeneration/transformer/transformer.js +3 -4
  38. package/dist/metadataGeneration/transformer/transformer.js.map +1 -1
  39. package/dist/metadataGeneration/typeResolver.d.ts +79 -0
  40. package/dist/metadataGeneration/typeResolver.js +906 -735
  41. package/dist/metadataGeneration/typeResolver.js.map +1 -1
  42. package/dist/module/generate-routes.d.ts +1 -2
  43. package/dist/module/generate-routes.js +18 -17
  44. package/dist/module/generate-routes.js.map +1 -1
  45. package/dist/module/generate-spec.js +1 -3
  46. package/dist/module/generate-spec.js.map +1 -1
  47. package/dist/routeGeneration/defaultRouteGenerator.js +2 -2
  48. package/dist/routeGeneration/defaultRouteGenerator.js.map +1 -1
  49. package/dist/routeGeneration/routeGenerator.d.ts +2 -0
  50. package/dist/routeGeneration/routeGenerator.js +20 -30
  51. package/dist/routeGeneration/routeGenerator.js.map +1 -1
  52. package/dist/swagger/specGenerator.js +1 -1
  53. package/dist/swagger/specGenerator.js.map +1 -1
  54. package/dist/swagger/specGenerator2.d.ts +12 -0
  55. package/dist/swagger/specGenerator2.js +200 -170
  56. package/dist/swagger/specGenerator2.js.map +1 -1
  57. package/dist/swagger/specGenerator3.d.ts +17 -87
  58. package/dist/swagger/specGenerator3.js +178 -172
  59. package/dist/swagger/specGenerator3.js.map +1 -1
  60. package/dist/utils/decoratorUtils.js +25 -32
  61. package/dist/utils/decoratorUtils.js.map +1 -1
  62. package/dist/utils/fs.d.ts +1 -1
  63. package/dist/utils/fs.js +5 -5
  64. package/dist/utils/fs.js.map +1 -1
  65. package/dist/utils/headerTypeHelpers.js +2 -5
  66. package/dist/utils/headerTypeHelpers.js.map +1 -1
  67. package/dist/utils/importClassesFromDirectories.js +2 -2
  68. package/dist/utils/importClassesFromDirectories.js.map +1 -1
  69. package/dist/utils/jsDocUtils.js +4 -11
  70. package/dist/utils/jsDocUtils.js.map +1 -1
  71. package/dist/utils/pathUtils.js +2 -2
  72. package/dist/utils/pathUtils.js.map +1 -1
  73. package/dist/utils/swaggerUtils.js +7 -1
  74. package/dist/utils/swaggerUtils.js.map +1 -1
  75. package/dist/utils/validatorUtils.js +60 -97
  76. package/dist/utils/validatorUtils.js.map +1 -1
  77. package/package.json +2 -2
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.MethodGenerator = void 0;
37
37
  const ts = __importStar(require("typescript"));
38
- const path = __importStar(require("path"));
38
+ const path = __importStar(require("node:path"));
39
39
  const isVoidType_1 = require("../utils/isVoidType");
40
40
  const decoratorUtils_1 = require("./../utils/decoratorUtils");
41
41
  const jsDocUtils_1 = require("./../utils/jsDocUtils");
@@ -44,6 +44,7 @@ const exceptions_1 = require("./exceptions");
44
44
  const parameterGenerator_1 = require("./parameterGenerator");
45
45
  const typeResolver_1 = require("./typeResolver");
46
46
  const headerTypeHelpers_1 = require("../utils/headerTypeHelpers");
47
+ const httpMethods = new Set(['options', 'get', 'post', 'put', 'patch', 'delete', 'head']);
47
48
  const toExampleLabel = (value) => (typeof value === 'string' ? value : undefined);
48
49
  const isResponseName = (value) => typeof value === 'string' || typeof value === 'number';
49
50
  const isExampleValue = (value, allowUndefined = false) => {
@@ -130,8 +131,7 @@ class MethodGenerator {
130
131
  }
131
132
  const fullPath = path.join(this.parentPath || '', this.path);
132
133
  const method = this.method;
133
- const parameters = this.node.parameters
134
- .map(p => {
134
+ const parameters = this.node.parameters.flatMap(p => {
135
135
  try {
136
136
  return new parameterGenerator_1.ParameterGenerator(p, method, fullPath, this.current).Generate();
137
137
  }
@@ -141,8 +141,7 @@ class MethodGenerator {
141
141
  const message = e instanceof Error ? e.message : String(e);
142
142
  throw new exceptions_1.GenerateMetadataError(`${message} \n in '${controllerId.text}.${methodId.text}'`);
143
143
  }
144
- })
145
- .reduce((flattened, params) => [...flattened, ...params], []);
144
+ });
146
145
  this.validateBodyParameters(parameters);
147
146
  this.validateQueryParameters(parameters);
148
147
  return parameters;
@@ -174,7 +173,7 @@ class MethodGenerator {
174
173
  }
175
174
  getExtensions() {
176
175
  const extensionDecorators = this.getDecoratorsByIdentifier(this.node, 'Extension');
177
- if (!extensionDecorators || !extensionDecorators.length) {
176
+ if (!extensionDecorators?.length) {
178
177
  return [];
179
178
  }
180
179
  return (0, extension_1.getExtensions)(extensionDecorators, this.current);
@@ -186,7 +185,7 @@ class MethodGenerator {
186
185
  }
187
186
  processMethodDecorators() {
188
187
  const pathDecorators = (0, decoratorUtils_1.getDecorators)(this.node, (_identifier, canonicalName) => this.supportsPathMethod(canonicalName), this.current.typeChecker);
189
- if (!pathDecorators || !pathDecorators.length) {
188
+ if (!pathDecorators?.length) {
190
189
  return;
191
190
  }
192
191
  if (pathDecorators.length > 1) {
@@ -198,9 +197,8 @@ class MethodGenerator {
198
197
  throw new exceptions_1.GenerateMetadataError(`Unsupported path decorator in '${this.getCurrentLocation()}' method.`);
199
198
  }
200
199
  this.method = decoratorName.toLowerCase();
201
- // if you don't pass in a path to the method decorator, we'll just use the base route
202
- // todo: what if someone has multiple no argument methods of the same type in a single controller?
203
- // we need to throw an error there
200
+ // Methods without an explicit decorator path inherit the controller route.
201
+ // Duplicate signatures are rejected later during metadata validation.
204
202
  this.path = (0, decoratorUtils_1.getPath)(decorator, this.current.typeChecker);
205
203
  this.produces = this.getProduces();
206
204
  this.consumes = this.getConsumes();
@@ -211,8 +209,8 @@ class MethodGenerator {
211
209
  }
212
210
  getConsumes() {
213
211
  const consumesDecorators = this.getDecoratorsByIdentifier(this.node, 'Consumes');
214
- if (!consumesDecorators || !consumesDecorators.length) {
215
- return;
212
+ if (!consumesDecorators?.length) {
213
+ return undefined;
216
214
  }
217
215
  if (consumesDecorators.length > 1) {
218
216
  throw new exceptions_1.GenerateMetadataError(`Only one Consumes decorator in '${this.getCurrentLocation()}' method, Found: ${consumesDecorators.map(d => d.text).join(', ')}`);
@@ -224,7 +222,7 @@ class MethodGenerator {
224
222
  getMethodResponses() {
225
223
  const responseExamplesByName = {};
226
224
  const decorators = this.getDecoratorsByIdentifier(this.node, 'Response');
227
- if (!decorators || !decorators.length) {
225
+ if (!decorators?.length) {
228
226
  return [];
229
227
  }
230
228
  return decorators.map(decorator => {
@@ -249,7 +247,7 @@ class MethodGenerator {
249
247
  getMethodSuccessResponse(type) {
250
248
  const decorators = this.getDecoratorsByIdentifier(this.node, 'SuccessResponse');
251
249
  const examplesWithLabels = this.getMethodSuccessExamples();
252
- if (!decorators || !decorators.length) {
250
+ if (!decorators?.length) {
253
251
  const returnsDescription = (0, jsDocUtils_1.getJSDocComment)(this.node, 'returns') || 'Ok';
254
252
  return {
255
253
  response: {
@@ -280,7 +278,7 @@ class MethodGenerator {
280
278
  schema: type,
281
279
  headers,
282
280
  },
283
- status: typeof name === 'number' ? name : typeof name === 'string' && /^\d+$/.test(name) ? parseInt(name, 10) : undefined,
281
+ status: this.parseResponseStatus(name),
284
282
  };
285
283
  }
286
284
  getHeadersFromDecorator({ parent: expression }, headersIndex) {
@@ -297,24 +295,29 @@ class MethodGenerator {
297
295
  }
298
296
  getMethodSuccessExamples() {
299
297
  const exampleDecorators = this.getDecoratorsByIdentifier(this.node, 'Example');
300
- if (!exampleDecorators || !exampleDecorators.length) {
298
+ if (!exampleDecorators?.length) {
301
299
  return undefined;
302
300
  }
303
- const examples = exampleDecorators.map(exampleDecorator => {
301
+ const examples = exampleDecorators
302
+ .map(exampleDecorator => {
304
303
  const [example, label] = (0, decoratorUtils_1.getDecoratorValues)(exampleDecorator, this.current.typeChecker);
305
304
  return { example, label: toExampleLabel(label) };
306
- }).filter((entry) => isExampleValue(entry.example));
307
- return examples || undefined;
305
+ })
306
+ .filter((entry) => isExampleValue(entry.example));
307
+ return examples.length ? examples : undefined;
308
308
  }
309
309
  supportsPathMethod(method) {
310
- return !!method && ['options', 'get', 'post', 'put', 'patch', 'delete', 'head'].some(m => m === method.toLowerCase());
310
+ if (!method) {
311
+ return false;
312
+ }
313
+ return httpMethods.has(method.toLowerCase());
311
314
  }
312
315
  getIsDeprecated() {
313
316
  if ((0, jsDocUtils_1.isExistJSDocTag)(this.node, tag => tag.tagName.text === 'deprecated')) {
314
317
  return true;
315
318
  }
316
319
  const depDecorators = this.getDecoratorsByIdentifier(this.node, 'Deprecated');
317
- if (!depDecorators || !depDecorators.length) {
320
+ if (!depDecorators?.length) {
318
321
  return false;
319
322
  }
320
323
  if (depDecorators.length > 1) {
@@ -324,7 +327,7 @@ class MethodGenerator {
324
327
  }
325
328
  getOperationId() {
326
329
  const opDecorators = this.getDecoratorsByIdentifier(this.node, 'OperationId');
327
- if (!opDecorators || !opDecorators.length) {
330
+ if (!opDecorators?.length) {
328
331
  return undefined;
329
332
  }
330
333
  if (opDecorators.length > 1) {
@@ -335,7 +338,7 @@ class MethodGenerator {
335
338
  }
336
339
  getTags() {
337
340
  const tagsDecorators = this.getDecoratorsByIdentifier(this.node, 'Tags');
338
- if (!tagsDecorators || !tagsDecorators.length) {
341
+ if (!tagsDecorators?.length) {
339
342
  return this.parentTags;
340
343
  }
341
344
  if (tagsDecorators.length > 1) {
@@ -359,14 +362,14 @@ class MethodGenerator {
359
362
  if (noSecurityDecorators?.length) {
360
363
  return [];
361
364
  }
362
- if (!securityDecorators || !securityDecorators.length) {
365
+ if (!securityDecorators?.length) {
363
366
  return this.parentSecurity || [];
364
367
  }
365
368
  return securityDecorators.map(d => (0, decoratorUtils_1.getSecurites)(d, this.current.typeChecker));
366
369
  }
367
370
  getIsHidden() {
368
371
  const hiddenDecorators = this.getDecoratorsByIdentifier(this.node, 'Hidden');
369
- if (!hiddenDecorators || !hiddenDecorators.length) {
372
+ if (!hiddenDecorators?.length) {
370
373
  return !!this.isParentHidden;
371
374
  }
372
375
  if (this.isParentHidden) {
@@ -387,10 +390,10 @@ class MethodGenerator {
387
390
  if (Array.isArray(produces)) {
388
391
  return produces;
389
392
  }
390
- else if (typeof produces === 'string') {
393
+ if (typeof produces === 'string') {
391
394
  return [produces];
392
395
  }
393
- return;
396
+ return undefined;
394
397
  }
395
398
  getProducesValue(value) {
396
399
  if (typeof value === 'string') {
@@ -401,6 +404,15 @@ class MethodGenerator {
401
404
  }
402
405
  return undefined;
403
406
  }
407
+ parseResponseStatus(name) {
408
+ if (typeof name === 'number') {
409
+ return name;
410
+ }
411
+ if (typeof name === 'string' && /^\d+$/.test(name)) {
412
+ return Number.parseInt(name, 10);
413
+ }
414
+ return undefined;
415
+ }
404
416
  }
405
417
  exports.MethodGenerator = MethodGenerator;
406
418
  //# sourceMappingURL=methodGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"methodGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/methodGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methodGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/methodGenerator.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export declare class ParameterGenerator {
19
19
  private getUploadedFileParameter;
20
20
  private getFormFieldParameter;
21
21
  private getQueriesParameters;
22
+ private getQueriesType;
23
+ private tryResolveQueriesType;
22
24
  private validateQueriesProperties;
23
25
  private getQueryParameters;
24
26
  private getPathParameter;
@@ -33,4 +35,7 @@ export declare class ParameterGenerator {
33
35
  private supportPathDataType;
34
36
  private getValidatedType;
35
37
  private getQueryParameterIsHidden;
38
+ private validateArrayQueriesProperty;
39
+ private validateNestedQueriesProperties;
40
+ private getParameterTypeNode;
36
41
  }
@@ -44,6 +44,10 @@ const typeResolver_1 = require("./typeResolver");
44
44
  const headerTypeHelpers_1 = require("../utils/headerTypeHelpers");
45
45
  const validateDecoratorUtils_1 = require("../utils/validateDecoratorUtils");
46
46
  const getDecoratorStringValue = (value, fallback) => (typeof value === 'string' ? value : fallback);
47
+ const bodyMethods = new Set(['post', 'put', 'patch', 'delete']);
48
+ const supportedParameterDecorators = new Set(['header', 'query', 'queries', 'path', 'body', 'bodyprop', 'request', 'requestprop', 'res', 'inject', 'uploadedfile', 'uploadedfiles', 'formfield']);
49
+ const validateDecoratorLocations = new Set(['body', 'bodyprop', 'query', 'queries', 'path', 'header', 'formfield']);
50
+ const supportedPathDataTypes = new Set(['string', 'integer', 'long', 'float', 'double', 'date', 'datetime', 'buffer', 'boolean', 'enum', 'refEnum', 'file', 'any']);
47
51
  const isExampleValue = (value, allowUndefined = false) => {
48
52
  if (value === null || value instanceof Date) {
49
53
  return true;
@@ -63,6 +67,7 @@ const isExampleValue = (value, allowUndefined = false) => {
63
67
  return false;
64
68
  };
65
69
  const toParameterExamples = (values) => values?.filter(value => isExampleValue(value));
70
+ const isQueriesType = (type) => type.dataType === 'refObject' || type.dataType === 'nestedObjectLiteral';
66
71
  class ParameterGenerator {
67
72
  parameter;
68
73
  method;
@@ -149,7 +154,7 @@ class ParameterGenerator {
149
154
  return typeNode;
150
155
  }
151
156
  const symbol = this.current.typeChecker.getTypeAtLocation(typeNode).aliasSymbol;
152
- if (!symbol || !symbol.declarations) {
157
+ if (!symbol?.declarations) {
153
158
  return undefined;
154
159
  }
155
160
  const declaration = symbol.declarations[0];
@@ -168,7 +173,7 @@ class ParameterGenerator {
168
173
  if (!typeNode) {
169
174
  throw new exceptions_1.GenerateMetadataError('@Res() requires the type to be TsoaResponse<HTTPStatusCode, ResBody>', parameter);
170
175
  }
171
- if (!typeNode.typeArguments || !typeNode.typeArguments[0]) {
176
+ if (!typeNode.typeArguments?.[0]) {
172
177
  throw new exceptions_1.GenerateMetadataError('@Res() requires the type to be TsoaResponse<HTTPStatusCode, ResBody>', parameter);
173
178
  }
174
179
  const statusArgument = typeNode.typeArguments[0];
@@ -207,12 +212,12 @@ class ParameterGenerator {
207
212
  }
208
213
  getProducesFromResHeaders(headers) {
209
214
  const { properties } = headers;
210
- const [contentTypeProp] = (properties || []).filter(p => p.name.toLowerCase() === 'content-type' && p.type.dataType === 'enum');
215
+ const contentTypeProp = (properties || []).find(p => p.name.toLowerCase() === 'content-type' && p.type.dataType === 'enum');
211
216
  if (contentTypeProp) {
212
217
  const type = contentTypeProp.type;
213
218
  return type.enums;
214
219
  }
215
- return;
220
+ return undefined;
216
221
  }
217
222
  getBodyPropParameter(parameter) {
218
223
  const parameterName = parameter.name.text;
@@ -334,55 +339,7 @@ class ParameterGenerator {
334
339
  }
335
340
  getQueriesParameters(parameter) {
336
341
  const parameterName = parameter.name.text;
337
- const type = this.getValidatedType(parameter);
338
- // Handle cases where TypeResolver doesn't properly resolve complex types
339
- // like Zod's z.infer types to refObject or nestedObjectLiteral
340
- if (type.dataType !== 'refObject' && type.dataType !== 'nestedObjectLiteral') {
341
- // Try to resolve the type more aggressively for complex types
342
- let typeNode = parameter.type;
343
- if (!typeNode) {
344
- const typeFromChecker = this.current.typeChecker.getTypeAtLocation(parameter);
345
- typeNode = this.current.typeChecker.typeToTypeNode(typeFromChecker, undefined, ts.NodeBuilderFlags.NoTruncation);
346
- }
347
- // If it's a TypeReferenceNode (like z.infer), try to resolve it differently
348
- if (ts.isTypeReferenceNode(typeNode)) {
349
- try {
350
- // Try to get the actual type from the type checker
351
- const actualType = this.current.typeChecker.getTypeAtLocation(typeNode);
352
- const typeNodeFromType = this.current.typeChecker.typeToTypeNode(actualType, undefined, ts.NodeBuilderFlags.NoTruncation);
353
- const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter).resolve();
354
- // Check if the resolved type is now acceptable
355
- if (resolvedType.dataType === 'refObject' || resolvedType.dataType === 'nestedObjectLiteral') {
356
- // Use the resolved type instead
357
- for (const property of resolvedType.properties) {
358
- this.validateQueriesProperties(property, parameterName);
359
- }
360
- const { examples: example, exampleLabels } = this.getParameterExample(parameter, parameterName);
361
- return {
362
- description: this.getParameterDescription(parameter),
363
- in: 'queries',
364
- name: parameterName,
365
- example: toParameterExamples(example),
366
- exampleLabels,
367
- parameterName,
368
- required: !parameter.questionToken && !parameter.initializer,
369
- type: resolvedType,
370
- validators: (0, validatorUtils_1.getParameterValidators)(this.parameter, parameterName),
371
- parameterIndex: this.getParameterIndex(parameter),
372
- ...this.getExternalValidationMetadata(parameter, 'queries'),
373
- deprecated: this.getParameterDeprecation(parameter),
374
- };
375
- }
376
- }
377
- catch (error) {
378
- // If resolution fails, log the error for debugging but continue with the original error
379
- // This helps developers understand why the type resolution failed
380
- console.warn(`Failed to resolve complex type for @Queries('${parameterName}'):`, error);
381
- // Continue with the original error below
382
- }
383
- }
384
- throw new exceptions_1.GenerateMetadataError(`@Queries('${parameterName}') only support 'refObject' or 'nestedObjectLiteral' types. If you want only one query parameter, please use the '@Query' decorator.`);
385
- }
342
+ const type = this.getQueriesType(parameter, parameterName);
386
343
  for (const property of type.properties) {
387
344
  this.validateQueriesProperties(property, parameterName);
388
345
  }
@@ -402,32 +359,43 @@ class ParameterGenerator {
402
359
  deprecated: this.getParameterDeprecation(parameter),
403
360
  };
404
361
  }
362
+ getQueriesType(parameter, parameterName) {
363
+ const type = this.getValidatedType(parameter);
364
+ if (isQueriesType(type)) {
365
+ return type;
366
+ }
367
+ const resolvedType = this.tryResolveQueriesType(parameter, parameterName);
368
+ if (resolvedType) {
369
+ return resolvedType;
370
+ }
371
+ throw new exceptions_1.GenerateMetadataError(`@Queries('${parameterName}') only support 'refObject' or 'nestedObjectLiteral' types. If you want only one query parameter, please use the '@Query' decorator.`);
372
+ }
373
+ tryResolveQueriesType(parameter, parameterName) {
374
+ const typeNode = this.getParameterTypeNode(parameter);
375
+ if (!ts.isTypeReferenceNode(typeNode)) {
376
+ return undefined;
377
+ }
378
+ try {
379
+ const actualType = this.current.typeChecker.getTypeAtLocation(typeNode);
380
+ const typeNodeFromType = this.current.typeChecker.typeToTypeNode(actualType, undefined, ts.NodeBuilderFlags.NoTruncation);
381
+ const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter).resolve();
382
+ return isQueriesType(resolvedType) ? resolvedType : undefined;
383
+ }
384
+ catch (error) {
385
+ console.warn(`Failed to resolve complex type for @Queries('${parameterName}'):`, error);
386
+ return undefined;
387
+ }
388
+ }
405
389
  validateQueriesProperties(property, parentName) {
406
390
  if (property.type.dataType === 'array') {
407
- const arrayType = property.type;
408
- if (arrayType.elementType.dataType === 'nestedObjectLiteral') {
409
- // For arrays of nestedObjectLiteral, validate each property recursively
410
- const nestedType = arrayType.elementType;
411
- if (nestedType.properties) {
412
- for (const nestedProperty of nestedType.properties) {
413
- this.validateQueriesProperties(nestedProperty, `${parentName}.${property.name}[]`);
414
- }
415
- }
416
- }
417
- else if (!this.supportPathDataType(arrayType.elementType)) {
418
- throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') property '${property.name}' can't support array '${arrayType.elementType.dataType}' type.`);
419
- }
391
+ this.validateArrayQueriesProperty(property, parentName);
392
+ return;
420
393
  }
421
- else if (property.type.dataType === 'nestedObjectLiteral') {
422
- // For nestedObjectLiteral, validate each property recursively
423
- const nestedType = property.type;
424
- if (nestedType.properties) {
425
- for (const nestedProperty of nestedType.properties) {
426
- this.validateQueriesProperties(nestedProperty, `${parentName}.${property.name}`);
427
- }
428
- }
394
+ if (property.type.dataType === 'nestedObjectLiteral') {
395
+ this.validateNestedQueriesProperties(property.type.properties, `${parentName}.${property.name}`);
396
+ return;
429
397
  }
430
- else if (!this.supportPathDataType(property.type)) {
398
+ if (!this.supportPathDataType(property.type)) {
431
399
  throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') nested property '${property.name}' Can't support '${property.type.dataType}' type.`);
432
400
  }
433
401
  }
@@ -531,7 +499,10 @@ class ParameterGenerator {
531
499
  exampleLabels.push(hasExampleLabel ? comment?.split(' ')[0].split('.').slice(1).join('.') : undefined);
532
500
  }
533
501
  return isExample ?? false;
534
- }).map(tag => ((0, jsDocUtils_1.commentToString)(tag.comment) || '').replace(`${(0, jsDocUtils_1.commentToString)(tag.comment)?.split(' ')[0] || ''}`, '').replace(/\r/g, ''));
502
+ }).map(tag => {
503
+ const comment = (0, jsDocUtils_1.commentToString)(tag.comment) || '';
504
+ return comment.replace(comment.split(' ')[0] || '', '').replaceAll('\r', '');
505
+ });
535
506
  if (examples.length === 0) {
536
507
  return {
537
508
  examples: undefined,
@@ -553,7 +524,7 @@ class ParameterGenerator {
553
524
  }
554
525
  }
555
526
  supportBodyMethod(method) {
556
- return ['post', 'put', 'patch', 'delete'].some(m => m === method.toLowerCase());
527
+ return bodyMethods.has(method.toLowerCase());
557
528
  }
558
529
  assertValidateDecoratorCompatibility(decoratorName) {
559
530
  const hasValidateDecorator = (0, decoratorUtils_1.getDecorators)(this.parameter, (_identifier, canonicalName) => canonicalName === 'Validate', this.current.typeChecker).length > 0;
@@ -562,7 +533,7 @@ class ParameterGenerator {
562
533
  }
563
534
  const resolvedLocation = decoratorName ? decoratorName.toLowerCase() : 'path';
564
535
  const normalizedLocation = ['uploadedfile', 'uploadedfiles'].includes(resolvedLocation) ? 'formfield' : resolvedLocation;
565
- if (!['body', 'bodyprop', 'query', 'queries', 'path', 'header', 'formfield'].includes(normalizedLocation)) {
536
+ if (!validateDecoratorLocations.has(normalizedLocation)) {
566
537
  throw new exceptions_1.GenerateMetadataError(`@Validate is not supported on '${normalizedLocation}' parameters in this release.`, this.parameter);
567
538
  }
568
539
  }
@@ -578,12 +549,13 @@ class ParameterGenerator {
578
549
  return (0, validateDecoratorUtils_1.getParameterExternalValidator)(parameter, parameterIn, this.current.typeChecker);
579
550
  }
580
551
  supportParameterDecorator(decoratorName) {
581
- return (!!decoratorName &&
582
- ['header', 'query', 'queries', 'path', 'body', 'bodyprop', 'request', 'requestprop', 'res', 'inject', 'uploadedfile', 'uploadedfiles', 'formfield'].some(d => d === decoratorName.toLocaleLowerCase()));
552
+ if (!decoratorName) {
553
+ return false;
554
+ }
555
+ return supportedParameterDecorators.has(decoratorName.toLowerCase());
583
556
  }
584
557
  supportPathDataType(parameterType) {
585
- const supportedPathDataTypes = ['string', 'integer', 'long', 'float', 'double', 'date', 'datetime', 'buffer', 'boolean', 'enum', 'refEnum', 'file', 'any'];
586
- if (supportedPathDataTypes.find(t => t === parameterType.dataType)) {
558
+ if (supportedPathDataTypes.has(parameterType.dataType)) {
587
559
  return true;
588
560
  }
589
561
  if (parameterType.dataType === 'refAlias') {
@@ -591,21 +563,16 @@ class ParameterGenerator {
591
563
  }
592
564
  if (parameterType.dataType === 'union') {
593
565
  // skip undefined inside unions
594
- return !parameterType.types.map(t => t.dataType === 'undefined' || this.supportPathDataType(t)).some(t => t === false);
566
+ return parameterType.types.every(type => type.dataType === 'undefined' || this.supportPathDataType(type));
595
567
  }
596
568
  return false;
597
569
  }
598
570
  getValidatedType(parameter) {
599
- let typeNode = parameter.type;
600
- if (!typeNode) {
601
- const type = this.current.typeChecker.getTypeAtLocation(parameter);
602
- typeNode = this.current.typeChecker.typeToTypeNode(type, undefined, ts.NodeBuilderFlags.NoTruncation);
603
- }
604
- return new typeResolver_1.TypeResolver(typeNode, this.current, parameter).resolve();
571
+ return new typeResolver_1.TypeResolver(this.getParameterTypeNode(parameter), this.current, parameter).resolve();
605
572
  }
606
573
  getQueryParameterIsHidden(parameter) {
607
574
  const hiddenDecorators = (0, decoratorUtils_1.getDecorators)(parameter, (_identifier, canonicalName) => canonicalName === 'Hidden', this.current.typeChecker);
608
- if (!hiddenDecorators || !hiddenDecorators.length) {
575
+ if (!hiddenDecorators?.length) {
609
576
  return false;
610
577
  }
611
578
  if (hiddenDecorators.length > 1) {
@@ -614,6 +581,28 @@ class ParameterGenerator {
614
581
  }
615
582
  return true;
616
583
  }
584
+ validateArrayQueriesProperty(property, parentName) {
585
+ const arrayType = property.type;
586
+ if (arrayType.elementType.dataType === 'nestedObjectLiteral') {
587
+ this.validateNestedQueriesProperties(arrayType.elementType.properties, `${parentName}.${property.name}[]`);
588
+ return;
589
+ }
590
+ if (!this.supportPathDataType(arrayType.elementType)) {
591
+ throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') property '${property.name}' can't support array '${arrayType.elementType.dataType}' type.`);
592
+ }
593
+ }
594
+ validateNestedQueriesProperties(properties, parentName) {
595
+ for (const property of properties ?? []) {
596
+ this.validateQueriesProperties(property, parentName);
597
+ }
598
+ }
599
+ getParameterTypeNode(parameter) {
600
+ if (parameter.type) {
601
+ return parameter.type;
602
+ }
603
+ const type = this.current.typeChecker.getTypeAtLocation(parameter);
604
+ return this.current.typeChecker.typeToTypeNode(type, undefined, ts.NodeBuilderFlags.NoTruncation);
605
+ }
617
606
  }
618
607
  exports.ParameterGenerator = ParameterGenerator;
619
608
  //# sourceMappingURL=parameterGenerator.js.map