json-schema-typed

  • Version 8.0.2
  • Published
  • 197 kB
  • No dependencies
  • BSD-2-Clause license

Install

npm i json-schema-typed
yarn add json-schema-typed
pnpm add json-schema-typed

Overview

JSON Schema TypeScript definitions with complete inline documentation.

Index

Variables

variable $schema

const $schema: string;

    variable draft

    const draft: string;

      variable keywords

      const keywords: readonly [
      '$anchor',
      '$comment',
      '$defs',
      '$dynamicAnchor',
      '$dynamicRef',
      '$id',
      '$ref',
      '$schema',
      '$vocabulary',
      'additionalItems',
      'additionalProperties',
      'allOf',
      'anyOf',
      'const',
      'contains',
      'contentEncoding',
      'contentMediaType',
      'contentSchema',
      'default',
      'definitions',
      'dependencies',
      'dependentRequired',
      'dependentSchemas',
      'deprecated',
      'description',
      'else',
      'enum',
      'examples',
      'exclusiveMaximum',
      'exclusiveMinimum',
      'format',
      'if',
      'items',
      'maxContains',
      'maximum',
      'maxItems',
      'maxLength',
      'maxProperties',
      'minContains',
      'minimum',
      'minItems',
      'minLength',
      'minProperties',
      'multipleOf',
      'not',
      'oneOf',
      'pattern',
      'patternProperties',
      'prefixItems',
      'properties',
      'propertyNames',
      'readOnly',
      'required',
      'then',
      'title',
      'type',
      'unevaluatedItems',
      'unevaluatedProperties',
      'uniqueItems',
      'writeOnly'
      ];

        Enums

        enum ContentEncoding

        enum ContentEncoding {
        '7bit' = '7bit',
        '8bit' = '8bit',
        Base64 = 'base64',
        Binary = 'binary',
        IETFToken = 'ietf-token',
        QuotedPrintable = 'quoted-printable',
        XToken = 'x-token',
        }
        • Content encoding strategy enum.

          - [Content-Transfer-Encoding Syntax](https://datatracker.ietf.org/doc/html/rfc2045#section-6.1) - [7bit vs 8bit encoding](https://stackoverflow.com/questions/25710599/content-transfer-encoding-7bit-or-8-bit/28531705#28531705)

        member "7bit"

        '7bit' = '7bit'
        • Only US-ASCII characters, which use the lower 7 bits for each character.

          Each line must be less than 1,000 characters.

        member "8bit"

        '8bit' = '8bit'
        • Allow extended ASCII characters which can use the 8th (highest) bit to indicate special characters not available in 7bit.

          Each line must be less than 1,000 characters.

        member Base64

        Base64 = 'base64'
        • Useful for data that is mostly non-text.

        member Binary

        Binary = 'binary'
        • Same character set as 8bit, with no line length restriction.

        member IETFToken

        IETFToken = 'ietf-token'
        • An extension token defined by a standards-track RFC and registered with IANA.

        member QuotedPrintable

        QuotedPrintable = 'quoted-printable'
        • Lines are limited to 76 characters, and line breaks are represented using special characters that are escaped.

        member XToken

        XToken = 'x-token'
        • The two characters "X-" or "x-" followed, with no intervening white space, by any token.

        enum Format

        enum Format {
        Date = 'date',
        DateTime = 'date-time',
        Duration = 'duration',
        Email = 'email',
        Hostname = 'hostname',
        IDNEmail = 'idn-email',
        IDNHostname = 'idn-hostname',
        IPv4 = 'ipv4',
        IPv6 = 'ipv6',
        IRI = 'iri',
        IRIReference = 'iri-reference',
        JSONPointer = 'json-pointer',
        JSONPointerURIFragment = 'json-pointer-uri-fragment',
        RegEx = 'regex',
        RelativeJSONPointer = 'relative-json-pointer',
        Time = 'time',
        URI = 'uri',
        URIReference = 'uri-reference',
        URITemplate = 'uri-template',
        UUID = 'uuid',
        }
        • This enum provides well-known formats that apply to strings.

        member Date

        Date = 'date'
        • A string instance is valid against this attribute if it is a valid representation according to the "full-date" production in [RFC 3339][RFC3339].

          [RFC3339]: https://datatracker.ietf.org/doc/html/rfc3339

        member DateTime

        DateTime = 'date-time'
        • A string instance is valid against this attribute if it is a valid representation according to the "date-time" production in [RFC 3339][RFC3339].

          [RFC3339]: https://datatracker.ietf.org/doc/html/rfc3339

        member Duration

        Duration = 'duration'
        • A string instance is valid against this attribute if it is a valid representation according to the "duration" production.

        member Email

        Email = 'email'
        • A string instance is valid against this attribute if it is a valid Internet email address as defined by by the "Mailbox" ABNF rule in [RFC 5321][RFC5322], section 4.1.2.

          [RFC5321]: https://datatracker.ietf.org/doc/html/rfc5321

        member Hostname

        Hostname = 'hostname'
        • As defined by [RFC 1123, section 2.1][RFC1123], including host names produced using the Punycode algorithm specified in [RFC 5891, section 4.4][RFC5891].

          [RFC1123]: https://datatracker.ietf.org/doc/html/rfc1123 [RFC5891]: https://datatracker.ietf.org/doc/html/rfc5891

        member IDNEmail

        IDNEmail = 'idn-email'
        • A string instance is valid against this attribute if it is a valid Internet email address as defined by the extended "Mailbox" ABNF rule in [RFC 6531][RFC6531], section 3.3.

          [RFC6531]: https://datatracker.ietf.org/doc/html/rfc6531

        member IDNHostname

        IDNHostname = 'idn-hostname'
        • As defined by either [RFC 1123, section 2.1][RFC1123] as for hostname, or an internationalized hostname as defined by [RFC 5890, section 2.3.2.3][RFC5890].

          [RFC1123]: https://datatracker.ietf.org/doc/html/rfc1123 [RFC5890]: https://datatracker.ietf.org/doc/html/rfc5890

        member IPv4

        IPv4 = 'ipv4'
        • An IPv4 address according to the "dotted-quad" ABNF syntax as defined in [RFC 2673, section 3.2][RFC2673].

          [RFC2673]: https://datatracker.ietf.org/doc/html/rfc2673

        member IPv6

        IPv6 = 'ipv6'
        • An IPv6 address as defined in [RFC 4291, section 2.2][RFC4291].

          [RFC4291]: https://datatracker.ietf.org/doc/html/rfc4291

        member IRI

        IRI = 'iri'
        • A string instance is valid against this attribute if it is a valid IRI, according to [RFC 3987][RFC3987].

          [RFC3987]: https://datatracker.ietf.org/doc/html/rfc3987

        member IRIReference

        IRIReference = 'iri-reference'
        • A string instance is valid against this attribute if it is a valid IRI Reference (either an IRI or a relative-reference), according to [RFC 3987][RFC3987].

          [RFC3987]: https://datatracker.ietf.org/doc/html/rfc3987

        member JSONPointer

        JSONPointer = 'json-pointer'
        • A string instance is valid against this attribute if it is a valid JSON string representation of a JSON Pointer, according to [RFC 6901, section 5][RFC6901].

          [RFC6901]: https://datatracker.ietf.org/doc/html/rfc6901

        member JSONPointerURIFragment

        JSONPointerURIFragment = 'json-pointer-uri-fragment'
        • A string instance is valid against this attribute if it is a valid JSON string representation of a JSON Pointer fragment, according to [RFC 6901, section 5][RFC6901].

          [RFC6901]: https://datatracker.ietf.org/doc/html/rfc6901

        member RegEx

        RegEx = 'regex'
        • This attribute applies to string instances.

          A regular expression, which SHOULD be valid according to the [ECMA-262][ecma262] regular expression dialect.

          Implementations that validate formats MUST accept at least the subset of [ECMA-262][ecma262] defined in the [Regular Expressions][regexInterop] section of this specification, and SHOULD accept all valid [ECMA-262][ecma262] expressions.

          [ecma262]: https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ [regexInterop]: https://json-schema.org/draft/2020-12/json-schema-validation.html#regexInterop

        member RelativeJSONPointer

        RelativeJSONPointer = 'relative-json-pointer'
        • A string instance is valid against this attribute if it is a valid [Relative JSON Pointer][relative-json-pointer].

          [relative-json-pointer]: https://datatracker.ietf.org/doc/html/draft-handrews-relative-json-pointer-01

        member Time

        Time = 'time'
        • A string instance is valid against this attribute if it is a valid representation according to the "time" production in [RFC 3339][RFC3339].

          [RFC3339]: https://datatracker.ietf.org/doc/html/rfc3339

        member URI

        URI = 'uri'
        • A string instance is valid against this attribute if it is a valid URI, according to [RFC3986][RFC3986].

          [RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986

        member URIReference

        URIReference = 'uri-reference'
        • A string instance is valid against this attribute if it is a valid URI Reference (either a URI or a relative-reference), according to [RFC3986][RFC3986].

          [RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986

        member URITemplate

        URITemplate = 'uri-template'
        • A string instance is valid against this attribute if it is a valid URI Template (of any level), according to [RFC 6570][RFC6570].

          Note that URI Templates may be used for IRIs; there is no separate IRI Template specification.

          [RFC6570]: https://datatracker.ietf.org/doc/html/rfc6570

        member UUID

        UUID = 'uuid'
        • A string instance is valid against this attribute if it is a valid string representation of a UUID, according to [RFC 4122][RFC4122].

          [RFC4122]: https://datatracker.ietf.org/doc/html/rfc4122

        enum TypeName

        enum TypeName {
        Array = 'array',
        Boolean = 'boolean',
        Integer = 'integer',
        Null = 'null',
        Number = 'number',
        Object = 'object',
        String = 'string',
        }
        • Enum consisting of simple type names for the type keyword

        member Array

        Array = 'array'
        • Value MUST be an array.

        member Boolean

        Boolean = 'boolean'
        • Value MUST be a boolean.

        member Integer

        Integer = 'integer'
        • Value MUST be an integer, no floating point numbers are allowed. This is a subset of the number type.

        member Null

        Null = 'null'
        • Value MUST be null. Note this is mainly for purpose of being able use union types to define nullability. If this type is not included in a union, null values are not allowed (the primitives listed above do not allow nulls on their own).

        member Number

        Number = 'number'
        • Value MUST be a number, floating point numbers are allowed.

        member Object

        Object = 'object'
        • Value MUST be an object.

        member String

        String = 'string'
        • Value MUST be a string.

        Type Aliases

        type JSONSchema

        type JSONSchema<
        Value = any,
        SchemaType = Value extends boolean
        ? 'boolean'
        : Value extends null
        ? 'null'
        : Value extends number
        ? 'number' | 'integer'
        : Value extends string
        ? 'string'
        : Value extends unknown[]
        ? 'array'
        : Value extends Record<string | number, unknown>
        ? 'object'
        : JSONSchema.TypeValue
        > =
        | boolean
        | {
        /**
        * Using JSON Pointer fragments requires knowledge of the structure of the
        * schema. When writing schema documents with the intention to provide
        * re-usable schemas, it may be preferable to use a plain name fragment
        * that is not tied to any particular structural location. This allows a
        * subschema to be relocated without requiring JSON Pointer references to
        * be updated.
        *
        * The `$anchor` keyword is used to specify such a fragment. It is an
        * identifier keyword that can only be used to create plain name fragments.
        *
        * If present, the value of this keyword MUST be a string, which MUST start
        * with a letter `[A-Za-z]`, followed by any number of letters, digits
        * `[0-9]`, hyphens `-`, underscores `_`, colons `:`,
        * or periods `.`.
        *
        * Note that the anchor string does not include the `#` character,
        * as it is not a URI-reference. An `{"$anchor": "foo"}` becomes the
        * fragment `#foo` when used in a URI.
        *
        * The base URI to which the resulting fragment is appended is determined
        * by the `$id` keyword as explained in the previous section.
        * Two `$anchor` keywords in the same schema document MAY have the same
        * value if they apply to different base URIs, as the resulting full URIs
        * will be distinct. However, the effect of two `$anchor` keywords
        * with the same value and the same base URI is undefined. Implementations
        * MAY raise an error if such usage is detected.
        */
        $anchor?: string;
        /**
        * This keyword reserves a location for comments from schema authors to
        * readers or maintainers of the schema.
        *
        * The value of this keyword MUST be a string. Implementations MUST NOT
        * present this string to end users. Tools for editing schemas SHOULD
        * support displaying and editing this keyword. The value of this keyword
        * MAY be used in debug or error output which is intended for developers
        * making use of schemas.
        *
        * Schema vocabularies SHOULD allow `$comment` within any object
        * containing vocabulary keywords. Implementations MAY assume `$comment`
        * is allowed unless the vocabulary specifically forbids it. Vocabularies
        * MUST NOT specify any effect of `$comment` beyond what is described in
        * this specification.
        *
        * Tools that translate other media types or programming languages
        * to and from `application/schema+json` MAY choose to convert that media
        * type or programming language's native comments to or from `$comment`
        * values. The behavior of such translation when both native comments and
        * `$comment` properties are present is implementation-dependent.
        *
        * Implementations MAY strip `$comment` values at any point during
        * processing. In particular, this allows for shortening schemas when the
        * size of deployed schemas is a concern.
        *
        * Implementations MUST NOT take any other action based on the presence,
        * absence, or contents of `$comment` properties. In particular, the
        * value of `$comment` MUST NOT be collected as an annotation result.
        */
        $comment?: string;
        /**
        * The `$defs` keyword reserves a location for schema authors to inline
        * re-usable JSON Schemas into a more general schema. The keyword does not
        * directly affect the validation result.
        *
        * This keyword's value MUST be an object. Each member value of this object
        * MUST be a valid JSON Schema.
        */
        $defs?: Record<string, JSONSchema>;
        /**
        * "The `$dynamicAnchor` indicates that the fragment is an extension
        * point when used with the `$dynamicRef` keyword. This low-level,
        * advanced feature makes it easier to extend recursive schemas such as the
        * meta-schemas, without imposing any particular semantics on that
        * extension. See `$dynamicRef` for more details.
        */
        $dynamicAnchor?: string;
        /**
        * The `$dynamicRef` keyword is an applicator that allows for deferring
        * the full resolution until runtime, at which point it is resolved each
        * time it is encountered while evaluating an instance.
        *
        * Together with `$dynamicAnchor`, `$dynamicRef` implements a
        * cooperative extension mechanism that is primarily useful with recursive
        * schemas (schemas that reference themselves). Both the extension point
        * and the runtime-determined extension target are defined with
        * `$dynamicAnchor`, and only exhibit runtime dynamic behavior when
        * referenced with `$dynamicRef`.
        *
        * The value of the `$dynamicRef` property MUST be a string which is
        * a URI-Reference. Resolved against the current URI base, it produces
        * the URI used as the starting point for runtime resolution. This initial
        * resolution is safe to perform on schema load.
        *
        * If the initially resolved starting point URI includes a fragment that
        * was created by the `$dynamicAnchor` keyword, the initial URI MUST be
        * replaced by the URI (including the fragment) for the outermost schema
        * resource in the [dynamic scope][scopes] that defines
        * an identically named fragment with `$dynamicAnchor`.
        *
        * Otherwise, its behavior is identical to `$ref`, and no runtime
        * resolution is needed.
        *
        * [scopes]: https://json-schema.org/draft/2020-12/json-schema-core.html#scopes
        *
        * @format "uri-reference"
        */
        $dynamicRef?: string;
        /**
        * The `$id` keyword identifies a schema resource with its
        * [canonical][[RFC6596]] URI.
        *
        * Note that this URI is an identifier and not necessarily a network
        * locator. In the case of a network-addressable URL, a schema need not be
        * downloadable from its canonical URI.
        *
        * If present, the value for this keyword MUST be a string, and MUST
        * represent a valid [URI-reference][RFC3986]. This URI-reference SHOULD
        * be normalized, and MUST resolve to an [absolute-URI][RFC3986] (without a
        * fragment). Therefore, `$id` MUST NOT contain a non-empty fragment,
        * and SHOULD NOT contain an empty fragment.
        *
        * Since an empty fragment in the context of the
        * `application/schema+json` media type refers to the same resource as
        * the base URI without a fragment, an implementation MAY normalize a URI
        * ending with an empty fragment by removing the fragment. However, schema
        * authors SHOULD NOT rely on this behavior across implementations.
        *
        * This URI also serves as the base URI for relative URI-references in
        * keywords within the schema resource, in accordance with
        * [RFC 3986][RFC3986] section 5.1.1 regarding base URIs embedded in
        * content.
        *
        * The presence of `$id` in a subschema indicates that the subschema
        * constitutes a distinct schema resource within a single schema document.
        * Furthermore, in accordance with [RFC 3986][RFC3986] section 5.1.2
        * regarding encapsulating entities, if an `$id` in a subschema is a
        * relative URI-reference, the base URI for resolving that reference is the
        * URI of the parent schema resource.
        *
        * If no parent schema object explicitly identifies itself as a resource
        * with `$id`, the base URI is that of the entire document.
        *
        * The root schema of a JSON Schema document SHOULD contain an `$id`
        * keyword with an [absolute-URI][RFC3986] (containing a scheme, but no
        * fragment).
        *
        * [RFC6596]: https://datatracker.ietf.org/doc/html/rfc6596
        * [RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986
        *
        * @format "uri-reference"
        */
        $id?: string;
        /**
        * The `$ref` keyword is an applicator that is used to reference a
        * statically identified schema. Its results are the results of the
        * referenced schema. Other keywords can appear alongside of `$ref` in
        * the same schema object.
        *
        * The value of the `$ref` property MUST be a string which is a
        * URI-Reference. Resolved against the current URI base, it produces the
        * URI of the schema to apply.
        *
        * @format "uri-reference"
        */
        $ref?: string;
        /**
        * The `$schema` keyword is both used as a JSON Schema dialect identifier
        * and as the identifier of a resource which is itself a JSON Schema, which
        * describes the set of valid schemas written for this particular dialect.
        *
        * The value of this keyword MUST be a [URI][RFC3986] (containing a scheme)
        * and this URI MUST be normalized. The current schema MUST be valid
        * against the meta-schema identified by this URI.
        *
        * If this URI identifies a retrievable resource, that resource SHOULD be
        * of media type `application/schema+json`.
        *
        * The `$schema` keyword SHOULD be used in the document root schema
        * object, and MAY be used in the root schema objects of embedded schema
        * resources. It MUST NOT appear in non-resource root schema objects. If
        * absent from the document root schema, the resulting behavior is
        * implementation-defined.
        *
        * Values for this property are defined elsewhere in this and other
        * documents, and by other parties.
        *
        * [RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986
        *
        * @format "uri"
        */
        $schema?: string;
        /**
        * The `$vocabulary` keyword is used in meta-schemas to identify the
        * vocabularies available for use in schemas described by that meta-schema.
        * It is also used to indicate whether each vocabulary is required or
        * optional, in the sense that an implementation MUST understand the
        * required vocabularies in order to successfully process the schema.
        * Together, this information forms a dialect. Any vocabulary that is
        * understood by the implementation MUST be processed in a manner
        * consistent with the semantic definitions contained within the
        * vocabulary.
        *
        * The value of this keyword MUST be an object. The property names in the
        * object MUST be URIs (containing a scheme) and this URI MUST be
        * normalized. Each URI that appears as a property name identifies a
        * specific set of keywords and their semantics.
        *
        * The URI MAY be a URL, but the nature of the retrievable resource is
        * currently undefined, and reserved for future use. Vocabulary authors
        * MAY use the URL of the vocabulary specification, in a human-readable
        * media type such as `text/html` or `text/plain`, as the vocabulary
        * URI.
        *
        * The values of the object properties MUST be booleans. If the value is
        * `true`, then implementations that do not recognize the vocabulary MUST
        * refuse to process any schemas that declare this meta-schema with
        * `$schema`. If the value is `false`, implementations that do not
        * recognize the vocabulary SHOULD proceed with processing such schemas.
        * The value has no impact if the implementation understands the
        * vocabulary.
        *
        * Unrecognized keywords SHOULD be ignored. This remains the case for
        * keywords defined by unrecognized vocabularies. It is not currently
        * possible to distinguish between unrecognized keywords that are defined
        * in vocabularies from those that are not part of any vocabulary.
        *
        * The `$vocabulary` keyword SHOULD be used in the root schema of any
        * schema document intended for use as a meta-schema. It MUST NOT appear
        * in subschemas.
        *
        * The `$vocabulary` keyword MUST be ignored in schema documents that are
        * not being processed as a meta-schema.
        */
        $vocabulary?: Record<string, string>;
        /**
        * @deprecated `additionalItems` has been deprecated in favor of `prefixItems`
        * paired with `items`.
        */
        additionalItems?: JSONSchema;
        /**
        * The value of `additionalProperties` MUST be a valid JSON Schema.
        *
        * The behavior of this keyword depends on the presence and annotation
        * results of `properties` and `patternProperties` within the same
        * schema object. Validation with `additionalProperties` applies only to
        * the child values of instance names that do not appear in the annotation
        * results of either `properties` or `patternProperties`.
        *
        * For all such properties, validation succeeds if the child instance
        * validates against the `additionalProperties` schema.
        *
        * The annotation result of this keyword is the set of instance property
        * names validated by this keyword's subschema. Annotation results for
        * `additionalProperties` keywords from multiple schemas applied to the
        * same instance location are combined by taking the union of the sets.
        *
        * Omitting this keyword has the same assertion behavior as an empty
        * schema.
        *
        * Implementations MAY choose to implement or optimize this keyword in
        * another way that produces the same effect, such as by directly checking
        * the names in `properties` and the patterns in `patternProperties`
        * against the instance property set.
        */
        additionalProperties?: JSONSchema;
        /**
        * This keyword's value MUST be a non-empty array. Each item of the array
        * MUST be a valid JSON Schema.
        *
        * An instance validates successfully against this keyword if it validates
        * successfully against all schemas defined by this keyword's value.
        */
        allOf?: MaybeReadonlyArray<JSONSchema<Value, SchemaType>>;
        /**
        * This keyword's value MUST be a non-empty array. Each item of the array
        * MUST be a valid JSON Schema.
        *
        * An instance validates successfully against this keyword if it validates
        * successfully against at least one schema defined by this keyword's
        * value.
        */
        anyOf?: MaybeReadonlyArray<JSONSchema<Value, SchemaType>>;
        /**
        * An instance validates successfully against this keyword if its value is
        * equal to the value of the keyword.
        *
        * Use of this keyword is functionally equivalent to the `enum` keyword
        * with a single value.
        */
        const?: Value;
        /**
        * The value of this keyword MUST be a valid JSON Schema.
        *
        * An array instance is valid against `contains` if at least one of its
        * elements is valid against the given schema. The subschema MUST be
        * applied to every array element even after the first match has been
        * found, in order to collect annotations for use by other keywords.
        * This is to ensure that all possible annotations are collected.
        *
        * Logically, the validation result of applying the value subschema to each
        * item in the array MUST be OR'ed with `false`, resulting in an overall
        * validation result.
        *
        * This keyword produces an annotation value which is an array of the
        * indexes to which this keyword validates successfully when applying its
        * subschema, in ascending order. The value MAY be a boolean `true` if
        * the subschema validates successfully when applied to every index of the
        * instance. The annotation MUST be present if the instance array to which
        * this keyword's schema applies is empty.
        */
        contains?: JSONSchema<Value, SchemaType>;
        /**
        * If the instance value is a string, this property defines that the
        * string SHOULD be interpreted as binary data and decoded using the
        * encoding named by this property. [RFC 2045, Sec 6.1][RFC2045] lists the
        * possible values for this property.
        *
        * The value of this property SHOULD be ignored if the instance described
        * is not a string.
        *
        * If this keyword is absent, but `contentMediaType` is present, this
        * indicates that the media type could be encoded into `UTF-8` like any
        * other JSON string value, and does not require additional decoding.
        *
        * The value of this property MUST be a string.
        *
        * [RFC2045]: https://datatracker.ietf.org/doc/html/rfc2045#section-6.1
        */
        contentEncoding?:
        | '7bit'
        | '8bit'
        | 'base64'
        | 'binary'
        | 'ietf-token'
        | 'quoted-printable'
        | 'x-token';
        /**
        * If the instance is a string, this property indicates the media type
        * of the contents of the string. If `contentEncoding` is present,
        * this property describes the decoded string.
        *
        * The value of this property must be a media type, as defined by
        * [RFC 2046][RFC2046]. This property defines the media type of instances
        * which this schema defines.
        *
        * The value of this property SHOULD be ignored if the instance described
        * is not a string.
        *
        * If the `contentEncoding` property is not present, but the instance
        * value is a string, then the value of this property SHOULD specify a text
        * document type, and the character set SHOULD be the character set into
        * which the JSON string value was decoded (for which the default is
        * Unicode).
        *
        * [RFC2046]: https://datatracker.ietf.org/doc/html/rfc2046
        */
        contentMediaType?: string;
        /**
        * If the instance is a string, and if `contentMediaType` is present,
        * this property contains a schema which describes the structure of the
        * string.
        *
        * This keyword MAY be used with any media type that can be mapped into
        * JSON Schema's data model.
        *
        * The value of this property MUST be a valid JSON schema. It SHOULD be
        * ignored if `contentMediaType` is not present.
        */
        contentSchema?: JSONSchema<Value, SchemaType>;
        /**
        * This keyword can be used to supply a default JSON value associated with
        * a particular schema. It is RECOMMENDED that a `default` value be valid
        * against the associated schema.
        */
        default?: Value;
        /**
        * @deprecated `definitions` has been renamed to `$defs`.
        */
        definitions?: Record<string, JSONSchema>;
        /**
        * @deprecated `dependencies` has been split into two keywords:
        * `dependentSchemas` and `dependentRequired`.
        */
        dependencies?: Record<string, MaybeReadonlyArray<string> | JSONSchema>;
        /**
        * The value of this keyword MUST be an object. Properties in
        * this object, if any, MUST be arrays. Elements in each array,
        * if any, MUST be strings, and MUST be unique.
        *
        * This keyword specifies properties that are required if a specific
        * other property is present. Their requirement is dependent on the
        * presence of the other property.
        *
        * Validation succeeds if, for each name that appears in both
        * the instance and as a name within this keyword's value, every
        * item in the corresponding array is also the name of a property
        * in the instance.
        *
        * Omitting this keyword has the same behavior as an empty object.
        */
        dependentRequired?: Record<string, MaybeReadonlyArray<string>>;
        /**
        * This keyword specifies subschemas that are evaluated if the instance is
        * an object and contains a certain property.
        *
        * This keyword's value MUST be an object. Each value in the object MUST be
        * a valid JSON Schema.
        *
        * If the object key is a property in the instance, the entire instance
        * must validate against the subschema. Its use is dependent on the
        * presence of the property.
        *
        * Omitting this keyword has the same behavior as an empty object.
        */
        dependentSchemas?: Record<string, JSONSchema>;
        /**
        * The value of this keyword MUST be a boolean. When multiple occurrences
        * of this keyword are applicable to a single sub-instance, applications
        * SHOULD consider the instance location to be deprecated if any occurrence
        * specifies a `true` value.
        *
        * If `deprecated` has a value of boolean `true`, it indicates that
        * applications SHOULD refrain from usage of the declared property. It MAY
        * mean the property is going to be removed in the future.
        *
        * A root schema containing `deprecated` with a value of `true`
        * indicates that the entire resource being described MAY be removed in the
        * future.
        *
        * The `deprecated` keyword applies to each instance location to which
        * the schema object containing the keyword successfully applies. This can
        * result in scenarios where every array item or object property is
        * deprecated even though the containing array or object is not.
        *
        * Omitting this keyword has the same behavior as a value of `false`.
        */
        deprecated?: boolean;
        /**
        * Can be used to decorate a user interface with explanation or information
        * about the data produced.
        */
        description?: string;
        /**
        * This keyword's value MUST be a valid JSON Schema.
        *
        * When `if` is present, and the instance fails to validate against its
        * subschema, then validation succeeds against this keyword if the instance
        * successfully validates against this keyword's subschema.
        *
        * This keyword has no effect when `if` is absent, or when the instance
        * successfully validates against its subschema. Implementations MUST NOT
        * evaluate the instance against this keyword, for either validation or
        * annotation collection purposes, in such cases.
        */
        else?: JSONSchema<Value, SchemaType>;
        /**
        * The value of this keyword MUST be an array. This array SHOULD have at
        * least one element. Elements in the array SHOULD be unique.
        *
        * An instance validates successfully against this keyword if its value is
        * equal to one of the elements in this keyword's array value.
        *
        * Elements in the array might be of any type, including `null`.
        */
        enum?: MaybeReadonlyArray<Value>;
        /**
        * The value of this keyword MUST be an array. When multiple occurrences of
        * this keyword are applicable to a single sub-instance, implementations
        * MUST provide a flat array of all values rather than an array of arrays.
        *
        * This keyword can be used to provide sample JSON values associated with a
        * particular schema, for the purpose of illustrating usage. It is
        * RECOMMENDED that these values be valid against the associated schema.
        *
        * Implementations MAY use the value(s) of `default`, if present, as an
        * additional example. If `examples` is absent, `default` MAY still be
        * used in this manner.
        */
        examples?: MaybeReadonlyArray<Value>;
        /**
        * The value of `exclusiveMaximum` MUST be a number, representing an
        * exclusive upper limit for a numeric instance.
        *
        * If the instance is a number, then the instance is valid only if it has a
        * value strictly less than (not equal to) `exclusiveMaximum`.
        */
        exclusiveMaximum?: number;
        /**
        * The value of `exclusiveMinimum` MUST be a number, representing an
        * exclusive lower limit for a numeric instance.
        *
        * If the instance is a number, then the instance is valid only if it has a
        * value strictly greater than (not equal to) `exclusiveMinimum`.
        */
        exclusiveMinimum?: number;
        /**
        * Implementations MAY treat `format` as an assertion in addition to an
        * annotation, and attempt to validate the value's conformance to the
        * specified semantics.
        *
        * The value of this keyword is called a format attribute. It MUST be a
        * string. A format attribute can generally only validate a given set
        * of instance types. If the type of the instance to validate is not in
        * this set, validation for this format attribute and instance SHOULD
        * succeed. Format attributes are most often applied to strings, but can
        * be specified to apply to any type.
        *
        * Implementations MAY support custom format attributes. Save for agreement
        * between parties, schema authors SHALL NOT expect a peer implementation
        * to support such custom format attributes. An implementation MUST NOT
        * fail validation or cease processing due to an unknown format attribute.
        * When treating `format` as an annotation, implementations SHOULD
        * collect both known and unknown format attribute values.
        */
        format?: string;
        /**
        * This keyword's value MUST be a valid JSON Schema.
        *
        * This validation outcome of this keyword's subschema has no direct effect
        * on the overall validation result. Rather, it controls which of the
        * `then` or `else` keywords are evaluated.
        *
        * Instances that successfully validate against this keyword's subschema
        * MUST also be valid against the subschema value of the `then` keyword,
        * if present.
        *
        * Instances that fail to validate against this keyword's subschema MUST
        * also be valid against the subschema value of the `else` keyword, if
        * present.
        *
        * If annotations are being collected, they are collected
        * from this keyword's subschema in the usual way, including when the
        * keyword is present without either `then` or `else`.
        */
        if?: JSONSchema<Value, SchemaType>;
        /**
        * The value of `items` MUST be a valid JSON Schema.
        *
        * This keyword applies its subschema to all instance elements at indexes
        * greater than the length of the `prefixItems` array in the same schema
        * object, as reported by the annotation result of that `prefixItems`
        * keyword. If no such annotation result exists, `items` applies its
        * subschema to all instance array elements.
        *
        * Note that the behavior of `items` without `prefixItems` is identical
        * to that of the schema form of `items` in prior drafts.
        *
        * When `prefixItems` is present, the behavior of `items` is identical
        * to the former `additionalItems` keyword.
        *
        * If the `items` subschema is applied to any positions within the
        * instance array, it produces an annotation result of boolean `true`,
        * indicating that all remaining array elements have been evaluated against
        * this keyword's subschema.
        *
        * Omitting this keyword has the same assertion behavior as an empty
        * schema.
        *
        * Implementations MAY choose to implement or optimize this keyword
        * in another way that produces the same effect, such as by directly
        * checking for the presence and size of a `prefixItems` array.
        */
        items?: JSONSchema;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * If `contains` is not present within the same schema object, then this
        * keyword has no effect.
        *
        * An instance array is valid against `maxContains` in two ways,
        * depending on the form of the annotation result of an adjacent
        * `contains` keyword. The first way is if the annotation result is an
        * array and the length of that array is less than or equal to the
        * `maxContains` value. The second way is if the annotation result is a
        * boolean `true` and the instance array length is less than or equal to
        * the `maxContains` value.
        */
        maxContains?: number;
        /**
        * The value of `maximum` MUST be a number, representing an inclusive
        * upper limit for a numeric instance.
        *
        * If the instance is a number, then this keyword validates only if the
        * instance is less than or exactly equal to `maximum`.
        */
        maximum?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * An array instance is valid against `maxItems` if its size is less
        * than, or equal to, the value of this keyword.
        *
        * @minimum 0
        */
        maxItems?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * A string instance is valid against this keyword if its length is less
        * than, or equal to, the value of this keyword.
        *
        * The length of a string instance is defined as the number of its
        * characters as defined by [RFC 8259][RFC8259].
        *
        * [RFC8259]: https://datatracker.ietf.org/doc/html/rfc8259
        *
        * @minimum 0
        */
        maxLength?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * An object instance is valid against `maxProperties` if its number of
        * `properties` is less than, or equal to, the value of this keyword.
        *
        * @minimum 0
        */
        maxProperties?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * If `contains` is not present within the same schema object, then this
        * keyword has no effect.
        *
        * An instance array is valid against `minContains` in two ways,
        * depending on the form of the annotation result of an adjacent
        * `contains` keyword. The first way is if the annotation result is an
        * array and the length of that array is greater than or equal to the
        * `minContains` value. The second way is if the annotation result is a
        * boolean `true` and the instance array length is greater than or equal
        * to the `minContains` value.
        *
        * A value of `0` is allowed, but is only useful for setting a range
        * of occurrences from `0` to the value of `maxContains`. A value of
        * `0` with no `maxContains` causes `contains` to always pass
        * validation.
        *
        * Omitting this keyword has the same behavior as a value of `1`.
        *
        * @default 1
        */
        minContains?: number;
        /**
        * The value of `minimum` MUST be a number, representing an inclusive
        * lower limit for a numeric instance.
        *
        * If the instance is a number, then this keyword validates only if the
        * instance is greater than or exactly equal to `minimum`.
        */
        minimum?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * An array instance is valid against `minItems` if its size is greater
        * than, or equal to, the value of this keyword.
        *
        * Omitting this keyword has the same behavior as a value of `0`.
        *
        * @default 0
        * @minimum 0
        */
        minItems?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * A string instance is valid against this keyword if its length is greater
        * than, or equal to, the value of this keyword.
        *
        * The length of a string instance is defined as the number of its
        * characters as defined by [RFC 8259][RFC8259].
        *
        * Omitting this keyword has the same behavior as a value of `0`.
        *
        * [RFC8259]: https://datatracker.ietf.org/doc/html/rfc8259
        *
        * @default 0
        * @minimum 0
        */
        minLength?: number;
        /**
        * The value of this keyword MUST be a non-negative integer.
        *
        * An object instance is valid against `minProperties` if its number of
        * `properties` is greater than, or equal to, the value of this keyword.
        *
        * Omitting this keyword has the same behavior as a value of `0`.
        *
        * @default 0
        * @minimum 0
        */
        minProperties?: number;
        /**
        * The value of `multipleOf` MUST be a number, strictly greater than
        * `0`.
        *
        * A numeric instance is valid only if division by this keyword's value
        * results in an integer.
        *
        * @exclusiveMinimum 0
        */
        multipleOf?: number;
        /**
        * This keyword's value MUST be a valid JSON Schema.
        *
        * An instance is valid against this keyword if it fails to validate
        * successfully against the schema defined by this keyword.
        */
        not?: JSONSchema<Value, SchemaType>;
        /**
        * This keyword's value MUST be a non-empty array. Each item of the array
        * MUST be a valid JSON Schema.
        *
        * An instance validates successfully against this keyword if it validates
        * successfully against exactly one schema defined by this keyword's value.
        */
        oneOf?: MaybeReadonlyArray<JSONSchema<Value, SchemaType>>;
        /**
        * The value of this keyword MUST be a string. This string SHOULD be a
        * valid regular expression, according to the [ECMA-262][ecma262] regular
        * expression dialect.
        *
        * A string instance is considered valid if the regular expression matches
        * the instance successfully. Recall: regular expressions are not
        * implicitly anchored.
        *
        * [ecma262]: https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
        *
        * @format "regex"
        */
        pattern?: string;
        /**
        * The value of `patternProperties` MUST be an object. Each property name
        * of this object SHOULD be a valid regular expression, according to the
        * [ECMA-262][ecma262] regular expression dialect. Each property value of
        * this object MUST be a valid JSON Schema.
        *
        * Validation succeeds if, for each instance name that matches any regular
        * expressions that appear as a property name in this keyword's value,
        * the child instance for that name successfully validates against each
        * schema that corresponds to a matching regular expression.
        *
        * The annotation result of this keyword is the set of instance property
        * names matched by this keyword. Omitting this keyword has the same
        * assertion behavior as an empty object.
        *
        * [ecma262]: https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
        */
        patternProperties?: Record<string, JSONSchema>;
        /**
        * The value of `prefixItems` MUST be a non-empty array of valid JSON
        * Schemas.
        *
        * Validation succeeds if each element of the instance validates against
        * the schema at the same position, if any. This keyword does not
        * constrain the length of the array. If the array is longer than this
        * keyword's value, this keyword validates only the prefix of matching
        * length.
        *
        * This keyword produces an annotation value which is the largest index to
        * which this keyword applied a subschema. The value MAY be a boolean
        * `true` if a subschema was applied to every index of the instance, such
        * as is produced by the `items` keyword.
        * This annotation affects the behavior of `items` and
        * `unevaluatedItems`.
        *
        * Omitting this keyword has the same assertion behavior as an empty array.
        */
        prefixItems?: MaybeReadonlyArray<JSONSchema> | JSONSchema;
        /**
        * The value of `properties` MUST be an object. Each value of this object
        * MUST be a valid JSON Schema.
        *
        * Validation succeeds if, for each name that appears in both the instance
        * and as a name within this keyword's value, the child instance for that
        * name successfully validates against the corresponding schema.
        *
        * The annotation result of this keyword is the set of instance property
        * names matched by this keyword.
        *
        * Omitting this keyword has the same assertion behavior as an empty
        * object.
        */
        properties?: Record<string, JSONSchema>;
        /**
        * The value of `propertyNames` MUST be a valid JSON Schema.
        *
        * If the instance is an object, this keyword validates if every property
        * name in the instance validates against the provided schema.
        * Note the property name that the schema is testing will always be a
        * string.
        *
        * Omitting this keyword has the same behavior as an empty schema.
        */
        propertyNames?: JSONSchema;
        /**
        * The value of this keyword MUST be a boolean. When multiple occurrences
        * of this keyword are applicable to a single sub-instance, the resulting
        * value MUST be `true` if any occurrence specifies a `true` value, and
        * MUST be `false` otherwise.
        *
        * If `readOnly` has a value of boolean `true`, it indicates that the
        * value of the instance is managed exclusively by the owning authority,
        * and attempts by an application to modify the value of this property are
        * expected to be ignored or rejected by that owning authority.
        *
        * An instance document that is marked as `readOnly` for the entire
        * document MAY be ignored if sent to the owning authority, or MAY result
        * in an error, at the authority's discretion.
        *
        * For example, `readOnly` would be used to mark a database-generated
        * serial number as read-only.
        *
        * This keyword can be used to assist in user interface instance
        * generation.
        *
        * @default false
        */
        readOnly?: boolean;
        /**
        * The value of this keyword MUST be an array. Elements of this array, if
        * any, MUST be strings, and MUST be unique.
        *
        * An object instance is valid against this keyword if every item in the
        * array is the name of a property in the instance.
        *
        * Omitting this keyword has the same behavior as an empty array.
        */
        required?: MaybeReadonlyArray<string>;
        /**
        * This keyword's value MUST be a valid JSON Schema.
        *
        * When `if` is present, and the instance successfully validates against
        * its subschema, then validation succeeds against this keyword if the
        * instance also successfully validates against this keyword's subschema.
        *
        * This keyword has no effect when `if` is absent, or when the instance
        * fails to validate against its subschema. Implementations MUST NOT
        * evaluate the instance against this keyword, for either validation or
        * annotation collection purposes, in such cases.
        */
        then?: JSONSchema<Value, SchemaType>;
        /**
        * Can be used to decorate a user interface with a short label about the
        * data produced.
        */
        title?: string;
        /**
        * The value of this keyword MUST be either a string or an array. If it is
        * an array, elements of the array MUST be strings and MUST be unique.
        *
        * String values MUST be one of the six primitive types (`"null"`,
        * `"boolean"`, `"object"`, `"array"`, `"number"`, or
        * `"string"`), or `"integer"` which matches any number with a zero
        * fractional part.
        *
        * An instance validates if and only if the instance is in any of the sets
        * listed for this keyword.
        */
        type?: SchemaType;
        /**
        * The value of `unevaluatedItems` MUST be a valid JSON Schema.
        *
        * The behavior of this keyword depends on the annotation results of
        * adjacent keywords that apply to the instance location being validated.
        * Specifically, the annotations from `prefixItems`, `items`, and
        * `contains`, which can come from those keywords when they are adjacent
        * to the `unevaluatedItems` keyword. Those three annotations, as well as
        * `unevaluatedItems`, can also result from any and all adjacent
        * [in-place applicator][in-place-applicator] keywords.
        *
        * If no relevant annotations are present, the `unevaluatedItems`
        * subschema MUST be applied to all locations in the array.
        * If a boolean `true` value is present from any of the relevant
        * annotations, `unevaluatedItems` MUST be ignored. Otherwise, the
        * subschema MUST be applied to any index greater than the largest
        * annotation value for `prefixItems`, which does not appear in any
        * annotation value for `contains`.
        *
        * This means that `prefixItems`, `items`, `contains`, and all
        * in-place applicators MUST be evaluated before this keyword can be
        * evaluated. Authors of extension keywords MUST NOT define an in-place
        * applicator that would need to be evaluated after this keyword.
        *
        * If the `unevaluatedItems` subschema is applied to any positions within
        * the instance array, it produces an annotation result of boolean
        * `true`, analogous to the behavior of `items`.
        *
        * Omitting this keyword has the same assertion behavior as an empty
        * schema.
        *
        * [in-place-applicator]: https://json-schema.org/draft/2020-12/json-schema-core.html#in-place
        */
        unevaluatedItems?: JSONSchema;
        /**
        * The value of `unevaluatedProperties` MUST be a valid JSON Schema.
        *
        * The behavior of this keyword depends on the annotation results of
        * adjacent keywords that apply to the instance location being validated.
        * Specifically, the annotations from `properties`,
        * `patternProperties`, and `additionalProperties`, which can come from
        * those keywords when they are adjacent to the `unevaluatedProperties`
        * keyword. Those three annotations, as well as `unevaluatedProperties`,
        * can also result from any and all adjacent
        * [in-place applicator][in-place-applicator] keywords.
        *
        * Validation with `unevaluatedProperties` applies only to the child
        * values of instance names that do not appear in the `properties`,
        * `patternProperties`, `additionalProperties`, or
        * `unevaluatedProperties` annotation results that apply to the
        * instance location being validated.
        *
        * For all such properties, validation succeeds if the child instance
        * validates against the "unevaluatedProperties" schema.
        *
        * This means that `properties`, `patternProperties`,
        * `additionalProperties`, and all in-place applicators MUST be evaluated
        * before this keyword can be evaluated. Authors of extension keywords
        * MUST NOT define an in-place applicator that would need to be evaluated
        * after this keyword.
        *
        * The annotation result of this keyword is the set of instance property
        * names validated by this keyword's subschema.
        *
        * Omitting this keyword has the same assertion behavior as an empty
        * schema.
        *
        * [in-place-applicator]: https://json-schema.org/draft/2020-12/json-schema-core.html#in-place
        */
        unevaluatedProperties?: JSONSchema;
        /**
        * The value of this keyword MUST be a boolean.
        *
        * If this keyword has boolean value `false`, the instance validates
        * successfully. If it has boolean value `true`, the instance validates
        * successfully if all of its elements are unique.
        *
        * Omitting this keyword has the same behavior as a value of `false`.
        *
        * @default false
        */
        uniqueItems?: boolean;
        /**
        * The value of this keyword MUST be a boolean. When multiple occurrences
        * of this keyword is applicable to a single sub-instance, the resulting
        * value MUST be `true` if any occurrence specifies a `true` value, and
        * MUST be `false` otherwise.
        *
        * If `writeOnly` has a value of boolean `true`, it indicates that the
        * value is never present when the instance is retrieved from the owning
        * authority. It can be present when sent to the owning authority to update
        * or create the document (or the resource it represents), but it will not
        * be included in any updated or newly created version of the instance.
        *
        * An instance document that is marked as `writeOnly` for the entire
        * document MAY be returned as a blank document of some sort, or MAY
        * produce an error upon retrieval, or have the retrieval request ignored,
        * at the authority's discretion.
        *
        * For example, `writeOnly` would be used to mark a password input field.
        *
        * These keywords can be used to assist in user interface instance
        * generation. In particular, an application MAY choose to use a widget
        * that hides input values as they are typed for write-only fields.
        *
        * @default false
        */
        writeOnly?: boolean;
        };
        • JSON Schema [Draft 2020-12](https://json-schema.org/draft/2020-12/json-schema-validation.html)

        Namespaces

        namespace JSONSchema

        namespace JSONSchema {}

          type Array

          type Array<T = any> = Pick<
          Interface<T, 'array'>,
          KeywordByType.Any | KeywordByType.Array
          >;

            type Boolean

            type Boolean = Pick<Interface<boolean, 'boolean'>, KeywordByType.Any>;

              type Integer

              type Integer = Pick<
              Interface<number, 'integer'>,
              KeywordByType.Any | KeywordByType.Number
              >;

                type Interface

                type Interface<Value = any, SchemaType extends TypeValue = TypeValue> = Exclude<
                JSONSchema<Value, SchemaType>,
                boolean
                >;
                • JSON Schema interface

                type Null

                type Null = Pick<Interface<null, 'null'>, KeywordByType.Any>;

                  type Number

                  type Number = Pick<
                  Interface<number, 'number'>,
                  KeywordByType.Any | KeywordByType.Number
                  >;

                    type Object

                    type Object<T = any> = Pick<
                    Interface<T, 'object'>,
                    KeywordByType.Any | KeywordByType.Object
                    >;

                      type String

                      type String = Pick<
                      Interface<string, 'string'>,
                      KeywordByType.Any | KeywordByType.String
                      >;

                        type TypeValue

                        type TypeValue =
                        | ValueOf<TypeName>
                        | TypeName
                        | Array<ValueOf<TypeName> | TypeName>
                        | ReadonlyArray<ValueOf<TypeName> | TypeName>;

                          namespace KeywordByType

                          namespace KeywordByType {}

                            type Any

                            type Any =
                            | '$anchor'
                            | '$comment'
                            | '$defs'
                            | '$dynamicAnchor'
                            | '$dynamicRef'
                            | '$id'
                            | '$ref'
                            | '$schema'
                            | '$vocabulary'
                            | 'allOf'
                            | 'anyOf'
                            | 'const'
                            | 'default'
                            | 'definitions'
                            | 'deprecated'
                            | 'description'
                            | 'else'
                            | 'enum'
                            | 'examples'
                            | 'format'
                            | 'if'
                            | 'not'
                            | 'oneOf'
                            | 'readOnly'
                            | 'then'
                            | 'title'
                            | 'type'
                            | 'writeOnly';

                              type Array

                              type Array =
                              | 'additionalItems'
                              | 'contains'
                              | 'items'
                              | 'maxContains'
                              | 'maxItems'
                              | 'minContains'
                              | 'minItems'
                              | 'prefixItems'
                              | 'unevaluatedItems'
                              | 'uniqueItems';

                                type Number

                                type Number =
                                | 'exclusiveMaximum'
                                | 'exclusiveMinimum'
                                | 'maximum'
                                | 'minimum'
                                | 'multipleOf';

                                  type Object

                                  type Object =
                                  | 'additionalProperties'
                                  | 'dependencies'
                                  | 'dependentRequired'
                                  | 'dependentSchemas'
                                  | 'maxProperties'
                                  | 'minProperties'
                                  | 'patternProperties'
                                  | 'properties'
                                  | 'propertyNames'
                                  | 'required'
                                  | 'unevaluatedProperties';

                                    type String

                                    type String =
                                    | 'contentEncoding'
                                    | 'contentMediaType'
                                    | 'contentSchema'
                                    | 'maxLength'
                                    | 'minLength'
                                    | 'pattern';

                                      Package Files (1)

                                      Dependencies (0)

                                      No dependencies.

                                      Dev Dependencies (0)

                                      No dev dependencies.

                                      Peer Dependencies (0)

                                      No peer dependencies.

                                      Badge

                                      To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                      You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/json-schema-typed.

                                      • Markdown
                                        [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/json-schema-typed)
                                      • HTML
                                        <a href="https://www.jsdocs.io/package/json-schema-typed"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>