@nestia/sdk 14.0.1 → 14.0.3

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 (377) hide show
  1. package/assets/bundle/distribute/build-sdk.cjs +28 -0
  2. package/assets/bundle/distribute/package.json +6 -2
  3. package/lib/INestiaConfig.d.ts +55 -24
  4. package/lib/NestiaSdkApplication.d.ts +60 -0
  5. package/lib/NestiaSdkApplication.js +63 -5
  6. package/lib/NestiaSdkApplication.js.map +1 -1
  7. package/lib/NestiaSwaggerComposer.d.ts +21 -0
  8. package/lib/NestiaSwaggerComposer.js +21 -3
  9. package/lib/NestiaSwaggerComposer.js.map +1 -1
  10. package/lib/analyses/AccessorAnalyzer.d.ts +26 -0
  11. package/lib/analyses/AccessorAnalyzer.js +26 -0
  12. package/lib/analyses/AccessorAnalyzer.js.map +1 -1
  13. package/lib/analyses/ConfigAnalyzer.d.ts +41 -0
  14. package/lib/analyses/ConfigAnalyzer.js +57 -80
  15. package/lib/analyses/ConfigAnalyzer.js.map +1 -1
  16. package/lib/analyses/ImportAnalyzer.d.ts +25 -0
  17. package/lib/analyses/ImportAnalyzer.js +25 -0
  18. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  19. package/lib/analyses/ParameterNameAnalyzer.d.ts +24 -0
  20. package/lib/analyses/ParameterNameAnalyzer.js +15 -0
  21. package/lib/analyses/ParameterNameAnalyzer.js.map +1 -1
  22. package/lib/analyses/PathAnalyzer.d.ts +63 -1
  23. package/lib/analyses/PathAnalyzer.js +54 -9
  24. package/lib/analyses/PathAnalyzer.js.map +1 -1
  25. package/lib/analyses/ReflectControllerAnalyzer.d.ts +32 -0
  26. package/lib/analyses/ReflectControllerAnalyzer.js +22 -0
  27. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  28. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +29 -0
  29. package/lib/analyses/ReflectHttpOperationAnalyzer.js +28 -17
  30. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  31. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +31 -0
  32. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +21 -0
  33. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -1
  34. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +31 -0
  35. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +21 -0
  36. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
  37. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +32 -0
  38. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +22 -0
  39. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
  40. package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +29 -0
  41. package/lib/analyses/ReflectMcpOperationAnalyzer.js +30 -9
  42. package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -1
  43. package/lib/analyses/ReflectMetadataAnalyzer.d.ts +47 -0
  44. package/lib/analyses/ReflectMetadataAnalyzer.js +47 -0
  45. package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
  46. package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +29 -0
  47. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +22 -5
  48. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
  49. package/lib/analyses/SecurityAnalyzer.d.ts +15 -0
  50. package/lib/analyses/SecurityAnalyzer.js +15 -0
  51. package/lib/analyses/SecurityAnalyzer.js.map +1 -1
  52. package/lib/analyses/SwaggerExampleAnalyzer.d.ts +16 -0
  53. package/lib/analyses/SwaggerExampleAnalyzer.js +16 -0
  54. package/lib/analyses/SwaggerExampleAnalyzer.js.map +1 -1
  55. package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +41 -3
  56. package/lib/analyses/TypedHttpRouteAnalyzer.js +172 -157
  57. package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
  58. package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +29 -0
  59. package/lib/analyses/TypedMcpRouteAnalyzer.js +152 -20
  60. package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -1
  61. package/lib/analyses/TypedWebSocketRouteAnalyzer.d.ts +19 -0
  62. package/lib/analyses/TypedWebSocketRouteAnalyzer.js +19 -0
  63. package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -1
  64. package/lib/decorators/OperationMetadata.d.ts +6 -0
  65. package/lib/decorators/OperationMetadata.js +6 -0
  66. package/lib/decorators/OperationMetadata.js.map +1 -1
  67. package/lib/executable/internal/CommandParser.d.ts +19 -0
  68. package/lib/executable/internal/CommandParser.js +19 -0
  69. package/lib/executable/internal/CommandParser.js.map +1 -1
  70. package/lib/executable/internal/NestiaConfigLoader.d.ts +56 -0
  71. package/lib/executable/internal/NestiaConfigLoader.js +48 -42
  72. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  73. package/lib/executable/internal/NestiaSdkCommand.d.ts +60 -0
  74. package/lib/executable/internal/NestiaSdkCommand.js +95 -3
  75. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  76. package/lib/executable/internal/NestiaSdkWatcher.d.ts +81 -0
  77. package/lib/executable/internal/NestiaSdkWatcher.js +122 -38
  78. package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -1
  79. package/lib/executable/internal/NestiaSwaggerWatch.d.ts +80 -0
  80. package/lib/executable/internal/NestiaSwaggerWatch.js +308 -0
  81. package/lib/executable/internal/NestiaSwaggerWatch.js.map +1 -0
  82. package/lib/factories/ExpressionFactory.d.ts +17 -2
  83. package/lib/factories/ExpressionFactory.js +17 -2
  84. package/lib/factories/ExpressionFactory.js.map +1 -1
  85. package/lib/factories/IdentifierFactory.d.ts +24 -0
  86. package/lib/factories/IdentifierFactory.js +24 -0
  87. package/lib/factories/IdentifierFactory.js.map +1 -1
  88. package/lib/factories/LiteralFactory.d.ts +22 -4
  89. package/lib/factories/LiteralFactory.js +30 -10
  90. package/lib/factories/LiteralFactory.js.map +1 -1
  91. package/lib/factories/StatementFactory.d.ts +28 -1
  92. package/lib/factories/StatementFactory.js +28 -1
  93. package/lib/factories/StatementFactory.js.map +1 -1
  94. package/lib/factories/TypeFactory.d.ts +24 -0
  95. package/lib/factories/TypeFactory.js +15 -0
  96. package/lib/factories/TypeFactory.js.map +1 -1
  97. package/lib/generates/CloneGenerator.d.ts +22 -0
  98. package/lib/generates/CloneGenerator.js +26 -5
  99. package/lib/generates/CloneGenerator.js.map +1 -1
  100. package/lib/generates/E2eGenerator.d.ts +19 -0
  101. package/lib/generates/E2eGenerator.js +19 -0
  102. package/lib/generates/E2eGenerator.js.map +1 -1
  103. package/lib/generates/SdkGenerator.d.ts +38 -0
  104. package/lib/generates/SdkGenerator.js +40 -2
  105. package/lib/generates/SdkGenerator.js.map +1 -1
  106. package/lib/generates/SwaggerGenerator.d.ts +36 -6
  107. package/lib/generates/SwaggerGenerator.js +55 -13
  108. package/lib/generates/SwaggerGenerator.js.map +1 -1
  109. package/lib/generates/internal/E2eFileProgrammer.d.ts +19 -0
  110. package/lib/generates/internal/E2eFileProgrammer.js +20 -1
  111. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  112. package/lib/generates/internal/FilePrinter.d.ts +43 -0
  113. package/lib/generates/internal/FilePrinter.js +43 -0
  114. package/lib/generates/internal/FilePrinter.js.map +1 -1
  115. package/lib/generates/internal/ImportDictionary.d.ts +92 -2
  116. package/lib/generates/internal/ImportDictionary.js +91 -3
  117. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  118. package/lib/generates/internal/SdkAliasCollection.d.ts +119 -0
  119. package/lib/generates/internal/SdkAliasCollection.js +124 -7
  120. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  121. package/lib/generates/internal/SdkDistributionComposer.d.ts +19 -0
  122. package/lib/generates/internal/SdkDistributionComposer.js +98 -59
  123. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  124. package/lib/generates/internal/SdkFileProgrammer.d.ts +18 -0
  125. package/lib/generates/internal/SdkFileProgrammer.js +18 -0
  126. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  127. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +29 -0
  128. package/lib/generates/internal/SdkHttpCloneProgrammer.js +33 -0
  129. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  130. package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +19 -0
  131. package/lib/generates/internal/SdkHttpCloneReferencer.js +78 -25
  132. package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
  133. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +19 -0
  134. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +19 -0
  135. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  136. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +19 -0
  137. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +19 -0
  138. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  139. package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +104 -2
  140. package/lib/generates/internal/SdkHttpParameterProgrammer.js +70 -0
  141. package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
  142. package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +20 -0
  143. package/lib/generates/internal/SdkHttpRouteProgrammer.js +20 -0
  144. package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
  145. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +38 -0
  146. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +49 -5
  147. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  148. package/lib/generates/internal/SdkImportWizard.d.ts +63 -0
  149. package/lib/generates/internal/SdkImportWizard.js +63 -0
  150. package/lib/generates/internal/SdkImportWizard.js.map +1 -1
  151. package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +17 -2
  152. package/lib/generates/internal/SdkMcpRouteProgrammer.js +33 -13
  153. package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
  154. package/lib/generates/internal/SdkPathTemplate.d.ts +15 -0
  155. package/lib/generates/internal/SdkPathTemplate.js +15 -0
  156. package/lib/generates/internal/SdkPathTemplate.js.map +1 -1
  157. package/lib/generates/internal/SdkRouteDirectory.d.ts +10 -0
  158. package/lib/generates/internal/SdkRouteDirectory.js +10 -0
  159. package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
  160. package/lib/generates/internal/SdkTypeProgrammer.d.ts +54 -1
  161. package/lib/generates/internal/SdkTypeProgrammer.js +96 -12
  162. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  163. package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +36 -3
  164. package/lib/generates/internal/SdkTypeTagProgrammer.js +28 -7
  165. package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
  166. package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +40 -0
  167. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +149 -142
  168. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -1
  169. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +19 -0
  170. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +19 -0
  171. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  172. package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +81 -2
  173. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +48 -0
  174. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
  175. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +18 -0
  176. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +18 -0
  177. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  178. package/lib/generates/internal/SwaggerDescriptionComposer.d.ts +42 -0
  179. package/lib/generates/internal/SwaggerDescriptionComposer.js +44 -1
  180. package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -1
  181. package/lib/generates/internal/SwaggerOperationComposer.d.ts +18 -0
  182. package/lib/generates/internal/SwaggerOperationComposer.js +18 -0
  183. package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
  184. package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +39 -0
  185. package/lib/generates/internal/SwaggerOperationParameterComposer.js +31 -8
  186. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
  187. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +19 -0
  188. package/lib/generates/internal/SwaggerOperationResponseComposer.js +19 -0
  189. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
  190. package/lib/internal/legacy.d.ts +296 -16
  191. package/lib/internal/legacy.js +127 -10
  192. package/lib/internal/legacy.js.map +1 -1
  193. package/lib/structures/INestiaProject.d.ts +10 -0
  194. package/lib/structures/INestiaSdkInput.d.ts +31 -1
  195. package/lib/structures/IOperationMetadata.d.ts +55 -0
  196. package/lib/structures/IReflectController.d.ts +11 -1
  197. package/lib/structures/IReflectHttpOperation.d.ts +11 -1
  198. package/lib/structures/IReflectHttpOperationException.d.ts +10 -0
  199. package/lib/structures/IReflectHttpOperationParameter.d.ts +47 -0
  200. package/lib/structures/IReflectHttpOperationSuccess.d.ts +11 -0
  201. package/lib/structures/IReflectImport.d.ts +10 -0
  202. package/lib/structures/IReflectMcpOperation.d.ts +19 -0
  203. package/lib/structures/IReflectMcpOperationParameter.d.ts +9 -0
  204. package/lib/structures/IReflectOperationError.d.ts +28 -0
  205. package/lib/structures/IReflectOperationError.js +22 -2
  206. package/lib/structures/IReflectOperationError.js.map +1 -1
  207. package/lib/structures/IReflectType.d.ts +9 -0
  208. package/lib/structures/IReflectWebSocketOperation.d.ts +10 -0
  209. package/lib/structures/IReflectWebSocketOperationParameter.d.ts +55 -0
  210. package/lib/structures/ITypedApplication.d.ts +10 -0
  211. package/lib/structures/ITypedHttpRoute.d.ts +10 -0
  212. package/lib/structures/ITypedHttpRouteException.d.ts +10 -0
  213. package/lib/structures/ITypedHttpRouteParameter.d.ts +45 -0
  214. package/lib/structures/ITypedHttpRouteSuccess.d.ts +10 -0
  215. package/lib/structures/ITypedMcpRoute.d.ts +11 -0
  216. package/lib/structures/ITypedWebSocketRoute.d.ts +10 -0
  217. package/lib/transform.d.ts +6 -0
  218. package/lib/transform.js +6 -0
  219. package/lib/transform.js.map +1 -1
  220. package/lib/utils/ArrayUtil.d.ts +31 -1
  221. package/lib/utils/ArrayUtil.js +32 -11
  222. package/lib/utils/ArrayUtil.js.map +1 -1
  223. package/lib/utils/EmittedJavaScriptPatcher.d.ts +20 -0
  224. package/lib/utils/EmittedJavaScriptPatcher.js +65 -46
  225. package/lib/utils/EmittedJavaScriptPatcher.js.map +1 -1
  226. package/lib/utils/FileRetriever.d.ts +29 -0
  227. package/lib/utils/FileRetriever.js +29 -0
  228. package/lib/utils/FileRetriever.js.map +1 -1
  229. package/lib/utils/HttpResponseContentTypeUtil.d.ts +41 -0
  230. package/lib/utils/HttpResponseContentTypeUtil.js +31 -0
  231. package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -1
  232. package/lib/utils/MapUtil.d.ts +64 -1
  233. package/lib/utils/MapUtil.js +24 -3
  234. package/lib/utils/MapUtil.js.map +1 -1
  235. package/lib/utils/PathUtil.d.ts +31 -0
  236. package/lib/utils/PathUtil.js +38 -0
  237. package/lib/utils/PathUtil.js.map +1 -1
  238. package/lib/utils/SdkBundlePath.d.ts +2 -0
  239. package/lib/utils/SdkBundlePath.js +10 -0
  240. package/lib/utils/SdkBundlePath.js.map +1 -0
  241. package/lib/utils/SdkInputFilter.d.ts +31 -0
  242. package/lib/utils/SdkInputFilter.js +115 -0
  243. package/lib/utils/SdkInputFilter.js.map +1 -0
  244. package/lib/utils/SourceFinder.d.ts +35 -0
  245. package/lib/utils/SourceFinder.js +47 -12
  246. package/lib/utils/SourceFinder.js.map +1 -1
  247. package/lib/utils/StringUtil.d.ts +77 -2
  248. package/lib/utils/StringUtil.js +166 -4
  249. package/lib/utils/StringUtil.js.map +1 -1
  250. package/lib/utils/TemporaryDirectory.d.ts +60 -0
  251. package/lib/utils/TemporaryDirectory.js +112 -0
  252. package/lib/utils/TemporaryDirectory.js.map +1 -0
  253. package/lib/utils/TsConfigReader.d.ts +42 -0
  254. package/lib/utils/TsConfigReader.js +98 -14
  255. package/lib/utils/TsConfigReader.js.map +1 -1
  256. package/lib/utils/TtscExecutor.d.ts +23 -1
  257. package/lib/utils/TtscExecutor.js +22 -0
  258. package/lib/utils/TtscExecutor.js.map +1 -1
  259. package/lib/utils/VersioningStrategy.d.ts +27 -2
  260. package/lib/utils/VersioningStrategy.js +30 -9
  261. package/lib/utils/VersioningStrategy.js.map +1 -1
  262. package/lib/validators/TextPlainValidator.d.ts +19 -0
  263. package/lib/validators/TextPlainValidator.js +19 -0
  264. package/lib/validators/TextPlainValidator.js.map +1 -1
  265. package/native/go.mod +1 -1
  266. package/native/go.sum +2 -2
  267. package/native/sdk/register.go +12 -2
  268. package/native/sdk/sdk_metadata_json.go +6 -1
  269. package/native/sdk/sdk_transform.go +393 -403
  270. package/package.json +9 -7
  271. package/src/INestiaConfig.ts +55 -24
  272. package/src/NestiaSdkApplication.ts +66 -7
  273. package/src/NestiaSwaggerComposer.ts +21 -6
  274. package/src/analyses/AccessorAnalyzer.ts +26 -0
  275. package/src/analyses/ConfigAnalyzer.ts +59 -96
  276. package/src/analyses/ImportAnalyzer.ts +25 -0
  277. package/src/analyses/ParameterNameAnalyzer.ts +24 -0
  278. package/src/analyses/PathAnalyzer.ts +63 -11
  279. package/src/analyses/ReflectControllerAnalyzer.ts +32 -0
  280. package/src/analyses/ReflectHttpOperationAnalyzer.ts +32 -10
  281. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +31 -0
  282. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +31 -0
  283. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +32 -0
  284. package/src/analyses/ReflectMcpOperationAnalyzer.ts +32 -1
  285. package/src/analyses/ReflectMetadataAnalyzer.ts +48 -1
  286. package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +34 -14
  287. package/src/analyses/SecurityAnalyzer.ts +15 -0
  288. package/src/analyses/SwaggerExampleAnalyzer.ts +16 -0
  289. package/src/analyses/TypedHttpRouteAnalyzer.ts +240 -184
  290. package/src/analyses/TypedMcpRouteAnalyzer.ts +180 -20
  291. package/src/analyses/TypedWebSocketRouteAnalyzer.ts +19 -0
  292. package/src/decorators/OperationMetadata.ts +6 -0
  293. package/src/executable/internal/CommandParser.ts +19 -0
  294. package/src/executable/internal/NestiaConfigLoader.ts +66 -50
  295. package/src/executable/internal/NestiaSdkCommand.ts +96 -3
  296. package/src/executable/internal/NestiaSdkWatcher.ts +169 -41
  297. package/src/executable/internal/NestiaSwaggerWatch.ts +359 -0
  298. package/src/factories/ExpressionFactory.ts +17 -2
  299. package/src/factories/IdentifierFactory.ts +24 -0
  300. package/src/factories/LiteralFactory.ts +44 -11
  301. package/src/factories/StatementFactory.ts +28 -1
  302. package/src/factories/TypeFactory.ts +24 -0
  303. package/src/generates/CloneGenerator.ts +26 -5
  304. package/src/generates/E2eGenerator.ts +19 -0
  305. package/src/generates/SdkGenerator.ts +40 -9
  306. package/src/generates/SwaggerGenerator.ts +56 -14
  307. package/src/generates/internal/E2eFileProgrammer.ts +20 -0
  308. package/src/generates/internal/FilePrinter.ts +43 -0
  309. package/src/generates/internal/ImportDictionary.ts +110 -3
  310. package/src/generates/internal/SdkAliasCollection.ts +133 -11
  311. package/src/generates/internal/SdkDistributionComposer.ts +117 -66
  312. package/src/generates/internal/SdkFileProgrammer.ts +18 -0
  313. package/src/generates/internal/SdkHttpCloneProgrammer.ts +55 -0
  314. package/src/generates/internal/SdkHttpCloneReferencer.ts +97 -23
  315. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +19 -0
  316. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +19 -0
  317. package/src/generates/internal/SdkHttpParameterProgrammer.ts +104 -2
  318. package/src/generates/internal/SdkHttpRouteProgrammer.ts +20 -0
  319. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +72 -5
  320. package/src/generates/internal/SdkImportWizard.ts +63 -0
  321. package/src/generates/internal/SdkMcpRouteProgrammer.ts +38 -18
  322. package/src/generates/internal/SdkPathTemplate.ts +15 -0
  323. package/src/generates/internal/SdkRouteDirectory.ts +10 -0
  324. package/src/generates/internal/SdkTypeProgrammer.ts +118 -14
  325. package/src/generates/internal/SdkTypeTagProgrammer.ts +37 -7
  326. package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +185 -142
  327. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +19 -0
  328. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +81 -2
  329. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +18 -0
  330. package/src/generates/internal/SwaggerDescriptionComposer.ts +47 -1
  331. package/src/generates/internal/SwaggerOperationComposer.ts +18 -0
  332. package/src/generates/internal/SwaggerOperationParameterComposer.ts +41 -8
  333. package/src/generates/internal/SwaggerOperationResponseComposer.ts +19 -0
  334. package/src/internal/legacy-augmentation.d.ts +16 -0
  335. package/src/internal/legacy.ts +296 -26
  336. package/src/structures/INestiaProject.ts +10 -0
  337. package/src/structures/INestiaSdkInput.ts +31 -1
  338. package/src/structures/IOperationMetadata.ts +55 -0
  339. package/src/structures/IReflectController.ts +11 -1
  340. package/src/structures/IReflectHttpOperation.ts +11 -1
  341. package/src/structures/IReflectHttpOperationException.ts +10 -0
  342. package/src/structures/IReflectHttpOperationParameter.ts +47 -0
  343. package/src/structures/IReflectHttpOperationSuccess.ts +11 -0
  344. package/src/structures/IReflectImport.ts +10 -0
  345. package/src/structures/IReflectMcpOperation.ts +19 -0
  346. package/src/structures/IReflectMcpOperationParameter.ts +9 -0
  347. package/src/structures/IReflectOperationError.ts +31 -2
  348. package/src/structures/IReflectType.ts +9 -0
  349. package/src/structures/IReflectWebSocketOperation.ts +10 -0
  350. package/src/structures/IReflectWebSocketOperationParameter.ts +55 -0
  351. package/src/structures/ITypedApplication.ts +10 -0
  352. package/src/structures/ITypedHttpRoute.ts +10 -0
  353. package/src/structures/ITypedHttpRouteException.ts +10 -0
  354. package/src/structures/ITypedHttpRouteParameter.ts +45 -0
  355. package/src/structures/ITypedHttpRouteSuccess.ts +10 -0
  356. package/src/structures/ITypedMcpRoute.ts +12 -0
  357. package/src/structures/ITypedWebSocketRoute.ts +10 -0
  358. package/src/transform.ts +6 -0
  359. package/src/utils/ArrayUtil.ts +32 -13
  360. package/src/utils/EmittedJavaScriptPatcher.ts +70 -47
  361. package/src/utils/FileRetriever.ts +29 -0
  362. package/src/utils/HttpResponseContentTypeUtil.ts +41 -0
  363. package/src/utils/MapUtil.ts +68 -3
  364. package/src/utils/PathUtil.ts +38 -0
  365. package/src/utils/SdkBundlePath.ts +11 -0
  366. package/src/utils/SdkInputFilter.ts +108 -0
  367. package/src/utils/SourceFinder.ts +51 -14
  368. package/src/utils/StringUtil.ts +182 -5
  369. package/src/utils/TemporaryDirectory.ts +108 -0
  370. package/src/utils/TsConfigReader.ts +124 -26
  371. package/src/utils/TtscExecutor.ts +23 -1
  372. package/src/utils/VersioningStrategy.ts +37 -14
  373. package/src/validators/TextPlainValidator.ts +19 -0
  374. package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +0 -9
  375. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +0 -178
  376. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +0 -1
  377. package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +0 -264
