@nestia/sdk 12.0.0-dev.20260601.1 → 12.0.0-dev.20260619.1

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 (259) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +93 -93
  3. package/assets/bundle/api/HttpError.ts +1 -1
  4. package/assets/bundle/api/IConnection.ts +1 -1
  5. package/assets/bundle/api/Primitive.ts +1 -1
  6. package/assets/bundle/api/Resolved.ts +1 -1
  7. package/assets/bundle/api/index.ts +4 -4
  8. package/assets/bundle/api/module.ts +6 -6
  9. package/assets/bundle/distribute/README.md +37 -37
  10. package/assets/bundle/distribute/package.json +28 -28
  11. package/assets/bundle/distribute/tsconfig.json +109 -109
  12. package/assets/bundle/e2e/index.ts +42 -42
  13. package/assets/config/nestia.config.ts +97 -97
  14. package/lib/NestiaSdkApplication.js +29 -7
  15. package/lib/NestiaSdkApplication.js.map +1 -1
  16. package/lib/NestiaSwaggerComposer.js +21 -13
  17. package/lib/NestiaSwaggerComposer.js.map +1 -1
  18. package/lib/analyses/AccessorAnalyzer.d.ts +4 -1
  19. package/lib/analyses/AccessorAnalyzer.js.map +1 -1
  20. package/lib/analyses/ConfigAnalyzer.js +1 -1
  21. package/lib/analyses/PathAnalyzer.d.ts +18 -3
  22. package/lib/analyses/PathAnalyzer.js +32 -0
  23. package/lib/analyses/PathAnalyzer.js.map +1 -1
  24. package/lib/analyses/ReflectControllerAnalyzer.js +3 -2
  25. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  26. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +1 -1
  27. package/lib/analyses/ReflectHttpOperationAnalyzer.js +1 -1
  28. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  29. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +1 -1
  30. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +53 -20
  31. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
  32. package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +14 -0
  33. package/lib/analyses/ReflectMcpOperationAnalyzer.js +79 -0
  34. package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -0
  35. package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +9 -0
  36. package/lib/analyses/TypedMcpRouteAnalyzer.js +31 -0
  37. package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -0
  38. package/lib/executable/internal/NestiaConfigLoader.js +5 -1
  39. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  40. package/lib/executable/internal/NestiaSdkCommand.js +30 -14
  41. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  42. package/lib/executable/internal/NestiaSdkWatcher.d.ts +10 -0
  43. package/lib/executable/internal/NestiaSdkWatcher.js +322 -0
  44. package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -0
  45. package/lib/executable/sdk.js +12 -12
  46. package/lib/executable/sdk.js.map +1 -1
  47. package/lib/factories/ExpressionFactory.d.ts +9 -0
  48. package/lib/factories/ExpressionFactory.js +16 -0
  49. package/lib/factories/ExpressionFactory.js.map +1 -0
  50. package/lib/factories/IdentifierFactory.d.ts +22 -0
  51. package/lib/factories/IdentifierFactory.js +50 -0
  52. package/lib/factories/IdentifierFactory.js.map +1 -0
  53. package/lib/factories/LiteralFactory.d.ts +9 -0
  54. package/lib/factories/LiteralFactory.js +48 -0
  55. package/lib/factories/LiteralFactory.js.map +1 -0
  56. package/lib/factories/StatementFactory.d.ts +14 -0
  57. package/lib/factories/StatementFactory.js +20 -0
  58. package/lib/factories/StatementFactory.js.map +1 -0
  59. package/lib/factories/TypeFactory.d.ts +24 -0
  60. package/lib/factories/TypeFactory.js +27 -0
  61. package/lib/factories/TypeFactory.js.map +1 -0
  62. package/lib/generates/CloneGenerator.js +6 -4
  63. package/lib/generates/CloneGenerator.js.map +1 -1
  64. package/lib/generates/SdkGenerator.js +50 -1
  65. package/lib/generates/SdkGenerator.js.map +1 -1
  66. package/lib/generates/SwaggerGenerator.js +18 -2
  67. package/lib/generates/SwaggerGenerator.js.map +1 -1
  68. package/lib/generates/internal/E2eFileProgrammer.js +32 -29
  69. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  70. package/lib/generates/internal/FilePrinter.d.ts +2 -2
  71. package/lib/generates/internal/FilePrinter.js +14 -25
  72. package/lib/generates/internal/FilePrinter.js.map +1 -1
  73. package/lib/generates/internal/ImportDictionary.d.ts +2 -1
  74. package/lib/generates/internal/ImportDictionary.js +16 -10
  75. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  76. package/lib/generates/internal/SdkAliasCollection.d.ts +12 -10
  77. package/lib/generates/internal/SdkAliasCollection.js +29 -22
  78. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  79. package/lib/generates/internal/SdkDistributionComposer.d.ts +1 -0
  80. package/lib/generates/internal/SdkDistributionComposer.js +3 -0
  81. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  82. package/lib/generates/internal/SdkFileProgrammer.js +6 -3
  83. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  84. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +1 -1
  85. package/lib/generates/internal/SdkHttpCloneProgrammer.js +3 -3
  86. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  87. package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +1 -1
  88. package/lib/generates/internal/SdkHttpCloneReferencer.js +42 -9
  89. package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
  90. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +1 -1
  91. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +47 -51
  92. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  93. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +1 -1
  94. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +63 -61
  95. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  96. package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +2 -2
  97. package/lib/generates/internal/SdkHttpParameterProgrammer.js +11 -13
  98. package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
  99. package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +1 -1
  100. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +1 -1
  101. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +52 -47
  102. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  103. package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +15 -0
  104. package/lib/generates/internal/SdkMcpRouteProgrammer.js +149 -0
  105. package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -0
  106. package/lib/generates/internal/SdkRouteDirectory.d.ts +2 -1
  107. package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
  108. package/lib/generates/internal/SdkTypeProgrammer.d.ts +3 -3
  109. package/lib/generates/internal/SdkTypeProgrammer.js +42 -43
  110. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  111. package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +2 -1
  112. package/lib/generates/internal/SdkTypeTagProgrammer.js +7 -9
  113. package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
  114. package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +6 -0
  115. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +283 -0
  116. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -0
  117. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
  118. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +45 -47
  119. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  120. package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
  121. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -9
  122. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
  123. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
  124. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +37 -41
  125. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  126. package/lib/generates/internal/SwaggerOperationParameterComposer.js +10 -2
  127. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
  128. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +1 -1
  129. package/lib/generates/internal/SwaggerOperationResponseComposer.js +6 -1
  130. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
  131. package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +9 -0
  132. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +174 -0
  133. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +1 -0
  134. package/lib/structures/INestiaSdkInput.d.ts +9 -2
  135. package/lib/structures/IReflectController.d.ts +2 -1
  136. package/lib/structures/IReflectHttpOperationSuccess.d.ts +4 -2
  137. package/lib/structures/IReflectMcpOperation.d.ts +35 -0
  138. package/lib/structures/IReflectMcpOperation.js +3 -0
  139. package/lib/structures/IReflectMcpOperation.js.map +1 -0
  140. package/lib/structures/IReflectMcpOperationParameter.d.ts +19 -0
  141. package/lib/structures/IReflectMcpOperationParameter.js +3 -0
  142. package/lib/structures/IReflectMcpOperationParameter.js.map +1 -0
  143. package/lib/structures/ITypedApplication.d.ts +2 -1
  144. package/lib/structures/ITypedHttpRouteSuccess.d.ts +3 -1
  145. package/lib/structures/ITypedMcpRoute.d.ts +31 -0
  146. package/lib/structures/ITypedMcpRoute.js +3 -0
  147. package/lib/structures/ITypedMcpRoute.js.map +1 -0
  148. package/lib/transform.d.ts +5 -9
  149. package/lib/transform.js +8 -31
  150. package/lib/transform.js.map +1 -1
  151. package/lib/utils/HttpResponseContentTypeUtil.d.ts +5 -0
  152. package/lib/utils/HttpResponseContentTypeUtil.js +22 -0
  153. package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -0
  154. package/native/go.mod +52 -52
  155. package/native/go.sum +84 -54
  156. package/native/sdk/register.go +322 -165
  157. package/native/sdk/sdk.go +17 -17
  158. package/native/sdk/sdk_metadata_json.go +327 -327
  159. package/native/sdk/sdk_transform.go +1879 -1549
  160. package/package.json +13 -11
  161. package/src/INestiaConfig.ts +267 -267
  162. package/src/NestiaSdkApplication.ts +39 -8
  163. package/src/NestiaSwaggerComposer.ts +153 -142
  164. package/src/analyses/AccessorAnalyzer.ts +64 -67
  165. package/src/analyses/ConfigAnalyzer.ts +330 -330
  166. package/src/analyses/ImportAnalyzer.ts +92 -92
  167. package/src/analyses/PathAnalyzer.ts +130 -69
  168. package/src/analyses/ReflectControllerAnalyzer.ts +112 -105
  169. package/src/analyses/ReflectHttpOperationAnalyzer.ts +183 -183
  170. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +90 -90
  171. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +350 -350
  172. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +163 -130
  173. package/src/analyses/ReflectMcpOperationAnalyzer.ts +124 -0
  174. package/src/analyses/ReflectMetadataAnalyzer.ts +44 -44
  175. package/src/analyses/SecurityAnalyzer.ts +25 -25
  176. package/src/analyses/TypedMcpRouteAnalyzer.ts +34 -0
  177. package/src/decorators/OperationMetadata.ts +29 -29
  178. package/src/executable/internal/CommandParser.ts +15 -15
  179. package/src/executable/internal/NestiaConfigLoader.ts +451 -446
  180. package/src/executable/internal/NestiaSdkCommand.ts +124 -106
  181. package/src/executable/internal/NestiaSdkWatcher.ts +342 -0
  182. package/src/executable/sdk.ts +90 -88
  183. package/src/factories/ExpressionFactory.ts +23 -0
  184. package/src/factories/IdentifierFactory.ts +84 -0
  185. package/src/factories/LiteralFactory.ts +54 -0
  186. package/src/factories/StatementFactory.ts +56 -0
  187. package/src/factories/TypeFactory.ts +27 -0
  188. package/src/generates/CloneGenerator.ts +74 -66
  189. package/src/generates/E2eGenerator.ts +32 -32
  190. package/src/generates/SdkGenerator.ts +176 -118
  191. package/src/generates/SwaggerGenerator.ts +342 -310
  192. package/src/generates/internal/E2eFileProgrammer.ts +246 -233
  193. package/src/generates/internal/FilePrinter.ts +57 -65
  194. package/src/generates/internal/ImportDictionary.ts +207 -204
  195. package/src/generates/internal/SdkAliasCollection.ts +280 -261
  196. package/src/generates/internal/SdkDistributionComposer.ts +123 -116
  197. package/src/generates/internal/SdkFileProgrammer.ts +113 -112
  198. package/src/generates/internal/SdkHttpCloneProgrammer.ts +124 -126
  199. package/src/generates/internal/SdkHttpCloneReferencer.ts +131 -77
  200. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +290 -301
  201. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +507 -510
  202. package/src/generates/internal/SdkHttpParameterProgrammer.ts +163 -165
  203. package/src/generates/internal/SdkHttpRouteProgrammer.ts +109 -109
  204. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +322 -314
  205. package/src/generates/internal/SdkImportWizard.ts +62 -62
  206. package/src/generates/internal/SdkMcpRouteProgrammer.ts +447 -0
  207. package/src/generates/internal/SdkRouteDirectory.ts +21 -18
  208. package/src/generates/internal/SdkTypeProgrammer.ts +389 -382
  209. package/src/generates/internal/SdkTypeTagProgrammer.ts +110 -114
  210. package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +319 -0
  211. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +383 -389
  212. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +91 -89
  213. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +304 -323
  214. package/src/generates/internal/SwaggerDescriptionComposer.ts +64 -64
  215. package/src/generates/internal/SwaggerOperationComposer.ts +119 -119
  216. package/src/generates/internal/SwaggerOperationParameterComposer.ts +175 -162
  217. package/src/generates/internal/SwaggerOperationResponseComposer.ts +115 -110
  218. package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +262 -0
  219. package/src/index.ts +4 -4
  220. package/src/internal/legacy.ts +492 -492
  221. package/src/module.ts +4 -4
  222. package/src/structures/INestiaProject.ts +10 -10
  223. package/src/structures/INestiaSdkInput.ts +27 -20
  224. package/src/structures/IOperationMetadata.ts +41 -41
  225. package/src/structures/IReflectController.ts +18 -15
  226. package/src/structures/IReflectHttpOperation.ts +26 -26
  227. package/src/structures/IReflectHttpOperationException.ts +18 -18
  228. package/src/structures/IReflectHttpOperationParameter.ts +79 -79
  229. package/src/structures/IReflectHttpOperationSuccess.ts +18 -21
  230. package/src/structures/IReflectImport.ts +6 -6
  231. package/src/structures/IReflectMcpOperation.ts +38 -0
  232. package/src/structures/IReflectMcpOperationParameter.ts +27 -0
  233. package/src/structures/IReflectOperationError.ts +26 -26
  234. package/src/structures/IReflectType.ts +4 -4
  235. package/src/structures/IReflectWebSocketOperation.ts +17 -17
  236. package/src/structures/ITypedApplication.ts +12 -11
  237. package/src/structures/ITypedHttpRoute.ts +41 -41
  238. package/src/structures/ITypedHttpRouteException.ts +15 -15
  239. package/src/structures/ITypedHttpRouteParameter.ts +41 -41
  240. package/src/structures/ITypedHttpRouteSuccess.ts +18 -22
  241. package/src/structures/ITypedMcpRoute.ts +33 -0
  242. package/src/structures/ITypedWebSocketRoute.ts +24 -24
  243. package/src/structures/ITypedWebSocketRouteParameter.ts +3 -3
  244. package/src/transform.ts +28 -59
  245. package/src/typings/get-function-location.d.ts +7 -7
  246. package/src/utils/ArrayUtil.ts +26 -26
  247. package/src/utils/EmittedJavaScriptPatcher.ts +88 -88
  248. package/src/utils/FileRetriever.ts +22 -22
  249. package/src/utils/HttpResponseContentTypeUtil.ts +30 -0
  250. package/src/utils/MapUtil.ts +14 -14
  251. package/src/utils/PathUtil.ts +10 -10
  252. package/src/utils/SourceFinder.ts +63 -63
  253. package/src/utils/StringUtil.ts +17 -17
  254. package/src/utils/TsConfigReader.ts +108 -108
  255. package/src/utils/TtscExecutor.ts +68 -68
  256. package/src/utils/VersioningStrategy.ts +28 -28
  257. package/src/validators/HttpHeadersValidator.ts +11 -11
  258. package/src/validators/HttpQueryValidator.ts +11 -11
  259. package/src/validators/TextPlainValidator.ts +17 -17
