@autobe/agent 0.27.0 → 0.28.0

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 (109) hide show
  1. package/lib/constants/AutoBeSystemPromptConstant.d.ts +1 -1
  2. package/lib/context/assertSchemaModel.d.ts +1 -1
  3. package/lib/context/assertSchemaModel.js +4 -7
  4. package/lib/context/assertSchemaModel.js.map +1 -1
  5. package/lib/index.mjs +18395 -8004
  6. package/lib/index.mjs.map +1 -1
  7. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +1 -1
  8. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  9. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +164 -86
  10. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
  11. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +637 -321
  12. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  13. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +143 -74
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  15. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +17 -52
  16. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +25 -22
  17. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +7 -23
  18. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +165 -2
  19. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
  20. package/lib/orchestrate/facade/createAutoBeFacadeController.js +773 -403
  21. package/lib/orchestrate/facade/createAutoBeFacadeController.js.map +1 -1
  22. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +739 -2
  23. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  24. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +1625 -9
  25. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  26. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +248 -131
  27. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  28. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +255 -133
  29. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
  30. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +339 -226
  31. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  32. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +625 -1
  33. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  34. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +776 -3
  35. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  36. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +205 -3
  37. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
  38. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +107 -1
  39. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
  40. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1664 -9
  41. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  42. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +1625 -9
  43. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  44. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +389 -196
  45. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  46. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1166 -590
  47. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  48. package/lib/orchestrate/prisma/orchestratePrismaReview.js +1184 -599
  49. package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  50. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +4 -2
  51. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  52. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +360 -179
  53. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  54. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +396 -197
  55. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  56. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +130 -2
  57. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  58. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +165 -2
  59. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
  60. package/lib/orchestrate/realize/orchestrateRealizeWrite.js +130 -2
  61. package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  62. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  63. package/lib/orchestrate/test/orchestrateTestCorrect.js +131 -2
  64. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  65. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +166 -2
  66. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
  67. package/lib/orchestrate/test/orchestrateTestScenario.js +255 -3
  68. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  69. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +281 -3
  70. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  71. package/lib/orchestrate/test/orchestrateTestWrite.js +139 -2
  72. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  73. package/package.json +9 -9
  74. package/src/constants/AutoBeSystemPromptConstant.ts +1 -1
  75. package/src/context/assertSchemaModel.ts +5 -8
  76. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +7 -9
  77. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +13 -9
  78. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +7 -9
  79. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +19 -54
  80. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +25 -22
  81. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +8 -24
  82. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +15 -1
  83. package/src/orchestrate/facade/createAutoBeFacadeController.ts +7 -6
  84. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +11 -1
  85. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +11 -1
  86. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +13 -9
  87. package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +13 -9
  88. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +17 -14
  89. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +11 -1
  90. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +14 -1
  91. package/src/orchestrate/interface/orchestrateInterfacePrerequisites.ts +11 -1
  92. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +9 -1
  93. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +14 -1
  94. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +11 -1
  95. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +13 -9
  96. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +7 -9
  97. package/src/orchestrate/prisma/orchestratePrismaReview.ts +7 -10
  98. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +13 -9
  99. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +13 -9
  100. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +11 -1
  101. package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +15 -1
  102. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +11 -1
  103. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +5 -1
  104. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +1 -1
  105. package/src/orchestrate/test/orchestrateTestCorrect.ts +11 -1
  106. package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +18 -1
  107. package/src/orchestrate/test/orchestrateTestScenario.ts +11 -1
  108. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +11 -1
  109. package/src/orchestrate/test/orchestrateTestWrite.ts +11 -1
@@ -908,7 +908,11 @@ function createController(props) {
908
908
  };
909
909
  return result;
910
910
  };
911
- const application = collection[props.model === "chatgpt" ? "chatgpt" : "claude"](validate);
911
+ const application = collection[props.model === "chatgpt"
912
+ ? "chatgpt"
913
+ : props.model === "gemini"
914
+ ? "gemini"
915
+ : "claude"](validate);
912
916
  return {
913
917
  protocol: "class",
914
918
  name: "interface",
@@ -933,10 +937,11 @@ const collection = {
933
937
  {
934
938
  name: "makeComponents",
935
939
  parameters: {
936
- description: " Properties containing components to generate.\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceSchemaApplication.IProps}\n\n### Description of {@link schemas} property:\n\n> Complete set of schema components for the OpenAPI specification.\n> \n> This property contains comprehensive type definitions for all entities in\n> the system. It is the central repository of all named schema types that\n> will be used throughout the API specification.\n> \n> DO: Define all object types as named types in the components.schemas\n> section. DO NOT: Use inline anonymous object definitions.\n> \n> This components object includes:\n> \n> - Main entity types (IEntityName)\n> - Operation-specific variants (.ICreate, .IUpdate, .ISummary, etc.)\n> - Container types (IPage<T> for pagination)\n> - Enumeration types\n> \n> DO: Include detailed descriptions that reference the original Prisma\n> schema comments and thoroughly document each property. DO: Use a $ref to\n> a named type in the components.schemas section for every property that\n> references an object.\n> \n> This applies to all objects in request bodies, response bodies, and\n> properties that are objects or arrays of objects.\n> \n> Example structure:\n> \n> ```typescript\n> {\n> schemas: {\n> IUser: {\n> type: \"object\",\n> properties: {\n> id: { type: \"string\", format: \"uuid\" },\n> email: { type: \"string\", format: \"email\" },\n> profile: { \"$ref\": \"#/components/schemas/IUserProfile\" }\n> },\n> required: [\"id\", \"email\"],\n> description: \"User entity representing system account holders...\"\n> },\n> \"IUser.ICreate\": { ... },\n> // Additional schemas\n> }\n> }\n> ```",
940
+ description: " Properties containing components to generate.\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceSchemaApplication.IProps}",
937
941
  type: "object",
938
942
  properties: {
939
943
  schemas: {
944
+ description: "Complete set of schema components for the OpenAPI specification.\n\nThis property contains comprehensive type definitions for all entities in\nthe system. It is the central repository of all named schema types that\nwill be used throughout the API specification.\n\nDO: Define all object types as named types in the components.schemas\nsection. DO NOT: Use inline anonymous object definitions.\n\nThis components object includes:\n\n- Main entity types (IEntityName)\n- Operation-specific variants (.ICreate, .IUpdate, .ISummary, etc.)\n- Container types (IPage<T> for pagination)\n- Enumeration types\n\nDO: Include detailed descriptions that reference the original Prisma\nschema comments and thoroughly document each property. DO: Use a $ref to\na named type in the components.schemas section for every property that\nreferences an object.\n\nThis applies to all objects in request bodies, response bodies, and\nproperties that are objects or arrays of objects.\n\nExample structure:\n\n```typescript\n{\n schemas: {\n IUser: {\n type: \"object\",\n properties: {\n id: { type: \"string\", format: \"uuid\" },\n email: { type: \"string\", format: \"email\" },\n profile: { \"$ref\": \"#/components/schemas/IUserProfile\" }\n },\n required: [\"id\", \"email\"],\n description: \"User entity representing system account holders...\"\n },\n \"IUser.ICreate\": { ... },\n // Additional schemas\n }\n}\n```",
940
945
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
941
946
  }
942
947
  },
@@ -1185,10 +1190,11 @@ const collection = {
1185
1190
  ]
1186
1191
  },
1187
1192
  "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
1188
- 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>`.",
1193
+ description: "Array type info.",
1189
1194
  type: "object",
1190
1195
  properties: {
1191
1196
  items: {
1197
+ 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>`.",
1192
1198
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1193
1199
  },
1194
1200
  uniqueItems: {
@@ -1427,10 +1433,11 @@ const collection = {
1427
1433
  ]
1428
1434
  },
1429
1435
  "AutoBeOpenApi.IJsonSchema.IArray": {
1430
- 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>`.",
1436
+ description: "Array type info.",
1431
1437
  type: "object",
1432
1438
  properties: {
1433
1439
  items: {
1440
+ 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>`.",
1434
1441
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1435
1442
  },
1436
1443
  uniqueItems: {
@@ -1459,7 +1466,7 @@ const collection = {
1459
1466
  ]
1460
1467
  },
1461
1468
  "AutoBeOpenApi.IJsonSchema.IObject": {
1462
- 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.",
1469
+ description: "Object type info.",
1463
1470
  type: "object",
1464
1471
  properties: {
1465
1472
  "x-autobe-prisma-schema": {
@@ -1474,6 +1481,7 @@ const collection = {
1474
1481
  ]
1475
1482
  },
1476
1483
  properties: {
1484
+ 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.",
1477
1485
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1478
1486
  },
1479
1487
  additionalProperties: {
@@ -1568,7 +1576,7 @@ const collection = {
1568
1576
  ]
1569
1577
  },
1570
1578
  "AutoBeOpenApi.IJsonSchema.IOneOf": {
1571
- 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.",
1579
+ 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.",
1572
1580
  type: "object",
1573
1581
  properties: {
1574
1582
  oneOf: {
@@ -1607,6 +1615,7 @@ const collection = {
1607
1615
  }
1608
1616
  },
1609
1617
  discriminator: {
1618
+ description: "Discriminator info of the union type.",
1610
1619
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1611
1620
  }
1612
1621
  },
@@ -1615,7 +1624,7 @@ const collection = {
1615
1624
  ]
1616
1625
  },
1617
1626
  "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
1618
- 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`.",
1627
+ description: "Discriminator info of the union type.",
1619
1628
  type: "object",
1620
1629
  properties: {
1621
1630
  propertyName: {
@@ -1623,6 +1632,7 @@ const collection = {
1623
1632
  type: "string"
1624
1633
  },
1625
1634
  mapping: {
1635
+ 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`.",
1626
1636
  $ref: "#/$defs/Recordstringstring"
1627
1637
  }
1628
1638
  },
@@ -1640,7 +1650,7 @@ const collection = {
1640
1650
  }
1641
1651
  },
1642
1652
  "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
1643
- 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.",
1653
+ description: "Object type info.",
1644
1654
  type: "object",
1645
1655
  properties: {
1646
1656
  "x-autobe-prisma-schema": {
@@ -1655,6 +1665,7 @@ const collection = {
1655
1665
  ]
1656
1666
  },
1657
1667
  properties: {
1668
+ 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.",
1658
1669
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1659
1670
  },
1660
1671
  additionalProperties: {
@@ -1743,7 +1754,7 @@ const collection = {
1743
1754
  ]
1744
1755
  },
1745
1756
  "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
1746
- 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.",
1757
+ 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.",
1747
1758
  type: "object",
1748
1759
  properties: {
1749
1760
  oneOf: {
@@ -1782,6 +1793,7 @@ const collection = {
1782
1793
  }
1783
1794
  },
1784
1795
  discriminator: {
1796
+ description: "Discriminator info of the union type.",
1785
1797
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1786
1798
  },
1787
1799
  description: {
@@ -4168,5 +4180,1609 @@ const collection = {
4168
4180
  }), { equals: false }));
4169
4181
  return application;
4170
4182
  })(),
