json-schema.d.cts 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. export type Schema = ObjectSchema | ArraySchema | StringSchema | NumberSchema | IntegerSchema | BooleanSchema | NullSchema;
  2. export type _JSONSchema = boolean | JSONSchema;
  3. export type JSONSchema = {
  4. [k: string]: unknown;
  5. $schema?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | "http://json-schema.org/draft-04/schema#";
  6. $id?: string;
  7. $anchor?: string;
  8. $ref?: string;
  9. $dynamicRef?: string;
  10. $dynamicAnchor?: string;
  11. $vocabulary?: Record<string, boolean>;
  12. $comment?: string;
  13. $defs?: Record<string, JSONSchema>;
  14. type?: "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
  15. additionalItems?: _JSONSchema;
  16. unevaluatedItems?: _JSONSchema;
  17. prefixItems?: _JSONSchema[];
  18. items?: _JSONSchema | _JSONSchema[];
  19. contains?: _JSONSchema;
  20. additionalProperties?: _JSONSchema;
  21. unevaluatedProperties?: _JSONSchema;
  22. properties?: Record<string, _JSONSchema>;
  23. patternProperties?: Record<string, _JSONSchema>;
  24. dependentSchemas?: Record<string, _JSONSchema>;
  25. propertyNames?: _JSONSchema;
  26. if?: _JSONSchema;
  27. then?: _JSONSchema;
  28. else?: _JSONSchema;
  29. allOf?: JSONSchema[];
  30. anyOf?: JSONSchema[];
  31. oneOf?: JSONSchema[];
  32. not?: _JSONSchema;
  33. multipleOf?: number;
  34. maximum?: number;
  35. exclusiveMaximum?: number | boolean;
  36. minimum?: number;
  37. exclusiveMinimum?: number | boolean;
  38. maxLength?: number;
  39. minLength?: number;
  40. pattern?: string;
  41. maxItems?: number;
  42. minItems?: number;
  43. uniqueItems?: boolean;
  44. maxContains?: number;
  45. minContains?: number;
  46. maxProperties?: number;
  47. minProperties?: number;
  48. required?: string[];
  49. dependentRequired?: Record<string, string[]>;
  50. enum?: Array<string | number | boolean | null>;
  51. const?: string | number | boolean | null;
  52. id?: string;
  53. title?: string;
  54. description?: string;
  55. default?: unknown;
  56. deprecated?: boolean;
  57. readOnly?: boolean;
  58. writeOnly?: boolean;
  59. nullable?: boolean;
  60. examples?: unknown[];
  61. format?: string;
  62. contentMediaType?: string;
  63. contentEncoding?: string;
  64. contentSchema?: JSONSchema;
  65. _prefault?: unknown;
  66. };
  67. export type BaseSchema = JSONSchema;
  68. export interface ObjectSchema extends JSONSchema {
  69. type: "object";
  70. }
  71. export interface ArraySchema extends JSONSchema {
  72. type: "array";
  73. }
  74. export interface StringSchema extends JSONSchema {
  75. type: "string";
  76. }
  77. export interface NumberSchema extends JSONSchema {
  78. type: "number";
  79. }
  80. export interface IntegerSchema extends JSONSchema {
  81. type: "integer";
  82. }
  83. export interface BooleanSchema extends JSONSchema {
  84. type: "boolean";
  85. }
  86. export interface NullSchema extends JSONSchema {
  87. type: "null";
  88. }