@typia/utils 12.1.0-dev.20260325 → 13.0.0-dev.20260425

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 (619) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +85 -85
  3. package/lib/_virtual/ArrayUtil.mjs +4 -0
  4. package/lib/_virtual/ArrayUtil.mjs.map +1 -0
  5. package/lib/_virtual/EndpointUtil.mjs +4 -0
  6. package/lib/_virtual/EndpointUtil.mjs.map +1 -0
  7. package/lib/_virtual/HttpError.mjs +4 -0
  8. package/lib/_virtual/HttpError.mjs.map +1 -0
  9. package/lib/_virtual/HttpLlm.mjs +4 -0
  10. package/lib/_virtual/HttpLlm.mjs.map +1 -0
  11. package/lib/_virtual/HttpLlmApplicationComposer.mjs +4 -0
  12. package/lib/_virtual/HttpLlmApplicationComposer.mjs.map +1 -0
  13. package/lib/_virtual/HttpLlmFunctionFetcher.mjs +4 -0
  14. package/lib/_virtual/HttpLlmFunctionFetcher.mjs.map +1 -0
  15. package/lib/_virtual/HttpMigrateApplicationComposer.mjs +4 -0
  16. package/lib/_virtual/HttpMigrateApplicationComposer.mjs.map +1 -0
  17. package/lib/_virtual/HttpMigrateRouteAccessor.mjs +4 -0
  18. package/lib/_virtual/HttpMigrateRouteAccessor.mjs.map +1 -0
  19. package/lib/_virtual/HttpMigrateRouteComposer.mjs +4 -0
  20. package/lib/_virtual/HttpMigrateRouteComposer.mjs.map +1 -0
  21. package/lib/_virtual/HttpMigrateRouteFetcher.mjs +4 -0
  22. package/lib/_virtual/HttpMigrateRouteFetcher.mjs.map +1 -0
  23. package/lib/_virtual/HttpMigration.mjs +4 -0
  24. package/lib/_virtual/HttpMigration.mjs.map +1 -0
  25. package/lib/_virtual/IOpenApiValidatorContext.mjs +4 -0
  26. package/lib/_virtual/IOpenApiValidatorContext.mjs.map +1 -0
  27. package/lib/_virtual/JsonDescriptor.mjs +4 -0
  28. package/lib/_virtual/JsonDescriptor.mjs.map +1 -0
  29. package/lib/_virtual/LlmDescriptionInverter.mjs +4 -0
  30. package/lib/_virtual/LlmDescriptionInverter.mjs.map +1 -0
  31. package/lib/_virtual/LlmJson.mjs +4 -0
  32. package/lib/_virtual/LlmJson.mjs.map +1 -0
  33. package/lib/_virtual/LlmParametersComposer.mjs +4 -0
  34. package/lib/_virtual/LlmParametersComposer.mjs.map +1 -0
  35. package/lib/_virtual/LlmSchemaConverter.mjs +4 -0
  36. package/lib/_virtual/LlmSchemaConverter.mjs.map +1 -0
  37. package/lib/_virtual/LlmTypeChecker.mjs +4 -0
  38. package/lib/_virtual/LlmTypeChecker.mjs.map +1 -0
  39. package/lib/_virtual/MapUtil.mjs +4 -0
  40. package/lib/_virtual/MapUtil.mjs.map +1 -0
  41. package/lib/_virtual/NamingConvention.mjs +4 -0
  42. package/lib/_virtual/NamingConvention.mjs.map +1 -0
  43. package/lib/_virtual/OpenApiArrayValidator.mjs +4 -0
  44. package/lib/_virtual/OpenApiArrayValidator.mjs.map +1 -0
  45. package/lib/_virtual/OpenApiBooleanValidator.mjs +4 -0
  46. package/lib/_virtual/OpenApiBooleanValidator.mjs.map +1 -0
  47. package/lib/_virtual/OpenApiConstantValidator.mjs +4 -0
  48. package/lib/_virtual/OpenApiConstantValidator.mjs.map +1 -0
  49. package/lib/_virtual/OpenApiConstraintShifter.mjs +4 -0
  50. package/lib/_virtual/OpenApiConstraintShifter.mjs.map +1 -0
  51. package/lib/_virtual/OpenApiConverter.mjs +4 -0
  52. package/lib/_virtual/OpenApiConverter.mjs.map +1 -0
  53. package/lib/_virtual/OpenApiExclusiveEmender.mjs +4 -0
  54. package/lib/_virtual/OpenApiExclusiveEmender.mjs.map +1 -0
  55. package/lib/_virtual/OpenApiIntegerValidator.mjs +4 -0
  56. package/lib/_virtual/OpenApiIntegerValidator.mjs.map +1 -0
  57. package/lib/_virtual/OpenApiNumberValidator.mjs +4 -0
  58. package/lib/_virtual/OpenApiNumberValidator.mjs.map +1 -0
  59. package/lib/_virtual/OpenApiObjectValidator.mjs +4 -0
  60. package/lib/_virtual/OpenApiObjectValidator.mjs.map +1 -0
  61. package/lib/_virtual/OpenApiOneOfValidator.mjs +4 -0
  62. package/lib/_virtual/OpenApiOneOfValidator.mjs.map +1 -0
  63. package/lib/_virtual/OpenApiSchemaNamingRule.mjs +4 -0
  64. package/lib/_virtual/OpenApiSchemaNamingRule.mjs.map +1 -0
  65. package/lib/_virtual/OpenApiStationValidator.mjs +4 -0
  66. package/lib/_virtual/OpenApiStationValidator.mjs.map +1 -0
  67. package/lib/_virtual/OpenApiStringValidator.mjs +4 -0
  68. package/lib/_virtual/OpenApiStringValidator.mjs.map +1 -0
  69. package/lib/_virtual/OpenApiTupleValidator.mjs +4 -0
  70. package/lib/_virtual/OpenApiTupleValidator.mjs.map +1 -0
  71. package/lib/_virtual/OpenApiTypeChecker.mjs +4 -0
  72. package/lib/_virtual/OpenApiTypeChecker.mjs.map +1 -0
  73. package/lib/_virtual/OpenApiTypeCheckerBase.mjs +4 -0
  74. package/lib/_virtual/OpenApiTypeCheckerBase.mjs.map +1 -0
  75. package/lib/_virtual/OpenApiV3Downgrader.mjs +4 -0
  76. package/lib/_virtual/OpenApiV3Downgrader.mjs.map +1 -0
  77. package/lib/_virtual/OpenApiV3TypeChecker.mjs +4 -0
  78. package/lib/_virtual/OpenApiV3TypeChecker.mjs.map +1 -0
  79. package/lib/_virtual/OpenApiV3Upgrader.mjs +4 -0
  80. package/lib/_virtual/OpenApiV3Upgrader.mjs.map +1 -0
  81. package/lib/_virtual/OpenApiV3_1Downgrader.mjs +4 -0
  82. package/lib/_virtual/OpenApiV3_1Downgrader.mjs.map +1 -0
  83. package/lib/_virtual/OpenApiV3_1TypeChecker.mjs +4 -0
  84. package/lib/_virtual/OpenApiV3_1TypeChecker.mjs.map +1 -0
  85. package/lib/_virtual/OpenApiV3_1Upgrader.mjs +4 -0
  86. package/lib/_virtual/OpenApiV3_1Upgrader.mjs.map +1 -0
  87. package/lib/_virtual/OpenApiV3_2Upgrader.mjs +4 -0
  88. package/lib/_virtual/OpenApiV3_2Upgrader.mjs.map +1 -0
  89. package/lib/_virtual/OpenApiValidator.mjs +4 -0
  90. package/lib/_virtual/OpenApiValidator.mjs.map +1 -0
  91. package/lib/_virtual/Singleton.mjs +4 -0
  92. package/lib/_virtual/Singleton.mjs.map +1 -0
  93. package/lib/_virtual/StringUtil.mjs +4 -0
  94. package/lib/_virtual/StringUtil.mjs.map +1 -0
  95. package/lib/_virtual/SwaggerV2Downgrader.mjs +4 -0
  96. package/lib/_virtual/SwaggerV2Downgrader.mjs.map +1 -0
  97. package/lib/_virtual/SwaggerV2TypeChecker.mjs +4 -0
  98. package/lib/_virtual/SwaggerV2TypeChecker.mjs.map +1 -0
  99. package/lib/_virtual/SwaggerV2Upgrader.mjs +4 -0
  100. package/lib/_virtual/SwaggerV2Upgrader.mjs.map +1 -0
  101. package/lib/_virtual/_commonjsHelpers.mjs +6 -0
  102. package/lib/_virtual/_commonjsHelpers.mjs.map +1 -0
  103. package/lib/_virtual/_isBigintString.mjs +4 -0
  104. package/lib/_virtual/_isBigintString.mjs.map +1 -0
  105. package/lib/_virtual/_isFormatByte.mjs +4 -0
  106. package/lib/_virtual/_isFormatByte.mjs.map +1 -0
  107. package/lib/_virtual/_isFormatDate.mjs +4 -0
  108. package/lib/_virtual/_isFormatDate.mjs.map +1 -0
  109. package/lib/_virtual/_isFormatDateTime.mjs +4 -0
  110. package/lib/_virtual/_isFormatDateTime.mjs.map +1 -0
  111. package/lib/_virtual/_isFormatDuration.mjs +4 -0
  112. package/lib/_virtual/_isFormatDuration.mjs.map +1 -0
  113. package/lib/_virtual/_isFormatEmail.mjs +4 -0
  114. package/lib/_virtual/_isFormatEmail.mjs.map +1 -0
  115. package/lib/_virtual/_isFormatHostname.mjs +4 -0
  116. package/lib/_virtual/_isFormatHostname.mjs.map +1 -0
  117. package/lib/_virtual/_isFormatIdnEmail.mjs +4 -0
  118. package/lib/_virtual/_isFormatIdnEmail.mjs.map +1 -0
  119. package/lib/_virtual/_isFormatIdnHostname.mjs +4 -0
  120. package/lib/_virtual/_isFormatIdnHostname.mjs.map +1 -0
  121. package/lib/_virtual/_isFormatIpv4.mjs +4 -0
  122. package/lib/_virtual/_isFormatIpv4.mjs.map +1 -0
  123. package/lib/_virtual/_isFormatIpv6.mjs +4 -0
  124. package/lib/_virtual/_isFormatIpv6.mjs.map +1 -0
  125. package/lib/_virtual/_isFormatIri.mjs +4 -0
  126. package/lib/_virtual/_isFormatIri.mjs.map +1 -0
  127. package/lib/_virtual/_isFormatIriReference.mjs +4 -0
  128. package/lib/_virtual/_isFormatIriReference.mjs.map +1 -0
  129. package/lib/_virtual/_isFormatJsonPointer.mjs +4 -0
  130. package/lib/_virtual/_isFormatJsonPointer.mjs.map +1 -0
  131. package/lib/_virtual/_isFormatPassword.mjs +4 -0
  132. package/lib/_virtual/_isFormatPassword.mjs.map +1 -0
  133. package/lib/_virtual/_isFormatRegex.mjs +4 -0
  134. package/lib/_virtual/_isFormatRegex.mjs.map +1 -0
  135. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs +4 -0
  136. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs.map +1 -0
  137. package/lib/_virtual/_isFormatTime.mjs +4 -0
  138. package/lib/_virtual/_isFormatTime.mjs.map +1 -0
  139. package/lib/_virtual/_isFormatUri.mjs +4 -0
  140. package/lib/_virtual/_isFormatUri.mjs.map +1 -0
  141. package/lib/_virtual/_isFormatUriReference.mjs +4 -0
  142. package/lib/_virtual/_isFormatUriReference.mjs.map +1 -0
  143. package/lib/_virtual/_isFormatUriTemplate.mjs +4 -0
  144. package/lib/_virtual/_isFormatUriTemplate.mjs.map +1 -0
  145. package/lib/_virtual/_isFormatUrl.mjs +4 -0
  146. package/lib/_virtual/_isFormatUrl.mjs.map +1 -0
  147. package/lib/_virtual/_isFormatUuid.mjs +4 -0
  148. package/lib/_virtual/_isFormatUuid.mjs.map +1 -0
  149. package/lib/_virtual/_isUniqueItems.mjs +4 -0
  150. package/lib/_virtual/_isUniqueItems.mjs.map +1 -0
  151. package/lib/_virtual/coerceLlmArguments.mjs +4 -0
  152. package/lib/_virtual/coerceLlmArguments.mjs.map +1 -0
  153. package/lib/_virtual/dedent.mjs +4 -0
  154. package/lib/_virtual/dedent.mjs.map +1 -0
  155. package/lib/_virtual/index.mjs +4 -0
  156. package/lib/_virtual/index.mjs.map +1 -0
  157. package/lib/_virtual/index2.mjs +4 -0
  158. package/lib/_virtual/index2.mjs.map +1 -0
  159. package/lib/_virtual/index3.mjs +4 -0
  160. package/lib/_virtual/index3.mjs.map +1 -0
  161. package/lib/_virtual/index4.mjs +4 -0
  162. package/lib/_virtual/index4.mjs.map +1 -0
  163. package/lib/_virtual/index5.mjs +4 -0
  164. package/lib/_virtual/index5.mjs.map +1 -0
  165. package/lib/_virtual/parseLenientJson.mjs +4 -0
  166. package/lib/_virtual/parseLenientJson.mjs.map +1 -0
  167. package/lib/_virtual/stringifyValidationFailure.mjs +4 -0
  168. package/lib/_virtual/stringifyValidationFailure.mjs.map +1 -0
  169. package/lib/converters/LlmSchemaConverter.js +149 -51
  170. package/lib/converters/LlmSchemaConverter.js.map +1 -1
  171. package/lib/converters/LlmSchemaConverter.mjs +5 -511
  172. package/lib/converters/LlmSchemaConverter.mjs.map +1 -1
  173. package/lib/converters/LlmSchemaConverter2.mjs +551 -0
  174. package/lib/converters/LlmSchemaConverter2.mjs.map +1 -0
  175. package/lib/converters/OpenApiConverter.js.map +1 -1
  176. package/lib/converters/OpenApiConverter.mjs +5 -146
  177. package/lib/converters/OpenApiConverter.mjs.map +1 -1
  178. package/lib/converters/OpenApiConverter2.mjs +167 -0
  179. package/lib/converters/OpenApiConverter2.mjs.map +1 -0
  180. package/lib/converters/index.mjs +7 -3
  181. package/lib/converters/index.mjs.map +1 -1
  182. package/lib/converters/index2.mjs +37 -0
  183. package/lib/converters/index2.mjs.map +1 -0
  184. package/lib/converters/internal/LlmDescriptionInverter.js.map +1 -1
  185. package/lib/converters/internal/LlmDescriptionInverter.mjs +5 -138
  186. package/lib/converters/internal/LlmDescriptionInverter.mjs.map +1 -1
  187. package/lib/converters/internal/LlmDescriptionInverter2.mjs +153 -0
  188. package/lib/converters/internal/LlmDescriptionInverter2.mjs.map +1 -0
  189. package/lib/converters/internal/LlmParametersComposer.js +14 -17
  190. package/lib/converters/internal/LlmParametersComposer.js.map +1 -1
  191. package/lib/converters/internal/LlmParametersComposer.mjs +5 -39
  192. package/lib/converters/internal/LlmParametersComposer.mjs.map +1 -1
  193. package/lib/converters/internal/LlmParametersComposer2.mjs +48 -0
  194. package/lib/converters/internal/LlmParametersComposer2.mjs.map +1 -0
  195. package/lib/converters/internal/OpenApiConstraintShifter.js.map +1 -1
  196. package/lib/converters/internal/OpenApiConstraintShifter.mjs +5 -99
  197. package/lib/converters/internal/OpenApiConstraintShifter.mjs.map +1 -1
  198. package/lib/converters/internal/OpenApiConstraintShifter2.mjs +115 -0
  199. package/lib/converters/internal/OpenApiConstraintShifter2.mjs.map +1 -0
  200. package/lib/converters/internal/OpenApiExclusiveEmender.js.map +1 -1
  201. package/lib/converters/internal/OpenApiExclusiveEmender.mjs +6 -33
  202. package/lib/converters/internal/OpenApiExclusiveEmender.mjs.map +1 -1
  203. package/lib/converters/internal/OpenApiExclusiveEmender2.mjs +43 -0
  204. package/lib/converters/internal/OpenApiExclusiveEmender2.mjs.map +1 -0
  205. package/lib/converters/internal/OpenApiV3Downgrader.js +2 -1
  206. package/lib/converters/internal/OpenApiV3Downgrader.js.map +1 -1
  207. package/lib/converters/internal/OpenApiV3Downgrader.mjs +5 -299
  208. package/lib/converters/internal/OpenApiV3Downgrader.mjs.map +1 -1
  209. package/lib/converters/internal/OpenApiV3Downgrader2.mjs +247 -0
  210. package/lib/converters/internal/OpenApiV3Downgrader2.mjs.map +1 -0
  211. package/lib/converters/internal/OpenApiV3Upgrader.js +58 -67
  212. package/lib/converters/internal/OpenApiV3Upgrader.js.map +1 -1
  213. package/lib/converters/internal/OpenApiV3Upgrader.mjs +5 -367
  214. package/lib/converters/internal/OpenApiV3Upgrader.mjs.map +1 -1
  215. package/lib/converters/internal/OpenApiV3Upgrader2.mjs +308 -0
  216. package/lib/converters/internal/OpenApiV3Upgrader2.mjs.map +1 -0
  217. package/lib/converters/internal/OpenApiV3_1Downgrader.js.map +1 -1
  218. package/lib/converters/internal/OpenApiV3_1Downgrader.mjs +5 -236
  219. package/lib/converters/internal/OpenApiV3_1Downgrader.mjs.map +1 -1
  220. package/lib/converters/internal/OpenApiV3_1Downgrader2.mjs +203 -0
  221. package/lib/converters/internal/OpenApiV3_1Downgrader2.mjs.map +1 -0
  222. package/lib/converters/internal/OpenApiV3_1Upgrader.js +68 -70
  223. package/lib/converters/internal/OpenApiV3_1Upgrader.js.map +1 -1
  224. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs +5 -564
  225. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs.map +1 -1
  226. package/lib/converters/internal/OpenApiV3_1Upgrader2.mjs +435 -0
  227. package/lib/converters/internal/OpenApiV3_1Upgrader2.mjs.map +1 -0
  228. package/lib/converters/internal/OpenApiV3_2Upgrader.js +57 -63
  229. package/lib/converters/internal/OpenApiV3_2Upgrader.js.map +1 -1
  230. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs +5 -240
  231. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs.map +1 -1
  232. package/lib/converters/internal/OpenApiV3_2Upgrader2.mjs +211 -0
  233. package/lib/converters/internal/OpenApiV3_2Upgrader2.mjs.map +1 -0
  234. package/lib/converters/internal/SwaggerV2Downgrader.js +44 -56
  235. package/lib/converters/internal/SwaggerV2Downgrader.js.map +1 -1
  236. package/lib/converters/internal/SwaggerV2Downgrader.mjs +5 -352
  237. package/lib/converters/internal/SwaggerV2Downgrader.mjs.map +1 -1
  238. package/lib/converters/internal/SwaggerV2Downgrader2.mjs +297 -0
  239. package/lib/converters/internal/SwaggerV2Downgrader2.mjs.map +1 -0
  240. package/lib/converters/internal/SwaggerV2Upgrader.js +52 -63
  241. package/lib/converters/internal/SwaggerV2Upgrader.js.map +1 -1
  242. package/lib/converters/internal/SwaggerV2Upgrader.mjs +5 -421
  243. package/lib/converters/internal/SwaggerV2Upgrader.mjs.map +1 -1
  244. package/lib/converters/internal/SwaggerV2Upgrader2.mjs +378 -0
  245. package/lib/converters/internal/SwaggerV2Upgrader2.mjs.map +1 -0
  246. package/lib/http/HttpError.js.map +1 -1
  247. package/lib/http/HttpError.mjs +6 -74
  248. package/lib/http/HttpError.mjs.map +1 -1
  249. package/lib/http/HttpError2.mjs +81 -0
  250. package/lib/http/HttpError2.mjs.map +1 -0
  251. package/lib/http/HttpLlm.js +5 -4
  252. package/lib/http/HttpLlm.js.map +1 -1
  253. package/lib/http/HttpLlm.mjs +5 -96
  254. package/lib/http/HttpLlm.mjs.map +1 -1
  255. package/lib/http/HttpLlm2.mjs +115 -0
  256. package/lib/http/HttpLlm2.mjs.map +1 -0
  257. package/lib/http/HttpMigration.js.map +1 -1
  258. package/lib/http/HttpMigration.mjs +5 -49
  259. package/lib/http/HttpMigration.mjs.map +1 -1
  260. package/lib/http/HttpMigration2.mjs +66 -0
  261. package/lib/http/HttpMigration2.mjs.map +1 -0
  262. package/lib/http/index.mjs +7 -3
  263. package/lib/http/index.mjs.map +1 -1
  264. package/lib/http/index2.mjs +36 -0
  265. package/lib/http/index2.mjs.map +1 -0
  266. package/lib/http/internal/HttpLlmApplicationComposer.js +12 -13
  267. package/lib/http/internal/HttpLlmApplicationComposer.js.map +1 -1
  268. package/lib/http/internal/HttpLlmApplicationComposer.mjs +5 -297
  269. package/lib/http/internal/HttpLlmApplicationComposer.mjs.map +1 -1
  270. package/lib/http/internal/HttpLlmApplicationComposer2.mjs +309 -0
  271. package/lib/http/internal/HttpLlmApplicationComposer2.mjs.map +1 -0
  272. package/lib/http/internal/HttpLlmFunctionFetcher.js.map +1 -1
  273. package/lib/http/internal/HttpLlmFunctionFetcher.mjs +5 -21
  274. package/lib/http/internal/HttpLlmFunctionFetcher.mjs.map +1 -1
  275. package/lib/http/internal/HttpLlmFunctionFetcher2.mjs +36 -0
  276. package/lib/http/internal/HttpLlmFunctionFetcher2.mjs.map +1 -0
  277. package/lib/http/internal/HttpMigrateApplicationComposer.js.map +1 -1
  278. package/lib/http/internal/HttpMigrateApplicationComposer.mjs +5 -44
  279. package/lib/http/internal/HttpMigrateApplicationComposer.mjs.map +1 -1
  280. package/lib/http/internal/HttpMigrateApplicationComposer2.mjs +59 -0
  281. package/lib/http/internal/HttpMigrateApplicationComposer2.mjs.map +1 -0
  282. package/lib/http/internal/HttpMigrateRouteAccessor.js.map +1 -1
  283. package/lib/http/internal/HttpMigrateRouteAccessor.mjs +5 -103
  284. package/lib/http/internal/HttpMigrateRouteAccessor.mjs.map +1 -1
  285. package/lib/http/internal/HttpMigrateRouteAccessor2.mjs +121 -0
  286. package/lib/http/internal/HttpMigrateRouteAccessor2.mjs.map +1 -0
  287. package/lib/http/internal/HttpMigrateRouteComposer.js +35 -54
  288. package/lib/http/internal/HttpMigrateRouteComposer.js.map +1 -1
  289. package/lib/http/internal/HttpMigrateRouteComposer.mjs +5 -381
  290. package/lib/http/internal/HttpMigrateRouteComposer.mjs.map +1 -1
  291. package/lib/http/internal/HttpMigrateRouteComposer2.mjs +384 -0
  292. package/lib/http/internal/HttpMigrateRouteComposer2.mjs.map +1 -0
  293. package/lib/http/internal/HttpMigrateRouteFetcher.js +7 -6
  294. package/lib/http/internal/HttpMigrateRouteFetcher.js.map +1 -1
  295. package/lib/http/internal/HttpMigrateRouteFetcher.mjs +5 -171
  296. package/lib/http/internal/HttpMigrateRouteFetcher.mjs.map +1 -1
  297. package/lib/http/internal/HttpMigrateRouteFetcher2.mjs +192 -0
  298. package/lib/http/internal/HttpMigrateRouteFetcher2.mjs.map +1 -0
  299. package/lib/index.mjs +7 -19
  300. package/lib/index.mjs.map +1 -1
  301. package/lib/index2.mjs +38 -0
  302. package/lib/index2.mjs.map +1 -0
  303. package/lib/utils/ArrayUtil.js.map +1 -1
  304. package/lib/utils/ArrayUtil.mjs +6 -26
  305. package/lib/utils/ArrayUtil.mjs.map +1 -1
  306. package/lib/utils/ArrayUtil2.mjs +40 -0
  307. package/lib/utils/ArrayUtil2.mjs.map +1 -0
  308. package/lib/utils/LlmJson.d.ts +1 -1
  309. package/lib/utils/LlmJson.js.map +1 -1
  310. package/lib/utils/LlmJson.mjs +5 -153
  311. package/lib/utils/LlmJson.mjs.map +1 -1
  312. package/lib/utils/LlmJson2.mjs +172 -0
  313. package/lib/utils/LlmJson2.mjs.map +1 -0
  314. package/lib/utils/MapUtil.js.map +1 -1
  315. package/lib/utils/MapUtil.mjs +6 -13
  316. package/lib/utils/MapUtil.mjs.map +1 -1
  317. package/lib/utils/MapUtil2.mjs +27 -0
  318. package/lib/utils/MapUtil2.mjs.map +1 -0
  319. package/lib/utils/NamingConvention.js.map +1 -1
  320. package/lib/utils/NamingConvention.mjs +6 -196
  321. package/lib/utils/NamingConvention.mjs.map +1 -1
  322. package/lib/utils/NamingConvention2.mjs +210 -0
  323. package/lib/utils/NamingConvention2.mjs.map +1 -0
  324. package/lib/utils/Singleton.d.ts +6 -1
  325. package/lib/utils/Singleton.js +0 -1
  326. package/lib/utils/Singleton.js.map +1 -1
  327. package/lib/utils/Singleton.mjs +6 -16
  328. package/lib/utils/Singleton.mjs.map +1 -1
  329. package/lib/utils/Singleton2.mjs +28 -0
  330. package/lib/utils/Singleton2.mjs.map +1 -0
  331. package/lib/utils/StringUtil.js +6 -9
  332. package/lib/utils/StringUtil.js.map +1 -1
  333. package/lib/utils/StringUtil.mjs +6 -11
  334. package/lib/utils/StringUtil.mjs.map +1 -1
  335. package/lib/utils/StringUtil2.mjs +25 -0
  336. package/lib/utils/StringUtil2.mjs.map +1 -0
  337. package/lib/utils/dedent.js.map +1 -1
  338. package/lib/utils/dedent.mjs +6 -48
  339. package/lib/utils/dedent.mjs.map +1 -1
  340. package/lib/utils/dedent2.mjs +62 -0
  341. package/lib/utils/dedent2.mjs.map +1 -0
  342. package/lib/utils/index.mjs +7 -7
  343. package/lib/utils/index.mjs.map +1 -1
  344. package/lib/utils/index2.mjs +44 -0
  345. package/lib/utils/index2.mjs.map +1 -0
  346. package/lib/utils/internal/EndpointUtil.js.map +1 -1
  347. package/lib/utils/internal/EndpointUtil.mjs +5 -34
  348. package/lib/utils/internal/EndpointUtil.mjs.map +1 -1
  349. package/lib/utils/internal/EndpointUtil2.mjs +49 -0
  350. package/lib/utils/internal/EndpointUtil2.mjs.map +1 -0
  351. package/lib/utils/internal/JsonDescriptor.js +18 -25
  352. package/lib/utils/internal/JsonDescriptor.js.map +1 -1
  353. package/lib/utils/internal/JsonDescriptor.mjs +5 -45
  354. package/lib/utils/internal/JsonDescriptor.mjs.map +1 -1
  355. package/lib/utils/internal/JsonDescriptor2.mjs +64 -0
  356. package/lib/utils/internal/JsonDescriptor2.mjs.map +1 -0
  357. package/lib/utils/internal/OpenApiTypeCheckerBase.js +15 -9
  358. package/lib/utils/internal/OpenApiTypeCheckerBase.js.map +1 -1
  359. package/lib/utils/internal/OpenApiTypeCheckerBase.mjs +5 -581
  360. package/lib/utils/internal/OpenApiTypeCheckerBase.mjs.map +1 -1
  361. package/lib/utils/internal/OpenApiTypeCheckerBase2.mjs +539 -0
  362. package/lib/utils/internal/OpenApiTypeCheckerBase2.mjs.map +1 -0
  363. package/lib/utils/internal/coerceLlmArguments.js +18 -4
  364. package/lib/utils/internal/coerceLlmArguments.js.map +1 -1
  365. package/lib/utils/internal/coerceLlmArguments.mjs +5 -245
  366. package/lib/utils/internal/coerceLlmArguments.mjs.map +1 -1
  367. package/lib/utils/internal/coerceLlmArguments2.mjs +276 -0
  368. package/lib/utils/internal/coerceLlmArguments2.mjs.map +1 -0
  369. package/lib/utils/internal/parseLenientJson.js.map +1 -1
  370. package/lib/utils/internal/parseLenientJson.mjs +6 -803
  371. package/lib/utils/internal/parseLenientJson.mjs.map +1 -1
  372. package/lib/utils/internal/parseLenientJson2.mjs +815 -0
  373. package/lib/utils/internal/parseLenientJson2.mjs.map +1 -0
  374. package/lib/utils/internal/stringifyValidationFailure.js.map +1 -1
  375. package/lib/utils/internal/stringifyValidationFailure.mjs +5 -315
  376. package/lib/utils/internal/stringifyValidationFailure.mjs.map +1 -1
  377. package/lib/utils/internal/stringifyValidationFailure2.mjs +333 -0
  378. package/lib/utils/internal/stringifyValidationFailure2.mjs.map +1 -0
  379. package/lib/validators/LlmTypeChecker.js +4 -3
  380. package/lib/validators/LlmTypeChecker.js.map +1 -1
  381. package/lib/validators/LlmTypeChecker.mjs +5 -297
  382. package/lib/validators/LlmTypeChecker.mjs.map +1 -1
  383. package/lib/validators/LlmTypeChecker2.mjs +323 -0
  384. package/lib/validators/LlmTypeChecker2.mjs.map +1 -0
  385. package/lib/validators/OpenApiTypeChecker.js.map +1 -1
  386. package/lib/validators/OpenApiTypeChecker.mjs +5 -215
  387. package/lib/validators/OpenApiTypeChecker.mjs.map +1 -1
  388. package/lib/validators/OpenApiTypeChecker2.mjs +219 -0
  389. package/lib/validators/OpenApiTypeChecker2.mjs.map +1 -0
  390. package/lib/validators/OpenApiV3TypeChecker.js.map +1 -1
  391. package/lib/validators/OpenApiV3TypeChecker.mjs +6 -27
  392. package/lib/validators/OpenApiV3TypeChecker.mjs.map +1 -1
  393. package/lib/validators/OpenApiV3TypeChecker2.mjs +41 -0
  394. package/lib/validators/OpenApiV3TypeChecker2.mjs.map +1 -0
  395. package/lib/validators/OpenApiV3_1TypeChecker.js.map +1 -1
  396. package/lib/validators/OpenApiV3_1TypeChecker.mjs +6 -31
  397. package/lib/validators/OpenApiV3_1TypeChecker.mjs.map +1 -1
  398. package/lib/validators/OpenApiV3_1TypeChecker2.mjs +45 -0
  399. package/lib/validators/OpenApiV3_1TypeChecker2.mjs.map +1 -0
  400. package/lib/validators/OpenApiValidator.js.map +1 -1
  401. package/lib/validators/OpenApiValidator.mjs +5 -72
  402. package/lib/validators/OpenApiValidator.mjs.map +1 -1
  403. package/lib/validators/OpenApiValidator2.mjs +83 -0
  404. package/lib/validators/OpenApiValidator2.mjs.map +1 -0
  405. package/lib/validators/SwaggerV2TypeChecker.js.map +1 -1
  406. package/lib/validators/SwaggerV2TypeChecker.mjs +6 -28
  407. package/lib/validators/SwaggerV2TypeChecker.mjs.map +1 -1
  408. package/lib/validators/SwaggerV2TypeChecker2.mjs +42 -0
  409. package/lib/validators/SwaggerV2TypeChecker2.mjs.map +1 -0
  410. package/lib/validators/functional/_isBigintString.js.map +1 -1
  411. package/lib/validators/functional/_isBigintString.mjs +6 -10
  412. package/lib/validators/functional/_isBigintString.mjs.map +1 -1
  413. package/lib/validators/functional/_isBigintString2.mjs +25 -0
  414. package/lib/validators/functional/_isBigintString2.mjs.map +1 -0
  415. package/lib/validators/functional/_isFormatByte.js.map +1 -1
  416. package/lib/validators/functional/_isFormatByte.mjs +6 -6
  417. package/lib/validators/functional/_isFormatByte.mjs.map +1 -1
  418. package/lib/validators/functional/_isFormatByte2.mjs +21 -0
  419. package/lib/validators/functional/_isFormatByte2.mjs.map +1 -0
  420. package/lib/validators/functional/_isFormatDate.js.map +1 -1
  421. package/lib/validators/functional/_isFormatDate.mjs +6 -3
  422. package/lib/validators/functional/_isFormatDate.mjs.map +1 -1
  423. package/lib/validators/functional/_isFormatDate2.mjs +18 -0
  424. package/lib/validators/functional/_isFormatDate2.mjs.map +1 -0
  425. package/lib/validators/functional/_isFormatDateTime.js.map +1 -1
  426. package/lib/validators/functional/_isFormatDateTime.mjs +6 -3
  427. package/lib/validators/functional/_isFormatDateTime.mjs.map +1 -1
  428. package/lib/validators/functional/_isFormatDateTime2.mjs +18 -0
  429. package/lib/validators/functional/_isFormatDateTime2.mjs.map +1 -0
  430. package/lib/validators/functional/_isFormatDuration.js.map +1 -1
  431. package/lib/validators/functional/_isFormatDuration.mjs +6 -3
  432. package/lib/validators/functional/_isFormatDuration.mjs.map +1 -1
  433. package/lib/validators/functional/_isFormatDuration2.mjs +18 -0
  434. package/lib/validators/functional/_isFormatDuration2.mjs.map +1 -0
  435. package/lib/validators/functional/_isFormatEmail.js.map +1 -1
  436. package/lib/validators/functional/_isFormatEmail.mjs +6 -3
  437. package/lib/validators/functional/_isFormatEmail.mjs.map +1 -1
  438. package/lib/validators/functional/_isFormatEmail2.mjs +18 -0
  439. package/lib/validators/functional/_isFormatEmail2.mjs.map +1 -0
  440. package/lib/validators/functional/_isFormatHostname.js.map +1 -1
  441. package/lib/validators/functional/_isFormatHostname.mjs +6 -3
  442. package/lib/validators/functional/_isFormatHostname.mjs.map +1 -1
  443. package/lib/validators/functional/_isFormatHostname2.mjs +18 -0
  444. package/lib/validators/functional/_isFormatHostname2.mjs.map +1 -0
  445. package/lib/validators/functional/_isFormatIdnEmail.js.map +1 -1
  446. package/lib/validators/functional/_isFormatIdnEmail.mjs +6 -3
  447. package/lib/validators/functional/_isFormatIdnEmail.mjs.map +1 -1
  448. package/lib/validators/functional/_isFormatIdnEmail2.mjs +18 -0
  449. package/lib/validators/functional/_isFormatIdnEmail2.mjs.map +1 -0
  450. package/lib/validators/functional/_isFormatIdnHostname.js.map +1 -1
  451. package/lib/validators/functional/_isFormatIdnHostname.mjs +6 -3
  452. package/lib/validators/functional/_isFormatIdnHostname.mjs.map +1 -1
  453. package/lib/validators/functional/_isFormatIdnHostname2.mjs +18 -0
  454. package/lib/validators/functional/_isFormatIdnHostname2.mjs.map +1 -0
  455. package/lib/validators/functional/_isFormatIpv4.js.map +1 -1
  456. package/lib/validators/functional/_isFormatIpv4.mjs +6 -3
  457. package/lib/validators/functional/_isFormatIpv4.mjs.map +1 -1
  458. package/lib/validators/functional/_isFormatIpv42.mjs +18 -0
  459. package/lib/validators/functional/_isFormatIpv42.mjs.map +1 -0
  460. package/lib/validators/functional/_isFormatIpv6.js.map +1 -1
  461. package/lib/validators/functional/_isFormatIpv6.mjs +6 -3
  462. package/lib/validators/functional/_isFormatIpv6.mjs.map +1 -1
  463. package/lib/validators/functional/_isFormatIpv62.mjs +18 -0
  464. package/lib/validators/functional/_isFormatIpv62.mjs.map +1 -0
  465. package/lib/validators/functional/_isFormatIri.js.map +1 -1
  466. package/lib/validators/functional/_isFormatIri.mjs +6 -3
  467. package/lib/validators/functional/_isFormatIri.mjs.map +1 -1
  468. package/lib/validators/functional/_isFormatIri2.mjs +18 -0
  469. package/lib/validators/functional/_isFormatIri2.mjs.map +1 -0
  470. package/lib/validators/functional/_isFormatIriReference.js.map +1 -1
  471. package/lib/validators/functional/_isFormatIriReference.mjs +6 -3
  472. package/lib/validators/functional/_isFormatIriReference.mjs.map +1 -1
  473. package/lib/validators/functional/_isFormatIriReference2.mjs +18 -0
  474. package/lib/validators/functional/_isFormatIriReference2.mjs.map +1 -0
  475. package/lib/validators/functional/_isFormatJsonPointer.js.map +1 -1
  476. package/lib/validators/functional/_isFormatJsonPointer.mjs +6 -3
  477. package/lib/validators/functional/_isFormatJsonPointer.mjs.map +1 -1
  478. package/lib/validators/functional/_isFormatJsonPointer2.mjs +18 -0
  479. package/lib/validators/functional/_isFormatJsonPointer2.mjs.map +1 -0
  480. package/lib/validators/functional/_isFormatPassword.js.map +1 -1
  481. package/lib/validators/functional/_isFormatPassword.mjs +6 -2
  482. package/lib/validators/functional/_isFormatPassword.mjs.map +1 -1
  483. package/lib/validators/functional/_isFormatPassword2.mjs +17 -0
  484. package/lib/validators/functional/_isFormatPassword2.mjs.map +1 -0
  485. package/lib/validators/functional/_isFormatRegex.js.map +1 -1
  486. package/lib/validators/functional/_isFormatRegex.mjs +6 -10
  487. package/lib/validators/functional/_isFormatRegex.mjs.map +1 -1
  488. package/lib/validators/functional/_isFormatRegex2.mjs +25 -0
  489. package/lib/validators/functional/_isFormatRegex2.mjs.map +1 -0
  490. package/lib/validators/functional/_isFormatRelativeJsonPointer.js.map +1 -1
  491. package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs +6 -3
  492. package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs.map +1 -1
  493. package/lib/validators/functional/_isFormatRelativeJsonPointer2.mjs +18 -0
  494. package/lib/validators/functional/_isFormatRelativeJsonPointer2.mjs.map +1 -0
  495. package/lib/validators/functional/_isFormatTime.js.map +1 -1
  496. package/lib/validators/functional/_isFormatTime.mjs +6 -3
  497. package/lib/validators/functional/_isFormatTime.mjs.map +1 -1
  498. package/lib/validators/functional/_isFormatTime2.mjs +18 -0
  499. package/lib/validators/functional/_isFormatTime2.mjs.map +1 -0
  500. package/lib/validators/functional/_isFormatUri.js.map +1 -1
  501. package/lib/validators/functional/_isFormatUri.mjs +6 -4
  502. package/lib/validators/functional/_isFormatUri.mjs.map +1 -1
  503. package/lib/validators/functional/_isFormatUri2.mjs +19 -0
  504. package/lib/validators/functional/_isFormatUri2.mjs.map +1 -0
  505. package/lib/validators/functional/_isFormatUriReference.js.map +1 -1
  506. package/lib/validators/functional/_isFormatUriReference.mjs +6 -3
  507. package/lib/validators/functional/_isFormatUriReference.mjs.map +1 -1
  508. package/lib/validators/functional/_isFormatUriReference2.mjs +18 -0
  509. package/lib/validators/functional/_isFormatUriReference2.mjs.map +1 -0
  510. package/lib/validators/functional/_isFormatUriTemplate.js.map +1 -1
  511. package/lib/validators/functional/_isFormatUriTemplate.mjs +6 -3
  512. package/lib/validators/functional/_isFormatUriTemplate.mjs.map +1 -1
  513. package/lib/validators/functional/_isFormatUriTemplate2.mjs +18 -0
  514. package/lib/validators/functional/_isFormatUriTemplate2.mjs.map +1 -0
  515. package/lib/validators/functional/_isFormatUrl.js.map +1 -1
  516. package/lib/validators/functional/_isFormatUrl.mjs +6 -3
  517. package/lib/validators/functional/_isFormatUrl.mjs.map +1 -1
  518. package/lib/validators/functional/_isFormatUrl2.mjs +18 -0
  519. package/lib/validators/functional/_isFormatUrl2.mjs.map +1 -0
  520. package/lib/validators/functional/_isFormatUuid.js.map +1 -1
  521. package/lib/validators/functional/_isFormatUuid.mjs +6 -3
  522. package/lib/validators/functional/_isFormatUuid.mjs.map +1 -1
  523. package/lib/validators/functional/_isFormatUuid2.mjs +18 -0
  524. package/lib/validators/functional/_isFormatUuid2.mjs.map +1 -0
  525. package/lib/validators/functional/_isUniqueItems.js.map +1 -1
  526. package/lib/validators/functional/_isUniqueItems.mjs +6 -136
  527. package/lib/validators/functional/_isUniqueItems.mjs.map +1 -1
  528. package/lib/validators/functional/_isUniqueItems2.mjs +151 -0
  529. package/lib/validators/functional/_isUniqueItems2.mjs.map +1 -0
  530. package/lib/validators/index.d.ts +1 -0
  531. package/lib/validators/index.js +0 -1
  532. package/lib/validators/index.js.map +1 -1
  533. package/lib/validators/index.mjs +7 -6
  534. package/lib/validators/index.mjs.map +1 -1
  535. package/lib/validators/index2.mjs +45 -0
  536. package/lib/validators/index2.mjs.map +1 -0
  537. package/lib/validators/internal/IOpenApiValidatorContext.mjs +6 -0
  538. package/lib/validators/internal/IOpenApiValidatorContext.mjs.map +1 -1
  539. package/lib/validators/internal/IOpenApiValidatorContext2.mjs +14 -0
  540. package/lib/validators/internal/IOpenApiValidatorContext2.mjs.map +1 -0
  541. package/lib/validators/internal/OpenApiArrayValidator.js.map +1 -1
  542. package/lib/validators/internal/OpenApiArrayValidator.mjs +5 -44
  543. package/lib/validators/internal/OpenApiArrayValidator.mjs.map +1 -1
  544. package/lib/validators/internal/OpenApiArrayValidator2.mjs +45 -0
  545. package/lib/validators/internal/OpenApiArrayValidator2.mjs.map +1 -0
  546. package/lib/validators/internal/OpenApiBooleanValidator.js.map +1 -1
  547. package/lib/validators/internal/OpenApiBooleanValidator.mjs +6 -7
  548. package/lib/validators/internal/OpenApiBooleanValidator.mjs.map +1 -1
  549. package/lib/validators/internal/OpenApiBooleanValidator2.mjs +21 -0
  550. package/lib/validators/internal/OpenApiBooleanValidator2.mjs.map +1 -0
  551. package/lib/validators/internal/OpenApiConstantValidator.js.map +1 -1
  552. package/lib/validators/internal/OpenApiConstantValidator.mjs +6 -7
  553. package/lib/validators/internal/OpenApiConstantValidator.mjs.map +1 -1
  554. package/lib/validators/internal/OpenApiConstantValidator2.mjs +21 -0
  555. package/lib/validators/internal/OpenApiConstantValidator2.mjs.map +1 -0
  556. package/lib/validators/internal/OpenApiIntegerValidator.js.map +1 -1
  557. package/lib/validators/internal/OpenApiIntegerValidator.mjs +6 -45
  558. package/lib/validators/internal/OpenApiIntegerValidator.mjs.map +1 -1
  559. package/lib/validators/internal/OpenApiIntegerValidator2.mjs +44 -0
  560. package/lib/validators/internal/OpenApiIntegerValidator2.mjs.map +1 -0
  561. package/lib/validators/internal/OpenApiNumberValidator.js.map +1 -1
  562. package/lib/validators/internal/OpenApiNumberValidator.mjs +6 -45
  563. package/lib/validators/internal/OpenApiNumberValidator.mjs.map +1 -1
  564. package/lib/validators/internal/OpenApiNumberValidator2.mjs +44 -0
  565. package/lib/validators/internal/OpenApiNumberValidator2.mjs.map +1 -0
  566. package/lib/validators/internal/OpenApiObjectValidator.js +6 -12
  567. package/lib/validators/internal/OpenApiObjectValidator.js.map +1 -1
  568. package/lib/validators/internal/OpenApiObjectValidator.mjs +5 -65
  569. package/lib/validators/internal/OpenApiObjectValidator.mjs.map +1 -1
  570. package/lib/validators/internal/OpenApiObjectValidator2.mjs +65 -0
  571. package/lib/validators/internal/OpenApiObjectValidator2.mjs.map +1 -0
  572. package/lib/validators/internal/OpenApiOneOfValidator.js +20 -20
  573. package/lib/validators/internal/OpenApiOneOfValidator.js.map +1 -1
  574. package/lib/validators/internal/OpenApiOneOfValidator.mjs +5 -203
  575. package/lib/validators/internal/OpenApiOneOfValidator.mjs.map +1 -1
  576. package/lib/validators/internal/OpenApiOneOfValidator2.mjs +196 -0
  577. package/lib/validators/internal/OpenApiOneOfValidator2.mjs.map +1 -0
  578. package/lib/validators/internal/OpenApiSchemaNamingRule.js.map +1 -1
  579. package/lib/validators/internal/OpenApiSchemaNamingRule.mjs +5 -118
  580. package/lib/validators/internal/OpenApiSchemaNamingRule.mjs.map +1 -1
  581. package/lib/validators/internal/OpenApiSchemaNamingRule2.mjs +134 -0
  582. package/lib/validators/internal/OpenApiSchemaNamingRule2.mjs.map +1 -0
  583. package/lib/validators/internal/OpenApiStationValidator.js +2 -1
  584. package/lib/validators/internal/OpenApiStationValidator.js.map +1 -1
  585. package/lib/validators/internal/OpenApiStationValidator.mjs +5 -104
  586. package/lib/validators/internal/OpenApiStationValidator.mjs.map +1 -1
  587. package/lib/validators/internal/OpenApiStationValidator2.mjs +86 -0
  588. package/lib/validators/internal/OpenApiStationValidator2.mjs.map +1 -0
  589. package/lib/validators/internal/OpenApiStringValidator.js.map +1 -1
  590. package/lib/validators/internal/OpenApiStringValidator.mjs +5 -82
  591. package/lib/validators/internal/OpenApiStringValidator.mjs.map +1 -1
  592. package/lib/validators/internal/OpenApiStringValidator2.mjs +105 -0
  593. package/lib/validators/internal/OpenApiStringValidator2.mjs.map +1 -0
  594. package/lib/validators/internal/OpenApiTupleValidator.js.map +1 -1
  595. package/lib/validators/internal/OpenApiTupleValidator.mjs +5 -43
  596. package/lib/validators/internal/OpenApiTupleValidator.mjs.map +1 -1
  597. package/lib/validators/internal/OpenApiTupleValidator2.mjs +43 -0
  598. package/lib/validators/internal/OpenApiTupleValidator2.mjs.map +1 -0
  599. package/package.json +8 -9
  600. package/src/converters/LlmSchemaConverter.ts +152 -33
  601. package/src/converters/OpenApiConverter.ts +375 -375
  602. package/src/converters/internal/OpenApiV3Downgrader.ts +381 -381
  603. package/src/converters/internal/OpenApiV3Upgrader.ts +494 -494
  604. package/src/converters/internal/OpenApiV3_1Downgrader.ts +318 -318
  605. package/src/converters/internal/OpenApiV3_1Upgrader.ts +713 -710
  606. package/src/converters/internal/OpenApiV3_2Upgrader.ts +342 -342
  607. package/src/converters/internal/SwaggerV2Downgrader.ts +450 -450
  608. package/src/converters/internal/SwaggerV2Upgrader.ts +547 -547
  609. package/src/http/HttpError.ts +114 -114
  610. package/src/http/HttpLlm.ts +169 -169
  611. package/src/http/HttpMigration.ts +94 -94
  612. package/src/http/internal/HttpMigrateApplicationComposer.ts +56 -56
  613. package/src/http/internal/HttpMigrateRouteComposer.ts +505 -505
  614. package/src/utils/LlmJson.ts +173 -173
  615. package/src/utils/Singleton.ts +0 -1
  616. package/src/utils/internal/OpenApiTypeCheckerBase.ts +2 -0
  617. package/src/utils/internal/coerceLlmArguments.ts +21 -3
  618. package/src/utils/internal/parseLenientJson.ts +919 -919
  619. package/src/validators/index.ts +0 -1