4183
+ gemini: (validate) => (() => {
4184
+ const application = {
4185
+ model: "gemini",
4186
+ options: {
4187
+ reference: true,
4188
+ separate: null
4189
+ },
4190
+ functions: [
4191
+ {
4192
+ name: "makeComponents",
4193
+ parameters: {
4194
+ description: " Properties containing components to generate.\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceSchemaApplication.IProps}",
4195
+ type: "object",
4196
+ properties: {
4197
+ schemas: {
4198
+ description: "Complete set of schema components for the OpenAPI specification.\n\nThis property contains comprehensive type definitions for all entities in\nthe system. It is the central repository of all named schema types that\nwill be used throughout the API specification.\n\nDO: Define all object types as named types in the components.schemas\nsection. DO NOT: Use inline anonymous object definitions.\n\nThis components object includes:\n\n- Main entity types (IEntityName)\n- Operation-specific variants (.ICreate, .IUpdate, .ISummary, etc.)\n- Container types (IPage<T> for pagination)\n- Enumeration types\n\nDO: Include detailed descriptions that reference the original Prisma\nschema comments and thoroughly document each property. DO: Use a $ref to\na named type in the components.schemas section for every property that\nreferences an object.\n\nThis applies to all objects in request bodies, response bodies, and\nproperties that are objects or arrays of objects.\n\nExample structure:\n\n```typescript\n{\n schemas: {\n IUser: {\n type: \"object\",\n properties: {\n id: { type: \"string\", format: \"uuid\" },\n email: { type: \"string\", format: \"email\" },\n profile: { \"$ref\": \"#/components/schemas/IUserProfile\" }\n },\n required: [\"id\", \"email\"],\n description: \"User entity representing system account holders...\"\n },\n \"IUser.ICreate\": { ... },\n // Additional schemas\n }\n}\n```",
4199
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4200
+ }
4201
+ },
4202
+ required: [
4203
+ "schemas"
4204
+ ],
4205
+ additionalProperties: false,
4206
+ $defs: {
4207
+ "RecordstringAutoBeOpenApi.IJsonSchemaDescriptive": {
4208
+ description: "Construct a type with a set of properties K of type T",
4209
+ type: "object",
4210
+ properties: {},
4211
+ required: [],
4212
+ additionalProperties: {
4213
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive"
4214
+ }
4215
+ },
4216
+ "AutoBeOpenApi.IJsonSchemaDescriptive": {
4217
+ 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",
4218
+ anyOf: [
4219
+ {
4220
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IConstant"
4221
+ },
4222
+ {
4223
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean"
4224
+ },
4225
+ {
4226
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IInteger"
4227
+ },
4228
+ {
4229
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INumber"
4230
+ },
4231
+ {
4232
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IString"
4233
+ },
4234
+ {
4235
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IArray"
4236
+ },
4237
+ {
4238
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IObject"
4239
+ },
4240
+ {
4241
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IReference"
4242
+ },
4243
+ {
4244
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf"
4245
+ },
4246
+ {
4247
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INull"
4248
+ }
4249
+ ]
4250
+ },
4251
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IConstant": {
4252
+ description: "Constant value type.",
4253
+ type: "object",
4254
+ properties: {
4255
+ "const": {
4256
+ description: "The constant value.",
4257
+ anyOf: [
4258
+ {
4259
+ type: "string"
4260
+ },
4261
+ {
4262
+ type: "number"
4263
+ },
4264
+ {
4265
+ type: "boolean"
4266
+ }
4267
+ ]
4268
+ },
4269
+ description: {
4270
+ 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.",
4271
+ type: "string"
4272
+ }
4273
+ },
4274
+ required: [
4275
+ "const",
4276
+ "description"
4277
+ ]
4278
+ },
4279
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean": {
4280
+ description: "Boolean type info.",
4281
+ type: "object",
4282
+ properties: {
4283
+ type: {
4284
+ 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.",
4285
+ type: "string",
4286
+ "enum": [
4287
+ "boolean"
4288
+ ]
4289
+ },
4290
+ description: {
4291
+ 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.",
4292
+ type: "string"
4293
+ }
4294
+ },
4295
+ required: [
4296
+ "type",
4297
+ "description"
4298
+ ]
4299
+ },
4300
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IInteger": {
4301
+ description: "Integer type info.",
4302
+ type: "object",
4303
+ properties: {
4304
+ minimum: {
4305
+ description: "Minimum value restriction.",
4306
+ type: "integer"
4307
+ },
4308
+ maximum: {
4309
+ description: "Maximum value restriction.",
4310
+ type: "integer"
4311
+ },
4312
+ exclusiveMinimum: {
4313
+ description: "Exclusive minimum value restriction.",
4314
+ type: "number"
4315
+ },
4316
+ exclusiveMaximum: {
4317
+ description: "Exclusive maximum value restriction.",
4318
+ type: "number"
4319
+ },
4320
+ multipleOf: {
4321
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
4322
+ type: "integer"
4323
+ },
4324
+ type: {
4325
+ 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.",
4326
+ type: "string",
4327
+ "enum": [
4328
+ "integer"
4329
+ ]
4330
+ },
4331
+ description: {
4332
+ 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.",
4333
+ type: "string"
4334
+ }
4335
+ },
4336
+ required: [
4337
+ "type",
4338
+ "description"
4339
+ ]
4340
+ },
4341
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INumber": {
4342
+ description: "Number (double) type info.",
4343
+ type: "object",
4344
+ properties: {
4345
+ minimum: {
4346
+ description: "Minimum value restriction.",
4347
+ type: "number"
4348
+ },
4349
+ maximum: {
4350
+ description: "Maximum value restriction.",
4351
+ type: "number"
4352
+ },
4353
+ exclusiveMinimum: {
4354
+ description: "Exclusive minimum value restriction.",
4355
+ type: "number"
4356
+ },
4357
+ exclusiveMaximum: {
4358
+ description: "Exclusive maximum value restriction.",
4359
+ type: "number"
4360
+ },
4361
+ multipleOf: {
4362
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
4363
+ type: "number"
4364
+ },
4365
+ type: {
4366
+ 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.",
4367
+ type: "string",
4368
+ "enum": [
4369
+ "number"
4370
+ ]
4371
+ },
4372
+ description: {
4373
+ 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.",
4374
+ type: "string"
4375
+ }
4376
+ },
4377
+ required: [
4378
+ "type",
4379
+ "description"
4380
+ ]
4381
+ },
4382
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IString": {
4383
+ description: "String type info.",
4384
+ type: "object",
4385
+ properties: {
4386
+ format: {
4387
+ description: "Format restriction.",
4388
+ type: "string",
4389
+ "enum": [
4390
+ "date-time",
4391
+ "password",
4392
+ "regex",
4393
+ "uuid",
4394
+ "email",
4395
+ "hostname",
4396
+ "idn-email",
4397
+ "idn-hostname",
4398
+ "iri",
4399
+ "iri-reference",
4400
+ "ipv4",
4401
+ "ipv6",
4402
+ "uri",
4403
+ "uri-reference",
4404
+ "uri-template",
4405
+ "url",
4406
+ "date",
4407
+ "time",
4408
+ "duration",
4409
+ "json-pointer",
4410
+ "relative-json-pointer"
4411
+ ]
4412
+ },
4413
+ pattern: {
4414
+ description: "Pattern restriction.",
4415
+ type: "string"
4416
+ },
4417
+ contentMediaType: {
4418
+ description: "Content media type restriction.",
4419
+ type: "string"
4420
+ },
4421
+ minLength: {
4422
+ description: "Minimum length restriction.\n\n\n@minimum 0",
4423
+ type: "integer"
4424
+ },
4425
+ maxLength: {
4426
+ description: "Maximum length restriction.\n\n\n@minimum 0",
4427
+ type: "integer"
4428
+ },
4429
+ type: {
4430
+ 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.",
4431
+ type: "string",
4432
+ "enum": [
4433
+ "string"
4434
+ ]
4435
+ },
4436
+ description: {
4437
+ 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.",
4438
+ type: "string"
4439
+ }
4440
+ },
4441
+ required: [
4442
+ "type",
4443
+ "description"
4444
+ ]
4445
+ },
4446
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
4447
+ description: "Array type info.",
4448
+ type: "object",
4449
+ properties: {
4450
+ items: {
4451
+ 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>`.",
4452
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
4453
+ },
4454
+ uniqueItems: {
4455
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
4456
+ type: "boolean"
4457
+ },
4458
+ minItems: {
4459
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
4460
+ type: "integer"
4461
+ },
4462
+ maxItems: {
4463
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
4464
+ type: "integer"
4465
+ },
4466
+ type: {
4467
+ 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.",
4468
+ type: "string",
4469
+ "enum": [
4470
+ "array"
4471
+ ]
4472
+ },
4473
+ description: {
4474
+ 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.",
4475
+ type: "string"
4476
+ }
4477
+ },
4478
+ required: [
4479
+ "items",
4480
+ "type",
4481
+ "description"
4482
+ ]
4483
+ },
4484
+ "AutoBeOpenApi.IJsonSchema": {
4485
+ 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.",
4486
+ anyOf: [
4487
+ {
4488
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4489
+ },
4490
+ {
4491
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4492
+ },
4493
+ {
4494
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4495
+ },
4496
+ {
4497
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4498
+ },
4499
+ {
4500
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4501
+ },
4502
+ {
4503
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4504
+ },
4505
+ {
4506
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4507
+ },
4508
+ {
4509
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4510
+ },
4511
+ {
4512
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4513
+ },
4514
+ {
4515
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4516
+ }
4517
+ ]
4518
+ },
4519
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
4520
+ description: "Integer type info.",
4521
+ type: "object",
4522
+ properties: {
4523
+ minimum: {
4524
+ description: "Minimum value restriction.",
4525
+ type: "integer"
4526
+ },
4527
+ maximum: {
4528
+ description: "Maximum value restriction.",
4529
+ type: "integer"
4530
+ },
4531
+ exclusiveMinimum: {
4532
+ description: "Exclusive minimum value restriction.",
4533
+ type: "number"
4534
+ },
4535
+ exclusiveMaximum: {
4536
+ description: "Exclusive maximum value restriction.",
4537
+ type: "number"
4538
+ },
4539
+ multipleOf: {
4540
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
4541
+ type: "integer"
4542
+ },
4543
+ type: {
4544
+ 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.",
4545
+ type: "string",
4546
+ "enum": [
4547
+ "integer"
4548
+ ]
4549
+ }
4550
+ },
4551
+ required: [
4552
+ "type"
4553
+ ]
4554
+ },
4555
+ "AutoBeOpenApi.IJsonSchema.INumber": {
4556
+ description: "Number (double) type info.",
4557
+ type: "object",
4558
+ properties: {
4559
+ minimum: {
4560
+ description: "Minimum value restriction.",
4561
+ type: "number"
4562
+ },
4563
+ maximum: {
4564
+ description: "Maximum value restriction.",
4565
+ type: "number"
4566
+ },
4567
+ exclusiveMinimum: {
4568
+ description: "Exclusive minimum value restriction.",
4569
+ type: "number"
4570
+ },
4571
+ exclusiveMaximum: {
4572
+ description: "Exclusive maximum value restriction.",
4573
+ type: "number"
4574
+ },
4575
+ multipleOf: {
4576
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
4577
+ type: "number"
4578
+ },
4579
+ type: {
4580
+ 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.",
4581
+ type: "string",
4582
+ "enum": [
4583
+ "number"
4584
+ ]
4585
+ }
4586
+ },
4587
+ required: [
4588
+ "type"
4589
+ ]
4590
+ },
4591
+ "AutoBeOpenApi.IJsonSchema.IString": {
4592
+ description: "String type info.",
4593
+ type: "object",
4594
+ properties: {
4595
+ format: {
4596
+ description: "Format restriction.",
4597
+ type: "string",
4598
+ "enum": [
4599
+ "date-time",
4600
+ "password",
4601
+ "regex",
4602
+ "uuid",
4603
+ "email",
4604
+ "hostname",
4605
+ "idn-email",
4606
+ "idn-hostname",
4607
+ "iri",
4608
+ "iri-reference",
4609
+ "ipv4",
4610
+ "ipv6",
4611
+ "uri",
4612
+ "uri-reference",
4613
+ "uri-template",
4614
+ "url",
4615
+ "date",
4616
+ "time",
4617
+ "duration",
4618
+ "json-pointer",
4619
+ "relative-json-pointer"
4620
+ ]
4621
+ },
4622
+ pattern: {
4623
+ description: "Pattern restriction.",
4624
+ type: "string"
4625
+ },
4626
+ contentMediaType: {
4627
+ description: "Content media type restriction.",
4628
+ type: "string"
4629
+ },
4630
+ minLength: {
4631
+ description: "Minimum length restriction.\n\n\n@minimum 0",
4632
+ type: "integer"
4633
+ },
4634
+ maxLength: {
4635
+ description: "Maximum length restriction.\n\n\n@minimum 0",
4636
+ type: "integer"
4637
+ },
4638
+ type: {
4639
+ 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.",
4640
+ type: "string",
4641
+ "enum": [
4642
+ "string"
4643
+ ]
4644
+ }
4645
+ },
4646
+ required: [
4647
+ "type"
4648
+ ]
4649
+ },
4650
+ "AutoBeOpenApi.IJsonSchema.IConstant": {
4651
+ description: "Constant value type.",
4652
+ type: "object",
4653
+ properties: {
4654
+ "const": {
4655
+ description: "The constant value.",
4656
+ anyOf: [
4657
+ {
4658
+ type: "string"
4659
+ },
4660
+ {
4661
+ type: "number"
4662
+ },
4663
+ {
4664
+ type: "boolean"
4665
+ }
4666
+ ]
4667
+ }
4668
+ },
4669
+ required: [
4670
+ "const"
4671
+ ]
4672
+ },
4673
+ "AutoBeOpenApi.IJsonSchema.IBoolean": {
4674
+ description: "Boolean type info.",
4675
+ type: "object",
4676
+ properties: {
4677
+ type: {
4678
+ 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.",
4679
+ type: "string",
4680
+ "enum": [
4681
+ "boolean"
4682
+ ]
4683
+ }
4684
+ },
4685
+ required: [
4686
+ "type"
4687
+ ]
4688
+ },
4689
+ "AutoBeOpenApi.IJsonSchema.IArray": {
4690
+ description: "Array type info.",
4691
+ type: "object",
4692
+ properties: {
4693
+ items: {
4694
+ 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>`.",
4695
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
4696
+ },
4697
+ uniqueItems: {
4698
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
4699
+ type: "boolean"
4700
+ },
4701
+ minItems: {
4702
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
4703
+ type: "integer"
4704
+ },
4705
+ maxItems: {
4706
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
4707
+ type: "integer"
4708
+ },
4709
+ type: {
4710
+ 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.",
4711
+ type: "string",
4712
+ "enum": [
4713
+ "array"
4714
+ ]
4715
+ }
4716
+ },
4717
+ required: [
4718
+ "items",
4719
+ "type"
4720
+ ]
4721
+ },
4722
+ "AutoBeOpenApi.IJsonSchema.IObject": {
4723
+ description: "Object type info.",
4724
+ type: "object",
4725
+ properties: {
4726
+ "x-autobe-prisma-schema": {
4727
+ description: "Related Prisma schema.\n\nIf the type is directly related to a specific Prisma schema model,\ninclude the exact model name here to establish a clear link between the\nOpenAPI schema and the Prisma model.\n\nThis field is optional and should only be included when there is a\ndirect correspondence to a Prisma model. If there's not any Prisma\nmodel association, this field can be omitted.",
4728
+ anyOf: [
4729
+ {
4730
+ type: "null"
4731
+ },
4732
+ {
4733
+ type: "string"
4734
+ }
4735
+ ]
4736
+ },
4737
+ properties: {
4738
+ 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.",
4739
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4740
+ },
4741
+ additionalProperties: {
4742
+ 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>`",
4743
+ anyOf: [
4744
+ {
4745
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4746
+ },
4747
+ {
4748
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4749
+ },
4750
+ {
4751
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4752
+ },
4753
+ {
4754
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4755
+ },
4756
+ {
4757
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4758
+ },
4759
+ {
4760
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4761
+ },
4762
+ {
4763
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4764
+ },
4765
+ {
4766
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4767
+ },
4768
+ {
4769
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4770
+ },
4771
+ {
4772
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4773
+ },
4774
+ {
4775
+ type: "boolean",
4776
+ "enum": [
4777
+ false
4778
+ ]
4779
+ }
4780
+ ]
4781
+ },
4782
+ required: {
4783
+ 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```",
4784
+ type: "array",
4785
+ items: {
4786
+ type: "string"
4787
+ }
4788
+ },
4789
+ type: {
4790
+ 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.",
4791
+ type: "string",
4792
+ "enum": [
4793
+ "object"
4794
+ ]
4795
+ }
4796
+ },
4797
+ required: [
4798
+ "properties",
4799
+ "required",
4800
+ "type"
4801
+ ]
4802
+ },
4803
+ "AutoBeOpenApi.IJsonSchema.INull": {
4804
+ description: "Null type.",
4805
+ type: "object",
4806
+ properties: {
4807
+ type: {
4808
+ 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.",
4809
+ type: "string",
4810
+ "enum": [
4811
+ "null"
4812
+ ]
4813
+ }
4814
+ },
4815
+ required: [
4816
+ "type"
4817
+ ]
4818
+ },
4819
+ "AutoBeOpenApi.IJsonSchema.IReference": {
4820
+ description: "Reference type directing named schema.",
4821
+ type: "object",
4822
+ properties: {
4823
+ $ref: {
4824
+ 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`",
4825
+ type: "string"
4826
+ }
4827
+ },
4828
+ required: [
4829
+ "$ref"
4830
+ ]
4831
+ },
4832
+ "AutoBeOpenApi.IJsonSchema.IOneOf": {
4833
+ 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.",
4834
+ type: "object",
4835
+ properties: {
4836
+ oneOf: {
4837
+ description: "List of the union types.",
4838
+ type: "array",
4839
+ items: {
4840
+ anyOf: [
4841
+ {
4842
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4843
+ },
4844
+ {
4845
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4846
+ },
4847
+ {
4848
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4849
+ },
4850
+ {
4851
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4852
+ },
4853
+ {
4854
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4855
+ },
4856
+ {
4857
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4858
+ },
4859
+ {
4860
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4861
+ },
4862
+ {
4863
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4864
+ },
4865
+ {
4866
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4867
+ }
4868
+ ]
4869
+ }
4870
+ },
4871
+ discriminator: {
4872
+ description: "Discriminator info of the union type.",
4873
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
4874
+ }
4875
+ },
4876
+ required: [
4877
+ "oneOf"
4878
+ ]
4879
+ },
4880
+ "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
4881
+ description: "Discriminator info of the union type.",
4882
+ type: "object",
4883
+ properties: {
4884
+ propertyName: {
4885
+ description: "Property name for the discriminator.",
4886
+ type: "string"
4887
+ },
4888
+ mapping: {
4889
+ 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`.",
4890
+ $ref: "#/$defs/Recordstringstring"
4891
+ }
4892
+ },
4893
+ required: [
4894
+ "propertyName"
4895
+ ]
4896
+ },
4897
+ Recordstringstring: {
4898
+ description: "Construct a type with a set of properties K of type T",
4899
+ type: "object",
4900
+ properties: {},
4901
+ required: [],
4902
+ additionalProperties: {
4903
+ type: "string"
4904
+ }
4905
+ },
4906
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
4907
+ description: "Object type info.",
4908
+ type: "object",
4909
+ properties: {
4910
+ "x-autobe-prisma-schema": {
4911
+ description: "Related Prisma schema.\n\nIf the type is directly related to a specific Prisma schema model,\ninclude the exact model name here to establish a clear link between the\nOpenAPI schema and the Prisma model.\n\nThis field is optional and should only be included when there is a\ndirect correspondence to a Prisma model. If there's not any Prisma\nmodel association, this field can be omitted.",
4912
+ anyOf: [
4913
+ {
4914
+ type: "null"
4915
+ },
4916
+ {
4917
+ type: "string"
4918
+ }
4919
+ ]
4920
+ },
4921
+ properties: {
4922
+ 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.",
4923
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4924
+ },
4925
+ additionalProperties: {
4926
+ 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>`",
4927
+ anyOf: [
4928
+ {
4929
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4930
+ },
4931
+ {
4932
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4933
+ },
4934
+ {
4935
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4936
+ },
4937
+ {
4938
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4939
+ },
4940
+ {
4941
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4942
+ },
4943
+ {
4944
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4945
+ },
4946
+ {
4947
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4948
+ },
4949
+ {
4950
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4951
+ },
4952
+ {
4953
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4954
+ },
4955
+ {
4956
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4957
+ },
4958
+ {
4959
+ type: "boolean",
4960
+ "enum": [
4961
+ false
4962
+ ]
4963
+ }
4964
+ ]
4965
+ },
4966
+ required: {
4967
+ 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```",
4968
+ type: "array",
4969
+ items: {
4970
+ type: "string"
4971
+ }
4972
+ },
4973
+ type: {
4974
+ 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.",
4975
+ type: "string",
4976
+ "enum": [
4977
+ "object"
4978
+ ]
4979
+ },
4980
+ description: {
4981
+ 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.",
4982
+ type: "string"
4983
+ }
4984
+ },
4985
+ required: [
4986
+ "properties",
4987
+ "required",
4988
+ "type",
4989
+ "description"
4990
+ ]
4991
+ },
4992
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IReference": {
4993
+ description: "Reference type directing named schema.",
4994
+ type: "object",
4995
+ properties: {
4996
+ $ref: {
4997
+ 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`",
4998
+ type: "string"
4999
+ },
5000
+ description: {
5001
+ 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.",
5002
+ type: "string"
5003
+ }
5004
+ },
5005
+ required: [
5006
+ "$ref",
5007
+ "description"
5008
+ ]
5009
+ },
5010
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
5011
+ 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.",
5012
+ type: "object",
5013
+ properties: {
5014
+ oneOf: {
5015
+ description: "List of the union types.",
5016
+ type: "array",
5017
+ items: {
5018
+ anyOf: [
5019
+ {
5020
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
5021
+ },
5022
+ {
5023
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
5024
+ },
5025
+ {
5026
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
5027
+ },
5028
+ {
5029
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
5030
+ },
5031
+ {
5032
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
5033
+ },
5034
+ {
5035
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
5036
+ },
5037
+ {
5038
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
5039
+ },
5040
+ {
5041
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
5042
+ },
5043
+ {
5044
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
5045
+ }
5046
+ ]
5047
+ }
5048
+ },
5049
+ discriminator: {
5050
+ description: "Discriminator info of the union type.",
5051
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
5052
+ },
5053
+ description: {
5054
+ 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.",
5055
+ type: "string"
5056
+ }
5057
+ },
5058
+ required: [
5059
+ "oneOf",
5060
+ "description"
5061
+ ]
5062
+ },
5063
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INull": {
5064
+ description: "Null type.",
5065
+ type: "object",
5066
+ properties: {
5067
+ type: {
5068
+ 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.",
5069
+ type: "string",
5070
+ "enum": [
5071
+ "null"
5072
+ ]
5073
+ },
5074
+ description: {
5075
+ 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.",
5076
+ type: "string"
5077
+ }
5078
+ },
5079
+ required: [
5080
+ "type",
5081
+ "description"
5082
+ ]
5083
+ }
5084
+ }
5085
+ },
5086
+ description: "Generate OpenAPI components containing named schema types.\n\nThis method receives a complete set of schema components and integrates\nthem into the final OpenAPI specification. It processes all entity schemas,\ntheir variants, and related type definitions to ensure a comprehensive and\nconsistent API design.\n\nThe provided components should include schemas for all entities identified\nin the previous phases of API path/method definition and operation\ncreation. This ensures that the final OpenAPI document has complete type\ncoverage for all operations.\n\nDO: Follow established naming conventions (IEntityName,\nIEntityName.ICreate, etc.) DO: Document thoroughly with descriptions that\nreference the original Prisma schema comments.",
5087
+ validate: (() => { const _iv1 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _iv2 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv7 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv8 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) && _io1(input.schemas); const _io1 = input => Object.keys(input).every(key => {
5088
+ const value = input[key];
5089
+ if (undefined === value)
5090
+ return true;
5091
+ return "object" === typeof value && null !== value && _iu1(value);
5092
+ }); 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 || true === _iv1.has(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 || true === _iv2.has(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 => (null === input["x-autobe-prisma-schema"] || undefined === input["x-autobe-prisma-schema"] || "string" === typeof input["x-autobe-prisma-schema"]) && ("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 => {
5093
+ const value = input[key];
5094
+ if (undefined === value)
5095
+ return true;
5096
+ return "string" === typeof value;
5097
+ }); const _io20 = input => (null === input["x-autobe-prisma-schema"] || undefined === input["x-autobe-prisma-schema"] || "string" === typeof input["x-autobe-prisma-schema"]) && ("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 => (() => {
5098
+ if ("number" === input.type)
5099
+ return _io9(input);
5100
+ else if ("integer" === input.type)
5101
+ return _io8(input);
5102
+ else if ("string" === input.type)
5103
+ return _io10(input);
5104
+ else if (undefined !== input["const"])
5105
+ return _io11(input);
5106
+ else if ("null" === input.type)
5107
+ return _io17(input);
5108
+ else if ("boolean" === input.type)
5109
+ return _io12(input);
5110
+ else if ("array" === input.type)
5111
+ return _io13(input);
5112
+ else if ("object" === input.type)
5113
+ return _io14(input);
5114
+ else if (undefined !== input.$ref)
5115
+ return _io15(input);
5116
+ else
5117
+ return false;
5118
+ })(); const _iu1 = input => (() => {
5119
+ if (undefined !== input["const"])
5120
+ return _io2(input);
5121
+ else if ("boolean" === input.type)
5122
+ return _io3(input);
5123
+ else if ("number" === input.type)
5124
+ return _io5(input);
5125
+ else if ("integer" === input.type)
5126
+ return _io4(input);
5127
+ else if ("string" === input.type)
5128
+ return _io6(input);
5129
+ else if ("array" === input.type)
5130
+ return _io7(input);
5131
+ else if ("object" === input.type)
5132
+ return _io20(input);
5133
+ else if (undefined !== input.$ref)
5134
+ return _io21(input);
5135
+ else if (undefined !== input.oneOf)
5136
+ return _io22(input);
5137
+ else if ("null" === input.type)
5138
+ return _io23(input);
5139
+ else
5140
+ return false;
5141
+ })(); const _iu2 = input => (() => {
5142
+ if ("number" === input.type)
5143
+ return _io9(input);
5144
+ else if ("integer" === input.type)
5145
+ return _io8(input);
5146
+ else if ("string" === input.type)
5147
+ return _io10(input);
5148
+ else if (undefined !== input["const"])
5149
+ return _io11(input);
5150
+ else if ("null" === input.type)
5151
+ return _io17(input);
5152
+ else if ("boolean" === input.type)
5153
+ return _io12(input);
5154
+ else if ("array" === input.type)
5155
+ return _io13(input);
5156
+ else if ("object" === input.type)
5157
+ return _io14(input);
5158
+ else if (undefined !== input.$ref)
5159
+ return _io15(input);
5160
+ else if (undefined !== input.oneOf)
5161
+ return _io16(input);
5162
+ else
5163
+ return false;
5164
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) || _report(_exceptionable, {
5165
+ path: _path + ".schemas",
5166
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5167
+ value: input.schemas
5168
+ })) && _vo1(input.schemas, _path + ".schemas", true && _exceptionable) || _report(_exceptionable, {
5169
+ path: _path + ".schemas",
5170
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5171
+ value: input.schemas
5172
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
5173
+ const value = input[key];
5174
+ if (undefined === value)
5175
+ return true;
5176
+ return ("object" === typeof value && null !== value || _report(_exceptionable, {
5177
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5178
+ 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)",
5179
+ value: value
5180
+ })) && _vu1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
5181
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5182
+ 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)",
5183
+ value: value
5184
+ });
5185
+ }).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, {
5186
+ path: _path + "[\"const\"]",
5187
+ expected: "(boolean | number | string)",
5188
+ value: input["const"]
5189
+ }), "string" === typeof input.description || _report(_exceptionable, {
5190
+ path: _path + ".description",
5191
+ expected: "string",
5192
+ value: input.description
5193
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
5194
+ path: _path + ".type",
5195
+ expected: "\"boolean\"",
5196
+ value: input.type
5197
+ }), "string" === typeof input.description || _report(_exceptionable, {
5198
+ path: _path + ".description",
5199
+ expected: "string",
5200
+ value: input.description
5201
+ })].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, {
5202
+ path: _path + ".minimum",
5203
+ expected: "number & Type<\"int64\">",
5204
+ value: input.minimum
5205
+ })) || _report(_exceptionable, {
5206
+ path: _path + ".minimum",
5207
+ expected: "((number & Type<\"int64\">) | undefined)",
5208
+ value: input.minimum
5209
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
5210
+ path: _path + ".maximum",
5211
+ expected: "number & Type<\"int64\">",
5212
+ value: input.maximum
5213
+ })) || _report(_exceptionable, {
5214
+ path: _path + ".maximum",
5215
+ expected: "((number & Type<\"int64\">) | undefined)",
5216
+ value: input.maximum
5217
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5218
+ path: _path + ".exclusiveMinimum",
5219
+ expected: "(number | undefined)",
5220
+ value: input.exclusiveMinimum
5221
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5222
+ path: _path + ".exclusiveMaximum",
5223
+ expected: "(number | undefined)",
5224
+ value: input.exclusiveMaximum
5225
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
5226
+ path: _path + ".multipleOf",
5227
+ expected: "number & Type<\"uint64\">",
5228
+ value: input.multipleOf
5229
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
5230
+ path: _path + ".multipleOf",
5231
+ expected: "number & ExclusiveMinimum<0>",
5232
+ value: input.multipleOf
5233
+ })) || _report(_exceptionable, {
5234
+ path: _path + ".multipleOf",
5235
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
5236
+ value: input.multipleOf
5237
+ }), "integer" === input.type || _report(_exceptionable, {
5238
+ path: _path + ".type",
5239
+ expected: "\"integer\"",
5240
+ value: input.type
5241
+ }), "string" === typeof input.description || _report(_exceptionable, {
5242
+ path: _path + ".description",
5243
+ expected: "string",
5244
+ value: input.description
5245
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
5246
+ path: _path + ".minimum",
5247
+ expected: "(number | undefined)",
5248
+ value: input.minimum
5249
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
5250
+ path: _path + ".maximum",
5251
+ expected: "(number | undefined)",
5252
+ value: input.maximum
5253
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5254
+ path: _path + ".exclusiveMinimum",
5255
+ expected: "(number | undefined)",
5256
+ value: input.exclusiveMinimum
5257
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5258
+ path: _path + ".exclusiveMaximum",
5259
+ expected: "(number | undefined)",
5260
+ value: input.exclusiveMaximum
5261
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
5262
+ path: _path + ".multipleOf",
5263
+ expected: "number & ExclusiveMinimum<0>",
5264
+ value: input.multipleOf
5265
+ })) || _report(_exceptionable, {
5266
+ path: _path + ".multipleOf",
5267
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
5268
+ value: input.multipleOf
5269
+ }), "number" === input.type || _report(_exceptionable, {
5270
+ path: _path + ".type",
5271
+ expected: "\"number\"",
5272
+ value: input.type
5273
+ }), "string" === typeof input.description || _report(_exceptionable, {
5274
+ path: _path + ".description",
5275
+ expected: "string",
5276
+ value: input.description
5277
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv7.has(input.format) || _report(_exceptionable, {
5278
+ path: _path + ".format",
5279
+ expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
5280
+ value: input.format
5281
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
5282
+ path: _path + ".pattern",
5283
+ expected: "(string | undefined)",
5284
+ value: input.pattern
5285
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
5286
+ path: _path + ".contentMediaType",
5287
+ expected: "(string | undefined)",
5288
+ value: input.contentMediaType
5289
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
5290
+ path: _path + ".minLength",
5291
+ expected: "number & Type<\"uint64\">",
5292
+ value: input.minLength
5293
+ })) || _report(_exceptionable, {
5294
+ path: _path + ".minLength",
5295
+ expected: "((number & Type<\"uint64\">) | undefined)",
5296
+ value: input.minLength
5297
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
5298
+ path: _path + ".maxLength",
5299
+ expected: "number & Type<\"uint64\">",
5300
+ value: input.maxLength
5301
+ })) || _report(_exceptionable, {
5302
+ path: _path + ".maxLength",
5303
+ expected: "((number & Type<\"uint64\">) | undefined)",
5304
+ value: input.maxLength
5305
+ }), "string" === input.type || _report(_exceptionable, {
5306
+ path: _path + ".type",
5307
+ expected: "\"string\"",
5308
+ value: input.type
5309
+ }), "string" === typeof input.description || _report(_exceptionable, {
5310
+ path: _path + ".description",
5311
+ expected: "string",
5312
+ value: input.description
5313
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
5314
+ path: _path + ".items",
5315
+ 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)",
5316
+ value: input.items
5317
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
5318
+ path: _path + ".items",
5319
+ 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)",
5320
+ value: input.items
5321
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
5322
+ path: _path + ".uniqueItems",
5323
+ expected: "(boolean | undefined)",
5324
+ value: input.uniqueItems
5325
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
5326
+ path: _path + ".minItems",
5327
+ expected: "number & Type<\"uint64\">",
5328
+ value: input.minItems
5329
+ })) || _report(_exceptionable, {
5330
+ path: _path + ".minItems",
5331
+ expected: "((number & Type<\"uint64\">) | undefined)",
5332
+ value: input.minItems
5333
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
5334
+ path: _path + ".maxItems",
5335
+ expected: "number & Type<\"uint64\">",
5336
+ value: input.maxItems
5337
+ })) || _report(_exceptionable, {
5338
+ path: _path + ".maxItems",
5339
+ expected: "((number & Type<\"uint64\">) | undefined)",
5340
+ value: input.maxItems
5341
+ }), "array" === input.type || _report(_exceptionable, {
5342
+ path: _path + ".type",
5343
+ expected: "\"array\"",
5344
+ value: input.type
5345
+ }), "string" === typeof input.description || _report(_exceptionable, {
5346
+ path: _path + ".description",
5347
+ expected: "string",
5348
+ value: input.description
5349
+ })].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, {
5350
+ path: _path + ".minimum",
5351
+ expected: "number & Type<\"int64\">",
5352
+ value: input.minimum
5353
+ })) || _report(_exceptionable, {
5354
+ path: _path + ".minimum",
5355
+ expected: "((number & Type<\"int64\">) | undefined)",
5356
+ value: input.minimum
5357
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
5358
+ path: _path + ".maximum",
5359
+ expected: "number & Type<\"int64\">",
5360
+ value: input.maximum
5361
+ })) || _report(_exceptionable, {
5362
+ path: _path + ".maximum",
5363
+ expected: "((number & Type<\"int64\">) | undefined)",
5364
+ value: input.maximum
5365
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5366
+ path: _path + ".exclusiveMinimum",
5367
+ expected: "(number | undefined)",
5368
+ value: input.exclusiveMinimum
5369
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5370
+ path: _path + ".exclusiveMaximum",
5371
+ expected: "(number | undefined)",
5372
+ value: input.exclusiveMaximum
5373
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
5374
+ path: _path + ".multipleOf",
5375
+ expected: "number & Type<\"uint64\">",
5376
+ value: input.multipleOf
5377
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
5378
+ path: _path + ".multipleOf",
5379
+ expected: "number & ExclusiveMinimum<0>",
5380
+ value: input.multipleOf
5381
+ })) || _report(_exceptionable, {
5382
+ path: _path + ".multipleOf",
5383
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
5384
+ value: input.multipleOf
5385
+ }), "integer" === input.type || _report(_exceptionable, {
5386
+ path: _path + ".type",
5387
+ expected: "\"integer\"",
5388
+ value: input.type
5389
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
5390
+ path: _path + ".minimum",
5391
+ expected: "(number | undefined)",
5392
+ value: input.minimum
5393
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
5394
+ path: _path + ".maximum",
5395
+ expected: "(number | undefined)",
5396
+ value: input.maximum
5397
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5398
+ path: _path + ".exclusiveMinimum",
5399
+ expected: "(number | undefined)",
5400
+ value: input.exclusiveMinimum
5401
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5402
+ path: _path + ".exclusiveMaximum",
5403
+ expected: "(number | undefined)",
5404
+ value: input.exclusiveMaximum
5405
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
5406
+ path: _path + ".multipleOf",
5407
+ expected: "number & ExclusiveMinimum<0>",
5408
+ value: input.multipleOf
5409
+ })) || _report(_exceptionable, {
5410
+ path: _path + ".multipleOf",
5411
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
5412
+ value: input.multipleOf
5413
+ }), "number" === input.type || _report(_exceptionable, {
5414
+ path: _path + ".type",
5415
+ expected: "\"number\"",
5416
+ value: input.type
5417
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
5418
+ path: _path + ".format",
5419
+ expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
5420
+ value: input.format
5421
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
5422
+ path: _path + ".pattern",
5423
+ expected: "(string | undefined)",
5424
+ value: input.pattern
5425
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
5426
+ path: _path + ".contentMediaType",
5427
+ expected: "(string | undefined)",
5428
+ value: input.contentMediaType
5429
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
5430
+ path: _path + ".minLength",
5431
+ expected: "number & Type<\"uint64\">",
5432
+ value: input.minLength
5433
+ })) || _report(_exceptionable, {
5434
+ path: _path + ".minLength",
5435
+ expected: "((number & Type<\"uint64\">) | undefined)",
5436
+ value: input.minLength
5437
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
5438
+ path: _path + ".maxLength",
5439
+ expected: "number & Type<\"uint64\">",
5440
+ value: input.maxLength
5441
+ })) || _report(_exceptionable, {
5442
+ path: _path + ".maxLength",
5443
+ expected: "((number & Type<\"uint64\">) | undefined)",
5444
+ value: input.maxLength
5445
+ }), "string" === input.type || _report(_exceptionable, {
5446
+ path: _path + ".type",
5447
+ expected: "\"string\"",
5448
+ value: input.type
5449
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
5450
+ path: _path + "[\"const\"]",
5451
+ expected: "(boolean | number | string)",
5452
+ value: input["const"]
5453
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
5454
+ path: _path + ".type",
5455
+ expected: "\"boolean\"",
5456
+ value: input.type
5457
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
5458
+ path: _path + ".items",
5459
+ 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)",
5460
+ value: input.items
5461
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
5462
+ path: _path + ".items",
5463
+ 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)",
5464
+ value: input.items
5465
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
5466
+ path: _path + ".uniqueItems",
5467
+ expected: "(boolean | undefined)",
5468
+ value: input.uniqueItems
5469
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
5470
+ path: _path + ".minItems",
5471
+ expected: "number & Type<\"uint64\">",
5472
+ value: input.minItems
5473
+ })) || _report(_exceptionable, {
5474
+ path: _path + ".minItems",
5475
+ expected: "((number & Type<\"uint64\">) | undefined)",
5476
+ value: input.minItems
5477
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
5478
+ path: _path + ".maxItems",
5479
+ expected: "number & Type<\"uint64\">",
5480
+ value: input.maxItems
5481
+ })) || _report(_exceptionable, {
5482
+ path: _path + ".maxItems",
5483
+ expected: "((number & Type<\"uint64\">) | undefined)",
5484
+ value: input.maxItems
5485
+ }), "array" === input.type || _report(_exceptionable, {
5486
+ path: _path + ".type",
5487
+ expected: "\"array\"",
5488
+ value: input.type
5489
+ })].every(flag => flag); const _vo14 = (input, _path, _exceptionable = true) => [null === input["x-autobe-prisma-schema"] || undefined === input["x-autobe-prisma-schema"] || "string" === typeof input["x-autobe-prisma-schema"] || _report(_exceptionable, {
5490
+ path: _path + "[\"x-autobe-prisma-schema\"]",
5491
+ expected: "(null | string | undefined)",
5492
+ value: input["x-autobe-prisma-schema"]
5493
+ }), ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
5494
+ path: _path + ".properties",
5495
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5496
+ value: input.properties
5497
+ })) && _vo1(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
5498
+ path: _path + ".properties",
5499
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5500
+ value: input.properties
5501
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
5502
+ path: _path + ".additionalProperties",
5503
+ 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)",
5504
+ value: input.additionalProperties
5505
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
5506
+ path: _path + ".additionalProperties",
5507
+ 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)",
5508
+ value: input.additionalProperties
5509
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
5510
+ path: _path + ".additionalProperties",
5511
+ 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)",
5512
+ value: input.additionalProperties
5513
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
5514
+ path: _path + ".required",
5515
+ expected: "Array<string>",
5516
+ value: input.required
5517
+ })) && input.required.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
5518
+ path: _path + ".required[" + _index9 + "]",
5519
+ expected: "string",
5520
+ value: elem
5521
+ })).every(flag => flag) || _report(_exceptionable, {
5522
+ path: _path + ".required",
5523
+ expected: "Array<string>",
5524
+ value: input.required
5525
+ }), "object" === input.type || _report(_exceptionable, {
5526
+ path: _path + ".type",
5527
+ expected: "\"object\"",
5528
+ value: input.type
5529
+ })].every(flag => flag); const _vo15 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
5530
+ path: _path + ".$ref",
5531
+ expected: "string",
5532
+ value: input.$ref
5533
+ })].every(flag => flag); const _vo16 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
5534
+ path: _path + ".oneOf",
5535
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5536
+ value: input.oneOf
5537
+ })) && input.oneOf.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
5538
+ path: _path + ".oneOf[" + _index10 + "]",
5539
+ 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)",
5540
+ value: elem
5541
+ })) && _vu0(elem, _path + ".oneOf[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
5542
+ path: _path + ".oneOf[" + _index10 + "]",
5543
+ 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)",
5544
+ value: elem
5545
+ })).every(flag => flag) || _report(_exceptionable, {
5546
+ path: _path + ".oneOf",
5547
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5548
+ value: input.oneOf
5549
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
5550
+ path: _path + ".discriminator",
5551
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5552
+ value: input.discriminator
5553
+ })) && _vo18(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
5554
+ path: _path + ".discriminator",
5555
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5556
+ value: input.discriminator
5557
+ })].every(flag => flag); const _vo17 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
5558
+ path: _path + ".type",
5559
+ expected: "\"null\"",
5560
+ value: input.type
5561
+ })].every(flag => flag); const _vo18 = (input, _path, _exceptionable = true) => ["string" === typeof input.propertyName || _report(_exceptionable, {
5562
+ path: _path + ".propertyName",
5563
+ expected: "string",
5564
+ value: input.propertyName
5565
+ }), undefined === input.mapping || ("object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) || _report(_exceptionable, {
5566
+ path: _path + ".mapping",
5567
+ expected: "(Record<string, string> | undefined)",
5568
+ value: input.mapping
5569
+ })) && _vo19(input.mapping, _path + ".mapping", true && _exceptionable) || _report(_exceptionable, {
5570
+ path: _path + ".mapping",
5571
+ expected: "(Record<string, string> | undefined)",
5572
+ value: input.mapping
5573
+ })].every(flag => flag); const _vo19 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
5574
+ const value = input[key];
5575
+ if (undefined === value)
5576
+ return true;
5577
+ return "string" === typeof value || _report(_exceptionable, {
5578
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5579
+ expected: "string",
5580
+ value: value
5581
+ });
5582
+ }).every(flag => flag)].every(flag => flag); const _vo20 = (input, _path, _exceptionable = true) => [null === input["x-autobe-prisma-schema"] || undefined === input["x-autobe-prisma-schema"] || "string" === typeof input["x-autobe-prisma-schema"] || _report(_exceptionable, {
5583
+ path: _path + "[\"x-autobe-prisma-schema\"]",
5584
+ expected: "(null | string | undefined)",
5585
+ value: input["x-autobe-prisma-schema"]
5586
+ }), ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
5587
+ path: _path + ".properties",
5588
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5589
+ value: input.properties
5590
+ })) && _vo1(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
5591
+ path: _path + ".properties",
5592
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5593
+ value: input.properties
5594
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
5595
+ path: _path + ".additionalProperties",
5596
+ 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)",
5597
+ value: input.additionalProperties
5598
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
5599
+ path: _path + ".additionalProperties",
5600
+ 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)",
5601
+ value: input.additionalProperties
5602
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
5603
+ path: _path + ".additionalProperties",
5604
+ 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)",
5605
+ value: input.additionalProperties
5606
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
5607
+ path: _path + ".required",
5608
+ expected: "Array<string>",
5609
+ value: input.required
5610
+ })) && input.required.map((elem, _index11) => "string" === typeof elem || _report(_exceptionable, {
5611
+ path: _path + ".required[" + _index11 + "]",
5612
+ expected: "string",
5613
+ value: elem
5614
+ })).every(flag => flag) || _report(_exceptionable, {
5615
+ path: _path + ".required",
5616
+ expected: "Array<string>",
5617
+ value: input.required
5618
+ }), "object" === input.type || _report(_exceptionable, {
5619
+ path: _path + ".type",
5620
+ expected: "\"object\"",
5621
+ value: input.type
5622
+ }), "string" === typeof input.description || _report(_exceptionable, {
5623
+ path: _path + ".description",
5624
+ expected: "string",
5625
+ value: input.description
5626
+ })].every(flag => flag); const _vo21 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
5627
+ path: _path + ".$ref",
5628
+ expected: "string",
5629
+ value: input.$ref
5630
+ }), "string" === typeof input.description || _report(_exceptionable, {
5631
+ path: _path + ".description",
5632
+ expected: "string",
5633
+ value: input.description
5634
+ })].every(flag => flag); const _vo22 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
5635
+ path: _path + ".oneOf",
5636
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5637
+ value: input.oneOf
5638
+ })) && input.oneOf.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
5639
+ path: _path + ".oneOf[" + _index12 + "]",
5640
+ 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)",
5641
+ value: elem
5642
+ })) && _vu0(elem, _path + ".oneOf[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
5643
+ path: _path + ".oneOf[" + _index12 + "]",
5644
+ 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)",
5645
+ value: elem
5646
+ })).every(flag => flag) || _report(_exceptionable, {
5647
+ path: _path + ".oneOf",
5648
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5649
+ value: input.oneOf
5650
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
5651
+ path: _path + ".discriminator",
5652
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5653
+ value: input.discriminator
5654
+ })) && _vo18(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
5655
+ path: _path + ".discriminator",
5656
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5657
+ value: input.discriminator
5658
+ }), "string" === typeof input.description || _report(_exceptionable, {
5659
+ path: _path + ".description",
5660
+ expected: "string",
5661
+ value: input.description
5662
+ })].every(flag => flag); const _vo23 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
5663
+ path: _path + ".type",
5664
+ expected: "\"null\"",
5665
+ value: input.type
5666
+ }), "string" === typeof input.description || _report(_exceptionable, {
5667
+ path: _path + ".description",
5668
+ expected: "string",
5669
+ value: input.description
5670
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
5671
+ if ("number" === input.type)
5672
+ return _vo9(input, _path, true && _exceptionable);
5673
+ else if ("integer" === input.type)
5674
+ return _vo8(input, _path, true && _exceptionable);
5675
+ else if ("string" === input.type)
5676
+ return _vo10(input, _path, true && _exceptionable);
5677
+ else if (undefined !== input["const"])
5678
+ return _vo11(input, _path, true && _exceptionable);
5679
+ else if ("null" === input.type)
5680
+ return _vo17(input, _path, true && _exceptionable);
5681
+ else if ("boolean" === input.type)
5682
+ return _vo12(input, _path, true && _exceptionable);
5683
+ else if ("array" === input.type)
5684
+ return _vo13(input, _path, true && _exceptionable);
5685
+ else if ("object" === input.type)
5686
+ return _vo14(input, _path, true && _exceptionable);
5687
+ else if (undefined !== input.$ref)
5688
+ return _vo15(input, _path, true && _exceptionable);
5689
+ else
5690
+ return _report(_exceptionable, {
5691
+ path: _path,
5692
+ 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)",
5693
+ value: input
5694
+ });
5695
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
5696
+ if (undefined !== input["const"])
5697
+ return _vo2(input, _path, true && _exceptionable);
5698
+ else if ("boolean" === input.type)
5699
+ return _vo3(input, _path, true && _exceptionable);
5700
+ else if ("number" === input.type)
5701
+ return _vo5(input, _path, true && _exceptionable);
5702
+ else if ("integer" === input.type)
5703
+ return _vo4(input, _path, true && _exceptionable);
5704
+ else if ("string" === input.type)
5705
+ return _vo6(input, _path, true && _exceptionable);
5706
+ else if ("array" === input.type)
5707
+ return _vo7(input, _path, true && _exceptionable);
5708
+ else if ("object" === input.type)
5709
+ return _vo20(input, _path, true && _exceptionable);
5710
+ else if (undefined !== input.$ref)
5711
+ return _vo21(input, _path, true && _exceptionable);
5712
+ else if (undefined !== input.oneOf)
5713
+ return _vo22(input, _path, true && _exceptionable);
5714
+ else if ("null" === input.type)
5715
+ return _vo23(input, _path, true && _exceptionable);
5716
+ else
5717
+ return _report(_exceptionable, {
5718
+ path: _path,
5719
+ 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)",
5720
+ value: input
5721
+ });
5722
+ })(); const _vu2 = (input, _path, _exceptionable = true) => (() => {
5723
+ if ("number" === input.type)
5724
+ return _vo9(input, _path, true && _exceptionable);
5725
+ else if ("integer" === input.type)
5726
+ return _vo8(input, _path, true && _exceptionable);
5727
+ else if ("string" === input.type)
5728
+ return _vo10(input, _path, true && _exceptionable);
5729
+ else if (undefined !== input["const"])
5730
+ return _vo11(input, _path, true && _exceptionable);
5731
+ else if ("null" === input.type)
5732
+ return _vo17(input, _path, true && _exceptionable);
5733
+ else if ("boolean" === input.type)
5734
+ return _vo12(input, _path, true && _exceptionable);
5735
+ else if ("array" === input.type)
5736
+ return _vo13(input, _path, true && _exceptionable);
5737
+ else if ("object" === input.type)
5738
+ return _vo14(input, _path, true && _exceptionable);
5739
+ else if (undefined !== input.$ref)
5740
+ return _vo15(input, _path, true && _exceptionable);
5741
+ else if (undefined !== input.oneOf)
5742
+ return _vo16(input, _path, true && _exceptionable);
5743
+ else
5744
+ return _report(_exceptionable, {
5745
+ path: _path,
5746
+ 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)",
5747
+ value: input
5748
+ });
5749
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
5750
+ if (false === __is(input)) {
5751
+ errors = [];
5752
+ _report = __typia_transform__validateReport._validateReport(errors);
5753
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
5754
+ path: _path + "",
5755
+ expected: "IAutoBeInterfaceSchemaApplication.IProps",
5756
+ value: input
5757
+ })) && _vo0(input, _path + "", true) || _report(true, {
5758
+ path: _path + "",
5759
+ expected: "IAutoBeInterfaceSchemaApplication.IProps",
5760
+ value: input
5761
+ }))(input, "$input", true);
5762
+ const success = 0 === errors.length;
5763
+ return success ? {
5764
+ success,
5765
+ data: input
5766
+ } : {
5767
+ success,
5768
+ errors,
5769
+ data: input
5770
+ };
5771
+ }
5772
+ return {
5773
+ success: true,
5774
+ data: input
5775
+ };
5776
+ }; })()
5777
+ }
5778
+ ]
5779
+ };
5780
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
5781
+ validate: {
5782
+ makeComponents: validate,
5783
+ },
5784
+ }), { equals: false }));
5785
+ return application;
5786
+ })(),
4171
5787
  };
4172
5788
  //# sourceMappingURL=orchestrateInterfaceSchemas.js.map