junso-browser 0.2.12 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -2
- package/bin/junso-browser.js +11 -1
- package/dist/mcp.js +50 -41
- package/dist/server.js +90 -9
- package/package.json +2 -1
- package/scripts/install.sh +216 -0
package/dist/server.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var Tn=Object.create;var{getPrototypeOf:_n,defineProperty:ot,getOwnPropertyNames:an}=Object;var Xn=Object.prototype.hasOwnProperty;function Gn(t){return this[t]}var Qn,Yn,ji=(t,n,i)=>{var c=t!=null&&typeof t==="object";if(c){var l=n?Qn??=new WeakMap:Yn??=new WeakMap,f=l.get(t);if(f)return f}i=t!=null?Tn(_n(t)):{};let b=n||!t||!t.__esModule?ot(i,"default",{value:t,enumerable:!0}):i;for(let o of an(t))if(!Xn.call(b,o))ot(b,o,{get:Gn.bind(t,o),enumerable:!0});if(c)l.set(t,b);return b};var Pi=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports);var Wn=(t)=>t;function Vn(t,n){this[t]=Wn.bind(null,n)}var Ji=(t,n)=>{for(var i in n)ot(t,i,{get:n[i],enumerable:!0,configurable:!0,set:Vn.bind(n,i)})};var xt=(t,n,i)=>{return(c,l)=>{let f=-1;return b(0);async function b(o){if(o<=f)throw Error("next() called multiple times");f=o;let s,x=!1,e;if(t[o])e=t[o][0][0],c.req.routeIndex=o;else e=o===t.length&&l||void 0;if(e)try{s=await e(c,()=>b(o+1))}catch(u){if(u instanceof Error&&n)c.error=u,s=await n(u,c),x=!0;else throw u}else if(c.finalized===!1&&i)s=await i(c);if(s&&(c.finalized===!1||x))c.res=s;return c}}};var Yt=Symbol();var Wt=async(t,n=Object.create(null))=>{let{all:i=!1,dot:c=!1}=n,f=(t instanceof I?t.raw.headers:t.headers).get("Content-Type");if(f?.startsWith("multipart/form-data")||f?.startsWith("application/x-www-form-urlencoded"))return gn(t,{all:i,dot:c});return{}};async function gn(t,n){let i=await t.formData();if(i)return An(i,n);return{}}function An(t,n){let i=Object.create(null);if(t.forEach((c,l)=>{if(!(n.all||l.endsWith("[]")))i[l]=c;else Zn(i,l,c)}),n.dot)Object.entries(i).forEach(([c,l])=>{if(c.includes("."))Mn(i,c,l),delete i[c]});return i}var Zn=(t,n,i)=>{if(t[n]!==void 0)if(Array.isArray(t[n]))t[n].push(i);else t[n]=[t[n],i];else if(!n.endsWith("[]"))t[n]=i;else t[n]=[i]},Mn=(t,n,i)=>{if(/(?:^|\.)__proto__\./.test(n))return;let c=t,l=n.split(".");l.forEach((f,b)=>{if(b===l.length-1)c[f]=i;else{if(!c[f]||typeof c[f]!=="object"||Array.isArray(c[f])||c[f]instanceof File)c[f]=Object.create(null);c=c[f]}})};var ut=(t)=>{let n=t.split("/");if(n[0]==="")n.shift();return n},Vt=(t)=>{let{groups:n,path:i}=Un(t),c=ut(i);return mn(c,n)},Un=(t)=>{let n=[];return t=t.replace(/\{[^}]+\}/g,(i,c)=>{let l=`@${c}`;return n.push([l,i]),l}),{groups:n,path:t}},mn=(t,n)=>{for(let i=n.length-1;i>=0;i--){let[c]=n[i];for(let l=t.length-1;l>=0;l--)if(t[l].includes(c)){t[l]=t[l].replace(c,n[i][1]);break}}return t},C={},gt=(t,n)=>{if(t==="*")return"*";let i=t.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(i){let c=`${t}#${n}`;if(!C[c])if(i[2])C[c]=n&&n[0]!==":"&&n[0]!=="*"?[c,i[1],new RegExp(`^${i[2]}(?=/${n})`)]:[t,i[1],new RegExp(`^${i[2]}$`)];else C[c]=[t,i[1],!0];return C[c]}return null},H=(t,n)=>{try{return n(t)}catch{return t.replace(/(?:%[0-9A-Fa-f]{2})+/g,(i)=>{try{return n(i)}catch{return i}})}},Rn=(t)=>H(t,decodeURI),Et=(t)=>{let n=t.url,i=n.indexOf("/",n.indexOf(":")+4),c=i;for(;c<n.length;c++){let l=n.charCodeAt(c);if(l===37){let f=n.indexOf("?",c),b=n.indexOf("#",c),o=f===-1?b===-1?void 0:b:b===-1?f:Math.min(f,b),s=n.slice(i,o);return Rn(s.includes("%25")?s.replace(/%25/g,"%2525"):s)}else if(l===63||l===35)break}return n.slice(i,c)};var At=(t)=>{let n=Et(t);return n.length>1&&n.at(-1)==="/"?n.slice(0,-1):n},P=(t,n,...i)=>{if(i.length)n=P(n,...i);return`${t?.[0]==="/"?"":"/"}${t}${n==="/"?"":`${t?.at(-1)==="/"?"":"/"}${n?.[0]==="/"?n.slice(1):n}`}`},p=(t)=>{if(t.charCodeAt(t.length-1)!==63||!t.includes(":"))return null;let n=t.split("/"),i=[],c="";return n.forEach((l)=>{if(l!==""&&!/\:/.test(l))c+="/"+l;else if(/\:/.test(l))if(/\?/.test(l)){if(i.length===0&&c==="")i.push("/");else i.push(c);let f=l.replace("?","");c+="/"+f,i.push(c)}else c+="/"+l}),i.filter((l,f,b)=>b.indexOf(l)===f)},et=(t)=>{if(!/[%+]/.test(t))return t;if(t.indexOf("+")!==-1)t=t.replace(/\+/g," ");return t.indexOf("%")!==-1?H(t,rt):t},Zt=(t,n,i)=>{let c;if(!i&&n&&!/[%+]/.test(n)){let b=t.indexOf("?",8);if(b===-1)return;if(!t.startsWith(n,b+1))b=t.indexOf(`&${n}`,b+1);while(b!==-1){let o=t.charCodeAt(b+n.length+1);if(o===61){let s=b+n.length+2,x=t.indexOf("&",s);return et(t.slice(s,x===-1?void 0:x))}else if(o==38||isNaN(o))return"";b=t.indexOf(`&${n}`,b+1)}if(c=/[%+]/.test(t),!c)return}let l={};c??=/[%+]/.test(t);let f=t.indexOf("?",8);while(f!==-1){let b=t.indexOf("&",f+1),o=t.indexOf("=",f);if(o>b&&b!==-1)o=-1;let s=t.slice(f+1,o===-1?b===-1?void 0:b:o);if(c)s=et(s);if(f=b,s==="")continue;let x;if(o===-1)x="";else if(x=t.slice(o+1,b===-1?void 0:b),c)x=et(x);if(i){if(!(l[s]&&Array.isArray(l[s])))l[s]=[];l[s].push(x)}else l[s]??=x}return n?l[n]:l},Mt=Zt,Ut=(t,n)=>{return Zt(t,n,!0)},rt=decodeURIComponent;var mt=(t)=>H(t,rt),I=class{raw;#t;#n;routeIndex=0;path;bodyCache={};constructor(t,n="/",i=[[]]){this.raw=t,this.path=n,this.#n=i,this.#t={}}param(t){return t?this.#i(t):this.#f()}#i(t){let n=this.#n[0][this.routeIndex][1][t],i=this.#l(n);return i&&/\%/.test(i)?mt(i):i}#f(){let t={},n=Object.keys(this.#n[0][this.routeIndex][1]);for(let i of n){let c=this.#l(this.#n[0][this.routeIndex][1][i]);if(c!==void 0)t[i]=/\%/.test(c)?mt(c):c}return t}#l(t){return this.#n[1]?this.#n[1][t]:t}query(t){return Mt(this.url,t)}queries(t){return Ut(this.url,t)}header(t){if(t)return this.raw.headers.get(t)??void 0;let n={};return this.raw.headers.forEach((i,c)=>{n[c]=i}),n}async parseBody(t){return Wt(this,t)}#c=(t)=>{let{bodyCache:n,raw:i}=this,c=n[t];if(c)return c;let l=Object.keys(n)[0];if(l)return n[l].then((f)=>{if(l==="json")f=JSON.stringify(f);return new Response(f)[t]()});return n[t]=i[t]()};json(){return this.#c("text").then((t)=>JSON.parse(t))}text(){return this.#c("text")}arrayBuffer(){return this.#c("arrayBuffer")}bytes(){return this.#c("arrayBuffer").then((t)=>new Uint8Array(t))}blob(){return this.#c("blob")}formData(){return this.#c("formData")}addValidatedData(t,n){this.#t[t]=n}valid(t){return this.#t[t]}get url(){return this.raw.url}get method(){return this.raw.method}get[Yt](){return this.#n}get matchedRoutes(){return this.#n[0].map(([[,t]])=>t)}get routePath(){return this.#n[0].map(([[,t]])=>t)[this.routeIndex].path}};var Rt={Stringify:1,BeforeStream:2,Stream:3},wn=(t,n)=>{let i=new String(t);return i.isEscaped=!0,i.callbacks=n,i};var dt=async(t,n,i,c,l)=>{if(typeof t==="object"&&!(t instanceof String)){if(!(t instanceof Promise))t=t.toString();if(t instanceof Promise)t=await t}let f=t.callbacks;if(!f?.length)return Promise.resolve(t);if(l)l[0]+=t;else l=[t];let b=Promise.all(f.map((o)=>o({phase:n,buffer:l,context:c}))).then((o)=>Promise.all(o.filter(Boolean).map((s)=>dt(s,n,!1,c,l))).then(()=>l[0]));if(i)return wn(await b,f);else return b};var kn="text/plain; charset=UTF-8",Ot=(t,n)=>{return{"Content-Type":t,...n}},A=(t,n)=>new Response(t,n),yt=class{#t;#n;env={};#i;finalized=!1;error;#f;#l;#c;#e;#o;#x;#s;#u;#E;constructor(t,n){if(this.#t=t,n)this.#l=n.executionCtx,this.env=n.env,this.#x=n.notFoundHandler,this.#E=n.path,this.#u=n.matchResult}get req(){return this.#n??=new I(this.#t,this.#E,this.#u),this.#n}get event(){if(this.#l&&"respondWith"in this.#l)return this.#l;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#l)return this.#l;else throw Error("This context has no ExecutionContext")}get res(){return this.#c||=A(null,{headers:this.#s??=new Headers})}set res(t){if(this.#c&&t){t=A(t.body,t);for(let[n,i]of this.#c.headers.entries()){if(n==="content-type")continue;if(n==="set-cookie"){let c=this.#c.headers.getSetCookie();t.headers.delete("set-cookie");for(let l of c)t.headers.append("set-cookie",l)}else t.headers.set(n,i)}}this.#c=t,this.finalized=!0}render=(...t)=>{return this.#o??=(n)=>this.html(n),this.#o(...t)};setLayout=(t)=>this.#e=t;getLayout=()=>this.#e;setRenderer=(t)=>{this.#o=t};header=(t,n,i)=>{if(this.finalized)this.#c=A(this.#c.body,this.#c);let c=this.#c?this.#c.headers:this.#s??=new Headers;if(n===void 0)c.delete(t);else if(i?.append)c.append(t,n);else c.set(t,n)};status=(t)=>{this.#f=t};set=(t,n)=>{this.#i??=new Map,this.#i.set(t,n)};get=(t)=>{return this.#i?this.#i.get(t):void 0};get var(){if(!this.#i)return{};return Object.fromEntries(this.#i)}#b(t,n,i){let c=this.#c?new Headers(this.#c.headers):this.#s??new Headers;if(typeof n==="object"&&"headers"in n){let f=n.headers instanceof Headers?n.headers:new Headers(n.headers);for(let[b,o]of f)if(b.toLowerCase()==="set-cookie")c.append(b,o);else c.set(b,o)}if(i)for(let[f,b]of Object.entries(i))if(typeof b==="string")c.set(f,b);else{c.delete(f);for(let o of b)c.append(f,o)}let l=typeof n==="number"?n:n?.status??this.#f;return A(t,{status:l,headers:c})}newResponse=(...t)=>this.#b(...t);body=(t,n,i)=>this.#b(t,n,i);text=(t,n,i)=>{return!this.#s&&!this.#f&&!n&&!i&&!this.finalized?new Response(t):this.#b(t,n,Ot(kn,i))};json=(t,n,i)=>{return this.#b(JSON.stringify(t),n,Ot("application/json",i))};html=(t,n,i)=>{let c=(l)=>this.#b(l,n,Ot("text/html; charset=UTF-8",i));return typeof t==="object"?dt(t,Rt.Stringify,!1,{}).then(c):c(t)};redirect=(t,n)=>{let i=String(t);return this.header("Location",!/[^\x00-\xFF]/.test(i)?i:encodeURI(i)),this.newResponse(null,n??302)};notFound=()=>{return this.#x??=()=>A(),this.#x(this)}};var O="ALL",wt="all",kt=["get","post","put","delete","options","patch"],h="Can not add a route since the matcher is already built.",q=class extends Error{};var Ft="__COMPOSED_HANDLER";var Fn=(t)=>{return t.text("404 Not Found",404)},Dt=(t,n)=>{if("getResponse"in t){let i=t.getResponse();return n.newResponse(i.body,i)}return console.error(t),n.text("Internal Server Error",500)},It=class t{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(n={}){[...kt,wt].forEach((f)=>{this[f]=(b,...o)=>{if(typeof b==="string")this.#t=b;else this.#f(f,this.#t,b);return o.forEach((s)=>{this.#f(f,this.#t,s)}),this}}),this.on=(f,b,...o)=>{for(let s of[b].flat()){this.#t=s;for(let x of[f].flat())o.map((e)=>{this.#f(x.toUpperCase(),this.#t,e)})}return this},this.use=(f,...b)=>{if(typeof f==="string")this.#t=f;else this.#t="*",b.unshift(f);return b.forEach((o)=>{this.#f(O,this.#t,o)}),this};let{strict:c,...l}=n;Object.assign(this,l),this.getPath=c??!0?n.getPath??Et:At}#n(){let n=new t({router:this.router,getPath:this.getPath});return n.errorHandler=this.errorHandler,n.#i=this.#i,n.routes=this.routes,n}#i=Fn;errorHandler=Dt;route(n,i){let c=this.basePath(n);return i.routes.map((l)=>{let f;if(i.errorHandler===Dt)f=l.handler;else f=async(b,o)=>(await xt([],i.errorHandler)(b,()=>l.handler(b,o))).res,f[Ft]=l.handler;c.#f(l.method,l.path,f,l.basePath)}),this}basePath(n){let i=this.#n();return i._basePath=P(this._basePath,n),i}onError=(n)=>{return this.errorHandler=n,this};notFound=(n)=>{return this.#i=n,this};mount(n,i,c){let l,f;if(c)if(typeof c==="function")f=c;else if(f=c.optionHandler,c.replaceRequest===!1)l=(s)=>s;else l=c.replaceRequest;let b=f?(s)=>{let x=f(s);return Array.isArray(x)?x:[x]}:(s)=>{let x=void 0;try{x=s.executionCtx}catch{}return[s.env,x]};l||=(()=>{let s=P(this._basePath,n),x=s==="/"?0:s.length;return(e)=>{let u=new URL(e.url);return u.pathname=this.getPath(e).slice(x)||"/",new Request(u,e)}})();let o=async(s,x)=>{let e=await i(l(s.req.raw),...b(s));if(e)return e;await x()};return this.#f(O,P(n,"*"),o),this}#f(n,i,c,l){n=n.toUpperCase(),i=P(this._basePath,i);let f={basePath:l!==void 0?P(this._basePath,l):this._basePath,path:i,method:n,handler:c};this.router.add(n,i,[c,f]),this.routes.push(f)}#l(n,i){if(n instanceof Error)return this.errorHandler(n,i);throw n}#c(n,i,c,l){if(l==="HEAD")return(async()=>new Response(null,await this.#c(n,i,c,"GET")))();let f=this.getPath(n,{env:c}),b=this.router.match(l,f),o=new yt(n,{path:f,matchResult:b,env:c,executionCtx:i,notFoundHandler:this.#i});if(b[0].length===1){let x;try{x=b[0][0][0][0](o,async()=>{o.res=await this.#i(o)})}catch(e){return this.#l(e,o)}return x instanceof Promise?x.then((e)=>e||(o.finalized?o.res:this.#i(o))).catch((e)=>this.#l(e,o)):x??this.#i(o)}let s=xt(b[0],this.errorHandler,this.#i);return(async()=>{try{let x=await s(o);if(!x.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return x.res}catch(x){return this.#l(x,o)}})()}fetch=(n,...i)=>{return this.#c(n,i[1],i[0],n.method)};request=(n,i,c,l)=>{if(n instanceof Request)return this.fetch(i?new Request(n,i):n,c,l);return n=n.toString(),this.fetch(new Request(/^https?:\/\//.test(n)?n:`http://localhost${P("/",n)}`,i),c,l)};fire=()=>{addEventListener("fetch",(n)=>{n.respondWith(this.#c(n.request,n,void 0,n.request.method))})}};var Z=[];function tt(t,n){let i=this.buildAllMatchers(),c=(l,f)=>{let b=i[l]||i[O],o=b[2][f];if(o)return o;let s=f.match(b[0]);if(!s)return[[],Z];let x=s.indexOf("",1);return[b[1][x],s]};return this.match=c,c(t,n)}var nt="[^/]+",M=".*",U="(?:|/.*)",T=Symbol(),Dn=new Set(".\\+*[^]$()");function In(t,n){if(t.length===1)return n.length===1?t<n?-1:1:-1;if(n.length===1)return 1;if(t===M||t===U)return 1;else if(n===M||n===U)return-1;if(t===nt)return 1;else if(n===nt)return-1;return t.length===n.length?t<n?-1:1:n.length-t.length}var Ct=class t{#t;#n;#i=Object.create(null);insert(n,i,c,l,f){if(n.length===0){if(this.#t!==void 0)throw T;if(f)return;this.#t=i;return}let[b,...o]=n,s=b==="*"?o.length===0?["","",M]:["","",nt]:b==="/*"?["","",U]:b.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),x;if(s){let e=s[1],u=s[2]||nt;if(e&&s[2]){if(u===".*")throw T;if(u=u.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(u))throw T}if(x=this.#i[u],!x){if(Object.keys(this.#i).some((d)=>d!==M&&d!==U))throw T;if(f)return;if(x=this.#i[u]=new t,e!=="")x.#n=l.varIndex++}if(!f&&e!=="")c.push([e,x.#n])}else if(x=this.#i[b],!x){if(Object.keys(this.#i).some((e)=>e.length>1&&e!==M&&e!==U))throw T;if(f)return;x=this.#i[b]=new t}x.insert(o,i,c,l,f)}buildRegExpStr(){let i=Object.keys(this.#i).sort(In).map((c)=>{let l=this.#i[c];return(typeof l.#n==="number"?`(${c})@${l.#n}`:Dn.has(c)?`\\${c}`:c)+l.buildRegExpStr()});if(typeof this.#t==="number")i.unshift(`#${this.#t}`);if(i.length===0)return"";if(i.length===1)return i[0];return"(?:"+i.join("|")+")"}};var Ht=class{#t={varIndex:0};#n=new Ct;insert(t,n,i){let c=[],l=[];for(let b=0;;){let o=!1;if(t=t.replace(/\{[^}]+\}/g,(s)=>{let x=`@\\${b}`;return l[b]=[x,s],b++,o=!0,x}),!o)break}let f=t.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let b=l.length-1;b>=0;b--){let[o]=l[b];for(let s=f.length-1;s>=0;s--)if(f[s].indexOf(o)!==-1){f[s]=f[s].replace(o,l[b][1]);break}}return this.#n.insert(f,n,c,this.#t,i),c}buildRegExp(){let t=this.#n.buildRegExpStr();if(t==="")return[/^$/,[],[]];let n=0,i=[],c=[];return t=t.replace(/#(\d+)|@(\d+)|\.\*\$/g,(l,f,b)=>{if(f!==void 0)return i[++n]=Number(f),"$()";if(b!==void 0)return c[Number(b)]=++n,"";return""}),[new RegExp(`^${t}`),i,c]}};var Cn=[/^$/,[],Object.create(null)],pt=Object.create(null);function ht(t){return pt[t]??=new RegExp(t==="*"?"":`^${t.replace(/\/\*$|([.\\+*[^\]$()])/g,(n,i)=>i?`\\${i}`:"(?:|/.*)")}$`)}function Hn(){pt=Object.create(null)}function pn(t){let n=new Ht,i=[];if(t.length===0)return Cn;let c=t.map((x)=>[!/\*|\/:/.test(x[0]),...x]).sort(([x,e],[u,d])=>x?1:u?-1:e.length-d.length),l=Object.create(null);for(let x=0,e=-1,u=c.length;x<u;x++){let[d,r,y]=c[x];if(d)l[r]=[y.map(([S])=>[S,Object.create(null)]),Z];else e++;let $;try{$=n.insert(r,e,d)}catch(S){throw S===T?new q(r):S}if(d)continue;i[e]=y.map(([S,N])=>{let L=Object.create(null);N-=1;for(;N>=0;N--){let[J,bt]=$[N];L[J]=bt}return[S,L]})}let[f,b,o]=n.buildRegExp();for(let x=0,e=i.length;x<e;x++)for(let u=0,d=i[x].length;u<d;u++){let r=i[x][u]?.[1];if(!r)continue;let y=Object.keys(r);for(let $=0,S=y.length;$<S;$++)r[y[$]]=o[r[y[$]]]}let s=[];for(let x in b)s[x]=i[b[x]];return[f,s,l]}function X(t,n){if(!t)return;for(let i of Object.keys(t).sort((c,l)=>l.length-c.length))if(ht(i).test(n))return[...t[i]];return}var it=class{name="RegExpRouter";#t;#n;constructor(){this.#t={[O]:Object.create(null)},this.#n={[O]:Object.create(null)}}add(t,n,i){let c=this.#t,l=this.#n;if(!c||!l)throw Error(h);if(!c[t])[c,l].forEach((o)=>{o[t]=Object.create(null),Object.keys(o[O]).forEach((s)=>{o[t][s]=[...o[O][s]]})});if(n==="/*")n="*";let f=(n.match(/\/:/g)||[]).length;if(/\*$/.test(n)){let o=ht(n);if(t===O)Object.keys(c).forEach((s)=>{c[s][n]||=X(c[s],n)||X(c[O],n)||[]});else c[t][n]||=X(c[t],n)||X(c[O],n)||[];Object.keys(c).forEach((s)=>{if(t===O||t===s)Object.keys(c[s]).forEach((x)=>{o.test(x)&&c[s][x].push([i,f])})}),Object.keys(l).forEach((s)=>{if(t===O||t===s)Object.keys(l[s]).forEach((x)=>o.test(x)&&l[s][x].push([i,f]))});return}let b=p(n)||[n];for(let o=0,s=b.length;o<s;o++){let x=b[o];Object.keys(l).forEach((e)=>{if(t===O||t===e)l[e][x]||=[...X(c[e],x)||X(c[O],x)||[]],l[e][x].push([i,f-s+o+1])})}}match=tt;buildAllMatchers(){let t=Object.create(null);return Object.keys(this.#n).concat(Object.keys(this.#t)).forEach((n)=>{t[n]||=this.#i(n)}),this.#t=this.#n=void 0,Hn(),t}#i(t){let n=[],i=t===O;if([this.#t,this.#n].forEach((c)=>{let l=c[t]?Object.keys(c[t]).map((f)=>[f,c[t][f]]):[];if(l.length!==0)i||=!0,n.push(...l);else if(t!==O)n.push(...Object.keys(c[O]).map((f)=>[f,c[O][f]]))}),!i)return null;else return pn(n)}};var hn=class{name="PreparedRegExpRouter";#t;#n;constructor(t,n){this.#t=t,this.#n=n}#i(t,n){let i=this.#t[t];i[1].forEach((c)=>c&&c.push(n)),Object.values(i[2]).forEach((c)=>c[0].push(n))}#f(t,n,i,c,l){let f=this.#t[t];if(!l)f[2][n][0].push([i,{}]);else c.forEach((b)=>{if(typeof b==="number")f[1][b].push([i,l]);else f[2][b||n][0].push([i,l])})}add(t,n,i){if(!this.#t[t]){let l=this.#t[O],f={};for(let b in l[2])f[b]=[l[2][b][0].slice(),Z];this.#t[t]=[l[0],l[1].map((b)=>Array.isArray(b)?b.slice():0),f]}if(n==="/*"||n==="*"){let l=[i,{}];if(t===O)for(let f in this.#t)this.#i(f,l);else this.#i(t,l);return}let c=this.#n[n];if(!c)throw Error(`Path ${n} is not registered`);for(let[l,f]of c)if(t===O)for(let b in this.#t)this.#f(b,n,i,l,f);else this.#f(t,n,i,l,f)}buildAllMatchers(){return this.#t}match=tt};var Nt=class{name="SmartRouter";#t=[];#n=[];constructor(t){this.#t=t.routers}add(t,n,i){if(!this.#n)throw Error(h);this.#n.push([t,n,i])}match(t,n){if(!this.#n)throw Error("Fatal error");let i=this.#t,c=this.#n,l=i.length,f=0,b;for(;f<l;f++){let o=i[f];try{for(let s=0,x=c.length;s<x;s++)o.add(...c[s]);b=o.match(t,n)}catch(s){if(s instanceof q)continue;throw s}this.match=o.match.bind(o),this.#t=[o],this.#n=void 0;break}if(f===l)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,b}get activeRouter(){if(this.#n||this.#t.length!==1)throw Error("No active router has been determined yet.");return this.#t[0]}};var m=Object.create(null),qn=(t)=>{for(let n in t)return!0;return!1},qt=class t{#t;#n;#i;#f=0;#l=m;constructor(n,i,c){if(this.#n=c||Object.create(null),this.#t=[],n&&i){let l=Object.create(null);l[n]={handler:i,possibleKeys:[],score:0},this.#t=[l]}this.#i=[]}insert(n,i,c){this.#f=++this.#f;let l=this,f=Vt(i),b=[];for(let o=0,s=f.length;o<s;o++){let x=f[o],e=f[o+1],u=gt(x,e),d=Array.isArray(u)?u[0]:x;if(d in l.#n){if(l=l.#n[d],u)b.push(u[1]);continue}if(l.#n[d]=new t,u)l.#i.push(u),b.push(u[1]);l=l.#n[d]}return l.#t.push({[n]:{handler:c,possibleKeys:b.filter((o,s,x)=>x.indexOf(o)===s),score:this.#f}}),l}#c(n,i,c,l,f){for(let b=0,o=i.#t.length;b<o;b++){let s=i.#t[b],x=s[c]||s[O],e={};if(x!==void 0){if(x.params=Object.create(null),n.push(x),l!==m||f&&f!==m)for(let u=0,d=x.possibleKeys.length;u<d;u++){let r=x.possibleKeys[u],y=e[x.score];x.params[r]=f?.[r]&&!y?f[r]:l[r]??f?.[r],e[x.score]=!0}}}}search(n,i){let c=[];this.#l=m;let f=[this],b=ut(i),o=[],s=b.length,x=null;for(let e=0;e<s;e++){let u=b[e],d=e===s-1,r=[];for(let $=0,S=f.length;$<S;$++){let N=f[$],L=N.#n[u];if(L)if(L.#l=N.#l,d){if(L.#n["*"])this.#c(c,L.#n["*"],n,N.#l);this.#c(c,L,n,N.#l)}else r.push(L);for(let J=0,bt=N.#i.length;J<bt;J++){let Gt=N.#i[J],j=N.#l===m?{}:{...N.#l};if(Gt==="*"){let a=N.#n["*"];if(a)this.#c(c,a,n,N.#l),a.#l=j,r.push(a);continue}let[Jn,Qt,V]=Gt;if(!u&&!(V instanceof RegExp))continue;let K=N.#n[Jn];if(V instanceof RegExp){if(x===null){x=Array(s);let D=i[0]==="/"?1:0;for(let g=0;g<s;g++)x[g]=D,D+=b[g].length+1}let a=i.substring(x[e]),st=V.exec(a);if(st){if(j[Qt]=st[0],this.#c(c,K,n,N.#l,j),qn(K.#n)){K.#l=j;let D=st[0].match(/\//)?.length??0;(o[D]||=[]).push(K)}continue}}if(V===!0||V.test(u))if(j[Qt]=u,d){if(this.#c(c,K,n,j,N.#l),K.#n["*"])this.#c(c,K.#n["*"],n,j,N.#l)}else K.#l=j,r.push(K)}}let y=o.shift();f=y?r.concat(y):r}if(c.length>1)c.sort((e,u)=>{return e.score-u.score});return[c.map(({handler:e,params:u})=>[e,u])]}};var $t=class{name="TrieRouter";#t;constructor(){this.#t=new qt}add(t,n,i){let c=p(n);if(c){for(let l=0,f=c.length;l<f;l++)this.#t.insert(t,c[l],i);return}this.#t.insert(t,n,i)}match(t,n){return this.#t.search(t,n)}};var St=class extends It{constructor(t={}){super(t);this.router=t.router??new Nt({routers:[new it,new $t]})}};import ti from"os";import vt from"path";var E={port:Number(process.env.JUNSO_BROWSER_PORT??8790),host:process.env.JUNSO_BROWSER_HOST??"127.0.0.1",token:process.env.JUNSO_BROWSER_TOKEN??"",dataDir:process.env.JUNSO_BROWSER_DATA_DIR??vt.join(ti.homedir(),".junso-browser"),maxInstances:Number(process.env.JUNSO_BROWSER_MAX_INSTANCES??3),idleReapMs:Number(process.env.JUNSO_BROWSER_IDLE_MS??1800000),cloakPath:process.env.JUNSO_BROWSER_CLOAK_PATH,publicUrl:process.env.JUNSO_BROWSER_PUBLIC_URL};function Bt(){return vt.join(E.dataDir,"profiles.json")}function ct(t){return vt.join(E.dataDir,"profiles",t,"user-data")}function lt(){return E.host==="127.0.0.1"||E.host==="localhost"||E.host==="::1"}import{mkdir as li,readFile as fi,writeFile as bi,rm as si}from"fs/promises";import oi from"path";import{randomUUID as xi}from"crypto";import ni from"os";import zt from"path";import{existsSync as tn,readdirSync as ii}from"fs";function G(){if(E.cloakPath&&tn(E.cloakPath))return E.cloakPath;let t=zt.join(ni.homedir(),".cloakbrowser"),n;try{n=ii(t).filter((c)=>c.startsWith("chromium-"))}catch{return null}n.sort().reverse();let i=process.platform==="win32"?"chrome.exe":"chrome";for(let c of n){let l=zt.join(t,c,i);if(tn(l))return l}return null}var Lt=!1;function nn(){if(Lt)return;if(process.env.JUNSO_BROWSER_NO_CLOAK_DOWNLOAD==="true")return;if(G())return;Lt=!0,console.log("[junso-browser] CloakBrowser binary not found \u2014 downloading in background\u2026");let t=zt.resolve(import.meta.dir,"..");Bun.spawn([process.execPath,"x","cloakbrowser","install"],{cwd:t,stdout:"inherit",stderr:"inherit"}).exited.then((i)=>{Lt=!1,console.log(i===0?"[junso-browser] CloakBrowser ready.":`[junso-browser] cloak download exited ${i}.`)})}function ci(t){try{let n=new URL(t);return`${n.protocol}//${n.host}`}catch{return t}}function cn(t){if(!t)return null;try{let n=new URL(t);if(!n.username)return null;return{username:decodeURIComponent(n.username),password:decodeURIComponent(n.password)}}catch{return null}}function Kt(){return Math.floor(Math.random()*90000)+1e4}function ln(t,n,i){let c=t.fingerprint,l=["--no-sandbox",`--fingerprint=${c.seed}`,`--fingerprint-platform=${c.platform??"windows"}`];if(c.timezone)l.push(`--fingerprint-timezone=${c.timezone}`);if(c.locale)l.push(`--fingerprint-locale=${c.locale}`,`--accept-lang=${c.locale}`);if(t.proxy)l.push(`--proxy-server=${ci(t.proxy)}`);return l.push(`--user-data-dir=${i}`,`--remote-debugging-port=${n}`,"--remote-debugging-address=127.0.0.1","--headless=new"),l}function fn(t){let n={...process.env};if(t.fingerprint.timezone)n.TZ=t.fingerprint.timezone;return n}var Q=null,bn=Promise.resolve();async function R(){if(Q)return Q;try{let t=await fi(Bt(),"utf8"),n=JSON.parse(t);Q=n&&typeof n==="object"?n:{}}catch{Q={}}return Q}async function jt(t){await li(E.dataDir,{recursive:!0}),await bi(Bt(),JSON.stringify(t,null,2)+`
|
|
3
|
-
`,"utf8"),Q=t}function Pt(t){let n=bn.catch(()=>{}).then(t);return bn=n.catch(()=>{}),n}function ei(t){return(t??"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}async function sn(){return Object.values(await R()).sort((t,n)=>t.name.localeCompare(n.name))}async function z(t){return(await R())[t]??null}async function on(t){let n=ei(t.name)||xi().slice(0,8);return Pt(async()=>{let i={...await R()};if(i[n])throw Error(`Profile "${n}" already exists`);let c=new Date().toISOString(),l={id:n,name:t.name.trim(),fingerprint:{seed:t.fingerprint?.seed??Kt(),platform:t.fingerprint?.platform??"windows",timezone:t.fingerprint?.timezone,locale:t.fingerprint?.locale},proxy:t.proxy?.trim()||void 0,createdAt:c,updatedAt:c};return i[n]=l,await jt(i),l})}async function Jt(t,n){return Pt(async()=>{let i={...await R()},c=i[t];if(!c)throw Error(`No such profile: ${t}`);let l={...c.fingerprint,...n.fingerprint??{}};if(n.rotateSeed)l.seed=Kt();let f={...c,name:n.name?.trim()||c.name,fingerprint:l,proxy:n.proxy===null?void 0:n.proxy?.trim()||c.proxy,updatedAt:new Date().toISOString()};return i[t]=f,await jt(i),f})}async function xn(t){return Pt(async()=>{let n={...await R()};if(!n[t])return!1;return delete n[t],await jt(n),await si(oi.dirname(ct(t)),{recursive:!0,force:!0}),!0})}function en(t){if(!/session-[a-z0-9]+/i.test(t))return null;let n="s"+Math.random().toString(36).slice(2,10);return t.replace(/session-[a-z0-9]+/i,`session-${n}`)}function ui(t){if(!t)return null;return t.replace(/^([a-z0-9+.-]+:\/\/[^:@/]+):[^@/]+@/i,"$1:\u2022\u2022\u2022\u2022@")}function Y(t){return{...t,proxy:ui(t.proxy)??void 0}}import{mkdir as Ei,readFile as ri,rm as un}from"fs/promises";import _t from"path";class Tt{browserWsUrl;username;password;ws=null;nextId=1;constructor(t,n,i){this.browserWsUrl=t;this.username=n;this.password=i}async start(){let t=new WebSocket(this.browserWsUrl);this.ws=t,await new Promise((n,i)=>{t.onopen=()=>n(),t.onerror=()=>i(Error("proxy-auth CDP connect failed"))}),t.onmessage=(n)=>this.onMessage(JSON.parse(String(n.data))),t.onclose=()=>{this.ws=null},this.send(void 0,"Target.setAutoAttach",{autoAttach:!0,waitForDebuggerOnStart:!1,flatten:!0})}send(t,n,i){this.ws?.send(JSON.stringify({id:this.nextId++,sessionId:t,method:n,params:i}))}onMessage(t){if(t.method==="Target.attachedToTarget"){let n=t.params.sessionId;this.send(n,"Fetch.enable",{handleAuthRequests:!0})}else if(t.method==="Fetch.authRequired"){let n=t.params,i=n.authChallenge?.source==="Proxy";this.send(t.sessionId,"Fetch.continueWithAuth",{requestId:n.requestId,authChallengeResponse:i?{response:"ProvideCredentials",username:this.username,password:this.password}:{response:"Default"}})}else if(t.method==="Fetch.requestPaused")this.send(t.sessionId,"Fetch.continueRequest",{requestId:t.params.requestId})}close(){try{this.ws?.close()}catch{}this.ws=null}}var B=new Map;async function di(t,n=20000){let i=_t.join(t,"DevToolsActivePort"),c=Date.now()+n;while(Date.now()<c){try{let l=await ri(i,"utf8"),[f,b]=l.split(`
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var AK=Object.create;var{getPrototypeOf:LK,defineProperty:G$,getOwnPropertyNames:VK}=Object;var OK=Object.prototype.hasOwnProperty;function DK($){return this[$]}var FK,NK,PW=($,Q,X)=>{var W=$!=null&&typeof $==="object";if(W){var Y=Q?FK??=new WeakMap:NK??=new WeakMap,J=Y.get($);if(J)return J}X=$!=null?AK(LK($)):{};let G=Q||!$||!$.__esModule?G$(X,"default",{value:$,enumerable:!0}):X;for(let B of VK($))if(!OK.call(G,B))G$(G,B,{get:DK.bind($,B),enumerable:!0});if(W)Y.set($,G);return G};var I=($,Q)=>()=>(Q||$((Q={exports:{}}).exports,Q),Q.exports);var UK=($)=>$;function wK($,Q){this[$]=UK.bind(null,Q)}var B$=($,Q)=>{for(var X in Q)G$($,X,{get:Q[X],enumerable:!0,configurable:!0,set:wK.bind(Q,X)})};var n8=I((VG)=>{Object.defineProperty(VG,"__esModule",{value:!0});VG.regexpCode=VG.getEsmExportName=VG.getProperty=VG.safeStringify=VG.stringify=VG.strConcat=VG.addCodeArg=VG.str=VG._=VG.nil=VG._Code=VG.Name=VG.IDENTIFIER=VG._CodeOrName=void 0;class j4{}VG._CodeOrName=j4;VG.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class p6 extends j4{constructor($){super();if(!VG.IDENTIFIER.test($))throw Error("CodeGen: name must be a valid identifier");this.str=$}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}VG.Name=p6;class J1 extends j4{constructor($){super();this._items=typeof $==="string"?[$]:$}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let $=this._items[0];return $===""||$==='""'}get str(){var $;return($=this._str)!==null&&$!==void 0?$:this._str=this._items.reduce((Q,X)=>`${Q}${X}`,"")}get names(){var $;return($=this._names)!==null&&$!==void 0?$:this._names=this._items.reduce((Q,X)=>{if(X instanceof p6)Q[X.str]=(Q[X.str]||0)+1;return Q},{})}}VG._Code=J1;VG.nil=new J1("");function AG($,...Q){let X=[$[0]],W=0;while(W<Q.length)V5(X,Q[W]),X.push($[++W]);return new J1(X)}VG._=AG;var L5=new J1("+");function LG($,...Q){let X=[p8($[0])],W=0;while(W<Q.length)X.push(L5),V5(X,Q[W]),X.push(L5,p8($[++W]));return XF(X),new J1(X)}VG.str=LG;function V5($,Q){if(Q instanceof J1)$.push(...Q._items);else if(Q instanceof p6)$.push(Q);else $.push(JF(Q))}VG.addCodeArg=V5;function XF($){let Q=1;while(Q<$.length-1){if($[Q]===L5){let X=WF($[Q-1],$[Q+1]);if(X!==void 0){$.splice(Q-1,3,X);continue}$[Q++]="+"}Q++}}function WF($,Q){if(Q==='""')return $;if($==='""')return Q;if(typeof $=="string"){if(Q instanceof p6||$[$.length-1]!=='"')return;if(typeof Q!="string")return`${$.slice(0,-1)}${Q}"`;if(Q[0]==='"')return $.slice(0,-1)+Q.slice(1);return}if(typeof Q=="string"&&Q[0]==='"'&&!($ instanceof p6))return`"${$}${Q.slice(1)}`;return}function YF($,Q){return Q.emptyStr()?$:$.emptyStr()?Q:LG`${$}${Q}`}VG.strConcat=YF;function JF($){return typeof $=="number"||typeof $=="boolean"||$===null?$:p8(Array.isArray($)?$.join(","):$)}function GF($){return new J1(p8($))}VG.stringify=GF;function p8($){return JSON.stringify($).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}VG.safeStringify=p8;function BF($){return typeof $=="string"&&VG.IDENTIFIER.test($)?new J1(`.${$}`):AG`[${$}]`}VG.getProperty=BF;function HF($){if(typeof $=="string"&&VG.IDENTIFIER.test($))return new J1(`${$}`);throw Error(`CodeGen: invalid export name: ${$}, use explicit $id name mapping`)}VG.getEsmExportName=HF;function zF($){return new J1($.toString())}VG.regexpCode=zF});var N5=I((NG)=>{Object.defineProperty(NG,"__esModule",{value:!0});NG.ValueScope=NG.ValueScopeName=NG.Scope=NG.varKinds=NG.UsedValueState=void 0;var x0=n8();class DG extends Error{constructor($){super(`CodeGen: "code" for ${$} not defined`);this.value=$.value}}var P4;(function($){$[$.Started=0]="Started",$[$.Completed=1]="Completed"})(P4||(NG.UsedValueState=P4={}));NG.varKinds={const:new x0.Name("const"),let:new x0.Name("let"),var:new x0.Name("var")};class D5{constructor({prefixes:$,parent:Q}={}){this._names={},this._prefixes=$,this._parent=Q}toName($){return $ instanceof x0.Name?$:this.name($)}name($){return new x0.Name(this._newName($))}_newName($){let Q=this._names[$]||this._nameGroup($);return`${$}${Q.index++}`}_nameGroup($){var Q,X;if(((X=(Q=this._parent)===null||Q===void 0?void 0:Q._prefixes)===null||X===void 0?void 0:X.has($))||this._prefixes&&!this._prefixes.has($))throw Error(`CodeGen: prefix "${$}" is not allowed in this scope`);return this._names[$]={prefix:$,index:0}}}NG.Scope=D5;class F5 extends x0.Name{constructor($,Q){super(Q);this.prefix=$}setValue($,{property:Q,itemIndex:X}){this.value=$,this.scopePath=x0._`.${new x0.Name(Q)}[${X}]`}}NG.ValueScopeName=F5;var MF=x0._`\n`;class FG extends D5{constructor($){super($);this._values={},this._scope=$.scope,this.opts={...$,_n:$.lines?MF:x0.nil}}get(){return this._scope}name($){return new F5($,this._newName($))}value($,Q){var X;if(Q.ref===void 0)throw Error("CodeGen: ref must be passed in value");let W=this.toName($),{prefix:Y}=W,J=(X=Q.key)!==null&&X!==void 0?X:Q.ref,G=this._values[Y];if(G){let z=G.get(J);if(z)return z}else G=this._values[Y]=new Map;G.set(J,W);let B=this._scope[Y]||(this._scope[Y]=[]),H=B.length;return B[H]=Q.ref,W.setValue(Q,{property:Y,itemIndex:H}),W}getValue($,Q){let X=this._values[$];if(!X)return;return X.get(Q)}scopeRefs($,Q=this._values){return this._reduceValues(Q,(X)=>{if(X.scopePath===void 0)throw Error(`CodeGen: name "${X}" has no value`);return x0._`${$}${X.scopePath}`})}scopeCode($=this._values,Q,X){return this._reduceValues($,(W)=>{if(W.value===void 0)throw Error(`CodeGen: name "${W}" has no value`);return W.value.code},Q,X)}_reduceValues($,Q,X={},W){let Y=x0.nil;for(let J in $){let G=$[J];if(!G)continue;let B=X[J]=X[J]||new Map;G.forEach((H)=>{if(B.has(H))return;B.set(H,P4.Started);let z=Q(H);if(z){let K=this.opts.es5?NG.varKinds.var:NG.varKinds.const;Y=x0._`${Y}${K} ${H} = ${z};${this.opts._n}`}else if(z=W===null||W===void 0?void 0:W(H))Y=x0._`${Y}${z}${this.opts._n}`;else throw new DG(H);B.set(H,P4.Completed)})}return Y}}NG.ValueScope=FG});var m=I((g0)=>{Object.defineProperty(g0,"__esModule",{value:!0});g0.or=g0.and=g0.not=g0.CodeGen=g0.operators=g0.varKinds=g0.ValueScopeName=g0.ValueScope=g0.Scope=g0.Name=g0.regexpCode=g0.stringify=g0.getProperty=g0.nil=g0.strConcat=g0.str=g0._=void 0;var r=n8(),G1=N5(),h1=n8();Object.defineProperty(g0,"_",{enumerable:!0,get:function(){return h1._}});Object.defineProperty(g0,"str",{enumerable:!0,get:function(){return h1.str}});Object.defineProperty(g0,"strConcat",{enumerable:!0,get:function(){return h1.strConcat}});Object.defineProperty(g0,"nil",{enumerable:!0,get:function(){return h1.nil}});Object.defineProperty(g0,"getProperty",{enumerable:!0,get:function(){return h1.getProperty}});Object.defineProperty(g0,"stringify",{enumerable:!0,get:function(){return h1.stringify}});Object.defineProperty(g0,"regexpCode",{enumerable:!0,get:function(){return h1.regexpCode}});Object.defineProperty(g0,"Name",{enumerable:!0,get:function(){return h1.Name}});var v4=N5();Object.defineProperty(g0,"Scope",{enumerable:!0,get:function(){return v4.Scope}});Object.defineProperty(g0,"ValueScope",{enumerable:!0,get:function(){return v4.ValueScope}});Object.defineProperty(g0,"ValueScopeName",{enumerable:!0,get:function(){return v4.ValueScopeName}});Object.defineProperty(g0,"varKinds",{enumerable:!0,get:function(){return v4.varKinds}});g0.operators={GT:new r._Code(">"),GTE:new r._Code(">="),LT:new r._Code("<"),LTE:new r._Code("<="),EQ:new r._Code("==="),NEQ:new r._Code("!=="),NOT:new r._Code("!"),OR:new r._Code("||"),AND:new r._Code("&&"),ADD:new r._Code("+")};class f1{optimizeNodes(){return this}optimizeNames($,Q){return this}}class wG extends f1{constructor($,Q,X){super();this.varKind=$,this.name=Q,this.rhs=X}render({es5:$,_n:Q}){let X=$?G1.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${X} ${this.name}${W};`+Q}optimizeNames($,Q){if(!$[this.name.str])return;if(this.rhs)this.rhs=i6(this.rhs,$,Q);return this}get names(){return this.rhs instanceof r._CodeOrName?this.rhs.names:{}}}class b5 extends f1{constructor($,Q,X){super();this.lhs=$,this.rhs=Q,this.sideEffects=X}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,Q){if(this.lhs instanceof r.Name&&!$[this.lhs.str]&&!this.sideEffects)return;return this.rhs=i6(this.rhs,$,Q),this}get names(){let $=this.lhs instanceof r.Name?{}:{...this.lhs.names};return T4($,this.rhs)}}class bG extends b5{constructor($,Q,X,W){super($,X,W);this.op=Q}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class qG extends f1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class MG extends f1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class EG extends f1{constructor($){super();this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class jG extends f1{constructor($){super();this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,Q){return this.code=i6(this.code,$,Q),this}get names(){return this.code instanceof r._CodeOrName?this.code.names:{}}}class k4 extends f1{constructor($=[]){super();this.nodes=$}render($){return this.nodes.reduce((Q,X)=>Q+X.render($),"")}optimizeNodes(){let{nodes:$}=this,Q=$.length;while(Q--){let X=$[Q].optimizeNodes();if(Array.isArray(X))$.splice(Q,1,...X);else if(X)$[Q]=X;else $.splice(Q,1)}return $.length>0?this:void 0}optimizeNames($,Q){let{nodes:X}=this,W=X.length;while(W--){let Y=X[W];if(Y.optimizeNames($,Q))continue;PF($,Y.names),X.splice(W,1)}return X.length>0?this:void 0}get names(){return this.nodes.reduce(($,Q)=>H6($,Q.names),{})}}class u1 extends k4{render($){return"{"+$._n+super.render($)+"}"+$._n}}class SG extends k4{}class i8 extends u1{}i8.kind="else";class q1 extends u1{constructor($,Q){super(Q);this.condition=$}render($){let Q=`if(${this.condition})`+super.render($);if(this.else)Q+="else "+this.else.render($);return Q}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let Q=this.else;if(Q){let X=Q.optimizeNodes();Q=this.else=Array.isArray(X)?new i8(X):X}if(Q){if($===!1)return Q instanceof q1?Q:Q.nodes;if(this.nodes.length)return this;return new q1(ZG($),Q instanceof q1?[Q]:Q.nodes)}if($===!1||!this.nodes.length)return;return this}optimizeNames($,Q){var X;if(this.else=(X=this.else)===null||X===void 0?void 0:X.optimizeNames($,Q),!(super.optimizeNames($,Q)||this.else))return;return this.condition=i6(this.condition,$,Q),this}get names(){let $=super.names;if(T4($,this.condition),this.else)H6($,this.else.names);return $}}q1.kind="if";class n6 extends u1{}n6.kind="for";class PG extends n6{constructor($){super();this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,Q){if(!super.optimizeNames($,Q))return;return this.iteration=i6(this.iteration,$,Q),this}get names(){return H6(super.names,this.iteration.names)}}class RG extends n6{constructor($,Q,X,W){super();this.varKind=$,this.name=Q,this.from=X,this.to=W}render($){let Q=$.es5?G1.varKinds.var:this.varKind,{name:X,from:W,to:Y}=this;return`for(${Q} ${X}=${W}; ${X}<${Y}; ${X}++)`+super.render($)}get names(){let $=T4(super.names,this.from);return T4($,this.to)}}class U5 extends n6{constructor($,Q,X,W){super();this.loop=$,this.varKind=Q,this.name=X,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,Q){if(!super.optimizeNames($,Q))return;return this.iterable=i6(this.iterable,$,Q),this}get names(){return H6(super.names,this.iterable.names)}}class R4 extends u1{constructor($,Q,X){super();this.name=$,this.args=Q,this.async=X}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}R4.kind="func";class I4 extends k4{render($){return"return "+super.render($)}}I4.kind="return";class IG extends u1{render($){let Q="try"+super.render($);if(this.catch)Q+=this.catch.render($);if(this.finally)Q+=this.finally.render($);return Q}optimizeNodes(){var $,Q;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(Q=this.finally)===null||Q===void 0||Q.optimizeNodes(),this}optimizeNames($,Q){var X,W;return super.optimizeNames($,Q),(X=this.catch)===null||X===void 0||X.optimizeNames($,Q),(W=this.finally)===null||W===void 0||W.optimizeNames($,Q),this}get names(){let $=super.names;if(this.catch)H6($,this.catch.names);if(this.finally)H6($,this.finally.names);return $}}class C4 extends u1{constructor($){super();this.error=$}render($){return`catch(${this.error})`+super.render($)}}C4.kind="catch";class Z4 extends u1{render($){return"finally"+super.render($)}}Z4.kind="finally";class CG{constructor($,Q={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...Q,_n:Q.lines?`
|
|
3
|
+
`:""},this._extScope=$,this._scope=new G1.Scope({parent:$}),this._nodes=[new SG]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,Q){let X=this._extScope.value($,Q);return(this._values[X.prefix]||(this._values[X.prefix]=new Set)).add(X),X}getScopeValue($,Q){return this._extScope.getValue($,Q)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,Q,X,W){let Y=this._scope.toName(Q);if(X!==void 0&&W)this._constants[Y.str]=X;return this._leafNode(new wG($,Y,X)),Y}const($,Q,X){return this._def(G1.varKinds.const,$,Q,X)}let($,Q,X){return this._def(G1.varKinds.let,$,Q,X)}var($,Q,X){return this._def(G1.varKinds.var,$,Q,X)}assign($,Q,X){return this._leafNode(new b5($,Q,X))}add($,Q){return this._leafNode(new bG($,g0.operators.ADD,Q))}code($){if(typeof $=="function")$();else if($!==r.nil)this._leafNode(new jG($));return this}object(...$){let Q=["{"];for(let[X,W]of $){if(Q.length>1)Q.push(",");if(Q.push(X),X!==W||this.opts.es5)Q.push(":"),(0,r.addCodeArg)(Q,W)}return Q.push("}"),new r._Code(Q)}if($,Q,X){if(this._blockNode(new q1($)),Q&&X)this.code(Q).else().code(X).endIf();else if(Q)this.code(Q).endIf();else if(X)throw Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new q1($))}else(){return this._elseNode(new i8)}endIf(){return this._endBlockNode(q1,i8)}_for($,Q){if(this._blockNode($),Q)this.code(Q).endFor();return this}for($,Q){return this._for(new PG($),Q)}forRange($,Q,X,W,Y=this.opts.es5?G1.varKinds.var:G1.varKinds.let){let J=this._scope.toName($);return this._for(new RG(Y,J,Q,X),()=>W(J))}forOf($,Q,X,W=G1.varKinds.const){let Y=this._scope.toName($);if(this.opts.es5){let J=Q instanceof r.Name?Q:this.var("_arr",Q);return this.forRange("_i",0,r._`${J}.length`,(G)=>{this.var(Y,r._`${J}[${G}]`),X(Y)})}return this._for(new U5("of",W,Y,Q),()=>X(Y))}forIn($,Q,X,W=this.opts.es5?G1.varKinds.var:G1.varKinds.const){if(this.opts.ownProperties)return this.forOf($,r._`Object.keys(${Q})`,X);let Y=this._scope.toName($);return this._for(new U5("in",W,Y,Q),()=>X(Y))}endFor(){return this._endBlockNode(n6)}label($){return this._leafNode(new qG($))}break($){return this._leafNode(new MG($))}return($){let Q=new I4;if(this._blockNode(Q),this.code($),Q.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(I4)}try($,Q,X){if(!Q&&!X)throw Error('CodeGen: "try" without "catch" and "finally"');let W=new IG;if(this._blockNode(W),this.code($),Q){let Y=this.name("e");this._currNode=W.catch=new C4(Y),Q(Y)}if(X)this._currNode=W.finally=new Z4,this.code(X);return this._endBlockNode(C4,Z4)}throw($){return this._leafNode(new EG($))}block($,Q){if(this._blockStarts.push(this._nodes.length),$)this.code($).endBlock(Q);return this}endBlock($){let Q=this._blockStarts.pop();if(Q===void 0)throw Error("CodeGen: not in self-balancing block");let X=this._nodes.length-Q;if(X<0||$!==void 0&&X!==$)throw Error(`CodeGen: wrong number of nodes: ${X} vs ${$} expected`);return this._nodes.length=Q,this}func($,Q=r.nil,X,W){if(this._blockNode(new R4($,Q,X)),W)this.code(W).endFunc();return this}endFunc(){return this._endBlockNode(R4)}optimize($=1){while($-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,Q){let X=this._currNode;if(X instanceof $||Q&&X instanceof Q)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${Q?`${$.kind}/${Q.kind}`:$.kind}"`)}_elseNode($){let Q=this._currNode;if(!(Q instanceof q1))throw Error('CodeGen: "else" without "if"');return this._currNode=Q.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let Q=this._nodes;Q[Q.length-1]=$}}g0.CodeGen=CG;function H6($,Q){for(let X in Q)$[X]=($[X]||0)+(Q[X]||0);return $}function T4($,Q){return Q instanceof r._CodeOrName?H6($,Q.names):$}function i6($,Q,X){if($ instanceof r.Name)return W($);if(!Y($))return $;return new r._Code($._items.reduce((J,G)=>{if(G instanceof r.Name)G=W(G);if(G instanceof r._Code)J.push(...G._items);else J.push(G);return J},[]));function W(J){let G=X[J.str];if(G===void 0||Q[J.str]!==1)return J;return delete Q[J.str],G}function Y(J){return J instanceof r._Code&&J._items.some((G)=>G instanceof r.Name&&Q[G.str]===1&&X[G.str]!==void 0)}}function PF($,Q){for(let X in Q)$[X]=($[X]||0)-(Q[X]||0)}function ZG($){return typeof $=="boolean"||typeof $=="number"||$===null?!$:r._`!${w5($)}`}g0.not=ZG;var RF=TG(g0.operators.AND);function IF(...$){return $.reduce(RF)}g0.and=IF;var CF=TG(g0.operators.OR);function ZF(...$){return $.reduce(CF)}g0.or=ZF;function TG($){return(Q,X)=>Q===r.nil?X:X===r.nil?Q:r._`${w5(Q)} ${$} ${w5(X)}`}function w5($){return $ instanceof r.Name?$:r._`(${$})`}});var t=I((uG)=>{Object.defineProperty(uG,"__esModule",{value:!0});uG.checkStrictMode=uG.getErrorPath=uG.Type=uG.useFunc=uG.setEvaluated=uG.evaluatedPropsToName=uG.mergeEvaluated=uG.eachItem=uG.unescapeJsonPointer=uG.escapeJsonPointer=uG.escapeFragment=uG.unescapeFragment=uG.schemaRefOrVal=uG.schemaHasRulesButRef=uG.schemaHasRules=uG.checkUnknownRules=uG.alwaysValidSchema=uG.toHash=void 0;var W0=m(),_F=n8();function xF($){let Q={};for(let X of $)Q[X]=!0;return Q}uG.toHash=xF;function gF($,Q){if(typeof Q=="boolean")return Q;if(Object.keys(Q).length===0)return!0;return xG($,Q),!gG(Q,$.self.RULES.all)}uG.alwaysValidSchema=gF;function xG($,Q=$.schema){let{opts:X,self:W}=$;if(!X.strictSchema)return;if(typeof Q==="boolean")return;let Y=W.RULES.keywords;for(let J in Q)if(!Y[J])fG($,`unknown keyword: "${J}"`)}uG.checkUnknownRules=xG;function gG($,Q){if(typeof $=="boolean")return!$;for(let X in $)if(Q[X])return!0;return!1}uG.schemaHasRules=gG;function yF($,Q){if(typeof $=="boolean")return!$;for(let X in $)if(X!=="$ref"&&Q.all[X])return!0;return!1}uG.schemaHasRulesButRef=yF;function hF({topSchemaRef:$,schemaPath:Q},X,W,Y){if(!Y){if(typeof X=="number"||typeof X=="boolean")return X;if(typeof X=="string")return W0._`${X}`}return W0._`${$}${Q}${(0,W0.getProperty)(W)}`}uG.schemaRefOrVal=hF;function fF($){return yG(decodeURIComponent($))}uG.unescapeFragment=fF;function uF($){return encodeURIComponent(M5($))}uG.escapeFragment=uF;function M5($){if(typeof $=="number")return`${$}`;return $.replace(/~/g,"~0").replace(/\//g,"~1")}uG.escapeJsonPointer=M5;function yG($){return $.replace(/~1/g,"/").replace(/~0/g,"~")}uG.unescapeJsonPointer=yG;function lF($,Q){if(Array.isArray($))for(let X of $)Q(X);else Q($)}uG.eachItem=lF;function kG({mergeNames:$,mergeToName:Q,mergeValues:X,resultToName:W}){return(Y,J,G,B)=>{let H=G===void 0?J:G instanceof W0.Name?(J instanceof W0.Name?$(Y,J,G):Q(Y,J,G),G):J instanceof W0.Name?(Q(Y,G,J),J):X(J,G);return B===W0.Name&&!(H instanceof W0.Name)?W(Y,H):H}}uG.mergeEvaluated={props:kG({mergeNames:($,Q,X)=>$.if(W0._`${X} !== true && ${Q} !== undefined`,()=>{$.if(W0._`${Q} === true`,()=>$.assign(X,!0),()=>$.assign(X,W0._`${X} || {}`).code(W0._`Object.assign(${X}, ${Q})`))}),mergeToName:($,Q,X)=>$.if(W0._`${X} !== true`,()=>{if(Q===!0)$.assign(X,!0);else $.assign(X,W0._`${X} || {}`),E5($,X,Q)}),mergeValues:($,Q)=>$===!0?!0:{...$,...Q},resultToName:hG}),items:kG({mergeNames:($,Q,X)=>$.if(W0._`${X} !== true && ${Q} !== undefined`,()=>$.assign(X,W0._`${Q} === true ? true : ${X} > ${Q} ? ${X} : ${Q}`)),mergeToName:($,Q,X)=>$.if(W0._`${X} !== true`,()=>$.assign(X,Q===!0?!0:W0._`${X} > ${Q} ? ${X} : ${Q}`)),mergeValues:($,Q)=>$===!0?!0:Math.max($,Q),resultToName:($,Q)=>$.var("items",Q)})};function hG($,Q){if(Q===!0)return $.var("props",!0);let X=$.var("props",W0._`{}`);if(Q!==void 0)E5($,X,Q);return X}uG.evaluatedPropsToName=hG;function E5($,Q,X){Object.keys(X).forEach((W)=>$.assign(W0._`${Q}${(0,W0.getProperty)(W)}`,!0))}uG.setEvaluated=E5;var _G={};function mF($,Q){return $.scopeValue("func",{ref:Q,code:_G[Q.code]||(_G[Q.code]=new _F._Code(Q.code))})}uG.useFunc=mF;var q5;(function($){$[$.Num=0]="Num",$[$.Str=1]="Str"})(q5||(uG.Type=q5={}));function cF($,Q,X){if($ instanceof W0.Name){let W=Q===q5.Num;return X?W?W0._`"[" + ${$} + "]"`:W0._`"['" + ${$} + "']"`:W?W0._`"/" + ${$}`:W0._`"/" + ${$}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return X?(0,W0.getProperty)($).toString():"/"+M5($)}uG.getErrorPath=cF;function fG($,Q,X=$.opts.strictSchema){if(!X)return;if(Q=`strict mode: ${Q}`,X===!0)throw Error(Q);$.self.logger.warn(Q)}uG.checkStrictMode=fG});var M1=I((mG)=>{Object.defineProperty(mG,"__esModule",{value:!0});var P0=m(),BN={data:new P0.Name("data"),valCxt:new P0.Name("valCxt"),instancePath:new P0.Name("instancePath"),parentData:new P0.Name("parentData"),parentDataProperty:new P0.Name("parentDataProperty"),rootData:new P0.Name("rootData"),dynamicAnchors:new P0.Name("dynamicAnchors"),vErrors:new P0.Name("vErrors"),errors:new P0.Name("errors"),this:new P0.Name("this"),self:new P0.Name("self"),scope:new P0.Name("scope"),json:new P0.Name("json"),jsonPos:new P0.Name("jsonPos"),jsonLen:new P0.Name("jsonLen"),jsonPart:new P0.Name("jsonPart")};mG.default=BN});var d8=I((iG)=>{Object.defineProperty(iG,"__esModule",{value:!0});iG.extendErrors=iG.resetErrorsCount=iG.reportExtraError=iG.reportError=iG.keyword$DataError=iG.keywordError=void 0;var a=m(),x4=t(),Z0=M1();iG.keywordError={message:({keyword:$})=>a.str`must pass "${$}" keyword validation`};iG.keyword$DataError={message:({keyword:$,schemaType:Q})=>Q?a.str`"${$}" keyword must be ${Q} ($data)`:a.str`"${$}" keyword is invalid ($data)`};function zN($,Q=iG.keywordError,X,W){let{it:Y}=$,{gen:J,compositeRule:G,allErrors:B}=Y,H=nG($,Q,X);if(W!==null&&W!==void 0?W:G||B)cG(J,H);else pG(Y,a._`[${H}]`)}iG.reportError=zN;function KN($,Q=iG.keywordError,X){let{it:W}=$,{gen:Y,compositeRule:J,allErrors:G}=W,B=nG($,Q,X);if(cG(Y,B),!(J||G))pG(W,Z0.default.vErrors)}iG.reportExtraError=KN;function AN($,Q){$.assign(Z0.default.errors,Q),$.if(a._`${Z0.default.vErrors} !== null`,()=>$.if(Q,()=>$.assign(a._`${Z0.default.vErrors}.length`,Q),()=>$.assign(Z0.default.vErrors,null)))}iG.resetErrorsCount=AN;function LN({gen:$,keyword:Q,schemaValue:X,data:W,errsCount:Y,it:J}){if(Y===void 0)throw Error("ajv implementation error");let G=$.name("err");$.forRange("i",Y,Z0.default.errors,(B)=>{if($.const(G,a._`${Z0.default.vErrors}[${B}]`),$.if(a._`${G}.instancePath === undefined`,()=>$.assign(a._`${G}.instancePath`,(0,a.strConcat)(Z0.default.instancePath,J.errorPath))),$.assign(a._`${G}.schemaPath`,a.str`${J.errSchemaPath}/${Q}`),J.opts.verbose)$.assign(a._`${G}.schema`,X),$.assign(a._`${G}.data`,W)})}iG.extendErrors=LN;function cG($,Q){let X=$.const("err",Q);$.if(a._`${Z0.default.vErrors} === null`,()=>$.assign(Z0.default.vErrors,a._`[${X}]`),a._`${Z0.default.vErrors}.push(${X})`),$.code(a._`${Z0.default.errors}++`)}function pG($,Q){let{gen:X,validateName:W,schemaEnv:Y}=$;if(Y.$async)X.throw(a._`new ${$.ValidationError}(${Q})`);else X.assign(a._`${W}.errors`,Q),X.return(!1)}var z6={keyword:new a.Name("keyword"),schemaPath:new a.Name("schemaPath"),params:new a.Name("params"),propertyName:new a.Name("propertyName"),message:new a.Name("message"),schema:new a.Name("schema"),parentSchema:new a.Name("parentSchema")};function nG($,Q,X){let{createErrors:W}=$.it;if(W===!1)return a._`{}`;return VN($,Q,X)}function VN($,Q,X={}){let{gen:W,it:Y}=$,J=[ON(Y,X),DN($,X)];return FN($,Q,J),W.object(...J)}function ON({errorPath:$},{instancePath:Q}){let X=Q?a.str`${$}${(0,x4.getErrorPath)(Q,x4.Type.Str)}`:$;return[Z0.default.instancePath,(0,a.strConcat)(Z0.default.instancePath,X)]}function DN({keyword:$,it:{errSchemaPath:Q}},{schemaPath:X,parentSchema:W}){let Y=W?Q:a.str`${Q}/${$}`;if(X)Y=a.str`${Y}${(0,x4.getErrorPath)(X,x4.Type.Str)}`;return[z6.schemaPath,Y]}function FN($,{params:Q,message:X},W){let{keyword:Y,data:J,schemaValue:G,it:B}=$,{opts:H,propertyName:z,topSchemaRef:K,schemaPath:L}=B;if(W.push([z6.keyword,Y],[z6.params,typeof Q=="function"?Q($):Q||a._`{}`]),H.messages)W.push([z6.message,typeof X=="function"?X($):X]);if(H.verbose)W.push([z6.schema,G],[z6.parentSchema,a._`${K}${L}`],[Z0.default.data,J]);if(z)W.push([z6.propertyName,z])}});var aG=I((rG)=>{Object.defineProperty(rG,"__esModule",{value:!0});rG.boolOrEmptySchema=rG.topBoolOrEmptySchema=void 0;var qN=d8(),MN=m(),EN=M1(),jN={message:"boolean schema is false"};function SN($){let{gen:Q,schema:X,validateName:W}=$;if(X===!1)oG($,!1);else if(typeof X=="object"&&X.$async===!0)Q.return(EN.default.data);else Q.assign(MN._`${W}.errors`,null),Q.return(!0)}rG.topBoolOrEmptySchema=SN;function PN($,Q){let{gen:X,schema:W}=$;if(W===!1)X.var(Q,!1),oG($);else X.var(Q,!0)}rG.boolOrEmptySchema=PN;function oG($,Q){let{gen:X,data:W}=$,Y={gen:X,keyword:"false schema",data:W,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:$};(0,qN.reportError)(Y,jN,void 0,Q)}});var S5=I((sG)=>{Object.defineProperty(sG,"__esModule",{value:!0});sG.getRules=sG.isJSONType=void 0;var IN=["string","number","integer","boolean","null","object","array"],CN=new Set(IN);function ZN($){return typeof $=="string"&&CN.has($)}sG.isJSONType=ZN;function TN(){let $={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...$,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},$.number,$.string,$.array,$.object],post:{rules:[]},all:{},keywords:{}}}sG.getRules=TN});var P5=I((X3)=>{Object.defineProperty(X3,"__esModule",{value:!0});X3.shouldUseRule=X3.shouldUseGroup=X3.schemaHasRulesForType=void 0;function kN({schema:$,self:Q},X){let W=Q.RULES.types[X];return W&&W!==!0&&$3($,W)}X3.schemaHasRulesForType=kN;function $3($,Q){return Q.rules.some((X)=>Q3($,X))}X3.shouldUseGroup=$3;function Q3($,Q){var X;return $[Q.keyword]!==void 0||((X=Q.definition.implements)===null||X===void 0?void 0:X.some((W)=>$[W]!==void 0))}X3.shouldUseRule=Q3});var o8=I((B3)=>{Object.defineProperty(B3,"__esModule",{value:!0});B3.reportTypeError=B3.checkDataTypes=B3.checkDataType=B3.coerceAndCheckDataType=B3.getJSONTypes=B3.getSchemaTypes=B3.DataType=void 0;var gN=S5(),yN=P5(),hN=d8(),l=m(),Y3=t(),d6;(function($){$[$.Correct=0]="Correct",$[$.Wrong=1]="Wrong"})(d6||(B3.DataType=d6={}));function fN($){let Q=J3($.type);if(Q.includes("null")){if($.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!Q.length&&$.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if($.nullable===!0)Q.push("null")}return Q}B3.getSchemaTypes=fN;function J3($){let Q=Array.isArray($)?$:$?[$]:[];if(Q.every(gN.isJSONType))return Q;throw Error("type must be JSONType or JSONType[]: "+Q.join(","))}B3.getJSONTypes=J3;function uN($,Q){let{gen:X,data:W,opts:Y}=$,J=lN(Q,Y.coerceTypes),G=Q.length>0&&!(J.length===0&&Q.length===1&&(0,yN.schemaHasRulesForType)($,Q[0]));if(G){let B=I5(Q,W,Y.strictNumbers,d6.Wrong);X.if(B,()=>{if(J.length)mN($,Q,J);else C5($)})}return G}B3.coerceAndCheckDataType=uN;var G3=new Set(["string","number","integer","boolean","null"]);function lN($,Q){return Q?$.filter((X)=>G3.has(X)||Q==="array"&&X==="array"):[]}function mN($,Q,X){let{gen:W,data:Y,opts:J}=$,G=W.let("dataType",l._`typeof ${Y}`),B=W.let("coerced",l._`undefined`);if(J.coerceTypes==="array")W.if(l._`${G} == 'object' && Array.isArray(${Y}) && ${Y}.length == 1`,()=>W.assign(Y,l._`${Y}[0]`).assign(G,l._`typeof ${Y}`).if(I5(Q,Y,J.strictNumbers),()=>W.assign(B,Y)));W.if(l._`${B} !== undefined`);for(let z of X)if(G3.has(z)||z==="array"&&J.coerceTypes==="array")H(z);W.else(),C5($),W.endIf(),W.if(l._`${B} !== undefined`,()=>{W.assign(Y,B),cN($,B)});function H(z){switch(z){case"string":W.elseIf(l._`${G} == "number" || ${G} == "boolean"`).assign(B,l._`"" + ${Y}`).elseIf(l._`${Y} === null`).assign(B,l._`""`);return;case"number":W.elseIf(l._`${G} == "boolean" || ${Y} === null
|
|
4
|
+
|| (${G} == "string" && ${Y} && ${Y} == +${Y})`).assign(B,l._`+${Y}`);return;case"integer":W.elseIf(l._`${G} === "boolean" || ${Y} === null
|
|
5
|
+
|| (${G} === "string" && ${Y} && ${Y} == +${Y} && !(${Y} % 1))`).assign(B,l._`+${Y}`);return;case"boolean":W.elseIf(l._`${Y} === "false" || ${Y} === 0 || ${Y} === null`).assign(B,!1).elseIf(l._`${Y} === "true" || ${Y} === 1`).assign(B,!0);return;case"null":W.elseIf(l._`${Y} === "" || ${Y} === 0 || ${Y} === false`),W.assign(B,null);return;case"array":W.elseIf(l._`${G} === "string" || ${G} === "number"
|
|
6
|
+
|| ${G} === "boolean" || ${Y} === null`).assign(B,l._`[${Y}]`)}}}function cN({gen:$,parentData:Q,parentDataProperty:X},W){$.if(l._`${Q} !== undefined`,()=>$.assign(l._`${Q}[${X}]`,W))}function R5($,Q,X,W=d6.Correct){let Y=W===d6.Correct?l.operators.EQ:l.operators.NEQ,J;switch($){case"null":return l._`${Q} ${Y} null`;case"array":J=l._`Array.isArray(${Q})`;break;case"object":J=l._`${Q} && typeof ${Q} == "object" && !Array.isArray(${Q})`;break;case"integer":J=G(l._`!(${Q} % 1) && !isNaN(${Q})`);break;case"number":J=G();break;default:return l._`typeof ${Q} ${Y} ${$}`}return W===d6.Correct?J:(0,l.not)(J);function G(B=l.nil){return(0,l.and)(l._`typeof ${Q} == "number"`,B,X?l._`isFinite(${Q})`:l.nil)}}B3.checkDataType=R5;function I5($,Q,X,W){if($.length===1)return R5($[0],Q,X,W);let Y,J=(0,Y3.toHash)($);if(J.array&&J.object){let G=l._`typeof ${Q} != "object"`;Y=J.null?G:l._`!${Q} || ${G}`,delete J.null,delete J.array,delete J.object}else Y=l.nil;if(J.number)delete J.integer;for(let G in J)Y=(0,l.and)(Y,R5(G,Q,X,W));return Y}B3.checkDataTypes=I5;var pN={message:({schema:$})=>`must be ${$}`,params:({schema:$,schemaValue:Q})=>typeof $=="string"?l._`{type: ${$}}`:l._`{type: ${Q}}`};function C5($){let Q=nN($);(0,hN.reportError)(Q,pN)}B3.reportTypeError=C5;function nN($){let{gen:Q,data:X,schema:W}=$,Y=(0,Y3.schemaRefOrVal)($,W,"type");return{gen:Q,keyword:"type",data:X,schema:W.type,schemaCode:Y,schemaValue:Y,parentSchema:W,params:{},it:$}}});var L3=I((K3)=>{Object.defineProperty(K3,"__esModule",{value:!0});K3.assignDefaults=void 0;var o6=m(),sN=t();function eN($,Q){let{properties:X,items:W}=$.schema;if(Q==="object"&&X)for(let Y in X)z3($,Y,X[Y].default);else if(Q==="array"&&Array.isArray(W))W.forEach((Y,J)=>z3($,J,Y.default))}K3.assignDefaults=eN;function z3($,Q,X){let{gen:W,compositeRule:Y,data:J,opts:G}=$;if(X===void 0)return;let B=o6._`${J}${(0,o6.getProperty)(Q)}`;if(Y){(0,sN.checkStrictMode)($,`default is ignored for: ${B}`);return}let H=o6._`${B} === undefined`;if(G.useDefaults==="empty")H=o6._`${H} || ${B} === null || ${B} === ""`;W.if(H,o6._`${B} = ${(0,o6.stringify)(X)}`)}});var r0=I((D3)=>{Object.defineProperty(D3,"__esModule",{value:!0});D3.validateUnion=D3.validateArray=D3.usePattern=D3.callValidateCode=D3.schemaProperties=D3.allSchemaProperties=D3.noPropertyInData=D3.propertyInData=D3.isOwnProperty=D3.hasPropFunc=D3.reportMissingProp=D3.checkMissingProp=D3.checkReportMissingProp=void 0;var H0=m(),Z5=t(),l1=M1(),$U=t();function QU($,Q){let{gen:X,data:W,it:Y}=$;X.if(v5(X,W,Q,Y.opts.ownProperties),()=>{$.setParams({missingProperty:H0._`${Q}`},!0),$.error()})}D3.checkReportMissingProp=QU;function XU({gen:$,data:Q,it:{opts:X}},W,Y){return(0,H0.or)(...W.map((J)=>(0,H0.and)(v5($,Q,J,X.ownProperties),H0._`${Y} = ${J}`)))}D3.checkMissingProp=XU;function WU($,Q){$.setParams({missingProperty:Q},!0),$.error()}D3.reportMissingProp=WU;function V3($){return $.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:H0._`Object.prototype.hasOwnProperty`})}D3.hasPropFunc=V3;function T5($,Q,X){return H0._`${V3($)}.call(${Q}, ${X})`}D3.isOwnProperty=T5;function YU($,Q,X,W){let Y=H0._`${Q}${(0,H0.getProperty)(X)} !== undefined`;return W?H0._`${Y} && ${T5($,Q,X)}`:Y}D3.propertyInData=YU;function v5($,Q,X,W){let Y=H0._`${Q}${(0,H0.getProperty)(X)} === undefined`;return W?(0,H0.or)(Y,(0,H0.not)(T5($,Q,X))):Y}D3.noPropertyInData=v5;function O3($){return $?Object.keys($).filter((Q)=>Q!=="__proto__"):[]}D3.allSchemaProperties=O3;function JU($,Q){return O3(Q).filter((X)=>!(0,Z5.alwaysValidSchema)($,Q[X]))}D3.schemaProperties=JU;function GU({schemaCode:$,data:Q,it:{gen:X,topSchemaRef:W,schemaPath:Y,errorPath:J},it:G},B,H,z){let K=z?H0._`${$}, ${Q}, ${W}${Y}`:Q,L=[[l1.default.instancePath,(0,H0.strConcat)(l1.default.instancePath,J)],[l1.default.parentData,G.parentData],[l1.default.parentDataProperty,G.parentDataProperty],[l1.default.rootData,l1.default.rootData]];if(G.opts.dynamicRef)L.push([l1.default.dynamicAnchors,l1.default.dynamicAnchors]);let V=H0._`${K}, ${X.object(...L)}`;return H!==H0.nil?H0._`${B}.call(${H}, ${V})`:H0._`${B}(${V})`}D3.callValidateCode=GU;var BU=H0._`new RegExp`;function HU({gen:$,it:{opts:Q}},X){let W=Q.unicodeRegExp?"u":"",{regExp:Y}=Q.code,J=Y(X,W);return $.scopeValue("pattern",{key:J.toString(),ref:J,code:H0._`${Y.code==="new RegExp"?BU:(0,$U.useFunc)($,Y)}(${X}, ${W})`})}D3.usePattern=HU;function zU($){let{gen:Q,data:X,keyword:W,it:Y}=$,J=Q.name("valid");if(Y.allErrors){let B=Q.let("valid",!0);return G(()=>Q.assign(B,!1)),B}return Q.var(J,!0),G(()=>Q.break()),J;function G(B){let H=Q.const("len",H0._`${X}.length`);Q.forRange("i",0,H,(z)=>{$.subschema({keyword:W,dataProp:z,dataPropType:Z5.Type.Num},J),Q.if((0,H0.not)(J),B)})}}D3.validateArray=zU;function KU($){let{gen:Q,schema:X,keyword:W,it:Y}=$;if(!Array.isArray(X))throw Error("ajv implementation error");if(X.some((H)=>(0,Z5.alwaysValidSchema)(Y,H))&&!Y.opts.unevaluated)return;let G=Q.let("valid",!1),B=Q.name("_valid");Q.block(()=>X.forEach((H,z)=>{let K=$.subschema({keyword:W,schemaProp:z,compositeRule:!0},B);if(Q.assign(G,H0._`${G} || ${B}`),!$.mergeValidEvaluated(K,B))Q.if((0,H0.not)(G))})),$.result(G,()=>$.reset(),()=>$.error(!0))}D3.validateUnion=KU});var q3=I((w3)=>{Object.defineProperty(w3,"__esModule",{value:!0});w3.validateKeywordUsage=w3.validSchemaType=w3.funcKeywordCode=w3.macroKeywordCode=void 0;var T0=m(),K6=M1(),EU=r0(),jU=d8();function SU($,Q){let{gen:X,keyword:W,schema:Y,parentSchema:J,it:G}=$,B=Q.macro.call(G.self,Y,J,G),H=U3(X,W,B);if(G.opts.validateSchema!==!1)G.self.validateSchema(B,!0);let z=X.name("valid");$.subschema({schema:B,schemaPath:T0.nil,errSchemaPath:`${G.errSchemaPath}/${W}`,topSchemaRef:H,compositeRule:!0},z),$.pass(z,()=>$.error(!0))}w3.macroKeywordCode=SU;function PU($,Q){var X;let{gen:W,keyword:Y,schema:J,parentSchema:G,$data:B,it:H}=$;IU(H,Q);let z=!B&&Q.compile?Q.compile.call(H.self,J,G,H):Q.validate,K=U3(W,Y,z),L=W.let("valid");$.block$data(L,V),$.ok((X=Q.valid)!==null&&X!==void 0?X:L);function V(){if(Q.errors===!1){if(F(),Q.modifying)N3($);b(()=>$.error())}else{let O=Q.async?A():D();if(Q.modifying)N3($);b(()=>RU($,O))}}function A(){let O=W.let("ruleErrs",null);return W.try(()=>F(T0._`await `),(N)=>W.assign(L,!1).if(T0._`${N} instanceof ${H.ValidationError}`,()=>W.assign(O,T0._`${N}.errors`),()=>W.throw(N))),O}function D(){let O=T0._`${K}.errors`;return W.assign(O,null),F(T0.nil),O}function F(O=Q.async?T0._`await `:T0.nil){let N=H.opts.passContext?K6.default.this:K6.default.self,q=!(("compile"in Q)&&!B||Q.schema===!1);W.assign(L,T0._`${O}${(0,EU.callValidateCode)($,K,N,q)}`,Q.modifying)}function b(O){var N;W.if((0,T0.not)((N=Q.valid)!==null&&N!==void 0?N:L),O)}}w3.funcKeywordCode=PU;function N3($){let{gen:Q,data:X,it:W}=$;Q.if(W.parentData,()=>Q.assign(X,T0._`${W.parentData}[${W.parentDataProperty}]`))}function RU($,Q){let{gen:X}=$;X.if(T0._`Array.isArray(${Q})`,()=>{X.assign(K6.default.vErrors,T0._`${K6.default.vErrors} === null ? ${Q} : ${K6.default.vErrors}.concat(${Q})`).assign(K6.default.errors,T0._`${K6.default.vErrors}.length`),(0,jU.extendErrors)($)},()=>$.error())}function IU({schemaEnv:$},Q){if(Q.async&&!$.$async)throw Error("async keyword in sync schema")}function U3($,Q,X){if(X===void 0)throw Error(`keyword "${Q}" failed to compile`);return $.scopeValue("keyword",typeof X=="function"?{ref:X}:{ref:X,code:(0,T0.stringify)(X)})}function CU($,Q,X=!1){return!Q.length||Q.some((W)=>W==="array"?Array.isArray($):W==="object"?$&&typeof $=="object"&&!Array.isArray($):typeof $==W||X&&typeof $>"u")}w3.validSchemaType=CU;function ZU({schema:$,opts:Q,self:X,errSchemaPath:W},Y,J){if(Array.isArray(Y.keyword)?!Y.keyword.includes(J):Y.keyword!==J)throw Error("ajv implementation error");let G=Y.dependencies;if(G===null||G===void 0?void 0:G.some((B)=>!Object.prototype.hasOwnProperty.call($,B)))throw Error(`parent schema must have dependencies of ${J}: ${G.join(",")}`);if(Y.validateSchema){if(!Y.validateSchema($[J])){let H=`keyword "${J}" value is invalid at path "${W}": `+X.errorsText(Y.validateSchema.errors);if(Q.validateSchema==="log")X.logger.error(H);else throw Error(H)}}}w3.validateKeywordUsage=ZU});var S3=I((E3)=>{Object.defineProperty(E3,"__esModule",{value:!0});E3.extendSubschemaMode=E3.extendSubschemaData=E3.getSubschema=void 0;var F1=m(),M3=t();function _U($,{keyword:Q,schemaProp:X,schema:W,schemaPath:Y,errSchemaPath:J,topSchemaRef:G}){if(Q!==void 0&&W!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(Q!==void 0){let B=$.schema[Q];return X===void 0?{schema:B,schemaPath:F1._`${$.schemaPath}${(0,F1.getProperty)(Q)}`,errSchemaPath:`${$.errSchemaPath}/${Q}`}:{schema:B[X],schemaPath:F1._`${$.schemaPath}${(0,F1.getProperty)(Q)}${(0,F1.getProperty)(X)}`,errSchemaPath:`${$.errSchemaPath}/${Q}/${(0,M3.escapeFragment)(X)}`}}if(W!==void 0){if(Y===void 0||J===void 0||G===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:W,schemaPath:Y,topSchemaRef:G,errSchemaPath:J}}throw Error('either "keyword" or "schema" must be passed')}E3.getSubschema=_U;function xU($,Q,{dataProp:X,dataPropType:W,data:Y,dataTypes:J,propertyName:G}){if(Y!==void 0&&X!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:B}=Q;if(X!==void 0){let{errorPath:z,dataPathArr:K,opts:L}=Q,V=B.let("data",F1._`${Q.data}${(0,F1.getProperty)(X)}`,!0);H(V),$.errorPath=F1.str`${z}${(0,M3.getErrorPath)(X,W,L.jsPropertySyntax)}`,$.parentDataProperty=F1._`${X}`,$.dataPathArr=[...K,$.parentDataProperty]}if(Y!==void 0){let z=Y instanceof F1.Name?Y:B.let("data",Y,!0);if(H(z),G!==void 0)$.propertyName=G}if(J)$.dataTypes=J;function H(z){$.data=z,$.dataLevel=Q.dataLevel+1,$.dataTypes=[],Q.definedProperties=new Set,$.parentData=Q.data,$.dataNames=[...Q.dataNames,z]}}E3.extendSubschemaData=xU;function gU($,{jtdDiscriminator:Q,jtdMetadata:X,compositeRule:W,createErrors:Y,allErrors:J}){if(W!==void 0)$.compositeRule=W;if(Y!==void 0)$.createErrors=Y;if(J!==void 0)$.allErrors=J;$.jtdDiscriminator=Q,$.jtdMetadata=X}E3.extendSubschemaMode=gU});var k5=I((AT,P3)=>{P3.exports=function $(Q,X){if(Q===X)return!0;if(Q&&X&&typeof Q=="object"&&typeof X=="object"){if(Q.constructor!==X.constructor)return!1;var W,Y,J;if(Array.isArray(Q)){if(W=Q.length,W!=X.length)return!1;for(Y=W;Y--!==0;)if(!$(Q[Y],X[Y]))return!1;return!0}if(Q.constructor===RegExp)return Q.source===X.source&&Q.flags===X.flags;if(Q.valueOf!==Object.prototype.valueOf)return Q.valueOf()===X.valueOf();if(Q.toString!==Object.prototype.toString)return Q.toString()===X.toString();if(J=Object.keys(Q),W=J.length,W!==Object.keys(X).length)return!1;for(Y=W;Y--!==0;)if(!Object.prototype.hasOwnProperty.call(X,J[Y]))return!1;for(Y=W;Y--!==0;){var G=J[Y];if(!$(Q[G],X[G]))return!1}return!0}return Q!==Q&&X!==X}});var I3=I((LT,R3)=>{var m1=R3.exports=function($,Q,X){if(typeof Q=="function")X=Q,Q={};X=Q.cb||X;var W=typeof X=="function"?X:X.pre||function(){},Y=X.post||function(){};g4(Q,W,Y,$,"",$)};m1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};m1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};m1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};m1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function g4($,Q,X,W,Y,J,G,B,H,z){if(W&&typeof W=="object"&&!Array.isArray(W)){Q(W,Y,J,G,B,H,z);for(var K in W){var L=W[K];if(Array.isArray(L)){if(K in m1.arrayKeywords)for(var V=0;V<L.length;V++)g4($,Q,X,L[V],Y+"/"+K+"/"+V,J,Y,K,W,V)}else if(K in m1.propsKeywords){if(L&&typeof L=="object")for(var A in L)g4($,Q,X,L[A],Y+"/"+K+"/"+fU(A),J,Y,K,W,A)}else if(K in m1.keywords||$.allKeys&&!(K in m1.skipKeywords))g4($,Q,X,L,Y+"/"+K,J,Y,K,W)}X(W,Y,J,G,B,H,z)}}function fU($){return $.replace(/~/g,"~0").replace(/\//g,"~1")}});var r8=I((v3)=>{Object.defineProperty(v3,"__esModule",{value:!0});v3.getSchemaRefs=v3.resolveUrl=v3.normalizeId=v3._getFullPath=v3.getFullPath=v3.inlineRef=void 0;var uU=t(),lU=k5(),mU=I3(),cU=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function pU($,Q=!0){if(typeof $=="boolean")return!0;if(Q===!0)return!_5($);if(!Q)return!1;return C3($)<=Q}v3.inlineRef=pU;var nU=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function _5($){for(let Q in $){if(nU.has(Q))return!0;let X=$[Q];if(Array.isArray(X)&&X.some(_5))return!0;if(typeof X=="object"&&_5(X))return!0}return!1}function C3($){let Q=0;for(let X in $){if(X==="$ref")return 1/0;if(Q++,cU.has(X))continue;if(typeof $[X]=="object")(0,uU.eachItem)($[X],(W)=>Q+=C3(W));if(Q===1/0)return 1/0}return Q}function Z3($,Q="",X){if(X!==!1)Q=r6(Q);let W=$.parse(Q);return T3($,W)}v3.getFullPath=Z3;function T3($,Q){return $.serialize(Q).split("#")[0]+"#"}v3._getFullPath=T3;var iU=/#\/?$/;function r6($){return $?$.replace(iU,""):""}v3.normalizeId=r6;function dU($,Q,X){return X=r6(X),$.resolve(Q,X)}v3.resolveUrl=dU;var oU=/^[a-z_][-a-z0-9._]*$/i;function rU($,Q){if(typeof $=="boolean")return{};let{schemaId:X,uriResolver:W}=this.opts,Y=r6($[X]||Q),J={"":Y},G=Z3(W,Y,!1),B={},H=new Set;return mU($,{allKeys:!0},(L,V,A,D)=>{if(D===void 0)return;let F=G+V,b=J[D];if(typeof L[X]=="string")b=O.call(this,L[X]);N.call(this,L.$anchor),N.call(this,L.$dynamicAnchor),J[V]=b;function O(q){let S=this.opts.uriResolver.resolve;if(q=r6(b?S(b,q):q),H.has(q))throw K(q);H.add(q);let R=this.refs[q];if(typeof R=="string")R=this.refs[R];if(typeof R=="object")z(L,R.schema,q);else if(q!==r6(F))if(q[0]==="#")z(L,B[q],q),B[q]=L;else this.refs[q]=F;return q}function N(q){if(typeof q=="string"){if(!oU.test(q))throw Error(`invalid anchor "${q}"`);O.call(this,`#${q}`)}}}),B;function z(L,V,A){if(V!==void 0&&!lU(L,V))throw K(A)}function K(L){return Error(`reference "${L}" resolves to more than one schema`)}}v3.getSchemaRefs=rU});var s8=I((o3)=>{Object.defineProperty(o3,"__esModule",{value:!0});o3.getData=o3.KeywordCxt=o3.validateFunctionCode=void 0;var h3=aG(),_3=o8(),g5=P5(),y4=o8(),Qw=L3(),a8=q3(),x5=S3(),k=m(),h=M1(),Xw=r8(),E1=t(),t8=d8();function Ww($){if(l3($)){if(m3($),u3($)){Gw($);return}}f3($,()=>(0,h3.topBoolOrEmptySchema)($))}o3.validateFunctionCode=Ww;function f3({gen:$,validateName:Q,schema:X,schemaEnv:W,opts:Y},J){if(Y.code.es5)$.func(Q,k._`${h.default.data}, ${h.default.valCxt}`,W.$async,()=>{$.code(k._`"use strict"; ${x3(X,Y)}`),Jw($,Y),$.code(J)});else $.func(Q,k._`${h.default.data}, ${Yw(Y)}`,W.$async,()=>$.code(x3(X,Y)).code(J))}function Yw($){return k._`{${h.default.instancePath}="", ${h.default.parentData}, ${h.default.parentDataProperty}, ${h.default.rootData}=${h.default.data}${$.dynamicRef?k._`, ${h.default.dynamicAnchors}={}`:k.nil}}={}`}function Jw($,Q){$.if(h.default.valCxt,()=>{if($.var(h.default.instancePath,k._`${h.default.valCxt}.${h.default.instancePath}`),$.var(h.default.parentData,k._`${h.default.valCxt}.${h.default.parentData}`),$.var(h.default.parentDataProperty,k._`${h.default.valCxt}.${h.default.parentDataProperty}`),$.var(h.default.rootData,k._`${h.default.valCxt}.${h.default.rootData}`),Q.dynamicRef)$.var(h.default.dynamicAnchors,k._`${h.default.valCxt}.${h.default.dynamicAnchors}`)},()=>{if($.var(h.default.instancePath,k._`""`),$.var(h.default.parentData,k._`undefined`),$.var(h.default.parentDataProperty,k._`undefined`),$.var(h.default.rootData,h.default.data),Q.dynamicRef)$.var(h.default.dynamicAnchors,k._`{}`)})}function Gw($){let{schema:Q,opts:X,gen:W}=$;f3($,()=>{if(X.$comment&&Q.$comment)p3($);if(Aw($),W.let(h.default.vErrors,null),W.let(h.default.errors,0),X.unevaluated)Bw($);c3($),Ow($)});return}function Bw($){let{gen:Q,validateName:X}=$;$.evaluated=Q.const("evaluated",k._`${X}.evaluated`),Q.if(k._`${$.evaluated}.dynamicProps`,()=>Q.assign(k._`${$.evaluated}.props`,k._`undefined`)),Q.if(k._`${$.evaluated}.dynamicItems`,()=>Q.assign(k._`${$.evaluated}.items`,k._`undefined`))}function x3($,Q){let X=typeof $=="object"&&$[Q.schemaId];return X&&(Q.code.source||Q.code.process)?k._`/*# sourceURL=${X} */`:k.nil}function Hw($,Q){if(l3($)){if(m3($),u3($)){zw($,Q);return}}(0,h3.boolOrEmptySchema)($,Q)}function u3({schema:$,self:Q}){if(typeof $=="boolean")return!$;for(let X in $)if(Q.RULES.all[X])return!0;return!1}function l3($){return typeof $.schema!="boolean"}function zw($,Q){let{schema:X,gen:W,opts:Y}=$;if(Y.$comment&&X.$comment)p3($);Lw($),Vw($);let J=W.const("_errs",h.default.errors);c3($,J),W.var(Q,k._`${J} === ${h.default.errors}`)}function m3($){(0,E1.checkUnknownRules)($),Kw($)}function c3($,Q){if($.opts.jtd)return g3($,[],!1,Q);let X=(0,_3.getSchemaTypes)($.schema),W=(0,_3.coerceAndCheckDataType)($,X);g3($,X,!W,Q)}function Kw($){let{schema:Q,errSchemaPath:X,opts:W,self:Y}=$;if(Q.$ref&&W.ignoreKeywordsWithRef&&(0,E1.schemaHasRulesButRef)(Q,Y.RULES))Y.logger.warn(`$ref: keywords ignored in schema at path "${X}"`)}function Aw($){let{schema:Q,opts:X}=$;if(Q.default!==void 0&&X.useDefaults&&X.strictSchema)(0,E1.checkStrictMode)($,"default is ignored in the schema root")}function Lw($){let Q=$.schema[$.opts.schemaId];if(Q)$.baseId=(0,Xw.resolveUrl)($.opts.uriResolver,$.baseId,Q)}function Vw($){if($.schema.$async&&!$.schemaEnv.$async)throw Error("async schema in sync schema")}function p3({gen:$,schemaEnv:Q,schema:X,errSchemaPath:W,opts:Y}){let J=X.$comment;if(Y.$comment===!0)$.code(k._`${h.default.self}.logger.log(${J})`);else if(typeof Y.$comment=="function"){let G=k.str`${W}/$comment`,B=$.scopeValue("root",{ref:Q.root});$.code(k._`${h.default.self}.opts.$comment(${J}, ${G}, ${B}.schema)`)}}function Ow($){let{gen:Q,schemaEnv:X,validateName:W,ValidationError:Y,opts:J}=$;if(X.$async)Q.if(k._`${h.default.errors} === 0`,()=>Q.return(h.default.data),()=>Q.throw(k._`new ${Y}(${h.default.vErrors})`));else{if(Q.assign(k._`${W}.errors`,h.default.vErrors),J.unevaluated)Dw($);Q.return(k._`${h.default.errors} === 0`)}}function Dw({gen:$,evaluated:Q,props:X,items:W}){if(X instanceof k.Name)$.assign(k._`${Q}.props`,X);if(W instanceof k.Name)$.assign(k._`${Q}.items`,W)}function g3($,Q,X,W){let{gen:Y,schema:J,data:G,allErrors:B,opts:H,self:z}=$,{RULES:K}=z;if(J.$ref&&(H.ignoreKeywordsWithRef||!(0,E1.schemaHasRulesButRef)(J,K))){Y.block(()=>i3($,"$ref",K.all.$ref.definition));return}if(!H.jtd)Fw($,Q);Y.block(()=>{for(let V of K.rules)L(V);L(K.post)});function L(V){if(!(0,g5.shouldUseGroup)(J,V))return;if(V.type){if(Y.if((0,y4.checkDataType)(V.type,G,H.strictNumbers)),y3($,V),Q.length===1&&Q[0]===V.type&&X)Y.else(),(0,y4.reportTypeError)($);Y.endIf()}else y3($,V);if(!B)Y.if(k._`${h.default.errors} === ${W||0}`)}}function y3($,Q){let{gen:X,schema:W,opts:{useDefaults:Y}}=$;if(Y)(0,Qw.assignDefaults)($,Q.type);X.block(()=>{for(let J of Q.rules)if((0,g5.shouldUseRule)(W,J))i3($,J.keyword,J.definition,Q.type)})}function Fw($,Q){if($.schemaEnv.meta||!$.opts.strictTypes)return;if(Nw($,Q),!$.opts.allowUnionTypes)Uw($,Q);ww($,$.dataTypes)}function Nw($,Q){if(!Q.length)return;if(!$.dataTypes.length){$.dataTypes=Q;return}Q.forEach((X)=>{if(!n3($.dataTypes,X))y5($,`type "${X}" not allowed by context "${$.dataTypes.join(",")}"`)}),qw($,Q)}function Uw($,Q){if(Q.length>1&&!(Q.length===2&&Q.includes("null")))y5($,"use allowUnionTypes to allow union type keyword")}function ww($,Q){let X=$.self.RULES.all;for(let W in X){let Y=X[W];if(typeof Y=="object"&&(0,g5.shouldUseRule)($.schema,Y)){let{type:J}=Y.definition;if(J.length&&!J.some((G)=>bw(Q,G)))y5($,`missing type "${J.join(",")}" for keyword "${W}"`)}}}function bw($,Q){return $.includes(Q)||Q==="number"&&$.includes("integer")}function n3($,Q){return $.includes(Q)||Q==="integer"&&$.includes("number")}function qw($,Q){let X=[];for(let W of $.dataTypes)if(n3(Q,W))X.push(W);else if(Q.includes("integer")&&W==="number")X.push("integer");$.dataTypes=X}function y5($,Q){let X=$.schemaEnv.baseId+$.errSchemaPath;Q+=` at "${X}" (strictTypes)`,(0,E1.checkStrictMode)($,Q,$.opts.strictTypes)}class h5{constructor($,Q,X){if((0,a8.validateKeywordUsage)($,Q,X),this.gen=$.gen,this.allErrors=$.allErrors,this.keyword=X,this.data=$.data,this.schema=$.schema[X],this.$data=Q.$data&&$.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,E1.schemaRefOrVal)($,this.schema,X,this.$data),this.schemaType=Q.schemaType,this.parentSchema=$.schema,this.params={},this.it=$,this.def=Q,this.$data)this.schemaCode=$.gen.const("vSchema",d3(this.$data,$));else if(this.schemaCode=this.schemaValue,!(0,a8.validSchemaType)(this.schema,Q.schemaType,Q.allowUndefined))throw Error(`${X} value must be ${JSON.stringify(Q.schemaType)}`);if("code"in Q?Q.trackErrors:Q.errors!==!1)this.errsCount=$.gen.const("_errs",h.default.errors)}result($,Q,X){this.failResult((0,k.not)($),Q,X)}failResult($,Q,X){if(this.gen.if($),X)X();else this.error();if(Q){if(this.gen.else(),Q(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass($,Q){this.failResult((0,k.not)($),void 0,Q)}fail($){if($===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if($),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data($){if(!this.$data)return this.fail($);let{schemaCode:Q}=this;this.fail(k._`${Q} !== undefined && (${(0,k.or)(this.invalid$data(),$)})`)}error($,Q,X){if(Q){this.setParams(Q),this._error($,X),this.setParams({});return}this._error($,X)}_error($,Q){($?t8.reportExtraError:t8.reportError)(this,this.def.error,Q)}$dataError(){(0,t8.reportError)(this,this.def.$dataError||t8.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,t8.resetErrorsCount)(this.gen,this.errsCount)}ok($){if(!this.allErrors)this.gen.if($)}setParams($,Q){if(Q)Object.assign(this.params,$);else this.params=$}block$data($,Q,X=k.nil){this.gen.block(()=>{this.check$data($,X),Q()})}check$data($=k.nil,Q=k.nil){if(!this.$data)return;let{gen:X,schemaCode:W,schemaType:Y,def:J}=this;if(X.if((0,k.or)(k._`${W} === undefined`,Q)),$!==k.nil)X.assign($,!0);if(Y.length||J.validateSchema){if(X.elseIf(this.invalid$data()),this.$dataError(),$!==k.nil)X.assign($,!1)}X.else()}invalid$data(){let{gen:$,schemaCode:Q,schemaType:X,def:W,it:Y}=this;return(0,k.or)(J(),G());function J(){if(X.length){if(!(Q instanceof k.Name))throw Error("ajv implementation error");let B=Array.isArray(X)?X:[X];return k._`${(0,y4.checkDataTypes)(B,Q,Y.opts.strictNumbers,y4.DataType.Wrong)}`}return k.nil}function G(){if(W.validateSchema){let B=$.scopeValue("validate$data",{ref:W.validateSchema});return k._`!${B}(${Q})`}return k.nil}}subschema($,Q){let X=(0,x5.getSubschema)(this.it,$);(0,x5.extendSubschemaData)(X,this.it,$),(0,x5.extendSubschemaMode)(X,$);let W={...this.it,...X,items:void 0,props:void 0};return Hw(W,Q),W}mergeEvaluated($,Q){let{it:X,gen:W}=this;if(!X.opts.unevaluated)return;if(X.props!==!0&&$.props!==void 0)X.props=E1.mergeEvaluated.props(W,$.props,X.props,Q);if(X.items!==!0&&$.items!==void 0)X.items=E1.mergeEvaluated.items(W,$.items,X.items,Q)}mergeValidEvaluated($,Q){let{it:X,gen:W}=this;if(X.opts.unevaluated&&(X.props!==!0||X.items!==!0))return W.if(Q,()=>this.mergeEvaluated($,k.Name)),!0}}o3.KeywordCxt=h5;function i3($,Q,X,W){let Y=new h5($,X,Q);if("code"in X)X.code(Y,W);else if(Y.$data&&X.validate)(0,a8.funcKeywordCode)(Y,X);else if("macro"in X)(0,a8.macroKeywordCode)(Y,X);else if(X.compile||X.validate)(0,a8.funcKeywordCode)(Y,X)}var Mw=/^\/(?:[^~]|~0|~1)*$/,Ew=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function d3($,{dataLevel:Q,dataNames:X,dataPathArr:W}){let Y,J;if($==="")return h.default.rootData;if($[0]==="/"){if(!Mw.test($))throw Error(`Invalid JSON-pointer: ${$}`);Y=$,J=h.default.rootData}else{let z=Ew.exec($);if(!z)throw Error(`Invalid JSON-pointer: ${$}`);let K=+z[1];if(Y=z[2],Y==="#"){if(K>=Q)throw Error(H("property/index",K));return W[Q-K]}if(K>Q)throw Error(H("data",K));if(J=X[Q-K],!Y)return J}let G=J,B=Y.split("/");for(let z of B)if(z)J=k._`${J}${(0,k.getProperty)((0,E1.unescapeJsonPointer)(z))}`,G=k._`${G} && ${J}`;return G;function H(z,K){return`Cannot access ${z} ${K} levels up, current level is ${Q}`}}o3.getData=d3});var h4=I((a3)=>{Object.defineProperty(a3,"__esModule",{value:!0});class t3 extends Error{constructor($){super("validation failed");this.errors=$,this.ajv=this.validation=!0}}a3.default=t3});var e8=I((e3)=>{Object.defineProperty(e3,"__esModule",{value:!0});var f5=r8();class s3 extends Error{constructor($,Q,X,W){super(W||`can't resolve reference ${X} from id ${Q}`);this.missingRef=(0,f5.resolveUrl)($,Q,X),this.missingSchema=(0,f5.normalizeId)((0,f5.getFullPath)($,this.missingRef))}}e3.default=s3});var u4=I((XB)=>{Object.defineProperty(XB,"__esModule",{value:!0});XB.resolveSchema=XB.getCompilingSchema=XB.resolveRef=XB.compileSchema=XB.SchemaEnv=void 0;var B1=m(),Iw=h4(),A6=M1(),H1=r8(),$B=t(),Cw=s8();class $9{constructor($){var Q;this.refs={},this.dynamicAnchors={};let X;if(typeof $.schema=="object")X=$.schema;this.schema=$.schema,this.schemaId=$.schemaId,this.root=$.root||this,this.baseId=(Q=$.baseId)!==null&&Q!==void 0?Q:(0,H1.normalizeId)(X===null||X===void 0?void 0:X[$.schemaId||"$id"]),this.schemaPath=$.schemaPath,this.localRefs=$.localRefs,this.meta=$.meta,this.$async=X===null||X===void 0?void 0:X.$async,this.refs={}}}XB.SchemaEnv=$9;function l5($){let Q=QB.call(this,$);if(Q)return Q;let X=(0,H1.getFullPath)(this.opts.uriResolver,$.root.baseId),{es5:W,lines:Y}=this.opts.code,{ownProperties:J}=this.opts,G=new B1.CodeGen(this.scope,{es5:W,lines:Y,ownProperties:J}),B;if($.$async)B=G.scopeValue("Error",{ref:Iw.default,code:B1._`require("ajv/dist/runtime/validation_error").default`});let H=G.scopeName("validate");$.validateName=H;let z={gen:G,allErrors:this.opts.allErrors,data:A6.default.data,parentData:A6.default.parentData,parentDataProperty:A6.default.parentDataProperty,dataNames:[A6.default.data],dataPathArr:[B1.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:G.scopeValue("schema",this.opts.code.source===!0?{ref:$.schema,code:(0,B1.stringify)($.schema)}:{ref:$.schema}),validateName:H,ValidationError:B,schema:$.schema,schemaEnv:$,rootId:X,baseId:$.baseId||X,schemaPath:B1.nil,errSchemaPath:$.schemaPath||(this.opts.jtd?"":"#"),errorPath:B1._`""`,opts:this.opts,self:this},K;try{this._compilations.add($),(0,Cw.validateFunctionCode)(z),G.optimize(this.opts.code.optimize);let L=G.toString();if(K=`${G.scopeRefs(A6.default.scope)}return ${L}`,this.opts.code.process)K=this.opts.code.process(K,$);let A=Function(`${A6.default.self}`,`${A6.default.scope}`,K)(this,this.scope.get());if(this.scope.value(H,{ref:A}),A.errors=null,A.schema=$.schema,A.schemaEnv=$,$.$async)A.$async=!0;if(this.opts.code.source===!0)A.source={validateName:H,validateCode:L,scopeValues:G._values};if(this.opts.unevaluated){let{props:D,items:F}=z;if(A.evaluated={props:D instanceof B1.Name?void 0:D,items:F instanceof B1.Name?void 0:F,dynamicProps:D instanceof B1.Name,dynamicItems:F instanceof B1.Name},A.source)A.source.evaluated=(0,B1.stringify)(A.evaluated)}return $.validate=A,$}catch(L){if(delete $.validate,delete $.validateName,K)this.logger.error("Error compiling schema, function code:",K);throw L}finally{this._compilations.delete($)}}XB.compileSchema=l5;function Zw($,Q,X){var W;X=(0,H1.resolveUrl)(this.opts.uriResolver,Q,X);let Y=$.refs[X];if(Y)return Y;let J=kw.call(this,$,X);if(J===void 0){let G=(W=$.localRefs)===null||W===void 0?void 0:W[X],{schemaId:B}=this.opts;if(G)J=new $9({schema:G,schemaId:B,root:$,baseId:Q})}if(J===void 0)return;return $.refs[X]=Tw.call(this,J)}XB.resolveRef=Zw;function Tw($){if((0,H1.inlineRef)($.schema,this.opts.inlineRefs))return $.schema;return $.validate?$:l5.call(this,$)}function QB($){for(let Q of this._compilations)if(vw(Q,$))return Q}XB.getCompilingSchema=QB;function vw($,Q){return $.schema===Q.schema&&$.root===Q.root&&$.baseId===Q.baseId}function kw($,Q){let X;while(typeof(X=this.refs[Q])=="string")Q=X;return X||this.schemas[Q]||f4.call(this,$,Q)}function f4($,Q){let X=this.opts.uriResolver.parse(Q),W=(0,H1._getFullPath)(this.opts.uriResolver,X),Y=(0,H1.getFullPath)(this.opts.uriResolver,$.baseId,void 0);if(Object.keys($.schema).length>0&&W===Y)return u5.call(this,X,$);let J=(0,H1.normalizeId)(W),G=this.refs[J]||this.schemas[J];if(typeof G=="string"){let B=f4.call(this,$,G);if(typeof(B===null||B===void 0?void 0:B.schema)!=="object")return;return u5.call(this,X,B)}if(typeof(G===null||G===void 0?void 0:G.schema)!=="object")return;if(!G.validate)l5.call(this,G);if(J===(0,H1.normalizeId)(Q)){let{schema:B}=G,{schemaId:H}=this.opts,z=B[H];if(z)Y=(0,H1.resolveUrl)(this.opts.uriResolver,Y,z);return new $9({schema:B,schemaId:H,root:$,baseId:Y})}return u5.call(this,X,G)}XB.resolveSchema=f4;var _w=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function u5($,{baseId:Q,schema:X,root:W}){var Y;if(((Y=$.fragment)===null||Y===void 0?void 0:Y[0])!=="/")return;for(let B of $.fragment.slice(1).split("/")){if(typeof X==="boolean")return;let H=X[(0,$B.unescapeFragment)(B)];if(H===void 0)return;X=H;let z=typeof X==="object"&&X[this.opts.schemaId];if(!_w.has(B)&&z)Q=(0,H1.resolveUrl)(this.opts.uriResolver,Q,z)}let J;if(typeof X!="boolean"&&X.$ref&&!(0,$B.schemaHasRulesButRef)(X,this.RULES)){let B=(0,H1.resolveUrl)(this.opts.uriResolver,Q,X.$ref);J=f4.call(this,W,B)}let{schemaId:G}=this.opts;if(J=J||new $9({schema:X,schemaId:G,root:W,baseId:Q}),J.schema!==J.root.schema)return J;return}});var YB=I((UT,fw)=>{fw.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var p5=I((wT,KB)=>{var uw=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),GB=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),m5=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),BB=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),lw=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function c5($){let Q="",X=0,W=0;for(W=0;W<$.length;W++){if(X=$[W].charCodeAt(0),X===48)continue;if(!(X>=48&&X<=57||X>=65&&X<=70||X>=97&&X<=102))return"";Q+=$[W];break}for(W+=1;W<$.length;W++){if(X=$[W].charCodeAt(0),!(X>=48&&X<=57||X>=65&&X<=70||X>=97&&X<=102))return"";Q+=$[W]}return Q}var mw=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function JB($){return $.length=0,!0}function cw($,Q,X){if($.length){let W=c5($);if(W!=="")Q.push(W);else return X.error=!0,!1;$.length=0}return!0}function pw($){let Q=0,X={error:!1,address:"",zone:""},W=[],Y=[],J=!1,G=!1,B=cw;for(let H=0;H<$.length;H++){let z=$[H];if(z==="["||z==="]")continue;if(z===":"){if(J===!0)G=!0;if(!B(Y,W,X))break;if(++Q>7){X.error=!0;break}if(H>0&&$[H-1]===":")J=!0;W.push(":");continue}else if(z==="%"){if(!B(Y,W,X))break;B=JB}else{Y.push(z);continue}}if(Y.length)if(B===JB)X.zone=Y.join("");else if(G)W.push(Y.join(""));else W.push(c5(Y));return X.address=W.join(""),X}function HB($){if(nw($,":")<2)return{host:$,isIPV6:!1};let Q=pw($);if(!Q.error){let{address:X,address:W}=Q;if(Q.zone)X+="%"+Q.zone,W+="%25"+Q.zone;return{host:X,isIPV6:!0,escapedHost:W}}else return{host:$,isIPV6:!1}}function nw($,Q){let X=0;for(let W=0;W<$.length;W++)if($[W]===Q)X++;return X}function iw($){let Q=$,X=[],W=-1,Y=0;while(Y=Q.length){if(Y===1)if(Q===".")break;else if(Q==="/"){X.push("/");break}else{X.push(Q);break}else if(Y===2){if(Q[0]==="."){if(Q[1]===".")break;else if(Q[1]==="/"){Q=Q.slice(2);continue}}else if(Q[0]==="/"){if(Q[1]==="."||Q[1]==="/"){X.push("/");break}}}else if(Y===3){if(Q==="/.."){if(X.length!==0)X.pop();X.push("/");break}}if(Q[0]==="."){if(Q[1]==="."){if(Q[2]==="/"){Q=Q.slice(3);continue}}else if(Q[1]==="/"){Q=Q.slice(2);continue}}else if(Q[0]==="/"){if(Q[1]==="."){if(Q[2]==="/"){Q=Q.slice(2);continue}else if(Q[2]==="."){if(Q[3]==="/"){if(Q=Q.slice(3),X.length!==0)X.pop();continue}}}}if((W=Q.indexOf("/",1))===-1){X.push(Q);break}else X.push(Q.slice(0,W)),Q=Q.slice(W)}return X.join("")}var dw={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},ow=/[@/?#:]/g,rw=/[@/?#]/g;function zB($,Q){let X=Q?rw:ow;return X.lastIndex=0,$.replace(X,(W)=>dw[W])}function tw($,Q=!1){if($.indexOf("%")===-1)return $;let X="";for(let W=0;W<$.length;W++){if($[W]==="%"&&W+2<$.length){let Y=$.slice(W+1,W+3);if(m5(Y)){let J=Y.toUpperCase(),G=String.fromCharCode(parseInt(J,16));if(Q&&BB(G))X+=G;else X+="%"+J;W+=2;continue}}X+=$[W]}return X}function aw($){let Q="";for(let X=0;X<$.length;X++){if($[X]==="%"&&X+2<$.length){let W=$.slice(X+1,X+3);if(m5(W)){let Y=W.toUpperCase(),J=String.fromCharCode(parseInt(Y,16));if(J!=="."&&BB(J))Q+=J;else Q+="%"+Y;X+=2;continue}}if(lw($[X]))Q+=$[X];else Q+=escape($[X])}return Q}function sw($){let Q="";for(let X=0;X<$.length;X++){if($[X]==="%"&&X+2<$.length){let W=$.slice(X+1,X+3);if(m5(W)){Q+="%"+W.toUpperCase(),X+=2;continue}}Q+=escape($[X])}return Q}function ew($){let Q=[];if($.userinfo!==void 0)Q.push($.userinfo),Q.push("@");if($.host!==void 0){let X=unescape($.host);if(!GB(X)){let W=HB(X);if(W.isIPV6===!0)X=`[${W.escapedHost}]`;else X=zB(X,!1)}Q.push(X)}if(typeof $.port==="number"||typeof $.port==="string")Q.push(":"),Q.push(String($.port));return Q.length?Q.join(""):void 0}KB.exports={nonSimpleDomain:mw,recomposeAuthority:ew,reescapeHostDelimiters:zB,normalizePercentEncoding:tw,normalizePathEncoding:aw,escapePreservingEscapes:sw,removeDotSegments:iw,isIPv4:GB,isUUID:uw,normalizeIPv6:HB,stringArrayToHexStripped:c5}});var DB=I((bT,OB)=>{var{isUUID:$b}=p5(),Qb=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Xb=["http","https","ws","wss","urn","urn:uuid"];function Wb($){return Xb.indexOf($)!==-1}function n5($){if($.secure===!0)return!0;else if($.secure===!1)return!1;else if($.scheme)return $.scheme.length===3&&($.scheme[0]==="w"||$.scheme[0]==="W")&&($.scheme[1]==="s"||$.scheme[1]==="S")&&($.scheme[2]==="s"||$.scheme[2]==="S");else return!1}function AB($){if(!$.host)$.error=$.error||"HTTP URIs must have a host.";return $}function LB($){let Q=String($.scheme).toLowerCase()==="https";if($.port===(Q?443:80)||$.port==="")$.port=void 0;if(!$.path)$.path="/";return $}function Yb($){return $.secure=n5($),$.resourceName=($.path||"/")+($.query?"?"+$.query:""),$.path=void 0,$.query=void 0,$}function Jb($){if($.port===(n5($)?443:80)||$.port==="")$.port=void 0;if(typeof $.secure==="boolean")$.scheme=$.secure?"wss":"ws",$.secure=void 0;if($.resourceName){let[Q,X]=$.resourceName.split("?");$.path=Q&&Q!=="/"?Q:void 0,$.query=X,$.resourceName=void 0}return $.fragment=void 0,$}function Gb($,Q){if(!$.path)return $.error="URN can not be parsed",$;let X=$.path.match(Qb);if(X){let W=Q.scheme||$.scheme||"urn";$.nid=X[1].toLowerCase(),$.nss=X[2];let Y=`${W}:${Q.nid||$.nid}`,J=i5(Y);if($.path=void 0,J)$=J.parse($,Q)}else $.error=$.error||"URN can not be parsed.";return $}function Bb($,Q){if($.nid===void 0)throw Error("URN without nid cannot be serialized");let X=Q.scheme||$.scheme||"urn",W=$.nid.toLowerCase(),Y=`${X}:${Q.nid||W}`,J=i5(Y);if(J)$=J.serialize($,Q);let G=$,B=$.nss;return G.path=`${W||Q.nid}:${B}`,Q.skipEscape=!0,G}function Hb($,Q){let X=$;if(X.uuid=X.nss,X.nss=void 0,!Q.tolerant&&(!X.uuid||!$b(X.uuid)))X.error=X.error||"UUID is not valid.";return X}function zb($){let Q=$;return Q.nss=($.uuid||"").toLowerCase(),Q}var VB={scheme:"http",domainHost:!0,parse:AB,serialize:LB},Kb={scheme:"https",domainHost:VB.domainHost,parse:AB,serialize:LB},l4={scheme:"ws",domainHost:!0,parse:Yb,serialize:Jb},Ab={scheme:"wss",domainHost:l4.domainHost,parse:l4.parse,serialize:l4.serialize},Lb={scheme:"urn",parse:Gb,serialize:Bb,skipNormalize:!0},Vb={scheme:"urn:uuid",parse:Hb,serialize:zb,skipNormalize:!0},m4={http:VB,https:Kb,ws:l4,wss:Ab,urn:Lb,"urn:uuid":Vb};Object.setPrototypeOf(m4,null);function i5($){return $&&(m4[$]||m4[$.toLowerCase()])||void 0}OB.exports={wsIsSecure:n5,SCHEMES:m4,isValidSchemeName:Wb,getSchemeHandler:i5}});var qB=I((qT,c4)=>{var{normalizeIPv6:Ob,removeDotSegments:Q9,recomposeAuthority:Db,normalizePercentEncoding:Fb,normalizePathEncoding:Nb,escapePreservingEscapes:Ub,reescapeHostDelimiters:wb,isIPv4:bb,nonSimpleDomain:qb}=p5(),{SCHEMES:Mb,getSchemeHandler:NB}=DB();function Eb($,Q){if(typeof $==="string")$=Ib($,Q);else if(typeof $==="object")$=t6(L6($,Q),Q);return $}function jb($,Q,X){let W=X?Object.assign({scheme:"null"},X):{scheme:"null"},Y=UB(t6($,W),t6(Q,W),W,!0);return W.skipEscape=!0,L6(Y,W)}function UB($,Q,X,W){let Y={};if(!W)$=t6(L6($,X),X),Q=t6(L6(Q,X),X);if(X=X||{},!X.tolerant&&Q.scheme)Y.scheme=Q.scheme,Y.userinfo=Q.userinfo,Y.host=Q.host,Y.port=Q.port,Y.path=Q9(Q.path||""),Y.query=Q.query;else{if(Q.userinfo!==void 0||Q.host!==void 0||Q.port!==void 0)Y.userinfo=Q.userinfo,Y.host=Q.host,Y.port=Q.port,Y.path=Q9(Q.path||""),Y.query=Q.query;else{if(!Q.path)if(Y.path=$.path,Q.query!==void 0)Y.query=Q.query;else Y.query=$.query;else{if(Q.path[0]==="/")Y.path=Q9(Q.path);else{if(($.userinfo!==void 0||$.host!==void 0||$.port!==void 0)&&!$.path)Y.path="/"+Q.path;else if(!$.path)Y.path=Q.path;else Y.path=$.path.slice(0,$.path.lastIndexOf("/")+1)+Q.path;Y.path=Q9(Y.path)}Y.query=Q.query}Y.userinfo=$.userinfo,Y.host=$.host,Y.port=$.port}Y.scheme=$.scheme}return Y.fragment=Q.fragment,Y}function Sb($,Q,X){let W=FB($,X),Y=FB(Q,X);return W!==void 0&&Y!==void 0&&W.toLowerCase()===Y.toLowerCase()}function L6($,Q){let X={host:$.host,scheme:$.scheme,userinfo:$.userinfo,port:$.port,path:$.path,query:$.query,nid:$.nid,nss:$.nss,uuid:$.uuid,fragment:$.fragment,reference:$.reference,resourceName:$.resourceName,secure:$.secure,error:""},W=Object.assign({},Q),Y=[],J=NB(W.scheme||X.scheme);if(J&&J.serialize)J.serialize(X,W);if(X.path!==void 0)if(!W.skipEscape){if(X.path=Ub(X.path),X.scheme!==void 0)X.path=X.path.split("%3A").join(":")}else X.path=Fb(X.path);if(W.reference!=="suffix"&&X.scheme)Y.push(X.scheme,":");let G=Db(X);if(G!==void 0){if(W.reference!=="suffix")Y.push("//");if(Y.push(G),X.path&&X.path[0]!=="/")Y.push("/")}if(X.path!==void 0){let B=X.path;if(!W.absolutePath&&(!J||!J.absolutePath))B=Q9(B);if(G===void 0&&B[0]==="/"&&B[1]==="/")B="/%2F"+B.slice(2);Y.push(B)}if(X.query!==void 0)Y.push("?",X.query);if(X.fragment!==void 0)Y.push("#",X.fragment);return Y.join("")}var Pb=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Rb($,Q){if(Q[2]!==void 0&&$.path&&$.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof $.port==="number"&&($.port<0||$.port>65535))return"URI port is malformed.";return}function wB($,Q){let X=Object.assign({},Q),W={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},Y=!1,J=!1;if(X.reference==="suffix")if(X.scheme)$=X.scheme+":"+$;else $="//"+$;let G=$.match(Pb);if(G){if(W.scheme=G[1],W.userinfo=G[3],W.host=G[4],W.port=parseInt(G[5],10),W.path=G[6]||"",W.query=G[7],W.fragment=G[8],isNaN(W.port))W.port=G[5];let B=Rb(W,G);if(B!==void 0)W.error=W.error||B,Y=!0;if(W.host)if(bb(W.host)===!1){let K=Ob(W.host);W.host=K.host.toLowerCase(),J=K.isIPV6}else J=!0;if(W.scheme===void 0&&W.userinfo===void 0&&W.host===void 0&&W.port===void 0&&W.query===void 0&&!W.path)W.reference="same-document";else if(W.scheme===void 0)W.reference="relative";else if(W.fragment===void 0)W.reference="absolute";else W.reference="uri";if(X.reference&&X.reference!=="suffix"&&X.reference!==W.reference)W.error=W.error||"URI is not a "+X.reference+" reference.";let H=NB(X.scheme||W.scheme);if(!X.unicodeSupport&&(!H||!H.unicodeSupport)){if(W.host&&(X.domainHost||H&&H.domainHost)&&J===!1&&qb(W.host))try{W.host=URL.domainToASCII(W.host.toLowerCase())}catch(z){W.error=W.error||"Host's domain name can not be converted to ASCII: "+z}}if(!H||H&&!H.skipNormalize){if($.indexOf("%")!==-1){if(W.scheme!==void 0)W.scheme=unescape(W.scheme);if(W.host!==void 0)W.host=wb(unescape(W.host),J)}if(W.path)W.path=Nb(W.path);if(W.fragment)try{W.fragment=encodeURI(decodeURIComponent(W.fragment))}catch{W.error=W.error||"URI malformed"}}if(H&&H.parse)H.parse(W,X)}else W.error=W.error||"URI can not be parsed.";return{parsed:W,malformedAuthorityOrPort:Y}}function t6($,Q){return wB($,Q).parsed}function Ib($,Q){return bB($,Q).normalized}function bB($,Q){let{parsed:X,malformedAuthorityOrPort:W}=wB($,Q);return{normalized:W?$:L6(X,Q),malformedAuthorityOrPort:W}}function FB($,Q){if(typeof $==="string"){let{normalized:X,malformedAuthorityOrPort:W}=bB($,Q);return W?void 0:X}if(typeof $==="object")return L6($,Q)}var d5={SCHEMES:Mb,normalize:Eb,resolve:jb,resolveComponent:UB,equal:Sb,serialize:L6,parse:t6};c4.exports=d5;c4.exports.default=d5;c4.exports.fastUri=d5});var jB=I((EB)=>{Object.defineProperty(EB,"__esModule",{value:!0});var MB=qB();MB.code='require("ajv/dist/runtime/uri").default';EB.default=MB});var vB=I((j1)=>{Object.defineProperty(j1,"__esModule",{value:!0});j1.CodeGen=j1.Name=j1.nil=j1.stringify=j1.str=j1._=j1.KeywordCxt=void 0;var Zb=s8();Object.defineProperty(j1,"KeywordCxt",{enumerable:!0,get:function(){return Zb.KeywordCxt}});var a6=m();Object.defineProperty(j1,"_",{enumerable:!0,get:function(){return a6._}});Object.defineProperty(j1,"str",{enumerable:!0,get:function(){return a6.str}});Object.defineProperty(j1,"stringify",{enumerable:!0,get:function(){return a6.stringify}});Object.defineProperty(j1,"nil",{enumerable:!0,get:function(){return a6.nil}});Object.defineProperty(j1,"Name",{enumerable:!0,get:function(){return a6.Name}});Object.defineProperty(j1,"CodeGen",{enumerable:!0,get:function(){return a6.CodeGen}});var Tb=h4(),CB=e8(),vb=S5(),X9=u4(),kb=m(),W9=r8(),p4=o8(),r5=t(),SB=YB(),_b=jB(),ZB=($,Q)=>new RegExp($,Q);ZB.code="new RegExp";var xb=["removeAdditional","useDefaults","coerceTypes"],gb=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),yb={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},hb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},PB=200;function fb($){var Q,X,W,Y,J,G,B,H,z,K,L,V,A,D,F,b,O,N,q,S,R,f,Q0,u0,v0;let j0=$.strict,R0=(Q=$.code)===null||Q===void 0?void 0:Q.optimize,a0=R0===!0||R0===void 0?1:R0||0,i1=(W=(X=$.code)===null||X===void 0?void 0:X.regExp)!==null&&W!==void 0?W:ZB,d1=(Y=$.uriResolver)!==null&&Y!==void 0?Y:_b.default;return{strictSchema:(G=(J=$.strictSchema)!==null&&J!==void 0?J:j0)!==null&&G!==void 0?G:!0,strictNumbers:(H=(B=$.strictNumbers)!==null&&B!==void 0?B:j0)!==null&&H!==void 0?H:!0,strictTypes:(K=(z=$.strictTypes)!==null&&z!==void 0?z:j0)!==null&&K!==void 0?K:"log",strictTuples:(V=(L=$.strictTuples)!==null&&L!==void 0?L:j0)!==null&&V!==void 0?V:"log",strictRequired:(D=(A=$.strictRequired)!==null&&A!==void 0?A:j0)!==null&&D!==void 0?D:!1,code:$.code?{...$.code,optimize:a0,regExp:i1}:{optimize:a0,regExp:i1},loopRequired:(F=$.loopRequired)!==null&&F!==void 0?F:PB,loopEnum:(b=$.loopEnum)!==null&&b!==void 0?b:PB,meta:(O=$.meta)!==null&&O!==void 0?O:!0,messages:(N=$.messages)!==null&&N!==void 0?N:!0,inlineRefs:(q=$.inlineRefs)!==null&&q!==void 0?q:!0,schemaId:(S=$.schemaId)!==null&&S!==void 0?S:"$id",addUsedSchema:(R=$.addUsedSchema)!==null&&R!==void 0?R:!0,validateSchema:(f=$.validateSchema)!==null&&f!==void 0?f:!0,validateFormats:(Q0=$.validateFormats)!==null&&Q0!==void 0?Q0:!0,unicodeRegExp:(u0=$.unicodeRegExp)!==null&&u0!==void 0?u0:!0,int32range:(v0=$.int32range)!==null&&v0!==void 0?v0:!0,uriResolver:d1}}class n4{constructor($={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...fb($)};let{es5:Q,lines:X}=this.opts.code;this.scope=new kb.ValueScope({scope:{},prefixes:gb,es5:Q,lines:X}),this.logger=nb($.logger);let W=$.validateFormats;if($.validateFormats=!1,this.RULES=(0,vb.getRules)(),RB.call(this,yb,$,"NOT SUPPORTED"),RB.call(this,hb,$,"DEPRECATED","warn"),this._metaOpts=cb.call(this),$.formats)lb.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords)mb.call(this,$.keywords);if(typeof $.meta=="object")this.addMetaSchema($.meta);ub.call(this),$.validateFormats=W}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:Q,schemaId:X}=this.opts,W=SB;if(X==="id")W={...SB},W.id=W.$id,delete W.$id;if(Q&&$)this.addMetaSchema(W,W[X],!1)}defaultMeta(){let{meta:$,schemaId:Q}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[Q]||$:void 0}validate($,Q){let X;if(typeof $=="string"){if(X=this.getSchema($),!X)throw Error(`no schema with key or ref "${$}"`)}else X=this.compile($);let W=X(Q);if(!("$async"in X))this.errors=X.errors;return W}compile($,Q){let X=this._addSchema($,Q);return X.validate||this._compileSchemaEnv(X)}compileAsync($,Q){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:X}=this.opts;return W.call(this,$,Q);async function W(z,K){await Y.call(this,z.$schema);let L=this._addSchema(z,K);return L.validate||J.call(this,L)}async function Y(z){if(z&&!this.getSchema(z))await W.call(this,{$ref:z},!0)}async function J(z){try{return this._compileSchemaEnv(z)}catch(K){if(!(K instanceof CB.default))throw K;return G.call(this,K),await B.call(this,K.missingSchema),J.call(this,z)}}function G({missingSchema:z,missingRef:K}){if(this.refs[z])throw Error(`AnySchema ${z} is loaded but ${K} cannot be resolved`)}async function B(z){let K=await H.call(this,z);if(!this.refs[z])await Y.call(this,K.$schema);if(!this.refs[z])this.addSchema(K,z,Q)}async function H(z){let K=this._loading[z];if(K)return K;try{return await(this._loading[z]=X(z))}finally{delete this._loading[z]}}}addSchema($,Q,X,W=this.opts.validateSchema){if(Array.isArray($)){for(let J of $)this.addSchema(J,void 0,X,W);return this}let Y;if(typeof $==="object"){let{schemaId:J}=this.opts;if(Y=$[J],Y!==void 0&&typeof Y!="string")throw Error(`schema ${J} must be string`)}return Q=(0,W9.normalizeId)(Q||Y),this._checkUnique(Q),this.schemas[Q]=this._addSchema($,X,Q,W,!0),this}addMetaSchema($,Q,X=this.opts.validateSchema){return this.addSchema($,Q,!0,X),this}validateSchema($,Q){if(typeof $=="boolean")return!0;let X;if(X=$.$schema,X!==void 0&&typeof X!="string")throw Error("$schema must be a string");if(X=X||this.opts.defaultMeta||this.defaultMeta(),!X)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let W=this.validate(X,$);if(!W&&Q){let Y="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(Y);else throw Error(Y)}return W}getSchema($){let Q;while(typeof(Q=IB.call(this,$))=="string")$=Q;if(Q===void 0){let{schemaId:X}=this.opts,W=new X9.SchemaEnv({schema:{},schemaId:X});if(Q=X9.resolveSchema.call(this,W,$),!Q)return;this.refs[$]=Q}return Q.validate||this._compileSchemaEnv(Q)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let Q=IB.call(this,$);if(typeof Q=="object")this._cache.delete(Q.schema);return delete this.schemas[$],delete this.refs[$],this}case"object":{let Q=$;this._cache.delete(Q);let X=$[this.opts.schemaId];if(X)X=(0,W9.normalizeId)(X),delete this.schemas[X],delete this.refs[X];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let Q of $)this.addKeyword(Q);return this}addKeyword($,Q){let X;if(typeof $=="string"){if(X=$,typeof Q=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),Q.keyword=X}else if(typeof $=="object"&&Q===void 0){if(Q=$,X=Q.keyword,Array.isArray(X)&&!X.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(db.call(this,X,Q),!Q)return(0,r5.eachItem)(X,(Y)=>o5.call(this,Y)),this;rb.call(this,Q);let W={...Q,type:(0,p4.getJSONTypes)(Q.type),schemaType:(0,p4.getJSONTypes)(Q.schemaType)};return(0,r5.eachItem)(X,W.type.length===0?(Y)=>o5.call(this,Y,W):(Y)=>W.type.forEach((J)=>o5.call(this,Y,W,J))),this}getKeyword($){let Q=this.RULES.all[$];return typeof Q=="object"?Q.definition:!!Q}removeKeyword($){let{RULES:Q}=this;delete Q.keywords[$],delete Q.all[$];for(let X of Q.rules){let W=X.rules.findIndex((Y)=>Y.keyword===$);if(W>=0)X.rules.splice(W,1)}return this}addFormat($,Q){if(typeof Q=="string")Q=new RegExp(Q);return this.formats[$]=Q,this}errorsText($=this.errors,{separator:Q=", ",dataVar:X="data"}={}){if(!$||$.length===0)return"No errors";return $.map((W)=>`${X}${W.instancePath} ${W.message}`).reduce((W,Y)=>W+Q+Y)}$dataMetaSchema($,Q){let X=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let W of Q){let Y=W.split("/").slice(1),J=$;for(let G of Y)J=J[G];for(let G in X){let B=X[G];if(typeof B!="object")continue;let{$data:H}=B.definition,z=J[G];if(H&&z)J[G]=TB(z)}}return $}_removeAllSchemas($,Q){for(let X in $){let W=$[X];if(!Q||Q.test(X)){if(typeof W=="string")delete $[X];else if(W&&!W.meta)this._cache.delete(W.schema),delete $[X]}}}_addSchema($,Q,X,W=this.opts.validateSchema,Y=this.opts.addUsedSchema){let J,{schemaId:G}=this.opts;if(typeof $=="object")J=$[G];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof $!="boolean")throw Error("schema must be object or boolean");let B=this._cache.get($);if(B!==void 0)return B;X=(0,W9.normalizeId)(J||X);let H=W9.getSchemaRefs.call(this,$,X);if(B=new X9.SchemaEnv({schema:$,schemaId:G,meta:Q,baseId:X,localRefs:H}),this._cache.set(B.schema,B),Y&&!X.startsWith("#")){if(X)this._checkUnique(X);this.refs[X]=B}if(W)this.validateSchema($,!0);return B}_checkUnique($){if(this.schemas[$]||this.refs[$])throw Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta)this._compileMetaSchema($);else X9.compileSchema.call(this,$);if(!$.validate)throw Error("ajv implementation error");return $.validate}_compileMetaSchema($){let Q=this.opts;this.opts=this._metaOpts;try{X9.compileSchema.call(this,$)}finally{this.opts=Q}}}n4.ValidationError=Tb.default;n4.MissingRefError=CB.default;j1.default=n4;function RB($,Q,X,W="error"){for(let Y in $){let J=Y;if(J in Q)this.logger[W](`${X}: option ${Y}. ${$[J]}`)}}function IB($){return $=(0,W9.normalizeId)($),this.schemas[$]||this.refs[$]}function ub(){let $=this.opts.schemas;if(!$)return;if(Array.isArray($))this.addSchema($);else for(let Q in $)this.addSchema($[Q],Q)}function lb(){for(let $ in this.opts.formats){let Q=this.opts.formats[$];if(Q)this.addFormat($,Q)}}function mb($){if(Array.isArray($)){this.addVocabulary($);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let Q in $){let X=$[Q];if(!X.keyword)X.keyword=Q;this.addKeyword(X)}}function cb(){let $={...this.opts};for(let Q of xb)delete $[Q];return $}var pb={log(){},warn(){},error(){}};function nb($){if($===!1)return pb;if($===void 0)return console;if($.log&&$.warn&&$.error)return $;throw Error("logger must implement log, warn and error methods")}var ib=/^[a-z_$][a-z0-9_$:-]*$/i;function db($,Q){let{RULES:X}=this;if((0,r5.eachItem)($,(W)=>{if(X.keywords[W])throw Error(`Keyword ${W} is already defined`);if(!ib.test(W))throw Error(`Keyword ${W} has invalid name`)}),!Q)return;if(Q.$data&&!(("code"in Q)||("validate"in Q)))throw Error('$data keyword must have "code" or "validate" function')}function o5($,Q,X){var W;let Y=Q===null||Q===void 0?void 0:Q.post;if(X&&Y)throw Error('keyword with "post" flag cannot have "type"');let{RULES:J}=this,G=Y?J.post:J.rules.find(({type:H})=>H===X);if(!G)G={type:X,rules:[]},J.rules.push(G);if(J.keywords[$]=!0,!Q)return;let B={keyword:$,definition:{...Q,type:(0,p4.getJSONTypes)(Q.type),schemaType:(0,p4.getJSONTypes)(Q.schemaType)}};if(Q.before)ob.call(this,G,B,Q.before);else G.rules.push(B);J.all[$]=B,(W=Q.implements)===null||W===void 0||W.forEach((H)=>this.addKeyword(H))}function ob($,Q,X){let W=$.rules.findIndex((Y)=>Y.keyword===X);if(W>=0)$.rules.splice(W,0,Q);else $.rules.push(Q),this.logger.warn(`rule ${X} is not defined`)}function rb($){let{metaSchema:Q}=$;if(Q===void 0)return;if($.$data&&this.opts.$data)Q=TB(Q);$.validateSchema=this.compile(Q,!0)}var tb={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function TB($){return{anyOf:[$,tb]}}});var _B=I((kB)=>{Object.defineProperty(kB,"__esModule",{value:!0});var eb={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};kB.default=eb});var uB=I((hB)=>{Object.defineProperty(hB,"__esModule",{value:!0});hB.callRef=hB.getValidate=void 0;var Qq=e8(),xB=r0(),y0=m(),s6=M1(),gB=u4(),i4=t(),Xq={keyword:"$ref",schemaType:"string",code($){let{gen:Q,schema:X,it:W}=$,{baseId:Y,schemaEnv:J,validateName:G,opts:B,self:H}=W,{root:z}=J;if((X==="#"||X==="#/")&&Y===z.baseId)return L();let K=gB.resolveRef.call(H,z,Y,X);if(K===void 0)throw new Qq.default(W.opts.uriResolver,Y,X);if(K instanceof gB.SchemaEnv)return V(K);return A(K);function L(){if(J===z)return d4($,G,J,J.$async);let D=Q.scopeValue("root",{ref:z});return d4($,y0._`${D}.validate`,z,z.$async)}function V(D){let F=yB($,D);d4($,F,D,D.$async)}function A(D){let F=Q.scopeValue("schema",B.code.source===!0?{ref:D,code:(0,y0.stringify)(D)}:{ref:D}),b=Q.name("valid"),O=$.subschema({schema:D,dataTypes:[],schemaPath:y0.nil,topSchemaRef:F,errSchemaPath:X},b);$.mergeEvaluated(O),$.ok(b)}}};function yB($,Q){let{gen:X}=$;return Q.validate?X.scopeValue("validate",{ref:Q.validate}):y0._`${X.scopeValue("wrapper",{ref:Q})}.validate`}hB.getValidate=yB;function d4($,Q,X,W){let{gen:Y,it:J}=$,{allErrors:G,schemaEnv:B,opts:H}=J,z=H.passContext?s6.default.this:y0.nil;if(W)K();else L();function K(){if(!B.$async)throw Error("async schema referenced by sync schema");let D=Y.let("valid");Y.try(()=>{if(Y.code(y0._`await ${(0,xB.callValidateCode)($,Q,z)}`),A(Q),!G)Y.assign(D,!0)},(F)=>{if(Y.if(y0._`!(${F} instanceof ${J.ValidationError})`,()=>Y.throw(F)),V(F),!G)Y.assign(D,!1)}),$.ok(D)}function L(){$.result((0,xB.callValidateCode)($,Q,z),()=>A(Q),()=>V(Q))}function V(D){let F=y0._`${D}.errors`;Y.assign(s6.default.vErrors,y0._`${s6.default.vErrors} === null ? ${F} : ${s6.default.vErrors}.concat(${F})`),Y.assign(s6.default.errors,y0._`${s6.default.vErrors}.length`)}function A(D){var F;if(!J.opts.unevaluated)return;let b=(F=X===null||X===void 0?void 0:X.validate)===null||F===void 0?void 0:F.evaluated;if(J.props!==!0)if(b&&!b.dynamicProps){if(b.props!==void 0)J.props=i4.mergeEvaluated.props(Y,b.props,J.props)}else{let O=Y.var("props",y0._`${D}.evaluated.props`);J.props=i4.mergeEvaluated.props(Y,O,J.props,y0.Name)}if(J.items!==!0)if(b&&!b.dynamicItems){if(b.items!==void 0)J.items=i4.mergeEvaluated.items(Y,b.items,J.items)}else{let O=Y.var("items",y0._`${D}.evaluated.items`);J.items=i4.mergeEvaluated.items(Y,O,J.items,y0.Name)}}}hB.callRef=d4;hB.default=Xq});var mB=I((lB)=>{Object.defineProperty(lB,"__esModule",{value:!0});var Jq=_B(),Gq=uB(),Bq=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Jq.default,Gq.default];lB.default=Bq});var pB=I((cB)=>{Object.defineProperty(cB,"__esModule",{value:!0});var o4=m(),c1=o4.operators,r4={maximum:{okStr:"<=",ok:c1.LTE,fail:c1.GT},minimum:{okStr:">=",ok:c1.GTE,fail:c1.LT},exclusiveMaximum:{okStr:"<",ok:c1.LT,fail:c1.GTE},exclusiveMinimum:{okStr:">",ok:c1.GT,fail:c1.LTE}},zq={message:({keyword:$,schemaCode:Q})=>o4.str`must be ${r4[$].okStr} ${Q}`,params:({keyword:$,schemaCode:Q})=>o4._`{comparison: ${r4[$].okStr}, limit: ${Q}}`},Kq={keyword:Object.keys(r4),type:"number",schemaType:"number",$data:!0,error:zq,code($){let{keyword:Q,data:X,schemaCode:W}=$;$.fail$data(o4._`${X} ${r4[Q].fail} ${W} || isNaN(${X})`)}};cB.default=Kq});var iB=I((nB)=>{Object.defineProperty(nB,"__esModule",{value:!0});var Y9=m(),Lq={message:({schemaCode:$})=>Y9.str`must be multiple of ${$}`,params:({schemaCode:$})=>Y9._`{multipleOf: ${$}}`},Vq={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Lq,code($){let{gen:Q,data:X,schemaCode:W,it:Y}=$,J=Y.opts.multipleOfPrecision,G=Q.let("res"),B=J?Y9._`Math.abs(Math.round(${G}) - ${G}) > 1e-${J}`:Y9._`${G} !== parseInt(${G})`;$.fail$data(Y9._`(${W} === 0 || (${G} = ${X}/${W}, ${B}))`)}};nB.default=Vq});var rB=I((oB)=>{Object.defineProperty(oB,"__esModule",{value:!0});function dB($){let Q=$.length,X=0,W=0,Y;while(W<Q)if(X++,Y=$.charCodeAt(W++),Y>=55296&&Y<=56319&&W<Q){if(Y=$.charCodeAt(W),(Y&64512)===56320)W++}return X}oB.default=dB;dB.code='require("ajv/dist/runtime/ucs2length").default'});var aB=I((tB)=>{Object.defineProperty(tB,"__esModule",{value:!0});var V6=m(),Fq=t(),Nq=rB(),Uq={message({keyword:$,schemaCode:Q}){let X=$==="maxLength"?"more":"fewer";return V6.str`must NOT have ${X} than ${Q} characters`},params:({schemaCode:$})=>V6._`{limit: ${$}}`},wq={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Uq,code($){let{keyword:Q,data:X,schemaCode:W,it:Y}=$,J=Q==="maxLength"?V6.operators.GT:V6.operators.LT,G=Y.opts.unicode===!1?V6._`${X}.length`:V6._`${(0,Fq.useFunc)($.gen,Nq.default)}(${X})`;$.fail$data(V6._`${G} ${J} ${W}`)}};tB.default=wq});var eB=I((sB)=>{Object.defineProperty(sB,"__esModule",{value:!0});var qq=r0(),Mq=t(),e6=m(),Eq={message:({schemaCode:$})=>e6.str`must match pattern "${$}"`,params:({schemaCode:$})=>e6._`{pattern: ${$}}`},jq={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Eq,code($){let{gen:Q,data:X,$data:W,schema:Y,schemaCode:J,it:G}=$,B=G.opts.unicodeRegExp?"u":"";if(W){let{regExp:H}=G.opts.code,z=H.code==="new RegExp"?e6._`new RegExp`:(0,Mq.useFunc)(Q,H),K=Q.let("valid");Q.try(()=>Q.assign(K,e6._`${z}(${J}, ${B}).test(${X})`),()=>Q.assign(K,!1)),$.fail$data(e6._`!${K}`)}else{let H=(0,qq.usePattern)($,Y);$.fail$data(e6._`!${H}.test(${X})`)}}};sB.default=jq});var QH=I(($H)=>{Object.defineProperty($H,"__esModule",{value:!0});var J9=m(),Pq={message({keyword:$,schemaCode:Q}){let X=$==="maxProperties"?"more":"fewer";return J9.str`must NOT have ${X} than ${Q} properties`},params:({schemaCode:$})=>J9._`{limit: ${$}}`},Rq={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Pq,code($){let{keyword:Q,data:X,schemaCode:W}=$,Y=Q==="maxProperties"?J9.operators.GT:J9.operators.LT;$.fail$data(J9._`Object.keys(${X}).length ${Y} ${W}`)}};$H.default=Rq});var WH=I((XH)=>{Object.defineProperty(XH,"__esModule",{value:!0});var G9=r0(),B9=m(),Cq=t(),Zq={message:({params:{missingProperty:$}})=>B9.str`must have required property '${$}'`,params:({params:{missingProperty:$}})=>B9._`{missingProperty: ${$}}`},Tq={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Zq,code($){let{gen:Q,schema:X,schemaCode:W,data:Y,$data:J,it:G}=$,{opts:B}=G;if(!J&&X.length===0)return;let H=X.length>=B.loopRequired;if(G.allErrors)z();else K();if(B.strictRequired){let A=$.parentSchema.properties,{definedProperties:D}=$.it;for(let F of X)if((A===null||A===void 0?void 0:A[F])===void 0&&!D.has(F)){let b=G.schemaEnv.baseId+G.errSchemaPath,O=`required property "${F}" is not defined at "${b}" (strictRequired)`;(0,Cq.checkStrictMode)(G,O,G.opts.strictRequired)}}function z(){if(H||J)$.block$data(B9.nil,L);else for(let A of X)(0,G9.checkReportMissingProp)($,A)}function K(){let A=Q.let("missing");if(H||J){let D=Q.let("valid",!0);$.block$data(D,()=>V(A,D)),$.ok(D)}else Q.if((0,G9.checkMissingProp)($,X,A)),(0,G9.reportMissingProp)($,A),Q.else()}function L(){Q.forOf("prop",W,(A)=>{$.setParams({missingProperty:A}),Q.if((0,G9.noPropertyInData)(Q,Y,A,B.ownProperties),()=>$.error())})}function V(A,D){$.setParams({missingProperty:A}),Q.forOf(A,W,()=>{Q.assign(D,(0,G9.propertyInData)(Q,Y,A,B.ownProperties)),Q.if((0,B9.not)(D),()=>{$.error(),Q.break()})},B9.nil)}}};XH.default=Tq});var JH=I((YH)=>{Object.defineProperty(YH,"__esModule",{value:!0});var H9=m(),kq={message({keyword:$,schemaCode:Q}){let X=$==="maxItems"?"more":"fewer";return H9.str`must NOT have ${X} than ${Q} items`},params:({schemaCode:$})=>H9._`{limit: ${$}}`},_q={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:kq,code($){let{keyword:Q,data:X,schemaCode:W}=$,Y=Q==="maxItems"?H9.operators.GT:H9.operators.LT;$.fail$data(H9._`${X}.length ${Y} ${W}`)}};YH.default=_q});var t4=I((BH)=>{Object.defineProperty(BH,"__esModule",{value:!0});var GH=k5();GH.code='require("ajv/dist/runtime/equal").default';BH.default=GH});var zH=I((HH)=>{Object.defineProperty(HH,"__esModule",{value:!0});var t5=o8(),E0=m(),yq=t(),hq=t4(),fq={message:({params:{i:$,j:Q}})=>E0.str`must NOT have duplicate items (items ## ${Q} and ${$} are identical)`,params:({params:{i:$,j:Q}})=>E0._`{i: ${$}, j: ${Q}}`},uq={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:fq,code($){let{gen:Q,data:X,$data:W,schema:Y,parentSchema:J,schemaCode:G,it:B}=$;if(!W&&!Y)return;let H=Q.let("valid"),z=J.items?(0,t5.getSchemaTypes)(J.items):[];$.block$data(H,K,E0._`${G} === false`),$.ok(H);function K(){let D=Q.let("i",E0._`${X}.length`),F=Q.let("j");$.setParams({i:D,j:F}),Q.assign(H,!0),Q.if(E0._`${D} > 1`,()=>(L()?V:A)(D,F))}function L(){return z.length>0&&!z.some((D)=>D==="object"||D==="array")}function V(D,F){let b=Q.name("item"),O=(0,t5.checkDataTypes)(z,b,B.opts.strictNumbers,t5.DataType.Wrong),N=Q.const("indices",E0._`{}`);Q.for(E0._`;${D}--;`,()=>{if(Q.let(b,E0._`${X}[${D}]`),Q.if(O,E0._`continue`),z.length>1)Q.if(E0._`typeof ${b} == "string"`,E0._`${b} += "_"`);Q.if(E0._`typeof ${N}[${b}] == "number"`,()=>{Q.assign(F,E0._`${N}[${b}]`),$.error(),Q.assign(H,!1).break()}).code(E0._`${N}[${b}] = ${D}`)})}function A(D,F){let b=(0,yq.useFunc)(Q,hq.default),O=Q.name("outer");Q.label(O).for(E0._`;${D}--;`,()=>Q.for(E0._`${F} = ${D}; ${F}--;`,()=>Q.if(E0._`${b}(${X}[${D}], ${X}[${F}])`,()=>{$.error(),Q.assign(H,!1).break(O)})))}}};HH.default=uq});var AH=I((KH)=>{Object.defineProperty(KH,"__esModule",{value:!0});var a5=m(),mq=t(),cq=t4(),pq={message:"must be equal to constant",params:({schemaCode:$})=>a5._`{allowedValue: ${$}}`},nq={keyword:"const",$data:!0,error:pq,code($){let{gen:Q,data:X,$data:W,schemaCode:Y,schema:J}=$;if(W||J&&typeof J=="object")$.fail$data(a5._`!${(0,mq.useFunc)(Q,cq.default)}(${X}, ${Y})`);else $.fail(a5._`${J} !== ${X}`)}};KH.default=nq});var VH=I((LH)=>{Object.defineProperty(LH,"__esModule",{value:!0});var z9=m(),dq=t(),oq=t4(),rq={message:"must be equal to one of the allowed values",params:({schemaCode:$})=>z9._`{allowedValues: ${$}}`},tq={keyword:"enum",schemaType:"array",$data:!0,error:rq,code($){let{gen:Q,data:X,$data:W,schema:Y,schemaCode:J,it:G}=$;if(!W&&Y.length===0)throw Error("enum must have non-empty array");let B=Y.length>=G.opts.loopEnum,H,z=()=>H!==null&&H!==void 0?H:H=(0,dq.useFunc)(Q,oq.default),K;if(B||W)K=Q.let("valid"),$.block$data(K,L);else{if(!Array.isArray(Y))throw Error("ajv implementation error");let A=Q.const("vSchema",J);K=(0,z9.or)(...Y.map((D,F)=>V(A,F)))}$.pass(K);function L(){Q.assign(K,!1),Q.forOf("v",J,(A)=>Q.if(z9._`${z()}(${X}, ${A})`,()=>Q.assign(K,!0).break()))}function V(A,D){let F=Y[D];return typeof F==="object"&&F!==null?z9._`${z()}(${X}, ${A}[${D}])`:z9._`${X} === ${F}`}}};LH.default=tq});var DH=I((OH)=>{Object.defineProperty(OH,"__esModule",{value:!0});var sq=pB(),eq=iB(),$M=aB(),QM=eB(),XM=QH(),WM=WH(),YM=JH(),JM=zH(),GM=AH(),BM=VH(),HM=[sq.default,eq.default,$M.default,QM.default,XM.default,WM.default,YM.default,JM.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},GM.default,BM.default];OH.default=HM});var e5=I((NH)=>{Object.defineProperty(NH,"__esModule",{value:!0});NH.validateAdditionalItems=void 0;var O6=m(),s5=t(),KM={message:({params:{len:$}})=>O6.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>O6._`{limit: ${$}}`},AM={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:KM,code($){let{parentSchema:Q,it:X}=$,{items:W}=Q;if(!Array.isArray(W)){(0,s5.checkStrictMode)(X,'"additionalItems" is ignored when "items" is not an array of schemas');return}FH($,W)}};function FH($,Q){let{gen:X,schema:W,data:Y,keyword:J,it:G}=$;G.items=!0;let B=X.const("len",O6._`${Y}.length`);if(W===!1)$.setParams({len:Q.length}),$.pass(O6._`${B} <= ${Q.length}`);else if(typeof W=="object"&&!(0,s5.alwaysValidSchema)(G,W)){let z=X.var("valid",O6._`${B} <= ${Q.length}`);X.if((0,O6.not)(z),()=>H(z)),$.ok(z)}function H(z){X.forRange("i",Q.length,B,(K)=>{if($.subschema({keyword:J,dataProp:K,dataPropType:s5.Type.Num},z),!G.allErrors)X.if((0,O6.not)(z),()=>X.break())})}}NH.validateAdditionalItems=FH;NH.default=AM});var $W=I((qH)=>{Object.defineProperty(qH,"__esModule",{value:!0});qH.validateTuple=void 0;var wH=m(),a4=t(),VM=r0(),OM={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code($){let{schema:Q,it:X}=$;if(Array.isArray(Q))return bH($,"additionalItems",Q);if(X.items=!0,(0,a4.alwaysValidSchema)(X,Q))return;$.ok((0,VM.validateArray)($))}};function bH($,Q,X=$.schema){let{gen:W,parentSchema:Y,data:J,keyword:G,it:B}=$;if(K(Y),B.opts.unevaluated&&X.length&&B.items!==!0)B.items=a4.mergeEvaluated.items(W,X.length,B.items);let H=W.name("valid"),z=W.const("len",wH._`${J}.length`);X.forEach((L,V)=>{if((0,a4.alwaysValidSchema)(B,L))return;W.if(wH._`${z} > ${V}`,()=>$.subschema({keyword:G,schemaProp:V,dataProp:V},H)),$.ok(H)});function K(L){let{opts:V,errSchemaPath:A}=B,D=X.length,F=D===L.minItems&&(D===L.maxItems||L[Q]===!1);if(V.strictTuples&&!F){let b=`"${G}" is ${D}-tuple, but minItems or maxItems/${Q} are not specified or different at path "${A}"`;(0,a4.checkStrictMode)(B,b,V.strictTuples)}}}qH.validateTuple=bH;qH.default=OM});var jH=I((EH)=>{Object.defineProperty(EH,"__esModule",{value:!0});var FM=$W(),NM={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:($)=>(0,FM.validateTuple)($,"items")};EH.default=NM});var RH=I((PH)=>{Object.defineProperty(PH,"__esModule",{value:!0});var SH=m(),wM=t(),bM=r0(),qM=e5(),MM={message:({params:{len:$}})=>SH.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>SH._`{limit: ${$}}`},EM={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:MM,code($){let{schema:Q,parentSchema:X,it:W}=$,{prefixItems:Y}=X;if(W.items=!0,(0,wM.alwaysValidSchema)(W,Q))return;if(Y)(0,qM.validateAdditionalItems)($,Y);else $.ok((0,bM.validateArray)($))}};PH.default=EM});var CH=I((IH)=>{Object.defineProperty(IH,"__esModule",{value:!0});var t0=m(),s4=t(),SM={message:({params:{min:$,max:Q}})=>Q===void 0?t0.str`must contain at least ${$} valid item(s)`:t0.str`must contain at least ${$} and no more than ${Q} valid item(s)`,params:({params:{min:$,max:Q}})=>Q===void 0?t0._`{minContains: ${$}}`:t0._`{minContains: ${$}, maxContains: ${Q}}`},PM={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:SM,code($){let{gen:Q,schema:X,parentSchema:W,data:Y,it:J}=$,G,B,{minContains:H,maxContains:z}=W;if(J.opts.next)G=H===void 0?1:H,B=z;else G=1;let K=Q.const("len",t0._`${Y}.length`);if($.setParams({min:G,max:B}),B===void 0&&G===0){(0,s4.checkStrictMode)(J,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(B!==void 0&&G>B){(0,s4.checkStrictMode)(J,'"minContains" > "maxContains" is always invalid'),$.fail();return}if((0,s4.alwaysValidSchema)(J,X)){let F=t0._`${K} >= ${G}`;if(B!==void 0)F=t0._`${F} && ${K} <= ${B}`;$.pass(F);return}J.items=!0;let L=Q.name("valid");if(B===void 0&&G===1)A(L,()=>Q.if(L,()=>Q.break()));else if(G===0){if(Q.let(L,!0),B!==void 0)Q.if(t0._`${Y}.length > 0`,V)}else Q.let(L,!1),V();$.result(L,()=>$.reset());function V(){let F=Q.name("_valid"),b=Q.let("count",0);A(F,()=>Q.if(F,()=>D(b)))}function A(F,b){Q.forRange("i",0,K,(O)=>{$.subschema({keyword:"contains",dataProp:O,dataPropType:s4.Type.Num,compositeRule:!0},F),b()})}function D(F){if(Q.code(t0._`${F}++`),B===void 0)Q.if(t0._`${F} >= ${G}`,()=>Q.assign(L,!0).break());else if(Q.if(t0._`${F} > ${B}`,()=>Q.assign(L,!1).break()),G===1)Q.assign(L,!0);else Q.if(t0._`${F} >= ${G}`,()=>Q.assign(L,!0))}}};IH.default=PM});var xH=I((vH)=>{Object.defineProperty(vH,"__esModule",{value:!0});vH.validateSchemaDeps=vH.validatePropertyDeps=vH.error=void 0;var QW=m(),IM=t(),K9=r0();vH.error={message:({params:{property:$,depsCount:Q,deps:X}})=>{let W=Q===1?"property":"properties";return QW.str`must have ${W} ${X} when property ${$} is present`},params:({params:{property:$,depsCount:Q,deps:X,missingProperty:W}})=>QW._`{property: ${$},
|
|
7
|
+
missingProperty: ${W},
|
|
8
|
+
depsCount: ${Q},
|
|
9
|
+
deps: ${X}}`};var CM={keyword:"dependencies",type:"object",schemaType:"object",error:vH.error,code($){let[Q,X]=ZM($);ZH($,Q),TH($,X)}};function ZM({schema:$}){let Q={},X={};for(let W in $){if(W==="__proto__")continue;let Y=Array.isArray($[W])?Q:X;Y[W]=$[W]}return[Q,X]}function ZH($,Q=$.schema){let{gen:X,data:W,it:Y}=$;if(Object.keys(Q).length===0)return;let J=X.let("missing");for(let G in Q){let B=Q[G];if(B.length===0)continue;let H=(0,K9.propertyInData)(X,W,G,Y.opts.ownProperties);if($.setParams({property:G,depsCount:B.length,deps:B.join(", ")}),Y.allErrors)X.if(H,()=>{for(let z of B)(0,K9.checkReportMissingProp)($,z)});else X.if(QW._`${H} && (${(0,K9.checkMissingProp)($,B,J)})`),(0,K9.reportMissingProp)($,J),X.else()}}vH.validatePropertyDeps=ZH;function TH($,Q=$.schema){let{gen:X,data:W,keyword:Y,it:J}=$,G=X.name("valid");for(let B in Q){if((0,IM.alwaysValidSchema)(J,Q[B]))continue;X.if((0,K9.propertyInData)(X,W,B,J.opts.ownProperties),()=>{let H=$.subschema({keyword:Y,schemaProp:B},G);$.mergeValidEvaluated(H,G)},()=>X.var(G,!0)),$.ok(G)}}vH.validateSchemaDeps=TH;vH.default=CM});var hH=I((yH)=>{Object.defineProperty(yH,"__esModule",{value:!0});var gH=m(),kM=t(),_M={message:"property name must be valid",params:({params:$})=>gH._`{propertyName: ${$.propertyName}}`},xM={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:_M,code($){let{gen:Q,schema:X,data:W,it:Y}=$;if((0,kM.alwaysValidSchema)(Y,X))return;let J=Q.name("valid");Q.forIn("key",W,(G)=>{$.setParams({propertyName:G}),$.subschema({keyword:"propertyNames",data:G,dataTypes:["string"],propertyName:G,compositeRule:!0},J),Q.if((0,gH.not)(J),()=>{if($.error(!0),!Y.allErrors)Q.break()})}),$.ok(J)}};yH.default=xM});var XW=I((fH)=>{Object.defineProperty(fH,"__esModule",{value:!0});var e4=r0(),z1=m(),yM=M1(),$$=t(),hM={message:"must NOT have additional properties",params:({params:$})=>z1._`{additionalProperty: ${$.additionalProperty}}`},fM={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:hM,code($){let{gen:Q,schema:X,parentSchema:W,data:Y,errsCount:J,it:G}=$;if(!J)throw Error("ajv implementation error");let{allErrors:B,opts:H}=G;if(G.props=!0,H.removeAdditional!=="all"&&(0,$$.alwaysValidSchema)(G,X))return;let z=(0,e4.allSchemaProperties)(W.properties),K=(0,e4.allSchemaProperties)(W.patternProperties);L(),$.ok(z1._`${J} === ${yM.default.errors}`);function L(){Q.forIn("key",Y,(b)=>{if(!z.length&&!K.length)D(b);else Q.if(V(b),()=>D(b))})}function V(b){let O;if(z.length>8){let N=(0,$$.schemaRefOrVal)(G,W.properties,"properties");O=(0,e4.isOwnProperty)(Q,N,b)}else if(z.length)O=(0,z1.or)(...z.map((N)=>z1._`${b} === ${N}`));else O=z1.nil;if(K.length)O=(0,z1.or)(O,...K.map((N)=>z1._`${(0,e4.usePattern)($,N)}.test(${b})`));return(0,z1.not)(O)}function A(b){Q.code(z1._`delete ${Y}[${b}]`)}function D(b){if(H.removeAdditional==="all"||H.removeAdditional&&X===!1){A(b);return}if(X===!1){if($.setParams({additionalProperty:b}),$.error(),!B)Q.break();return}if(typeof X=="object"&&!(0,$$.alwaysValidSchema)(G,X)){let O=Q.name("valid");if(H.removeAdditional==="failing")F(b,O,!1),Q.if((0,z1.not)(O),()=>{$.reset(),A(b)});else if(F(b,O),!B)Q.if((0,z1.not)(O),()=>Q.break())}}function F(b,O,N){let q={keyword:"additionalProperties",dataProp:b,dataPropType:$$.Type.Str};if(N===!1)Object.assign(q,{compositeRule:!0,createErrors:!1,allErrors:!1});$.subschema(q,O)}}};fH.default=fM});var cH=I((mH)=>{Object.defineProperty(mH,"__esModule",{value:!0});var lM=s8(),uH=r0(),WW=t(),lH=XW(),mM={keyword:"properties",type:"object",schemaType:"object",code($){let{gen:Q,schema:X,parentSchema:W,data:Y,it:J}=$;if(J.opts.removeAdditional==="all"&&W.additionalProperties===void 0)lH.default.code(new lM.KeywordCxt(J,lH.default,"additionalProperties"));let G=(0,uH.allSchemaProperties)(X);for(let L of G)J.definedProperties.add(L);if(J.opts.unevaluated&&G.length&&J.props!==!0)J.props=WW.mergeEvaluated.props(Q,(0,WW.toHash)(G),J.props);let B=G.filter((L)=>!(0,WW.alwaysValidSchema)(J,X[L]));if(B.length===0)return;let H=Q.name("valid");for(let L of B){if(z(L))K(L);else{if(Q.if((0,uH.propertyInData)(Q,Y,L,J.opts.ownProperties)),K(L),!J.allErrors)Q.else().var(H,!0);Q.endIf()}$.it.definedProperties.add(L),$.ok(H)}function z(L){return J.opts.useDefaults&&!J.compositeRule&&X[L].default!==void 0}function K(L){$.subschema({keyword:"properties",schemaProp:L,dataProp:L},H)}}};mH.default=mM});var oH=I((dH)=>{Object.defineProperty(dH,"__esModule",{value:!0});var pH=r0(),Q$=m(),nH=t(),iH=t(),pM={keyword:"patternProperties",type:"object",schemaType:"object",code($){let{gen:Q,schema:X,data:W,parentSchema:Y,it:J}=$,{opts:G}=J,B=(0,pH.allSchemaProperties)(X),H=B.filter((F)=>(0,nH.alwaysValidSchema)(J,X[F]));if(B.length===0||H.length===B.length&&(!J.opts.unevaluated||J.props===!0))return;let z=G.strictSchema&&!G.allowMatchingProperties&&Y.properties,K=Q.name("valid");if(J.props!==!0&&!(J.props instanceof Q$.Name))J.props=(0,iH.evaluatedPropsToName)(Q,J.props);let{props:L}=J;V();function V(){for(let F of B){if(z)A(F);if(J.allErrors)D(F);else Q.var(K,!0),D(F),Q.if(K)}}function A(F){for(let b in z)if(new RegExp(F).test(b))(0,nH.checkStrictMode)(J,`property ${b} matches pattern ${F} (use allowMatchingProperties)`)}function D(F){Q.forIn("key",W,(b)=>{Q.if(Q$._`${(0,pH.usePattern)($,F)}.test(${b})`,()=>{let O=H.includes(F);if(!O)$.subschema({keyword:"patternProperties",schemaProp:F,dataProp:b,dataPropType:iH.Type.Str},K);if(J.opts.unevaluated&&L!==!0)Q.assign(Q$._`${L}[${b}]`,!0);else if(!O&&!J.allErrors)Q.if((0,Q$.not)(K),()=>Q.break())})})}}};dH.default=pM});var tH=I((rH)=>{Object.defineProperty(rH,"__esModule",{value:!0});var iM=t(),dM={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code($){let{gen:Q,schema:X,it:W}=$;if((0,iM.alwaysValidSchema)(W,X)){$.fail();return}let Y=Q.name("valid");$.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},Y),$.failResult(Y,()=>$.reset(),()=>$.error())},error:{message:"must NOT be valid"}};rH.default=dM});var sH=I((aH)=>{Object.defineProperty(aH,"__esModule",{value:!0});var rM=r0(),tM={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:rM.validateUnion,error:{message:"must match a schema in anyOf"}};aH.default=tM});var $z=I((eH)=>{Object.defineProperty(eH,"__esModule",{value:!0});var X$=m(),sM=t(),eM={message:"must match exactly one schema in oneOf",params:({params:$})=>X$._`{passingSchemas: ${$.passing}}`},$E={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:eM,code($){let{gen:Q,schema:X,parentSchema:W,it:Y}=$;if(!Array.isArray(X))throw Error("ajv implementation error");if(Y.opts.discriminator&&W.discriminator)return;let J=X,G=Q.let("valid",!1),B=Q.let("passing",null),H=Q.name("_valid");$.setParams({passing:B}),Q.block(z),$.result(G,()=>$.reset(),()=>$.error(!0));function z(){J.forEach((K,L)=>{let V;if((0,sM.alwaysValidSchema)(Y,K))Q.var(H,!0);else V=$.subschema({keyword:"oneOf",schemaProp:L,compositeRule:!0},H);if(L>0)Q.if(X$._`${H} && ${G}`).assign(G,!1).assign(B,X$._`[${B}, ${L}]`).else();Q.if(H,()=>{if(Q.assign(G,!0),Q.assign(B,L),V)$.mergeEvaluated(V,X$.Name)})})}}};eH.default=$E});var Xz=I((Qz)=>{Object.defineProperty(Qz,"__esModule",{value:!0});var XE=t(),WE={keyword:"allOf",schemaType:"array",code($){let{gen:Q,schema:X,it:W}=$;if(!Array.isArray(X))throw Error("ajv implementation error");let Y=Q.name("valid");X.forEach((J,G)=>{if((0,XE.alwaysValidSchema)(W,J))return;let B=$.subschema({keyword:"allOf",schemaProp:G},Y);$.ok(Y),$.mergeEvaluated(B)})}};Qz.default=WE});var Gz=I((Jz)=>{Object.defineProperty(Jz,"__esModule",{value:!0});var W$=m(),Yz=t(),JE={message:({params:$})=>W$.str`must match "${$.ifClause}" schema`,params:({params:$})=>W$._`{failingKeyword: ${$.ifClause}}`},GE={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:JE,code($){let{gen:Q,parentSchema:X,it:W}=$;if(X.then===void 0&&X.else===void 0)(0,Yz.checkStrictMode)(W,'"if" without "then" and "else" is ignored');let Y=Wz(W,"then"),J=Wz(W,"else");if(!Y&&!J)return;let G=Q.let("valid",!0),B=Q.name("_valid");if(H(),$.reset(),Y&&J){let K=Q.let("ifClause");$.setParams({ifClause:K}),Q.if(B,z("then",K),z("else",K))}else if(Y)Q.if(B,z("then"));else Q.if((0,W$.not)(B),z("else"));$.pass(G,()=>$.error(!0));function H(){let K=$.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},B);$.mergeEvaluated(K)}function z(K,L){return()=>{let V=$.subschema({keyword:K},B);if(Q.assign(G,B),$.mergeValidEvaluated(V,G),L)Q.assign(L,W$._`${K}`);else $.setParams({ifClause:K})}}}};function Wz($,Q){let X=$.schema[Q];return X!==void 0&&!(0,Yz.alwaysValidSchema)($,X)}Jz.default=GE});var Hz=I((Bz)=>{Object.defineProperty(Bz,"__esModule",{value:!0});var HE=t(),zE={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:$,parentSchema:Q,it:X}){if(Q.if===void 0)(0,HE.checkStrictMode)(X,`"${$}" without "if" is ignored`)}};Bz.default=zE});var Kz=I((zz)=>{Object.defineProperty(zz,"__esModule",{value:!0});var AE=e5(),LE=jH(),VE=$W(),OE=RH(),DE=CH(),FE=xH(),NE=hH(),UE=XW(),wE=cH(),bE=oH(),qE=tH(),ME=sH(),EE=$z(),jE=Xz(),SE=Gz(),PE=Hz();function RE($=!1){let Q=[qE.default,ME.default,EE.default,jE.default,SE.default,PE.default,NE.default,UE.default,FE.default,wE.default,bE.default];if($)Q.push(LE.default,OE.default);else Q.push(AE.default,VE.default);return Q.push(DE.default),Q}zz.default=RE});var Lz=I((Az)=>{Object.defineProperty(Az,"__esModule",{value:!0});var D0=m(),CE={message:({schemaCode:$})=>D0.str`must match format "${$}"`,params:({schemaCode:$})=>D0._`{format: ${$}}`},ZE={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:CE,code($,Q){let{gen:X,data:W,$data:Y,schema:J,schemaCode:G,it:B}=$,{opts:H,errSchemaPath:z,schemaEnv:K,self:L}=B;if(!H.validateFormats)return;if(Y)V();else A();function V(){let D=X.scopeValue("formats",{ref:L.formats,code:H.code.formats}),F=X.const("fDef",D0._`${D}[${G}]`),b=X.let("fType"),O=X.let("format");X.if(D0._`typeof ${F} == "object" && !(${F} instanceof RegExp)`,()=>X.assign(b,D0._`${F}.type || "string"`).assign(O,D0._`${F}.validate`),()=>X.assign(b,D0._`"string"`).assign(O,F)),$.fail$data((0,D0.or)(N(),q()));function N(){if(H.strictSchema===!1)return D0.nil;return D0._`${G} && !${O}`}function q(){let S=K.$async?D0._`(${F}.async ? await ${O}(${W}) : ${O}(${W}))`:D0._`${O}(${W})`,R=D0._`(typeof ${O} == "function" ? ${S} : ${O}.test(${W}))`;return D0._`${O} && ${O} !== true && ${b} === ${Q} && !${R}`}}function A(){let D=L.formats[J];if(!D){N();return}if(D===!0)return;let[F,b,O]=q(D);if(F===Q)$.pass(S());function N(){if(H.strictSchema===!1){L.logger.warn(R());return}throw Error(R());function R(){return`unknown format "${J}" ignored in schema at path "${z}"`}}function q(R){let f=R instanceof RegExp?(0,D0.regexpCode)(R):H.code.formats?D0._`${H.code.formats}${(0,D0.getProperty)(J)}`:void 0,Q0=X.scopeValue("formats",{key:J,ref:R,code:f});if(typeof R=="object"&&!(R instanceof RegExp))return[R.type||"string",R.validate,D0._`${Q0}.validate`];return["string",R,Q0]}function S(){if(typeof D=="object"&&!(D instanceof RegExp)&&D.async){if(!K.$async)throw Error("async format in sync schema");return D0._`await ${O}(${W})`}return typeof b=="function"?D0._`${O}(${W})`:D0._`${O}.test(${W})`}}}};Az.default=ZE});var Oz=I((Vz)=>{Object.defineProperty(Vz,"__esModule",{value:!0});var vE=Lz(),kE=[vE.default];Vz.default=kE});var Nz=I((Dz)=>{Object.defineProperty(Dz,"__esModule",{value:!0});Dz.contentVocabulary=Dz.metadataVocabulary=void 0;Dz.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Dz.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var bz=I((wz)=>{Object.defineProperty(wz,"__esModule",{value:!0});var gE=mB(),yE=DH(),hE=Kz(),fE=Oz(),Uz=Nz(),uE=[gE.default,yE.default,(0,hE.default)(),fE.default,Uz.metadataVocabulary,Uz.contentVocabulary];wz.default=uE});var jz=I((Mz)=>{Object.defineProperty(Mz,"__esModule",{value:!0});Mz.DiscrError=void 0;var qz;(function($){$.Tag="tag",$.Mapping="mapping"})(qz||(Mz.DiscrError=qz={}))});var Rz=I((Pz)=>{Object.defineProperty(Pz,"__esModule",{value:!0});var $8=m(),YW=jz(),Sz=u4(),mE=e8(),cE=t(),pE={message:({params:{discrError:$,tagName:Q}})=>$===YW.DiscrError.Tag?`tag "${Q}" must be string`:`value of tag "${Q}" must be in oneOf`,params:({params:{discrError:$,tag:Q,tagName:X}})=>$8._`{error: ${$}, tag: ${X}, tagValue: ${Q}}`},nE={keyword:"discriminator",type:"object",schemaType:"object",error:pE,code($){let{gen:Q,data:X,schema:W,parentSchema:Y,it:J}=$,{oneOf:G}=Y;if(!J.opts.discriminator)throw Error("discriminator: requires discriminator option");let B=W.propertyName;if(typeof B!="string")throw Error("discriminator: requires propertyName");if(W.mapping)throw Error("discriminator: mapping is not supported");if(!G)throw Error("discriminator: requires oneOf keyword");let H=Q.let("valid",!1),z=Q.const("tag",$8._`${X}${(0,$8.getProperty)(B)}`);Q.if($8._`typeof ${z} == "string"`,()=>K(),()=>$.error(!1,{discrError:YW.DiscrError.Tag,tag:z,tagName:B})),$.ok(H);function K(){let A=V();Q.if(!1);for(let D in A)Q.elseIf($8._`${z} === ${D}`),Q.assign(H,L(A[D]));Q.else(),$.error(!1,{discrError:YW.DiscrError.Mapping,tag:z,tagName:B}),Q.endIf()}function L(A){let D=Q.name("valid"),F=$.subschema({keyword:"oneOf",schemaProp:A},D);return $.mergeEvaluated(F,$8.Name),D}function V(){var A;let D={},F=O(Y),b=!0;for(let S=0;S<G.length;S++){let R=G[S];if((R===null||R===void 0?void 0:R.$ref)&&!(0,cE.schemaHasRulesButRef)(R,J.self.RULES)){let Q0=R.$ref;if(R=Sz.resolveRef.call(J.self,J.schemaEnv.root,J.baseId,Q0),R instanceof Sz.SchemaEnv)R=R.schema;if(R===void 0)throw new mE.default(J.opts.uriResolver,J.baseId,Q0)}let f=(A=R===null||R===void 0?void 0:R.properties)===null||A===void 0?void 0:A[B];if(typeof f!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${B}"`);b=b&&(F||O(R)),N(f,S)}if(!b)throw Error(`discriminator: "${B}" must be required`);return D;function O({required:S}){return Array.isArray(S)&&S.includes(B)}function N(S,R){if(S.const)q(S.const,R);else if(S.enum)for(let f of S.enum)q(f,R);else throw Error(`discriminator: "properties/${B}" must have "const" or "enum"`)}function q(S,R){if(typeof S!="string"||S in D)throw Error(`discriminator: "${B}" values must be unique strings`);D[S]=R}}}};Pz.default=nE});var Iz=I((Dv,dE)=>{dE.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var GW=I((h0,JW)=>{Object.defineProperty(h0,"__esModule",{value:!0});h0.MissingRefError=h0.ValidationError=h0.CodeGen=h0.Name=h0.nil=h0.stringify=h0.str=h0._=h0.KeywordCxt=h0.Ajv=void 0;var oE=vB(),rE=bz(),tE=Rz(),Cz=Iz(),aE=["/properties"],Y$="http://json-schema.org/draft-07/schema";class A9 extends oE.default{_addVocabularies(){if(super._addVocabularies(),rE.default.forEach(($)=>this.addVocabulary($)),this.opts.discriminator)this.addKeyword(tE.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let $=this.opts.$data?this.$dataMetaSchema(Cz,aE):Cz;this.addMetaSchema($,Y$,!1),this.refs["http://json-schema.org/schema"]=Y$}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Y$)?Y$:void 0)}}h0.Ajv=A9;JW.exports=h0=A9;JW.exports.Ajv=A9;Object.defineProperty(h0,"__esModule",{value:!0});h0.default=A9;var sE=s8();Object.defineProperty(h0,"KeywordCxt",{enumerable:!0,get:function(){return sE.KeywordCxt}});var Q8=m();Object.defineProperty(h0,"_",{enumerable:!0,get:function(){return Q8._}});Object.defineProperty(h0,"str",{enumerable:!0,get:function(){return Q8.str}});Object.defineProperty(h0,"stringify",{enumerable:!0,get:function(){return Q8.stringify}});Object.defineProperty(h0,"nil",{enumerable:!0,get:function(){return Q8.nil}});Object.defineProperty(h0,"Name",{enumerable:!0,get:function(){return Q8.Name}});Object.defineProperty(h0,"CodeGen",{enumerable:!0,get:function(){return Q8.CodeGen}});var eE=h4();Object.defineProperty(h0,"ValidationError",{enumerable:!0,get:function(){return eE.default}});var $j=e8();Object.defineProperty(h0,"MissingRefError",{enumerable:!0,get:function(){return $j.default}})});var fz=I((yz)=>{Object.defineProperty(yz,"__esModule",{value:!0});yz.formatNames=yz.fastFormats=yz.fullFormats=void 0;function N1($,Q){return{validate:$,compare:Q}}yz.fullFormats={date:N1(kz,KW),time:N1(HW(!0),AW),"date-time":N1(Zz(!0),xz),"iso-time":N1(HW(),_z),"iso-date-time":N1(Zz(),gz),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Hj,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:Dj,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:zj,int32:{type:"number",validate:Lj},int64:{type:"number",validate:Vj},float:{type:"number",validate:vz},double:{type:"number",validate:vz},password:!0,binary:!0};yz.fastFormats={...yz.fullFormats,date:N1(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,KW),time:N1(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,AW),"date-time":N1(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,xz),"iso-time":N1(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_z),"iso-date-time":N1(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,gz),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};yz.formatNames=Object.keys(yz.fullFormats);function Wj($){return $%4===0&&($%100!==0||$%400===0)}var Yj=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Jj=[0,31,28,31,30,31,30,31,31,30,31,30,31];function kz($){let Q=Yj.exec($);if(!Q)return!1;let X=+Q[1],W=+Q[2],Y=+Q[3];return W>=1&&W<=12&&Y>=1&&Y<=(W===2&&Wj(X)?29:Jj[W])}function KW($,Q){if(!($&&Q))return;if($>Q)return 1;if($<Q)return-1;return 0}var BW=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function HW($){return function(X){let W=BW.exec(X);if(!W)return!1;let Y=+W[1],J=+W[2],G=+W[3],B=W[4],H=W[5]==="-"?-1:1,z=+(W[6]||0),K=+(W[7]||0);if(z>23||K>59||$&&!B)return!1;if(Y<=23&&J<=59&&G<60)return!0;let L=J-K*H,V=Y-z*H-(L<0?1:0);return(V===23||V===-1)&&(L===59||L===-1)&&G<61}}function AW($,Q){if(!($&&Q))return;let X=new Date("2020-01-01T"+$).valueOf(),W=new Date("2020-01-01T"+Q).valueOf();if(!(X&&W))return;return X-W}function _z($,Q){if(!($&&Q))return;let X=BW.exec($),W=BW.exec(Q);if(!(X&&W))return;if($=X[1]+X[2]+X[3],Q=W[1]+W[2]+W[3],$>Q)return 1;if($<Q)return-1;return 0}var zW=/t|\s/i;function Zz($){let Q=HW($);return function(W){let Y=W.split(zW);return Y.length===2&&kz(Y[0])&&Q(Y[1])}}function xz($,Q){if(!($&&Q))return;let X=new Date($).valueOf(),W=new Date(Q).valueOf();if(!(X&&W))return;return X-W}function gz($,Q){if(!($&&Q))return;let[X,W]=$.split(zW),[Y,J]=Q.split(zW),G=KW(X,Y);if(G===void 0)return;return G||AW(W,J)}var Gj=/\/|:/,Bj=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function Hj($){return Gj.test($)&&Bj.test($)}var Tz=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function zj($){return Tz.lastIndex=0,Tz.test($)}var Kj=-2147483648,Aj=2147483647;function Lj($){return Number.isInteger($)&&$<=Aj&&$>=Kj}function Vj($){return Number.isInteger($)}function vz(){return!0}var Oj=/[^\\]\\Z/;function Dj($){if(Oj.test($))return!1;try{return new RegExp($),!0}catch(Q){return!1}}});var lz=I((uz)=>{Object.defineProperty(uz,"__esModule",{value:!0});uz.formatLimitDefinition=void 0;var Nj=GW(),K1=m(),p1=K1.operators,J$={formatMaximum:{okStr:"<=",ok:p1.LTE,fail:p1.GT},formatMinimum:{okStr:">=",ok:p1.GTE,fail:p1.LT},formatExclusiveMaximum:{okStr:"<",ok:p1.LT,fail:p1.GTE},formatExclusiveMinimum:{okStr:">",ok:p1.GT,fail:p1.LTE}},Uj={message:({keyword:$,schemaCode:Q})=>K1.str`should be ${J$[$].okStr} ${Q}`,params:({keyword:$,schemaCode:Q})=>K1._`{comparison: ${J$[$].okStr}, limit: ${Q}}`};uz.formatLimitDefinition={keyword:Object.keys(J$),type:"string",schemaType:"string",$data:!0,error:Uj,code($){let{gen:Q,data:X,schemaCode:W,keyword:Y,it:J}=$,{opts:G,self:B}=J;if(!G.validateFormats)return;let H=new Nj.KeywordCxt(J,B.RULES.all.format.definition,"format");if(H.$data)z();else K();function z(){let V=Q.scopeValue("formats",{ref:B.formats,code:G.code.formats}),A=Q.const("fmt",K1._`${V}[${H.schemaCode}]`);$.fail$data((0,K1.or)(K1._`typeof ${A} != "object"`,K1._`${A} instanceof RegExp`,K1._`typeof ${A}.compare != "function"`,L(A)))}function K(){let V=H.schema,A=B.formats[V];if(!A||A===!0)return;if(typeof A!="object"||A instanceof RegExp||typeof A.compare!="function")throw Error(`"${Y}": format "${V}" does not define "compare" function`);let D=Q.scopeValue("formats",{key:V,ref:A,code:G.code.formats?K1._`${G.code.formats}${(0,K1.getProperty)(V)}`:void 0});$.fail$data(L(D))}function L(V){return K1._`${V}.compare(${X}, ${W}) ${J$[Y].fail} 0`}},dependencies:["format"]};var wj=($)=>{return $.addKeyword(uz.formatLimitDefinition),$};uz.default=wj});var nz=I((L9,pz)=>{Object.defineProperty(L9,"__esModule",{value:!0});var X8=fz(),qj=lz(),OW=m(),mz=new OW.Name("fullFormats"),Mj=new OW.Name("fastFormats"),DW=($,Q={keywords:!0})=>{if(Array.isArray(Q))return cz($,Q,X8.fullFormats,mz),$;let[X,W]=Q.mode==="fast"?[X8.fastFormats,Mj]:[X8.fullFormats,mz],Y=Q.formats||X8.formatNames;if(cz($,Y,X,W),Q.keywords)(0,qj.default)($);return $};DW.get=($,Q="full")=>{let W=(Q==="fast"?X8.fastFormats:X8.fullFormats)[$];if(!W)throw Error(`Unknown format "${$}"`);return W};function cz($,Q,X,W){var Y,J;(Y=(J=$.opts.code).formats)!==null&&Y!==void 0||(J.formats=OW._`require("ajv-formats/dist/formats").${W}`);for(let G of Q)$.addFormat(G,X[G])}pz.exports=L9=DW;Object.defineProperty(L9,"__esModule",{value:!0});L9.default=DW});var H$=($,Q,X)=>{return(W,Y)=>{let J=-1;return G(0);async function G(B){if(B<=J)throw Error("next() called multiple times");J=B;let H,z=!1,K;if($[B])K=$[B][0][0],W.req.routeIndex=B;else K=B===$.length&&Y||void 0;if(K)try{H=await K(W,()=>G(B+1))}catch(L){if(L instanceof Error&&Q)W.error=L,H=await Q(L,W),z=!0;else throw L}else if(W.finalized===!1&&X)H=await X(W);if(H&&(W.finalized===!1||z))W.res=H;return W}}};var RW=Symbol();var IW=async($,Q=Object.create(null))=>{let{all:X=!1,dot:W=!1}=Q,J=($ instanceof O9?$.raw.headers:$.headers).get("Content-Type");if(J?.startsWith("multipart/form-data")||J?.startsWith("application/x-www-form-urlencoded"))return bK($,{all:X,dot:W});return{}};async function bK($,Q){let X=await $.formData();if(X)return qK(X,Q);return{}}function qK($,Q){let X=Object.create(null);if($.forEach((W,Y)=>{if(!(Q.all||Y.endsWith("[]")))X[Y]=W;else MK(X,Y,W)}),Q.dot)Object.entries(X).forEach(([W,Y])=>{if(W.includes("."))EK(X,W,Y),delete X[W]});return X}var MK=($,Q,X)=>{if($[Q]!==void 0)if(Array.isArray($[Q]))$[Q].push(X);else $[Q]=[$[Q],X];else if(!Q.endsWith("[]"))$[Q]=X;else $[Q]=[X]},EK=($,Q,X)=>{if(/(?:^|\.)__proto__\./.test(Q))return;let W=$,Y=Q.split(".");Y.forEach((J,G)=>{if(G===Y.length-1)W[J]=X;else{if(!W[J]||typeof W[J]!=="object"||Array.isArray(W[J])||W[J]instanceof File)W[J]=Object.create(null);W=W[J]}})};var K$=($)=>{let Q=$.split("/");if(Q[0]==="")Q.shift();return Q},CW=($)=>{let{groups:Q,path:X}=jK($),W=K$(X);return SK(W,Q)},jK=($)=>{let Q=[];return $=$.replace(/\{[^}]+\}/g,(X,W)=>{let Y=`@${W}`;return Q.push([Y,X]),Y}),{groups:Q,path:$}},SK=($,Q)=>{for(let X=Q.length-1;X>=0;X--){let[W]=Q[X];for(let Y=$.length-1;Y>=0;Y--)if($[Y].includes(W)){$[Y]=$[Y].replace(W,Q[X][1]);break}}return $},D9={},ZW=($,Q)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let W=`${$}#${Q}`;if(!D9[W])if(X[2])D9[W]=Q&&Q[0]!==":"&&Q[0]!=="*"?[W,X[1],new RegExp(`^${X[2]}(?=/${Q})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else D9[W]=[$,X[1],!0];return D9[W]}return null},F9=($,Q)=>{try{return Q($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Q(X)}catch{return X}})}},PK=($)=>F9($,decodeURI),A$=($)=>{let Q=$.url,X=Q.indexOf("/",Q.indexOf(":")+4),W=X;for(;W<Q.length;W++){let Y=Q.charCodeAt(W);if(Y===37){let J=Q.indexOf("?",W),G=Q.indexOf("#",W),B=J===-1?G===-1?void 0:G:G===-1?J:Math.min(J,G),H=Q.slice(X,B);return PK(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(Y===63||Y===35)break}return Q.slice(X,W)};var TW=($)=>{let Q=A$($);return Q.length>1&&Q.at(-1)==="/"?Q.slice(0,-1):Q},S1=($,Q,...X)=>{if(X.length)Q=S1(Q,...X);return`${$?.[0]==="/"?"":"/"}${$}${Q==="/"?"":`${$?.at(-1)==="/"?"":"/"}${Q?.[0]==="/"?Q.slice(1):Q}`}`},N9=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let Q=$.split("/"),X=[],W="";return Q.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))W+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(X.length===0&&W==="")X.push("/");else X.push(W);let J=Y.replace("?","");W+="/"+J,X.push(W)}else W+="/"+Y}),X.filter((Y,J,G)=>G.indexOf(Y)===J)},z$=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?F9($,L$):$},vW=($,Q,X)=>{let W;if(!X&&Q&&!/[%+]/.test(Q)){let G=$.indexOf("?",8);if(G===-1)return;if(!$.startsWith(Q,G+1))G=$.indexOf(`&${Q}`,G+1);while(G!==-1){let B=$.charCodeAt(G+Q.length+1);if(B===61){let H=G+Q.length+2,z=$.indexOf("&",H);return z$($.slice(H,z===-1?void 0:z))}else if(B==38||isNaN(B))return"";G=$.indexOf(`&${Q}`,G+1)}if(W=/[%+]/.test($),!W)return}let Y={};W??=/[%+]/.test($);let J=$.indexOf("?",8);while(J!==-1){let G=$.indexOf("&",J+1),B=$.indexOf("=",J);if(B>G&&G!==-1)B=-1;let H=$.slice(J+1,B===-1?G===-1?void 0:G:B);if(W)H=z$(H);if(J=G,H==="")continue;let z;if(B===-1)z="";else if(z=$.slice(B+1,G===-1?void 0:G),W)z=z$(z);if(X){if(!(Y[H]&&Array.isArray(Y[H])))Y[H]=[];Y[H].push(z)}else Y[H]??=z}return Q?Y[Q]:Y},kW=vW,_W=($,Q)=>{return vW($,Q,!0)},L$=decodeURIComponent;var xW=($)=>F9($,L$),O9=class{raw;#$;#Q;routeIndex=0;path;bodyCache={};constructor($,Q="/",X=[[]]){this.raw=$,this.path=Q,this.#Q=X,this.#$={}}param($){return $?this.#X($):this.#J()}#X($){let Q=this.#Q[0][this.routeIndex][1][$],X=this.#Y(Q);return X&&/\%/.test(X)?xW(X):X}#J(){let $={},Q=Object.keys(this.#Q[0][this.routeIndex][1]);for(let X of Q){let W=this.#Y(this.#Q[0][this.routeIndex][1][X]);if(W!==void 0)$[X]=/\%/.test(W)?xW(W):W}return $}#Y($){return this.#Q[1]?this.#Q[1][$]:$}query($){return kW(this.url,$)}queries($){return _W(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let Q={};return this.raw.headers.forEach((X,W)=>{Q[W]=X}),Q}async parseBody($){return IW(this,$)}#W=($)=>{let{bodyCache:Q,raw:X}=this,W=Q[$];if(W)return W;let Y=Object.keys(Q)[0];if(Y)return Q[Y].then((J)=>{if(Y==="json")J=JSON.stringify(J);return new Response(J)[$]()});return Q[$]=X[$]()};json(){return this.#W("text").then(($)=>JSON.parse($))}text(){return this.#W("text")}arrayBuffer(){return this.#W("arrayBuffer")}bytes(){return this.#W("arrayBuffer").then(($)=>new Uint8Array($))}blob(){return this.#W("blob")}formData(){return this.#W("formData")}addValidatedData($,Q){this.#$[$]=Q}valid($){return this.#$[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[RW](){return this.#Q}get matchedRoutes(){return this.#Q[0].map(([[,$]])=>$)}get routePath(){return this.#Q[0].map(([[,$]])=>$)[this.routeIndex].path}};var gW={Stringify:1,BeforeStream:2,Stream:3},RK=($,Q)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=Q,X};var V$=async($,Q,X,W,Y)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let J=$.callbacks;if(!J?.length)return Promise.resolve($);if(Y)Y[0]+=$;else Y=[$];let G=Promise.all(J.map((B)=>B({phase:Q,buffer:Y,context:W}))).then((B)=>Promise.all(B.filter(Boolean).map((H)=>V$(H,Q,!1,W,Y))).then(()=>Y[0]));if(X)return RK(await G,J);else return G};var IK="text/plain; charset=UTF-8",O$=($,Q)=>{return{"Content-Type":$,...Q}},J8=($,Q)=>new Response($,Q),D$=class{#$;#Q;env={};#X;finalized=!1;error;#J;#Y;#W;#K;#H;#z;#B;#A;#L;constructor($,Q){if(this.#$=$,Q)this.#Y=Q.executionCtx,this.env=Q.env,this.#z=Q.notFoundHandler,this.#L=Q.path,this.#A=Q.matchResult}get req(){return this.#Q??=new O9(this.#$,this.#L,this.#A),this.#Q}get event(){if(this.#Y&&"respondWith"in this.#Y)return this.#Y;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Y)return this.#Y;else throw Error("This context has no ExecutionContext")}get res(){return this.#W||=J8(null,{headers:this.#B??=new Headers})}set res($){if(this.#W&&$){$=J8($.body,$);for(let[Q,X]of this.#W.headers.entries()){if(Q==="content-type")continue;if(Q==="set-cookie"){let W=this.#W.headers.getSetCookie();$.headers.delete("set-cookie");for(let Y of W)$.headers.append("set-cookie",Y)}else $.headers.set(Q,X)}}this.#W=$,this.finalized=!0}render=(...$)=>{return this.#H??=(Q)=>this.html(Q),this.#H(...$)};setLayout=($)=>this.#K=$;getLayout=()=>this.#K;setRenderer=($)=>{this.#H=$};header=($,Q,X)=>{if(this.finalized)this.#W=J8(this.#W.body,this.#W);let W=this.#W?this.#W.headers:this.#B??=new Headers;if(Q===void 0)W.delete($);else if(X?.append)W.append($,Q);else W.set($,Q)};status=($)=>{this.#J=$};set=($,Q)=>{this.#X??=new Map,this.#X.set($,Q)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#G($,Q,X){let W=this.#W?new Headers(this.#W.headers):this.#B??new Headers;if(typeof Q==="object"&&"headers"in Q){let J=Q.headers instanceof Headers?Q.headers:new Headers(Q.headers);for(let[G,B]of J)if(G.toLowerCase()==="set-cookie")W.append(G,B);else W.set(G,B)}if(X)for(let[J,G]of Object.entries(X))if(typeof G==="string")W.set(J,G);else{W.delete(J);for(let B of G)W.append(J,B)}let Y=typeof Q==="number"?Q:Q?.status??this.#J;return J8($,{status:Y,headers:W})}newResponse=(...$)=>this.#G(...$);body=($,Q,X)=>this.#G($,Q,X);text=($,Q,X)=>{return!this.#B&&!this.#J&&!Q&&!X&&!this.finalized?new Response($):this.#G($,Q,O$(IK,X))};json=($,Q,X)=>{return this.#G(JSON.stringify($),Q,O$("application/json",X))};html=($,Q,X)=>{let W=(Y)=>this.#G(Y,Q,O$("text/html; charset=UTF-8",X));return typeof $==="object"?V$($,gW.Stringify,!1,{}).then(W):W($)};redirect=($,Q)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Q??302)};notFound=()=>{return this.#z??=()=>J8(),this.#z(this)}};var X0="ALL",yW="all",hW=["get","post","put","delete","options","patch"],U9="Can not add a route since the matcher is already built.",w9=class extends Error{};var fW="__COMPOSED_HANDLER";var CK=($)=>{return $.text("404 Not Found",404)},uW=($,Q)=>{if("getResponse"in $){let X=$.getResponse();return Q.newResponse(X.body,X)}return console.error($),Q.text("Internal Server Error",500)},lW=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Q={}){[...hW,yW].forEach((J)=>{this[J]=(G,...B)=>{if(typeof G==="string")this.#$=G;else this.#J(J,this.#$,G);return B.forEach((H)=>{this.#J(J,this.#$,H)}),this}}),this.on=(J,G,...B)=>{for(let H of[G].flat()){this.#$=H;for(let z of[J].flat())B.map((K)=>{this.#J(z.toUpperCase(),this.#$,K)})}return this},this.use=(J,...G)=>{if(typeof J==="string")this.#$=J;else this.#$="*",G.unshift(J);return G.forEach((B)=>{this.#J(X0,this.#$,B)}),this};let{strict:W,...Y}=Q;Object.assign(this,Y),this.getPath=W??!0?Q.getPath??A$:TW}#Q(){let Q=new $({router:this.router,getPath:this.getPath});return Q.errorHandler=this.errorHandler,Q.#X=this.#X,Q.routes=this.routes,Q}#X=CK;errorHandler=uW;route(Q,X){let W=this.basePath(Q);return X.routes.map((Y)=>{let J;if(X.errorHandler===uW)J=Y.handler;else J=async(G,B)=>(await H$([],X.errorHandler)(G,()=>Y.handler(G,B))).res,J[fW]=Y.handler;W.#J(Y.method,Y.path,J,Y.basePath)}),this}basePath(Q){let X=this.#Q();return X._basePath=S1(this._basePath,Q),X}onError=(Q)=>{return this.errorHandler=Q,this};notFound=(Q)=>{return this.#X=Q,this};mount(Q,X,W){let Y,J;if(W)if(typeof W==="function")J=W;else if(J=W.optionHandler,W.replaceRequest===!1)Y=(H)=>H;else Y=W.replaceRequest;let G=J?(H)=>{let z=J(H);return Array.isArray(z)?z:[z]}:(H)=>{let z=void 0;try{z=H.executionCtx}catch{}return[H.env,z]};Y||=(()=>{let H=S1(this._basePath,Q),z=H==="/"?0:H.length;return(K)=>{let L=new URL(K.url);return L.pathname=this.getPath(K).slice(z)||"/",new Request(L,K)}})();let B=async(H,z)=>{let K=await X(Y(H.req.raw),...G(H));if(K)return K;await z()};return this.#J(X0,S1(Q,"*"),B),this}#J(Q,X,W,Y){Q=Q.toUpperCase(),X=S1(this._basePath,X);let J={basePath:Y!==void 0?S1(this._basePath,Y):this._basePath,path:X,method:Q,handler:W};this.router.add(Q,X,[W,J]),this.routes.push(J)}#Y(Q,X){if(Q instanceof Error)return this.errorHandler(Q,X);throw Q}#W(Q,X,W,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#W(Q,X,W,"GET")))();let J=this.getPath(Q,{env:W}),G=this.router.match(Y,J),B=new D$(Q,{path:J,matchResult:G,env:W,executionCtx:X,notFoundHandler:this.#X});if(G[0].length===1){let z;try{z=G[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(K){return this.#Y(K,B)}return z instanceof Promise?z.then((K)=>K||(B.finalized?B.res:this.#X(B))).catch((K)=>this.#Y(K,B)):z??this.#X(B)}let H=H$(G[0],this.errorHandler,this.#X);return(async()=>{try{let z=await H(B);if(!z.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return z.res}catch(z){return this.#Y(z,B)}})()}fetch=(Q,...X)=>{return this.#W(Q,X[1],X[0],Q.method)};request=(Q,X,W,Y)=>{if(Q instanceof Request)return this.fetch(X?new Request(Q,X):Q,W,Y);return Q=Q.toString(),this.fetch(new Request(/^https?:\/\//.test(Q)?Q:`http://localhost${S1("/",Q)}`,X),W,Y)};fire=()=>{addEventListener("fetch",(Q)=>{Q.respondWith(this.#W(Q.request,Q,void 0,Q.request.method))})}};var G8=[];function b9($,Q){let X=this.buildAllMatchers(),W=(Y,J)=>{let G=X[Y]||X[X0],B=G[2][J];if(B)return B;let H=J.match(G[0]);if(!H)return[[],G8];let z=H.indexOf("",1);return[G[1][z],H]};return this.match=W,W($,Q)}var q9="[^/]+",B8=".*",H8="(?:|/.*)",o1=Symbol(),ZK=new Set(".\\+*[^]$()");function TK($,Q){if($.length===1)return Q.length===1?$<Q?-1:1:-1;if(Q.length===1)return 1;if($===B8||$===H8)return 1;else if(Q===B8||Q===H8)return-1;if($===q9)return 1;else if(Q===q9)return-1;return $.length===Q.length?$<Q?-1:1:Q.length-$.length}var mW=class ${#$;#Q;#X=Object.create(null);insert(Q,X,W,Y,J){if(Q.length===0){if(this.#$!==void 0)throw o1;if(J)return;this.#$=X;return}let[G,...B]=Q,H=G==="*"?B.length===0?["","",B8]:["","",q9]:G==="/*"?["","",H8]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),z;if(H){let K=H[1],L=H[2]||q9;if(K&&H[2]){if(L===".*")throw o1;if(L=L.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(L))throw o1}if(z=this.#X[L],!z){if(Object.keys(this.#X).some((V)=>V!==B8&&V!==H8))throw o1;if(J)return;if(z=this.#X[L]=new $,K!=="")z.#Q=Y.varIndex++}if(!J&&K!=="")W.push([K,z.#Q])}else if(z=this.#X[G],!z){if(Object.keys(this.#X).some((K)=>K.length>1&&K!==B8&&K!==H8))throw o1;if(J)return;z=this.#X[G]=new $}z.insert(B,X,W,Y,J)}buildRegExpStr(){let X=Object.keys(this.#X).sort(TK).map((W)=>{let Y=this.#X[W];return(typeof Y.#Q==="number"?`(${W})@${Y.#Q}`:ZK.has(W)?`\\${W}`:W)+Y.buildRegExpStr()});if(typeof this.#$==="number")X.unshift(`#${this.#$}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var cW=class{#$={varIndex:0};#Q=new mW;insert($,Q,X){let W=[],Y=[];for(let G=0;;){let B=!1;if($=$.replace(/\{[^}]+\}/g,(H)=>{let z=`@\\${G}`;return Y[G]=[z,H],G++,B=!0,z}),!B)break}let J=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let G=Y.length-1;G>=0;G--){let[B]=Y[G];for(let H=J.length-1;H>=0;H--)if(J[H].indexOf(B)!==-1){J[H]=J[H].replace(B,Y[G][1]);break}}return this.#Q.insert(J,Q,W,this.#$,X),W}buildRegExp(){let $=this.#Q.buildRegExpStr();if($==="")return[/^$/,[],[]];let Q=0,X=[],W=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,J,G)=>{if(J!==void 0)return X[++Q]=Number(J),"$()";if(G!==void 0)return W[Number(G)]=++Q,"";return""}),[new RegExp(`^${$}`),X,W]}};var vK=[/^$/,[],Object.create(null)],pW=Object.create(null);function nW($){return pW[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Q,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function kK(){pW=Object.create(null)}function _K($){let Q=new cW,X=[];if($.length===0)return vK;let W=$.map((z)=>[!/\*|\/:/.test(z[0]),...z]).sort(([z,K],[L,V])=>z?1:L?-1:K.length-V.length),Y=Object.create(null);for(let z=0,K=-1,L=W.length;z<L;z++){let[V,A,D]=W[z];if(V)Y[A]=[D.map(([b])=>[b,Object.create(null)]),G8];else K++;let F;try{F=Q.insert(A,K,V)}catch(b){throw b===o1?new w9(A):b}if(V)continue;X[K]=D.map(([b,O])=>{let N=Object.create(null);O-=1;for(;O>=0;O--){let[q,S]=F[O];N[q]=S}return[b,N]})}let[J,G,B]=Q.buildRegExp();for(let z=0,K=X.length;z<K;z++)for(let L=0,V=X[z].length;L<V;L++){let A=X[z][L]?.[1];if(!A)continue;let D=Object.keys(A);for(let F=0,b=D.length;F<b;F++)A[D[F]]=B[A[D[F]]]}let H=[];for(let z in G)H[z]=X[G[z]];return[J,H,Y]}function D6($,Q){if(!$)return;for(let X of Object.keys($).sort((W,Y)=>Y.length-W.length))if(nW(X).test(Q))return[...$[X]];return}var M9=class{name="RegExpRouter";#$;#Q;constructor(){this.#$={[X0]:Object.create(null)},this.#Q={[X0]:Object.create(null)}}add($,Q,X){let W=this.#$,Y=this.#Q;if(!W||!Y)throw Error(U9);if(!W[$])[W,Y].forEach((B)=>{B[$]=Object.create(null),Object.keys(B[X0]).forEach((H)=>{B[$][H]=[...B[X0][H]]})});if(Q==="/*")Q="*";let J=(Q.match(/\/:/g)||[]).length;if(/\*$/.test(Q)){let B=nW(Q);if($===X0)Object.keys(W).forEach((H)=>{W[H][Q]||=D6(W[H],Q)||D6(W[X0],Q)||[]});else W[$][Q]||=D6(W[$],Q)||D6(W[X0],Q)||[];Object.keys(W).forEach((H)=>{if($===X0||$===H)Object.keys(W[H]).forEach((z)=>{B.test(z)&&W[H][z].push([X,J])})}),Object.keys(Y).forEach((H)=>{if($===X0||$===H)Object.keys(Y[H]).forEach((z)=>B.test(z)&&Y[H][z].push([X,J]))});return}let G=N9(Q)||[Q];for(let B=0,H=G.length;B<H;B++){let z=G[B];Object.keys(Y).forEach((K)=>{if($===X0||$===K)Y[K][z]||=[...D6(W[K],z)||D6(W[X0],z)||[]],Y[K][z].push([X,J-H+B+1])})}}match=b9;buildAllMatchers(){let $=Object.create(null);return Object.keys(this.#Q).concat(Object.keys(this.#$)).forEach((Q)=>{$[Q]||=this.#X(Q)}),this.#$=this.#Q=void 0,kK(),$}#X($){let Q=[],X=$===X0;if([this.#$,this.#Q].forEach((W)=>{let Y=W[$]?Object.keys(W[$]).map((J)=>[J,W[$][J]]):[];if(Y.length!==0)X||=!0,Q.push(...Y);else if($!==X0)Q.push(...Object.keys(W[X0]).map((J)=>[J,W[X0][J]]))}),!X)return null;else return _K(Q)}};var xK=class{name="PreparedRegExpRouter";#$;#Q;constructor($,Q){this.#$=$,this.#Q=Q}#X($,Q){let X=this.#$[$];X[1].forEach((W)=>W&&W.push(Q)),Object.values(X[2]).forEach((W)=>W[0].push(Q))}#J($,Q,X,W,Y){let J=this.#$[$];if(!Y)J[2][Q][0].push([X,{}]);else W.forEach((G)=>{if(typeof G==="number")J[1][G].push([X,Y]);else J[2][G||Q][0].push([X,Y])})}add($,Q,X){if(!this.#$[$]){let Y=this.#$[X0],J={};for(let G in Y[2])J[G]=[Y[2][G][0].slice(),G8];this.#$[$]=[Y[0],Y[1].map((G)=>Array.isArray(G)?G.slice():0),J]}if(Q==="/*"||Q==="*"){let Y=[X,{}];if($===X0)for(let J in this.#$)this.#X(J,Y);else this.#X($,Y);return}let W=this.#Q[Q];if(!W)throw Error(`Path ${Q} is not registered`);for(let[Y,J]of W)if($===X0)for(let G in this.#$)this.#J(G,Q,X,Y,J);else this.#J($,Q,X,Y,J)}buildAllMatchers(){return this.#$}match=b9};var F$=class{name="SmartRouter";#$=[];#Q=[];constructor($){this.#$=$.routers}add($,Q,X){if(!this.#Q)throw Error(U9);this.#Q.push([$,Q,X])}match($,Q){if(!this.#Q)throw Error("Fatal error");let X=this.#$,W=this.#Q,Y=X.length,J=0,G;for(;J<Y;J++){let B=X[J];try{for(let H=0,z=W.length;H<z;H++)B.add(...W[H]);G=B.match($,Q)}catch(H){if(H instanceof w9)continue;throw H}this.match=B.match.bind(B),this.#$=[B],this.#Q=void 0;break}if(J===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,G}get activeRouter(){if(this.#Q||this.#$.length!==1)throw Error("No active router has been determined yet.");return this.#$[0]}};var z8=Object.create(null),gK=($)=>{for(let Q in $)return!0;return!1},iW=class ${#$;#Q;#X;#J=0;#Y=z8;constructor(Q,X,W){if(this.#Q=W||Object.create(null),this.#$=[],Q&&X){let Y=Object.create(null);Y[Q]={handler:X,possibleKeys:[],score:0},this.#$=[Y]}this.#X=[]}insert(Q,X,W){this.#J=++this.#J;let Y=this,J=CW(X),G=[];for(let B=0,H=J.length;B<H;B++){let z=J[B],K=J[B+1],L=ZW(z,K),V=Array.isArray(L)?L[0]:z;if(V in Y.#Q){if(Y=Y.#Q[V],L)G.push(L[1]);continue}if(Y.#Q[V]=new $,L)Y.#X.push(L),G.push(L[1]);Y=Y.#Q[V]}return Y.#$.push({[Q]:{handler:W,possibleKeys:G.filter((B,H,z)=>z.indexOf(B)===H),score:this.#J}}),Y}#W(Q,X,W,Y,J){for(let G=0,B=X.#$.length;G<B;G++){let H=X.#$[G],z=H[W]||H[X0],K={};if(z!==void 0){if(z.params=Object.create(null),Q.push(z),Y!==z8||J&&J!==z8)for(let L=0,V=z.possibleKeys.length;L<V;L++){let A=z.possibleKeys[L],D=K[z.score];z.params[A]=J?.[A]&&!D?J[A]:Y[A]??J?.[A],K[z.score]=!0}}}}search(Q,X){let W=[];this.#Y=z8;let J=[this],G=K$(X),B=[],H=G.length,z=null;for(let K=0;K<H;K++){let L=G[K],V=K===H-1,A=[];for(let F=0,b=J.length;F<b;F++){let O=J[F],N=O.#Q[L];if(N)if(N.#Y=O.#Y,V){if(N.#Q["*"])this.#W(W,N.#Q["*"],Q,O.#Y);this.#W(W,N,Q,O.#Y)}else A.push(N);for(let q=0,S=O.#X.length;q<S;q++){let R=O.#X[q],f=O.#Y===z8?{}:{...O.#Y};if(R==="*"){let R0=O.#Q["*"];if(R0)this.#W(W,R0,Q,O.#Y),R0.#Y=f,A.push(R0);continue}let[Q0,u0,v0]=R;if(!L&&!(v0 instanceof RegExp))continue;let j0=O.#Q[Q0];if(v0 instanceof RegExp){if(z===null){z=Array(H);let i1=X[0]==="/"?1:0;for(let d1=0;d1<H;d1++)z[d1]=i1,i1+=G[d1].length+1}let R0=X.substring(z[K]),a0=v0.exec(R0);if(a0){if(f[u0]=a0[0],this.#W(W,j0,Q,O.#Y,f),gK(j0.#Q)){j0.#Y=f;let i1=a0[0].match(/\//)?.length??0;(B[i1]||=[]).push(j0)}continue}}if(v0===!0||v0.test(L))if(f[u0]=L,V){if(this.#W(W,j0,Q,f,O.#Y),j0.#Q["*"])this.#W(W,j0.#Q["*"],Q,f,O.#Y)}else j0.#Y=f,A.push(j0)}}let D=B.shift();J=D?A.concat(D):A}if(W.length>1)W.sort((K,L)=>{return K.score-L.score});return[W.map(({handler:K,params:L})=>[K,L])]}};var N$=class{name="TrieRouter";#$;constructor(){this.#$=new iW}add($,Q,X){let W=N9(Q);if(W){for(let Y=0,J=W.length;Y<J;Y++)this.#$.insert($,W[Y],X);return}this.#$.insert($,Q,X)}match($,Q){return this.#$.search($,Q)}};var U$=class extends lW{constructor($={}){super($);this.router=$.router??new F$({routers:[new M9,new N$]})}};import yK from"os";import w$ from"path";var p={port:Number(process.env.JUNSO_BROWSER_PORT??8790),host:process.env.JUNSO_BROWSER_HOST??"127.0.0.1",token:process.env.JUNSO_BROWSER_TOKEN??"",dataDir:process.env.JUNSO_BROWSER_DATA_DIR??w$.join(yK.homedir(),".junso-browser"),maxInstances:Number(process.env.JUNSO_BROWSER_MAX_INSTANCES??3),idleReapMs:Number(process.env.JUNSO_BROWSER_IDLE_MS??1800000),cloakPath:process.env.JUNSO_BROWSER_CLOAK_PATH,publicUrl:process.env.JUNSO_BROWSER_PUBLIC_URL,headful:process.env.JUNSO_BROWSER_HEADFUL==="true",display:process.env.JUNSO_BROWSER_DISPLAY??":99"};function b$(){return w$.join(p.dataDir,"profiles.json")}function E9($){return w$.join(p.dataDir,"profiles",$,"user-data")}function j9(){return p.host==="127.0.0.1"||p.host==="localhost"||p.host==="::1"}import{mkdir as lK,readFile as mK,writeFile as cK,rm as pK}from"fs/promises";import nK from"path";import{randomUUID as iK}from"crypto";import hK from"os";import M$ from"path";import{existsSync as dW,readdirSync as fK}from"fs";function F6(){if(p.cloakPath&&dW(p.cloakPath))return p.cloakPath;let $=M$.join(hK.homedir(),".cloakbrowser"),Q;try{Q=fK($).filter((W)=>W.startsWith("chromium-"))}catch{return null}Q.sort().reverse();let X=process.platform==="win32"?"chrome.exe":"chrome";for(let W of Q){let Y=M$.join($,W,X);if(dW(Y))return Y}return null}var q$=!1;function oW(){if(q$)return;if(process.env.JUNSO_BROWSER_NO_CLOAK_DOWNLOAD==="true")return;if(F6())return;q$=!0,console.log("[junso-browser] CloakBrowser binary not found \u2014 downloading in background\u2026");let $=M$.resolve(import.meta.dir,"..");Bun.spawn([process.execPath,"x","cloakbrowser","install"],{cwd:$,stdout:"inherit",stderr:"inherit"}).exited.then((X)=>{q$=!1,console.log(X===0?"[junso-browser] CloakBrowser ready.":`[junso-browser] cloak download exited ${X}.`)})}function uK($){try{let Q=new URL($);return`${Q.protocol}//${Q.host}`}catch{return $}}function rW($){if(!$)return null;try{let Q=new URL($);if(!Q.username)return null;return{username:decodeURIComponent(Q.username),password:decodeURIComponent(Q.password)}}catch{return null}}function E$(){return Math.floor(Math.random()*90000)+1e4}function tW($){return $.headful??p.headful}function aW($,Q,X){let W=$.fingerprint,Y=["--no-sandbox",`--fingerprint=${W.seed}`,`--fingerprint-platform=${W.platform??"windows"}`];if(W.timezone)Y.push(`--fingerprint-timezone=${W.timezone}`);if(W.locale)Y.push(`--fingerprint-locale=${W.locale}`,`--accept-lang=${W.locale}`);if($.proxy)Y.push(`--proxy-server=${uK($.proxy)}`);if(Y.push(`--user-data-dir=${X}`,`--remote-debugging-port=${Q}`,"--remote-debugging-address=127.0.0.1"),!tW($))Y.push("--headless=new");return Y}function sW($){let Q={...process.env};if($.fingerprint.timezone)Q.TZ=$.fingerprint.timezone;if(tW($))Q.DISPLAY=p.display;return Q}var N6=null,eW=Promise.resolve();async function K8(){if(N6)return N6;try{let $=await mK(b$(),"utf8"),Q=JSON.parse($);N6=Q&&typeof Q==="object"?Q:{}}catch{N6={}}return N6}async function j$($){await lK(p.dataDir,{recursive:!0}),await cK(b$(),JSON.stringify($,null,2)+`
|
|
10
|
+
`,"utf8"),N6=$}function S$($){let Q=eW.catch(()=>{}).then($);return eW=Q.catch(()=>{}),Q}function dK($){return($??"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}async function $Y(){return Object.values(await K8()).sort(($,Q)=>$.name.localeCompare(Q.name))}async function A1($){return(await K8())[$]??null}async function QY($){let Q=dK($.name)||iK().slice(0,8);return S$(async()=>{let X={...await K8()};if(X[Q])throw Error(`Profile "${Q}" already exists`);let W=new Date().toISOString(),Y={id:Q,name:$.name.trim(),fingerprint:{seed:$.fingerprint?.seed??E$(),platform:$.fingerprint?.platform??"windows",timezone:$.fingerprint?.timezone,locale:$.fingerprint?.locale},proxy:$.proxy?.trim()||void 0,headful:$.headful,createdAt:W,updatedAt:W};return X[Q]=Y,await j$(X),Y})}async function P$($,Q){return S$(async()=>{let X={...await K8()},W=X[$];if(!W)throw Error(`No such profile: ${$}`);let Y={...W.fingerprint,...Q.fingerprint??{}};if(Q.rotateSeed)Y.seed=E$();let J={...W,name:Q.name?.trim()||W.name,fingerprint:Y,proxy:Q.proxy===null?void 0:Q.proxy?.trim()||W.proxy,headful:Q.headful??W.headful,updatedAt:new Date().toISOString()};return X[$]=J,await j$(X),J})}async function XY($){return S$(async()=>{let Q={...await K8()};if(!Q[$])return!1;return delete Q[$],await j$(Q),await pK(nK.dirname(E9($)),{recursive:!0,force:!0}),!0})}function WY($){if(!/session-[a-z0-9]+/i.test($))return null;let Q="s"+Math.random().toString(36).slice(2,10);return $.replace(/session-[a-z0-9]+/i,`session-${Q}`)}function oK($){if(!$)return null;return $.replace(/^([a-z0-9+.-]+:\/\/[^:@/]+):[^@/]+@/i,"$1:\u2022\u2022\u2022\u2022@")}function U6($){return{...$,proxy:oK($.proxy)??void 0}}import{mkdir as rK,readFile as tK,rm as YY}from"fs/promises";import I$ from"path";class R${browserWsUrl;username;password;ws=null;nextId=1;constructor($,Q,X){this.browserWsUrl=$;this.username=Q;this.password=X}async start(){let $=new WebSocket(this.browserWsUrl);this.ws=$,await new Promise((Q,X)=>{$.onopen=()=>Q(),$.onerror=()=>X(Error("proxy-auth CDP connect failed"))}),$.onmessage=(Q)=>this.onMessage(JSON.parse(String(Q.data))),$.onclose=()=>{this.ws=null},this.send(void 0,"Target.setAutoAttach",{autoAttach:!0,waitForDebuggerOnStart:!1,flatten:!0})}send($,Q,X){this.ws?.send(JSON.stringify({id:this.nextId++,sessionId:$,method:Q,params:X}))}onMessage($){if($.method==="Target.attachedToTarget"){let Q=$.params.sessionId;this.send(Q,"Fetch.enable",{handleAuthRequests:!0})}else if($.method==="Fetch.authRequired"){let Q=$.params,X=Q.authChallenge?.source==="Proxy";this.send($.sessionId,"Fetch.continueWithAuth",{requestId:Q.requestId,authChallengeResponse:X?{response:"ProvideCredentials",username:this.username,password:this.password}:{response:"Default"}})}else if($.method==="Fetch.requestPaused")this.send($.sessionId,"Fetch.continueRequest",{requestId:$.params.requestId})}close(){try{this.ws?.close()}catch{}this.ws=null}}var l0=new Map;async function aK($,Q=20000){let X=I$.join($,"DevToolsActivePort"),W=Date.now()+Q;while(Date.now()<W){try{let Y=await tK(X,"utf8"),[J,G]=Y.split(`
|
|
11
|
+
`),B=Number(J);if(B>0&&G)return{port:B,wsPath:G.trim()}}catch{}await Bun.sleep(150)}throw Error("Browser did not become ready (no DevToolsActivePort)")}async function sK(){let $=null;for(let Q of l0.values())if(!$||Q.instance.lastUsedAt<$.instance.lastUsedAt)$=Q;if($)await r1($.instance.profileId)}async function w6($){let Q=l0.get($.id);if(Q)return Q.instance.lastUsedAt=new Date().toISOString(),Q.instance;let X=F6();if(!X)throw Error("CloakBrowser binary not found \u2014 run `cloakbrowser install`");if(p.maxInstances>0&&l0.size>=p.maxInstances)await sK();let W=E9($.id);await rK(W,{recursive:!0}),await YY(I$.join(W,"DevToolsActivePort"),{force:!0}),await YY(I$.join(W,"SingletonLock"),{force:!0});let Y=aW($,0,W),J=Bun.spawn([X,...Y],{stdout:"ignore",stderr:"ignore",env:sW($)}),G;try{G=await aK(W)}catch(L){throw J.kill(),L}let B=new Date().toISOString(),H={profileId:$.id,pid:J.pid,port:G.port,browserWsPath:G.wsPath,startedAt:B,lastUsedAt:B},z={instance:H,proc:J};l0.set($.id,z);let K=rW($.proxy);if(K){let L=new R$(`ws://127.0.0.1:${G.port}${G.wsPath}`,K.username,K.password);try{await L.start(),z.auth=L}catch{}}return J.exited.then(()=>{if(l0.get($.id)?.proc===J)z.auth?.close(),l0.delete($.id)}),H}function S9($){return l0.has($)}function JY($){let Q=l0.get($);if(Q)Q.instance.lastUsedAt=new Date().toISOString()}async function r1($){let Q=l0.get($);if(!Q)return!1;return l0.delete($),Q.auth?.close(),Q.proc.kill(),await Q.proc.exited.catch(()=>{}),!0}async function GY(){await Promise.all([...l0.keys()].map(($)=>r1($)))}function BY(){return[...l0.values()].map(($)=>$.instance)}function HY(){if(p.idleReapMs<=0)return null;return setInterval(()=>{let $=Date.now()-p.idleReapMs;for(let Q of l0.values())if(new Date(Q.instance.lastUsedAt).getTime()<$)r1(Q.instance.profileId)},60000)}async function $A($,Q=15000){try{return(await(await fetch("https://api.ipify.org?format=json",{proxy:$||void 0,signal:AbortSignal.timeout(Q)})).json()).ip??null}catch{return null}}async function QA($,Q=1e4){try{let Y=await(await fetch(`http://ip-api.com/json/${$}?fields=status,country,countryCode,timezone,isp,mobile,proxy,hosting,query`,{signal:AbortSignal.timeout(Q)})).json();if(Y.status!=="success")return null;let J="residential";if(Y.proxy)J="proxy";else if(Y.hosting)J="hosting";else if(Y.mobile)J="mobile";return{ip:Y.query??$,country:Y.country,countryCode:Y.countryCode,timezone:Y.timezone,isp:Y.isp,kind:J}}catch{return null}}async function A8($){let Q=await $A($);if(!Q)return null;return await QA(Q)??{ip:Q,kind:"unknown"}}function C$($){return{timezone:$.timezone,locale:$.countryCode?`en-${$.countryCode}`:void 0}}async function zY($,Q,X=38000){let W=`ws://127.0.0.1:${$}${Q}`;return new Promise((Y)=>{let J=!1,G=null,B=setTimeout(()=>H(null),X);function H(A){if(J)return;J=!0,clearTimeout(B);try{L.close()}catch{}Y(A)}let z=0,K=new Map,L=new WebSocket(W);L.onclose=()=>H(null),L.onerror=()=>H(null),L.onmessage=(A)=>{let D=JSON.parse(String(A.data));if(D.id&&K.has(D.id))K.get(D.id)(D.result),K.delete(D.id)};function V(A,D,F){let b=++z;return new Promise((O)=>{K.set(b,O),L.send(JSON.stringify({id:b,method:A,params:D??{},...F?{sessionId:F}:{}}))})}L.onopen=async()=>{try{let{targetId:A}=await V("Target.createTarget",{url:"about:blank"});G=A;let{sessionId:D}=await V("Target.attachToTarget",{targetId:A,flatten:!0});await V("Page.enable",{},D),await V("Runtime.enable",{},D),await V("Page.navigate",{url:"https://antcpt.com/score_detector/"},D);for(let F=0;F<16;F++){await new Promise((q)=>setTimeout(q,2000));let N=((await V("Runtime.evaluate",{expression:'document.body ? document.body.innerText : ""',returnByValue:!0},D))?.result?.value??"").match(/Your score is:?\s*([0-9.]+)/i);if(N){await V("Target.closeTarget",{targetId:A}).catch(()=>{}),H(parseFloat(N[1]??"0"));return}}await V("Target.closeTarget",{targetId:A}).catch(()=>{}),H(null)}catch{if(G)V("Target.closeTarget",{targetId:G}).catch(()=>{});H(null)}}})}var P9={name:"junso-browser",version:"0.3.0",description:"Standalone CloakBrowser host \u2014 runs fingerprinted stealth-Chromium per profile, exposes each over a token-authed CDP gateway + interactive viewport, and ships an optional MCP server so any client gets browser tools with no local browser.",type:"module",bin:{"junso-browser":"bin/junso-browser.js","junso-browser-mcp":"bin/junso-browser-mcp.js"},files:["bin","dist","scripts","README.md"],engines:{bun:">=1.2.0"},keywords:["browser","cloakbrowser","stealth","fingerprint","cdp","mcp","proxy","automation"],license:"UNLICENSED",scripts:{dev:"bun --watch src/server.ts",start:"bun src/server.ts",mcp:"bun src/mcp.ts",build:"bun build src/server.ts src/mcp.ts --target=bun --minify --outdir=dist","build:binary":"bun build src/server.ts --compile --outfile dist/junso-browser",typecheck:"bunx tsc --noEmit",test:"bun test",prepublishOnly:"bun run build"},dependencies:{"agent-browser":"^0.27.1",cloakbrowser:"^0.3.31"},devDependencies:{"@modelcontextprotocol/sdk":"^1.29.0","@types/bun":"latest",hono:"^4.6.0",typescript:"^5.6.0",zod:"3"}};function WA($){return/^https?:|^file:/.test($)}class KY{browserWsUrl;cdp=null;sessionId=null;activeTargetId=null;nextId=1;pending=new Map;starting=null;targets=new Map;lastFrame=null;lastUrl=null;viewers=new Set;constructor($){this.browserWsUrl=$}rpc($,Q={},X){if(!this.cdp)return Promise.reject(Error("cdp closed"));let W=this.nextId++;return this.cdp.send(JSON.stringify({id:W,method:$,params:Q,sessionId:X})),new Promise((Y)=>this.pending.set(W,Y))}async start(){if(this.starting)return this.starting;return this.starting=(async()=>{let $=new WebSocket(this.browserWsUrl);this.cdp=$,await new Promise((Y,J)=>{$.onopen=()=>Y(),$.onerror=()=>J(Error("CDP connect failed"))}),$.onmessage=(Y)=>this.onMessage(JSON.parse(String(Y.data))),$.onclose=()=>{this.cdp=null,this.sessionId=null},await this.rpc("Target.setDiscoverTargets",{discover:!0});let{targetInfos:Q}=await this.rpc("Target.getTargets"),X=Q.filter((Y)=>Y.type==="page");for(let Y of X)this.targets.set(Y.targetId,{url:Y.url,title:Y.title});let W=X.find((Y)=>WA(Y.url))??X[0];if(!W)throw Error("no page target to stream");await this.attachTo(W.targetId)})(),this.starting}async attachTo($){if(this.sessionId){let X=this.sessionId;this.sessionId=null;try{await this.rpc("Target.detachFromTarget",{sessionId:X})}catch{}}let{sessionId:Q}=await this.rpc("Target.attachToTarget",{targetId:$,flatten:!0});this.sessionId=Q,this.activeTargetId=$,await this.rpc("Page.enable",{},Q),await this.rpc("Page.startScreencast",{format:"jpeg",quality:60,maxWidth:1280,maxHeight:800,everyNthFrame:1},Q);try{let X=await this.rpc("Page.getNavigationHistory",{},Q);this.lastUrl=X.entries[X.currentIndex]?.url??null}catch{}if(this.broadcastTabs(),this.lastUrl)this.broadcast({type:"url",url:this.lastUrl})}async switchTarget($){if(!this.targets.has($)||$===this.activeTargetId)return;this.lastFrame=null,await this.attachTo($).catch(()=>{})}tabList(){return[...this.targets.entries()].map(([$,Q])=>({targetId:$,url:Q.url,title:Q.title,active:$===this.activeTargetId}))}broadcastTabs(){this.broadcast({type:"tabs",tabs:this.tabList()})}onMessage($){if($.id!==void 0&&this.pending.has($.id)){this.pending.get($.id)($.result),this.pending.delete($.id);return}if($.method==="Page.screencastFrame"){let Q=$.params;this.rpc("Page.screencastFrameAck",{sessionId:Q.sessionId},this.sessionId??void 0);let X=JSON.stringify({type:"frame",data:Q.data,metadata:Q.metadata});this.lastFrame=X;for(let W of this.viewers)W.send(X)}else if($.method==="Page.frameNavigated"){let Q=$.params.frame;if(Q&&!Q.parentId&&Q.url){if(this.lastUrl=Q.url,this.activeTargetId){let X=this.targets.get(this.activeTargetId);if(X)X.url=Q.url}this.broadcast({type:"url",url:Q.url})}}else if($.method==="Target.targetCreated"||$.method==="Target.targetInfoChanged"){let Q=$.params.targetInfo;if(Q&&Q.type==="page")this.targets.set(Q.targetId,{url:Q.url,title:Q.title}),this.broadcastTabs()}else if($.method==="Target.targetDestroyed"){let Q=$.params.targetId;if(this.targets.delete(Q)){if(this.broadcastTabs(),Q===this.activeTargetId){let X=[...this.targets.keys()][0];if(X)this.switchTarget(X)}}}}broadcast($){let Q=JSON.stringify($);for(let X of this.viewers)X.send(Q)}sendStateTo($){if(this.lastFrame)$.send(this.lastFrame);if(this.lastUrl)$.send(JSON.stringify({type:"url",url:this.lastUrl}));$.send(JSON.stringify({type:"tabs",tabs:this.tabList()}))}input($){if(!this.cdp||!this.sessionId)return;let Q=$.t;if(Q==="m")this.rpc("Input.dispatchMouseEvent",{type:$.type,x:$.x,y:$.y,button:$.button??"none",buttons:$.buttons??0,clickCount:$.clickCount??0,deltaX:$.deltaX??0,deltaY:$.deltaY??0,modifiers:$.modifiers??0},this.sessionId);else if(Q==="k")this.rpc("Input.dispatchKeyEvent",{type:$.type,key:$.key,code:$.code,text:$.text,windowsVirtualKeyCode:$.keyCode,nativeVirtualKeyCode:$.keyCode,modifiers:$.modifiers??0},this.sessionId);else if(Q==="tab"){let X=String($.targetId??"");if(X)this.switchTarget(X)}else if(Q==="nav"){let X=String($.url??"").trim();if(X)this.rpc("Page.navigate",{url:/^[a-z]+:\/\//i.test(X)?X:`https://${X}`},this.sessionId)}else if(Q==="reload")this.rpc("Page.reload",{},this.sessionId);else if(Q==="back"||Q==="forward")(async()=>{let X=await this.rpc("Page.getNavigationHistory",{},this.sessionId),W=X.currentIndex+(Q==="forward"?1:-1),Y=X.entries[W];if(Y)await this.rpc("Page.navigateToHistoryEntry",{entryId:Y.id},this.sessionId)})()}close(){try{this.cdp?.close()}catch{}this.cdp=null}}var L8=new Map;async function AY($,Q){let X=await A1($);if(!X)throw Error(`no such profile: ${$}`);let W=await w6(X),Y=L8.get($);if(!Y)Y=new KY(`ws://127.0.0.1:${W.port}${W.browserWsPath}`),L8.set($,Y);await Y.start(),Y.viewers.add(Q),Y.sendStateTo(Q)}function LY($,Q){let X=L8.get($);if(!X)return;if(X.viewers.delete(Q),X.viewers.size===0)X.close(),L8.delete($)}function VY($,Q){let X=L8.get($);if(!X)return;try{X.input(JSON.parse(Q))}catch{}}function OY($,Q){let X=JSON.stringify($),W=JSON.stringify(Q||"");return`<!doctype html>
|
|
12
|
+
<html><head><meta charset="utf-8"><title>junso-browser \xB7 ${$}</title>
|
|
6
13
|
<style>
|
|
7
14
|
html,body{margin:0;height:100%;background:#111;color:#ccc;font:13px system-ui}
|
|
8
15
|
#bar{padding:6px 10px;background:#1b1b1b;border-bottom:1px solid #333;display:flex;gap:8px;align-items:center}
|
|
@@ -29,7 +36,7 @@ var Tn=Object.create;var{getPrototypeOf:_n,defineProperty:ot,getOwnPropertyNames
|
|
|
29
36
|
</div>
|
|
30
37
|
<div id="wrap"><img id="v" tabindex="0" draggable="false"/></div>
|
|
31
38
|
<script>
|
|
32
|
-
const PROFILE=${
|
|
39
|
+
const PROFILE=${X}, TOKEN=${W};
|
|
33
40
|
const img=document.getElementById("v"), st=document.getElementById("st"), urlBox=document.getElementById("url");
|
|
34
41
|
let meta={deviceWidth:1280,deviceHeight:800};
|
|
35
42
|
const proto=location.protocol==="https:"?"wss":"ws";
|
|
@@ -78,7 +85,7 @@ img.addEventListener("contextmenu",e=>e.preventDefault());
|
|
|
78
85
|
img.addEventListener("wheel",e=>{e.preventDefault();const p=pos(e);send({t:"m",type:"mouseWheel",x:p.x,y:p.y,deltaX:e.deltaX,deltaY:e.deltaY,modifiers:mods(e)});},{passive:false});
|
|
79
86
|
img.addEventListener("keydown",e=>{e.preventDefault();const printable=e.key.length===1; send({t:"k",type:"keyDown",key:e.key,code:e.code,keyCode:e.keyCode,modifiers:mods(e),text:printable?e.key:undefined});});
|
|
80
87
|
img.addEventListener("keyup",e=>{e.preventDefault();send({t:"k",type:"keyUp",key:e.key,code:e.code,keyCode:e.keyCode,modifiers:mods(e)});});
|
|
81
|
-
</script></body></html>`}function
|
|
88
|
+
</script></body></html>`}function DY($){return`<!doctype html><html><head><meta charset="utf-8"><title>junso-browser</title>
|
|
82
89
|
<style>
|
|
83
90
|
:root{color-scheme:dark}
|
|
84
91
|
body{margin:0;background:#0f0f10;color:#ddd;font:14px system-ui;padding:20px;max-width:1100px;margin:0 auto}
|
|
@@ -119,7 +126,7 @@ img.addEventListener("keyup",e=>{e.preventDefault();send({t:"k",type:"keyUp",key
|
|
|
119
126
|
</div>
|
|
120
127
|
|
|
121
128
|
<script>
|
|
122
|
-
const TOKEN=${JSON.stringify(
|
|
129
|
+
const TOKEN=${JSON.stringify($||"")};
|
|
123
130
|
const H = TOKEN ? {authorization:"Bearer "+TOKEN} : {};
|
|
124
131
|
const qs = TOKEN ? "?token="+encodeURIComponent(TOKEN) : "";
|
|
125
132
|
const errEl=document.getElementById("err");
|
|
@@ -184,5 +191,79 @@ document.getElementById("rows").addEventListener("click",async function(e){
|
|
|
184
191
|
}catch(e){ err(e.message); }
|
|
185
192
|
});
|
|
186
193
|
load(); setInterval(load,5000);
|
|
187
|
-
</script></body></html>`}var Kn=Nn.version;function Bi(t,n){let i=t.headers.get("authorization");if(i?.startsWith("Bearer "))return i.slice(7);return t.headers.get("x-junso-token")??n.searchParams.get("token")}function F(t,n){if(!E.token)return lt();return Bi(t,n)===E.token}function Xt(t){let n=E.publicUrl?.replace(/\/$/,"")??`ws://${E.host==="0.0.0.0"?"127.0.0.1":E.host}:${E.port}`,i=E.token?`?token=${encodeURIComponent(E.token)}`:"";return`${n}/cdp/${t}${i}`}async function Li(t,n,i){if(!F(t,n))return new Response("Unauthorized",{status:401});let c=n.pathname.slice(5),l=c.split("/")[0]??"",f=await z(l);if(!f)return new Response("No such profile",{status:404});let b;try{b=await W(f)}catch(s){return new Response(`Launch failed: ${s instanceof Error?s.message:s}`,{status:502})}if(En(l),t.headers.get("upgrade")?.toLowerCase()==="websocket"){let s=`ws://127.0.0.1:${b.port}${b.browserWsPath}`;return i.upgrade(t,{data:{kind:"cdp",profileId:l,targetWsUrl:s,upstream:null,queue:[],closed:!1}})?void 0:new Response("WebSocket upgrade required",{status:426})}let o=c.slice(l.length);if(o.startsWith("/json"))try{let s=await fetch(`http://127.0.0.1:${b.port}${o}`),x=await s.text(),e=Xt(l);return x=x.replace(/ws:\/\/127\.0\.0\.1:\d+\/devtools\/browser\/[a-zA-Z0-9-]+/g,e),new Response(x,{status:s.status,headers:{"content-type":"application/json"}})}catch{return new Response("CDP discovery failed",{status:502})}return new Response("Not found",{status:404})}var zi={open(t){if(t.data.kind==="stream"){let c={send:(l)=>t.send(l)};t.data.viewer=c,Sn(t.data.profileId,c).catch(()=>t.close());return}let n=t.data,i=new WebSocket(n.targetWsUrl);i.binaryType="arraybuffer",n.upstream=i,i.onopen=()=>{for(let c of n.queue)i.send(c);n.queue=[]},i.onmessage=(c)=>{if(!n.closed)t.send(c.data)},i.onclose=()=>{if(!n.closed)t.close()},i.onerror=()=>{if(!n.closed)t.close()}},message(t,n){if(t.data.kind==="stream"){if(typeof n==="string")Bn(t.data.profileId,n);return}let i=t.data.upstream,c=typeof n==="string"?n:new Uint8Array(n).buffer;if(i&&i.readyState===WebSocket.OPEN)i.send(c);else t.data.queue.push(c)},close(t){if(t.data.kind==="stream"){if(t.data.viewer)vn(t.data.profileId,t.data.viewer);return}t.data.closed=!0;try{t.data.upstream?.close()}catch{}}},v=new St;v.use("/api/*",async(t,n)=>{if(!F(t.req.raw,new URL(t.req.url)))return t.json({error:"Unauthorized"},401);await n()});v.get("/health",(t)=>t.json({ok:!0,name:"junso-browser",version:Kn,cloak:Boolean(G()),running:dn().length,maxInstances:E.maxInstances}));v.get("/api/profiles",async(t)=>{let n=await sn();return t.json({profiles:n.map((i)=>({...Y(i),running:ft(i.id)}))})});async function jn(t){if(!t.proxy||typeof t.proxy!=="string")return;let n=t.fingerprint??{};if(n.timezone&&n.locale)return;let i=await w(t.proxy);if(!i)return;let c=at(i);if(t.fingerprint={...n},!n.timezone&&c.timezone)t.fingerprint.timezone=c.timezone;if(!n.locale&&c.locale)t.fingerprint.locale=c.locale}v.post("/api/profiles",async(t)=>{let n=await t.req.json().catch(()=>({}));if(!n?.name||typeof n.name!=="string")return t.json({error:"name is required"},400);try{await jn(n);let i=await on(n);return t.json({profile:Y(i)},201)}catch(i){return t.json({error:i instanceof Error?i.message:"create failed"},400)}});v.get("/api/profiles/:id",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);return t.json({profile:Y(n),running:ft(n.id)})});v.patch("/api/profiles/:id",async(t)=>{let n=await t.req.json().catch(()=>({}));try{if(typeof n.proxy==="string")await jn(n);let i=await Jt(t.req.param("id"),n);return t.json({profile:Y(i)})}catch(i){return t.json({error:i instanceof Error?i.message:"update failed"},400)}});v.delete("/api/profiles/:id",async(t)=>{let n=t.req.param("id");return await _(n),await xn(n)?t.json({ok:!0}):t.json({error:"not found"},404)});v.post("/api/profiles/:id/launch",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);try{return await W(n),t.json({cdpUrl:Xt(n.id),running:!0})}catch(i){return t.json({error:i instanceof Error?i.message:"launch failed"},502)}});v.post("/api/profiles/:id/stop",async(t)=>{let n=await _(t.req.param("id"));return t.json({stopped:n})});v.get("/api/profiles/:id/cdp",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);return t.json({cdpUrl:Xt(n.id),running:ft(n.id)})});v.get("/api/profiles/:id/exit-ip",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);let i=await w(n.proxy);if(!i)return t.json({error:"lookup failed",viaProxy:Boolean(n.proxy)},502);let c=Boolean(n.fingerprint.timezone&&i.timezone&&n.fingerprint.timezone!==i.timezone);return t.json({ip:i.ip,viaProxy:Boolean(n.proxy),country:i.country??null,countryCode:i.countryCode??null,isp:i.isp??null,kind:i.kind,timezone:i.timezone??null,tzMismatch:c})});v.get("/api/profiles/:id/probe",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);let i;try{i=await W(n)}catch(f){return t.json({error:`launch failed: ${f instanceof Error?f.message:f}`},502)}let[c,l]=await Promise.all([yn(i.port,i.browserWsPath),w(n.proxy)]);return t.json({score:c,clean:c!==null&&c>=0.8,ip:l?.ip??null,isp:l?.isp??null,kind:l?.kind??null})});v.post("/api/profiles/:id/rotate-proxy",async(t)=>{let n=await z(t.req.param("id"));if(!n)return t.json({error:"not found"},404);if(!n.proxy)return t.json({error:"profile has no proxy"},400);let i=en(n.proxy);if(!i)return t.json({error:"proxy has no rotatable session-<id> token"},400);let c=await w(i),l=c?at(c):{},f=await Jt(n.id,{proxy:i,fingerprint:l});return await _(n.id),t.json({profile:Y(f),exitIp:c?.ip??null,country:c?.country??null,isp:c?.isp??null,kind:c?.kind??"unknown"})});if(!E.token&&!lt())console.error(`[junso-browser] REFUSING TO START: bound to a non-loopback host with no JUNSO_BROWSER_TOKEN set.
|
|
188
|
-
|
|
194
|
+
</script></body></html>`}var s={};B$(s,{void:()=>lA,util:()=>n,unknown:()=>fA,union:()=>pA,undefined:()=>gA,tuple:()=>dA,transformer:()=>WL,symbol:()=>xA,string:()=>jY,strictObject:()=>cA,setErrorMap:()=>GA,set:()=>tA,record:()=>oA,quotelessJson:()=>YA,promise:()=>XL,preprocess:()=>GL,pipeline:()=>BL,ostring:()=>HL,optional:()=>YL,onumber:()=>zL,oboolean:()=>KL,objectUtil:()=>Z$,object:()=>k$,number:()=>SY,nullable:()=>JL,null:()=>yA,never:()=>uA,nativeEnum:()=>QL,nan:()=>vA,map:()=>rA,makeIssue:()=>V8,literal:()=>eA,lazy:()=>sA,late:()=>ZA,isValid:()=>P1,isDirty:()=>I9,isAsync:()=>q6,isAborted:()=>R9,intersection:()=>iA,instanceof:()=>TA,getParsedType:()=>L1,getErrorMap:()=>b6,function:()=>aA,enum:()=>$L,effect:()=>WL,discriminatedUnion:()=>nA,defaultErrorMap:()=>U1,datetimeRegex:()=>qY,date:()=>_A,custom:()=>EY,coerce:()=>AL,boolean:()=>PY,bigint:()=>kA,array:()=>mA,any:()=>hA,addIssueToContext:()=>P,ZodVoid:()=>D8,ZodUnknown:()=>R1,ZodUnion:()=>R6,ZodUndefined:()=>S6,ZodType:()=>c,ZodTuple:()=>O1,ZodTransformer:()=>Q1,ZodSymbol:()=>O8,ZodString:()=>s0,ZodSet:()=>e1,ZodSchema:()=>c,ZodRecord:()=>F8,ZodReadonly:()=>_6,ZodPromise:()=>$6,ZodPipeline:()=>w8,ZodParsedType:()=>j,ZodOptional:()=>m0,ZodObject:()=>V0,ZodNumber:()=>I1,ZodNullable:()=>b1,ZodNull:()=>P6,ZodNever:()=>V1,ZodNativeEnum:()=>T6,ZodNaN:()=>U8,ZodMap:()=>N8,ZodLiteral:()=>Z6,ZodLazy:()=>C6,ZodIssueCode:()=>M,ZodIntersection:()=>I6,ZodFunction:()=>E6,ZodFirstPartyTypeKind:()=>E,ZodError:()=>k0,ZodEnum:()=>Z1,ZodEffects:()=>Q1,ZodDiscriminatedUnion:()=>C9,ZodDefault:()=>v6,ZodDate:()=>a1,ZodCatch:()=>k6,ZodBranded:()=>Z9,ZodBoolean:()=>j6,ZodBigInt:()=>C1,ZodArray:()=>e0,ZodAny:()=>s1,Schema:()=>c,ParseStatus:()=>w0,OK:()=>S0,NEVER:()=>LL,INVALID:()=>x,EMPTY_PATH:()=>BA,DIRTY:()=>t1,BRAND:()=>CA});var n;(function($){$.assertEqual=(Y)=>{};function Q(Y){}$.assertIs=Q;function X(Y){throw Error()}$.assertNever=X,$.arrayToEnum=(Y)=>{let J={};for(let G of Y)J[G]=G;return J},$.getValidEnumValues=(Y)=>{let J=$.objectKeys(Y).filter((B)=>typeof Y[Y[B]]!=="number"),G={};for(let B of J)G[B]=Y[B];return $.objectValues(G)},$.objectValues=(Y)=>{return $.objectKeys(Y).map(function(J){return Y[J]})},$.objectKeys=typeof Object.keys==="function"?(Y)=>Object.keys(Y):(Y)=>{let J=[];for(let G in Y)if(Object.prototype.hasOwnProperty.call(Y,G))J.push(G);return J},$.find=(Y,J)=>{for(let G of Y)if(J(G))return G;return},$.isInteger=typeof Number.isInteger==="function"?(Y)=>Number.isInteger(Y):(Y)=>typeof Y==="number"&&Number.isFinite(Y)&&Math.floor(Y)===Y;function W(Y,J=" | "){return Y.map((G)=>typeof G==="string"?`'${G}'`:G).join(J)}$.joinValues=W,$.jsonStringifyReplacer=(Y,J)=>{if(typeof J==="bigint")return J.toString();return J}})(n||(n={}));var Z$;(function($){$.mergeShapes=(Q,X)=>{return{...Q,...X}}})(Z$||(Z$={}));var j=n.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),L1=($)=>{switch(typeof $){case"undefined":return j.undefined;case"string":return j.string;case"number":return Number.isNaN($)?j.nan:j.number;case"boolean":return j.boolean;case"function":return j.function;case"bigint":return j.bigint;case"symbol":return j.symbol;case"object":if(Array.isArray($))return j.array;if($===null)return j.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return j.promise;if(typeof Map<"u"&&$ instanceof Map)return j.map;if(typeof Set<"u"&&$ instanceof Set)return j.set;if(typeof Date<"u"&&$ instanceof Date)return j.date;return j.object;default:return j.unknown}};var M=n.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"]),YA=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class k0 extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let Q=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,Q);else this.__proto__=Q;this.name="ZodError",this.issues=$}format($){let Q=$||function(Y){return Y.message},X={_errors:[]},W=(Y)=>{for(let J of Y.issues)if(J.code==="invalid_union")J.unionErrors.map(W);else if(J.code==="invalid_return_type")W(J.returnTypeError);else if(J.code==="invalid_arguments")W(J.argumentsError);else if(J.path.length===0)X._errors.push(Q(J));else{let G=X,B=0;while(B<J.path.length){let H=J.path[B];if(B!==J.path.length-1)G[H]=G[H]||{_errors:[]};else G[H]=G[H]||{_errors:[]},G[H]._errors.push(Q(J));G=G[H],B++}}};return W(this),X}static assert($){if(!($ instanceof k0))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,n.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(Q)=>Q.message){let Q={},X=[];for(let W of this.issues)if(W.path.length>0){let Y=W.path[0];Q[Y]=Q[Y]||[],Q[Y].push($(W))}else X.push($(W));return{formErrors:X,fieldErrors:Q}}get formErrors(){return this.flatten()}}k0.create=($)=>{return new k0($)};var JA=($,Q)=>{let X;switch($.code){case M.invalid_type:if($.received===j.undefined)X="Required";else X=`Expected ${$.expected}, received ${$.received}`;break;case M.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify($.expected,n.jsonStringifyReplacer)}`;break;case M.unrecognized_keys:X=`Unrecognized key(s) in object: ${n.joinValues($.keys,", ")}`;break;case M.invalid_union:X="Invalid input";break;case M.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${n.joinValues($.options)}`;break;case M.invalid_enum_value:X=`Invalid enum value. Expected ${n.joinValues($.options)}, received '${$.received}'`;break;case M.invalid_arguments:X="Invalid function arguments";break;case M.invalid_return_type:X="Invalid function return type";break;case M.invalid_date:X="Invalid date";break;case M.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(X=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)X=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)X=`Invalid input: must end with "${$.validation.endsWith}"`;else n.assertNever($.validation);else if($.validation!=="regex")X=`Invalid ${$.validation}`;else X="Invalid";break;case M.too_small:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else X="Invalid input";break;case M.too_big:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")X=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else X="Invalid input";break;case M.custom:X="Invalid input";break;case M.invalid_intersection_types:X="Intersection results could not be merged";break;case M.not_multiple_of:X=`Number must be a multiple of ${$.multipleOf}`;break;case M.not_finite:X="Number must be finite";break;default:X=Q.defaultError,n.assertNever($)}return{message:X}},U1=JA;var FY=U1;function GA($){FY=$}function b6(){return FY}var V8=($)=>{let{data:Q,path:X,errorMaps:W,issueData:Y}=$,J=[...X,...Y.path||[]],G={...Y,path:J};if(Y.message!==void 0)return{...Y,path:J,message:Y.message};let B="",H=W.filter((z)=>!!z).slice().reverse();for(let z of H)B=z(G,{data:Q,defaultError:B}).message;return{...Y,path:J,message:B}},BA=[];function P($,Q){let X=b6(),W=V8({issueData:Q,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,X,X===U1?void 0:U1].filter((Y)=>!!Y)});$.common.issues.push(W)}class w0{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 W of Q){if(W.status==="aborted")return x;if(W.status==="dirty")$.dirty();X.push(W.value)}return{status:$.value,value:X}}static async mergeObjectAsync($,Q){let X=[];for(let W of Q){let Y=await W.key,J=await W.value;X.push({key:Y,value:J})}return w0.mergeObjectSync($,X)}static mergeObjectSync($,Q){let X={};for(let W of Q){let{key:Y,value:J}=W;if(Y.status==="aborted")return x;if(J.status==="aborted")return x;if(Y.status==="dirty")$.dirty();if(J.status==="dirty")$.dirty();if(Y.value!=="__proto__"&&(typeof J.value<"u"||W.alwaysSet))X[Y.value]=J.value}return{status:$.value,value:X}}}var x=Object.freeze({status:"aborted"}),t1=($)=>({status:"dirty",value:$}),S0=($)=>({status:"valid",value:$}),R9=($)=>$.status==="aborted",I9=($)=>$.status==="dirty",P1=($)=>$.status==="valid",q6=($)=>typeof Promise<"u"&&$ instanceof Promise;var Z;(function($){$.errToObj=(Q)=>typeof Q==="string"?{message:Q}:Q||{},$.toString=(Q)=>typeof Q==="string"?Q:Q?.message})(Z||(Z={}));class $1{constructor($,Q,X,W){this._cachedPath=[],this.parent=$,this.data=Q,this._path=X,this._key=W}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var NY=($,Q)=>{if(P1(Q))return{success:!0,data:Q.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new k0($.common.issues);return this._error=X,this._error}}}};function u($){if(!$)return{};let{errorMap:Q,invalid_type_error:X,required_error:W,description:Y}=$;if(Q&&(X||W))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(Q)return{errorMap:Q,description:Y};return{errorMap:(G,B)=>{let{message:H}=$;if(G.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??W??B.defaultError};if(G.code!=="invalid_type")return{message:B.defaultError};return{message:H??X??B.defaultError}},description:Y}}class c{get description(){return this._def.description}_getType($){return L1($.data)}_getOrReturnCtx($,Q){return Q||{common:$.parent.common,data:$.data,parsedType:L1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new w0,ctx:{common:$.parent.common,data:$.data,parsedType:L1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let Q=this._parse($);if(q6(Q))throw Error("Synchronous parse encountered promise.");return Q}_parseAsync($){let Q=this._parse($);return Promise.resolve(Q)}parse($,Q){let X=this.safeParse($,Q);if(X.success)return X.data;throw X.error}safeParse($,Q){let X={common:{issues:[],async:Q?.async??!1,contextualErrorMap:Q?.errorMap},path:Q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:L1($)},W=this._parseSync({data:$,path:X.path,parent:X});return NY(X,W)}"~validate"($){let Q={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:L1($)};if(!this["~standard"].async)try{let X=this._parseSync({data:$,path:[],parent:Q});return P1(X)?{value:X.value}:{issues:Q.common.issues}}catch(X){if(X?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;Q.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:Q}).then((X)=>P1(X)?{value:X.value}:{issues:Q.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:Q?.errorMap,async:!0},path:Q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:L1($)},W=this._parse({data:$,path:X.path,parent:X}),Y=await(q6(W)?W:Promise.resolve(W));return NY(X,Y)}refine($,Q){let X=(W)=>{if(typeof Q==="string"||typeof Q>"u")return{message:Q};else if(typeof Q==="function")return Q(W);else return Q};return this._refinement((W,Y)=>{let J=$(W),G=()=>Y.addIssue({code:M.custom,...X(W)});if(typeof Promise<"u"&&J instanceof Promise)return J.then((B)=>{if(!B)return G(),!1;else return!0});if(!J)return G(),!1;else return!0})}refinement($,Q){return this._refinement((X,W)=>{if(!$(X))return W.addIssue(typeof Q==="function"?Q(X,W):Q),!1;else return!0})}_refinement($){return new Q1({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,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:(Q)=>this["~validate"](Q)}}optional(){return m0.create(this,this._def)}nullable(){return b1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return e0.create(this)}promise(){return $6.create(this,this._def)}or($){return R6.create([this,$],this._def)}and($){return I6.create(this,$,this._def)}transform($){return new Q1({...u(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:$}})}default($){let Q=typeof $==="function"?$:()=>$;return new v6({...u(this._def),innerType:this,defaultValue:Q,typeName:E.ZodDefault})}brand(){return new Z9({typeName:E.ZodBranded,type:this,...u(this._def)})}catch($){let Q=typeof $==="function"?$:()=>$;return new k6({...u(this._def),innerType:this,catchValue:Q,typeName:E.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return w8.create(this,$)}readonly(){return _6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var HA=/^c[^\s-]{8,}$/i,zA=/^[0-9a-z]+$/,KA=/^[0-9A-HJKMNP-TV-Z]{26}$/i,AA=/^[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,LA=/^[a-z0-9_-]{21}$/i,VA=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,OA=/^[-+]?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)?)??$/,DA=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,FA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",T$,NA=/^(?:(?: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])$/,UA=/^(?:(?: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])$/,wA=/^(([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]))$/,bA=/^(([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])$/,qA=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,MA=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wY="((\\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])))",EA=new RegExp(`^${wY}$`);function bY($){let Q="[0-5]\\d";if($.precision)Q=`${Q}\\.\\d{${$.precision}}`;else if($.precision==null)Q=`${Q}(\\.\\d+)?`;let X=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${Q})${X}`}function jA($){return new RegExp(`^${bY($)}$`)}function qY($){let Q=`${wY}T${bY($)}`,X=[];if(X.push($.local?"Z?":"Z"),$.offset)X.push("([+-]\\d{2}:?\\d{2})");return Q=`${Q}(${X.join("|")})`,new RegExp(`^${Q}$`)}function SA($,Q){if((Q==="v4"||!Q)&&NA.test($))return!0;if((Q==="v6"||!Q)&&wA.test($))return!0;return!1}function PA($,Q){if(!VA.test($))return!1;try{let[X]=$.split(".");if(!X)return!1;let W=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),Y=JSON.parse(atob(W));if(typeof Y!=="object"||Y===null)return!1;if("typ"in Y&&Y?.typ!=="JWT")return!1;if(!Y.alg)return!1;if(Q&&Y.alg!==Q)return!1;return!0}catch{return!1}}function RA($,Q){if((Q==="v4"||!Q)&&UA.test($))return!0;if((Q==="v6"||!Q)&&bA.test($))return!0;return!1}class s0 extends c{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==j.string){let Y=this._getOrReturnCtx($);return P(Y,{code:M.invalid_type,expected:j.string,received:Y.parsedType}),x}let X=new w0,W=void 0;for(let Y of this._def.checks)if(Y.kind==="min"){if($.data.length<Y.value)W=this._getOrReturnCtx($,W),P(W,{code:M.too_small,minimum:Y.value,type:"string",inclusive:!0,exact:!1,message:Y.message}),X.dirty()}else if(Y.kind==="max"){if($.data.length>Y.value)W=this._getOrReturnCtx($,W),P(W,{code:M.too_big,maximum:Y.value,type:"string",inclusive:!0,exact:!1,message:Y.message}),X.dirty()}else if(Y.kind==="length"){let J=$.data.length>Y.value,G=$.data.length<Y.value;if(J||G){if(W=this._getOrReturnCtx($,W),J)P(W,{code:M.too_big,maximum:Y.value,type:"string",inclusive:!0,exact:!0,message:Y.message});else if(G)P(W,{code:M.too_small,minimum:Y.value,type:"string",inclusive:!0,exact:!0,message:Y.message});X.dirty()}}else if(Y.kind==="email"){if(!DA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"email",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="emoji"){if(!T$)T$=new RegExp(FA,"u");if(!T$.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"emoji",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="uuid"){if(!AA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"uuid",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="nanoid"){if(!LA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"nanoid",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cuid"){if(!HA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"cuid",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cuid2"){if(!zA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"cuid2",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="ulid"){if(!KA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"ulid",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="url")try{new URL($.data)}catch{W=this._getOrReturnCtx($,W),P(W,{validation:"url",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="regex"){if(Y.regex.lastIndex=0,!Y.regex.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"regex",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="trim")$.data=$.data.trim();else if(Y.kind==="includes"){if(!$.data.includes(Y.value,Y.position))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:{includes:Y.value,position:Y.position},message:Y.message}),X.dirty()}else if(Y.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(Y.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(Y.kind==="startsWith"){if(!$.data.startsWith(Y.value))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:{startsWith:Y.value},message:Y.message}),X.dirty()}else if(Y.kind==="endsWith"){if(!$.data.endsWith(Y.value))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:{endsWith:Y.value},message:Y.message}),X.dirty()}else if(Y.kind==="datetime"){if(!qY(Y).test($.data))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:"datetime",message:Y.message}),X.dirty()}else if(Y.kind==="date"){if(!EA.test($.data))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:"date",message:Y.message}),X.dirty()}else if(Y.kind==="time"){if(!jA(Y).test($.data))W=this._getOrReturnCtx($,W),P(W,{code:M.invalid_string,validation:"time",message:Y.message}),X.dirty()}else if(Y.kind==="duration"){if(!OA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"duration",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="ip"){if(!SA($.data,Y.version))W=this._getOrReturnCtx($,W),P(W,{validation:"ip",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="jwt"){if(!PA($.data,Y.alg))W=this._getOrReturnCtx($,W),P(W,{validation:"jwt",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cidr"){if(!RA($.data,Y.version))W=this._getOrReturnCtx($,W),P(W,{validation:"cidr",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="base64"){if(!qA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"base64",code:M.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="base64url"){if(!MA.test($.data))W=this._getOrReturnCtx($,W),P(W,{validation:"base64url",code:M.invalid_string,message:Y.message}),X.dirty()}else n.assertNever(Y);return{status:X.value,value:$.data}}_regex($,Q,X){return this.refinement((W)=>$.test(W),{validation:Q,code:M.invalid_string,...Z.errToObj(X)})}_addCheck($){return new s0({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...Z.errToObj($)})}url($){return this._addCheck({kind:"url",...Z.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...Z.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...Z.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...Z.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...Z.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...Z.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...Z.errToObj($)})}base64($){return this._addCheck({kind:"base64",...Z.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...Z.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...Z.errToObj($)})}ip($){return this._addCheck({kind:"ip",...Z.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...Z.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...Z.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...Z.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...Z.errToObj($)})}regex($,Q){return this._addCheck({kind:"regex",regex:$,...Z.errToObj(Q)})}includes($,Q){return this._addCheck({kind:"includes",value:$,position:Q?.position,...Z.errToObj(Q?.message)})}startsWith($,Q){return this._addCheck({kind:"startsWith",value:$,...Z.errToObj(Q)})}endsWith($,Q){return this._addCheck({kind:"endsWith",value:$,...Z.errToObj(Q)})}min($,Q){return this._addCheck({kind:"min",value:$,...Z.errToObj(Q)})}max($,Q){return this._addCheck({kind:"max",value:$,...Z.errToObj(Q)})}length($,Q){return this._addCheck({kind:"length",value:$,...Z.errToObj(Q)})}nonempty($){return this.min(1,Z.errToObj($))}trim(){return new s0({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new s0({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new s0({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let Q of this._def.checks)if(Q.kind==="min"){if($===null||Q.value>$)$=Q.value}return $}get maxLength(){let $=null;for(let Q of this._def.checks)if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return $}}s0.create=($)=>{return new s0({checks:[],typeName:E.ZodString,coerce:$?.coerce??!1,...u($)})};function IA($,Q){let X=($.toString().split(".")[1]||"").length,W=(Q.toString().split(".")[1]||"").length,Y=X>W?X:W,J=Number.parseInt($.toFixed(Y).replace(".","")),G=Number.parseInt(Q.toFixed(Y).replace(".",""));return J%G/10**Y}class I1 extends c{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==j.number){let Y=this._getOrReturnCtx($);return P(Y,{code:M.invalid_type,expected:j.number,received:Y.parsedType}),x}let X=void 0,W=new w0;for(let Y of this._def.checks)if(Y.kind==="int"){if(!n.isInteger($.data))X=this._getOrReturnCtx($,X),P(X,{code:M.invalid_type,expected:"integer",received:"float",message:Y.message}),W.dirty()}else if(Y.kind==="min"){if(Y.inclusive?$.data<Y.value:$.data<=Y.value)X=this._getOrReturnCtx($,X),P(X,{code:M.too_small,minimum:Y.value,type:"number",inclusive:Y.inclusive,exact:!1,message:Y.message}),W.dirty()}else if(Y.kind==="max"){if(Y.inclusive?$.data>Y.value:$.data>=Y.value)X=this._getOrReturnCtx($,X),P(X,{code:M.too_big,maximum:Y.value,type:"number",inclusive:Y.inclusive,exact:!1,message:Y.message}),W.dirty()}else if(Y.kind==="multipleOf"){if(IA($.data,Y.value)!==0)X=this._getOrReturnCtx($,X),P(X,{code:M.not_multiple_of,multipleOf:Y.value,message:Y.message}),W.dirty()}else if(Y.kind==="finite"){if(!Number.isFinite($.data))X=this._getOrReturnCtx($,X),P(X,{code:M.not_finite,message:Y.message}),W.dirty()}else n.assertNever(Y);return{status:W.value,value:$.data}}gte($,Q){return this.setLimit("min",$,!0,Z.toString(Q))}gt($,Q){return this.setLimit("min",$,!1,Z.toString(Q))}lte($,Q){return this.setLimit("max",$,!0,Z.toString(Q))}lt($,Q){return this.setLimit("max",$,!1,Z.toString(Q))}setLimit($,Q,X,W){return new I1({...this._def,checks:[...this._def.checks,{kind:$,value:Q,inclusive:X,message:Z.toString(W)}]})}_addCheck($){return new I1({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:Z.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Z.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Z.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Z.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Z.toString($)})}multipleOf($,Q){return this._addCheck({kind:"multipleOf",value:$,message:Z.toString(Q)})}finite($){return this._addCheck({kind:"finite",message:Z.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Z.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Z.toString($)})}get minValue(){let $=null;for(let Q of this._def.checks)if(Q.kind==="min"){if($===null||Q.value>$)$=Q.value}return $}get maxValue(){let $=null;for(let Q of this._def.checks)if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&n.isInteger($.value))}get isFinite(){let $=null,Q=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(Q===null||X.value>Q)Q=X.value}else if(X.kind==="max"){if($===null||X.value<$)$=X.value}return Number.isFinite(Q)&&Number.isFinite($)}}I1.create=($)=>{return new I1({checks:[],typeName:E.ZodNumber,coerce:$?.coerce||!1,...u($)})};class C1 extends c{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==j.bigint)return this._getInvalidInput($);let X=void 0,W=new w0;for(let Y of this._def.checks)if(Y.kind==="min"){if(Y.inclusive?$.data<Y.value:$.data<=Y.value)X=this._getOrReturnCtx($,X),P(X,{code:M.too_small,type:"bigint",minimum:Y.value,inclusive:Y.inclusive,message:Y.message}),W.dirty()}else if(Y.kind==="max"){if(Y.inclusive?$.data>Y.value:$.data>=Y.value)X=this._getOrReturnCtx($,X),P(X,{code:M.too_big,type:"bigint",maximum:Y.value,inclusive:Y.inclusive,message:Y.message}),W.dirty()}else if(Y.kind==="multipleOf"){if($.data%Y.value!==BigInt(0))X=this._getOrReturnCtx($,X),P(X,{code:M.not_multiple_of,multipleOf:Y.value,message:Y.message}),W.dirty()}else n.assertNever(Y);return{status:W.value,value:$.data}}_getInvalidInput($){let Q=this._getOrReturnCtx($);return P(Q,{code:M.invalid_type,expected:j.bigint,received:Q.parsedType}),x}gte($,Q){return this.setLimit("min",$,!0,Z.toString(Q))}gt($,Q){return this.setLimit("min",$,!1,Z.toString(Q))}lte($,Q){return this.setLimit("max",$,!0,Z.toString(Q))}lt($,Q){return this.setLimit("max",$,!1,Z.toString(Q))}setLimit($,Q,X,W){return new C1({...this._def,checks:[...this._def.checks,{kind:$,value:Q,inclusive:X,message:Z.toString(W)}]})}_addCheck($){return new C1({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Z.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Z.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Z.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Z.toString($)})}multipleOf($,Q){return this._addCheck({kind:"multipleOf",value:$,message:Z.toString(Q)})}get minValue(){let $=null;for(let Q of this._def.checks)if(Q.kind==="min"){if($===null||Q.value>$)$=Q.value}return $}get maxValue(){let $=null;for(let Q of this._def.checks)if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return $}}C1.create=($)=>{return new C1({checks:[],typeName:E.ZodBigInt,coerce:$?.coerce??!1,...u($)})};class j6 extends c{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==j.boolean){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.boolean,received:X.parsedType}),x}return S0($.data)}}j6.create=($)=>{return new j6({typeName:E.ZodBoolean,coerce:$?.coerce||!1,...u($)})};class a1 extends c{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==j.date){let Y=this._getOrReturnCtx($);return P(Y,{code:M.invalid_type,expected:j.date,received:Y.parsedType}),x}if(Number.isNaN($.data.getTime())){let Y=this._getOrReturnCtx($);return P(Y,{code:M.invalid_date}),x}let X=new w0,W=void 0;for(let Y of this._def.checks)if(Y.kind==="min"){if($.data.getTime()<Y.value)W=this._getOrReturnCtx($,W),P(W,{code:M.too_small,message:Y.message,inclusive:!0,exact:!1,minimum:Y.value,type:"date"}),X.dirty()}else if(Y.kind==="max"){if($.data.getTime()>Y.value)W=this._getOrReturnCtx($,W),P(W,{code:M.too_big,message:Y.message,inclusive:!0,exact:!1,maximum:Y.value,type:"date"}),X.dirty()}else n.assertNever(Y);return{status:X.value,value:new Date($.data.getTime())}}_addCheck($){return new a1({...this._def,checks:[...this._def.checks,$]})}min($,Q){return this._addCheck({kind:"min",value:$.getTime(),message:Z.toString(Q)})}max($,Q){return this._addCheck({kind:"max",value:$.getTime(),message:Z.toString(Q)})}get minDate(){let $=null;for(let Q of this._def.checks)if(Q.kind==="min"){if($===null||Q.value>$)$=Q.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let Q of this._def.checks)if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return $!=null?new Date($):null}}a1.create=($)=>{return new a1({checks:[],coerce:$?.coerce||!1,typeName:E.ZodDate,...u($)})};class O8 extends c{_parse($){if(this._getType($)!==j.symbol){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.symbol,received:X.parsedType}),x}return S0($.data)}}O8.create=($)=>{return new O8({typeName:E.ZodSymbol,...u($)})};class S6 extends c{_parse($){if(this._getType($)!==j.undefined){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.undefined,received:X.parsedType}),x}return S0($.data)}}S6.create=($)=>{return new S6({typeName:E.ZodUndefined,...u($)})};class P6 extends c{_parse($){if(this._getType($)!==j.null){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.null,received:X.parsedType}),x}return S0($.data)}}P6.create=($)=>{return new P6({typeName:E.ZodNull,...u($)})};class s1 extends c{constructor(){super(...arguments);this._any=!0}_parse($){return S0($.data)}}s1.create=($)=>{return new s1({typeName:E.ZodAny,...u($)})};class R1 extends c{constructor(){super(...arguments);this._unknown=!0}_parse($){return S0($.data)}}R1.create=($)=>{return new R1({typeName:E.ZodUnknown,...u($)})};class V1 extends c{_parse($){let Q=this._getOrReturnCtx($);return P(Q,{code:M.invalid_type,expected:j.never,received:Q.parsedType}),x}}V1.create=($)=>{return new V1({typeName:E.ZodNever,...u($)})};class D8 extends c{_parse($){if(this._getType($)!==j.undefined){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.void,received:X.parsedType}),x}return S0($.data)}}D8.create=($)=>{return new D8({typeName:E.ZodVoid,...u($)})};class e0 extends c{_parse($){let{ctx:Q,status:X}=this._processInputParams($),W=this._def;if(Q.parsedType!==j.array)return P(Q,{code:M.invalid_type,expected:j.array,received:Q.parsedType}),x;if(W.exactLength!==null){let J=Q.data.length>W.exactLength.value,G=Q.data.length<W.exactLength.value;if(J||G)P(Q,{code:J?M.too_big:M.too_small,minimum:G?W.exactLength.value:void 0,maximum:J?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),X.dirty()}if(W.minLength!==null){if(Q.data.length<W.minLength.value)P(Q,{code:M.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),X.dirty()}if(W.maxLength!==null){if(Q.data.length>W.maxLength.value)P(Q,{code:M.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),X.dirty()}if(Q.common.async)return Promise.all([...Q.data].map((J,G)=>{return W.type._parseAsync(new $1(Q,J,Q.path,G))})).then((J)=>{return w0.mergeArray(X,J)});let Y=[...Q.data].map((J,G)=>{return W.type._parseSync(new $1(Q,J,Q.path,G))});return w0.mergeArray(X,Y)}get element(){return this._def.type}min($,Q){return new e0({...this._def,minLength:{value:$,message:Z.toString(Q)}})}max($,Q){return new e0({...this._def,maxLength:{value:$,message:Z.toString(Q)}})}length($,Q){return new e0({...this._def,exactLength:{value:$,message:Z.toString(Q)}})}nonempty($){return this.min(1,$)}}e0.create=($,Q)=>{return new e0({type:$,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...u(Q)})};function M6($){if($ instanceof V0){let Q={};for(let X in $.shape){let W=$.shape[X];Q[X]=m0.create(M6(W))}return new V0({...$._def,shape:()=>Q})}else if($ instanceof e0)return new e0({...$._def,type:M6($.element)});else if($ instanceof m0)return m0.create(M6($.unwrap()));else if($ instanceof b1)return b1.create(M6($.unwrap()));else if($ instanceof O1)return O1.create($.items.map((Q)=>M6(Q)));else return $}class V0 extends c{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),Q=n.objectKeys($);return this._cached={shape:$,keys:Q},this._cached}_parse($){if(this._getType($)!==j.object){let H=this._getOrReturnCtx($);return P(H,{code:M.invalid_type,expected:j.object,received:H.parsedType}),x}let{status:X,ctx:W}=this._processInputParams($),{shape:Y,keys:J}=this._getCached(),G=[];if(!(this._def.catchall instanceof V1&&this._def.unknownKeys==="strip")){for(let H in W.data)if(!J.includes(H))G.push(H)}let B=[];for(let H of J){let z=Y[H],K=W.data[H];B.push({key:{status:"valid",value:H},value:z._parse(new $1(W,K,W.path,H)),alwaysSet:H in W.data})}if(this._def.catchall instanceof V1){let H=this._def.unknownKeys;if(H==="passthrough")for(let z of G)B.push({key:{status:"valid",value:z},value:{status:"valid",value:W.data[z]}});else if(H==="strict"){if(G.length>0)P(W,{code:M.unrecognized_keys,keys:G}),X.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let z of G){let K=W.data[z];B.push({key:{status:"valid",value:z},value:H._parse(new $1(W,K,W.path,z)),alwaysSet:z in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let H=[];for(let z of B){let K=await z.key,L=await z.value;H.push({key:K,value:L,alwaysSet:z.alwaysSet})}return H}).then((H)=>{return w0.mergeObjectSync(X,H)});else return w0.mergeObjectSync(X,B)}get shape(){return this._def.shape()}strict($){return Z.errToObj,new V0({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(Q,X)=>{let W=this._def.errorMap?.(Q,X).message??X.defaultError;if(Q.code==="unrecognized_keys")return{message:Z.errToObj($).message??W};return{message:W}}}:{}})}strip(){return new V0({...this._def,unknownKeys:"strip"})}passthrough(){return new V0({...this._def,unknownKeys:"passthrough"})}extend($){return new V0({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new V0({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:E.ZodObject})}setKey($,Q){return this.augment({[$]:Q})}catchall($){return new V0({...this._def,catchall:$})}pick($){let Q={};for(let X of n.objectKeys($))if($[X]&&this.shape[X])Q[X]=this.shape[X];return new V0({...this._def,shape:()=>Q})}omit($){let Q={};for(let X of n.objectKeys(this.shape))if(!$[X])Q[X]=this.shape[X];return new V0({...this._def,shape:()=>Q})}deepPartial(){return M6(this)}partial($){let Q={};for(let X of n.objectKeys(this.shape)){let W=this.shape[X];if($&&!$[X])Q[X]=W;else Q[X]=W.optional()}return new V0({...this._def,shape:()=>Q})}required($){let Q={};for(let X of n.objectKeys(this.shape))if($&&!$[X])Q[X]=this.shape[X];else{let Y=this.shape[X];while(Y instanceof m0)Y=Y._def.innerType;Q[X]=Y}return new V0({...this._def,shape:()=>Q})}keyof(){return MY(n.objectKeys(this.shape))}}V0.create=($,Q)=>{return new V0({shape:()=>$,unknownKeys:"strip",catchall:V1.create(),typeName:E.ZodObject,...u(Q)})};V0.strictCreate=($,Q)=>{return new V0({shape:()=>$,unknownKeys:"strict",catchall:V1.create(),typeName:E.ZodObject,...u(Q)})};V0.lazycreate=($,Q)=>{return new V0({shape:$,unknownKeys:"strip",catchall:V1.create(),typeName:E.ZodObject,...u(Q)})};class R6 extends c{_parse($){let{ctx:Q}=this._processInputParams($),X=this._def.options;function W(Y){for(let G of Y)if(G.result.status==="valid")return G.result;for(let G of Y)if(G.result.status==="dirty")return Q.common.issues.push(...G.ctx.common.issues),G.result;let J=Y.map((G)=>new k0(G.ctx.common.issues));return P(Q,{code:M.invalid_union,unionErrors:J}),x}if(Q.common.async)return Promise.all(X.map(async(Y)=>{let J={...Q,common:{...Q.common,issues:[]},parent:null};return{result:await Y._parseAsync({data:Q.data,path:Q.path,parent:J}),ctx:J}})).then(W);else{let Y=void 0,J=[];for(let B of X){let H={...Q,common:{...Q.common,issues:[]},parent:null},z=B._parseSync({data:Q.data,path:Q.path,parent:H});if(z.status==="valid")return z;else if(z.status==="dirty"&&!Y)Y={result:z,ctx:H};if(H.common.issues.length)J.push(H.common.issues)}if(Y)return Q.common.issues.push(...Y.ctx.common.issues),Y.result;let G=J.map((B)=>new k0(B));return P(Q,{code:M.invalid_union,unionErrors:G}),x}}get options(){return this._def.options}}R6.create=($,Q)=>{return new R6({options:$,typeName:E.ZodUnion,...u(Q)})};var w1=($)=>{if($ instanceof C6)return w1($.schema);else if($ instanceof Q1)return w1($.innerType());else if($ instanceof Z6)return[$.value];else if($ instanceof Z1)return $.options;else if($ instanceof T6)return n.objectValues($.enum);else if($ instanceof v6)return w1($._def.innerType);else if($ instanceof S6)return[void 0];else if($ instanceof P6)return[null];else if($ instanceof m0)return[void 0,...w1($.unwrap())];else if($ instanceof b1)return[null,...w1($.unwrap())];else if($ instanceof Z9)return w1($.unwrap());else if($ instanceof _6)return w1($.unwrap());else if($ instanceof k6)return w1($._def.innerType);else return[]};class C9 extends c{_parse($){let{ctx:Q}=this._processInputParams($);if(Q.parsedType!==j.object)return P(Q,{code:M.invalid_type,expected:j.object,received:Q.parsedType}),x;let X=this.discriminator,W=Q.data[X],Y=this.optionsMap.get(W);if(!Y)return P(Q,{code:M.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),x;if(Q.common.async)return Y._parseAsync({data:Q.data,path:Q.path,parent:Q});else return Y._parseSync({data:Q.data,path:Q.path,parent:Q})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,Q,X){let W=new Map;for(let Y of Q){let J=w1(Y.shape[$]);if(!J.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let G of J){if(W.has(G))throw Error(`Discriminator property ${String($)} has duplicate value ${String(G)}`);W.set(G,Y)}}return new C9({typeName:E.ZodDiscriminatedUnion,discriminator:$,options:Q,optionsMap:W,...u(X)})}}function v$($,Q){let X=L1($),W=L1(Q);if($===Q)return{valid:!0,data:$};else if(X===j.object&&W===j.object){let Y=n.objectKeys(Q),J=n.objectKeys($).filter((B)=>Y.indexOf(B)!==-1),G={...$,...Q};for(let B of J){let H=v$($[B],Q[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(X===j.array&&W===j.array){if($.length!==Q.length)return{valid:!1};let Y=[];for(let J=0;J<$.length;J++){let G=$[J],B=Q[J],H=v$(G,B);if(!H.valid)return{valid:!1};Y.push(H.data)}return{valid:!0,data:Y}}else if(X===j.date&&W===j.date&&+$===+Q)return{valid:!0,data:$};else return{valid:!1}}class I6 extends c{_parse($){let{status:Q,ctx:X}=this._processInputParams($),W=(Y,J)=>{if(R9(Y)||R9(J))return x;let G=v$(Y.value,J.value);if(!G.valid)return P(X,{code:M.invalid_intersection_types}),x;if(I9(Y)||I9(J))Q.dirty();return{status:Q.value,value:G.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(([Y,J])=>W(Y,J));else return W(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}I6.create=($,Q,X)=>{return new I6({left:$,right:Q,typeName:E.ZodIntersection,...u(X)})};class O1 extends c{_parse($){let{status:Q,ctx:X}=this._processInputParams($);if(X.parsedType!==j.array)return P(X,{code:M.invalid_type,expected:j.array,received:X.parsedType}),x;if(X.data.length<this._def.items.length)return P(X,{code:M.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),x;if(!this._def.rest&&X.data.length>this._def.items.length)P(X,{code:M.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Q.dirty();let Y=[...X.data].map((J,G)=>{let B=this._def.items[G]||this._def.rest;if(!B)return null;return B._parse(new $1(X,J,X.path,G))}).filter((J)=>!!J);if(X.common.async)return Promise.all(Y).then((J)=>{return w0.mergeArray(Q,J)});else return w0.mergeArray(Q,Y)}get items(){return this._def.items}rest($){return new O1({...this._def,rest:$})}}O1.create=($,Q)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new O1({items:$,typeName:E.ZodTuple,rest:null,...u(Q)})};class F8 extends c{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:Q,ctx:X}=this._processInputParams($);if(X.parsedType!==j.object)return P(X,{code:M.invalid_type,expected:j.object,received:X.parsedType}),x;let W=[],Y=this._def.keyType,J=this._def.valueType;for(let G in X.data)W.push({key:Y._parse(new $1(X,G,X.path,G)),value:J._parse(new $1(X,X.data[G],X.path,G)),alwaysSet:G in X.data});if(X.common.async)return w0.mergeObjectAsync(Q,W);else return w0.mergeObjectSync(Q,W)}get element(){return this._def.valueType}static create($,Q,X){if(Q instanceof c)return new F8({keyType:$,valueType:Q,typeName:E.ZodRecord,...u(X)});return new F8({keyType:s0.create(),valueType:$,typeName:E.ZodRecord,...u(Q)})}}class N8 extends c{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:Q,ctx:X}=this._processInputParams($);if(X.parsedType!==j.map)return P(X,{code:M.invalid_type,expected:j.map,received:X.parsedType}),x;let W=this._def.keyType,Y=this._def.valueType,J=[...X.data.entries()].map(([G,B],H)=>{return{key:W._parse(new $1(X,G,X.path,[H,"key"])),value:Y._parse(new $1(X,B,X.path,[H,"value"]))}});if(X.common.async){let G=new Map;return Promise.resolve().then(async()=>{for(let B of J){let H=await B.key,z=await B.value;if(H.status==="aborted"||z.status==="aborted")return x;if(H.status==="dirty"||z.status==="dirty")Q.dirty();G.set(H.value,z.value)}return{status:Q.value,value:G}})}else{let G=new Map;for(let B of J){let{key:H,value:z}=B;if(H.status==="aborted"||z.status==="aborted")return x;if(H.status==="dirty"||z.status==="dirty")Q.dirty();G.set(H.value,z.value)}return{status:Q.value,value:G}}}}N8.create=($,Q,X)=>{return new N8({valueType:Q,keyType:$,typeName:E.ZodMap,...u(X)})};class e1 extends c{_parse($){let{status:Q,ctx:X}=this._processInputParams($);if(X.parsedType!==j.set)return P(X,{code:M.invalid_type,expected:j.set,received:X.parsedType}),x;let W=this._def;if(W.minSize!==null){if(X.data.size<W.minSize.value)P(X,{code:M.too_small,minimum:W.minSize.value,type:"set",inclusive:!0,exact:!1,message:W.minSize.message}),Q.dirty()}if(W.maxSize!==null){if(X.data.size>W.maxSize.value)P(X,{code:M.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),Q.dirty()}let Y=this._def.valueType;function J(B){let H=new Set;for(let z of B){if(z.status==="aborted")return x;if(z.status==="dirty")Q.dirty();H.add(z.value)}return{status:Q.value,value:H}}let G=[...X.data.values()].map((B,H)=>Y._parse(new $1(X,B,X.path,H)));if(X.common.async)return Promise.all(G).then((B)=>J(B));else return J(G)}min($,Q){return new e1({...this._def,minSize:{value:$,message:Z.toString(Q)}})}max($,Q){return new e1({...this._def,maxSize:{value:$,message:Z.toString(Q)}})}size($,Q){return this.min($,Q).max($,Q)}nonempty($){return this.min(1,$)}}e1.create=($,Q)=>{return new e1({valueType:$,minSize:null,maxSize:null,typeName:E.ZodSet,...u(Q)})};class E6 extends c{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:Q}=this._processInputParams($);if(Q.parsedType!==j.function)return P(Q,{code:M.invalid_type,expected:j.function,received:Q.parsedType}),x;function X(G,B){return V8({data:G,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,b6(),U1].filter((H)=>!!H),issueData:{code:M.invalid_arguments,argumentsError:B}})}function W(G,B){return V8({data:G,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,b6(),U1].filter((H)=>!!H),issueData:{code:M.invalid_return_type,returnTypeError:B}})}let Y={errorMap:Q.common.contextualErrorMap},J=Q.data;if(this._def.returns instanceof $6){let G=this;return S0(async function(...B){let H=new k0([]),z=await G._def.args.parseAsync(B,Y).catch((V)=>{throw H.addIssue(X(B,V)),H}),K=await Reflect.apply(J,this,z);return await G._def.returns._def.type.parseAsync(K,Y).catch((V)=>{throw H.addIssue(W(K,V)),H})})}else{let G=this;return S0(function(...B){let H=G._def.args.safeParse(B,Y);if(!H.success)throw new k0([X(B,H.error)]);let z=Reflect.apply(J,this,H.data),K=G._def.returns.safeParse(z,Y);if(!K.success)throw new k0([W(z,K.error)]);return K.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new E6({...this._def,args:O1.create($).rest(R1.create())})}returns($){return new E6({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,Q,X){return new E6({args:$?$:O1.create([]).rest(R1.create()),returns:Q||R1.create(),typeName:E.ZodFunction,...u(X)})}}class C6 extends c{get schema(){return this._def.getter()}_parse($){let{ctx:Q}=this._processInputParams($);return this._def.getter()._parse({data:Q.data,path:Q.path,parent:Q})}}C6.create=($,Q)=>{return new C6({getter:$,typeName:E.ZodLazy,...u(Q)})};class Z6 extends c{_parse($){if($.data!==this._def.value){let Q=this._getOrReturnCtx($);return P(Q,{received:Q.data,code:M.invalid_literal,expected:this._def.value}),x}return{status:"valid",value:$.data}}get value(){return this._def.value}}Z6.create=($,Q)=>{return new Z6({value:$,typeName:E.ZodLiteral,...u(Q)})};function MY($,Q){return new Z1({values:$,typeName:E.ZodEnum,...u(Q)})}class Z1 extends c{_parse($){if(typeof $.data!=="string"){let Q=this._getOrReturnCtx($),X=this._def.values;return P(Q,{expected:n.joinValues(X),received:Q.parsedType,code:M.invalid_type}),x}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let Q=this._getOrReturnCtx($),X=this._def.values;return P(Q,{received:Q.data,code:M.invalid_enum_value,options:X}),x}return S0($.data)}get options(){return this._def.values}get enum(){let $={};for(let Q of this._def.values)$[Q]=Q;return $}get Values(){let $={};for(let Q of this._def.values)$[Q]=Q;return $}get Enum(){let $={};for(let Q of this._def.values)$[Q]=Q;return $}extract($,Q=this._def){return Z1.create($,{...this._def,...Q})}exclude($,Q=this._def){return Z1.create(this.options.filter((X)=>!$.includes(X)),{...this._def,...Q})}}Z1.create=MY;class T6 extends c{_parse($){let Q=n.getValidEnumValues(this._def.values),X=this._getOrReturnCtx($);if(X.parsedType!==j.string&&X.parsedType!==j.number){let W=n.objectValues(Q);return P(X,{expected:n.joinValues(W),received:X.parsedType,code:M.invalid_type}),x}if(!this._cache)this._cache=new Set(n.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let W=n.objectValues(Q);return P(X,{received:X.data,code:M.invalid_enum_value,options:W}),x}return S0($.data)}get enum(){return this._def.values}}T6.create=($,Q)=>{return new T6({values:$,typeName:E.ZodNativeEnum,...u(Q)})};class $6 extends c{unwrap(){return this._def.type}_parse($){let{ctx:Q}=this._processInputParams($);if(Q.parsedType!==j.promise&&Q.common.async===!1)return P(Q,{code:M.invalid_type,expected:j.promise,received:Q.parsedType}),x;let X=Q.parsedType===j.promise?Q.data:Promise.resolve(Q.data);return S0(X.then((W)=>{return this._def.type.parseAsync(W,{path:Q.path,errorMap:Q.common.contextualErrorMap})}))}}$6.create=($,Q)=>{return new $6({type:$,typeName:E.ZodPromise,...u(Q)})};class Q1 extends c{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:Q,ctx:X}=this._processInputParams($),W=this._def.effect||null,Y={addIssue:(J)=>{if(P(X,J),J.fatal)Q.abort();else Q.dirty()},get path(){return X.path}};if(Y.addIssue=Y.addIssue.bind(Y),W.type==="preprocess"){let J=W.transform(X.data,Y);if(X.common.async)return Promise.resolve(J).then(async(G)=>{if(Q.value==="aborted")return x;let B=await this._def.schema._parseAsync({data:G,path:X.path,parent:X});if(B.status==="aborted")return x;if(B.status==="dirty")return t1(B.value);if(Q.value==="dirty")return t1(B.value);return B});else{if(Q.value==="aborted")return x;let G=this._def.schema._parseSync({data:J,path:X.path,parent:X});if(G.status==="aborted")return x;if(G.status==="dirty")return t1(G.value);if(Q.value==="dirty")return t1(G.value);return G}}if(W.type==="refinement"){let J=(G)=>{let B=W.refinement(G,Y);if(X.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return G};if(X.common.async===!1){let G=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(G.status==="aborted")return x;if(G.status==="dirty")Q.dirty();return J(G.value),{status:Q.value,value:G.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((G)=>{if(G.status==="aborted")return x;if(G.status==="dirty")Q.dirty();return J(G.value).then(()=>{return{status:Q.value,value:G.value}})})}if(W.type==="transform")if(X.common.async===!1){let J=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!P1(J))return x;let G=W.transform(J.value,Y);if(G instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:Q.value,value:G}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((J)=>{if(!P1(J))return x;return Promise.resolve(W.transform(J.value,Y)).then((G)=>({status:Q.value,value:G}))});n.assertNever(W)}}Q1.create=($,Q,X)=>{return new Q1({schema:$,typeName:E.ZodEffects,effect:Q,...u(X)})};Q1.createWithPreprocess=($,Q,X)=>{return new Q1({schema:Q,effect:{type:"preprocess",transform:$},typeName:E.ZodEffects,...u(X)})};class m0 extends c{_parse($){if(this._getType($)===j.undefined)return S0(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}m0.create=($,Q)=>{return new m0({innerType:$,typeName:E.ZodOptional,...u(Q)})};class b1 extends c{_parse($){if(this._getType($)===j.null)return S0(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}b1.create=($,Q)=>{return new b1({innerType:$,typeName:E.ZodNullable,...u(Q)})};class v6 extends c{_parse($){let{ctx:Q}=this._processInputParams($),X=Q.data;if(Q.parsedType===j.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:Q.path,parent:Q})}removeDefault(){return this._def.innerType}}v6.create=($,Q)=>{return new v6({innerType:$,typeName:E.ZodDefault,defaultValue:typeof Q.default==="function"?Q.default:()=>Q.default,...u(Q)})};class k6 extends c{_parse($){let{ctx:Q}=this._processInputParams($),X={...Q,common:{...Q.common,issues:[]}},W=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(q6(W))return W.then((Y)=>{return{status:"valid",value:Y.status==="valid"?Y.value:this._def.catchValue({get error(){return new k0(X.common.issues)},input:X.data})}});else return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new k0(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}k6.create=($,Q)=>{return new k6({innerType:$,typeName:E.ZodCatch,catchValue:typeof Q.catch==="function"?Q.catch:()=>Q.catch,...u(Q)})};class U8 extends c{_parse($){if(this._getType($)!==j.nan){let X=this._getOrReturnCtx($);return P(X,{code:M.invalid_type,expected:j.nan,received:X.parsedType}),x}return{status:"valid",value:$.data}}}U8.create=($)=>{return new U8({typeName:E.ZodNaN,...u($)})};var CA=Symbol("zod_brand");class Z9 extends c{_parse($){let{ctx:Q}=this._processInputParams($),X=Q.data;return this._def.type._parse({data:X,path:Q.path,parent:Q})}unwrap(){return this._def.type}}class w8 extends c{_parse($){let{status:Q,ctx:X}=this._processInputParams($);if(X.common.async)return(async()=>{let Y=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(Y.status==="aborted")return x;if(Y.status==="dirty")return Q.dirty(),t1(Y.value);else return this._def.out._parseAsync({data:Y.value,path:X.path,parent:X})})();else{let W=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(W.status==="aborted")return x;if(W.status==="dirty")return Q.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:X.path,parent:X})}}static create($,Q){return new w8({in:$,out:Q,typeName:E.ZodPipeline})}}class _6 extends c{_parse($){let Q=this._def.innerType._parse($),X=(W)=>{if(P1(W))W.value=Object.freeze(W.value);return W};return q6(Q)?Q.then((W)=>X(W)):X(Q)}unwrap(){return this._def.innerType}}_6.create=($,Q)=>{return new _6({innerType:$,typeName:E.ZodReadonly,...u(Q)})};function UY($,Q){let X=typeof $==="function"?$(Q):typeof $==="string"?{message:$}:$;return typeof X==="string"?{message:X}:X}function EY($,Q={},X){if($)return s1.create().superRefine((W,Y)=>{let J=$(W);if(J instanceof Promise)return J.then((G)=>{if(!G){let B=UY(Q,W),H=B.fatal??X??!0;Y.addIssue({code:"custom",...B,fatal:H})}});if(!J){let G=UY(Q,W),B=G.fatal??X??!0;Y.addIssue({code:"custom",...G,fatal:B})}return});return s1.create()}var ZA={object:V0.lazycreate},E;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(E||(E={}));var TA=($,Q={message:`Input not instance of ${$.name}`})=>EY((X)=>X instanceof $,Q),jY=s0.create,SY=I1.create,vA=U8.create,kA=C1.create,PY=j6.create,_A=a1.create,xA=O8.create,gA=S6.create,yA=P6.create,hA=s1.create,fA=R1.create,uA=V1.create,lA=D8.create,mA=e0.create,k$=V0.create,cA=V0.strictCreate,pA=R6.create,nA=C9.create,iA=I6.create,dA=O1.create,oA=F8.create,rA=N8.create,tA=e1.create,aA=E6.create,sA=C6.create,eA=Z6.create,$L=Z1.create,QL=T6.create,XL=$6.create,WL=Q1.create,YL=m0.create,JL=b1.create,GL=Q1.createWithPreprocess,BL=w8.create,HL=()=>jY().optional(),zL=()=>SY().optional(),KL=()=>PY().optional(),AL={string:($)=>s0.create({...$,coerce:!0}),number:($)=>I1.create({...$,coerce:!0}),boolean:($)=>j6.create({...$,coerce:!0}),bigint:($)=>C1.create({...$,coerce:!0}),date:($)=>a1.create({...$,coerce:!0})};var LL=x;var VL=Object.freeze({status:"aborted"});function w($,Q,X){function W(B,H){var z;Object.defineProperty(B,"_zod",{value:B._zod??{},enumerable:!1}),(z=B._zod).traits??(z.traits=new Set),B._zod.traits.add($),Q(B,H);for(let K in G.prototype)if(!(K in B))Object.defineProperty(B,K,{value:G.prototype[K].bind(B)});B._zod.constr=G,B._zod.def=H}let Y=X?.Parent??Object;class J extends Y{}Object.defineProperty(J,"name",{value:$});function G(B){var H;let z=X?.Parent?new J:this;W(z,B),(H=z._zod).deferred??(H.deferred=[]);for(let K of z._zod.deferred)K();return z}return Object.defineProperty(G,"init",{value:W}),Object.defineProperty(G,Symbol.hasInstance,{value:(B)=>{if(X?.Parent&&B instanceof X.Parent)return!0;return B?._zod?.traits?.has($)}}),Object.defineProperty(G,"name",{value:$}),G}var OL=Symbol("zod_brand");class T1 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}var T9={};function c0($){if($)Object.assign(T9,$);return T9}var i={};B$(i,{unwrapMessage:()=>b8,stringifyPrimitive:()=>_9,required:()=>TL,randomString:()=>ML,propertyKeyTypes:()=>f$,promiseAllObject:()=>qL,primitiveTypes:()=>RY,prefixIssues:()=>D1,pick:()=>PL,partial:()=>ZL,optionalKeys:()=>u$,omit:()=>RL,numKeys:()=>EL,nullish:()=>E8,normalizeParams:()=>g,merge:()=>CL,jsonStringifyReplacer:()=>x$,joinValues:()=>v9,issue:()=>m$,isPlainObject:()=>g6,isObject:()=>x6,getSizableOrigin:()=>CY,getParsedType:()=>jL,getLengthableOrigin:()=>S8,getEnumValues:()=>q8,getElementAtPath:()=>bL,floatSafeRemainder:()=>g$,finalizeIssue:()=>X1,extend:()=>IL,escapeRegex:()=>v1,esc:()=>Q6,defineLazy:()=>Y0,createTransparentProxy:()=>SL,clone:()=>p0,cleanRegex:()=>j8,cleanEnum:()=>vL,captureStackTrace:()=>k9,cached:()=>M8,assignProp:()=>y$,assertNotEqual:()=>FL,assertNever:()=>UL,assertIs:()=>NL,assertEqual:()=>DL,assert:()=>wL,allowsEval:()=>h$,aborted:()=>X6,NUMBER_FORMAT_RANGES:()=>l$,Class:()=>ZY,BIGINT_FORMAT_RANGES:()=>IY});function DL($){return $}function FL($){return $}function NL($){}function UL($){throw Error()}function wL($){}function q8($){let Q=Object.values($).filter((W)=>typeof W==="number");return Object.entries($).filter(([W,Y])=>Q.indexOf(+W)===-1).map(([W,Y])=>Y)}function v9($,Q="|"){return $.map((X)=>_9(X)).join(Q)}function x$($,Q){if(typeof Q==="bigint")return Q.toString();return Q}function M8($){return{get value(){{let X=$();return Object.defineProperty(this,"value",{value:X}),X}throw Error("cached value already set")}}}function E8($){return $===null||$===void 0}function j8($){let Q=$.startsWith("^")?1:0,X=$.endsWith("$")?$.length-1:$.length;return $.slice(Q,X)}function g$($,Q){let X=($.toString().split(".")[1]||"").length,W=(Q.toString().split(".")[1]||"").length,Y=X>W?X:W,J=Number.parseInt($.toFixed(Y).replace(".","")),G=Number.parseInt(Q.toFixed(Y).replace(".",""));return J%G/10**Y}function Y0($,Q,X){Object.defineProperty($,Q,{get(){{let Y=X();return $[Q]=Y,Y}throw Error("cached value already set")},set(Y){Object.defineProperty($,Q,{value:Y})},configurable:!0})}function y$($,Q,X){Object.defineProperty($,Q,{value:X,writable:!0,enumerable:!0,configurable:!0})}function bL($,Q){if(!Q)return $;return Q.reduce((X,W)=>X?.[W],$)}function qL($){let Q=Object.keys($),X=Q.map((W)=>$[W]);return Promise.all(X).then((W)=>{let Y={};for(let J=0;J<Q.length;J++)Y[Q[J]]=W[J];return Y})}function ML($=10){let X="";for(let W=0;W<$;W++)X+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return X}function Q6($){return JSON.stringify($)}var k9=Error.captureStackTrace?Error.captureStackTrace:(...$)=>{};function x6($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var h$=M8(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function g6($){if(x6($)===!1)return!1;let Q=$.constructor;if(Q===void 0)return!0;let X=Q.prototype;if(x6(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}function EL($){let Q=0;for(let X in $)if(Object.prototype.hasOwnProperty.call($,X))Q++;return Q}var jL=($)=>{let Q=typeof $;switch(Q){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${Q}`)}},f$=new Set(["string","number","symbol"]),RY=new Set(["string","number","bigint","boolean","symbol","undefined"]);function v1($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function p0($,Q,X){let W=new $._zod.constr(Q??$._zod.def);if(!Q||X?.parent)W._zod.parent=$;return W}function g($){let Q=$;if(!Q)return{};if(typeof Q==="string")return{error:()=>Q};if(Q?.message!==void 0){if(Q?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");Q.error=Q.message}if(delete Q.message,typeof Q.error==="string")return{...Q,error:()=>Q.error};return Q}function SL($){let Q;return new Proxy({},{get(X,W,Y){return Q??(Q=$()),Reflect.get(Q,W,Y)},set(X,W,Y,J){return Q??(Q=$()),Reflect.set(Q,W,Y,J)},has(X,W){return Q??(Q=$()),Reflect.has(Q,W)},deleteProperty(X,W){return Q??(Q=$()),Reflect.deleteProperty(Q,W)},ownKeys(X){return Q??(Q=$()),Reflect.ownKeys(Q)},getOwnPropertyDescriptor(X,W){return Q??(Q=$()),Reflect.getOwnPropertyDescriptor(Q,W)},defineProperty(X,W,Y){return Q??(Q=$()),Reflect.defineProperty(Q,W,Y)}})}function _9($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function u$($){return Object.keys($).filter((Q)=>{return $[Q]._zod.optin==="optional"&&$[Q]._zod.optout==="optional"})}var l$={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},IY={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function PL($,Q){let X={},W=$._zod.def;for(let Y in Q){if(!(Y in W.shape))throw Error(`Unrecognized key: "${Y}"`);if(!Q[Y])continue;X[Y]=W.shape[Y]}return p0($,{...$._zod.def,shape:X,checks:[]})}function RL($,Q){let X={...$._zod.def.shape},W=$._zod.def;for(let Y in Q){if(!(Y in W.shape))throw Error(`Unrecognized key: "${Y}"`);if(!Q[Y])continue;delete X[Y]}return p0($,{...$._zod.def,shape:X,checks:[]})}function IL($,Q){if(!g6(Q))throw Error("Invalid input to extend: expected a plain object");let X={...$._zod.def,get shape(){let W={...$._zod.def.shape,...Q};return y$(this,"shape",W),W},checks:[]};return p0($,X)}function CL($,Q){return p0($,{...$._zod.def,get shape(){let X={...$._zod.def.shape,...Q._zod.def.shape};return y$(this,"shape",X),X},catchall:Q._zod.def.catchall,checks:[]})}function ZL($,Q,X){let W=Q._zod.def.shape,Y={...W};if(X)for(let J in X){if(!(J in W))throw Error(`Unrecognized key: "${J}"`);if(!X[J])continue;Y[J]=$?new $({type:"optional",innerType:W[J]}):W[J]}else for(let J in W)Y[J]=$?new $({type:"optional",innerType:W[J]}):W[J];return p0(Q,{...Q._zod.def,shape:Y,checks:[]})}function TL($,Q,X){let W=Q._zod.def.shape,Y={...W};if(X)for(let J in X){if(!(J in Y))throw Error(`Unrecognized key: "${J}"`);if(!X[J])continue;Y[J]=new $({type:"nonoptional",innerType:W[J]})}else for(let J in W)Y[J]=new $({type:"nonoptional",innerType:W[J]});return p0(Q,{...Q._zod.def,shape:Y,checks:[]})}function X6($,Q=0){for(let X=Q;X<$.issues.length;X++)if($.issues[X]?.continue!==!0)return!0;return!1}function D1($,Q){return Q.map((X)=>{var W;return(W=X).path??(W.path=[]),X.path.unshift($),X})}function b8($){return typeof $==="string"?$:$?.message}function X1($,Q,X){let W={...$,path:$.path??[]};if(!$.message){let Y=b8($.inst?._zod.def?.error?.($))??b8(Q?.error?.($))??b8(X.customError?.($))??b8(X.localeError?.($))??"Invalid input";W.message=Y}if(delete W.inst,delete W.continue,!Q?.reportInput)delete W.input;return W}function CY($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function S8($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function m$(...$){let[Q,X,W]=$;if(typeof Q==="string")return{message:Q,code:"custom",input:X,inst:W};return{...Q}}function vL($){return Object.entries($).filter(([Q,X])=>{return Number.isNaN(Number.parseInt(Q,10))}).map((Q)=>Q[1])}class ZY{constructor(...$){}}var TY=($,Q)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:Q,enumerable:!1}),Object.defineProperty($,"message",{get(){return JSON.stringify(Q,x$,2)},enumerable:!0}),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},x9=w("$ZodError",TY),P8=w("$ZodError",TY,{Parent:Error});function c$($,Q=(X)=>X.message){let X={},W=[];for(let Y of $.issues)if(Y.path.length>0)X[Y.path[0]]=X[Y.path[0]]||[],X[Y.path[0]].push(Q(Y));else W.push(Q(Y));return{formErrors:W,fieldErrors:X}}function p$($,Q){let X=Q||function(J){return J.message},W={_errors:[]},Y=(J)=>{for(let G of J.issues)if(G.code==="invalid_union"&&G.errors.length)G.errors.map((B)=>Y({issues:B}));else if(G.code==="invalid_key")Y({issues:G.issues});else if(G.code==="invalid_element")Y({issues:G.issues});else if(G.path.length===0)W._errors.push(X(G));else{let B=W,H=0;while(H<G.path.length){let z=G.path[H];if(H!==G.path.length-1)B[z]=B[z]||{_errors:[]};else B[z]=B[z]||{_errors:[]},B[z]._errors.push(X(G));B=B[z],H++}}};return Y($),W}var n$=($)=>(Q,X,W,Y)=>{let J=W?Object.assign(W,{async:!1}):{async:!1},G=Q._zod.run({value:X,issues:[]},J);if(G instanceof Promise)throw new T1;if(G.issues.length){let B=new(Y?.Err??$)(G.issues.map((H)=>X1(H,J,c0())));throw k9(B,Y?.callee),B}return G.value},i$=n$(P8),d$=($)=>async(Q,X,W,Y)=>{let J=W?Object.assign(W,{async:!0}):{async:!0},G=Q._zod.run({value:X,issues:[]},J);if(G instanceof Promise)G=await G;if(G.issues.length){let B=new(Y?.Err??$)(G.issues.map((H)=>X1(H,J,c0())));throw k9(B,Y?.callee),B}return G.value},o$=d$(P8),r$=($)=>(Q,X,W)=>{let Y=W?{...W,async:!1}:{async:!1},J=Q._zod.run({value:X,issues:[]},Y);if(J instanceof Promise)throw new T1;return J.issues.length?{success:!1,error:new($??x9)(J.issues.map((G)=>X1(G,Y,c0())))}:{success:!0,data:J.value}},W6=r$(P8),t$=($)=>async(Q,X,W)=>{let Y=W?Object.assign(W,{async:!0}):{async:!0},J=Q._zod.run({value:X,issues:[]},Y);if(J instanceof Promise)J=await J;return J.issues.length?{success:!1,error:new $(J.issues.map((G)=>X1(G,Y,c0())))}:{success:!0,data:J.value}},Y6=t$(P8);var vY=/^[cC][^\s-]{8,}$/,kY=/^[0-9a-z]+$/,_Y=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,xY=/^[0-9a-vA-V]{20}$/,gY=/^[A-Za-z0-9]{27}$/,yY=/^[a-zA-Z0-9_-]{21}$/,hY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var fY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,a$=($)=>{if(!$)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${$}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var uY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function lY(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var mY=/^(?:(?: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])$/,cY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,pY=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,nY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,iY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,s$=/^[A-Za-z0-9_-]*$/,dY=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var oY=/^\+(?:[0-9]){6,14}[0-9]$/,rY="(?:(?:\\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])))",tY=new RegExp(`^${rY}$`);function aY($){return typeof $.precision==="number"?$.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":$.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${$.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function sY($){return new RegExp(`^${aY($)}$`)}function eY($){let Q=aY({precision:$.precision}),X=["Z"];if($.local)X.push("");if($.offset)X.push("([+-]\\d{2}:\\d{2})");let W=`${Q}(?:${X.join("|")})`;return new RegExp(`^${rY}T(?:${W})$`)}var $J=($)=>{let Q=$?`[\\s\\S]{${$?.minimum??0},${$?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${Q}$`)};var QJ=/^\d+$/,XJ=/^-?\d+(?:\.\d+)?/i,WJ=/true|false/i,YJ=/null/i;var JJ=/^[^A-Z]*$/,GJ=/^[^a-z]*$/;var b0=w("$ZodCheck",($,Q)=>{var X;$._zod??($._zod={}),$._zod.def=Q,(X=$._zod).onattach??(X.onattach=[])}),BJ={number:"number",bigint:"bigint",object:"date"},e$=w("$ZodCheckLessThan",($,Q)=>{b0.init($,Q);let X=BJ[typeof Q.value];$._zod.onattach.push((W)=>{let Y=W._zod.bag,J=(Q.inclusive?Y.maximum:Y.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(Q.value<J)if(Q.inclusive)Y.maximum=Q.value;else Y.exclusiveMaximum=Q.value}),$._zod.check=(W)=>{if(Q.inclusive?W.value<=Q.value:W.value<Q.value)return;W.issues.push({origin:X,code:"too_big",maximum:Q.value,input:W.value,inclusive:Q.inclusive,inst:$,continue:!Q.abort})}}),$Q=w("$ZodCheckGreaterThan",($,Q)=>{b0.init($,Q);let X=BJ[typeof Q.value];$._zod.onattach.push((W)=>{let Y=W._zod.bag,J=(Q.inclusive?Y.minimum:Y.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(Q.value>J)if(Q.inclusive)Y.minimum=Q.value;else Y.exclusiveMinimum=Q.value}),$._zod.check=(W)=>{if(Q.inclusive?W.value>=Q.value:W.value>Q.value)return;W.issues.push({origin:X,code:"too_small",minimum:Q.value,input:W.value,inclusive:Q.inclusive,inst:$,continue:!Q.abort})}}),HJ=w("$ZodCheckMultipleOf",($,Q)=>{b0.init($,Q),$._zod.onattach.push((X)=>{var W;(W=X._zod.bag).multipleOf??(W.multipleOf=Q.value)}),$._zod.check=(X)=>{if(typeof X.value!==typeof Q.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof X.value==="bigint"?X.value%Q.value===BigInt(0):g$(X.value,Q.value)===0)return;X.issues.push({origin:typeof X.value,code:"not_multiple_of",divisor:Q.value,input:X.value,inst:$,continue:!Q.abort})}}),zJ=w("$ZodCheckNumberFormat",($,Q)=>{b0.init($,Q),Q.format=Q.format||"float64";let X=Q.format?.includes("int"),W=X?"int":"number",[Y,J]=l$[Q.format];$._zod.onattach.push((G)=>{let B=G._zod.bag;if(B.format=Q.format,B.minimum=Y,B.maximum=J,X)B.pattern=QJ}),$._zod.check=(G)=>{let B=G.value;if(X){if(!Number.isInteger(B)){G.issues.push({expected:W,format:Q.format,code:"invalid_type",input:B,inst:$});return}if(!Number.isSafeInteger(B)){if(B>0)G.issues.push({input:B,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:W,continue:!Q.abort});else G.issues.push({input:B,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:W,continue:!Q.abort});return}}if(B<Y)G.issues.push({origin:"number",input:B,code:"too_small",minimum:Y,inclusive:!0,inst:$,continue:!Q.abort});if(B>J)G.issues.push({origin:"number",input:B,code:"too_big",maximum:J,inst:$})}});var KJ=w("$ZodCheckMaxLength",($,Q)=>{var X;b0.init($,Q),(X=$._zod.def).when??(X.when=(W)=>{let Y=W.value;return!E8(Y)&&Y.length!==void 0}),$._zod.onattach.push((W)=>{let Y=W._zod.bag.maximum??Number.POSITIVE_INFINITY;if(Q.maximum<Y)W._zod.bag.maximum=Q.maximum}),$._zod.check=(W)=>{let Y=W.value;if(Y.length<=Q.maximum)return;let G=S8(Y);W.issues.push({origin:G,code:"too_big",maximum:Q.maximum,inclusive:!0,input:Y,inst:$,continue:!Q.abort})}}),AJ=w("$ZodCheckMinLength",($,Q)=>{var X;b0.init($,Q),(X=$._zod.def).when??(X.when=(W)=>{let Y=W.value;return!E8(Y)&&Y.length!==void 0}),$._zod.onattach.push((W)=>{let Y=W._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(Q.minimum>Y)W._zod.bag.minimum=Q.minimum}),$._zod.check=(W)=>{let Y=W.value;if(Y.length>=Q.minimum)return;let G=S8(Y);W.issues.push({origin:G,code:"too_small",minimum:Q.minimum,inclusive:!0,input:Y,inst:$,continue:!Q.abort})}}),LJ=w("$ZodCheckLengthEquals",($,Q)=>{var X;b0.init($,Q),(X=$._zod.def).when??(X.when=(W)=>{let Y=W.value;return!E8(Y)&&Y.length!==void 0}),$._zod.onattach.push((W)=>{let Y=W._zod.bag;Y.minimum=Q.length,Y.maximum=Q.length,Y.length=Q.length}),$._zod.check=(W)=>{let Y=W.value,J=Y.length;if(J===Q.length)return;let G=S8(Y),B=J>Q.length;W.issues.push({origin:G,...B?{code:"too_big",maximum:Q.length}:{code:"too_small",minimum:Q.length},inclusive:!0,exact:!0,input:W.value,inst:$,continue:!Q.abort})}}),R8=w("$ZodCheckStringFormat",($,Q)=>{var X,W;if(b0.init($,Q),$._zod.onattach.push((Y)=>{let J=Y._zod.bag;if(J.format=Q.format,Q.pattern)J.patterns??(J.patterns=new Set),J.patterns.add(Q.pattern)}),Q.pattern)(X=$._zod).check??(X.check=(Y)=>{if(Q.pattern.lastIndex=0,Q.pattern.test(Y.value))return;Y.issues.push({origin:"string",code:"invalid_format",format:Q.format,input:Y.value,...Q.pattern?{pattern:Q.pattern.toString()}:{},inst:$,continue:!Q.abort})});else(W=$._zod).check??(W.check=()=>{})}),VJ=w("$ZodCheckRegex",($,Q)=>{R8.init($,Q),$._zod.check=(X)=>{if(Q.pattern.lastIndex=0,Q.pattern.test(X.value))return;X.issues.push({origin:"string",code:"invalid_format",format:"regex",input:X.value,pattern:Q.pattern.toString(),inst:$,continue:!Q.abort})}}),OJ=w("$ZodCheckLowerCase",($,Q)=>{Q.pattern??(Q.pattern=JJ),R8.init($,Q)}),DJ=w("$ZodCheckUpperCase",($,Q)=>{Q.pattern??(Q.pattern=GJ),R8.init($,Q)}),FJ=w("$ZodCheckIncludes",($,Q)=>{b0.init($,Q);let X=v1(Q.includes),W=new RegExp(typeof Q.position==="number"?`^.{${Q.position}}${X}`:X);Q.pattern=W,$._zod.onattach.push((Y)=>{let J=Y._zod.bag;J.patterns??(J.patterns=new Set),J.patterns.add(W)}),$._zod.check=(Y)=>{if(Y.value.includes(Q.includes,Q.position))return;Y.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:Q.includes,input:Y.value,inst:$,continue:!Q.abort})}}),NJ=w("$ZodCheckStartsWith",($,Q)=>{b0.init($,Q);let X=new RegExp(`^${v1(Q.prefix)}.*`);Q.pattern??(Q.pattern=X),$._zod.onattach.push((W)=>{let Y=W._zod.bag;Y.patterns??(Y.patterns=new Set),Y.patterns.add(X)}),$._zod.check=(W)=>{if(W.value.startsWith(Q.prefix))return;W.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:Q.prefix,input:W.value,inst:$,continue:!Q.abort})}}),UJ=w("$ZodCheckEndsWith",($,Q)=>{b0.init($,Q);let X=new RegExp(`.*${v1(Q.suffix)}$`);Q.pattern??(Q.pattern=X),$._zod.onattach.push((W)=>{let Y=W._zod.bag;Y.patterns??(Y.patterns=new Set),Y.patterns.add(X)}),$._zod.check=(W)=>{if(W.value.endsWith(Q.suffix))return;W.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:Q.suffix,input:W.value,inst:$,continue:!Q.abort})}});var wJ=w("$ZodCheckOverwrite",($,Q)=>{b0.init($,Q),$._zod.check=(X)=>{X.value=Q.tx(X.value)}});class QQ{constructor($=[]){if(this.content=[],this.indent=0,this)this.args=$}indented($){this.indent+=1,$(this),this.indent-=1}write($){if(typeof $==="function"){$(this,{execution:"sync"}),$(this,{execution:"async"});return}let X=$.split(`
|
|
195
|
+
`).filter((J)=>J),W=Math.min(...X.map((J)=>J.length-J.trimStart().length)),Y=X.map((J)=>J.slice(W)).map((J)=>" ".repeat(this.indent*2)+J);for(let J of Y)this.content.push(J)}compile(){let $=Function,Q=this?.args,W=[...(this?.content??[""]).map((Y)=>` ${Y}`)];return new $(...Q,W.join(`
|
|
196
|
+
`))}}var qJ={major:4,minor:0,patch:0};var $0=w("$ZodType",($,Q)=>{var X;$??($={}),$._zod.def=Q,$._zod.bag=$._zod.bag||{},$._zod.version=qJ;let W=[...$._zod.def.checks??[]];if($._zod.traits.has("$ZodCheck"))W.unshift($);for(let Y of W)for(let J of Y._zod.onattach)J($);if(W.length===0)(X=$._zod).deferred??(X.deferred=[]),$._zod.deferred?.push(()=>{$._zod.run=$._zod.parse});else{let Y=(J,G,B)=>{let H=X6(J),z;for(let K of G){if(K._zod.def.when){if(!K._zod.def.when(J))continue}else if(H)continue;let L=J.issues.length,V=K._zod.check(J);if(V instanceof Promise&&B?.async===!1)throw new T1;if(z||V instanceof Promise)z=(z??Promise.resolve()).then(async()=>{if(await V,J.issues.length===L)return;if(!H)H=X6(J,L)});else{if(J.issues.length===L)continue;if(!H)H=X6(J,L)}}if(z)return z.then(()=>{return J});return J};$._zod.run=(J,G)=>{let B=$._zod.parse(J,G);if(B instanceof Promise){if(G.async===!1)throw new T1;return B.then((H)=>Y(H,W,G))}return Y(B,W,G)}}$["~standard"]={validate:(Y)=>{try{let J=W6($,Y);return J.success?{value:J.data}:{issues:J.error?.issues}}catch(J){return Y6($,Y).then((G)=>G.success?{value:G.data}:{issues:G.error?.issues})}},vendor:"zod",version:1}}),I8=w("$ZodString",($,Q)=>{$0.init($,Q),$._zod.pattern=[...$?._zod.bag?.patterns??[]].pop()??$J($._zod.bag),$._zod.parse=(X,W)=>{if(Q.coerce)try{X.value=String(X.value)}catch(Y){}if(typeof X.value==="string")return X;return X.issues.push({expected:"string",code:"invalid_type",input:X.value,inst:$}),X}}),J0=w("$ZodStringFormat",($,Q)=>{R8.init($,Q),I8.init($,Q)}),WQ=w("$ZodGUID",($,Q)=>{Q.pattern??(Q.pattern=fY),J0.init($,Q)}),YQ=w("$ZodUUID",($,Q)=>{if(Q.version){let W={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[Q.version];if(W===void 0)throw Error(`Invalid UUID version: "${Q.version}"`);Q.pattern??(Q.pattern=a$(W))}else Q.pattern??(Q.pattern=a$());J0.init($,Q)}),JQ=w("$ZodEmail",($,Q)=>{Q.pattern??(Q.pattern=uY),J0.init($,Q)}),GQ=w("$ZodURL",($,Q)=>{J0.init($,Q),$._zod.check=(X)=>{try{let W=X.value,Y=new URL(W),J=Y.href;if(Q.hostname){if(Q.hostname.lastIndex=0,!Q.hostname.test(Y.hostname))X.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:dY.source,input:X.value,inst:$,continue:!Q.abort})}if(Q.protocol){if(Q.protocol.lastIndex=0,!Q.protocol.test(Y.protocol.endsWith(":")?Y.protocol.slice(0,-1):Y.protocol))X.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:Q.protocol.source,input:X.value,inst:$,continue:!Q.abort})}if(!W.endsWith("/")&&J.endsWith("/"))X.value=J.slice(0,-1);else X.value=J;return}catch(W){X.issues.push({code:"invalid_format",format:"url",input:X.value,inst:$,continue:!Q.abort})}}}),BQ=w("$ZodEmoji",($,Q)=>{Q.pattern??(Q.pattern=lY()),J0.init($,Q)}),HQ=w("$ZodNanoID",($,Q)=>{Q.pattern??(Q.pattern=yY),J0.init($,Q)}),zQ=w("$ZodCUID",($,Q)=>{Q.pattern??(Q.pattern=vY),J0.init($,Q)}),KQ=w("$ZodCUID2",($,Q)=>{Q.pattern??(Q.pattern=kY),J0.init($,Q)}),AQ=w("$ZodULID",($,Q)=>{Q.pattern??(Q.pattern=_Y),J0.init($,Q)}),LQ=w("$ZodXID",($,Q)=>{Q.pattern??(Q.pattern=xY),J0.init($,Q)}),VQ=w("$ZodKSUID",($,Q)=>{Q.pattern??(Q.pattern=gY),J0.init($,Q)}),TJ=w("$ZodISODateTime",($,Q)=>{Q.pattern??(Q.pattern=eY(Q)),J0.init($,Q)}),vJ=w("$ZodISODate",($,Q)=>{Q.pattern??(Q.pattern=tY),J0.init($,Q)}),kJ=w("$ZodISOTime",($,Q)=>{Q.pattern??(Q.pattern=sY(Q)),J0.init($,Q)}),_J=w("$ZodISODuration",($,Q)=>{Q.pattern??(Q.pattern=hY),J0.init($,Q)}),OQ=w("$ZodIPv4",($,Q)=>{Q.pattern??(Q.pattern=mY),J0.init($,Q),$._zod.onattach.push((X)=>{let W=X._zod.bag;W.format="ipv4"})}),DQ=w("$ZodIPv6",($,Q)=>{Q.pattern??(Q.pattern=cY),J0.init($,Q),$._zod.onattach.push((X)=>{let W=X._zod.bag;W.format="ipv6"}),$._zod.check=(X)=>{try{new URL(`http://[${X.value}]`)}catch{X.issues.push({code:"invalid_format",format:"ipv6",input:X.value,inst:$,continue:!Q.abort})}}}),FQ=w("$ZodCIDRv4",($,Q)=>{Q.pattern??(Q.pattern=pY),J0.init($,Q)}),NQ=w("$ZodCIDRv6",($,Q)=>{Q.pattern??(Q.pattern=nY),J0.init($,Q),$._zod.check=(X)=>{let[W,Y]=X.value.split("/");try{if(!Y)throw Error();let J=Number(Y);if(`${J}`!==Y)throw Error();if(J<0||J>128)throw Error();new URL(`http://[${W}]`)}catch{X.issues.push({code:"invalid_format",format:"cidrv6",input:X.value,inst:$,continue:!Q.abort})}}});function xJ($){if($==="")return!0;if($.length%4!==0)return!1;try{return atob($),!0}catch{return!1}}var UQ=w("$ZodBase64",($,Q)=>{Q.pattern??(Q.pattern=iY),J0.init($,Q),$._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64"}),$._zod.check=(X)=>{if(xJ(X.value))return;X.issues.push({code:"invalid_format",format:"base64",input:X.value,inst:$,continue:!Q.abort})}});function _L($){if(!s$.test($))return!1;let Q=$.replace(/[-_]/g,(W)=>W==="-"?"+":"/"),X=Q.padEnd(Math.ceil(Q.length/4)*4,"=");return xJ(X)}var wQ=w("$ZodBase64URL",($,Q)=>{Q.pattern??(Q.pattern=s$),J0.init($,Q),$._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64url"}),$._zod.check=(X)=>{if(_L(X.value))return;X.issues.push({code:"invalid_format",format:"base64url",input:X.value,inst:$,continue:!Q.abort})}}),bQ=w("$ZodE164",($,Q)=>{Q.pattern??(Q.pattern=oY),J0.init($,Q)});function xL($,Q=null){try{let X=$.split(".");if(X.length!==3)return!1;let[W]=X;if(!W)return!1;let Y=JSON.parse(atob(W));if("typ"in Y&&Y?.typ!=="JWT")return!1;if(!Y.alg)return!1;if(Q&&(!("alg"in Y)||Y.alg!==Q))return!1;return!0}catch{return!1}}var qQ=w("$ZodJWT",($,Q)=>{J0.init($,Q),$._zod.check=(X)=>{if(xL(X.value,Q.alg))return;X.issues.push({code:"invalid_format",format:"jwt",input:X.value,inst:$,continue:!Q.abort})}});var h9=w("$ZodNumber",($,Q)=>{$0.init($,Q),$._zod.pattern=$._zod.bag.pattern??XJ,$._zod.parse=(X,W)=>{if(Q.coerce)try{X.value=Number(X.value)}catch(G){}let Y=X.value;if(typeof Y==="number"&&!Number.isNaN(Y)&&Number.isFinite(Y))return X;let J=typeof Y==="number"?Number.isNaN(Y)?"NaN":!Number.isFinite(Y)?"Infinity":void 0:void 0;return X.issues.push({expected:"number",code:"invalid_type",input:Y,inst:$,...J?{received:J}:{}}),X}}),MQ=w("$ZodNumber",($,Q)=>{zJ.init($,Q),h9.init($,Q)}),EQ=w("$ZodBoolean",($,Q)=>{$0.init($,Q),$._zod.pattern=WJ,$._zod.parse=(X,W)=>{if(Q.coerce)try{X.value=Boolean(X.value)}catch(J){}let Y=X.value;if(typeof Y==="boolean")return X;return X.issues.push({expected:"boolean",code:"invalid_type",input:Y,inst:$}),X}});var jQ=w("$ZodNull",($,Q)=>{$0.init($,Q),$._zod.pattern=YJ,$._zod.values=new Set([null]),$._zod.parse=(X,W)=>{let Y=X.value;if(Y===null)return X;return X.issues.push({expected:"null",code:"invalid_type",input:Y,inst:$}),X}});var SQ=w("$ZodUnknown",($,Q)=>{$0.init($,Q),$._zod.parse=(X)=>X}),PQ=w("$ZodNever",($,Q)=>{$0.init($,Q),$._zod.parse=(X,W)=>{return X.issues.push({expected:"never",code:"invalid_type",input:X.value,inst:$}),X}});function MJ($,Q,X){if($.issues.length)Q.issues.push(...D1(X,$.issues));Q.value[X]=$.value}var RQ=w("$ZodArray",($,Q)=>{$0.init($,Q),$._zod.parse=(X,W)=>{let Y=X.value;if(!Array.isArray(Y))return X.issues.push({expected:"array",code:"invalid_type",input:Y,inst:$}),X;X.value=Array(Y.length);let J=[];for(let G=0;G<Y.length;G++){let B=Y[G],H=Q.element._zod.run({value:B,issues:[]},W);if(H instanceof Promise)J.push(H.then((z)=>MJ(z,X,G)));else MJ(H,X,G)}if(J.length)return Promise.all(J).then(()=>X);return X}});function y9($,Q,X){if($.issues.length)Q.issues.push(...D1(X,$.issues));Q.value[X]=$.value}function EJ($,Q,X,W){if($.issues.length)if(W[X]===void 0)if(X in W)Q.value[X]=void 0;else Q.value[X]=$.value;else Q.issues.push(...D1(X,$.issues));else if($.value===void 0){if(X in W)Q.value[X]=void 0}else Q.value[X]=$.value}var f9=w("$ZodObject",($,Q)=>{$0.init($,Q);let X=M8(()=>{let L=Object.keys(Q.shape);for(let A of L)if(!(Q.shape[A]instanceof $0))throw Error(`Invalid element at key "${A}": expected a Zod schema`);let V=u$(Q.shape);return{shape:Q.shape,keys:L,keySet:new Set(L),numKeys:L.length,optionalKeys:new Set(V)}});Y0($._zod,"propValues",()=>{let L=Q.shape,V={};for(let A in L){let D=L[A]._zod;if(D.values){V[A]??(V[A]=new Set);for(let F of D.values)V[A].add(F)}}return V});let W=(L)=>{let V=new QQ(["shape","payload","ctx"]),A=X.value,D=(N)=>{let q=Q6(N);return`shape[${q}]._zod.run({ value: input[${q}], issues: [] }, ctx)`};V.write("const input = payload.value;");let F=Object.create(null),b=0;for(let N of A.keys)F[N]=`key_${b++}`;V.write("const newResult = {}");for(let N of A.keys)if(A.optionalKeys.has(N)){let q=F[N];V.write(`const ${q} = ${D(N)};`);let S=Q6(N);V.write(`
|
|
197
|
+
if (${q}.issues.length) {
|
|
198
|
+
if (input[${S}] === undefined) {
|
|
199
|
+
if (${S} in input) {
|
|
200
|
+
newResult[${S}] = undefined;
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
payload.issues = payload.issues.concat(
|
|
204
|
+
${q}.issues.map((iss) => ({
|
|
205
|
+
...iss,
|
|
206
|
+
path: iss.path ? [${S}, ...iss.path] : [${S}],
|
|
207
|
+
}))
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
} else if (${q}.value === undefined) {
|
|
211
|
+
if (${S} in input) newResult[${S}] = undefined;
|
|
212
|
+
} else {
|
|
213
|
+
newResult[${S}] = ${q}.value;
|
|
214
|
+
}
|
|
215
|
+
`)}else{let q=F[N];V.write(`const ${q} = ${D(N)};`),V.write(`
|
|
216
|
+
if (${q}.issues.length) payload.issues = payload.issues.concat(${q}.issues.map(iss => ({
|
|
217
|
+
...iss,
|
|
218
|
+
path: iss.path ? [${Q6(N)}, ...iss.path] : [${Q6(N)}]
|
|
219
|
+
})));`),V.write(`newResult[${Q6(N)}] = ${q}.value`)}V.write("payload.value = newResult;"),V.write("return payload;");let O=V.compile();return(N,q)=>O(L,N,q)},Y,J=x6,G=!T9.jitless,H=G&&h$.value,z=Q.catchall,K;$._zod.parse=(L,V)=>{K??(K=X.value);let A=L.value;if(!J(A))return L.issues.push({expected:"object",code:"invalid_type",input:A,inst:$}),L;let D=[];if(G&&H&&V?.async===!1&&V.jitless!==!0){if(!Y)Y=W(Q.shape);L=Y(L,V)}else{L.value={};let q=K.shape;for(let S of K.keys){let R=q[S],f=R._zod.run({value:A[S],issues:[]},V),Q0=R._zod.optin==="optional"&&R._zod.optout==="optional";if(f instanceof Promise)D.push(f.then((u0)=>Q0?EJ(u0,L,S,A):y9(u0,L,S)));else if(Q0)EJ(f,L,S,A);else y9(f,L,S)}}if(!z)return D.length?Promise.all(D).then(()=>L):L;let F=[],b=K.keySet,O=z._zod,N=O.def.type;for(let q of Object.keys(A)){if(b.has(q))continue;if(N==="never"){F.push(q);continue}let S=O.run({value:A[q],issues:[]},V);if(S instanceof Promise)D.push(S.then((R)=>y9(R,L,q)));else y9(S,L,q)}if(F.length)L.issues.push({code:"unrecognized_keys",keys:F,input:A,inst:$});if(!D.length)return L;return Promise.all(D).then(()=>{return L})}});function jJ($,Q,X,W){for(let Y of $)if(Y.issues.length===0)return Q.value=Y.value,Q;return Q.issues.push({code:"invalid_union",input:Q.value,inst:X,errors:$.map((Y)=>Y.issues.map((J)=>X1(J,W,c0())))}),Q}var u9=w("$ZodUnion",($,Q)=>{$0.init($,Q),Y0($._zod,"optin",()=>Q.options.some((X)=>X._zod.optin==="optional")?"optional":void 0),Y0($._zod,"optout",()=>Q.options.some((X)=>X._zod.optout==="optional")?"optional":void 0),Y0($._zod,"values",()=>{if(Q.options.every((X)=>X._zod.values))return new Set(Q.options.flatMap((X)=>Array.from(X._zod.values)));return}),Y0($._zod,"pattern",()=>{if(Q.options.every((X)=>X._zod.pattern)){let X=Q.options.map((W)=>W._zod.pattern);return new RegExp(`^(${X.map((W)=>j8(W.source)).join("|")})$`)}return}),$._zod.parse=(X,W)=>{let Y=!1,J=[];for(let G of Q.options){let B=G._zod.run({value:X.value,issues:[]},W);if(B instanceof Promise)J.push(B),Y=!0;else{if(B.issues.length===0)return B;J.push(B)}}if(!Y)return jJ(J,X,$,W);return Promise.all(J).then((G)=>{return jJ(G,X,$,W)})}}),IQ=w("$ZodDiscriminatedUnion",($,Q)=>{u9.init($,Q);let X=$._zod.parse;Y0($._zod,"propValues",()=>{let Y={};for(let J of Q.options){let G=J._zod.propValues;if(!G||Object.keys(G).length===0)throw Error(`Invalid discriminated union option at index "${Q.options.indexOf(J)}"`);for(let[B,H]of Object.entries(G)){if(!Y[B])Y[B]=new Set;for(let z of H)Y[B].add(z)}}return Y});let W=M8(()=>{let Y=Q.options,J=new Map;for(let G of Y){let B=G._zod.propValues[Q.discriminator];if(!B||B.size===0)throw Error(`Invalid discriminated union option at index "${Q.options.indexOf(G)}"`);for(let H of B){if(J.has(H))throw Error(`Duplicate discriminator value "${String(H)}"`);J.set(H,G)}}return J});$._zod.parse=(Y,J)=>{let G=Y.value;if(!x6(G))return Y.issues.push({code:"invalid_type",expected:"object",input:G,inst:$}),Y;let B=W.value.get(G?.[Q.discriminator]);if(B)return B._zod.run(Y,J);if(Q.unionFallback)return X(Y,J);return Y.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:G,path:[Q.discriminator],inst:$}),Y}}),CQ=w("$ZodIntersection",($,Q)=>{$0.init($,Q),$._zod.parse=(X,W)=>{let Y=X.value,J=Q.left._zod.run({value:Y,issues:[]},W),G=Q.right._zod.run({value:Y,issues:[]},W);if(J instanceof Promise||G instanceof Promise)return Promise.all([J,G]).then(([H,z])=>{return SJ(X,H,z)});return SJ(X,J,G)}});function XQ($,Q){if($===Q)return{valid:!0,data:$};if($ instanceof Date&&Q instanceof Date&&+$===+Q)return{valid:!0,data:$};if(g6($)&&g6(Q)){let X=Object.keys(Q),W=Object.keys($).filter((J)=>X.indexOf(J)!==-1),Y={...$,...Q};for(let J of W){let G=XQ($[J],Q[J]);if(!G.valid)return{valid:!1,mergeErrorPath:[J,...G.mergeErrorPath]};Y[J]=G.data}return{valid:!0,data:Y}}if(Array.isArray($)&&Array.isArray(Q)){if($.length!==Q.length)return{valid:!1,mergeErrorPath:[]};let X=[];for(let W=0;W<$.length;W++){let Y=$[W],J=Q[W],G=XQ(Y,J);if(!G.valid)return{valid:!1,mergeErrorPath:[W,...G.mergeErrorPath]};X.push(G.data)}return{valid:!0,data:X}}return{valid:!1,mergeErrorPath:[]}}function SJ($,Q,X){if(Q.issues.length)$.issues.push(...Q.issues);if(X.issues.length)$.issues.push(...X.issues);if(X6($))return $;let W=XQ(Q.value,X.value);if(!W.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(W.mergeErrorPath)}`);return $.value=W.data,$}var ZQ=w("$ZodRecord",($,Q)=>{$0.init($,Q),$._zod.parse=(X,W)=>{let Y=X.value;if(!g6(Y))return X.issues.push({expected:"record",code:"invalid_type",input:Y,inst:$}),X;let J=[];if(Q.keyType._zod.values){let G=Q.keyType._zod.values;X.value={};for(let H of G)if(typeof H==="string"||typeof H==="number"||typeof H==="symbol"){let z=Q.valueType._zod.run({value:Y[H],issues:[]},W);if(z instanceof Promise)J.push(z.then((K)=>{if(K.issues.length)X.issues.push(...D1(H,K.issues));X.value[H]=K.value}));else{if(z.issues.length)X.issues.push(...D1(H,z.issues));X.value[H]=z.value}}let B;for(let H in Y)if(!G.has(H))B=B??[],B.push(H);if(B&&B.length>0)X.issues.push({code:"unrecognized_keys",input:Y,inst:$,keys:B})}else{X.value={};for(let G of Reflect.ownKeys(Y)){if(G==="__proto__")continue;let B=Q.keyType._zod.run({value:G,issues:[]},W);if(B instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(B.issues.length){X.issues.push({origin:"record",code:"invalid_key",issues:B.issues.map((z)=>X1(z,W,c0())),input:G,path:[G],inst:$}),X.value[B.value]=B.value;continue}let H=Q.valueType._zod.run({value:Y[G],issues:[]},W);if(H instanceof Promise)J.push(H.then((z)=>{if(z.issues.length)X.issues.push(...D1(G,z.issues));X.value[B.value]=z.value}));else{if(H.issues.length)X.issues.push(...D1(G,H.issues));X.value[B.value]=H.value}}}if(J.length)return Promise.all(J).then(()=>X);return X}});var TQ=w("$ZodEnum",($,Q)=>{$0.init($,Q);let X=q8(Q.entries);$._zod.values=new Set(X),$._zod.pattern=new RegExp(`^(${X.filter((W)=>f$.has(typeof W)).map((W)=>typeof W==="string"?v1(W):W.toString()).join("|")})$`),$._zod.parse=(W,Y)=>{let J=W.value;if($._zod.values.has(J))return W;return W.issues.push({code:"invalid_value",values:X,input:J,inst:$}),W}}),vQ=w("$ZodLiteral",($,Q)=>{$0.init($,Q),$._zod.values=new Set(Q.values),$._zod.pattern=new RegExp(`^(${Q.values.map((X)=>typeof X==="string"?v1(X):X?X.toString():String(X)).join("|")})$`),$._zod.parse=(X,W)=>{let Y=X.value;if($._zod.values.has(Y))return X;return X.issues.push({code:"invalid_value",values:Q.values,input:Y,inst:$}),X}});var kQ=w("$ZodTransform",($,Q)=>{$0.init($,Q),$._zod.parse=(X,W)=>{let Y=Q.transform(X.value,X);if(W.async)return(Y instanceof Promise?Y:Promise.resolve(Y)).then((G)=>{return X.value=G,X});if(Y instanceof Promise)throw new T1;return X.value=Y,X}}),_Q=w("$ZodOptional",($,Q)=>{$0.init($,Q),$._zod.optin="optional",$._zod.optout="optional",Y0($._zod,"values",()=>{return Q.innerType._zod.values?new Set([...Q.innerType._zod.values,void 0]):void 0}),Y0($._zod,"pattern",()=>{let X=Q.innerType._zod.pattern;return X?new RegExp(`^(${j8(X.source)})?$`):void 0}),$._zod.parse=(X,W)=>{if(Q.innerType._zod.optin==="optional")return Q.innerType._zod.run(X,W);if(X.value===void 0)return X;return Q.innerType._zod.run(X,W)}}),xQ=w("$ZodNullable",($,Q)=>{$0.init($,Q),Y0($._zod,"optin",()=>Q.innerType._zod.optin),Y0($._zod,"optout",()=>Q.innerType._zod.optout),Y0($._zod,"pattern",()=>{let X=Q.innerType._zod.pattern;return X?new RegExp(`^(${j8(X.source)}|null)$`):void 0}),Y0($._zod,"values",()=>{return Q.innerType._zod.values?new Set([...Q.innerType._zod.values,null]):void 0}),$._zod.parse=(X,W)=>{if(X.value===null)return X;return Q.innerType._zod.run(X,W)}}),gQ=w("$ZodDefault",($,Q)=>{$0.init($,Q),$._zod.optin="optional",Y0($._zod,"values",()=>Q.innerType._zod.values),$._zod.parse=(X,W)=>{if(X.value===void 0)return X.value=Q.defaultValue,X;let Y=Q.innerType._zod.run(X,W);if(Y instanceof Promise)return Y.then((J)=>PJ(J,Q));return PJ(Y,Q)}});function PJ($,Q){if($.value===void 0)$.value=Q.defaultValue;return $}var yQ=w("$ZodPrefault",($,Q)=>{$0.init($,Q),$._zod.optin="optional",Y0($._zod,"values",()=>Q.innerType._zod.values),$._zod.parse=(X,W)=>{if(X.value===void 0)X.value=Q.defaultValue;return Q.innerType._zod.run(X,W)}}),hQ=w("$ZodNonOptional",($,Q)=>{$0.init($,Q),Y0($._zod,"values",()=>{let X=Q.innerType._zod.values;return X?new Set([...X].filter((W)=>W!==void 0)):void 0}),$._zod.parse=(X,W)=>{let Y=Q.innerType._zod.run(X,W);if(Y instanceof Promise)return Y.then((J)=>RJ(J,$));return RJ(Y,$)}});function RJ($,Q){if(!$.issues.length&&$.value===void 0)$.issues.push({code:"invalid_type",expected:"nonoptional",input:$.value,inst:Q});return $}var fQ=w("$ZodCatch",($,Q)=>{$0.init($,Q),$._zod.optin="optional",Y0($._zod,"optout",()=>Q.innerType._zod.optout),Y0($._zod,"values",()=>Q.innerType._zod.values),$._zod.parse=(X,W)=>{let Y=Q.innerType._zod.run(X,W);if(Y instanceof Promise)return Y.then((J)=>{if(X.value=J.value,J.issues.length)X.value=Q.catchValue({...X,error:{issues:J.issues.map((G)=>X1(G,W,c0()))},input:X.value}),X.issues=[];return X});if(X.value=Y.value,Y.issues.length)X.value=Q.catchValue({...X,error:{issues:Y.issues.map((J)=>X1(J,W,c0()))},input:X.value}),X.issues=[];return X}});var uQ=w("$ZodPipe",($,Q)=>{$0.init($,Q),Y0($._zod,"values",()=>Q.in._zod.values),Y0($._zod,"optin",()=>Q.in._zod.optin),Y0($._zod,"optout",()=>Q.out._zod.optout),$._zod.parse=(X,W)=>{let Y=Q.in._zod.run(X,W);if(Y instanceof Promise)return Y.then((J)=>IJ(J,Q,W));return IJ(Y,Q,W)}});function IJ($,Q,X){if(X6($))return $;return Q.out._zod.run({value:$.value,issues:$.issues},X)}var lQ=w("$ZodReadonly",($,Q)=>{$0.init($,Q),Y0($._zod,"propValues",()=>Q.innerType._zod.propValues),Y0($._zod,"values",()=>Q.innerType._zod.values),Y0($._zod,"optin",()=>Q.innerType._zod.optin),Y0($._zod,"optout",()=>Q.innerType._zod.optout),$._zod.parse=(X,W)=>{let Y=Q.innerType._zod.run(X,W);if(Y instanceof Promise)return Y.then(CJ);return CJ(Y)}});function CJ($){return $.value=Object.freeze($.value),$}var mQ=w("$ZodCustom",($,Q)=>{b0.init($,Q),$0.init($,Q),$._zod.parse=(X,W)=>{return X},$._zod.check=(X)=>{let W=X.value,Y=Q.fn(W);if(Y instanceof Promise)return Y.then((J)=>ZJ(J,X,W,$));ZJ(Y,X,W,$);return}});function ZJ($,Q,X,W){if(!$){let Y={code:"custom",input:X,inst:W,path:[...W._zod.def.path??[]],continue:!W._zod.def.abort};if(W._zod.def.params)Y.params=W._zod.def.params;Q.issues.push(m$(Y))}}var gL=($)=>{let Q=typeof $;switch(Q){case"number":return Number.isNaN($)?"NaN":"number";case"object":{if(Array.isArray($))return"array";if($===null)return"null";if(Object.getPrototypeOf($)!==Object.prototype&&$.constructor)return $.constructor.name}}return Q},yL=()=>{let $={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function Q(W){return $[W]??null}let X={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return(W)=>{switch(W.code){case"invalid_type":return`Invalid input: expected ${W.expected}, received ${gL(W.input)}`;case"invalid_value":if(W.values.length===1)return`Invalid input: expected ${_9(W.values[0])}`;return`Invalid option: expected one of ${v9(W.values,"|")}`;case"too_big":{let Y=W.inclusive?"<=":"<",J=Q(W.origin);if(J)return`Too big: expected ${W.origin??"value"} to have ${Y}${W.maximum.toString()} ${J.unit??"elements"}`;return`Too big: expected ${W.origin??"value"} to be ${Y}${W.maximum.toString()}`}case"too_small":{let Y=W.inclusive?">=":">",J=Q(W.origin);if(J)return`Too small: expected ${W.origin} to have ${Y}${W.minimum.toString()} ${J.unit}`;return`Too small: expected ${W.origin} to be ${Y}${W.minimum.toString()}`}case"invalid_format":{let Y=W;if(Y.format==="starts_with")return`Invalid string: must start with "${Y.prefix}"`;if(Y.format==="ends_with")return`Invalid string: must end with "${Y.suffix}"`;if(Y.format==="includes")return`Invalid string: must include "${Y.includes}"`;if(Y.format==="regex")return`Invalid string: must match pattern ${Y.pattern}`;return`Invalid ${X[Y.format]??W.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${W.divisor}`;case"unrecognized_keys":return`Unrecognized key${W.keys.length>1?"s":""}: ${v9(W.keys,", ")}`;case"invalid_key":return`Invalid key in ${W.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${W.origin}`;default:return"Invalid input"}}};function cQ(){return{localeError:yL()}}var hL=Symbol("ZodOutput"),fL=Symbol("ZodInput");class l9{constructor(){this._map=new Map,this._idmap=new Map}add($,...Q){let X=Q[0];if(this._map.set($,X),X&&typeof X==="object"&&"id"in X){if(this._idmap.has(X.id))throw Error(`ID ${X.id} already exists in the registry`);this._idmap.set(X.id,$)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove($){let Q=this._map.get($);if(Q&&typeof Q==="object"&&"id"in Q)this._idmap.delete(Q.id);return this._map.delete($),this}get($){let Q=$._zod.parent;if(Q){let X={...this.get(Q)??{}};return delete X.id,{...X,...this._map.get($)}}return this._map.get($)}has($){return this._map.has($)}}function gJ(){return new l9}var k1=gJ();function pQ($,Q){return new $({type:"string",...g(Q)})}function nQ($,Q){return new $({type:"string",format:"email",check:"string_format",abort:!1,...g(Q)})}function m9($,Q){return new $({type:"string",format:"guid",check:"string_format",abort:!1,...g(Q)})}function iQ($,Q){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,...g(Q)})}function dQ($,Q){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(Q)})}function oQ($,Q){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(Q)})}function rQ($,Q){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(Q)})}function tQ($,Q){return new $({type:"string",format:"url",check:"string_format",abort:!1,...g(Q)})}function aQ($,Q){return new $({type:"string",format:"emoji",check:"string_format",abort:!1,...g(Q)})}function sQ($,Q){return new $({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(Q)})}function eQ($,Q){return new $({type:"string",format:"cuid",check:"string_format",abort:!1,...g(Q)})}function $X($,Q){return new $({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(Q)})}function QX($,Q){return new $({type:"string",format:"ulid",check:"string_format",abort:!1,...g(Q)})}function XX($,Q){return new $({type:"string",format:"xid",check:"string_format",abort:!1,...g(Q)})}function WX($,Q){return new $({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(Q)})}function YX($,Q){return new $({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(Q)})}function JX($,Q){return new $({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(Q)})}function GX($,Q){return new $({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(Q)})}function BX($,Q){return new $({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(Q)})}function HX($,Q){return new $({type:"string",format:"base64",check:"string_format",abort:!1,...g(Q)})}function zX($,Q){return new $({type:"string",format:"base64url",check:"string_format",abort:!1,...g(Q)})}function KX($,Q){return new $({type:"string",format:"e164",check:"string_format",abort:!1,...g(Q)})}function AX($,Q){return new $({type:"string",format:"jwt",check:"string_format",abort:!1,...g(Q)})}function yJ($,Q){return new $({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(Q)})}function hJ($,Q){return new $({type:"string",format:"date",check:"string_format",...g(Q)})}function fJ($,Q){return new $({type:"string",format:"time",check:"string_format",precision:null,...g(Q)})}function uJ($,Q){return new $({type:"string",format:"duration",check:"string_format",...g(Q)})}function LX($,Q){return new $({type:"number",checks:[],...g(Q)})}function VX($,Q){return new $({type:"number",check:"number_format",abort:!1,format:"safeint",...g(Q)})}function OX($,Q){return new $({type:"boolean",...g(Q)})}function DX($,Q){return new $({type:"null",...g(Q)})}function FX($){return new $({type:"unknown"})}function NX($,Q){return new $({type:"never",...g(Q)})}function c9($,Q){return new e$({check:"less_than",...g(Q),value:$,inclusive:!1})}function C8($,Q){return new e$({check:"less_than",...g(Q),value:$,inclusive:!0})}function p9($,Q){return new $Q({check:"greater_than",...g(Q),value:$,inclusive:!1})}function Z8($,Q){return new $Q({check:"greater_than",...g(Q),value:$,inclusive:!0})}function n9($,Q){return new HJ({check:"multiple_of",...g(Q),value:$})}function i9($,Q){return new KJ({check:"max_length",...g(Q),maximum:$})}function y6($,Q){return new AJ({check:"min_length",...g(Q),minimum:$})}function d9($,Q){return new LJ({check:"length_equals",...g(Q),length:$})}function UX($,Q){return new VJ({check:"string_format",format:"regex",...g(Q),pattern:$})}function wX($){return new OJ({check:"string_format",format:"lowercase",...g($)})}function bX($){return new DJ({check:"string_format",format:"uppercase",...g($)})}function qX($,Q){return new FJ({check:"string_format",format:"includes",...g(Q),includes:$})}function MX($,Q){return new NJ({check:"string_format",format:"starts_with",...g(Q),prefix:$})}function EX($,Q){return new UJ({check:"string_format",format:"ends_with",...g(Q),suffix:$})}function J6($){return new wJ({check:"overwrite",tx:$})}function jX($){return J6((Q)=>Q.normalize($))}function SX(){return J6(($)=>$.trim())}function PX(){return J6(($)=>$.toLowerCase())}function RX(){return J6(($)=>$.toUpperCase())}function lJ($,Q,X){return new $({type:"array",element:Q,...g(X)})}function IX($,Q,X){let W=g(X);return W.abort??(W.abort=!0),new $({type:"custom",check:"custom",fn:Q,...W})}function CX($,Q,X){return new $({type:"custom",check:"custom",fn:Q,...g(X)})}class ZX{constructor($){this.counter=0,this.metadataRegistry=$?.metadata??k1,this.target=$?.target??"draft-2020-12",this.unrepresentable=$?.unrepresentable??"throw",this.override=$?.override??(()=>{}),this.io=$?.io??"output",this.seen=new Map}process($,Q={path:[],schemaPath:[]}){var X;let W=$._zod.def,Y={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},J=this.seen.get($);if(J){if(J.count++,Q.schemaPath.includes($))J.cycle=Q.path;return J.schema}let G={schema:{},count:1,cycle:void 0,path:Q.path};this.seen.set($,G);let B=$._zod.toJSONSchema?.();if(B)G.schema=B;else{let K={...Q,schemaPath:[...Q.schemaPath,$],path:Q.path},L=$._zod.parent;if(L)G.ref=L,this.process(L,K),this.seen.get(L).isParent=!0;else{let V=G.schema;switch(W.type){case"string":{let A=V;A.type="string";let{minimum:D,maximum:F,format:b,patterns:O,contentEncoding:N}=$._zod.bag;if(typeof D==="number")A.minLength=D;if(typeof F==="number")A.maxLength=F;if(b){if(A.format=Y[b]??b,A.format==="")delete A.format}if(N)A.contentEncoding=N;if(O&&O.size>0){let q=[...O];if(q.length===1)A.pattern=q[0].source;else if(q.length>1)G.schema.allOf=[...q.map((S)=>({...this.target==="draft-7"?{type:"string"}:{},pattern:S.source}))]}break}case"number":{let A=V,{minimum:D,maximum:F,format:b,multipleOf:O,exclusiveMaximum:N,exclusiveMinimum:q}=$._zod.bag;if(typeof b==="string"&&b.includes("int"))A.type="integer";else A.type="number";if(typeof q==="number")A.exclusiveMinimum=q;if(typeof D==="number"){if(A.minimum=D,typeof q==="number")if(q>=D)delete A.minimum;else delete A.exclusiveMinimum}if(typeof N==="number")A.exclusiveMaximum=N;if(typeof F==="number"){if(A.maximum=F,typeof N==="number")if(N<=F)delete A.maximum;else delete A.exclusiveMaximum}if(typeof O==="number")A.multipleOf=O;break}case"boolean":{let A=V;A.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{V.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"never":{V.not={};break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let A=V,{minimum:D,maximum:F}=$._zod.bag;if(typeof D==="number")A.minItems=D;if(typeof F==="number")A.maxItems=F;A.type="array",A.items=this.process(W.element,{...K,path:[...K.path,"items"]});break}case"object":{let A=V;A.type="object",A.properties={};let D=W.shape;for(let O in D)A.properties[O]=this.process(D[O],{...K,path:[...K.path,"properties",O]});let F=new Set(Object.keys(D)),b=new Set([...F].filter((O)=>{let N=W.shape[O]._zod;if(this.io==="input")return N.optin===void 0;else return N.optout===void 0}));if(b.size>0)A.required=Array.from(b);if(W.catchall?._zod.def.type==="never")A.additionalProperties=!1;else if(!W.catchall){if(this.io==="output")A.additionalProperties=!1}else if(W.catchall)A.additionalProperties=this.process(W.catchall,{...K,path:[...K.path,"additionalProperties"]});break}case"union":{let A=V;A.anyOf=W.options.map((D,F)=>this.process(D,{...K,path:[...K.path,"anyOf",F]}));break}case"intersection":{let A=V,D=this.process(W.left,{...K,path:[...K.path,"allOf",0]}),F=this.process(W.right,{...K,path:[...K.path,"allOf",1]}),b=(N)=>("allOf"in N)&&Object.keys(N).length===1,O=[...b(D)?D.allOf:[D],...b(F)?F.allOf:[F]];A.allOf=O;break}case"tuple":{let A=V;A.type="array";let D=W.items.map((O,N)=>this.process(O,{...K,path:[...K.path,"prefixItems",N]}));if(this.target==="draft-2020-12")A.prefixItems=D;else A.items=D;if(W.rest){let O=this.process(W.rest,{...K,path:[...K.path,"items"]});if(this.target==="draft-2020-12")A.items=O;else A.additionalItems=O}if(W.rest)A.items=this.process(W.rest,{...K,path:[...K.path,"items"]});let{minimum:F,maximum:b}=$._zod.bag;if(typeof F==="number")A.minItems=F;if(typeof b==="number")A.maxItems=b;break}case"record":{let A=V;A.type="object",A.propertyNames=this.process(W.keyType,{...K,path:[...K.path,"propertyNames"]}),A.additionalProperties=this.process(W.valueType,{...K,path:[...K.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let A=V,D=q8(W.entries);if(D.every((F)=>typeof F==="number"))A.type="number";if(D.every((F)=>typeof F==="string"))A.type="string";A.enum=D;break}case"literal":{let A=V,D=[];for(let F of W.values)if(F===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof F==="bigint")if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else D.push(Number(F));else D.push(F);if(D.length===0);else if(D.length===1){let F=D[0];A.type=F===null?"null":typeof F,A.const=F}else{if(D.every((F)=>typeof F==="number"))A.type="number";if(D.every((F)=>typeof F==="string"))A.type="string";if(D.every((F)=>typeof F==="boolean"))A.type="string";if(D.every((F)=>F===null))A.type="null";A.enum=D}break}case"file":{let A=V,D={type:"string",format:"binary",contentEncoding:"binary"},{minimum:F,maximum:b,mime:O}=$._zod.bag;if(F!==void 0)D.minLength=F;if(b!==void 0)D.maxLength=b;if(O)if(O.length===1)D.contentMediaType=O[0],Object.assign(A,D);else A.anyOf=O.map((N)=>{return{...D,contentMediaType:N}});else Object.assign(A,D);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let A=this.process(W.innerType,K);V.anyOf=[A,{type:"null"}];break}case"nonoptional":{this.process(W.innerType,K),G.ref=W.innerType;break}case"success":{let A=V;A.type="boolean";break}case"default":{this.process(W.innerType,K),G.ref=W.innerType,V.default=JSON.parse(JSON.stringify(W.defaultValue));break}case"prefault":{if(this.process(W.innerType,K),G.ref=W.innerType,this.io==="input")V._prefault=JSON.parse(JSON.stringify(W.defaultValue));break}case"catch":{this.process(W.innerType,K),G.ref=W.innerType;let A;try{A=W.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}V.default=A;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let A=V,D=$._zod.pattern;if(!D)throw Error("Pattern not found in template literal");A.type="string",A.pattern=D.source;break}case"pipe":{let A=this.io==="input"?W.in._zod.def.type==="transform"?W.out:W.in:W.out;this.process(A,K),G.ref=A;break}case"readonly":{this.process(W.innerType,K),G.ref=W.innerType,V.readOnly=!0;break}case"promise":{this.process(W.innerType,K),G.ref=W.innerType;break}case"optional":{this.process(W.innerType,K),G.ref=W.innerType;break}case"lazy":{let A=$._zod.innerType;this.process(A,K),G.ref=A;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}default:}}}let H=this.metadataRegistry.get($);if(H)Object.assign(G.schema,H);if(this.io==="input"&&F0($))delete G.schema.examples,delete G.schema.default;if(this.io==="input"&&G.schema._prefault)(X=G.schema).default??(X.default=G.schema._prefault);return delete G.schema._prefault,this.seen.get($).schema}emit($,Q){let X={cycles:Q?.cycles??"ref",reused:Q?.reused??"inline",external:Q?.external??void 0},W=this.seen.get($);if(!W)throw Error("Unprocessed schema. This is a bug in Zod.");let Y=(z)=>{let K=this.target==="draft-2020-12"?"$defs":"definitions";if(X.external){let D=X.external.registry.get(z[0])?.id,F=X.external.uri??((O)=>O);if(D)return{ref:F(D)};let b=z[1].defId??z[1].schema.id??`schema${this.counter++}`;return z[1].defId=b,{defId:b,ref:`${F("__shared")}#/${K}/${b}`}}if(z[1]===W)return{ref:"#"};let V=`${"#"}/${K}/`,A=z[1].schema.id??`__schema${this.counter++}`;return{defId:A,ref:V+A}},J=(z)=>{if(z[1].schema.$ref)return;let K=z[1],{ref:L,defId:V}=Y(z);if(K.def={...K.schema},V)K.defId=V;let A=K.schema;for(let D in A)delete A[D];A.$ref=L};if(X.cycles==="throw")for(let z of this.seen.entries()){let K=z[1];if(K.cycle)throw Error(`Cycle detected: #/${K.cycle?.join("/")}/<root>
|
|
220
|
+
|
|
221
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let z of this.seen.entries()){let K=z[1];if($===z[0]){J(z);continue}if(X.external){let V=X.external.registry.get(z[0])?.id;if($!==z[0]&&V){J(z);continue}}if(this.metadataRegistry.get(z[0])?.id){J(z);continue}if(K.cycle){J(z);continue}if(K.count>1){if(X.reused==="ref"){J(z);continue}}}let G=(z,K)=>{let L=this.seen.get(z),V=L.def??L.schema,A={...V};if(L.ref===null)return;let D=L.ref;if(L.ref=null,D){G(D,K);let F=this.seen.get(D).schema;if(F.$ref&&K.target==="draft-7")V.allOf=V.allOf??[],V.allOf.push(F);else Object.assign(V,F),Object.assign(V,A)}if(!L.isParent)this.override({zodSchema:z,jsonSchema:V,path:L.path??[]})};for(let z of[...this.seen.entries()].reverse())G(z[0],{target:this.target});let B={};if(this.target==="draft-2020-12")B.$schema="https://json-schema.org/draft/2020-12/schema";else if(this.target==="draft-7")B.$schema="http://json-schema.org/draft-07/schema#";else console.warn(`Invalid target: ${this.target}`);if(X.external?.uri){let z=X.external.registry.get($)?.id;if(!z)throw Error("Schema is missing an `id` property");B.$id=X.external.uri(z)}Object.assign(B,W.def);let H=X.external?.defs??{};for(let z of this.seen.entries()){let K=z[1];if(K.def&&K.defId)H[K.defId]=K.def}if(X.external);else if(Object.keys(H).length>0)if(this.target==="draft-2020-12")B.$defs=H;else B.definitions=H;try{return JSON.parse(JSON.stringify(B))}catch(z){throw Error("Error converting schema to JSON.")}}}function TX($,Q){if($ instanceof l9){let W=new ZX(Q),Y={};for(let B of $._idmap.entries()){let[H,z]=B;W.process(z)}let J={},G={registry:$,uri:Q?.uri,defs:Y};for(let B of $._idmap.entries()){let[H,z]=B;J[H]=W.emit(z,{...Q,external:G})}if(Object.keys(Y).length>0){let B=W.target==="draft-2020-12"?"$defs":"definitions";J.__shared={[B]:Y}}return{schemas:J}}let X=new ZX(Q);return X.process($),X.emit($,Q)}function F0($,Q){let X=Q??{seen:new Set};if(X.seen.has($))return!1;X.seen.add($);let Y=$._zod.def;switch(Y.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return F0(Y.element,X);case"object":{for(let J in Y.shape)if(F0(Y.shape[J],X))return!0;return!1}case"union":{for(let J of Y.options)if(F0(J,X))return!0;return!1}case"intersection":return F0(Y.left,X)||F0(Y.right,X);case"tuple":{for(let J of Y.items)if(F0(J,X))return!0;if(Y.rest&&F0(Y.rest,X))return!0;return!1}case"record":return F0(Y.keyType,X)||F0(Y.valueType,X);case"map":return F0(Y.keyType,X)||F0(Y.valueType,X);case"set":return F0(Y.valueType,X);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return F0(Y.innerType,X);case"lazy":return F0(Y.getter(),X);case"default":return F0(Y.innerType,X);case"prefault":return F0(Y.innerType,X);case"custom":return!1;case"transform":return!0;case"pipe":return F0(Y.in,X)||F0(Y.out,X);case"success":return!1;case"catch":return!1;default:}throw Error(`Unknown schema type: ${Y.type}`)}var bV=w("ZodMiniType",($,Q)=>{if(!$._zod)throw Error("Uninitialized schema in ZodMiniType.");$0.init($,Q),$.def=Q,$.parse=(X,W)=>i$($,X,W,{callee:$.parse}),$.safeParse=(X,W)=>W6($,X,W),$.parseAsync=async(X,W)=>o$($,X,W,{callee:$.parseAsync}),$.safeParseAsync=async(X,W)=>Y6($,X,W),$.check=(...X)=>{return $.clone({...Q,checks:[...Q.checks??[],...X.map((W)=>typeof W==="function"?{_zod:{check:W,def:{check:"custom"},onattach:[]}}:W)]})},$.clone=(X,W)=>p0($,X,W),$.brand=()=>$,$.register=(X,W)=>{return X.add($,W),$}});var qV=w("ZodMiniObject",($,Q)=>{f9.init($,Q),bV.init($,Q),i.defineLazy($,"shape",()=>Q.shape)});function vX($,Q){let X={type:"object",get shape(){return i.assignProp(this,"shape",{...$}),this.shape},...i.normalizeParams(Q)};return new qV(X)}function i0($){return!!$._zod}function B6($){let Q=Object.values($);if(Q.length===0)return vX({});let X=Q.every(i0),W=Q.every((Y)=>!i0(Y));if(X)return vX($);if(W)return k$($);throw Error("Mixed Zod versions detected in object shape.")}function _1($,Q){if(i0($))return W6($,Q);return $.safeParse(Q)}async function o9($,Q){if(i0($))return await Y6($,Q);return await $.safeParseAsync(Q)}function x1($){if(!$)return;let Q;if(i0($))Q=$._zod?.def?.shape;else Q=$.shape;if(!Q)return;if(typeof Q==="function")try{return Q()}catch{return}return Q}function h6($){if(!$)return;if(typeof $==="object"){let Q=$,X=$;if(!Q._def&&!X._zod){let W=Object.values($);if(W.length>0&&W.every((Y)=>typeof Y==="object"&&Y!==null&&(Y._def!==void 0||Y._zod!==void 0||typeof Y.parse==="function")))return B6($)}}if(i0($)){let X=$._zod?.def;if(X&&(X.type==="object"||X.shape!==void 0))return $}else if($.shape!==void 0)return $;return}function r9($){if($&&typeof $==="object"){if("message"in $&&typeof $.message==="string")return $.message;if("issues"in $&&Array.isArray($.issues)&&$.issues.length>0){let Q=$.issues[0];if(Q&&typeof Q==="object"&&"message"in Q)return String(Q.message)}try{return JSON.stringify($)}catch{return String($)}}return String($)}function cJ($){return $.description}function pJ($){if(i0($))return $._zod?.def?.type==="optional";let Q=$;if(typeof $.isOptional==="function")return $.isOptional();return Q._def?.typeName==="ZodOptional"}function t9($){if(i0($)){let J=$._zod?.def;if(J){if(J.value!==void 0)return J.value;if(Array.isArray(J.values)&&J.values.length>0)return J.values[0]}}let X=$._def;if(X){if(X.value!==void 0)return X.value;if(Array.isArray(X.values)&&X.values.length>0)return X.values[0]}let W=$.value;if(W!==void 0)return W;return}var T8={};B$(T8,{time:()=>xX,duration:()=>gX,datetime:()=>kX,date:()=>_X,ZodISOTime:()=>dJ,ZodISODuration:()=>oJ,ZodISODateTime:()=>nJ,ZodISODate:()=>iJ});var nJ=w("ZodISODateTime",($,Q)=>{TJ.init($,Q),z0.init($,Q)});function kX($){return yJ(nJ,$)}var iJ=w("ZodISODate",($,Q)=>{vJ.init($,Q),z0.init($,Q)});function _X($){return hJ(iJ,$)}var dJ=w("ZodISOTime",($,Q)=>{kJ.init($,Q),z0.init($,Q)});function xX($){return fJ(dJ,$)}var oJ=w("ZodISODuration",($,Q)=>{_J.init($,Q),z0.init($,Q)});function gX($){return uJ(oJ,$)}var rJ=($,Q)=>{x9.init($,Q),$.name="ZodError",Object.defineProperties($,{format:{value:(X)=>p$($,X)},flatten:{value:(X)=>c$($,X)},addIssue:{value:(X)=>$.issues.push(X)},addIssues:{value:(X)=>$.issues.push(...X)},isEmpty:{get(){return $.issues.length===0}}})},LI=w("ZodError",rJ),v8=w("ZodError",rJ,{Parent:Error});var tJ=n$(v8),aJ=d$(v8),sJ=r$(v8),eJ=t$(v8);var O0=w("ZodType",($,Q)=>{return $0.init($,Q),$.def=Q,Object.defineProperty($,"_def",{value:Q}),$.check=(...X)=>{return $.clone({...Q,checks:[...Q.checks??[],...X.map((W)=>typeof W==="function"?{_zod:{check:W,def:{check:"custom"},onattach:[]}}:W)]})},$.clone=(X,W)=>p0($,X,W),$.brand=()=>$,$.register=(X,W)=>{return X.add($,W),$},$.parse=(X,W)=>tJ($,X,W,{callee:$.parse}),$.safeParse=(X,W)=>sJ($,X,W),$.parseAsync=async(X,W)=>aJ($,X,W,{callee:$.parseAsync}),$.safeParseAsync=async(X,W)=>eJ($,X,W),$.spa=$.safeParseAsync,$.refine=(X,W)=>$.check(UO(X,W)),$.superRefine=(X)=>$.check(wO(X)),$.overwrite=(X)=>$.check(J6(X)),$.optional=()=>A0($),$.nullable=()=>X7($),$.nullish=()=>A0(X7($)),$.nonoptional=(X)=>AO($,X),$.array=()=>d($),$.or=(X)=>B0([$,X]),$.and=(X)=>s9($,X),$.transform=(X)=>hX($,H7(X)),$.default=(X)=>HO($,X),$.prefault=(X)=>KO($,X),$.catch=(X)=>VO($,X),$.pipe=(X)=>hX($,X),$.readonly=()=>FO($),$.describe=(X)=>{let W=$.clone();return k1.add(W,{description:X}),W},Object.defineProperty($,"description",{get(){return k1.get($)?.description},configurable:!0}),$.meta=(...X)=>{if(X.length===0)return k1.get($);let W=$.clone();return k1.add(W,X[0]),W},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$}),W7=w("_ZodString",($,Q)=>{I8.init($,Q),O0.init($,Q);let X=$._zod.bag;$.format=X.format??null,$.minLength=X.minimum??null,$.maxLength=X.maximum??null,$.regex=(...W)=>$.check(UX(...W)),$.includes=(...W)=>$.check(qX(...W)),$.startsWith=(...W)=>$.check(MX(...W)),$.endsWith=(...W)=>$.check(EX(...W)),$.min=(...W)=>$.check(y6(...W)),$.max=(...W)=>$.check(i9(...W)),$.length=(...W)=>$.check(d9(...W)),$.nonempty=(...W)=>$.check(y6(1,...W)),$.lowercase=(W)=>$.check(wX(W)),$.uppercase=(W)=>$.check(bX(W)),$.trim=()=>$.check(SX()),$.normalize=(...W)=>$.check(jX(...W)),$.toLowerCase=()=>$.check(PX()),$.toUpperCase=()=>$.check(RX())}),ZV=w("ZodString",($,Q)=>{I8.init($,Q),W7.init($,Q),$.email=(X)=>$.check(nQ(TV,X)),$.url=(X)=>$.check(tQ(vV,X)),$.jwt=(X)=>$.check(AX(dV,X)),$.emoji=(X)=>$.check(aQ(kV,X)),$.guid=(X)=>$.check(m9($7,X)),$.uuid=(X)=>$.check(iQ(a9,X)),$.uuidv4=(X)=>$.check(dQ(a9,X)),$.uuidv6=(X)=>$.check(oQ(a9,X)),$.uuidv7=(X)=>$.check(rQ(a9,X)),$.nanoid=(X)=>$.check(sQ(_V,X)),$.guid=(X)=>$.check(m9($7,X)),$.cuid=(X)=>$.check(eQ(xV,X)),$.cuid2=(X)=>$.check($X(gV,X)),$.ulid=(X)=>$.check(QX(yV,X)),$.base64=(X)=>$.check(HX(pV,X)),$.base64url=(X)=>$.check(zX(nV,X)),$.xid=(X)=>$.check(XX(hV,X)),$.ksuid=(X)=>$.check(WX(fV,X)),$.ipv4=(X)=>$.check(YX(uV,X)),$.ipv6=(X)=>$.check(JX(lV,X)),$.cidrv4=(X)=>$.check(GX(mV,X)),$.cidrv6=(X)=>$.check(BX(cV,X)),$.e164=(X)=>$.check(KX(iV,X)),$.datetime=(X)=>$.check(kX(X)),$.date=(X)=>$.check(_X(X)),$.time=(X)=>$.check(xX(X)),$.duration=(X)=>$.check(gX(X))});function U($){return pQ(ZV,$)}var z0=w("ZodStringFormat",($,Q)=>{J0.init($,Q),W7.init($,Q)}),TV=w("ZodEmail",($,Q)=>{JQ.init($,Q),z0.init($,Q)});var $7=w("ZodGUID",($,Q)=>{WQ.init($,Q),z0.init($,Q)});var a9=w("ZodUUID",($,Q)=>{YQ.init($,Q),z0.init($,Q)});var vV=w("ZodURL",($,Q)=>{GQ.init($,Q),z0.init($,Q)});var kV=w("ZodEmoji",($,Q)=>{BQ.init($,Q),z0.init($,Q)});var _V=w("ZodNanoID",($,Q)=>{HQ.init($,Q),z0.init($,Q)});var xV=w("ZodCUID",($,Q)=>{zQ.init($,Q),z0.init($,Q)});var gV=w("ZodCUID2",($,Q)=>{KQ.init($,Q),z0.init($,Q)});var yV=w("ZodULID",($,Q)=>{AQ.init($,Q),z0.init($,Q)});var hV=w("ZodXID",($,Q)=>{LQ.init($,Q),z0.init($,Q)});var fV=w("ZodKSUID",($,Q)=>{VQ.init($,Q),z0.init($,Q)});var uV=w("ZodIPv4",($,Q)=>{OQ.init($,Q),z0.init($,Q)});var lV=w("ZodIPv6",($,Q)=>{DQ.init($,Q),z0.init($,Q)});var mV=w("ZodCIDRv4",($,Q)=>{FQ.init($,Q),z0.init($,Q)});var cV=w("ZodCIDRv6",($,Q)=>{NQ.init($,Q),z0.init($,Q)});var pV=w("ZodBase64",($,Q)=>{UQ.init($,Q),z0.init($,Q)});var nV=w("ZodBase64URL",($,Q)=>{wQ.init($,Q),z0.init($,Q)});var iV=w("ZodE164",($,Q)=>{bQ.init($,Q),z0.init($,Q)});var dV=w("ZodJWT",($,Q)=>{qQ.init($,Q),z0.init($,Q)});var Y7=w("ZodNumber",($,Q)=>{h9.init($,Q),O0.init($,Q),$.gt=(W,Y)=>$.check(p9(W,Y)),$.gte=(W,Y)=>$.check(Z8(W,Y)),$.min=(W,Y)=>$.check(Z8(W,Y)),$.lt=(W,Y)=>$.check(c9(W,Y)),$.lte=(W,Y)=>$.check(C8(W,Y)),$.max=(W,Y)=>$.check(C8(W,Y)),$.int=(W)=>$.check(Q7(W)),$.safe=(W)=>$.check(Q7(W)),$.positive=(W)=>$.check(p9(0,W)),$.nonnegative=(W)=>$.check(Z8(0,W)),$.negative=(W)=>$.check(c9(0,W)),$.nonpositive=(W)=>$.check(C8(0,W)),$.multipleOf=(W,Y)=>$.check(n9(W,Y)),$.step=(W,Y)=>$.check(n9(W,Y)),$.finite=()=>$;let X=$._zod.bag;$.minValue=Math.max(X.minimum??Number.NEGATIVE_INFINITY,X.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(X.maximum??Number.POSITIVE_INFINITY,X.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(X.format??"").includes("int")||Number.isSafeInteger(X.multipleOf??0.5),$.isFinite=!0,$.format=X.format??null});function e($){return LX(Y7,$)}var oV=w("ZodNumberFormat",($,Q)=>{MQ.init($,Q),Y7.init($,Q)});function Q7($){return VX(oV,$)}var rV=w("ZodBoolean",($,Q)=>{EQ.init($,Q),O0.init($,Q)});function U0($){return OX(rV,$)}var tV=w("ZodNull",($,Q)=>{jQ.init($,Q),O0.init($,Q)});function J7($){return DX(tV,$)}var aV=w("ZodUnknown",($,Q)=>{SQ.init($,Q),O0.init($,Q)});function K0(){return FX(aV)}var sV=w("ZodNever",($,Q)=>{PQ.init($,Q),O0.init($,Q)});function eV($){return NX(sV,$)}var $O=w("ZodArray",($,Q)=>{RQ.init($,Q),O0.init($,Q),$.element=Q.element,$.min=(X,W)=>$.check(y6(X,W)),$.nonempty=(X)=>$.check(y6(1,X)),$.max=(X,W)=>$.check(i9(X,W)),$.length=(X,W)=>$.check(d9(X,W)),$.unwrap=()=>$.element});function d($,Q){return lJ($O,$,Q)}var G7=w("ZodObject",($,Q)=>{f9.init($,Q),O0.init($,Q),i.defineLazy($,"shape",()=>Q.shape),$.keyof=()=>_0(Object.keys($._zod.def.shape)),$.catchall=(X)=>$.clone({...$._zod.def,catchall:X}),$.passthrough=()=>$.clone({...$._zod.def,catchall:K0()}),$.loose=()=>$.clone({...$._zod.def,catchall:K0()}),$.strict=()=>$.clone({...$._zod.def,catchall:eV()}),$.strip=()=>$.clone({...$._zod.def,catchall:void 0}),$.extend=(X)=>{return i.extend($,X)},$.merge=(X)=>i.merge($,X),$.pick=(X)=>i.pick($,X),$.omit=(X)=>i.omit($,X),$.partial=(...X)=>i.partial(z7,$,X[0]),$.required=(...X)=>i.required(K7,$,X[0])});function C($,Q){let X={type:"object",get shape(){return i.assignProp(this,"shape",{...$}),this.shape},...i.normalizeParams(Q)};return new G7(X)}function I0($,Q){return new G7({type:"object",get shape(){return i.assignProp(this,"shape",{...$}),this.shape},catchall:K0(),...i.normalizeParams(Q)})}var B7=w("ZodUnion",($,Q)=>{u9.init($,Q),O0.init($,Q),$.options=Q.options});function B0($,Q){return new B7({type:"union",options:$,...i.normalizeParams(Q)})}var QO=w("ZodDiscriminatedUnion",($,Q)=>{B7.init($,Q),IQ.init($,Q)});function fX($,Q,X){return new QO({type:"union",options:Q,discriminator:$,...i.normalizeParams(X)})}var XO=w("ZodIntersection",($,Q)=>{CQ.init($,Q),O0.init($,Q)});function s9($,Q){return new XO({type:"intersection",left:$,right:Q})}var WO=w("ZodRecord",($,Q)=>{ZQ.init($,Q),O0.init($,Q),$.keyType=Q.keyType,$.valueType=Q.valueType});function G0($,Q,X){return new WO({type:"record",keyType:$,valueType:Q,...i.normalizeParams(X)})}var yX=w("ZodEnum",($,Q)=>{TQ.init($,Q),O0.init($,Q),$.enum=Q.entries,$.options=Object.values(Q.entries);let X=new Set(Object.keys(Q.entries));$.extract=(W,Y)=>{let J={};for(let G of W)if(X.has(G))J[G]=Q.entries[G];else throw Error(`Key ${G} not found in enum`);return new yX({...Q,checks:[],...i.normalizeParams(Y),entries:J})},$.exclude=(W,Y)=>{let J={...Q.entries};for(let G of W)if(X.has(G))delete J[G];else throw Error(`Key ${G} not found in enum`);return new yX({...Q,checks:[],...i.normalizeParams(Y),entries:J})}});function _0($,Q){let X=Array.isArray($)?Object.fromEntries($.map((W)=>[W,W])):$;return new yX({type:"enum",entries:X,...i.normalizeParams(Q)})}var YO=w("ZodLiteral",($,Q)=>{vQ.init($,Q),O0.init($,Q),$.values=new Set(Q.values),Object.defineProperty($,"value",{get(){if(Q.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return Q.values[0]}})});function v($,Q){return new YO({type:"literal",values:Array.isArray($)?$:[$],...i.normalizeParams(Q)})}var JO=w("ZodTransform",($,Q)=>{kQ.init($,Q),O0.init($,Q),$._zod.parse=(X,W)=>{X.addIssue=(J)=>{if(typeof J==="string")X.issues.push(i.issue(J,X.value,Q));else{let G=J;if(G.fatal)G.continue=!1;G.code??(G.code="custom"),G.input??(G.input=X.value),G.inst??(G.inst=$),G.continue??(G.continue=!0),X.issues.push(i.issue(G))}};let Y=Q.transform(X.value,X);if(Y instanceof Promise)return Y.then((J)=>{return X.value=J,X});return X.value=Y,X}});function H7($){return new JO({type:"transform",transform:$})}var z7=w("ZodOptional",($,Q)=>{_Q.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType});function A0($){return new z7({type:"optional",innerType:$})}var GO=w("ZodNullable",($,Q)=>{xQ.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType});function X7($){return new GO({type:"nullable",innerType:$})}var BO=w("ZodDefault",($,Q)=>{gQ.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function HO($,Q){return new BO({type:"default",innerType:$,get defaultValue(){return typeof Q==="function"?Q():Q}})}var zO=w("ZodPrefault",($,Q)=>{yQ.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType});function KO($,Q){return new zO({type:"prefault",innerType:$,get defaultValue(){return typeof Q==="function"?Q():Q}})}var K7=w("ZodNonOptional",($,Q)=>{hQ.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType});function AO($,Q){return new K7({type:"nonoptional",innerType:$,...i.normalizeParams(Q)})}var LO=w("ZodCatch",($,Q)=>{fQ.init($,Q),O0.init($,Q),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function VO($,Q){return new LO({type:"catch",innerType:$,catchValue:typeof Q==="function"?Q:()=>Q})}var OO=w("ZodPipe",($,Q)=>{uQ.init($,Q),O0.init($,Q),$.in=Q.in,$.out=Q.out});function hX($,Q){return new OO({type:"pipe",in:$,out:Q})}var DO=w("ZodReadonly",($,Q)=>{lQ.init($,Q),O0.init($,Q)});function FO($){return new DO({type:"readonly",innerType:$})}var A7=w("ZodCustom",($,Q)=>{mQ.init($,Q),O0.init($,Q)});function NO($){let Q=new b0({check:"custom"});return Q._zod.check=$,Q}function L7($,Q){return IX(A7,$??(()=>!0),Q)}function UO($,Q={}){return CX(A7,$,Q)}function wO($){let Q=NO((X)=>{return X.addIssue=(W)=>{if(typeof W==="string")X.issues.push(i.issue(W,X.value,Q._zod.def));else{let Y=W;if(Y.fatal)Y.continue=!1;Y.code??(Y.code="custom"),Y.input??(Y.input=X.value),Y.inst??(Y.inst=Q),Y.continue??(Y.continue=!Q._zod.def.abort),X.issues.push(i.issue(Y))}},$(X.value,X)});return Q}function uX($,Q){return hX(H7($),Q)}c0(cQ());var lX="2025-11-25";var V7=[lX,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],g1="io.modelcontextprotocol/related-task",$4="2.0",N0=L7(($)=>$!==null&&(typeof $==="object"||typeof $==="function")),O7=B0([U(),e().int()]),D7=U(),PI=I0({ttl:e().optional(),pollInterval:e().optional()}),bO=C({ttl:e().optional()}),qO=C({taskId:U()}),mX=I0({progressToken:O7.optional(),[g1]:qO.optional()}),n0=C({_meta:mX.optional()}),k8=n0.extend({task:bO.optional()}),F7=($)=>k8.safeParse($).success,q0=C({method:U(),params:n0.loose().optional()}),d0=C({_meta:mX.optional()}),o0=C({method:U(),params:d0.loose().optional()}),M0=I0({_meta:mX.optional()}),Q4=B0([U(),e().int()]),N7=C({jsonrpc:v($4),id:Q4,...q0.shape}).strict(),cX=($)=>N7.safeParse($).success,U7=C({jsonrpc:v($4),...o0.shape}).strict(),w7=($)=>U7.safeParse($).success,pX=C({jsonrpc:v($4),id:Q4,result:M0}).strict(),_8=($)=>pX.safeParse($).success;var _;(function($){$[$.ConnectionClosed=-32000]="ConnectionClosed",$[$.RequestTimeout=-32001]="RequestTimeout",$[$.ParseError=-32700]="ParseError",$[$.InvalidRequest=-32600]="InvalidRequest",$[$.MethodNotFound=-32601]="MethodNotFound",$[$.InvalidParams=-32602]="InvalidParams",$[$.InternalError=-32603]="InternalError",$[$.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(_||(_={}));var nX=C({jsonrpc:v($4),id:Q4.optional(),error:C({code:e().int(),message:U(),data:K0().optional()})}).strict();var b7=($)=>nX.safeParse($).success;var RI=B0([N7,U7,pX,nX]),II=B0([pX,nX]),X4=M0.strict(),MO=d0.extend({requestId:Q4.optional(),reason:U().optional()}),W4=o0.extend({method:v("notifications/cancelled"),params:MO}),EO=C({src:U(),mimeType:U().optional(),sizes:d(U()).optional(),theme:_0(["light","dark"]).optional()}),x8=C({icons:d(EO).optional()}),f6=C({name:U(),title:U().optional()}),q7=f6.extend({...f6.shape,...x8.shape,version:U(),websiteUrl:U().optional(),description:U().optional()}),jO=s9(C({applyDefaults:U0().optional()}),G0(U(),K0())),SO=uX(($)=>{if($&&typeof $==="object"&&!Array.isArray($)){if(Object.keys($).length===0)return{form:{}}}return $},s9(C({form:jO.optional(),url:N0.optional()}),G0(U(),K0()).optional())),PO=I0({list:N0.optional(),cancel:N0.optional(),requests:I0({sampling:I0({createMessage:N0.optional()}).optional(),elicitation:I0({create:N0.optional()}).optional()}).optional()}),RO=I0({list:N0.optional(),cancel:N0.optional(),requests:I0({tools:I0({call:N0.optional()}).optional()}).optional()}),IO=C({experimental:G0(U(),N0).optional(),sampling:C({context:N0.optional(),tools:N0.optional()}).optional(),elicitation:SO.optional(),roots:C({listChanged:U0().optional()}).optional(),tasks:PO.optional(),extensions:G0(U(),N0).optional()}),CO=n0.extend({protocolVersion:U(),capabilities:IO,clientInfo:q7}),iX=q0.extend({method:v("initialize"),params:CO});var ZO=C({experimental:G0(U(),N0).optional(),logging:N0.optional(),completions:N0.optional(),prompts:C({listChanged:U0().optional()}).optional(),resources:C({subscribe:U0().optional(),listChanged:U0().optional()}).optional(),tools:C({listChanged:U0().optional()}).optional(),tasks:RO.optional(),extensions:G0(U(),N0).optional()}),TO=M0.extend({protocolVersion:U(),capabilities:ZO,serverInfo:q7,instructions:U().optional()}),dX=o0.extend({method:v("notifications/initialized"),params:d0.optional()});var Y4=q0.extend({method:v("ping"),params:n0.optional()}),vO=C({progress:e(),total:A0(e()),message:A0(U())}),kO=C({...d0.shape,...vO.shape,progressToken:O7}),J4=o0.extend({method:v("notifications/progress"),params:kO}),_O=n0.extend({cursor:D7.optional()}),g8=q0.extend({params:_O.optional()}),y8=M0.extend({nextCursor:D7.optional()}),xO=_0(["working","input_required","completed","failed","cancelled"]),h8=C({taskId:U(),status:xO,ttl:B0([e(),J7()]),createdAt:U(),lastUpdatedAt:U(),pollInterval:A0(e()),statusMessage:A0(U())}),u6=M0.extend({task:h8}),gO=d0.merge(h8),f8=o0.extend({method:v("notifications/tasks/status"),params:gO}),G4=q0.extend({method:v("tasks/get"),params:n0.extend({taskId:U()})}),B4=M0.merge(h8),H4=q0.extend({method:v("tasks/result"),params:n0.extend({taskId:U()})}),CI=M0.loose(),z4=g8.extend({method:v("tasks/list")}),K4=y8.extend({tasks:d(h8)}),A4=q0.extend({method:v("tasks/cancel"),params:n0.extend({taskId:U()})}),M7=M0.merge(h8),E7=C({uri:U(),mimeType:A0(U()),_meta:G0(U(),K0()).optional()}),j7=E7.extend({text:U()}),oX=U().refine(($)=>{try{return atob($),!0}catch{return!1}},{message:"Invalid Base64 string"}),S7=E7.extend({blob:oX}),u8=_0(["user","assistant"]),l6=C({audience:d(u8).optional(),priority:e().min(0).max(1).optional(),lastModified:T8.datetime({offset:!0}).optional()}),P7=C({...f6.shape,...x8.shape,uri:U(),description:A0(U()),mimeType:A0(U()),size:A0(e()),annotations:l6.optional(),_meta:A0(I0({}))}),yO=C({...f6.shape,...x8.shape,uriTemplate:U(),description:A0(U()),mimeType:A0(U()),annotations:l6.optional(),_meta:A0(I0({}))}),L4=g8.extend({method:v("resources/list")}),hO=y8.extend({resources:d(P7)}),V4=g8.extend({method:v("resources/templates/list")}),fO=y8.extend({resourceTemplates:d(yO)}),rX=n0.extend({uri:U()}),uO=rX,O4=q0.extend({method:v("resources/read"),params:uO}),lO=M0.extend({contents:d(B0([j7,S7]))}),mO=o0.extend({method:v("notifications/resources/list_changed"),params:d0.optional()}),cO=rX,pO=q0.extend({method:v("resources/subscribe"),params:cO}),nO=rX,iO=q0.extend({method:v("resources/unsubscribe"),params:nO}),dO=d0.extend({uri:U()}),oO=o0.extend({method:v("notifications/resources/updated"),params:dO}),rO=C({name:U(),description:A0(U()),required:A0(U0())}),tO=C({...f6.shape,...x8.shape,description:A0(U()),arguments:A0(d(rO)),_meta:A0(I0({}))}),D4=g8.extend({method:v("prompts/list")}),aO=y8.extend({prompts:d(tO)}),sO=n0.extend({name:U(),arguments:G0(U(),U()).optional()}),F4=q0.extend({method:v("prompts/get"),params:sO}),tX=C({type:v("text"),text:U(),annotations:l6.optional(),_meta:G0(U(),K0()).optional()}),aX=C({type:v("image"),data:oX,mimeType:U(),annotations:l6.optional(),_meta:G0(U(),K0()).optional()}),sX=C({type:v("audio"),data:oX,mimeType:U(),annotations:l6.optional(),_meta:G0(U(),K0()).optional()}),eO=C({type:v("tool_use"),name:U(),id:U(),input:G0(U(),K0()),_meta:G0(U(),K0()).optional()}),$D=C({type:v("resource"),resource:B0([j7,S7]),annotations:l6.optional(),_meta:G0(U(),K0()).optional()}),QD=P7.extend({type:v("resource_link")}),eX=B0([tX,aX,sX,QD,$D]),XD=C({role:u8,content:eX}),WD=M0.extend({description:U().optional(),messages:d(XD)}),YD=o0.extend({method:v("notifications/prompts/list_changed"),params:d0.optional()}),JD=C({title:U().optional(),readOnlyHint:U0().optional(),destructiveHint:U0().optional(),idempotentHint:U0().optional(),openWorldHint:U0().optional()}),GD=C({taskSupport:_0(["required","optional","forbidden"]).optional()}),R7=C({...f6.shape,...x8.shape,description:U().optional(),inputSchema:C({type:v("object"),properties:G0(U(),N0).optional(),required:d(U()).optional()}).catchall(K0()),outputSchema:C({type:v("object"),properties:G0(U(),N0).optional(),required:d(U()).optional()}).catchall(K0()).optional(),annotations:JD.optional(),execution:GD.optional(),_meta:G0(U(),K0()).optional()}),N4=g8.extend({method:v("tools/list")}),BD=y8.extend({tools:d(R7)}),U4=M0.extend({content:d(eX).default([]),structuredContent:G0(U(),K0()).optional(),isError:U0().optional()}),ZI=U4.or(M0.extend({toolResult:K0()})),HD=k8.extend({name:U(),arguments:G0(U(),K0()).optional()}),m6=q0.extend({method:v("tools/call"),params:HD}),zD=o0.extend({method:v("notifications/tools/list_changed"),params:d0.optional()}),TI=C({autoRefresh:U0().default(!0),debounceMs:e().int().nonnegative().default(300)}),l8=_0(["debug","info","notice","warning","error","critical","alert","emergency"]),KD=n0.extend({level:l8}),$5=q0.extend({method:v("logging/setLevel"),params:KD}),AD=d0.extend({level:l8,logger:U().optional(),data:K0()}),LD=o0.extend({method:v("notifications/message"),params:AD}),VD=C({name:U().optional()}),OD=C({hints:d(VD).optional(),costPriority:e().min(0).max(1).optional(),speedPriority:e().min(0).max(1).optional(),intelligencePriority:e().min(0).max(1).optional()}),DD=C({mode:_0(["auto","required","none"]).optional()}),FD=C({type:v("tool_result"),toolUseId:U().describe("The unique identifier for the corresponding tool call."),content:d(eX).default([]),structuredContent:C({}).loose().optional(),isError:U0().optional(),_meta:G0(U(),K0()).optional()}),ND=fX("type",[tX,aX,sX]),e9=fX("type",[tX,aX,sX,eO,FD]),UD=C({role:u8,content:B0([e9,d(e9)]),_meta:G0(U(),K0()).optional()}),wD=k8.extend({messages:d(UD),modelPreferences:OD.optional(),systemPrompt:U().optional(),includeContext:_0(["none","thisServer","allServers"]).optional(),temperature:e().optional(),maxTokens:e().int(),stopSequences:d(U()).optional(),metadata:N0.optional(),tools:d(R7).optional(),toolChoice:DD.optional()}),bD=q0.extend({method:v("sampling/createMessage"),params:wD}),m8=M0.extend({model:U(),stopReason:A0(_0(["endTurn","stopSequence","maxTokens"]).or(U())),role:u8,content:ND}),Q5=M0.extend({model:U(),stopReason:A0(_0(["endTurn","stopSequence","maxTokens","toolUse"]).or(U())),role:u8,content:B0([e9,d(e9)])}),qD=C({type:v("boolean"),title:U().optional(),description:U().optional(),default:U0().optional()}),MD=C({type:v("string"),title:U().optional(),description:U().optional(),minLength:e().optional(),maxLength:e().optional(),format:_0(["email","uri","date","date-time"]).optional(),default:U().optional()}),ED=C({type:_0(["number","integer"]),title:U().optional(),description:U().optional(),minimum:e().optional(),maximum:e().optional(),default:e().optional()}),jD=C({type:v("string"),title:U().optional(),description:U().optional(),enum:d(U()),default:U().optional()}),SD=C({type:v("string"),title:U().optional(),description:U().optional(),oneOf:d(C({const:U(),title:U()})),default:U().optional()}),PD=C({type:v("string"),title:U().optional(),description:U().optional(),enum:d(U()),enumNames:d(U()).optional(),default:U().optional()}),RD=B0([jD,SD]),ID=C({type:v("array"),title:U().optional(),description:U().optional(),minItems:e().optional(),maxItems:e().optional(),items:C({type:v("string"),enum:d(U())}),default:d(U()).optional()}),CD=C({type:v("array"),title:U().optional(),description:U().optional(),minItems:e().optional(),maxItems:e().optional(),items:C({anyOf:d(C({const:U(),title:U()}))}),default:d(U()).optional()}),ZD=B0([ID,CD]),TD=B0([PD,RD,ZD]),vD=B0([TD,qD,MD,ED]),kD=k8.extend({mode:v("form").optional(),message:U(),requestedSchema:C({type:v("object"),properties:G0(U(),vD),required:d(U()).optional()})}),_D=k8.extend({mode:v("url"),message:U(),elicitationId:U(),url:U().url()}),xD=B0([kD,_D]),gD=q0.extend({method:v("elicitation/create"),params:xD}),yD=d0.extend({elicitationId:U()}),hD=o0.extend({method:v("notifications/elicitation/complete"),params:yD}),c6=M0.extend({action:_0(["accept","decline","cancel"]),content:uX(($)=>$===null?void 0:$,G0(U(),B0([U(),e(),U0(),d(U())])).optional())}),fD=C({type:v("ref/resource"),uri:U()});var uD=C({type:v("ref/prompt"),name:U()}),lD=n0.extend({ref:B0([uD,fD]),argument:C({name:U(),value:U()}),context:C({arguments:G0(U(),U()).optional()}).optional()}),w4=q0.extend({method:v("completion/complete"),params:lD});function I7($){if($.params.ref.type!=="ref/prompt")throw TypeError(`Expected CompleteRequestPrompt, but got ${$.params.ref.type}`)}function C7($){if($.params.ref.type!=="ref/resource")throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${$.params.ref.type}`)}var mD=M0.extend({completion:I0({values:d(U()).max(100),total:A0(e().int()),hasMore:A0(U0())})}),cD=C({uri:U().startsWith("file://"),name:U().optional(),_meta:G0(U(),K0()).optional()}),pD=q0.extend({method:v("roots/list"),params:n0.optional()}),X5=M0.extend({roots:d(cD)}),nD=o0.extend({method:v("notifications/roots/list_changed"),params:d0.optional()}),vI=B0([Y4,iX,w4,$5,F4,D4,L4,V4,O4,pO,iO,m6,N4,G4,H4,z4,A4]),kI=B0([W4,J4,dX,nD,f8]),_I=B0([X4,m8,Q5,c6,X5,B4,K4,u6]),xI=B0([Y4,bD,gD,pD,G4,H4,z4,A4]),gI=B0([W4,J4,LD,oO,mO,zD,YD,f8,hD]),yI=B0([X4,TO,mD,WD,aO,hO,fO,lO,U4,BD,B4,K4,u6]);class T extends Error{constructor($,Q,X){super(`MCP error ${$}: ${Q}`);this.code=$,this.data=X,this.name="McpError"}static fromError($,Q,X){if($===_.UrlElicitationRequired&&X){let W=X;if(W.elicitations)return new Z7(W.elicitations,Q)}return new T($,Q,X)}}class Z7 extends T{constructor($,Q=`URL elicitation${$.length>1?"s":""} required`){super(_.UrlElicitationRequired,Q,{elicitations:$})}get elicitations(){return this.data?.elicitations??[]}}function y1($){return $==="completed"||$==="failed"||$==="cancelled"}var v7=Symbol("Let zodToJsonSchema decide on which parser to use");var T7={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},k7=($)=>typeof $==="string"?{...T7,name:$}:{...T7,...$};var _7=($)=>{let Q=k7($),X=Q.name!==void 0?[...Q.basePath,Q.definitionPath,Q.name]:Q.basePath;return{...Q,flags:{hasReferencedOpenAiAnyType:!1},currentPath:X,propertyPath:void 0,seen:new Map(Object.entries(Q.definitions).map(([W,Y])=>[Y._def,{def:Y._def,path:[...Q.basePath,Q.definitionPath,W],jsonSchema:void 0}]))}};function W5($,Q,X,W){if(!W?.errorMessages)return;if(X)$.errorMessage={...$.errorMessage,[Q]:X}}function o($,Q,X,W,Y){$[Q]=X,W5($,Q,W,Y)}var b4=($,Q)=>{let X=0;for(;X<$.length&&X<Q.length;X++)if($[X]!==Q[X])break;return[($.length-X).toString(),...Q.slice(X)].join("/")};function L0($){if($.target!=="openAi")return{};let Q=[...$.basePath,$.definitionPath,$.openAiAnyTypeName];return $.flags.hasReferencedOpenAiAnyType=!0,{$ref:$.$refStrategy==="relative"?b4(Q,$.currentPath):Q.join("/")}}function x7($,Q){let X={type:"array"};if($.type?._def&&$.type?._def?.typeName!==E.ZodAny)X.items=y($.type._def,{...Q,currentPath:[...Q.currentPath,"items"]});if($.minLength)o(X,"minItems",$.minLength.value,$.minLength.message,Q);if($.maxLength)o(X,"maxItems",$.maxLength.value,$.maxLength.message,Q);if($.exactLength)o(X,"minItems",$.exactLength.value,$.exactLength.message,Q),o(X,"maxItems",$.exactLength.value,$.exactLength.message,Q);return X}function g7($,Q){let X={type:"integer",format:"int64"};if(!$.checks)return X;for(let W of $.checks)switch(W.kind){case"min":if(Q.target==="jsonSchema7")if(W.inclusive)o(X,"minimum",W.value,W.message,Q);else o(X,"exclusiveMinimum",W.value,W.message,Q);else{if(!W.inclusive)X.exclusiveMinimum=!0;o(X,"minimum",W.value,W.message,Q)}break;case"max":if(Q.target==="jsonSchema7")if(W.inclusive)o(X,"maximum",W.value,W.message,Q);else o(X,"exclusiveMaximum",W.value,W.message,Q);else{if(!W.inclusive)X.exclusiveMaximum=!0;o(X,"maximum",W.value,W.message,Q)}break;case"multipleOf":o(X,"multipleOf",W.value,W.message,Q);break}return X}function y7(){return{type:"boolean"}}function q4($,Q){return y($.type._def,Q)}var h7=($,Q)=>{return y($.innerType._def,Q)};function Y5($,Q,X){let W=X??Q.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((Y,J)=>Y5($,Q,Y))};switch(W){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return iD($,Q)}}var iD=($,Q)=>{let X={type:"integer",format:"unix-time"};if(Q.target==="openApi3")return X;for(let W of $.checks)switch(W.kind){case"min":o(X,"minimum",W.value,W.message,Q);break;case"max":o(X,"maximum",W.value,W.message,Q);break}return X};function f7($,Q){return{...y($.innerType._def,Q),default:$.defaultValue()}}function u7($,Q){return Q.effectStrategy==="input"?y($.schema._def,Q):L0(Q)}function l7($){return{type:"string",enum:Array.from($.values)}}var dD=($)=>{if("type"in $&&$.type==="string")return!1;return"allOf"in $};function m7($,Q){let X=[y($.left._def,{...Q,currentPath:[...Q.currentPath,"allOf","0"]}),y($.right._def,{...Q,currentPath:[...Q.currentPath,"allOf","1"]})].filter((J)=>!!J),W=Q.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,Y=[];return X.forEach((J)=>{if(dD(J)){if(Y.push(...J.allOf),J.unevaluatedProperties===void 0)W=void 0}else{let G=J;if("additionalProperties"in J&&J.additionalProperties===!1){let{additionalProperties:B,...H}=J;G=H}else W=void 0;Y.push(G)}}),Y.length?{allOf:Y,...W}:void 0}function c7($,Q){let X=typeof $.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray($.value)?"array":"object"};if(Q.target==="openApi3")return{type:X==="bigint"?"integer":X,enum:[$.value]};return{type:X==="bigint"?"integer":X,const:$.value}}var J5=void 0,W1={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(J5===void 0)J5=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return J5},uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function M4($,Q){let X={type:"string"};if($.checks)for(let W of $.checks)switch(W.kind){case"min":o(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,W.value):W.value,W.message,Q);break;case"max":o(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,W.value):W.value,W.message,Q);break;case"email":switch(Q.emailStrategy){case"format:email":Y1(X,"email",W.message,Q);break;case"format:idn-email":Y1(X,"idn-email",W.message,Q);break;case"pattern:zod":C0(X,W1.email,W.message,Q);break}break;case"url":Y1(X,"uri",W.message,Q);break;case"uuid":Y1(X,"uuid",W.message,Q);break;case"regex":C0(X,W.regex,W.message,Q);break;case"cuid":C0(X,W1.cuid,W.message,Q);break;case"cuid2":C0(X,W1.cuid2,W.message,Q);break;case"startsWith":C0(X,RegExp(`^${G5(W.value,Q)}`),W.message,Q);break;case"endsWith":C0(X,RegExp(`${G5(W.value,Q)}$`),W.message,Q);break;case"datetime":Y1(X,"date-time",W.message,Q);break;case"date":Y1(X,"date",W.message,Q);break;case"time":Y1(X,"time",W.message,Q);break;case"duration":Y1(X,"duration",W.message,Q);break;case"length":o(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,W.value):W.value,W.message,Q),o(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,W.value):W.value,W.message,Q);break;case"includes":{C0(X,RegExp(G5(W.value,Q)),W.message,Q);break}case"ip":{if(W.version!=="v6")Y1(X,"ipv4",W.message,Q);if(W.version!=="v4")Y1(X,"ipv6",W.message,Q);break}case"base64url":C0(X,W1.base64url,W.message,Q);break;case"jwt":C0(X,W1.jwt,W.message,Q);break;case"cidr":{if(W.version!=="v6")C0(X,W1.ipv4Cidr,W.message,Q);if(W.version!=="v4")C0(X,W1.ipv6Cidr,W.message,Q);break}case"emoji":C0(X,W1.emoji(),W.message,Q);break;case"ulid":{C0(X,W1.ulid,W.message,Q);break}case"base64":{switch(Q.base64Strategy){case"format:binary":{Y1(X,"binary",W.message,Q);break}case"contentEncoding:base64":{o(X,"contentEncoding","base64",W.message,Q);break}case"pattern:zod":{C0(X,W1.base64,W.message,Q);break}}break}case"nanoid":C0(X,W1.nanoid,W.message,Q);case"toLowerCase":case"toUpperCase":case"trim":break;default:((Y)=>{})(W)}return X}function G5($,Q){return Q.patternStrategy==="escape"?rD($):$}var oD=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function rD($){let Q="";for(let X=0;X<$.length;X++){if(!oD.has($[X]))Q+="\\";Q+=$[X]}return Q}function Y1($,Q,X,W){if($.format||$.anyOf?.some((Y)=>Y.format)){if(!$.anyOf)$.anyOf=[];if($.format){if($.anyOf.push({format:$.format,...$.errorMessage&&W.errorMessages&&{errorMessage:{format:$.errorMessage.format}}}),delete $.format,$.errorMessage){if(delete $.errorMessage.format,Object.keys($.errorMessage).length===0)delete $.errorMessage}}$.anyOf.push({format:Q,...X&&W.errorMessages&&{errorMessage:{format:X}}})}else o($,"format",Q,X,W)}function C0($,Q,X,W){if($.pattern||$.allOf?.some((Y)=>Y.pattern)){if(!$.allOf)$.allOf=[];if($.pattern){if($.allOf.push({pattern:$.pattern,...$.errorMessage&&W.errorMessages&&{errorMessage:{pattern:$.errorMessage.pattern}}}),delete $.pattern,$.errorMessage){if(delete $.errorMessage.pattern,Object.keys($.errorMessage).length===0)delete $.errorMessage}}$.allOf.push({pattern:p7(Q,W),...X&&W.errorMessages&&{errorMessage:{pattern:X}}})}else o($,"pattern",p7(Q,W),X,W)}function p7($,Q){if(!Q.applyRegexFlags||!$.flags)return $.source;let X={i:$.flags.includes("i"),m:$.flags.includes("m"),s:$.flags.includes("s")},W=X.i?$.source.toLowerCase():$.source,Y="",J=!1,G=!1,B=!1;for(let H=0;H<W.length;H++){if(J){Y+=W[H],J=!1;continue}if(X.i){if(G){if(W[H].match(/[a-z]/)){if(B)Y+=W[H],Y+=`${W[H-2]}-${W[H]}`.toUpperCase(),B=!1;else if(W[H+1]==="-"&&W[H+2]?.match(/[a-z]/))Y+=W[H],B=!0;else Y+=`${W[H]}${W[H].toUpperCase()}`;continue}}else if(W[H].match(/[a-z]/)){Y+=`[${W[H]}${W[H].toUpperCase()}]`;continue}}if(X.m){if(W[H]==="^"){Y+=`(^|(?<=[\r
|
|
222
|
+
]))`;continue}else if(W[H]==="$"){Y+=`($|(?=[\r
|
|
223
|
+
]))`;continue}}if(X.s&&W[H]==="."){Y+=G?`${W[H]}\r
|
|
224
|
+
`:`[${W[H]}\r
|
|
225
|
+
]`;continue}if(Y+=W[H],W[H]==="\\")J=!0;else if(G&&W[H]==="]")G=!1;else if(!G&&W[H]==="[")G=!0}try{new RegExp(Y)}catch{return console.warn(`Could not convert regex pattern at ${Q.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),$.source}return Y}function E4($,Q){if(Q.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if(Q.target==="openApi3"&&$.keyType?._def.typeName===E.ZodEnum)return{type:"object",required:$.keyType._def.values,properties:$.keyType._def.values.reduce((W,Y)=>({...W,[Y]:y($.valueType._def,{...Q,currentPath:[...Q.currentPath,"properties",Y]})??L0(Q)}),{}),additionalProperties:Q.rejectedAdditionalProperties};let X={type:"object",additionalProperties:y($.valueType._def,{...Q,currentPath:[...Q.currentPath,"additionalProperties"]})??Q.allowedAdditionalProperties};if(Q.target==="openApi3")return X;if($.keyType?._def.typeName===E.ZodString&&$.keyType._def.checks?.length){let{type:W,...Y}=M4($.keyType._def,Q);return{...X,propertyNames:Y}}else if($.keyType?._def.typeName===E.ZodEnum)return{...X,propertyNames:{enum:$.keyType._def.values}};else if($.keyType?._def.typeName===E.ZodBranded&&$.keyType._def.type._def.typeName===E.ZodString&&$.keyType._def.type._def.checks?.length){let{type:W,...Y}=q4($.keyType._def,Q);return{...X,propertyNames:Y}}return X}function n7($,Q){if(Q.mapStrategy==="record")return E4($,Q);let X=y($.keyType._def,{...Q,currentPath:[...Q.currentPath,"items","items","0"]})||L0(Q),W=y($.valueType._def,{...Q,currentPath:[...Q.currentPath,"items","items","1"]})||L0(Q);return{type:"array",maxItems:125,items:{type:"array",items:[X,W],minItems:2,maxItems:2}}}function i7($){let Q=$.values,W=Object.keys($.values).filter((J)=>{return typeof Q[Q[J]]!=="number"}).map((J)=>Q[J]),Y=Array.from(new Set(W.map((J)=>typeof J)));return{type:Y.length===1?Y[0]==="string"?"string":"number":["string","number"],enum:W}}function d7($){return $.target==="openAi"?void 0:{not:L0({...$,currentPath:[...$.currentPath,"not"]})}}function o7($){return $.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var c8={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function t7($,Q){if(Q.target==="openApi3")return r7($,Q);let X=$.options instanceof Map?Array.from($.options.values()):$.options;if(X.every((W)=>(W._def.typeName in c8)&&(!W._def.checks||!W._def.checks.length))){let W=X.reduce((Y,J)=>{let G=c8[J._def.typeName];return G&&!Y.includes(G)?[...Y,G]:Y},[]);return{type:W.length>1?W:W[0]}}else if(X.every((W)=>W._def.typeName==="ZodLiteral"&&!W.description)){let W=X.reduce((Y,J)=>{let G=typeof J._def.value;switch(G){case"string":case"number":case"boolean":return[...Y,G];case"bigint":return[...Y,"integer"];case"object":if(J._def.value===null)return[...Y,"null"];case"symbol":case"undefined":case"function":default:return Y}},[]);if(W.length===X.length){let Y=W.filter((J,G,B)=>B.indexOf(J)===G);return{type:Y.length>1?Y:Y[0],enum:X.reduce((J,G)=>{return J.includes(G._def.value)?J:[...J,G._def.value]},[])}}}else if(X.every((W)=>W._def.typeName==="ZodEnum"))return{type:"string",enum:X.reduce((W,Y)=>[...W,...Y._def.values.filter((J)=>!W.includes(J))],[])};return r7($,Q)}var r7=($,Q)=>{let X=($.options instanceof Map?Array.from($.options.values()):$.options).map((W,Y)=>y(W._def,{...Q,currentPath:[...Q.currentPath,"anyOf",`${Y}`]})).filter((W)=>!!W&&(!Q.strictUnions||typeof W==="object"&&Object.keys(W).length>0));return X.length?{anyOf:X}:void 0};function a7($,Q){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes($.innerType._def.typeName)&&(!$.innerType._def.checks||!$.innerType._def.checks.length)){if(Q.target==="openApi3")return{type:c8[$.innerType._def.typeName],nullable:!0};return{type:[c8[$.innerType._def.typeName],"null"]}}if(Q.target==="openApi3"){let W=y($.innerType._def,{...Q,currentPath:[...Q.currentPath]});if(W&&"$ref"in W)return{allOf:[W],nullable:!0};return W&&{...W,nullable:!0}}let X=y($.innerType._def,{...Q,currentPath:[...Q.currentPath,"anyOf","0"]});return X&&{anyOf:[X,{type:"null"}]}}function s7($,Q){let X={type:"number"};if(!$.checks)return X;for(let W of $.checks)switch(W.kind){case"int":X.type="integer",W5(X,"type",W.message,Q);break;case"min":if(Q.target==="jsonSchema7")if(W.inclusive)o(X,"minimum",W.value,W.message,Q);else o(X,"exclusiveMinimum",W.value,W.message,Q);else{if(!W.inclusive)X.exclusiveMinimum=!0;o(X,"minimum",W.value,W.message,Q)}break;case"max":if(Q.target==="jsonSchema7")if(W.inclusive)o(X,"maximum",W.value,W.message,Q);else o(X,"exclusiveMaximum",W.value,W.message,Q);else{if(!W.inclusive)X.exclusiveMaximum=!0;o(X,"maximum",W.value,W.message,Q)}break;case"multipleOf":o(X,"multipleOf",W.value,W.message,Q);break}return X}function e7($,Q){let X=Q.target==="openAi",W={type:"object",properties:{}},Y=[],J=$.shape();for(let B in J){let H=J[B];if(H===void 0||H._def===void 0)continue;let z=aD(H);if(z&&X){if(H._def.typeName==="ZodOptional")H=H._def.innerType;if(!H.isNullable())H=H.nullable();z=!1}let K=y(H._def,{...Q,currentPath:[...Q.currentPath,"properties",B],propertyPath:[...Q.currentPath,"properties",B]});if(K===void 0)continue;if(W.properties[B]=K,!z)Y.push(B)}if(Y.length)W.required=Y;let G=tD($,Q);if(G!==void 0)W.additionalProperties=G;return W}function tD($,Q){if($.catchall._def.typeName!=="ZodNever")return y($.catchall._def,{...Q,currentPath:[...Q.currentPath,"additionalProperties"]});switch($.unknownKeys){case"passthrough":return Q.allowedAdditionalProperties;case"strict":return Q.rejectedAdditionalProperties;case"strip":return Q.removeAdditionalStrategy==="strict"?Q.allowedAdditionalProperties:Q.rejectedAdditionalProperties}}function aD($){try{return $.isOptional()}catch{return!0}}var $G=($,Q)=>{if(Q.currentPath.toString()===Q.propertyPath?.toString())return y($.innerType._def,Q);let X=y($.innerType._def,{...Q,currentPath:[...Q.currentPath,"anyOf","1"]});return X?{anyOf:[{not:L0(Q)},X]}:L0(Q)};var QG=($,Q)=>{if(Q.pipeStrategy==="input")return y($.in._def,Q);else if(Q.pipeStrategy==="output")return y($.out._def,Q);let X=y($.in._def,{...Q,currentPath:[...Q.currentPath,"allOf","0"]}),W=y($.out._def,{...Q,currentPath:[...Q.currentPath,"allOf",X?"1":"0"]});return{allOf:[X,W].filter((Y)=>Y!==void 0)}};function XG($,Q){return y($.type._def,Q)}function WG($,Q){let W={type:"array",uniqueItems:!0,items:y($.valueType._def,{...Q,currentPath:[...Q.currentPath,"items"]})};if($.minSize)o(W,"minItems",$.minSize.value,$.minSize.message,Q);if($.maxSize)o(W,"maxItems",$.maxSize.value,$.maxSize.message,Q);return W}function YG($,Q){if($.rest)return{type:"array",minItems:$.items.length,items:$.items.map((X,W)=>y(X._def,{...Q,currentPath:[...Q.currentPath,"items",`${W}`]})).reduce((X,W)=>W===void 0?X:[...X,W],[]),additionalItems:y($.rest._def,{...Q,currentPath:[...Q.currentPath,"additionalItems"]})};else return{type:"array",minItems:$.items.length,maxItems:$.items.length,items:$.items.map((X,W)=>y(X._def,{...Q,currentPath:[...Q.currentPath,"items",`${W}`]})).reduce((X,W)=>W===void 0?X:[...X,W],[])}}function JG($){return{not:L0($)}}function GG($){return L0($)}var BG=($,Q)=>{return y($.innerType._def,Q)};var HG=($,Q,X)=>{switch(Q){case E.ZodString:return M4($,X);case E.ZodNumber:return s7($,X);case E.ZodObject:return e7($,X);case E.ZodBigInt:return g7($,X);case E.ZodBoolean:return y7();case E.ZodDate:return Y5($,X);case E.ZodUndefined:return JG(X);case E.ZodNull:return o7(X);case E.ZodArray:return x7($,X);case E.ZodUnion:case E.ZodDiscriminatedUnion:return t7($,X);case E.ZodIntersection:return m7($,X);case E.ZodTuple:return YG($,X);case E.ZodRecord:return E4($,X);case E.ZodLiteral:return c7($,X);case E.ZodEnum:return l7($);case E.ZodNativeEnum:return i7($);case E.ZodNullable:return a7($,X);case E.ZodOptional:return $G($,X);case E.ZodMap:return n7($,X);case E.ZodSet:return WG($,X);case E.ZodLazy:return()=>$.getter()._def;case E.ZodPromise:return XG($,X);case E.ZodNaN:case E.ZodNever:return d7(X);case E.ZodEffects:return u7($,X);case E.ZodAny:return L0(X);case E.ZodUnknown:return GG(X);case E.ZodDefault:return f7($,X);case E.ZodBranded:return q4($,X);case E.ZodReadonly:return BG($,X);case E.ZodCatch:return h7($,X);case E.ZodPipeline:return QG($,X);case E.ZodFunction:case E.ZodVoid:case E.ZodSymbol:return;default:return((W)=>{return})(Q)}};function y($,Q,X=!1){let W=Q.seen.get($);if(Q.override){let B=Q.override?.($,Q,W,X);if(B!==v7)return B}if(W&&!X){let B=sD(W,Q);if(B!==void 0)return B}let Y={def:$,path:Q.currentPath,jsonSchema:void 0};Q.seen.set($,Y);let J=HG($,$.typeName,Q),G=typeof J==="function"?y(J(),Q):J;if(G)eD($,Q,G);if(Q.postProcess){let B=Q.postProcess(G,$,Q);return Y.jsonSchema=G,B}return Y.jsonSchema=G,G}var sD=($,Q)=>{switch(Q.$refStrategy){case"root":return{$ref:$.path.join("/")};case"relative":return{$ref:b4(Q.currentPath,$.path)};case"none":case"seen":{if($.path.length<Q.currentPath.length&&$.path.every((X,W)=>Q.currentPath[W]===X))return console.warn(`Recursive reference detected at ${Q.currentPath.join("/")}! Defaulting to any`),L0(Q);return Q.$refStrategy==="seen"?L0(Q):void 0}}},eD=($,Q,X)=>{if($.description){if(X.description=$.description,Q.markdownDescription)X.markdownDescription=$.description}return X};var B5=($,Q)=>{let X=_7(Q),W=typeof Q==="object"&&Q.definitions?Object.entries(Q.definitions).reduce((H,[z,K])=>({...H,[z]:y(K._def,{...X,currentPath:[...X.basePath,X.definitionPath,z]},!0)??L0(X)}),{}):void 0,Y=typeof Q==="string"?Q:Q?.nameStrategy==="title"?void 0:Q?.name,J=y($._def,Y===void 0?X:{...X,currentPath:[...X.basePath,X.definitionPath,Y]},!1)??L0(X),G=typeof Q==="object"&&Q.name!==void 0&&Q.nameStrategy==="title"?Q.name:void 0;if(G!==void 0)J.title=G;if(X.flags.hasReferencedOpenAiAnyType){if(!W)W={};if(!W[X.openAiAnyTypeName])W[X.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:X.$refStrategy==="relative"?"1":[...X.basePath,X.definitionPath,X.openAiAnyTypeName].join("/")}}}let B=Y===void 0?W?{...J,[X.definitionPath]:W}:J:{$ref:[...X.$refStrategy==="relative"?[]:X.basePath,X.definitionPath,Y].join("/"),[X.definitionPath]:{...W,[Y]:J}};if(X.target==="jsonSchema7")B.$schema="http://json-schema.org/draft-07/schema#";else if(X.target==="jsonSchema2019-09"||X.target==="openAi")B.$schema="https://json-schema.org/draft/2019-09/schema#";if(X.target==="openAi"&&(("anyOf"in B)||("oneOf"in B)||("allOf"in B)||("type"in B)&&Array.isArray(B.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return B};function $F($){if(!$)return"draft-7";if($==="jsonSchema7"||$==="draft-7")return"draft-7";if($==="jsonSchema2019-09"||$==="draft-2020-12")return"draft-2020-12";return"draft-7"}function H5($,Q){if(i0($))return TX($,{target:$F(Q?.target),io:Q?.pipeStrategy??"input"});return B5($,{strictUnions:Q?.strictUnions??!0,pipeStrategy:Q?.pipeStrategy??"input"})}function z5($){let X=x1($)?.method;if(!X)throw Error("Schema is missing a method literal");let W=t9(X);if(typeof W!=="string")throw Error("Schema method literal must be a string");return W}function K5($,Q){let X=_1($,Q);if(!X.success)throw X.error;return X.data}var QF=60000;class A5{constructor($){if(this._options=$,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(W4,(Q)=>{this._oncancel(Q)}),this.setNotificationHandler(J4,(Q)=>{this._onprogress(Q)}),this.setRequestHandler(Y4,(Q)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(G4,async(Q,X)=>{let W=await this._taskStore.getTask(Q.params.taskId,X.sessionId);if(!W)throw new T(_.InvalidParams,"Failed to retrieve task: Task not found");return{...W}}),this.setRequestHandler(H4,async(Q,X)=>{let W=async()=>{let Y=Q.params.taskId;if(this._taskMessageQueue){let G;while(G=await this._taskMessageQueue.dequeue(Y,X.sessionId)){if(G.type==="response"||G.type==="error"){let B=G.message,H=B.id,z=this._requestResolvers.get(H);if(z)if(this._requestResolvers.delete(H),G.type==="response")z(B);else{let K=B,L=new T(K.error.code,K.error.message,K.error.data);z(L)}else{let K=G.type==="response"?"Response":"Error";this._onerror(Error(`${K} handler missing for request ${H}`))}continue}await this._transport?.send(G.message,{relatedRequestId:X.requestId})}}let J=await this._taskStore.getTask(Y,X.sessionId);if(!J)throw new T(_.InvalidParams,`Task not found: ${Y}`);if(!y1(J.status))return await this._waitForTaskUpdate(Y,X.signal),await W();if(y1(J.status)){let G=await this._taskStore.getTaskResult(Y,X.sessionId);return this._clearTaskQueue(Y),{...G,_meta:{...G._meta,[g1]:{taskId:Y}}}}return await W()};return await W()}),this.setRequestHandler(z4,async(Q,X)=>{try{let{tasks:W,nextCursor:Y}=await this._taskStore.listTasks(Q.params?.cursor,X.sessionId);return{tasks:W,nextCursor:Y,_meta:{}}}catch(W){throw new T(_.InvalidParams,`Failed to list tasks: ${W instanceof Error?W.message:String(W)}`)}}),this.setRequestHandler(A4,async(Q,X)=>{try{let W=await this._taskStore.getTask(Q.params.taskId,X.sessionId);if(!W)throw new T(_.InvalidParams,`Task not found: ${Q.params.taskId}`);if(y1(W.status))throw new T(_.InvalidParams,`Cannot cancel task in terminal status: ${W.status}`);await this._taskStore.updateTaskStatus(Q.params.taskId,"cancelled","Client cancelled task execution.",X.sessionId),this._clearTaskQueue(Q.params.taskId);let Y=await this._taskStore.getTask(Q.params.taskId,X.sessionId);if(!Y)throw new T(_.InvalidParams,`Task not found after cancellation: ${Q.params.taskId}`);return{_meta:{},...Y}}catch(W){if(W instanceof T)throw W;throw new T(_.InvalidRequest,`Failed to cancel task: ${W instanceof Error?W.message:String(W)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,Q,X,W,Y=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(W,Q),startTime:Date.now(),timeout:Q,maxTotalTimeout:X,resetTimeoutOnProgress:Y,onTimeout:W})}_resetTimeout($){let Q=this._timeoutInfo.get($);if(!Q)return!1;let X=Date.now()-Q.startTime;if(Q.maxTotalTimeout&&X>=Q.maxTotalTimeout)throw this._timeoutInfo.delete($),T.fromError(_.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:Q.maxTotalTimeout,totalElapsed:X});return clearTimeout(Q.timeoutId),Q.timeoutId=setTimeout(Q.onTimeout,Q.timeout),!0}_cleanupTimeout($){let Q=this._timeoutInfo.get($);if(Q)clearTimeout(Q.timeoutId),this._timeoutInfo.delete($)}async connect($){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=$;let Q=this.transport?.onclose;this._transport.onclose=()=>{Q?.(),this._onclose()};let X=this.transport?.onerror;this._transport.onerror=(Y)=>{X?.(Y),this._onerror(Y)};let W=this._transport?.onmessage;this._transport.onmessage=(Y,J)=>{if(W?.(Y,J),_8(Y)||b7(Y))this._onresponse(Y);else if(cX(Y))this._onrequest(Y,J);else if(w7(Y))this._onnotification(Y);else this._onerror(Error(`Unknown message type: ${JSON.stringify(Y)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let X of this._timeoutInfo.values())clearTimeout(X.timeoutId);this._timeoutInfo.clear();for(let X of this._requestHandlerAbortControllers.values())X.abort();this._requestHandlerAbortControllers.clear();let Q=T.fromError(_.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let X of $.values())X(Q)}_onerror($){this.onerror?.($)}_onnotification($){let Q=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(Q===void 0)return;Promise.resolve().then(()=>Q($)).catch((X)=>this._onerror(Error(`Uncaught error in notification handler: ${X}`)))}_onrequest($,Q){let X=this._requestHandlers.get($.method)??this.fallbackRequestHandler,W=this._transport,Y=$.params?._meta?.[g1]?.taskId;if(X===void 0){let z={jsonrpc:"2.0",id:$.id,error:{code:_.MethodNotFound,message:"Method not found"}};if(Y&&this._taskMessageQueue)this._enqueueTaskMessage(Y,{type:"error",message:z,timestamp:Date.now()},W?.sessionId).catch((K)=>this._onerror(Error(`Failed to enqueue error response: ${K}`)));else W?.send(z).catch((K)=>this._onerror(Error(`Failed to send an error response: ${K}`)));return}let J=new AbortController;this._requestHandlerAbortControllers.set($.id,J);let G=F7($.params)?$.params.task:void 0,B=this._taskStore?this.requestTaskStore($,W?.sessionId):void 0,H={signal:J.signal,sessionId:W?.sessionId,_meta:$.params?._meta,sendNotification:async(z)=>{if(J.signal.aborted)return;let K={relatedRequestId:$.id};if(Y)K.relatedTask={taskId:Y};await this.notification(z,K)},sendRequest:async(z,K,L)=>{if(J.signal.aborted)throw new T(_.ConnectionClosed,"Request was cancelled");let V={...L,relatedRequestId:$.id};if(Y&&!V.relatedTask)V.relatedTask={taskId:Y};let A=V.relatedTask?.taskId??Y;if(A&&B)await B.updateTaskStatus(A,"input_required");return await this.request(z,K,V)},authInfo:Q?.authInfo,requestId:$.id,requestInfo:Q?.requestInfo,taskId:Y,taskStore:B,taskRequestedTtl:G?.ttl,closeSSEStream:Q?.closeSSEStream,closeStandaloneSSEStream:Q?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(G)this.assertTaskHandlerCapability($.method)}).then(()=>X($,H)).then(async(z)=>{if(J.signal.aborted)return;let K={result:z,jsonrpc:"2.0",id:$.id};if(Y&&this._taskMessageQueue)await this._enqueueTaskMessage(Y,{type:"response",message:K,timestamp:Date.now()},W?.sessionId);else await W?.send(K)},async(z)=>{if(J.signal.aborted)return;let K={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(z.code)?z.code:_.InternalError,message:z.message??"Internal error",...z.data!==void 0&&{data:z.data}}};if(Y&&this._taskMessageQueue)await this._enqueueTaskMessage(Y,{type:"error",message:K,timestamp:Date.now()},W?.sessionId);else await W?.send(K)}).catch((z)=>this._onerror(Error(`Failed to send response: ${z}`))).finally(()=>{if(this._requestHandlerAbortControllers.get($.id)===J)this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:Q,...X}=$.params,W=Number(Q),Y=this._progressHandlers.get(W);if(!Y){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let J=this._responseHandlers.get(W),G=this._timeoutInfo.get(W);if(G&&J&&G.resetTimeoutOnProgress)try{this._resetTimeout(W)}catch(B){this._responseHandlers.delete(W),this._progressHandlers.delete(W),this._cleanupTimeout(W),J(B);return}Y(X)}_onresponse($){let Q=Number($.id),X=this._requestResolvers.get(Q);if(X){if(this._requestResolvers.delete(Q),_8($))X($);else{let J=new T($.error.code,$.error.message,$.error.data);X(J)}return}let W=this._responseHandlers.get(Q);if(W===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(Q),this._cleanupTimeout(Q);let Y=!1;if(_8($)&&$.result&&typeof $.result==="object"){let J=$.result;if(J.task&&typeof J.task==="object"){let G=J.task;if(typeof G.taskId==="string")Y=!0,this._taskProgressTokens.set(G.taskId,Q)}}if(!Y)this._progressHandlers.delete(Q);if(_8($))W($);else{let J=T.fromError($.error.code,$.error.message,$.error.data);W(J)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,Q,X){let{task:W}=X??{};if(!W){try{yield{type:"result",result:await this.request($,Q,X)}}catch(J){yield{type:"error",error:J instanceof T?J:new T(_.InternalError,String(J))}}return}let Y;try{let J=await this.request($,u6,X);if(J.task)Y=J.task.taskId,yield{type:"taskCreated",task:J.task};else throw new T(_.InternalError,"Task creation did not return a task");while(!0){let G=await this.getTask({taskId:Y},X);if(yield{type:"taskStatus",task:G},y1(G.status)){if(G.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:Y},Q,X)};else if(G.status==="failed")yield{type:"error",error:new T(_.InternalError,`Task ${Y} failed`)};else if(G.status==="cancelled")yield{type:"error",error:new T(_.InternalError,`Task ${Y} was cancelled`)};return}if(G.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:Y},Q,X)};return}let B=G.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((H)=>setTimeout(H,B)),X?.signal?.throwIfAborted()}}catch(J){yield{type:"error",error:J instanceof T?J:new T(_.InternalError,String(J))}}}request($,Q,X){let{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:J,task:G,relatedTask:B}=X??{};return new Promise((H,z)=>{let K=(O)=>{z(O)};if(!this._transport){K(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),G)this.assertTaskCapability($.method)}catch(O){K(O);return}X?.signal?.throwIfAborted();let L=this._requestMessageId++,V={...$,jsonrpc:"2.0",id:L};if(X?.onprogress)this._progressHandlers.set(L,X.onprogress),V.params={...$.params,_meta:{...$.params?._meta||{},progressToken:L}};if(G)V.params={...V.params,task:G};if(B)V.params={...V.params,_meta:{...V.params?._meta||{},[g1]:B}};let A=(O)=>{this._responseHandlers.delete(L),this._progressHandlers.delete(L),this._cleanupTimeout(L),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:L,reason:String(O)}},{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:J}).catch((q)=>this._onerror(Error(`Failed to send cancellation: ${q}`)));let N=O instanceof T?O:new T(_.RequestTimeout,String(O));z(N)};this._responseHandlers.set(L,(O)=>{if(X?.signal?.aborted)return;if(O instanceof Error)return z(O);try{let N=_1(Q,O.result);if(!N.success)z(N.error);else H(N.data)}catch(N){z(N)}}),X?.signal?.addEventListener("abort",()=>{A(X?.signal?.reason)});let D=X?.timeout??QF,F=()=>A(T.fromError(_.RequestTimeout,"Request timed out",{timeout:D}));this._setupTimeout(L,D,X?.maxTotalTimeout,F,X?.resetTimeoutOnProgress??!1);let b=B?.taskId;if(b){let O=(N)=>{let q=this._responseHandlers.get(L);if(q)q(N);else this._onerror(Error(`Response handler missing for side-channeled request ${L}`))};this._requestResolvers.set(L,O),this._enqueueTaskMessage(b,{type:"request",message:V,timestamp:Date.now()}).catch((N)=>{this._cleanupTimeout(L),z(N)})}else this._transport.send(V,{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:J}).catch((O)=>{this._cleanupTimeout(L),z(O)})})}async getTask($,Q){return this.request({method:"tasks/get",params:$},B4,Q)}async getTaskResult($,Q,X){return this.request({method:"tasks/result",params:$},Q,X)}async listTasks($,Q){return this.request({method:"tasks/list",params:$},K4,Q)}async cancelTask($,Q){return this.request({method:"tasks/cancel",params:$},M7,Q)}async notification($,Q){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let X=Q?.relatedTask?.taskId;if(X){let G={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[g1]:Q.relatedTask}}};await this._enqueueTaskMessage(X,{type:"notification",message:G,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!Q?.relatedRequestId&&!Q?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let G={...$,jsonrpc:"2.0"};if(Q?.relatedTask)G={...G,params:{...G.params,_meta:{...G.params?._meta||{},[g1]:Q.relatedTask}}};this._transport?.send(G,Q).catch((B)=>this._onerror(B))});return}let J={...$,jsonrpc:"2.0"};if(Q?.relatedTask)J={...J,params:{...J.params,_meta:{...J.params?._meta||{},[g1]:Q.relatedTask}}};await this._transport.send(J,Q)}setRequestHandler($,Q){let X=z5($);this.assertRequestHandlerCapability(X),this._requestHandlers.set(X,(W,Y)=>{let J=K5($,W);return Promise.resolve(Q(J,Y))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,Q){let X=z5($);this._notificationHandlers.set(X,(W)=>{let Y=K5($,W);return Promise.resolve(Q(Y))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let Q=this._taskProgressTokens.get($);if(Q!==void 0)this._progressHandlers.delete(Q),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,Q,X){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let W=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,Q,X,W)}async _clearTaskQueue($,Q){if(this._taskMessageQueue){let X=await this._taskMessageQueue.dequeueAll($,Q);for(let W of X)if(W.type==="request"&&cX(W.message)){let Y=W.message.id,J=this._requestResolvers.get(Y);if(J)J(new T(_.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(Y);else this._onerror(Error(`Resolver missing for request ${Y} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,Q){let X=this._options?.defaultTaskPollInterval??1000;try{let W=await this._taskStore?.getTask($);if(W?.pollInterval)X=W.pollInterval}catch{}return new Promise((W,Y)=>{if(Q.aborted){Y(new T(_.InvalidRequest,"Request cancelled"));return}let J=setTimeout(W,X);Q.addEventListener("abort",()=>{clearTimeout(J),Y(new T(_.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,Q){let X=this._taskStore;if(!X)throw Error("No task store configured");return{createTask:async(W)=>{if(!$)throw Error("No request provided");return await X.createTask(W,$.id,{method:$.method,params:$.params},Q)},getTask:async(W)=>{let Y=await X.getTask(W,Q);if(!Y)throw new T(_.InvalidParams,"Failed to retrieve task: Task not found");return Y},storeTaskResult:async(W,Y,J)=>{await X.storeTaskResult(W,Y,J,Q);let G=await X.getTask(W,Q);if(G){let B=f8.parse({method:"notifications/tasks/status",params:G});if(await this.notification(B),y1(G.status))this._cleanupTaskProgressHandler(W)}},getTaskResult:(W)=>{return X.getTaskResult(W,Q)},updateTaskStatus:async(W,Y,J)=>{let G=await X.getTask(W,Q);if(!G)throw new T(_.InvalidParams,`Task "${W}" not found - it may have been cleaned up`);if(y1(G.status))throw new T(_.InvalidParams,`Cannot update task "${W}" from terminal status "${G.status}" to "${Y}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await X.updateTaskStatus(W,Y,J,Q);let B=await X.getTask(W,Q);if(B){let H=f8.parse({method:"notifications/tasks/status",params:B});if(await this.notification(H),y1(B.status))this._cleanupTaskProgressHandler(W)}},listTasks:(W)=>{return X.listTasks(W,Q)}}}}function zG($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function KG($,Q){let X={...$};for(let W in Q){let Y=W,J=Q[Y];if(J===void 0)continue;let G=X[Y];if(zG(G)&&zG(J))X[Y]={...G,...J};else X[Y]=J}return X}var iz=PW(GW(),1),dz=PW(nz(),1);function Ej(){let $=new iz.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return dz.default($),$}class FW{constructor($){this._ajv=$??Ej()}getValidator($){let Q="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(X)=>{if(Q(X))return{valid:!0,data:X,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(Q.errors)}}}}class NW{constructor($){this._server=$}requestStream($,Q,X){return this._server.requestStream($,Q,X)}createMessageStream($,Q){let X=this._server.getClientCapabilities();if(($.tools||$.toolChoice)&&!X?.sampling?.tools)throw Error("Client does not support sampling tools capability.");if($.messages.length>0){let W=$.messages[$.messages.length-1],Y=Array.isArray(W.content)?W.content:[W.content],J=Y.some((z)=>z.type==="tool_result"),G=$.messages.length>1?$.messages[$.messages.length-2]:void 0,B=G?Array.isArray(G.content)?G.content:[G.content]:[],H=B.some((z)=>z.type==="tool_use");if(J){if(Y.some((z)=>z.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!H)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(H){let z=new Set(B.filter((L)=>L.type==="tool_use").map((L)=>L.id)),K=new Set(Y.filter((L)=>L.type==="tool_result").map((L)=>L.toolUseId));if(z.size!==K.size||![...z].every((L)=>K.has(L)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:$},m8,Q)}elicitInputStream($,Q){let X=this._server.getClientCapabilities(),W=$.mode??"form";switch(W){case"url":{if(!X?.elicitation?.url)throw Error("Client does not support url elicitation.");break}case"form":{if(!X?.elicitation?.form)throw Error("Client does not support form elicitation.");break}}let Y=W==="form"&&$.mode===void 0?{...$,mode:"form"}:$;return this.requestStream({method:"elicitation/create",params:Y},c6,Q)}async getTask($,Q){return this._server.getTask({taskId:$},Q)}async getTaskResult($,Q,X){return this._server.getTaskResult({taskId:$},Q,X)}async listTasks($,Q){return this._server.listTasks($?{cursor:$}:void 0,Q)}async cancelTask($,Q){return this._server.cancelTask({taskId:$},Q)}}function oz($,Q,X){if(!$)throw Error(`${X} does not support task creation (required for ${Q})`);switch(Q){case"tools/call":if(!$.tools?.call)throw Error(`${X} does not support task creation for tools/call (required for ${Q})`);break;default:break}}function rz($,Q,X){if(!$)throw Error(`${X} does not support task creation (required for ${Q})`);switch(Q){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${X} does not support task creation for sampling/createMessage (required for ${Q})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${X} does not support task creation for elicitation/create (required for ${Q})`);break;default:break}}class UW extends A5{constructor($,Q){super(Q);if(this._serverInfo=$,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(l8.options.map((X,W)=>[X,W])),this.isMessageIgnored=(X,W)=>{let Y=this._loggingLevels.get(W);return Y?this.LOG_LEVEL_SEVERITY.get(X)<this.LOG_LEVEL_SEVERITY.get(Y):!1},this._capabilities=Q?.capabilities??{},this._instructions=Q?.instructions,this._jsonSchemaValidator=Q?.jsonSchemaValidator??new FW,this.setRequestHandler(iX,(X)=>this._oninitialize(X)),this.setNotificationHandler(dX,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler($5,async(X,W)=>{let Y=W.sessionId||W.requestInfo?.headers["mcp-session-id"]||void 0,{level:J}=X.params,G=l8.safeParse(J);if(G.success)this._loggingLevels.set(Y,G.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new NW(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=KG(this._capabilities,$)}setRequestHandler($,Q){let W=x1($)?.method;if(!W)throw Error("Schema is missing a method literal");let Y;if(i0(W)){let G=W;Y=G._zod?.def?.value??G.value}else{let G=W;Y=G._def?.value??G.value}if(typeof Y!=="string")throw Error("Schema method literal must be a string");if(Y==="tools/call"){let G=async(B,H)=>{let z=_1(m6,B);if(!z.success){let A=z.error instanceof Error?z.error.message:String(z.error);throw new T(_.InvalidParams,`Invalid tools/call request: ${A}`)}let{params:K}=z.data,L=await Promise.resolve(Q(B,H));if(K.task){let A=_1(u6,L);if(!A.success){let D=A.error instanceof Error?A.error.message:String(A.error);throw new T(_.InvalidParams,`Invalid task creation result: ${D}`)}return A.data}let V=_1(U4,L);if(!V.success){let A=V.error instanceof Error?V.error.message:String(V.error);throw new T(_.InvalidParams,`Invalid tools/call result: ${A}`)}return V.data};return super.setRequestHandler($,G)}return super.setRequestHandler($,Q)}assertCapabilityForMethod($){switch($){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${$})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${$})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${$})`);break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${$})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${$})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${$})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${$})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${$})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${$})`);break;case"ping":case"initialize":break}}assertTaskCapability($){rz(this._clientCapabilities?.tasks?.requests,$,"Client")}assertTaskHandlerCapability($){if(!this._capabilities)return;oz(this._capabilities.tasks?.requests,$,"Server")}async _oninitialize($){let Q=$.params.protocolVersion;return this._clientCapabilities=$.params.capabilities,this._clientVersion=$.params.clientInfo,{protocolVersion:V7.includes(Q)?Q:lX,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},X4)}async createMessage($,Q){if($.tools||$.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if($.messages.length>0){let X=$.messages[$.messages.length-1],W=Array.isArray(X.content)?X.content:[X.content],Y=W.some((H)=>H.type==="tool_result"),J=$.messages.length>1?$.messages[$.messages.length-2]:void 0,G=J?Array.isArray(J.content)?J.content:[J.content]:[],B=G.some((H)=>H.type==="tool_use");if(Y){if(W.some((H)=>H.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!B)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(B){let H=new Set(G.filter((K)=>K.type==="tool_use").map((K)=>K.id)),z=new Set(W.filter((K)=>K.type==="tool_result").map((K)=>K.toolUseId));if(H.size!==z.size||![...H].every((K)=>z.has(K)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if($.tools)return this.request({method:"sampling/createMessage",params:$},Q5,Q);return this.request({method:"sampling/createMessage",params:$},m8,Q)}async elicitInput($,Q){switch($.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let W=$;return this.request({method:"elicitation/create",params:W},c6,Q)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let W=$.mode==="form"?$:{...$,mode:"form"},Y=await this.request({method:"elicitation/create",params:W},c6,Q);if(Y.action==="accept"&&Y.content&&W.requestedSchema)try{let G=this._jsonSchemaValidator.getValidator(W.requestedSchema)(Y.content);if(!G.valid)throw new T(_.InvalidParams,`Elicitation response content does not match requested schema: ${G.errorMessage}`)}catch(J){if(J instanceof T)throw J;throw new T(_.InternalError,`Error validating elicitation response: ${J instanceof Error?J.message:String(J)}`)}return Y}}}createElicitationCompletionNotifier($,Q){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:$}},Q)}async listRoots($,Q){return this.request({method:"roots/list",params:$},X5,Q)}async sendLoggingMessage($,Q){if(this._capabilities.logging){if(!this.isMessageIgnored($.level,Q))return this.notification({method:"notifications/message",params:$})}}async sendResourceUpdated($){return this.notification({method:"notifications/resources/updated",params:$})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}var az=Symbol.for("mcp.completable");function wW($){return!!$&&typeof $==="object"&&az in $}function sz($){return $[az]?.complete}var tz;(function($){$.Completable="McpCompletable"})(tz||(tz={}));var jj=/^[A-Za-z0-9._-]{1,128}$/;function Sj($){let Q=[];if($.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if($.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${$.length})`]};if($.includes(" "))Q.push("Tool name contains spaces, which may cause parsing issues");if($.includes(","))Q.push("Tool name contains commas, which may cause parsing issues");if($.startsWith("-")||$.endsWith("-"))Q.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts");if($.startsWith(".")||$.endsWith("."))Q.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts");if(!jj.test($)){let X=$.split("").filter((W)=>!/[A-Za-z0-9._-]/.test(W)).filter((W,Y,J)=>J.indexOf(W)===Y);return Q.push(`Tool name contains invalid characters: ${X.map((W)=>`"${W}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:Q}}return{isValid:!0,warnings:Q}}function Pj($,Q){if(Q.length>0){console.warn(`Tool name validation warning for "${$}":`);for(let X of Q)console.warn(` - ${X}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function bW($){let Q=Sj($);return Pj($,Q.warnings),Q.isValid}class qW{constructor($){this._mcpServer=$}registerToolTask($,Q,X){let W={taskSupport:"required",...Q.execution};if(W.taskSupport==="forbidden")throw Error(`Cannot register task-based tool '${$}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool($,Q.title,Q.description,Q.inputSchema,Q.outputSchema,Q.annotations,W,Q._meta,X)}}class EW{constructor($,Q){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new UW($,Q)}get experimental(){if(!this._experimental)this._experimental={tasks:new qW(this)};return this._experimental}async connect($){return await this.server.connect($)}async close(){await this.server.close()}setToolRequestHandlers(){if(this._toolHandlersInitialized)return;this.server.assertCanSetRequestHandler(n1(N4)),this.server.assertCanSetRequestHandler(n1(m6)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(N4,()=>({tools:Object.entries(this._registeredTools).filter(([,$])=>$.enabled).map(([$,Q])=>{let X={name:$,title:Q.title,description:Q.description,inputSchema:(()=>{let W=h6(Q.inputSchema);return W?H5(W,{strictUnions:!0,pipeStrategy:"input"}):Rj})(),annotations:Q.annotations,execution:Q.execution,_meta:Q._meta};if(Q.outputSchema){let W=h6(Q.outputSchema);if(W)X.outputSchema=H5(W,{strictUnions:!0,pipeStrategy:"output"})}return X})})),this.server.setRequestHandler(m6,async($,Q)=>{try{let X=this._registeredTools[$.params.name];if(!X)throw new T(_.InvalidParams,`Tool ${$.params.name} not found`);if(!X.enabled)throw new T(_.InvalidParams,`Tool ${$.params.name} disabled`);let W=!!$.params.task,Y=X.execution?.taskSupport,J="createTask"in X.handler;if((Y==="required"||Y==="optional")&&!J)throw new T(_.InternalError,`Tool ${$.params.name} has taskSupport '${Y}' but was not registered with registerToolTask`);if(Y==="required"&&!W)throw new T(_.MethodNotFound,`Tool ${$.params.name} requires task augmentation (taskSupport: 'required')`);if(Y==="optional"&&!W&&J)return await this.handleAutomaticTaskPolling(X,$,Q);let G=await this.validateToolInput(X,$.params.arguments,$.params.name),B=await this.executeToolHandler(X,G,Q);if(W)return B;return await this.validateToolOutput(X,B,$.params.name),B}catch(X){if(X instanceof T){if(X.code===_.UrlElicitationRequired)throw X}return this.createToolError(X instanceof Error?X.message:String(X))}}),this._toolHandlersInitialized=!0}createToolError($){return{content:[{type:"text",text:$}],isError:!0}}async validateToolInput($,Q,X){if(!$.inputSchema)return;let Y=h6($.inputSchema)??$.inputSchema,J=await o9(Y,Q);if(!J.success){let G="error"in J?J.error:"Unknown error",B=r9(G);throw new T(_.InvalidParams,`Input validation error: Invalid arguments for tool ${X}: ${B}`)}return J.data}async validateToolOutput($,Q,X){if(!$.outputSchema)return;if(!("content"in Q))return;if(Q.isError)return;if(!Q.structuredContent)throw new T(_.InvalidParams,`Output validation error: Tool ${X} has an output schema but no structured content was provided`);let W=h6($.outputSchema),Y=await o9(W,Q.structuredContent);if(!Y.success){let J="error"in Y?Y.error:"Unknown error",G=r9(J);throw new T(_.InvalidParams,`Output validation error: Invalid structured content for tool ${X}: ${G}`)}}async executeToolHandler($,Q,X){let W=$.handler;if("createTask"in W){if(!X.taskStore)throw Error("No task store provided.");let J={...X,taskStore:X.taskStore};if($.inputSchema)return await Promise.resolve(W.createTask(Q,J));else return await Promise.resolve(W.createTask(J))}if($.inputSchema)return await Promise.resolve(W(Q,X));else return await Promise.resolve(W(X))}async handleAutomaticTaskPolling($,Q,X){if(!X.taskStore)throw Error("No task store provided for task-capable tool.");let W=await this.validateToolInput($,Q.params.arguments,Q.params.name),Y=$.handler,J={...X,taskStore:X.taskStore},G=W?await Promise.resolve(Y.createTask(W,J)):await Promise.resolve(Y.createTask(J)),B=G.task.taskId,H=G.task,z=H.pollInterval??5000;while(H.status!=="completed"&&H.status!=="failed"&&H.status!=="cancelled"){await new Promise((L)=>setTimeout(L,z));let K=await X.taskStore.getTask(B);if(!K)throw new T(_.InternalError,`Task ${B} not found during polling`);H=K}return await X.taskStore.getTaskResult(B)}setCompletionRequestHandler(){if(this._completionHandlerInitialized)return;this.server.assertCanSetRequestHandler(n1(w4)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(w4,async($)=>{switch($.params.ref.type){case"ref/prompt":return I7($),this.handlePromptCompletion($,$.params.ref);case"ref/resource":return C7($),this.handleResourceCompletion($,$.params.ref);default:throw new T(_.InvalidParams,`Invalid completion reference: ${$.params.ref}`)}}),this._completionHandlerInitialized=!0}async handlePromptCompletion($,Q){let X=this._registeredPrompts[Q.name];if(!X)throw new T(_.InvalidParams,`Prompt ${Q.name} not found`);if(!X.enabled)throw new T(_.InvalidParams,`Prompt ${Q.name} disabled`);if(!X.argsSchema)return V9;let Y=x1(X.argsSchema)?.[$.params.argument.name];if(!wW(Y))return V9;let J=sz(Y);if(!J)return V9;let G=await J($.params.argument.value,$.params.context);return $K(G)}async handleResourceCompletion($,Q){let X=Object.values(this._registeredResourceTemplates).find((J)=>J.resourceTemplate.uriTemplate.toString()===Q.uri);if(!X){if(this._registeredResources[Q.uri])return V9;throw new T(_.InvalidParams,`Resource template ${$.params.ref.uri} not found`)}let W=X.resourceTemplate.completeCallback($.params.argument.name);if(!W)return V9;let Y=await W($.params.argument.value,$.params.context);return $K(Y)}setResourceRequestHandlers(){if(this._resourceHandlersInitialized)return;this.server.assertCanSetRequestHandler(n1(L4)),this.server.assertCanSetRequestHandler(n1(V4)),this.server.assertCanSetRequestHandler(n1(O4)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(L4,async($,Q)=>{let X=Object.entries(this._registeredResources).filter(([Y,J])=>J.enabled).map(([Y,J])=>({uri:Y,name:J.name,...J.metadata})),W=[];for(let Y of Object.values(this._registeredResourceTemplates)){if(!Y.resourceTemplate.listCallback)continue;let J=await Y.resourceTemplate.listCallback(Q);for(let G of J.resources)W.push({...Y.metadata,...G})}return{resources:[...X,...W]}}),this.server.setRequestHandler(V4,async()=>{return{resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([Q,X])=>({name:Q,uriTemplate:X.resourceTemplate.uriTemplate.toString(),...X.metadata}))}}),this.server.setRequestHandler(O4,async($,Q)=>{let X=new URL($.params.uri),W=this._registeredResources[X.toString()];if(W){if(!W.enabled)throw new T(_.InvalidParams,`Resource ${X} disabled`);return W.readCallback(X,Q)}for(let Y of Object.values(this._registeredResourceTemplates)){let J=Y.resourceTemplate.uriTemplate.match(X.toString());if(J)return Y.readCallback(X,J,Q)}throw new T(_.InvalidParams,`Resource ${X} not found`)}),this._resourceHandlersInitialized=!0}setPromptRequestHandlers(){if(this._promptHandlersInitialized)return;this.server.assertCanSetRequestHandler(n1(D4)),this.server.assertCanSetRequestHandler(n1(F4)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(D4,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,$])=>$.enabled).map(([$,Q])=>{return{name:$,title:Q.title,description:Q.description,arguments:Q.argsSchema?Ij(Q.argsSchema):void 0}})})),this.server.setRequestHandler(F4,async($,Q)=>{let X=this._registeredPrompts[$.params.name];if(!X)throw new T(_.InvalidParams,`Prompt ${$.params.name} not found`);if(!X.enabled)throw new T(_.InvalidParams,`Prompt ${$.params.name} disabled`);if(X.argsSchema){let W=h6(X.argsSchema),Y=await o9(W,$.params.arguments);if(!Y.success){let B="error"in Y?Y.error:"Unknown error",H=r9(B);throw new T(_.InvalidParams,`Invalid arguments for prompt ${$.params.name}: ${H}`)}let J=Y.data,G=X.callback;return await Promise.resolve(G(J,Q))}else{let W=X.callback;return await Promise.resolve(W(Q))}}),this._promptHandlersInitialized=!0}resource($,Q,...X){let W;if(typeof X[0]==="object")W=X.shift();let Y=X[0];if(typeof Q==="string"){if(this._registeredResources[Q])throw Error(`Resource ${Q} is already registered`);let J=this._createRegisteredResource($,void 0,Q,W,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),J}else{if(this._registeredResourceTemplates[$])throw Error(`Resource template ${$} is already registered`);let J=this._createRegisteredResourceTemplate($,void 0,Q,W,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),J}}registerResource($,Q,X,W){if(typeof Q==="string"){if(this._registeredResources[Q])throw Error(`Resource ${Q} is already registered`);let Y=this._createRegisteredResource($,X.title,Q,X,W);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),Y}else{if(this._registeredResourceTemplates[$])throw Error(`Resource template ${$} is already registered`);let Y=this._createRegisteredResourceTemplate($,X.title,Q,X,W);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),Y}}_createRegisteredResource($,Q,X,W,Y){let J={name:$,title:Q,metadata:W,readCallback:Y,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({uri:null}),update:(G)=>{if(typeof G.uri<"u"&&G.uri!==X){if(delete this._registeredResources[X],G.uri)this._registeredResources[G.uri]=J}if(typeof G.name<"u")J.name=G.name;if(typeof G.title<"u")J.title=G.title;if(typeof G.metadata<"u")J.metadata=G.metadata;if(typeof G.callback<"u")J.readCallback=G.callback;if(typeof G.enabled<"u")J.enabled=G.enabled;this.sendResourceListChanged()}};return this._registeredResources[X]=J,J}_createRegisteredResourceTemplate($,Q,X,W,Y){let J={resourceTemplate:X,title:Q,metadata:W,readCallback:Y,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({name:null}),update:(H)=>{if(typeof H.name<"u"&&H.name!==$){if(delete this._registeredResourceTemplates[$],H.name)this._registeredResourceTemplates[H.name]=J}if(typeof H.title<"u")J.title=H.title;if(typeof H.template<"u")J.resourceTemplate=H.template;if(typeof H.metadata<"u")J.metadata=H.metadata;if(typeof H.callback<"u")J.readCallback=H.callback;if(typeof H.enabled<"u")J.enabled=H.enabled;this.sendResourceListChanged()}};this._registeredResourceTemplates[$]=J;let G=X.uriTemplate.variableNames;if(Array.isArray(G)&&G.some((H)=>!!X.completeCallback(H)))this.setCompletionRequestHandler();return J}_createRegisteredPrompt($,Q,X,W,Y){let J={title:Q,description:X,argsSchema:W===void 0?void 0:B6(W),callback:Y,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({name:null}),update:(G)=>{if(typeof G.name<"u"&&G.name!==$){if(delete this._registeredPrompts[$],G.name)this._registeredPrompts[G.name]=J}if(typeof G.title<"u")J.title=G.title;if(typeof G.description<"u")J.description=G.description;if(typeof G.argsSchema<"u")J.argsSchema=B6(G.argsSchema);if(typeof G.callback<"u")J.callback=G.callback;if(typeof G.enabled<"u")J.enabled=G.enabled;this.sendPromptListChanged()}};if(this._registeredPrompts[$]=J,W){if(Object.values(W).some((B)=>{let H=B instanceof m0?B._def?.innerType:B;return wW(H)}))this.setCompletionRequestHandler()}return J}_createRegisteredTool($,Q,X,W,Y,J,G,B,H){bW($);let z={title:Q,description:X,inputSchema:ez(W),outputSchema:ez(Y),annotations:J,execution:G,_meta:B,handler:H,enabled:!0,disable:()=>z.update({enabled:!1}),enable:()=>z.update({enabled:!0}),remove:()=>z.update({name:null}),update:(K)=>{if(typeof K.name<"u"&&K.name!==$){if(typeof K.name==="string")bW(K.name);if(delete this._registeredTools[$],K.name)this._registeredTools[K.name]=z}if(typeof K.title<"u")z.title=K.title;if(typeof K.description<"u")z.description=K.description;if(typeof K.paramsSchema<"u")z.inputSchema=B6(K.paramsSchema);if(typeof K.outputSchema<"u")z.outputSchema=B6(K.outputSchema);if(typeof K.callback<"u")z.handler=K.callback;if(typeof K.annotations<"u")z.annotations=K.annotations;if(typeof K._meta<"u")z._meta=K._meta;if(typeof K.enabled<"u")z.enabled=K.enabled;this.sendToolListChanged()}};return this._registeredTools[$]=z,this.setToolRequestHandlers(),this.sendToolListChanged(),z}tool($,...Q){if(this._registeredTools[$])throw Error(`Tool ${$} is already registered`);let X,W,Y,J;if(typeof Q[0]==="string")X=Q.shift();if(Q.length>1){let B=Q[0];if(MW(B)){if(W=Q.shift(),Q.length>1&&typeof Q[0]==="object"&&Q[0]!==null&&!MW(Q[0]))J=Q.shift()}else if(typeof B==="object"&&B!==null){if(Object.values(B).some((H)=>typeof H==="object"&&H!==null))throw Error(`Tool ${$} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);J=Q.shift()}}let G=Q[0];return this._createRegisteredTool($,void 0,X,W,Y,J,{taskSupport:"forbidden"},void 0,G)}registerTool($,Q,X){if(this._registeredTools[$])throw Error(`Tool ${$} is already registered`);let{title:W,description:Y,inputSchema:J,outputSchema:G,annotations:B,_meta:H}=Q;return this._createRegisteredTool($,W,Y,J,G,B,{taskSupport:"forbidden"},H,X)}prompt($,...Q){if(this._registeredPrompts[$])throw Error(`Prompt ${$} is already registered`);let X;if(typeof Q[0]==="string")X=Q.shift();let W;if(Q.length>1)W=Q.shift();let Y=Q[0],J=this._createRegisteredPrompt($,void 0,X,W,Y);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),J}registerPrompt($,Q,X){if(this._registeredPrompts[$])throw Error(`Prompt ${$} is already registered`);let{title:W,description:Y,argsSchema:J}=Q,G=this._createRegisteredPrompt($,W,Y,J,X);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),G}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage($,Q){return this.server.sendLoggingMessage($,Q)}sendResourceListChanged(){if(this.isConnected())this.server.sendResourceListChanged()}sendToolListChanged(){if(this.isConnected())this.server.sendToolListChanged()}sendPromptListChanged(){if(this.isConnected())this.server.sendPromptListChanged()}}var Rj={type:"object",properties:{}};function QK($){return $!==null&&typeof $==="object"&&"parse"in $&&typeof $.parse==="function"&&"safeParse"in $&&typeof $.safeParse==="function"}function XK($){return"_def"in $||"_zod"in $||QK($)}function MW($){if(typeof $!=="object"||$===null)return!1;if(XK($))return!1;if(Object.keys($).length===0)return!0;return Object.values($).some(QK)}function ez($){if(!$)return;if(MW($))return B6($);if(!XK($))throw Error("inputSchema must be a Zod schema or raw shape, received an unrecognized object");return $}function Ij($){let Q=x1($);if(!Q)return[];return Object.entries(Q).map(([X,W])=>{let Y=cJ(W),J=pJ(W);return{name:X,description:Y,required:!J}})}function n1($){let X=x1($)?.method;if(!X)throw Error("Schema is missing a method literal");let W=t9(X);if(typeof W==="string")return W;throw Error("Schema method literal must be a string")}function $K($){return{completion:{values:$.slice(0,100),total:$.length,hasMore:$.length>100}}}var V9={completion:{values:[],hasMore:!1}};import{existsSync as Cj}from"fs";import WK from"path";var Zj=process.platform==="win32"?"agent-browser.exe":"agent-browser";function Tj(){let $=import.meta.dir;for(let Q=0;Q<6;Q++){let X=WK.join($,"node_modules",".bin",Zj);if(Cj(X))return X;let W=WK.dirname($);if(W===$)break;$=W}return"agent-browser"}var vj=Tj();async function YK($,Q=80,X=1500){if(!$)return"";let W=$.getReader(),Y=new TextDecoder,J="",G=Date.now()+X;try{while(Date.now()<G){let B=new Promise((z)=>setTimeout(()=>z(null),Math.min(Q,G-Date.now()))),H=await Promise.race([W.read(),B]);if(!H||H.done)break;J+=Y.decode(H.value,{stream:!0})}}finally{W.releaseLock()}return J}async function JK($,Q=12000){return new Promise((X,W)=>{let Y=setTimeout(()=>{try{B.close()}catch{}W(Error("CDP connect timeout"))},Q),J=0,G=new Map,B=new WebSocket($);B.onerror=()=>{clearTimeout(Y),W(Error("CDP ws error"))},B.onmessage=(H)=>{let z=JSON.parse(String(H.data));if(z.id&&G.has(z.id))G.get(z.id)(z.result),G.delete(z.id)},B.onopen=()=>{clearTimeout(Y),X({call:(H,z,K)=>new Promise((L)=>{let V=++J;G.set(V,L),B.send(JSON.stringify({id:V,method:H,params:z??{},...K?{sessionId:K}:{}}))}),close:()=>{try{B.close()}catch{}}})}})}function kj($){try{let Q=$.replace(/-/g,"+").replace(/_/g,"/");Q=Q.replace(/\.+$/,"");while(Q.length%4)Q+="=";let X=Buffer.from(Q,"base64").toString("utf8"),W=new URL(X);return`${W.protocol}//${W.host}`.replace(/:443$/,"")}catch{return null}}async function _j($){let Q=await JK($);try{let{targetInfos:X}=await Q.call("Target.getTargets"),W=X.find((B)=>B.type==="page"&&/^https?:\/\//.test(B.url)&&!B.url.includes("google.com/recaptcha")&&!B.url.includes("recaptcha.net"));for(let B of X){if(!B.url.includes("recaptcha")&&!B.url.includes("captcha"))continue;let H=B.url.match(/[?&]k=([A-Za-z0-9_-]+)/);if(!H?.[1])continue;let z=/\/recaptcha\/enterprise\//.test(B.url),K=B.url.match(/[?&]sa=([^&]+)/)?.[1],L=B.url.match(/[?&]co=([^&]+)/)?.[1],V=L?kj(L):null,A=W?.url??B.url;if(V){let D=X.find((F)=>F.url.startsWith(V)&&/captcha/.test(F.url));A=D?D.url.split("?")[0]??V+"/":V+"/"}return{siteKey:H[1],pageUrl:A,isEnterprise:z,action:K}}if(!W)return null;let{sessionId:Y}=await Q.call("Target.attachToTarget",{targetId:W.targetId,flatten:!0});await Q.call("Runtime.enable",{},Y);let J=await Q.call("Runtime.evaluate",{expression:`(function() {
|
|
226
|
+
var key = null;
|
|
227
|
+
var el = document.querySelector('[data-sitekey]');
|
|
228
|
+
if (el) key = el.getAttribute('data-sitekey');
|
|
229
|
+
if (!key) { try {
|
|
230
|
+
var cfg = window.___grecaptcha_cfg || {};
|
|
231
|
+
var clients = cfg.clients || {};
|
|
232
|
+
outer: for (var id in clients) {
|
|
233
|
+
var c = clients[id]; if (!c) continue;
|
|
234
|
+
if (c.sitekey) { key = c.sitekey; break; }
|
|
235
|
+
for (var k in c) { if (c[k] && typeof c[k]==='object' && c[k].sitekey) { key = c[k].sitekey; break outer; } }
|
|
236
|
+
}
|
|
237
|
+
} catch(e) {} }
|
|
238
|
+
if (!key) { var ss = document.querySelectorAll('script[src*="recaptcha"]');
|
|
239
|
+
for (var i=0;i<ss.length;i++){var m=ss[i].src.match(/render=([^&]+)/);if(m&&m[1]!=='explicit'){key=m[1];break;}} }
|
|
240
|
+
return JSON.stringify({ key: key, url: location.href });
|
|
241
|
+
})()`,returnByValue:!0},Y),G=JSON.parse(J?.result?.value??"{}");if(!G.key)return null;return{siteKey:G.key,pageUrl:G.url??W.url,isEnterprise:!1}}finally{Q.close()}}var xj=($)=>`(function(token) {
|
|
242
|
+
var out = [];
|
|
243
|
+
// Fill every g-recaptcha-response textarea (main doc + same-frame).
|
|
244
|
+
document.querySelectorAll('textarea[name="g-recaptcha-response"],textarea#g-recaptcha-response,textarea[id^="g-recaptcha-response"]').forEach(function(el){el.value=token;el.innerHTML=token;});
|
|
245
|
+
// Walk grecaptcha config and fire whatever callback this frame owns.
|
|
246
|
+
try {
|
|
247
|
+
var cfg = window.___grecaptcha_cfg || {};
|
|
248
|
+
var clients = cfg.clients || {};
|
|
249
|
+
for (var id in clients) {
|
|
250
|
+
var c = clients[id]; if (!c) continue;
|
|
251
|
+
if (typeof c.callback==='function'){c.callback(token);out.push('direct');continue;}
|
|
252
|
+
for (var k in c){
|
|
253
|
+
var o = c[k];
|
|
254
|
+
if (o && typeof o==='object') {
|
|
255
|
+
if (typeof o.callback==='function'){o.callback(token);out.push('nested');}
|
|
256
|
+
for (var k2 in o){ if(o[k2]&&typeof o[k2]==='object'&&typeof o[k2].callback==='function'){o[k2].callback(token);out.push('nested2');} }
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
} catch(e){ out.push('cfg-err:'+e.message); }
|
|
261
|
+
// data-callback global function
|
|
262
|
+
try {
|
|
263
|
+
var el=document.querySelector('[data-callback]');
|
|
264
|
+
if(el){var cb=el.getAttribute('data-callback');if(cb&&typeof window[cb]==='function'){window[cb](token);out.push('attr');}}
|
|
265
|
+
} catch(e){}
|
|
266
|
+
return out.length ? out.join(',') : 'no-callback';
|
|
267
|
+
})(${JSON.stringify($)})`;async function gj($,Q){let X=await JK($);try{let{targetInfos:W}=await X.call("Target.getTargets"),Y=W.filter((G)=>(G.type==="page"||G.type==="iframe")&&/^https?:\/\//.test(G.url)),J=[];for(let G of Y)try{let{sessionId:B}=await X.call("Target.attachToTarget",{targetId:G.targetId,flatten:!0});await X.call("Runtime.enable",{},B);let z=(await X.call("Runtime.evaluate",{expression:xj(Q),returnByValue:!0},B))?.result?.value??"unknown";if(z&&z!=="no-callback"){let K=(()=>{try{return new URL(G.url).host}catch{return G.type}})();J.push(`${K}:${z}`)}}catch{}return J.length?J.join(" | "):"no-callback"}finally{X.close()}}function GK($){let Q=($.url??"http://127.0.0.1:8790").replace(/\/$/,""),X=$.token??"",W=$.twoCaptchaKey??"",Y=$.profile?.trim()||"default";async function J(O,N,q){let S=await fetch(`${Q}${N}`,{method:O,headers:{...q?{"content-type":"application/json"}:{},...X?{authorization:`Bearer ${X}`}:{}},body:q?JSON.stringify(q):void 0}),R=await S.text(),f=R;try{f=R?JSON.parse(R):null}catch{}if(!S.ok){let Q0=(f&&typeof f==="object"&&"error"in f?f.error:void 0)??`junso-browser ${S.status} ${S.statusText}`;throw Error(Q0)}return f}async function G(O){try{await J("POST","/api/profiles",{name:O})}catch(N){if(!/already exists/i.test(String(N)))throw N}}let B=null;async function H(){if(B&&B.id===Y)return B.url;await G(Y);let{cdpUrl:O}=await J("GET",`/api/profiles/${Y}/cdp`);return B={id:Y,url:O},O}async function z(O,N={}){let q=await H(),S=[vj,"--cdp",q,...O,...N.json?["--json"]:[]],R=Bun.spawn(S,{env:{...process.env,AGENT_BROWSER_SESSION:`jbmcp-${Y}`},stdout:"pipe",stderr:"pipe"}),f=setTimeout(()=>R.kill(),N.timeoutMs??120000),Q0=await R.exited;clearTimeout(f);let[u0,v0]=await Promise.all([YK(R.stdout),YK(R.stderr,60,300)]);return{ok:Q0===0,stdout:u0.trim(),stderr:v0.trim()}}async function K(O,N,q,S){if(!W)throw Error("TWOCAPTCHA_KEY not set \u2014 supply it from the connector (stdio: env; HTTP: x-twocaptcha-key header)");let R={type:q?"RecaptchaV2EnterpriseTaskProxyless":"RecaptchaV2TaskProxyless",websiteURL:N,websiteKey:O};if(q&&S)R.enterprisePayload={s:S};let Q0=await(await fetch("https://api.2captcha.com/createTask",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({clientKey:W,task:R})})).json();if(Q0.errorId||!Q0.taskId)throw Error(`2captcha create failed: ${Q0.errorCode??"unknown"}`);let u0=Q0.taskId;for(let v0=0;v0<36;v0++){await new Promise((a0)=>setTimeout(a0,5000));let R0=await(await fetch("https://api.2captcha.com/getTaskResult",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({clientKey:W,taskId:u0})})).json();if(R0.errorId)throw Error(`2captcha poll failed: ${R0.errorCode}`);if(R0.status==="ready"){let a0=R0.solution?.gRecaptchaResponse;if(!a0)throw Error("2captcha returned empty token");return a0}}throw Error("2captcha solve timeout (3 min)")}let L=new EW({name:"junso-browser",version:P9.version},{instructions:["junso-browser drives fingerprinted stealth-Chromium profiles over CDP. Each profile is a","separate identity: its own cookies/logins, device fingerprint, AND exit IP (proxy). Switch","identities with browser_switch_profile; cookies persist per profile on disk, so once a profile","is logged in it stays logged in.","","LOGGING IN / ANTI-BOT SITES (e.g. Reddit) \u2014 follow this recipe, because login success is gated","by EXIT-IP REPUTATION, not by the browser (the stealth + fingerprint are already handled):","0. Create the profile (browser_create_profile) with a RESIDENTIAL or MOBILE proxy and OMIT"," timezone/locale \u2014 they're auto-matched to the proxy's exit-IP region. Then verify with"," browser_exit_ip before attempting a login.","1. The profile needs a RESIDENTIAL or MOBILE proxy. Run browser_exit_ip \u2014 `kind` should be"," 'mobile' or 'residential'. 'hosting'/'proxy' (datacenter) IPs get flagged; expect failures."," Also check `tzMismatch` is false (fingerprint tz matches the IP \u2014 auto-set on create/set_proxy).","1b. Run browser_probe_ip \u2014 this opens a throw-away tab and checks the reCAPTCHA v3 score for"," the current exit IP (~20\u201330s). If `clean` is false (score < 0.8), the IP is already flagged;"," call browser_rotate_proxy and re-probe BEFORE wasting a login attempt on it.","2. Attempt the login ONCE: browser_fill the username + password, then click submit. Note many"," sites' submit buttons have NO type=submit \u2014 match by visible text/role via browser_snapshot."," If a reCAPTCHA checkpoint appears, call browser_solve_captcha to clear it.","3. If it fails (reCAPTCHA / 'something went wrong' / a 4xx), the cause is almost always the IP,"," not your input. Call browser_rotate_proxy to draw a FRESH exit IP, then retry from step 1b.","4. ONE login attempt per IP. Do NOT retry on the same IP \u2014 repeated failures degrade that IP's"," score. Stop as soon as a login succeeds.","Datacenter/no proxy \u2192 logins will likely fail no matter what; that is an IP problem, not a bug.","","PROXY-CLASS GUIDANCE (proven across many logins \u2014 `kind:residential` is necessary but NOT","sufficient; a range can read residential yet be blocklisted):","- Best class = DEDICATED STATIC RESIDENTIAL (one IP per credential, IP-in-the-URL, not a"," gateway pool) \u2014 first-try success every time. Prefer it over any rotating-gateway product.","- Reputation, not geography, is the gate: a clean residential range logs in regardless of"," country (still keep the profile tz/locale matched to the IP \u2014 auto-handled on create/set_proxy).","- KNOWN-BURNED, do not waste an attempt: Decodo dedicated-ISP product (isp.decodo.com / RCN"," range) hits a network-security block at the auth layer; Verizon Business; Comcast/AT&T/"," Spectrum/Cox/T-Mobile-CGNAT. exit_ip reports `kind:residential` for some of these \u2014 it does"," NOT catch them. If you recognize a burned ISP, rotate_proxy immediately rather than attempt.","","AFTER A SUCCESSFUL LOGIN \u2014 do NOT drive the account hard. Fresh accounts shadowban on","post-login behavior: no posting/commenting day 1 (browse + a few upvotes only), no external","links for ~7 days, keep ONE profile+IP per account, and throttle actions (bursts are THE","shadowban trigger). The session persists on disk, so log in once and use it lightly.","","TOOL CATALOG: drive (status/navigate/snapshot/click/fill/type/press/select/scroll/wait/read/","eval/screenshot/exec) \xB7 identity (list_profiles/switch_profile/create_profile) \xB7 proxy+IP","(get_proxy/set_proxy/exit_ip/rotate_proxy/probe_ip) \xB7 captcha (solve_captcha)."].join(`
|
|
268
|
+
`)}),V=(O)=>({content:[{type:"text",text:typeof O==="string"?O:JSON.stringify(O,null,2)}]}),A=(O)=>({content:[{type:"text",text:`Error: ${O instanceof Error?O.message:String(O)}`}],isError:!0}),D="Drives the active junso-browser profile (a fingerprinted stealth browser) over CDP. Switch identity with browser_switch_profile.";L.tool("browser_status","Current page URL + title + the active profile (browser identity). "+D,{},async()=>{try{let[O,N]=await Promise.all([z(["get","url"]),z(["get","title"])]);return V({profile:Y,url:O.stdout,title:N.stdout})}catch(O){return A(O)}}),L.tool("browser_navigate","Navigate the browser to a URL. "+D,{url:s.string().describe("Absolute URL, e.g. https://www.reddit.com")},async({url:O})=>{try{let N=await z(["open",O],{timeoutMs:120000});return N.ok?V({navigated:O}):A(N.stderr||N.stdout||"navigate failed")}catch(N){return A(N)}}),L.tool("browser_snapshot","Accessibility snapshot with @ref handles (decide what to click/fill). @refs go stale on any "+"page change \u2014 re-snapshot before reusing them. "+D,{interactive:s.boolean().optional().describe("Only interactive elements (default true)")},async({interactive:O})=>{try{let N=await z(["snapshot",...O===!1?[]:["-i"]],{timeoutMs:60000});return N.ok?V(N.stdout):A(N.stderr||"snapshot failed")}catch(N){return A(N)}});let F=s.string().describe("An @ref like '@e12' or a CSS selector"),b=(O,N,q,S)=>L.tool(O,S+" "+D,q,async(R)=>{try{let f=await z(N(R));return f.ok?V({ok:!0,stdout:f.stdout}):A(f.stderr||f.stdout||`${O} failed`)}catch(f){return A(f)}});return b("browser_click",(O)=>["click",O.target],{target:F},"Click an @ref or CSS selector."),b("browser_fill",(O)=>["fill",O.target,O.text],{target:F,text:s.string()},"Clear + fill an input."),b("browser_type",(O)=>["type",O.target,O.text],{target:F,text:s.string()},"Type into an element WITHOUT clearing."),b("browser_press",(O)=>["press",O.key],{key:s.string().describe("e.g. Enter, Tab, Control+a")},"Press a key/combo."),b("browser_select",(O)=>["select",O.target,O.value],{target:F,value:s.string()},"Select a dropdown option by value."),b("browser_scroll",(O)=>["scroll",O.direction??"down",...O.amount?[O.amount]:[]],{direction:s.enum(["up","down","left","right"]).optional(),amount:s.string().optional()},"Scroll the page."),L.tool("browser_wait","Wait for a selector, text, or ms before continuing (after an async navigation/click). "+D,{selector:s.string().optional(),text:s.string().optional(),ms:s.number().optional()},async({selector:O,text:N,ms:q})=>{try{let S=O?["wait",O]:N?["wait","--text",N]:q?["wait",String(q)]:null;if(!S)return A("provide selector, text, or ms");let R=await z(S,{timeoutMs:60000});return R.ok?V({waited:!0}):A(R.stderr||"wait failed")}catch(S){return A(S)}}),L.tool("browser_read","Read visible text (whole page if no selector). "+D,{selector:s.string().optional()},async({selector:O})=>{try{let N=await z(O?["get","text",O]:["get","text","body"]);return N.ok?V(N.stdout):A(N.stderr||"read failed")}catch(N){return A(N)}}),L.tool("browser_eval","Run a JavaScript expression in the page and return its result. "+D,{expression:s.string()},async({expression:O})=>{try{let N=await z(["eval",O],{timeoutMs:30000});return N.ok?V(N.stdout):A(N.stderr||"eval failed")}catch(N){return A(N)}}),L.tool("browser_screenshot","Capture a screenshot; returns the saved path. "+D,{},async()=>{try{let O=`shot-${Date.now()}.png`,N=await z(["screenshot",O],{timeoutMs:60000});return N.ok?V({path:O}):A(N.stderr||"screenshot failed")}catch(O){return A(O)}}),L.tool("browser_exec","Run ANY agent-browser command on the active profile (escape hatch): e.g. ['tab','new',url], ['hover','@e5'], ['network','requests']. Returns {ok,stdout,stderr}. "+D,{args:s.array(s.string())},async({args:O})=>{try{if(O[0]==="close")return A("`close` is not allowed \u2014 junso-browser owns the browser lifecycle");return V(await z(O))}catch(N){return A(N)}}),L.tool("browser_list_profiles","List the junso-browser identities (each has its own cookies/login + device fingerprint). The active one is what these tools drive.",{},async()=>{try{let{profiles:O}=await J("GET","/api/profiles");return V({active:Y,profiles:O})}catch(O){return A(O)}}),L.tool("browser_switch_profile","Switch the active browser identity (creates it on the host if new). Subsequent browser tools drive that profile's fingerprinted browser.",{name:s.string()},async({name:O})=>{try{return Y=O.trim(),B=null,await G(Y),V({active:Y})}catch(N){return A(N)}}),L.tool("browser_create_profile","Create a browser identity with its own DEVICE FINGERPRINT + PROXY (exit IP). Each profile is a separate, isolated browser (own cookies/login, own canvas/WebGL/timezone, own IP). Use a residential/mobile proxy to avoid datacenter-IP blocks.",{name:s.string().describe("Profile id/name, e.g. 'acct-a'"),proxy:s.string().optional().describe("http://user:pass@host:port or socks5://user:pass@host:port"),platform:s.enum(["windows","macos"]).optional().describe("OS to present (default windows)"),timezone:s.string().optional().describe("IANA tz, e.g. America/New_York. Omit to AUTO-match the proxy's exit-IP region."),locale:s.string().optional().describe("BCP-47, e.g. en-US. Omit to AUTO-match the proxy's country."),seed:s.number().optional().describe("Fingerprint seed (same seed = same device); omit for random")},async({name:O,proxy:N,platform:q,timezone:S,locale:R,seed:f})=>{try{let Q0=await J("POST","/api/profiles",{name:O,proxy:N,fingerprint:{seed:f,platform:q,timezone:S,locale:R}});return V(Q0)}catch(Q0){return A(Q0)}}),L.tool("browser_set_proxy","Set (or clear) a profile's PROXY / exit IP. Empty/omitted `proxy` clears it (direct connection). The fingerprint timezone/locale are AUTO-re-synced to the new proxy's exit-IP region. The proxy binds at browser launch, so this restarts that profile's browser to apply.",{name:s.string().optional().describe("Profile (default: the active one)"),proxy:s.string().optional().describe("http://user:pass@host:port or socks5://\u2026 ; empty/omit to clear")},async({name:O,proxy:N})=>{try{let q=O?.trim()||Y,S=N&&N.trim()?N.trim():null,{profile:R}=await J("PATCH",`/api/profiles/${q}`,{proxy:S});if(await J("POST",`/api/profiles/${q}/stop`).catch(()=>{}),q===Y)B=null;return V({profile:q,proxy:R.proxy??null})}catch(q){return A(q)}}),L.tool("browser_get_proxy","Show the proxy / exit IP CONFIGURED for a profile (default: the active one), password-masked. For the LIVE exit IP + reputation, use browser_exit_ip.",{name:s.string().optional().describe("Profile (default: the active one)")},async({name:O})=>{try{let N=O?.trim()||Y,{profile:q}=await J("GET",`/api/profiles/${N}`);return V({profile:N,proxy:q.proxy??null})}catch(N){return A(N)}}),L.tool("browser_exit_ip","LIVE exit IP + geo HEALTH of a profile's proxy \u2014 the IP/identity sites actually see: "+"{ip,country,isp,kind,timezone,tzMismatch}. `kind` = mobile|residential|hosting|proxy (mobile/residential pass anti-bot/login checks; hosting/proxy get flagged). `tzMismatch`=true means the fingerprint timezone no longer matches the IP. Check this before/after a login or when anti-bot checks fail.",{name:s.string().optional().describe("Profile (default: the active one)")},async({name:O})=>{try{let N=O?.trim()||Y;return V(await J("GET",`/api/profiles/${N}/exit-ip`))}catch(N){return A(N)}}),L.tool("browser_probe_ip","Check the reCAPTCHA v3 score for a profile's current exit IP by opening a throw-away tab on "+"antcpt.com/score_detector. Returns {score, clean, ip, isp, kind}. `clean`=true means score\u22650.8 "+"\u2014 the IP is not flagged and is safe to use for a login attempt. If `clean`=false, call "+"browser_rotate_proxy and re-probe before attempting login. Takes ~20\u201330s. Does NOT require an "+"account and does NOT touch the target site \u2014 safe to call as many times as needed.",{name:s.string().optional().describe("Profile (default: the active one)")},async({name:O})=>{try{let N=O?.trim()||Y;return V(await J("GET",`/api/profiles/${N}/probe`))}catch(N){return A(N)}}),L.tool("browser_solve_captcha","Solve the reCAPTCHA on the current page using 2captcha (~20\u201360s). Extracts the site key via CDP, "+"sends it to 2captcha, waits for the token, injects it, and triggers the callback \u2014 all "+"automatically. Use when a login hits a reCAPTCHA checkpoint page. Requires a 2captcha key in env.",{enterprise:s.boolean().optional().describe("Force Enterprise task type. Default: auto-detected from the widget (Instagram/Meta/Google = Enterprise)")},async({enterprise:O})=>{try{if(!W)return A("TWOCAPTCHA_KEY not set \u2014 supply it from the connector (stdio: env; HTTP: x-twocaptcha-key header)");let N=await H(),q=await _j(N);if(!q)return A("Could not find reCAPTCHA site key on the current page \u2014 are you on a CAPTCHA page?");let S=O??q.isEnterprise,R=await K(q.siteKey,q.pageUrl,S,q.action),f=await gj(N,R);return V({solved:!0,siteKey:q.siteKey,pageUrl:q.pageUrl,enterprise:S,action:q.action,callbackResult:f})}catch(N){return A(N)}}),L.tool("browser_rotate_proxy","Draw a FRESH exit IP for a profile by rotating its proxy's sticky session id, and auto-re-sync "+"the fingerprint (timezone/locale) to the new IP. Use when the current IP is flagged \u2014 e.g. a "+"login or anti-bot check fails (success is gated by exit-IP reputation, not the browser). Restarts that profile's browser on next use. Errors if the proxy has no rotatable session id.",{name:s.string().optional().describe("Profile (default: the active one)")},async({name:O})=>{try{let N=O?.trim()||Y,q=await J("POST",`/api/profiles/${N}/rotate-proxy`);if(N===Y)B=null;return V({profile:N,exitIp:q.exitIp??null,country:q.country??null,isp:q.isp??null,kind:q.kind??null})}catch(N){return A(N)}}),L}var BK=P9.version;function yj($,Q){let X=$.headers.get("authorization");if(X?.startsWith("Bearer "))return X.slice(7);return $.headers.get("x-junso-token")??Q.searchParams.get("token")}function Y8($,Q){if(!p.token)return j9();return yj($,Q)===p.token}function SW($){let Q=p.publicUrl?.replace(/\/$/,"")??`ws://${p.host==="0.0.0.0"?"127.0.0.1":p.host}:${p.port}`,X=p.token?`?token=${encodeURIComponent(p.token)}`:"";return`${Q}/cdp/${$}${X}`}async function hj($,Q,X){if(!Y8($,Q))return new Response("Unauthorized",{status:401});let W=Q.pathname.slice(5),Y=W.split("/")[0]??"",J=await A1(Y);if(!J)return new Response("No such profile",{status:404});let G;try{G=await w6(J)}catch(H){return new Response(`Launch failed: ${H instanceof Error?H.message:H}`,{status:502})}if(JY(Y),$.headers.get("upgrade")?.toLowerCase()==="websocket"){let H=`ws://127.0.0.1:${G.port}${G.browserWsPath}`;return X.upgrade($,{data:{kind:"cdp",profileId:Y,targetWsUrl:H,upstream:null,queue:[],closed:!1}})?void 0:new Response("WebSocket upgrade required",{status:426})}let B=W.slice(Y.length);if(B.startsWith("/json"))try{let H=await fetch(`http://127.0.0.1:${G.port}${B}`),z=await H.text(),K=SW(Y);return z=z.replace(/ws:\/\/127\.0\.0\.1:\d+\/devtools\/browser\/[a-zA-Z0-9-]+/g,K),new Response(z,{status:H.status,headers:{"content-type":"application/json"}})}catch{return new Response("CDP discovery failed",{status:502})}return new Response("Not found",{status:404})}var fj={open($){if($.data.kind==="stream"){let W={send:(Y)=>$.send(Y)};$.data.viewer=W,AY($.data.profileId,W).catch(()=>$.close());return}let Q=$.data,X=new WebSocket(Q.targetWsUrl);X.binaryType="arraybuffer",Q.upstream=X,X.onopen=()=>{for(let W of Q.queue)X.send(W);Q.queue=[]},X.onmessage=(W)=>{if(!Q.closed)$.send(W.data)},X.onclose=()=>{if(!Q.closed)$.close()},X.onerror=()=>{if(!Q.closed)$.close()}},message($,Q){if($.data.kind==="stream"){if(typeof Q==="string")VY($.data.profileId,Q);return}let X=$.data.upstream,W=typeof Q==="string"?Q:new Uint8Array(Q).buffer;if(X&&X.readyState===WebSocket.OPEN)X.send(W);else $.data.queue.push(W)},close($){if($.data.kind==="stream"){if($.data.viewer)LY($.data.profileId,$.data.viewer);return}$.data.closed=!0;try{$.data.upstream?.close()}catch{}}},f0=new U$;f0.use("/api/*",async($,Q)=>{if(!Y8($.req.raw,new URL($.req.url)))return $.json({error:"Unauthorized"},401);await Q()});f0.get("/health",($)=>$.json({ok:!0,name:"junso-browser",version:BK,cloak:Boolean(F6()),running:BY().length,maxInstances:p.maxInstances}));f0.get("/api/profiles",async($)=>{let Q=await $Y();return $.json({profiles:Q.map((X)=>({...U6(X),running:S9(X.id)}))})});async function HK($){if(!$.proxy||typeof $.proxy!=="string")return;let Q=$.fingerprint??{};if(Q.timezone&&Q.locale)return;let X=await A8($.proxy);if(!X)return;let W=C$(X);if($.fingerprint={...Q},!Q.timezone&&W.timezone)$.fingerprint.timezone=W.timezone;if(!Q.locale&&W.locale)$.fingerprint.locale=W.locale}f0.post("/api/profiles",async($)=>{let Q=await $.req.json().catch(()=>({}));if(!Q?.name||typeof Q.name!=="string")return $.json({error:"name is required"},400);try{await HK(Q);let X=await QY(Q);return $.json({profile:U6(X)},201)}catch(X){return $.json({error:X instanceof Error?X.message:"create failed"},400)}});f0.get("/api/profiles/:id",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);return $.json({profile:U6(Q),running:S9(Q.id)})});f0.patch("/api/profiles/:id",async($)=>{let Q=await $.req.json().catch(()=>({}));try{if(typeof Q.proxy==="string")await HK(Q);let X=await P$($.req.param("id"),Q);return $.json({profile:U6(X)})}catch(X){return $.json({error:X instanceof Error?X.message:"update failed"},400)}});f0.delete("/api/profiles/:id",async($)=>{let Q=$.req.param("id");return await r1(Q),await XY(Q)?$.json({ok:!0}):$.json({error:"not found"},404)});f0.post("/api/profiles/:id/launch",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);try{return await w6(Q),$.json({cdpUrl:SW(Q.id),running:!0})}catch(X){return $.json({error:X instanceof Error?X.message:"launch failed"},502)}});f0.post("/api/profiles/:id/stop",async($)=>{let Q=await r1($.req.param("id"));return $.json({stopped:Q})});f0.get("/api/profiles/:id/cdp",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);return $.json({cdpUrl:SW(Q.id),running:S9(Q.id)})});f0.get("/api/profiles/:id/exit-ip",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);let X=await A8(Q.proxy);if(!X)return $.json({error:"lookup failed",viaProxy:Boolean(Q.proxy)},502);let W=Boolean(Q.fingerprint.timezone&&X.timezone&&Q.fingerprint.timezone!==X.timezone);return $.json({ip:X.ip,viaProxy:Boolean(Q.proxy),country:X.country??null,countryCode:X.countryCode??null,isp:X.isp??null,kind:X.kind,timezone:X.timezone??null,tzMismatch:W})});f0.get("/api/profiles/:id/probe",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);let X;try{X=await w6(Q)}catch(J){return $.json({error:`launch failed: ${J instanceof Error?J.message:J}`},502)}let[W,Y]=await Promise.all([zY(X.port,X.browserWsPath),A8(Q.proxy)]);return $.json({score:W,clean:W!==null&&W>=0.8,ip:Y?.ip??null,isp:Y?.isp??null,kind:Y?.kind??null})});f0.post("/api/profiles/:id/rotate-proxy",async($)=>{let Q=await A1($.req.param("id"));if(!Q)return $.json({error:"not found"},404);if(!Q.proxy)return $.json({error:"profile has no proxy"},400);let X=WY(Q.proxy);if(!X)return $.json({error:"proxy has no rotatable session-<id> token"},400);let W=await A8(X),Y=W?C$(W):{},J=await P$(Q.id,{proxy:X,fingerprint:Y});return await r1(Q.id),$.json({profile:U6(J),exitIp:W?.ip??null,country:W?.country??null,isp:W?.isp??null,kind:W?.kind??"unknown"})});class zK{onmessage;onclose;onerror;sessionId;pending=new Map;async start(){}async send($){let Q=$?.id;if(Q!=null&&this.pending.has(Q))this.pending.get(Q)($),this.pending.delete(Q)}async close(){this.onclose?.()}feed($){let Q=$?.id;if(Q==null)return this.onmessage?.($),Promise.resolve(null);return new Promise((X)=>{let W=setTimeout(()=>{if(this.pending.delete(Q))X({jsonrpc:"2.0",id:Q,error:{code:-32001,message:"Request timed out"}})},300000);this.pending.set(Q,(Y)=>{clearTimeout(W),X(Y)}),this.onmessage?.($)})}}var W8=new Map,uj=600000;function lj(){let $=Date.now();for(let[Q,X]of W8)if($-X.lastSeen>uj)X.server.close().catch(()=>{}),W8.delete(Q)}function jW($,Q=200,X){let W={"content-type":"application/json"};if(X)W["mcp-session-id"]=X;return new Response(JSON.stringify($),{status:Q,headers:W})}async function mj($,Q){if(!Y8($,Q))return new Response("Unauthorized",{status:401});if($.method==="GET")return new Response("Method Not Allowed",{status:405});if($.method==="DELETE"){let z=$.headers.get("mcp-session-id"),K=z?W8.get(z):void 0;if(K)await K.server.close().catch(()=>{}),W8.delete(z);return new Response(null,{status:204})}if($.method!=="POST")return new Response("Method Not Allowed",{status:405});let X;try{X=await $.json()}catch{return jW({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}})}let W=Array.isArray(X)?X:[X],Y=$.headers.get("mcp-session-id"),J=Y?W8.get(Y):void 0;if(!J){if(!W.some((A)=>A?.method==="initialize"))return jW({jsonrpc:"2.0",id:W[0]?.id??null,error:{code:-32000,message:"No valid session \u2014 send initialize first"}},404);let K=new zK;K.sessionId=crypto.randomUUID();let L=$.headers.get("x-twocaptcha-key")??Q.searchParams.get("twocaptcha")??process.env.TWOCAPTCHA_KEY??"",V=GK({url:`http://127.0.0.1:${p.port}`,token:p.token,twoCaptchaKey:L,profile:Q.searchParams.get("profile")?.trim()||"default"});await V.connect(K),J={server:V,transport:K,lastSeen:Date.now()},W8.set(K.sessionId,J),lj()}J.lastSeen=Date.now();let G=[];for(let z of W){let K=await J.transport.feed(z);if(K!=null)G.push(K)}let B=J.transport.sessionId;if(G.length===0)return new Response(null,{status:202,headers:B?{"mcp-session-id":B}:{}});let H=!Array.isArray(X)&&G.length===1?G[0]:G;return jW(H,200,B)}if(!p.token&&!j9())console.error(`[junso-browser] REFUSING TO START: bound to a non-loopback host with no JUNSO_BROWSER_TOKEN set.
|
|
269
|
+
Set JUNSO_BROWSER_TOKEN (the CDP endpoint = full browser control).`),process.exit(1);var cj=Bun.serve({port:p.port,hostname:p.host,idleTimeout:0,async fetch($,Q){let X=new URL($.url);if(X.pathname.startsWith("/cdp/"))return hj($,X,Q);if(X.pathname==="/mcp")return mj($,X);if(X.pathname==="/"||X.pathname==="/dashboard"){if(!Y8($,X))return new Response("Unauthorized",{status:401});return new Response(DY(p.token),{headers:{"content-type":"text/html; charset=utf-8"}})}if(X.pathname.startsWith("/view/")){if(!Y8($,X))return new Response("Unauthorized",{status:401});let W=X.pathname.slice(6).split("/")[0]??"";return new Response(OY(W,p.token),{headers:{"content-type":"text/html; charset=utf-8"}})}if(X.pathname.startsWith("/stream/")){if(!Y8($,X))return new Response("Unauthorized",{status:401});let W=X.pathname.slice(8).split("/")[0]??"";return Q.upgrade($,{data:{kind:"stream",profileId:W,viewer:null}})?void 0:new Response("WebSocket upgrade required",{status:426})}return f0.fetch($)},websocket:fj});oW();HY();var KK=async()=>{await GY(),process.exit(0)};process.on("SIGINT",KK);process.on("SIGTERM",KK);console.log(`[junso-browser] v${BK} on http://${p.host}:${cj.port} (cloak ${F6()?"found":"MISSING"}, auth ${p.token?"token":j9()?"loopback-open":"off"})`);
|