@@ -4,43 +4,43 @@ 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
41
  const metaErrors = next.validate === undefined
36
42
  ? []
37
43
  : legacy_1.MetadataFactory.validate({
38
- options: {
39
- escape,
40
- constant: true,
41
- absorb: true,
42
- validate: next.validate,
43
- },
44
44
  functor: next.validate,
45
45
  metadata,
46
46
  });
@@ -71,13 +71,11 @@ var TypedHttpRouteAnalyzer;
71
71
  example: value.example,
72
72
  examples: value.examples,
73
73
  type: value.type,
74
- metadata: cast(value, `exception (status: ${key})`, true),
74
+ metadata: cast(value, `exception (status: ${key})`),
75
75
  },
76
76
  ]));
77
- const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})`, p.category === "body" &&
78
- (p.contentType === "application/json" || p.encrypted === true)) })));
79
- const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success", props.operation.success.encrypted ||
80
- 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
81
79
  .filter((t) => { var _a; return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length) &&
82
80
  t.text[0].text &&
83
81
  (t.name === "setHeader" || t.name === "assignHeaders"); })
@@ -112,6 +110,19 @@ var TypedHttpRouteAnalyzer;
112
110
  .filter((p) => p.category === "headers")
113
111
  .filter((p) => p.field === null)[0]) !== null && _c !== void 0 ? _c : null, success, extensions: props.operation.extensions })); });
114
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
+ */
115
126
  TypedHttpRouteAnalyzer.routeDictionary = (routes) => {
116
127
  renameDuplicateComponents(routes);
117
128
  const dictionary = {
@@ -120,20 +131,9 @@ var TypedHttpRouteAnalyzer;
120
131
  arrays: new Map(),
121
132
  tuples: new Map(),
122
133
  };
123
- for (const route of routes) {
124
- for (const p of [
125
- ...route.pathParameters,
126
- ...route.queryParameters,
127
- ...route.headerParameters,
128
- ...(route.queryObject ? [route.queryObject] : []),
129
- ...(route.body ? [route.body] : []),
130
- ...(route.headerObject ? [route.headerObject] : []),
131
- ])
132
- enrollMetadata(dictionary, p.metadata);
133
- for (const e of Object.values(route.exceptions))
134
- enrollMetadata(dictionary, e.metadata);
135
- enrollMetadata(dictionary, route.success.metadata);
136
- }
134
+ for (const route of routes)
135
+ for (const metadata of routeMetadatas(route))
136
+ enrollMetadata(dictionary, metadata);
137
137
  return dictionary;
138
138
  };
139
139
  })(TypedHttpRouteAnalyzer || (exports.TypedHttpRouteAnalyzer = TypedHttpRouteAnalyzer = {}));
@@ -143,10 +143,29 @@ const renameDuplicateComponents = (routes) => {
143
143
  for (const route of routes)
144
144
  for (const metadata of routeMetadatas(route))
145
145
  collectComponentEntries(entries, route, metadata);
146
- 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(".")));
147
156
  const groups = new Map();
148
157
  for (const entry of entries) {
149
- 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}`;
150
169
  const group = groups.get(key);
