@autobe/agent 0.27.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +18186 -7689
  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 +656 -335
  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 +749 -2
  23. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  24. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +1637 -9
  25. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  26. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +252 -133
  27. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  28. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +258 -135
  29. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
  30. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +342 -226
  31. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  32. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +633 -1
  33. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  34. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +785 -3
  35. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  36. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +206 -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 +1676 -9
  41. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  42. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +1637 -9
  43. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  44. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +397 -201
  45. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  46. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1184 -599
  47. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  48. package/lib/orchestrate/prisma/orchestratePrismaReview.js +1202 -608
  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 +369 -185
  53. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  54. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +405 -203
  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 +257 -3
  68. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  69. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +283 -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
@@ -836,7 +836,11 @@ function createController(props) {
836
836
  };
837
837
  return result;
838
838
  };
839
- const application = collection[props.model === "chatgpt" ? "chatgpt" : "claude"](validate);
839
+ const application = collection[props.model === "chatgpt"
840
+ ? "chatgpt"
841
+ : props.model === "gemini"
842
+ ? "gemini"
843
+ : "claude"](validate);
840
844
  return {
841
845
  protocol: "class",
842
846
  name: "interface",
@@ -861,10 +865,11 @@ const collection = {
861
865
  {
862
866
  name: "complementComponents",
863
867
  parameters: {
864
- description: "Current Type: {@link IAutoBeInterfaceComplementApplication.IProps}\n\n### Description of {@link schemas} property:\n\n> A collection of missing schema definitions that need to be added to the\n> OpenAPI document's `components.schemas` section.\n> \n> This object contains schema definitions for types that are referenced but\n> not yet defined:\n> \n> - Key: Schema name (`string`): The name of the schema type that will be\n> referenced in $ref statements\n> - Value: `AutoBeOpenApi.IJsonSchema` - The complete JSON Schema definition\n> for that type\n> \n> Example structure:\n> \n> ```typescript\n> {\n> \"UserProfile\": {\n> \"type\": \"object\",\n> \"properties\": {\n> \"id\": { \"type\": \"string\" },\n> \"name\": { \"type\": \"string\" },\n> \"email\": { \"type\": \"string\", \"format\": \"email\" }\n> },\n> \"required\": [\"id\", \"name\", \"email\"]\n> }\n> }\n> ```\n> \n> Each schema definition follows the JSON Schema specification and will be\n> directly inserted into the OpenAPI document's components.schemas section,\n> making them available for $ref references throughout the API\n> specification.",
868
+ description: "Current Type: {@link IAutoBeInterfaceComplementApplication.IProps}",
865
869
  type: "object",
866
870
  properties: {
867
871
  schemas: {
872
+ description: "A collection of missing schema definitions that need to be added to the\nOpenAPI document's `components.schemas` section.\n\nThis object contains schema definitions for types that are referenced but\nnot yet defined:\n\n- Key: Schema name (`string`): The name of the schema type that will be\n referenced in $ref statements\n- Value: `AutoBeOpenApi.IJsonSchema` - The complete JSON Schema definition\n for that type\n\nExample structure:\n\n```typescript\n{\n \"UserProfile\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\", \"format\": \"email\" }\n },\n \"required\": [\"id\", \"name\", \"email\"]\n }\n}\n```\n\nEach schema definition follows the JSON Schema specification and will be\ndirectly inserted into the OpenAPI document's components.schemas section,\nmaking them available for $ref references throughout the API\nspecification.",
868
873
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
869
874
  }
870
875
  },
@@ -1113,10 +1118,11 @@ const collection = {
1113
1118
  ]
1114
1119
  },
1115
1120
  "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
1116
- 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>`.",
1121
+ description: "Array type info.",
1117
1122
  type: "object",
1118
1123
  properties: {
1119
1124
  items: {
1125
+ 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>`.",
1120
1126
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1121
1127
  },
1122
1128
  uniqueItems: {
@@ -1355,10 +1361,11 @@ const collection = {
1355
1361
  ]
1356
1362
  },
1357
1363
  "AutoBeOpenApi.IJsonSchema.IArray": {
1358
- description: "Array type info.\n\n### Description of {@link items} property:\n\n> Items type info.\n> \n> The `items` means the type of the array elements. In other words, it is\n> the type schema info of the `T` in the TypeScript array type\n> `Array<T>`.",
1364
+ description: "Array type info.",
1359
1365
  type: "object",
1360
1366
  properties: {
1361
1367
  items: {
1368
+ 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>`.",
1362
1369
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
1363
1370
  },
1364
1371
  uniqueItems: {
@@ -1387,7 +1394,7 @@ const collection = {
1387
1394
  ]
1388
1395
  },
1389
1396
  "AutoBeOpenApi.IJsonSchema.IObject": {
1390
- description: "Object type info.\n\n### Description of {@link properties} property:\n\n> Properties of the object.\n> \n> The `properties` means a list of key-value pairs of the object's\n> regular properties. The key is the name of the regular property, and\n> the value is the type schema info.\n> \n> IMPORTANT: Each property in this object MUST have a detailed\n> description that references and aligns with the description comments\n> from the corresponding Prisma DB schema column.\n> \n> If you need additional properties that is represented by dynamic key,\n> you can use the {@link additionalProperties} instead.",
1397
+ description: "Object type info.",
1391
1398
  type: "object",
1392
1399
  properties: {
1393
1400
  "x-autobe-prisma-schema": {
@@ -1402,6 +1409,7 @@ const collection = {
1402
1409
  ]
1403
1410
  },
1404
1411
  properties: {
1412
+ 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.",
1405
1413
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1406
1414
  },
1407
1415
  additionalProperties: {
@@ -1496,7 +1504,7 @@ const collection = {
1496
1504
  ]
1497
1505
  },
1498
1506
  "AutoBeOpenApi.IJsonSchema.IOneOf": {
1499
- 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.",
1507
+ 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.",
1500
1508
  type: "object",
1501
1509
  properties: {
1502
1510
  oneOf: {
@@ -1535,6 +1543,7 @@ const collection = {
1535
1543
  }
1536
1544
  },
1537
1545
  discriminator: {
1546
+ description: "Discriminator info of the union type.",
1538
1547
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1539
1548
  }
1540
1549
  },
@@ -1543,7 +1552,7 @@ const collection = {
1543
1552
  ]
1544
1553
  },
1545
1554
  "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
1546
- 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`.",
1555
+ description: "Discriminator info of the union type.",
1547
1556
  type: "object",
1548
1557
  properties: {
1549
1558
  propertyName: {
@@ -1551,6 +1560,7 @@ const collection = {
1551
1560
  type: "string"
1552
1561
  },
1553
1562
  mapping: {
1563
+ 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`.",
1554
1564
  $ref: "#/$defs/Recordstringstring"
1555
1565
  }
1556
1566
  },
@@ -1568,7 +1578,7 @@ const collection = {
1568
1578
  }
1569
1579
  },
1570
1580
  "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
1571
- 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.",
1581
+ description: "Object type info.",
1572
1582
  type: "object",
1573
1583
  properties: {
1574
1584
  "x-autobe-prisma-schema": {
@@ -1583,6 +1593,7 @@ const collection = {
1583
1593
  ]
1584
1594
  },
1585
1595
  properties: {
1596
+ 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.",
1586
1597
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
1587
1598
  },
1588
1599
  additionalProperties: {
@@ -1671,7 +1682,7 @@ const collection = {
1671
1682
  ]
1672
1683
  },
1673
1684
  "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
1674
- 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.",
1685
+ 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.",
1675
1686
  type: "object",
1676
1687
  properties: {
1677
1688
  oneOf: {
@@ -1710,6 +1721,7 @@ const collection = {
1710
1721
  }
1711
1722
  },
1712
1723
  discriminator: {
1724
+ description: "Discriminator info of the union type.",
1713
1725
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
1714
1726
  },
1715
1727
  description: {
@@ -4096,5 +4108,1621 @@ const collection = {
4096
4108
  }), { equals: false }));
4097
4109
  return application;
4098
4110
  })(),
4111
+ gemini: (validate) => (() => {
4112
+ const application = {
4113
+ model: "gemini",
4114
+ options: {
4115
+ reference: true,
4116
+ separate: null
4117
+ },
4118
+ functions: [
4119
+ {
4120
+ name: "complementComponents",
4121
+ parameters: {
4122
+ description: "Current Type: {@link IAutoBeInterfaceComplementApplication.IProps}",
4123
+ type: "object",
4124
+ properties: {
4125
+ schemas: {
4126
+ description: "A collection of missing schema definitions that need to be added to the\nOpenAPI document's `components.schemas` section.\n\nThis object contains schema definitions for types that are referenced but\nnot yet defined:\n\n- Key: Schema name (`string`): The name of the schema type that will be\n referenced in $ref statements\n- Value: `AutoBeOpenApi.IJsonSchema` - The complete JSON Schema definition\n for that type\n\nExample structure:\n\n```typescript\n{\n \"UserProfile\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\", \"format\": \"email\" }\n },\n \"required\": [\"id\", \"name\", \"email\"]\n }\n}\n```\n\nEach schema definition follows the JSON Schema specification and will be\ndirectly inserted into the OpenAPI document's components.schemas section,\nmaking them available for $ref references throughout the API\nspecification.",
4127
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4128
+ }
4129
+ },
4130
+ required: [
4131
+ "schemas"
4132
+ ],
4133
+ additionalProperties: false,
4134
+ $defs: {
4135
+ "RecordstringAutoBeOpenApi.IJsonSchemaDescriptive": {
4136
+ description: "Construct a type with a set of properties K of type T",
4137
+ type: "object",
4138
+ properties: {},
4139
+ required: [],
4140
+ additionalProperties: {
4141
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive"
4142
+ }
4143
+ },
4144
+ "AutoBeOpenApi.IJsonSchemaDescriptive": {
4145
+ 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",
4146
+ anyOf: [
4147
+ {
4148
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IConstant"
4149
+ },
4150
+ {
4151
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean"
4152
+ },
4153
+ {
4154
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IInteger"
4155
+ },
4156
+ {
4157
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INumber"
4158
+ },
4159
+ {
4160
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IString"
4161
+ },
4162
+ {
4163
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IArray"
4164
+ },
4165
+ {
4166
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IObject"
4167
+ },
4168
+ {
4169
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IReference"
4170
+ },
4171
+ {
4172
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf"
4173
+ },
4174
+ {
4175
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchemaDescriptive.INull"
4176
+ }
4177
+ ]
4178
+ },
4179
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IConstant": {
4180
+ description: "Constant value type.",
4181
+ type: "object",
4182
+ properties: {
4183
+ "const": {
4184
+ description: "The constant value.",
4185
+ anyOf: [
4186
+ {
4187
+ type: "string"
4188
+ },
4189
+ {
4190
+ type: "number"
4191
+ },
4192
+ {
4193
+ type: "boolean"
4194
+ }
4195
+ ]
4196
+ },
4197
+ description: {
4198
+ 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.",
4199
+ type: "string"
4200
+ }
4201
+ },
4202
+ required: [
4203
+ "const",
4204
+ "description"
4205
+ ]
4206
+ },
4207
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IBoolean": {
4208
+ description: "Boolean type info.",
4209
+ type: "object",
4210
+ properties: {
4211
+ type: {
4212
+ 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.",
4213
+ type: "string",
4214
+ "enum": [
4215
+ "boolean"
4216
+ ]
4217
+ },
4218
+ description: {
4219
+ 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.",
4220
+ type: "string"
4221
+ }
4222
+ },
4223
+ required: [
4224
+ "type",
4225
+ "description"
4226
+ ]
4227
+ },
4228
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IInteger": {
4229
+ description: "Integer type info.",
4230
+ type: "object",
4231
+ properties: {
4232
+ minimum: {
4233
+ description: "Minimum value restriction.",
4234
+ type: "integer"
4235
+ },
4236
+ maximum: {
4237
+ description: "Maximum value restriction.",
4238
+ type: "integer"
4239
+ },
4240
+ exclusiveMinimum: {
4241
+ description: "Exclusive minimum value restriction.",
4242
+ type: "number"
4243
+ },
4244
+ exclusiveMaximum: {
4245
+ description: "Exclusive maximum value restriction.",
4246
+ type: "number"
4247
+ },
4248
+ multipleOf: {
4249
+ description: "Multiple of value restriction.",
4250
+ type: "integer",
4251
+ exclusiveMinimum: 0
4252
+ },
4253
+ type: {
4254
+ 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.",
4255
+ type: "string",
4256
+ "enum": [
4257
+ "integer"
4258
+ ]
4259
+ },
4260
+ description: {
4261
+ 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.",
4262
+ type: "string"
4263
+ }
4264
+ },
4265
+ required: [
4266
+ "type",
4267
+ "description"
4268
+ ]
4269
+ },
4270
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INumber": {
4271
+ description: "Number (double) type info.",
4272
+ type: "object",
4273
+ properties: {
4274
+ minimum: {
4275
+ description: "Minimum value restriction.",
4276
+ type: "number"
4277
+ },
4278
+ maximum: {
4279
+ description: "Maximum value restriction.",
4280
+ type: "number"
4281
+ },
4282
+ exclusiveMinimum: {
4283
+ description: "Exclusive minimum value restriction.",
4284
+ type: "number"
4285
+ },
4286
+ exclusiveMaximum: {
4287
+ description: "Exclusive maximum value restriction.",
4288
+ type: "number"
4289
+ },
4290
+ multipleOf: {
4291
+ description: "Multiple of value restriction.",
4292
+ type: "number",
4293
+ exclusiveMinimum: 0
4294
+ },
4295
+ type: {
4296
+ 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.",
4297
+ type: "string",
4298
+ "enum": [
4299
+ "number"
4300
+ ]
4301
+ },
4302
+ description: {
4303
+ 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.",
4304
+ type: "string"
4305
+ }
4306
+ },
4307
+ required: [
4308
+ "type",
4309
+ "description"
4310
+ ]
4311
+ },
4312
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IString": {
4313
+ description: "String type info.",
4314
+ type: "object",
4315
+ properties: {
4316
+ format: {
4317
+ description: "Format restriction.",
4318
+ type: "string",
4319
+ "enum": [
4320
+ "date-time",
4321
+ "password",
4322
+ "regex",
4323
+ "uuid",
4324
+ "email",
4325
+ "hostname",
4326
+ "idn-email",
4327
+ "idn-hostname",
4328
+ "iri",
4329
+ "iri-reference",
4330
+ "ipv4",
4331
+ "ipv6",
4332
+ "uri",
4333
+ "uri-reference",
4334
+ "uri-template",
4335
+ "url",
4336
+ "date",
4337
+ "time",
4338
+ "duration",
4339
+ "json-pointer",
4340
+ "relative-json-pointer"
4341
+ ]
4342
+ },
4343
+ pattern: {
4344
+ description: "Pattern restriction.",
4345
+ type: "string"
4346
+ },
4347
+ contentMediaType: {
4348
+ description: "Content media type restriction.",
4349
+ type: "string"
4350
+ },
4351
+ minLength: {
4352
+ description: "Minimum length restriction.",
4353
+ type: "integer",
4354
+ minimum: 0
4355
+ },
4356
+ maxLength: {
4357
+ description: "Maximum length restriction.",
4358
+ type: "integer",
4359
+ minimum: 0
4360
+ },
4361
+ type: {
4362
+ 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.",
4363
+ type: "string",
4364
+ "enum": [
4365
+ "string"
4366
+ ]
4367
+ },
4368
+ description: {
4369
+ 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.",
4370
+ type: "string"
4371
+ }
4372
+ },
4373
+ required: [
4374
+ "type",
4375
+ "description"
4376
+ ]
4377
+ },
4378
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IArray": {
4379
+ description: "Array type info.",
4380
+ type: "object",
4381
+ properties: {
4382
+ items: {
4383
+ 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>`.",
4384
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
4385
+ },
4386
+ uniqueItems: {
4387
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
4388
+ type: "boolean"
4389
+ },
4390
+ minItems: {
4391
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
4392
+ type: "integer",
4393
+ minimum: 0
4394
+ },
4395
+ maxItems: {
4396
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
4397
+ type: "integer",
4398
+ minimum: 0
4399
+ },
4400
+ type: {
4401
+ 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.",
4402
+ type: "string",
4403
+ "enum": [
4404
+ "array"
4405
+ ]
4406
+ },
4407
+ description: {
4408
+ 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.",
4409
+ type: "string"
4410
+ }
4411
+ },
4412
+ required: [
4413
+ "items",
4414
+ "type",
4415
+ "description"
4416
+ ]
4417
+ },
4418
+ "AutoBeOpenApi.IJsonSchema": {
4419
+ 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.",
4420
+ anyOf: [
4421
+ {
4422
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4423
+ },
4424
+ {
4425
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4426
+ },
4427
+ {
4428
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4429
+ },
4430
+ {
4431
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4432
+ },
4433
+ {
4434
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4435
+ },
4436
+ {
4437
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4438
+ },
4439
+ {
4440
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4441
+ },
4442
+ {
4443
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4444
+ },
4445
+ {
4446
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4447
+ },
4448
+ {
4449
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4450
+ }
4451
+ ]
4452
+ },
4453
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
4454
+ description: "Integer type info.",
4455
+ type: "object",
4456
+ properties: {
4457
+ minimum: {
4458
+ description: "Minimum value restriction.",
4459
+ type: "integer"
4460
+ },
4461
+ maximum: {
4462
+ description: "Maximum value restriction.",
4463
+ type: "integer"
4464
+ },
4465
+ exclusiveMinimum: {
4466
+ description: "Exclusive minimum value restriction.",
4467
+ type: "number"
4468
+ },
4469
+ exclusiveMaximum: {
4470
+ description: "Exclusive maximum value restriction.",
4471
+ type: "number"
4472
+ },
4473
+ multipleOf: {
4474
+ description: "Multiple of value restriction.",
4475
+ type: "integer",
4476
+ exclusiveMinimum: 0
4477
+ },
4478
+ type: {
4479
+ 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.",
4480
+ type: "string",
4481
+ "enum": [
4482
+ "integer"
4483
+ ]
4484
+ }
4485
+ },
4486
+ required: [
4487
+ "type"
4488
+ ]
4489
+ },
4490
+ "AutoBeOpenApi.IJsonSchema.INumber": {
4491
+ description: "Number (double) type info.",
4492
+ type: "object",
4493
+ properties: {
4494
+ minimum: {
4495
+ description: "Minimum value restriction.",
4496
+ type: "number"
4497
+ },
4498
+ maximum: {
4499
+ description: "Maximum value restriction.",
4500
+ type: "number"
4501
+ },
4502
+ exclusiveMinimum: {
4503
+ description: "Exclusive minimum value restriction.",
4504
+ type: "number"
4505
+ },
4506
+ exclusiveMaximum: {
4507
+ description: "Exclusive maximum value restriction.",
4508
+ type: "number"
4509
+ },
4510
+ multipleOf: {
4511
+ description: "Multiple of value restriction.",
4512
+ type: "number",
4513
+ exclusiveMinimum: 0
4514
+ },
4515
+ type: {
4516
+ 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.",
4517
+ type: "string",
4518
+ "enum": [
4519
+ "number"
4520
+ ]
4521
+ }
4522
+ },
4523
+ required: [
4524
+ "type"
4525
+ ]
4526
+ },
4527
+ "AutoBeOpenApi.IJsonSchema.IString": {
4528
+ description: "String type info.",
4529
+ type: "object",
4530
+ properties: {
4531
+ format: {
4532
+ description: "Format restriction.",
4533
+ type: "string",
4534
+ "enum": [
4535
+ "date-time",
4536
+ "password",
4537
+ "regex",
4538
+ "uuid",
4539
+ "email",
4540
+ "hostname",
4541
+ "idn-email",
4542
+ "idn-hostname",
4543
+ "iri",
4544
+ "iri-reference",
4545
+ "ipv4",
4546
+ "ipv6",
4547
+ "uri",
4548
+ "uri-reference",
4549
+ "uri-template",
4550
+ "url",
4551
+ "date",
4552
+ "time",
4553
+ "duration",
4554
+ "json-pointer",
4555
+ "relative-json-pointer"
4556
+ ]
4557
+ },
4558
+ pattern: {
4559
+ description: "Pattern restriction.",
4560
+ type: "string"
4561
+ },
4562
+ contentMediaType: {
4563
+ description: "Content media type restriction.",
4564
+ type: "string"
4565
+ },
4566
+ minLength: {
4567
+ description: "Minimum length restriction.",
4568
+ type: "integer",
4569
+ minimum: 0
4570
+ },
4571
+ maxLength: {
4572
+ description: "Maximum length restriction.",
4573
+ type: "integer",
4574
+ minimum: 0
4575
+ },
4576
+ type: {
4577
+ 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.",
4578
+ type: "string",
4579
+ "enum": [
4580
+ "string"
4581
+ ]
4582
+ }
4583
+ },
4584
+ required: [
4585
+ "type"
4586
+ ]
4587
+ },
4588
+ "AutoBeOpenApi.IJsonSchema.IConstant": {
4589
+ description: "Constant value type.",
4590
+ type: "object",
4591
+ properties: {
4592
+ "const": {
4593
+ description: "The constant value.",
4594
+ anyOf: [
4595
+ {
4596
+ type: "string"
4597
+ },
4598
+ {
4599
+ type: "number"
4600
+ },
4601
+ {
4602
+ type: "boolean"
4603
+ }
4604
+ ]
4605
+ }
4606
+ },
4607
+ required: [
4608
+ "const"
4609
+ ]
4610
+ },
4611
+ "AutoBeOpenApi.IJsonSchema.IBoolean": {
4612
+ description: "Boolean type info.",
4613
+ type: "object",
4614
+ properties: {
4615
+ type: {
4616
+ 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.",
4617
+ type: "string",
4618
+ "enum": [
4619
+ "boolean"
4620
+ ]
4621
+ }
4622
+ },
4623
+ required: [
4624
+ "type"
4625
+ ]
4626
+ },
4627
+ "AutoBeOpenApi.IJsonSchema.IArray": {
4628
+ description: "Array type info.",
4629
+ type: "object",
4630
+ properties: {
4631
+ items: {
4632
+ 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>`.",
4633
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
4634
+ },
4635
+ uniqueItems: {
4636
+ description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
4637
+ type: "boolean"
4638
+ },
4639
+ minItems: {
4640
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
4641
+ type: "integer",
4642
+ minimum: 0
4643
+ },
4644
+ maxItems: {
4645
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
4646
+ type: "integer",
4647
+ minimum: 0
4648
+ },
4649
+ type: {
4650
+ 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.",
4651
+ type: "string",
4652
+ "enum": [
4653
+ "array"
4654
+ ]
4655
+ }
4656
+ },
4657
+ required: [
4658
+ "items",
4659
+ "type"
4660
+ ]
4661
+ },
4662
+ "AutoBeOpenApi.IJsonSchema.IObject": {
4663
+ description: "Object type info.",
4664
+ type: "object",
4665
+ properties: {
4666
+ "x-autobe-prisma-schema": {
4667
+ 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.",
4668
+ anyOf: [
4669
+ {
4670
+ type: "null"
4671
+ },
4672
+ {
4673
+ type: "string"
4674
+ }
4675
+ ]
4676
+ },
4677
+ properties: {
4678
+ 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.",
4679
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4680
+ },
4681
+ additionalProperties: {
4682
+ 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>`",
4683
+ anyOf: [
4684
+ {
4685
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4686
+ },
4687
+ {
4688
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4689
+ },
4690
+ {
4691
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4692
+ },
4693
+ {
4694
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4695
+ },
4696
+ {
4697
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4698
+ },
4699
+ {
4700
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4701
+ },
4702
+ {
4703
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4704
+ },
4705
+ {
4706
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4707
+ },
4708
+ {
4709
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4710
+ },
4711
+ {
4712
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4713
+ },
4714
+ {
4715
+ type: "boolean",
4716
+ "enum": [
4717
+ false
4718
+ ]
4719
+ }
4720
+ ]
4721
+ },
4722
+ required: {
4723
+ 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```",
4724
+ type: "array",
4725
+ items: {
4726
+ type: "string"
4727
+ }
4728
+ },
4729
+ type: {
4730
+ 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.",
4731
+ type: "string",
4732
+ "enum": [
4733
+ "object"
4734
+ ]
4735
+ }
4736
+ },
4737
+ required: [
4738
+ "properties",
4739
+ "required",
4740
+ "type"
4741
+ ]
4742
+ },
4743
+ "AutoBeOpenApi.IJsonSchema.INull": {
4744
+ description: "Null type.",
4745
+ type: "object",
4746
+ properties: {
4747
+ type: {
4748
+ 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.",
4749
+ type: "string",
4750
+ "enum": [
4751
+ "null"
4752
+ ]
4753
+ }
4754
+ },
4755
+ required: [
4756
+ "type"
4757
+ ]
4758
+ },
4759
+ "AutoBeOpenApi.IJsonSchema.IReference": {
4760
+ description: "Reference type directing named schema.",
4761
+ type: "object",
4762
+ properties: {
4763
+ $ref: {
4764
+ 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`",
4765
+ type: "string"
4766
+ }
4767
+ },
4768
+ required: [
4769
+ "$ref"
4770
+ ]
4771
+ },
4772
+ "AutoBeOpenApi.IJsonSchema.IOneOf": {
4773
+ 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.",
4774
+ type: "object",
4775
+ properties: {
4776
+ oneOf: {
4777
+ description: "List of the union types.",
4778
+ type: "array",
4779
+ items: {
4780
+ anyOf: [
4781
+ {
4782
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4783
+ },
4784
+ {
4785
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4786
+ },
4787
+ {
4788
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4789
+ },
4790
+ {
4791
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4792
+ },
4793
+ {
4794
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4795
+ },
4796
+ {
4797
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4798
+ },
4799
+ {
4800
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4801
+ },
4802
+ {
4803
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4804
+ },
4805
+ {
4806
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4807
+ }
4808
+ ]
4809
+ }
4810
+ },
4811
+ discriminator: {
4812
+ description: "Discriminator info of the union type.",
4813
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
4814
+ }
4815
+ },
4816
+ required: [
4817
+ "oneOf"
4818
+ ]
4819
+ },
4820
+ "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
4821
+ description: "Discriminator info of the union type.",
4822
+ type: "object",
4823
+ properties: {
4824
+ propertyName: {
4825
+ description: "Property name for the discriminator.",
4826
+ type: "string"
4827
+ },
4828
+ mapping: {
4829
+ 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`.",
4830
+ $ref: "#/$defs/Recordstringstring"
4831
+ }
4832
+ },
4833
+ required: [
4834
+ "propertyName"
4835
+ ]
4836
+ },
4837
+ Recordstringstring: {
4838
+ description: "Construct a type with a set of properties K of type T",
4839
+ type: "object",
4840
+ properties: {},
4841
+ required: [],
4842
+ additionalProperties: {
4843
+ type: "string"
4844
+ }
4845
+ },
4846
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IObject": {
4847
+ description: "Object type info.",
4848
+ type: "object",
4849
+ properties: {
4850
+ "x-autobe-prisma-schema": {
4851
+ 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.",
4852
+ anyOf: [
4853
+ {
4854
+ type: "null"
4855
+ },
4856
+ {
4857
+ type: "string"
4858
+ }
4859
+ ]
4860
+ },
4861
+ properties: {
4862
+ 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.",
4863
+ $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptive"
4864
+ },
4865
+ additionalProperties: {
4866
+ 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>`",
4867
+ anyOf: [
4868
+ {
4869
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4870
+ },
4871
+ {
4872
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4873
+ },
4874
+ {
4875
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4876
+ },
4877
+ {
4878
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4879
+ },
4880
+ {
4881
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4882
+ },
4883
+ {
4884
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4885
+ },
4886
+ {
4887
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4888
+ },
4889
+ {
4890
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4891
+ },
4892
+ {
4893
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4894
+ },
4895
+ {
4896
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf"
4897
+ },
4898
+ {
4899
+ type: "boolean",
4900
+ "enum": [
4901
+ false
4902
+ ]
4903
+ }
4904
+ ]
4905
+ },
4906
+ required: {
4907
+ 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```",
4908
+ type: "array",
4909
+ items: {
4910
+ type: "string"
4911
+ }
4912
+ },
4913
+ type: {
4914
+ 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.",
4915
+ type: "string",
4916
+ "enum": [
4917
+ "object"
4918
+ ]
4919
+ },
4920
+ description: {
4921
+ 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.",
4922
+ type: "string"
4923
+ }
4924
+ },
4925
+ required: [
4926
+ "properties",
4927
+ "required",
4928
+ "type",
4929
+ "description"
4930
+ ]
4931
+ },
4932
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IReference": {
4933
+ description: "Reference type directing named schema.",
4934
+ type: "object",
4935
+ properties: {
4936
+ $ref: {
4937
+ 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`",
4938
+ type: "string"
4939
+ },
4940
+ description: {
4941
+ 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.",
4942
+ type: "string"
4943
+ }
4944
+ },
4945
+ required: [
4946
+ "$ref",
4947
+ "description"
4948
+ ]
4949
+ },
4950
+ "AutoBeOpenApi.IJsonSchemaDescriptive.IOneOf": {
4951
+ 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.",
4952
+ type: "object",
4953
+ properties: {
4954
+ oneOf: {
4955
+ description: "List of the union types.",
4956
+ type: "array",
4957
+ items: {
4958
+ anyOf: [
4959
+ {
4960
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
4961
+ },
4962
+ {
4963
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
4964
+ },
4965
+ {
4966
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
4967
+ },
4968
+ {
4969
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IConstant"
4970
+ },
4971
+ {
4972
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INull"
4973
+ },
4974
+ {
4975
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IBoolean"
4976
+ },
4977
+ {
4978
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IArray"
4979
+ },
4980
+ {
4981
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IObject"
4982
+ },
4983
+ {
4984
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IReference"
4985
+ }
4986
+ ]
4987
+ }
4988
+ },
4989
+ discriminator: {
4990
+ description: "Discriminator info of the union type.",
4991
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator"
4992
+ },
4993
+ description: {
4994
+ 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.",
4995
+ type: "string"
4996
+ }
4997
+ },
4998
+ required: [
4999
+ "oneOf",
5000
+ "description"
5001
+ ]
5002
+ },
5003
+ "AutoBeOpenApi.IJsonSchemaDescriptive.INull": {
5004
+ description: "Null type.",
5005
+ type: "object",
5006
+ properties: {
5007
+ type: {
5008
+ 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.",
5009
+ type: "string",
5010
+ "enum": [
5011
+ "null"
5012
+ ]
5013
+ },
5014
+ description: {
5015
+ 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.",
5016
+ type: "string"
5017
+ }
5018
+ },
5019
+ required: [
5020
+ "type",
5021
+ "description"
5022
+ ]
5023
+ }
5024
+ }
5025
+ },
5026
+ description: "Complements missing schema types\n\nThis method fills in schema definitions that are referenced via $ref but\nnot yet defined in the `components.schemas` section. For example, if an API\noperation references `{ \"$ref\": \"#/components/schemas/UserProfile\" }` but\n`UserProfile` type is not defined in `components.schemas`, this method will\nadd the missing schema definition.\n\nThis function is designed to be called via AI function calling mechanism to\nensure the OpenAPI document is complete and all referenced schemas are\nproperly defined.",
5027
+ 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 => {
5028
+ const value = input[key];
5029
+ if (undefined === value)
5030
+ return true;
5031
+ return "object" === typeof value && null !== value && _iu1(value);
5032
+ }); 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 => {
5033
+ const value = input[key];
5034
+ if (undefined === value)
5035
+ return true;
5036
+ return "string" === typeof value;
5037
+ }); 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 => (() => {
5038
+ if ("number" === input.type)
5039
+ return _io9(input);
5040
+ else if ("integer" === input.type)
5041
+ return _io8(input);
5042
+ else if ("string" === input.type)
5043
+ return _io10(input);
5044
+ else if (undefined !== input["const"])
5045
+ return _io11(input);
5046
+ else if ("null" === input.type)
5047
+ return _io17(input);
5048
+ else if ("boolean" === input.type)
5049
+ return _io12(input);
5050
+ else if ("array" === input.type)
5051
+ return _io13(input);
5052
+ else if ("object" === input.type)
5053
+ return _io14(input);
5054
+ else if (undefined !== input.$ref)
5055
+ return _io15(input);
5056
+ else
5057
+ return false;
5058
+ })(); const _iu1 = input => (() => {
5059
+ if (undefined !== input["const"])
5060
+ return _io2(input);
5061
+ else if ("boolean" === input.type)
5062
+ return _io3(input);
5063
+ else if ("number" === input.type)
5064
+ return _io5(input);
5065
+ else if ("integer" === input.type)
5066
+ return _io4(input);
5067
+ else if ("string" === input.type)
5068
+ return _io6(input);
5069
+ else if ("array" === input.type)
5070
+ return _io7(input);
5071
+ else if ("object" === input.type)
5072
+ return _io20(input);
5073
+ else if (undefined !== input.$ref)
5074
+ return _io21(input);
5075
+ else if (undefined !== input.oneOf)
5076
+ return _io22(input);
5077
+ else if ("null" === input.type)
5078
+ return _io23(input);
5079
+ else
5080
+ return false;
5081
+ })(); const _iu2 = input => (() => {
5082
+ if ("number" === input.type)
5083
+ return _io9(input);
5084
+ else if ("integer" === input.type)
5085
+ return _io8(input);
5086
+ else if ("string" === input.type)
5087
+ return _io10(input);
5088
+ else if (undefined !== input["const"])
5089
+ return _io11(input);
5090
+ else if ("null" === input.type)
5091
+ return _io17(input);
5092
+ else if ("boolean" === input.type)
5093
+ return _io12(input);
5094
+ else if ("array" === input.type)
5095
+ return _io13(input);
5096
+ else if ("object" === input.type)
5097
+ return _io14(input);
5098
+ else if (undefined !== input.$ref)
5099
+ return _io15(input);
5100
+ else if (undefined !== input.oneOf)
5101
+ return _io16(input);
5102
+ else
5103
+ return false;
5104
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) || _report(_exceptionable, {
5105
+ path: _path + ".schemas",
5106
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5107
+ value: input.schemas
5108
+ })) && _vo1(input.schemas, _path + ".schemas", true && _exceptionable) || _report(_exceptionable, {
5109
+ path: _path + ".schemas",
5110
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5111
+ value: input.schemas
5112
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
5113
+ const value = input[key];
5114
+ if (undefined === value)
5115
+ return true;
5116
+ return ("object" === typeof value && null !== value || _report(_exceptionable, {
5117
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5118
+ 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)",
5119
+ value: value
5120
+ })) && _vu1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || _report(_exceptionable, {
5121
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5122
+ 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)",
5123
+ value: value
5124
+ });
5125
+ }).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, {
5126
+ path: _path + "[\"const\"]",
5127
+ expected: "(boolean | number | string)",
5128
+ value: input["const"]
5129
+ }), "string" === typeof input.description || _report(_exceptionable, {
5130
+ path: _path + ".description",
5131
+ expected: "string",
5132
+ value: input.description
5133
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
5134
+ path: _path + ".type",
5135
+ expected: "\"boolean\"",
5136
+ value: input.type
5137
+ }), "string" === typeof input.description || _report(_exceptionable, {
5138
+ path: _path + ".description",
5139
+ expected: "string",
5140
+ value: input.description
5141
+ })].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, {
5142
+ path: _path + ".minimum",
5143
+ expected: "number & Type<\"int64\">",
5144
+ value: input.minimum
5145
+ })) || _report(_exceptionable, {
5146
+ path: _path + ".minimum",
5147
+ expected: "((number & Type<\"int64\">) | undefined)",
5148
+ value: input.minimum
5149
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
5150
+ path: _path + ".maximum",
5151
+ expected: "number & Type<\"int64\">",
5152
+ value: input.maximum
5153
+ })) || _report(_exceptionable, {
5154
+ path: _path + ".maximum",
5155
+ expected: "((number & Type<\"int64\">) | undefined)",
5156
+ value: input.maximum
5157
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5158
+ path: _path + ".exclusiveMinimum",
5159
+ expected: "(number | undefined)",
5160
+ value: input.exclusiveMinimum
5161
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5162
+ path: _path + ".exclusiveMaximum",
5163
+ expected: "(number | undefined)",
5164
+ value: input.exclusiveMaximum
5165
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
5166
+ path: _path + ".multipleOf",
5167
+ expected: "number & Type<\"uint64\">",
5168
+ value: input.multipleOf
5169
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
5170
+ path: _path + ".multipleOf",
5171
+ expected: "number & ExclusiveMinimum<0>",
5172
+ value: input.multipleOf
5173
+ })) || _report(_exceptionable, {
5174
+ path: _path + ".multipleOf",
5175
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
5176
+ value: input.multipleOf
5177
+ }), "integer" === input.type || _report(_exceptionable, {
5178
+ path: _path + ".type",
5179
+ expected: "\"integer\"",
5180
+ value: input.type
5181
+ }), "string" === typeof input.description || _report(_exceptionable, {
5182
+ path: _path + ".description",
5183
+ expected: "string",
5184
+ value: input.description
5185
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
5186
+ path: _path + ".minimum",
5187
+ expected: "(number | undefined)",
5188
+ value: input.minimum
5189
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
5190
+ path: _path + ".maximum",
5191
+ expected: "(number | undefined)",
5192
+ value: input.maximum
5193
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5194
+ path: _path + ".exclusiveMinimum",
5195
+ expected: "(number | undefined)",
5196
+ value: input.exclusiveMinimum
5197
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5198
+ path: _path + ".exclusiveMaximum",
5199
+ expected: "(number | undefined)",
5200
+ value: input.exclusiveMaximum
5201
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
5202
+ path: _path + ".multipleOf",
5203
+ expected: "number & ExclusiveMinimum<0>",
5204
+ value: input.multipleOf
5205
+ })) || _report(_exceptionable, {
5206
+ path: _path + ".multipleOf",
5207
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
5208
+ value: input.multipleOf
5209
+ }), "number" === input.type || _report(_exceptionable, {
5210
+ path: _path + ".type",
5211
+ expected: "\"number\"",
5212
+ value: input.type
5213
+ }), "string" === typeof input.description || _report(_exceptionable, {
5214
+ path: _path + ".description",
5215
+ expected: "string",
5216
+ value: input.description
5217
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv7.has(input.format) || _report(_exceptionable, {
5218
+ path: _path + ".format",
5219
+ 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)",
5220
+ value: input.format
5221
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
5222
+ path: _path + ".pattern",
5223
+ expected: "(string | undefined)",
5224
+ value: input.pattern
5225
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
5226
+ path: _path + ".contentMediaType",
5227
+ expected: "(string | undefined)",
5228
+ value: input.contentMediaType
5229
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
5230
+ path: _path + ".minLength",
5231
+ expected: "number & Type<\"uint64\">",
5232
+ value: input.minLength
5233
+ })) || _report(_exceptionable, {
5234
+ path: _path + ".minLength",
5235
+ expected: "((number & Type<\"uint64\">) | undefined)",
5236
+ value: input.minLength
5237
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
5238
+ path: _path + ".maxLength",
5239
+ expected: "number & Type<\"uint64\">",
5240
+ value: input.maxLength
5241
+ })) || _report(_exceptionable, {
5242
+ path: _path + ".maxLength",
5243
+ expected: "((number & Type<\"uint64\">) | undefined)",
5244
+ value: input.maxLength
5245
+ }), "string" === input.type || _report(_exceptionable, {
5246
+ path: _path + ".type",
5247
+ expected: "\"string\"",
5248
+ value: input.type
5249
+ }), "string" === typeof input.description || _report(_exceptionable, {
5250
+ path: _path + ".description",
5251
+ expected: "string",
5252
+ value: input.description
5253
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
5254
+ path: _path + ".items",
5255
+ 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)",
5256
+ value: input.items
5257
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
5258
+ path: _path + ".items",
5259
+ 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)",
5260
+ value: input.items
5261
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
5262
+ path: _path + ".uniqueItems",
5263
+ expected: "(boolean | undefined)",
5264
+ value: input.uniqueItems
5265
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
5266
+ path: _path + ".minItems",
5267
+ expected: "number & Type<\"uint64\">",
5268
+ value: input.minItems
5269
+ })) || _report(_exceptionable, {
5270
+ path: _path + ".minItems",
5271
+ expected: "((number & Type<\"uint64\">) | undefined)",
5272
+ value: input.minItems
5273
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
5274
+ path: _path + ".maxItems",
5275
+ expected: "number & Type<\"uint64\">",
5276
+ value: input.maxItems
5277
+ })) || _report(_exceptionable, {
5278
+ path: _path + ".maxItems",
5279
+ expected: "((number & Type<\"uint64\">) | undefined)",
5280
+ value: input.maxItems
5281
+ }), "array" === input.type || _report(_exceptionable, {
5282
+ path: _path + ".type",
5283
+ expected: "\"array\"",
5284
+ value: input.type
5285
+ }), "string" === typeof input.description || _report(_exceptionable, {
5286
+ path: _path + ".description",
5287
+ expected: "string",
5288
+ value: input.description
5289
+ })].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, {
5290
+ path: _path + ".minimum",
5291
+ expected: "number & Type<\"int64\">",
5292
+ value: input.minimum
5293
+ })) || _report(_exceptionable, {
5294
+ path: _path + ".minimum",
5295
+ expected: "((number & Type<\"int64\">) | undefined)",
5296
+ value: input.minimum
5297
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
5298
+ path: _path + ".maximum",
5299
+ expected: "number & Type<\"int64\">",
5300
+ value: input.maximum
5301
+ })) || _report(_exceptionable, {
5302
+ path: _path + ".maximum",
5303
+ expected: "((number & Type<\"int64\">) | undefined)",
5304
+ value: input.maximum
5305
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5306
+ path: _path + ".exclusiveMinimum",
5307
+ expected: "(number | undefined)",
5308
+ value: input.exclusiveMinimum
5309
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5310
+ path: _path + ".exclusiveMaximum",
5311
+ expected: "(number | undefined)",
5312
+ value: input.exclusiveMaximum
5313
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
5314
+ path: _path + ".multipleOf",
5315
+ expected: "number & Type<\"uint64\">",
5316
+ value: input.multipleOf
5317
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
5318
+ path: _path + ".multipleOf",
5319
+ expected: "number & ExclusiveMinimum<0>",
5320
+ value: input.multipleOf
5321
+ })) || _report(_exceptionable, {
5322
+ path: _path + ".multipleOf",
5323
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
5324
+ value: input.multipleOf
5325
+ }), "integer" === input.type || _report(_exceptionable, {
5326
+ path: _path + ".type",
5327
+ expected: "\"integer\"",
5328
+ value: input.type
5329
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
5330
+ path: _path + ".minimum",
5331
+ expected: "(number | undefined)",
5332
+ value: input.minimum
5333
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
5334
+ path: _path + ".maximum",
5335
+ expected: "(number | undefined)",
5336
+ value: input.maximum
5337
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
5338
+ path: _path + ".exclusiveMinimum",
5339
+ expected: "(number | undefined)",
5340
+ value: input.exclusiveMinimum
5341
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
5342
+ path: _path + ".exclusiveMaximum",
5343
+ expected: "(number | undefined)",
5344
+ value: input.exclusiveMaximum
5345
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
5346
+ path: _path + ".multipleOf",
5347
+ expected: "number & ExclusiveMinimum<0>",
5348
+ value: input.multipleOf
5349
+ })) || _report(_exceptionable, {
5350
+ path: _path + ".multipleOf",
5351
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
5352
+ value: input.multipleOf
5353
+ }), "number" === input.type || _report(_exceptionable, {
5354
+ path: _path + ".type",
5355
+ expected: "\"number\"",
5356
+ value: input.type
5357
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
5358
+ path: _path + ".format",
5359
+ 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)",
5360
+ value: input.format
5361
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
5362
+ path: _path + ".pattern",
5363
+ expected: "(string | undefined)",
5364
+ value: input.pattern
5365
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
5366
+ path: _path + ".contentMediaType",
5367
+ expected: "(string | undefined)",
5368
+ value: input.contentMediaType
5369
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
5370
+ path: _path + ".minLength",
5371
+ expected: "number & Type<\"uint64\">",
5372
+ value: input.minLength
5373
+ })) || _report(_exceptionable, {
5374
+ path: _path + ".minLength",
5375
+ expected: "((number & Type<\"uint64\">) | undefined)",
5376
+ value: input.minLength
5377
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
5378
+ path: _path + ".maxLength",
5379
+ expected: "number & Type<\"uint64\">",
5380
+ value: input.maxLength
5381
+ })) || _report(_exceptionable, {
5382
+ path: _path + ".maxLength",
5383
+ expected: "((number & Type<\"uint64\">) | undefined)",
5384
+ value: input.maxLength
5385
+ }), "string" === input.type || _report(_exceptionable, {
5386
+ path: _path + ".type",
5387
+ expected: "\"string\"",
5388
+ value: input.type
5389
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"] || _report(_exceptionable, {
5390
+ path: _path + "[\"const\"]",
5391
+ expected: "(boolean | number | string)",
5392
+ value: input["const"]
5393
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["boolean" === input.type || _report(_exceptionable, {
5394
+ path: _path + ".type",
5395
+ expected: "\"boolean\"",
5396
+ value: input.type
5397
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => [("object" === typeof input.items && null !== input.items || _report(_exceptionable, {
5398
+ path: _path + ".items",
5399
+ 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)",
5400
+ value: input.items
5401
+ })) && _vu2(input.items, _path + ".items", true && _exceptionable) || _report(_exceptionable, {
5402
+ path: _path + ".items",
5403
+ 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)",
5404
+ value: input.items
5405
+ }), undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems || _report(_exceptionable, {
5406
+ path: _path + ".uniqueItems",
5407
+ expected: "(boolean | undefined)",
5408
+ value: input.uniqueItems
5409
+ }), undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000 || _report(_exceptionable, {
5410
+ path: _path + ".minItems",
5411
+ expected: "number & Type<\"uint64\">",
5412
+ value: input.minItems
5413
+ })) || _report(_exceptionable, {
5414
+ path: _path + ".minItems",
5415
+ expected: "((number & Type<\"uint64\">) | undefined)",
5416
+ value: input.minItems
5417
+ }), undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000 || _report(_exceptionable, {
5418
+ path: _path + ".maxItems",
5419
+ expected: "number & Type<\"uint64\">",
5420
+ value: input.maxItems
5421
+ })) || _report(_exceptionable, {
5422
+ path: _path + ".maxItems",
5423
+ expected: "((number & Type<\"uint64\">) | undefined)",
5424
+ value: input.maxItems
5425
+ }), "array" === input.type || _report(_exceptionable, {
5426
+ path: _path + ".type",
5427
+ expected: "\"array\"",
5428
+ value: input.type
5429
+ })].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, {
5430
+ path: _path + "[\"x-autobe-prisma-schema\"]",
5431
+ expected: "(null | string | undefined)",
5432
+ value: input["x-autobe-prisma-schema"]
5433
+ }), ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
5434
+ path: _path + ".properties",
5435
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5436
+ value: input.properties
5437
+ })) && _vo1(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
5438
+ path: _path + ".properties",
5439
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5440
+ value: input.properties
5441
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
5442
+ path: _path + ".additionalProperties",
5443
+ 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)",
5444
+ value: input.additionalProperties
5445
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
5446
+ path: _path + ".additionalProperties",
5447
+ 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)",
5448
+ value: input.additionalProperties
5449
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
5450
+ path: _path + ".additionalProperties",
5451
+ 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)",
5452
+ value: input.additionalProperties
5453
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
5454
+ path: _path + ".required",
5455
+ expected: "Array<string>",
5456
+ value: input.required
5457
+ })) && input.required.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
5458
+ path: _path + ".required[" + _index9 + "]",
5459
+ expected: "string",
5460
+ value: elem
5461
+ })).every(flag => flag) || _report(_exceptionable, {
5462
+ path: _path + ".required",
5463
+ expected: "Array<string>",
5464
+ value: input.required
5465
+ }), "object" === input.type || _report(_exceptionable, {
5466
+ path: _path + ".type",
5467
+ expected: "\"object\"",
5468
+ value: input.type
5469
+ })].every(flag => flag); const _vo15 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
5470
+ path: _path + ".$ref",
5471
+ expected: "string",
5472
+ value: input.$ref
5473
+ })].every(flag => flag); const _vo16 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
5474
+ path: _path + ".oneOf",
5475
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5476
+ value: input.oneOf
5477
+ })) && input.oneOf.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
5478
+ path: _path + ".oneOf[" + _index10 + "]",
5479
+ 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)",
5480
+ value: elem
5481
+ })) && _vu0(elem, _path + ".oneOf[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
5482
+ path: _path + ".oneOf[" + _index10 + "]",
5483
+ 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)",
5484
+ value: elem
5485
+ })).every(flag => flag) || _report(_exceptionable, {
5486
+ path: _path + ".oneOf",
5487
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5488
+ value: input.oneOf
5489
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
5490
+ path: _path + ".discriminator",
5491
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5492
+ value: input.discriminator
5493
+ })) && _vo18(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
5494
+ path: _path + ".discriminator",
5495
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5496
+ value: input.discriminator
5497
+ })].every(flag => flag); const _vo17 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
5498
+ path: _path + ".type",
5499
+ expected: "\"null\"",
5500
+ value: input.type
5501
+ })].every(flag => flag); const _vo18 = (input, _path, _exceptionable = true) => ["string" === typeof input.propertyName || _report(_exceptionable, {
5502
+ path: _path + ".propertyName",
5503
+ expected: "string",
5504
+ value: input.propertyName
5505
+ }), undefined === input.mapping || ("object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) || _report(_exceptionable, {
5506
+ path: _path + ".mapping",
5507
+ expected: "(Record<string, string> | undefined)",
5508
+ value: input.mapping
5509
+ })) && _vo19(input.mapping, _path + ".mapping", true && _exceptionable) || _report(_exceptionable, {
5510
+ path: _path + ".mapping",
5511
+ expected: "(Record<string, string> | undefined)",
5512
+ value: input.mapping
5513
+ })].every(flag => flag); const _vo19 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
5514
+ const value = input[key];
5515
+ if (undefined === value)
5516
+ return true;
5517
+ return "string" === typeof value || _report(_exceptionable, {
5518
+ path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
5519
+ expected: "string",
5520
+ value: value
5521
+ });
5522
+ }).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, {
5523
+ path: _path + "[\"x-autobe-prisma-schema\"]",
5524
+ expected: "(null | string | undefined)",
5525
+ value: input["x-autobe-prisma-schema"]
5526
+ }), ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || _report(_exceptionable, {
5527
+ path: _path + ".properties",
5528
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5529
+ value: input.properties
5530
+ })) && _vo1(input.properties, _path + ".properties", true && _exceptionable) || _report(_exceptionable, {
5531
+ path: _path + ".properties",
5532
+ expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>",
5533
+ value: input.properties
5534
+ }), (null !== input.additionalProperties || _report(_exceptionable, {
5535
+ path: _path + ".additionalProperties",
5536
+ 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)",
5537
+ value: input.additionalProperties
5538
+ })) && (undefined === input.additionalProperties || false === input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties || _report(_exceptionable, {
5539
+ path: _path + ".additionalProperties",
5540
+ 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)",
5541
+ value: input.additionalProperties
5542
+ })) && _vu2(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || _report(_exceptionable, {
5543
+ path: _path + ".additionalProperties",
5544
+ 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)",
5545
+ value: input.additionalProperties
5546
+ })), (Array.isArray(input.required) || _report(_exceptionable, {
5547
+ path: _path + ".required",
5548
+ expected: "Array<string>",
5549
+ value: input.required
5550
+ })) && input.required.map((elem, _index11) => "string" === typeof elem || _report(_exceptionable, {
5551
+ path: _path + ".required[" + _index11 + "]",
5552
+ expected: "string",
5553
+ value: elem
5554
+ })).every(flag => flag) || _report(_exceptionable, {
5555
+ path: _path + ".required",
5556
+ expected: "Array<string>",
5557
+ value: input.required
5558
+ }), "object" === input.type || _report(_exceptionable, {
5559
+ path: _path + ".type",
5560
+ expected: "\"object\"",
5561
+ value: input.type
5562
+ }), "string" === typeof input.description || _report(_exceptionable, {
5563
+ path: _path + ".description",
5564
+ expected: "string",
5565
+ value: input.description
5566
+ })].every(flag => flag); const _vo21 = (input, _path, _exceptionable = true) => ["string" === typeof input.$ref || _report(_exceptionable, {
5567
+ path: _path + ".$ref",
5568
+ expected: "string",
5569
+ value: input.$ref
5570
+ }), "string" === typeof input.description || _report(_exceptionable, {
5571
+ path: _path + ".description",
5572
+ expected: "string",
5573
+ value: input.description
5574
+ })].every(flag => flag); const _vo22 = (input, _path, _exceptionable = true) => [(Array.isArray(input.oneOf) || _report(_exceptionable, {
5575
+ path: _path + ".oneOf",
5576
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5577
+ value: input.oneOf
5578
+ })) && input.oneOf.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
5579
+ path: _path + ".oneOf[" + _index12 + "]",
5580
+ 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)",
5581
+ value: elem
5582
+ })) && _vu0(elem, _path + ".oneOf[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
5583
+ path: _path + ".oneOf[" + _index12 + "]",
5584
+ 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)",
5585
+ value: elem
5586
+ })).every(flag => flag) || _report(_exceptionable, {
5587
+ path: _path + ".oneOf",
5588
+ expected: "Array<IInteger | INumber | IString | IConstant | IBoolean | IArray | IObject | IReference | INull>",
5589
+ value: input.oneOf
5590
+ }), undefined === input.discriminator || ("object" === typeof input.discriminator && null !== input.discriminator || _report(_exceptionable, {
5591
+ path: _path + ".discriminator",
5592
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5593
+ value: input.discriminator
5594
+ })) && _vo18(input.discriminator, _path + ".discriminator", true && _exceptionable) || _report(_exceptionable, {
5595
+ path: _path + ".discriminator",
5596
+ expected: "(AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator | undefined)",
5597
+ value: input.discriminator
5598
+ }), "string" === typeof input.description || _report(_exceptionable, {
5599
+ path: _path + ".description",
5600
+ expected: "string",
5601
+ value: input.description
5602
+ })].every(flag => flag); const _vo23 = (input, _path, _exceptionable = true) => ["null" === input.type || _report(_exceptionable, {
5603
+ path: _path + ".type",
5604
+ expected: "\"null\"",
5605
+ value: input.type
5606
+ }), "string" === typeof input.description || _report(_exceptionable, {
5607
+ path: _path + ".description",
5608
+ expected: "string",
5609
+ value: input.description
5610
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
5611
+ if ("number" === input.type)
5612
+ return _vo9(input, _path, true && _exceptionable);
5613
+ else if ("integer" === input.type)
5614
+ return _vo8(input, _path, true && _exceptionable);
5615
+ else if ("string" === input.type)
5616
+ return _vo10(input, _path, true && _exceptionable);
5617
+ else if (undefined !== input["const"])
5618
+ return _vo11(input, _path, true && _exceptionable);
5619
+ else if ("null" === input.type)
5620
+ return _vo17(input, _path, true && _exceptionable);
5621
+ else if ("boolean" === input.type)
5622
+ return _vo12(input, _path, true && _exceptionable);
5623
+ else if ("array" === input.type)
5624
+ return _vo13(input, _path, true && _exceptionable);
5625
+ else if ("object" === input.type)
5626
+ return _vo14(input, _path, true && _exceptionable);
5627
+ else if (undefined !== input.$ref)
5628
+ return _vo15(input, _path, true && _exceptionable);
5629
+ else
5630
+ return _report(_exceptionable, {
5631
+ path: _path,
5632
+ 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)",
5633
+ value: input
5634
+ });
5635
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
5636
+ if (undefined !== input["const"])
5637
+ return _vo2(input, _path, true && _exceptionable);
5638
+ else if ("boolean" === input.type)
5639
+ return _vo3(input, _path, true && _exceptionable);
5640
+ else if ("number" === input.type)
5641
+ return _vo5(input, _path, true && _exceptionable);
5642
+ else if ("integer" === input.type)
5643
+ return _vo4(input, _path, true && _exceptionable);
5644
+ else if ("string" === input.type)
5645
+ return _vo6(input, _path, true && _exceptionable);
5646
+ else if ("array" === input.type)
5647
+ return _vo7(input, _path, true && _exceptionable);
5648
+ else if ("object" === input.type)
5649
+ return _vo20(input, _path, true && _exceptionable);
5650
+ else if (undefined !== input.$ref)
5651
+ return _vo21(input, _path, true && _exceptionable);
5652
+ else if (undefined !== input.oneOf)
5653
+ return _vo22(input, _path, true && _exceptionable);
5654
+ else if ("null" === input.type)
5655
+ return _vo23(input, _path, true && _exceptionable);
5656
+ else
5657
+ return _report(_exceptionable, {
5658
+ path: _path,
5659
+ 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)",
5660
+ value: input
5661
+ });
5662
+ })(); const _vu2 = (input, _path, _exceptionable = true) => (() => {
5663
+ if ("number" === input.type)
5664
+ return _vo9(input, _path, true && _exceptionable);
5665
+ else if ("integer" === input.type)
5666
+ return _vo8(input, _path, true && _exceptionable);
5667
+ else if ("string" === input.type)
5668
+ return _vo10(input, _path, true && _exceptionable);
5669
+ else if (undefined !== input["const"])
5670
+ return _vo11(input, _path, true && _exceptionable);
5671
+ else if ("null" === input.type)
5672
+ return _vo17(input, _path, true && _exceptionable);
5673
+ else if ("boolean" === input.type)
5674
+ return _vo12(input, _path, true && _exceptionable);
5675
+ else if ("array" === input.type)
5676
+ return _vo13(input, _path, true && _exceptionable);
5677
+ else if ("object" === input.type)
5678
+ return _vo14(input, _path, true && _exceptionable);
5679
+ else if (undefined !== input.$ref)
5680
+ return _vo15(input, _path, true && _exceptionable);
5681
+ else if (undefined !== input.oneOf)
5682
+ return _vo16(input, _path, true && _exceptionable);
5683
+ else
5684
+ return _report(_exceptionable, {
5685
+ path: _path,
5686
+ 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)",
5687
+ value: input
5688
+ });
5689
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
5690
+ if (false === __is(input)) {
5691
+ errors = [];
5692
+ _report = __typia_transform__validateReport._validateReport(errors);
5693
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
5694
+ path: _path + "",
5695
+ expected: "IAutoBeInterfaceComplementApplication.IProps",
5696
+ value: input
5697
+ })) && _vo0(input, _path + "", true) || _report(true, {
5698
+ path: _path + "",
5699
+ expected: "IAutoBeInterfaceComplementApplication.IProps",
5700
+ value: input
5701
+ }))(input, "$input", true);
5702
+ const success = 0 === errors.length;
5703
+ return success ? {
5704
+ success,
5705
+ data: input
5706
+ } : {
5707
+ success,
5708
+ errors,
5709
+ data: input
5710
+ };
5711
+ }
5712
+ return {
5713
+ success: true,
5714
+ data: input
5715
+ };
5716
+ }; })()
5717
+ }
5718
+ ]
5719
+ };
5720
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
5721
+ validate: {
5722
+ complementComponents: validate,
5723
+ },
5724
+ }), { equals: false }));
5725
+ return application;
5726
+ })(),
4099
5727
  };
4100
5728
  //# sourceMappingURL=orchestrateInterfaceComplement.js.map