@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
@@ -0,0 +1,551 @@
1
+ import { __exports as LlmSchemaConverter } from '../_virtual/LlmSchemaConverter.mjs';
2
+ import { __require as requireJsonDescriptor } from '../utils/internal/JsonDescriptor2.mjs';
3
+ import { __require as requireLlmTypeChecker } from '../validators/LlmTypeChecker2.mjs';
4
+ import { __require as requireOpenApiTypeChecker } from '../validators/OpenApiTypeChecker2.mjs';
5
+ import { __require as requireLlmDescriptionInverter } from './internal/LlmDescriptionInverter2.mjs';
6
+ import { __require as requireLlmParametersComposer } from './internal/LlmParametersComposer2.mjs';
7
+ import { __require as requireOpenApiConstraintShifter } from './internal/OpenApiConstraintShifter2.mjs';
8
+
9
+ var hasRequiredLlmSchemaConverter;
10
+
11
+ function requireLlmSchemaConverter () {
12
+ if (hasRequiredLlmSchemaConverter) return LlmSchemaConverter;
13
+ hasRequiredLlmSchemaConverter = 1;
14
+ Object.defineProperty(LlmSchemaConverter, "__esModule", { value: true });
15
+ LlmSchemaConverter.LlmSchemaConverter = void 0;
16
+ const JsonDescriptor_1 = requireJsonDescriptor();
17
+ const LlmTypeChecker_1 = requireLlmTypeChecker();
18
+ const OpenApiTypeChecker_1 = requireOpenApiTypeChecker();
19
+ const LlmDescriptionInverter_1 = requireLlmDescriptionInverter();
20
+ const LlmParametersComposer_1 = requireLlmParametersComposer();
21
+ const OpenApiConstraintShifter_1 = requireOpenApiConstraintShifter();
22
+ /**
23
+ * OpenAPI to LLM schema converter.
24
+ *
25
+ * `LlmSchemaConverter` converts OpenAPI JSON schemas to LLM-compatible
26
+ * {@link ILlmSchema} format. LLMs don't fully support JSON Schema, so this
27
+ * simplifies schemas by removing unsupported features (tuples, `const`, mixed
28
+ * unions).
29
+ *
30
+ * Main functions:
31
+ *
32
+ * - {@link parameters}: Convert object schema to {@link ILlmSchema.IParameters}
33
+ * - {@link schema}: Convert any schema to {@link ILlmSchema}
34
+ * - {@link invert}: Extract constraints from description back to schema
35
+ *
36
+ * Configuration options ({@link ILlmSchema.IConfig}):
37
+ *
38
+ * - `strict`: OpenAI structured output mode (all properties required)
39
+ *
40
+ * @author Jeongho Nam - https://github.com/samchon
41
+ */
42
+ var LlmSchemaConverter$1;
43
+ (function (LlmSchemaConverter) {
44
+ /**
45
+ * Get configuration with defaults applied.
46
+ *
47
+ * @param config Partial configuration
48
+ * @returns Full configuration with defaults
49
+ */
50
+ LlmSchemaConverter.getConfig = (config) => { var _a; return ({
51
+ strict: (_a = config === null || config === void 0 ? void 0 : config.strict) !== null && _a !== void 0 ? _a : false,
52
+ }); };
53
+ /* -----------------------------------------------------------
54
+ CONVERTERS
55
+ ----------------------------------------------------------- */
56
+ /**
57
+ * Convert OpenAPI object schema to LLM parameters schema.
58
+ *
59
+ * @param props.config Conversion configuration
60
+ * @param props.components OpenAPI components for reference resolution
61
+ * @param props.schema Object or reference schema to convert
62
+ * @param props.accessor Error path accessor
63
+ * @param props.refAccessor Reference path accessor
64
+ * @returns Converted parameters or error
65
+ */
66
+ LlmSchemaConverter.parameters = (props) => {
67
+ const config = LlmSchemaConverter.getConfig(props.config);
68
+ const entity = LlmParametersComposer_1.LlmParametersFinder.parameters(Object.assign(Object.assign({}, props), { method: "LlmSchemaConverter.parameters" }));
69
+ if (entity.success === false)
70
+ return entity;
71
+ const $defs = {};
72
+ const result = transform(Object.assign(Object.assign({}, props), { config,
73
+ $defs, schema: entity.value }));
74
+ if (result.success === false)
75
+ return result;
76
+ return {
77
+ success: true,
78
+ value: Object.assign(Object.assign({}, result.value), { additionalProperties: false, $defs, description: OpenApiTypeChecker_1.OpenApiTypeChecker.isReference(props.schema)
79
+ ? JsonDescriptor_1.JsonDescriptor.cascade({
80
+ prefix: "#/components/schemas/",
81
+ components: props.components,
82
+ schema: Object.assign(Object.assign({}, props.schema), { description: result.value.description }),
83
+ escape: true,
84
+ })
85
+ : result.value.description }),
86
+ };
87
+ };
88
+ /**
89
+ * Convert OpenAPI schema to LLM schema.
90
+ *
91
+ * @param props.config Conversion configuration
92
+ * @param props.components OpenAPI components for reference resolution
93
+ * @param props.$defs Definition store (mutated with referenced types)
94
+ * @param props.schema Schema to convert
95
+ * @param props.accessor Error path accessor
96
+ * @param props.refAccessor Reference path accessor
97
+ * @returns Converted schema or error
98
+ */
99
+ LlmSchemaConverter.schema = (props) => transform({
100
+ config: LlmSchemaConverter.getConfig(props.config),
101
+ components: props.components,
102
+ $defs: props.$defs,
103
+ schema: props.schema,
104
+ accessor: props.accessor,
105
+ refAccessor: props.refAccessor,
106
+ });
107
+ const transform = (props) => {
108
+ var _a, _b;
109
+ // PREPARE ASSETS
110
+ const union = [];
111
+ const attribute = Object.assign({ title: props.schema.title, description: props.schema.description, deprecated: props.schema.deprecated, readOnly: props.schema.readOnly, writeOnly: props.schema.writeOnly, example: props.schema.example, examples: props.schema.examples }, Object.fromEntries(Object.entries(props.schema).filter(([key, value]) => key.startsWith("x-") && value !== undefined)));
112
+ // VALIDADTE SCHEMA
113
+ const reasons = [];
114
+ OpenApiTypeChecker_1.OpenApiTypeChecker.visit({
115
+ closure: (next, accessor) => {
116
+ var _a;
117
+ var _b;
118
+ if (props.config.strict === true) {
119
+ // STRICT MODE VALIDATION
120
+ reasons.push(...validateStrict(next, accessor));
121
+ }
122
+ if (OpenApiTypeChecker_1.OpenApiTypeChecker.isTuple(next))
123
+ reasons.push({
124
+ accessor,
125
+ schema: next,
126
+ message: `LLM does not allow tuple type.`,
127
+ });
128
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isReference(next)) {
129
+ // UNABLE TO FIND MATCHED REFERENCE
130
+ const key = (_b = next.$ref.split("#/components/schemas/")[1]) !== null && _b !== void 0 ? _b : next.$ref.split("/").at(-1);
131
+ if (((_a = props.components.schemas) === null || _a === void 0 ? void 0 : _a[key]) === undefined)
132
+ reasons.push({
133
+ schema: next,
134
+ accessor: accessor,
135
+ message: `unable to find reference type ${JSON.stringify(key)}.`,
136
+ });
137
+ }
138
+ },
139
+ components: props.components,
140
+ schema: props.schema,
141
+ accessor: props.accessor,
142
+ refAccessor: props.refAccessor,
143
+ });
144
+ if (reasons.length > 0)
145
+ return {
146
+ success: false,
147
+ error: {
148
+ method: "LlmSchemaConverter.schema",
149
+ message: "Failed to compose LLM schema",
150
+ reasons,
151
+ },
152
+ };
153
+ const convertConstant = (input) => {
154
+ if (input.const === null)
155
+ return {
156
+ type: "null",
157
+ };
158
+ if (typeof input.const === "boolean")
159
+ return {
160
+ type: "boolean",
161
+ enum: [input.const],
162
+ };
163
+ if (typeof input.const === "string")
164
+ return {
165
+ type: "string",
166
+ enum: [input.const],
167
+ };
168
+ if (typeof input.const === "number")
169
+ return {
170
+ type: Number.isInteger(input.const) ? "integer" : "number",
171
+ enum: [input.const],
172
+ };
173
+ return null;
174
+ };
175
+ const visit = (input, accessor) => {
176
+ var _a;
177
+ var _b, _c, _d, _e;
178
+ if (OpenApiTypeChecker_1.OpenApiTypeChecker.isOneOf(input)) {
179
+ // UNION TYPE
180
+ input.oneOf.forEach((s, i) => visit(s, `${accessor}.oneOf[${i}]`));
181
+ }
182
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isReference(input)) {
183
+ // REFERENCE TYPE
184
+ const key = (_b = input.$ref.split("#/components/schemas/")[1]) !== null && _b !== void 0 ? _b : input.$ref.split("/").at(-1);
185
+ const target = (_a = props.components.schemas) === null || _a === void 0 ? void 0 : _a[key];
186
+ if (target === undefined)
187
+ return;
188
+ else {
189
+ // KEEP THE REFERENCE TYPE
190
+ const out = () => {
191
+ union.push(Object.assign(Object.assign({}, input), { $ref: `#/$defs/${key}` }));
192
+ };
193
+ if (props.$defs[key] !== undefined)
194
+ return out();
195
+ props.$defs[key] = {};
196
+ const converted = transform({
197
+ config: props.config,
198
+ components: props.components,
199
+ $defs: props.$defs,
200
+ schema: target,
201
+ refAccessor: props.refAccessor,
202
+ accessor: `${(_c = props.refAccessor) !== null && _c !== void 0 ? _c : "$def"}[${JSON.stringify(key)}]`,
203
+ });
204
+ if (converted.success === false)
205
+ return; // UNREACHABLE
206
+ props.$defs[key] = converted.value;
207
+ return out();
208
+ }
209
+ }
210
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isObject(input)) {
211
+ // OBJECT TYPE
212
+ const properties = Object.fromEntries(Object.entries((_d = input.properties) !== null && _d !== void 0 ? _d : {})
213
+ .map(([key, value]) => {
214
+ var _a;
215
+ const converted = transform({
216
+ config: props.config,
217
+ components: props.components,
218
+ $defs: props.$defs,
219
+ schema: value,
220
+ refAccessor: props.refAccessor,
221
+ accessor: `${(_a = props.accessor) !== null && _a !== void 0 ? _a : "$input.schema"}.properties[${JSON.stringify(key)}]`,
222
+ });
223
+ if (converted.success === false) {
224
+ reasons.push(...converted.error.reasons);
225
+ return [key, null];
226
+ }
227
+ return [key, converted.value];
228
+ })
229
+ .filter(([, value]) => value !== null));
230
+ if (Object.values(properties).some((v) => v === null))
231
+ return;
232
+ const additionalProperties = (() => {
233
+ if (typeof input.additionalProperties === "object" &&
234
+ input.additionalProperties !== null) {
235
+ const converted = transform({
236
+ config: props.config,
237
+ components: props.components,
238
+ $defs: props.$defs,
239
+ schema: input.additionalProperties,
240
+ refAccessor: props.refAccessor,
241
+ accessor: `${accessor}.additionalProperties`,
242
+ });
243
+ if (converted.success === false) {
244
+ reasons.push(...converted.error.reasons);
245
+ return null;
246
+ }
247
+ return converted.value;
248
+ }
249
+ return props.config.strict === true
250
+ ? false
251
+ : input.additionalProperties;
252
+ })();
253
+ if (additionalProperties === null)
254
+ return;
255
+ union.push(Object.assign(Object.assign({}, input), { properties,
256
+ additionalProperties, required: (_e = input.required) !== null && _e !== void 0 ? _e : [], description: props.config.strict === true
257
+ ? JsonDescriptor_1.JsonDescriptor.take(input)
258
+ : input.description }));
259
+ }
260
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isArray(input)) {
261
+ // ARRAY TYPE
262
+ const items = transform({
263
+ config: props.config,
264
+ components: props.components,
265
+ $defs: props.$defs,
266
+ schema: input.items,
267
+ refAccessor: props.refAccessor,
268
+ accessor: `${accessor}.items`,
269
+ });
270
+ if (items.success === false) {
271
+ reasons.push(...items.error.reasons);
272
+ return;
273
+ }
274
+ union.push(props.config.strict === true
275
+ ? OpenApiConstraintShifter_1.OpenApiConstraintShifter.shiftArray(Object.assign(Object.assign({}, input), { items: items.value }))
276
+ : Object.assign(Object.assign({}, input), { items: items.value }));
277
+ }
278
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(input)) {
279
+ const constant = convertConstant(input);
280
+ if (constant !== null)
281
+ union.push(constant);
282
+ }
283
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isString(input))
284
+ union.push(props.config.strict === true
285
+ ? OpenApiConstraintShifter_1.OpenApiConstraintShifter.shiftString(Object.assign({}, input))
286
+ : input);
287
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isNumber(input) ||
288
+ OpenApiTypeChecker_1.OpenApiTypeChecker.isInteger(input))
289
+ union.push(props.config.strict === true
290
+ ? OpenApiConstraintShifter_1.OpenApiConstraintShifter.shiftNumeric(Object.assign({}, input))
291
+ : input);
292
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isTuple(input))
293
+ return; // UNREACHABLE
294
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(input) === false)
295
+ union.push(Object.assign({}, input));
296
+ };
297
+ visit(props.schema, (_a = props.accessor) !== null && _a !== void 0 ? _a : "$input.schema");
298
+ const normalized = normalizeLlmUnion(union);
299
+ if (reasons.length > 0)
300
+ return {
301
+ success: false,
302
+ error: {
303
+ method: "LlmSchemaConverter.schema",
304
+ message: "Failed to compose LLM schema",
305
+ reasons,
306
+ },
307
+ };
308
+ else if (normalized.length === 0)
309
+ return {
310
+ // unknown type
311
+ success: true,
312
+ value: Object.assign(Object.assign({}, attribute), { type: undefined }),
313
+ };
314
+ else if (normalized.length === 1)
315
+ return {
316
+ // single type
317
+ success: true,
318
+ value: Object.assign(Object.assign(Object.assign({}, attribute), normalized[0]), { description: props.config.strict === true &&
319
+ LlmTypeChecker_1.LlmTypeChecker.isReference(normalized[0])
320
+ ? undefined
321
+ : ((_b = normalized[0].description) !== null && _b !== void 0 ? _b : attribute.description) }),
322
+ };
323
+ return {
324
+ success: true,
325
+ value: Object.assign(Object.assign({}, attribute), { anyOf: normalized.map((u) => (Object.assign(Object.assign({}, u), { description: props.config.strict === true && LlmTypeChecker_1.LlmTypeChecker.isReference(u)
326
+ ? undefined
327
+ : u.description }))), "x-discriminator": OpenApiTypeChecker_1.OpenApiTypeChecker.isOneOf(props.schema) &&
328
+ props.schema.discriminator !== undefined &&
329
+ props.schema.oneOf.length === normalized.length &&
330
+ normalized.every((e) => LlmTypeChecker_1.LlmTypeChecker.isReference(e) || LlmTypeChecker_1.LlmTypeChecker.isNull(e))
331
+ ? {
332
+ propertyName: props.schema.discriminator.propertyName,
333
+ mapping: props.schema.discriminator.mapping !== undefined
334
+ ? Object.fromEntries(Object.entries(props.schema.discriminator.mapping).map(([key, value]) => [
335
+ key,
336
+ `#/$defs/${value.split("/").at(-1)}`,
337
+ ]))
338
+ : discriminatorMapping({
339
+ propertyName: props.schema.discriminator.propertyName,
340
+ refs: normalized.filter(LlmTypeChecker_1.LlmTypeChecker.isReference),
341
+ $defs: props.$defs,
342
+ }),
343
+ }
344
+ : undefined }),
345
+ };
346
+ };
347
+ /* -----------------------------------------------------------
348
+ INVERTERS
349
+ ----------------------------------------------------------- */
350
+ /**
351
+ * Convert LLM schema back to OpenAPI schema.
352
+ *
353
+ * Restores constraint information from description tags and converts `$defs`
354
+ * references to `#/components/schemas`.
355
+ *
356
+ * @param props.components Target components (mutated with definitions)
357
+ * @param props.schema LLM schema to invert
358
+ * @param props.$defs LLM schema definitions
359
+ * @returns OpenAPI JSON schema
360
+ */
361
+ LlmSchemaConverter.invert = (props) => {
362
+ const union = [];
363
+ const attribute = Object.assign({ title: props.schema.title, description: props.schema.description, deprecated: props.schema.deprecated, readOnly: props.schema.readOnly, writeOnly: props.schema.writeOnly, example: props.schema.example, examples: props.schema.examples }, Object.fromEntries(Object.entries(props.schema).filter(([key, value]) => key.startsWith("x-") && value !== undefined)));
364
+ const next = (schema) => LlmSchemaConverter.invert({
365
+ components: props.components,
366
+ $defs: props.$defs,
367
+ schema,
368
+ });
369
+ const visit = (schema) => {
370
+ var _a, _b, _c, _d;
371
+ var _e, _f, _g;
372
+ var _h;
373
+ if (LlmTypeChecker_1.LlmTypeChecker.isArray(schema))
374
+ union.push(Object.assign(Object.assign(Object.assign({}, schema), LlmDescriptionInverter_1.LlmDescriptionInverter.array(schema.description)), { items: next(schema.items) }));
375
+ else if (LlmTypeChecker_1.LlmTypeChecker.isObject(schema))
376
+ union.push(Object.assign(Object.assign({}, schema), { properties: Object.fromEntries(Object.entries(schema.properties).map(([key, value]) => [
377
+ key,
378
+ next(value),
379
+ ])), additionalProperties: typeof schema.additionalProperties === "object" &&
380
+ schema.additionalProperties !== null
381
+ ? next(schema.additionalProperties)
382
+ : schema.additionalProperties }));
383
+ else if (LlmTypeChecker_1.LlmTypeChecker.isAnyOf(schema))
384
+ schema.anyOf.forEach(visit);
385
+ else if (LlmTypeChecker_1.LlmTypeChecker.isReference(schema)) {
386
+ const key = (_e = schema.$ref.split("#/$defs/")[1]) !== null && _e !== void 0 ? _e : schema.$ref.split("/").at(-1);
387
+ if (((_a = props.components.schemas) === null || _a === void 0 ? void 0 : _a[key]) === undefined) {
388
+ (_f = (_h = props.components).schemas) !== null && _f !== void 0 ? _f : (_h.schemas = {});
389
+ props.components.schemas[key] = {};
390
+ props.components.schemas[key] = next((_g = props.$defs[key]) !== null && _g !== void 0 ? _g : {});
391
+ }
392
+ union.push(Object.assign(Object.assign({}, schema), { $ref: `#/components/schemas/${key}` }));
393
+ }
394
+ else if (LlmTypeChecker_1.LlmTypeChecker.isBoolean(schema))
395
+ if (!!((_b = schema.enum) === null || _b === void 0 ? void 0 : _b.length))
396
+ schema.enum.forEach((v) => union.push({
397
+ const: v,
398
+ }));
399
+ else
400
+ union.push(schema);
401
+ else if (LlmTypeChecker_1.LlmTypeChecker.isInteger(schema) ||
402
+ LlmTypeChecker_1.LlmTypeChecker.isNumber(schema))
403
+ if (!!((_c = schema.enum) === null || _c === void 0 ? void 0 : _c.length))
404
+ schema.enum.forEach((v) => union.push({
405
+ const: v,
406
+ }));
407
+ else
408
+ union.push(Object.assign(Object.assign(Object.assign({}, schema), LlmDescriptionInverter_1.LlmDescriptionInverter.numeric(schema.description)), { enum: undefined }));
409
+ else if (LlmTypeChecker_1.LlmTypeChecker.isString(schema))
410
+ if (!!((_d = schema.enum) === null || _d === void 0 ? void 0 : _d.length))
411
+ schema.enum.forEach((v) => union.push({
412
+ const: v,
413
+ }));
414
+ else
415
+ union.push(Object.assign(Object.assign(Object.assign({}, schema), LlmDescriptionInverter_1.LlmDescriptionInverter.string(schema.description)), { enum: undefined }));
416
+ else
417
+ union.push(Object.assign({}, schema));
418
+ };
419
+ visit(props.schema);
420
+ return Object.assign(Object.assign({}, attribute), (union.length === 0
421
+ ? { type: undefined }
422
+ : union.length === 1
423
+ ? Object.assign({}, union[0]) : {
424
+ oneOf: union.map((u) => (Object.assign(Object.assign({}, u), { nullable: undefined }))),
425
+ discriminator: LlmTypeChecker_1.LlmTypeChecker.isAnyOf(props.schema) &&
426
+ props.schema["x-discriminator"] !== undefined
427
+ ? {
428
+ propertyName: props.schema["x-discriminator"].propertyName,
429
+ mapping: props.schema["x-discriminator"].mapping !== undefined
430
+ ? Object.fromEntries(Object.entries(props.schema["x-discriminator"].mapping).map(([key, value]) => [
431
+ key,
432
+ `#/components/schemas/${value.split("/").at(-1)}`,
433
+ ]))
434
+ : undefined,
435
+ }
436
+ : undefined,
437
+ }));
438
+ };
439
+ })(LlmSchemaConverter$1 || (LlmSchemaConverter.LlmSchemaConverter = LlmSchemaConverter$1 = {}));
440
+ const discriminatorMapping = (props) => {
441
+ const entries = props.refs.flatMap((ref) => {
442
+ var _a;
443
+ const key = (_a = ref.$ref.split("#/$defs/")[1]) !== null && _a !== void 0 ? _a : ref.$ref.split("/").at(-1);
444
+ const schema = props.$defs[key];
445
+ if (!schema || !LlmTypeChecker_1.LlmTypeChecker.isObject(schema))
446
+ return [];
447
+ const literals = llmDiscriminatorLiterals(schema.properties[props.propertyName], props.$defs);
448
+ return literals.map((literal) => [literal, ref.$ref]);
449
+ });
450
+ return entries.length !== 0 ? Object.fromEntries(entries) : undefined;
451
+ };
452
+ const llmDiscriminatorLiterals = (schema, $defs) => {
453
+ var _a, _b;
454
+ if (schema === undefined)
455
+ return [];
456
+ if (LlmTypeChecker_1.LlmTypeChecker.isReference(schema)) {
457
+ const key = (_a = schema.$ref.split("#/$defs/")[1]) !== null && _a !== void 0 ? _a : schema.$ref.split("/").at(-1);
458
+ return llmDiscriminatorLiterals($defs[key], $defs);
459
+ }
460
+ if (LlmTypeChecker_1.LlmTypeChecker.isString(schema))
461
+ return (_b = schema.enum) !== null && _b !== void 0 ? _b : [];
462
+ if (LlmTypeChecker_1.LlmTypeChecker.isAnyOf(schema))
463
+ return schema.anyOf.flatMap((child) => llmDiscriminatorLiterals(child, $defs));
464
+ return [];
465
+ };
466
+ const normalizeLlmUnion = (union) => {
467
+ if (union.length <= 1)
468
+ return union;
469
+ if (union.every(isEnumOnlyString)) {
470
+ return [
471
+ {
472
+ type: "string",
473
+ enum: uniqueEnumValues(union.flatMap((schema) => { var _a; return (_a = schema.enum) !== null && _a !== void 0 ? _a : []; })),
474
+ },
475
+ ];
476
+ }
477
+ if (union.every(isEnumOnlyBoolean)) {
478
+ return [
479
+ {
480
+ type: "boolean",
481
+ enum: uniqueEnumValues(union.flatMap((schema) => { var _a; return (_a = schema.enum) !== null && _a !== void 0 ? _a : []; })),
482
+ },
483
+ ];
484
+ }
485
+ if (union.every(isEnumOnlyInteger)) {
486
+ return [
487
+ {
488
+ type: "integer",
489
+ enum: uniqueEnumValues(union.flatMap((schema) => { var _a; return (_a = schema.enum) !== null && _a !== void 0 ? _a : []; })),
490
+ },
491
+ ];
492
+ }
493
+ if (union.every(isEnumOnlyNumber)) {
494
+ return [
495
+ {
496
+ type: "number",
497
+ enum: uniqueEnumValues(union.flatMap((schema) => { var _a; return (_a = schema.enum) !== null && _a !== void 0 ? _a : []; })),
498
+ },
499
+ ];
500
+ }
501
+ return union;
502
+ };
503
+ const isEnumOnlyString = (schema) => LlmTypeChecker_1.LlmTypeChecker.isString(schema) &&
504
+ Array.isArray(schema.enum) &&
505
+ schema.enum.length !== 0 &&
506
+ primitiveSchemaHasOnlyEnum(schema);
507
+ const isEnumOnlyBoolean = (schema) => LlmTypeChecker_1.LlmTypeChecker.isBoolean(schema) &&
508
+ Array.isArray(schema.enum) &&
509
+ schema.enum.length !== 0 &&
510
+ primitiveSchemaHasOnlyEnum(schema);
511
+ const isEnumOnlyInteger = (schema) => LlmTypeChecker_1.LlmTypeChecker.isInteger(schema) &&
512
+ Array.isArray(schema.enum) &&
513
+ schema.enum.length !== 0 &&
514
+ primitiveSchemaHasOnlyEnum(schema);
515
+ const isEnumOnlyNumber = (schema) => LlmTypeChecker_1.LlmTypeChecker.isNumber(schema) &&
516
+ Array.isArray(schema.enum) &&
517
+ schema.enum.length !== 0 &&
518
+ primitiveSchemaHasOnlyEnum(schema);
519
+ const primitiveSchemaHasOnlyEnum = (schema) => Object.entries(schema).every(([key, value]) => {
520
+ if (value === undefined)
521
+ return true;
522
+ return key === "type" || key === "enum";
523
+ });
524
+ const uniqueEnumValues = (values) => Array.from(new Set(values));
525
+ const validateStrict = (schema, accessor) => {
526
+ var _a;
527
+ var _b;
528
+ const reasons = [];
529
+ if (OpenApiTypeChecker_1.OpenApiTypeChecker.isObject(schema)) {
530
+ if (!!schema.additionalProperties)
531
+ reasons.push({
532
+ schema: schema,
533
+ accessor: `${accessor}.additionalProperties`,
534
+ message: "LLM does not allow additionalProperties in strict mode, the dynamic key typed object.",
535
+ });
536
+ for (const key of Object.keys((_b = schema.properties) !== null && _b !== void 0 ? _b : {}))
537
+ if (((_a = schema.required) === null || _a === void 0 ? void 0 : _a.includes(key)) === false)
538
+ reasons.push({
539
+ schema: schema,
540
+ accessor: `${accessor}.properties.${key}`,
541
+ message: "LLM does not allow optional properties in strict mode.",
542
+ });
543
+ }
544
+ return reasons;
545
+ };
546
+
547
+ return LlmSchemaConverter;
548
+ }
549
+
550
+ export { requireLlmSchemaConverter as __require };
551
+ //# sourceMappingURL=LlmSchemaConverter2.mjs.map