@nestia/sdk 14.0.0 → 14.0.2

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 (391) hide show
  1. package/README.md +1 -1
  2. package/assets/bundle/distribute/build-sdk.cjs +28 -0
  3. package/assets/bundle/distribute/package.json +7 -3
  4. package/assets/bundle/distribute/tsconfig.json +15 -105
  5. package/lib/INestiaConfig.d.ts +74 -34
  6. package/lib/NestiaSdkApplication.d.ts +60 -0
  7. package/lib/NestiaSdkApplication.js +121 -32
  8. package/lib/NestiaSdkApplication.js.map +1 -1
  9. package/lib/NestiaSwaggerComposer.d.ts +21 -0
  10. package/lib/NestiaSwaggerComposer.js +32 -13
  11. package/lib/NestiaSwaggerComposer.js.map +1 -1
  12. package/lib/analyses/AccessorAnalyzer.d.ts +26 -0
  13. package/lib/analyses/AccessorAnalyzer.js +26 -0
  14. package/lib/analyses/AccessorAnalyzer.js.map +1 -1
  15. package/lib/analyses/ConfigAnalyzer.d.ts +41 -0
  16. package/lib/analyses/ConfigAnalyzer.js +52 -77
  17. package/lib/analyses/ConfigAnalyzer.js.map +1 -1
  18. package/lib/analyses/ImportAnalyzer.d.ts +25 -0
  19. package/lib/analyses/ImportAnalyzer.js +25 -0
  20. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  21. package/lib/analyses/ParameterNameAnalyzer.d.ts +44 -0
  22. package/lib/analyses/ParameterNameAnalyzer.js +63 -0
  23. package/lib/analyses/ParameterNameAnalyzer.js.map +1 -0
  24. package/lib/analyses/PathAnalyzer.d.ts +93 -1
  25. package/lib/analyses/PathAnalyzer.js +160 -23
  26. package/lib/analyses/PathAnalyzer.js.map +1 -1
  27. package/lib/analyses/ReflectControllerAnalyzer.d.ts +32 -0
  28. package/lib/analyses/ReflectControllerAnalyzer.js +24 -1
  29. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  30. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +29 -0
  31. package/lib/analyses/ReflectHttpOperationAnalyzer.js +35 -24
  32. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  33. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +31 -0
  34. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +21 -0
  35. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -1
  36. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +31 -0
  37. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +143 -23
  38. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
  39. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +32 -0
  40. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +27 -2
  41. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
  42. package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +29 -0
  43. package/lib/analyses/ReflectMcpOperationAnalyzer.js +35 -11
  44. package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -1
  45. package/lib/analyses/ReflectMetadataAnalyzer.d.ts +47 -0
  46. package/lib/analyses/ReflectMetadataAnalyzer.js +47 -0
  47. package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
  48. package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +29 -0
  49. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +27 -5
  50. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
  51. package/lib/analyses/SecurityAnalyzer.d.ts +25 -0
  52. package/lib/analyses/SecurityAnalyzer.js +39 -19
  53. package/lib/analyses/SecurityAnalyzer.js.map +1 -1
  54. package/lib/analyses/SwaggerExampleAnalyzer.d.ts +31 -0
  55. package/lib/analyses/SwaggerExampleAnalyzer.js +36 -0
  56. package/lib/analyses/SwaggerExampleAnalyzer.js.map +1 -0
  57. package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +41 -3
  58. package/lib/analyses/TypedHttpRouteAnalyzer.js +196 -172
  59. package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
  60. package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +29 -0
  61. package/lib/analyses/TypedMcpRouteAnalyzer.js +152 -20
  62. package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -1
  63. package/lib/analyses/TypedWebSocketRouteAnalyzer.d.ts +19 -0
  64. package/lib/analyses/TypedWebSocketRouteAnalyzer.js +20 -1
  65. package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -1
  66. package/lib/decorators/OperationMetadata.d.ts +6 -0
  67. package/lib/decorators/OperationMetadata.js +6 -0
  68. package/lib/decorators/OperationMetadata.js.map +1 -1
  69. package/lib/executable/internal/CommandParser.d.ts +19 -0
  70. package/lib/executable/internal/CommandParser.js +19 -0
  71. package/lib/executable/internal/CommandParser.js.map +1 -1
  72. package/lib/executable/internal/NestiaConfigLoader.d.ts +56 -0
  73. package/lib/executable/internal/NestiaConfigLoader.js +48 -42
  74. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  75. package/lib/executable/internal/NestiaSdkCommand.d.ts +60 -0
  76. package/lib/executable/internal/NestiaSdkCommand.js +95 -3
  77. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  78. package/lib/executable/internal/NestiaSdkWatcher.d.ts +81 -0
  79. package/lib/executable/internal/NestiaSdkWatcher.js +125 -41
  80. package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -1
  81. package/lib/executable/internal/NestiaSwaggerWatch.d.ts +80 -0
  82. package/lib/executable/internal/NestiaSwaggerWatch.js +308 -0
  83. package/lib/executable/internal/NestiaSwaggerWatch.js.map +1 -0
  84. package/lib/executable/sdk.js +16 -1
  85. package/lib/executable/sdk.js.map +1 -1
  86. package/lib/factories/ExpressionFactory.d.ts +18 -0
  87. package/lib/factories/ExpressionFactory.js +21 -2
  88. package/lib/factories/ExpressionFactory.js.map +1 -1
  89. package/lib/factories/IdentifierFactory.d.ts +24 -0
  90. package/lib/factories/IdentifierFactory.js +24 -0
  91. package/lib/factories/IdentifierFactory.js.map +1 -1
  92. package/lib/factories/LiteralFactory.d.ts +22 -4
  93. package/lib/factories/LiteralFactory.js +33 -11
  94. package/lib/factories/LiteralFactory.js.map +1 -1
  95. package/lib/factories/StatementFactory.d.ts +28 -1
  96. package/lib/factories/StatementFactory.js +28 -1
  97. package/lib/factories/StatementFactory.js.map +1 -1
  98. package/lib/factories/TypeFactory.d.ts +24 -0
  99. package/lib/factories/TypeFactory.js +15 -0
  100. package/lib/factories/TypeFactory.js.map +1 -1
  101. package/lib/generates/CloneGenerator.d.ts +22 -0
  102. package/lib/generates/CloneGenerator.js +26 -5
  103. package/lib/generates/CloneGenerator.js.map +1 -1
  104. package/lib/generates/E2eGenerator.d.ts +19 -0
  105. package/lib/generates/E2eGenerator.js +19 -0
  106. package/lib/generates/E2eGenerator.js.map +1 -1
  107. package/lib/generates/SdkGenerator.d.ts +38 -0
  108. package/lib/generates/SdkGenerator.js +43 -5
  109. package/lib/generates/SdkGenerator.js.map +1 -1
  110. package/lib/generates/SwaggerGenerator.d.ts +36 -6
  111. package/lib/generates/SwaggerGenerator.js +190 -40
  112. package/lib/generates/SwaggerGenerator.js.map +1 -1
  113. package/lib/generates/internal/E2eFileProgrammer.d.ts +19 -0
  114. package/lib/generates/internal/E2eFileProgrammer.js +20 -1
  115. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  116. package/lib/generates/internal/FilePrinter.d.ts +57 -0
  117. package/lib/generates/internal/FilePrinter.js +74 -0
  118. package/lib/generates/internal/FilePrinter.js.map +1 -1
  119. package/lib/generates/internal/ImportDictionary.d.ts +93 -1
  120. package/lib/generates/internal/ImportDictionary.js +103 -2
  121. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  122. package/lib/generates/internal/SdkAliasCollection.d.ts +121 -1
  123. package/lib/generates/internal/SdkAliasCollection.js +132 -11
  124. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  125. package/lib/generates/internal/SdkDistributionComposer.d.ts +19 -0
  126. package/lib/generates/internal/SdkDistributionComposer.js +149 -52
  127. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  128. package/lib/generates/internal/SdkFileProgrammer.d.ts +18 -0
  129. package/lib/generates/internal/SdkFileProgrammer.js +101 -12
  130. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  131. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +29 -0
  132. package/lib/generates/internal/SdkHttpCloneProgrammer.js +33 -0
  133. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  134. package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +19 -0
  135. package/lib/generates/internal/SdkHttpCloneReferencer.js +78 -25
  136. package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
  137. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +19 -0
  138. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +40 -23
  139. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  140. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +19 -0
  141. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +46 -34
  142. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  143. package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +142 -1
  144. package/lib/generates/internal/SdkHttpParameterProgrammer.js +175 -6
  145. package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
  146. package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +20 -0
  147. package/lib/generates/internal/SdkHttpRouteProgrammer.js +36 -32
  148. package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
  149. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +38 -0
  150. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +66 -18
  151. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  152. package/lib/generates/internal/SdkImportWizard.d.ts +63 -0
  153. package/lib/generates/internal/SdkImportWizard.js +63 -0
  154. package/lib/generates/internal/SdkImportWizard.js.map +1 -1
  155. package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +17 -2
  156. package/lib/generates/internal/SdkMcpRouteProgrammer.js +72 -24
  157. package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
  158. package/lib/generates/internal/SdkPathTemplate.d.ts +36 -0
  159. package/lib/generates/internal/SdkPathTemplate.js +65 -0
  160. package/lib/generates/internal/SdkPathTemplate.js.map +1 -0
  161. package/lib/generates/internal/SdkRouteDirectory.d.ts +10 -0
  162. package/lib/generates/internal/SdkRouteDirectory.js +10 -0
  163. package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
  164. package/lib/generates/internal/SdkTypeProgrammer.d.ts +54 -1
  165. package/lib/generates/internal/SdkTypeProgrammer.js +111 -27
  166. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  167. package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +53 -1
  168. package/lib/generates/internal/SdkTypeTagProgrammer.js +407 -67
  169. package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
  170. package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +40 -0
  171. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +149 -142
  172. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -1
  173. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +19 -0
  174. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +46 -36
  175. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  176. package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +114 -1
  177. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +120 -5
  178. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
  179. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +18 -0
  180. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +75 -33
  181. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  182. package/lib/generates/internal/SwaggerDescriptionComposer.d.ts +42 -0
  183. package/lib/generates/internal/SwaggerDescriptionComposer.js +44 -1
  184. package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -1
  185. package/lib/generates/internal/SwaggerOperationComposer.d.ts +18 -0
  186. package/lib/generates/internal/SwaggerOperationComposer.js +37 -8
  187. package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
  188. package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +40 -1
  189. package/lib/generates/internal/SwaggerOperationParameterComposer.js +230 -25
  190. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
  191. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +21 -0
  192. package/lib/generates/internal/SwaggerOperationResponseComposer.js +58 -7
  193. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
  194. package/lib/internal/legacy.d.ts +342 -31
  195. package/lib/internal/legacy.js +207 -31
  196. package/lib/internal/legacy.js.map +1 -1
  197. package/lib/structures/INestiaProject.d.ts +10 -0
  198. package/lib/structures/INestiaSdkInput.d.ts +30 -0
  199. package/lib/structures/IOperationMetadata.d.ts +77 -0
  200. package/lib/structures/IReflectController.d.ts +10 -0
  201. package/lib/structures/IReflectHttpOperation.d.ts +10 -0
  202. package/lib/structures/IReflectHttpOperationException.d.ts +13 -2
  203. package/lib/structures/IReflectHttpOperationParameter.d.ts +55 -3
  204. package/lib/structures/IReflectHttpOperationSuccess.d.ts +15 -3
  205. package/lib/structures/IReflectImport.d.ts +10 -0
  206. package/lib/structures/IReflectMcpOperation.d.ts +19 -0
  207. package/lib/structures/IReflectMcpOperationParameter.d.ts +9 -0
  208. package/lib/structures/IReflectOperationError.d.ts +28 -0
  209. package/lib/structures/IReflectOperationError.js +22 -2
  210. package/lib/structures/IReflectOperationError.js.map +1 -1
  211. package/lib/structures/IReflectType.d.ts +9 -0
  212. package/lib/structures/IReflectWebSocketOperation.d.ts +10 -0
  213. package/lib/structures/IReflectWebSocketOperationParameter.d.ts +55 -0
  214. package/lib/structures/ITypedApplication.d.ts +10 -0
  215. package/lib/structures/ITypedHttpRoute.d.ts +18 -0
  216. package/lib/structures/ITypedHttpRouteException.d.ts +13 -1
  217. package/lib/structures/ITypedHttpRouteParameter.d.ts +48 -1
  218. package/lib/structures/ITypedHttpRouteSuccess.d.ts +13 -1
  219. package/lib/structures/ITypedMcpRoute.d.ts +11 -0
  220. package/lib/structures/ITypedWebSocketRoute.d.ts +18 -0
  221. package/lib/transform.d.ts +6 -0
  222. package/lib/transform.js +6 -0
  223. package/lib/transform.js.map +1 -1
  224. package/lib/utils/ArrayUtil.d.ts +31 -1
  225. package/lib/utils/ArrayUtil.js +32 -11
  226. package/lib/utils/ArrayUtil.js.map +1 -1
  227. package/lib/utils/EmittedJavaScriptPatcher.d.ts +20 -0
  228. package/lib/utils/EmittedJavaScriptPatcher.js +65 -46
  229. package/lib/utils/EmittedJavaScriptPatcher.js.map +1 -1
  230. package/lib/utils/FileRetriever.d.ts +29 -0
  231. package/lib/utils/FileRetriever.js +29 -0
  232. package/lib/utils/FileRetriever.js.map +1 -1
  233. package/lib/utils/HttpResponseContentTypeUtil.d.ts +41 -0
  234. package/lib/utils/HttpResponseContentTypeUtil.js +31 -0
  235. package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -1
  236. package/lib/utils/MapUtil.d.ts +64 -1
  237. package/lib/utils/MapUtil.js +24 -3
  238. package/lib/utils/MapUtil.js.map +1 -1
  239. package/lib/utils/PathUtil.d.ts +31 -0
  240. package/lib/utils/PathUtil.js +38 -0
  241. package/lib/utils/PathUtil.js.map +1 -1
  242. package/lib/utils/SdkBundlePath.d.ts +2 -0
  243. package/lib/utils/SdkBundlePath.js +10 -0
  244. package/lib/utils/SdkBundlePath.js.map +1 -0
  245. package/lib/utils/SdkInputFilter.d.ts +31 -0
  246. package/lib/utils/SdkInputFilter.js +115 -0
  247. package/lib/utils/SdkInputFilter.js.map +1 -0
  248. package/lib/utils/SourceFinder.d.ts +45 -0
  249. package/lib/utils/SourceFinder.js +74 -16
  250. package/lib/utils/SourceFinder.js.map +1 -1
  251. package/lib/utils/StringUtil.d.ts +77 -2
  252. package/lib/utils/StringUtil.js +166 -4
  253. package/lib/utils/StringUtil.js.map +1 -1
  254. package/lib/utils/TemporaryDirectory.d.ts +60 -0
  255. package/lib/utils/TemporaryDirectory.js +112 -0
  256. package/lib/utils/TemporaryDirectory.js.map +1 -0
  257. package/lib/utils/TsConfigReader.d.ts +42 -0
  258. package/lib/utils/TsConfigReader.js +98 -14
  259. package/lib/utils/TsConfigReader.js.map +1 -1
  260. package/lib/utils/TtscExecutor.d.ts +23 -1
  261. package/lib/utils/TtscExecutor.js +22 -0
  262. package/lib/utils/TtscExecutor.js.map +1 -1
  263. package/lib/utils/VersioningStrategy.d.ts +39 -2
  264. package/lib/utils/VersioningStrategy.js +46 -13
  265. package/lib/utils/VersioningStrategy.js.map +1 -1
  266. package/lib/validators/TextPlainValidator.d.ts +19 -0
  267. package/lib/validators/TextPlainValidator.js +19 -0
  268. package/lib/validators/TextPlainValidator.js.map +1 -1
  269. package/native/go.mod +1 -1
  270. package/native/go.sum +2 -2
  271. package/native/sdk/register.go +12 -2
  272. package/native/sdk/sdk_http_rules.go +210 -0
  273. package/native/sdk/sdk_metadata_json.go +79 -4
  274. package/native/sdk/sdk_transform.go +1157 -414
  275. package/package.json +8 -6
  276. package/src/INestiaConfig.ts +74 -34
  277. package/src/NestiaSdkApplication.ts +129 -41
  278. package/src/NestiaSwaggerComposer.ts +32 -14
  279. package/src/analyses/AccessorAnalyzer.ts +26 -0
  280. package/src/analyses/ConfigAnalyzer.ts +52 -90
  281. package/src/analyses/ImportAnalyzer.ts +25 -0
  282. package/src/analyses/ParameterNameAnalyzer.ts +75 -0
  283. package/src/analyses/PathAnalyzer.ts +167 -23
  284. package/src/analyses/ReflectControllerAnalyzer.ts +34 -1
  285. package/src/analyses/ReflectHttpOperationAnalyzer.ts +36 -14
  286. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +31 -0
  287. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +153 -39
  288. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +38 -7
  289. package/src/analyses/ReflectMcpOperationAnalyzer.ts +38 -3
  290. package/src/analyses/ReflectMetadataAnalyzer.ts +47 -0
  291. package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +40 -7
  292. package/src/analyses/SecurityAnalyzer.ts +45 -20
  293. package/src/analyses/SwaggerExampleAnalyzer.ts +39 -0
  294. package/src/analyses/TypedHttpRouteAnalyzer.ts +263 -198
  295. package/src/analyses/TypedMcpRouteAnalyzer.ts +180 -20
  296. package/src/analyses/TypedWebSocketRouteAnalyzer.ts +20 -0
  297. package/src/decorators/OperationMetadata.ts +6 -0
  298. package/src/executable/internal/CommandParser.ts +19 -0
  299. package/src/executable/internal/NestiaConfigLoader.ts +66 -50
  300. package/src/executable/internal/NestiaSdkCommand.ts +96 -3
  301. package/src/executable/internal/NestiaSdkWatcher.ts +172 -44
  302. package/src/executable/internal/NestiaSwaggerWatch.ts +359 -0
  303. package/src/executable/sdk.ts +24 -1
  304. package/src/factories/ExpressionFactory.ts +23 -2
  305. package/src/factories/IdentifierFactory.ts +24 -0
  306. package/src/factories/LiteralFactory.ts +51 -13
  307. package/src/factories/StatementFactory.ts +28 -1
  308. package/src/factories/TypeFactory.ts +24 -0
  309. package/src/generates/CloneGenerator.ts +26 -5
  310. package/src/generates/E2eGenerator.ts +19 -0
  311. package/src/generates/SdkGenerator.ts +43 -12
  312. package/src/generates/SwaggerGenerator.ts +229 -46
  313. package/src/generates/internal/E2eFileProgrammer.ts +20 -0
  314. package/src/generates/internal/FilePrinter.ts +71 -0
  315. package/src/generates/internal/ImportDictionary.ts +120 -2
  316. package/src/generates/internal/SdkAliasCollection.ts +144 -15
  317. package/src/generates/internal/SdkDistributionComposer.ts +181 -56
  318. package/src/generates/internal/SdkFileProgrammer.ts +126 -16
  319. package/src/generates/internal/SdkHttpCloneProgrammer.ts +55 -0
  320. package/src/generates/internal/SdkHttpCloneReferencer.ts +97 -23
  321. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +47 -30
  322. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +53 -64
  323. package/src/generates/internal/SdkHttpParameterProgrammer.ts +295 -13
  324. package/src/generates/internal/SdkHttpRouteProgrammer.ts +37 -31
  325. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +122 -18
  326. package/src/generates/internal/SdkImportWizard.ts +63 -0
  327. package/src/generates/internal/SdkMcpRouteProgrammer.ts +150 -33
  328. package/src/generates/internal/SdkPathTemplate.ts +88 -0
  329. package/src/generates/internal/SdkRouteDirectory.ts +10 -0
  330. package/src/generates/internal/SdkTypeProgrammer.ts +137 -36
  331. package/src/generates/internal/SdkTypeTagProgrammer.ts +536 -78
  332. package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +185 -142
  333. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +62 -68
  334. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +205 -5
  335. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +89 -48
  336. package/src/generates/internal/SwaggerDescriptionComposer.ts +47 -1
  337. package/src/generates/internal/SwaggerOperationComposer.ts +38 -6
  338. package/src/generates/internal/SwaggerOperationParameterComposer.ts +318 -36
  339. package/src/generates/internal/SwaggerOperationResponseComposer.ts +74 -11
  340. package/src/internal/legacy-augmentation.d.ts +16 -0
  341. package/src/internal/legacy.ts +407 -49
  342. package/src/structures/INestiaProject.ts +10 -0
  343. package/src/structures/INestiaSdkInput.ts +30 -0
  344. package/src/structures/IOperationMetadata.ts +83 -0
  345. package/src/structures/IReflectController.ts +10 -0
  346. package/src/structures/IReflectHttpOperation.ts +10 -0
  347. package/src/structures/IReflectHttpOperationException.ts +17 -2
  348. package/src/structures/IReflectHttpOperationParameter.ts +56 -2
  349. package/src/structures/IReflectHttpOperationSuccess.ts +19 -3
  350. package/src/structures/IReflectImport.ts +10 -0
  351. package/src/structures/IReflectMcpOperation.ts +19 -0
  352. package/src/structures/IReflectMcpOperationParameter.ts +9 -0
  353. package/src/structures/IReflectOperationError.ts +31 -2
  354. package/src/structures/IReflectType.ts +9 -0
  355. package/src/structures/IReflectWebSocketOperation.ts +10 -0
  356. package/src/structures/IReflectWebSocketOperationParameter.ts +55 -0
  357. package/src/structures/ITypedApplication.ts +10 -0
  358. package/src/structures/ITypedHttpRoute.ts +18 -0
  359. package/src/structures/ITypedHttpRouteException.ts +14 -1
  360. package/src/structures/ITypedHttpRouteParameter.ts +48 -1
  361. package/src/structures/ITypedHttpRouteSuccess.ts +14 -1
  362. package/src/structures/ITypedMcpRoute.ts +12 -0
  363. package/src/structures/ITypedWebSocketRoute.ts +18 -0
  364. package/src/transform.ts +6 -0
  365. package/src/utils/ArrayUtil.ts +32 -13
  366. package/src/utils/EmittedJavaScriptPatcher.ts +70 -47
  367. package/src/utils/FileRetriever.ts +29 -0
  368. package/src/utils/HttpResponseContentTypeUtil.ts +41 -0
  369. package/src/utils/MapUtil.ts +68 -3
  370. package/src/utils/PathUtil.ts +38 -0
  371. package/src/utils/SdkBundlePath.ts +11 -0
  372. package/src/utils/SdkInputFilter.ts +108 -0
  373. package/src/utils/SourceFinder.ts +76 -18
  374. package/src/utils/StringUtil.ts +182 -5
  375. package/src/utils/TemporaryDirectory.ts +108 -0
  376. package/src/utils/TsConfigReader.ts +124 -26
  377. package/src/utils/TtscExecutor.ts +23 -1
  378. package/src/utils/VersioningStrategy.ts +51 -16
  379. package/src/validators/TextPlainValidator.ts +19 -0
  380. package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +0 -9
  381. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +0 -178
  382. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +0 -1
  383. package/lib/validators/HttpHeadersValidator.d.ts +0 -11
  384. package/lib/validators/HttpHeadersValidator.js +0 -15
  385. package/lib/validators/HttpHeadersValidator.js.map +0 -1
  386. package/lib/validators/HttpQueryValidator.d.ts +0 -10
  387. package/lib/validators/HttpQueryValidator.js +0 -14
  388. package/lib/validators/HttpQueryValidator.js.map +0 -1
  389. package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +0 -264
  390. package/src/validators/HttpHeadersValidator.ts +0 -12
  391. package/src/validators/HttpQueryValidator.ts +0 -11