@@ -1,300 +1,8 @@
1
- import { LlmSchemaConverter } from '../../converters/LlmSchemaConverter.mjs';
2
- import { OpenApiValidator } from '../../validators/OpenApiValidator.mjs';
3
- import { LlmJson } from '../../utils/LlmJson.mjs';
1
+ import { getDefaultExportFromCjs } from '../../_virtual/_commonjsHelpers.mjs';
2
+ import { __require as requireHttpLlmApplicationComposer } from './HttpLlmApplicationComposer2.mjs';
4
3
 
5
- /**
6
- * Composes {@link IHttpLlmApplication} from an {@link IHttpMigrateApplication}.
7
- *
8
- * Converts OpenAPI-migrated HTTP routes into LLM function calling schemas,
9
- * filtering out unsupported methods (HEAD) and content types
10
- * (multipart/form-data), and shortening function names to fit the configured
11
- * maximum length.
12
- */
13
- var HttpLlmApplicationComposer;
14
- (function (HttpLlmApplicationComposer) {
15
- /**
16
- * Builds an {@link IHttpLlmApplication} from migrated HTTP routes.
17
- *
18
- * Iterates all routes, converts each to an {@link IHttpLlmFunction}, and
19
- * collects conversion errors. Applies function name shortening at the end.
20
- */
21
- HttpLlmApplicationComposer.application = (props) => {
22
- // fill in config defaults
23
- const config = {
24
- maxLength: props.config?.maxLength ?? 64,
25
- equals: props.config?.equals ?? false,
26
- strict: props.config?.strict ?? false,
27
- };
28
- // seed with pre-existing migration errors, excluding human-only endpoints
29
- const errors = props.migrate.errors
30
- .filter((e) => e.operation()["x-samchon-human"] !== true)
31
- .map((e) => ({
32
- method: e.method,
33
- path: e.path,
34
- messages: e.messages,
35
- operation: () => e.operation(),
36
- route: () => undefined,
37
- }));
38
- // convert each route to an LLM function, rejecting unsupported ones
39
- const functions = props.migrate.routes
40
- .filter((e) => e.operation()["x-samchon-human"] !== true)
41
- .map((route, i) => {
42
- // reject HEAD — LLMs cannot interpret header-only responses
43
- if (route.method === "head") {
44
- errors.push({
45
- method: route.method,
46
- path: route.path,
47
- messages: ["HEAD method is not supported in the LLM application."],
48
- operation: () => route.operation(),
49
- route: () => route,
50
- });
51
- return null;
52
- // reject multipart/form-data — binary uploads not expressible in JSON Schema
53
- }
54
- else if (route.body?.type === "multipart/form-data" ||
55
- route.success?.type === "multipart/form-data") {
56
- errors.push({
57
- method: route.method,
58
- path: route.path,
59
- messages: [
60
- `The "multipart/form-data" content type is not supported in the LLM application.`,
61
- ],
62
- operation: () => route.operation(),
63
- route: () => route,
64
- });
65
- return null;
66
- }
67
- const localErrors = [];
68
- const func = composeFunction({
69
- components: props.migrate.document().components,
70
- config,
71
- route,
72
- errors: localErrors});
73
- if (func === null)
74
- errors.push({
75
- method: route.method,
76
- path: route.path,
77
- messages: localErrors,
78
- operation: () => route.operation(),
79
- route: () => route,
80
- });
81
- return func;
82
- })
83
- .filter((v) => v !== null);
84
- const app = {
85
- config,
86
- functions,
87
- errors,
88
- };
89
- HttpLlmApplicationComposer.shorten(app, props.config?.maxLength ?? 64);
90
- return app;
91
- };
92
- /**
93
- * Converts a single {@link IHttpMigrateRoute} into an {@link IHttpLlmFunction}
94
- * by composing parameter/output schemas and validating function name
95
- * constraints.
96
- */
97
- const composeFunction = (props) => {
98
- // accessor prefix for error messages (mirrors OpenAPI document structure)
99
- const endpoint = `$input.paths[${JSON.stringify(props.route.path)}][${JSON.stringify(props.route.method)}]`;
100
- const operation = props.route.operation();
101
- const description = concatDescription({
102
- summary: operation.summary,
103
- description: operation.description,
104
- });
105
- if ((description?.length ?? 0) > 1_024) {
106
- props.errors.push(`The description of the function is too long (must be equal or less than 1,024 characters, but ${description.length.toLocaleString()} length).`);
107
- }
108
- // build function name from route accessor, replacing forbidden chars
109
- const name = emend(props.route.accessor.join("_"));
110
- const isNameVariable = /^[a-zA-Z0-9_-]+$/.test(name);
111
- const isNameStartsWithNumber = /^[0-9]/.test(name[0] ?? "");
112
- if (isNameVariable === false)
113
- props.errors.push(`Elements of path (separated by '/') must be composed with alphabets, numbers, underscores, and hyphens`);
114
- if (isNameStartsWithNumber === true)
115
- props.errors.push(`Function name cannot start with a number.`);
116
- //----
117
- // CONSTRUCT SCHEMAS
118
- //----
119
- // merge path parameters, query, and body into a single object schema
120
- const parameters = {
121
- type: "object",
122
- properties: Object.fromEntries([
123
- // path parameters (e.g., /users/:id)
124
- ...props.route.parameters.map((s) => [
125
- s.key,
126
- {
127
- ...s.schema,
128
- description: s.parameter().description ?? s.schema.description,
129
- },
130
- ]),
131
- // query parameters
132
- ...(props.route.query
133
- ? [
134
- [
135
- props.route.query.key,
136
- {
137
- ...props.route.query.schema,
138
- title: props.route.query.title() ?? props.route.query.schema.title,
139
- description: props.route.query.description() ??
140
- props.route.query.schema.description,
141
- },
142
- ],
143
- ]
144
- : []),
145
- // request body
146
- ...(props.route.body
147
- ? [
148
- [
149
- props.route.body.key,
150
- {
151
- ...props.route.body.schema,
152
- description: props.route.body.description() ??
153
- props.route.body.schema.description,
154
- },
155
- ],
156
- ]
157
- : []),
158
- ]),
159
- };
160
- parameters.required = Object.keys(parameters.properties ?? {});
161
- // convert merged object schema to LLM parameters
162
- const llmParameters = LlmSchemaConverter.parameters({
163
- config: props.config,
164
- components: props.components,
165
- schema: parameters,
166
- accessor: `${endpoint}.parameters`,
167
- });
168
- // convert response schema to LLM output parameters
169
- const output = props.route.success
170
- ? LlmSchemaConverter.parameters({
171
- config: props.config,
172
- components: props.components,
173
- schema: props.route.success.schema,
174
- accessor: `${endpoint}.responses[${JSON.stringify(props.route.success.status)}][${JSON.stringify(props.route.success.type)}].schema`,
175
- })
176
- : undefined;
177
- //----
178
- // CONVERSION
179
- //----
180
- // bail out if any validation or conversion failed
181
- if (output?.success === false ||
182
- llmParameters.success === false ||
183
- isNameVariable === false ||
184
- isNameStartsWithNumber === true ||
185
- (description?.length ?? 0) > 1_024) {
186
- if (output?.success === false)
187
- props.errors.push(...output.error.reasons.map((r) => `${r.accessor}: ${r.message}`));
188
- if (llmParameters.success === false)
189
- props.errors.push(
190
- // rewrite internal accessor to match OpenAPI requestBody path
191
- ...llmParameters.error.reasons.map((r) => {
192
- const accessor = r.accessor.replace(`parameters.properties["body"]`, `requestBody.content[${JSON.stringify(props.route.body?.type ?? "application/json")}].schema`);
193
- return `${accessor}: ${r.message}`;
194
- }));
195
- return null;
196
- }
197
- // assemble the LLM function
198
- return {
199
- method: props.route.method,
200
- path: props.route.path,
201
- name,
202
- parameters: llmParameters.value,
203
- output: output?.value,
204
- description,
205
- deprecated: operation.deprecated,
206
- tags: operation.tags,
207
- parse: (input) => LlmJson.parse(input, llmParameters.value),
208
- coerce: (input) => LlmJson.coerce(input, llmParameters.value),
209
- validate: OpenApiValidator.create({
210
- components: props.components,
211
- schema: parameters,
212
- required: true,
213
- equals: props.config.equals ?? false,
214
- }),
215
- route: () => props.route,
216
- operation: () => props.route.operation(),
217
- };
218
- };
219
- /**
220
- * Shortens function names exceeding the character limit.
221
- *
222
- * Tries progressively shorter accessor suffixes first, then falls back to
223
- * index-prefixed names, and finally UUID as a last resort.
224
- */
225
- HttpLlmApplicationComposer.shorten = (app, limit = 64) => {
226
- // collect all names for uniqueness checks
227
- const dictionary = new Set();
228
- const longFunctions = [];
229
- for (const func of app.functions) {
230
- dictionary.add(func.name);
231
- if (func.name.length > limit) {
232
- longFunctions.push(func);
233
- }
234
- }
235
- if (longFunctions.length === 0)
236
- return;
237
- let index = 0;
238
- for (const func of longFunctions) {
239
- let success = false;
240
- const rename = (str) => {
241
- dictionary.delete(func.name);
242
- dictionary.add(str);
243
- func.name = str;
244
- success = true;
245
- };
246
- // try dropping leading accessor segments to shorten the name
247
- // (e.g., "api_users_getById" → "users_getById" → "getById")
248
- for (let i = 1; i < func.route().accessor.length; ++i) {
249
- const shortName = func.route().accessor.slice(i).join("_");
250
- if (shortName.length > limit - 8)
251
- continue; // reserve room for "_N_" prefix
252
- else if (dictionary.has(shortName) === false)
253
- rename(shortName);
254
- else {
255
- // name collision — prefix with a counter to disambiguate
256
- const newName = `_${index}_${shortName}`;
257
- if (dictionary.has(newName) === true)
258
- continue;
259
- rename(newName);
260
- ++index;
261
- }
262
- break;
263
- }
264
- // last resort — all suffix attempts failed or collided
265
- if (success === false)
266
- rename(randomFormatUuid());
267
- }
268
- };
269
- })(HttpLlmApplicationComposer || (HttpLlmApplicationComposer = {}));
270
- const randomFormatUuid = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
271
- const r = (Math.random() * 16) | 0;
272
- const v = c === "x" ? r : (r & 0x3) | 0x8;
273
- return v.toString(16);
274
- });
275
- /** Replaces forbidden characters (`$`, `%`, `.`) with underscores. */
276
- const emend = (str) => {
277
- for (const ch of FORBIDDEN)
278
- str = str.split(ch).join("_");
279
- return str;
280
- };
281
- const FORBIDDEN = ["$", "%", "."];
282
- /**
283
- * Concatenates summary and description into a single string.
284
- *
285
- * If both are present, joins them with a period and double newline, avoiding
286
- * duplication when the description already starts with the summary.
287
- */
288
- const concatDescription = (p) => {
289
- if (!p.summary?.length || !p.description?.length)
290
- return p.summary || p.description;
291
- const summary = p.summary.endsWith(".")
292
- ? p.summary.slice(0, -1)
293
- : p.summary;
294
- return p.description.startsWith(summary)
295
- ? p.description
296
- : summary + ".\n\n" + p.description;
297
- };
4
+ var HttpLlmApplicationComposerExports = requireHttpLlmApplicationComposer();
5
+ var HttpLlmApplicationComposer = /*@__PURE__*/getDefaultExportFromCjs(HttpLlmApplicationComposerExports);
298
6
 