151
170
  if (group === undefined)
152
171
  groups.set(key, [entry]);
@@ -164,54 +183,58 @@ const renameDuplicateComponents = (routes) => {
164
183
  const prefix = normalizeComponentNamespace(entry.route.controller.class.name);
165
184
  const name = escapeComponentName(used, `${prefix}.${oldName}`);
166
185
  renamed.set(entry.signature, name);
167
- used.add(name);
186
+ used.add(StringUtil_1.StringUtil.accessorsOf(name).join("."));
168
187
  return name;
169
188
  })();
170
189
  entry.type.name = next;
171
190
  }
172
191
  }
173
- for (const route of routes)
174
- for (const metadata of routeMetadatas(route))
175
- clearMetadataNameCache(metadata);
176
192
  };
177
- const routeMetadatas = (route) => [
178
- ...[
179
- ...route.pathParameters,
180
- ...route.queryParameters,
181
- ...route.headerParameters,
182
- ...(route.queryObject ? [route.queryObject] : []),
183
- ...(route.body ? [route.body] : []),
184
- ...(route.headerObject ? [route.headerObject] : []),
185
- ].map((p) => p.metadata),
186
- ...Object.values(route.exceptions).map((e) => e.metadata),
187
- route.success.metadata,
188
- ];
189
- 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;
190
209
  if (visited.schemas.has(metadata))