@@ -4,44 +4,46 @@ exports.TypedHttpRouteAnalyzer = void 0;
4
4
  const utils_1 = require("@typia/utils");
5
5
  const legacy_1 = require("../internal/legacy");
6
6
  const PathUtil_1 = require("../utils/PathUtil");
7
+ const StringUtil_1 = require("../utils/StringUtil");
8
+ /**
9
+ * Turns reflected HTTP operations into typed routes, one per path, and builds
10
+ * the shared dictionary of the JSON components HTTP and MCP routes use.
11
+ *
12
+ * @evidence contracts/common.md#principled-implementation Each operation's metadata is resolved against its own components and validated by the policy of its position, the routes carry the typed parameters, the success response, and the exceptions, and the dictionary of the routes is built after component names that collide with different definitions are renamed per controller.
13
+ * @evidence contracts/common.md#clear-and-simple-design Two public functions and private collectors for the component rename.
14
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The rename mutates only component definitions owned by analysis; consumers emit resolved structural types rather than modifying foreign cache fields or replacing names in strings.
15
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
16
+ * efficient algorithms: This namespace groups operations; analyze and routeDictionary own the algorithms.
17
+ * reuse equivalent work: The namespace itself coordinates no completed or in-flight work.
18
+ * bound retention and release resources: The namespace owns no cache, handle or running task.
19
+ * @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
20
+ */
7
21
  var TypedHttpRouteAnalyzer;