299
- export { HttpLlmApplicationComposer };
7
+ export { HttpLlmApplicationComposer as default };
300
8
  //# sourceMappingURL=HttpLlmApplicationComposer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLlmApplicationComposer.mjs","sources":["../../../src/http/internal/HttpLlmApplicationComposer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpLlmApplicationComposer.mjs","sources":["HttpLlmApplicationComposer.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireHttpLlmApplicationComposer } from \"/home/samchon/github/samchon/typia@next/packages/utils/lib/http/internal/HttpLlmApplicationComposer.js\";\nvar HttpLlmApplicationComposerExports = requireHttpLlmApplicationComposer();\nexport { HttpLlmApplicationComposerExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(HttpLlmApplicationComposerExports);"],"names":[],"mappings":";;;AAEA,IAAI,iCAAiC,GAAG,iCAAiC,EAAE;AAE3E,iCAAe,aAAa,uBAAuB,CAAC,iCAAiC,CAAC;;;;"}
@@ -0,0 +1,309 @@
1
+ import { __exports as HttpLlmApplicationComposer } from '../../_virtual/HttpLlmApplicationComposer.mjs';
2
+ import { __require as requireLlmSchemaConverter } from '../../converters/LlmSchemaConverter2.mjs';
3
+ import { __require as requireUtils } from '../../utils/index2.mjs';
4
+ import { __require as requireOpenApiValidator } from '../../validators/OpenApiValidator2.mjs';
5
+
6
+ var hasRequiredHttpLlmApplicationComposer;
7
+
8
+ function requireHttpLlmApplicationComposer () {
9
+ if (hasRequiredHttpLlmApplicationComposer) return HttpLlmApplicationComposer;
10
+ hasRequiredHttpLlmApplicationComposer = 1;
11
+ Object.defineProperty(HttpLlmApplicationComposer, "__esModule", { value: true });
12
+ HttpLlmApplicationComposer.HttpLlmApplicationComposer = void 0;
13
+ const LlmSchemaConverter_1 = requireLlmSchemaConverter();
14
+ const utils_1 = requireUtils();
15
+ const OpenApiValidator_1 = requireOpenApiValidator();
16
+ /**
17
+ * Composes {@link IHttpLlmApplication} from an {@link IHttpMigrateApplication}.
18
+ *
19
+ * Converts OpenAPI-migrated HTTP routes into LLM function calling schemas,
20
+ * filtering out unsupported methods (HEAD) and content types
21
+ * (multipart/form-data), and shortening function names to fit the configured
22
+ * maximum length.
23
+ */
24
+ var HttpLlmApplicationComposer$1;
25
+ (function (HttpLlmApplicationComposer) {
26
+ /**
27
+ * Builds an {@link IHttpLlmApplication} from migrated HTTP routes.
28
+ *
29
+ * Iterates all routes, converts each to an {@link IHttpLlmFunction}, and
30
+ * collects conversion errors. Applies function name shortening at the end.
31
+ */
32
+ HttpLlmApplicationComposer.application = (props) => {
33
+ var _a, _b, _c, _d;
34
+ var _e, _f, _g, _h;
35
+ // fill in config defaults
36
+ const config = {
37
+ maxLength: (_e = (_a = props.config) === null || _a === void 0 ? void 0 : _a.maxLength) !== null && _e !== void 0 ? _e : 64,
38
+ equals: (_f = (_b = props.config) === null || _b === void 0 ? void 0 : _b.equals) !== null && _f !== void 0 ? _f : false,
39
+ strict: (_g = (_c = props.config) === null || _c === void 0 ? void 0 : _c.strict) !== null && _g !== void 0 ? _g : false,
40
+ };
41
+ // seed with pre-existing migration errors, excluding human-only endpoints
42
+ const errors = props.migrate.errors
43
+ .filter((e) => e.operation()["x-samchon-human"] !== true)
44
+ .map((e) => ({
45
+ method: e.method,
46
+ path: e.path,
47
+ messages: e.messages,
48
+ operation: () => e.operation(),
49
+ route: () => undefined,
50
+ }));
51
+ // convert each route to an LLM function, rejecting unsupported ones
52
+ const functions = props.migrate.routes
53
+ .filter((e) => e.operation()["x-samchon-human"] !== true)
54
+ .map((route, i) => {
55
+ var _a, _b;
56
+ // reject HEAD — LLMs cannot interpret header-only responses
57
+ if (route.method === "head") {
58
+ errors.push({
59
+ method: route.method,
60
+ path: route.path,
61
+ messages: ["HEAD method is not supported in the LLM application."],
62
+ operation: () => route.operation(),
63
+ route: () => route,
64
+ });
65
+ return null;
66
+ // reject multipart/form-data — binary uploads not expressible in JSON Schema
67
+ }
68
+ else if (((_a = route.body) === null || _a === void 0 ? void 0 : _a.type) === "multipart/form-data" ||
69
+ ((_b = route.success) === null || _b === void 0 ? void 0 : _b.type) === "multipart/form-data") {
70
+ errors.push({
71
+ method: route.method,
72
+ path: route.path,
73
+ messages: [
74
+ `The "multipart/form-data" content type is not supported in the LLM application.`,
75
+ ],
76
+ operation: () => route.operation(),
77
+ route: () => route,
78
+ });
79
+ return null;
80
+ }
81
+ const localErrors = [];
82
+ const func = composeFunction({
83
+ components: props.migrate.document().components,
84
+ config,
85
+ route,
86
+ errors: localErrors});
87
+ if (func === null)
88
+ errors.push({
89
+ method: route.method,
90
+ path: route.path,
91
+ messages: localErrors,
92
+ operation: () => route.operation(),
93
+ route: () => route,
94
+ });
95
+ return func;
96
+ })
97
+ .filter((v) => v !== null);
98
+ const app = {
99
+ config,
100
+ functions,
101
+ errors,
102
+ };
103
+ HttpLlmApplicationComposer.shorten(app, (_h = (_d = props.config) === null || _d === void 0 ? void 0 : _d.maxLength) !== null && _h !== void 0 ? _h : 64);
104
+ return app;
105
+ };
106
+ /**
107
+ * Converts a single {@link IHttpMigrateRoute} into an {@link IHttpLlmFunction}
108
+ * by composing parameter/output schemas and validating function name
109
+ * constraints.
110
+ */
111
+ const composeFunction = (props) => {
112
+ var _a, _b, _c, _d, _e, _f, _g, _h;
113
+ // accessor prefix for error messages (mirrors OpenAPI document structure)
114
+ const endpoint = `$input.paths[${JSON.stringify(props.route.path)}][${JSON.stringify(props.route.method)}]`;
115
+ const operation = props.route.operation();
116
+ const description = concatDescription({
117
+ summary: operation.summary,
118
+ description: operation.description,
119
+ });
120
+ if (((_a = description === null || description === void 0 ? void 0 : description.length) !== null && _a !== void 0 ? _a : 0) > 1024) {
121
+ props.errors.push(`The description of the function is too long (must be equal or less than 1,024 characters, but ${description.length.toLocaleString()} length).`);
122
+ }
123
+ // build function name from route accessor, replacing forbidden chars
124
+ const name = emend(props.route.accessor.join("_"));
125
+ const isNameVariable = /^[a-zA-Z0-9_-]+$/.test(name);
126
+ const isNameStartsWithNumber = /^[0-9]/.test((_b = name[0]) !== null && _b !== void 0 ? _b : "");
127
+ if (isNameVariable === false)
128
+ props.errors.push(`Elements of path (separated by '/') must be composed with alphabets, numbers, underscores, and hyphens`);
129
+ if (isNameStartsWithNumber === true)
130
+ props.errors.push(`Function name cannot start with a number.`);
131
+ //----
132
+ // CONSTRUCT SCHEMAS
133
+ //----
134
+ // merge path parameters, query, and body into a single object schema
135
+ const parameters = {
136
+ type: "object",
137
+ properties: Object.fromEntries([
138
+ // path parameters (e.g., /users/:id)
139
+ ...props.route.parameters.map((s) => { var _a; return [
140
+ s.key,
141
+ Object.assign(Object.assign({}, s.schema), { description: (_a = s.parameter().description) !== null && _a !== void 0 ? _a : s.schema.description }),
142
+ ]; }),
143
+ // query parameters
144
+ ...(props.route.query
145
+ ? [
146
+ [
147
+ props.route.query.key,
148
+ Object.assign(Object.assign({}, props.route.query.schema), { title: (_c = props.route.query.title()) !== null && _c !== void 0 ? _c : props.route.query.schema.title, description: (_d = props.route.query.description()) !== null && _d !== void 0 ? _d : props.route.query.schema.description }),
149
+ ],
150
+ ]
151
+ : []),
152
+ // request body
153
+ ...(props.route.body
154
+ ? [
155
+ [
156
+ props.route.body.key,
157
+ Object.assign(Object.assign({}, props.route.body.schema), { description: (_e = props.route.body.description()) !== null && _e !== void 0 ? _e : props.route.body.schema.description }),
158
+ ],
159
+ ]
160
+ : []),
161
+ ]),
162
+ };
163
+ parameters.required = Object.keys((_f = parameters.properties) !== null && _f !== void 0 ? _f : {});
164
+ // convert merged object schema to LLM parameters
165
+ const llmParameters = LlmSchemaConverter_1.LlmSchemaConverter.parameters({
166
+ config: props.config,
167
+ components: props.components,
168
+ schema: parameters,
169
+ accessor: `${endpoint}.parameters`,
170
+ });
171
+ // convert response schema to LLM output parameters
172
+ const output = props.route.success
173
+ ? LlmSchemaConverter_1.LlmSchemaConverter.parameters({
174
+ config: props.config,
175
+ components: props.components,
176
+ schema: props.route.success.schema,
177
+ accessor: `${endpoint}.responses[${JSON.stringify(props.route.success.status)}][${JSON.stringify(props.route.success.type)}].schema`,
178
+ })
179
+ : undefined;
180
+ //----
181
+ // CONVERSION
182
+ //----
183
+ // bail out if any validation or conversion failed
184
+ if ((output === null || output === void 0 ? void 0 : output.success) === false ||
185
+ llmParameters.success === false ||
186
+ isNameVariable === false ||
187
+ isNameStartsWithNumber === true ||
188
+ ((_g = description === null || description === void 0 ? void 0 : description.length) !== null && _g !== void 0 ? _g : 0) > 1024) {
189
+ if ((output === null || output === void 0 ? void 0 : output.success) === false)
190
+ props.errors.push(...output.error.reasons.map((r) => `${r.accessor}: ${r.message}`));
191
+ if (llmParameters.success === false)
192
+ props.errors.push(
193
+ // rewrite internal accessor to match OpenAPI requestBody path
194
+ ...llmParameters.error.reasons.map((r) => {
195
+ var _a;
196
+ var _b;
197
+ const accessor = r.accessor.replace(`parameters.properties["body"]`, `requestBody.content[${JSON.stringify((_b = (_a = props.route.body) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : "application/json")}].schema`);
198
+ return `${accessor}: ${r.message}`;
199
+ }));
200
+ return null;
201
+ }
202
+ // assemble the LLM function
203
+ return {
204
+ method: props.route.method,
205
+ path: props.route.path,
206
+ name,
207
+ parameters: llmParameters.value,
208
+ output: output === null || output === void 0 ? void 0 : output.value,
209
+ description,
210
+ deprecated: operation.deprecated,
211
+ tags: operation.tags,
212
+ parse: (input) => utils_1.LlmJson.parse(input, llmParameters.value),
213
+ coerce: (input) => utils_1.LlmJson.coerce(input, llmParameters.value),
214
+ validate: OpenApiValidator_1.OpenApiValidator.create({
215
+ components: props.components,
216
+ schema: parameters,
217
+ required: true,
218
+ equals: (_h = props.config.equals) !== null && _h !== void 0 ? _h : false,
219
+ }),
220
+ route: () => props.route,
221
+ operation: () => props.route.operation(),
222
+ };
223
+ };
224
+ /**
225
+ * Shortens function names exceeding the character limit.
226
+ *
227
+ * Tries progressively shorter accessor suffixes first, then falls back to
228
+ * index-prefixed names, and finally UUID as a last resort.
229
+ */
230
+ HttpLlmApplicationComposer.shorten = (app, limit = 64) => {
231
+ // collect all names for uniqueness checks
232
+ const dictionary = new Set();
233
+ const longFunctions = [];
234
+ for (const func of app.functions) {
235
+ dictionary.add(func.name);
236
+ if (func.name.length > limit) {
237
+ longFunctions.push(func);
238
+ }
239
+ }
240
+ if (longFunctions.length === 0)
241
+ return;
242
+ let index = 0;
243
+ for (const func of longFunctions) {
244
+ let success = false;
245
+ const rename = (str) => {
246
+ dictionary.delete(func.name);
247
+ dictionary.add(str);
248
+ func.name = str;
249
+ success = true;
250
+ };
251
+ // try dropping leading accessor segments to shorten the name
252
+ // (e.g., "api_users_getById" → "users_getById" → "getById")
253
+ for (let i = 1; i < func.route().accessor.length; ++i) {
254
+ const shortName = func.route().accessor.slice(i).join("_");
255
+ if (shortName.length > limit - 8)
256
+ continue; // reserve room for "_N_" prefix
257
+ else if (dictionary.has(shortName) === false)
258
+ rename(shortName);
259
+ else {
260
+ // name collision — prefix with a counter to disambiguate
261
+ const newName = `_${index}_${shortName}`;
262
+ if (dictionary.has(newName) === true)
263
+ continue;
264
+ rename(newName);
265
+ ++index;
266
+ }
267
+ break;
268
+ }
269
+ // last resort — all suffix attempts failed or collided
270
+ if (success === false)
271
+ rename(randomFormatUuid());
272
+ }
273
+ };
274
+ })(HttpLlmApplicationComposer$1 || (HttpLlmApplicationComposer.HttpLlmApplicationComposer = HttpLlmApplicationComposer$1 = {}));
275
+ const randomFormatUuid = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
276
+ const r = (Math.random() * 16) | 0;
277
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
278
+ return v.toString(16);
279
+ });
280
+ /** Replaces forbidden characters (`$`, `%`, `.`) with underscores. */
281
+ const emend = (str) => {
282
+ for (const ch of FORBIDDEN)
283
+ str = str.split(ch).join("_");
284
+ return str;
285
+ };
286
+ const FORBIDDEN = ["$", "%", "."];
287
+ /**
288
+ * Concatenates summary and description into a single string.
289
+ *
290
+ * If both are present, joins them with a period and double newline, avoiding
291
+ * duplication when the description already starts with the summary.
292
+ */
293
+ const concatDescription = (p) => {
294
+ var _a, _b;
295
+ if (!((_a = p.summary) === null || _a === void 0 ? void 0 : _a.length) || !((_b = p.description) === null || _b === void 0 ? void 0 : _b.length))
296
+ return p.summary || p.description;
297
+ const summary = p.summary.endsWith(".")
298
+ ? p.summary.slice(0, -1)
299
+ : p.summary;
300
+ return p.description.startsWith(summary)
301
+ ? p.description
302
+ : summary + ".\n\n" + p.description;
303
+ };
304
+
305
+ return HttpLlmApplicationComposer;
306
+ }
307
+
308
+ export { requireHttpLlmApplicationComposer as __require };
309
+ //# sourceMappingURL=HttpLlmApplicationComposer2.mjs.map