@autobe/agent 0.21.0 → 0.22.1

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 (301) hide show
  1. package/lib/agent/src/AutoBeAgent.js +2 -2
  2. package/lib/agent/src/AutoBeAgent.js.map +1 -1
  3. package/lib/agent/src/constants/AutoBeConfigConstant.d.ts +3 -0
  4. package/lib/agent/src/{orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.js → constants/AutoBeConfigConstant.js} +1 -1
  5. package/lib/agent/src/constants/AutoBeConfigConstant.js.map +1 -0
  6. package/lib/agent/src/constants/AutoBeSystemPromptConstant.d.ts +27 -27
  7. package/lib/agent/src/context/AutoBeContext.d.ts +1 -0
  8. package/lib/agent/src/context/AutoBeTokenUsageComponent.js +4 -3
  9. package/lib/agent/src/context/AutoBeTokenUsageComponent.js.map +1 -1
  10. package/lib/agent/src/factory/consentFunctionCall.js +4 -4
  11. package/lib/agent/src/factory/consentFunctionCall.js.map +1 -1
  12. package/lib/agent/src/factory/createAutoBeContext.js +13 -10
  13. package/lib/agent/src/factory/createAutoBeContext.js.map +1 -1
  14. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +1 -1
  15. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
  16. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +2 -2
  17. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  18. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +1 -1
  19. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
  20. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.js +6 -6
  21. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js +50 -8
  22. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  23. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.js +4 -4
  24. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +6 -0
  25. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +4 -0
  26. package/lib/agent/src/orchestrate/facade/transformFacadeStateMessage.js +1 -1
  27. package/lib/agent/src/orchestrate/facade/transformFacadeStateMessage.js.map +1 -1
  28. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +19 -1
  29. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +1 -1
  30. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js +3 -3
  31. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
  32. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +1 -1
  33. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
  34. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +2 -2
  35. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +1 -1
  36. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.js +2 -2
  37. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -1
  38. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js +1 -1
  39. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
  40. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +2 -2
  41. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
  42. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +1 -1
  43. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
  44. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.d.ts +1 -1
  45. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js +2 -2
  46. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js.map +1 -1
  47. package/lib/agent/src/orchestrate/interface/orchestrateInterface.js +5 -1
  48. package/lib/agent/src/orchestrate/interface/orchestrateInterface.js.map +1 -1
  49. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js +16 -10
  50. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  51. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.d.ts +1 -1
  52. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.js +3731 -228
  53. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  54. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpoints.js +2 -2
  55. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +2 -2
  56. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js +43 -63
  57. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  58. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js +1261 -1628
  59. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  60. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js +3468 -105
  61. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  62. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +6 -1
  63. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js +3674 -360
  64. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js.map +1 -1
  65. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +0 -38
  66. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +48 -141
  67. package/lib/agent/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.d.ts +29 -23
  68. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaFactory.d.ts +9 -0
  69. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaFactory.js +1385 -0
  70. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaFactory.js.map +1 -0
  71. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaNamingConvention.d.ts +5 -0
  72. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaNamingConvention.js +78 -0
  73. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaNamingConvention.js.map +1 -0
  74. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaValidator.d.ts +10 -0
  75. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaValidator.js +59 -0
  76. package/lib/agent/src/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -0
  77. package/lib/agent/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.d.ts +2 -0
  78. package/lib/agent/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js +81 -0
  79. package/lib/agent/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js.map +1 -0
  80. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +1 -1
  81. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +1 -1
  82. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +1 -1
  83. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +1 -1
  84. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js +2 -2
  85. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +1 -1
  86. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +1 -1
  87. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +1 -1
  88. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.d.ts +1 -1
  89. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.js +2 -2
  90. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  91. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js +1 -1
  92. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js.map +1 -1
  93. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +2 -2
  94. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +1 -1
  95. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +6 -6
  96. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js +22 -7
  97. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +1 -1
  98. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +5 -8
  99. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js +13 -29
  100. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
  101. package/lib/agent/src/orchestrate/realize/internal/compileRealizeFiles.d.ts +2 -2
  102. package/lib/agent/src/orchestrate/realize/internal/compileRealizeFiles.js +2 -8
  103. package/lib/agent/src/orchestrate/realize/internal/compileRealizeFiles.js.map +1 -1
  104. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js +6 -49
  105. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js.map +1 -1
  106. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.js +4 -2
  107. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  108. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +5 -3
  109. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  110. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.d.ts +13 -6
  111. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js +206 -118
  112. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  113. package/lib/agent/src/orchestrate/realize/orchestrateRealizeScenario.d.ts +2 -2
  114. package/lib/agent/src/orchestrate/realize/orchestrateRealizeScenario.js.map +1 -1
  115. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.d.ts +2 -2
  116. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js +24 -39
  117. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  118. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.d.ts +17 -0
  119. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +20 -0
  120. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +33 -73
  121. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.d.ts +5 -0
  122. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.js +3 -0
  123. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.js.map +1 -0
  124. package/{src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.ts → lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.d.ts} +2 -13
  125. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.js +3 -0
  126. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.js.map +1 -0
  127. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +33 -22
  128. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteCodeTemplate.d.ts +31 -0
  129. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteCodeTemplate.js +86 -0
  130. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteCodeTemplate.js.map +1 -0
  131. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteDto.d.ts +4 -0
  132. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteDto.js +55 -0
  133. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteDto.js.map +1 -0
  134. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteImportStatements.d.ts +2 -0
  135. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteImportStatements.js +20 -0
  136. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteImportStatements.js.map +1 -0
  137. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteInputType.d.ts +30 -0
  138. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteInputType.js +73 -0
  139. package/lib/agent/src/orchestrate/realize/utils/getRealizeWriteInputType.js.map +1 -0
  140. package/lib/agent/src/orchestrate/realize/utils/replaceImportStatements.d.ts +6 -2
  141. package/lib/agent/src/orchestrate/realize/utils/replaceImportStatements.js +63 -69
  142. package/lib/agent/src/orchestrate/realize/utils/replaceImportStatements.js.map +1 -1
  143. package/lib/agent/src/orchestrate/test/compile/completeTestCode.d.ts +3 -1
  144. package/lib/agent/src/orchestrate/test/compile/completeTestCode.js +25 -18
  145. package/lib/agent/src/orchestrate/test/compile/completeTestCode.js.map +1 -1
  146. package/lib/agent/src/orchestrate/test/compile/getTestExternalDeclarations.js +5 -1
  147. package/lib/agent/src/orchestrate/test/compile/getTestExternalDeclarations.js.map +1 -1
  148. package/lib/agent/src/orchestrate/test/compile/getTestImportStatements.d.ts +2 -0
  149. package/lib/agent/src/orchestrate/test/compile/getTestImportStatements.js +19 -0
  150. package/lib/agent/src/orchestrate/test/compile/getTestImportStatements.js.map +1 -0
  151. package/lib/agent/src/orchestrate/test/compile/getTestScenarioArtifacts.d.ts +1 -1
  152. package/lib/agent/src/orchestrate/test/compile/getTestScenarioArtifacts.js +2 -0
  153. package/lib/agent/src/orchestrate/test/compile/getTestScenarioArtifacts.js.map +1 -1
  154. package/lib/agent/src/orchestrate/test/compile/getTestTemplateCode.d.ts +2 -0
  155. package/lib/agent/src/orchestrate/test/compile/getTestTemplateCode.js +21 -0
  156. package/lib/agent/src/orchestrate/test/compile/getTestTemplateCode.js.map +1 -0
  157. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.d.ts +2 -2
  158. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js +16 -17
  159. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
  160. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js +5 -4
  161. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js.map +1 -1
  162. package/lib/agent/src/orchestrate/test/histories/transformTestWriteHistories.js +21 -2
  163. package/lib/agent/src/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  164. package/lib/agent/src/orchestrate/test/orchestrateTest.js +6 -0
  165. package/lib/agent/src/orchestrate/test/orchestrateTest.js.map +1 -1
  166. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.d.ts +1 -1
  167. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.js +123 -75
  168. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  169. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js +46 -40
  170. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  171. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.js +117 -45
  172. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  173. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +48 -45
  174. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.d.ts +6 -0
  175. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.js +3 -0
  176. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.js.map +1 -0
  177. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.d.ts +1 -0
  178. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +13 -0
  179. package/lib/agent/src/orchestrate/test/utils/getReferenceIds.d.ts +5 -0
  180. package/lib/agent/src/orchestrate/test/utils/getReferenceIds.js +28 -0
  181. package/lib/agent/src/orchestrate/test/utils/getReferenceIds.js.map +1 -0
  182. package/lib/agent/src/structures/IAutoBeConfig.d.ts +2 -0
  183. package/lib/constants/AutoBeConfigConstant.d.ts +3 -0
  184. package/lib/constants/AutoBeSystemPromptConstant.d.ts +27 -27
  185. package/lib/context/AutoBeContext.d.ts +1 -0
  186. package/lib/index.mjs +13871 -3912
  187. package/lib/index.mjs.map +1 -1
  188. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +6 -0
  189. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +4 -0
  190. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.d.ts +1 -1
  191. package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +1 -1
  192. package/lib/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +6 -1
  193. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +0 -38
  194. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +48 -141
  195. package/lib/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.d.ts +29 -23
  196. package/lib/orchestrate/interface/utils/JsonSchemaFactory.d.ts +9 -0
  197. package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.d.ts +5 -0
  198. package/lib/orchestrate/interface/utils/JsonSchemaValidator.d.ts +10 -0
  199. package/lib/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.d.ts +2 -0
  200. package/lib/orchestrate/prisma/orchestratePrismaCorrect.d.ts +1 -1
  201. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +6 -6
  202. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +5 -8
  203. package/lib/orchestrate/realize/internal/compileRealizeFiles.d.ts +2 -2
  204. package/lib/orchestrate/realize/orchestrateRealizeCorrect.d.ts +13 -6
  205. package/lib/orchestrate/realize/orchestrateRealizeScenario.d.ts +2 -2
  206. package/lib/orchestrate/realize/orchestrateRealizeWrite.d.ts +2 -2
  207. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.d.ts +17 -0
  208. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +20 -0
  209. package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +33 -73
  210. package/lib/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.d.ts +5 -0
  211. package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.d.ts +36 -0
  212. package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +33 -22
  213. package/lib/orchestrate/realize/utils/getRealizeWriteCodeTemplate.d.ts +31 -0
  214. package/lib/orchestrate/realize/utils/getRealizeWriteDto.d.ts +4 -0
  215. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.d.ts +2 -0
  216. package/lib/orchestrate/realize/utils/getRealizeWriteInputType.d.ts +30 -0
  217. package/lib/orchestrate/realize/utils/replaceImportStatements.d.ts +6 -2
  218. package/lib/orchestrate/test/compile/completeTestCode.d.ts +3 -1
  219. package/lib/orchestrate/test/compile/getTestImportStatements.d.ts +2 -0
  220. package/lib/orchestrate/test/compile/getTestScenarioArtifacts.d.ts +1 -1
  221. package/lib/orchestrate/test/compile/getTestTemplateCode.d.ts +2 -0
  222. package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +2 -2
  223. package/lib/orchestrate/test/orchestrateTestCorrect.d.ts +1 -1
  224. package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +48 -45
  225. package/lib/orchestrate/test/structures/IAutoBeTestFunctionFailure.d.ts +6 -0
  226. package/lib/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.d.ts +1 -0
  227. package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +13 -0
  228. package/lib/orchestrate/test/utils/getReferenceIds.d.ts +5 -0
  229. package/lib/structures/IAutoBeConfig.d.ts +2 -0
  230. package/package.json +6 -6
  231. package/src/AutoBeAgent.ts +2 -0
  232. package/src/constants/AutoBeConfigConstant.ts +3 -0
  233. package/src/constants/AutoBeSystemPromptConstant.ts +27 -27
  234. package/src/context/AutoBeContext.ts +1 -0
  235. package/src/context/AutoBeTokenUsageComponent.ts +3 -3
  236. package/src/factory/consentFunctionCall.ts +2 -0
  237. package/src/factory/createAutoBeContext.ts +145 -136
  238. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +6 -0
  239. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +4 -0
  240. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +19 -1
  241. package/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.ts +1 -4
  242. package/src/orchestrate/interface/orchestrateInterface.ts +15 -4
  243. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +13 -5
  244. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +58 -19
  245. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +11 -11
  246. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +13 -117
  247. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +35 -93
  248. package/src/orchestrate/interface/orchestrateInterfaceSchemasReview.ts +74 -97
  249. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +0 -39
  250. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.ts +50 -146
  251. package/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.ts +31 -27
  252. package/src/orchestrate/interface/utils/JsonSchemaFactory.ts +171 -0
  253. package/src/orchestrate/interface/utils/JsonSchemaNamingConvention.ts +83 -0
  254. package/src/orchestrate/interface/utils/JsonSchemaValidator.ts +66 -0
  255. package/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.ts +90 -0
  256. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +1 -2
  257. package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +30 -15
  258. package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +27 -49
  259. package/src/orchestrate/realize/internal/compileRealizeFiles.ts +4 -11
  260. package/src/orchestrate/realize/orchestrateRealize.ts +19 -75
  261. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +1 -1
  262. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +114 -25
  263. package/src/orchestrate/realize/orchestrateRealizeScenario.ts +2 -2
  264. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +11 -15
  265. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.ts +17 -0
  266. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +20 -0
  267. package/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.ts +40 -74
  268. package/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.ts +9 -0
  269. package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +45 -0
  270. package/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.ts +33 -22
  271. package/src/orchestrate/realize/utils/getRealizeWriteCodeTemplate.ts +97 -0
  272. package/src/orchestrate/realize/utils/getRealizeWriteDto.ts +64 -0
  273. package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +29 -0
  274. package/src/orchestrate/realize/utils/getRealizeWriteInputType.ts +82 -0
  275. package/src/orchestrate/realize/utils/replaceImportStatements.ts +101 -111
  276. package/src/orchestrate/test/compile/completeTestCode.ts +18 -31
  277. package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +12 -0
  278. package/src/orchestrate/test/compile/getTestImportStatements.ts +25 -0
  279. package/src/orchestrate/test/compile/getTestScenarioArtifacts.ts +6 -1
  280. package/src/orchestrate/test/compile/getTestTemplateCode.ts +25 -0
  281. package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +26 -26
  282. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +6 -5
  283. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +19 -0
  284. package/src/orchestrate/test/orchestrateTest.ts +6 -0
  285. package/src/orchestrate/test/orchestrateTestCorrect.ts +44 -20
  286. package/src/orchestrate/test/orchestrateTestScenario.ts +52 -48
  287. package/src/orchestrate/test/orchestrateTestWrite.ts +20 -10
  288. package/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.ts +49 -46
  289. package/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.ts +8 -0
  290. package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +1 -0
  291. package/src/orchestrate/test/structures/IAutoBeTestWriteApplication.ts +14 -0
  292. package/src/orchestrate/test/utils/getReferenceIds.ts +25 -0
  293. package/src/structures/IAutoBeConfig.ts +3 -0
  294. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.d.ts +0 -7
  295. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.js +0 -35
  296. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.js.map +0 -1
  297. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.d.ts +0 -38
  298. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.js.map +0 -1
  299. package/lib/orchestrate/interface/utils/validateAuthorizationSchema.d.ts +0 -7
  300. package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.d.ts +0 -38
  301. package/src/orchestrate/interface/utils/validateAuthorizationSchema.ts +0 -41
@@ -46,6 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.orchestrateInterfaceSchemasReview = orchestrateInterfaceSchemasReview;
49
+ exports.step = step;
49
50
  const __typia_transform__accessExpressionAsString = __importStar(require("typia/lib/internal/_accessExpressionAsString.js"));
50
51
  const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
51
52
  const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