8
22
  (function (TypedHttpRouteAnalyzer) {
9
- TypedHttpRouteAnalyzer.dictionary = (controllers) => {
10
- const individual = [];
11
- for (const c of controllers)
12
- for (const o of c.operations) {
13
- if (o.protocol !== "http")
14
- continue;
15
- if (o.success)
16
- individual.push(o.success.components);
17
- for (const p of o.parameters)
18
- individual.push(p.components);
19
- for (const e of Object.values(o.exceptions))
20
- individual.push(e.components);
21
- }
22
- const components = legacy_1.MetadataComponents.from({
23
- objects: uniqueComponents(individual.flatMap((c) => c.objects)),
24
- arrays: uniqueComponents(individual.flatMap((c) => c.arrays)),
25
- tuples: uniqueComponents(individual.flatMap((c) => c.tuples)),
26
- aliases: uniqueComponents(individual.flatMap((c) => c.aliases)),
27
- });
28
- return components.dictionary;
29
- };
23
+ /**
24
+ * Returns the typed routes of one operation, one per path, or none when the
25
+ * metadata violates a policy; the violations are pushed to the errors.
26
+ *
27
+ * @evidence contracts/common.md#principled-implementation Each metadata is resolved against its own components and validated with the policy of its position (JSON, query, header, or text), the `@setHeader` and `@assignHeaders` tags become header directives, and the route splits the parameters by category.
28
+ * @evidence contracts/common.md#clear-and-simple-design One function.
29
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The policies come from the validators of the package.
30
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result and the errors.
31
+ * efficient algorithms: Each supplied parameter and exception is cast once, policy validation belongs to MetadataFactory, and route splitting maps only the supplied paths.
32
+ * reuse equivalent work: Independently supplied operation metadata and position-specific validation have no shared completed or in-flight request.
33
+ * bound retention and release resources: Metadata dictionaries and local diagnostics belong to this synchronous operation and its returned routes; no process, handle or persistent history is retained.
34
+ * @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer.analyze analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
35
+ */
30
36
  TypedHttpRouteAnalyzer.analyze = (props) => {
31
37
  const errors = [];
32
- const cast = (next, from, escape) => {
38
+ const cast = (next, from) => {
33
39
  const components = legacy_1.MetadataComponents.from(next.components);
34
40
  const metadata = legacy_1.MetadataSchema.from(next.metadata, components.dictionary);
35
- const metaErrors = legacy_1.MetadataFactory.validate({
36
- options: {
37
- escape,
38
- constant: true,
39
- absorb: true,
40
- validate: next.validate, // @todo -> CHECK IN TYPIA
41
- },
42
- functor: next.validate, // @todo -> CHECK IN TYPIA
43
- metadata,
44
- });
41
+ const metaErrors = next.validate === undefined
42
+ ? []
43
+ : legacy_1.MetadataFactory.validate({
44
+ functor: next.validate,
45
+ metadata,
46
+ });
45
47
  if (metaErrors.length)
46
48
  errors.push({
47
49
  file: props.controller.file,
@@ -69,31 +71,36 @@ var TypedHttpRouteAnalyzer;
69
71
  example: value.example,
70
72
  examples: value.examples,
71
73
  type: value.type,
72
- metadata: cast(value, `exception (status: ${key})`, true),
74
+ metadata: cast(value, `exception (status: ${key})`),
73
75
  },
74
76
  ]));
75
- const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})`, p.category === "body" &&
76
- (p.contentType === "application/json" || p.encrypted === true)) })));
77
- const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success", props.operation.success.encrypted ||
78
- props.operation.success.contentType === "application/json"), setHeaders: props.operation.jsDocTags
77
+ const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})`) })));
78
+ const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success"), setHeaders: props.operation.jsDocTags
79
79
  .filter((t) => { var _a; return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length) &&
80
80
  t.text[0].text &&
81
81
  (t.name === "setHeader" || t.name === "assignHeaders"); })