191
210
  return;
192
211
  visited.schemas.add(metadata);
193
212
  if (metadata.rest !== null)
194
- collectComponentEntries(entries, route, metadata.rest, visited);
213
+ collectComponentEntries(entries, route, metadata.rest, visited, includeOriginal);
195
214
  if (metadata.escaped !== null) {
196
- collectComponentEntries(entries, route, metadata.escaped.original, visited);
197
- 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);
198
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);
199
222
  for (const func of metadata.functions) {
200
223
  for (const p of func.parameters)
201
- collectComponentEntries(entries, route, p.type, visited);
202
- collectComponentEntries(entries, route, func.output, visited);
224
+ collectComponentEntries(entries, route, p.type, visited, includeOriginal);
225
+ collectComponentEntries(entries, route, func.output, visited, includeOriginal);
203
226
  }
204
227
  for (const set of metadata.sets)
205
- collectComponentEntries(entries, route, set.value, visited);
228
+ collectComponentEntries(entries, route, set.value, visited, includeOriginal);
206
229
  for (const map of metadata.maps) {
207
- collectComponentEntries(entries, route, map.key, visited);
208
- collectComponentEntries(entries, route, map.value, visited);
230
+ collectComponentEntries(entries, route, map.key, visited, includeOriginal);
231
+ collectComponentEntries(entries, route, map.value, visited, includeOriginal);
209
232
  }
