@typia/utils 12.0.0-dev.20260225

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 (471) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +79 -0
  3. package/lib/converters/LlmSchemaConverter.d.ts +102 -0
  4. package/lib/converters/LlmSchemaConverter.js +652 -0
  5. package/lib/converters/LlmSchemaConverter.js.map +1 -0
  6. package/lib/converters/LlmSchemaConverter.mjs +771 -0
  7. package/lib/converters/LlmSchemaConverter.mjs.map +1 -0
  8. package/lib/converters/OpenApiConverter.d.ts +135 -0
  9. package/lib/converters/OpenApiConverter.js +130 -0
  10. package/lib/converters/OpenApiConverter.js.map +1 -0
  11. package/lib/converters/OpenApiConverter.mjs +128 -0
  12. package/lib/converters/OpenApiConverter.mjs.map +1 -0
  13. package/lib/converters/index.d.ts +2 -0
  14. package/lib/converters/index.js +21 -0
  15. package/lib/converters/index.js.map +1 -0
  16. package/lib/converters/index.mjs +4 -0
  17. package/lib/converters/index.mjs.map +1 -0
  18. package/lib/converters/internal/LlmDescriptionInverter.d.ts +6 -0
  19. package/lib/converters/internal/LlmDescriptionInverter.js +141 -0
  20. package/lib/converters/internal/LlmDescriptionInverter.js.map +1 -0
  21. package/lib/converters/internal/LlmDescriptionInverter.mjs +141 -0
  22. package/lib/converters/internal/LlmDescriptionInverter.mjs.map +1 -0
  23. package/lib/converters/internal/LlmParametersComposer.d.ts +1 -0
  24. package/lib/converters/internal/LlmParametersComposer.js +39 -0
  25. package/lib/converters/internal/LlmParametersComposer.js.map +1 -0
  26. package/lib/converters/internal/LlmParametersComposer.mjs +42 -0
  27. package/lib/converters/internal/LlmParametersComposer.mjs.map +1 -0
  28. package/lib/converters/internal/OpenApiConstraintShifter.d.ts +6 -0
  29. package/lib/converters/internal/OpenApiConstraintShifter.js +103 -0
  30. package/lib/converters/internal/OpenApiConstraintShifter.js.map +1 -0
  31. package/lib/converters/internal/OpenApiConstraintShifter.mjs +102 -0
  32. package/lib/converters/internal/OpenApiConstraintShifter.mjs.map +1 -0
  33. package/lib/converters/internal/OpenApiExclusiveEmender.d.ts +4 -0
  34. package/lib/converters/internal/OpenApiExclusiveEmender.js +32 -0
  35. package/lib/converters/internal/OpenApiExclusiveEmender.js.map +1 -0
  36. package/lib/converters/internal/OpenApiExclusiveEmender.mjs +35 -0
  37. package/lib/converters/internal/OpenApiExclusiveEmender.mjs.map +1 -0
  38. package/lib/converters/internal/OpenApiV3Downgrader.d.ts +10 -0
  39. package/lib/converters/internal/OpenApiV3Downgrader.js +214 -0
  40. package/lib/converters/internal/OpenApiV3Downgrader.js.map +1 -0
  41. package/lib/converters/internal/OpenApiV3Downgrader.mjs +279 -0
  42. package/lib/converters/internal/OpenApiV3Downgrader.mjs.map +1 -0
  43. package/lib/converters/internal/OpenApiV3Upgrader.d.ts +6 -0
  44. package/lib/converters/internal/OpenApiV3Upgrader.js +285 -0
  45. package/lib/converters/internal/OpenApiV3Upgrader.js.map +1 -0
  46. package/lib/converters/internal/OpenApiV3Upgrader.mjs +349 -0
  47. package/lib/converters/internal/OpenApiV3Upgrader.mjs.map +1 -0
  48. package/lib/converters/internal/OpenApiV3_1Upgrader.d.ts +6 -0
  49. package/lib/converters/internal/OpenApiV3_1Upgrader.js +405 -0
  50. package/lib/converters/internal/OpenApiV3_1Upgrader.js.map +1 -0
  51. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs +545 -0
  52. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs.map +1 -0
  53. package/lib/converters/internal/SwaggerV2Downgrader.d.ts +10 -0
  54. package/lib/converters/internal/SwaggerV2Downgrader.js +294 -0
  55. package/lib/converters/internal/SwaggerV2Downgrader.js.map +1 -0
  56. package/lib/converters/internal/SwaggerV2Downgrader.mjs +332 -0
  57. package/lib/converters/internal/SwaggerV2Downgrader.mjs.map +1 -0
  58. package/lib/converters/internal/SwaggerV2Upgrader.d.ts +6 -0
  59. package/lib/converters/internal/SwaggerV2Upgrader.js +357 -0
  60. package/lib/converters/internal/SwaggerV2Upgrader.js.map +1 -0
  61. package/lib/converters/internal/SwaggerV2Upgrader.mjs +403 -0
  62. package/lib/converters/internal/SwaggerV2Upgrader.mjs.map +1 -0
  63. package/lib/http/HttpError.d.ts +61 -0
  64. package/lib/http/HttpError.js +70 -0
  65. package/lib/http/HttpError.js.map +1 -0
  66. package/lib/http/HttpError.mjs +76 -0
  67. package/lib/http/HttpError.mjs.map +1 -0
  68. package/lib/http/HttpLlm.d.ts +130 -0
  69. package/lib/http/HttpLlm.js +124 -0
  70. package/lib/http/HttpLlm.js.map +1 -0
  71. package/lib/http/HttpLlm.mjs +123 -0
  72. package/lib/http/HttpLlm.mjs.map +1 -0
  73. package/lib/http/HttpMigration.d.ts +58 -0
  74. package/lib/http/HttpMigration.js +52 -0
  75. package/lib/http/HttpMigration.js.map +1 -0
  76. package/lib/http/HttpMigration.mjs +52 -0
  77. package/lib/http/HttpMigration.mjs.map +1 -0
  78. package/lib/http/index.d.ts +3 -0
  79. package/lib/http/index.js +20 -0
  80. package/lib/http/index.js.map +1 -0
  81. package/lib/http/index.mjs +4 -0
  82. package/lib/http/index.mjs.map +1 -0
  83. package/lib/http/internal/HttpLlmApplicationComposer.d.ts +8 -0
  84. package/lib/http/internal/HttpLlmApplicationComposer.js +254 -0
  85. package/lib/http/internal/HttpLlmApplicationComposer.js.map +1 -0
  86. package/lib/http/internal/HttpLlmApplicationComposer.mjs +256 -0
  87. package/lib/http/internal/HttpLlmApplicationComposer.mjs.map +1 -0
  88. package/lib/http/internal/HttpLlmFunctionFetcher.d.ts +6 -0
  89. package/lib/http/internal/HttpLlmFunctionFetcher.js +24 -0
  90. package/lib/http/internal/HttpLlmFunctionFetcher.js.map +1 -0
  91. package/lib/http/internal/HttpLlmFunctionFetcher.mjs +24 -0
  92. package/lib/http/internal/HttpLlmFunctionFetcher.mjs.map +1 -0
  93. package/lib/http/internal/HttpMigrateApplicationComposer.d.ts +4 -0
  94. package/lib/http/internal/HttpMigrateApplicationComposer.js +45 -0
  95. package/lib/http/internal/HttpMigrateApplicationComposer.js.map +1 -0
  96. package/lib/http/internal/HttpMigrateApplicationComposer.mjs +47 -0
  97. package/lib/http/internal/HttpMigrateApplicationComposer.mjs.map +1 -0
  98. package/lib/http/internal/HttpMigrateRouteAccessor.d.ts +4 -0
  99. package/lib/http/internal/HttpMigrateRouteAccessor.js +107 -0
  100. package/lib/http/internal/HttpMigrateRouteAccessor.js.map +1 -0
  101. package/lib/http/internal/HttpMigrateRouteAccessor.mjs +106 -0
  102. package/lib/http/internal/HttpMigrateRouteAccessor.mjs.map +1 -0
  103. package/lib/http/internal/HttpMigrateRouteComposer.d.ts +11 -0
  104. package/lib/http/internal/HttpMigrateRouteComposer.js +398 -0
  105. package/lib/http/internal/HttpMigrateRouteComposer.js.map +1 -0
  106. package/lib/http/internal/HttpMigrateRouteComposer.mjs +392 -0
  107. package/lib/http/internal/HttpMigrateRouteComposer.mjs.map +1 -0
  108. package/lib/http/internal/HttpMigrateRouteFetcher.d.ts +6 -0
  109. package/lib/http/internal/HttpMigrateRouteFetcher.js +179 -0
  110. package/lib/http/internal/HttpMigrateRouteFetcher.js.map +1 -0
  111. package/lib/http/internal/HttpMigrateRouteFetcher.mjs +174 -0
  112. package/lib/http/internal/HttpMigrateRouteFetcher.mjs.map +1 -0
  113. package/lib/http/internal/LlmDataMerger.d.ts +48 -0
  114. package/lib/http/internal/LlmDataMerger.js +60 -0
  115. package/lib/http/internal/LlmDataMerger.js.map +1 -0
  116. package/lib/http/internal/LlmDataMerger.mjs +59 -0
  117. package/lib/http/internal/LlmDataMerger.mjs.map +1 -0
  118. package/lib/index.d.ts +4 -0
  119. package/lib/index.js +21 -0
  120. package/lib/index.js.map +1 -0
  121. package/lib/index.mjs +20 -0
  122. package/lib/index.mjs.map +1 -0
  123. package/lib/utils/ArrayUtil.d.ts +1 -0
  124. package/lib/utils/ArrayUtil.js +29 -0
  125. package/lib/utils/ArrayUtil.js.map +1 -0
  126. package/lib/utils/ArrayUtil.mjs +28 -0
  127. package/lib/utils/ArrayUtil.mjs.map +1 -0
  128. package/lib/utils/MapUtil.d.ts +1 -0
  129. package/lib/utils/MapUtil.js +16 -0
  130. package/lib/utils/MapUtil.js.map +1 -0
  131. package/lib/utils/MapUtil.mjs +15 -0
  132. package/lib/utils/MapUtil.mjs.map +1 -0
  133. package/lib/utils/NamingConvention.d.ts +68 -0
  134. package/lib/utils/NamingConvention.js +199 -0
  135. package/lib/utils/NamingConvention.js.map +1 -0
  136. package/lib/utils/NamingConvention.mjs +198 -0
  137. package/lib/utils/NamingConvention.mjs.map +1 -0
  138. package/lib/utils/Singleton.d.ts +1 -0
  139. package/lib/utils/Singleton.js +18 -0
  140. package/lib/utils/Singleton.js.map +1 -0
  141. package/lib/utils/Singleton.mjs +18 -0
  142. package/lib/utils/Singleton.mjs.map +1 -0
  143. package/lib/utils/StringUtil.d.ts +1 -0
  144. package/lib/utils/StringUtil.js +17 -0
  145. package/lib/utils/StringUtil.js.map +1 -0
  146. package/lib/utils/StringUtil.mjs +13 -0
  147. package/lib/utils/StringUtil.mjs.map +1 -0
  148. package/lib/utils/dedent.d.ts +12 -0
  149. package/lib/utils/dedent.js +51 -0
  150. package/lib/utils/dedent.js.map +1 -0
  151. package/lib/utils/dedent.mjs +50 -0
  152. package/lib/utils/dedent.mjs.map +1 -0
  153. package/lib/utils/index.d.ts +7 -0
  154. package/lib/utils/index.js +24 -0
  155. package/lib/utils/index.js.map +1 -0
  156. package/lib/utils/index.mjs +8 -0
  157. package/lib/utils/index.mjs.map +1 -0
  158. package/lib/utils/internal/EndpointUtil.d.ts +8 -0
  159. package/lib/utils/internal/EndpointUtil.js +37 -0
  160. package/lib/utils/internal/EndpointUtil.js.map +1 -0
  161. package/lib/utils/internal/EndpointUtil.mjs +37 -0
  162. package/lib/utils/internal/EndpointUtil.mjs.map +1 -0
  163. package/lib/utils/internal/JsonDescriptor.d.ts +10 -0
  164. package/lib/utils/internal/JsonDescriptor.js +58 -0
  165. package/lib/utils/internal/JsonDescriptor.js.map +1 -0
  166. package/lib/utils/internal/JsonDescriptor.mjs +48 -0
  167. package/lib/utils/internal/JsonDescriptor.mjs.map +1 -0
  168. package/lib/utils/internal/OpenApiTypeCheckerBase.d.ts +1 -0
  169. package/lib/utils/internal/OpenApiTypeCheckerBase.js +520 -0
  170. package/lib/utils/internal/OpenApiTypeCheckerBase.js.map +1 -0
  171. package/lib/utils/internal/OpenApiTypeCheckerBase.mjs +584 -0
  172. package/lib/utils/internal/OpenApiTypeCheckerBase.mjs.map +1 -0
  173. package/lib/utils/stringifyValidationFailure.d.ts +25 -0
  174. package/lib/utils/stringifyValidationFailure.js +326 -0
  175. package/lib/utils/stringifyValidationFailure.js.map +1 -0
  176. package/lib/utils/stringifyValidationFailure.mjs +325 -0
  177. package/lib/utils/stringifyValidationFailure.mjs.map +1 -0
  178. package/lib/validators/LlmTypeChecker.d.ts +117 -0
  179. package/lib/validators/LlmTypeChecker.js +309 -0
  180. package/lib/validators/LlmTypeChecker.js.map +1 -0
  181. package/lib/validators/LlmTypeChecker.mjs +300 -0
  182. package/lib/validators/LlmTypeChecker.mjs.map +1 -0
  183. package/lib/validators/OpenApiTypeChecker.d.ts +211 -0
  184. package/lib/validators/OpenApiTypeChecker.js +207 -0
  185. package/lib/validators/OpenApiTypeChecker.js.map +1 -0
  186. package/lib/validators/OpenApiTypeChecker.mjs +218 -0
  187. package/lib/validators/OpenApiTypeChecker.mjs.map +1 -0
  188. package/lib/validators/OpenApiV3TypeChecker.d.ts +26 -0
  189. package/lib/validators/OpenApiV3TypeChecker.js +30 -0
  190. package/lib/validators/OpenApiV3TypeChecker.js.map +1 -0
  191. package/lib/validators/OpenApiV3TypeChecker.mjs +29 -0
  192. package/lib/validators/OpenApiV3TypeChecker.mjs.map +1 -0
  193. package/lib/validators/OpenApiV3_1TypeChecker.d.ts +29 -0
  194. package/lib/validators/OpenApiV3_1TypeChecker.js +34 -0
  195. package/lib/validators/OpenApiV3_1TypeChecker.js.map +1 -0
  196. package/lib/validators/OpenApiV3_1TypeChecker.mjs +33 -0
  197. package/lib/validators/OpenApiV3_1TypeChecker.mjs.map +1 -0
  198. package/lib/validators/OpenApiValidator.d.ts +36 -0
  199. package/lib/validators/OpenApiValidator.js +71 -0
  200. package/lib/validators/OpenApiValidator.js.map +1 -0
  201. package/lib/validators/OpenApiValidator.mjs +75 -0
  202. package/lib/validators/OpenApiValidator.mjs.map +1 -0
  203. package/lib/validators/SwaggerV2TypeChecker.d.ts +27 -0
  204. package/lib/validators/SwaggerV2TypeChecker.js +31 -0
  205. package/lib/validators/SwaggerV2TypeChecker.js.map +1 -0
  206. package/lib/validators/SwaggerV2TypeChecker.mjs +30 -0
  207. package/lib/validators/SwaggerV2TypeChecker.mjs.map +1 -0
  208. package/lib/validators/functional/_isBigintString.d.ts +1 -0
  209. package/lib/validators/functional/_isBigintString.js +14 -0
  210. package/lib/validators/functional/_isBigintString.js.map +1 -0
  211. package/lib/validators/functional/_isBigintString.mjs +12 -0
  212. package/lib/validators/functional/_isBigintString.mjs.map +1 -0
  213. package/lib/validators/functional/_isFormatByte.d.ts +1 -0
  214. package/lib/validators/functional/_isFormatByte.js +10 -0
  215. package/lib/validators/functional/_isFormatByte.js.map +1 -0
  216. package/lib/validators/functional/_isFormatByte.mjs +8 -0
  217. package/lib/validators/functional/_isFormatByte.mjs.map +1 -0
  218. package/lib/validators/functional/_isFormatDate.d.ts +1 -0
  219. package/lib/validators/functional/_isFormatDate.js +7 -0
  220. package/lib/validators/functional/_isFormatDate.js.map +1 -0
  221. package/lib/validators/functional/_isFormatDate.mjs +5 -0
  222. package/lib/validators/functional/_isFormatDate.mjs.map +1 -0
  223. package/lib/validators/functional/_isFormatDateTime.d.ts +1 -0
  224. package/lib/validators/functional/_isFormatDateTime.js +7 -0
  225. package/lib/validators/functional/_isFormatDateTime.js.map +1 -0
  226. package/lib/validators/functional/_isFormatDateTime.mjs +5 -0
  227. package/lib/validators/functional/_isFormatDateTime.mjs.map +1 -0
  228. package/lib/validators/functional/_isFormatDuration.d.ts +1 -0
  229. package/lib/validators/functional/_isFormatDuration.js +7 -0
  230. package/lib/validators/functional/_isFormatDuration.js.map +1 -0
  231. package/lib/validators/functional/_isFormatDuration.mjs +5 -0
  232. package/lib/validators/functional/_isFormatDuration.mjs.map +1 -0
  233. package/lib/validators/functional/_isFormatEmail.d.ts +1 -0
  234. package/lib/validators/functional/_isFormatEmail.js +7 -0
  235. package/lib/validators/functional/_isFormatEmail.js.map +1 -0
  236. package/lib/validators/functional/_isFormatEmail.mjs +5 -0
  237. package/lib/validators/functional/_isFormatEmail.mjs.map +1 -0
  238. package/lib/validators/functional/_isFormatHostname.d.ts +1 -0
  239. package/lib/validators/functional/_isFormatHostname.js +7 -0
  240. package/lib/validators/functional/_isFormatHostname.js.map +1 -0
  241. package/lib/validators/functional/_isFormatHostname.mjs +5 -0
  242. package/lib/validators/functional/_isFormatHostname.mjs.map +1 -0
  243. package/lib/validators/functional/_isFormatIdnEmail.d.ts +1 -0
  244. package/lib/validators/functional/_isFormatIdnEmail.js +7 -0
  245. package/lib/validators/functional/_isFormatIdnEmail.js.map +1 -0
  246. package/lib/validators/functional/_isFormatIdnEmail.mjs +5 -0
  247. package/lib/validators/functional/_isFormatIdnEmail.mjs.map +1 -0
  248. package/lib/validators/functional/_isFormatIdnHostname.d.ts +1 -0
  249. package/lib/validators/functional/_isFormatIdnHostname.js +7 -0
  250. package/lib/validators/functional/_isFormatIdnHostname.js.map +1 -0
  251. package/lib/validators/functional/_isFormatIdnHostname.mjs +5 -0
  252. package/lib/validators/functional/_isFormatIdnHostname.mjs.map +1 -0
  253. package/lib/validators/functional/_isFormatIpv4.d.ts +1 -0
  254. package/lib/validators/functional/_isFormatIpv4.js +7 -0
  255. package/lib/validators/functional/_isFormatIpv4.js.map +1 -0
  256. package/lib/validators/functional/_isFormatIpv4.mjs +5 -0
  257. package/lib/validators/functional/_isFormatIpv4.mjs.map +1 -0
  258. package/lib/validators/functional/_isFormatIpv6.d.ts +1 -0
  259. package/lib/validators/functional/_isFormatIpv6.js +7 -0
  260. package/lib/validators/functional/_isFormatIpv6.js.map +1 -0
  261. package/lib/validators/functional/_isFormatIpv6.mjs +5 -0
  262. package/lib/validators/functional/_isFormatIpv6.mjs.map +1 -0
  263. package/lib/validators/functional/_isFormatIri.d.ts +1 -0
  264. package/lib/validators/functional/_isFormatIri.js +7 -0
  265. package/lib/validators/functional/_isFormatIri.js.map +1 -0
  266. package/lib/validators/functional/_isFormatIri.mjs +5 -0
  267. package/lib/validators/functional/_isFormatIri.mjs.map +1 -0
  268. package/lib/validators/functional/_isFormatIriReference.d.ts +1 -0
  269. package/lib/validators/functional/_isFormatIriReference.js +7 -0
  270. package/lib/validators/functional/_isFormatIriReference.js.map +1 -0
  271. package/lib/validators/functional/_isFormatIriReference.mjs +5 -0
  272. package/lib/validators/functional/_isFormatIriReference.mjs.map +1 -0
  273. package/lib/validators/functional/_isFormatJsonPointer.d.ts +1 -0
  274. package/lib/validators/functional/_isFormatJsonPointer.js +7 -0
  275. package/lib/validators/functional/_isFormatJsonPointer.js.map +1 -0
  276. package/lib/validators/functional/_isFormatJsonPointer.mjs +5 -0
  277. package/lib/validators/functional/_isFormatJsonPointer.mjs.map +1 -0
  278. package/lib/validators/functional/_isFormatPassword.d.ts +1 -0
  279. package/lib/validators/functional/_isFormatPassword.js +6 -0
  280. package/lib/validators/functional/_isFormatPassword.js.map +1 -0
  281. package/lib/validators/functional/_isFormatPassword.mjs +4 -0
  282. package/lib/validators/functional/_isFormatPassword.mjs.map +1 -0
  283. package/lib/validators/functional/_isFormatRegex.d.ts +1 -0
  284. package/lib/validators/functional/_isFormatRegex.js +14 -0
  285. package/lib/validators/functional/_isFormatRegex.js.map +1 -0
  286. package/lib/validators/functional/_isFormatRegex.mjs +12 -0
  287. package/lib/validators/functional/_isFormatRegex.mjs.map +1 -0
  288. package/lib/validators/functional/_isFormatRelativeJsonPointer.d.ts +1 -0
  289. package/lib/validators/functional/_isFormatRelativeJsonPointer.js +7 -0
  290. package/lib/validators/functional/_isFormatRelativeJsonPointer.js.map +1 -0
  291. package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs +5 -0
  292. package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs.map +1 -0
  293. package/lib/validators/functional/_isFormatTime.d.ts +1 -0
  294. package/lib/validators/functional/_isFormatTime.js +7 -0
  295. package/lib/validators/functional/_isFormatTime.js.map +1 -0
  296. package/lib/validators/functional/_isFormatTime.mjs +5 -0
  297. package/lib/validators/functional/_isFormatTime.mjs.map +1 -0
  298. package/lib/validators/functional/_isFormatUri.d.ts +1 -0
  299. package/lib/validators/functional/_isFormatUri.js +8 -0
  300. package/lib/validators/functional/_isFormatUri.js.map +1 -0
  301. package/lib/validators/functional/_isFormatUri.mjs +6 -0
  302. package/lib/validators/functional/_isFormatUri.mjs.map +1 -0
  303. package/lib/validators/functional/_isFormatUriReference.d.ts +1 -0
  304. package/lib/validators/functional/_isFormatUriReference.js +7 -0
  305. package/lib/validators/functional/_isFormatUriReference.js.map +1 -0
  306. package/lib/validators/functional/_isFormatUriReference.mjs +5 -0
  307. package/lib/validators/functional/_isFormatUriReference.mjs.map +1 -0
  308. package/lib/validators/functional/_isFormatUriTemplate.d.ts +1 -0
  309. package/lib/validators/functional/_isFormatUriTemplate.js +7 -0
  310. package/lib/validators/functional/_isFormatUriTemplate.js.map +1 -0
  311. package/lib/validators/functional/_isFormatUriTemplate.mjs +5 -0
  312. package/lib/validators/functional/_isFormatUriTemplate.mjs.map +1 -0
  313. package/lib/validators/functional/_isFormatUrl.d.ts +1 -0
  314. package/lib/validators/functional/_isFormatUrl.js +7 -0
  315. package/lib/validators/functional/_isFormatUrl.js.map +1 -0
  316. package/lib/validators/functional/_isFormatUrl.mjs +5 -0
  317. package/lib/validators/functional/_isFormatUrl.mjs.map +1 -0
  318. package/lib/validators/functional/_isFormatUuid.d.ts +1 -0
  319. package/lib/validators/functional/_isFormatUuid.js +7 -0
  320. package/lib/validators/functional/_isFormatUuid.js.map +1 -0
  321. package/lib/validators/functional/_isFormatUuid.mjs +5 -0
  322. package/lib/validators/functional/_isFormatUuid.mjs.map +1 -0
  323. package/lib/validators/functional/_isUniqueItems.d.ts +1 -0
  324. package/lib/validators/functional/_isUniqueItems.js +140 -0
  325. package/lib/validators/functional/_isUniqueItems.js.map +1 -0
  326. package/lib/validators/functional/_isUniqueItems.mjs +138 -0
  327. package/lib/validators/functional/_isUniqueItems.mjs.map +1 -0
  328. package/lib/validators/index.d.ts +2 -0
  329. package/lib/validators/index.js +27 -0
  330. package/lib/validators/index.js.map +1 -0
  331. package/lib/validators/index.mjs +7 -0
  332. package/lib/validators/index.mjs.map +1 -0
  333. package/lib/validators/internal/IOpenApiValidatorContext.d.ts +14 -0
  334. package/lib/validators/internal/IOpenApiValidatorContext.js +3 -0
  335. package/lib/validators/internal/IOpenApiValidatorContext.js.map +1 -0
  336. package/lib/validators/internal/IOpenApiValidatorContext.mjs +2 -0
  337. package/lib/validators/internal/IOpenApiValidatorContext.mjs.map +1 -0
  338. package/lib/validators/internal/OpenApiArrayValidator.d.ts +5 -0
  339. package/lib/validators/internal/OpenApiArrayValidator.js +32 -0
  340. package/lib/validators/internal/OpenApiArrayValidator.js.map +1 -0
  341. package/lib/validators/internal/OpenApiArrayValidator.mjs +47 -0
  342. package/lib/validators/internal/OpenApiArrayValidator.mjs.map +1 -0
  343. package/lib/validators/internal/OpenApiBooleanValidator.d.ts +5 -0
  344. package/lib/validators/internal/OpenApiBooleanValidator.js +10 -0
  345. package/lib/validators/internal/OpenApiBooleanValidator.js.map +1 -0
  346. package/lib/validators/internal/OpenApiBooleanValidator.mjs +9 -0
  347. package/lib/validators/internal/OpenApiBooleanValidator.mjs.map +1 -0
  348. package/lib/validators/internal/OpenApiConstantValidator.d.ts +5 -0
  349. package/lib/validators/internal/OpenApiConstantValidator.js +10 -0
  350. package/lib/validators/internal/OpenApiConstantValidator.js.map +1 -0
  351. package/lib/validators/internal/OpenApiConstantValidator.mjs +9 -0
  352. package/lib/validators/internal/OpenApiConstantValidator.mjs.map +1 -0
  353. package/lib/validators/internal/OpenApiIntegerValidator.d.ts +5 -0
  354. package/lib/validators/internal/OpenApiIntegerValidator.js +33 -0
  355. package/lib/validators/internal/OpenApiIntegerValidator.js.map +1 -0
  356. package/lib/validators/internal/OpenApiIntegerValidator.mjs +47 -0
  357. package/lib/validators/internal/OpenApiIntegerValidator.mjs.map +1 -0
  358. package/lib/validators/internal/OpenApiNumberValidator.d.ts +5 -0
  359. package/lib/validators/internal/OpenApiNumberValidator.js +33 -0
  360. package/lib/validators/internal/OpenApiNumberValidator.js.map +1 -0
  361. package/lib/validators/internal/OpenApiNumberValidator.mjs +47 -0
  362. package/lib/validators/internal/OpenApiNumberValidator.mjs.map +1 -0
  363. package/lib/validators/internal/OpenApiObjectValidator.d.ts +5 -0
  364. package/lib/validators/internal/OpenApiObjectValidator.js +58 -0
  365. package/lib/validators/internal/OpenApiObjectValidator.js.map +1 -0
  366. package/lib/validators/internal/OpenApiObjectValidator.mjs +68 -0
  367. package/lib/validators/internal/OpenApiObjectValidator.mjs.map +1 -0
  368. package/lib/validators/internal/OpenApiOneOfValidator.d.ts +5 -0
  369. package/lib/validators/internal/OpenApiOneOfValidator.js +182 -0
  370. package/lib/validators/internal/OpenApiOneOfValidator.js.map +1 -0
  371. package/lib/validators/internal/OpenApiOneOfValidator.mjs +206 -0
  372. package/lib/validators/internal/OpenApiOneOfValidator.mjs.map +1 -0
  373. package/lib/validators/internal/OpenApiSchemaNamingRule.d.ts +4 -0
  374. package/lib/validators/internal/OpenApiSchemaNamingRule.js +122 -0
  375. package/lib/validators/internal/OpenApiSchemaNamingRule.js.map +1 -0
  376. package/lib/validators/internal/OpenApiSchemaNamingRule.mjs +121 -0
  377. package/lib/validators/internal/OpenApiSchemaNamingRule.mjs.map +1 -0
  378. package/lib/validators/internal/OpenApiStationValidator.d.ts +5 -0
  379. package/lib/validators/internal/OpenApiStationValidator.js +63 -0
  380. package/lib/validators/internal/OpenApiStationValidator.js.map +1 -0
  381. package/lib/validators/internal/OpenApiStationValidator.mjs +107 -0
  382. package/lib/validators/internal/OpenApiStationValidator.mjs.map +1 -0
  383. package/lib/validators/internal/OpenApiStringValidator.d.ts +5 -0
  384. package/lib/validators/internal/OpenApiStringValidator.js +73 -0
  385. package/lib/validators/internal/OpenApiStringValidator.js.map +1 -0
  386. package/lib/validators/internal/OpenApiStringValidator.mjs +85 -0
  387. package/lib/validators/internal/OpenApiStringValidator.mjs.map +1 -0
  388. package/lib/validators/internal/OpenApiTupleValidator.d.ts +5 -0
  389. package/lib/validators/internal/OpenApiTupleValidator.js +31 -0
  390. package/lib/validators/internal/OpenApiTupleValidator.js.map +1 -0
  391. package/lib/validators/internal/OpenApiTupleValidator.mjs +46 -0
  392. package/lib/validators/internal/OpenApiTupleValidator.mjs.map +1 -0
  393. package/package.json +91 -0
  394. package/src/converters/LlmSchemaConverter.ts +924 -0
  395. package/src/converters/OpenApiConverter.ts +285 -0
  396. package/src/converters/index.ts +5 -0
  397. package/src/converters/internal/LlmDescriptionInverter.ts +178 -0
  398. package/src/converters/internal/LlmParametersComposer.ts +52 -0
  399. package/src/converters/internal/OpenApiConstraintShifter.ts +154 -0
  400. package/src/converters/internal/OpenApiExclusiveEmender.ts +46 -0
  401. package/src/converters/internal/OpenApiV3Downgrader.ts +355 -0
  402. package/src/converters/internal/OpenApiV3Upgrader.ts +470 -0
  403. package/src/converters/internal/OpenApiV3_1Upgrader.ts +685 -0
  404. package/src/converters/internal/SwaggerV2Downgrader.ts +424 -0
  405. package/src/converters/internal/SwaggerV2Upgrader.ts +523 -0
  406. package/src/http/HttpError.ts +107 -0
  407. package/src/http/HttpLlm.ts +210 -0
  408. package/src/http/HttpMigration.ts +92 -0
  409. package/src/http/index.ts +3 -0
  410. package/src/http/internal/HttpLlmApplicationComposer.ts +308 -0
  411. package/src/http/internal/HttpLlmFunctionFetcher.ts +37 -0
  412. package/src/http/internal/HttpMigrateApplicationComposer.ts +56 -0
  413. package/src/http/internal/HttpMigrateRouteAccessor.ts +135 -0
  414. package/src/http/internal/HttpMigrateRouteComposer.ts +513 -0
  415. package/src/http/internal/HttpMigrateRouteFetcher.ts +203 -0
  416. package/src/http/internal/LlmDataMerger.ts +73 -0
  417. package/src/index.ts +4 -0
  418. package/src/utils/ArrayUtil.ts +42 -0
  419. package/src/utils/MapUtil.ts +15 -0
  420. package/src/utils/NamingConvention.ts +205 -0
  421. package/src/utils/Singleton.ts +17 -0
  422. package/src/utils/StringUtil.ts +14 -0
  423. package/src/utils/dedent.ts +57 -0
  424. package/src/utils/index.ts +8 -0
  425. package/src/utils/internal/EndpointUtil.ts +44 -0
  426. package/src/utils/internal/JsonDescriptor.ts +70 -0
  427. package/src/utils/internal/OpenApiTypeCheckerBase.ts +822 -0
  428. package/src/utils/stringifyValidationFailure.ts +415 -0
  429. package/src/validators/LlmTypeChecker.ts +402 -0
  430. package/src/validators/OpenApiTypeChecker.ts +297 -0
  431. package/src/validators/OpenApiV3TypeChecker.ts +70 -0
  432. package/src/validators/OpenApiV3_1TypeChecker.ts +86 -0
  433. package/src/validators/OpenApiValidator.ts +94 -0
  434. package/src/validators/SwaggerV2TypeChecker.ts +71 -0
  435. package/src/validators/functional/_isBigintString.ts +8 -0
  436. package/src/validators/functional/_isFormatByte.ts +7 -0
  437. package/src/validators/functional/_isFormatDate.ts +3 -0
  438. package/src/validators/functional/_isFormatDateTime.ts +4 -0
  439. package/src/validators/functional/_isFormatDuration.ts +4 -0
  440. package/src/validators/functional/_isFormatEmail.ts +4 -0
  441. package/src/validators/functional/_isFormatHostname.ts +4 -0
  442. package/src/validators/functional/_isFormatIdnEmail.ts +4 -0
  443. package/src/validators/functional/_isFormatIdnHostname.ts +4 -0
  444. package/src/validators/functional/_isFormatIpv4.ts +4 -0
  445. package/src/validators/functional/_isFormatIpv6.ts +4 -0
  446. package/src/validators/functional/_isFormatIri.ts +3 -0
  447. package/src/validators/functional/_isFormatIriReference.ts +4 -0
  448. package/src/validators/functional/_isFormatJsonPointer.ts +3 -0
  449. package/src/validators/functional/_isFormatPassword.ts +1 -0
  450. package/src/validators/functional/_isFormatRegex.ts +8 -0
  451. package/src/validators/functional/_isFormatRelativeJsonPointer.ts +4 -0
  452. package/src/validators/functional/_isFormatTime.ts +4 -0
  453. package/src/validators/functional/_isFormatUri.ts +6 -0
  454. package/src/validators/functional/_isFormatUriReference.ts +5 -0
  455. package/src/validators/functional/_isFormatUriTemplate.ts +4 -0
  456. package/src/validators/functional/_isFormatUrl.ts +4 -0
  457. package/src/validators/functional/_isFormatUuid.ts +3 -0
  458. package/src/validators/functional/_isUniqueItems.ts +159 -0
  459. package/src/validators/index.ts +14 -0
  460. package/src/validators/internal/IOpenApiValidatorContext.ts +17 -0
  461. package/src/validators/internal/OpenApiArrayValidator.ts +49 -0
  462. package/src/validators/internal/OpenApiBooleanValidator.ts +11 -0
  463. package/src/validators/internal/OpenApiConstantValidator.ts +11 -0
  464. package/src/validators/internal/OpenApiIntegerValidator.ts +49 -0
  465. package/src/validators/internal/OpenApiNumberValidator.ts +48 -0
  466. package/src/validators/internal/OpenApiObjectValidator.ts +83 -0
  467. package/src/validators/internal/OpenApiOneOfValidator.ts +309 -0
  468. package/src/validators/internal/OpenApiSchemaNamingRule.ts +124 -0
  469. package/src/validators/internal/OpenApiStationValidator.ts +115 -0
  470. package/src/validators/internal/OpenApiStringValidator.ts +88 -0
  471. package/src/validators/internal/OpenApiTupleValidator.ts +55 -0