82
- .map((t) => { var _a; return t.name === "setHeader"
83
- ? {
84
- type: "setter",
85
- source: t.text[0].text.split(" ")[0].trim(),
86
- target: (_a = t.text[0].text.split(" ")[1]) === null || _a === void 0 ? void 0 : _a.trim(),
87
- }
88
- : {
89
- type: "assigner",
90
- source: t.text[0].text,
91
- }; }) });
82
+ .map((t) => {
83
+ // the words of the first line; the next lines only describe
84
+ const words = t
85
+ .text[0].text.split("\n")[0]
86
+ .trim()
87
+ .split(/\s+/);
88
+ return t.name === "setHeader"
89
+ ? {
90
+ type: "setter",
91
+ source: words[0],
92
+ target: words[1],
93
+ }
94
+ : {
95
+ type: "assigner",
96
+ source: words[0],
97
+ };
98
+ }) });
92
99
  if (errors.length) {
93
100
  props.errors.push(...errors);
94
101
  return [];
95
102
  }
96
- return props.paths.map((path) => { var _a, _b, _c; return (Object.assign(Object.assign({}, props.operation), { controller: props.controller, path, accessor: [...PathUtil_1.PathUtil.accessors(path), props.operation.name], exceptions, pathParameters: parameters.filter((p) => p.category === "param"), queryParameters: parameters
103
+ return props.paths.map((path) => { var _a, _b, _c; return (Object.assign(Object.assign({}, props.operation), { controller: props.controller, key: props.operation.name, path, accessor: [...PathUtil_1.PathUtil.accessors(path), props.operation.name], exceptions, pathParameters: parameters.filter((p) => p.category === "param"), queryParameters: parameters
97
104
  .filter((p) => p.category === "query")
98
105
  .filter((p) => p.field !== null), headerParameters: parameters
99
106
  .filter((p) => p.category === "headers")
@@ -103,6 +110,19 @@ var TypedHttpRouteAnalyzer;
103
110
  .filter((p) => p.category === "headers")
104
111
  .filter((p) => p.field === null)[0]) !== null && _c !== void 0 ? _c : null, success, extensions: props.operation.extensions })); });
105
112
  };
113
+ /**
114
+ * Returns the dictionary of the components the routes actually use, after
115
+ * renaming components whose names collide with different definitions.
116
+ *
117
+ * @evidence contracts/common.md#principled-implementation Objects, aliases and recursive arrays/tuples share their emitted accessor-path slots, while finite and object-mediated collections remain kind-specific inline groups. Different semantic classes in one slot receive unique controller-qualified names, and the emitted dictionary follows escaped returns rather than original-only toJSON declarations.
118
+ * @evidence contracts/common.md#clear-and-simple-design One function over private collectors.
119
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Finite partition refinement preserves semantic discriminators and user payloads while component edges reference equivalence classes. Only actual component ordinals are omitted; no foreign name cache or generated text is rewritten.
120
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result and the rename.
121
+ * efficient algorithms: Each refinement round encodes each distinct component body with constant-sized component edges. The partition only splits and stabilizes within the distinct component count, avoiding exponential expansion of shared DAGs.
122
+ * reuse equivalent work: One local partition compares all routes together, reuses graph node colors for shared children and supplies all collision groups; equivalent same-slot definitions reuse one emitted representative.
123
+ * bound retention and release resources: Collected nodes, partitions and visited sets are local to this synchronous call and are released with it; the returned dictionary retains only its reachable emitted representatives.
124
+ * @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer.routeDictionary analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
125
+ */
106
126
  TypedHttpRouteAnalyzer.routeDictionary = (routes) => {
107
127
  renameDuplicateComponents(routes);
108
128
  const dictionary = {
@@ -111,20 +131,9 @@ var TypedHttpRouteAnalyzer;
111
131
  arrays: new Map(),
112
132
  tuples: new Map(),
113
133
  };
114
- for (const route of routes) {
115
- for (const p of [
116
- ...route.pathParameters,
117
- ...route.queryParameters,
118
- ...route.headerParameters,
119
- ...(route.queryObject ? [route.queryObject] : []),
120
- ...(route.body ? [route.body] : []),
121
- ...(route.headerObject ? [route.headerObject] : []),
122
- ])
123
- enrollMetadata(dictionary, p.metadata);
124
- for (const e of Object.values(route.exceptions))
125
- enrollMetadata(dictionary, e.metadata);
126
- enrollMetadata(dictionary, route.success.metadata);
127
- }
134
+ for (const route of routes)
135
+ for (const metadata of routeMetadatas(route))
136
+ enrollMetadata(dictionary, metadata);
128
137
  return dictionary;
129
138
  };
130
139
  })(TypedHttpRouteAnalyzer || (exports.TypedHttpRouteAnalyzer = TypedHttpRouteAnalyzer = {}));
@@ -134,10 +143,29 @@ const renameDuplicateComponents = (routes) => {
134
143
  for (const route of routes)
135
144
  for (const metadata of routeMetadatas(route))
136
145
  collectComponentEntries(entries, route, metadata);
137
- const used = new Set(entries.map((e) => e.type.name));
146
+ // Original toJSON definitions participate in semantic comparison but do not
147
+ // become emitted declarations unless another route uses them directly.
148
+ const comparisonEntries = [];
149
+ for (const route of routes)
150
+ for (const metadata of routeMetadatas(route))
151
+ collectComponentEntries(comparisonEntries, route, metadata, createCollectVisited(), true);
152
+ const signatures = componentSignatures(comparisonEntries);
153
+ for (const entry of entries)
154
+ entry.signature = signatures.get(entry.type);
155
+ const used = new Set(entries.map((e) => StringUtil_1.StringUtil.accessorsOf(e.type.name).join(".")));
138
156
  const groups = new Map();
139
157
  for (const entry of entries) {
140
- const key = `${entry.kind}:${entry.type.name}`;
158
+ // Named recursive collections also need a declaration to break cycles.
159
+ // Ordinary arrays and tuples remain inline forms without their own slot.
160
+ const slot = entry.kind === "objects" ||
161
+ entry.kind === "aliases" ||
162
+ entry.type.recursive
163
+ ? "declarations"
164
+ : entry.kind;
165
+ const name = slot === "declarations"
166
+ ? StringUtil_1.StringUtil.accessorsOf(entry.type.name).join(".")
167
+ : entry.type.name;
168
+ const key = `${slot}:${name}`;
141
169
  const group = groups.get(key);
142
170
  if (group === undefined)
143
171
  groups.set(key, [entry]);
@@ -155,54 +183,58 @@ const renameDuplicateComponents = (routes) => {
155
183
  const prefix = normalizeComponentNamespace(entry.route.controller.class.name);
156
184
  const name = escapeComponentName(used, `${prefix}.${oldName}`);
157
185
  renamed.set(entry.signature, name);
158
- used.add(name);
186
+ used.add(StringUtil_1.StringUtil.accessorsOf(name).join("."));
159
187
  return name;
160
188
  })();
161
189
  entry.type.name = next;
162
190
  }
163
191
  }
