yup

  • Version 1.4.0
  • Published
  • 256 kB
  • 4 dependencies
  • MIT license

Install

npm i yup
yarn add yup
pnpm add yup

Overview

Dead simple Object schema validation

Index

Variables

Functions

Classes

Interfaces

Type Aliases

Namespaces

Variables

variable defaultLocale

const defaultLocale: LocaleObject;

    Functions

    function addMethod

    addMethod: {
    <T extends ISchema<any, any, any, any>>(
    schemaType: (...arg: any[]) => T,
    name: string,
    fn: (this: T, ...args: any[]) => T
    ): void;
    <T extends abstract new (...args: any) => ISchema<any, any, any, any>>(
    schemaType: T,
    name: string,
    fn: (this: InstanceType<T>, ...args: any[]) => InstanceType<T>
    ): void;
    };

      function array

      array: typeof create$2;

        function bool

        bool: typeof create$7;

          function boolean

          boolean: typeof create$7;

            function date

            date: typeof create$4;

              function getIn

              getIn: <C = any>(
              schema: any,
              path: string,
              value?: any,
              context?: C
              ) => { schema: ISchema<any> | Reference<any>; parent: any; parentPath: string };

                function isSchema

                isSchema: (obj: any) => obj is ISchema<any, any, any, any>;

                  function lazy

                  lazy: <
                  TSchema extends ISchema<any, TContext, any, any>,
                  TContext extends AnyObject = AnyObject
                  >(
                  builder: (value: any, options: ResolveOptions<TContext>) => TSchema
                  ) => Lazy<InferType<TSchema>, TContext, any>;

                    function mixed

                    mixed: typeof create$8;

                      function number

                      number: typeof create$5;

                        function object

                        object: typeof create$3;

                          function printValue

                          printValue: (value: any, quoteStrings?: boolean) => any;

                            function reach

                            reach: <P extends string, S extends ISchema<any, any, any, any>>(
                            obj: S,
                            path: P,
                            value?: any,
                            context?: any
                            ) => Reference<Get<InferType<S>, P>> | ISchema<Get<InferType<S>, P>, S['__context']>;

                              function ref

                              ref: <TValue = unknown>(
                              key: string,
                              options?: ReferenceOptions<TValue>
                              ) => Reference<TValue>;

                                function setLocale

                                setLocale: (custom: LocaleObject) => void;

                                  function string

                                  string: typeof create$6;

                                    function tuple

                                    tuple: typeof create$1;

                                      Classes

                                      class ArraySchema

                                      class ArraySchema<
                                      TIn extends any[] | null | undefined,
                                      TContext,
                                      TDefault = undefined,
                                      TFlags extends Flags = ''
                                      > extends Schema<TIn, TContext, TDefault, TFlags> {}

                                        constructor

                                        constructor(type?: ISchema<InnerType<TIn>, TContext, any, any>);

                                          property innerType

                                          readonly innerType?: ISchema<InnerType<TIn>, TContext, any, any>;

                                            property spec

                                            spec: ArraySchemaSpec<TIn, TContext>;

                                              method clone

                                              clone: (spec?: SchemaSpec<any>) => this;

                                                method compact

                                                compact: (rejector?: RejectorFn) => this;

                                                  method concat

                                                  concat: {
                                                  <IIn extends any[], IC, ID, IF extends Flags>(
                                                  schema: ArraySchema<IIn, IC, ID, IF>
                                                  ): ArraySchema<
                                                  Concat<TIn, IIn>,
                                                  TContext & IC,
                                                  Extract<IF, 'd'> extends never ? TDefault : ID,
                                                  TFlags | IF
                                                  >;
                                                  (schema: this): this;
                                                  };

                                                    method describe

                                                    describe: (options?: ResolveOptions<TContext>) => SchemaInnerTypeDescription;

                                                      method ensure

                                                      ensure: () => ArraySchema<TIn, TContext, TIn, ToggleDefault<TFlags, TIn>>;

                                                        method json

                                                        json: () => this;
                                                        • Parse an input JSON string to an object

                                                        method length

                                                        length: (
                                                        length: number | Reference<number>,
                                                        message?: Message<{ length: number }>
                                                        ) => this;

                                                          method max

                                                          max: (
                                                          max: number | Reference<number>,
                                                          message?: Message<{ max: number }>
                                                          ) => this;

                                                            method min

                                                            min: (
                                                            min: number | Reference<number>,
                                                            message?: Message<{ min: number }>
                                                            ) => this;

                                                              method of

                                                              of: <U>(
                                                              schema: ISchema<U, TContext>
                                                              ) => ArraySchema<U[] | Optionals<TIn>, TContext, TFlags>;

                                                                class BooleanSchema

                                                                class BooleanSchema<
                                                                TType extends Maybe<boolean> = boolean | undefined,
                                                                TContext = AnyObject,
                                                                TDefault = undefined,
                                                                TFlags extends Flags = ''
                                                                > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                  constructor

                                                                  constructor();

                                                                    method default

                                                                    default: <D extends TType>(
                                                                    def: DefaultThunk<D, TContext>
                                                                    ) => BooleanSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                      method defined

                                                                      defined: (
                                                                      msg?: Message
                                                                      ) => BooleanSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                        method isFalse

                                                                        isFalse: (
                                                                        message?: Message<any> | undefined
                                                                        ) => BooleanSchema<false | Optionals<TType>, TContext, TFlags>;

                                                                          method isTrue

                                                                          isTrue: (
                                                                          message?: Message<any> | undefined
                                                                          ) => BooleanSchema<true | Optionals<TType>, TContext, TFlags>;

                                                                            method nonNullable

                                                                            nonNullable: (
                                                                            msg?: Message
                                                                            ) => BooleanSchema<NotNull<TType>, TContext, TDefault, TFlags>;

                                                                              method notRequired

                                                                              notRequired: () => BooleanSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                method nullable

                                                                                nullable: () => BooleanSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                  method optional

                                                                                  optional: () => BooleanSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                    method required

                                                                                    required: (
                                                                                    msg?: Message
                                                                                    ) => BooleanSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                      method strip

                                                                                      strip: {
                                                                                      (enabled: false): BooleanSchema<
                                                                                      TType,
                                                                                      TContext,
                                                                                      TDefault,
                                                                                      UnsetFlag<TFlags, 's'>
                                                                                      >;
                                                                                      (enabled?: true): BooleanSchema<
                                                                                      TType,
                                                                                      TContext,
                                                                                      TDefault,
                                                                                      SetFlag<TFlags, 's'>
                                                                                      >;
                                                                                      };

                                                                                        class DateSchema

                                                                                        class DateSchema<
                                                                                        TType extends Maybe<Date> = Date | undefined,
                                                                                        TContext = AnyObject,
                                                                                        TDefault = undefined,
                                                                                        TFlags extends Flags = ''
                                                                                        > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                          constructor

                                                                                          constructor();

                                                                                            property INVALID_DATE

                                                                                            static INVALID_DATE: Date;

                                                                                              method max

                                                                                              max: (
                                                                                              max: unknown | Reference,
                                                                                              message?: Message<{ max: string | Date }>
                                                                                              ) => this;

                                                                                                method min

                                                                                                min: (
                                                                                                min: unknown | Reference<Date>,
                                                                                                message?: Message<{ min: string | Date }>
                                                                                                ) => this;

                                                                                                  class Lazy

                                                                                                  class Lazy<T, TContext = AnyObject, TFlags extends Flags = any>
                                                                                                  implements ISchema<T, TContext, TFlags, undefined> {}

                                                                                                    constructor

                                                                                                    constructor(builder: any);

                                                                                                      property spec

                                                                                                      spec: LazySpec;

                                                                                                        property type

                                                                                                        type: string;

                                                                                                          method asNestedTest

                                                                                                          asNestedTest: (config: NestedTestConfig) => RunTest;

                                                                                                            method cast

                                                                                                            cast: {
                                                                                                            (value: any, options?: CastOptions$1<TContext>): T;
                                                                                                            (value: any, options?: CastOptionalityOptions<TContext>): T;
                                                                                                            };

                                                                                                              method clone

                                                                                                              clone: (spec?: Partial<LazySpec>) => Lazy<T, TContext, TFlags>;

                                                                                                                method describe

                                                                                                                describe: (
                                                                                                                options?: ResolveOptions<TContext>
                                                                                                                ) => SchemaLazyDescription | SchemaFieldDescription;

                                                                                                                  method isValid

                                                                                                                  isValid: (value: any, options?: ValidateOptions<TContext>) => Promise<boolean>;

                                                                                                                    method isValidSync

                                                                                                                    isValidSync: (value: any, options?: ValidateOptions<TContext>) => boolean;

                                                                                                                      method meta

                                                                                                                      meta: {
                                                                                                                      (): Record<string, unknown> | undefined;
                                                                                                                      (obj: Record<string, unknown>): Lazy<T, TContext, TFlags>;
                                                                                                                      };

                                                                                                                        method optional

                                                                                                                        optional: () => Lazy<T | undefined, TContext, TFlags>;

                                                                                                                          method resolve

                                                                                                                          resolve: (
                                                                                                                          options: ResolveOptions<TContext>
                                                                                                                          ) => Schema<T, TContext, undefined, TFlags>;

                                                                                                                            method validate

                                                                                                                            validate: (value: any, options?: ValidateOptions<TContext>) => Promise<T>;

                                                                                                                              method validateAt

                                                                                                                              validateAt: (
                                                                                                                              path: string,
                                                                                                                              value: any,
                                                                                                                              options?: ValidateOptions<TContext>
                                                                                                                              ) => Promise<any>;

                                                                                                                                method validateSync

                                                                                                                                validateSync: (value: any, options?: ValidateOptions<TContext>) => T;

                                                                                                                                  method validateSyncAt

                                                                                                                                  validateSyncAt: (
                                                                                                                                  path: string,
                                                                                                                                  value: any,
                                                                                                                                  options?: ValidateOptions<TContext>
                                                                                                                                  ) => any;

                                                                                                                                    class MixedSchema

                                                                                                                                    class MixedSchema<
                                                                                                                                    TType extends Maybe<AnyPresentValue> = AnyPresentValue | undefined,
                                                                                                                                    TContext = AnyObject,
                                                                                                                                    TDefault = undefined,
                                                                                                                                    TFlags extends Flags = ''
                                                                                                                                    > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                      constructor

                                                                                                                                      constructor(spec?: MixedOptions<TType> | TypeGuard<TType>);

                                                                                                                                        class NumberSchema

                                                                                                                                        class NumberSchema<
                                                                                                                                        TType extends Maybe<number> = number | undefined,
                                                                                                                                        TContext = AnyObject,
                                                                                                                                        TDefault = undefined,
                                                                                                                                        TFlags extends Flags = ''
                                                                                                                                        > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                          constructor

                                                                                                                                          constructor();

                                                                                                                                            method integer

                                                                                                                                            integer: (message?: Message<any>) => this;

                                                                                                                                              method lessThan

                                                                                                                                              lessThan: (
                                                                                                                                              less: number | Reference<number>,
                                                                                                                                              message?: Message<{ less: number }>
                                                                                                                                              ) => this;

                                                                                                                                                method max

                                                                                                                                                max: (
                                                                                                                                                max: number | Reference<number>,
                                                                                                                                                message?: Message<{ max: number }>
                                                                                                                                                ) => this;

                                                                                                                                                  method min

                                                                                                                                                  min: (
                                                                                                                                                  min: number | Reference<number>,
                                                                                                                                                  message?: Message<{ min: number }>
                                                                                                                                                  ) => this;

                                                                                                                                                    method moreThan

                                                                                                                                                    moreThan: (
                                                                                                                                                    more: number | Reference<number>,
                                                                                                                                                    message?: Message<{ more: number }>
                                                                                                                                                    ) => this;

                                                                                                                                                      method negative

                                                                                                                                                      negative: (msg?: Message<{ less: number }>) => this;

                                                                                                                                                        method positive

                                                                                                                                                        positive: (msg?: Message<{ more: number }>) => this;

                                                                                                                                                          method round

                                                                                                                                                          round: (method?: 'ceil' | 'floor' | 'round' | 'trunc') => this;

                                                                                                                                                            method truncate

                                                                                                                                                            truncate: () => this;

                                                                                                                                                              class ObjectSchema

                                                                                                                                                              class ObjectSchema<
                                                                                                                                                              TIn extends Maybe<AnyObject>,
                                                                                                                                                              TContext = AnyObject,
                                                                                                                                                              TDefault = any,
                                                                                                                                                              TFlags extends Flags = ''
                                                                                                                                                              > extends Schema<MakeKeysOptional<TIn>, TContext, TDefault, TFlags> {}

                                                                                                                                                                constructor

                                                                                                                                                                constructor(spec?: Shape<TIn, TContext>);

                                                                                                                                                                  property fields

                                                                                                                                                                  fields: Shape<NonNullable<TIn>, TContext>;

                                                                                                                                                                    property spec

                                                                                                                                                                    spec: ObjectSchemaSpec;

                                                                                                                                                                      method camelCase

                                                                                                                                                                      camelCase: () => this;

                                                                                                                                                                        method clone

                                                                                                                                                                        clone: (spec?: ObjectSchemaSpec) => this;

                                                                                                                                                                          method concat

                                                                                                                                                                          concat: {
                                                                                                                                                                          <IIn extends AnyObject, IC, ID, IF extends Flags>(
                                                                                                                                                                          schema: ObjectSchema<IIn, IC, ID, IF>
                                                                                                                                                                          ): ObjectSchema<
                                                                                                                                                                          ConcatObjectTypes<TIn, IIn>,
                                                                                                                                                                          TContext & IC,
                                                                                                                                                                          Extract<IF, 'd'> extends never
                                                                                                                                                                          ? TDefault extends AnyObject
                                                                                                                                                                          ? ID extends AnyObject
                                                                                                                                                                          ? _<ConcatObjectTypes<TDefault, ID>>
                                                                                                                                                                          : ID
                                                                                                                                                                          : ID
                                                                                                                                                                          : ID,
                                                                                                                                                                          TFlags | IF
                                                                                                                                                                          >;
                                                                                                                                                                          (schema: this): this;
                                                                                                                                                                          };

                                                                                                                                                                            method constantCase

                                                                                                                                                                            constantCase: () => this;

                                                                                                                                                                              method deepPartial

                                                                                                                                                                              deepPartial: () => ObjectSchema<PartialDeep<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                method describe

                                                                                                                                                                                describe: (options?: ResolveOptions<TContext>) => SchemaObjectDescription;

                                                                                                                                                                                  method from

                                                                                                                                                                                  from: (from: string, to: keyof TIn, alias?: boolean) => this;

                                                                                                                                                                                    method json

                                                                                                                                                                                    json: () => this;
                                                                                                                                                                                    • Parse an input JSON string to an object

                                                                                                                                                                                    method noUnknown

                                                                                                                                                                                    noUnknown: {
                                                                                                                                                                                    (message?: Message): this;
                                                                                                                                                                                    (noAllow: boolean, message?: Message<any>): this;
                                                                                                                                                                                    };

                                                                                                                                                                                      method omit

                                                                                                                                                                                      omit: <TKey extends keyof TIn>(
                                                                                                                                                                                      keys: readonly TKey[]
                                                                                                                                                                                      ) => ObjectSchema<
                                                                                                                                                                                      { [K in Exclude<keyof TIn, TKey>]: TIn[K] },
                                                                                                                                                                                      TContext,
                                                                                                                                                                                      TDefault,
                                                                                                                                                                                      TFlags
                                                                                                                                                                                      >;

                                                                                                                                                                                        method partial

                                                                                                                                                                                        partial: () => ObjectSchema<Partial<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                          method pick

                                                                                                                                                                                          pick: <TKey extends keyof TIn>(
                                                                                                                                                                                          keys: readonly TKey[]
                                                                                                                                                                                          ) => ObjectSchema<{ [K in TKey]: TIn[K] }, TContext, TDefault, TFlags>;

                                                                                                                                                                                            method shape

                                                                                                                                                                                            shape: <U extends ObjectShape>(
                                                                                                                                                                                            additions: U,
                                                                                                                                                                                            excludes?: readonly [string, string][]
                                                                                                                                                                                            ) => ObjectSchema<
                                                                                                                                                                                            | _<
                                                                                                                                                                                            {
                                                                                                                                                                                            [P in keyof TIn]: P extends keyof U
                                                                                                                                                                                            ? TypeFromShape<U, TContext>[P]
                                                                                                                                                                                            : TIn[P];
                                                                                                                                                                                            } & TypeFromShape<U, TContext>
                                                                                                                                                                                            >
                                                                                                                                                                                            | _<Extract<TIn, null>>,
                                                                                                                                                                                            TContext,
                                                                                                                                                                                            Extract<TFlags, 'd'> extends never
                                                                                                                                                                                            ? _<TDefault & DefaultFromShape<U>>
                                                                                                                                                                                            : TDefault,
                                                                                                                                                                                            TFlags
                                                                                                                                                                                            >;

                                                                                                                                                                                              method snakeCase

                                                                                                                                                                                              snakeCase: () => this;

                                                                                                                                                                                                method transformKeys

                                                                                                                                                                                                transformKeys: (fn: (key: string) => string) => this;

                                                                                                                                                                                                  method unknown

                                                                                                                                                                                                  unknown: (allow?: boolean, message?: Message<any>) => this;

                                                                                                                                                                                                    class Reference

                                                                                                                                                                                                    class Reference<TValue = unknown> {}

                                                                                                                                                                                                      constructor

                                                                                                                                                                                                      constructor(key: string, options?: ReferenceOptions<TValue>);

                                                                                                                                                                                                        property getter

                                                                                                                                                                                                        readonly getter: (data: unknown) => unknown;

                                                                                                                                                                                                          property isContext

                                                                                                                                                                                                          readonly isContext: boolean;

                                                                                                                                                                                                            property isSibling

                                                                                                                                                                                                            readonly isSibling: boolean;

                                                                                                                                                                                                              property isValue

                                                                                                                                                                                                              readonly isValue: boolean;

                                                                                                                                                                                                                property key

                                                                                                                                                                                                                readonly key: string;

                                                                                                                                                                                                                  property map

                                                                                                                                                                                                                  readonly map?: (value: unknown) => TValue;

                                                                                                                                                                                                                    property path

                                                                                                                                                                                                                    readonly path: any;

                                                                                                                                                                                                                      method cast

                                                                                                                                                                                                                      cast: (value: any, options?: { parent?: {}; context?: {} }) => TValue;
                                                                                                                                                                                                                      • Parameter value

                                                                                                                                                                                                                        Parameter options

                                                                                                                                                                                                                        Parameter

                                                                                                                                                                                                                        {Object=} options.context

                                                                                                                                                                                                                        Parameter

                                                                                                                                                                                                                        {Object=} options.parent

                                                                                                                                                                                                                      method describe

                                                                                                                                                                                                                      describe: () => SchemaRefDescription;

                                                                                                                                                                                                                        method getValue

                                                                                                                                                                                                                        getValue: (value: any, parent?: {}, context?: {}) => TValue;

                                                                                                                                                                                                                          method isRef

                                                                                                                                                                                                                          static isRef: (value: any) => value is Reference<unknown>;

                                                                                                                                                                                                                            method resolve

                                                                                                                                                                                                                            resolve: () => this;

                                                                                                                                                                                                                              method toString

                                                                                                                                                                                                                              toString: () => string;

                                                                                                                                                                                                                                class Schema

                                                                                                                                                                                                                                abstract class Schema<
                                                                                                                                                                                                                                TType = any,
                                                                                                                                                                                                                                TContext = any,
                                                                                                                                                                                                                                TDefault = any,
                                                                                                                                                                                                                                TFlags extends Flags = ''
                                                                                                                                                                                                                                > implements ISchema<TType, TContext, TFlags, TDefault> {}

                                                                                                                                                                                                                                  constructor

                                                                                                                                                                                                                                  constructor(options: SchemaOptions<TType, any>);

                                                                                                                                                                                                                                    property deps

                                                                                                                                                                                                                                    readonly deps: readonly string[];

                                                                                                                                                                                                                                      property exclusiveTests

                                                                                                                                                                                                                                      protected exclusiveTests: Record<string, boolean>;

                                                                                                                                                                                                                                        property spec

                                                                                                                                                                                                                                        spec: SchemaSpec<any>;

                                                                                                                                                                                                                                          property tests

                                                                                                                                                                                                                                          tests: Test[];

                                                                                                                                                                                                                                            property transforms

                                                                                                                                                                                                                                            transforms: TransformFunction<AnySchema<any, any, any, Flags>>[];

                                                                                                                                                                                                                                              property type

                                                                                                                                                                                                                                              readonly type: string;

                                                                                                                                                                                                                                                method asNestedTest

                                                                                                                                                                                                                                                asNestedTest: ({
                                                                                                                                                                                                                                                key,
                                                                                                                                                                                                                                                index,
                                                                                                                                                                                                                                                parent,
                                                                                                                                                                                                                                                parentPath,
                                                                                                                                                                                                                                                originalParent,
                                                                                                                                                                                                                                                options,
                                                                                                                                                                                                                                                }: NestedTestConfig) => RunTest;

                                                                                                                                                                                                                                                  method cast

                                                                                                                                                                                                                                                  cast: {
                                                                                                                                                                                                                                                  (value: any, options?: CastOptions$1<TContext>): this['__outputType'];
                                                                                                                                                                                                                                                  (
                                                                                                                                                                                                                                                  value: any,
                                                                                                                                                                                                                                                  options: CastOptionalityOptions<TContext>
                                                                                                                                                                                                                                                  ): this['__outputType'];
                                                                                                                                                                                                                                                  };
                                                                                                                                                                                                                                                  • Run the configured transform pipeline over an input value.

                                                                                                                                                                                                                                                  method clone

                                                                                                                                                                                                                                                  clone: (spec?: Partial<SchemaSpec<any>>) => this;

                                                                                                                                                                                                                                                    method concat

                                                                                                                                                                                                                                                    concat: {
                                                                                                                                                                                                                                                    (schema: this): this;
                                                                                                                                                                                                                                                    (schema: AnySchema<any, any, any, Flags>): AnySchema<any, any, any, Flags>;
                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                      method default

                                                                                                                                                                                                                                                      default: (def: DefaultThunk<any>) => any;

                                                                                                                                                                                                                                                        method defined

                                                                                                                                                                                                                                                        defined: (message?: Message<any>) => any;

                                                                                                                                                                                                                                                          method describe

                                                                                                                                                                                                                                                          describe: (options?: ResolveOptions<TContext>) => SchemaDescription;
                                                                                                                                                                                                                                                          • Return a serialized description of the schema including validations, flags, types etc.

                                                                                                                                                                                                                                                            Parameter options

                                                                                                                                                                                                                                                            Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).

                                                                                                                                                                                                                                                          method getDefault

                                                                                                                                                                                                                                                          getDefault: (options?: ResolveOptions<TContext>) => TDefault;

                                                                                                                                                                                                                                                            method isType

                                                                                                                                                                                                                                                            isType: (v: unknown) => v is TType;

                                                                                                                                                                                                                                                              method isValid

                                                                                                                                                                                                                                                              isValid: (value: any, options?: ValidateOptions<TContext>) => Promise<boolean>;

                                                                                                                                                                                                                                                                method isValidSync

                                                                                                                                                                                                                                                                isValidSync: (
                                                                                                                                                                                                                                                                value: any,
                                                                                                                                                                                                                                                                options?: ValidateOptions<TContext>
                                                                                                                                                                                                                                                                ) => value is this['__outputType'];

                                                                                                                                                                                                                                                                  method label

                                                                                                                                                                                                                                                                  label: (label: string) => this;

                                                                                                                                                                                                                                                                    method meta

                                                                                                                                                                                                                                                                    meta: { (): SchemaMetadata | undefined; (obj: Record<PropertyKey, any>): this };

                                                                                                                                                                                                                                                                      method nonNullable

                                                                                                                                                                                                                                                                      nonNullable: (message?: Message<any>) => any;

                                                                                                                                                                                                                                                                        method notOneOf

                                                                                                                                                                                                                                                                        notOneOf: <U extends TType>(
                                                                                                                                                                                                                                                                        enums: ReadonlyArray<Maybe<U> | Reference>,
                                                                                                                                                                                                                                                                        message?: Message<{ values: any }>
                                                                                                                                                                                                                                                                        ) => this;

                                                                                                                                                                                                                                                                          method notRequired

                                                                                                                                                                                                                                                                          notRequired: () => any;

                                                                                                                                                                                                                                                                            method nullability

                                                                                                                                                                                                                                                                            protected nullability: (nullable: boolean, message?: Message<any>) => this;

                                                                                                                                                                                                                                                                              method nullable

                                                                                                                                                                                                                                                                              nullable: () => any;

                                                                                                                                                                                                                                                                                method oneOf

                                                                                                                                                                                                                                                                                oneOf: {
                                                                                                                                                                                                                                                                                <U extends TType>(
                                                                                                                                                                                                                                                                                enums: ReadonlyArray<U | Reference>,
                                                                                                                                                                                                                                                                                message?: Message<{ values: any }>
                                                                                                                                                                                                                                                                                ): this;
                                                                                                                                                                                                                                                                                (
                                                                                                                                                                                                                                                                                enums: readonly (Reference<unknown> | TType)[],
                                                                                                                                                                                                                                                                                message: Message<{ values: any }>
                                                                                                                                                                                                                                                                                ): any;
                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                  method optional

                                                                                                                                                                                                                                                                                  optional: () => any;

                                                                                                                                                                                                                                                                                    method optionality

                                                                                                                                                                                                                                                                                    protected optionality: (optional: boolean, message?: Message<any>) => this;

                                                                                                                                                                                                                                                                                      method required

                                                                                                                                                                                                                                                                                      required: (message?: Message<any>) => any;

                                                                                                                                                                                                                                                                                        method resolve

                                                                                                                                                                                                                                                                                        resolve: (options: ResolveOptions<TContext>) => this;

                                                                                                                                                                                                                                                                                          method resolveOptions

                                                                                                                                                                                                                                                                                          protected resolveOptions: <T extends InternalOptions<any>>(options: T) => T;

                                                                                                                                                                                                                                                                                            method runTests

                                                                                                                                                                                                                                                                                            protected runTests: (
                                                                                                                                                                                                                                                                                            runOptions: TestRunOptions,
                                                                                                                                                                                                                                                                                            panic: (err: Error, value: unknown) => void,
                                                                                                                                                                                                                                                                                            next: (errors: ValidationError[], value: unknown) => void
                                                                                                                                                                                                                                                                                            ) => void;
                                                                                                                                                                                                                                                                                            • Executes a set of validations, either schema, produced Tests or a nested schema validate result.

                                                                                                                                                                                                                                                                                            method strict

                                                                                                                                                                                                                                                                                            strict: (isStrict?: boolean) => this;

                                                                                                                                                                                                                                                                                              method strip

                                                                                                                                                                                                                                                                                              strip: (strip?: boolean) => any;

                                                                                                                                                                                                                                                                                                method test

                                                                                                                                                                                                                                                                                                test: {
                                                                                                                                                                                                                                                                                                (options: TestConfig<this['__outputType'], TContext>): this;
                                                                                                                                                                                                                                                                                                (test: TestFunction<this['__outputType'], TContext>): this;
                                                                                                                                                                                                                                                                                                (name: string, test: TestFunction<this['__outputType'], TContext>): this;
                                                                                                                                                                                                                                                                                                (
                                                                                                                                                                                                                                                                                                name: string,
                                                                                                                                                                                                                                                                                                message: Message<any>,
                                                                                                                                                                                                                                                                                                test: TestFunction<this['__outputType'], TContext>
                                                                                                                                                                                                                                                                                                ): this;
                                                                                                                                                                                                                                                                                                };
                                                                                                                                                                                                                                                                                                • Adds a test function to the schema's queue of tests. tests can be exclusive or non-exclusive.

                                                                                                                                                                                                                                                                                                  - exclusive tests, will replace any existing tests of the same name. - non-exclusive: can be stacked

                                                                                                                                                                                                                                                                                                  If a non-exclusive test is added to a schema with an exclusive test of the same name the exclusive test is removed and further tests of the same name will be stacked.

                                                                                                                                                                                                                                                                                                  If an exclusive test is added to a schema with non-exclusive tests of the same name the previous tests are removed and further tests of the same name will replace each other.

                                                                                                                                                                                                                                                                                                method transform

                                                                                                                                                                                                                                                                                                transform: (fn: TransformFunction<this>) => this;

                                                                                                                                                                                                                                                                                                  method typeError

                                                                                                                                                                                                                                                                                                  typeError: (message: Message) => this;

                                                                                                                                                                                                                                                                                                    method validate

                                                                                                                                                                                                                                                                                                    validate: (
                                                                                                                                                                                                                                                                                                    value: any,
                                                                                                                                                                                                                                                                                                    options?: ValidateOptions<TContext>
                                                                                                                                                                                                                                                                                                    ) => Promise<this['__outputType']>;

                                                                                                                                                                                                                                                                                                      method validateSync

                                                                                                                                                                                                                                                                                                      validateSync: (
                                                                                                                                                                                                                                                                                                      value: any,
                                                                                                                                                                                                                                                                                                      options?: ValidateOptions<TContext>
                                                                                                                                                                                                                                                                                                      ) => this['__outputType'];

                                                                                                                                                                                                                                                                                                        method when

                                                                                                                                                                                                                                                                                                        when: {
                                                                                                                                                                                                                                                                                                        (builder: ConditionBuilder<this>): this;
                                                                                                                                                                                                                                                                                                        (keys: string | string[], builder: ConditionBuilder<this>): this;
                                                                                                                                                                                                                                                                                                        (options: ConditionConfig<this>): this;
                                                                                                                                                                                                                                                                                                        (keys: string | string[], options: ConditionConfig<this>): this;
                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                          method withMutation

                                                                                                                                                                                                                                                                                                          withMutation: <T>(fn: (schema: this) => T) => T;

                                                                                                                                                                                                                                                                                                            class StringSchema

                                                                                                                                                                                                                                                                                                            class StringSchema<
                                                                                                                                                                                                                                                                                                            TType extends Maybe<string> = string | undefined,
                                                                                                                                                                                                                                                                                                            TContext = AnyObject,
                                                                                                                                                                                                                                                                                                            TDefault = undefined,
                                                                                                                                                                                                                                                                                                            TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                            > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                              constructor

                                                                                                                                                                                                                                                                                                              constructor();

                                                                                                                                                                                                                                                                                                                method datetime

                                                                                                                                                                                                                                                                                                                datetime: (options?: DateTimeOptions | DateTimeOptions['message']) => this;

                                                                                                                                                                                                                                                                                                                  method email

                                                                                                                                                                                                                                                                                                                  email: (message?: Message<{ regex: RegExp }>) => this;

                                                                                                                                                                                                                                                                                                                    method ensure

                                                                                                                                                                                                                                                                                                                    ensure: () => StringSchema<NonNullable<TType>>;

                                                                                                                                                                                                                                                                                                                      method length

                                                                                                                                                                                                                                                                                                                      length: (
                                                                                                                                                                                                                                                                                                                      length: number | Reference<number>,
                                                                                                                                                                                                                                                                                                                      message?: Message<{ length: number }>
                                                                                                                                                                                                                                                                                                                      ) => this;

                                                                                                                                                                                                                                                                                                                        method lowercase

                                                                                                                                                                                                                                                                                                                        lowercase: (message?: Message<any>) => this;

                                                                                                                                                                                                                                                                                                                          method matches

                                                                                                                                                                                                                                                                                                                          matches: (
                                                                                                                                                                                                                                                                                                                          regex: RegExp,
                                                                                                                                                                                                                                                                                                                          options?: MatchOptions | MatchOptions['message']
                                                                                                                                                                                                                                                                                                                          ) => this;

                                                                                                                                                                                                                                                                                                                            method max

                                                                                                                                                                                                                                                                                                                            max: (
                                                                                                                                                                                                                                                                                                                            max: number | Reference<number>,
                                                                                                                                                                                                                                                                                                                            message?: Message<{ max: number }>
                                                                                                                                                                                                                                                                                                                            ) => this;

                                                                                                                                                                                                                                                                                                                              method min

                                                                                                                                                                                                                                                                                                                              min: (
                                                                                                                                                                                                                                                                                                                              min: number | Reference<number>,
                                                                                                                                                                                                                                                                                                                              message?: Message<{ min: number }>
                                                                                                                                                                                                                                                                                                                              ) => this;

                                                                                                                                                                                                                                                                                                                                method trim

                                                                                                                                                                                                                                                                                                                                trim: (message?: Message<any>) => this;

                                                                                                                                                                                                                                                                                                                                  method uppercase

                                                                                                                                                                                                                                                                                                                                  uppercase: (message?: Message<any>) => this;

                                                                                                                                                                                                                                                                                                                                    method url

                                                                                                                                                                                                                                                                                                                                    url: (message?: Message<{ regex: RegExp }>) => this;

                                                                                                                                                                                                                                                                                                                                      method uuid

                                                                                                                                                                                                                                                                                                                                      uuid: (message?: Message<{ regex: RegExp }>) => this;

                                                                                                                                                                                                                                                                                                                                        class TupleSchema

                                                                                                                                                                                                                                                                                                                                        class TupleSchema<
                                                                                                                                                                                                                                                                                                                                        TType extends Maybe<AnyTuple> = AnyTuple | undefined,
                                                                                                                                                                                                                                                                                                                                        TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                        TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                        TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                        > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                          constructor

                                                                                                                                                                                                                                                                                                                                          constructor(
                                                                                                                                                                                                                                                                                                                                          schemas: [ISchema<any, any, any, any>, ...ISchema<any, any, any, any>[]]
                                                                                                                                                                                                                                                                                                                                          );

                                                                                                                                                                                                                                                                                                                                            property spec

                                                                                                                                                                                                                                                                                                                                            spec: TupleSchemaSpec<TType>;

                                                                                                                                                                                                                                                                                                                                              method describe

                                                                                                                                                                                                                                                                                                                                              describe: (options?: ResolveOptions<TContext>) => SchemaInnerTypeDescription;

                                                                                                                                                                                                                                                                                                                                                class ValidationError

                                                                                                                                                                                                                                                                                                                                                class ValidationError extends Error {}

                                                                                                                                                                                                                                                                                                                                                  constructor

                                                                                                                                                                                                                                                                                                                                                  constructor(
                                                                                                                                                                                                                                                                                                                                                  errorOrErrors: string | ValidationError | readonly ValidationError[],
                                                                                                                                                                                                                                                                                                                                                  value?: any,
                                                                                                                                                                                                                                                                                                                                                  field?: string,
                                                                                                                                                                                                                                                                                                                                                  type?: string,
                                                                                                                                                                                                                                                                                                                                                  disableStack?: boolean
                                                                                                                                                                                                                                                                                                                                                  );

                                                                                                                                                                                                                                                                                                                                                    property [Symbol.toStringTag]

                                                                                                                                                                                                                                                                                                                                                    [Symbol.toStringTag]: string;

                                                                                                                                                                                                                                                                                                                                                      property errors

                                                                                                                                                                                                                                                                                                                                                      errors: string[];

                                                                                                                                                                                                                                                                                                                                                        property inner

                                                                                                                                                                                                                                                                                                                                                        inner: ValidationError[];

                                                                                                                                                                                                                                                                                                                                                          property params

                                                                                                                                                                                                                                                                                                                                                          params?: Params;

                                                                                                                                                                                                                                                                                                                                                            property path

                                                                                                                                                                                                                                                                                                                                                            path?: string;

                                                                                                                                                                                                                                                                                                                                                              property type

                                                                                                                                                                                                                                                                                                                                                              type?: string;

                                                                                                                                                                                                                                                                                                                                                                property value

                                                                                                                                                                                                                                                                                                                                                                value: any;

                                                                                                                                                                                                                                                                                                                                                                  method [Symbol.hasInstance]

                                                                                                                                                                                                                                                                                                                                                                  static [Symbol.hasInstance]: (inst: any) => boolean;

                                                                                                                                                                                                                                                                                                                                                                    method formatError

                                                                                                                                                                                                                                                                                                                                                                    static formatError: (message: unknown, params: Params) => any;

                                                                                                                                                                                                                                                                                                                                                                      method isError

                                                                                                                                                                                                                                                                                                                                                                      static isError: (err: any) => err is ValidationError;

                                                                                                                                                                                                                                                                                                                                                                        Interfaces

                                                                                                                                                                                                                                                                                                                                                                        interface ArraySchema

                                                                                                                                                                                                                                                                                                                                                                        interface ArraySchema<
                                                                                                                                                                                                                                                                                                                                                                        TIn extends any[] | null | undefined,
                                                                                                                                                                                                                                                                                                                                                                        TContext,
                                                                                                                                                                                                                                                                                                                                                                        TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                        TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                        > extends Schema<TIn, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                          method default

                                                                                                                                                                                                                                                                                                                                                                          default: <D extends TIn>(
                                                                                                                                                                                                                                                                                                                                                                          def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                          ) => ArraySchema<TIn, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                            method defined

                                                                                                                                                                                                                                                                                                                                                                            defined: (
                                                                                                                                                                                                                                                                                                                                                                            msg?: Message
                                                                                                                                                                                                                                                                                                                                                                            ) => ArraySchema<Defined<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                              method nonNullable

                                                                                                                                                                                                                                                                                                                                                                              nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                              msg?: Message
                                                                                                                                                                                                                                                                                                                                                                              ) => ArraySchema<NotNull<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                method notRequired

                                                                                                                                                                                                                                                                                                                                                                                notRequired: () => ArraySchema<Maybe<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                  method nullable

                                                                                                                                                                                                                                                                                                                                                                                  nullable: (msg?: Message) => ArraySchema<TIn | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                    method optional

                                                                                                                                                                                                                                                                                                                                                                                    optional: () => ArraySchema<TIn | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                      method required

                                                                                                                                                                                                                                                                                                                                                                                      required: (
                                                                                                                                                                                                                                                                                                                                                                                      msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                      ) => ArraySchema<NonNullable<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                        method strip

                                                                                                                                                                                                                                                                                                                                                                                        strip: {
                                                                                                                                                                                                                                                                                                                                                                                        (enabled: false): ArraySchema<
                                                                                                                                                                                                                                                                                                                                                                                        TIn,
                                                                                                                                                                                                                                                                                                                                                                                        TContext,
                                                                                                                                                                                                                                                                                                                                                                                        TDefault,
                                                                                                                                                                                                                                                                                                                                                                                        UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                        >;
                                                                                                                                                                                                                                                                                                                                                                                        (enabled?: true): ArraySchema<TIn, TContext, TDefault, SetFlag<TFlags, 's'>>;
                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                          interface CustomSchemaMetadata

                                                                                                                                                                                                                                                                                                                                                                                          interface CustomSchemaMetadata {}

                                                                                                                                                                                                                                                                                                                                                                                            interface DateSchema

                                                                                                                                                                                                                                                                                                                                                                                            interface DateSchema<
                                                                                                                                                                                                                                                                                                                                                                                            TType extends Maybe<Date>,
                                                                                                                                                                                                                                                                                                                                                                                            TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                            TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                                            TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                            > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                              method concat

                                                                                                                                                                                                                                                                                                                                                                                              concat: <TOther extends DateSchema<any, any, undefined, ''>>(
                                                                                                                                                                                                                                                                                                                                                                                              schema: TOther
                                                                                                                                                                                                                                                                                                                                                                                              ) => TOther;

                                                                                                                                                                                                                                                                                                                                                                                                method default

                                                                                                                                                                                                                                                                                                                                                                                                default: <D extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                ) => DateSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                                                  method defined

                                                                                                                                                                                                                                                                                                                                                                                                  defined: (
                                                                                                                                                                                                                                                                                                                                                                                                  msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                  ) => DateSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                    method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                    nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                    msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                    ) => DateSchema<NotNull<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                      method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                      notRequired: () => DateSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                        method nullable

                                                                                                                                                                                                                                                                                                                                                                                                        nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                        msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                        ) => DateSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                          method optional

                                                                                                                                                                                                                                                                                                                                                                                                          optional: () => DateSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                            method required

                                                                                                                                                                                                                                                                                                                                                                                                            required: (
                                                                                                                                                                                                                                                                                                                                                                                                            msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                            ) => DateSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                              method strip

                                                                                                                                                                                                                                                                                                                                                                                                              strip: {
                                                                                                                                                                                                                                                                                                                                                                                                              (enabled: false): DateSchema<
                                                                                                                                                                                                                                                                                                                                                                                                              TType,
                                                                                                                                                                                                                                                                                                                                                                                                              TContext,
                                                                                                                                                                                                                                                                                                                                                                                                              TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                              UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                              >;
                                                                                                                                                                                                                                                                                                                                                                                                              (enabled?: true): DateSchema<
                                                                                                                                                                                                                                                                                                                                                                                                              TType,
                                                                                                                                                                                                                                                                                                                                                                                                              TContext,
                                                                                                                                                                                                                                                                                                                                                                                                              TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                              SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                              >;
                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                interface ISchema

                                                                                                                                                                                                                                                                                                                                                                                                                interface ISchema<T, C = any, F extends Flags = any, D = any> {}

                                                                                                                                                                                                                                                                                                                                                                                                                  method asNestedTest

                                                                                                                                                                                                                                                                                                                                                                                                                  asNestedTest: (config: NestedTestConfig) => Test;

                                                                                                                                                                                                                                                                                                                                                                                                                    method cast

                                                                                                                                                                                                                                                                                                                                                                                                                    cast: {
                                                                                                                                                                                                                                                                                                                                                                                                                    (value: any, options?: CastOptions$1<C>): T;
                                                                                                                                                                                                                                                                                                                                                                                                                    (value: any, options: CastOptionalityOptions<C>): T;
                                                                                                                                                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                                                                                                                                                      method describe

                                                                                                                                                                                                                                                                                                                                                                                                                      describe: (options?: ResolveOptions<C>) => SchemaFieldDescription;

                                                                                                                                                                                                                                                                                                                                                                                                                        method resolve

                                                                                                                                                                                                                                                                                                                                                                                                                        resolve: (options: ResolveOptions<C>) => ISchema<T, C, F>;

                                                                                                                                                                                                                                                                                                                                                                                                                          method validate

                                                                                                                                                                                                                                                                                                                                                                                                                          validate: (value: any, options?: ValidateOptions<C>) => Promise<T>;

                                                                                                                                                                                                                                                                                                                                                                                                                            interface LocaleObject

                                                                                                                                                                                                                                                                                                                                                                                                                            interface LocaleObject {}

                                                                                                                                                                                                                                                                                                                                                                                                                              property array

                                                                                                                                                                                                                                                                                                                                                                                                                              array?: ArrayLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                property boolean

                                                                                                                                                                                                                                                                                                                                                                                                                                boolean?: BooleanLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                  property date

                                                                                                                                                                                                                                                                                                                                                                                                                                  date?: DateLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                    property mixed

                                                                                                                                                                                                                                                                                                                                                                                                                                    mixed?: MixedLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                      property number

                                                                                                                                                                                                                                                                                                                                                                                                                                      number?: NumberLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                        property object

                                                                                                                                                                                                                                                                                                                                                                                                                                        object?: ObjectLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                          property string

                                                                                                                                                                                                                                                                                                                                                                                                                                          string?: StringLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                            property tuple

                                                                                                                                                                                                                                                                                                                                                                                                                                            tuple?: TupleLocale;

                                                                                                                                                                                                                                                                                                                                                                                                                                              interface MixedOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                              interface MixedOptions<TType> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                property check

                                                                                                                                                                                                                                                                                                                                                                                                                                                check?: TypeGuard<TType>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                  property type

                                                                                                                                                                                                                                                                                                                                                                                                                                                  type?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface MixedSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface MixedSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                    TType extends Maybe<AnyPresentValue> = AnyPresentValue | undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                    TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                                                                                    TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                    TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                    > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                      method concat

                                                                                                                                                                                                                                                                                                                                                                                                                                                      concat: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                      <IT, IC, ID, IF extends Flags>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                      schema: MixedSchema<IT, IC, ID, IF>
                                                                                                                                                                                                                                                                                                                                                                                                                                                      ): MixedSchema<Concat<TType, IT>, TContext & IC, ID, TFlags | IF>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                      <IT, IC, ID, IF extends Flags>(schema: Schema<IT, IC, ID, IF>): MixedSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                      Concat<TType, IT>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                      TContext & IC,
                                                                                                                                                                                                                                                                                                                                                                                                                                                      ID,
                                                                                                                                                                                                                                                                                                                                                                                                                                                      TFlags | IF
                                                                                                                                                                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (schema: this): this;
                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                        method default

                                                                                                                                                                                                                                                                                                                                                                                                                                                        default: <D extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                        def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                        ) => MixedSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                          method defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                          defined: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                          msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => MixedSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                            method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                            nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                            msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                            ) => MixedSchema<Exclude<TType, null>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                              method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                                                                              notRequired: () => MixedSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                method nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => MixedSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  method optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  optional: () => MixedSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    method required

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    required: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ) => MixedSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      method strip

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      strip: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (enabled: false): MixedSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (enabled?: true): MixedSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface NumberSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface NumberSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TType extends Maybe<number> = number | undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method concat

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          concat: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          <UType extends number, UContext, UFlags extends Flags, UDefault>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          schema: NumberSchema<UType, UContext, UDefault, UFlags>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ): NumberSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Concat<TType, UType>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TContext & UContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          UDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TFlags | UFlags
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (schema: this): this;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            method default

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            default: <D extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ) => NumberSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              method defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              defined: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ) => NumberSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => NumberSchema<NotNull<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  notRequired: () => NumberSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    method nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ) => NumberSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      method optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      optional: () => NumberSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method required

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        required: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ) => NumberSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method strip

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          strip: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (enabled: false): NumberSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (enabled?: true): NumberSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface ObjectSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface ObjectSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TIn extends Maybe<AnyObject>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TDefault = any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            > extends Schema<MakeKeysOptional<TIn>, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              method default

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              default: <D extends AnyObject>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ) => ObjectSchema<TIn, TContext, D, ToggleDefault<TFlags, 'd'>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                method defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                defined: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => ObjectSchema<Defined<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ) => ObjectSchema<NotNull<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    notRequired: () => ObjectSchema<Maybe<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      method nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ) => ObjectSchema<TIn | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        optional: () => ObjectSchema<TIn | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method required

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          required: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => ObjectSchema<NonNullable<TIn>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            method strip

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            strip: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (enabled: false): ObjectSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TIn,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (enabled?: true): ObjectSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TIn,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface Schema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface Schema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TType = any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TContext = any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TDefault = any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              > {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property equals

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                equals: Schema['oneOf'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property is

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  is: Schema['oneOf'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property nope

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    nope: Schema['notOneOf'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property not

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      not: Schema['notOneOf'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method validateAt

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        validateAt: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        path: string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        value: any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        options?: ValidateOptions<TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ) => Promise<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method validateSyncAt

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          validateSyncAt: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          path: string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          value: any,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          options?: ValidateOptions<TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => any;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface SchemaDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface SchemaDescription {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property default

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              default?: unknown;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property label

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                label?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property meta

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  meta?: SchemaMetadata;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property notOneOf

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    notOneOf: unknown[];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      nullable: boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property oneOf

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        oneOf: unknown[];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          optional: boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property tests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            tests: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            name?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            params: ExtraParams | undefined;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface SchemaInnerTypeDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface SchemaInnerTypeDescription extends SchemaDescription {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property innerType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  innerType?: SchemaFieldDescription | SchemaFieldDescription[];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface SchemaLazyDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface SchemaLazyDescription {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property label

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      label?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property meta

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        meta?: SchemaMetadata;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface SchemaObjectDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface SchemaObjectDescription extends SchemaDescription {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property fields

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              fields: Record<string, SchemaFieldDescription>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface SchemaRefDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface SchemaRefDescription {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property key

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  key: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type: 'ref';

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      interface StringSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      interface StringSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TType extends Maybe<string> = string | undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method concat

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        concat: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <UType extends string, UContext, UDefault, UFlags extends Flags>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        schema: StringSchema<UType, UContext, UDefault, UFlags>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ): StringSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Concat<TType, UType>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TContext & UContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        UDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TFlags | UFlags
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (schema: this): this;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method default

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          default: <D extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => StringSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            method defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            defined: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ) => StringSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ) => StringSchema<NotNull<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                notRequired: () => StringSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  method nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ) => StringSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    method oneOf

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    oneOf: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <U extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    arrayOfValues: ReadonlyArray<U | Reference<U>>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    message?: MixedLocale['oneOf']
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ): StringSchema<U | Optionals<TType>, TContext, TDefault, TFlags>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    enums: readonly (Reference<unknown> | TType)[],
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    message?: Message<{ values: any }>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ): this;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      method optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      optional: () => StringSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method required

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        required: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ) => StringSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method strip

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          strip: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (enabled: false): StringSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (enabled?: true): StringSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface TupleSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            interface TupleSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TType extends Maybe<AnyTuple> = AnyTuple | undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TContext = AnyObject,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TDefault = undefined,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TFlags extends Flags = ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            > extends Schema<TType, TContext, TDefault, TFlags> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              method concat

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              concat: <TOther extends TupleSchema<any, any, undefined, ''>>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              schema: TOther
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ) => TOther;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                method default

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                default: <D extends TType>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                def: DefaultThunk<D, TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => TupleSchema<TType, TContext, D, ToggleDefault<TFlags, D>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  method defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  defined: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ) => TupleSchema<Defined<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    method nonNullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    nonNullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ) => TupleSchema<NotNull<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      method notRequired

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      notRequired: () => TupleSchema<Maybe<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        method nullable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        nullable: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ) => TupleSchema<TType | null, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          method optional

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          optional: () => TupleSchema<TType | undefined, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            method required

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            required: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            msg?: Message
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ) => TupleSchema<NonNullable<TType>, TContext, TDefault, TFlags>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              method strip

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              strip: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (enabled: false): TupleSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              UnsetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (enabled?: true): TupleSchema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TContext,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              TDefault,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              SetFlag<TFlags, 's'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface ValidateOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                interface ValidateOptions<TContext = {}> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property abortEarly

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  abortEarly?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Return from validation methods on the first error rather than after all validations run. Default - true

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property context

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  context?: TContext;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Any context needed for validating schema conditions (see: when())

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property disableStackTrace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  disableStackTrace?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • When true ValidationError instance won't include stack trace information. Default - false

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property recursive

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  recursive?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • When false validations will not descend into nested schema (relevant for objects or arrays). Default - true

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property strict

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  strict?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Only validate the input, skipping type casting and transformation. Default - false

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property stripUnknown

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  stripUnknown?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Remove unspecified keys from objects. Default - false

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Type Aliases

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type AnyObject

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type AnyObject = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  [k: string]: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type AnyObjectSchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type AnyObjectSchema = ObjectSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type AnySchema

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type AnySchema<TType = any, C = any, D = any, F extends Flags = Flags> = Schema<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TType,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      C,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      D,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      F
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      >;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type Asserts

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type InferType<T extends ISchema<any, any>> = T['__outputType'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CastOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CastOptions = Omit<CastOptions$1, 'path' | 'resolved'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CreateErrorOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CreateErrorOptions = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            path?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            message?: Message<any>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            params?: ExtraParams;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            disableStackTrace?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DefaultFromShape

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DefaultFromShape<Shape extends ObjectShape> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [K in keyof Shape]: Shape[K] extends ISchema<any>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ? Shape[K]['__default']
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              : undefined;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DefaultThunk

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DefaultThunk<T, C = any> = T | ((options?: ResolveOptions<C>) => T);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Defined

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Defined<T> = T extends undefined ? never : T;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Flags

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Flags = 's' | 'd' | '';

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type InferType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type InferType<T extends ISchema<any, any>> = T['__outputType'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MakePartial

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MakePartial<T extends object> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [k in OptionalKeys<T> as T[k] extends never ? never : k]?: T[k];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [k in RequiredKeys<T> as T[k] extends never ? never : k]: T[k];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type Maybe

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type Maybe<T> = T | null | undefined;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type Message

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type Message<Extra extends Record<string, unknown> = any> =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | ((params: Extra & MessageParams) => unknown)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Record<PropertyKey, unknown>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type MixedTypeGuard

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TypeGuard<TType> = (value: any) => value is NonNullable<TType>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NotNull

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NotNull<T> = T extends null ? never : T;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ObjectShape

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ObjectShape = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  [k: string]: ISchema<any> | Reference;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Optionals

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Optionals<T> = Extract<T, null | undefined>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SchemaFieldDescription

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SchemaFieldDescription =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SchemaDescription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SchemaRefDescription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SchemaObjectDescription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SchemaInnerTypeDescription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SchemaLazyDescription;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SchemaMetadata

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SchemaMetadata = keyof CustomSchemaMetadata extends never
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ? Record<PropertyKey, any>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        : CustomSchemaMetadata;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetFlag

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetFlag<Old extends Flags, F extends Flags> = Exclude<Old, ''> | F;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TestConfig<TValue = unknown, TContext = {}> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            name?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            message?: Message<any>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            test: TestFunction<TValue, TContext>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            params?: ExtraParams;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            exclusive?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            skipAbsent?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TestContext

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TestContext<TContext = {}> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              path: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              options: ValidateOptions<TContext>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              originalValue: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              parent: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              from?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              schema: ISchema<any, TContext>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              value: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              schema: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              resolve: <T>(value: T | Reference<T>) => T;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              createError: (params?: CreateErrorOptions) => ValidationError;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TestFunction

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TestFunction<T = unknown, TContext = {}> = (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                this: TestContext<TContext>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                value: T,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                context: TestContext<TContext>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => void | boolean | ValidationError | Promise<boolean | ValidationError>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TestOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TestOptions<TSchema extends AnySchema = AnySchema> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  value: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  path?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  options: InternalOptions;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  originalValue: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  schema: TSchema;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToggleDefault

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToggleDefault<F extends Flags, D> = Preserve<D, undefined> extends never
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ? SetFlag<F, 'd'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    : UnsetFlag<F, 'd'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TypeFromShape

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TypeFromShape<S extends ObjectShape, _C> = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      [K in keyof S]: S[K] extends ISchema<any>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ? ResolveStrip<S[K]>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      : S[K] extends Reference<infer T>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ? T
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      : unknown;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type UnsetFlag

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type UnsetFlag<Old extends Flags, F extends Flags> = Exclude<Old, F> extends never
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ? ''
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        : Exclude<Old, F>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Namespaces

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          namespace array

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          namespace array {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            var prototype: ArraySchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              namespace bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              namespace bool {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                var prototype: BooleanSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  namespace boolean

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  namespace boolean {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    var prototype: BooleanSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      namespace date

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      namespace date {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        variable INVALID_DATE

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        var INVALID_DATE: Date;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          var prototype: DateSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace mixed

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace mixed {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              var prototype: MixedSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                namespace number

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                namespace number {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  var prototype: NumberSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    namespace object

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    namespace object {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      var prototype: ObjectSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        namespace string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        namespace string {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          var prototype: StringSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace tuple

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace tuple {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              variable prototype

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              var prototype: TupleSchema<any, any, any, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Package Files (1)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Dependencies (4)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                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/yup.

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