@tsoa-next/cli 7.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.
Files changed (122) hide show
  1. package/README.MD +3 -0
  2. package/dist/cli.d.ts +44 -0
  3. package/dist/cli.js +356 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/index.d.ts +6 -0
  6. package/dist/index.js +25 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/metadataGeneration/controllerGenerator.d.ts +30 -0
  9. package/dist/metadataGeneration/controllerGenerator.js +229 -0
  10. package/dist/metadataGeneration/controllerGenerator.js.map +1 -0
  11. package/dist/metadataGeneration/exceptions.d.ts +13 -0
  12. package/dist/metadataGeneration/exceptions.js +53 -0
  13. package/dist/metadataGeneration/exceptions.js.map +1 -0
  14. package/dist/metadataGeneration/extension.d.ts +5 -0
  15. package/dist/metadataGeneration/extension.js +85 -0
  16. package/dist/metadataGeneration/extension.js.map +1 -0
  17. package/dist/metadataGeneration/initializer-value.d.ts +6 -0
  18. package/dist/metadataGeneration/initializer-value.js +154 -0
  19. package/dist/metadataGeneration/initializer-value.js.map +1 -0
  20. package/dist/metadataGeneration/metadataGenerator.d.ts +29 -0
  21. package/dist/metadataGeneration/metadataGenerator.js +220 -0
  22. package/dist/metadataGeneration/metadataGenerator.js.map +1 -0
  23. package/dist/metadataGeneration/methodGenerator.d.ts +45 -0
  24. package/dist/metadataGeneration/methodGenerator.js +367 -0
  25. package/dist/metadataGeneration/methodGenerator.js.map +1 -0
  26. package/dist/metadataGeneration/parameterGenerator.d.ts +33 -0
  27. package/dist/metadataGeneration/parameterGenerator.js +552 -0
  28. package/dist/metadataGeneration/parameterGenerator.js.map +1 -0
  29. package/dist/metadataGeneration/transformer/dateTransformer.d.ts +6 -0
  30. package/dist/metadataGeneration/transformer/dateTransformer.js +28 -0
  31. package/dist/metadataGeneration/transformer/dateTransformer.js.map +1 -0
  32. package/dist/metadataGeneration/transformer/enumTransformer.d.ts +12 -0
  33. package/dist/metadataGeneration/transformer/enumTransformer.js +75 -0
  34. package/dist/metadataGeneration/transformer/enumTransformer.js.map +1 -0
  35. package/dist/metadataGeneration/transformer/primitiveTransformer.d.ts +11 -0
  36. package/dist/metadataGeneration/transformer/primitiveTransformer.js +70 -0
  37. package/dist/metadataGeneration/transformer/primitiveTransformer.js.map +1 -0
  38. package/dist/metadataGeneration/transformer/propertyTransformer.d.ts +12 -0
  39. package/dist/metadataGeneration/transformer/propertyTransformer.js +101 -0
  40. package/dist/metadataGeneration/transformer/propertyTransformer.js.map +1 -0
  41. package/dist/metadataGeneration/transformer/referenceTransformer.d.ts +10 -0
  42. package/dist/metadataGeneration/transformer/referenceTransformer.js +81 -0
  43. package/dist/metadataGeneration/transformer/referenceTransformer.js.map +1 -0
  44. package/dist/metadataGeneration/transformer/transformer.d.ts +9 -0
  45. package/dist/metadataGeneration/transformer/transformer.js +39 -0
  46. package/dist/metadataGeneration/transformer/transformer.js.map +1 -0
  47. package/dist/metadataGeneration/typeResolver.d.ts +52 -0
  48. package/dist/metadataGeneration/typeResolver.js +1202 -0
  49. package/dist/metadataGeneration/typeResolver.js.map +1 -0
  50. package/dist/module/generate-routes.d.ts +9 -0
  51. package/dist/module/generate-routes.js +90 -0
  52. package/dist/module/generate-routes.js.map +1 -0
  53. package/dist/module/generate-spec.d.ts +9 -0
  54. package/dist/module/generate-spec.js +79 -0
  55. package/dist/module/generate-spec.js.map +1 -0
  56. package/dist/routeGeneration/defaultRouteGenerator.d.ts +12 -0
  57. package/dist/routeGeneration/defaultRouteGenerator.js +119 -0
  58. package/dist/routeGeneration/defaultRouteGenerator.js.map +1 -0
  59. package/dist/routeGeneration/routeGenerator.d.ts +56 -0
  60. package/dist/routeGeneration/routeGenerator.js +257 -0
  61. package/dist/routeGeneration/routeGenerator.js.map +1 -0
  62. package/dist/routeGeneration/templates/express.hbs +221 -0
  63. package/dist/routeGeneration/templates/hapi.hbs +267 -0
  64. package/dist/routeGeneration/templates/koa.hbs +218 -0
  65. package/dist/swagger/specGenerator.d.ts +33 -0
  66. package/dist/swagger/specGenerator.js +253 -0
  67. package/dist/swagger/specGenerator.js.map +1 -0
  68. package/dist/swagger/specGenerator2.d.ts +27 -0
  69. package/dist/swagger/specGenerator2.js +476 -0
  70. package/dist/swagger/specGenerator2.js.map +1 -0
  71. package/dist/swagger/specGenerator3.d.ts +158 -0
  72. package/dist/swagger/specGenerator3.js +646 -0
  73. package/dist/swagger/specGenerator3.js.map +1 -0
  74. package/dist/swagger/specGenerator31.d.ts +24 -0
  75. package/dist/swagger/specGenerator31.js +75 -0
  76. package/dist/swagger/specGenerator31.js.map +1 -0
  77. package/dist/utils/decoratorUtils.d.ts +9 -0
  78. package/dist/utils/decoratorUtils.js +118 -0
  79. package/dist/utils/decoratorUtils.js.map +1 -0
  80. package/dist/utils/flowUtils.d.ts +1 -0
  81. package/dist/utils/flowUtils.js +8 -0
  82. package/dist/utils/flowUtils.js.map +1 -0
  83. package/dist/utils/fs.d.ts +5 -0
  84. package/dist/utils/fs.js +55 -0
  85. package/dist/utils/fs.js.map +1 -0
  86. package/dist/utils/genericTypeGuards.d.ts +1 -0
  87. package/dist/utils/genericTypeGuards.js +8 -0
  88. package/dist/utils/genericTypeGuards.js.map +1 -0
  89. package/dist/utils/headerTypeHelpers.d.ts +5 -0
  90. package/dist/utils/headerTypeHelpers.js +27 -0
  91. package/dist/utils/headerTypeHelpers.js.map +1 -0
  92. package/dist/utils/importClassesFromDirectories.d.ts +4 -0
  93. package/dist/utils/importClassesFromDirectories.js +20 -0
  94. package/dist/utils/importClassesFromDirectories.js.map +1 -0
  95. package/dist/utils/internalTypeGuards.d.ts +5 -0
  96. package/dist/utils/internalTypeGuards.js +66 -0
  97. package/dist/utils/internalTypeGuards.js.map +1 -0
  98. package/dist/utils/isVoidType.d.ts +2 -0
  99. package/dist/utils/isVoidType.js +16 -0
  100. package/dist/utils/isVoidType.js.map +1 -0
  101. package/dist/utils/jsDocUtils.d.ts +8 -0
  102. package/dist/utils/jsDocUtils.js +122 -0
  103. package/dist/utils/jsDocUtils.js.map +1 -0
  104. package/dist/utils/jsonUtils.d.ts +1 -0
  105. package/dist/utils/jsonUtils.js +12 -0
  106. package/dist/utils/jsonUtils.js.map +1 -0
  107. package/dist/utils/pathUtils.d.ts +9 -0
  108. package/dist/utils/pathUtils.js +37 -0
  109. package/dist/utils/pathUtils.js.map +1 -0
  110. package/dist/utils/specMerge.d.ts +2 -0
  111. package/dist/utils/specMerge.js +36 -0
  112. package/dist/utils/specMerge.js.map +1 -0
  113. package/dist/utils/swaggerUtils.d.ts +3 -0
  114. package/dist/utils/swaggerUtils.js +22 -0
  115. package/dist/utils/swaggerUtils.js.map +1 -0
  116. package/dist/utils/unspecifiedObject.d.ts +3 -0
  117. package/dist/utils/unspecifiedObject.js +3 -0
  118. package/dist/utils/unspecifiedObject.js.map +1 -0
  119. package/dist/utils/validatorUtils.d.ts +5 -0
  120. package/dist/utils/validatorUtils.js +241 -0
  121. package/dist/utils/validatorUtils.js.map +1 -0
  122. package/package.json +69 -0
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getJSDocDescription = getJSDocDescription;
37
+ exports.getJSDocComment = getJSDocComment;
38
+ exports.getJSDocComments = getJSDocComments;
39
+ exports.getJSDocTagNames = getJSDocTagNames;
40
+ exports.getJSDocTags = getJSDocTags;
41
+ exports.isExistJSDocTag = isExistJSDocTag;
42
+ exports.commentToString = commentToString;
43
+ const ts = __importStar(require("typescript"));
44
+ const exceptions_1 = require("../metadataGeneration/exceptions");
45
+ function getJSDocDescription(node) {
46
+ const jsDocs = node.jsDoc;
47
+ if (!jsDocs || !jsDocs.length) {
48
+ return undefined;
49
+ }
50
+ return commentToString(jsDocs[0].comment) || undefined;
51
+ }
52
+ function getJSDocComment(node, tagName) {
53
+ const comments = getJSDocComments(node, tagName);
54
+ if (comments && comments.length !== 0) {
55
+ return comments[0];
56
+ }
57
+ return;
58
+ }
59
+ function getJSDocComments(node, tagName) {
60
+ const tags = getJSDocTags(node, tag => tag.tagName.text === tagName || tag.tagName.escapedText === tagName);
61
+ if (tags.length === 0) {
62
+ return;
63
+ }
64
+ const comments = [];
65
+ tags.forEach(tag => {
66
+ const comment = commentToString(tag.comment);
67
+ if (comment)
68
+ comments.push(comment);
69
+ });
70
+ return comments;
71
+ }
72
+ function getJSDocTagNames(node, requireTagName = false) {
73
+ let tags;
74
+ if (node.kind === ts.SyntaxKind.Parameter) {
75
+ const parameterName = node.name.text;
76
+ tags = getJSDocTags(node.parent, tag => {
77
+ if (ts.isJSDocParameterTag(tag)) {
78
+ return false;
79
+ }
80
+ else if (tag.comment === undefined) {
81
+ throw new exceptions_1.GenerateMetadataError(`Orphan tag: @${String(tag.tagName.text || tag.tagName.escapedText)} should have a parameter name follows with.`);
82
+ }
83
+ return commentToString(tag.comment)?.startsWith(parameterName) || false;
84
+ });
85
+ }
86
+ else {
87
+ tags = getJSDocTags(node, tag => {
88
+ return requireTagName ? tag.comment !== undefined : true;
89
+ });
90
+ }
91
+ return tags.map(tag => {
92
+ return tag.tagName.text;
93
+ });
94
+ }
95
+ function getJSDocTags(node, isMatching) {
96
+ const jsDocs = node.jsDoc;
97
+ if (!jsDocs || jsDocs.length === 0) {
98
+ return [];
99
+ }
100
+ const jsDoc = jsDocs[0];
101
+ if (!jsDoc.tags) {
102
+ return [];
103
+ }
104
+ return jsDoc.tags.filter(isMatching);
105
+ }
106
+ function isExistJSDocTag(node, isMatching) {
107
+ const tags = getJSDocTags(node, isMatching);
108
+ if (tags.length === 0) {
109
+ return false;
110
+ }
111
+ return true;
112
+ }
113
+ function commentToString(comment) {
114
+ if (typeof comment === 'string') {
115
+ return comment;
116
+ }
117
+ else if (comment) {
118
+ return comment.map(node => node.text).join(' ');
119
+ }
120
+ return undefined;
121
+ }
122
+ //# sourceMappingURL=jsDocUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsDocUtils.js","sourceRoot":"","sources":["../../src/utils/jsDocUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function safeFromJson(json: string): any;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeFromJson = safeFromJson;
4
+ function safeFromJson(json) {
5
+ try {
6
+ return JSON.parse(json);
7
+ }
8
+ catch {
9
+ return undefined;
10
+ }
11
+ }
12
+ //# sourceMappingURL=jsonUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonUtils.js","sourceRoot":"","sources":["../../src/utils/jsonUtils.ts"],"names":[],"mappings":";;AAAA,oCAMC;AAND,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Removes all '/', '\', and spaces from the beginning and end of the path
3
+ * Replaces all '/', '\', and spaces between sections of the path
4
+ * Adds prefix and suffix if supplied
5
+ * Replace ':pathParam' with '{pathParam}'
6
+ */
7
+ export declare function normalisePath(path: string, withPrefix?: string, withSuffix?: string, skipPrefixAndSuffixIfEmpty?: boolean): string;
8
+ export declare function convertColonPathParams(path: string): string;
9
+ export declare function convertBracesPathParams(path: string): string;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalisePath = normalisePath;
4
+ exports.convertColonPathParams = convertColonPathParams;
5
+ exports.convertBracesPathParams = convertBracesPathParams;
6
+ /**
7
+ * Removes all '/', '\', and spaces from the beginning and end of the path
8
+ * Replaces all '/', '\', and spaces between sections of the path
9
+ * Adds prefix and suffix if supplied
10
+ * Replace ':pathParam' with '{pathParam}'
11
+ */
12
+ function normalisePath(path, withPrefix, withSuffix, skipPrefixAndSuffixIfEmpty = true) {
13
+ if ((!path || path === '/') && skipPrefixAndSuffixIfEmpty) {
14
+ return '';
15
+ }
16
+ if (!path || typeof path !== 'string') {
17
+ path = '' + path;
18
+ }
19
+ // normalise beginning and end of the path
20
+ let normalised = path.replace(/^[/\\\s]+|[/\\\s]+$/g, '');
21
+ normalised = withPrefix ? withPrefix + normalised : normalised;
22
+ normalised = withSuffix ? normalised + withSuffix : normalised;
23
+ // normalise / signs amount in all path
24
+ normalised = normalised.replace(/[/\\\s]+/g, '/');
25
+ return normalised;
26
+ }
27
+ function convertColonPathParams(path) {
28
+ if (!path || typeof path !== 'string') {
29
+ return path;
30
+ }
31
+ const normalised = path.replace(/:([^/]+)/g, '{$1}');
32
+ return normalised;
33
+ }
34
+ function convertBracesPathParams(path) {
35
+ return path.replace(/{(\w*)}/g, ':$1');
36
+ }
37
+ //# sourceMappingURL=pathUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../../src/utils/pathUtils.ts"],"names":[],"mappings":";;AAMA,sCAcC;AAED,wDAOC;AAED,0DAEC;AAjCD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,UAAmB,EAAE,UAAmB,EAAE,0BAA0B,GAAG,IAAI;IACrH,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,0CAA0C;IAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;IACzD,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IAC9D,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IAC9D,uCAAuC;IACvC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IACjD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAY;IACjD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACpD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { UnspecifiedObject } from './unspecifiedObject';
2
+ export declare function recursiveMerge(target: UnspecifiedObject, source: UnspecifiedObject): UnspecifiedObject;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recursiveMerge = recursiveMerge;
4
+ const unsafeKeys = new Set(['__proto__', 'constructor', 'prototype']);
5
+ function isPlainObject(value) {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+ function cloneMergeValue(value) {
9
+ if (Array.isArray(value)) {
10
+ return value.map(item => cloneMergeValue(item));
11
+ }
12
+ if (isPlainObject(value)) {
13
+ return recursiveMerge({}, value);
14
+ }
15
+ return value;
16
+ }
17
+ function recursiveMerge(target, source) {
18
+ const result = { ...target };
19
+ for (const [key, sourceValue] of Object.entries(source)) {
20
+ if (unsafeKeys.has(key)) {
21
+ continue;
22
+ }
23
+ const targetValue = result[key];
24
+ if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
25
+ result[key] = [...targetValue.map(item => cloneMergeValue(item)), ...sourceValue.map(item => cloneMergeValue(item))];
26
+ continue;
27
+ }
28
+ if (isPlainObject(targetValue) && isPlainObject(sourceValue)) {
29
+ result[key] = recursiveMerge(targetValue, sourceValue);
30
+ continue;
31
+ }
32
+ result[key] = cloneMergeValue(sourceValue);
33
+ }
34
+ return result;
35
+ }
36
+ //# sourceMappingURL=specMerge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specMerge.js","sourceRoot":"","sources":["../../src/utils/specMerge.ts"],"names":[],"mappings":";;AAoBA,wCAwBC;AA1CD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;AAErE,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,EAAE,EAAE,KAA0B,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,MAAyB,EAAE,MAAyB;IACjF,MAAM,MAAM,GAAsB,EAAE,GAAG,MAAM,EAAE,CAAA;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,SAAQ;QACV,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAE/B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACpH,SAAQ;QACV,CAAC;QAED,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,WAAgC,EAAE,WAAgC,CAAC,CAAA;YAChG,SAAQ;QACV,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_REQUEST_MEDIA_TYPE = "application/json";
2
+ export declare const DEFAULT_RESPONSE_MEDIA_TYPE = "application/json";
3
+ export declare function getValue(type: 'string' | 'number' | 'integer' | 'boolean' | undefined, member: unknown): string | number | boolean | null;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_RESPONSE_MEDIA_TYPE = exports.DEFAULT_REQUEST_MEDIA_TYPE = void 0;
4
+ exports.getValue = getValue;
5
+ exports.DEFAULT_REQUEST_MEDIA_TYPE = 'application/json';
6
+ exports.DEFAULT_RESPONSE_MEDIA_TYPE = 'application/json';
7
+ function getValue(type, member) {
8
+ if (type == null || member == null) {
9
+ return null;
10
+ }
11
+ switch (type) {
12
+ case 'integer':
13
+ case 'number':
14
+ return Number(member);
15
+ case 'boolean':
16
+ return !!member;
17
+ case 'string':
18
+ default:
19
+ return String(member);
20
+ }
21
+ }
22
+ //# sourceMappingURL=swaggerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swaggerUtils.js","sourceRoot":"","sources":["../../src/utils/swaggerUtils.ts"],"names":[],"mappings":";;;AAGA,4BAeC;AAlBY,QAAA,0BAA0B,GAAG,kBAAkB,CAAA;AAC/C,QAAA,2BAA2B,GAAG,kBAAkB,CAAA;AAE7D,SAAgB,QAAQ,CAAC,IAA6D,EAAE,MAAe;IACrG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;QACvB,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,MAAM,CAAA;QACjB,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type UnspecifiedObject = {
2
+ [key: string]: unknown;
3
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=unspecifiedObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unspecifiedObject.js","sourceRoot":"","sources":["../../src/utils/unspecifiedObject.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Tsoa } from '@tsoa-next/runtime';
2
+ import * as ts from 'typescript';
3
+ export declare function getParameterValidators(parameter: ts.ParameterDeclaration, parameterName: string): Tsoa.Validators;
4
+ export declare function getPropertyValidators(property: ts.Node): Tsoa.Validators | undefined;
5
+ export declare function shouldIncludeValidatorInSchema(key: string): key is Tsoa.SchemaValidatorKey;
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getParameterValidators = getParameterValidators;
7
+ exports.getPropertyValidators = getPropertyValidators;
8
+ exports.shouldIncludeValidatorInSchema = shouldIncludeValidatorInSchema;
9
+ const validator_1 = __importDefault(require("validator"));
10
+ const exceptions_1 = require("./../metadataGeneration/exceptions");
11
+ const jsDocUtils_1 = require("./jsDocUtils");
12
+ function getParameterValidators(parameter, parameterName) {
13
+ if (!parameter.parent) {
14
+ return {};
15
+ }
16
+ const getCommentValue = (comment) => comment && comment.split(' ')[0];
17
+ const tags = (0, jsDocUtils_1.getJSDocTags)(parameter.parent, tag => {
18
+ const { comment } = tag;
19
+ return getParameterTagSupport().some(value => !!(0, jsDocUtils_1.commentToString)(comment) && value === tag.tagName.text && getCommentValue((0, jsDocUtils_1.commentToString)(comment)) === parameterName);
20
+ });
21
+ function getErrorMsg(comment, isValue = true) {
22
+ if (!comment) {
23
+ return;
24
+ }
25
+ if (isValue) {
26
+ const indexOf = comment.indexOf(' ');
27
+ if (indexOf > 0) {
28
+ return comment.substr(indexOf + 1);
29
+ }
30
+ else {
31
+ return undefined;
32
+ }
33
+ }
34
+ else {
35
+ return comment;
36
+ }
37
+ }
38
+ return tags.reduce((validateObj, tag) => {
39
+ if (!tag.comment) {
40
+ return validateObj;
41
+ }
42
+ const name = tag.tagName.text;
43
+ const comment = (0, jsDocUtils_1.commentToString)(tag.comment)
44
+ ?.substring(((0, jsDocUtils_1.commentToString)(tag.comment)?.indexOf(' ') || -1) + 1)
45
+ .trim();
46
+ const value = getCommentValue(comment);
47
+ switch (name) {
48
+ case 'uniqueItems':
49
+ validateObj[name] = {
50
+ errorMsg: getErrorMsg(comment, false),
51
+ value: undefined,
52
+ };
53
+ break;
54
+ case 'minimum':
55
+ case 'maximum':
56
+ case 'minItems':
57
+ case 'maxItems':
58
+ case 'minLength':
59
+ case 'maxLength':
60
+ if (isNaN(value)) {
61
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use number.`);
62
+ }
63
+ validateObj[name] = {
64
+ errorMsg: getErrorMsg(comment),
65
+ value: Number(value),
66
+ };
67
+ break;
68
+ case 'minDate':
69
+ case 'maxDate':
70
+ if (!validator_1.default.isISO8601(String(value), { strict: true })) {
71
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use date format ISO 8601 ex. 2017-05-14, 2017-05-14T05:18Z`);
72
+ }
73
+ validateObj[name] = {
74
+ errorMsg: getErrorMsg(comment),
75
+ value,
76
+ };
77
+ break;
78
+ case 'pattern':
79
+ if (typeof value !== 'string') {
80
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use string.`);
81
+ }
82
+ validateObj[name] = {
83
+ errorMsg: getErrorMsg(comment),
84
+ value: removeSurroundingQuotes(value),
85
+ };
86
+ break;
87
+ default:
88
+ if (name.startsWith('is')) {
89
+ const errorMsg = getErrorMsg(comment, false);
90
+ if (errorMsg) {
91
+ validateObj[name] = {
92
+ errorMsg,
93
+ value: undefined,
94
+ };
95
+ }
96
+ }
97
+ break;
98
+ }
99
+ return validateObj;
100
+ }, {});
101
+ }
102
+ function getPropertyValidators(property) {
103
+ const tags = (0, jsDocUtils_1.getJSDocTags)(property, tag => {
104
+ return getParameterTagSupport().some(value => value === tag.tagName.text);
105
+ });
106
+ function getValue(comment) {
107
+ if (!comment) {
108
+ return;
109
+ }
110
+ return comment.split(' ')[0];
111
+ }
112
+ function getFullValue(comment) {
113
+ if (!comment) {
114
+ return;
115
+ }
116
+ if (comment.includes('\n')) {
117
+ return comment.split('\n')[0];
118
+ }
119
+ return comment;
120
+ }
121
+ function getErrorMsg(comment, isValue = true) {
122
+ if (!comment) {
123
+ return;
124
+ }
125
+ if (isValue) {
126
+ const indexOf = comment.indexOf(' ');
127
+ if (indexOf > 0) {
128
+ return comment.substr(indexOf + 1);
129
+ }
130
+ else {
131
+ return undefined;
132
+ }
133
+ }
134
+ else {
135
+ return comment;
136
+ }
137
+ }
138
+ return tags.reduce((validateObj, tag) => {
139
+ const name = tag.tagName.text;
140
+ const comment = tag.comment;
141
+ const value = getValue((0, jsDocUtils_1.commentToString)(comment));
142
+ switch (name) {
143
+ case 'uniqueItems':
144
+ validateObj[name] = {
145
+ errorMsg: getErrorMsg((0, jsDocUtils_1.commentToString)(comment), false),
146
+ value: undefined,
147
+ };
148
+ break;
149
+ case 'minimum':
150
+ case 'maximum':
151
+ case 'minItems':
152
+ case 'maxItems':
153
+ case 'minLength':
154
+ case 'maxLength':
155
+ if (isNaN(value)) {
156
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use number.`);
157
+ }
158
+ validateObj[name] = {
159
+ errorMsg: getErrorMsg((0, jsDocUtils_1.commentToString)(comment)),
160
+ value: Number(value),
161
+ };
162
+ break;
163
+ case 'minDate':
164
+ case 'maxDate':
165
+ if (!validator_1.default.isISO8601(String(value), { strict: true })) {
166
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use date format ISO 8601 ex. 2017-05-14, 2017-05-14T05:18Z`);
167
+ }
168
+ validateObj[name] = {
169
+ errorMsg: getErrorMsg((0, jsDocUtils_1.commentToString)(comment)),
170
+ value,
171
+ };
172
+ break;
173
+ case 'pattern':
174
+ if (typeof value !== 'string') {
175
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use string.`);
176
+ }
177
+ validateObj[name] = {
178
+ errorMsg: getErrorMsg((0, jsDocUtils_1.commentToString)(comment)),
179
+ value: removeSurroundingQuotes(value),
180
+ };
181
+ break;
182
+ case 'title':
183
+ if (typeof value !== 'string') {
184
+ throw new exceptions_1.GenerateMetadataError(`${name} parameter use string.`);
185
+ }
186
+ validateObj[name] = {
187
+ errorMsg: getErrorMsg((0, jsDocUtils_1.commentToString)(comment)),
188
+ value: getFullValue((0, jsDocUtils_1.commentToString)(comment)),
189
+ };
190
+ break;
191
+ default:
192
+ if (name.startsWith('is')) {
193
+ const errorMsg = getErrorMsg((0, jsDocUtils_1.commentToString)(comment), false);
194
+ if (errorMsg) {
195
+ validateObj[name] = {
196
+ errorMsg,
197
+ value: undefined,
198
+ };
199
+ }
200
+ }
201
+ break;
202
+ }
203
+ return validateObj;
204
+ }, {});
205
+ }
206
+ function getParameterTagSupport() {
207
+ return [
208
+ 'isString',
209
+ 'isBoolean',
210
+ 'isInt',
211
+ 'isLong',
212
+ 'isFloat',
213
+ 'isDouble',
214
+ 'isDate',
215
+ 'isDateTime',
216
+ 'minItems',
217
+ 'maxItems',
218
+ 'uniqueItems',
219
+ 'minLength',
220
+ 'maxLength',
221
+ 'pattern',
222
+ 'minimum',
223
+ 'maximum',
224
+ 'minDate',
225
+ 'maxDate',
226
+ 'title',
227
+ ];
228
+ }
229
+ function removeSurroundingQuotes(str) {
230
+ if (str.startsWith('`') && str.endsWith('`')) {
231
+ return str.substring(1, str.length - 1);
232
+ }
233
+ if (str.startsWith('```') && str.endsWith('```')) {
234
+ return str.substring(3, str.length - 3);
235
+ }
236
+ return str;
237
+ }
238
+ function shouldIncludeValidatorInSchema(key) {
239
+ return !key.startsWith('is') && key !== 'minDate' && key !== 'maxDate';
240
+ }
241
+ //# sourceMappingURL=validatorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatorUtils.js","sourceRoot":"","sources":["../../src/utils/validatorUtils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@tsoa-next/cli",
3
+ "version": "7.1.0",
4
+ "description": "Build swagger-compliant REST APIs using TypeScript and Node",
5
+ "main": "./dist/index.js",
6
+ "typings": "./dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "bin": {
11
+ "tsoa": "dist/cli.js"
12
+ },
13
+ "scripts": {
14
+ "build": "npm run clean && npm run tsc && npm run copy-templates",
15
+ "clean": "rimraf dist tsconfig.tsbuildinfo",
16
+ "copy-templates": "copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist",
17
+ "tsc": "tsc -b",
18
+ "watch": "tsc -b -w"
19
+ },
20
+ "keywords": [
21
+ "codegen",
22
+ "express",
23
+ "generation",
24
+ "hapi.js",
25
+ "koa",
26
+ "node",
27
+ "node.js",
28
+ "openapi",
29
+ "server",
30
+ "swagger",
31
+ "typescript"
32
+ ],
33
+ "author": "Vanna DiCatania <vanna@dicatania.me> (http://www.dicatania.me)",
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "@tsoa-next/runtime": "7.1.0",
37
+ "@types/multer": "^2.1.0",
38
+ "fs-extra": "^11.3.4",
39
+ "glob": "^13.0.6",
40
+ "handlebars": "^4.7.8",
41
+ "minimatch": "^10.2.4",
42
+ "ts-deepmerge": "^7.0.3",
43
+ "typescript": "^5.9.3",
44
+ "validator": "^13.15.26",
45
+ "yaml": "^2.8.2",
46
+ "yargs": "^18.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@types/glob": "^9.0.0",
50
+ "@types/minimatch": "^6.0.0",
51
+ "@types/node": "24.12.0",
52
+ "@types/validator": "^13.15.10",
53
+ "@types/yargs": "^17.0.35",
54
+ "copyfiles": "^2.4.1",
55
+ "rimraf": "^6.1.3"
56
+ },
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "https://github.com/vannadii/tsoa-next.git"
60
+ },
61
+ "engines": {
62
+ "node": ">=24.14.0",
63
+ "npm": ">=11.0.0"
64
+ },
65
+ "engineStrict": true,
66
+ "publishConfig": {
67
+ "access": "public"
68
+ }
69
+ }