210
233
  for (const array of metadata.arrays)
211
234
  if (visited.arrays.has(array.type) === false) {
212
235
  visited.arrays.add(array.type);
213
236
  entries.push(componentEntry(route, "arrays", array.type));
214
- collectComponentEntries(entries, route, array.type.value, visited);
237
+ collectComponentEntries(entries, route, array.type.value, visited, includeOriginal);
215
238
  }
216
239
  for (const tuple of metadata.tuples)
217
240
  if (visited.tuples.has(tuple.type) === false) {
@@ -219,13 +242,13 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
219
242
  entries.push(componentEntry(route, "tuples", tuple.type));
220
243
  for (const elem of tuple.type
221
244
  .elements)
222
- collectComponentEntries(entries, route, elem, visited);
245
+ collectComponentEntries(entries, route, elem, visited, includeOriginal);
223
246
  }
224
247
  for (const alias of metadata.aliases)
225
248
  if (visited.aliases.has(alias.type) === false) {
226
249
  visited.aliases.add(alias.type);
227
250
  entries.push(componentEntry(route, "aliases", alias.type));
228
- collectComponentEntries(entries, route, alias.type.value, visited);
251
+ collectComponentEntries(entries, route, alias.type.value, visited, includeOriginal);
229
252
  }
230
253
  for (const obj of metadata.objects)