package/src/module.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./INestiaConfig";
2
- export * from "./NestiaSdkApplication";
3
- export * from "./NestiaSwaggerComposer";
4
- export * from "./decorators/OperationMetadata";
1
+ export * from "./INestiaConfig";
2
+ export * from "./NestiaSdkApplication";
3
+ export * from "./NestiaSwaggerComposer";
4
+ export * from "./decorators/OperationMetadata";
@@ -1,10 +1,10 @@
1
- import { INestiaConfig } from "../INestiaConfig";
2
- import { INestiaSdkInput } from "./INestiaSdkInput";
3
- import { IReflectOperationError } from "./IReflectOperationError";
4
-
5
- export interface INestiaProject {
6
- config: INestiaConfig;
7
- input: INestiaSdkInput;
8
- errors: IReflectOperationError[];
9
- warnings: IReflectOperationError[];
10
- }
1
+ import { INestiaConfig } from "../INestiaConfig";
2
+ import { INestiaSdkInput } from "./INestiaSdkInput";
3
+ import { IReflectOperationError } from "./IReflectOperationError";
4
+
5
+ export interface INestiaProject {
6
+ config: INestiaConfig;
7
+ input: INestiaSdkInput;
8
+ errors: IReflectOperationError[];
9
+ warnings: IReflectOperationError[];
10
+ }
@@ -1,20 +1,27 @@
1
- import { RouteInfo, VersionValue } from "@nestjs/common/interfaces";
2
-
3
- export interface INestiaSdkInput {
4
- controllers: INestiaSdkInput.IController[];
5
- globalPrefix?: {
6
- prefix: string;
7
- exclude?: Array<string | RouteInfo>;
8
- };
9
- versioning?: {
10
- prefix: string;
11
- defaultVersion?: VersionValue;
12
- };
13
- }
14
- export namespace INestiaSdkInput {
15
- export interface IController {
16
- class: Function;
17
- location: string;
18
- prefixes: string[];
19
- }
20
- }
1
+ import { RequestMethod } from "@nestjs/common";
2
+ import { VersionValue } from "@nestjs/common/interfaces";
3
+
4
+ export interface INestiaSdkInput {
5
+ controllers: INestiaSdkInput.IController[];
6
+ globalPrefix?: {
7
+ prefix: string;
8
+ exclude?: INestiaSdkInput.IGlobalPrefixExclude[];
9
+ };
10
+ versioning?: {
11
+ prefix: string;
12
+ defaultVersion?: VersionValue;
13
+ };
14
+ }
15
+ export namespace INestiaSdkInput {
16
+ export interface IController {
17
+ class: Function;
18
+ location: string;
19
+ prefixes: string[];
20
+ }
21
+ export interface IGlobalPrefixExclude {
22
+ path: string;
23
+ method?: RequestMethod;
24
+ requestMethod?: RequestMethod;
25
+ pathRegex?: RegExp;
26
+ }
27
+ }
@@ -1,41 +1,41 @@
1
- import {
2
- IMetadataComponents,
3
- IMetadataSchema,
4
- ValidationPipe,
5
- } from "@typia/interface";
6
- import { IJsDocTagInfo } from "typia";
7
-
8
- import { IReflectImport } from "./IReflectImport";
9
- import { IReflectType } from "./IReflectType";
10
-
11
- export interface IOperationMetadata {
12
- parameters: IOperationMetadata.IParameter[];
13
- success: IOperationMetadata.IResponse;
14
- exceptions: IOperationMetadata.IResponse[];
15
- description: string | null;
16
- jsDocTags: IJsDocTagInfo[];
17
- }
18
- export namespace IOperationMetadata {
19
- export interface IParameter extends IResponse {
20
- name: string;
21
- index: number;
22
- description: string | null;
23
- jsDocTags: IJsDocTagInfo[];
24
- }
25
- export interface IResponse {
26
- type: IReflectType | null;
27
- imports: IReflectImport[];
28
- primitive: ValidationPipe<ISchema, IError>;
29
- resolved: ValidationPipe<ISchema, IError>;
30
- }
31
-
32
- export interface ISchema {
33
- components: IMetadataComponents;
34
- metadata: IMetadataSchema;
35
- }
36
- export interface IError {
37
- name: string;
38
- accessor: string | null;
39
- messages: string[];
40
- }
41
- }
1
+ import {
2
+ IMetadataComponents,
3
+ IMetadataSchema,
4
+ ValidationPipe,
5
+ } from "@typia/interface";
6
+ import { IJsDocTagInfo } from "typia";
7
+
8
+ import { IReflectImport } from "./IReflectImport";
9
+ import { IReflectType } from "./IReflectType";
10
+
11
+ export interface IOperationMetadata {
12
+ parameters: IOperationMetadata.IParameter[];
13
+ success: IOperationMetadata.IResponse;
14
+ exceptions: IOperationMetadata.IResponse[];
15
+ description: string | null;
16
+ jsDocTags: IJsDocTagInfo[];
17
+ }
18
+ export namespace IOperationMetadata {
19
+ export interface IParameter extends IResponse {
20
+ name: string;
21
+ index: number;
22
+ description: string | null;
23
+ jsDocTags: IJsDocTagInfo[];
24
+ }
25
+ export interface IResponse {
26
+ type: IReflectType | null;
27
+ imports: IReflectImport[];
28
+ primitive: ValidationPipe<ISchema, IError>;
29
+ resolved: ValidationPipe<ISchema, IError>;
30
+ }
31
+
32
+ export interface ISchema {
33
+ components: IMetadataComponents;
34
+ metadata: IMetadataSchema;
35
+ }
36
+ export interface IError {
37
+ name: string;
38
+ accessor: string | null;
39
+ messages: string[];
40
+ }
41
+ }
@@ -1,15 +1,18 @@
1
- import type { VERSION_NEUTRAL } from "@nestjs/common/interfaces";
2
-
3
- import { IReflectHttpOperation } from "./IReflectHttpOperation";
4
- import { IReflectWebSocketOperation } from "./IReflectWebSocketOperation";
5
-
6
- export interface IReflectController {
7
- class: Function;
8
- prefixes: string[];
9
- paths: string[];
10
- file: string;
11
- versions: Array<string | typeof VERSION_NEUTRAL> | undefined;
12
- operations: Array<IReflectHttpOperation | IReflectWebSocketOperation>;
13
- security: Record<string, string[]>[];
14
- tags: string[];
15
- }
1
+ import type { VERSION_NEUTRAL } from "@nestjs/common/interfaces";
2
+
3
+ import { IReflectHttpOperation } from "./IReflectHttpOperation";
4
+ import { IReflectMcpOperation } from "./IReflectMcpOperation";
5
+ import { IReflectWebSocketOperation } from "./IReflectWebSocketOperation";
6
+
7
+ export interface IReflectController {
8
+ class: Function;
9
+ prefixes: string[];
10
+ paths: string[];
11
+ file: string;
12
+ versions: Array<string | typeof VERSION_NEUTRAL> | undefined;
13
+ operations: Array<
14
+ IReflectHttpOperation | IReflectWebSocketOperation | IReflectMcpOperation
15
+ >;
16
+ security: Record<string, string[]>[];
17
+ tags: string[];
18
+ }
@@ -1,26 +1,26 @@
1
- import { VERSION_NEUTRAL } from "@nestjs/common/interfaces";
2
- import { IJsDocTagInfo } from "typia";
3
-
4
- import { IReflectHttpOperationException } from "./IReflectHttpOperationException";
5
- import { IReflectHttpOperationParameter } from "./IReflectHttpOperationParameter";
6
- import { IReflectHttpOperationSuccess } from "./IReflectHttpOperationSuccess";
7
- import { IReflectImport } from "./IReflectImport";
8
-
9
- export interface IReflectHttpOperation {
10
- protocol: "http";
11
- function: Function;
12
- name: string;
13
- method: string;
14
- paths: string[];
15
- versions: Array<string | typeof VERSION_NEUTRAL> | undefined;
16
- parameters: IReflectHttpOperationParameter[];
17
- success: IReflectHttpOperationSuccess;
18
- exceptions: Record<string, IReflectHttpOperationException>;
19
- security: Record<string, string[]>[];
20
- tags: string[];
21
- imports: IReflectImport[];
22
- operationId: string | undefined;
23
- description: string | null;
24
- jsDocTags: IJsDocTagInfo[];
25
- extensions?: Record<string, any>;
26
- }
1
+ import { VERSION_NEUTRAL } from "@nestjs/common/interfaces";
2
+ import { IJsDocTagInfo } from "typia";
3
+
4
+ import { IReflectHttpOperationException } from "./IReflectHttpOperationException";
5
+ import { IReflectHttpOperationParameter } from "./IReflectHttpOperationParameter";
6
+ import { IReflectHttpOperationSuccess } from "./IReflectHttpOperationSuccess";
7
+ import { IReflectImport } from "./IReflectImport";
8
+
9
+ export interface IReflectHttpOperation {
10
+ protocol: "http";
11
+ function: Function;
12
+ name: string;
13
+ method: string;
14
+ paths: string[];
15
+ versions: Array<string | typeof VERSION_NEUTRAL> | undefined;
16
+ parameters: IReflectHttpOperationParameter[];
17
+ success: IReflectHttpOperationSuccess;
18
+ exceptions: Record<string, IReflectHttpOperationException>;
19
+ security: Record<string, string[]>[];
20
+ tags: string[];
21
+ imports: IReflectImport[];
22
+ operationId: string | undefined;
23
+ description: string | null;
24
+ jsDocTags: IJsDocTagInfo[];
25
+ extensions?: Record<string, any>;
26
+ }
@@ -1,18 +1,18 @@
1
- import { MetadataFactory } from "../internal/legacy";
2
- import { IMetadataComponents, IMetadataSchema } from "@typia/interface";
3
-
4
- import { IReflectType } from "./IReflectType";
5
-
6
- export interface IReflectHttpOperationException {
7
- // BASIC PROPERTIES
8
- status: number | "2XX" | "3XX" | "4XX" | "5XX";
9
- description: string | null;
10
- example?: any;
11
- examples?: Record<string, any>;
12
-
13
- // REFLECTED PROPERTIES
14
- type: IReflectType;
15
- metadata: IMetadataSchema;
16
- components: IMetadataComponents;
17
- validate: MetadataFactory.Validator;
18
- }
1
+ import { MetadataFactory } from "../internal/legacy";
2
+ import { IMetadataComponents, IMetadataSchema } from "@typia/interface";
3
+
4
+ import { IReflectType } from "./IReflectType";
5
+
6
+ export interface IReflectHttpOperationException {
7
+ // BASIC PROPERTIES
8
+ status: number | "2XX" | "3XX" | "4XX" | "5XX";
9
+ description: string | null;
10
+ example?: any;
11
+ examples?: Record<string, any>;
12
+
13
+ // REFLECTED PROPERTIES
14
+ type: IReflectType;
15
+ metadata: IMetadataSchema;
16
+ components: IMetadataComponents;
17
+ validate: MetadataFactory.Validator;
18
+ }
@@ -1,79 +1,79 @@
1
- import { MetadataFactory } from "../internal/legacy";
2
- import {
3
- IJsDocTagInfo,
4
- IMetadataComponents,
5
- IMetadataSchema,
6
- } from "@typia/interface";
7
-
8
- import { IReflectType } from "./IReflectType";
9
-
10
- export type IReflectHttpOperationParameter =
11
- | IReflectHttpOperationParameter.IBody
12
- | IReflectHttpOperationParameter.IHeaders
13
- | IReflectHttpOperationParameter.IParam
14
- | IReflectHttpOperationParameter.IQuery;
15
- export namespace IReflectHttpOperationParameter {
16
- export interface IBody extends IBase<"body"> {
17
- contentType:
18
- | "application/json"
19
- | "application/x-www-form-urlencoded"
20
- | "multipart/form-data"
21
- | "text/plain";
22
- encrypted: boolean;
23
- }
24
- export interface IHeaders extends IBase<"headers"> {
25
- field: string | null;
26
- }
27
- export interface IParam extends IBase<"param"> {
28
- field: string;
29
- }
30
- export interface IQuery extends IBase<"query"> {
31
- field: string | null;
32
- }
33
- interface IBase<Category extends string> {
34
- category: Category;
35
- name: string;
36
- index: number;
37
- type: IReflectType;
38
- metadata: IMetadataSchema;
39
- components: IMetadataComponents;
40
- validate: MetadataFactory.Validator;
41
- example?: any;
42
- examples?: Record<string, any>;
43
- description: string | null;
44
- jsDocTags: IJsDocTagInfo[];
45
- }
46
-
47
- /** @internal */
48
- export type IPreconfigured =
49
- | IPreconfigured.IBody
50
- | IPreconfigured.IHeaders
51
- | IPreconfigured.IParam
52
- | IPreconfigured.IQuery;
53
-
54
- /** @internal */
55
- export namespace IPreconfigured {
56
- export interface IBody extends IBase<"body"> {
57
- field?: string;
58
- encrypted?: boolean;
59
- contentType:
60
- | "application/json"
61
- | "application/x-www-form-urlencoded"
62
- | "multipart/form-data"
63
- | "text/plain";
64
- }
65
- export interface IHeaders extends IBase<"headers"> {
66
- field?: string;
67
- }
68
- export interface IParam extends IBase<"param"> {
69
- field?: string;
70
- }
71
- export interface IQuery extends IBase<"query"> {
72
- field?: string;
73
- }
74
- interface IBase<Category extends string> {
75
- category: Category;
76
- index: number;
77
- }
78
- }
79
- }
1
+ import { MetadataFactory } from "../internal/legacy";
2
+ import {
3
+ IJsDocTagInfo,
4
+ IMetadataComponents,
5
+ IMetadataSchema,
6
+ } from "@typia/interface";
7
+
8
+ import { IReflectType } from "./IReflectType";
9
+
10
+ export type IReflectHttpOperationParameter =
11
+ | IReflectHttpOperationParameter.IBody
12
+ | IReflectHttpOperationParameter.IHeaders
13
+ | IReflectHttpOperationParameter.IParam
14
+ | IReflectHttpOperationParameter.IQuery;
15
+ export namespace IReflectHttpOperationParameter {
16
+ export interface IBody extends IBase<"body"> {
17
+ contentType:
18
+ | "application/json"
19
+ | "application/x-www-form-urlencoded"
20
+ | "multipart/form-data"
21
+ | "text/plain";
22
+ encrypted: boolean;
23
+ }
24
+ export interface IHeaders extends IBase<"headers"> {
25
+ field: string | null;
26
+ }
27
+ export interface IParam extends IBase<"param"> {
28
+ field: string;
29
+ }
30
+ export interface IQuery extends IBase<"query"> {
31
+ field: string | null;
32
+ }
33
+ interface IBase<Category extends string> {
34
+ category: Category;
35
+ name: string;
36
+ index: number;
37
+ type: IReflectType;
38
+ metadata: IMetadataSchema;
39
+ components: IMetadataComponents;
40
+ validate: MetadataFactory.Validator;
41
+ example?: any;
42
+ examples?: Record<string, any>;
43
+ description: string | null;
44
+ jsDocTags: IJsDocTagInfo[];
45
+ }
46
+
47
+ /** @internal */
48
+ export type IPreconfigured =
49
+ | IPreconfigured.IBody
50
+ | IPreconfigured.IHeaders
51
+ | IPreconfigured.IParam
52
+ | IPreconfigured.IQuery;
53
+
54
+ /** @internal */
55
+ export namespace IPreconfigured {
56
+ export interface IBody extends IBase<"body"> {
57
+ field?: string;
58
+ encrypted?: boolean;
59
+ contentType:
60
+ | "application/json"
61
+ | "application/x-www-form-urlencoded"
62
+ | "multipart/form-data"
63
+ | "text/plain";
64
+ }
65
+ export interface IHeaders extends IBase<"headers"> {
66
+ field?: string;
67
+ }
68
+ export interface IParam extends IBase<"param"> {
69
+ field?: string;
70
+ }
71
+ export interface IQuery extends IBase<"query"> {
72
+ field?: string;
73
+ }
74
+ interface IBase<Category extends string> {
75
+ category: Category;
76
+ index: number;
77
+ }
78
+ }
79
+ }
@@ -1,21 +1,18 @@
1
- import { MetadataFactory } from "../internal/legacy";
2
- import { IMetadataComponents, IMetadataSchema } from "@typia/interface";
3
-
4
- import { IReflectType } from "./IReflectType";
5
-
6
- export interface IReflectHttpOperationSuccess {
7
- type: IReflectType;
8
- status: number;
9
- contentType:
10
- | "application/json"
11
- | "text/plain"
12
- | "application/x-www-form-urlencoded"
13
- | "application/json"
14
- | null;
15
- encrypted: boolean;
16
- components: IMetadataComponents;
17
- metadata: IMetadataSchema;
18
- validate: MetadataFactory.Validator;
19
- example?: any;
20
- examples?: Record<string, any>;
21
- }
1
+ import { IMetadataComponents, IMetadataSchema } from "@typia/interface";
2
+
3
+ import { MetadataFactory } from "../internal/legacy";
4
+ import { HttpResponseContentTypeUtil } from "../utils/HttpResponseContentTypeUtil";
5
+ import { IReflectType } from "./IReflectType";
6
+
7
+ export interface IReflectHttpOperationSuccess {
8
+ type: IReflectType;
9
+ status: number;
10
+ contentType: HttpResponseContentTypeUtil.Response;
11
+ binary: boolean;
12
+ encrypted: boolean;
13
+ components: IMetadataComponents;
14
+ metadata: IMetadataSchema;
15
+ validate: MetadataFactory.Validator;
16
+ example?: any;
17
+ examples?: Record<string, any>;
18
+ }
@@ -1,6 +1,6 @@
1
- export interface IReflectImport {
2
- file: string;
3
- asterisk: string | null;
4
- default: string | null;
5
- elements: string[];
6
- }
1
+ export interface IReflectImport {
2
+ file: string;
3
+ asterisk: string | null;
4
+ default: string | null;
5
+ elements: string[];
6
+ }
@@ -0,0 +1,38 @@
1
+ import ts from "typescript";
2
+
3
+ import { IReflectImport } from "./IReflectImport";
4
+ import { IReflectMcpOperationParameter } from "./IReflectMcpOperationParameter";
5
+ import { IReflectType } from "./IReflectType";
6
+
7
+ /**
8
+ * Reflected operation metadata for a method decorated with `@McpRoute`.
9
+ *
10
+ * Produced by {@link ReflectMcpOperationAnalyzer.analyze}; consumed by
11
+ * {@link TypedMcpRouteAnalyzer.analyze} to produce the final
12
+ * {@link ITypedMcpRoute}.
13
+ */
14
+ export interface IReflectMcpOperation {
15
+ protocol: "mcp";
16
+ name: string;
17
+ toolName: string;
18
+ title: string | null;
19
+ toolDescription: string | null;
20
+ inputSchema: object;
21
+ outputSchema: object | null;
22
+ annotations: IReflectMcpOperation.IAnnotations | null;
23
+ function: Function;
24
+ parameters: IReflectMcpOperationParameter[];
25
+ returnType: IReflectType | null;
26
+ imports: IReflectImport[];
27
+ description: string | null;
28
+ jsDocTags: ts.JSDocTagInfo[];
29
+ }
30
+
31
+ export namespace IReflectMcpOperation {
32
+ export interface IAnnotations {
33
+ readOnlyHint?: boolean;
34
+ destructiveHint?: boolean;
35
+ idempotentHint?: boolean;
36
+ openWorldHint?: boolean;
37
+ }
38
+ }
@@ -0,0 +1,27 @@
1
+ import { IJsDocTagInfo } from "typia";
2
+
3
+ import { IReflectImport } from "./IReflectImport";
4
+ import { IReflectType } from "./IReflectType";
5
+
6
+ /**
7
+ * Parameter descriptor for an MCP tool method. Reflected from
8
+ * `"nestia/McpRoute/Parameters"` metadata plus compile-time type information
9
+ * collected by the nestia transformer.
10
+ */
11
+ export interface IReflectMcpOperationParameter {
12
+ category: "params";
13
+ name: string;
14
+ index: number;
15
+ type: IReflectType;
16
+ imports: IReflectImport[];
17
+ description: string | null;
18
+ jsDocTags: IJsDocTagInfo[];
19
+ }
20
+
21
+ export namespace IReflectMcpOperationParameter {
22
+ /** @internal */
23
+ export interface IPreconfigured {
24
+ category: "params";
25
+ index: number;
26
+ }
27
+ }
@@ -1,26 +1,26 @@
1
- import { IComparable } from "tstl";
2
-
3
- import { IOperationMetadata } from "../structures/IOperationMetadata";
4
-
5
- export interface IReflectOperationError {
6
- file: string;
7
- class: string;
8
- function: string | null;
9
- from: string | null;
10
- contents: Array<string | IOperationMetadata.IError>;
11
- }
12
- export namespace IReflectOperationError {
13
- export class Key implements Pick<IComparable<Key>, "less"> {
14
- public constructor(public readonly error: IReflectOperationError) {}
15
-
16
- public less(obj: Key): boolean {
17
- if (this.error.file !== obj.error.file)
18
- return this.error.file < obj.error.file;
19
- else if (this.error.class !== obj.error.class)
20
- return this.error.class < obj.error.class;
21
- else if (this.error.function !== obj.error.function)
22
- return (this.error.function ?? "") < (obj.error.function ?? "");
23
- return (this.error.from ?? "") < (obj.error.from ?? "");
24
- }
25
- }
26
- }
1
+ import { IComparable } from "tstl";
2
+
3
+ import { IOperationMetadata } from "../structures/IOperationMetadata";
4
+
5
+ export interface IReflectOperationError {
6
+ file: string;
7
+ class: string;
8
+ function: string | null;
9
+ from: string | null;
10
+ contents: Array<string | IOperationMetadata.IError>;
11
+ }
12
+ export namespace IReflectOperationError {
13
+ export class Key implements Pick<IComparable<Key>, "less"> {
14
+ public constructor(public readonly error: IReflectOperationError) {}
15
+
16
+ public less(obj: Key): boolean {
17
+ if (this.error.file !== obj.error.file)
18
+ return this.error.file < obj.error.file;
19
+ else if (this.error.class !== obj.error.class)
20
+ return this.error.class < obj.error.class;
21
+ else if (this.error.function !== obj.error.function)
22
+ return (this.error.function ?? "") < (obj.error.function ?? "");
23
+ return (this.error.from ?? "") < (obj.error.from ?? "");
24
+ }
25
+ }
26
+ }
@@ -1,4 +1,4 @@
1
- export interface IReflectType {
2
- name: string;
3
- typeArguments?: IReflectType[];
4
- }
1
+ export interface IReflectType {
2
+ name: string;
3
+ typeArguments?: IReflectType[];
4
+ }