@getopenpay/openpay-js
Version:
Accept payments through OpenPay, right on your site
1 lines • 773 kB
JavaScript
(function(Ye,$e){typeof exports=="object"&&typeof module<"u"?$e(exports):typeof define=="function"&&define.amd?define(["exports"],$e):(Ye=typeof globalThis<"u"?globalThis:Ye||self,$e(Ye.OpenPay={}))})(this,(function(exports){"use strict";function _mergeNamespaces(S,T){for(var A=0;A<T.length;A++){const P=T[A];if(typeof P!="string"&&!Array.isArray(P)){for(const O in P)if(O!=="default"&&!(O in S)){const R=Object.getOwnPropertyDescriptor(P,O);R&&Object.defineProperty(S,O,R.get?R:{enumerable:!0,get:()=>P[O]})}}}return Object.freeze(Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}))}var MessageType;(function(S){S.Call="call",S.Reply="reply",S.Syn="syn",S.SynAck="synAck",S.Ack="ack"})(MessageType||(MessageType={}));var Resolution;(function(S){S.Fulfilled="fulfilled",S.Rejected="rejected"})(Resolution||(Resolution={}));var ErrorCode;(function(S){S.ConnectionDestroyed="ConnectionDestroyed",S.ConnectionTimeout="ConnectionTimeout",S.NoIframeSrc="NoIframeSrc"})(ErrorCode||(ErrorCode={}));var NativeErrorName;(function(S){S.DataCloneError="DataCloneError"})(NativeErrorName||(NativeErrorName={}));var NativeEventType;(function(S){S.Message="message"})(NativeEventType||(NativeEventType={}));const createDestructor=(S,T)=>{const A=[];let P=!1;return{destroy(O){P||(P=!0,T(`${S}: Destroying connection`),A.forEach(R=>{R(O)}))},onDestroy(O){P?O():A.push(O)}}},createLogger=S=>(...T)=>{S&&console.log("[Penpal]",...T)},DEFAULT_PORT_BY_PROTOCOL={"http:":"80","https:":"443"},URL_REGEX=/^(https?:)?\/\/([^/:]+)?(:(\d+))?/,opaqueOriginSchemes=["file:","data:"],getOriginFromSrc=S=>{if(S&&opaqueOriginSchemes.find(D=>S.startsWith(D)))return"null";const T=document.location,A=URL_REGEX.exec(S);let P,O,R;A?(P=A[1]?A[1]:T.protocol,O=A[2],R=A[4]):(P=T.protocol,O=T.hostname,R=T.port);const M=R&&R!==DEFAULT_PORT_BY_PROTOCOL[P]?`:${R}`:"";return`${P}//${O}${M}`},serializeError=({name:S,message:T,stack:A})=>({name:S,message:T,stack:A}),deserializeError=S=>{const T=new Error;return Object.keys(S).forEach(A=>T[A]=S[A]),T},connectCallReceiver=(S,T,A)=>{const{localName:P,local:O,remote:R,originForSending:M,originForReceiving:D}=S;let U=!1;const C=L=>{if(L.source!==R||L.data.penpal!==MessageType.Call)return;if(D!=="*"&&L.origin!==D){A(`${P} received message from origin ${L.origin} which did not match expected origin ${D}`);return}const y=L.data,{methodName:_,args:N,id:I}=y;A(`${P}: Received ${_}() call`);const x=V=>k=>{if(A(`${P}: Sending ${_}() reply`),U){A(`${P}: Unable to send ${_}() reply due to destroyed connection`);return}const F={penpal:MessageType.Reply,id:I,resolution:V,returnValue:k};V===Resolution.Rejected&&k instanceof Error&&(F.returnValue=serializeError(k),F.returnValueIsError=!0);try{R.postMessage(F,M)}catch(W){if(W.name===NativeErrorName.DataCloneError){const ee={penpal:MessageType.Reply,id:I,resolution:Resolution.Rejected,returnValue:serializeError(W),returnValueIsError:!0};R.postMessage(ee,M)}throw W}};new Promise(V=>V(T[_].apply(T,N))).then(x(Resolution.Fulfilled),x(Resolution.Rejected))};return O.addEventListener(NativeEventType.Message,C),()=>{U=!0,O.removeEventListener(NativeEventType.Message,C)}};let id=0;const generateId=()=>++id,KEY_PATH_DELIMITER=".",keyPathToSegments=S=>S?S.split(KEY_PATH_DELIMITER):[],segmentsToKeyPath=S=>S.join(KEY_PATH_DELIMITER),createKeyPath=(S,T)=>{const A=keyPathToSegments(T||"");return A.push(S),segmentsToKeyPath(A)},setAtKeyPath=(S,T,A)=>{const P=keyPathToSegments(T);return P.reduce((O,R,M)=>(typeof O[R]>"u"&&(O[R]={}),M===P.length-1&&(O[R]=A),O[R]),S),S},serializeMethods=(S,T)=>{const A={};return Object.keys(S).forEach(P=>{const O=S[P],R=createKeyPath(P,T);typeof O=="object"&&Object.assign(A,serializeMethods(O,R)),typeof O=="function"&&(A[R]=O)}),A},deserializeMethods=S=>{const T={};for(const A in S)setAtKeyPath(T,A,S[A]);return T},connectCallSender=(S,T,A,P,O)=>{const{localName:R,local:M,remote:D,originForSending:U,originForReceiving:C}=T;let L=!1;O(`${R}: Connecting call sender`);const y=N=>(...I)=>{O(`${R}: Sending ${N}() call`);let x;try{D.closed&&(x=!0)}catch{x=!0}if(x&&P(),L){const V=new Error(`Unable to send ${N}() call due to destroyed connection`);throw V.code=ErrorCode.ConnectionDestroyed,V}return new Promise((V,k)=>{const F=generateId(),W=ne=>{if(ne.source!==D||ne.data.penpal!==MessageType.Reply||ne.data.id!==F)return;if(C!=="*"&&ne.origin!==C){O(`${R} received message from origin ${ne.origin} which did not match expected origin ${C}`);return}const le=ne.data;O(`${R}: Received ${N}() reply`),M.removeEventListener(NativeEventType.Message,W);let Re=le.returnValue;le.returnValueIsError&&(Re=deserializeError(Re)),(le.resolution===Resolution.Fulfilled?V:k)(Re)};M.addEventListener(NativeEventType.Message,W);const ee={penpal:MessageType.Call,id:F,methodName:N,args:I};D.postMessage(ee,U)})},_=A.reduce((N,I)=>(N[I]=y(I),N),{});return Object.assign(S,deserializeMethods(_)),()=>{L=!0}},handleAckMessageFactory=(S,T,A,P,O)=>{const{destroy:R,onDestroy:M}=P;let D,U;const C={};return L=>{if(T!=="*"&&L.origin!==T){O(`Parent: Handshake - Received ACK message from origin ${L.origin} which did not match expected origin ${T}`);return}O("Parent: Handshake - Received ACK");const y={localName:"Parent",local:window,remote:L.source,originForSending:A,originForReceiving:T};D&&D(),D=connectCallReceiver(y,S,O),M(D),U&&U.forEach(N=>{delete C[N]}),U=L.data.methodNames;const _=connectCallSender(C,y,U,R,O);return M(_),C}},handleSynMessageFactory=(S,T,A,P)=>O=>{if(!O.source)return;if(A!=="*"&&O.origin!==A){S(`Parent: Handshake - Received SYN message from origin ${O.origin} which did not match expected origin ${A}`);return}S("Parent: Handshake - Received SYN, responding with SYN-ACK");const R={penpal:MessageType.SynAck,methodNames:Object.keys(T)};O.source.postMessage(R,P)},CHECK_IFRAME_IN_DOC_INTERVAL=6e4,monitorIframeRemoval=(S,T)=>{const{destroy:A,onDestroy:P}=T,O=setInterval(()=>{S.isConnected||(clearInterval(O),A())},CHECK_IFRAME_IN_DOC_INTERVAL);P(()=>{clearInterval(O)})},startConnectionTimeout=(S,T)=>{let A;return S!==void 0&&(A=window.setTimeout(()=>{const P=new Error(`Connection timed out after ${S}ms`);P.code=ErrorCode.ConnectionTimeout,T(P)},S)),()=>{clearTimeout(A)}},validateIframeHasSrcOrSrcDoc=S=>{if(!S.src&&!S.srcdoc){const T=new Error("Iframe must have src or srcdoc property defined.");throw T.code=ErrorCode.NoIframeSrc,T}},connectToChild=S=>{let{iframe:T,methods:A={},childOrigin:P,timeout:O,debug:R=!1}=S;const M=createLogger(R),D=createDestructor("Parent",M),{onDestroy:U,destroy:C}=D;P||(validateIframeHasSrcOrSrcDoc(T),P=getOriginFromSrc(T.src));const L=P==="null"?"*":P,y=serializeMethods(A),_=handleSynMessageFactory(M,y,P,L),N=handleAckMessageFactory(y,P,L,D,M);return{promise:new Promise((x,V)=>{const k=startConnectionTimeout(O,C),F=W=>{if(!(W.source!==T.contentWindow||!W.data)){if(W.data.penpal===MessageType.Syn){_(W);return}if(W.data.penpal===MessageType.Ack){const ee=N(W);ee&&(k(),x(ee));return}}};window.addEventListener(NativeEventType.Message,F),M("Parent: Awaiting handshake"),monitorIframeRemoval(T,D),U(W=>{window.removeEventListener(NativeEventType.Message,F),W&&V(W)})}),destroy(){C()}}};function fixProto(S,T){var A=Object.setPrototypeOf;A?A(S,T):S.__proto__=T}function fixStack(S,T){T===void 0&&(T=S.constructor);var A=Error.captureStackTrace;A&&A(S,T)}var __extends$9=(function(){var S=function(A,P){return S=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,R){O.__proto__=R}||function(O,R){for(var M in R)Object.prototype.hasOwnProperty.call(R,M)&&(O[M]=R[M])},S(A,P)};return function(T,A){if(typeof A!="function"&&A!==null)throw new TypeError("Class extends value "+String(A)+" is not a constructor or null");S(T,A);function P(){this.constructor=T}T.prototype=A===null?Object.create(A):(P.prototype=A.prototype,new P)}})(),CustomError=(function(S){__extends$9(T,S);function T(A,P){var O=this.constructor,R=S.call(this,A,P)||this;return Object.defineProperty(R,"name",{value:O.name,enumerable:!1,configurable:!0}),fixProto(R,O.prototype),fixStack(R),R}return T})(Error),util;(function(S){S.assertEqual=O=>{};function T(O){}S.assertIs=T;function A(O){throw new Error}S.assertNever=A,S.arrayToEnum=O=>{const R={};for(const M of O)R[M]=M;return R},S.getValidEnumValues=O=>{const R=S.objectKeys(O).filter(D=>typeof O[O[D]]!="number"),M={};for(const D of R)M[D]=O[D];return S.objectValues(M)},S.objectValues=O=>S.objectKeys(O).map(function(R){return O[R]}),S.objectKeys=typeof Object.keys=="function"?O=>Object.keys(O):O=>{const R=[];for(const M in O)Object.prototype.hasOwnProperty.call(O,M)&&R.push(M);return R},S.find=(O,R)=>{for(const M of O)if(R(M))return M},S.isInteger=typeof Number.isInteger=="function"?O=>Number.isInteger(O):O=>typeof O=="number"&&Number.isFinite(O)&&Math.floor(O)===O;function P(O,R=" | "){return O.map(M=>typeof M=="string"?`'${M}'`:M).join(R)}S.joinValues=P,S.jsonStringifyReplacer=(O,R)=>typeof R=="bigint"?R.toString():R})(util||(util={}));var objectUtil;(function(S){S.mergeShapes=(T,A)=>({...T,...A})})(objectUtil||(objectUtil={}));const ZodParsedType=util.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=S=>{switch(typeof S){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(S)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(S)?ZodParsedType.array:S===null?ZodParsedType.null:S.then&&typeof S.then=="function"&&S.catch&&typeof S.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&S instanceof Map?ZodParsedType.map:typeof Set<"u"&&S instanceof Set?ZodParsedType.set:typeof Date<"u"&&S instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor(T){super(),this.issues=[],this.addIssue=P=>{this.issues=[...this.issues,P]},this.addIssues=(P=[])=>{this.issues=[...this.issues,...P]};const A=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,A):this.__proto__=A,this.name="ZodError",this.issues=T}format(T){const A=T||function(R){return R.message},P={_errors:[]},O=R=>{for(const M of R.issues)if(M.code==="invalid_union")M.unionErrors.map(O);else if(M.code==="invalid_return_type")O(M.returnTypeError);else if(M.code==="invalid_arguments")O(M.argumentsError);else if(M.path.length===0)P._errors.push(A(M));else{let D=P,U=0;for(;U<M.path.length;){const C=M.path[U];U===M.path.length-1?(D[C]=D[C]||{_errors:[]},D[C]._errors.push(A(M))):D[C]=D[C]||{_errors:[]},D=D[C],U++}}};return O(this),P}static assert(T){if(!(T instanceof ZodError))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=A=>A.message){const A={},P=[];for(const O of this.issues)if(O.path.length>0){const R=O.path[0];A[R]=A[R]||[],A[R].push(T(O))}else P.push(T(O));return{formErrors:P,fieldErrors:A}}get formErrors(){return this.flatten()}}ZodError.create=S=>new ZodError(S);const errorMap=(S,T)=>{let A;switch(S.code){case ZodIssueCode.invalid_type:S.received===ZodParsedType.undefined?A="Required":A=`Expected ${S.expected}, received ${S.received}`;break;case ZodIssueCode.invalid_literal:A=`Invalid literal value, expected ${JSON.stringify(S.expected,util.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:A=`Unrecognized key(s) in object: ${util.joinValues(S.keys,", ")}`;break;case ZodIssueCode.invalid_union:A="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:A=`Invalid discriminator value. Expected ${util.joinValues(S.options)}`;break;case ZodIssueCode.invalid_enum_value:A=`Invalid enum value. Expected ${util.joinValues(S.options)}, received '${S.received}'`;break;case ZodIssueCode.invalid_arguments:A="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:A="Invalid function return type";break;case ZodIssueCode.invalid_date:A="Invalid date";break;case ZodIssueCode.invalid_string:typeof S.validation=="object"?"includes"in S.validation?(A=`Invalid input: must include "${S.validation.includes}"`,typeof S.validation.position=="number"&&(A=`${A} at one or more positions greater than or equal to ${S.validation.position}`)):"startsWith"in S.validation?A=`Invalid input: must start with "${S.validation.startsWith}"`:"endsWith"in S.validation?A=`Invalid input: must end with "${S.validation.endsWith}"`:util.assertNever(S.validation):S.validation!=="regex"?A=`Invalid ${S.validation}`:A="Invalid";break;case ZodIssueCode.too_small:S.type==="array"?A=`Array must contain ${S.exact?"exactly":S.inclusive?"at least":"more than"} ${S.minimum} element(s)`:S.type==="string"?A=`String must contain ${S.exact?"exactly":S.inclusive?"at least":"over"} ${S.minimum} character(s)`:S.type==="number"?A=`Number must be ${S.exact?"exactly equal to ":S.inclusive?"greater than or equal to ":"greater than "}${S.minimum}`:S.type==="bigint"?A=`Number must be ${S.exact?"exactly equal to ":S.inclusive?"greater than or equal to ":"greater than "}${S.minimum}`:S.type==="date"?A=`Date must be ${S.exact?"exactly equal to ":S.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(S.minimum))}`:A="Invalid input";break;case ZodIssueCode.too_big:S.type==="array"?A=`Array must contain ${S.exact?"exactly":S.inclusive?"at most":"less than"} ${S.maximum} element(s)`:S.type==="string"?A=`String must contain ${S.exact?"exactly":S.inclusive?"at most":"under"} ${S.maximum} character(s)`:S.type==="number"?A=`Number must be ${S.exact?"exactly":S.inclusive?"less than or equal to":"less than"} ${S.maximum}`:S.type==="bigint"?A=`BigInt must be ${S.exact?"exactly":S.inclusive?"less than or equal to":"less than"} ${S.maximum}`:S.type==="date"?A=`Date must be ${S.exact?"exactly":S.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(S.maximum))}`:A="Invalid input";break;case ZodIssueCode.custom:A="Invalid input";break;case ZodIssueCode.invalid_intersection_types:A="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:A=`Number must be a multiple of ${S.multipleOf}`;break;case ZodIssueCode.not_finite:A="Number must be finite";break;default:A=T.defaultError,util.assertNever(S)}return{message:A}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=S=>{const{data:T,path:A,errorMaps:P,issueData:O}=S,R=[...A,...O.path||[]],M={...O,path:R};if(O.message!==void 0)return{...O,path:R,message:O.message};let D="";const U=P.filter(C=>!!C).slice().reverse();for(const C of U)D=C(M,{data:T,defaultError:D}).message;return{...O,path:R,message:D}};function addIssueToContext(S,T){const A=getErrorMap(),P=makeIssue({issueData:T,data:S.data,path:S.path,errorMaps:[S.common.contextualErrorMap,S.schemaErrorMap,A,A===errorMap?void 0:errorMap].filter(O=>!!O)});S.common.issues.push(P)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(T,A){const P=[];for(const O of A){if(O.status==="aborted")return INVALID;O.status==="dirty"&&T.dirty(),P.push(O.value)}return{status:T.value,value:P}}static async mergeObjectAsync(T,A){const P=[];for(const O of A){const R=await O.key,M=await O.value;P.push({key:R,value:M})}return ParseStatus.mergeObjectSync(T,P)}static mergeObjectSync(T,A){const P={};for(const O of A){const{key:R,value:M}=O;if(R.status==="aborted"||M.status==="aborted")return INVALID;R.status==="dirty"&&T.dirty(),M.status==="dirty"&&T.dirty(),R.value!=="__proto__"&&(typeof M.value<"u"||O.alwaysSet)&&(P[R.value]=M.value)}return{status:T.value,value:P}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=S=>({status:"dirty",value:S}),OK=S=>({status:"valid",value:S}),isAborted=S=>S.status==="aborted",isDirty=S=>S.status==="dirty",isValid=S=>S.status==="valid",isAsync=S=>typeof Promise<"u"&&S instanceof Promise;var errorUtil;(function(S){S.errToObj=T=>typeof T=="string"?{message:T}:T||{},S.toString=T=>typeof T=="string"?T:T?.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor(T,A,P,O){this._cachedPath=[],this.parent=T,this.data=A,this._path=P,this._key=O}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(S,T)=>{if(isValid(T))return{success:!0,data:T.value};if(!S.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const A=new ZodError(S.common.issues);return this._error=A,this._error}}};function processCreateParams(S){if(!S)return{};const{errorMap:T,invalid_type_error:A,required_error:P,description:O}=S;if(T&&(A||P))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return T?{errorMap:T,description:O}:{errorMap:(M,D)=>{const{message:U}=S;return M.code==="invalid_enum_value"?{message:U??D.defaultError}:typeof D.data>"u"?{message:U??P??D.defaultError}:M.code!=="invalid_type"?{message:D.defaultError}:{message:U??A??D.defaultError}},description:O}}class ZodType{get description(){return this._def.description}_getType(T){return getParsedType(T.data)}_getOrReturnCtx(T,A){return A||{common:T.parent.common,data:T.data,parsedType:getParsedType(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new ParseStatus,ctx:{common:T.parent.common,data:T.data,parsedType:getParsedType(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){const A=this._parse(T);if(isAsync(A))throw new Error("Synchronous parse encountered promise.");return A}_parseAsync(T){const A=this._parse(T);return Promise.resolve(A)}parse(T,A){const P=this.safeParse(T,A);if(P.success)return P.data;throw P.error}safeParse(T,A){const P={common:{issues:[],async:A?.async??!1,contextualErrorMap:A?.errorMap},path:A?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:getParsedType(T)},O=this._parseSync({data:T,path:P.path,parent:P});return handleResult(P,O)}"~validate"(T){const A={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:getParsedType(T)};if(!this["~standard"].async)try{const P=this._parseSync({data:T,path:[],parent:A});return isValid(P)?{value:P.value}:{issues:A.common.issues}}catch(P){P?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),A.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:A}).then(P=>isValid(P)?{value:P.value}:{issues:A.common.issues})}async parseAsync(T,A){const P=await this.safeParseAsync(T,A);if(P.success)return P.data;throw P.error}async safeParseAsync(T,A){const P={common:{issues:[],contextualErrorMap:A?.errorMap,async:!0},path:A?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:getParsedType(T)},O=this._parse({data:T,path:P.path,parent:P}),R=await(isAsync(O)?O:Promise.resolve(O));return handleResult(P,R)}refine(T,A){const P=O=>typeof A=="string"||typeof A>"u"?{message:A}:typeof A=="function"?A(O):A;return this._refinement((O,R)=>{const M=T(O),D=()=>R.addIssue({code:ZodIssueCode.custom,...P(O)});return typeof Promise<"u"&&M instanceof Promise?M.then(U=>U?!0:(D(),!1)):M?!0:(D(),!1)})}refinement(T,A){return this._refinement((P,O)=>T(P)?!0:(O.addIssue(typeof A=="function"?A(P,O):A),!1))}_refinement(T){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:A=>this["~validate"](A)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or(T){return ZodUnion.create([this,T],this._def)}and(T){return ZodIntersection.create(this,T,this._def)}transform(T){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:T}})}default(T){const A=typeof T=="function"?T:()=>T;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:A,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(T){const A=typeof T=="function"?T:()=>T;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:A,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(T){const A=this.constructor;return new A({...this._def,description:T})}pipe(T){return ZodPipeline.create(this,T)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(S){let T="[0-5]\\d";S.precision?T=`${T}\\.\\d{${S.precision}}`:S.precision==null&&(T=`${T}(\\.\\d+)?`);const A=S.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${T})${A}`}function timeRegex(S){return new RegExp(`^${timeRegexSource(S)}$`)}function datetimeRegex(S){let T=`${dateRegexSource}T${timeRegexSource(S)}`;const A=[];return A.push(S.local?"Z?":"Z"),S.offset&&A.push("([+-]\\d{2}:?\\d{2})"),T=`${T}(${A.join("|")})`,new RegExp(`^${T}$`)}function isValidIP(S,T){return!!((T==="v4"||!T)&&ipv4Regex.test(S)||(T==="v6"||!T)&&ipv6Regex.test(S))}function isValidJWT(S,T){if(!jwtRegex.test(S))return!1;try{const[A]=S.split(".");if(!A)return!1;const P=A.replace(/-/g,"+").replace(/_/g,"/").padEnd(A.length+(4-A.length%4)%4,"="),O=JSON.parse(atob(P));return!(typeof O!="object"||O===null||"typ"in O&&O?.typ!=="JWT"||!O.alg||T&&O.alg!==T)}catch{return!1}}function isValidCidr(S,T){return!!((T==="v4"||!T)&&ipv4CidrRegex.test(S)||(T==="v6"||!T)&&ipv6CidrRegex.test(S))}class ZodString extends ZodType{_parse(T){if(this._def.coerce&&(T.data=String(T.data)),this._getType(T)!==ZodParsedType.string){const R=this._getOrReturnCtx(T);return addIssueToContext(R,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:R.parsedType}),INVALID}const P=new ParseStatus;let O;for(const R of this._def.checks)if(R.kind==="min")T.data.length<R.value&&(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.too_small,minimum:R.value,type:"string",inclusive:!0,exact:!1,message:R.message}),P.dirty());else if(R.kind==="max")T.data.length>R.value&&(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.too_big,maximum:R.value,type:"string",inclusive:!0,exact:!1,message:R.message}),P.dirty());else if(R.kind==="length"){const M=T.data.length>R.value,D=T.data.length<R.value;(M||D)&&(O=this._getOrReturnCtx(T,O),M?addIssueToContext(O,{code:ZodIssueCode.too_big,maximum:R.value,type:"string",inclusive:!0,exact:!0,message:R.message}):D&&addIssueToContext(O,{code:ZodIssueCode.too_small,minimum:R.value,type:"string",inclusive:!0,exact:!0,message:R.message}),P.dirty())}else if(R.kind==="email")emailRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"email",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="emoji")emojiRegex||(emojiRegex=new RegExp(_emojiRegex,"u")),emojiRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"emoji",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="uuid")uuidRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"uuid",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="nanoid")nanoidRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="cuid")cuidRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"cuid",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="cuid2")cuid2Regex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="ulid")ulidRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"ulid",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty());else if(R.kind==="url")try{new URL(T.data)}catch{O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"url",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()}else R.kind==="regex"?(R.regex.lastIndex=0,R.regex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"regex",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty())):R.kind==="trim"?T.data=T.data.trim():R.kind==="includes"?T.data.includes(R.value,R.position)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:{includes:R.value,position:R.position},message:R.message}),P.dirty()):R.kind==="toLowerCase"?T.data=T.data.toLowerCase():R.kind==="toUpperCase"?T.data=T.data.toUpperCase():R.kind==="startsWith"?T.data.startsWith(R.value)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:{startsWith:R.value},message:R.message}),P.dirty()):R.kind==="endsWith"?T.data.endsWith(R.value)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:{endsWith:R.value},message:R.message}),P.dirty()):R.kind==="datetime"?datetimeRegex(R).test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:"datetime",message:R.message}),P.dirty()):R.kind==="date"?dateRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:"date",message:R.message}),P.dirty()):R.kind==="time"?timeRegex(R).test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.invalid_string,validation:"time",message:R.message}),P.dirty()):R.kind==="duration"?durationRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"duration",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):R.kind==="ip"?isValidIP(T.data,R.version)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"ip",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):R.kind==="jwt"?isValidJWT(T.data,R.alg)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"jwt",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):R.kind==="cidr"?isValidCidr(T.data,R.version)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"cidr",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):R.kind==="base64"?base64Regex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"base64",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):R.kind==="base64url"?base64urlRegex.test(T.data)||(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{validation:"base64url",code:ZodIssueCode.invalid_string,message:R.message}),P.dirty()):util.assertNever(R);return{status:P.value,value:T.data}}_regex(T,A,P){return this.refinement(O=>T.test(O),{validation:A,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(P)})}_addCheck(T){return new ZodString({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...errorUtil.errToObj(T)})}url(T){return this._addCheck({kind:"url",...errorUtil.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...errorUtil.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...errorUtil.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...errorUtil.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...errorUtil.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...errorUtil.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...errorUtil.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...errorUtil.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...errorUtil.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...errorUtil.errToObj(T)})}datetime(T){return typeof T=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T}):this._addCheck({kind:"datetime",precision:typeof T?.precision>"u"?null:T?.precision,offset:T?.offset??!1,local:T?.local??!1,...errorUtil.errToObj(T?.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){return typeof T=="string"?this._addCheck({kind:"time",precision:null,message:T}):this._addCheck({kind:"time",precision:typeof T?.precision>"u"?null:T?.precision,...errorUtil.errToObj(T?.message)})}duration(T){return this._addCheck({kind:"duration",...errorUtil.errToObj(T)})}regex(T,A){return this._addCheck({kind:"regex",regex:T,...errorUtil.errToObj(A)})}includes(T,A){return this._addCheck({kind:"includes",value:T,position:A?.position,...errorUtil.errToObj(A?.message)})}startsWith(T,A){return this._addCheck({kind:"startsWith",value:T,...errorUtil.errToObj(A)})}endsWith(T,A){return this._addCheck({kind:"endsWith",value:T,...errorUtil.errToObj(A)})}min(T,A){return this._addCheck({kind:"min",value:T,...errorUtil.errToObj(A)})}max(T,A){return this._addCheck({kind:"max",value:T,...errorUtil.errToObj(A)})}length(T,A){return this._addCheck({kind:"length",value:T,...errorUtil.errToObj(A)})}nonempty(T){return this.min(1,errorUtil.errToObj(T))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(T=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find(T=>T.kind==="date")}get isTime(){return!!this._def.checks.find(T=>T.kind==="time")}get isDuration(){return!!this._def.checks.find(T=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find(T=>T.kind==="email")}get isURL(){return!!this._def.checks.find(T=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find(T=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find(T=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(T=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(T=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(T=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find(T=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find(T=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find(T=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find(T=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find(T=>T.kind==="base64url")}get minLength(){let T=null;for(const A of this._def.checks)A.kind==="min"&&(T===null||A.value>T)&&(T=A.value);return T}get maxLength(){let T=null;for(const A of this._def.checks)A.kind==="max"&&(T===null||A.value<T)&&(T=A.value);return T}}ZodString.create=S=>new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:S?.coerce??!1,...processCreateParams(S)});function floatSafeRemainder(S,T){const A=(S.toString().split(".")[1]||"").length,P=(T.toString().split(".")[1]||"").length,O=A>P?A:P,R=Number.parseInt(S.toFixed(O).replace(".","")),M=Number.parseInt(T.toFixed(O).replace(".",""));return R%M/10**O}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce&&(T.data=Number(T.data)),this._getType(T)!==ZodParsedType.number){const R=this._getOrReturnCtx(T);return addIssueToContext(R,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:R.parsedType}),INVALID}let P;const O=new ParseStatus;for(const R of this._def.checks)R.kind==="int"?util.isInteger(T.data)||(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:R.message}),O.dirty()):R.kind==="min"?(R.inclusive?T.data<R.value:T.data<=R.value)&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.too_small,minimum:R.value,type:"number",inclusive:R.inclusive,exact:!1,message:R.message}),O.dirty()):R.kind==="max"?(R.inclusive?T.data>R.value:T.data>=R.value)&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.too_big,maximum:R.value,type:"number",inclusive:R.inclusive,exact:!1,message:R.message}),O.dirty()):R.kind==="multipleOf"?floatSafeRemainder(T.data,R.value)!==0&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.not_multiple_of,multipleOf:R.value,message:R.message}),O.dirty()):R.kind==="finite"?Number.isFinite(T.data)||(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.not_finite,message:R.message}),O.dirty()):util.assertNever(R);return{status:O.value,value:T.data}}gte(T,A){return this.setLimit("min",T,!0,errorUtil.toString(A))}gt(T,A){return this.setLimit("min",T,!1,errorUtil.toString(A))}lte(T,A){return this.setLimit("max",T,!0,errorUtil.toString(A))}lt(T,A){return this.setLimit("max",T,!1,errorUtil.toString(A))}setLimit(T,A,P,O){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:T,value:A,inclusive:P,message:errorUtil.toString(O)}]})}_addCheck(T){return new ZodNumber({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:errorUtil.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(T)})}multipleOf(T,A){return this._addCheck({kind:"multipleOf",value:T,message:errorUtil.toString(A)})}finite(T){return this._addCheck({kind:"finite",message:errorUtil.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(T)})}get minValue(){let T=null;for(const A of this._def.checks)A.kind==="min"&&(T===null||A.value>T)&&(T=A.value);return T}get maxValue(){let T=null;for(const A of this._def.checks)A.kind==="max"&&(T===null||A.value<T)&&(T=A.value);return T}get isInt(){return!!this._def.checks.find(T=>T.kind==="int"||T.kind==="multipleOf"&&util.isInteger(T.value))}get isFinite(){let T=null,A=null;for(const P of this._def.checks){if(P.kind==="finite"||P.kind==="int"||P.kind==="multipleOf")return!0;P.kind==="min"?(A===null||P.value>A)&&(A=P.value):P.kind==="max"&&(T===null||P.value<T)&&(T=P.value)}return Number.isFinite(A)&&Number.isFinite(T)}}ZodNumber.create=S=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:S?.coerce||!1,...processCreateParams(S)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch{return this._getInvalidInput(T)}if(this._getType(T)!==ZodParsedType.bigint)return this._getInvalidInput(T);let P;const O=new ParseStatus;for(const R of this._def.checks)R.kind==="min"?(R.inclusive?T.data<R.value:T.data<=R.value)&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.too_small,type:"bigint",minimum:R.value,inclusive:R.inclusive,message:R.message}),O.dirty()):R.kind==="max"?(R.inclusive?T.data>R.value:T.data>=R.value)&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.too_big,type:"bigint",maximum:R.value,inclusive:R.inclusive,message:R.message}),O.dirty()):R.kind==="multipleOf"?T.data%R.value!==BigInt(0)&&(P=this._getOrReturnCtx(T,P),addIssueToContext(P,{code:ZodIssueCode.not_multiple_of,multipleOf:R.value,message:R.message}),O.dirty()):util.assertNever(R);return{status:O.value,value:T.data}}_getInvalidInput(T){const A=this._getOrReturnCtx(T);return addIssueToContext(A,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:A.parsedType}),INVALID}gte(T,A){return this.setLimit("min",T,!0,errorUtil.toString(A))}gt(T,A){return this.setLimit("min",T,!1,errorUtil.toString(A))}lte(T,A){return this.setLimit("max",T,!0,errorUtil.toString(A))}lt(T,A){return this.setLimit("max",T,!1,errorUtil.toString(A))}setLimit(T,A,P,O){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:T,value:A,inclusive:P,message:errorUtil.toString(O)}]})}_addCheck(T){return new ZodBigInt({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(T)})}multipleOf(T,A){return this._addCheck({kind:"multipleOf",value:T,message:errorUtil.toString(A)})}get minValue(){let T=null;for(const A of this._def.checks)A.kind==="min"&&(T===null||A.value>T)&&(T=A.value);return T}get maxValue(){let T=null;for(const A of this._def.checks)A.kind==="max"&&(T===null||A.value<T)&&(T=A.value);return T}}ZodBigInt.create=S=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:S?.coerce??!1,...processCreateParams(S)});class ZodBoolean extends ZodType{_parse(T){if(this._def.coerce&&(T.data=!!T.data),this._getType(T)!==ZodParsedType.boolean){const P=this._getOrReturnCtx(T);return addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:P.parsedType}),INVALID}return OK(T.data)}}ZodBoolean.create=S=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:S?.coerce||!1,...processCreateParams(S)});class ZodDate extends ZodType{_parse(T){if(this._def.coerce&&(T.data=new Date(T.data)),this._getType(T)!==ZodParsedType.date){const R=this._getOrReturnCtx(T);return addIssueToContext(R,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:R.parsedType}),INVALID}if(Number.isNaN(T.data.getTime())){const R=this._getOrReturnCtx(T);return addIssueToContext(R,{code:ZodIssueCode.invalid_date}),INVALID}const P=new ParseStatus;let O;for(const R of this._def.checks)R.kind==="min"?T.data.getTime()<R.value&&(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.too_small,message:R.message,inclusive:!0,exact:!1,minimum:R.value,type:"date"}),P.dirty()):R.kind==="max"?T.data.getTime()>R.value&&(O=this._getOrReturnCtx(T,O),addIssueToContext(O,{code:ZodIssueCode.too_big,message:R.message,inclusive:!0,exact:!1,maximum:R.value,type:"date"}),P.dirty()):util.assertNever(R);return{status:P.value,value:new Date(T.data.getTime())}}_addCheck(T){return new ZodDate({...this._def,checks:[...this._def.checks,T]})}min(T,A){return this._addCheck({kind:"min",value:T.getTime(),message:errorUtil.toString(A)})}max(T,A){return this._addCheck({kind:"max",value:T.getTime(),message:errorUtil.toString(A)})}get minDate(){let T=null;for(const A of this._def.checks)A.kind==="min"&&(T===null||A.value>T)&&(T=A.value);return T!=null?new Date(T):null}get maxDate(){let T=null;for(const A of this._def.checks)A.kind==="max"&&(T===null||A.value<T)&&(T=A.value);return T!=null?new Date(T):null}}ZodDate.create=S=>new ZodDate({checks:[],coerce:S?.coerce||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(S)});class ZodSymbol extends ZodType{_parse(T){if(this._getType(T)!==ZodParsedType.symbol){const P=this._getOrReturnCtx(T);return addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:P.parsedType}),INVALID}return OK(T.data)}}ZodSymbol.create=S=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(S)});class ZodUndefined extends ZodType{_parse(T){if(this._getType(T)!==ZodParsedType.undefined){const P=this._getOrReturnCtx(T);return addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:P.parsedType}),INVALID}return OK(T.data)}}ZodUndefined.create=S=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(S)});class ZodNull extends ZodType{_parse(T){if(this._getType(T)!==ZodParsedType.null){const P=this._getOrReturnCtx(T);return addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:P.parsedType}),INVALID}return OK(T.data)}}ZodNull.create=S=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(S)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(T){return OK(T.data)}}ZodAny.create=S=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(S)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(T){return OK(T.data)}}ZodUnknown.create=S=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(S)});class ZodNever extends ZodType{_parse(T){const A=this._getOrReturnCtx(T);return addIssueToContext(A,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:A.parsedType}),INVALID}}ZodNever.create=S=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(S)});class ZodVoid extends ZodType{_parse(T){if(this._getType(T)!==ZodParsedType.undefined){const P=this._getOrReturnCtx(T);return addIssueToContext(P,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:P.parsedType}),INVALID}return OK(T.data)}}ZodVoid.create=S=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(S)});class ZodArray extends ZodType{_parse(T){const{ctx:A,status:P}=this._processInputParams(T),O=this._def;if(A.parsedType!==ZodParsedType.array)return addIssueToContext(A,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:A.parsedType}),INVALID;if(O.exactLength!==null){const M=A.data.length>O.exactLength.value,D=A.data.length<O.exactLength.value;(M||D)&&(addIssueToContext(A,{code:M?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:D?O.exactLength.value:void 0,maximum:M?O.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:O.exactLength.message}),P.dirty())}if(O.minLength!==null&&A.data.length<O.minLength.value&&(addIssueToContext(A,{code:ZodIssueCode.too_small,minimum:O.minLength.value,type:"array",inclusive:!0,exact:!1,message:O.minLength.message}),P.dirty()),O.maxLength!==null&&A.data.length>O.maxLength.value&&(addIssueToContext(A,{code:ZodIssueCode.too_big,maximum:O.maxLength.value,type:"array",inclusive:!0,exact:!1,message:O.maxLength.message}),P.dirty()),A.common.async)return Promise.all([...A.data].map((M,D)=>O.type._parseAsync(new ParseInputLazyPath(A,M,A.path,D)))).then(M=>ParseStatus.mergeArray(P,M));const R=[...A.data].map((M,D)=>O.type._parseSync(new ParseInputLazyPath(A,M,A.path,D)));return ParseStatus.mergeArray(P,R)}get element(){return this._def.type}min(T,A){return new ZodArray({...this._def,minLength:{value:T,message:errorUtil.toString(A)}})}max(T,A){return new ZodArray({...this._def,maxLength:{value:T,message:errorUtil.toString(A)}})}length(T,A){return new ZodArray({...this._def,exactLength:{value:T,message:errorUtil.toString(A)}})}nonempty(T){return this.min(1,T)}}ZodArray.create=(S,T)=>new ZodArray({type:S,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(T)});function deepPartialify(S){if(S instanceof ZodObject){const T={};for(const A in S.shape){const P=S.shape[A];T[A]=ZodOptional.create(deepPartialify(P))}return new ZodObject({...S._def,shape:()=>T})}else return S instanceof ZodArray?new ZodArray({...S._def,type:deepPartialify(S.element)}):S instanceof ZodOptional?ZodOptional.create(deepPartialify(S.unwrap())):S instanceof ZodNullable?ZodNullable.create(deepPartialify(S.unwrap())):S instanceof ZodTuple?ZodTuple.create(S.items.map(T=>deepPartialify(T))):S}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const T=this._def.shape(),A=util.objectKeys(T);return this._cached={shape:T,keys:A},this._cached}_parse(T){if(this._getType(T)!==ZodParsedType.object){const C=this._getOrReturnCtx(T);return addIssueToContext(C,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:C.parsedType}),INVALID}const{status:P,ctx:O}=this._processInputParams(T),{shape:R,keys:M}=this._getCached(),D=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const C in O.data)M.includes(C)||D.push(C);const U=[];for(const C of M){const L=R[C],y=O.data[C];U.push({key:{status:"valid",value:C},value:L._parse(new ParseInputLazyPath(O,y,O.path,C)),alwaysSet:C in O.data})}if(this._def.catchall instanceof ZodNever){const C=this._def.unknownKeys;if(C==="passthrough")for(const L of D)U.push({key:{status:"valid",value:L},value:{status:"valid",value:O.data[L]}});else if(C==="strict")D.length>0&&(addIssueToContext(O,{code:ZodIssueCode.unrecognized_keys,keys:D}),P.dirty());else if(C!=="strip")throw new Error("Interna