231
254
  if (visited.objects.has(obj.type) === false) {
@@ -233,76 +256,84 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
233
256
  entries.push(componentEntry(route, "objects", obj.type));
234
257
  for (const p of obj.type
235
258
  .properties) {
236
- collectComponentEntries(entries, route, p.key, visited);
237
- collectComponentEntries(entries, route, p.value, visited);
259
+ collectComponentEntries(entries, route, p.key, visited, includeOriginal);
260
+ collectComponentEntries(entries, route, p.value, visited, includeOriginal);
238
261
  }
239
262
  }
240
263
  };
241
264
  const componentEntry = (route, kind, type) => ({
242
265
  kind,
243
266
  route,
244
- signature: componentSignature(type),
267
+ signature: "",
245
268
  type,
246
269
  });
247
- const componentSignature = (type) => JSON.stringify(type, (key, value) =>
248
- // `type` is the resolved back-reference attached by
249
- // `MetadataSchema.from`; it closes a cycle on recursive schemas.
250
- // `index` carries the per-route ordinal and is not part of the
251
- // component's identity.
252
- 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
+ };
253
330
  const normalizeComponentNamespace = (name) => {
254
331
  const next = name.replace(/[^A-Za-z0-9_$]/g, "_");
255
332
  return next.length ? next : "Route";
256
333
  };
