UNPKG

zod

Version:

TypeScript-first schema declaration and validation library with static type inference

1,593 lines (1,419 loc) • 49.5 kB
import * as core from "../core/index.js"; import { util } from "../core/index.js"; import * as parse from "./parse.js"; type SomeType = core.SomeType; export interface ZodMiniType< out Output = unknown, out Input = unknown, out Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>, > extends core.$ZodType<Output, Input, Internals> { check(...checks: (core.CheckFn<core.output<this>> | core.$ZodCheck<core.output<this>>)[]): this; clone(def?: Internals["def"], params?: { parent: boolean }): this; register<R extends core.$ZodRegistry>( registry: R, ...meta: this extends R["_schema"] ? undefined extends R["_meta"] ? [core.$replace<R["_meta"], this>?] : [core.$replace<R["_meta"], this>] : ["Incompatible schema"] ): this; brand<T extends PropertyKey = PropertyKey>( value?: T ): PropertyKey extends T ? this : this & Record<"_zod", Record<"output", core.output<this> & core.$brand<T>>>; def: Internals["def"]; parse(data: unknown, params?: core.ParseContext<core.$ZodIssue>): core.output<this>; safeParse(data: unknown, params?: core.ParseContext<core.$ZodIssue>): util.SafeParseResult<core.output<this>>; parseAsync(data: unknown, params?: core.ParseContext<core.$ZodIssue>): Promise<core.output<this>>; safeParseAsync( data: unknown, params?: core.ParseContext<core.$ZodIssue> ): Promise<util.SafeParseResult<core.output<this>>>; } interface _ZodMiniType<out Internals extends core.$ZodTypeInternals = core.$ZodTypeInternals> extends ZodMiniType<any, any, Internals> {} export const ZodMiniType: core.$constructor<ZodMiniType> = /*@__PURE__*/ core.$constructor( "ZodMiniType", (inst, def) => { if (!inst._zod) throw new Error("Uninitialized schema in ZodMiniType."); core.$ZodType.init(inst, def); inst.def = def; inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse }); inst.safeParse = (data, params) => parse.safeParse(inst, data, params); inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync }); inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params); inst.check = (...checks) => { return inst.clone( { ...def, checks: [ ...(def.checks ?? []), ...checks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch ), ], } // { parent: true } ); }; inst.clone = (_def, params) => core.clone(inst, _def, params); inst.brand = () => inst as any; inst.register = ((reg: any, meta: any) => { reg.add(inst, meta); return inst; }) as any; } ); export interface _ZodMiniString<T extends core.$ZodStringInternals<unknown> = core.$ZodStringInternals<unknown>> extends _ZodMiniType<T>, core.$ZodString<T["input"]> { _zod: T; } // ZodMiniString export interface ZodMiniString<Input = unknown> extends _ZodMiniString<core.$ZodStringInternals<Input>>, core.$ZodString<Input> {} export const ZodMiniString: core.$constructor<ZodMiniString> = /*@__PURE__*/ core.$constructor( "ZodMiniString", (inst, def) => { core.$ZodString.init(inst, def); ZodMiniType.init(inst, def); } ); export function string(params?: string | core.$ZodStringParams): ZodMiniString<string> { return core._string(ZodMiniString, params) as any; } // ZodMiniStringFormat export interface ZodMiniStringFormat<Format extends string = string> extends _ZodMiniString<core.$ZodStringFormatInternals<Format>>, core.$ZodStringFormat<Format> { // _zod: core.$ZodStringFormatInternals<Format>; } export const ZodMiniStringFormat: core.$constructor<ZodMiniStringFormat> = /*@__PURE__*/ core.$constructor( "ZodMiniStringFormat", (inst, def) => { core.$ZodStringFormat.init(inst, def); ZodMiniString.init(inst, def); } ); // ZodMiniEmail export interface ZodMiniEmail extends _ZodMiniString<core.$ZodEmailInternals> {} export const ZodMiniEmail: core.$constructor<ZodMiniEmail> = /*@__PURE__*/ core.$constructor( "ZodMiniEmail", (inst, def) => { core.$ZodEmail.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function email(params?: string | core.$ZodEmailParams): ZodMiniEmail { return core._email(ZodMiniEmail, params); } // ZodMiniGUID export interface ZodMiniGUID extends _ZodMiniString<core.$ZodGUIDInternals> { // _zod: core.$ZodGUIDInternals; } export const ZodMiniGUID: core.$constructor<ZodMiniGUID> = /*@__PURE__*/ core.$constructor( "ZodMiniGUID", (inst, def) => { core.$ZodGUID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function guid(params?: string | core.$ZodGUIDParams): ZodMiniGUID { return core._guid(ZodMiniGUID, params); } // ZodMiniUUID export interface ZodMiniUUID extends _ZodMiniString<core.$ZodUUIDInternals> { // _zod: core.$ZodUUIDInternals; } export const ZodMiniUUID: core.$constructor<ZodMiniUUID> = /*@__PURE__*/ core.$constructor( "ZodMiniUUID", (inst, def) => { core.$ZodUUID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function uuid(params?: string | core.$ZodUUIDParams): ZodMiniUUID { return core._uuid(ZodMiniUUID, params); } export function uuidv4(params?: string | core.$ZodUUIDv4Params): ZodMiniUUID { return core._uuidv4(ZodMiniUUID, params); } // ZodMiniUUIDv6 export function uuidv6(params?: string | core.$ZodUUIDv6Params): ZodMiniUUID { return core._uuidv6(ZodMiniUUID, params); } // ZodMiniUUIDv7 export function uuidv7(params?: string | core.$ZodUUIDv7Params): ZodMiniUUID { return core._uuidv7(ZodMiniUUID, params); } // ZodMiniURL export interface ZodMiniURL extends _ZodMiniString<core.$ZodURLInternals> { // _zod: core.$ZodURLInternals; } export const ZodMiniURL: core.$constructor<ZodMiniURL> = /*@__PURE__*/ core.$constructor("ZodMiniURL", (inst, def) => { core.$ZodURL.init(inst, def); ZodMiniStringFormat.init(inst, def); }); export function url(params?: string | core.$ZodURLParams): ZodMiniURL { return core._url(ZodMiniURL, params); } // ZodMiniEmoji export interface ZodMiniEmoji extends _ZodMiniString<core.$ZodEmojiInternals> { // _zod: core.$ZodEmojiInternals; } export const ZodMiniEmoji: core.$constructor<ZodMiniEmoji> = /*@__PURE__*/ core.$constructor( "ZodMiniEmoji", (inst, def) => { core.$ZodEmoji.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function emoji(params?: string | core.$ZodEmojiParams): ZodMiniEmoji { return core._emoji(ZodMiniEmoji, params); } // ZodMiniNanoID export interface ZodMiniNanoID extends _ZodMiniString<core.$ZodNanoIDInternals> { // _zod: core.$ZodNanoIDInternals; } export const ZodMiniNanoID: core.$constructor<ZodMiniNanoID> = /*@__PURE__*/ core.$constructor( "ZodMiniNanoID", (inst, def) => { core.$ZodNanoID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function nanoid(params?: string | core.$ZodNanoIDParams): ZodMiniNanoID { return core._nanoid(ZodMiniNanoID, params); } // ZodMiniCUID export interface ZodMiniCUID extends _ZodMiniString<core.$ZodCUIDInternals> { // _zod: core.$ZodCUIDInternals; } export const ZodMiniCUID: core.$constructor<ZodMiniCUID> = /*@__PURE__*/ core.$constructor( "ZodMiniCUID", (inst, def) => { core.$ZodCUID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function cuid(params?: string | core.$ZodCUIDParams): ZodMiniCUID { return core._cuid(ZodMiniCUID, params); } // ZodMiniCUID2 export interface ZodMiniCUID2 extends _ZodMiniString<core.$ZodCUID2Internals> { // _zod: core.$ZodCUID2Internals; } export const ZodMiniCUID2: core.$constructor<ZodMiniCUID2> = /*@__PURE__*/ core.$constructor( "ZodMiniCUID2", (inst, def) => { core.$ZodCUID2.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function cuid2(params?: string | core.$ZodCUID2Params): ZodMiniCUID2 { return core._cuid2(ZodMiniCUID2, params); } // ZodMiniULID export interface ZodMiniULID extends _ZodMiniString<core.$ZodULIDInternals> { // _zod: core.$ZodULIDInternals; } export const ZodMiniULID: core.$constructor<ZodMiniULID> = /*@__PURE__*/ core.$constructor( "ZodMiniULID", (inst, def) => { core.$ZodULID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function ulid(params?: string | core.$ZodULIDParams): ZodMiniULID { return core._ulid(ZodMiniULID, params); } // ZodMiniXID export interface ZodMiniXID extends _ZodMiniString<core.$ZodXIDInternals> { // _zod: core.$ZodXIDInternals; } export const ZodMiniXID: core.$constructor<ZodMiniXID> = /*@__PURE__*/ core.$constructor("ZodMiniXID", (inst, def) => { core.$ZodXID.init(inst, def); ZodMiniStringFormat.init(inst, def); }); export function xid(params?: string | core.$ZodXIDParams): ZodMiniXID { return core._xid(ZodMiniXID, params); } // ZodMiniKSUID export interface ZodMiniKSUID extends _ZodMiniString<core.$ZodKSUIDInternals> { // _zod: core.$ZodKSUIDInternals; } export const ZodMiniKSUID: core.$constructor<ZodMiniKSUID> = /*@__PURE__*/ core.$constructor( "ZodMiniKSUID", (inst, def) => { core.$ZodKSUID.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function ksuid(params?: string | core.$ZodKSUIDParams): ZodMiniKSUID { return core._ksuid(ZodMiniKSUID, params); } // ZodMiniIPv4 export interface ZodMiniIPv4 extends _ZodMiniString<core.$ZodIPv4Internals> { // _zod: core.$ZodIPv4Internals; } export const ZodMiniIPv4: core.$constructor<ZodMiniIPv4> = /*@__PURE__*/ core.$constructor( "ZodMiniIPv4", (inst, def) => { core.$ZodIPv4.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function ipv4(params?: string | core.$ZodIPv4Params): ZodMiniIPv4 { return core._ipv4(ZodMiniIPv4, params); } // ZodMiniIPv6 export interface ZodMiniIPv6 extends _ZodMiniString<core.$ZodIPv6Internals> { // _zod: core.$ZodIPv6Internals; } export const ZodMiniIPv6: core.$constructor<ZodMiniIPv6> = /*@__PURE__*/ core.$constructor( "ZodMiniIPv6", (inst, def) => { core.$ZodIPv6.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function ipv6(params?: string | core.$ZodIPv6Params): ZodMiniIPv6 { return core._ipv6(ZodMiniIPv6, params); } // ZodMiniCIDRv4 export interface ZodMiniCIDRv4 extends _ZodMiniString<core.$ZodCIDRv4Internals> { // _zod: core.$ZodCIDRv4Internals; } export const ZodMiniCIDRv4: core.$constructor<ZodMiniCIDRv4> = /*@__PURE__*/ core.$constructor( "ZodMiniCIDRv4", (inst, def) => { core.$ZodCIDRv4.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function cidrv4(params?: string | core.$ZodCIDRv4Params): ZodMiniCIDRv4 { return core._cidrv4(ZodMiniCIDRv4, params); } // ZodMiniCIDRv6 export interface ZodMiniCIDRv6 extends _ZodMiniString<core.$ZodCIDRv6Internals> { // _zod: core.$ZodCIDRv6Internals; } export const ZodMiniCIDRv6: core.$constructor<ZodMiniCIDRv6> = /*@__PURE__*/ core.$constructor( "ZodMiniCIDRv6", (inst, def) => { core.$ZodCIDRv6.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function cidrv6(params?: string | core.$ZodCIDRv6Params): ZodMiniCIDRv6 { return core._cidrv6(ZodMiniCIDRv6, params); } // ZodMiniBase64 export interface ZodMiniBase64 extends _ZodMiniString<core.$ZodBase64Internals> { // _zod: core.$ZodBase64Internals; } export const ZodMiniBase64: core.$constructor<ZodMiniBase64> = /*@__PURE__*/ core.$constructor( "ZodMiniBase64", (inst, def) => { core.$ZodBase64.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function base64(params?: string | core.$ZodBase64Params): ZodMiniBase64 { return core._base64(ZodMiniBase64, params); } // ZodMiniBase64URL export interface ZodMiniBase64URL extends _ZodMiniString<core.$ZodBase64URLInternals> { // _zod: core.$ZodBase64URLInternals; } export const ZodMiniBase64URL: core.$constructor<ZodMiniBase64URL> = /*@__PURE__*/ core.$constructor( "ZodMiniBase64URL", (inst, def) => { core.$ZodBase64URL.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function base64url(params?: string | core.$ZodBase64URLParams): ZodMiniBase64URL { return core._base64url(ZodMiniBase64URL, params); } // ZodMiniE164 export interface ZodMiniE164 extends _ZodMiniString<core.$ZodE164Internals> { // _zod: core.$ZodE164Internals; } export const ZodMiniE164: core.$constructor<ZodMiniE164> = /*@__PURE__*/ core.$constructor( "ZodMiniE164", (inst, def) => { core.$ZodE164.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function e164(params?: string | core.$ZodE164Params): ZodMiniE164 { return core._e164(ZodMiniE164, params); } // ZodMiniJWT export interface ZodMiniJWT extends _ZodMiniString<core.$ZodJWTInternals> { // _zod: core.$ZodJWTInternals; } export const ZodMiniJWT: core.$constructor<ZodMiniJWT> = /*@__PURE__*/ core.$constructor("ZodMiniJWT", (inst, def) => { core.$ZodJWT.init(inst, def); ZodMiniStringFormat.init(inst, def); }); export function jwt(params?: string | core.$ZodJWTParams): ZodMiniJWT { return core._jwt(ZodMiniJWT, params); } // ZodMiniCustomStringFormat export interface ZodMiniCustomStringFormat<Format extends string = string> extends ZodMiniStringFormat<Format>, core.$ZodCustomStringFormat<Format> { _zod: core.$ZodCustomStringFormatInternals<Format>; } export const ZodMiniCustomStringFormat: core.$constructor<ZodMiniCustomStringFormat> = /*@__PURE__*/ core.$constructor( "ZodMiniCustomStringFormat", (inst, def) => { core.$ZodCustomStringFormat.init(inst, def); ZodMiniStringFormat.init(inst, def); } ); export function stringFormat<Format extends string>( format: Format, fnOrRegex: ((arg: string) => util.MaybeAsync<unknown>) | RegExp, _params: string | core.$ZodStringFormatParams = {} ): ZodMiniCustomStringFormat<Format> { return core._stringFormat(ZodMiniCustomStringFormat, format, fnOrRegex, _params) as any; } export function hostname(_params?: string | core.$ZodStringFormatParams): ZodMiniCustomStringFormat<"hostname"> { return core._stringFormat(ZodMiniCustomStringFormat, "hostname", core.regexes.hostname, _params) as any; } // ZodMiniNumber interface _ZodMiniNumber<T extends core.$ZodNumberInternals<unknown> = core.$ZodNumberInternals<unknown>> extends _ZodMiniType<T>, core.$ZodNumber<T["input"]> { _zod: T; } export interface ZodMiniNumber<Input = unknown> extends _ZodMiniNumber<core.$ZodNumberInternals<Input>>, core.$ZodNumber<Input> {} export const ZodMiniNumber: core.$constructor<ZodMiniNumber> = /*@__PURE__*/ core.$constructor( "ZodMiniNumber", (inst, def) => { core.$ZodNumber.init(inst, def); ZodMiniType.init(inst, def); } ); export function number(params?: string | core.$ZodNumberParams): ZodMiniNumber<number> { return core._number(ZodMiniNumber, params) as any; } // ZodMiniNumberFormat export interface ZodMiniNumberFormat extends _ZodMiniNumber<core.$ZodNumberFormatInternals>, core.$ZodNumberFormat {} export const ZodMiniNumberFormat: core.$constructor<ZodMiniNumberFormat> = /*@__PURE__*/ core.$constructor( "ZodMiniNumberFormat", (inst, def) => { core.$ZodNumberFormat.init(inst, def); ZodMiniNumber.init(inst, def); } ); // int export function int(params?: string | core.$ZodCheckNumberFormatParams): ZodMiniNumberFormat { return core._int(ZodMiniNumberFormat, params); } // float32 export function float32(params?: string | core.$ZodCheckNumberFormatParams): ZodMiniNumberFormat { return core._float32(ZodMiniNumberFormat, params); } // float64 export function float64(params?: string | core.$ZodCheckNumberFormatParams): ZodMiniNumberFormat { return core._float64(ZodMiniNumberFormat, params); } // int32 export function int32(params?: string | core.$ZodCheckNumberFormatParams): ZodMiniNumberFormat { return core._int32(ZodMiniNumberFormat, params); } // uint32 export function uint32(params?: string | core.$ZodCheckNumberFormatParams): ZodMiniNumberFormat { return core._uint32(ZodMiniNumberFormat, params); } // ZodMiniBoolean export interface ZodMiniBoolean<T = unknown> extends _ZodMiniType<core.$ZodBooleanInternals<T>> { // _zod: core.$ZodBooleanInternals<T>; } export const ZodMiniBoolean: core.$constructor<ZodMiniBoolean> = /*@__PURE__*/ core.$constructor( "ZodMiniBoolean", (inst, def) => { core.$ZodBoolean.init(inst, def); ZodMiniType.init(inst, def); } ); export function boolean(params?: string | core.$ZodBooleanParams): ZodMiniBoolean<boolean> { return core._boolean(ZodMiniBoolean, params) as any; } // ZodMiniBigInt export interface ZodMiniBigInt<T = unknown> extends _ZodMiniType<core.$ZodBigIntInternals<T>>, core.$ZodBigInt<T> { // _zod: core.$ZodBigIntInternals<T>; } export const ZodMiniBigInt: core.$constructor<ZodMiniBigInt> = /*@__PURE__*/ core.$constructor( "ZodMiniBigInt", (inst, def) => { core.$ZodBigInt.init(inst, def); ZodMiniType.init(inst, def); } ); export function bigint(params?: string | core.$ZodBigIntParams): ZodMiniBigInt<bigint> { return core._bigint(ZodMiniBigInt, params) as any; } // bigint formats // ZodMiniBigIntFormat export interface ZodMiniBigIntFormat extends _ZodMiniType<core.$ZodBigIntFormatInternals> { // _zod: core.$ZodBigIntFormatInternals; } export const ZodMiniBigIntFormat: core.$constructor<ZodMiniBigIntFormat> = /*@__PURE__*/ core.$constructor( "ZodMiniBigIntFormat", (inst, def) => { core.$ZodBigIntFormat.init(inst, def); ZodMiniBigInt.init(inst, def); } ); // int64 export function int64(params?: string | core.$ZodBigIntFormatParams): ZodMiniBigIntFormat { return core._int64(ZodMiniBigIntFormat, params); } // uint64 export function uint64(params?: string | core.$ZodBigIntFormatParams): ZodMiniBigIntFormat { return core._uint64(ZodMiniBigIntFormat, params); } // ZodMiniSymbol export interface ZodMiniSymbol extends _ZodMiniType<core.$ZodSymbolInternals> { // _zod: core.$ZodSymbolInternals; } export const ZodMiniSymbol: core.$constructor<ZodMiniSymbol> = /*@__PURE__*/ core.$constructor( "ZodMiniSymbol", (inst, def) => { core.$ZodSymbol.init(inst, def); ZodMiniType.init(inst, def); } ); export function symbol(params?: string | core.$ZodSymbolParams): ZodMiniSymbol { return core._symbol(ZodMiniSymbol, params) as any; } // ZodMiniUndefined export interface ZodMiniUndefined extends _ZodMiniType<core.$ZodUndefinedInternals> { // _zod: core.$ZodUndefinedInternals; } export const ZodMiniUndefined: core.$constructor<ZodMiniUndefined> = /*@__PURE__*/ core.$constructor( "ZodMiniUndefined", (inst, def) => { core.$ZodUndefined.init(inst, def); ZodMiniType.init(inst, def); } ); function _undefined(params?: string | core.$ZodUndefinedParams): ZodMiniUndefined { return core._undefined(ZodMiniUndefined, params) as any; } export { _undefined as undefined }; // ZodMiniNull export interface ZodMiniNull extends _ZodMiniType<core.$ZodNullInternals> { // _zod: core.$ZodNullInternals; } export const ZodMiniNull: core.$constructor<ZodMiniNull> = /*@__PURE__*/ core.$constructor( "ZodMiniNull", (inst, def) => { core.$ZodNull.init(inst, def); ZodMiniType.init(inst, def); } ); function _null(params?: string | core.$ZodNullParams): ZodMiniNull { return core._null(ZodMiniNull, params) as any; } export { _null as null }; // ZodMiniAny export interface ZodMiniAny extends _ZodMiniType<core.$ZodAnyInternals> { // _zod: core.$ZodAnyInternals; } export const ZodMiniAny: core.$constructor<ZodMiniAny> = /*@__PURE__*/ core.$constructor("ZodMiniAny", (inst, def) => { core.$ZodAny.init(inst, def); ZodMiniType.init(inst, def); }); export function any(): ZodMiniAny { return core._any(ZodMiniAny) as any; } // ZodMiniUnknown export interface ZodMiniUnknown extends _ZodMiniType<core.$ZodUnknownInternals> { // _zod: core.$ZodUnknownInternals; } export const ZodMiniUnknown: core.$constructor<ZodMiniUnknown> = /*@__PURE__*/ core.$constructor( "ZodMiniUnknown", (inst, def) => { core.$ZodUnknown.init(inst, def); ZodMiniType.init(inst, def); } ); export function unknown(): ZodMiniUnknown { return core._unknown(ZodMiniUnknown) as any; } // ZodMiniNever export interface ZodMiniNever extends _ZodMiniType<core.$ZodNeverInternals> { // _zod: core.$ZodNeverInternals; } export const ZodMiniNever: core.$constructor<ZodMiniNever> = /*@__PURE__*/ core.$constructor( "ZodMiniNever", (inst, def) => { core.$ZodNever.init(inst, def); ZodMiniType.init(inst, def); } ); export function never(params?: string | core.$ZodNeverParams): ZodMiniNever { return core._never(ZodMiniNever, params) as any; } // ZodMiniVoid export interface ZodMiniVoid extends _ZodMiniType<core.$ZodVoidInternals> { // _zod: core.$ZodVoidInternals; } export const ZodMiniVoid: core.$constructor<ZodMiniVoid> = /*@__PURE__*/ core.$constructor( "ZodMiniVoid", (inst, def) => { core.$ZodVoid.init(inst, def); ZodMiniType.init(inst, def); } ); function _void(params?: string | core.$ZodVoidParams): ZodMiniVoid { return core._void(ZodMiniVoid, params) as any; } export { _void as void }; // ZodMiniDate export interface ZodMiniDate<T = unknown> extends _ZodMiniType<core.$ZodDateInternals<T>> { // _zod: core.$ZodDateInternals<T>; } export const ZodMiniDate: core.$constructor<ZodMiniDate> = /*@__PURE__*/ core.$constructor( "ZodMiniDate", (inst, def) => { core.$ZodDate.init(inst, def); ZodMiniType.init(inst, def); } ); export function date(params?: string | core.$ZodDateParams): ZodMiniDate<Date> { return core._date(ZodMiniDate, params) as any; } // ZodMiniArray export interface ZodMiniArray<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodArrayInternals<T>>, core.$ZodArray<T> { // _zod: core.$ZodArrayInternals<T>; } export const ZodMiniArray: core.$constructor<ZodMiniArray> = /*@__PURE__*/ core.$constructor( "ZodMiniArray", (inst, def) => { core.$ZodArray.init(inst, def); ZodMiniType.init(inst, def); } ); export function array<T extends SomeType>(element: T, params?: string | core.$ZodArrayParams): ZodMiniArray<T>; export function array<T extends SomeType>(element: SomeType, params?: any): ZodMiniArray<T> { return new ZodMiniArray({ type: "array", element: element as core.$ZodType, ...util.normalizeParams(params), }) as any; } // .keyof export function keyof<T extends ZodMiniObject>(schema: T): ZodMiniLiteral<Exclude<keyof T["shape"], symbol>> { const shape = schema._zod.def.shape; return literal(Object.keys(shape)) as any; } // ZodMiniObject export interface ZodMiniObject< /** @ts-ignore Cast variance */ out Shape extends core.$ZodShape = core.$ZodShape, out Config extends core.$ZodObjectConfig = core.$strip, > extends ZodMiniType<any, any, core.$ZodObjectInternals<Shape, Config>>, core.$ZodObject<Shape, Config> { shape: Shape; } export const ZodMiniObject: core.$constructor<ZodMiniObject> = /*@__PURE__*/ core.$constructor( "ZodMiniObject", (inst, def) => { core.$ZodObject.init(inst, def); ZodMiniType.init(inst, def); util.defineLazy(inst, "shape", () => def.shape); } ); export function object<T extends core.$ZodLooseShape = Record<never, SomeType>>( shape?: T, params?: string | core.$ZodObjectParams ): ZodMiniObject<T, core.$strip> { const def: core.$ZodObjectDef = { type: "object", get shape() { util.assignProp(this, "shape", { ...shape }); return this.shape; }, ...util.normalizeParams(params), }; return new ZodMiniObject(def) as any; } // strictObject export function strictObject<T extends core.$ZodLooseShape>( shape: T, params?: string | core.$ZodObjectParams ): ZodMiniObject<T, core.$strict> { return new ZodMiniObject({ type: "object", // shape: shape as core.$ZodLooseShape, get shape() { util.assignProp(this, "shape", { ...shape }); return this.shape; }, catchall: never(), ...util.normalizeParams(params), }) as any; } // looseObject export function looseObject<T extends core.$ZodLooseShape>( shape: T, params?: string | core.$ZodObjectParams ): ZodMiniObject<T, core.$loose> { return new ZodMiniObject({ type: "object", // shape: shape as core.$ZodLooseShape, get shape() { util.assignProp(this, "shape", { ...shape }); return this.shape; }, // get optional() { // return util.optionalKeys(shape); // }, catchall: unknown(), ...util.normalizeParams(params), }) as any; } // object methods export function extend<T extends ZodMiniObject, U extends core.$ZodLooseShape>( schema: T, shape: U ): ZodMiniObject<util.Extend<T["shape"], U>, T["_zod"]["config"]> { return util.extend(schema, shape); } /** @deprecated Identical to `z.extend(A, B)` */ export function merge<T extends ZodMiniObject, U extends ZodMiniObject>( a: T, b: U ): ZodMiniObject<util.Extend<T["shape"], U["shape"]>, T["_zod"]["config"]>; export function merge(schema: ZodMiniObject, shape: any): ZodMiniObject { return util.extend(schema, shape); } export function pick<T extends ZodMiniObject, M extends util.Mask<keyof T["shape"]>>( schema: T, mask: M ): ZodMiniObject<util.Flatten<Pick<T["shape"], keyof T["shape"] & keyof M>>, T["_zod"]["config"]> { return util.pick(schema, mask as any); } // .omit export function omit<T extends ZodMiniObject, const M extends util.Mask<keyof T["shape"]>>( schema: T, mask: M ): ZodMiniObject<util.Flatten<Omit<T["shape"], keyof M>>, T["_zod"]["config"]> { return util.omit(schema, mask); } export function partial<T extends ZodMiniObject>( schema: T ): ZodMiniObject< { [k in keyof T["shape"]]: ZodMiniOptional<T["shape"][k]>; }, T["_zod"]["config"] >; export function partial<T extends ZodMiniObject, M extends util.Mask<keyof T["shape"]>>( schema: T, mask: M ): ZodMiniObject< { [k in keyof T["shape"]]: k extends keyof M ? ZodMiniOptional<T["shape"][k]> : T["shape"][k]; }, T["_zod"]["config"] >; export function partial(schema: ZodMiniObject, mask?: object) { return util.partial(ZodMiniOptional, schema, mask); } export type RequiredInterfaceShape< Shape extends core.$ZodLooseShape, Keys extends PropertyKey = keyof Shape, > = util.Identity< { [k in keyof Shape as k extends Keys ? k : never]: ZodMiniNonOptional<Shape[k]>; } & { [k in keyof Shape as k extends Keys ? never : k]: Shape[k]; } >; export function required<T extends ZodMiniObject>( schema: T ): ZodMiniObject< { [k in keyof T["shape"]]: ZodMiniNonOptional<T["shape"][k]>; }, T["_zod"]["config"] >; export function required<T extends ZodMiniObject, M extends util.Mask<keyof T["shape"]>>( schema: T, mask: M ): ZodMiniObject< util.Extend< T["shape"], { [k in keyof M & keyof T["shape"]]: ZodMiniNonOptional<T["shape"][k]>; } >, T["_zod"]["config"] >; export function required(schema: ZodMiniObject, mask?: object) { return util.required(ZodMiniNonOptional, schema, mask); } export function catchall<T extends ZodMiniObject, U extends SomeType>( inst: T, catchall: U ): ZodMiniObject<T["shape"], core.$catchall<U>> { return inst.clone({ ...inst._zod.def, catchall: catchall as any }) as any; } // ZodMiniUnion export interface ZodMiniUnion<T extends readonly SomeType[] = readonly core.$ZodType[]> extends _ZodMiniType<core.$ZodUnionInternals<T>> { // _zod: core.$ZodUnionInternals<T>; } export const ZodMiniUnion: core.$constructor<ZodMiniUnion> = /*@__PURE__*/ core.$constructor( "ZodMiniUnion", (inst, def) => { core.$ZodUnion.init(inst, def); ZodMiniType.init(inst, def); } ); export function union<const T extends readonly SomeType[]>( options: T, params?: string | core.$ZodUnionParams ): ZodMiniUnion<T> { return new ZodMiniUnion({ type: "union", options: options as any as core.$ZodType[], ...util.normalizeParams(params), }) as any; } // ZodMiniDiscriminatedUnion export interface ZodMiniDiscriminatedUnion<Options extends readonly SomeType[] = readonly core.$ZodType[]> extends ZodMiniUnion<Options> { _zod: core.$ZodDiscriminatedUnionInternals<Options>; } export const ZodMiniDiscriminatedUnion: core.$constructor<ZodMiniDiscriminatedUnion> = /*@__PURE__*/ core.$constructor( "ZodMiniDiscriminatedUnion", (inst, def) => { core.$ZodDiscriminatedUnion.init(inst, def); ZodMiniType.init(inst, def); } ); export function discriminatedUnion< Types extends readonly [core.$ZodTypeDiscriminable, ...core.$ZodTypeDiscriminable[]], >( discriminator: string, options: Types, params?: string | core.$ZodDiscriminatedUnionParams ): ZodMiniDiscriminatedUnion<Types> { return new ZodMiniDiscriminatedUnion({ type: "union", options, discriminator, ...util.normalizeParams(params), }) as ZodMiniDiscriminatedUnion<Types>; } // ZodMiniIntersection export interface ZodMiniIntersection<A extends SomeType = core.$ZodType, B extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodIntersectionInternals<A, B>> { // _zod: core.$ZodIntersectionInternals<A, B>; } export const ZodMiniIntersection: core.$constructor<ZodMiniIntersection> = /*@__PURE__*/ core.$constructor( "ZodMiniIntersection", (inst, def) => { core.$ZodIntersection.init(inst, def); ZodMiniType.init(inst, def); } ); export function intersection<T extends SomeType, U extends SomeType>(left: T, right: U): ZodMiniIntersection<T, U> { return new ZodMiniIntersection({ type: "intersection", left: left as any as core.$ZodType, right: right as any as core.$ZodType, }) as any; } // ZodMiniTuple export interface ZodMiniTuple< T extends util.TupleItems = readonly core.$ZodType[], Rest extends SomeType | null = core.$ZodType | null, > extends _ZodMiniType<core.$ZodTupleInternals<T, Rest>> { // _zod: core.$ZodTupleInternals<T, Rest>; } export const ZodMiniTuple: core.$constructor<ZodMiniTuple> = /*@__PURE__*/ core.$constructor( "ZodMiniTuple", (inst, def) => { core.$ZodTuple.init(inst, def); ZodMiniType.init(inst, def); } ); export function tuple<const T extends readonly [SomeType, ...SomeType[]]>( items: T, params?: string | core.$ZodTupleParams ): ZodMiniTuple<T, null>; export function tuple<const T extends readonly [SomeType, ...SomeType[]], Rest extends SomeType>( items: T, rest: Rest, params?: string | core.$ZodTupleParams ): ZodMiniTuple<T, Rest>; export function tuple(items: [], params?: string | core.$ZodTupleParams): ZodMiniTuple<[], null>; export function tuple( items: SomeType[], _paramsOrRest?: string | core.$ZodTupleParams | SomeType, _params?: string | core.$ZodTupleParams ) { const hasRest = _paramsOrRest instanceof core.$ZodType; const params = hasRest ? _params : _paramsOrRest; const rest = hasRest ? _paramsOrRest : null; return new ZodMiniTuple({ type: "tuple", items: items as any as core.$ZodType[], rest, ...util.normalizeParams(params), }); } // ZodMiniRecord export interface ZodMiniRecord< Key extends core.$ZodRecordKey = core.$ZodRecordKey, Value extends SomeType = core.$ZodType, > extends _ZodMiniType<core.$ZodRecordInternals<Key, Value>> { // _zod: core.$ZodRecordInternals<Key, Value>; } export const ZodMiniRecord: core.$constructor<ZodMiniRecord> = /*@__PURE__*/ core.$constructor( "ZodMiniRecord", (inst, def) => { core.$ZodRecord.init(inst, def); ZodMiniType.init(inst, def); } ); export function record<Key extends core.$ZodRecordKey, Value extends SomeType>( keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams ): ZodMiniRecord<Key, Value> { return new ZodMiniRecord({ type: "record", keyType, valueType: valueType as any as core.$ZodType, ...util.normalizeParams(params), }) as any; } export function partialRecord<Key extends core.$ZodRecordKey, Value extends SomeType>( keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams ): ZodMiniRecord<Key & core.$partial, Value> { const k = core.clone(keyType); k._zod.values = undefined; return new ZodMiniRecord({ type: "record", keyType: k, valueType: valueType as any, ...util.normalizeParams(params), }) as any; } // ZodMiniMap export interface ZodMiniMap<Key extends SomeType = core.$ZodType, Value extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodMapInternals<Key, Value>> { // _zod: core.$ZodMapInternals<Key, Value>; } export const ZodMiniMap: core.$constructor<ZodMiniMap> = /*@__PURE__*/ core.$constructor("ZodMiniMap", (inst, def) => { core.$ZodMap.init(inst, def); ZodMiniType.init(inst, def); }); export function map<Key extends SomeType, Value extends SomeType>( keyType: Key, valueType: Value, params?: string | core.$ZodMapParams ): ZodMiniMap<Key, Value> { return new ZodMiniMap({ type: "map", keyType: keyType as any as core.$ZodType, valueType: valueType as any as core.$ZodType, ...util.normalizeParams(params), }) as any; } // ZodMiniSet export interface ZodMiniSet<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodSetInternals<T>> { // _zod: core.$ZodSetInternals<T>; } export const ZodMiniSet: core.$constructor<ZodMiniSet> = /*@__PURE__*/ core.$constructor("ZodMiniSet", (inst, def) => { core.$ZodSet.init(inst, def); ZodMiniType.init(inst, def); }); export function set<Value extends SomeType>(valueType: Value, params?: string | core.$ZodSetParams): ZodMiniSet<Value> { return new ZodMiniSet({ type: "set", valueType: valueType as any as core.$ZodType, ...util.normalizeParams(params), }) as any; } // ZodMiniEnum export interface ZodMiniEnum<T extends util.EnumLike = util.EnumLike> extends _ZodMiniType<core.$ZodEnumInternals<T>> { // _zod: core.$ZodEnumInternals<T>; } export const ZodMiniEnum: core.$constructor<ZodMiniEnum> = /*@__PURE__*/ core.$constructor( "ZodMiniEnum", (inst, def) => { core.$ZodEnum.init(inst, def); ZodMiniType.init(inst, def); } ); function _enum<const T extends readonly string[]>( values: T, params?: string | core.$ZodEnumParams ): ZodMiniEnum<util.ToEnum<T[number]>>; function _enum<T extends util.EnumLike>(entries: T, params?: string | core.$ZodEnumParams): ZodMiniEnum<T>; function _enum(values: any, params?: string | core.$ZodEnumParams) { const entries: any = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; return new ZodMiniEnum({ type: "enum", entries, ...util.normalizeParams(params), }) as any; } export { _enum as enum }; /** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead. * * ```ts * enum Colors { red, green, blue } * z.enum(Colors); * ``` */ export function nativeEnum<T extends util.EnumLike>(entries: T, params?: string | core.$ZodEnumParams): ZodMiniEnum<T> { return new ZodMiniEnum({ type: "enum", entries, ...util.normalizeParams(params), }) as any as ZodMiniEnum<T>; } // ZodMiniLiteral export interface ZodMiniLiteral<T extends util.Literal = util.Literal> extends _ZodMiniType<core.$ZodLiteralInternals<T>> { // _zod: core.$ZodLiteralInternals<T>; } export const ZodMiniLiteral: core.$constructor<ZodMiniLiteral> = /*@__PURE__*/ core.$constructor( "ZodMiniLiteral", (inst, def) => { core.$ZodLiteral.init(inst, def); ZodMiniType.init(inst, def); } ); export function literal<const T extends ReadonlyArray<util.Literal>>( value: T, params?: string | core.$ZodLiteralParams ): ZodMiniLiteral<T[number]>; export function literal<const T extends util.Literal>( value: T, params?: string | core.$ZodLiteralParams ): ZodMiniLiteral<T>; export function literal(value: any, params: any) { return new ZodMiniLiteral({ type: "literal", values: Array.isArray(value) ? value : [value], ...util.normalizeParams(params), }); } // ZodMiniFile export interface ZodMiniFile extends _ZodMiniType<core.$ZodFileInternals> { // _zod: core.$ZodFileInternals; } export const ZodMiniFile: core.$constructor<ZodMiniFile> = /*@__PURE__*/ core.$constructor( "ZodMiniFile", (inst, def) => { core.$ZodFile.init(inst, def); ZodMiniType.init(inst, def); } ); export function file(params?: string | core.$ZodFileParams): ZodMiniFile { return core._file(ZodMiniFile, params) as any; } // ZodMiniTransform export interface ZodMiniTransform<O = unknown, I = unknown> extends _ZodMiniType<core.$ZodTransformInternals<O, I>> { // _zod: core.$ZodTransformInternals<O, I>; } export const ZodMiniTransform: core.$constructor<ZodMiniTransform> = /*@__PURE__*/ core.$constructor( "ZodMiniTransform", (inst, def) => { core.$ZodTransform.init(inst, def); ZodMiniType.init(inst, def); } ); export function transform<I = unknown, O = I>( fn: (input: I, ctx: core.ParsePayload) => O ): ZodMiniTransform<Awaited<O>, I> { return new ZodMiniTransform({ type: "transform", transform: fn as any, }) as any; } // ZodMiniOptional export interface ZodMiniOptional<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodOptionalInternals<T>>, core.$ZodOptional<T> { // _zod: core.$ZodOptionalInternals<T>; } export const ZodMiniOptional: core.$constructor<ZodMiniOptional> = /*@__PURE__*/ core.$constructor( "ZodMiniOptional", (inst, def) => { core.$ZodOptional.init(inst, def); ZodMiniType.init(inst, def); } ); export function optional<T extends SomeType>(innerType: T): ZodMiniOptional<T> { return new ZodMiniOptional({ type: "optional", innerType: innerType as any as core.$ZodType, }) as any; } // ZodMiniNullable export interface ZodMiniNullable<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodNullableInternals<T>> { // _zod: core.$ZodNullableInternals<T>; } export const ZodMiniNullable: core.$constructor<ZodMiniNullable> = /*@__PURE__*/ core.$constructor( "ZodMiniNullable", (inst, def) => { core.$ZodNullable.init(inst, def); ZodMiniType.init(inst, def); } ); export function nullable<T extends SomeType>(innerType: T): ZodMiniNullable<T> { return new ZodMiniNullable({ type: "nullable", innerType: innerType as any as core.$ZodType, }) as any; } // nullish export function nullish<T extends SomeType>(innerType: T): ZodMiniOptional<ZodMiniNullable<T>> { return optional(nullable(innerType)); } // ZodMiniDefault export interface ZodMiniDefault<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodDefaultInternals<T>> { // _zod: core.$ZodDefaultInternals<T>; } export const ZodMiniDefault: core.$constructor<ZodMiniDefault> = /*@__PURE__*/ core.$constructor( "ZodMiniDefault", (inst, def) => { core.$ZodDefault.init(inst, def); ZodMiniType.init(inst, def); } ); export function _default<T extends SomeType>( innerType: T, defaultValue: util.NoUndefined<core.output<T>> | (() => util.NoUndefined<core.output<T>>) ): ZodMiniDefault<T> { return new ZodMiniDefault({ type: "default", innerType: innerType as any as core.$ZodType, get defaultValue() { return typeof defaultValue === "function" ? (defaultValue as Function)() : defaultValue; }, }) as any; } // ZodMiniPrefault export interface ZodMiniPrefault<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodPrefaultInternals<T>> { // _zod: core.$ZodPrefaultInternals<T>; } export const ZodMiniPrefault: core.$constructor<ZodMiniPrefault> = /*@__PURE__*/ core.$constructor( "ZodMiniPrefault", (inst, def) => { core.$ZodPrefault.init(inst, def); ZodMiniType.init(inst, def); } ); export function prefault<T extends SomeType>( innerType: T, defaultValue: util.NoUndefined<core.input<T>> | (() => util.NoUndefined<core.input<T>>) ): ZodMiniPrefault<T> { return new ZodMiniPrefault({ type: "prefault", innerType: innerType as any as core.$ZodType, get defaultValue() { return typeof defaultValue === "function" ? (defaultValue as Function)() : defaultValue; }, }) as any; } // ZodMiniNonOptional export interface ZodMiniNonOptional<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodNonOptionalInternals<T>> { // _zod: core.$ZodNonOptionalInternals<T>; } export const ZodMiniNonOptional: core.$constructor<ZodMiniNonOptional> = /*@__PURE__*/ core.$constructor( "ZodMiniNonOptional", (inst, def) => { core.$ZodNonOptional.init(inst, def); ZodMiniType.init(inst, def); } ); export function nonoptional<T extends SomeType>( innerType: T, params?: string | core.$ZodNonOptionalParams ): ZodMiniNonOptional<T> { return new ZodMiniNonOptional({ type: "nonoptional", innerType: innerType as any as core.$ZodType, ...util.normalizeParams(params), }) as any; } // ZodMiniSuccess export interface ZodMiniSuccess<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodSuccessInternals<T>> { // _zod: core.$ZodSuccessInternals<T>; } export const ZodMiniSuccess: core.$constructor<ZodMiniSuccess> = /*@__PURE__*/ core.$constructor( "ZodMiniSuccess", (inst, def) => { core.$ZodSuccess.init(inst, def); ZodMiniType.init(inst, def); } ); export function success<T extends SomeType>(innerType: T): ZodMiniSuccess<T> { return new ZodMiniSuccess({ type: "success", innerType: innerType as any as core.$ZodType, }) as any; } // ZodMiniCatch export interface ZodMiniCatch<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodCatchInternals<T>> { // _zod: core.$ZodCatchInternals<T>; } export const ZodMiniCatch: core.$constructor<ZodMiniCatch> = /*@__PURE__*/ core.$constructor( "ZodMiniCatch", (inst, def) => { core.$ZodCatch.init(inst, def); ZodMiniType.init(inst, def); } ); function _catch<T extends SomeType>( innerType: T, catchValue: core.output<T> | ((ctx: core.$ZodCatchCtx) => core.output<T>) ): ZodMiniCatch<T> { return new ZodMiniCatch({ type: "catch", innerType: innerType as any as core.$ZodType, catchValue: (typeof catchValue === "function" ? catchValue : () => catchValue) as ( ctx: core.$ZodCatchCtx ) => core.output<T>, }) as any; } export { _catch as catch }; // ZodMiniNaN export interface ZodMiniNaN extends _ZodMiniType<core.$ZodNaNInternals> { // _zod: core.$ZodNaNInternals; } export const ZodMiniNaN: core.$constructor<ZodMiniNaN> = /*@__PURE__*/ core.$constructor("ZodMiniNaN", (inst, def) => { core.$ZodNaN.init(inst, def); ZodMiniType.init(inst, def); }); export function nan(params?: string | core.$ZodNaNParams): ZodMiniNaN { return core._nan(ZodMiniNaN, params) as any; } // ZodMiniPipe export interface ZodMiniPipe<A extends SomeType = core.$ZodType, B extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodPipeInternals<A, B>> { // _zod: core.$ZodPipeInternals<A, B>; } export const ZodMiniPipe: core.$constructor<ZodMiniPipe> = /*@__PURE__*/ core.$constructor( "ZodMiniPipe", (inst, def) => { core.$ZodPipe.init(inst, def); ZodMiniType.init(inst, def); } ); export function pipe< const A extends SomeType, B extends core.$ZodType<unknown, core.output<A>> = core.$ZodType<unknown, core.output<A>>, >(in_: A, out: B | core.$ZodType<unknown, core.output<A>>): ZodMiniPipe<A, B> { return new ZodMiniPipe({ type: "pipe", in: in_ as any as core.$ZodType, out: out as any as core.$ZodType, }) as any; } // /** @deprecated Use `z.pipe()` and `z.transform()` instead. */ // export function preprocess<A, U extends core.$ZodType>( // fn: (arg: unknown, ctx: core.ParsePayload) => A, // schema: U, // params?: ZodPreprocessParams // ): ZodPipe<ZodTransform<A, unknown>, U> { // return pipe(transform(fn as any, params), schema as any, params); // } // ZodMiniReadonly export interface ZodMiniReadonly<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodReadonlyInternals<T>> { // _zod: core.$ZodReadonlyInternals<T>; } export const ZodMiniReadonly: core.$constructor<ZodMiniReadonly> = /*@__PURE__*/ core.$constructor( "ZodMiniReadonly", (inst, def) => { core.$ZodReadonly.init(inst, def); ZodMiniType.init(inst, def); } ); export function readonly<T extends SomeType>(innerType: T): ZodMiniReadonly<T> { return new ZodMiniReadonly({ type: "readonly", innerType: innerType as any as core.$ZodType, }) as any; } // ZodMiniTemplateLiteral export interface ZodMiniTemplateLiteral<Template extends string = string> extends _ZodMiniType<core.$ZodTemplateLiteralInternals<Template>> { // _zod: core.$ZodTemplateLiteralInternals<Template>; } export const ZodMiniTemplateLiteral: core.$constructor<ZodMiniTemplateLiteral> = /*@__PURE__*/ core.$constructor( "ZodMiniTemplateLiteral", (inst, def) => { core.$ZodTemplateLiteral.init(inst, def); ZodMiniType.init(inst, def); } ); export function templateLiteral<const Parts extends core.$ZodTemplateLiteralPart[]>( parts: Parts, params?: string | core.$ZodTemplateLiteralParams ): ZodMiniTemplateLiteral<core.$PartsToTemplateLiteral<Parts>> { return new ZodMiniTemplateLiteral({ type: "template_literal", parts, ...util.normalizeParams(params), }) as any; } // ZodMiniLazy export interface ZodMiniLazy<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodLazyInternals<T>> { // _zod: core.$ZodLazyInternals<T>; } export const ZodMiniLazy: core.$constructor<ZodMiniLazy> = /*@__PURE__*/ core.$constructor( "ZodMiniLazy", (inst, def) => { core.$ZodLazy.init(inst, def); ZodMiniType.init(inst, def); } ); // export function lazy<T extends object>(getter: () => T): T { // return util.createTransparentProxy<T>(getter); // } function _lazy<T extends SomeType>(getter: () => T): ZodMiniLazy<T> { return new ZodMiniLazy({ type: "lazy", getter: getter as any, }) as any; } export { _lazy as lazy }; // ZodMiniPromise export interface ZodMiniPromise<T extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodPromiseInternals<T>> { // _zod: core.$ZodPromiseInternals<T>; } export const ZodMiniPromise: core.$constructor<ZodMiniPromise> = /*@__PURE__*/ core.$constructor( "ZodMiniPromise", (inst, def) => { core.$ZodPromise.init(inst, def); ZodMiniType.init(inst, def); } ); export function promise<T extends SomeType>(innerType: T): ZodMiniPromise<T> { return new ZodMiniPromise({ type: "promise", innerType: innerType as any as core.$ZodType, }) as any; } // ZodMiniCustom export interface ZodMiniCustom<O = unknown, I = unknown> extends _ZodMiniType<core.$ZodCustomInternals<O, I>> { // _zod: core.$ZodCustomInternals<O, I>; } export const ZodMiniCustom: core.$constructor<ZodMiniCustom> = /*@__PURE__*/ core.$constructor( "ZodMiniCustom", (inst, def) => { core.$ZodCustom.init(inst, def); ZodMiniType.init(inst, def); } ); // custom checks export function check<O = unknown>(fn: core.CheckFn<O>, params?: string | core.$ZodCustomParams): core.$ZodCheck<O> { const ch = new core.$ZodCheck({ check: "custom", ...util.normalizeParams(params), }); ch._zod.check = fn; return ch; } // ZodCustom // custom schema export function custom<O = unknown, I = O>( fn?: (data: O) => unknown, _params?: string | core.$ZodCustomParams | undefined ): ZodMiniCustom<O, I> { return core._custom(ZodMiniCustom, fn ?? (() => true), _params) as any; } // refine export function refine<T>( fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>, _params: string | core.$ZodCustomParams = {} ): core.$ZodCheck<T> { return core._refine(ZodMiniCustom, fn, _params); } // superRefine export function superRefine<T>( fn: (arg: T, payload: core.$RefinementCtx<T>) => void | Promise<void> ): core.$ZodCheck<T> { return core._superRefine(fn); } // instanceof abstract class Class { constructor(..._args: any[]) {} } function _instanceof<T extends typeof Class>( cls: T, params: core.$ZodCustomParams = { error: `Input not instance of ${cls.name}`, } ): ZodMiniCustom<InstanceType<T>, InstanceType<T>> { const inst = custom((data) => data instanceof cls, params); inst._zod.bag.Class = cls; return inst as any; } export { _instanceof as instanceof }; // stringbool export const stringbool: ( _params?: string | core.$ZodStringBoolParams ) => ZodMiniPipe<ZodMiniPipe<ZodMiniString, ZodMiniTransform<boolean, string>>, ZodMiniBoolean> = (...args) => core._stringbool( { Pipe: ZodMiniPipe, Boolean: ZodMiniBoolean, String: ZodMiniString, Transform: ZodMiniTransform, }, ...args ) as any; // json // json type _ZodMiniJSONSchema = ZodMiniUnion< [ ZodMiniString, ZodMiniNumber, ZodMiniBoolean, ZodMiniNull, ZodMiniArray<ZodMiniJSONSchema>, ZodMiniRecord<ZodMiniString<string>, ZodMiniJSONSchema>, ] >; type _ZodMiniJSONSchemaInternals = _ZodMiniJSONSchema["_zod"]; export interface ZodMiniJSONSchemaInternals extends _ZodMiniJSONSchemaInternals { output: util.JSONType; input: util.JSONType; } export interface ZodMiniJSONSchema extends _ZodMiniJSONSchema { _zod: ZodMiniJSONSchemaInternals; } export function json(): ZodMiniJSONSchema { const jsonSchema: any = _lazy(() => { return union([string(), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]); }); return jsonSchema; }