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