UNPKG

hacker-news-reel

Version:

A lightweight, typed client for the Hacker News API with validation using Zod

1 lines 77.3 kB
import V0 from"bottleneck";class p{cache=new Map;options;fetchPromises=new Map;constructor(Q={}){this.options={maxAge:60000,staleWhileRevalidate:300000,maxEntries:1000,...Q}}evictLRUIfNeeded(){let{maxEntries:Q}=this.options;if(!Q||this.cache.size<=Q)return;let $=this.cache.size-Q;Array.from(this.cache.entries()).map(([G,J])=>({key:G,lastAccessed:J.lastAccessed!==void 0?J.lastAccessed:J.timestamp})).sort((G,J)=>G.lastAccessed-J.lastAccessed).slice(0,$).forEach((G)=>{this.cache.delete(G.key)})}async get(Q,$){let X=Date.now(),G=this.cache.get(Q);if(G&&X-G.timestamp<this.options.maxAge)return this.cache.set(Q,{...G,lastAccessed:X}),G.data;if(G&&X-G.timestamp<this.options.staleWhileRevalidate)return this.refreshInBackground(Q,$),this.cache.set(Q,{...G,lastAccessed:X}),G.data;if(this.fetchPromises.has(Q)){let J=this.fetchPromises.get(Q);if(J)return J}return this.fetchAndCache(Q,$)}async refresh(Q,$){return this.fetchAndCache(Q,$)}invalidate(Q){this.cache.delete(Q),this.fetchPromises.delete(Q)}clear(){this.cache.clear(),this.fetchPromises.clear()}has(Q){return this.cache.has(Q)}refreshInBackground(Q,$){this.fetchAndCache(Q,$).catch((X)=>{console.error(`Background cache refresh failed for key "${Q}":`,X),this.fetchPromises.delete(Q)})}async fetchAndCache(Q,$){let X=(async()=>{try{let G=await $(),J=Date.now();return this.cache.set(Q,{data:G,timestamp:J,lastAccessed:J}),this.evictLRUIfNeeded(),G}finally{this.fetchPromises.delete(Q)}})();return this.fetchPromises.set(Q,X),X}}class LQ{beforeFetchHooks=[];afterFetchHooks=[];onErrorHooks=[];register(Q){if(Q.beforeFetch)this.beforeFetchHooks.push(Q.beforeFetch);if(Q.afterFetch)this.afterFetchHooks.push(Q.afterFetch);if(Q.onError)this.onErrorHooks.push(Q.onError)}clear(){this.beforeFetchHooks=[],this.afterFetchHooks=[],this.onErrorHooks=[]}async runBeforeFetchHooks(Q,$){let X={url:Q,options:$};for(let G of this.beforeFetchHooks)X=G(X.url,X.options);return X}async runAfterFetchHooks(Q){let $=Q;for(let X of this.afterFetchHooks)$=await X($);return $}async runOnErrorHooks(Q){let $=Q;for(let X of this.onErrorHooks)try{let G=await X($);if(G instanceof Error)$=G}catch(G){if(G instanceof Error)$=G}return $}}var D;(function(Q){Q.assertEqual=(J)=>J;function $(J){}Q.assertIs=$;function X(J){throw new Error}Q.assertNever=X,Q.arrayToEnum=(J)=>{let W={};for(let Y of J)W[Y]=Y;return W},Q.getValidEnumValues=(J)=>{let W=Q.objectKeys(J).filter((H)=>typeof J[J[H]]!=="number"),Y={};for(let H of W)Y[H]=J[H];return Q.objectValues(Y)},Q.objectValues=(J)=>{return Q.objectKeys(J).map(function(W){return J[W]})},Q.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let W=[];for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))W.push(Y);return W},Q.find=(J,W)=>{for(let Y of J)if(W(Y))return Y;return},Q.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&isFinite(J)&&Math.floor(J)===J;function G(J,W=" | "){return J.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(W)}Q.joinValues=G,Q.jsonStringifyReplacer=(J,W)=>{if(typeof W==="bigint")return W.toString();return W}})(D||(D={}));var ZQ;(function(Q){Q.mergeShapes=($,X)=>{return{...$,...X}}})(ZQ||(ZQ={}));var w=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),d=(Q)=>{switch(typeof Q){case"undefined":return w.undefined;case"string":return w.string;case"number":return isNaN(Q)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":if(Array.isArray(Q))return w.array;if(Q===null)return w.null;if(Q.then&&typeof Q.then==="function"&&Q.catch&&typeof Q.catch==="function")return w.promise;if(typeof Map!=="undefined"&&Q instanceof Map)return w.map;if(typeof Set!=="undefined"&&Q instanceof Set)return w.set;if(typeof Date!=="undefined"&&Q instanceof Date)return w.date;return w.object;default:return w.unknown}},q=D.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"]),D0=(Q)=>{return JSON.stringify(Q,null,2).replace(/"([^"]+)":/g,"$1:")};class k extends Error{get errors(){return this.issues}constructor(Q){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=Q}format(Q){let $=Q||function(J){return J.message},X={_errors:[]},G=(J)=>{for(let W of J.issues)if(W.code==="invalid_union")W.unionErrors.map(G);else if(W.code==="invalid_return_type")G(W.returnTypeError);else if(W.code==="invalid_arguments")G(W.argumentsError);else if(W.path.length===0)X._errors.push($(W));else{let Y=X,H=0;while(H<W.path.length){let B=W.path[H];if(H!==W.path.length-1)Y[B]=Y[B]||{_errors:[]};else Y[B]=Y[B]||{_errors:[]},Y[B]._errors.push($(W));Y=Y[B],H++}}};return G(this),X}static assert(Q){if(!(Q instanceof k))throw new Error(`Not a ZodError: ${Q}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(Q=($)=>$.message){let $={},X=[];for(let G of this.issues)if(G.path.length>0)$[G.path[0]]=$[G.path[0]]||[],$[G.path[0]].push(Q(G));else X.push(Q(G));return{formErrors:X,fieldErrors:$}}get formErrors(){return this.flatten()}}k.create=(Q)=>{return new k(Q)};var qQ=(Q,$)=>{let X;switch(Q.code){case q.invalid_type:if(Q.received===w.undefined)X="Required";else X=`Expected ${Q.expected}, received ${Q.received}`;break;case q.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify(Q.expected,D.jsonStringifyReplacer)}`;break;case q.unrecognized_keys:X=`Unrecognized key(s) in object: ${D.joinValues(Q.keys,", ")}`;break;case q.invalid_union:X="Invalid input";break;case q.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${D.joinValues(Q.options)}`;break;case q.invalid_enum_value:X=`Invalid enum value. Expected ${D.joinValues(Q.options)}, received '${Q.received}'`;break;case q.invalid_arguments:X="Invalid function arguments";break;case q.invalid_return_type:X="Invalid function return type";break;case q.invalid_date:X="Invalid date";break;case q.invalid_string:if(typeof Q.validation==="object")if("includes"in Q.validation){if(X=`Invalid input: must include "${Q.validation.includes}"`,typeof Q.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${Q.validation.position}`}else if("startsWith"in Q.validation)X=`Invalid input: must start with "${Q.validation.startsWith}"`;else if("endsWith"in Q.validation)X=`Invalid input: must end with "${Q.validation.endsWith}"`;else D.assertNever(Q.validation);else if(Q.validation!=="regex")X=`Invalid ${Q.validation}`;else X="Invalid";break;case q.too_small:if(Q.type==="array")X=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at least":"more than"} ${Q.minimum} element(s)`;else if(Q.type==="string")X=`String must contain ${Q.exact?"exactly":Q.inclusive?"at least":"over"} ${Q.minimum} character(s)`;else if(Q.type==="number")X=`Number must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${Q.minimum}`;else if(Q.type==="date")X=`Date must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(Q.minimum))}`;else X="Invalid input";break;case q.too_big:if(Q.type==="array")X=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at most":"less than"} ${Q.maximum} element(s)`;else if(Q.type==="string")X=`String must contain ${Q.exact?"exactly":Q.inclusive?"at most":"under"} ${Q.maximum} character(s)`;else if(Q.type==="number")X=`Number must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="bigint")X=`BigInt must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="date")X=`Date must be ${Q.exact?"exactly":Q.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(Q.maximum))}`;else X="Invalid input";break;case q.custom:X="Invalid input";break;case q.invalid_intersection_types:X="Intersection results could not be merged";break;case q.not_multiple_of:X=`Number must be a multiple of ${Q.multipleOf}`;break;case q.not_finite:X="Number must be finite";break;default:X=$.defaultError,D.assertNever(Q)}return{message:X}},eQ=qQ;function U0(Q){eQ=Q}function PQ(){return eQ}var kQ=(Q)=>{let{data:$,path:X,errorMaps:G,issueData:J}=Q,W=[...X,...J.path||[]],Y={...J,path:W};if(J.message!==void 0)return{...J,path:W,message:J.message};let H="",B=G.filter((z)=>!!z).slice().reverse();for(let z of B)H=z(Y,{data:$,defaultError:H}).message;return{...J,path:W,message:H}},K0=[];function M(Q,$){let X=PQ(),G=kQ({issueData:$,data:Q.data,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,X,X===qQ?void 0:qQ].filter((J)=>!!J)});Q.common.issues.push(G)}class C{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(Q,$){let X=[];for(let G of $){if(G.status==="aborted")return R;if(G.status==="dirty")Q.dirty();X.push(G.value)}return{status:Q.value,value:X}}static async mergeObjectAsync(Q,$){let X=[];for(let G of $){let J=await G.key,W=await G.value;X.push({key:J,value:W})}return C.mergeObjectSync(Q,X)}static mergeObjectSync(Q,$){let X={};for(let G of $){let{key:J,value:W}=G;if(J.status==="aborted")return R;if(W.status==="aborted")return R;if(J.status==="dirty")Q.dirty();if(W.status==="dirty")Q.dirty();if(J.value!=="__proto__"&&(typeof W.value!=="undefined"||G.alwaysSet))X[J.value]=W.value}return{status:Q.value,value:X}}}var R=Object.freeze({status:"aborted"}),WQ=(Q)=>({status:"dirty",value:Q}),f=(Q)=>({status:"valid",value:Q}),cQ=(Q)=>Q.status==="aborted",uQ=(Q)=>Q.status==="dirty",t=(Q)=>Q.status==="valid",UQ=(Q)=>typeof Promise!=="undefined"&&Q instanceof Promise;function gQ(Q,$,X,G){if(X==="a"&&!G)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?Q!==$||!G:!$.has(Q))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?G:X==="a"?G.call(Q):G?G.value:$.get(Q)}function Q0(Q,$,X,G,J){if(G==="m")throw new TypeError("Private method is not writable");if(G==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?Q!==$||!J:!$.has(Q))throw new TypeError("Cannot write private member to an object whose class did not declare it");return G==="a"?J.call(Q,X):J?J.value=X:$.set(Q,X),X}var j;(function(Q){Q.errToObj=($)=>typeof $==="string"?{message:$}:$||{},Q.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(j||(j={}));var SQ,DQ;class y{constructor(Q,$,X,G){this._cachedPath=[],this.parent=Q,this.data=$,this._path=X,this._key=G}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var aQ=(Q,$)=>{if(t($))return{success:!0,data:$.value};else{if(!Q.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new k(Q.common.issues);return this._error=X,this._error}}}};function A(Q){if(!Q)return{};let{errorMap:$,invalid_type_error:X,required_error:G,description:J}=Q;if($&&(X||G))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(Y,H)=>{var B,z;let{message:_}=Q;if(Y.code==="invalid_enum_value")return{message:_!==null&&_!==void 0?_:H.defaultError};if(typeof H.data==="undefined")return{message:(B=_!==null&&_!==void 0?_:G)!==null&&B!==void 0?B:H.defaultError};if(Y.code!=="invalid_type")return{message:H.defaultError};return{message:(z=_!==null&&_!==void 0?_:X)!==null&&z!==void 0?z:H.defaultError}},description:J}}class L{get description(){return this._def.description}_getType(Q){return d(Q.data)}_getOrReturnCtx(Q,$){return $||{common:Q.parent.common,data:Q.data,parsedType:d(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}_processInputParams(Q){return{status:new C,ctx:{common:Q.parent.common,data:Q.data,parsedType:d(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}}_parseSync(Q){let $=this._parse(Q);if(UQ($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(Q){let $=this._parse(Q);return Promise.resolve($)}parse(Q,$){let X=this.safeParse(Q,$);if(X.success)return X.data;throw X.error}safeParse(Q,$){var X;let G={common:{issues:[],async:(X=$===null||$===void 0?void 0:$.async)!==null&&X!==void 0?X:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:d(Q)},J=this._parseSync({data:Q,path:G.path,parent:G});return aQ(G,J)}"~validate"(Q){var $,X;let G={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:d(Q)};if(!this["~standard"].async)try{let J=this._parseSync({data:Q,path:[],parent:G});return t(J)?{value:J.value}:{issues:G.common.issues}}catch(J){if((X=($=J===null||J===void 0?void 0:J.message)===null||$===void 0?void 0:$.toLowerCase())===null||X===void 0?void 0:X.includes("encountered"))this["~standard"].async=!0;G.common={issues:[],async:!0}}return this._parseAsync({data:Q,path:[],parent:G}).then((J)=>t(J)?{value:J.value}:{issues:G.common.issues})}async parseAsync(Q,$){let X=await this.safeParseAsync(Q,$);if(X.success)return X.data;throw X.error}async safeParseAsync(Q,$){let X={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:d(Q)},G=this._parse({data:Q,path:X.path,parent:X}),J=await(UQ(G)?G:Promise.resolve(G));return aQ(X,J)}refine(Q,$){let X=(G)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(G);else return $};return this._refinement((G,J)=>{let W=Q(G),Y=()=>J.addIssue({code:q.custom,...X(G)});if(typeof Promise!=="undefined"&&W instanceof Promise)return W.then((H)=>{if(!H)return Y(),!1;else return!0});if(!W)return Y(),!1;else return!0})}refinement(Q,$){return this._refinement((X,G)=>{if(!Q(X))return G.addIssue(typeof $==="function"?$(X,G):$),!1;else return!0})}_refinement(Q){return new T({schema:this,typeName:O.ZodEffects,effect:{type:"refinement",refinement:Q}})}superRefine(Q){return this._refinement(Q)}constructor(Q){this.spa=this.safeParseAsync,this._def=Q,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:($)=>this["~validate"]($)}}optional(){return l.create(this,this._def)}nullable(){return i.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return x.create(this)}promise(){return XQ.create(this,this._def)}or(Q){return wQ.create([this,Q],this._def)}and(Q){return jQ.create(this,Q,this._def)}transform(Q){return new T({...A(this._def),schema:this,typeName:O.ZodEffects,effect:{type:"transform",transform:Q}})}default(Q){let $=typeof Q==="function"?Q:()=>Q;return new RQ({...A(this._def),innerType:this,defaultValue:$,typeName:O.ZodDefault})}brand(){return new hQ({typeName:O.ZodBranded,type:this,...A(this._def)})}catch(Q){let $=typeof Q==="function"?Q:()=>Q;return new _Q({...A(this._def),innerType:this,catchValue:$,typeName:O.ZodCatch})}describe(Q){return new this.constructor({...this._def,description:Q})}pipe(Q){return bQ.create(this,Q)}readonly(){return AQ.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var E0=/^c[^\s-]{8,}$/i,F0=/^[0-9a-z]+$/,N0=/^[0-9A-HJKMNP-TV-Z]{26}$/i,v0=/^[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,b0=/^[a-z0-9_-]{21}$/i,C0=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,f0=/^[-+]?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)?)??$/,I0=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,P0="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mQ,k0=/^(?:(?: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])$/,g0=/^(?:(?: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])$/,T0=/^(([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]))$/,h0=/^(([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])$/,x0=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,l0=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,$0="((\\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])))",y0=new RegExp(`^${$0}$`);function X0(Q){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(Q.precision)$=`${$}\\.\\d{${Q.precision}}`;else if(Q.precision==null)$=`${$}(\\.\\d+)?`;return $}function m0(Q){return new RegExp(`^${X0(Q)}$`)}function J0(Q){let $=`${$0}T${X0(Q)}`,X=[];if(X.push(Q.local?"Z?":"Z"),Q.offset)X.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${X.join("|")})`,new RegExp(`^${$}$`)}function Z0(Q,$){if(($==="v4"||!$)&&k0.test(Q))return!0;if(($==="v6"||!$)&&T0.test(Q))return!0;return!1}function c0(Q,$){if(!C0.test(Q))return!1;try{let[X]=Q.split("."),G=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),J=JSON.parse(atob(G));if(typeof J!=="object"||J===null)return!1;if(!J.typ||!J.alg)return!1;if($&&J.alg!==$)return!1;return!0}catch(X){return!1}}function u0(Q,$){if(($==="v4"||!$)&&g0.test(Q))return!0;if(($==="v6"||!$)&&h0.test(Q))return!0;return!1}class h extends L{_parse(Q){if(this._def.coerce)Q.data=String(Q.data);if(this._getType(Q)!==w.string){let J=this._getOrReturnCtx(Q);return M(J,{code:q.invalid_type,expected:w.string,received:J.parsedType}),R}let X=new C,G=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(Q.data.length<J.value)G=this._getOrReturnCtx(Q,G),M(G,{code:q.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(Q.data.length>J.value)G=this._getOrReturnCtx(Q,G),M(G,{code:q.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="length"){let W=Q.data.length>J.value,Y=Q.data.length<J.value;if(W||Y){if(G=this._getOrReturnCtx(Q,G),W)M(G,{code:q.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)M(G,{code:q.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});X.dirty()}}else if(J.kind==="email"){if(!I0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"email",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="emoji"){if(!mQ)mQ=new RegExp(P0,"u");if(!mQ.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"emoji",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="uuid"){if(!v0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"uuid",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="nanoid"){if(!b0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"nanoid",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid"){if(!E0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"cuid",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid2"){if(!F0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"cuid2",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ulid"){if(!N0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"ulid",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="url")try{new URL(Q.data)}catch(W){G=this._getOrReturnCtx(Q,G),M(G,{validation:"url",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"regex",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="trim")Q.data=Q.data.trim();else if(J.kind==="includes"){if(!Q.data.includes(J.value,J.position))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),X.dirty()}else if(J.kind==="toLowerCase")Q.data=Q.data.toLowerCase();else if(J.kind==="toUpperCase")Q.data=Q.data.toUpperCase();else if(J.kind==="startsWith"){if(!Q.data.startsWith(J.value))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:{startsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="endsWith"){if(!Q.data.endsWith(J.value))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:{endsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="datetime"){if(!J0(J).test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:"datetime",message:J.message}),X.dirty()}else if(J.kind==="date"){if(!y0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:"date",message:J.message}),X.dirty()}else if(J.kind==="time"){if(!m0(J).test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{code:q.invalid_string,validation:"time",message:J.message}),X.dirty()}else if(J.kind==="duration"){if(!f0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"duration",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ip"){if(!Z0(Q.data,J.version))G=this._getOrReturnCtx(Q,G),M(G,{validation:"ip",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="jwt"){if(!c0(Q.data,J.alg))G=this._getOrReturnCtx(Q,G),M(G,{validation:"jwt",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cidr"){if(!u0(Q.data,J.version))G=this._getOrReturnCtx(Q,G),M(G,{validation:"cidr",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64"){if(!x0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"base64",code:q.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64url"){if(!l0.test(Q.data))G=this._getOrReturnCtx(Q,G),M(G,{validation:"base64url",code:q.invalid_string,message:J.message}),X.dirty()}else D.assertNever(J);return{status:X.value,value:Q.data}}_regex(Q,$,X){return this.refinement((G)=>Q.test(G),{validation:$,code:q.invalid_string,...j.errToObj(X)})}_addCheck(Q){return new h({...this._def,checks:[...this._def.checks,Q]})}email(Q){return this._addCheck({kind:"email",...j.errToObj(Q)})}url(Q){return this._addCheck({kind:"url",...j.errToObj(Q)})}emoji(Q){return this._addCheck({kind:"emoji",...j.errToObj(Q)})}uuid(Q){return this._addCheck({kind:"uuid",...j.errToObj(Q)})}nanoid(Q){return this._addCheck({kind:"nanoid",...j.errToObj(Q)})}cuid(Q){return this._addCheck({kind:"cuid",...j.errToObj(Q)})}cuid2(Q){return this._addCheck({kind:"cuid2",...j.errToObj(Q)})}ulid(Q){return this._addCheck({kind:"ulid",...j.errToObj(Q)})}base64(Q){return this._addCheck({kind:"base64",...j.errToObj(Q)})}base64url(Q){return this._addCheck({kind:"base64url",...j.errToObj(Q)})}jwt(Q){return this._addCheck({kind:"jwt",...j.errToObj(Q)})}ip(Q){return this._addCheck({kind:"ip",...j.errToObj(Q)})}cidr(Q){return this._addCheck({kind:"cidr",...j.errToObj(Q)})}datetime(Q){var $,X;if(typeof Q==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:Q});return this._addCheck({kind:"datetime",precision:typeof(Q===null||Q===void 0?void 0:Q.precision)==="undefined"?null:Q===null||Q===void 0?void 0:Q.precision,offset:($=Q===null||Q===void 0?void 0:Q.offset)!==null&&$!==void 0?$:!1,local:(X=Q===null||Q===void 0?void 0:Q.local)!==null&&X!==void 0?X:!1,...j.errToObj(Q===null||Q===void 0?void 0:Q.message)})}date(Q){return this._addCheck({kind:"date",message:Q})}time(Q){if(typeof Q==="string")return this._addCheck({kind:"time",precision:null,message:Q});return this._addCheck({kind:"time",precision:typeof(Q===null||Q===void 0?void 0:Q.precision)==="undefined"?null:Q===null||Q===void 0?void 0:Q.precision,...j.errToObj(Q===null||Q===void 0?void 0:Q.message)})}duration(Q){return this._addCheck({kind:"duration",...j.errToObj(Q)})}regex(Q,$){return this._addCheck({kind:"regex",regex:Q,...j.errToObj($)})}includes(Q,$){return this._addCheck({kind:"includes",value:Q,position:$===null||$===void 0?void 0:$.position,...j.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(Q,$){return this._addCheck({kind:"startsWith",value:Q,...j.errToObj($)})}endsWith(Q,$){return this._addCheck({kind:"endsWith",value:Q,...j.errToObj($)})}min(Q,$){return this._addCheck({kind:"min",value:Q,...j.errToObj($)})}max(Q,$){return this._addCheck({kind:"max",value:Q,...j.errToObj($)})}length(Q,$){return this._addCheck({kind:"length",value:Q,...j.errToObj($)})}nonempty(Q){return this.min(1,j.errToObj(Q))}trim(){return new h({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new h({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new h({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((Q)=>Q.kind==="datetime")}get isDate(){return!!this._def.checks.find((Q)=>Q.kind==="date")}get isTime(){return!!this._def.checks.find((Q)=>Q.kind==="time")}get isDuration(){return!!this._def.checks.find((Q)=>Q.kind==="duration")}get isEmail(){return!!this._def.checks.find((Q)=>Q.kind==="email")}get isURL(){return!!this._def.checks.find((Q)=>Q.kind==="url")}get isEmoji(){return!!this._def.checks.find((Q)=>Q.kind==="emoji")}get isUUID(){return!!this._def.checks.find((Q)=>Q.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((Q)=>Q.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((Q)=>Q.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((Q)=>Q.kind==="cuid2")}get isULID(){return!!this._def.checks.find((Q)=>Q.kind==="ulid")}get isIP(){return!!this._def.checks.find((Q)=>Q.kind==="ip")}get isCIDR(){return!!this._def.checks.find((Q)=>Q.kind==="cidr")}get isBase64(){return!!this._def.checks.find((Q)=>Q.kind==="base64")}get isBase64url(){return!!this._def.checks.find((Q)=>Q.kind==="base64url")}get minLength(){let Q=null;for(let $ of this._def.checks)if($.kind==="min"){if(Q===null||$.value>Q)Q=$.value}return Q}get maxLength(){let Q=null;for(let $ of this._def.checks)if($.kind==="max"){if(Q===null||$.value<Q)Q=$.value}return Q}}h.create=(Q)=>{var $;return new h({checks:[],typeName:O.ZodString,coerce:($=Q===null||Q===void 0?void 0:Q.coerce)!==null&&$!==void 0?$:!1,...A(Q)})};function p0(Q,$){let X=(Q.toString().split(".")[1]||"").length,G=($.toString().split(".")[1]||"").length,J=X>G?X:G,W=parseInt(Q.toFixed(J).replace(".","")),Y=parseInt($.toFixed(J).replace(".",""));return W%Y/Math.pow(10,J)}class o extends L{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(Q){if(this._def.coerce)Q.data=Number(Q.data);if(this._getType(Q)!==w.number){let J=this._getOrReturnCtx(Q);return M(J,{code:q.invalid_type,expected:w.number,received:J.parsedType}),R}let X=void 0,G=new C;for(let J of this._def.checks)if(J.kind==="int"){if(!D.isInteger(Q.data))X=this._getOrReturnCtx(Q,X),M(X,{code:q.invalid_type,expected:"integer",received:"float",message:J.message}),G.dirty()}else if(J.kind==="min"){if(J.inclusive?Q.data<J.value:Q.data<=J.value)X=this._getOrReturnCtx(Q,X),M(X,{code:q.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),G.dirty()}else if(J.kind==="max"){if(J.inclusive?Q.data>J.value:Q.data>=J.value)X=this._getOrReturnCtx(Q,X),M(X,{code:q.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),G.dirty()}else if(J.kind==="multipleOf"){if(p0(Q.data,J.value)!==0)X=this._getOrReturnCtx(Q,X),M(X,{code:q.not_multiple_of,multipleOf:J.value,message:J.message}),G.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(Q.data))X=this._getOrReturnCtx(Q,X),M(X,{code:q.not_finite,message:J.message}),G.dirty()}else D.assertNever(J);return{status:G.value,value:Q.data}}gte(Q,$){return this.setLimit("min",Q,!0,j.toString($))}gt(Q,$){return this.setLimit("min",Q,!1,j.toString($))}lte(Q,$){return this.setLimit("max",Q,!0,j.toString($))}lt(Q,$){return this.setLimit("max",Q,!1,j.toString($))}setLimit(Q,$,X,G){return new o({...this._def,checks:[...this._def.checks,{kind:Q,value:$,inclusive:X,message:j.toString(G)}]})}_addCheck(Q){return new o({...this._def,checks:[...this._def.checks,Q]})}int(Q){return this._addCheck({kind:"int",message:j.toString(Q)})}positive(Q){return this._addCheck({kind:"min",value:0,inclusive:!1,message:j.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:0,inclusive:!1,message:j.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:0,inclusive:!0,message:j.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:0,inclusive:!0,message:j.toString(Q)})}multipleOf(Q,$){return this._addCheck({kind:"multipleOf",value:Q,message:j.toString($)})}finite(Q){return this._addCheck({kind:"finite",message:j.toString(Q)})}safe(Q){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:j.toString(Q)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:j.toString(Q)})}get minValue(){let Q=null;for(let $ of this._def.checks)if($.kind==="min"){if(Q===null||$.value>Q)Q=$.value}return Q}get maxValue(){let Q=null;for(let $ of this._def.checks)if($.kind==="max"){if(Q===null||$.value<Q)Q=$.value}return Q}get isInt(){return!!this._def.checks.find((Q)=>Q.kind==="int"||Q.kind==="multipleOf"&&D.isInteger(Q.value))}get isFinite(){let Q=null,$=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if($===null||X.value>$)$=X.value}else if(X.kind==="max"){if(Q===null||X.value<Q)Q=X.value}return Number.isFinite($)&&Number.isFinite(Q)}}o.create=(Q)=>{return new o({checks:[],typeName:O.ZodNumber,coerce:(Q===null||Q===void 0?void 0:Q.coerce)||!1,...A(Q)})};class a extends L{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(Q){if(this._def.coerce)try{Q.data=BigInt(Q.data)}catch(J){return this._getInvalidInput(Q)}if(this._getType(Q)!==w.bigint)return this._getInvalidInput(Q);let X=void 0,G=new C;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?Q.data<J.value:Q.data<=J.value)X=this._getOrReturnCtx(Q,X),M(X,{code:q.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),G.dirty()}else if(J.kind==="max"){if(J.inclusive?Q.data>J.value:Q.data>=J.value)X=this._getOrReturnCtx(Q,X),M(X,{code:q.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),G.dirty()}else if(J.kind==="multipleOf"){if(Q.data%J.value!==BigInt(0))X=this._getOrReturnCtx(Q,X),M(X,{code:q.not_multiple_of,multipleOf:J.value,message:J.message}),G.dirty()}else D.assertNever(J);return{status:G.value,value:Q.data}}_getInvalidInput(Q){let $=this._getOrReturnCtx(Q);return M($,{code:q.invalid_type,expected:w.bigint,received:$.parsedType}),R}gte(Q,$){return this.setLimit("min",Q,!0,j.toString($))}gt(Q,$){return this.setLimit("min",Q,!1,j.toString($))}lte(Q,$){return this.setLimit("max",Q,!0,j.toString($))}lt(Q,$){return this.setLimit("max",Q,!1,j.toString($))}setLimit(Q,$,X,G){return new a({...this._def,checks:[...this._def.checks,{kind:Q,value:$,inclusive:X,message:j.toString(G)}]})}_addCheck(Q){return new a({...this._def,checks:[...this._def.checks,Q]})}positive(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:j.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:j.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:j.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:j.toString(Q)})}multipleOf(Q,$){return this._addCheck({kind:"multipleOf",value:Q,message:j.toString($)})}get minValue(){let Q=null;for(let $ of this._def.checks)if($.kind==="min"){if(Q===null||$.value>Q)Q=$.value}return Q}get maxValue(){let Q=null;for(let $ of this._def.checks)if($.kind==="max"){if(Q===null||$.value<Q)Q=$.value}return Q}}a.create=(Q)=>{var $;return new a({checks:[],typeName:O.ZodBigInt,coerce:($=Q===null||Q===void 0?void 0:Q.coerce)!==null&&$!==void 0?$:!1,...A(Q)})};class HQ extends L{_parse(Q){if(this._def.coerce)Q.data=Boolean(Q.data);if(this._getType(Q)!==w.boolean){let X=this._getOrReturnCtx(Q);return M(X,{code:q.invalid_type,expected:w.boolean,received:X.parsedType}),R}return f(Q.data)}}HQ.create=(Q)=>{return new HQ({typeName:O.ZodBoolean,coerce:(Q===null||Q===void 0?void 0:Q.coerce)||!1,...A(Q)})};class e extends L{_parse(Q){if(this._def.coerce)Q.data=new Date(Q.data);if(this._getType(Q)!==w.date){let J=this._getOrReturnCtx(Q);return M(J,{code:q.invalid_type,expected:w.date,received:J.parsedType}),R}if(isNaN(Q.data.getTime())){let J=this._getOrReturnCtx(Q);return M(J,{code:q.invalid_date}),R}let X=new C,G=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(Q.data.getTime()<J.value)G=this._getOrReturnCtx(Q,G),M(G,{code:q.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),X.dirty()}else if(J.kind==="max"){if(Q.data.getTime()>J.value)G=this._getOrReturnCtx(Q,G),M(G,{code:q.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),X.dirty()}else D.assertNever(J);return{status:X.value,value:new Date(Q.data.getTime())}}_addCheck(Q){return new e({...this._def,checks:[...this._def.checks,Q]})}min(Q,$){return this._addCheck({kind:"min",value:Q.getTime(),message:j.toString($)})}max(Q,$){return this._addCheck({kind:"max",value:Q.getTime(),message:j.toString($)})}get minDate(){let Q=null;for(let $ of this._def.checks)if($.kind==="min"){if(Q===null||$.value>Q)Q=$.value}return Q!=null?new Date(Q):null}get maxDate(){let Q=null;for(let $ of this._def.checks)if($.kind==="max"){if(Q===null||$.value<Q)Q=$.value}return Q!=null?new Date(Q):null}}e.create=(Q)=>{return new e({checks:[],coerce:(Q===null||Q===void 0?void 0:Q.coerce)||!1,typeName:O.ZodDate,...A(Q)})};class KQ extends L{_parse(Q){if(this._getType(Q)!==w.symbol){let X=this._getOrReturnCtx(Q);return M(X,{code:q.invalid_type,expected:w.symbol,received:X.parsedType}),R}return f(Q.data)}}KQ.create=(Q)=>{return new KQ({typeName:O.ZodSymbol,...A(Q)})};class BQ extends L{_parse(Q){if(this._getType(Q)!==w.undefined){let X=this._getOrReturnCtx(Q);return M(X,{code:q.invalid_type,expected:w.undefined,received:X.parsedType}),R}return f(Q.data)}}BQ.create=(Q)=>{return new BQ({typeName:O.ZodUndefined,...A(Q)})};class MQ extends L{_parse(Q){if(this._getType(Q)!==w.null){let X=this._getOrReturnCtx(Q);return M(X,{code:q.invalid_type,expected:w.null,received:X.parsedType}),R}return f(Q.data)}}MQ.create=(Q)=>{return new MQ({typeName:O.ZodNull,...A(Q)})};class QQ extends L{constructor(){super(...arguments);this._any=!0}_parse(Q){return f(Q.data)}}QQ.create=(Q)=>{return new QQ({typeName:O.ZodAny,...A(Q)})};class r extends L{constructor(){super(...arguments);this._unknown=!0}_parse(Q){return f(Q.data)}}r.create=(Q)=>{return new r({typeName:O.ZodUnknown,...A(Q)})};class Z extends L{_parse(Q){let $=this._getOrReturnCtx(Q);return M($,{code:q.invalid_type,expected:w.never,received:$.parsedType}),R}}Z.create=(Q)=>{return new Z({typeName:O.ZodNever,...A(Q)})};class EQ extends L{_parse(Q){if(this._getType(Q)!==w.undefined){let X=this._getOrReturnCtx(Q);return M(X,{code:q.invalid_type,expected:w.void,received:X.parsedType}),R}return f(Q.data)}}EQ.create=(Q)=>{return new EQ({typeName:O.ZodVoid,...A(Q)})};class x extends L{_parse(Q){let{ctx:$,status:X}=this._processInputParams(Q),G=this._def;if($.parsedType!==w.array)return M($,{code:q.invalid_type,expected:w.array,received:$.parsedType}),R;if(G.exactLength!==null){let W=$.data.length>G.exactLength.value,Y=$.data.length<G.exactLength.value;if(W||Y)M($,{code:W?q.too_big:q.too_small,minimum:Y?G.exactLength.value:void 0,maximum:W?G.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:G.exactLength.message}),X.dirty()}if(G.minLength!==null){if($.data.length<G.minLength.value)M($,{code:q.too_small,minimum:G.minLength.value,type:"array",inclusive:!0,exact:!1,message:G.minLength.message}),X.dirty()}if(G.maxLength!==null){if($.data.length>G.maxLength.value)M($,{code:q.too_big,maximum:G.maxLength.value,type:"array",inclusive:!0,exact:!1,message:G.maxLength.message}),X.dirty()}if($.common.async)return Promise.all([...$.data].map((W,Y)=>{return G.type._parseAsync(new y($,W,$.path,Y))})).then((W)=>{return C.mergeArray(X,W)});let J=[...$.data].map((W,Y)=>{return G.type._parseSync(new y($,W,$.path,Y))});return C.mergeArray(X,J)}get element(){return this._def.type}min(Q,$){return new x({...this._def,minLength:{value:Q,message:j.toString($)}})}max(Q,$){return new x({...this._def,maxLength:{value:Q,message:j.toString($)}})}length(Q,$){return new x({...this._def,exactLength:{value:Q,message:j.toString($)}})}nonempty(Q){return this.min(1,Q)}}x.create=(Q,$)=>{return new x({type:Q,minLength:null,maxLength:null,exactLength:null,typeName:O.ZodArray,...A($)})};function GQ(Q){if(Q instanceof F){let $={};for(let X in Q.shape){let G=Q.shape[X];$[X]=l.create(GQ(G))}return new F({...Q._def,shape:()=>$})}else if(Q instanceof x)return new x({...Q._def,type:GQ(Q.element)});else if(Q instanceof l)return l.create(GQ(Q.unwrap()));else if(Q instanceof i)return i.create(GQ(Q.unwrap()));else if(Q instanceof c)return c.create(Q.items.map(($)=>GQ($)));else return Q}class F extends L{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let Q=this._def.shape(),$=D.objectKeys(Q);return this._cached={shape:Q,keys:$}}_parse(Q){if(this._getType(Q)!==w.object){let B=this._getOrReturnCtx(Q);return M(B,{code:q.invalid_type,expected:w.object,received:B.parsedType}),R}let{status:X,ctx:G}=this._processInputParams(Q),{shape:J,keys:W}=this._getCached(),Y=[];if(!(this._def.catchall instanceof Z&&this._def.unknownKeys==="strip")){for(let B in G.data)if(!W.includes(B))Y.push(B)}let H=[];for(let B of W){let z=J[B],_=G.data[B];H.push({key:{status:"valid",value:B},value:z._parse(new y(G,_,G.path,B)),alwaysSet:B in G.data})}if(this._def.catchall instanceof Z){let B=this._def.unknownKeys;if(B==="passthrough")for(let z of Y)H.push({key:{status:"valid",value:z},value:{status:"valid",value:G.data[z]}});else if(B==="strict"){if(Y.length>0)M(G,{code:q.unrecognized_keys,keys:Y}),X.dirty()}else if(B==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let B=this._def.catchall;for(let z of Y){let _=G.data[z];H.push({key:{status:"valid",value:z},value:B._parse(new y(G,_,G.path,z)),alwaysSet:z in G.data})}}if(G.common.async)return Promise.resolve().then(async()=>{let B=[];for(let z of H){let _=await z.key,S=await z.value;B.push({key:_,value:S,alwaysSet:z.alwaysSet})}return B}).then((B)=>{return C.mergeObjectSync(X,B)});else return C.mergeObjectSync(X,H)}get shape(){return this._def.shape()}strict(Q){return j.errToObj,new F({...this._def,unknownKeys:"strict",...Q!==void 0?{errorMap:($,X)=>{var G,J,W,Y;let H=(W=(J=(G=this._def).errorMap)===null||J===void 0?void 0:J.call(G,$,X).message)!==null&&W!==void 0?W:X.defaultError;if($.code==="unrecognized_keys")return{message:(Y=j.errToObj(Q).message)!==null&&Y!==void 0?Y:H};return{message:H}}}:{}})}strip(){return new F({...this._def,unknownKeys:"strip"})}passthrough(){return new F({...this._def,unknownKeys:"passthrough"})}extend(Q){return new F({...this._def,shape:()=>({...this._def.shape(),...Q})})}merge(Q){return new F({unknownKeys:Q._def.unknownKeys,catchall:Q._def.catchall,shape:()=>({...this._def.shape(),...Q._def.shape()}),typeName:O.ZodObject})}setKey(Q,$){return this.augment({[Q]:$})}catchall(Q){return new F({...this._def,catchall:Q})}pick(Q){let $={};return D.objectKeys(Q).forEach((X)=>{if(Q[X]&&this.shape[X])$[X]=this.shape[X]}),new F({...this._def,shape:()=>$})}omit(Q){let $={};return D.objectKeys(this.shape).forEach((X)=>{if(!Q[X])$[X]=this.shape[X]}),new F({...this._def,shape:()=>$})}deepPartial(){return GQ(this)}partial(Q){let $={};return D.objectKeys(this.shape).forEach((X)=>{let G=this.shape[X];if(Q&&!Q[X])$[X]=G;else $[X]=G.optional()}),new F({...this._def,shape:()=>$})}required(Q){let $={};return D.objectKeys(this.shape).forEach((X)=>{if(Q&&!Q[X])$[X]=this.shape[X];else{let J=this.shape[X];while(J instanceof l)J=J._def.innerType;$[X]=J}}),new F({...this._def,shape:()=>$})}keyof(){return G0(D.objectKeys(this.shape))}}F.create=(Q,$)=>{return new F({shape:()=>Q,unknownKeys:"strip",catchall:Z.create(),typeName:O.ZodObject,...A($)})};F.strictCreate=(Q,$)=>{return new F({shape:()=>Q,unknownKeys:"strict",catchall:Z.create(),typeName:O.ZodObject,...A($)})};F.lazycreate=(Q,$)=>{return new F({shape:Q,unknownKeys:"strip",catchall:Z.create(),typeName:O.ZodObject,...A($)})};class wQ extends L{_parse(Q){let{ctx:$}=this._processInputParams(Q),X=this._def.options;function G(J){for(let Y of J)if(Y.result.status==="valid")return Y.result;for(let Y of J)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let W=J.map((Y)=>new k(Y.ctx.common.issues));return M($,{code:q.invalid_union,unionErrors:W}),R}if($.common.async)return Promise.all(X.map(async(J)=>{let W={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:W}),ctx:W}})).then(G);else{let J=void 0,W=[];for(let H of X){let B={...$,common:{...$.common,issues:[]},parent:null},z=H._parseSync({data:$.data,path:$.path,parent:B});if(z.status==="valid")return z;else if(z.status==="dirty"&&!J)J={result:z,ctx:B};if(B.common.issues.length)W.push(B.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let Y=W.map((H)=>new k(H));return M($,{code:q.invalid_union,unionErrors:Y}),R}}get options(){return this._def.options}}wQ.create=(Q,$)=>{return new wQ({options:Q,typeName:O.ZodUnion,...A($)})};var n=(Q)=>{if(Q instanceof zQ)return n(Q.schema);else if(Q instanceof T)return n(Q.innerType());else if(Q instanceof VQ)return[Q.value];else if(Q instanceof s)return Q.options;else if(Q instanceof OQ)return D.objectValues(Q.enum);else if(Q instanceof RQ)return n(Q._def.innerType);else if(Q instanceof BQ)return[void 0];else if(Q instanceof MQ)return[null];else if(Q instanceof l)return[void 0,...n(Q.unwrap())];else if(Q instanceof i)return[null,...n(Q.unwrap())];else if(Q instanceof hQ)return n(Q.unwrap());else if(Q instanceof AQ)return n(Q.unwrap());else if(Q instanceof _Q)return n(Q._def.innerType);else return[]};class TQ extends L{_parse(Q){let{ctx:$}=this._processInputParams(Q);if($.parsedType!==w.object)return M($,{code:q.invalid_type,expected:w.object,received:$.parsedType}),R;let X=this.discriminator,G=$.data[X],J=this.optionsMap.get(G);if(!J)return M($,{code:q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),R;if($.common.async)return J._parseAsync({data:$.data,path:$.path,parent:$});else return J._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(Q,$,X){let G=new Map;for(let J of $){let W=n(J.shape[Q]);if(!W.length)throw new Error(`A discriminator value for key \`${Q}\` could not be extracted from all schema options`);for(let Y of W){if(G.has(Y))throw new Error(`Discriminator property ${String(Q)} has duplicate value ${String(Y)}`);G.set(Y,J)}}return new TQ({typeName:O.ZodDiscriminatedUnion,discriminator:Q,options:$,optionsMap:G,...A(X)})}}function pQ(Q,$){let X=d(Q),G=d($);if(Q===$)return{valid:!0,data:Q};else if(X===w.object&&G===w.object){let J=D.objectKeys($),W=D.objectKeys(Q).filter((H)=>J.indexOf(H)!==-1),Y={...Q,...$};for(let H of W){let B=pQ(Q[H],$[H]);if(!B.valid)return{valid:!1};Y[H]=B.data}return{valid:!0,data:Y}}else if(X===w.array&&G===w.array){if(Q.length!==$.length)return{valid:!1};let J=[];for(let W=0;W<Q.length;W++){let Y=Q[W],H=$[W],B=pQ(Y,H);if(!B.valid)return{valid:!1};J.push(B.data)}return{valid:!0,data:J}}else if(X===w.date&&G===w.date&&+Q===+$)return{valid:!0,data:Q};else return{valid:!1}}class jQ extends L{_parse(Q){let{status:$,ctx:X}=this._processInputParams(Q),G=(J,W)=>{if(cQ(J)||cQ(W))return R;let Y=pQ(J.value,W.value);if(!Y.valid)return M(X,{code:q.invalid_intersection_types}),R;if(uQ(J)||uQ(W))$.dirty();return{status:$.value,value:Y.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([J,W])=>G(J,W));else return G(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}jQ.create=(Q,$,X)=>{return new jQ({left:Q,right:$,typeName:O.ZodIntersection,...A(X)})};class c extends L{_parse(Q){let{status:$,ctx:X}=this._processInputParams(Q);if(X.parsedType!==w.array)return M(X,{code:q.invalid_type,expected:w.array,received:X.parsedType}),R;if(X.data.length<this._def.items.length)return M(X,{code:q.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),R;if(!this._def.rest&&X.data.length>this._def.items.length)M(X,{code:q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...X.data].map((W,Y)=>{let H=this._def.items[Y]||this._def.rest;if(!H)return null;return H._parse(new y(X,W,X.path,Y))}).filter((W)=>!!W);if(X.common.async)return Promise.all(J).then((W)=>{return C.mergeArray($,W)});else return C.mergeArray($,J)}get items(){return this._def.items}rest(Q){return new c({...this._def,rest:Q})}}c.create=(Q,$)=>{if(!Array.isArray(Q))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new c({items:Q,typeName:O.ZodTuple,rest:null,...A($)})};class FQ extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:$,ctx:X}=this._processInputParams(Q);if(X.parsedType!==w.object)return M(X,{code:q.invalid_type,expected:w.object,received:X.parsedType}),R;let G=[],J=this._def.keyType,W=this._def.valueType;for(let Y in X.data)G.push({key:J._parse(new y(X,Y,X.path,Y)),value:W._parse(new y(X,X.data[Y],X.path,Y)),alwaysSet:Y in X.data});if(X.common.async)return C.mergeObjectAsync($,G);else return C.mergeObjectSync($,G)}get element(){return this._def.valueType}static create(Q,$,X){if($ instanceof L)return new FQ({keyType:Q,valueType:$,typeName:O.ZodRecord,...A(X)});return new FQ({keyType:h.create(),valueType:Q,typeName:O.ZodRecord,...A($)})}}class NQ extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:$,ctx:X}=this._processInputParams(Q);if(X.parsedType!==w.map)return M(X,{code:q.invalid_type,expected:w.map,received:X.parsedType}),R;let G=this._def.keyType,J=this._def.valueType,W=[...X.data.entries()].map(([Y,H],B)=>{return{key:G._parse(new y(X