@@ -53,9 +54,44 @@ const OpenApiV3_1Emender_1 = require("@samchon/openapi/lib/converters/OpenApiV3_
53
54
  const typia_1 = __importDefault(require("typia"));
54
55
  const uuid_1 = require("uuid");
55
56
  const assertSchemaModel_1 = require("../../context/assertSchemaModel");
57
+ const divideArray_1 = require("../../utils/divideArray");
58
+ const executeCachedBatch_1 = require("../../utils/executeCachedBatch");
56
59
  const transformInterfaceSchemasReviewHistories_1 = require("./histories/transformInterfaceSchemasReviewHistories");
57
- const validateAuthorizationSchema_1 = require("./utils/validateAuthorizationSchema");
58
- function orchestrateInterfaceSchemasReview(ctx, operations, schemas, progress) {
60
+ const JsonSchemaFactory_1 = require("./utils/JsonSchemaFactory");
61
+ const JsonSchemaNamingConvention_1 = require("./utils/JsonSchemaNamingConvention");
62
+ const JsonSchemaValidator_1 = require("./utils/JsonSchemaValidator");
63
+ const fulfillJsonSchemaErrorMessages_1 = require("./utils/fulfillJsonSchemaErrorMessages");
64
+ function orchestrateInterfaceSchemasReview(ctx, operations, schemas) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const a = Object.entries(schemas).map(([key, schema]) => {
67
+ return { [key]: schema };
68
+ });
69
+ const matrix = (0, divideArray_1.divideArray)({
70
+ array: a,
71
+ capacity: 8,
72
+ });
73
+ const progress = {
74
+ total: matrix.length,
75
+ completed: 0,
76
+ };
77
+ const x = {};
78
+ for (const y of yield (0, executeCachedBatch_1.executeCachedBatch)(matrix.map((it) => (promptCacheKey) => __awaiter(this, void 0, void 0, function* () {
79
+ const row = yield divideAndConquer(ctx, operations, it, progress, promptCacheKey);
80
+ return row;
81
+ })))) {
82
+ JsonSchemaNamingConvention_1.JsonSchemaNamingConvention.schemas(operations, x, y);
83
+ Object.assign(x, y);
84
+ }
85
+ return x;
86
+ });
87
+ }
88
+ function divideAndConquer(ctx, operations, schemas, progress, promptCacheKey) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const schema = schemas.reduce((acc, cur) => Object.assign(acc, cur), {});
91
+ return step(ctx, operations, schema, progress, promptCacheKey);
92
+ });
93
+ }
94
+ function step(ctx, operations, schemas, progress, promptCacheKey) {
59
95
  return __awaiter(this, void 0, void 0, function* () {
60
96
  var _a, _b, _c;
61
97
  try {
@@ -72,6 +108,7 @@ function orchestrateInterfaceSchemasReview(ctx, operations, schemas, progress) {
72
108
  }),
73
109
  histories: (0, transformInterfaceSchemasReviewHistories_1.transformInterfaceSchemasReviewHistories)(ctx.state(), operations, schemas),
74
110
  enforceFunctionCall: true,
111
+ promptCacheKey,
75
112
  message: "Review type schemas.",
76
113
  });
77
114
  if (pointer.value === null) {
@@ -79,15 +116,15 @@ function orchestrateInterfaceSchemasReview(ctx, operations, schemas, progress) {
79
116
  ++progress.completed;
80
117
  return {};
81
118
  }
82
- const content = (_a = OpenApiV3_1Emender_1.OpenApiV3_1Emender.convertComponents({
119
+ const content = ((_a = OpenApiV3_1Emender_1.OpenApiV3_1Emender.convertComponents({
83
120
  schemas: pointer.value.content,
84
- }).schemas) !== null && _a !== void 0 ? _a : {};
121
+ }).schemas) !== null && _a !== void 0 ? _a : {});
85
122
  ctx.dispatch({
86
123
  type: "interfaceSchemasReview",
87
124
  id: (0, uuid_1.v7)(),
88
125
  schemas: schemas,
89
- review: pointer.value.review,
90
- plan: pointer.value.plan,
126
+ review: pointer.value.think.review,
127
+ plan: pointer.value.think.plan,
91
128
  content,
92
129
  tokenUsage,
93
130
  step: (_c = (_b = ctx.state().analyze) === null || _b === void 0 ? void 0 : _b.step) !== null && _c !== void 0 ? _c : 0,
@@ -107,12 +144,101 @@ function orchestrateInterfaceSchemasReview(ctx, operations, schemas, progress) {
107
144
  function createController(props) {
108
145
  (0, assertSchemaModel_1.assertSchemaModel)(props.model);
109
146
  const validate = (next) => {
110
- const result = (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io1(input.content)); const _io1 = input => Object.keys(input).every(key => {
147
+ JsonSchemaFactory_1.JsonSchemaFactory.fix("content", next);
148
+ const result = (() => { const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io2(input.content)); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => Object.keys(input).every(key => {
149
+ const value = input[key];
150
+ if (undefined === value)
151
+ return true;
152
+ return "object" === typeof value && null !== value && _iu1(value);
153
+ }); const _io3 = input => ("string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]) && "string" === typeof input.description; const _io4 = input => "boolean" === input.type && "string" === typeof input.description; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type && "string" === typeof input.description; const _io6 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type && "string" === typeof input.description; const _io7 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type && "string" === typeof input.description; const _io8 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type && "string" === typeof input.description; const _io9 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io10 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io11 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io12 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io13 = input => "boolean" === input.type; const _io14 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io15 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type; const _io16 = input => "string" === typeof input.$ref; const _io17 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)); const _io18 = input => "null" === input.type; const _io19 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io20(input.mapping)); const _io20 = input => Object.keys(input).every(key => {
111
154
  const value = input[key];
112
155
  if (undefined === value)
113
156
  return true;
114
- return "object" === typeof value && null !== value && _io2(value);
115
- }); const _io2 = input => "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
157
+ return "string" === typeof value;
158
+ }); const _io21 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type && "string" === typeof input.description; const _io22 = input => "string" === typeof input.$ref && "string" === typeof input.description; const _io23 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)) && "string" === typeof input.description; const _io24 = input => "null" === input.type && "string" === typeof input.description; const _iu0 = input => (() => {
159
+ if ("number" === input.type)
160
+ return _io10(input);
161
+ else if ("integer" === input.type)
162
+ return _io9(input);
163
+ else if ("string" === input.type)
164
+ return _io11(input);
165
+ else if (undefined !== input["const"])
166
+ return _io12(input);
167
+ else if ("null" === input.type)
168
+ return _io18(input);
169
+ else if ("boolean" === input.type)
170
+ return _io13(input);
171
+ else if ("array" === input.type)
172
+ return _io14(input);
173
+ else if ("object" === input.type)
174
+ return _io15(input);
175
+ else if (undefined !== input.$ref)
176
+ return _io16(input);
177
+ else
178
+ return false;
179
+ })(); const _iu1 = input => (() => {
180
+ if (undefined !== input["const"])
181
+ return _io3(input);
182
+ else if ("boolean" === input.type)
183
+ return _io4(input);
184
+ else if ("number" === input.type)
185
+ return _io6(input);
186
+ else if ("integer" === input.type)
187
+ return _io5(input);
188
+ else if ("string" === input.type)
189
+ return _io7(input);
190
+ else if ("array" === input.type)
191
+ return _io8(input);
192
+ else if ("object" === input.type)
193
+ return _io21(input);
194
+ else if (undefined !== input.$ref)
195
+ return _io22(input);
196
+ else if (undefined !== input.oneOf)
197
+ return _io23(input);
198
+ else if ("null" === input.type)
199
+ return _io24(input);
200
+ else
201
+ return false;
202
+ })(); const _iu2 = input => (() => {
203
+ if ("number" === input.type)
204
+ return _io10(input);
205
+ else if ("integer" === input.type)
206
+ return _io9(input);
207
+ else if ("string" === input.type)
208
+ return _io11(input);
209
+ else if (undefined !== input["const"])
210
+ return _io12(input);
211
+ else if ("null" === input.type)
212
+ return _io18(input);
213
+ else if ("boolean" === input.type)
214
+ return _io13(input);
215
+ else if ("array" === input.type)
216
+ return _io14(input);
217
+ else if ("object" === input.type)
218
+ return _io15(input);
219
+ else if (undefined !== input.$ref)
220
+ return _io16(input);
221
+ else if (undefined !== input.oneOf)
222
+ return _io17(input);
223
+ else
224
+ return false;
225
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
226
+ path: _path + ".think",
227
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
228
+ value: input.think
229
+ })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
230
+ path: _path + ".think",
231
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
232
+ value: input.think
233
+ }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
234
+ path: _path + ".content",
235
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
236
+ value: input.content
237
+ })) && _vo2(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
238
+ path: _path + ".content",
239
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
240
+ value: input.content
241
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
116
242
  path: _path + ".review",
117
243
  expected: "string",
118
244
  value: input.review
@@ -120,32 +246,576 @@ function createController(props) {
120
246
  path: _path + ".plan",
121
247
  expected: "string",
122
248
  value: input.plan
123
- }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
124
- path: _path + ".content",
125
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
126
- value: input.content
127
- })) && _vo1(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
128
- path: _path + ".content",
129
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
130
- value: input.content
131
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
249
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
132
250
  const value = input[key];
133
251
  if (undefined === value)
134
252
  return true;
135
253
  return ("object" === typeof value && null !== value || _report(_exceptionable, {
136
254
  path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
137
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
255
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
256
+ value: value
257
+ })) && _vu1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
258
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
259
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
138
260
  value: value
139
- })) && _vo2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
261
+ });
262
+ }).every(flag => flag)].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
263
+ path: _path + "[\"const\"]",
264
+ expected: "(boolean | number | string)",
265
+ value: input["const"]
266
+ }), "string" === typeof input.description || _report(_exceptionable, {
267
+ path: _path + ".description",
268
+ expected: "string",
269
+ value: input.description
270
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
271
+ path: _path + ".type",
272
+ expected: "\"boolean\"",
273
+ value: input.type
274
+ }), "string" === typeof input.description || _report(_exceptionable, {
275
+ path: _path + ".description",
276
+ expected: "string",
277
+ value: input.description
278
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
279
+ path: _path + ".minimum",
280
+ expected: "number & Type<\"int64\">",
281
+ value: input.minimum
282
+ })) || _report(_exceptionable, {
283
+ path: _path + ".minimum",
284
+ expected: "((number & Type<\"int64\">) | undefined)",
285
+ value: input.minimum
286
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
287
+ path: _path + ".maximum",
288
+ expected: "number & Type<\"int64\">",
289
+ value: input.maximum
290
+ })) || _report(_exceptionable, {
291
+ path: _path + ".maximum",
292
+ expected: "((number & Type<\"int64\">) | undefined)",
293
+ value: input.maximum
294
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
295
+ path: _path + ".exclusiveMinimum",
296
+ expected: "(number | undefined)",
297
+ value: input.exclusiveMinimum
298
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
299
+ path: _path + ".exclusiveMaximum",
300
+ expected: "(number | undefined)",
301
+ value: input.exclusiveMaximum
302
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
303
+ path: _path + ".multipleOf",
304
+ expected: "number & Type<\"uint64\">",
305
+ value: input.multipleOf
306
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
307
+ path: _path + ".multipleOf",
308
+ expected: "number & ExclusiveMinimum<0>",
309
+ value: input.multipleOf
310
+ })) || _report(_exceptionable, {
311
+ path: _path + ".multipleOf",
312
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
313
+ value: input.multipleOf
314
+ }), "integer" === input.type || _report(_exceptionable, {
315
+ path: _path + ".type",
316
+ expected: "\"integer\"",
317
+ value: input.type
318
+ }), "string" === typeof input.description || _report(_exceptionable, {
319
+ path: _path + ".description",
320
+ expected: "string",
321
+ value: input.description
322
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
323
+ path: _path + ".minimum",
324
+ expected: "(number | undefined)",
325
+ value: input.minimum
326
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
327
+ path: _path + ".maximum",
328
+ expected: "(number | undefined)",
329
+ value: input.maximum
330
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
331
+ path: _path + ".exclusiveMinimum",
332
+ expected: "(number | undefined)",
333
+ value: input.exclusiveMinimum
334
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
335
+ path: _path + ".exclusiveMaximum",
336
+ expected: "(number | undefined)",
337
+ value: input.exclusiveMaximum
338
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
339
+ path: _path + ".multipleOf",
340
+ expected: "number & ExclusiveMinimum<0>",
341
+ value: input.multipleOf
342
+ })) || _report(_exceptionable, {
343
+ path: _path + ".multipleOf",
344
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
345
+ value: input.multipleOf
346
+ }), "number" === input.type || _report(_exceptionable, {
347
+ path: _path + ".type",
348
+ expected: "\"number\"",
349
+ value: input.type
350
+ }), "string" === typeof input.description || _report(_exceptionable, {
351
+ path: _path + ".description",
352
+ expected: "string",
353
+ value: input.description
354
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
355
+ path: _path + ".format",
356
+ expected: "(string | undefined)",
357
+ value: input.format
358
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
359
+ path: _path + ".pattern",
360
+ expected: "(string | undefined)",
361
+ value: input.pattern
362
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
363
+ path: _path + ".contentMediaType",
364
+ expected: "(string | undefined)",
365
+ value: input.contentMediaType
366
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
367
+ path: _path + ".minLength",
368
+ expected: "number & Type<\"uint64\">",
369
+ value: input.minLength
370
+ })) || _report(_exceptionable, {
371
+ path: _path + ".minLength",
372
+ expected: "((number & Type<\"uint64\">) | undefined)",
373
+ value: input.minLength
374
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
375
+ path: _path + ".maxLength",
376
+ expected: "number & Type<\"uint64\">",
377
+ value: input.maxLength
378
+ })) || _report(_exceptionable, {
379
+ path: _path + ".maxLength",
380
+ expected: "((number & Type<\"uint64\">) | undefined)",
381
+ value: input.maxLength
382
+ }), "string" === input.type || _report(_exceptionable, {
383
+ path: _path + ".type",
384
+ expected: "\"string\"",
385
+ value: input.type
386
+ }), "string" === typeof input.description || _report(_exceptionable, {
387
+ path: _path + ".description",
388
+ expected: "string",
389
+ value: input.description
390
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
391
+ path: _path + ".items",
392
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
393
+ value: input.items
394
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
395
+ path: _path + ".items",
396
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
397
+ value: input.items
398
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
399
+ path: _path + ".uniqueItems",
400
+ expected: "(boolean | undefined)",
401
+ value: input.uniqueItems
402
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
403
+ path: _path + ".minItems",
404
+ expected: "number & Type<\"uint64\">",
405
+ value: input.minItems
406
+ })) || _report(_exceptionable, {
407
+ path: _path + ".minItems",
408
+ expected: "((number & Type<\"uint64\">) | undefined)",
409
+ value: input.minItems
410
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
411
+ path: _path + ".maxItems",
412
+ expected: "number & Type<\"uint64\">",
413
+ value: input.maxItems
414
+ })) || _report(_exceptionable, {
415
+ path: _path + ".maxItems",
416
+ expected: "((number & Type<\"uint64\">) | undefined)",
417
+ value: input.maxItems
418
+ }), "array" === input.type || _report(_exceptionable, {
419
+ path: _path + ".type",
420
+ expected: "\"array\"",
421
+ value: input.type
422
+ }), "string" === typeof input.description || _report(_exceptionable, {
423
+ path: _path + ".description",
424
+ expected: "string",
425
+ value: input.description
426
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
427
+ path: _path + ".minimum",
428
+ expected: "number & Type<\"int64\">",
429
+ value: input.minimum
430
+ })) || _report(_exceptionable, {
431
+ path: _path + ".minimum",
432
+ expected: "((number & Type<\"int64\">) | undefined)",
433
+ value: input.minimum
434
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
435
+ path: _path + ".maximum",
436
+ expected: "number & Type<\"int64\">",
437
+ value: input.maximum
438
+ })) || _report(_exceptionable, {
439
+ path: _path + ".maximum",
440
+ expected: "((number & Type<\"int64\">) | undefined)",
441
+ value: input.maximum
442
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
443
+ path: _path + ".exclusiveMinimum",
444
+ expected: "(number | undefined)",
445
+ value: input.exclusiveMinimum
446
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
447
+ path: _path + ".exclusiveMaximum",
448
+ expected: "(number | undefined)",
449
+ value: input.exclusiveMaximum
450
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
451
+ path: _path + ".multipleOf",
452
+ expected: "number & Type<\"uint64\">",
453
+ value: input.multipleOf
454
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
455
+ path: _path + ".multipleOf",
456
+ expected: "number & ExclusiveMinimum<0>",
457
+ value: input.multipleOf
458
+ })) || _report(_exceptionable, {
459
+ path: _path + ".multipleOf",
460
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
461
+ value: input.multipleOf
462
+ }), "integer" === input.type || _report(_exceptionable, {
463
+ path: _path + ".type",
464
+ expected: "\"integer\"",
465
+ value: input.type
466
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
467
+ path: _path + ".minimum",
468
+ expected: "(number | undefined)",
469
+ value: input.minimum
470
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
471
+ path: _path + ".maximum",
472
+ expected: "(number | undefined)",
473
+ value: input.maximum
474
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
475
+ path: _path + ".exclusiveMinimum",
476
+ expected: "(number | undefined)",
477
+ value: input.exclusiveMinimum
478
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
479
+ path: _path + ".exclusiveMaximum",
480
+ expected: "(number | undefined)",
481
+ value: input.exclusiveMaximum
482
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
483
+ path: _path + ".multipleOf",
484
+ expected: "number & ExclusiveMinimum<0>",
485
+ value: input.multipleOf
486
+ })) || _report(_exceptionable, {
487
+ path: _path + ".multipleOf",
488
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
489
+ value: input.multipleOf
490
+ }), "number" === input.type || _report(_exceptionable, {
491
+ path: _path + ".type",
492
+ expected: "\"number\"",
493
+ value: input.type
494
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
495
+ path: _path + ".format",
496
+ expected: "(string | undefined)",
497
+ value: input.format
498
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
499
+ path: _path + ".pattern",
500
+ expected: "(string | undefined)",
501
+ value: input.pattern
502
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
503
+ path: _path + ".contentMediaType",
504
+ expected: "(string | undefined)",
505
+ value: input.contentMediaType
506
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
507
+ path: _path + ".minLength",
508
+ expected: "number & Type<\"uint64\">",
509
+ value: input.minLength
510
+ })) || _report(_exceptionable, {
511
+ path: _path + ".minLength",
512
+ expected: "((number & Type<\"uint64\">) | undefined)",
513
+ value: input.minLength
514
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
515
+ path: _path + ".maxLength",
516
+ expected: "number & Type<\"uint64\">",
517
+ value: input.maxLength
518
+ })) || _report(_exceptionable, {
519
+ path: _path + ".maxLength",
520
+ expected: "((number & Type<\"uint64\">) | undefined)",
521
+ value: input.maxLength
522
+ }), "string" === input.type || _report(_exceptionable, {
523
+ path: _path + ".type",
524
+ expected: "\"string\"",
525
+ value: input.type
526
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
527
+ path: _path + "[\"const\"]",
528
+ expected: "(boolean | number | string)",
529
+ value: input["const"]
530
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
531
+ path: _path + ".type",
532
+ expected: "\"boolean\"",
533
+ value: input.type
534
+ })].every(flag => flag); const _vo14 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
535
+ path: _path + ".items",
536
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
537
+ value: input.items
538
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
539
+ path: _path + ".items",
540
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
541
+ value: input.items
542
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
543
+ path: _path + ".uniqueItems",
544
+ expected: "(boolean | undefined)",
545
+ value: input.uniqueItems
546
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
547
+ path: _path + ".minItems",
548
+ expected: "number & Type<\"uint64\">",
549
+ value: input.minItems
550
+ })) || _report(_exceptionable, {
551
+ path: _path + ".minItems",
552
+ expected: "((number & Type<\"uint64\">) | undefined)",
553
+ value: input.minItems
554
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
555
+ path: _path + ".maxItems",
556
+ expected: "number & Type<\"uint64\">",
557
+ value: input.maxItems
558
+ })) || _report(_exceptionable, {
559
+ path: _path + ".maxItems",
560
+ expected: "((number & Type<\"uint64\">) | undefined)",
561
+ value: input.maxItems
562
+ }), "array" === input.type || _report(_exceptionable, {
563
+ path: _path + ".type",
564
+ expected: "\"array\"",
565
+ value: input.type
566
+ })].every(flag => flag); const _vo15 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
567
+ path: _path + ".properties",
568
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
569
+ value: input.properties
570
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
571
+ path: _path + ".properties",
572
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
573
+ value: input.properties
574
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
575
+ path: _path + ".additionalProperties",
576
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
577
+ value: input.additionalProperties
578
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
579
+ path: _path + ".additionalProperties",
580
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
581
+ value: input.additionalProperties
582
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
583
+ path: _path + ".additionalProperties",
584
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
585
+ value: input.additionalProperties
586
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
587
+ path: _path + ".required",
588
+ expected: "Array<string>",
589
+ value: input.required
590
+ })) && input.required.map((elem, _index5) => "string" === typeof elem || _report(_exceptionable, {
591
+ path: _path + ".required[" + _index5 + "]",
592
+ expected: "string",
593
+ value: elem
594
+ })).every(flag => flag) || _report(_exceptionable, {
595
+ path: _path + ".required",
596
+ expected: "Array<string>",
597
+ value: input.required
598
+ }), "object" === input.type || _report(_exceptionable, {
599
+ path: _path + ".type",
600
+ expected: "\"object\"",
601
+ value: input.type
602
+ })].every(flag => flag); const _vo16 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
603
+ path: _path + ".$ref",
604
+ expected: "string",
605
+ value: input.$ref
606
+ })].every(flag => flag); const _vo17 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
607
+ path: _path + ".oneOf",
608
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
609
+ value: input.oneOf
610
+ })) && input.oneOf.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
611
+ path: _path + ".oneOf[" + _index6 + "]",
612
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
613
+ value: elem
614
+ })) && _vu0(elem, _path + ".oneOf[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
615
+ path: _path + ".oneOf[" + _index6 + "]",
616
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
617
+ value: elem
618
+ })).every(flag => flag) || _report(_exceptionable, {
619
+ path: _path + ".oneOf",
620
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
621
+ value: input.oneOf
622
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
623
+ path: _path + ".discriminator",
624
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
625
+ value: input.discriminator
626
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
627
+ path: _path + ".discriminator",
628
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
629
+ value: input.discriminator
630
+ })].every(flag => flag); const _vo18 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
631
+ path: _path + ".type",
632
+ expected: "\"null\"",
633
+ value: input.type
634
+ })].every(flag => flag); const _vo19 = (input, _path, _exceptionable = true) => ["string" === typeof input.propertyName || _report(_exceptionable, {
635
+ path: _path + ".propertyName",
636
+ expected: "string",
637
+ value: input.propertyName
638
+ }), undefined === input.mapping || ("object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) || _report(_exceptionable, {
639
+ path: _path + ".mapping",
640
+ expected: "(Record<string, string> | undefined)",
641
+ value: input.mapping
642
+ })) && _vo20(input.mapping, _path + ".mapping", true && _exceptionable) || _report(_exceptionable, {
643
+ path: _path + ".mapping",
644
+ expected: "(Record<string, string> | undefined)",
645
+ value: input.mapping
646
+ })].every(flag => flag); const _vo20 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
647
+ const value = input[key];
648
+ if (undefined === value)
649
+ return true;
650
+ return "string" === typeof value || _report(_exceptionable, {
140
651
  path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
141
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
652
+ expected: "string",
142
653
  value: value
143
654
  });
144
- }).every(flag => flag)].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
655
+ }).every(flag => flag)].every(flag => flag); const _vo21 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
656
+ path: _path + ".properties",
657
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
658
+ value: input.properties
659
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
660
+ path: _path + ".properties",
661
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
662
+ value: input.properties
663
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
664
+ path: _path + ".additionalProperties",
665
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
666
+ value: input.additionalProperties
667
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
668
+ path: _path + ".additionalProperties",
669
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
670
+ value: input.additionalProperties
671
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
672
+ path: _path + ".additionalProperties",
673
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
674
+ value: input.additionalProperties
675
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
676
+ path: _path + ".required",
677
+ expected: "Array<string>",
678
+ value: input.required
679
+ })) && input.required.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
680
+ path: _path + ".required[" + _index7 + "]",
681
+ expected: "string",
682
+ value: elem
683
+ })).every(flag => flag) || _report(_exceptionable, {
684
+ path: _path + ".required",
685
+ expected: "Array<string>",
686
+ value: input.required
687
+ }), "object" === input.type || _report(_exceptionable, {
688
+ path: _path + ".type",
689
+ expected: "\"object\"",
690
+ value: input.type
691
+ }), "string" === typeof input.description || _report(_exceptionable, {
692
+ path: _path + ".description",
693
+ expected: "string",
694
+ value: input.description
695
+ })].every(flag => flag); const _vo22 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
696
+ path: _path + ".$ref",
697
+ expected: "string",
698
+ value: input.$ref
699
+ }), "string" === typeof input.description || _report(_exceptionable, {
700
+ path: _path + ".description",
701
+ expected: "string",
702
+ value: input.description
703
+ })].every(flag => flag); const _vo23 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
704
+ path: _path + ".oneOf",
705
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
706
+ value: input.oneOf
707
+ })) && input.oneOf.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
708
+ path: _path + ".oneOf[" + _index8 + "]",
709
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
710
+ value: elem
711
+ })) && _vu0(elem, _path + ".oneOf[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
712
+ path: _path + ".oneOf[" + _index8 + "]",
713
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
714
+ value: elem
715
+ })).every(flag => flag) || _report(_exceptionable, {
716
+ path: _path + ".oneOf",
717
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
718
+ value: input.oneOf
719
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
720
+ path: _path + ".discriminator",
721
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
722
+ value: input.discriminator
723
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
724
+ path: _path + ".discriminator",
725
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
726
+ value: input.discriminator
727
+ }), "string" === typeof input.description || _report(_exceptionable, {
728
+ path: _path + ".description",
729
+ expected: "string",
730
+ value: input.description
731
+ })].every(flag => flag); const _vo24 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
732
+ path: _path + ".type",
733
+ expected: "\"null\"",
734
+ value: input.type
735
+ }), "string" === typeof input.description || _report(_exceptionable, {
145
736
  path: _path + ".description",
146
737
  expected: "string",
147
738
  value: input.description
148
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
739
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
740
+ if ("number" === input.type)
741
+ return _vo10(input, _path, true && _exceptionable);
742
+ else if ("integer" === input.type)
743
+ return _vo9(input, _path, true && _exceptionable);
744
+ else if ("string" === input.type)
745
+ return _vo11(input, _path, true && _exceptionable);
746
+ else if (undefined !== input["const"])
747
+ return _vo12(input, _path, true && _exceptionable);
748
+ else if ("null" === input.type)
749
+ return _vo18(input, _path, true && _exceptionable);
750
+ else if ("boolean" === input.type)
751
+ return _vo13(input, _path, true && _exceptionable);
752
+ else if ("array" === input.type)
753
+ return _vo14(input, _path, true && _exceptionable);
754
+ else if ("object" === input.type)
755
+ return _vo15(input, _path, true && _exceptionable);
756
+ else if (undefined !== input.$ref)
757
+ return _vo16(input, _path, true && _exceptionable);
758
+ else
759
+ return _report(_exceptionable, {
760
+ path: _path,
761
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference)",
762
+ value: input
763
+ });
764
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
765
+ if (undefined !== input["const"])
766
+ return _vo3(input, _path, true && _exceptionable);
767
+ else if ("boolean" === input.type)
768
+ return _vo4(input, _path, true && _exceptionable);
769
+ else if ("number" === input.type)
770
+ return _vo6(input, _path, true && _exceptionable);
771
+ else if ("integer" === input.type)
772
+ return _vo5(input, _path, true && _exceptionable);
773
+ else if ("string" === input.type)
774
+ return _vo7(input, _path, true && _exceptionable);
775
+ else if ("array" === input.type)
776
+ return _vo8(input, _path, true && _exceptionable);
777
+ else if ("object" === input.type)
778
+ return _vo21(input, _path, true && _exceptionable);
779
+ else if (undefined !== input.$ref)
780
+ return _vo22(input, _path, true && _exceptionable);
781
+ else if (undefined !== input.oneOf)
782
+ return _vo23(input, _path, true && _exceptionable);
783
+ else if ("null" === input.type)
784
+ return _vo24(input, _path, true && _exceptionable);
785
+ else
786
+ return _report(_exceptionable, {
787
+ path: _path,
788
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.IString | AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.INull)",
789
+ value: input
790
+ });
791
+ })(); const _vu2 = (input, _path, _exceptionable = true) => (() => {
792
+ if ("number" === input.type)
793
+ return _vo10(input, _path, true && _exceptionable);
794
+ else if ("integer" === input.type)
795
+ return _vo9(input, _path, true && _exceptionable);
796
+ else if ("string" === input.type)
797
+ return _vo11(input, _path, true && _exceptionable);
798
+ else if (undefined !== input["const"])
799
+ return _vo12(input, _path, true && _exceptionable);
800
+ else if ("null" === input.type)
801
+ return _vo18(input, _path, true && _exceptionable);
802
+ else if ("boolean" === input.type)
803
+ return _vo13(input, _path, true && _exceptionable);
804
+ else if ("array" === input.type)
805
+ return _vo14(input, _path, true && _exceptionable);
806
+ else if ("object" === input.type)
807
+ return _vo15(input, _path, true && _exceptionable);
808
+ else if (undefined !== input.$ref)
809
+ return _vo16(input, _path, true && _exceptionable);
810
+ else if (undefined !== input.oneOf)
811
+ return _vo17(input, _path, true && _exceptionable);
812
+ else
813
+ return _report(_exceptionable, {
814
+ path: _path,
815
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IOneOf)",
816
+ value: input
817
+ });
818
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
149
819
  if (false === __is(input)) {
150
820
  errors = [];
151
821
  _report = __typia_transform__validateReport._validateReport(errors);
@@ -173,189 +843,16 @@ function createController(props) {
173
843
  data: input
174
844
  };
175
845
  }; })()(next);