257
- const escapeComponentName = (used, name) => used.has(name) ? escapeComponentName(used, `_${name}`) : name;
258
- const clearMetadataNameCache = (metadata, visited = new WeakSet()) => {
259
- if (visited.has(metadata))
260
- return;
261
- visited.add(metadata);
262
- metadata.name_ = undefined;
263
- if (metadata.rest !== null)
264
- clearMetadataNameCache(metadata.rest, visited);
265
- if (metadata.escaped !== null) {
266
- clearMetadataNameCache(metadata.escaped.original, visited);
267
- clearMetadataNameCache(metadata.escaped.returns, visited);
268
- }
269
- for (const func of metadata.functions) {
270
- for (const p of func.parameters)
271
- clearMetadataNameCache(p.type, visited);
272
- clearMetadataNameCache(func.output, visited);
273
- }
274
- for (const set of metadata.sets) {
275
- set.name_ = undefined;
276
- clearMetadataNameCache(set.value, visited);
277
- }
278
- for (const map of metadata.maps) {
279
- map.name_ = undefined;
280
- clearMetadataNameCache(map.key, visited);
281
- clearMetadataNameCache(map.value, visited);
282
- }
283
- for (const array of metadata.arrays) {
284
- array.name_ = undefined;
285
- clearMetadataNameCache(array.type.value, visited);
286
- }
287
- for (const tuple of metadata.tuples) {
288
- tuple.name_ = undefined;
289
- for (const elem of tuple.type
290
- .elements)
291
- clearMetadataNameCache(elem, visited);
292
- }
293
- for (const alias of metadata.aliases) {
294
- alias.name_ = undefined;
295
- clearMetadataNameCache(alias.type.value, visited);
296
- }
297
- for (const obj of metadata.objects) {
298
- obj.name_ = undefined;
299
- for (const p of obj.type
300
- .properties) {
301
- clearMetadataNameCache(p.key, visited);
302
- clearMetadataNameCache(p.value, visited);
303
- }
304
- }
305
- };
334
+ const escapeComponentName = (used, name) => used.has(StringUtil_1.StringUtil.accessorsOf(name).join("."))
335
+ ? escapeComponentName(used, `_${name}`)
336
+ : name;
306
337
  const createCollectVisited = () => ({
307
338
  aliases: new WeakSet(),
308
339
  arrays: new WeakSet(),
@@ -310,32 +341,19 @@ const createCollectVisited = () => ({
310
341
  schemas: new WeakSet(),
311
342
  tuples: new WeakSet(),
312
343
  });
313
- const uniqueComponents = (input) => {
314
- const dict = {};
315
- for (const elem of input) {
316
- const oldbie = dict[elem.name];
317
- if (oldbie === undefined)
318
- dict[elem.name] = elem;
319
- else if (elem.name.includes(".") ||
320
- componentScore(oldbie) < componentScore(elem))
321
- dict[elem.name] = elem;
322
- }
323
- return Object.values(dict);
324
- };
325
- const componentScore = (input) => JSON.stringify(input, (key, value) =>
326
- // Resolved-reference back-edges close cycles on recursive schemas;
327
- // skip them when scoring component "richness".
328
- key === "type" ? undefined : value).length;
329
344
  const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata()) => {
345
+ var _a;
330
346
  if (visited.schemas.has(metadata))
331
347
  return;
332
348
  visited.schemas.add(metadata);
333
349
  if (metadata.rest !== null)
334
350
  enrollMetadata(dictionary, metadata.rest, visited);
335
351
  if (metadata.escaped !== null) {
336
- enrollMetadata(dictionary, metadata.escaped.original, visited);
337
352
  enrollMetadata(dictionary, metadata.escaped.returns, visited);
338
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);
339
357
  for (const func of metadata.functions) {
340
358
  for (const p of func.parameters)
341
359
  enrollMetadata(dictionary, p.type, visited);
@@ -367,6 +385,8 @@ const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata())
367
385
  }
368
386
  };
369
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.
370
390
  const oldbie = dict.get(elem.name);
371
391
  if (oldbie === elem)
372
392
  return false;
@@ -374,11 +394,6 @@ const enroll = (dict, elem) => {
374
394
  dict.set(elem.name, elem);
375
395
  return true;
376
396
  }
377
- else if (elem.name.includes(".") ||
378
- componentScore(oldbie) < componentScore(elem)) {
379
- dict.set(elem.name, elem);
380
- return true;
381
- }
382
397
  return false;
383
398
  };
384
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
  }