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