176
- if (result.success === false)
846
+ if (result.success === false) {
847
+ (0, fulfillJsonSchemaErrorMessages_1.fulfillJsonSchemaErrorMessages)(result.errors);
177
848
  return result;
849
+ }
178
850
  const errors = [];
179
- (0, validateAuthorizationSchema_1.validateAuthorizationSchema)({
851
+ JsonSchemaValidator_1.JsonSchemaValidator.validate({
180
852
  errors,
181
853
  schemas: result.data.content,
182
854
  path: "$input.content",
183
855
  });
184
- Object.entries(result.data.content).forEach(([tagName, jsonDescriptive]) => {
185
- var _a;
186
- const index = props.operations.find((op) => {
187
- var _a;
188
- return ((_a = op.responseBody) === null || _a === void 0 ? void 0 : _a.typeName) === tagName &&
189
- op.method === "patch" &&
190
- op.name === "index";
191
- });
192
- // The index API should return the `IPage<T>` type.
193
- if (index) {
194
- // First check if the schema has the correct object structure
195
- if (!("type" in jsonDescriptive) ||
196
- jsonDescriptive.type !== "object") {
197
- errors.push({
198
- path: `$input.content.${tagName}`,
199
- expected: `{ type: "object", properties: { ... } }`,
200
- value: jsonDescriptive,
201
- description: `IPage schema must have type: "object". Found: ${JSON.stringify(jsonDescriptive)}`,
202
- });
203
- }
204
- else if (!("properties" in jsonDescriptive)) {
205
- errors.push({
206
- path: `$input.content.${tagName}`,
207
- expected: `Schema with "properties" field`,
208
- value: jsonDescriptive,
209
- description: `IPage schema must have a "properties" field containing "pagination" and "data" properties.`,
210
- });
211
- }
212
- else if ((() => { const _io0 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io1(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu1(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type; const _io1 = input => Object.keys(input).every(key => {
213
- const value = input[key];
214
- if (undefined === value)
215
- return true;
216
- return "object" === typeof value && null !== value && _io2(value);
217
- }); const _io2 = input => "string" === typeof input.description; const _io3 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io4 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io5 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io6 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io7 = input => "boolean" === input.type; const _io8 = input => "object" === typeof input.items && null !== input.items && _iu1(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io9 = input => "string" === typeof input.$ref; const _io10 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io12(input.discriminator)); const _io11 = input => "null" === input.type; const _io12 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io13(input.mapping)); const _io13 = input => Object.keys(input).every(key => {
218
- const value = input[key];
219
- if (undefined === value)
220
- return true;
221
- return "string" === typeof value;
222
- }); const _iu0 = input => (() => {
223
- if ("number" === input.type)
224
- return _io4(input);
225
- else if ("integer" === input.type)
226
- return _io3(input);
227
- else if ("string" === input.type)
228
- return _io5(input);
229
- else if (undefined !== input["const"])
230
- return _io6(input);
231
- else if ("null" === input.type)
232
- return _io11(input);
233
- else if ("boolean" === input.type)
234
- return _io7(input);
235
- else if ("array" === input.type)
236
- return _io8(input);
237
- else if ("object" === input.type)
238
- return _io0(input);
239
- else if (undefined !== input.$ref)
240
- return _io9(input);
241
- else
242
- return false;
243
- })(); const _iu1 = input => (() => {
244
- if ("number" === input.type)
245
- return _io4(input);
246
- else if ("integer" === input.type)
247
- return _io3(input);
248
- else if ("string" === input.type)
249
- return _io5(input);
250
- else if (undefined !== input["const"])
251
- return _io6(input);
252
- else if ("null" === input.type)
253
- return _io11(input);
254
- else if ("boolean" === input.type)
255
- return _io7(input);
256
- else if ("array" === input.type)
257
- return _io8(input);
258
- else if ("object" === input.type)
259
- return _io0(input);
260
- else if (undefined !== input.$ref)
261
- return _io9(input);
262
- else if (undefined !== input.oneOf)
263
- return _io10(input);
264
- else
265
- return false;
266
- })(); return input => "object" === typeof input && null !== input && _io0(input); })()(jsonDescriptive)) {
267
- (_a = jsonDescriptive.properties) !== null && _a !== void 0 ? _a : (jsonDescriptive.properties = {});
268
- // Check pagination property
269
- const pagination = jsonDescriptive.properties["pagination"];
270
- if (!pagination || !("$ref" in pagination)) {
271
- errors.push({
272
- path: `$input.content.${tagName}.properties.pagination`,
273
- expected: `{ $ref: "#/components/schemas/IPage.IPagination" }`,
274
- value: pagination,
275
- description: `IPage must have a "pagination" property with $ref to IPage.IPagination.`,
276
- });
277
- }
278
- // Check data property
279
- const data = jsonDescriptive.properties["data"];
280
- if (!(() => { const _io0 = input => "object" === typeof input.items && null !== input.items && _iu1(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io1 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io2 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io3 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io4 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io5 = input => "boolean" === input.type; const _io6 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io7(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu1(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type; const _io7 = input => Object.keys(input).every(key => {
281
- const value = input[key];
282
- if (undefined === value)
283
- return true;
284
- return "object" === typeof value && null !== value && _io8(value);
285
- }); const _io8 = input => "string" === typeof input.description; const _io9 = input => "string" === typeof input.$ref; const _io10 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io12(input.discriminator)); const _io11 = input => "null" === input.type; const _io12 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io13(input.mapping)); const _io13 = input => Object.keys(input).every(key => {
286
- const value = input[key];
287
- if (undefined === value)
288
- return true;
289
- return "string" === typeof value;
290
- }); const _iu0 = input => (() => {
291
- if ("number" === input.type)
292
- return _io2(input);
293
- else if ("integer" === input.type)
294
- return _io1(input);
295
- else if ("string" === input.type)
296
- return _io3(input);
297
- else if (undefined !== input["const"])
298
- return _io4(input);
299
- else if ("null" === input.type)
300
- return _io11(input);
301
- else if ("boolean" === input.type)
302
- return _io5(input);
303
- else if ("array" === input.type)
304
- return _io0(input);
305
- else if ("object" === input.type)
306
- return _io6(input);
307
- else if (undefined !== input.$ref)
308
- return _io9(input);
309
- else
310
- return false;
311
- })(); const _iu1 = input => (() => {
312
- if ("number" === input.type)
313
- return _io2(input);
314
- else if ("integer" === input.type)
315
- return _io1(input);
316
- else if ("string" === input.type)
317
- return _io3(input);
318
- else if (undefined !== input["const"])
319
- return _io4(input);
320
- else if ("null" === input.type)
321
- return _io11(input);
322
- else if ("boolean" === input.type)
323
- return _io5(input);
324
- else if ("array" === input.type)
325
- return _io0(input);
326
- else if ("object" === input.type)
327
- return _io6(input);
328
- else if (undefined !== input.$ref)
329
- return _io9(input);
330
- else if (undefined !== input.oneOf)
331
- return _io10(input);
332
- else
333
- return false;
334
- })(); return input => "object" === typeof input && null !== input && _io0(input); })()(data)) {
335
- errors.push({
336
- path: `$input.content.${tagName}.properties.data`,
337
- expected: `AutoBeOpenApi.IJsonSchema.IArray`,
338
- value: data,
339
- description: `The 'data' property must be an array for the index operation.`,
340
- });
341
- }
342
- else {
343
- // Check if array items have proper type reference (not 'any')
344
- const arraySchema = data;
345
- if (!arraySchema.items ||
346
- !("$ref" in arraySchema.items) ||
347
- arraySchema.items.$ref === "#/components/schemas/any") {
348
- errors.push({
349
- path: `$input.content.${tagName}.properties.data.items`,
350
- expected: `Reference to a specific type (e.g., $ref to ISummary type)`,
351
- value: arraySchema.items,
352
- description: `The 'data' array must have a specific item type, not 'any[]'. Use a proper type reference like '{Entity}.ISummary' for paginated results.`,
353
- });
354
- }
355
- }
356
- }
357
- }
358
- });
359
856
  if (errors.length !== 0)
360
857
  return {
361
858
  success: false,
@@ -389,227 +886,3044 @@ const collection = {
389
886
  {
390
887
  name: "review",
391
888
  parameters: {
392
- description: " Contains review findings, improvement plan, and enhanced\nschemas\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceSchemasReviewApplication.IProps} type:\n\n> Schema review and enhancement parameters for the review function.\n> \n> When the review function is called, these properties must be populated to\n> complete the schema validation and improvement process. The LLM uses this\n> interface to understand what outputs are required.\n\n### Description of {@link content} property:\n\n> Final validated and enhanced schemas ready for production use.\n> \n> DO:\n> - Include valid OpenAPI schema definitions\n> - Include all entities that were in the original input\n> - Provide fixed versions if original schemas have issues\n> - Rename entities correctly if names are wrong\n> - Include created variants if schemas are missing them\n> \n> DO NOT:\n> - Return an empty object {} (this will delete all schemas)\n> - Return undefined or null\n> - Include explanations or excuses in schema descriptions\n> - Leave broken schemas unfixed\n> \n> When original schemas are beyond repair, recreate them properly based on\n> entity names and context. This field becomes the final schemas used by\n> the system, so it must always contain complete, valid schemas.",
889
+ description: " Contains review findings, improvement plan, and enhanced\nschemas\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceSchemasReviewApplication.IProps} type:\n\n> Schema review and enhancement parameters for the review function.\n> \n> When the review function is called, these properties must be populated to\n> complete the schema validation and improvement process. The LLM uses this\n> interface to understand what outputs are required.\n\n### Description of {@link content} property:\n\n> Final validated and enhanced schemas ready for production use.\n> \n> DO:\n> \n> - Include valid OpenAPI schema definitions\n> - Include all entities that were in the original input\n> - Provide fixed versions if original schemas have issues\n> - Rename entities correctly if names are wrong\n> - Include created variants if schemas are missing them\n> \n> DO NOT:\n> \n> - Return an empty object {} (this will delete all schemas)\n> - Return undefined or null\n> - Include explanations or excuses in schema descriptions\n> - Leave broken schemas unfixed\n> \n> When original schemas are beyond repair, recreate them properly based on\n> entity names and context. This field becomes the final schemas used by\n> the system, so it must always contain complete, valid schemas.",
393
890
  type: "object",
394
891
  properties: {
395
- review: {
396
- description: "Issues and problems found during schema analysis.\n\nDO: Document only problems that need fixing.\nDO NOT: Include positive feedback, compliments, or confirmations\n\nFocus exclusively on issues organized by severity:\n\nSeverity levels:\n- Security vulnerabilities (exposed passwords, missing auth boundaries)\n- Missing required variants, incorrect type mappings\n- Missing format specifications, incomplete relationships\n- Documentation improvements, style consistency\n\nEach issue must include the specific schema name and what needs to be\nfixed. If there are no issues at all, simply state: \"No issues found.\"",
397
- type: "string"
398
- },
399
- plan: {
400
- description: "Action plan for addressing identified issues.\n\nMust specify concrete fixes categorized by priority:\n\n- For perfect schemas: \"No improvements required. All schemas meet AutoBE\n standards.\"\n- For fixable issues: List each fix with operation path and exact change\n- For critical problems: Describe how schemas were recreated or corrected\n\nNever leave this empty. Always provide a clear plan even if no changes\nare needed. The plan documents what was done to produce the content\nfield.",
401
- type: "string"
892
+ think: {
893
+ $ref: "#/$defs/IAutoBeInterfaceSchemasReviewApplication.IThink"
402
894
  },
403
895
  content: {
404
- $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
896
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
405
897
  }
406
898
  },
407
899
  required: [
408
- "review",
409
- "plan",
900
+ "think",
410
901
  "content"
411
902
  ],
412
903
  additionalProperties: false,
413
904
  $defs: {
414
- "RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema": {
905
+ "IAutoBeInterfaceSchemasReviewApplication.IThink": {
906
+ type: "object",
907
+ properties: {
908
+ review: {
909
+ description: "Issues and problems found during schema analysis.\n\nDO: Document only problems that need fixing. DO NOT: Include positive\nfeedback, compliments, or confirmations\n\nFocus exclusively on issues organized by severity:\n\nSeverity levels:\n\n- Security vulnerabilities (exposed passwords, missing auth boundaries)\n- Missing required variants, incorrect type mappings\n- Missing format specifications, incomplete relationships\n- Documentation improvements, style consistency\n\nEach issue must include the specific schema name and what needs to be\nfixed. If there are no issues at all, simply state: \"No issues found.\"",
910
+ type: "string"
911
+ },
912
+ plan: {
913
+ description: "Action plan for addressing identified issues.\n\nMust specify concrete fixes categorized by priority:\n\n- For perfect schemas: \"No improvements required. All schemas meet AutoBE\n standards.\"\n- For fixable issues: List each fix with operation path and exact change\n- For critical problems: Describe how schemas were recreated or corrected\n\nNever leave this empty. Always provide a clear plan even if no changes\nare needed. The plan documents what was done to produce the content\nfield.",
914
+ type: "string"
915
+ }
916
+ },
917
+ required: [
918
+ "review",
919
+ "plan"
920
+ ]
921
+ },
922
+ "RecordstringAutoBeOpenApi.IJsonSchemaDescriptive": {
415
923
  description: "Construct a type with a set of properties K of type T",
416
924
  type: "object",
417
925
  properties: {},
418
926
  required: [],
419
927
  additionalProperties: {
420
- $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
928
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive"
421
929
  }
422
930
  },
423
- "AutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema": {
931
+ "AutoBeOpenApi.IJsonSchemaDescriptive": {
424
932
  description: "Descriptive type schema info.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` is a type schema info of the OpenAPI\nGenerative, but it has a `description` property which is required.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` basically follows the JSON schema\nspecification of OpenAPI v3.1, but a little bit shrunk to remove ambiguous\nand duplicated expressions of OpenAPI v3.1 for the convenience, clarity,\nand AI generation.\n\nCRITICAL INSTRUCTIONS FOR OPTIMAL AI GENERATION:\n\nWhen creating descriptions for components, types, and properties:\n\n1. ALWAYS refer to and incorporate the description comments from the\n corresponding Prisma DB schema tables and columns. The descriptions\n should match the style, level of detail, and terminology used in the\n Prisma schema.\n2. ALL descriptions MUST be organized into MULTIPLE PARAGRAPHS separated by\n line breaks. Single-paragraph descriptions should be avoided.\n3. Descriptions should comprehensively cover:\n\n - The purpose and business meaning of the type or property\n - Relationships to other entities\n - Validation rules, constraints, and edge cases\n - Usage context and examples when helpful\n4. For each property of an object type, ensure its description reflects the\n corresponding column description in the Prisma DB schema, maintaining\n the same level of detail and terminology\n5. Descriptions should be so detailed and clear that anyone reading them can\n fully understand the type or property without needing to reference any\n other documentation",
933
+ anyOf: [
934
+ {
935
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IConstant"
936
+ },
937
+ {
938
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean"
939
+ },
940
+ {
941
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IInteger"
942
+ },
943
+ {
944
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INumber"
945
+ },
946
+ {
947
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IString"
948
+ },
949
+ {
950
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IArray"
951
+ },
952
+ {
953
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IObject"
954
+ },
955
+ {
956
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IReference"
957
+ },
958
+ {
959
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf"
960
+ },
961
+ {
962
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INull"
963
+ }
964
+ ]
965
+ },
966
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IConstant": {
967
+ description: "Constant value type.",
425
968
  type: "object",
426
969
  properties: {
970
+ "const": {
971
+ description: "The constant value.",
972
+ anyOf: [
973
+ {
974
+ type: "string"
975
+ },
976
+ {
977
+ type: "number"
978
+ },
979
+ {
980
+ type: "boolean"
981
+ }
982
+ ]
983
+ },
427
984
  description: {
428
985
  description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
429
986
  type: "string"
430
987
  }
431
988
  },
432
989
  required: [
990
+ "const",
433
991
  "description"
434
992
  ]
435
- }
436
- }
437
- },
438
- description: "Analyzes and improves OpenAPI schema definitions.\n\nThis function receives schema definitions and performs comprehensive review\nand enhancement. It identifies issues, creates an improvement plan, and\nproduces refined schemas that meet quality standards.\n\nThe function populates three key outputs:\n\n- A detailed review of findings organized by severity\n- An actionable plan for improvements\n- Enhanced schemas with all issues resolved",
439
- validate: (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io1(input.content)); const _io1 = input => Object.keys(input).every(key => {
440
- const value = input[key];
441
- if (undefined === value)
442
- return true;
443
- return "object" === typeof value && null !== value && _io2(value);
444
- }); const _io2 = input => "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
445
- path: _path + ".review",
446
- expected: "string",
447
- value: input.review
448
- }), "string" === typeof input.plan || _report(_exceptionable, {
449
- path: _path + ".plan",
450
- expected: "string",
451
- value: input.plan
452
- }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
453
- path: _path + ".content",
454
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
455
- value: input.content
456
- })) && _vo1(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
457
- path: _path + ".content",
458
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
459
- value: input.content
460
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
461
- const value = input[key];
462
- if (undefined === value)
463
- return true;
464
- return ("object" === typeof value && null !== value || _report(_exceptionable, {
465
- path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
466
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
467
- value: value
468
- })) && _vo2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
469
- path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
470
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
471
- value: value
472
- });
473
- }).every(flag => flag)].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
474
- path: _path + ".description",
475
- expected: "string",
476
- value: input.description
477
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
478
- if (false === __is(input)) {
479
- errors = [];
480
- _report = __typia_transform__validateReport._validateReport(errors);
481
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
482
- path: _path + "",
483
- expected: "IAutoBeInterfaceSchemasReviewApplication.IProps",
484
- value: input
485
- })) && _vo0(input, _path + "", true) || _report(true, {
486
- path: _path + "",
487
- expected: "IAutoBeInterfaceSchemasReviewApplication.IProps",
488
- value: input
489
- }))(input, "$input", true);
490
- const success = 0 === errors.length;
491
- return success ? {
492
- success,
493
- data: input
494
- } : {
495
- success,
496
- errors,
497
- data: input
498
- };
499
- }
500
- return {
501
- success: true,
502
- data: input
503
- };
504
- }; })()
505
- }
506
- ]
507
- };
508
- __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
509
- validate: {
510
- review: validate,
511
- },
512
- }), { equals: false }));
513
- return application;
514
- })(),
515
- claude: (validate) => (() => {
516
- const application = {
517
- model: "claude",
518
- options: {
519
- reference: true,
520
- separate: null
521
- },
522
- functions: [
523
- {
524
- name: "review",
525
- parameters: {
526
- description: " Contains review findings, improvement plan, and enhanced\nschemas\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceSchemasReviewApplication.IProps} type:\n\n> Schema review and enhancement parameters for the review function.\n> \n> When the review function is called, these properties must be populated to\n> complete the schema validation and improvement process. The LLM uses this\n> interface to understand what outputs are required.",
527
- type: "object",
528
- properties: {
529
- review: {
530
- description: "Issues and problems found during schema analysis.\n\nDO: Document only problems that need fixing.\nDO NOT: Include positive feedback, compliments, or confirmations\n\nFocus exclusively on issues organized by severity:\n\nSeverity levels:\n- Security vulnerabilities (exposed passwords, missing auth boundaries)\n- Missing required variants, incorrect type mappings\n- Missing format specifications, incomplete relationships\n- Documentation improvements, style consistency\n\nEach issue must include the specific schema name and what needs to be\nfixed. If there are no issues at all, simply state: \"No issues found.\"",
531
- type: "string"
532
993
  },
533
- plan: {
534
- description: "Action plan for addressing identified issues.\n\nMust specify concrete fixes categorized by priority:\n\n- For perfect schemas: \"No improvements required. All schemas meet AutoBE\n standards.\"\n- For fixable issues: List each fix with operation path and exact change\n- For critical problems: Describe how schemas were recreated or corrected\n\nNever leave this empty. Always provide a clear plan even if no changes\nare needed. The plan documents what was done to produce the content\nfield.",
535
- type: "string"
994
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean": {
995
+ description: "Boolean type info.",
996
+ type: "object",
997
+ properties: {
998
+ type: {
999
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1000
+ type: "string",
1001
+ "enum": [
1002
+ "boolean"
1003
+ ]
1004
+ },
1005
+ description: {
1006
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1007
+ type: "string"
1008
+ }
1009
+ },
1010
+ required: [
1011
+ "type",
1012
+ "description"
1013
+ ]
536
1014
  },
537
- content: {
538
- description: "Final validated and enhanced schemas ready for production use.\n\nDO:\n- Include valid OpenAPI schema definitions\n- Include all entities that were in the original input\n- Provide fixed versions if original schemas have issues\n- Rename entities correctly if names are wrong\n- Include created variants if schemas are missing them\n\nDO NOT:\n- Return an empty object {} (this will delete all schemas)\n- Return undefined or null\n- Include explanations or excuses in schema descriptions\n- Leave broken schemas unfixed\n\nWhen original schemas are beyond repair, recreate them properly based on\nentity names and context. This field becomes the final schemas used by\nthe system, so it must always contain complete, valid schemas.",
539
- $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
540
- }
541
- },
542
- required: [
543
- "review",
544
- "plan",
545
- "content"
546
- ],
547
- additionalProperties: false,
548
- $defs: {
549
- "RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema": {
550
- description: "Construct a type with a set of properties K of type T",
1015
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IInteger": {
1016
+ description: "Integer type info.",
551
1017
  type: "object",
552
- properties: {},
553
- required: [],
554
- additionalProperties: {
555
- $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
556
- }
1018
+ properties: {
1019
+ minimum: {
1020
+ description: "Minimum value restriction.",
1021
+ type: "integer"
1022
+ },
1023
+ maximum: {
1024
+ description: "Maximum value restriction.",
1025
+ type: "integer"
1026
+ },
1027
+ exclusiveMinimum: {
1028
+ description: "Exclusive minimum value restriction.",
1029
+ type: "number"
1030
+ },
1031
+ exclusiveMaximum: {
1032
+ description: "Exclusive maximum value restriction.",
1033
+ type: "number"
1034
+ },
1035
+ multipleOf: {
1036
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
1037
+ type: "integer"
1038
+ },
1039
+ type: {
1040
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1041
+ type: "string",
1042
+ "enum": [
1043
+ "integer"
1044
+ ]
1045
+ },
1046
+ description: {
1047
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1048
+ type: "string"
1049
+ }
1050
+ },
1051
+ required: [
1052
+ "type",
1053
+ "description"
1054
+ ]
557
1055
  },
558
- "AutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema": {
559
- description: "Descriptive type schema info.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` is a type schema info of the OpenAPI\nGenerative, but it has a `description` property which is required.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` basically follows the JSON schema\nspecification of OpenAPI v3.1, but a little bit shrunk to remove ambiguous\nand duplicated expressions of OpenAPI v3.1 for the convenience, clarity,\nand AI generation.\n\nCRITICAL INSTRUCTIONS FOR OPTIMAL AI GENERATION:\n\nWhen creating descriptions for components, types, and properties:\n\n1. ALWAYS refer to and incorporate the description comments from the\n corresponding Prisma DB schema tables and columns. The descriptions\n should match the style, level of detail, and terminology used in the\n Prisma schema.\n2. ALL descriptions MUST be organized into MULTIPLE PARAGRAPHS separated by\n line breaks. Single-paragraph descriptions should be avoided.\n3. Descriptions should comprehensively cover:\n\n - The purpose and business meaning of the type or property\n - Relationships to other entities\n - Validation rules, constraints, and edge cases\n - Usage context and examples when helpful\n4. For each property of an object type, ensure its description reflects the\n corresponding column description in the Prisma DB schema, maintaining\n the same level of detail and terminology\n5. Descriptions should be so detailed and clear that anyone reading them can\n fully understand the type or property without needing to reference any\n other documentation",
1056
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INumber": {
1057
+ description: "Number (double) type info.",
560
1058
  type: "object",
561
1059
  properties: {
1060
+ minimum: {
1061
+ description: "Minimum value restriction.",
1062
+ type: "number"
1063
+ },
1064
+ maximum: {
1065
+ description: "Maximum value restriction.",
1066
+ type: "number"
1067
+ },
1068
+ exclusiveMinimum: {
1069
+ description: "Exclusive minimum value restriction.",
1070
+ type: "number"
1071
+ },
1072
+ exclusiveMaximum: {
1073
+ description: "Exclusive maximum value restriction.",
1074
+ type: "number"
1075
+ },
1076
+ multipleOf: {
1077
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
1078
+ type: "number"
1079
+ },
1080
+ type: {
1081
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1082
+ type: "string",
1083
+ "enum": [
1084
+ "number"
1085
+ ]
1086
+ },
562
1087
  description: {
563
1088
  description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
564
1089
  type: "string"
565
1090
  }
566
1091
  },
567
1092
  required: [
1093
+ "type",
568
1094
  "description"
569
1095
  ]
570
- }
571
- }
572
- },
573
- description: "Analyzes and improves OpenAPI schema definitions.\n\nThis function receives schema definitions and performs comprehensive review\nand enhancement. It identifies issues, creates an improvement plan, and\nproduces refined schemas that meet quality standards.\n\nThe function populates three key outputs:\n\n- A detailed review of findings organized by severity\n- An actionable plan for improvements\n- Enhanced schemas with all issues resolved",
574
- validate: (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io1(input.content)); const _io1 = input => Object.keys(input).every(key => {
575
- const value = input[key];
576
- if (undefined === value)
577
- return true;
578
- return "object" === typeof value && null !== value && _io2(value);
579
- }); const _io2 = input => "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
580
- path: _path + ".review",
1096
+ },
1097
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IString": {
1098
+ description: "String type info.",
1099
+ type: "object",
1100
+ properties: {
1101
+ format: {
1102
+ description: "Format restriction.",
1103
+ type: "string"
1104
+ },
1105
+ pattern: {
1106
+ description: "Pattern restriction.",
1107
+ type: "string"
1108
+ },
1109
+ contentMediaType: {
1110
+ description: "Content media type restriction.",
1111
+ type: "string"
1112
+ },
1113
+ minLength: {
1114
+ description: "Minimum length restriction.\n\n\n@minimum 0",
1115
+ type: "integer"
1116
+ },
1117
+ maxLength: {
1118
+ description: "Maximum length restriction.\n\n\n@minimum 0",
1119
+ type: "integer"
1120
+ },
1121
+ type: {
1122
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1123
+ type: "string",
1124
+ "enum": [
1125
+ "string"
1126
+ ]
1127
+ },
1128
+ description: {
1129
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1130
+ type: "string"
1131
+ }
1132
+ },
1133
+ required: [
1134
+ "type",
1135
+ "description"
1136
+ ]
1137
+ },
1138
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
1139
+ description: "Array type info.\n\n### Description of {@link items} property:\n\n> Items type info.\n> \n> The `items` means the type of the array elements. In other words, it is\n> the type schema info of the `T` in the TypeScript array type\n> `Array<T>`.",
1140
+ type: "object",
1141
+ properties: {
1142
+ items: {
1143
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1144
+ },
1145
+ uniqueItems: {
1146
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
1147
+ type: "boolean"
1148
+ },
1149
+ minItems: {
1150
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
1151
+ type: "integer"
1152
+ },
1153
+ maxItems: {
1154
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
1155
+ type: "integer"
1156
+ },
1157
+ type: {
1158
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1159
+ type: "string",
1160
+ "enum": [
1161
+ "array"
1162
+ ]
1163
+ },
1164
+ description: {
1165
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1166
+ type: "string"
1167
+ }
1168
+ },
1169
+ required: [
1170
+ "items",
1171
+ "type",
1172
+ "description"
1173
+ ]
1174
+ },
1175
+ "AutoBeOpenApi.IJsonSchema": {
1176
+ description: "Type schema info.\n\n`AutoBeOpenApi.IJsonSchema` is a type schema info of the OpenAPI\nGenerative.\n\n`AutoBeOpenApi.IJsonSchema` basically follows the JSON schema specification\nof OpenAPI v3.1, but a little bit shrunk to remove ambiguous and duplicated\nexpressions of OpenAPI v3.1 for the convenience, clarity, and AI\ngeneration.\n\n## CRITICAL: Union Type Expression\n\nIn this type system, union types (including nullable types) MUST be\nexpressed using the `IOneOf` structure. NEVER use array notation in the\n`type` field.\n\n\u274C **FORBIDDEN** - Array notation in type field:\n\n```typescript\n{\n \"type\": [\"string\", \"null\"] // NEVER DO THIS!\n}\n```\n\n\u2705 **CORRECT** - Using IOneOf for unions:\n\n```typescript\n// For nullable string:\n{\n oneOf: [{ type: \"string\" }, { type: \"null\" }];\n}\n\n// For string | number union:\n{\n oneOf: [{ type: \"string\" }, { type: \"number\" }];\n}\n```\n\nThe `type` field in any schema object is a discriminator that identifies\nthe schema type and MUST contain exactly one string value.",
1177
+ anyOf: [
1178
+ {
1179
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1180
+ },
1181
+ {
1182
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1183
+ },
1184
+ {
1185
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1186
+ },
1187
+ {
1188
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
1189
+ },
1190
+ {
1191
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
1192
+ },
1193
+ {
1194
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
1195
+ },
1196
+ {
1197
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
1198
+ },
1199
+ {
1200
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
1201
+ },
1202
+ {
1203
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
1204
+ },
1205
+ {
1206
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
1207
+ }
1208
+ ]
1209
+ },
1210
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
1211
+ description: "Integer type info.",
1212
+ type: "object",
1213
+ properties: {
1214
+ minimum: {
1215
+ description: "Minimum value restriction.",
1216
+ type: "integer"
1217
+ },
1218
+ maximum: {
1219
+ description: "Maximum value restriction.",
1220
+ type: "integer"
1221
+ },
1222
+ exclusiveMinimum: {
1223
+ description: "Exclusive minimum value restriction.",
1224
+ type: "number"
1225
+ },
1226
+ exclusiveMaximum: {
1227
+ description: "Exclusive maximum value restriction.",
1228
+ type: "number"
1229
+ },
1230
+ multipleOf: {
1231
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
1232
+ type: "integer"
1233
+ },
1234
+ type: {
1235
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1236
+ type: "string",
1237
+ "enum": [
1238
+ "integer"
1239
+ ]
1240
+ }
1241
+ },
1242
+ required: [
1243
+ "type"
1244
+ ]
1245
+ },
1246
+ "AutoBeOpenApi.IJsonSchema.INumber": {
1247
+ description: "Number (double) type info.",
1248
+ type: "object",
1249
+ properties: {
1250
+ minimum: {
1251
+ description: "Minimum value restriction.",
1252
+ type: "number"
1253
+ },
1254
+ maximum: {
1255
+ description: "Maximum value restriction.",
1256
+ type: "number"
1257
+ },
1258
+ exclusiveMinimum: {
1259
+ description: "Exclusive minimum value restriction.",
1260
+ type: "number"
1261
+ },
1262
+ exclusiveMaximum: {
1263
+ description: "Exclusive maximum value restriction.",
1264
+ type: "number"
1265
+ },
1266
+ multipleOf: {
1267
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
1268
+ type: "number"
1269
+ },
1270
+ type: {
1271
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1272
+ type: "string",
1273
+ "enum": [
1274
+ "number"
1275
+ ]
1276
+ }
1277
+ },
1278
+ required: [
1279
+ "type"
1280
+ ]
1281
+ },
1282
+ "AutoBeOpenApi.IJsonSchema.IString": {
1283
+ description: "String type info.",
1284
+ type: "object",
1285
+ properties: {
1286
+ format: {
1287
+ description: "Format restriction.",
1288
+ type: "string"
1289
+ },
1290
+ pattern: {
1291
+ description: "Pattern restriction.",
1292
+ type: "string"
1293
+ },
1294
+ contentMediaType: {
1295
+ description: "Content media type restriction.",
1296
+ type: "string"
1297
+ },
1298
+ minLength: {
1299
+ description: "Minimum length restriction.\n\n\n@minimum 0",
1300
+ type: "integer"
1301
+ },
1302
+ maxLength: {
1303
+ description: "Maximum length restriction.\n\n\n@minimum 0",
1304
+ type: "integer"
1305
+ },
1306
+ type: {
1307
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1308
+ type: "string",
1309
+ "enum": [
1310
+ "string"
1311
+ ]
1312
+ }
1313
+ },
1314
+ required: [
1315
+ "type"
1316
+ ]
1317
+ },
1318
+ "AutoBeOpenApi.IJsonSchema.IConstant": {
1319
+ description: "Constant value type.",
1320
+ type: "object",
1321
+ properties: {
1322
+ "const": {
1323
+ description: "The constant value.",
1324
+ anyOf: [
1325
+ {
1326
+ type: "string"
1327
+ },
1328
+ {
1329
+ type: "number"
1330
+ },
1331
+ {
1332
+ type: "boolean"
1333
+ }
1334
+ ]
1335
+ }
1336
+ },
1337
+ required: [
1338
+ "const"
1339
+ ]
1340
+ },
1341
+ "AutoBeOpenApi.IJsonSchema.IBoolean": {
1342
+ description: "Boolean type info.",
1343
+ type: "object",
1344
+ properties: {
1345
+ type: {
1346
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1347
+ type: "string",
1348
+ "enum": [
1349
+ "boolean"
1350
+ ]
1351
+ }
1352
+ },
1353
+ required: [
1354
+ "type"
1355
+ ]
1356
+ },
1357
+ "AutoBeOpenApi.IJsonSchema.IArray": {
1358
+ description: "Array type info.\n\n### Description of {@link items} property:\n\n> Items type info.\n> \n> The `items` means the type of the array elements. In other words, it is\n> the type schema info of the `T` in the TypeScript array type\n> `Array<T>`.",
1359
+ type: "object",
1360
+ properties: {
1361
+ items: {
1362
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1363
+ },
1364
+ uniqueItems: {
1365
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
1366
+ type: "boolean"
1367
+ },
1368
+ minItems: {
1369
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
1370
+ type: "integer"
1371
+ },
1372
+ maxItems: {
1373
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
1374
+ type: "integer"
1375
+ },
1376
+ type: {
1377
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1378
+ type: "string",
1379
+ "enum": [
1380
+ "array"
1381
+ ]
1382
+ }
1383
+ },
1384
+ required: [
1385
+ "items",
1386
+ "type"
1387
+ ]
1388
+ },
1389
+ "AutoBeOpenApi.IJsonSchema.IObject": {
1390
+ description: "Object type info.\n\n### Description of {@link properties} property:\n\n> Properties of the object.\n> \n> The `properties` means a list of key-value pairs of the object's\n> regular properties. The key is the name of the regular property, and\n> the value is the type schema info.\n> \n> IMPORTANT: Each property in this object MUST have a detailed\n> description that references and aligns with the description comments\n> from the corresponding Prisma DB schema column.\n> \n> If you need additional properties that is represented by dynamic key,\n> you can use the {@link additionalProperties} instead.",
1391
+ type: "object",
1392
+ properties: {
1393
+ properties: {
1394
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1395
+ },
1396
+ additionalProperties: {
1397
+ description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`",
1398
+ anyOf: [
1399
+ {
1400
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1401
+ },
1402
+ {
1403
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1404
+ },
1405
+ {
1406
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1407
+ },
1408
+ {
1409
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
1410
+ },
1411
+ {
1412
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
1413
+ },
1414
+ {
1415
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
1416
+ },
1417
+ {
1418
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
1419
+ },
1420
+ {
1421
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
1422
+ },
1423
+ {
1424
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
1425
+ },
1426
+ {
1427
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
1428
+ },
1429
+ {
1430
+ type: "boolean",
1431
+ "enum": [
1432
+ false
1433
+ ]
1434
+ }
1435
+ ]
1436
+ },
1437
+ required: {
1438
+ description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```",
1439
+ type: "array",
1440
+ items: {
1441
+ type: "string"
1442
+ }
1443
+ },
1444
+ type: {
1445
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1446
+ type: "string",
1447
+ "enum": [
1448
+ "object"
1449
+ ]
1450
+ }
1451
+ },
1452
+ required: [
1453
+ "properties",
1454
+ "required",
1455
+ "type"
1456
+ ]
1457
+ },
1458
+ "AutoBeOpenApi.IJsonSchema.INull": {
1459
+ description: "Null type.",
1460
+ type: "object",
1461
+ properties: {
1462
+ type: {
1463
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1464
+ type: "string",
1465
+ "enum": [
1466
+ "null"
1467
+ ]
1468
+ }
1469
+ },
1470
+ required: [
1471
+ "type"
1472
+ ]
1473
+ },
1474
+ "AutoBeOpenApi.IJsonSchema.IReference": {
1475
+ description: "Reference type directing named schema.",
1476
+ type: "object",
1477
+ properties: {
1478
+ $ref: {
1479
+ description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`",
1480
+ type: "string"
1481
+ }
1482
+ },
1483
+ required: [
1484
+ "$ref"
1485
+ ]
1486
+ },
1487
+ "AutoBeOpenApi.IJsonSchema.IOneOf": {
1488
+ description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.\n\n### Description of {@link discriminator} property:\n\n> Discriminator info of the union type.",
1489
+ type: "object",
1490
+ properties: {
1491
+ oneOf: {
1492
+ description: "List of the union types.",
1493
+ type: "array",
1494
+ items: {
1495
+ anyOf: [
1496
+ {
1497
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1498
+ },
1499
+ {
1500
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1501
+ },
1502
+ {
1503
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1504
+ },
1505
+ {
1506
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
1507
+ },
1508
+ {
1509
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
1510
+ },
1511
+ {
1512
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
1513
+ },
1514
+ {
1515
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
1516
+ },
1517
+ {
1518
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
1519
+ },
1520
+ {
1521
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
1522
+ }
1523
+ ]
1524
+ }
1525
+ },
1526
+ discriminator: {
1527
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1528
+ }
1529
+ },
1530
+ required: [
1531
+ "oneOf"
1532
+ ]
1533
+ },
1534
+ "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
1535
+ description: "Discriminator info of the union type.\n\n### Description of {@link mapping} property:\n\n> Mapping of the discriminator value to the schema name.\n> \n> This property is valid only for {@link IReference} typed\n> {@link IOneOf.oneof} elements. Therefore, `key` of `mapping` is the\n> discriminator value, and `value` of `mapping` is the schema name like\n> `#/components/schemas/SomeObject`.",
1536
+ type: "object",
1537
+ properties: {
1538
+ propertyName: {
1539
+ description: "Property name for the discriminator.",
1540
+ type: "string"
1541
+ },
1542
+ mapping: {
1543
+ $ref: "#/$defs/Recordstringstring"
1544
+ }
1545
+ },
1546
+ required: [
1547
+ "propertyName"
1548
+ ]
1549
+ },
1550
+ Recordstringstring: {
1551
+ description: "Construct a type with a set of properties K of type T",
1552
+ type: "object",
1553
+ properties: {},
1554
+ required: [],
1555
+ additionalProperties: {
1556
+ type: "string"
1557
+ }
1558
+ },
1559
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
1560
+ description: "Object type info.\n\n### Description of {@link properties} property:\n\n> Properties of the object.\n> \n> The `properties` means a list of key-value pairs of the object's\n> regular properties. The key is the name of the regular property, and\n> the value is the type schema info.\n> \n> IMPORTANT: Each property in this object MUST have a detailed\n> description that references and aligns with the description comments\n> from the corresponding Prisma DB schema column.\n> \n> If you need additional properties that is represented by dynamic key,\n> you can use the {@link additionalProperties} instead.",
1561
+ type: "object",
1562
+ properties: {
1563
+ properties: {
1564
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1565
+ },
1566
+ additionalProperties: {
1567
+ description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`",
1568
+ anyOf: [
1569
+ {
1570
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1571
+ },
1572
+ {
1573
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1574
+ },
1575
+ {
1576
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1577
+ },
1578
+ {
1579
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
1580
+ },
1581
+ {
1582
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
1583
+ },
1584
+ {
1585
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
1586
+ },
1587
+ {
1588
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
1589
+ },
1590
+ {
1591
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
1592
+ },
1593
+ {
1594
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
1595
+ },
1596
+ {
1597
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
1598
+ },
1599
+ {
1600
+ type: "boolean",
1601
+ "enum": [
1602
+ false
1603
+ ]
1604
+ }
1605
+ ]
1606
+ },
1607
+ required: {
1608
+ description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```",
1609
+ type: "array",
1610
+ items: {
1611
+ type: "string"
1612
+ }
1613
+ },
1614
+ type: {
1615
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1616
+ type: "string",
1617
+ "enum": [
1618
+ "object"
1619
+ ]
1620
+ },
1621
+ description: {
1622
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1623
+ type: "string"
1624
+ }
1625
+ },
1626
+ required: [
1627
+ "properties",
1628
+ "required",
1629
+ "type",
1630
+ "description"
1631
+ ]
1632
+ },
1633
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IReference": {
1634
+ description: "Reference type directing named schema.",
1635
+ type: "object",
1636
+ properties: {
1637
+ $ref: {
1638
+ description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`",
1639
+ type: "string"
1640
+ },
1641
+ description: {
1642
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1643
+ type: "string"
1644
+ }
1645
+ },
1646
+ required: [
1647
+ "$ref",
1648
+ "description"
1649
+ ]
1650
+ },
1651
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
1652
+ description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.\n\n### Description of {@link discriminator} property:\n\n> Discriminator info of the union type.",
1653
+ type: "object",
1654
+ properties: {
1655
+ oneOf: {
1656
+ description: "List of the union types.",
1657
+ type: "array",
1658
+ items: {
1659
+ anyOf: [
1660
+ {
1661
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1662
+ },
1663
+ {
1664
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1665
+ },
1666
+ {
1667
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1668
+ },
1669
+ {
1670
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
1671
+ },
1672
+ {
1673
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
1674
+ },
1675
+ {
1676
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
1677
+ },
1678
+ {
1679
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
1680
+ },
1681
+ {
1682
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
1683
+ },
1684
+ {
1685
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
1686
+ }
1687
+ ]
1688
+ }
1689
+ },
1690
+ discriminator: {
1691
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1692
+ },
1693
+ description: {
1694
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1695
+ type: "string"
1696
+ }
1697
+ },
1698
+ required: [
1699
+ "oneOf",
1700
+ "description"
1701
+ ]
1702
+ },
1703
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INull": {
1704
+ description: "Null type.",
1705
+ type: "object",
1706
+ properties: {
1707
+ type: {
1708
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
1709
+ type: "string",
1710
+ "enum": [
1711
+ "null"
1712
+ ]
1713
+ },
1714
+ description: {
1715
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
1716
+ type: "string"
1717
+ }
1718
+ },
1719
+ required: [
1720
+ "type",
1721
+ "description"
1722
+ ]
1723
+ }
1724
+ }
1725
+ },
1726
+ description: "Analyzes and improves OpenAPI schema definitions.\n\nThis function receives schema definitions and performs comprehensive review\nand enhancement. It identifies issues, creates an improvement plan, and\nproduces refined schemas that meet quality standards.\n\nThe function populates three key outputs:\n\n- A detailed review of findings organized by severity\n- An actionable plan for improvements\n- Enhanced schemas with all issues resolved",
1727
+ validate: (() => { const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io2(input.content)); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => Object.keys(input).every(key => {
1728
+ const value = input[key];
1729
+ if (undefined === value)
1730
+ return true;
1731
+ return "object" === typeof value && null !== value && _iu1(value);
1732
+ }); const _io3 = input => ("string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]) && "string" === typeof input.description; const _io4 = input => "boolean" === input.type && "string" === typeof input.description; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type && "string" === typeof input.description; const _io6 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type && "string" === typeof input.description; const _io7 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type && "string" === typeof input.description; const _io8 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type && "string" === typeof input.description; const _io9 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io10 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io11 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io12 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io13 = input => "boolean" === input.type; const _io14 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io15 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type; const _io16 = input => "string" === typeof input.$ref; const _io17 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)); const _io18 = input => "null" === input.type; const _io19 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io20(input.mapping)); const _io20 = input => Object.keys(input).every(key => {
1733
+ const value = input[key];
1734
+ if (undefined === value)
1735
+ return true;
1736
+ return "string" === typeof value;
1737
+ }); const _io21 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type && "string" === typeof input.description; const _io22 = input => "string" === typeof input.$ref && "string" === typeof input.description; const _io23 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)) && "string" === typeof input.description; const _io24 = input => "null" === input.type && "string" === typeof input.description; const _iu0 = input => (() => {
1738
+ if ("number" === input.type)
1739
+ return _io10(input);
1740
+ else if ("integer" === input.type)
1741
+ return _io9(input);
1742
+ else if ("string" === input.type)
1743
+ return _io11(input);
1744
+ else if (undefined !== input["const"])
1745
+ return _io12(input);
1746
+ else if ("null" === input.type)
1747
+ return _io18(input);
1748
+ else if ("boolean" === input.type)
1749
+ return _io13(input);
1750
+ else if ("array" === input.type)
1751
+ return _io14(input);
1752
+ else if ("object" === input.type)
1753
+ return _io15(input);
1754
+ else if (undefined !== input.$ref)
1755
+ return _io16(input);
1756
+ else
1757
+ return false;
1758
+ })(); const _iu1 = input => (() => {
1759
+ if (undefined !== input["const"])
1760
+ return _io3(input);
1761
+ else if ("boolean" === input.type)
1762
+ return _io4(input);
1763
+ else if ("number" === input.type)
1764
+ return _io6(input);
1765
+ else if ("integer" === input.type)
1766
+ return _io5(input);
1767
+ else if ("string" === input.type)
1768
+ return _io7(input);
1769
+ else if ("array" === input.type)
1770
+ return _io8(input);
1771
+ else if ("object" === input.type)
1772
+ return _io21(input);
1773
+ else if (undefined !== input.$ref)
1774
+ return _io22(input);
1775
+ else if (undefined !== input.oneOf)
1776
+ return _io23(input);
1777
+ else if ("null" === input.type)
1778
+ return _io24(input);
1779
+ else
1780
+ return false;
1781
+ })(); const _iu2 = input => (() => {
1782
+ if ("number" === input.type)
1783
+ return _io10(input);
1784
+ else if ("integer" === input.type)
1785
+ return _io9(input);
1786
+ else if ("string" === input.type)
1787
+ return _io11(input);
1788
+ else if (undefined !== input["const"])
1789
+ return _io12(input);
1790
+ else if ("null" === input.type)
1791
+ return _io18(input);
1792
+ else if ("boolean" === input.type)
1793
+ return _io13(input);
1794
+ else if ("array" === input.type)
1795
+ return _io14(input);
1796
+ else if ("object" === input.type)
1797
+ return _io15(input);
1798
+ else if (undefined !== input.$ref)
1799
+ return _io16(input);
1800
+ else if (undefined !== input.oneOf)
1801
+ return _io17(input);
1802
+ else
1803
+ return false;
1804
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
1805
+ path: _path + ".think",
1806
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
1807
+ value: input.think
1808
+ })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
1809
+ path: _path + ".think",
1810
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
1811
+ value: input.think
1812
+ }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
1813
+ path: _path + ".content",
1814
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
1815
+ value: input.content
1816
+ })) && _vo2(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
1817
+ path: _path + ".content",
1818
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
1819
+ value: input.content
1820
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
1821
+ path: _path + ".review",
1822
+ expected: "string",
1823
+ value: input.review
1824
+ }), "string" === typeof input.plan || _report(_exceptionable, {
1825
+ path: _path + ".plan",
1826
+ expected: "string",
1827
+ value: input.plan
1828
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
1829
+ const value = input[key];
1830
+ if (undefined === value)
1831
+ return true;
1832
+ return ("object" === typeof value && null !== value || _report(_exceptionable, {
1833
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
1834
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
1835
+ value: value
1836
+ })) && _vu1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
1837
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
1838
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
1839
+ value: value
1840
+ });
1841
+ }).every(flag => flag)].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
1842
+ path: _path + "[\"const\"]",
1843
+ expected: "(boolean | number | string)",
1844
+ value: input["const"]
1845
+ }), "string" === typeof input.description || _report(_exceptionable, {
1846
+ path: _path + ".description",
1847
+ expected: "string",
1848
+ value: input.description
1849
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
1850
+ path: _path + ".type",
1851
+ expected: "\"boolean\"",
1852
+ value: input.type
1853
+ }), "string" === typeof input.description || _report(_exceptionable, {
1854
+ path: _path + ".description",
1855
+ expected: "string",
1856
+ value: input.description
1857
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
1858
+ path: _path + ".minimum",
1859
+ expected: "number & Type<\"int64\">",
1860
+ value: input.minimum
1861
+ })) || _report(_exceptionable, {
1862
+ path: _path + ".minimum",
1863
+ expected: "((number & Type<\"int64\">) | undefined)",
1864
+ value: input.minimum
1865
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
1866
+ path: _path + ".maximum",
1867
+ expected: "number & Type<\"int64\">",
1868
+ value: input.maximum
1869
+ })) || _report(_exceptionable, {
1870
+ path: _path + ".maximum",
1871
+ expected: "((number & Type<\"int64\">) | undefined)",
1872
+ value: input.maximum
1873
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1874
+ path: _path + ".exclusiveMinimum",
1875
+ expected: "(number | undefined)",
1876
+ value: input.exclusiveMinimum
1877
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1878
+ path: _path + ".exclusiveMaximum",
1879
+ expected: "(number | undefined)",
1880
+ value: input.exclusiveMaximum
1881
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
1882
+ path: _path + ".multipleOf",
1883
+ expected: "number & Type<\"uint64\">",
1884
+ value: input.multipleOf
1885
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
1886
+ path: _path + ".multipleOf",
1887
+ expected: "number & ExclusiveMinimum<0>",
1888
+ value: input.multipleOf
1889
+ })) || _report(_exceptionable, {
1890
+ path: _path + ".multipleOf",
1891
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
1892
+ value: input.multipleOf
1893
+ }), "integer" === input.type || _report(_exceptionable, {
1894
+ path: _path + ".type",
1895
+ expected: "\"integer\"",
1896
+ value: input.type
1897
+ }), "string" === typeof input.description || _report(_exceptionable, {
1898
+ path: _path + ".description",
1899
+ expected: "string",
1900
+ value: input.description
1901
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1902
+ path: _path + ".minimum",
1903
+ expected: "(number | undefined)",
1904
+ value: input.minimum
1905
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
1906
+ path: _path + ".maximum",
1907
+ expected: "(number | undefined)",
1908
+ value: input.maximum
1909
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1910
+ path: _path + ".exclusiveMinimum",
1911
+ expected: "(number | undefined)",
1912
+ value: input.exclusiveMinimum
1913
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1914
+ path: _path + ".exclusiveMaximum",
1915
+ expected: "(number | undefined)",
1916
+ value: input.exclusiveMaximum
1917
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
1918
+ path: _path + ".multipleOf",
1919
+ expected: "number & ExclusiveMinimum<0>",
1920
+ value: input.multipleOf
1921
+ })) || _report(_exceptionable, {
1922
+ path: _path + ".multipleOf",
1923
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
1924
+ value: input.multipleOf
1925
+ }), "number" === input.type || _report(_exceptionable, {
1926
+ path: _path + ".type",
1927
+ expected: "\"number\"",
1928
+ value: input.type
1929
+ }), "string" === typeof input.description || _report(_exceptionable, {
1930
+ path: _path + ".description",
1931
+ expected: "string",
1932
+ value: input.description
1933
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
1934
+ path: _path + ".format",
1935
+ expected: "(string | undefined)",
1936
+ value: input.format
1937
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
1938
+ path: _path + ".pattern",
1939
+ expected: "(string | undefined)",
1940
+ value: input.pattern
1941
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
1942
+ path: _path + ".contentMediaType",
1943
+ expected: "(string | undefined)",
1944
+ value: input.contentMediaType
1945
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
1946
+ path: _path + ".minLength",
1947
+ expected: "number & Type<\"uint64\">",
1948
+ value: input.minLength
1949
+ })) || _report(_exceptionable, {
1950
+ path: _path + ".minLength",
1951
+ expected: "((number & Type<\"uint64\">) | undefined)",
1952
+ value: input.minLength
1953
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
1954
+ path: _path + ".maxLength",
1955
+ expected: "number & Type<\"uint64\">",
1956
+ value: input.maxLength
1957
+ })) || _report(_exceptionable, {
1958
+ path: _path + ".maxLength",
1959
+ expected: "((number & Type<\"uint64\">) | undefined)",
1960
+ value: input.maxLength
1961
+ }), "string" === input.type || _report(_exceptionable, {
1962
+ path: _path + ".type",
1963
+ expected: "\"string\"",
1964
+ value: input.type
1965
+ }), "string" === typeof input.description || _report(_exceptionable, {
1966
+ path: _path + ".description",
1967
+ expected: "string",
1968
+ value: input.description
1969
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
1970
+ path: _path + ".items",
1971
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
1972
+ value: input.items
1973
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
1974
+ path: _path + ".items",
1975
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
1976
+ value: input.items
1977
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
1978
+ path: _path + ".uniqueItems",
1979
+ expected: "(boolean | undefined)",
1980
+ value: input.uniqueItems
1981
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
1982
+ path: _path + ".minItems",
1983
+ expected: "number & Type<\"uint64\">",
1984
+ value: input.minItems
1985
+ })) || _report(_exceptionable, {
1986
+ path: _path + ".minItems",
1987
+ expected: "((number & Type<\"uint64\">) | undefined)",
1988
+ value: input.minItems
1989
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
1990
+ path: _path + ".maxItems",
1991
+ expected: "number & Type<\"uint64\">",
1992
+ value: input.maxItems
1993
+ })) || _report(_exceptionable, {
1994
+ path: _path + ".maxItems",
1995
+ expected: "((number & Type<\"uint64\">) | undefined)",
1996
+ value: input.maxItems
1997
+ }), "array" === input.type || _report(_exceptionable, {
1998
+ path: _path + ".type",
1999
+ expected: "\"array\"",
2000
+ value: input.type
2001
+ }), "string" === typeof input.description || _report(_exceptionable, {
2002
+ path: _path + ".description",
2003
+ expected: "string",
2004
+ value: input.description
2005
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
2006
+ path: _path + ".minimum",
2007
+ expected: "number & Type<\"int64\">",
2008
+ value: input.minimum
2009
+ })) || _report(_exceptionable, {
2010
+ path: _path + ".minimum",
2011
+ expected: "((number & Type<\"int64\">) | undefined)",
2012
+ value: input.minimum
2013
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
2014
+ path: _path + ".maximum",
2015
+ expected: "number & Type<\"int64\">",
2016
+ value: input.maximum
2017
+ })) || _report(_exceptionable, {
2018
+ path: _path + ".maximum",
2019
+ expected: "((number & Type<\"int64\">) | undefined)",
2020
+ value: input.maximum
2021
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
2022
+ path: _path + ".exclusiveMinimum",
2023
+ expected: "(number | undefined)",
2024
+ value: input.exclusiveMinimum
2025
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
2026
+ path: _path + ".exclusiveMaximum",
2027
+ expected: "(number | undefined)",
2028
+ value: input.exclusiveMaximum
2029
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
2030
+ path: _path + ".multipleOf",
2031
+ expected: "number & Type<\"uint64\">",
2032
+ value: input.multipleOf
2033
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
2034
+ path: _path + ".multipleOf",
2035
+ expected: "number & ExclusiveMinimum<0>",
2036
+ value: input.multipleOf
2037
+ })) || _report(_exceptionable, {
2038
+ path: _path + ".multipleOf",
2039
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
2040
+ value: input.multipleOf
2041
+ }), "integer" === input.type || _report(_exceptionable, {
2042
+ path: _path + ".type",
2043
+ expected: "\"integer\"",
2044
+ value: input.type
2045
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
2046
+ path: _path + ".minimum",
2047
+ expected: "(number | undefined)",
2048
+ value: input.minimum
2049
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
2050
+ path: _path + ".maximum",
2051
+ expected: "(number | undefined)",
2052
+ value: input.maximum
2053
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
2054
+ path: _path + ".exclusiveMinimum",
2055
+ expected: "(number | undefined)",
2056
+ value: input.exclusiveMinimum
2057
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
2058
+ path: _path + ".exclusiveMaximum",
2059
+ expected: "(number | undefined)",
2060
+ value: input.exclusiveMaximum
2061
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
2062
+ path: _path + ".multipleOf",
2063
+ expected: "number & ExclusiveMinimum<0>",
2064
+ value: input.multipleOf
2065
+ })) || _report(_exceptionable, {
2066
+ path: _path + ".multipleOf",
2067
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
2068
+ value: input.multipleOf
2069
+ }), "number" === input.type || _report(_exceptionable, {
2070
+ path: _path + ".type",
2071
+ expected: "\"number\"",
2072
+ value: input.type
2073
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
2074
+ path: _path + ".format",
2075
+ expected: "(string | undefined)",
2076
+ value: input.format
2077
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
2078
+ path: _path + ".pattern",
2079
+ expected: "(string | undefined)",
2080
+ value: input.pattern
2081
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
2082
+ path: _path + ".contentMediaType",
2083
+ expected: "(string | undefined)",
2084
+ value: input.contentMediaType
2085
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
2086
+ path: _path + ".minLength",
2087
+ expected: "number & Type<\"uint64\">",
2088
+ value: input.minLength
2089
+ })) || _report(_exceptionable, {
2090
+ path: _path + ".minLength",
2091
+ expected: "((number & Type<\"uint64\">) | undefined)",
2092
+ value: input.minLength
2093
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
2094
+ path: _path + ".maxLength",
2095
+ expected: "number & Type<\"uint64\">",
2096
+ value: input.maxLength
2097
+ })) || _report(_exceptionable, {
2098
+ path: _path + ".maxLength",
2099
+ expected: "((number & Type<\"uint64\">) | undefined)",
2100
+ value: input.maxLength
2101
+ }), "string" === input.type || _report(_exceptionable, {
2102
+ path: _path + ".type",
2103
+ expected: "\"string\"",
2104
+ value: input.type
2105
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
2106
+ path: _path + "[\"const\"]",
2107
+ expected: "(boolean | number | string)",
2108
+ value: input["const"]
2109
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
2110
+ path: _path + ".type",
2111
+ expected: "\"boolean\"",
2112
+ value: input.type
2113
+ })].every(flag => flag); const _vo14 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
2114
+ path: _path + ".items",
2115
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2116
+ value: input.items
2117
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
2118
+ path: _path + ".items",
2119
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2120
+ value: input.items
2121
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
2122
+ path: _path + ".uniqueItems",
2123
+ expected: "(boolean | undefined)",
2124
+ value: input.uniqueItems
2125
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
2126
+ path: _path + ".minItems",
2127
+ expected: "number & Type<\"uint64\">",
2128
+ value: input.minItems
2129
+ })) || _report(_exceptionable, {
2130
+ path: _path + ".minItems",
2131
+ expected: "((number & Type<\"uint64\">) | undefined)",
2132
+ value: input.minItems
2133
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
2134
+ path: _path + ".maxItems",
2135
+ expected: "number & Type<\"uint64\">",
2136
+ value: input.maxItems
2137
+ })) || _report(_exceptionable, {
2138
+ path: _path + ".maxItems",
2139
+ expected: "((number & Type<\"uint64\">) | undefined)",
2140
+ value: input.maxItems
2141
+ }), "array" === input.type || _report(_exceptionable, {
2142
+ path: _path + ".type",
2143
+ expected: "\"array\"",
2144
+ value: input.type
2145
+ })].every(flag => flag); const _vo15 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
2146
+ path: _path + ".properties",
2147
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
2148
+ value: input.properties
2149
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
2150
+ path: _path + ".properties",
2151
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
2152
+ value: input.properties
2153
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
2154
+ path: _path + ".additionalProperties",
2155
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2156
+ value: input.additionalProperties
2157
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
2158
+ path: _path + ".additionalProperties",
2159
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2160
+ value: input.additionalProperties
2161
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
2162
+ path: _path + ".additionalProperties",
2163
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2164
+ value: input.additionalProperties
2165
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
2166
+ path: _path + ".required",
2167
+ expected: "Array<string>",
2168
+ value: input.required
2169
+ })) && input.required.map((elem, _index5) => "string" === typeof elem || _report(_exceptionable, {
2170
+ path: _path + ".required[" + _index5 + "]",
2171
+ expected: "string",
2172
+ value: elem
2173
+ })).every(flag => flag) || _report(_exceptionable, {
2174
+ path: _path + ".required",
2175
+ expected: "Array<string>",
2176
+ value: input.required
2177
+ }), "object" === input.type || _report(_exceptionable, {
2178
+ path: _path + ".type",
2179
+ expected: "\"object\"",
2180
+ value: input.type
2181
+ })].every(flag => flag); const _vo16 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
2182
+ path: _path + ".$ref",
2183
+ expected: "string",
2184
+ value: input.$ref
2185
+ })].every(flag => flag); const _vo17 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
2186
+ path: _path + ".oneOf",
2187
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
2188
+ value: input.oneOf
2189
+ })) && input.oneOf.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2190
+ path: _path + ".oneOf[" + _index6 + "]",
2191
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2192
+ value: elem
2193
+ })) && _vu0(elem, _path + ".oneOf[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
2194
+ path: _path + ".oneOf[" + _index6 + "]",
2195
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2196
+ value: elem
2197
+ })).every(flag => flag) || _report(_exceptionable, {
2198
+ path: _path + ".oneOf",
2199
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
2200
+ value: input.oneOf
2201
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
2202
+ path: _path + ".discriminator",
2203
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
2204
+ value: input.discriminator
2205
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
2206
+ path: _path + ".discriminator",
2207
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
2208
+ value: input.discriminator
2209
+ })].every(flag => flag); const _vo18 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
2210
+ path: _path + ".type",
2211
+ expected: "\"null\"",
2212
+ value: input.type
2213
+ })].every(flag => flag); const _vo19 = (input, _path, _exceptionable = true) => ["string" === typeof input.propertyName || _report(_exceptionable, {
2214
+ path: _path + ".propertyName",
2215
+ expected: "string",
2216
+ value: input.propertyName
2217
+ }), undefined === input.mapping || ("object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) || _report(_exceptionable, {
2218
+ path: _path + ".mapping",
2219
+ expected: "(Record<string, string> | undefined)",
2220
+ value: input.mapping
2221
+ })) && _vo20(input.mapping, _path + ".mapping", true && _exceptionable) || _report(_exceptionable, {
2222
+ path: _path + ".mapping",
2223
+ expected: "(Record<string, string> | undefined)",
2224
+ value: input.mapping
2225
+ })].every(flag => flag); const _vo20 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
2226
+ const value = input[key];
2227
+ if (undefined === value)
2228
+ return true;
2229
+ return "string" === typeof value || _report(_exceptionable, {
2230
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
2231
+ expected: "string",
2232
+ value: value
2233
+ });
2234
+ }).every(flag => flag)].every(flag => flag); const _vo21 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
2235
+ path: _path + ".properties",
2236
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
2237
+ value: input.properties
2238
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
2239
+ path: _path + ".properties",
2240
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
2241
+ value: input.properties
2242
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
2243
+ path: _path + ".additionalProperties",
2244
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2245
+ value: input.additionalProperties
2246
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
2247
+ path: _path + ".additionalProperties",
2248
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2249
+ value: input.additionalProperties
2250
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
2251
+ path: _path + ".additionalProperties",
2252
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
2253
+ value: input.additionalProperties
2254
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
2255
+ path: _path + ".required",
2256
+ expected: "Array<string>",
2257
+ value: input.required
2258
+ })) && input.required.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
2259
+ path: _path + ".required[" + _index7 + "]",
2260
+ expected: "string",
2261
+ value: elem
2262
+ })).every(flag => flag) || _report(_exceptionable, {
2263
+ path: _path + ".required",
2264
+ expected: "Array<string>",
2265
+ value: input.required
2266
+ }), "object" === input.type || _report(_exceptionable, {
2267
+ path: _path + ".type",
2268
+ expected: "\"object\"",
2269
+ value: input.type
2270
+ }), "string" === typeof input.description || _report(_exceptionable, {
2271
+ path: _path + ".description",
2272
+ expected: "string",
2273
+ value: input.description
2274
+ })].every(flag => flag); const _vo22 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
2275
+ path: _path + ".$ref",
2276
+ expected: "string",
2277
+ value: input.$ref
2278
+ }), "string" === typeof input.description || _report(_exceptionable, {
2279
+ path: _path + ".description",
2280
+ expected: "string",
2281
+ value: input.description
2282
+ })].every(flag => flag); const _vo23 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
2283
+ path: _path + ".oneOf",
2284
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
2285
+ value: input.oneOf
2286
+ })) && input.oneOf.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2287
+ path: _path + ".oneOf[" + _index8 + "]",
2288
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2289
+ value: elem
2290
+ })) && _vu0(elem, _path + ".oneOf[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
2291
+ path: _path + ".oneOf[" + _index8 + "]",
2292
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
2293
+ value: elem
2294
+ })).every(flag => flag) || _report(_exceptionable, {
2295
+ path: _path + ".oneOf",
2296
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
2297
+ value: input.oneOf
2298
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
2299
+ path: _path + ".discriminator",
2300
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
2301
+ value: input.discriminator
2302
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
2303
+ path: _path + ".discriminator",
2304
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
2305
+ value: input.discriminator
2306
+ }), "string" === typeof input.description || _report(_exceptionable, {
2307
+ path: _path + ".description",
2308
+ expected: "string",
2309
+ value: input.description
2310
+ })].every(flag => flag); const _vo24 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
2311
+ path: _path + ".type",
2312
+ expected: "\"null\"",
2313
+ value: input.type
2314
+ }), "string" === typeof input.description || _report(_exceptionable, {
2315
+ path: _path + ".description",
2316
+ expected: "string",
2317
+ value: input.description
2318
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
2319
+ if ("number" === input.type)
2320
+ return _vo10(input, _path, true && _exceptionable);
2321
+ else if ("integer" === input.type)
2322
+ return _vo9(input, _path, true && _exceptionable);
2323
+ else if ("string" === input.type)
2324
+ return _vo11(input, _path, true && _exceptionable);
2325
+ else if (undefined !== input["const"])
2326
+ return _vo12(input, _path, true && _exceptionable);
2327
+ else if ("null" === input.type)
2328
+ return _vo18(input, _path, true && _exceptionable);
2329
+ else if ("boolean" === input.type)
2330
+ return _vo13(input, _path, true && _exceptionable);
2331
+ else if ("array" === input.type)
2332
+ return _vo14(input, _path, true && _exceptionable);
2333
+ else if ("object" === input.type)
2334
+ return _vo15(input, _path, true && _exceptionable);
2335
+ else if (undefined !== input.$ref)
2336
+ return _vo16(input, _path, true && _exceptionable);
2337
+ else
2338
+ return _report(_exceptionable, {
2339
+ path: _path,
2340
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference)",
2341
+ value: input
2342
+ });
2343
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
2344
+ if (undefined !== input["const"])
2345
+ return _vo3(input, _path, true && _exceptionable);
2346
+ else if ("boolean" === input.type)
2347
+ return _vo4(input, _path, true && _exceptionable);
2348
+ else if ("number" === input.type)
2349
+ return _vo6(input, _path, true && _exceptionable);
2350
+ else if ("integer" === input.type)
2351
+ return _vo5(input, _path, true && _exceptionable);
2352
+ else if ("string" === input.type)
2353
+ return _vo7(input, _path, true && _exceptionable);
2354
+ else if ("array" === input.type)
2355
+ return _vo8(input, _path, true && _exceptionable);
2356
+ else if ("object" === input.type)
2357
+ return _vo21(input, _path, true && _exceptionable);
2358
+ else if (undefined !== input.$ref)
2359
+ return _vo22(input, _path, true && _exceptionable);
2360
+ else if (undefined !== input.oneOf)
2361
+ return _vo23(input, _path, true && _exceptionable);
2362
+ else if ("null" === input.type)
2363
+ return _vo24(input, _path, true && _exceptionable);
2364
+ else
2365
+ return _report(_exceptionable, {
2366
+ path: _path,
2367
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.IString | AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.INull)",
2368
+ value: input
2369
+ });
2370
+ })(); const _vu2 = (input, _path, _exceptionable = true) => (() => {
2371
+ if ("number" === input.type)
2372
+ return _vo10(input, _path, true && _exceptionable);
2373
+ else if ("integer" === input.type)
2374
+ return _vo9(input, _path, true && _exceptionable);
2375
+ else if ("string" === input.type)
2376
+ return _vo11(input, _path, true && _exceptionable);
2377
+ else if (undefined !== input["const"])
2378
+ return _vo12(input, _path, true && _exceptionable);
2379
+ else if ("null" === input.type)
2380
+ return _vo18(input, _path, true && _exceptionable);
2381
+ else if ("boolean" === input.type)
2382
+ return _vo13(input, _path, true && _exceptionable);
2383
+ else if ("array" === input.type)
2384
+ return _vo14(input, _path, true && _exceptionable);
2385
+ else if ("object" === input.type)
2386
+ return _vo15(input, _path, true && _exceptionable);
2387
+ else if (undefined !== input.$ref)
2388
+ return _vo16(input, _path, true && _exceptionable);
2389
+ else if (undefined !== input.oneOf)
2390
+ return _vo17(input, _path, true && _exceptionable);
2391
+ else
2392
+ return _report(_exceptionable, {
2393
+ path: _path,
2394
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IOneOf)",
2395
+ value: input
2396
+ });
2397
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
2398
+ if (false === __is(input)) {
2399
+ errors = [];
2400
+ _report = __typia_transform__validateReport._validateReport(errors);
2401
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
2402
+ path: _path + "",
2403
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IProps",
2404
+ value: input
2405
+ })) && _vo0(input, _path + "", true) || _report(true, {
2406
+ path: _path + "",
2407
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IProps",
2408
+ value: input
2409
+ }))(input, "$input", true);
2410
+ const success = 0 === errors.length;
2411
+ return success ? {
2412
+ success,
2413
+ data: input
2414
+ } : {
2415
+ success,
2416
+ errors,
2417
+ data: input
2418
+ };
2419
+ }
2420
+ return {
2421
+ success: true,
2422
+ data: input
2423
+ };
2424
+ }; })()
2425
+ }
2426
+ ]
2427
+ };
2428
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
2429
+ validate: {
2430
+ review: validate,
2431
+ },
2432
+ }), { equals: false }));
2433
+ return application;
2434
+ })(),
2435
+ claude: (validate) => (() => {
2436
+ const application = {
2437
+ model: "claude",
2438
+ options: {
2439
+ reference: true,
2440
+ separate: null
2441
+ },
2442
+ functions: [
2443
+ {
2444
+ name: "review",
2445
+ parameters: {
2446
+ description: " Contains review findings, improvement plan, and enhanced\nschemas\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceSchemasReviewApplication.IProps} type:\n\n> Schema review and enhancement parameters for the review function.\n> \n> When the review function is called, these properties must be populated to\n> complete the schema validation and improvement process. The LLM uses this\n> interface to understand what outputs are required.",
2447
+ type: "object",
2448
+ properties: {
2449
+ think: {
2450
+ $ref: "#/$defs/IAutoBeInterfaceSchemasReviewApplication.IThink"
2451
+ },
2452
+ content: {
2453
+ description: "Final validated and enhanced schemas ready for production use.\n\nDO:\n\n- Include valid OpenAPI schema definitions\n- Include all entities that were in the original input\n- Provide fixed versions if original schemas have issues\n- Rename entities correctly if names are wrong\n- Include created variants if schemas are missing them\n\nDO NOT:\n\n- Return an empty object {} (this will delete all schemas)\n- Return undefined or null\n- Include explanations or excuses in schema descriptions\n- Leave broken schemas unfixed\n\nWhen original schemas are beyond repair, recreate them properly based on\nentity names and context. This field becomes the final schemas used by\nthe system, so it must always contain complete, valid schemas.",
2454
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
2455
+ }
2456
+ },
2457
+ required: [
2458
+ "think",
2459
+ "content"
2460
+ ],
2461
+ additionalProperties: false,
2462
+ $defs: {
2463
+ "IAutoBeInterfaceSchemasReviewApplication.IThink": {
2464
+ type: "object",
2465
+ properties: {
2466
+ review: {
2467
+ description: "Issues and problems found during schema analysis.\n\nDO: Document only problems that need fixing. DO NOT: Include positive\nfeedback, compliments, or confirmations\n\nFocus exclusively on issues organized by severity:\n\nSeverity levels:\n\n- Security vulnerabilities (exposed passwords, missing auth boundaries)\n- Missing required variants, incorrect type mappings\n- Missing format specifications, incomplete relationships\n- Documentation improvements, style consistency\n\nEach issue must include the specific schema name and what needs to be\nfixed. If there are no issues at all, simply state: \"No issues found.\"",
2468
+ type: "string"
2469
+ },
2470
+ plan: {
2471
+ description: "Action plan for addressing identified issues.\n\nMust specify concrete fixes categorized by priority:\n\n- For perfect schemas: \"No improvements required. All schemas meet AutoBE\n standards.\"\n- For fixable issues: List each fix with operation path and exact change\n- For critical problems: Describe how schemas were recreated or corrected\n\nNever leave this empty. Always provide a clear plan even if no changes\nare needed. The plan documents what was done to produce the content\nfield.",
2472
+ type: "string"
2473
+ }
2474
+ },
2475
+ required: [
2476
+ "review",
2477
+ "plan"
2478
+ ]
2479
+ },
2480
+ "RecordstringAutoBeOpenApi.IJsonSchemaDescriptive": {
2481
+ description: "Construct a type with a set of properties K of type T",
2482
+ type: "object",
2483
+ properties: {},
2484
+ required: [],
2485
+ additionalProperties: {
2486
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive"
2487
+ }
2488
+ },
2489
+ "AutoBeOpenApi.IJsonSchemaDescriptive": {
2490
+ description: "Descriptive type schema info.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` is a type schema info of the OpenAPI\nGenerative, but it has a `description` property which is required.\n\n`AutoBeOpenApi.IJsonSchemaDescriptive` basically follows the JSON schema\nspecification of OpenAPI v3.1, but a little bit shrunk to remove ambiguous\nand duplicated expressions of OpenAPI v3.1 for the convenience, clarity,\nand AI generation.\n\nCRITICAL INSTRUCTIONS FOR OPTIMAL AI GENERATION:\n\nWhen creating descriptions for components, types, and properties:\n\n1. ALWAYS refer to and incorporate the description comments from the\n corresponding Prisma DB schema tables and columns. The descriptions\n should match the style, level of detail, and terminology used in the\n Prisma schema.\n2. ALL descriptions MUST be organized into MULTIPLE PARAGRAPHS separated by\n line breaks. Single-paragraph descriptions should be avoided.\n3. Descriptions should comprehensively cover:\n\n - The purpose and business meaning of the type or property\n - Relationships to other entities\n - Validation rules, constraints, and edge cases\n - Usage context and examples when helpful\n4. For each property of an object type, ensure its description reflects the\n corresponding column description in the Prisma DB schema, maintaining\n the same level of detail and terminology\n5. Descriptions should be so detailed and clear that anyone reading them can\n fully understand the type or property without needing to reference any\n other documentation",
2491
+ oneOf: [
2492
+ {
2493
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IConstant"
2494
+ },
2495
+ {
2496
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean"
2497
+ },
2498
+ {
2499
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IInteger"
2500
+ },
2501
+ {
2502
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INumber"
2503
+ },
2504
+ {
2505
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IString"
2506
+ },
2507
+ {
2508
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IArray"
2509
+ },
2510
+ {
2511
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IObject"
2512
+ },
2513
+ {
2514
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IReference"
2515
+ },
2516
+ {
2517
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf"
2518
+ },
2519
+ {
2520
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INull"
2521
+ }
2522
+ ]
2523
+ },
2524
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IConstant": {
2525
+ description: "Constant value type.",
2526
+ type: "object",
2527
+ properties: {
2528
+ "const": {
2529
+ description: "The constant value.",
2530
+ oneOf: [
2531
+ {
2532
+ type: "string"
2533
+ },
2534
+ {
2535
+ type: "number"
2536
+ },
2537
+ {
2538
+ type: "boolean"
2539
+ }
2540
+ ]
2541
+ },
2542
+ description: {
2543
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2544
+ type: "string"
2545
+ }
2546
+ },
2547
+ required: [
2548
+ "const",
2549
+ "description"
2550
+ ]
2551
+ },
2552
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean": {
2553
+ description: "Boolean type info.",
2554
+ type: "object",
2555
+ properties: {
2556
+ type: {
2557
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2558
+ "const": "boolean"
2559
+ },
2560
+ description: {
2561
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2562
+ type: "string"
2563
+ }
2564
+ },
2565
+ required: [
2566
+ "type",
2567
+ "description"
2568
+ ]
2569
+ },
2570
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IInteger": {
2571
+ description: "Integer type info.",
2572
+ type: "object",
2573
+ properties: {
2574
+ minimum: {
2575
+ description: "Minimum value restriction.",
2576
+ type: "integer"
2577
+ },
2578
+ maximum: {
2579
+ description: "Maximum value restriction.",
2580
+ type: "integer"
2581
+ },
2582
+ exclusiveMinimum: {
2583
+ description: "Exclusive minimum value restriction.",
2584
+ type: "number"
2585
+ },
2586
+ exclusiveMaximum: {
2587
+ description: "Exclusive maximum value restriction.",
2588
+ type: "number"
2589
+ },
2590
+ multipleOf: {
2591
+ description: "Multiple of value restriction.",
2592
+ type: "integer",
2593
+ exclusiveMinimum: 0
2594
+ },
2595
+ type: {
2596
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2597
+ "const": "integer"
2598
+ },
2599
+ description: {
2600
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2601
+ type: "string"
2602
+ }
2603
+ },
2604
+ required: [
2605
+ "type",
2606
+ "description"
2607
+ ]
2608
+ },
2609
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INumber": {
2610
+ description: "Number (double) type info.",
2611
+ type: "object",
2612
+ properties: {
2613
+ minimum: {
2614
+ description: "Minimum value restriction.",
2615
+ type: "number"
2616
+ },
2617
+ maximum: {
2618
+ description: "Maximum value restriction.",
2619
+ type: "number"
2620
+ },
2621
+ exclusiveMinimum: {
2622
+ description: "Exclusive minimum value restriction.",
2623
+ type: "number"
2624
+ },
2625
+ exclusiveMaximum: {
2626
+ description: "Exclusive maximum value restriction.",
2627
+ type: "number"
2628
+ },
2629
+ multipleOf: {
2630
+ description: "Multiple of value restriction.",
2631
+ type: "number",
2632
+ exclusiveMinimum: 0
2633
+ },
2634
+ type: {
2635
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2636
+ "const": "number"
2637
+ },
2638
+ description: {
2639
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2640
+ type: "string"
2641
+ }
2642
+ },
2643
+ required: [
2644
+ "type",
2645
+ "description"
2646
+ ]
2647
+ },
2648
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IString": {
2649
+ description: "String type info.",
2650
+ type: "object",
2651
+ properties: {
2652
+ format: {
2653
+ description: "Format restriction.",
2654
+ type: "string"
2655
+ },
2656
+ pattern: {
2657
+ description: "Pattern restriction.",
2658
+ type: "string"
2659
+ },
2660
+ contentMediaType: {
2661
+ description: "Content media type restriction.",
2662
+ type: "string"
2663
+ },
2664
+ minLength: {
2665
+ description: "Minimum length restriction.",
2666
+ type: "integer",
2667
+ minimum: 0
2668
+ },
2669
+ maxLength: {
2670
+ description: "Maximum length restriction.",
2671
+ type: "integer",
2672
+ minimum: 0
2673
+ },
2674
+ type: {
2675
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2676
+ "const": "string"
2677
+ },
2678
+ description: {
2679
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2680
+ type: "string"
2681
+ }
2682
+ },
2683
+ required: [
2684
+ "type",
2685
+ "description"
2686
+ ]
2687
+ },
2688
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
2689
+ description: "Array type info.",
2690
+ type: "object",
2691
+ properties: {
2692
+ items: {
2693
+ description: "Items type info.\n\nThe `items` means the type of the array elements. In other words, it is\nthe type schema info of the `T` in the TypeScript array type\n`Array<T>`.",
2694
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
2695
+ },
2696
+ uniqueItems: {
2697
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
2698
+ type: "boolean"
2699
+ },
2700
+ minItems: {
2701
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
2702
+ type: "integer",
2703
+ minimum: 0
2704
+ },
2705
+ maxItems: {
2706
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
2707
+ type: "integer",
2708
+ minimum: 0
2709
+ },
2710
+ type: {
2711
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2712
+ "const": "array"
2713
+ },
2714
+ description: {
2715
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
2716
+ type: "string"
2717
+ }
2718
+ },
2719
+ required: [
2720
+ "items",
2721
+ "type",
2722
+ "description"
2723
+ ]
2724
+ },
2725
+ "AutoBeOpenApi.IJsonSchema": {
2726
+ description: "Type schema info.\n\n`AutoBeOpenApi.IJsonSchema` is a type schema info of the OpenAPI\nGenerative.\n\n`AutoBeOpenApi.IJsonSchema` basically follows the JSON schema specification\nof OpenAPI v3.1, but a little bit shrunk to remove ambiguous and duplicated\nexpressions of OpenAPI v3.1 for the convenience, clarity, and AI\ngeneration.\n\n## CRITICAL: Union Type Expression\n\nIn this type system, union types (including nullable types) MUST be\nexpressed using the `IOneOf` structure. NEVER use array notation in the\n`type` field.\n\n\u274C **FORBIDDEN** - Array notation in type field:\n\n```typescript\n{\n \"type\": [\"string\", \"null\"] // NEVER DO THIS!\n}\n```\n\n\u2705 **CORRECT** - Using IOneOf for unions:\n\n```typescript\n// For nullable string:\n{\n oneOf: [{ type: \"string\" }, { type: \"null\" }];\n}\n\n// For string | number union:\n{\n oneOf: [{ type: \"string\" }, { type: \"number\" }];\n}\n```\n\nThe `type` field in any schema object is a discriminator that identifies\nthe schema type and MUST contain exactly one string value.",
2727
+ oneOf: [
2728
+ {
2729
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
2730
+ },
2731
+ {
2732
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
2733
+ },
2734
+ {
2735
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
2736
+ },
2737
+ {
2738
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
2739
+ },
2740
+ {
2741
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
2742
+ },
2743
+ {
2744
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
2745
+ },
2746
+ {
2747
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
2748
+ },
2749
+ {
2750
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
2751
+ },
2752
+ {
2753
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
2754
+ },
2755
+ {
2756
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
2757
+ }
2758
+ ]
2759
+ },
2760
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
2761
+ description: "Integer type info.",
2762
+ type: "object",
2763
+ properties: {
2764
+ minimum: {
2765
+ description: "Minimum value restriction.",
2766
+ type: "integer"
2767
+ },
2768
+ maximum: {
2769
+ description: "Maximum value restriction.",
2770
+ type: "integer"
2771
+ },
2772
+ exclusiveMinimum: {
2773
+ description: "Exclusive minimum value restriction.",
2774
+ type: "number"
2775
+ },
2776
+ exclusiveMaximum: {
2777
+ description: "Exclusive maximum value restriction.",
2778
+ type: "number"
2779
+ },
2780
+ multipleOf: {
2781
+ description: "Multiple of value restriction.",
2782
+ type: "integer",
2783
+ exclusiveMinimum: 0
2784
+ },
2785
+ type: {
2786
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2787
+ "const": "integer"
2788
+ }
2789
+ },
2790
+ required: [
2791
+ "type"
2792
+ ]
2793
+ },
2794
+ "AutoBeOpenApi.IJsonSchema.INumber": {
2795
+ description: "Number (double) type info.",
2796
+ type: "object",
2797
+ properties: {
2798
+ minimum: {
2799
+ description: "Minimum value restriction.",
2800
+ type: "number"
2801
+ },
2802
+ maximum: {
2803
+ description: "Maximum value restriction.",
2804
+ type: "number"
2805
+ },
2806
+ exclusiveMinimum: {
2807
+ description: "Exclusive minimum value restriction.",
2808
+ type: "number"
2809
+ },
2810
+ exclusiveMaximum: {
2811
+ description: "Exclusive maximum value restriction.",
2812
+ type: "number"
2813
+ },
2814
+ multipleOf: {
2815
+ description: "Multiple of value restriction.",
2816
+ type: "number",
2817
+ exclusiveMinimum: 0
2818
+ },
2819
+ type: {
2820
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2821
+ "const": "number"
2822
+ }
2823
+ },
2824
+ required: [
2825
+ "type"
2826
+ ]
2827
+ },
2828
+ "AutoBeOpenApi.IJsonSchema.IString": {
2829
+ description: "String type info.",
2830
+ type: "object",
2831
+ properties: {
2832
+ format: {
2833
+ description: "Format restriction.",
2834
+ type: "string"
2835
+ },
2836
+ pattern: {
2837
+ description: "Pattern restriction.",
2838
+ type: "string"
2839
+ },
2840
+ contentMediaType: {
2841
+ description: "Content media type restriction.",
2842
+ type: "string"
2843
+ },
2844
+ minLength: {
2845
+ description: "Minimum length restriction.",
2846
+ type: "integer",
2847
+ minimum: 0
2848
+ },
2849
+ maxLength: {
2850
+ description: "Maximum length restriction.",
2851
+ type: "integer",
2852
+ minimum: 0
2853
+ },
2854
+ type: {
2855
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2856
+ "const": "string"
2857
+ }
2858
+ },
2859
+ required: [
2860
+ "type"
2861
+ ]
2862
+ },
2863
+ "AutoBeOpenApi.IJsonSchema.IConstant": {
2864
+ description: "Constant value type.",
2865
+ type: "object",
2866
+ properties: {
2867
+ "const": {
2868
+ description: "The constant value.",
2869
+ oneOf: [
2870
+ {
2871
+ type: "string"
2872
+ },
2873
+ {
2874
+ type: "number"
2875
+ },
2876
+ {
2877
+ type: "boolean"
2878
+ }
2879
+ ]
2880
+ }
2881
+ },
2882
+ required: [
2883
+ "const"
2884
+ ]
2885
+ },
2886
+ "AutoBeOpenApi.IJsonSchema.IBoolean": {
2887
+ description: "Boolean type info.",
2888
+ type: "object",
2889
+ properties: {
2890
+ type: {
2891
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2892
+ "const": "boolean"
2893
+ }
2894
+ },
2895
+ required: [
2896
+ "type"
2897
+ ]
2898
+ },
2899
+ "AutoBeOpenApi.IJsonSchema.IArray": {
2900
+ description: "Array type info.",
2901
+ type: "object",
2902
+ properties: {
2903
+ items: {
2904
+ description: "Items type info.\n\nThe `items` means the type of the array elements. In other words, it is\nthe type schema info of the `T` in the TypeScript array type\n`Array<T>`.",
2905
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
2906
+ },
2907
+ uniqueItems: {
2908
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
2909
+ type: "boolean"
2910
+ },
2911
+ minItems: {
2912
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
2913
+ type: "integer",
2914
+ minimum: 0
2915
+ },
2916
+ maxItems: {
2917
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
2918
+ type: "integer",
2919
+ minimum: 0
2920
+ },
2921
+ type: {
2922
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2923
+ "const": "array"
2924
+ }
2925
+ },
2926
+ required: [
2927
+ "items",
2928
+ "type"
2929
+ ]
2930
+ },
2931
+ "AutoBeOpenApi.IJsonSchema.IObject": {
2932
+ description: "Object type info.",
2933
+ type: "object",
2934
+ properties: {
2935
+ properties: {
2936
+ description: "Properties of the object.\n\nThe `properties` means a list of key-value pairs of the object's\nregular properties. The key is the name of the regular property, and\nthe value is the type schema info.\n\nIMPORTANT: Each property in this object MUST have a detailed\ndescription that references and aligns with the description comments\nfrom the corresponding Prisma DB schema column.\n\nIf you need additional properties that is represented by dynamic key,\nyou can use the {@link additionalProperties} instead.",
2937
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
2938
+ },
2939
+ additionalProperties: {
2940
+ description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`",
2941
+ oneOf: [
2942
+ {
2943
+ "const": false
2944
+ },
2945
+ {
2946
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
2947
+ },
2948
+ {
2949
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
2950
+ },
2951
+ {
2952
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
2953
+ },
2954
+ {
2955
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
2956
+ },
2957
+ {
2958
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
2959
+ },
2960
+ {
2961
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
2962
+ },
2963
+ {
2964
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
2965
+ },
2966
+ {
2967
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
2968
+ },
2969
+ {
2970
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
2971
+ },
2972
+ {
2973
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
2974
+ }
2975
+ ]
2976
+ },
2977
+ required: {
2978
+ description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```",
2979
+ type: "array",
2980
+ items: {
2981
+ type: "string"
2982
+ }
2983
+ },
2984
+ type: {
2985
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2986
+ "const": "object"
2987
+ }
2988
+ },
2989
+ required: [
2990
+ "properties",
2991
+ "required",
2992
+ "type"
2993
+ ]
2994
+ },
2995
+ "AutoBeOpenApi.IJsonSchema.INull": {
2996
+ description: "Null type.",
2997
+ type: "object",
2998
+ properties: {
2999
+ type: {
3000
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
3001
+ "const": "null"
3002
+ }
3003
+ },
3004
+ required: [
3005
+ "type"
3006
+ ]
3007
+ },
3008
+ "AutoBeOpenApi.IJsonSchema.IReference": {
3009
+ description: "Reference type directing named schema.",
3010
+ type: "object",
3011
+ properties: {
3012
+ $ref: {
3013
+ description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`",
3014
+ type: "string"
3015
+ }
3016
+ },
3017
+ required: [
3018
+ "$ref"
3019
+ ]
3020
+ },
3021
+ "AutoBeOpenApi.IJsonSchema.IOneOf": {
3022
+ description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.",
3023
+ type: "object",
3024
+ properties: {
3025
+ oneOf: {
3026
+ description: "List of the union types.",
3027
+ type: "array",
3028
+ items: {
3029
+ oneOf: [
3030
+ {
3031
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
3032
+ },
3033
+ {
3034
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
3035
+ },
3036
+ {
3037
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
3038
+ },
3039
+ {
3040
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
3041
+ },
3042
+ {
3043
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
3044
+ },
3045
+ {
3046
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
3047
+ },
3048
+ {
3049
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
3050
+ },
3051
+ {
3052
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
3053
+ },
3054
+ {
3055
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
3056
+ }
3057
+ ]
3058
+ }
3059
+ },
3060
+ discriminator: {
3061
+ description: "Discriminator info of the union type.",
3062
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
3063
+ }
3064
+ },
3065
+ required: [
3066
+ "oneOf"
3067
+ ]
3068
+ },
3069
+ "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
3070
+ description: "Discriminator info of the union type.",
3071
+ type: "object",
3072
+ properties: {
3073
+ propertyName: {
3074
+ description: "Property name for the discriminator.",
3075
+ type: "string"
3076
+ },
3077
+ mapping: {
3078
+ description: "Mapping of the discriminator value to the schema name.\n\nThis property is valid only for {@link IReference} typed\n{@link IOneOf.oneof} elements. Therefore, `key` of `mapping` is the\ndiscriminator value, and `value` of `mapping` is the schema name like\n`#/components/schemas/SomeObject`.",
3079
+ $ref: "#/$defs/Recordstringstring"
3080
+ }
3081
+ },
3082
+ required: [
3083
+ "propertyName"
3084
+ ]
3085
+ },
3086
+ Recordstringstring: {
3087
+ description: "Construct a type with a set of properties K of type T",
3088
+ type: "object",
3089
+ properties: {},
3090
+ required: [],
3091
+ additionalProperties: {
3092
+ type: "string"
3093
+ }
3094
+ },
3095
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
3096
+ description: "Object type info.",
3097
+ type: "object",
3098
+ properties: {
3099
+ properties: {
3100
+ description: "Properties of the object.\n\nThe `properties` means a list of key-value pairs of the object's\nregular properties. The key is the name of the regular property, and\nthe value is the type schema info.\n\nIMPORTANT: Each property in this object MUST have a detailed\ndescription that references and aligns with the description comments\nfrom the corresponding Prisma DB schema column.\n\nIf you need additional properties that is represented by dynamic key,\nyou can use the {@link additionalProperties} instead.",
3101
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
3102
+ },
3103
+ additionalProperties: {
3104
+ description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`",
3105
+ oneOf: [
3106
+ {
3107
+ "const": false
3108
+ },
3109
+ {
3110
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
3111
+ },
3112
+ {
3113
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
3114
+ },
3115
+ {
3116
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
3117
+ },
3118
+ {
3119
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
3120
+ },
3121
+ {
3122
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
3123
+ },
3124
+ {
3125
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
3126
+ },
3127
+ {
3128
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
3129
+ },
3130
+ {
3131
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
3132
+ },
3133
+ {
3134
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
3135
+ },
3136
+ {
3137
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
3138
+ }
3139
+ ]
3140
+ },
3141
+ required: {
3142
+ description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```",
3143
+ type: "array",
3144
+ items: {
3145
+ type: "string"
3146
+ }
3147
+ },
3148
+ type: {
3149
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
3150
+ "const": "object"
3151
+ },
3152
+ description: {
3153
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
3154
+ type: "string"
3155
+ }
3156
+ },
3157
+ required: [
3158
+ "properties",
3159
+ "required",
3160
+ "type",
3161
+ "description"
3162
+ ]
3163
+ },
3164
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IReference": {
3165
+ description: "Reference type directing named schema.",
3166
+ type: "object",
3167
+ properties: {
3168
+ $ref: {
3169
+ description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`",
3170
+ type: "string"
3171
+ },
3172
+ description: {
3173
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
3174
+ type: "string"
3175
+ }
3176
+ },
3177
+ required: [
3178
+ "$ref",
3179
+ "description"
3180
+ ]
3181
+ },
3182
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
3183
+ description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.",
3184
+ type: "object",
3185
+ properties: {
3186
+ oneOf: {
3187
+ description: "List of the union types.",
3188
+ type: "array",
3189
+ items: {
3190
+ oneOf: [
3191
+ {
3192
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
3193
+ },
3194
+ {
3195
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
3196
+ },
3197
+ {
3198
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
3199
+ },
3200
+ {
3201
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
3202
+ },
3203
+ {
3204
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
3205
+ },
3206
+ {
3207
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
3208
+ },
3209
+ {
3210
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
3211
+ },
3212
+ {
3213
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
3214
+ },
3215
+ {
3216
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
3217
+ }
3218
+ ]
3219
+ }
3220
+ },
3221
+ discriminator: {
3222
+ description: "Discriminator info of the union type.",
3223
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
3224
+ },
3225
+ description: {
3226
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
3227
+ type: "string"
3228
+ }
3229
+ },
3230
+ required: [
3231
+ "oneOf",
3232
+ "description"
3233
+ ]
3234
+ },
3235
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INull": {
3236
+ description: "Null type.",
3237
+ type: "object",
3238
+ properties: {
3239
+ type: {
3240
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
3241
+ "const": "null"
3242
+ },
3243
+ description: {
3244
+ description: "Description about the type.\n\nCRITICAL: This description MUST be extensively detailed and MUST\nreference and align with the description comments from the\ncorresponding Prisma DB schema tables and columns.\n\nThe description MUST be organized into MULTIPLE PARAGRAPHS (separated\nby line breaks) based on different aspects of the type:\n\n- The purpose and business meaning of the type\n- Relationships to other entities in the system\n- Validation rules, constraints, and edge cases\n- Usage context and examples when helpful\n\nThis structured approach improves readability and helps readers better\nunderstand the type's various characteristics and use cases. The\ndescription should be so comprehensive that anyone reading it can fully\nunderstand the type without needing to reference other documentation.\n\n> MUST be written in English. Never use other languages.",
3245
+ type: "string"
3246
+ }
3247
+ },
3248
+ required: [
3249
+ "type",
3250
+ "description"
3251
+ ]
3252
+ }
3253
+ }
3254
+ },
3255
+ description: "Analyzes and improves OpenAPI schema definitions.\n\nThis function receives schema definitions and performs comprehensive review\nand enhancement. It identifies issues, creates an improvement plan, and\nproduces refined schemas that meet quality standards.\n\nThe function populates three key outputs:\n\n- A detailed review of findings organized by severity\n- An actionable plan for improvements\n- Enhanced schemas with all issues resolved",
3256
+ validate: (() => { const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) && _io2(input.content)); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => Object.keys(input).every(key => {
3257
+ const value = input[key];
3258
+ if (undefined === value)
3259
+ return true;
3260
+ return "object" === typeof value && null !== value && _iu1(value);
3261
+ }); const _io3 = input => ("string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]) && "string" === typeof input.description; const _io4 = input => "boolean" === input.type && "string" === typeof input.description; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type && "string" === typeof input.description; const _io6 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type && "string" === typeof input.description; const _io7 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type && "string" === typeof input.description; const _io8 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type && "string" === typeof input.description; const _io9 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io10 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io11 = input => (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io12 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io13 = input => "boolean" === input.type; const _io14 = input => "object" === typeof input.items && null !== input.items && _iu2(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io15 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type; const _io16 = input => "string" === typeof input.$ref; const _io17 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)); const _io18 = input => "null" === input.type; const _io19 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io20(input.mapping)); const _io20 = input => Object.keys(input).every(key => {
3262
+ const value = input[key];
3263
+ if (undefined === value)
3264
+ return true;
3265
+ return "string" === typeof value;
3266
+ }); const _io21 = input => "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties) && (null !== input.additionalProperties && (undefined === input.additionalProperties || false === input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && _iu2(input.additionalProperties))) && (Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && "object" === input.type && "string" === typeof input.description; const _io22 = input => "string" === typeof input.$ref && "string" === typeof input.description; const _io23 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io19(input.discriminator)) && "string" === typeof input.description; const _io24 = input => "null" === input.type && "string" === typeof input.description; const _iu0 = input => (() => {
3267
+ if ("number" === input.type)
3268
+ return _io10(input);
3269
+ else if ("integer" === input.type)
3270
+ return _io9(input);
3271
+ else if ("string" === input.type)
3272
+ return _io11(input);
3273
+ else if (undefined !== input["const"])
3274
+ return _io12(input);
3275
+ else if ("null" === input.type)
3276
+ return _io18(input);
3277
+ else if ("boolean" === input.type)
3278
+ return _io13(input);
3279
+ else if ("array" === input.type)
3280
+ return _io14(input);
3281
+ else if ("object" === input.type)
3282
+ return _io15(input);
3283
+ else if (undefined !== input.$ref)
3284
+ return _io16(input);
3285
+ else
3286
+ return false;
3287
+ })(); const _iu1 = input => (() => {
3288
+ if (undefined !== input["const"])
3289
+ return _io3(input);
3290
+ else if ("boolean" === input.type)
3291
+ return _io4(input);
3292
+ else if ("number" === input.type)
3293
+ return _io6(input);
3294
+ else if ("integer" === input.type)
3295
+ return _io5(input);
3296
+ else if ("string" === input.type)
3297
+ return _io7(input);
3298
+ else if ("array" === input.type)
3299
+ return _io8(input);
3300
+ else if ("object" === input.type)
3301
+ return _io21(input);
3302
+ else if (undefined !== input.$ref)
3303
+ return _io22(input);
3304
+ else if (undefined !== input.oneOf)
3305
+ return _io23(input);
3306
+ else if ("null" === input.type)
3307
+ return _io24(input);
3308
+ else
3309
+ return false;
3310
+ })(); const _iu2 = input => (() => {
3311
+ if ("number" === input.type)
3312
+ return _io10(input);
3313
+ else if ("integer" === input.type)
3314
+ return _io9(input);
3315
+ else if ("string" === input.type)
3316
+ return _io11(input);
3317
+ else if (undefined !== input["const"])
3318
+ return _io12(input);
3319
+ else if ("null" === input.type)
3320
+ return _io18(input);
3321
+ else if ("boolean" === input.type)
3322
+ return _io13(input);
3323
+ else if ("array" === input.type)
3324
+ return _io14(input);
3325
+ else if ("object" === input.type)
3326
+ return _io15(input);
3327
+ else if (undefined !== input.$ref)
3328
+ return _io16(input);
3329
+ else if (undefined !== input.oneOf)
3330
+ return _io17(input);
3331
+ else
3332
+ return false;
3333
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
3334
+ path: _path + ".think",
3335
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
3336
+ value: input.think
3337
+ })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
3338
+ path: _path + ".think",
3339
+ expected: "IAutoBeInterfaceSchemasReviewApplication.IThink",
3340
+ value: input.think
3341
+ }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
3342
+ path: _path + ".content",
3343
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3344
+ value: input.content
3345
+ })) && _vo2(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
3346
+ path: _path + ".content",
3347
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3348
+ value: input.content
3349
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
3350
+ path: _path + ".review",
581
3351
  expected: "string",
582
3352
  value: input.review
583
3353
  }), "string" === typeof input.plan || _report(_exceptionable, {
584
3354
  path: _path + ".plan",
585
3355
  expected: "string",
586
3356
  value: input.plan
587
- }), ("object" === typeof input.content && null !== input.content && false === Array.isArray(input.content) || _report(_exceptionable, {
588
- path: _path + ".content",
589
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
590
- value: input.content
591
- })) && _vo1(input.content, _path + ".content", true && _exceptionable) || _report(_exceptionable, {
592
- path: _path + ".content",
593
- expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
594
- value: input.content
595
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
3357
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
596
3358
  const value = input[key];
597
3359
  if (undefined === value)
598
3360
  return true;
599
3361
  return ("object" === typeof value && null !== value || _report(_exceptionable, {
600
3362
  path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
601
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
3363
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
3364
+ value: value
3365
+ })) && _vu1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
3366
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
3367
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.INull | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IString)",
602
3368
  value: value
603
- })) && _vo2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
3369
+ });
3370
+ }).every(flag => flag)].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
3371
+ path: _path + "[\"const\"]",
3372
+ expected: "(boolean | number | string)",
3373
+ value: input["const"]
3374
+ }), "string" === typeof input.description || _report(_exceptionable, {
3375
+ path: _path + ".description",
3376
+ expected: "string",
3377
+ value: input.description
3378
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
3379
+ path: _path + ".type",
3380
+ expected: "\"boolean\"",
3381
+ value: input.type
3382
+ }), "string" === typeof input.description || _report(_exceptionable, {
3383
+ path: _path + ".description",
3384
+ expected: "string",
3385
+ value: input.description
3386
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
3387
+ path: _path + ".minimum",
3388
+ expected: "number & Type<\"int64\">",
3389
+ value: input.minimum
3390
+ })) || _report(_exceptionable, {
3391
+ path: _path + ".minimum",
3392
+ expected: "((number & Type<\"int64\">) | undefined)",
3393
+ value: input.minimum
3394
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
3395
+ path: _path + ".maximum",
3396
+ expected: "number & Type<\"int64\">",
3397
+ value: input.maximum
3398
+ })) || _report(_exceptionable, {
3399
+ path: _path + ".maximum",
3400
+ expected: "((number & Type<\"int64\">) | undefined)",
3401
+ value: input.maximum
3402
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
3403
+ path: _path + ".exclusiveMinimum",
3404
+ expected: "(number | undefined)",
3405
+ value: input.exclusiveMinimum
3406
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
3407
+ path: _path + ".exclusiveMaximum",
3408
+ expected: "(number | undefined)",
3409
+ value: input.exclusiveMaximum
3410
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
3411
+ path: _path + ".multipleOf",
3412
+ expected: "number & Type<\"uint64\">",
3413
+ value: input.multipleOf
3414
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
3415
+ path: _path + ".multipleOf",
3416
+ expected: "number & ExclusiveMinimum<0>",
3417
+ value: input.multipleOf
3418
+ })) || _report(_exceptionable, {
3419
+ path: _path + ".multipleOf",
3420
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
3421
+ value: input.multipleOf
3422
+ }), "integer" === input.type || _report(_exceptionable, {
3423
+ path: _path + ".type",
3424
+ expected: "\"integer\"",
3425
+ value: input.type
3426
+ }), "string" === typeof input.description || _report(_exceptionable, {
3427
+ path: _path + ".description",
3428
+ expected: "string",
3429
+ value: input.description
3430
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
3431
+ path: _path + ".minimum",
3432
+ expected: "(number | undefined)",
3433
+ value: input.minimum
3434
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
3435
+ path: _path + ".maximum",
3436
+ expected: "(number | undefined)",
3437
+ value: input.maximum
3438
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
3439
+ path: _path + ".exclusiveMinimum",
3440
+ expected: "(number | undefined)",
3441
+ value: input.exclusiveMinimum
3442
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
3443
+ path: _path + ".exclusiveMaximum",
3444
+ expected: "(number | undefined)",
3445
+ value: input.exclusiveMaximum
3446
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
3447
+ path: _path + ".multipleOf",
3448
+ expected: "number & ExclusiveMinimum<0>",
3449
+ value: input.multipleOf
3450
+ })) || _report(_exceptionable, {
3451
+ path: _path + ".multipleOf",
3452
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
3453
+ value: input.multipleOf
3454
+ }), "number" === input.type || _report(_exceptionable, {
3455
+ path: _path + ".type",
3456
+ expected: "\"number\"",
3457
+ value: input.type
3458
+ }), "string" === typeof input.description || _report(_exceptionable, {
3459
+ path: _path + ".description",
3460
+ expected: "string",
3461
+ value: input.description
3462
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
3463
+ path: _path + ".format",
3464
+ expected: "(string | undefined)",
3465
+ value: input.format
3466
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
3467
+ path: _path + ".pattern",
3468
+ expected: "(string | undefined)",
3469
+ value: input.pattern
3470
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
3471
+ path: _path + ".contentMediaType",
3472
+ expected: "(string | undefined)",
3473
+ value: input.contentMediaType
3474
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
3475
+ path: _path + ".minLength",
3476
+ expected: "number & Type<\"uint64\">",
3477
+ value: input.minLength
3478
+ })) || _report(_exceptionable, {
3479
+ path: _path + ".minLength",
3480
+ expected: "((number & Type<\"uint64\">) | undefined)",
3481
+ value: input.minLength
3482
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
3483
+ path: _path + ".maxLength",
3484
+ expected: "number & Type<\"uint64\">",
3485
+ value: input.maxLength
3486
+ })) || _report(_exceptionable, {
3487
+ path: _path + ".maxLength",
3488
+ expected: "((number & Type<\"uint64\">) | undefined)",
3489
+ value: input.maxLength
3490
+ }), "string" === input.type || _report(_exceptionable, {
3491
+ path: _path + ".type",
3492
+ expected: "\"string\"",
3493
+ value: input.type
3494
+ }), "string" === typeof input.description || _report(_exceptionable, {
3495
+ path: _path + ".description",
3496
+ expected: "string",
3497
+ value: input.description
3498
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
3499
+ path: _path + ".items",
3500
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3501
+ value: input.items
3502
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
3503
+ path: _path + ".items",
3504
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3505
+ value: input.items
3506
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
3507
+ path: _path + ".uniqueItems",
3508
+ expected: "(boolean | undefined)",
3509
+ value: input.uniqueItems
3510
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
3511
+ path: _path + ".minItems",
3512
+ expected: "number & Type<\"uint64\">",
3513
+ value: input.minItems
3514
+ })) || _report(_exceptionable, {
3515
+ path: _path + ".minItems",
3516
+ expected: "((number & Type<\"uint64\">) | undefined)",
3517
+ value: input.minItems
3518
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
3519
+ path: _path + ".maxItems",
3520
+ expected: "number & Type<\"uint64\">",
3521
+ value: input.maxItems
3522
+ })) || _report(_exceptionable, {
3523
+ path: _path + ".maxItems",
3524
+ expected: "((number & Type<\"uint64\">) | undefined)",
3525
+ value: input.maxItems
3526
+ }), "array" === input.type || _report(_exceptionable, {
3527
+ path: _path + ".type",
3528
+ expected: "\"array\"",
3529
+ value: input.type
3530
+ }), "string" === typeof input.description || _report(_exceptionable, {
3531
+ path: _path + ".description",
3532
+ expected: "string",
3533
+ value: input.description
3534
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
3535
+ path: _path + ".minimum",
3536
+ expected: "number & Type<\"int64\">",
3537
+ value: input.minimum
3538
+ })) || _report(_exceptionable, {
3539
+ path: _path + ".minimum",
3540
+ expected: "((number & Type<\"int64\">) | undefined)",
3541
+ value: input.minimum
3542
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
3543
+ path: _path + ".maximum",
3544
+ expected: "number & Type<\"int64\">",
3545
+ value: input.maximum
3546
+ })) || _report(_exceptionable, {
3547
+ path: _path + ".maximum",
3548
+ expected: "((number & Type<\"int64\">) | undefined)",
3549
+ value: input.maximum
3550
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
3551
+ path: _path + ".exclusiveMinimum",
3552
+ expected: "(number | undefined)",
3553
+ value: input.exclusiveMinimum
3554
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
3555
+ path: _path + ".exclusiveMaximum",
3556
+ expected: "(number | undefined)",
3557
+ value: input.exclusiveMaximum
3558
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
3559
+ path: _path + ".multipleOf",
3560
+ expected: "number & Type<\"uint64\">",
3561
+ value: input.multipleOf
3562
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
3563
+ path: _path + ".multipleOf",
3564
+ expected: "number & ExclusiveMinimum<0>",
3565
+ value: input.multipleOf
3566
+ })) || _report(_exceptionable, {
3567
+ path: _path + ".multipleOf",
3568
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
3569
+ value: input.multipleOf
3570
+ }), "integer" === input.type || _report(_exceptionable, {
3571
+ path: _path + ".type",
3572
+ expected: "\"integer\"",
3573
+ value: input.type
3574
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
3575
+ path: _path + ".minimum",
3576
+ expected: "(number | undefined)",
3577
+ value: input.minimum
3578
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
3579
+ path: _path + ".maximum",
3580
+ expected: "(number | undefined)",
3581
+ value: input.maximum
3582
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
3583
+ path: _path + ".exclusiveMinimum",
3584
+ expected: "(number | undefined)",
3585
+ value: input.exclusiveMinimum
3586
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
3587
+ path: _path + ".exclusiveMaximum",
3588
+ expected: "(number | undefined)",
3589
+ value: input.exclusiveMaximum
3590
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
3591
+ path: _path + ".multipleOf",
3592
+ expected: "number & ExclusiveMinimum<0>",
3593
+ value: input.multipleOf
3594
+ })) || _report(_exceptionable, {
3595
+ path: _path + ".multipleOf",
3596
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
3597
+ value: input.multipleOf
3598
+ }), "number" === input.type || _report(_exceptionable, {
3599
+ path: _path + ".type",
3600
+ expected: "\"number\"",
3601
+ value: input.type
3602
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
3603
+ path: _path + ".format",
3604
+ expected: "(string | undefined)",
3605
+ value: input.format
3606
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
3607
+ path: _path + ".pattern",
3608
+ expected: "(string | undefined)",
3609
+ value: input.pattern
3610
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
3611
+ path: _path + ".contentMediaType",
3612
+ expected: "(string | undefined)",
3613
+ value: input.contentMediaType
3614
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
3615
+ path: _path + ".minLength",
3616
+ expected: "number & Type<\"uint64\">",
3617
+ value: input.minLength
3618
+ })) || _report(_exceptionable, {
3619
+ path: _path + ".minLength",
3620
+ expected: "((number & Type<\"uint64\">) | undefined)",
3621
+ value: input.minLength
3622
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
3623
+ path: _path + ".maxLength",
3624
+ expected: "number & Type<\"uint64\">",
3625
+ value: input.maxLength
3626
+ })) || _report(_exceptionable, {
3627
+ path: _path + ".maxLength",
3628
+ expected: "((number & Type<\"uint64\">) | undefined)",
3629
+ value: input.maxLength
3630
+ }), "string" === input.type || _report(_exceptionable, {
3631
+ path: _path + ".type",
3632
+ expected: "\"string\"",
3633
+ value: input.type
3634
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
3635
+ path: _path + "[\"const\"]",
3636
+ expected: "(boolean | number | string)",
3637
+ value: input["const"]
3638
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
3639
+ path: _path + ".type",
3640
+ expected: "\"boolean\"",
3641
+ value: input.type
3642
+ })].every(flag => flag); const _vo14 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
3643
+ path: _path + ".items",
3644
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3645
+ value: input.items
3646
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
3647
+ path: _path + ".items",
3648
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3649
+ value: input.items
3650
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
3651
+ path: _path + ".uniqueItems",
3652
+ expected: "(boolean | undefined)",
3653
+ value: input.uniqueItems
3654
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
3655
+ path: _path + ".minItems",
3656
+ expected: "number & Type<\"uint64\">",
3657
+ value: input.minItems
3658
+ })) || _report(_exceptionable, {
3659
+ path: _path + ".minItems",
3660
+ expected: "((number & Type<\"uint64\">) | undefined)",
3661
+ value: input.minItems
3662
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
3663
+ path: _path + ".maxItems",
3664
+ expected: "number & Type<\"uint64\">",
3665
+ value: input.maxItems
3666
+ })) || _report(_exceptionable, {
3667
+ path: _path + ".maxItems",
3668
+ expected: "((number & Type<\"uint64\">) | undefined)",
3669
+ value: input.maxItems
3670
+ }), "array" === input.type || _report(_exceptionable, {
3671
+ path: _path + ".type",
3672
+ expected: "\"array\"",
3673
+ value: input.type
3674
+ })].every(flag => flag); const _vo15 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
3675
+ path: _path + ".properties",
3676
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3677
+ value: input.properties
3678
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
3679
+ path: _path + ".properties",
3680
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3681
+ value: input.properties
3682
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
3683
+ path: _path + ".additionalProperties",
3684
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3685
+ value: input.additionalProperties
3686
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
3687
+ path: _path + ".additionalProperties",
3688
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3689
+ value: input.additionalProperties
3690
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
3691
+ path: _path + ".additionalProperties",
3692
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3693
+ value: input.additionalProperties
3694
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
3695
+ path: _path + ".required",
3696
+ expected: "Array<string>",
3697
+ value: input.required
3698
+ })) && input.required.map((elem, _index5) => "string" === typeof elem || _report(_exceptionable, {
3699
+ path: _path + ".required[" + _index5 + "]",
3700
+ expected: "string",
3701
+ value: elem
3702
+ })).every(flag => flag) || _report(_exceptionable, {
3703
+ path: _path + ".required",
3704
+ expected: "Array<string>",
3705
+ value: input.required
3706
+ }), "object" === input.type || _report(_exceptionable, {
3707
+ path: _path + ".type",
3708
+ expected: "\"object\"",
3709
+ value: input.type
3710
+ })].every(flag => flag); const _vo16 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
3711
+ path: _path + ".$ref",
3712
+ expected: "string",
3713
+ value: input.$ref
3714
+ })].every(flag => flag); const _vo17 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
3715
+ path: _path + ".oneOf",
3716
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
3717
+ value: input.oneOf
3718
+ })) && input.oneOf.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
3719
+ path: _path + ".oneOf[" + _index6 + "]",
3720
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3721
+ value: elem
3722
+ })) && _vu0(elem, _path + ".oneOf[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
3723
+ path: _path + ".oneOf[" + _index6 + "]",
3724
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3725
+ value: elem
3726
+ })).every(flag => flag) || _report(_exceptionable, {
3727
+ path: _path + ".oneOf",
3728
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
3729
+ value: input.oneOf
3730
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
3731
+ path: _path + ".discriminator",
3732
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
3733
+ value: input.discriminator
3734
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
3735
+ path: _path + ".discriminator",
3736
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
3737
+ value: input.discriminator
3738
+ })].every(flag => flag); const _vo18 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
3739
+ path: _path + ".type",
3740
+ expected: "\"null\"",
3741
+ value: input.type
3742
+ })].every(flag => flag); const _vo19 = (input, _path, _exceptionable = true) => ["string" === typeof input.propertyName || _report(_exceptionable, {
3743
+ path: _path + ".propertyName",
3744
+ expected: "string",
3745
+ value: input.propertyName
3746
+ }), undefined === input.mapping || ("object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) || _report(_exceptionable, {
3747
+ path: _path + ".mapping",
3748
+ expected: "(Record<string, string> | undefined)",
3749
+ value: input.mapping
3750
+ })) && _vo20(input.mapping, _path + ".mapping", true && _exceptionable) || _report(_exceptionable, {
3751
+ path: _path + ".mapping",
3752
+ expected: "(Record<string, string> | undefined)",
3753
+ value: input.mapping
3754
+ })].every(flag => flag); const _vo20 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
3755
+ const value = input[key];
3756
+ if (undefined === value)
3757
+ return true;
3758
+ return "string" === typeof value || _report(_exceptionable, {
604
3759
  path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
605
- expected: "AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>",
3760
+ expected: "string",
606
3761
  value: value
607
3762
  });
608
- }).every(flag => flag)].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
3763
+ }).every(flag => flag)].every(flag => flag); const _vo21 = (input, _path, _exceptionable = true) => [("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
3764
+ path: _path + ".properties",
3765
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3766
+ value: input.properties
3767
+ })) && _vo2(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
3768
+ path: _path + ".properties",
3769
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
3770
+ value: input.properties
3771
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
3772
+ path: _path + ".additionalProperties",
3773
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3774
+ value: input.additionalProperties
3775
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
3776
+ path: _path + ".additionalProperties",
3777
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3778
+ value: input.additionalProperties
3779
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
3780
+ path: _path + ".additionalProperties",
3781
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IOneOf | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString | false | undefined)",
3782
+ value: input.additionalProperties
3783
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
3784
+ path: _path + ".required",
3785
+ expected: "Array<string>",
3786
+ value: input.required
3787
+ })) && input.required.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
3788
+ path: _path + ".required[" + _index7 + "]",
3789
+ expected: "string",
3790
+ value: elem
3791
+ })).every(flag => flag) || _report(_exceptionable, {
3792
+ path: _path + ".required",
3793
+ expected: "Array<string>",
3794
+ value: input.required
3795
+ }), "object" === input.type || _report(_exceptionable, {
3796
+ path: _path + ".type",
3797
+ expected: "\"object\"",
3798
+ value: input.type
3799
+ }), "string" === typeof input.description || _report(_exceptionable, {
3800
+ path: _path + ".description",
3801
+ expected: "string",
3802
+ value: input.description
3803
+ })].every(flag => flag); const _vo22 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
3804
+ path: _path + ".$ref",
3805
+ expected: "string",
3806
+ value: input.$ref
3807
+ }), "string" === typeof input.description || _report(_exceptionable, {
3808
+ path: _path + ".description",
3809
+ expected: "string",
3810
+ value: input.description
3811
+ })].every(flag => flag); const _vo23 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
3812
+ path: _path + ".oneOf",
3813
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
3814
+ value: input.oneOf
3815
+ })) && input.oneOf.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
3816
+ path: _path + ".oneOf[" + _index8 + "]",
3817
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3818
+ value: elem
3819
+ })) && _vu0(elem, _path + ".oneOf[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
3820
+ path: _path + ".oneOf[" + _index8 + "]",
3821
+ expected: "(AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IString)",
3822
+ value: elem
3823
+ })).every(flag => flag) || _report(_exceptionable, {
3824
+ path: _path + ".oneOf",
3825
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
3826
+ value: input.oneOf
3827
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
3828
+ path: _path + ".discriminator",
3829
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
3830
+ value: input.discriminator
3831
+ })) && _vo19(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
3832
+ path: _path + ".discriminator",
3833
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
3834
+ value: input.discriminator
3835
+ }), "string" === typeof input.description || _report(_exceptionable, {
3836
+ path: _path + ".description",
3837
+ expected: "string",
3838
+ value: input.description
3839
+ })].every(flag => flag); const _vo24 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
3840
+ path: _path + ".type",
3841
+ expected: "\"null\"",
3842
+ value: input.type
3843
+ }), "string" === typeof input.description || _report(_exceptionable, {
609
3844
  path: _path + ".description",
610
3845
  expected: "string",
611
3846
  value: input.description
612
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
3847
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
3848
+ if ("number" === input.type)
3849
+ return _vo10(input, _path, true && _exceptionable);
3850
+ else if ("integer" === input.type)
3851
+ return _vo9(input, _path, true && _exceptionable);
3852
+ else if ("string" === input.type)
3853
+ return _vo11(input, _path, true && _exceptionable);
3854
+ else if (undefined !== input["const"])
3855
+ return _vo12(input, _path, true && _exceptionable);
3856
+ else if ("null" === input.type)
3857
+ return _vo18(input, _path, true && _exceptionable);
3858
+ else if ("boolean" === input.type)
3859
+ return _vo13(input, _path, true && _exceptionable);
3860
+ else if ("array" === input.type)
3861
+ return _vo14(input, _path, true && _exceptionable);
3862
+ else if ("object" === input.type)
3863
+ return _vo15(input, _path, true && _exceptionable);
3864
+ else if (undefined !== input.$ref)
3865
+ return _vo16(input, _path, true && _exceptionable);
3866
+ else
3867
+ return _report(_exceptionable, {
3868
+ path: _path,
3869
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference)",
3870
+ value: input
3871
+ });
3872
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
3873
+ if (undefined !== input["const"])
3874
+ return _vo3(input, _path, true && _exceptionable);
3875
+ else if ("boolean" === input.type)
3876
+ return _vo4(input, _path, true && _exceptionable);
3877
+ else if ("number" === input.type)
3878
+ return _vo6(input, _path, true && _exceptionable);
3879
+ else if ("integer" === input.type)
3880
+ return _vo5(input, _path, true && _exceptionable);
3881
+ else if ("string" === input.type)
3882
+ return _vo7(input, _path, true && _exceptionable);
3883
+ else if ("array" === input.type)
3884
+ return _vo8(input, _path, true && _exceptionable);
3885
+ else if ("object" === input.type)
3886
+ return _vo21(input, _path, true && _exceptionable);
3887
+ else if (undefined !== input.$ref)
3888
+ return _vo22(input, _path, true && _exceptionable);
3889
+ else if (undefined !== input.oneOf)
3890
+ return _vo23(input, _path, true && _exceptionable);
3891
+ else if ("null" === input.type)
3892
+ return _vo24(input, _path, true && _exceptionable);
3893
+ else
3894
+ return _report(_exceptionable, {
3895
+ path: _path,
3896
+ expected: "(AutoBeOpenApi.IJsonSchemaDescriptive.IConstant | AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean | AutoBeOpenApi.IJsonSchemaDescriptive.INumber | AutoBeOpenApi.IJsonSchemaDescriptive.IInteger | AutoBeOpenApi.IJsonSchemaDescriptive.IString | AutoBeOpenApi.IJsonSchemaDescriptive.IArray | AutoBeOpenApi.IJsonSchemaDescriptive.IObject | AutoBeOpenApi.IJsonSchemaDescriptive.IReference | AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf | AutoBeOpenApi.IJsonSchemaDescriptive.INull)",
3897
+ value: input
3898
+ });
3899
+ })(); const _vu2 = (input, _path, _exceptionable = true) => (() => {
3900
+ if ("number" === input.type)
3901
+ return _vo10(input, _path, true && _exceptionable);
3902
+ else if ("integer" === input.type)
3903
+ return _vo9(input, _path, true && _exceptionable);
3904
+ else if ("string" === input.type)
3905
+ return _vo11(input, _path, true && _exceptionable);
3906
+ else if (undefined !== input["const"])
3907
+ return _vo12(input, _path, true && _exceptionable);
3908
+ else if ("null" === input.type)
3909
+ return _vo18(input, _path, true && _exceptionable);
3910
+ else if ("boolean" === input.type)
3911
+ return _vo13(input, _path, true && _exceptionable);
3912
+ else if ("array" === input.type)
3913
+ return _vo14(input, _path, true && _exceptionable);
3914
+ else if ("object" === input.type)
3915
+ return _vo15(input, _path, true && _exceptionable);
3916
+ else if (undefined !== input.$ref)
3917
+ return _vo16(input, _path, true && _exceptionable);
3918
+ else if (undefined !== input.oneOf)
3919
+ return _vo17(input, _path, true && _exceptionable);
3920
+ else
3921
+ return _report(_exceptionable, {
3922
+ path: _path,
3923
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString | AutoBeOpenApi.IJsonSchema.IConstant | AutoBeOpenApi.IJsonSchema.INull | AutoBeOpenApi.IJsonSchema.IBoolean | AutoBeOpenApi.IJsonSchema.IArray | AutoBeOpenApi.IJsonSchema.IObject | AutoBeOpenApi.IJsonSchema.IReference | AutoBeOpenApi.IJsonSchema.IOneOf)",
3924
+ value: input
3925
+ });
3926
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
613
3927
  if (false === __is(input)) {
614
3928
  errors = [];
615
3929
  _report = __typia_transform__validateReport._validateReport(errors);