@@ -0,0 +1,584 @@
1
+ import { MapUtil } from '../MapUtil.mjs';
2
+ import { JsonDescriptor } from './JsonDescriptor.mjs';
3
+
4
+ /** @internal */
5
+ var OpenApiTypeCheckerBase;
6
+ (function (OpenApiTypeCheckerBase) {
7
+ /* -----------------------------------------------------------
8
+ TYPE CHECKERS
9
+ ----------------------------------------------------------- */
10
+ OpenApiTypeCheckerBase.isNull = (schema) => schema.type === "null";
11
+ OpenApiTypeCheckerBase.isUnknown = (schema) => schema.type === undefined &&
12
+ !OpenApiTypeCheckerBase.isConstant(schema) &&
13
+ !OpenApiTypeCheckerBase.isOneOf(schema) &&
14
+ !OpenApiTypeCheckerBase.isReference(schema);
15
+ OpenApiTypeCheckerBase.isConstant = (schema) => schema.const !== undefined;
16
+ OpenApiTypeCheckerBase.isBoolean = (schema) => schema.type === "boolean";
17
+ OpenApiTypeCheckerBase.isInteger = (schema) => schema.type === "integer";
18
+ OpenApiTypeCheckerBase.isNumber = (schema) => schema.type === "number";
19
+ OpenApiTypeCheckerBase.isString = (schema) => schema.type === "string";
20
+ OpenApiTypeCheckerBase.isArray = (schema) => schema.type === "array" &&
21
+ schema.items !== undefined;
22
+ OpenApiTypeCheckerBase.isTuple = (schema) => schema.type === "array" &&
23
+ schema.prefixItems !== undefined;
24
+ OpenApiTypeCheckerBase.isObject = (schema) => schema.type === "object";
25
+ OpenApiTypeCheckerBase.isReference = (schema) => schema.$ref !== undefined;
26
+ OpenApiTypeCheckerBase.isOneOf = (schema) => schema.oneOf !== undefined;
27
+ OpenApiTypeCheckerBase.isRecursiveReference = (props) => {
28
+ if (OpenApiTypeCheckerBase.isReference(props.schema) === false)
29
+ return false;
30
+ const current = props.schema.$ref.split(props.prefix)[1] ??
31
+ props.schema.$ref.split("/").at(-1);
32
+ let counter = 0;
33
+ OpenApiTypeCheckerBase.visit({
34
+ prefix: props.prefix,
35
+ components: props.components,
36
+ schema: props.schema,
37
+ closure: (schema) => {
38
+ if (OpenApiTypeCheckerBase.isReference(schema)) {
39
+ const next = schema.$ref.split(props.prefix)[1] ??
40
+ schema.$ref.split("/").at(-1);
41
+ if (current === next)
42
+ ++counter;
43
+ }
44
+ },
45
+ });
46
+ return counter > 1;
47
+ };
48
+ /* -----------------------------------------------------------
49
+ OPERATORS
50
+ ----------------------------------------------------------- */
51
+ OpenApiTypeCheckerBase.unreference = (props) => {
52
+ const reasons = [];
53
+ const result = unreferenceSchema({
54
+ prefix: props.prefix,
55
+ refAccessor: props.refAccessor ??
56
+ `$input.${props.prefix
57
+ .substring(2)
58
+ .split("/")
59
+ .filter((s) => !!s.length)
60
+ .join(".")}`,
61
+ accessor: props.accessor ?? "$input.schema",
62
+ components: props.components,
63
+ schema: props.schema,
64
+ reasons,
65
+ });
66
+ if (result === null)
67
+ return {
68
+ success: false,
69
+ error: {
70
+ method: props.method,
71
+ message: `failed to unreference due to unable to find.`,
72
+ reasons,
73
+ },
74
+ };
75
+ return {
76
+ success: true,
77
+ value: result,
78
+ };
79
+ };
80
+ OpenApiTypeCheckerBase.escape = (props) => {
81
+ const reasons = [];
82
+ const result = escapeSchema({
83
+ ...props,
84
+ reasons,
85
+ visited: new Map(),
86
+ accessor: props.accessor ?? "$input.schema",
87
+ refAccessor: props.refAccessor ?? getReference(props.prefix),
88
+ }) || null;
89
+ if (result === null)
90
+ return {
91
+ success: false,
92
+ error: {
93
+ method: props.method,
94
+ message: `failed to escape some reference type(s) due to unable to find${Number(props.recursive) === 0 ? " or recursive relationship" : ""}.`,
95
+ reasons,
96
+ },
97
+ };
98
+ return {
99
+ success: true,
100
+ value: result,
101
+ };
102
+ };
103
+ OpenApiTypeCheckerBase.visit = (props) => {
104
+ const already = new Set();
105
+ const refAccessor = props.refAccessor ?? `$input.${getReference(props.prefix)}`;
106
+ const next = (schema, accessor) => {
107
+ props.closure(schema, accessor);
108
+ if (OpenApiTypeCheckerBase.isReference(schema)) {
109
+ const key = schema.$ref.split(props.prefix).pop();
110
+ if (already.has(key) === true)
111
+ return;
112
+ already.add(key);
113
+ const found = props.components.schemas?.[key];
114
+ if (found !== undefined)
115
+ next(found, `${refAccessor}[${JSON.stringify(key)}]`);
116
+ }
117
+ else if (OpenApiTypeCheckerBase.isOneOf(schema))
118
+ schema.oneOf.forEach((s, i) => next(s, `${accessor}.oneOf[${i}]`));
119
+ else if (OpenApiTypeCheckerBase.isObject(schema)) {
120
+ for (const [key, value] of Object.entries(schema.properties ?? {}))
121
+ next(value, `${accessor}.properties[${JSON.stringify(key)}]`);
122
+ if (typeof schema.additionalProperties === "object" &&
123
+ schema.additionalProperties !== null)
124
+ next(schema.additionalProperties, `${accessor}.additionalProperties`);
125
+ }
126
+ else if (OpenApiTypeCheckerBase.isArray(schema))
127
+ next(schema.items, `${accessor}.items`);
128
+ else if (OpenApiTypeCheckerBase.isTuple(schema)) {
129
+ (schema.prefixItems ?? []).forEach((s, i) => next(s, `${accessor}.prefixItems[${i}]`));
130
+ if (typeof schema.additionalItems === "object" &&
131
+ schema.additionalItems !== null)
132
+ next(schema.additionalItems, `${accessor}.additionalItems`);
133
+ }
134
+ };
135
+ next(props.schema, props.accessor ?? "$input.schema");
136
+ };
137
+ OpenApiTypeCheckerBase.covers = (props) => coverStation({
138
+ prefix: props.prefix,
139
+ components: props.components,
140
+ x: props.x,
141
+ y: props.y,
142
+ visited: new Map(),
143
+ });
144
+ const unreferenceSchema = (props) => {
145
+ if (OpenApiTypeCheckerBase.isReference(props.schema) === false)
146
+ return props.schema;
147
+ const key = props.schema.$ref.split(props.prefix).pop();
148
+ const found = props.components.schemas?.[key];
149
+ if (found === undefined) {
150
+ props.reasons.push({
151
+ schema: props.schema,
152
+ accessor: props.accessor,
153
+ message: `unable to find reference type ${JSON.stringify(key)}.`,
154
+ });
155
+ return null;
156
+ }
157
+ else if (OpenApiTypeCheckerBase.isReference(found) === false)
158
+ return found;
159
+ else if (props.first === key) {
160
+ props.reasons.push({
161
+ schema: props.schema,
162
+ accessor: props.accessor,
163
+ message: `recursive reference type ${JSON.stringify(key)}.`,
164
+ });
165
+ return null;
166
+ }
167
+ return unreferenceSchema({
168
+ ...props,
169
+ accessor: `${props.refAccessor}[${JSON.stringify(key)}]`,
170
+ first: key,
171
+ });
172
+ };
173
+ const escapeSchema = (props) => {
174
+ if (OpenApiTypeCheckerBase.isReference(props.schema)) {
175
+ // REFERENCE
176
+ const key = props.schema.$ref.split(props.prefix)[1] ??
177
+ props.schema.$ref.split("/").at(-1);
178
+ const target = props.components.schemas?.[key];
179
+ if (target === undefined) {
180
+ props.reasons.push({
181
+ schema: props.schema,
182
+ accessor: props.accessor,
183
+ message: `unable to find reference type ${JSON.stringify(key)}.`,
184
+ });
185
+ return null;
186
+ }
187
+ else if (props.visited.has(key) === true) {
188
+ if (props.recursive === false)
189
+ return null;
190
+ const depth = props.visited.get(key);
191
+ if (depth > props.recursive) {
192
+ if (props.recursive === 0) {
193
+ props.reasons.push({
194
+ schema: props.schema,
195
+ accessor: props.accessor,
196
+ message: `recursive reference type ${JSON.stringify(key)}.`,
197
+ });
198
+ return null;
199
+ }
200
+ return undefined;
201
+ }
202
+ props.visited.set(key, depth + 1);
203
+ const res = escapeSchema({
204
+ ...props,
205
+ schema: target,
206
+ accessor: `${props.refAccessor}[${JSON.stringify(key)}]`,
207
+ });
208
+ return res
209
+ ? {
210
+ ...res,
211
+ description: JsonDescriptor.cascade({
212
+ prefix: props.prefix,
213
+ components: props.components,
214
+ schema: props.schema,
215
+ escape: true,
216
+ }),
217
+ }
218
+ : res;
219
+ }
220
+ else {
221
+ const res = escapeSchema({
222
+ ...props,
223
+ schema: target,
224
+ accessor: `${props.refAccessor}[${JSON.stringify(key)}]`,
225
+ visited: new Map([...props.visited, [key, 1]]),
226
+ });
227
+ return res
228
+ ? {
229
+ ...res,
230
+ description: JsonDescriptor.cascade({
231
+ prefix: props.prefix,
232
+ components: props.components,
233
+ schema: props.schema,
234
+ escape: true,
235
+ }),
236
+ }
237
+ : res;
238
+ }
239
+ }
240
+ else if (OpenApiTypeCheckerBase.isOneOf(props.schema)) {
241
+ // UNION
242
+ const elements = props.schema.oneOf.map((s, i) => escapeSchema({
243
+ ...props,
244
+ schema: s,
245
+ accessor: `${props.accessor}.oneOf[${i}]`,
246
+ }));
247
+ if (elements.some((v) => v === null))
248
+ return null;
249
+ const filtered = elements.filter((v) => v !== undefined);
250
+ if (filtered.length === 0)
251
+ return undefined;
252
+ return {
253
+ ...props.schema,
254
+ oneOf: filtered
255
+ .map((v) => flatSchema({
256
+ prefix: props.prefix,
257
+ components: props.components,
258
+ schema: v,
259
+ }))
260
+ .flat(),
261
+ };
262
+ }
263
+ else if (OpenApiTypeCheckerBase.isObject(props.schema)) {
264
+ // OBJECT
265
+ const object = props.schema;
266
+ const properties = Object.entries(object.properties ?? {}).map(([k, s]) => [
267
+ k,
268
+ escapeSchema({
269
+ ...props,
270
+ schema: s,
271
+ visited: props.visited,
272
+ accessor: `${props.accessor}.properties[${JSON.stringify(k)}]`,
273
+ }),
274
+ ]);
275
+ const additionalProperties = object.additionalProperties
276
+ ? typeof object.additionalProperties === "object" &&
277
+ object.additionalProperties !== null
278
+ ? escapeSchema({
279
+ ...props,
280
+ schema: object.additionalProperties,
281
+ accessor: `${props.accessor}.additionalProperties`,
282
+ })
283
+ : object.additionalProperties
284
+ : false;
285
+ if (properties.some(([_k, v]) => v === null) ||
286
+ additionalProperties === null)
287
+ return null;
288
+ else if (properties.some(([k, v]) => v === undefined && object.required?.includes(k) === true) === true)
289
+ return undefined;
290
+ return {
291
+ ...object,
292
+ properties: Object.fromEntries(properties.filter(([_k, v]) => v !== undefined)),
293
+ additionalProperties: additionalProperties ?? false,
294
+ required: object.required?.filter((k) => properties.some(([key, value]) => key === k && value !== undefined)) ?? [],
295
+ };
296
+ }
297
+ else if (OpenApiTypeCheckerBase.isTuple(props.schema)) {
298
+ // TUPLE
299
+ const elements = props.schema.prefixItems.map((s, i) => escapeSchema({
300
+ ...props,
301
+ schema: s,
302
+ accessor: `${props.accessor}.prefixItems[${i}]`,
303
+ }));
304
+ const additionalItems = props.schema.additionalItems
305
+ ? typeof props.schema.additionalItems === "object" &&
306
+ props.schema.additionalItems !== null
307
+ ? escapeSchema({
308
+ ...props,
309
+ schema: props.schema.additionalItems,
310
+ accessor: `${props.accessor}.additionalItems`,
311
+ })
312
+ : props.schema.additionalItems
313
+ : false;
314
+ if (elements.some((v) => v === null) || additionalItems === null)
315
+ return null;
316
+ else if (elements.some((v) => v === undefined))
317
+ return undefined;
318
+ return {
319
+ ...props.schema,
320
+ prefixItems: elements,
321
+ additionalItems: additionalItems ?? false,
322
+ };
323
+ }
324
+ else if (OpenApiTypeCheckerBase.isArray(props.schema)) {
325
+ // ARRAY
326
+ const items = escapeSchema({
327
+ ...props,
328
+ schema: props.schema.items,
329
+ accessor: `${props.accessor}.items`,
330
+ });
331
+ if (items === null)
332
+ return null;
333
+ else if (items === undefined)
334
+ return {
335
+ ...props.schema,
336
+ minItems: undefined,
337
+ maxItems: 0,
338
+ items: {},
339
+ };
340
+ return {
341
+ ...props.schema,
342
+ items: items,
343
+ };
344
+ }
345
+ return props.schema;
346
+ };
347
+ const coverStation = (p) => {
348
+ const cache = p.visited.get(p.x)?.get(p.y);
349
+ if (cache !== undefined)
350
+ return cache;
351
+ // FOR RECURSIVE CASE
352
+ const nested = MapUtil.take(p.visited, p.x, () => new Map());
353
+ nested.set(p.y, true);
354
+ // COMPUTE IT
355
+ const result = coverSchema(p);
356
+ nested.set(p.y, result);
357
+ return result;
358
+ };
359
+ const coverSchema = (p) => {
360
+ // CHECK EQUALITY
361
+ if (p.x === p.y)
362
+ return true;
363
+ else if (OpenApiTypeCheckerBase.isReference(p.x) && OpenApiTypeCheckerBase.isReference(p.y) && p.x.$ref === p.y.$ref)
364
+ return true;
365
+ // COMPARE WITH FLATTENING
366
+ const alpha = flatSchema({
367
+ prefix: p.prefix,
368
+ components: p.components,
369
+ schema: p.x,
370
+ });
371
+ const beta = flatSchema({
372
+ prefix: p.prefix,
373
+ components: p.components,
374
+ schema: p.y,
375
+ });
376
+ if (alpha.some((x) => OpenApiTypeCheckerBase.isUnknown(x)))
377
+ return true;
378
+ else if (beta.some((x) => OpenApiTypeCheckerBase.isUnknown(x)))
379
+ return false;
380
+ return beta.every((b) => alpha.some((a) => coverEscapedSchema({
381
+ prefix: p.prefix,
382
+ components: p.components,
383
+ visited: p.visited,
384
+ x: a,
385
+ y: b,
386
+ })));
387
+ };
388
+ const coverEscapedSchema = (p) => {
389
+ // CHECK EQUALITY
390
+ if (p.x === p.y)
391
+ return true;
392
+ else if (OpenApiTypeCheckerBase.isUnknown(p.x))
393
+ return true;
394
+ else if (OpenApiTypeCheckerBase.isUnknown(p.y))
395
+ return false;
396
+ else if (OpenApiTypeCheckerBase.isNull(p.x))
397
+ return OpenApiTypeCheckerBase.isNull(p.y);
398
+ // ATOMIC CASE
399
+ else if (OpenApiTypeCheckerBase.isConstant(p.x))
400
+ return OpenApiTypeCheckerBase.isConstant(p.y) && p.x.const === p.y.const;
401
+ else if (OpenApiTypeCheckerBase.isBoolean(p.x))
402
+ return (OpenApiTypeCheckerBase.isBoolean(p.y) || (OpenApiTypeCheckerBase.isConstant(p.y) && typeof p.y.const === "boolean"));
403
+ else if (OpenApiTypeCheckerBase.isInteger(p.x))
404
+ return (OpenApiTypeCheckerBase.isInteger(p.y) || OpenApiTypeCheckerBase.isConstant(p.y)) && OpenApiTypeCheckerBase.coverInteger(p.x, p.y);
405
+ else if (OpenApiTypeCheckerBase.isNumber(p.x))
406
+ return ((OpenApiTypeCheckerBase.isConstant(p.y) || OpenApiTypeCheckerBase.isInteger(p.y) || OpenApiTypeCheckerBase.isNumber(p.y)) &&
407
+ OpenApiTypeCheckerBase.coverNumber(p.x, p.y));
408
+ else if (OpenApiTypeCheckerBase.isString(p.x))
409
+ return (OpenApiTypeCheckerBase.isConstant(p.y) || OpenApiTypeCheckerBase.isString(p.y)) && OpenApiTypeCheckerBase.coverString(p.x, p.y);
410
+ // INSTANCE CASE
411
+ else if (OpenApiTypeCheckerBase.isArray(p.x))
412
+ return ((OpenApiTypeCheckerBase.isArray(p.y) || OpenApiTypeCheckerBase.isTuple(p.y)) &&
413
+ coverArray({
414
+ prefix: p.prefix,
415
+ components: p.components,
416
+ visited: p.visited,
417
+ x: p.x,
418
+ y: p.y,
419
+ }));
420
+ else if (OpenApiTypeCheckerBase.isObject(p.x))
421
+ return (OpenApiTypeCheckerBase.isObject(p.y) &&
422
+ coverObject({
423
+ prefix: p.prefix,
424
+ components: p.components,
425
+ visited: p.visited,
426
+ x: p.x,
427
+ y: p.y,
428
+ }));
429
+ else if (OpenApiTypeCheckerBase.isReference(p.x))
430
+ return OpenApiTypeCheckerBase.isReference(p.y) && p.x.$ref === p.y.$ref;
431
+ return false;
432
+ };
433
+ const coverArray = (p) => {
434
+ if (OpenApiTypeCheckerBase.isTuple(p.y))
435
+ return (p.y.prefixItems.every((v) => coverStation({
436
+ prefix: p.prefix,
437
+ components: p.components,
438
+ visited: p.visited,
439
+ x: p.x.items,
440
+ y: v,
441
+ })) &&
442
+ (p.y.additionalItems === undefined ||
443
+ (typeof p.y.additionalItems === "object" &&
444
+ coverStation({
445
+ prefix: p.prefix,
446
+ components: p.components,
447
+ visited: p.visited,
448
+ x: p.x.items,
449
+ y: p.y.additionalItems,
450
+ }))));
451
+ else if (!(p.x.minItems === undefined ||
452
+ (p.y.minItems !== undefined && p.x.minItems <= p.y.minItems)))
453
+ return false;
454
+ else if (!(p.x.maxItems === undefined ||
455
+ (p.y.maxItems !== undefined && p.x.maxItems >= p.y.maxItems)))
456
+ return false;
457
+ return coverStation({
458
+ prefix: p.prefix,
459
+ components: p.components,
460
+ visited: p.visited,
461
+ x: p.x.items,
462
+ y: p.y.items,
463
+ });
464
+ };
465
+ const coverObject = (p) => {
466
+ if (!p.x.additionalProperties && !!p.y.additionalProperties)
467
+ return false;
468
+ else if (!!p.x.additionalProperties &&
469
+ !!p.y.additionalProperties &&
470
+ ((typeof p.x.additionalProperties === "object" &&
471
+ p.y.additionalProperties === true) ||
472
+ (typeof p.x.additionalProperties === "object" &&
473
+ typeof p.y.additionalProperties === "object" &&
474
+ !coverStation({
475
+ prefix: p.prefix,
476
+ components: p.components,
477
+ visited: p.visited,
478
+ x: p.x.additionalProperties,
479
+ y: p.y.additionalProperties,
480
+ }))))
481
+ return false;
482
+ return Object.entries(p.y.properties ?? {}).every(([key, b]) => {
483
+ const a = p.x.properties?.[key];
484
+ if (a === undefined)
485
+ return false;
486
+ else if (p.x.required?.includes(key) === true &&
487
+ (p.y.required?.includes(key) ?? false) === false)
488
+ return false;
489
+ return coverStation({
490
+ prefix: p.prefix,
491
+ components: p.components,
492
+ visited: p.visited,
493
+ x: a,
494
+ y: b,
495
+ });
496
+ });
497
+ };
498
+ OpenApiTypeCheckerBase.coverInteger = (x, y) => {
499
+ if (OpenApiTypeCheckerBase.isConstant(y))
500
+ return typeof y.const === "number" && Number.isInteger(y.const);
501
+ return x.type === y.type && OpenApiTypeCheckerBase.coverNumericRange(x, y);
502
+ };
503
+ OpenApiTypeCheckerBase.coverNumber = (x, y) => {
504
+ if (OpenApiTypeCheckerBase.isConstant(y))
505
+ return typeof y.const === "number";
506
+ return ((x.type === y.type || (x.type === "number" && y.type === "integer")) &&
507
+ OpenApiTypeCheckerBase.coverNumericRange(x, y));
508
+ };
509
+ OpenApiTypeCheckerBase.coverString = (x, y) => {
510
+ if (OpenApiTypeCheckerBase.isConstant(y))
511
+ return typeof y.const === "string";
512
+ return [
513
+ x.format === undefined ||
514
+ (y.format !== undefined && coverFormat(x.format, y.format)),
515
+ x.pattern === undefined || x.pattern === y.pattern,
516
+ x.minLength === undefined ||
517
+ (y.minLength !== undefined && x.minLength <= y.minLength),
518
+ x.maxLength === undefined ||
519
+ (y.maxLength !== undefined && x.maxLength >= y.maxLength),
520
+ ].every((v) => v);
521
+ };
522
+ const coverFormat = (x, y) => x === y ||
523
+ (x === "idn-email" && y === "email") ||
524
+ (x === "idn-hostname" && y === "hostname") ||
525
+ (["uri", "iri"].includes(x) && y === "url") ||
526
+ (x === "iri" && y === "uri") ||
527
+ (x === "iri-reference" && y === "uri-reference");
528
+ const flatSchema = (props) => {
529
+ const schema = escapeReferenceOfFlatSchema(props);
530
+ if (OpenApiTypeCheckerBase.isOneOf(schema))
531
+ return schema.oneOf
532
+ .map((v) => flatSchema({
533
+ prefix: props.prefix,
534
+ components: props.components,
535
+ schema: v,
536
+ }))
537
+ .flat();
538
+ return [schema];
539
+ };
540
+ const escapeReferenceOfFlatSchema = (props) => {
541
+ if (OpenApiTypeCheckerBase.isReference(props.schema) === false)
542
+ return props.schema;
543
+ const key = props.schema.$ref.replace(props.prefix, "");
544
+ const found = escapeReferenceOfFlatSchema({
545
+ prefix: props.prefix,
546
+ components: props.components,
547
+ schema: props.components.schemas?.[key] ?? {},
548
+ });
549
+ if (found === undefined)
550
+ throw new Error(`Reference type not found: ${JSON.stringify(props.schema.$ref)}`);
551
+ return escapeReferenceOfFlatSchema({
552
+ prefix: props.prefix,
553
+ components: props.components,
554
+ schema: found,
555
+ });
556
+ };
557
+ OpenApiTypeCheckerBase.coverNumericRange = (x, y) => [
558
+ x.minimum === undefined ||
559
+ (y.minimum !== undefined && x.minimum <= y.minimum) ||
560
+ (y.exclusiveMinimum !== undefined && x.minimum < y.exclusiveMinimum),
561
+ x.maximum === undefined ||
562
+ (y.maximum !== undefined && x.maximum >= y.maximum) ||
563
+ (y.exclusiveMaximum !== undefined && x.maximum > y.exclusiveMaximum),
564
+ x.exclusiveMinimum === undefined ||
565
+ (y.minimum !== undefined && x.exclusiveMinimum <= y.minimum) ||
566
+ (y.exclusiveMinimum !== undefined &&
567
+ x.exclusiveMinimum <= y.exclusiveMinimum),
568
+ x.exclusiveMaximum === undefined ||
569
+ (y.maximum !== undefined && x.exclusiveMaximum >= y.maximum) ||
570
+ (y.exclusiveMaximum !== undefined &&
571
+ x.exclusiveMaximum >= y.exclusiveMaximum),
572
+ x.multipleOf === undefined ||
573
+ (y.multipleOf !== undefined &&
574
+ y.multipleOf / x.multipleOf ===
575
+ Math.floor(y.multipleOf / x.multipleOf)),
576
+ ].every((v) => v);
577
+ })(OpenApiTypeCheckerBase || (OpenApiTypeCheckerBase = {}));
578
+ const getReference = (prefix) => prefix
579
+ .split("/")
580
+ .filter((str, i) => !!str.length && !(i === 0 && str === "#"))
581
+ .join(".");
582
+
583
+ export { OpenApiTypeCheckerBase };
584
+ //# sourceMappingURL=OpenApiTypeCheckerBase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiTypeCheckerBase.mjs","sources":["../../../src/utils/internal/OpenApiTypeCheckerBase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { IValidation } from "@typia/interface";
2
+ /**
3
+ * Format validation failure for LLM auto-correction feedback.
4
+ *
5
+ * When LLM generates invalid function call arguments, this produces annotated
6
+ * JSON with inline `// ❌` error comments at each invalid property. The output
7
+ * is wrapped in a markdown code block so that LLM can understand and correct
8
+ * its mistakes in the next turn.
9
+ *
10
+ * Below is an example of the output format:
11
+ *
12
+ * ```json
13
+ * {
14
+ * "name": "John",
15
+ * "age": "twenty", // ❌ [{"path":"$input.age","expected":"number & Type<\"uint32\">"}]
16
+ * "email": "not-an-email", // ❌ [{"path":"$input.email","expected":"string & Format<\"email\">"}]
17
+ * "hobbies": "reading" // ❌ [{"path":"$input.hobbies","expected":"Array<string>"}]
18
+ * }
19
+ * ```
20
+ *
21
+ * @author Jeongho Nam - https://github.com/samchon
22
+ * @param failure Validation failure from {@link ILlmFunction.validate}
23
+ * @returns Markdown code block with error-annotated JSON
24
+ */
25
+ export declare function stringifyValidationFailure(failure: IValidation.IFailure): string;