@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,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenApiObjectValidator = void 0;
4
+ const NamingConvention_1 = require("../../utils/NamingConvention");
5
+ const OpenApiStationValidator_1 = require("./OpenApiStationValidator");
6
+ var OpenApiObjectValidator;
7
+ (function (OpenApiObjectValidator) {
8
+ OpenApiObjectValidator.validate = (ctx) => {
9
+ var _a, _b;
10
+ if (typeof ctx.value !== "object" || ctx.value === null)
11
+ return ctx.report(ctx);
12
+ return [
13
+ ...Object.entries((_a = ctx.schema.properties) !== null && _a !== void 0 ? _a : {}).map(([key, value]) => {
14
+ var _a, _b;
15
+ return OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: value, value: ctx.value[key], path: ctx.path +
16
+ (NamingConvention_1.NamingConvention.variable(key)
17
+ ? `.${key}`
18
+ : `[${JSON.stringify(key)}]`), required: (_b = (_a = ctx.schema.required) === null || _a === void 0 ? void 0 : _a.includes(key)) !== null && _b !== void 0 ? _b : false }));
19
+ }),
20
+ ...(typeof ctx.schema.additionalProperties === "object" &&
21
+ ctx.schema.additionalProperties !== null
22
+ ? Object.entries(ctx.value)
23
+ .filter(([key]) => {
24
+ var _a;
25
+ return Object.keys((_a = ctx.schema.properties) !== null && _a !== void 0 ? _a : {}).includes(key) ===
26
+ false;
27
+ })
28
+ .map(([key, value]) => OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: ctx.schema.additionalProperties, value, path: ctx.path +
29
+ (NamingConvention_1.NamingConvention.variable(key)
30
+ ? `.${key}`
31
+ : `[${JSON.stringify(key)}]`), required: true })))
32
+ : []),
33
+ ...(ctx.equals === true &&
34
+ ((_b = ctx.schema.additionalProperties) !== null && _b !== void 0 ? _b : false) === false
35
+ ? [validateEquals(ctx)]
36
+ : []),
37
+ ].every((v) => v);
38
+ };
39
+ const validateEquals = (ctx) => {
40
+ var _a;
41
+ const regular = new Set(Object.keys((_a = ctx.schema.properties) !== null && _a !== void 0 ? _a : {}));
42
+ return Object.entries(ctx.value)
43
+ .map(([key, value]) => {
44
+ if (regular.has(key) === true)
45
+ return true;
46
+ return ctx.report(Object.assign(Object.assign({}, ctx), { path: ctx.path +
47
+ (NamingConvention_1.NamingConvention.variable(key)
48
+ ? `.${key}`
49
+ : `[${JSON.stringify(key)}]`), value, expected: "undefined", description: [
50
+ `The property \`${key}\` is not defined in the object type.`,
51
+ "",
52
+ "Please remove the property next time.",
53
+ ].join("\n") }));
54
+ })
55
+ .every((v) => v);
56
+ };
57
+ })(OpenApiObjectValidator || (exports.OpenApiObjectValidator = OpenApiObjectValidator = {}));
58
+ //# sourceMappingURL=OpenApiObjectValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiObjectValidator.js","sourceRoot":"","sources":["../../../src/validators/internal/OpenApiObjectValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { NamingConvention } from '../../utils/NamingConvention.mjs';
2
+ import { OpenApiStationValidator } from './OpenApiStationValidator.mjs';
3
+
4
+ var OpenApiObjectValidator;
5
+ (function (OpenApiObjectValidator) {
6
+ OpenApiObjectValidator.validate = (ctx) => {
7
+ if (typeof ctx.value !== "object" || ctx.value === null)
8
+ return ctx.report(ctx);
9
+ return [
10
+ ...Object.entries(ctx.schema.properties ?? {}).map(([key, value]) => OpenApiStationValidator.validate({
11
+ ...ctx,
12
+ schema: value,
13
+ value: ctx.value[key],
14
+ path: ctx.path +
15
+ (NamingConvention.variable(key)
16
+ ? `.${key}`
17
+ : `[${JSON.stringify(key)}]`),
18
+ required: ctx.schema.required?.includes(key) ?? false,
19
+ })),
20
+ ...(typeof ctx.schema.additionalProperties === "object" &&
21
+ ctx.schema.additionalProperties !== null
22
+ ? Object.entries(ctx.value)
23
+ .filter(([key]) => Object.keys(ctx.schema.properties ?? {}).includes(key) ===
24
+ false)
25
+ .map(([key, value]) => OpenApiStationValidator.validate({
26
+ ...ctx,
27
+ schema: ctx.schema.additionalProperties,
28
+ value,
29
+ path: ctx.path +
30
+ (NamingConvention.variable(key)
31
+ ? `.${key}`
32
+ : `[${JSON.stringify(key)}]`),
33
+ required: true,
34
+ }))
35
+ : []),
36
+ ...(ctx.equals === true &&
37
+ (ctx.schema.additionalProperties ?? false) === false
38
+ ? [validateEquals(ctx)]
39
+ : []),
40
+ ].every((v) => v);
41
+ };
42
+ const validateEquals = (ctx) => {
43
+ const regular = new Set(Object.keys(ctx.schema.properties ?? {}));
44
+ return Object.entries(ctx.value)
45
+ .map(([key, value]) => {
46
+ if (regular.has(key) === true)
47
+ return true;
48
+ return ctx.report({
49
+ ...ctx,
50
+ path: ctx.path +
51
+ (NamingConvention.variable(key)
52
+ ? `.${key}`
53
+ : `[${JSON.stringify(key)}]`),
54
+ value,
55
+ expected: "undefined",
56
+ description: [
57
+ `The property \`${key}\` is not defined in the object type.`,
58
+ "",
59
+ "Please remove the property next time.",
60
+ ].join("\n"),
61
+ });
62
+ })
63
+ .every((v) => v);
64
+ };
65
+ })(OpenApiObjectValidator || (OpenApiObjectValidator = {}));
66
+
67
+ export { OpenApiObjectValidator };
68
+ //# sourceMappingURL=OpenApiObjectValidator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiObjectValidator.mjs","sources":["../../../src/validators/internal/OpenApiObjectValidator.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAMM,IAAW;AAAjB,CAAA,UAAiB,sBAAsB,EAAA;AACxB,IAAA,sBAAA,CAAA,QAAQ,GAAG,CACtB,GAA0D,KAC/C;QACX,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI;AACrD,YAAA,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QACxB,OAAO;YACL,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAC9D,uBAAuB,CAAC,QAAQ,CAAC;AAC/B,gBAAA,GAAG,GAAG;AACN,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAG,GAAG,CAAC,KAA6B,CAAC,GAAG,CAAC;gBAC9C,IAAI,EACF,GAAG,CAAC,IAAI;AACR,qBAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG;0BAC1B,CAAA,CAAA,EAAI,GAAG,CAAA;0BACP,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACjC,gBAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK;AACtD,aAAA,CAAC,CACH;YACD,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK,QAAQ;AACvD,gBAAA,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK;kBAChC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;qBACrB,MAAM,CACL,CAAC,CAAC,GAAG,CAAC,KACJ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtD,oBAAA,KAAK;AAER,qBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAChB,uBAAuB,CAAC,QAAQ,CAAC;AAC/B,oBAAA,GAAG,GAAG;AACN,oBAAA,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,oBAA2C;oBAC9D,KAAK;oBACL,IAAI,EACF,GAAG,CAAC,IAAI;AACR,yBAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG;8BAC1B,CAAA,CAAA,EAAI,GAAG,CAAA;8BACP,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACjC,oBAAA,QAAQ,EAAE,IAAI;AACf,iBAAA,CAAC;kBAEN,EAAE,CAAC;AACP,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI;gBACvB,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,KAAK,MAAM;AAC7C,kBAAE,CAAC,cAAc,CAAC,GAAG,CAAC;kBACpB,EAAE,CAAC;SACR,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACnB,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CACrB,GAA0D,KAC/C;AACX,QAAA,MAAM,OAAO,GAAgB,IAAI,GAAG,CAClC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CACzC;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAe;aACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACpB,YAAA,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;AAAE,gBAAA,OAAO,IAAI;YAC1C,OAAO,GAAG,CAAC,MAAM,CAAC;AAChB,gBAAA,GAAG,GAAG;gBACN,IAAI,EACF,GAAG,CAAC,IAAI;AACR,qBAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG;0BAC1B,CAAA,CAAA,EAAI,GAAG,CAAA;0BACP,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;gBACjC,KAAK;AACL,gBAAA,QAAQ,EAAE,WAAW;AACrB,gBAAA,WAAW,EAAE;AACX,oBAAA,CAAA,eAAA,EAAkB,GAAG,CAAA,qCAAA,CAAuC;oBAC5D,EAAE;oBACF,uCAAuC;iBACxC,CAAC,IAAI,CAAC,IAAI,CAAC;AACb,aAAA,CAAC;AACJ,QAAA,CAAC;aACA,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpB,IAAA,CAAC;AACH,CAAC,EA5EgB,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,5 @@
1
+ import { OpenApi } from "@typia/interface";
2
+ import { IOpenApiValidatorContext } from "./IOpenApiValidatorContext";
3
+ export declare namespace OpenApiOneOfValidator {
4
+ const validate: (ctx: IOpenApiValidatorContext<OpenApi.IJsonSchema.IOneOf>) => boolean;
5
+ }
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenApiOneOfValidator = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const OpenApiTypeChecker_1 = require("../OpenApiTypeChecker");
6
+ const OpenApiStationValidator_1 = require("./OpenApiStationValidator");
7
+ var OpenApiOneOfValidator;
8
+ (function (OpenApiOneOfValidator) {
9
+ OpenApiOneOfValidator.validate = (ctx) => {
10
+ const discriminator = getDiscriminator(ctx);
11
+ for (const item of discriminator.branches)
12
+ if (item.predicator(ctx.value))
13
+ return OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: item.schema }));
14
+ if (discriminator.branches.length !== 0)
15
+ return OpenApiOneOfValidator.validate(Object.assign(Object.assign({}, ctx), { schema: {
16
+ oneOf: discriminator.remainders,
17
+ } }));
18
+ const matched = discriminator.remainders.find((schema) => OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema, exceptionable: false, equals: false })) === true);
19
+ if (matched === undefined)
20
+ return ctx.report(ctx);
21
+ return ctx.equals === true
22
+ ? OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: matched }))
23
+ : true;
24
+ };
25
+ const getDiscriminator = (ctx) => {
26
+ const resolvedList = ctx.schema.oneOf.map((schema) => getFlattened({
27
+ components: ctx.components,
28
+ schema,
29
+ visited: new Set(),
30
+ }));
31
+ // FIND ANY TYPE
32
+ const anything = resolvedList.find((resolved) => OpenApiTypeChecker_1.OpenApiTypeChecker.isUnknown(resolved.escaped));
33
+ if (anything)
34
+ return {
35
+ branches: [],
36
+ remainders: [anything.schema],
37
+ };
38
+ // CHECK NULLABLES
39
+ const nullables = resolvedList.filter((resolved) => OpenApiTypeChecker_1.OpenApiTypeChecker.isNull(resolved.schema));
40
+ const significant = resolvedList.filter((resolved) => false === OpenApiTypeChecker_1.OpenApiTypeChecker.isNull(resolved.escaped));
41
+ if (significant.length === 1)
42
+ return {
43
+ branches: [
44
+ {
45
+ schema: significant[0].schema,
46
+ predicator: (value) => value !== null,
47
+ },
48
+ ],
49
+ remainders: nullables.map((nullable) => nullable.schema),
50
+ };
51
+ // DISCRIMINATIONS
52
+ const tuples = significant.filter((flat) => OpenApiTypeChecker_1.OpenApiTypeChecker.isTuple(flat.escaped));
53
+ const arrays = significant.filter((flat) => OpenApiTypeChecker_1.OpenApiTypeChecker.isArray(flat.escaped));
54
+ const branches = [
55
+ ...(tuples.length === 0 && arrays.length !== 0
56
+ ? discriminateArrays(ctx, significant.filter((flat) => OpenApiTypeChecker_1.OpenApiTypeChecker.isArray(flat.schema)))
57
+ : []),
58
+ ...discriminateObjects(ctx, significant.filter((flat) => OpenApiTypeChecker_1.OpenApiTypeChecker.isObject(flat.escaped)), tuples.length + arrays.length === 0),
59
+ ];
60
+ return {
61
+ branches,
62
+ remainders: ctx.schema.oneOf.filter((x) => branches.some((y) => y.schema === x) === false),
63
+ };
64
+ };
65
+ const discriminateArrays = (ctx, arraySchemas) => {
66
+ if (arraySchemas.length === 1)
67
+ return [
68
+ {
69
+ schema: arraySchemas[0].schema,
70
+ predicator: (value) => Array.isArray(value),
71
+ },
72
+ ];
73
+ return arraySchemas
74
+ .filter((flat, i, array) => array.every((item, j) => i === j ||
75
+ OpenApiTypeChecker_1.OpenApiTypeChecker.covers({
76
+ components: ctx.components,
77
+ x: item.escaped.items,
78
+ y: flat.escaped.items,
79
+ }) === false))
80
+ .map((flat) => ({
81
+ schema: flat.schema,
82
+ predicator: (value) => Array.isArray(value) &&
83
+ (value.length === 0 ||
84
+ OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: flat.escaped.items, value: value[0], path: `${ctx.path}[0]`, exceptionable: false, equals: false }))),
85
+ }));
86
+ };
87
+ const discriminateObjects = (ctx, objectSchemas, noArray) => {
88
+ if (objectSchemas.length === 1)
89
+ return [
90
+ {
91
+ schema: objectSchemas[0].schema,
92
+ predicator: noArray
93
+ ? (value) => typeof value === "object" && value !== null
94
+ : (value) => typeof value === "object" &&
95
+ value !== null &&
96
+ Array.isArray(value) === false,
97
+ },
98
+ ];
99
+ // KEEP ONLY REQUIRED PROPERTIES
100
+ objectSchemas = objectSchemas
101
+ .filter((flat) => flat.escaped.properties !== undefined &&
102
+ flat.escaped.required !== undefined)
103
+ .map((flat) => {
104
+ var _a;
105
+ return (Object.assign(Object.assign({}, flat), { escaped: Object.assign(Object.assign({}, flat.escaped), { properties: Object.fromEntries(Object.entries((_a = flat.escaped.properties) !== null && _a !== void 0 ? _a : {}).map(([key, value]) => [
106
+ key,
107
+ getFlattened({
108
+ components: ctx.components,
109
+ schema: value,
110
+ visited: new Set(),
111
+ }).escaped,
112
+ ])) }) }));
113
+ });
114
+ // PROPERTY MATRIX
115
+ const matrix = new Map();
116
+ objectSchemas.forEach((obj, i) => {
117
+ var _a, _b;
118
+ for (const [key, value] of Object.entries((_a = obj.escaped.properties) !== null && _a !== void 0 ? _a : {})) {
119
+ if (!!((_b = obj.escaped.required) === null || _b === void 0 ? void 0 : _b.includes(key)) === false)
120
+ continue;
121
+ utils_1.MapUtil.take(matrix, key, () => new Array(objectSchemas.length).fill(null))[i] = value;
122
+ }
123
+ });
124
+ // THE BRANCHES
125
+ return objectSchemas
126
+ .map((obj, i) => {
127
+ var _a, _b, _c;
128
+ const candidates = [];
129
+ for (const [key, value] of Object.entries((_a = obj.escaped.properties) !== null && _a !== void 0 ? _a : {})) {
130
+ if (!!((_b = obj.escaped.required) === null || _b === void 0 ? void 0 : _b.includes(key)) === false)
131
+ continue;
132
+ const neighbors = matrix
133
+ .get(key)
134
+ .filter((_oppo, j) => i !== j)
135
+ .filter((oppo) => oppo !== null);
136
+ const unique = OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(value)
137
+ ? neighbors.every((oppo) => OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(oppo) &&
138
+ value.const !== oppo.const)
139
+ : neighbors.length === 0;
140
+ if (unique)
141
+ candidates.push(key);
142
+ }
143
+ if (candidates.length === 0)
144
+ return null;
145
+ const top = (_c = candidates.find((key) => OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(obj.escaped.properties[key]))) !== null && _c !== void 0 ? _c : candidates[0];
146
+ const target = obj.escaped.properties[top];
147
+ return {
148
+ schema: obj.schema,
149
+ predicator: OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(target)
150
+ ? (value) => typeof value === "object" &&
151
+ value !== null &&
152
+ value[top] === target.const
153
+ : (value) => typeof value === "object" &&
154
+ value !== null &&
155
+ value[top] !== undefined,
156
+ };
157
+ })
158
+ .filter((b) => b !== null);
159
+ };
160
+ })(OpenApiOneOfValidator || (exports.OpenApiOneOfValidator = OpenApiOneOfValidator = {}));
161
+ const getFlattened = (props) => {
162
+ var _a, _b, _c;
163
+ if (OpenApiTypeChecker_1.OpenApiTypeChecker.isReference(props.schema)) {
164
+ const key = (_a = props.schema.$ref.split("/").pop()) !== null && _a !== void 0 ? _a : "";
165
+ if (props.visited.has(key))
166
+ return {
167
+ schema: props.schema,
168
+ escaped: {},
169
+ };
170
+ props.visited.add(key);
171
+ return Object.assign(Object.assign({}, getFlattened({
172
+ components: props.components,
173
+ schema: (_c = (_b = props.components.schemas) === null || _b === void 0 ? void 0 : _b[key]) !== null && _c !== void 0 ? _c : {},
174
+ visited: props.visited,
175
+ })), { schema: props.schema });
176
+ }
177
+ return {
178
+ schema: props.schema,
179
+ escaped: props.schema,
180
+ };
181
+ };
182
+ //# sourceMappingURL=OpenApiOneOfValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiOneOfValidator.js","sourceRoot":"","sources":["../../../src/validators/internal/OpenApiOneOfValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ import { OpenApiTypeChecker } from '../OpenApiTypeChecker.mjs';
2
+ import { OpenApiStationValidator } from './OpenApiStationValidator.mjs';
3
+ import { MapUtil } from '../../utils/MapUtil.mjs';
4
+
5
+ var OpenApiOneOfValidator;
6
+ (function (OpenApiOneOfValidator) {
7
+ OpenApiOneOfValidator.validate = (ctx) => {
8
+ const discriminator = getDiscriminator(ctx);
9
+ for (const item of discriminator.branches)
10
+ if (item.predicator(ctx.value))
11
+ return OpenApiStationValidator.validate({
12
+ ...ctx,
13
+ schema: item.schema,
14
+ });
15
+ if (discriminator.branches.length !== 0)
16
+ return OpenApiOneOfValidator.validate({
17
+ ...ctx,
18
+ schema: {
19
+ oneOf: discriminator.remainders,
20
+ },
21
+ });
22
+ const matched = discriminator.remainders.find((schema) => OpenApiStationValidator.validate({
23
+ ...ctx,
24
+ schema,
25
+ exceptionable: false,
26
+ equals: false,
27
+ }) === true);
28
+ if (matched === undefined)
29
+ return ctx.report(ctx);
30
+ return ctx.equals === true
31
+ ? OpenApiStationValidator.validate({
32
+ ...ctx,
33
+ schema: matched,
34
+ })
35
+ : true;
36
+ };
37
+ const getDiscriminator = (ctx) => {
38
+ const resolvedList = ctx.schema.oneOf.map((schema) => getFlattened({
39
+ components: ctx.components,
40
+ schema,
41
+ visited: new Set(),
42
+ }));
43
+ // FIND ANY TYPE
44
+ const anything = resolvedList.find((resolved) => OpenApiTypeChecker.isUnknown(resolved.escaped));
45
+ if (anything)
46
+ return {
47
+ branches: [],
48
+ remainders: [anything.schema],
49
+ };
50
+ // CHECK NULLABLES
51
+ const nullables = resolvedList.filter((resolved) => OpenApiTypeChecker.isNull(resolved.schema));
52
+ const significant = resolvedList.filter((resolved) => false === OpenApiTypeChecker.isNull(resolved.escaped));
53
+ if (significant.length === 1)
54
+ return {
55
+ branches: [
56
+ {
57
+ schema: significant[0].schema,
58
+ predicator: (value) => value !== null,
59
+ },
60
+ ],
61
+ remainders: nullables.map((nullable) => nullable.schema),
62
+ };
63
+ // DISCRIMINATIONS
64
+ const tuples = significant.filter((flat) => OpenApiTypeChecker.isTuple(flat.escaped));
65
+ const arrays = significant.filter((flat) => OpenApiTypeChecker.isArray(flat.escaped));
66
+ const branches = [
67
+ ...(tuples.length === 0 && arrays.length !== 0
68
+ ? discriminateArrays(ctx, significant.filter((flat) => OpenApiTypeChecker.isArray(flat.schema)))
69
+ : []),
70
+ ...discriminateObjects(ctx, significant.filter((flat) => OpenApiTypeChecker.isObject(flat.escaped)), tuples.length + arrays.length === 0),
71
+ ];
72
+ return {
73
+ branches,
74
+ remainders: ctx.schema.oneOf.filter((x) => branches.some((y) => y.schema === x) === false),
75
+ };
76
+ };
77
+ const discriminateArrays = (ctx, arraySchemas) => {
78
+ if (arraySchemas.length === 1)
79
+ return [
80
+ {
81
+ schema: arraySchemas[0].schema,
82
+ predicator: (value) => Array.isArray(value),
83
+ },
84
+ ];
85
+ return arraySchemas
86
+ .filter((flat, i, array) => array.every((item, j) => i === j ||
87
+ OpenApiTypeChecker.covers({
88
+ components: ctx.components,
89
+ x: item.escaped.items,
90
+ y: flat.escaped.items,
91
+ }) === false))
92
+ .map((flat) => ({
93
+ schema: flat.schema,
94
+ predicator: (value) => Array.isArray(value) &&
95
+ (value.length === 0 ||
96
+ OpenApiStationValidator.validate({
97
+ ...ctx,
98
+ schema: flat.escaped.items,
99
+ value: value[0],
100
+ path: `${ctx.path}[0]`,
101
+ exceptionable: false,
102
+ equals: false,
103
+ })),
104
+ }));
105
+ };
106
+ const discriminateObjects = (ctx, objectSchemas, noArray) => {
107
+ if (objectSchemas.length === 1)
108
+ return [
109
+ {
110
+ schema: objectSchemas[0].schema,
111
+ predicator: noArray
112
+ ? (value) => typeof value === "object" && value !== null
113
+ : (value) => typeof value === "object" &&
114
+ value !== null &&
115
+ Array.isArray(value) === false,
116
+ },
117
+ ];
118
+ // KEEP ONLY REQUIRED PROPERTIES
119
+ objectSchemas = objectSchemas
120
+ .filter((flat) => flat.escaped.properties !== undefined &&
121
+ flat.escaped.required !== undefined)
122
+ .map((flat) => ({
123
+ ...flat,
124
+ escaped: {
125
+ ...flat.escaped,
126
+ properties: Object.fromEntries(Object.entries(flat.escaped.properties ?? {}).map(([key, value]) => [
127
+ key,
128
+ getFlattened({
129
+ components: ctx.components,
130
+ schema: value,
131
+ visited: new Set(),
132
+ }).escaped,
133
+ ])),
134
+ },
135
+ }));
136
+ // PROPERTY MATRIX
137
+ const matrix = new Map();
138
+ objectSchemas.forEach((obj, i) => {
139
+ for (const [key, value] of Object.entries(obj.escaped.properties ?? {})) {
140
+ if (!!obj.escaped.required?.includes(key) === false)
141
+ continue;
142
+ MapUtil.take(matrix, key, () => new Array(objectSchemas.length).fill(null))[i] = value;
143
+ }
144
+ });
145
+ // THE BRANCHES
146
+ return objectSchemas
147
+ .map((obj, i) => {
148
+ const candidates = [];
149
+ for (const [key, value] of Object.entries(obj.escaped.properties ?? {})) {
150
+ if (!!obj.escaped.required?.includes(key) === false)
151
+ continue;
152
+ const neighbors = matrix
153
+ .get(key)
154
+ .filter((_oppo, j) => i !== j)
155
+ .filter((oppo) => oppo !== null);
156
+ const unique = OpenApiTypeChecker.isConstant(value)
157
+ ? neighbors.every((oppo) => OpenApiTypeChecker.isConstant(oppo) &&
158
+ value.const !== oppo.const)
159
+ : neighbors.length === 0;
160
+ if (unique)
161
+ candidates.push(key);
162
+ }
163
+ if (candidates.length === 0)
164
+ return null;
165
+ const top = candidates.find((key) => OpenApiTypeChecker.isConstant(obj.escaped.properties[key])) ?? candidates[0];
166
+ const target = obj.escaped.properties[top];
167
+ return {
168
+ schema: obj.schema,
169
+ predicator: OpenApiTypeChecker.isConstant(target)
170
+ ? (value) => typeof value === "object" &&
171
+ value !== null &&
172
+ value[top] === target.const
173
+ : (value) => typeof value === "object" &&
174
+ value !== null &&
175
+ value[top] !== undefined,
176
+ };
177
+ })
178
+ .filter((b) => b !== null);
179
+ };
180
+ })(OpenApiOneOfValidator || (OpenApiOneOfValidator = {}));
181
+ const getFlattened = (props) => {
182
+ if (OpenApiTypeChecker.isReference(props.schema)) {
183
+ const key = props.schema.$ref.split("/").pop() ?? "";
184
+ if (props.visited.has(key))
185
+ return {
186
+ schema: props.schema,
187
+ escaped: {},
188
+ };
189
+ props.visited.add(key);
190
+ return {
191
+ ...getFlattened({
192
+ components: props.components,
193
+ schema: props.components.schemas?.[key] ?? {},
194
+ visited: props.visited,
195
+ }),
196
+ schema: props.schema,
197
+ };
198
+ }
199
+ return {
200
+ schema: props.schema,
201
+ escaped: props.schema,
202
+ };
203
+ };
204
+
205
+ export { OpenApiOneOfValidator };
206
+ //# sourceMappingURL=OpenApiOneOfValidator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiOneOfValidator.mjs","sources":["../../../src/validators/internal/OpenApiOneOfValidator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { OpenApi } from "@typia/interface";
2
+ export declare namespace OpenApiSchemaNamingRule {
3
+ const getName: (schema: OpenApi.IJsonSchema, union?: boolean) => string;
4
+ }