164
- for (const route of routes)
165
- for (const metadata of routeMetadatas(route))
166
- clearMetadataNameCache(metadata);
167
192
  };
168
- const routeMetadatas = (route) => [
169
- ...[
170
- ...route.pathParameters,
171
- ...route.queryParameters,
172
- ...route.headerParameters,
173
- ...(route.queryObject ? [route.queryObject] : []),
174
- ...(route.body ? [route.body] : []),
175
- ...(route.headerObject ? [route.headerObject] : []),
176
- ].map((p) => p.metadata),
177
- ...Object.values(route.exceptions).map((e) => e.metadata),
178
- route.success.metadata,
179
- ];
180
- const collectComponentEntries = (entries, route, metadata, visited = createCollectVisited()) => {
193
+ const routeMetadatas = (route) => route.protocol === "mcp"
194
+ ? [route.inputMetadata, route.outputMetadata].filter((m) => m !== undefined)
195
+ : [
196
+ ...[
197
+ ...route.pathParameters,
198
+ ...route.queryParameters,
199
+ ...route.headerParameters,
200
+ ...(route.queryObject ? [route.queryObject] : []),
201
+ ...(route.body ? [route.body] : []),
202
+ ...(route.headerObject ? [route.headerObject] : []),
203
+ ].map((p) => p.metadata),
204
+ ...Object.values(route.exceptions).map((e) => e.metadata),
205
+ route.success.metadata,
206
+ ];
207
+ const collectComponentEntries = (entries, route, metadata, visited = createCollectVisited(), includeOriginal = false) => {
208
+ var _a;
181
209
  if (visited.schemas.has(metadata))
182
210
  return;
183
211
  visited.schemas.add(metadata);
184
212
  if (metadata.rest !== null)
185
- collectComponentEntries(entries, route, metadata.rest, visited);
213
+ collectComponentEntries(entries, route, metadata.rest, visited, includeOriginal);
186
214
  if (metadata.escaped !== null) {
187
- collectComponentEntries(entries, route, metadata.escaped.original, visited);
188
- collectComponentEntries(entries, route, metadata.escaped.returns, visited);
215
+ if (includeOriginal)
216
+ collectComponentEntries(entries, route, metadata.escaped.original, visited, includeOriginal);
217
+ collectComponentEntries(entries, route, metadata.escaped.returns, visited, includeOriginal);
189
218
  }
219
+ for (const template of metadata.templates)
220
+ for (const elem of (_a = template.row) !== null && _a !== void 0 ? _a : template)
221
+ collectComponentEntries(entries, route, elem, visited, includeOriginal);
190
222
  for (const func of metadata.functions) {
191
223
  for (const p of func.parameters)
192
- collectComponentEntries(entries, route, p.type, visited);
193
- collectComponentEntries(entries, route, func.output, visited);
224
+ collectComponentEntries(entries, route, p.type, visited, includeOriginal);
225
+ collectComponentEntries(entries, route, func.output, visited, includeOriginal);
194
226
  }
195
227
  for (const set of metadata.sets)
196
- collectComponentEntries(entries, route, set.value, visited);
228
+ collectComponentEntries(entries, route, set.value, visited, includeOriginal);
197
229
  for (const map of metadata.maps) {
198
- collectComponentEntries(entries, route, map.key, visited);
199
- collectComponentEntries(entries, route, map.value, visited);
230
+ collectComponentEntries(entries, route, map.key, visited, includeOriginal);
231
+ collectComponentEntries(entries, route, map.value, visited, includeOriginal);
200
232
  }
201
233
  for (const array of metadata.arrays)
202
234
  if (visited.arrays.has(array.type) === false) {
203
235
  visited.arrays.add(array.type);
204
236
  entries.push(componentEntry(route, "arrays", array.type));
205
- collectComponentEntries(entries, route, array.type.value, visited);
237
+ collectComponentEntries(entries, route, array.type.value, visited, includeOriginal);
206
238
  }
207
239
  for (const tuple of metadata.tuples)
208
240
  if (visited.tuples.has(tuple.type) === false) {
@@ -210,13 +242,13 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
210
242
  entries.push(componentEntry(route, "tuples", tuple.type));
211
243
  for (const elem of tuple.type
212
244
  .elements)
213
- collectComponentEntries(entries, route, elem, visited);
245
+ collectComponentEntries(entries, route, elem, visited, includeOriginal);
214
246
  }
215
247
  for (const alias of metadata.aliases)
216
248
  if (visited.aliases.has(alias.type) === false) {
217
249
  visited.aliases.add(alias.type);
218
250
  entries.push(componentEntry(route, "aliases", alias.type));
219
- collectComponentEntries(entries, route, alias.type.value, visited);
251
+ collectComponentEntries(entries, route, alias.type.value, visited, includeOriginal);
220
252
  }
221
253
  for (const obj of metadata.objects)
222
254
  if (visited.objects.has(obj.type) === false) {
@@ -224,76 +256,84 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
224
256
  entries.push(componentEntry(route, "objects", obj.type));
225
257
  for (const p of obj.type
226
258
  .properties) {
227
- collectComponentEntries(entries, route, p.key, visited);
228
- collectComponentEntries(entries, route, p.value, visited);
259
+ collectComponentEntries(entries, route, p.key, visited, includeOriginal);
260
+ collectComponentEntries(entries, route, p.value, visited, includeOriginal);
229
261
  }
230
262
  }
231
263
  };
232
264
  const componentEntry = (route, kind, type) => ({
233
265
  kind,
234
266
  route,
235
- signature: componentSignature(type),
267
+ signature: "",
236
268
  type,
237
269
  });
238
- const componentSignature = (type) => JSON.stringify(type, (key, value) =>
239
- // `type` is the resolved back-reference attached by
240
- // `MetadataSchema.from`; it closes a cycle on recursive schemas.
241
- // `index` carries the per-route ordinal and is not part of the
242
- // component's identity.
243
- key === "index" || key === "type" ? undefined : value);
270
+ /**
271
+ * Refines a finite component graph until no semantic equivalence class splits.
272
+ * Component edges carry class numbers, so shared children are never expanded as
273
+ * trees. Ordinary payloads retain separate object/array representations. Each
274
+ * round preserves the previous partition and can only split its classes; at
275
+ * most the number of distinct components rounds are necessary.
276
+ */
277
+ const componentSignatures = (entries) => {
278
+ const kinds = new Map();
279
+ for (const entry of entries)
280
+ kinds.set(entry.type, entry.kind);
281
+ const nodes = [...kinds.keys()];
282
+ let colors = new Map(nodes.map((node) => [node, 0]));
283
+ let classes = nodes.length ? 1 : 0;
284
+ while (nodes.length) {
285
+ const intern = new Map();
286
+ const next = new Map();
287
+ for (const node of nodes) {
288
+ const ancestors = new WeakMap();
289
+ let depth = 0;
290
+ const encode = (value, root = false) => {
291
+ if (value === null || typeof value !== "object")
292
+ return value;
293
+ if (!root && kinds.has(value))
294
+ return ["component", colors.get(value)];
295
+ const position = ancestors.get(value);
296
+ if (position !== undefined)
297
+ return ["payload-cycle", position];
298
+ ancestors.set(value, depth++);
299
+ const result = Array.isArray(value)
300
+ ? ["array", value.map((child) => encode(child))]
301
+ : [
302
+ "object",
303
+ Object.entries(value)
304
+ .filter(([key, child]) => child !== undefined && !(root && key === "index"))
305
+ .map(([key, child]) => [key, encode(child)]),
306
+ ];
307
+ ancestors.delete(value);
308
+ --depth;
309
+ return result;
310
+ };
311
+ const signature = JSON.stringify([
312
+ colors.get(node),
313
+ kinds.get(node),
314
+ encode(node, true),
315
+ ]);
316
+ let color = intern.get(signature);
317
+ if (color === undefined) {
318
+ color = intern.size;
319
+ intern.set(signature, color);
320
+ }
321
+ next.set(node, color);
322
+ }
323
+ colors = next;
324
+ if (intern.size === classes)
325
+ break;
326
+ classes = intern.size;
327
+ }
328
+ return new Map(nodes.map((node) => [node, String(colors.get(node))]));
329
+ };
244
330
  const normalizeComponentNamespace = (name) => {
245
331
  const next = name.replace(/[^A-Za-z0-9_$]/g, "_");
246
332
  return next.length ? next : "Route";
247
333
  };
248
- const escapeComponentName = (used, name) => used.has(name) ? escapeComponentName(used, `_${name}`) : name;
249
- const clearMetadataNameCache = (metadata, visited = new WeakSet()) => {
250
- if (visited.has(metadata))
251
- return;
252
- visited.add(metadata);
253
- metadata.name_ = undefined;
254
- if (metadata.rest !== null)
255
- clearMetadataNameCache(metadata.rest, visited);
256
- if (metadata.escaped !== null) {
257
- clearMetadataNameCache(metadata.escaped.original, visited);
258
- clearMetadataNameCache(metadata.escaped.returns, visited);
259
- }
260
- for (const func of metadata.functions) {
261
- for (const p of func.parameters)
262
- clearMetadataNameCache(p.type, visited);
263
- clearMetadataNameCache(func.output, visited);
264
- }
265
- for (const set of metadata.sets) {
266
- set.name_ = undefined;
267
- clearMetadataNameCache(set.value, visited);
268
- }
269
- for (const map of metadata.maps) {
270
- map.name_ = undefined;
271
- clearMetadataNameCache(map.key, visited);
272
- clearMetadataNameCache(map.value, visited);
273
- }
274
- for (const array of metadata.arrays) {
275
- array.name_ = undefined;
276
- clearMetadataNameCache(array.type.value, visited);
277
- }
278
- for (const tuple of metadata.tuples) {
279
- tuple.name_ = undefined;
280
- for (const elem of tuple.type
281
- .elements)
282
- clearMetadataNameCache(elem, visited);
283
- }
284
- for (const alias of metadata.aliases) {
285
- alias.name_ = undefined;
286
- clearMetadataNameCache(alias.type.value, visited);
287
- }
288
- for (const obj of metadata.objects) {
289
- obj.name_ = undefined;
290
- for (const p of obj.type
291
- .properties) {
292
- clearMetadataNameCache(p.key, visited);
293
- clearMetadataNameCache(p.value, visited);
294
- }
295
- }
296
- };
334
+ const escapeComponentName = (used, name) => used.has(StringUtil_1.StringUtil.accessorsOf(name).join("."))
335
+ ? escapeComponentName(used, `_${name}`)
336
+ : name;
297
337
  const createCollectVisited = () => ({
298
338
  aliases: new WeakSet(),
299
339
  arrays: new WeakSet(),
@@ -301,32 +341,19 @@ const createCollectVisited = () => ({
301
341
  schemas: new WeakSet(),
302
342
  tuples: new WeakSet(),
303
343
  });
304
- const uniqueComponents = (input) => {
305
- const dict = {};
306
- for (const elem of input) {
307
- const oldbie = dict[elem.name];
308
- if (oldbie === undefined)
309
- dict[elem.name] = elem;
310
- else if (elem.name.includes(".") ||
311
- componentScore(oldbie) < componentScore(elem))
312
- dict[elem.name] = elem;
313
- }
314
- return Object.values(dict);
315
- };
316
- const componentScore = (input) => JSON.stringify(input, (key, value) =>
317
- // Resolved-reference back-edges close cycles on recursive schemas;
318
- // skip them when scoring component "richness".
319
- key === "type" ? undefined : value).length;
320
344
  const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata()) => {
345
+ var _a;
321
346
  if (visited.schemas.has(metadata))
322
347
  return;
323
348
  visited.schemas.add(metadata);
324
349
  if (metadata.rest !== null)
325
350
  enrollMetadata(dictionary, metadata.rest, visited);
326
351
  if (metadata.escaped !== null) {
327
- enrollMetadata(dictionary, metadata.escaped.original, visited);
328
352
  enrollMetadata(dictionary, metadata.escaped.returns, visited);
329
353
  }
354
+ for (const template of metadata.templates)
355
+ for (const elem of (_a = template.row) !== null && _a !== void 0 ? _a : template)
356
+ enrollMetadata(dictionary, elem, visited);
330
357
  for (const func of metadata.functions) {
331
358
  for (const p of func.parameters)
332
359
  enrollMetadata(dictionary, p.type, visited);
@@ -358,6 +385,8 @@ const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata())
358
385
  }
359
386
  };
360
387
  const enroll = (dict, elem) => {
388
+ // Collision refinement established equivalence for every remaining same-name
389
+ // entry in this kind; selecting another representative cannot add meaning.
361
390
  const oldbie = dict.get(elem.name);
362
391
  if (oldbie === elem)
363
392
  return false;
@@ -365,11 +394,6 @@ const enroll = (dict, elem) => {
365
394
  dict.set(elem.name, elem);
366
395
  return true;
367
396
  }
368
- else if (elem.name.includes(".") ||
369
- componentScore(oldbie) < componentScore(elem)) {
370
- dict.set(elem.name, elem);
371
- return true;
372
- }
373
397
  return false;
374
398
  };
375
399
  const createVisitedMetadata = () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"TypedHttpRouteAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/TypedHttpRouteAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypedHttpRouteAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/TypedHttpRouteAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,38 @@
1
1
  import { IReflectController } from "../structures/IReflectController";
2
2
  import { IReflectMcpOperation } from "../structures/IReflectMcpOperation";
3
+ import { IReflectOperationError } from "../structures/IReflectOperationError";
3
4
  import { ITypedMcpRoute } from "../structures/ITypedMcpRoute";
5
+ /**
6
+ * Turns a reflected MCP operation into a typed route.
7
+ *
8
+ * @evidence contracts/common.md#principled-implementation An MCP tool is one route whose accessor is `mcp` and the tool name with non-identifier characters replaced.
9
+ * @evidence contracts/common.md#clear-and-simple-design One function.
10
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The accessor rule is generic.
11
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
12
+ * efficient algorithms: The namespace groups declarations; analyze owns graph conversion.
13
+ * reuse equivalent work: The namespace coordinates no computation.
14
+ * bound retention and release resources: The namespace owns no retained state or handles.
15
+ * @evidenceExclude contracts/portability.md#os-neutral-implementation TypedMcpRouteAnalyzer analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
16
+ */
4
17
  export declare namespace TypedMcpRouteAnalyzer {
18
+ /**
19
+ * Returns the typed route of an MCP tool: its names, schemas, input
20
+ * parameter, return type, and imports. Clone mode resolves a private copy of
21
+ * the native JSON graph and reports missing or unresolved components.
22
+ *
23
+ * @evidence contracts/common.md#principled-implementation Native primitive pipes describe the same JSON wire values the MCP adaptor serializes. Clone requests require these graphs; source-only routes preserve their declared types and imports.
24
+ * @evidence contracts/common.md#clear-and-simple-design One conversion resolves the input and output against their own components and reports clone metadata failures at the route.
25
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Native JSON pipes are resolved through the shared metadata adapter; source binding names never select a clone exception and native records remain unchanged.
26
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
27
+ * efficient algorithms: Clone mode copies each supplied graph payload once, indexes its components and visits each schema and component target once to check reference closure. Work scales with graph vertices, edges and annotation payload; no compiler or type analysis is repeated.
28
+ * reuse equivalent work: Input and output pipes have independent native component identities, and this operation retains no completed or in-flight request to share across analyses.
29
+ * bound retention and release resources: Resolution copies and visited sets belong to one synchronous conversion; the returned route retains its reachable graphs, and no global cache, process or handle is created.
30
+ * @evidenceExclude contracts/portability.md#os-neutral-implementation TypedMcpRouteAnalyzer.analyze analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
31
+ */
5
32
  const analyze: (props: {
6
33
  controller: IReflectController;
7
34
  operation: IReflectMcpOperation;
35
+ clone?: boolean;
36
+ errors?: IReflectOperationError[];
8
37
  }) => ITypedMcpRoute[];
9
38
  }