chain-insights 0.48.1 → 0.49.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.
@@ -1,4 +1,4 @@
1
- <!-- Chain Insights UI 15e3514cfafd77a320d33f2a7daf331e31ca307d (npm run build:claude-view); refresh with scripts/refresh-claude-view.mjs, never edit by hand -->
1
+ <!-- Chain Insights UI b9914489b5a6d6feab5c28e2d06bd0d15daa2b02 (npm run build:claude-view); refresh with scripts/refresh-claude-view.mjs, never edit by hand -->
2
2
  <!doctype html>
3
3
  <html lang="en">
4
4
  <head>
@@ -6,50 +6,50 @@
6
6
  <meta name="viewport" content="width=device-width,initial-scale=1">
7
7
  <meta name="color-scheme" content="light dark">
8
8
  <title>Chain Insights view</title>
9
- <script type="module">const jy=(function(){const t=typeof document<"u"&&document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"})(),Fy=function(e,t){return new URL(e,t).href},Bl={},Uy=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){let u=function(l){return Promise.all(l.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};const i=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),c=a?.nonce||a?.getAttribute("nonce");o=u(n.map(l=>{if(l=Fy(l,r),l in Bl)return;Bl[l]=!0;const d=l.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(r)for(let h=i.length-1;h>=0;h--){const m=i[h];if(m.href===l&&(!d||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${f}`))return;const p=document.createElement("link");if(p.rel=d?"stylesheet":jy,d||(p.as="script"),p.crossOrigin="",p.href=l,c&&p.setAttribute("nonce",c),document.head.appendChild(p),d)return new Promise((h,m)=>{p.addEventListener("load",h),p.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return o.then(i=>{for(const a of i||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})};function Vy(e){return e}function qy(e){return e}function ns(){return e=>e}function Hy(e){}function By(e){throw new Error("Unexpected value in exhaustive check")}function Ky(e){}function qo(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function Ui(e,t="|"){return e.map(n=>ma(n)).join(t)}function Ho(e,t){return typeof t=="bigint"?t.toString():t}class Jy{constructor(t){this._getter=t,this._value=void 0}get value(){const t=this._getter;return t!==void 0&&(this._value=t(),this._getter=void 0),this._value}}function ur(e){return new Jy(e)}function fa(e){return e==null}function Ct(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function pa(e,t){const n=e/t,r=Math.round(n),o=4*Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-r)<o?0:n-r}const Kl=Symbol("evaluating");function lf(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Kl)return r===void 0&&(r=Kl,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Wy(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Fe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rs(e){const t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function ht(e){return rs(e._zod.def)??e._zod.def.shape}function df(e,t,n){Object.defineProperty(e,t,{get(){const r=n();return Fe(this,t,r),r},enumerable:!0,configurable:!0})}function ff(e,t,n){t in e?Fe(e,t,n):e[t]=n}function Ft(e,t,n,r){const o=ht(t);for(const s of n){const i=Object.getOwnPropertyDescriptor(o,s);i.enumerable&&(i.get?df(e,s,()=>{const a=t._zod.def.shape[s];return r?r(a,s):a}):ff(e,s,r?r(i.value,s):i.value))}}function Gy(e,t){for(const n of Reflect.ownKeys(t)){const r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?df(e,n,()=>t[n]):ff(e,n,r.value))}}function xe(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function Yy(e){return xe(e._zod.def)}function Qy(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Xy(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const o={};for(let s=0;s<t.length;s++)o[t[s]]=r[s];return o})}function e_(e=10){const t="abcdefghijklmnopqrstuvwxyz";let n="";for(let r=0;r<e;r++)n+=t[Math.floor(Math.random()*t.length)];return n}function De(e){return JSON.stringify(e)}function pf(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const ha="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function an(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const hf=ur(()=>{if(Ee.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function mt(e){if(an(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(an(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function lr(e){return mt(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function t_(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const n_=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Bo=new Set(["string","number","symbol"]),mf=new Set(["string","number","bigint","boolean","symbol","undefined"]);function gt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ce(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function I(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function r_(e){let t;return new Proxy({},{get(n,r,o){return t??(t=e()),Reflect.get(t,r,o)},set(n,r,o,s){return t??(t=e()),Reflect.set(t,r,o,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,o){return t??(t=e()),Reflect.defineProperty(t,r,o)}})}function ma(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function gf(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}const ga={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ya={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function yf(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s={};return Ft(s,e,os(e,t)),ce(e,xe(n,{shape:s,checks:[]}))}function os(e,t){const n=ht(e),r=[];for(const o of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,o)?.enumerable)throw new Error(`Unrecognized key: "${String(o)}"`);t[o]&&r.push(o)}return r}function _f(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=new Set(os(e,t)),i={};return Ft(i,e,Reflect.ownKeys(ht(e)).filter(a=>!s.has(a))),ce(e,xe(n,{shape:i,checks:[]}))}function bf(e,t){if(!mt(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const o=ht(e);for(const s of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ce(e,xe(e._zod.def,{shape:wf(e,t)}))}function wf(e,t){const n={};return Ft(n,e,Reflect.ownKeys(ht(e))),Gy(n,t),n}function vf(e,t){if(!mt(t))throw new Error("Invalid input to safeExtend: expected a plain object");return ce(e,xe(e._zod.def,{shape:wf(e,t)}))}function kf(e,t){if(!t?._zod?.def)throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const n={};Ft(n,e,Reflect.ownKeys(ht(e))),Ft(n,t,Reflect.ownKeys(ht(t)));const r=xe(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return ce(e,r)}function Vi(e,t,n,r="partial"){const s=t._zod.def.checks;if(s&&s.length>0)throw new Error(`.${r}() cannot be used on object schemas containing refinements`);const a=n?new Set(os(t,n)):void 0,c={};return Ft(c,t,Reflect.ownKeys(ht(t)),e&&((u,l)=>a&&!a.has(l)?u:new e({type:"optional",innerType:u}))),ce(t,xe(t._zod.def,{shape:c,checks:[]}))}function $f(e,t,n){const r=n?new Set(os(t,n)):void 0,o={};return Ft(o,t,Reflect.ownKeys(ht(t)),(s,i)=>r&&!r.has(i)?s:new e({type:"nonoptional",innerType:s})),ce(t,xe(t._zod.def,{shape:o}))}function Ne(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Sf(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function He(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function rn(e){return typeof e=="string"?e:e?.message}function qi(e,t,n){var r;for(let o=t;o<e.length;o++)(r=e[o]).schema??(r.schema=n)}function Je(e,t,n){var r;const o=e.inst?._zod?.traits;o?.has("$ZodType")&&(o.has("$ZodCheck")?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);const s=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,i=e.message?e.message:rn(e.inst?._zod.def?.error?.(e))??rn(s?.(e))??rn(t?.error?.(e))??rn(n.customError?.(e))??rn(n.localeError?.(e))??"Invalid input",a={};for(const c of Object.keys(e))c==="inst"||c==="schema"||c==="continue"||c==="input"||c==="__proto__"||(a[c]=e[c]);return a.path??(a.path=[]),a.message=i,t?.reportInput&&(a.input=e.input),a}function ss(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}const o_=/[\uD800-\uDBFF]/;function dr(e){const t=e.length;if(!o_.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320&&(n--,r++);return n}function is(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function xf(e){const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";const n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function cn(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function s_(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function If(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function zf(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function i_(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n="=".repeat((4-t.length%4)%4);return If(t+n)}function a_(e){return zf(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function c_(e){const t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");const n=new Uint8Array(t.length/2);for(let r=0;r<t.length;r+=2)n[r/2]=Number.parseInt(t.slice(r,r+2),16);return n}function u_(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}class l_{constructor(...t){}}function Tf(e,t){for(const n in t){const r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):d_(e,n,r.value)}}function yt(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function as(e,t,n){return yt(e,t,n,!1)}function fr(e,t){for(const n in e){const r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return yt(this,n,r(this))},set(o){yt(this,n,o)}})}return t}function d_(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:yt(this,t,n.bind(this))},set(r){yt(this,t,r)}})}function f_(e,t){const n=Object.getPrototypeOf(e);return t in n?void 0:n}let Ti,It=!1;const p_={configurable:!0,get(){It=!0}};function B(e,t,n){const r=Object.getPrototypeOf(e._zod);if(t in r&&Ti!==e._zod){Ti=void 0;return}Ti=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,p_);const o=It;It=!1;try{const s=n(this);return It?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:s}),It=It||o,s}catch(s){throw delete this[t],It=It||o,s}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function Cf(e,t,n,r){const o=f_(e,t);o&&Object.defineProperty(o,t,{configurable:!0,get(){const s={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,s),s.value=n(this),Object.defineProperty(this,t,s),s.value},set(s){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:s})}})}const _a="~constantCatch";function ba(e){const t=()=>e;return t[_a]=!0,t}const wa=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ya,CONSTANT_CATCH:_a,Class:l_,NUMBER_FORMAT_RANGES:ga,aborted:Ne,allowsEval:hf,assert:Ky,assertEqual:Vy,assertIs:Hy,assertNever:By,assertNotEqual:qy,assignProp:Fe,attachSchema:qi,base64ToUint8Array:If,base64urlToUint8Array:i_,cached:ur,captureStackTrace:ha,cleanEnum:s_,cleanRegex:Ct,clone:ce,cloneDef:Yy,codePointLength:dr,constantCatch:ba,createTransparentProxy:r_,defineLazy:lf,defineLazyInternal:B,derived:fr,esc:De,escapeRegex:gt,explicitlyAborted:Sf,extend:bf,finalizeIssue:Je,floatSafeRemainder:pa,getElementAtPath:Qy,getEnumValues:qo,getLengthableOrigin:is,getParsedType:n_,getSizableOrigin:ss,hexToUint8Array:c_,hide:as,installLazyProp:Cf,isObject:an,isPlainObject:mt,issue:cn,joinValues:Ui,jsonStringifyReplacer:Ho,members:Tf,merge:kf,mergeDefs:xe,normalizeParams:I,nullish:fa,numKeys:t_,objectClone:Wy,omit:_f,optionalKeys:gf,own:yt,parsedType:xf,partial:Vi,pick:yf,prefixIssues:He,primitiveTypes:mf,promiseAllObject:Xy,propertyKeyTypes:Bo,randomString:e_,rawShape:rs,required:$f,safeExtend:vf,shallowClone:lr,slugify:pf,stringifyPrimitive:ma,toZod:ns,uint8ArrayToBase64:zf,uint8ArrayToBase64url:a_,uint8ArrayToHex:u_,unwrapMessage:rn},Symbol.toStringTag,{value:"Module"}));var Jl;const va=Object.freeze({status:"aborted"}),Ci={value:void 0,enumerable:!1};let Wl="captureStackTrace"in Error?Error:null;function h_(e){const t=Wl;if(t){const n=t.stackTraceLimit;if(typeof n=="number"){try{t.stackTraceLimit=0}catch{return Wl=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function y(e,t,n,r){const o={};function s(f){this.def=f,this.constr=d,this.traits=new Set}s.prototype=o;const i=n,a=i&&new WeakSet;function c(f,p){if(f._zod){if(f._zod.traits.has(e))return}else{Ci.value=new s(p);try{Object.defineProperty(f,"_zod",Ci)}finally{Ci.value=void 0}}if(f._zod.traits.add(e),t(f,p),a){const m=Object.getPrototypeOf(f),_=f._zod.constr.prototype;let S=m;for(;S&&S!==_;)S=Object.getPrototypeOf(S);const w=S??m;a.has(w)||(a.add(w),Tf(w,i))}const h=d.prototype;for(const m in h)Object.prototype.hasOwnProperty.call(h,m)&&(m in f||(f[m]=h[m].bind(f)))}const u=r?.Parent??Object;class l extends u{}Object.defineProperty(l,"name",{value:e});function d(f){const p=r?.Parent?h_(l):this;c(p,f);const h=p._zod.deferred;if(h){for(const _ of h)_();p._zod.deferred=void 0}const m=globalThis.__zod_globalConfig?.postProcessor;return m&&m(p),p}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:f=>r?.Parent&&f instanceof r.Parent?!0:f?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}const ka=Symbol("zod_brand");class pt extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class cs extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(Jl=globalThis).__zod_globalConfig??(Jl.__zod_globalConfig={});const Ee=globalThis.__zod_globalConfig;function ye(e){return e&&Object.assign(Ee,e),Ee}function m_(){const e=this._zod;return e.message??(e.message=JSON.stringify(e.def,Ho,2)),e.message}function g_(e){this._zod.message=e}const y_={get:m_,set:g_,enumerable:!0,configurable:!0},Ei={value:void 0,enumerable:!1},Gl=new WeakSet([Object.prototype,Error.prototype]),Ef=(e,t)=>{e.name="$ZodError",Ei.value=t,Object.defineProperty(e,"issues",Ei),Ei.value=void 0,Object.defineProperty(e,"message",y_);const n=Object.getPrototypeOf(e);Gl.has(n)||(Gl.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){const r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}}))},Af=y("$ZodError",Ef),Ue=y("$ZodError",Ef,void 0,{Parent:Error});function __(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function us(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?__(n,o.path[0],()=>[]).push(t(o)):r.push(t(o));return{formErrors:r,fieldErrors:n}}function ls(e,t=n=>n.message){const n={_errors:[]},r=(o,s=[])=>{for(const i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>r({issues:a},[...s,...i.path]));else if(i.code==="invalid_key")r({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")r({issues:i.issues},[...s,...i.path]);else{const a=[...s,...i.path];if(a.length===0)n._errors.push(t(i));else{let c=n,u=0;for(;u<a.length;){const l=a[u],d=u===a.length-1;if(l==="_errors"){d&&c._errors.push(t(i)),u++;continue}Object.prototype.hasOwnProperty.call(c,l)||Object.defineProperty(c,l,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});const f=c[l];d&&f._errors.push(t(i)),c=f,u++}}}};return r(e),n}function $a(e,t=n=>n.message){const n={errors:[]},r=(o,s=[])=>{var i;for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(c=>r({issues:c},[...s,...a.path]));else if(a.code==="invalid_key")r({issues:a.issues},[...s,...a.path]);else if(a.code==="invalid_element")r({issues:a.issues},[...s,...a.path]);else{const c=[...s,...a.path];if(c.length===0){n.errors.push(t(a));continue}let u=n,l=0;for(;l<c.length;){const d=c[l],f=l===c.length-1;typeof d=="string"?(u.properties??(u.properties={}),Object.prototype.hasOwnProperty.call(u.properties,d)||Object.defineProperty(u.properties,d,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),u=u.properties[d]):(u.items??(u.items=[]),(i=u.items)[d]??(i[d]={errors:[]}),u=u.items[d]),f&&u.errors.push(t(a)),l++}}};return r(e),n}function Nf(e){const t=[],n=e.map(r=>typeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function Sa(e){const t=[],n=[...e.issues].sort((r,o)=>(r.path??[]).length-(o.path??[]).length);for(const r of n)t.push(`✖ ${r.message}`),r.path?.length&&t.push(` → at ${Nf(r.path)}`);return t.join(`
10
- `)}function ds(e,t){return{callee:t?.callee??e,Err:t?.Err}}const pr=e=>{const t=(n,r,o,s)=>{const i=o?{...o,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new pt;if(a.issues.length){const c=new(s?.Err??e)(a.issues.map(u=>Je(u,i,ye())));throw ha(c,s?.callee??t),c}return a.value};return t},Hi=pr(Ue),hr=e=>{const t=async(n,r,o,s)=>{const i=o?{...o,async:!0}:{async:!0};let a=n._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const c=new(s?.Err??e)(a.issues.map(u=>Je(u,i,ye())));throw ha(c,s?.callee??t),c}return a.value};return t},Bi=hr(Ue),mr=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new pt;return s.issues.length?Pf(e,s.issues,o):{success:!0,data:s.value}},Of=mr(Ue);function Pf(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(o=>Je(o,n,ye()))),t=void 0,n=void 0),r},set error(o){r=o,t=void 0,n=void 0}}}const gr=e=>async(t,n,r)=>{const o=r?{...r,async:!0}:{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?Pf(e,s.issues,o):{success:!0,data:s.value}},b_=gr(Ue),w_=Symbol.for("zod.compile.invalid"),v_=Symbol.for("zod.compile.fallback"),fs=((e,t,n)=>{const r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==w_)return!0;if(r.definite===!0&&n===void 0)return!1}return k_(e,t,n)});function k_(e,t,n){const r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},o=e._zod.bag.fallbackRun;let s;if(o?(r[v_]=!0,s=o({value:t,issues:[]},r)):s=e._zod.run({value:t,issues:[]},r),s instanceof Promise)throw new pt;return s.issues.length===0}const ps=async(e,t,n)=>{const r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0};let o=e._zod.run({value:t,issues:[]},r);return o instanceof Promise&&(o=await o),o.issues.length===0},xa=e=>{const t=pr(e),n=(r,o,s,i)=>{const a=s?{...s,direction:"backward"}:{direction:"backward"};return t(r,o,a,ds(n,i))};return n},$_=xa(Ue),Ia=e=>{const t=pr(e),n=(r,o,s,i)=>t(r,o,s,ds(n,i));return n},S_=Ia(Ue),za=e=>{const t=hr(e),n=async(r,o,s,i)=>{const a=s?{...s,direction:"backward"}:{direction:"backward"};return await t(r,o,a,ds(n,i))};return n},x_=za(Ue),Ta=e=>{const t=hr(e),n=async(r,o,s,i)=>await t(r,o,s,ds(n,i));return n},I_=Ta(Ue),Ca=e=>(t,n,r)=>{const o=r?{...r,direction:"backward"}:{direction:"backward"};return mr(e)(t,n,o)},z_=Ca(Ue),Ea=e=>(t,n,r)=>mr(e)(t,n,r),T_=Ea(Ue),Aa=e=>async(t,n,r)=>{const o=r?{...r,direction:"backward"}:{direction:"backward"};return gr(e)(t,n,o)},C_=Aa(Ue),Na=e=>async(t,n,r)=>gr(e)(t,n,r),E_=Na(Ue),Mf=/^[cC][0-9a-z]{6,}$/,Lf=/^[0-9a-z]+$/,Rf=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Df=/^[0-9a-vA-V]{20}$/,Zf=/^[A-Za-z0-9]{27}$/,jf=/^[a-zA-Z0-9_-]{21}$/;function Ff(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const Uf=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,A_=/^[-+]?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)?)??$/,Vf=/^([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})$/,un=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,N_=un(4),O_=un(6),P_=un(7),qf=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,M_=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,L_=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Hf=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,R_=Hf,D_=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Z_="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function Bf(){return new RegExp(Z_,"u")}const Kf=/^(?:(?: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])$/,Jf=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,Wf=e=>{const t=gt(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Gf=/^((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])$/,Yf=/^(([0-9a-fA-F]{1,4}:){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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Qf=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Xf=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,ep=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,tp=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/,Oa=/^https?$/,np=/^\+[1-9]\d{6,14}$/,Pa=/^\d(?:[ -]?\d){11,18}$/,rp=/^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/,Ma=/^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/,op="(?:(?:\\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])))";function j_(e){return new RegExp(`^${e}$`)}const sp=j_(op);function Ki(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ip(e){return new RegExp(`^${Ki(e)}$`)}function ap(e){const t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${Ki({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${Ki({precision:e.precision})}`:n;return new RegExp(`^${op}T(?:${r})$`)}const cp=/^[\s\S]{0,}$/,up=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},lp=/^-?\d+n?$/,La=/^-?\d+$/,bn=/^-?\d+(?:\.\d+)?$/,dp=/^(?:true|false)$/i,fp=/^null$/i,pp=/^undefined$/i,hp=/^[^A-Z]*$/,mp=/^[^a-z]*$/,gp=/^[0-9a-fA-F]*$/;function yr(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function _r(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const F_=/^[0-9a-fA-F]{32}$/,U_=yr(22,"=="),V_=_r(22),q_=/^[0-9a-fA-F]{40}$/,H_=yr(27,"="),B_=_r(27),K_=/^[0-9a-fA-F]{64}$/,J_=yr(43,"="),W_=_r(43),G_=/^[0-9a-fA-F]{96}$/,Y_=yr(64,""),Q_=_r(64),X_=/^[0-9a-fA-F]{128}$/,eb=yr(86,"=="),tb=_r(86),hs=Object.freeze(Object.defineProperty({__proto__:null,anyString:cp,base64:Qf,base64url:Xf,bigint:lp,boolean:dp,browserEmail:D_,cidrv4:Gf,cidrv6:Yf,creditCard:Pa,cuid:Mf,cuid2:Lf,currencyCode:rp,date:sp,datetime:ap,domain:tp,duration:Uf,e164:np,email:qf,emoji:Bf,extendedDuration:A_,guid:Vf,hex:gp,hostname:ep,html5Email:M_,httpProtocol:Oa,iban:Ma,idnEmail:R_,integer:La,ipv4:Kf,ipv6:Jf,ksuid:Zf,lowercase:hp,mac:Wf,md5_base64:U_,md5_base64url:V_,md5_hex:F_,nanoid:jf,nanoidOfLength:Ff,null:fp,number:bn,rfc5322Email:L_,sha1_base64:H_,sha1_base64url:B_,sha1_hex:q_,sha256_base64:J_,sha256_base64url:W_,sha256_hex:K_,sha384_base64:Y_,sha384_base64url:Q_,sha384_hex:G_,sha512_base64:eb,sha512_base64url:tb,sha512_hex:X_,string:up,time:ip,ulid:Rf,undefined:pp,unicodeEmail:Hf,uppercase:mp,uuid:un,uuid4:N_,uuid6:O_,uuid7:P_,xid:Df},Symbol.toStringTag,{value:"Module"})),ue=y("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ra=e=>{const t=e.value;return!fa(t)&&t.size!==void 0},Da=e=>{const t=e.value;return!fa(t)&&t.length!==void 0},Ko={number:"number",bigint:"bigint",object:"date"},Za=y("$ZodCheckLessThan",(e,t)=>{ue.init(e,t);const n=Ko[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:Ko[typeof r.value]??n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ja=y("$ZodCheckGreaterThan",(e,t)=>{ue.init(e,t);const n=Ko[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Ko[typeof r.value]??n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),yp=y("$ZodCheckMultipleOf",(e,t)=>{ue.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):pa(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),_p=y("$ZodCheckNumberFormat",(e,t)=>{ue.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,s]=ga[t.format];e._zod.check=i=>{const a=i.value;if(n){if(!Number.isInteger(a)){i.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}):i.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),bp=y("$ZodCheckBigIntFormat",(e,t)=>{ue.init(e,t);const[n,r]=ya[t.format];e._zod.check=o=>{const s=o.value;s<n&&o.issues.push({origin:"bigint",input:s,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort}),s>r&&o.issues.push({origin:"bigint",input:s,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),wp=y("$ZodCheckMaxSize",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Ra),e._zod.check=r=>{const o=r.value;o.size<=t.maximum||r.issues.push({origin:ss(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),vp=y("$ZodCheckMinSize",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Ra),e._zod.check=r=>{const o=r.value;o.size>=t.minimum||r.issues.push({origin:ss(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),kp=y("$ZodCheckSizeEquals",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Ra),e._zod.check=r=>{const o=r.value,s=o.size;if(s===t.size)return;const i=s>t.size;r.issues.push({origin:ss(o),...i?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),$p=y("$ZodCheckMaxLength",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Da),e._zod.check=r=>{const o=r.value,s=o.length;if((typeof o=="string"&&s>t.maximum?dr(o):s)<=t.maximum)return;const a=is(o);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Sp=y("$ZodCheckMinLength",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Da),e._zod.check=r=>{const o=r.value,s=o.length;if((typeof o=="string"&&s>=t.minimum&&s<t.minimum*2?dr(o):s)>=t.minimum)return;const a=is(o);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),xp=y("$ZodCheckLengthEquals",(e,t)=>{var n;ue.init(e,t),(n=e._zod.def).when??(n.when=Da),e._zod.check=r=>{const o=r.value,s=o.length,i=typeof o=="string"&&s>=t.length&&s<=t.length*2?dr(o):s;if(i===t.length)return;const a=is(o),c=i>t.length;r.issues.push({origin:a,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),br=y("$ZodCheckStringFormat",(e,t)=>{var n,r;ue.init(e,t),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ip=y("$ZodCheckRegex",(e,t)=>{br.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),zp=y("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=hp),br.init(e,t)}),Tp=y("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=mp),br.init(e,t)}),Cp=y("$ZodCheckIncludes",(e,t)=>{ue.init(e,t);const n=gt(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Ep=y("$ZodCheckStartsWith",(e,t)=>{ue.init(e,t);const n=new RegExp(`^${gt(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Ap=y("$ZodCheckEndsWith",(e,t)=>{ue.init(e,t);const n=new RegExp(`.*${gt(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function Jo(e,t,n){e.issues.length&&t.issues.push(...He(n,e.issues))}const Np=y("$ZodCheckProperty",(e,t)=>{ue.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(o=>Jo(o,n,t.property));Jo(r,n,t.property)}}),Op=y("$ZodCheckProperties",(e,t)=>{ue.init(e,t),as(e,Symbol.iterator,function*(){yield e});let n;e._zod.check=r=>{if(r.value==null){r.issues.push({expected:"object",code:"invalid_type",input:r.value,inst:e});return}n??(n=Reflect.ownKeys(t.shape).map(i=>[i,t.shape[i]]));const o=r.value;let s;for(const[i,a]of n){const c=a._zod.run({value:o[i],issues:[]},{});c instanceof Promise?(s??(s=[]),s.push(c.then(u=>Jo(u,r,i)))):Jo(c,r,i)}if(s)return Promise.all(s).then(()=>{})}}),Pp=y("$ZodCheckMimeType",(e,t)=>{ue.init(e,t);const n=new Set(t.mime);e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),Mp=y("$ZodCheckOverwrite",(e,t)=>{ue.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Fa{constructor(t=[],n={}){this.content=[],this.indent=0,this.args=t,this.closed=n}indented(t){this.indent+=1;try{t(this)}finally{this.indent-=1}}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
11
- `).filter(i=>i),o=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of s)this.content.push(i)}compile(){const t=Function,n=this?.content??[""];return new t(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
9
+ <script type="module">const v_=(function(){const t=typeof document<"u"&&document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"})(),b_=function(e,t){return new URL(e,t).href},Gf={},w_=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};const s=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),u=a?.nonce||a?.getAttribute("nonce");i=c(n.map(l=>{if(l=b_(l,r),l in Gf)return;Gf[l]=!0;const d=l.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(r)for(let p=s.length-1;p>=0;p--){const m=s[p];if(m.href===l&&(!d||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${f}`))return;const h=document.createElement("link");if(h.rel=d?"stylesheet":v_,d||(h.as="script"),h.crossOrigin="",h.href=l,u&&h.setAttribute("nonce",u),document.head.appendChild(h),d)return new Promise((p,m)=>{h.addEventListener("load",p),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}function o(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})};function __(e){return e}function k_(e){return e}function ls(){return e=>e}function S_(e){}function x_(e){throw new Error("Unexpected value in exhaustive check")}function E_(e){}function Wo(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function gu(e,t="|"){return e.map(n=>nc(n)).join(t)}function Ko(e,t){return typeof t=="bigint"?t.toString():t}class $_{constructor(t){this._getter=t,this._value=void 0}get value(){const t=this._getter;return t!==void 0&&(this._value=t(),this._getter=void 0),this._value}}function ai(e){return new $_(e)}function Qu(e){return e==null}function bn(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ec(e,t){const n=e/t,r=Math.round(n),i=4*Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}const jf=Symbol("evaluating");function Gp(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==jf)return r===void 0&&(r=jf,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function T_(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function $t(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function ds(e){const t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function nn(e){return ds(e._zod.def)??e._zod.def.shape}function jp(e,t,n){Object.defineProperty(e,t,{get(){const r=n();return $t(this,t,r),r},enumerable:!0,configurable:!0})}function Zp(e,t,n){t in e?$t(e,t,n):e[t]=n}function Dn(e,t,n,r){const i=nn(t);for(const o of n){const s=Object.getOwnPropertyDescriptor(i,o);s.enumerable&&(s.get?jp(e,o,()=>{const a=t._zod.def.shape[o];return r?r(a,o):a}):Zp(e,o,r?r(s.value,o):s.value))}}function C_(e,t){for(const n of Reflect.ownKeys(t)){const r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?jp(e,n,()=>t[n]):Zp(e,n,r.value))}}function ct(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function A_(e){return ct(e._zod.def)}function I_(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function N_(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o<t.length;o++)i[t[o]]=r[o];return i})}function z_(e=10){const t="abcdefghijklmnopqrstuvwxyz";let n="";for(let r=0;r<e;r++)n+=t[Math.floor(Math.random()*t.length)];return n}function St(e){return JSON.stringify(e)}function Bp(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const tc="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Yn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Vp=ai(()=>{if(gt.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function rn(e){if(Yn(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(Yn(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function ui(e){return rn(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function R_(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const L_=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Jo=new Set(["string","number","symbol"]),Hp=new Set(["string","number","bigint","boolean","symbol","undefined"]);function on(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Oe(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function A(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function P_(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function nc(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function qp(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}const rc={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ic={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Wp(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const o={};return Dn(o,e,fs(e,t)),Oe(e,ct(n,{shape:o,checks:[]}))}function fs(e,t){const n=nn(e),r=[];for(const i of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,i)?.enumerable)throw new Error(`Unrecognized key: "${String(i)}"`);t[i]&&r.push(i)}return r}function Kp(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=new Set(fs(e,t)),s={};return Dn(s,e,Reflect.ownKeys(nn(e)).filter(a=>!o.has(a))),Oe(e,ct(n,{shape:s,checks:[]}))}function Jp(e,t){if(!rn(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const i=nn(e);for(const o of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(i,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Oe(e,ct(e._zod.def,{shape:Yp(e,t)}))}function Yp(e,t){const n={};return Dn(n,e,Reflect.ownKeys(nn(e))),C_(n,t),n}function Xp(e,t){if(!rn(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Oe(e,ct(e._zod.def,{shape:Yp(e,t)}))}function Qp(e,t){if(!t?._zod?.def)throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const n={};Dn(n,e,Reflect.ownKeys(nn(e))),Dn(n,t,Reflect.ownKeys(nn(t)));const r=ct(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Oe(e,r)}function yu(e,t,n,r="partial"){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(`.${r}() cannot be used on object schemas containing refinements`);const a=n?new Set(fs(t,n)):void 0,u={};return Dn(u,t,Reflect.ownKeys(nn(t)),e&&((c,l)=>a&&!a.has(l)?c:new e({type:"optional",innerType:c}))),Oe(t,ct(t._zod.def,{shape:u,checks:[]}))}function em(e,t,n){const r=n?new Set(fs(t,n)):void 0,i={};return Dn(i,t,Reflect.ownKeys(nn(t)),(o,s)=>r&&!r.has(s)?o:new e({type:"nonoptional",innerType:o})),Oe(t,ct(t._zod.def,{shape:i}))}function vt(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function tm(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function zt(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Hn(e){return typeof e=="string"?e:e?.message}function vu(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function Pt(e,t,n){var r;const i=e.inst?._zod?.traits;i?.has("$ZodType")&&(i.has("$ZodCheck")?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);const o=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,s=e.message?e.message:Hn(e.inst?._zod.def?.error?.(e))??Hn(o?.(e))??Hn(t?.error?.(e))??Hn(n.customError?.(e))??Hn(n.localeError?.(e))??"Invalid input",a={};for(const u of Object.keys(e))u==="inst"||u==="schema"||u==="continue"||u==="input"||u==="__proto__"||(a[u]=e[u]);return a.path??(a.path=[]),a.message=s,t?.reportInput&&(a.input=e.input),a}function hs(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}const D_=/[\uD800-\uDBFF]/;function ci(e){const t=e.length;if(!D_.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320&&(n--,r++);return n}function ps(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function nm(e){const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";const n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function Xn(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function O_(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function rm(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function im(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function M_(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n="=".repeat((4-t.length%4)%4);return rm(t+n)}function F_(e){return im(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function U_(e){const t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");const n=new Uint8Array(t.length/2);for(let r=0;r<t.length;r+=2)n[r/2]=Number.parseInt(t.slice(r,r+2),16);return n}function G_(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}class j_{constructor(...t){}}function om(e,t){for(const n in t){const r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Z_(e,n,r.value)}}function sn(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function ms(e,t,n){return sn(e,t,n,!1)}function li(e,t){for(const n in e){const r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return sn(this,n,r(this))},set(i){sn(this,n,i)}})}return t}function Z_(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:sn(this,t,n.bind(this))},set(r){sn(this,t,r)}})}function B_(e,t){const n=Object.getPrototypeOf(e);return t in n?void 0:n}let Ga,gn=!1;const V_={configurable:!0,get(){gn=!0}};function ye(e,t,n){const r=Object.getPrototypeOf(e._zod);if(t in r&&Ga!==e._zod){Ga=void 0;return}Ga=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,V_);const i=gn;gn=!1;try{const o=n(this);return gn?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o}),gn=gn||i,o}catch(o){throw delete this[t],gn=gn||i,o}},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i})}})}function sm(e,t,n,r){const i=B_(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){const o={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,o),o.value=n(this),Object.defineProperty(this,t,o),o.value},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:o})}})}const oc="~constantCatch";function sc(e){const t=()=>e;return t[oc]=!0,t}const ac=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ic,CONSTANT_CATCH:oc,Class:j_,NUMBER_FORMAT_RANGES:rc,aborted:vt,allowsEval:Vp,assert:E_,assertEqual:__,assertIs:S_,assertNever:x_,assertNotEqual:k_,assignProp:$t,attachSchema:vu,base64ToUint8Array:rm,base64urlToUint8Array:M_,cached:ai,captureStackTrace:tc,cleanEnum:O_,cleanRegex:bn,clone:Oe,cloneDef:A_,codePointLength:ci,constantCatch:sc,createTransparentProxy:P_,defineLazy:Gp,defineLazyInternal:ye,derived:li,esc:St,escapeRegex:on,explicitlyAborted:tm,extend:Jp,finalizeIssue:Pt,floatSafeRemainder:ec,getElementAtPath:I_,getEnumValues:Wo,getLengthableOrigin:ps,getParsedType:L_,getSizableOrigin:hs,hexToUint8Array:U_,hide:ms,installLazyProp:sm,isObject:Yn,isPlainObject:rn,issue:Xn,joinValues:gu,jsonStringifyReplacer:Ko,members:om,merge:Qp,mergeDefs:ct,normalizeParams:A,nullish:Qu,numKeys:R_,objectClone:T_,omit:Kp,optionalKeys:qp,own:sn,parsedType:nm,partial:yu,pick:Wp,prefixIssues:zt,primitiveTypes:Hp,promiseAllObject:N_,propertyKeyTypes:Jo,randomString:z_,rawShape:ds,required:em,safeExtend:Xp,shallowClone:ui,slugify:Bp,stringifyPrimitive:nc,toZod:ls,uint8ArrayToBase64:im,uint8ArrayToBase64url:F_,uint8ArrayToHex:G_,unwrapMessage:Hn},Symbol.toStringTag,{value:"Module"}));var Zf;const uc=Object.freeze({status:"aborted"}),ja={value:void 0,enumerable:!1};let Bf="captureStackTrace"in Error?Error:null;function H_(e){const t=Bf;if(t){const n=t.stackTraceLimit;if(typeof n=="number"){try{t.stackTraceLimit=0}catch{return Bf=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function k(e,t,n,r){const i={};function o(f){this.def=f,this.constr=d,this.traits=new Set}o.prototype=i;const s=n,a=s&&new WeakSet;function u(f,h){if(f._zod){if(f._zod.traits.has(e))return}else{ja.value=new o(h);try{Object.defineProperty(f,"_zod",ja)}finally{ja.value=void 0}}if(f._zod.traits.add(e),t(f,h),a){const m=Object.getPrototypeOf(f),g=f._zod.constr.prototype;let w=m;for(;w&&w!==g;)w=Object.getPrototypeOf(w);const y=w??m;a.has(y)||(a.add(y),om(y,s))}const p=d.prototype;for(const m in p)Object.prototype.hasOwnProperty.call(p,m)&&(m in f||(f[m]=p[m].bind(f)))}const c=r?.Parent??Object;class l extends c{}Object.defineProperty(l,"name",{value:e});function d(f){const h=r?.Parent?H_(l):this;u(h,f);const p=h._zod.deferred;if(p){for(const g of p)g();h._zod.deferred=void 0}const m=globalThis.__zod_globalConfig?.postProcessor;return m&&m(h),h}return Object.defineProperty(d,"init",{value:u}),Object.defineProperty(d,Symbol.hasInstance,{value:f=>r?.Parent&&f instanceof r.Parent?!0:f?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}const cc=Symbol("zod_brand");class en extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class gs extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(Zf=globalThis).__zod_globalConfig??(Zf.__zod_globalConfig={});const gt=globalThis.__zod_globalConfig;function Ye(e){return e&&Object.assign(gt,e),gt}function q_(){const e=this._zod;return e.message??(e.message=JSON.stringify(e.def,Ko,2)),e.message}function W_(e){this._zod.message=e}const K_={get:q_,set:W_,enumerable:!0,configurable:!0},Za={value:void 0,enumerable:!1},Vf=new WeakSet([Object.prototype,Error.prototype]),am=(e,t)=>{e.name="$ZodError",Za.value=t,Object.defineProperty(e,"issues",Za),Za.value=void 0,Object.defineProperty(e,"message",K_);const n=Object.getPrototypeOf(e);Vf.has(n)||(Vf.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){const r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}}))},um=k("$ZodError",am),Tt=k("$ZodError",am,void 0,{Parent:Error});function J_(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function ys(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?J_(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function vs(e,t=n=>n.message){const n={_errors:[]},r=(i,o=[])=>{for(const s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>r({issues:a},[...o,...s.path]));else if(s.code==="invalid_key")r({issues:s.issues},[...o,...s.path]);else if(s.code==="invalid_element")r({issues:s.issues},[...o,...s.path]);else{const a=[...o,...s.path];if(a.length===0)n._errors.push(t(s));else{let u=n,c=0;for(;c<a.length;){const l=a[c],d=c===a.length-1;if(l==="_errors"){d&&u._errors.push(t(s)),c++;continue}Object.prototype.hasOwnProperty.call(u,l)||Object.defineProperty(u,l,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});const f=u[l];d&&f._errors.push(t(s)),u=f,c++}}}};return r(e),n}function lc(e,t=n=>n.message){const n={errors:[]},r=(i,o=[])=>{var s;for(const a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(u=>r({issues:u},[...o,...a.path]));else if(a.code==="invalid_key")r({issues:a.issues},[...o,...a.path]);else if(a.code==="invalid_element")r({issues:a.issues},[...o,...a.path]);else{const u=[...o,...a.path];if(u.length===0){n.errors.push(t(a));continue}let c=n,l=0;for(;l<u.length;){const d=u[l],f=l===u.length-1;typeof d=="string"?(c.properties??(c.properties={}),Object.prototype.hasOwnProperty.call(c.properties,d)||Object.defineProperty(c.properties,d,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),c=c.properties[d]):(c.items??(c.items=[]),(s=c.items)[d]??(s[d]={errors:[]}),c=c.items[d]),f&&c.errors.push(t(a)),l++}}};return r(e),n}function cm(e){const t=[],n=e.map(r=>typeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function dc(e){const t=[],n=[...e.issues].sort((r,i)=>(r.path??[]).length-(i.path??[]).length);for(const r of n)t.push(`✖ ${r.message}`),r.path?.length&&t.push(` → at ${cm(r.path)}`);return t.join(`
10
+ `)}function bs(e,t){return{callee:t?.callee??e,Err:t?.Err}}const di=e=>{const t=(n,r,i,o)=>{const s=i?{...i,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise)throw new en;if(a.issues.length){const u=new(o?.Err??e)(a.issues.map(c=>Pt(c,s,Ye())));throw tc(u,o?.callee??t),u}return a.value};return t},bu=di(Tt),fi=e=>{const t=async(n,r,i,o)=>{const s=i?{...i,async:!0}:{async:!0};let a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise&&(a=await a),a.issues.length){const u=new(o?.Err??e)(a.issues.map(c=>Pt(c,s,Ye())));throw tc(u,o?.callee??t),u}return a.value};return t},wu=fi(Tt),hi=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new en;return o.issues.length?dm(e,o.issues,i):{success:!0,data:o.value}},lm=hi(Tt);function dm(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(i=>Pt(i,n,Ye()))),t=void 0,n=void 0),r},set error(i){r=i,t=void 0,n=void 0}}}const pi=e=>async(t,n,r)=>{const i=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?dm(e,o.issues,i):{success:!0,data:o.value}},Y_=pi(Tt),X_=Symbol.for("zod.compile.invalid"),Q_=Symbol.for("zod.compile.fallback"),ws=((e,t,n)=>{const r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==X_)return!0;if(r.definite===!0&&n===void 0)return!1}return ek(e,t,n)});function ek(e,t,n){const r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun;let o;if(i?(r[Q_]=!0,o=i({value:t,issues:[]},r)):o=e._zod.run({value:t,issues:[]},r),o instanceof Promise)throw new en;return o.issues.length===0}const _s=async(e,t,n)=>{const r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0};let i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},fc=e=>{const t=di(e),n=(r,i,o,s)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return t(r,i,a,bs(n,s))};return n},tk=fc(Tt),hc=e=>{const t=di(e),n=(r,i,o,s)=>t(r,i,o,bs(n,s));return n},nk=hc(Tt),pc=e=>{const t=fi(e),n=async(r,i,o,s)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return await t(r,i,a,bs(n,s))};return n},rk=pc(Tt),mc=e=>{const t=fi(e),n=async(r,i,o,s)=>await t(r,i,o,bs(n,s));return n},ik=mc(Tt),gc=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return hi(e)(t,n,i)},ok=gc(Tt),yc=e=>(t,n,r)=>hi(e)(t,n,r),sk=yc(Tt),vc=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return pi(e)(t,n,i)},ak=vc(Tt),bc=e=>async(t,n,r)=>pi(e)(t,n,r),uk=bc(Tt),fm=/^[cC][0-9a-z]{6,}$/,hm=/^[0-9a-z]+$/,pm=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,mm=/^[0-9a-vA-V]{20}$/,gm=/^[A-Za-z0-9]{27}$/,ym=/^[a-zA-Z0-9_-]{21}$/;function vm(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const bm=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ck=/^[-+]?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)?)??$/,wm=/^([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})$/,Qn=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,lk=Qn(4),dk=Qn(6),fk=Qn(7),_m=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,hk=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,pk=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,km=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,mk=km,gk=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,yk="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function Sm(){return new RegExp(yk,"u")}const xm=/^(?:(?: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])$/,Em=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,$m=e=>{const t=on(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Tm=/^((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])$/,Cm=/^(([0-9a-fA-F]{1,4}:){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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Am=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Im=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Nm=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,zm=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/,wc=/^https?$/,Rm=/^\+[1-9]\d{6,14}$/,_c=/^\d(?:[ -]?\d){11,18}$/,Lm=/^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/,kc=/^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/,Pm="(?:(?:\\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])))";function vk(e){return new RegExp(`^${e}$`)}const Dm=vk(Pm);function _u(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Om(e){return new RegExp(`^${_u(e)}$`)}function Mm(e){const t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${_u({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${_u({precision:e.precision})}`:n;return new RegExp(`^${Pm}T(?:${r})$`)}const Fm=/^[\s\S]{0,}$/,Um=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Gm=/^-?\d+n?$/,Sc=/^-?\d+$/,dr=/^-?\d+(?:\.\d+)?$/,jm=/^(?:true|false)$/i,Zm=/^null$/i,Bm=/^undefined$/i,Vm=/^[^A-Z]*$/,Hm=/^[^a-z]*$/,qm=/^[0-9a-fA-F]*$/;function mi(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function gi(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const bk=/^[0-9a-fA-F]{32}$/,wk=mi(22,"=="),_k=gi(22),kk=/^[0-9a-fA-F]{40}$/,Sk=mi(27,"="),xk=gi(27),Ek=/^[0-9a-fA-F]{64}$/,$k=mi(43,"="),Tk=gi(43),Ck=/^[0-9a-fA-F]{96}$/,Ak=mi(64,""),Ik=gi(64),Nk=/^[0-9a-fA-F]{128}$/,zk=mi(86,"=="),Rk=gi(86),ks=Object.freeze(Object.defineProperty({__proto__:null,anyString:Fm,base64:Am,base64url:Im,bigint:Gm,boolean:jm,browserEmail:gk,cidrv4:Tm,cidrv6:Cm,creditCard:_c,cuid:fm,cuid2:hm,currencyCode:Lm,date:Dm,datetime:Mm,domain:zm,duration:bm,e164:Rm,email:_m,emoji:Sm,extendedDuration:ck,guid:wm,hex:qm,hostname:Nm,html5Email:hk,httpProtocol:wc,iban:kc,idnEmail:mk,integer:Sc,ipv4:xm,ipv6:Em,ksuid:gm,lowercase:Vm,mac:$m,md5_base64:wk,md5_base64url:_k,md5_hex:bk,nanoid:ym,nanoidOfLength:vm,null:Zm,number:dr,rfc5322Email:pk,sha1_base64:Sk,sha1_base64url:xk,sha1_hex:kk,sha256_base64:$k,sha256_base64url:Tk,sha256_hex:Ek,sha384_base64:Ak,sha384_base64url:Ik,sha384_hex:Ck,sha512_base64:zk,sha512_base64url:Rk,sha512_hex:Nk,string:Um,time:Om,ulid:pm,undefined:Bm,unicodeEmail:km,uppercase:Hm,uuid:Qn,uuid4:lk,uuid6:dk,uuid7:fk,xid:mm},Symbol.toStringTag,{value:"Module"})),Me=k("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),xc=e=>{const t=e.value;return!Qu(t)&&t.size!==void 0},Ec=e=>{const t=e.value;return!Qu(t)&&t.length!==void 0},Yo={number:"number",bigint:"bigint",object:"date"},$c=k("$ZodCheckLessThan",(e,t)=>{Me.init(e,t);const n=Yo[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:Yo[typeof r.value]??n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Tc=k("$ZodCheckGreaterThan",(e,t)=>{Me.init(e,t);const n=Yo[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Yo[typeof r.value]??n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Wm=k("$ZodCheckMultipleOf",(e,t)=>{Me.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):ec(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Km=k("$ZodCheckNumberFormat",(e,t)=>{Me.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[i,o]=rc[t.format];e._zod.check=s=>{const a=s.value;if(n){if(!Number.isInteger(a)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}a<i&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),a>o&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Jm=k("$ZodCheckBigIntFormat",(e,t)=>{Me.init(e,t);const[n,r]=ic[t.format];e._zod.check=i=>{const o=i.value;o<n&&i.issues.push({origin:"bigint",input:o,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort}),o>r&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),Ym=k("$ZodCheckMaxSize",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=xc),e._zod.check=r=>{const i=r.value;i.size<=t.maximum||r.issues.push({origin:hs(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Xm=k("$ZodCheckMinSize",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=xc),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:hs(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Qm=k("$ZodCheckSizeEquals",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=xc),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const s=o>t.size;r.issues.push({origin:hs(i),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),eg=k("$ZodCheckMaxLength",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=Ec),e._zod.check=r=>{const i=r.value,o=i.length;if((typeof i=="string"&&o>t.maximum?ci(i):o)<=t.maximum)return;const a=ps(i);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),tg=k("$ZodCheckMinLength",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=Ec),e._zod.check=r=>{const i=r.value,o=i.length;if((typeof i=="string"&&o>=t.minimum&&o<t.minimum*2?ci(i):o)>=t.minimum)return;const a=ps(i);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),ng=k("$ZodCheckLengthEquals",(e,t)=>{var n;Me.init(e,t),(n=e._zod.def).when??(n.when=Ec),e._zod.check=r=>{const i=r.value,o=i.length,s=typeof i=="string"&&o>=t.length&&o<=t.length*2?ci(i):o;if(s===t.length)return;const a=ps(i),u=s>t.length;r.issues.push({origin:a,...u?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),yi=k("$ZodCheckStringFormat",(e,t)=>{var n,r;Me.init(e,t),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),rg=k("$ZodCheckRegex",(e,t)=>{yi.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ig=k("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Vm),yi.init(e,t)}),og=k("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Hm),yi.init(e,t)}),sg=k("$ZodCheckIncludes",(e,t)=>{Me.init(e,t);const n=on(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),ag=k("$ZodCheckStartsWith",(e,t)=>{Me.init(e,t);const n=new RegExp(`^${on(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),ug=k("$ZodCheckEndsWith",(e,t)=>{Me.init(e,t);const n=new RegExp(`.*${on(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function Xo(e,t,n){e.issues.length&&t.issues.push(...zt(n,e.issues))}const cg=k("$ZodCheckProperty",(e,t)=>{Me.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>Xo(i,n,t.property));Xo(r,n,t.property)}}),lg=k("$ZodCheckProperties",(e,t)=>{Me.init(e,t),ms(e,Symbol.iterator,function*(){yield e});let n;e._zod.check=r=>{if(r.value==null){r.issues.push({expected:"object",code:"invalid_type",input:r.value,inst:e});return}n??(n=Reflect.ownKeys(t.shape).map(s=>[s,t.shape[s]]));const i=r.value;let o;for(const[s,a]of n){const u=a._zod.run({value:i[s],issues:[]},{});u instanceof Promise?(o??(o=[]),o.push(u.then(c=>Xo(c,r,s)))):Xo(u,r,s)}if(o)return Promise.all(o).then(()=>{})}}),dg=k("$ZodCheckMimeType",(e,t)=>{Me.init(e,t);const n=new Set(t.mime);e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),fg=k("$ZodCheckOverwrite",(e,t)=>{Me.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Cc{constructor(t=[],n={}){this.content=[],this.indent=0,this.args=t,this.closed=n}indented(t){this.indent+=1;try{t(this)}finally{this.indent-=1}}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
11
+ `).filter(s=>s),i=Math.min(...r.map(s=>s.length-s.trimStart().length)),o=r.map(s=>s.slice(i)).map(s=>" ".repeat(this.indent*2)+s);for(const s of o)this.content.push(s)}compile(){const t=Function,n=this?.content??[""];return new t(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
12
12
  ${n.join(`
13
13
  `)}
14
- };`)(...Object.values(this.closed))}}const Lp={major:4,minor:6,patch:5},j=y("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Lp;const r=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...r??[]]:r?.length?[...r]:[];for(const s of o)for(const i of s._zod.onattach)i(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const s=(a,c,u)=>{if(a.memo)return a;let l=Ne(a),d;for(const f of c){if(f._zod.def.when){if(Sf(a)||!f._zod.def.when(a))continue}else if(l)continue;const p=a.issues.length,h=f._zod.check(a);if(h instanceof Promise&&u?.async===!1)throw new pt;if(d||h instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await h,a.issues.length!==p&&(qi(a.issues,p,e),l||(l=Ne(a,p)))});else{if(a.issues.length===p)continue;qi(a.issues,p,e),l||(l=Ne(a,p))}}return d?d.then(()=>a):a},i=(a,c,u)=>{if(Ne(a))return a.aborted=!0,a;const l=s(c,o,u);if(l instanceof Promise){if(u.async===!1)throw new pt;return l.then(d=>e._zod.parse(d,u))}return e._zod.parse(l,u)};e._zod.run=(a,c)=>{if(c.skipChecks)return e._zod.parse(a,c);if(c.direction==="backward"){const l=e._zod.parse({value:a.value,issues:[]},{...c,skipChecks:!0});return l instanceof Promise?l.then(d=>i(d,a,c)):i(l,a,c)}const u=e._zod.parse(a,c);if(u instanceof Promise){if(c.async===!1)throw new pt;return u.then(l=>s(l,o,c))}return s(u,o,c)}}},{get"~standard"(){return as(this,"~standard",Ua(this))},set"~standard"(e){yt(this,"~standard",e)}}),Rp=(e,t)=>e.issues.length?{issues:e.issues.map(n=>Je(n,t,ye()))}:{value:e.value};async function nb(e,t){const n={async:!0};return Rp(await e._zod.run({value:t,issues:[]},n),n)}function Ua(e){return{validate:t=>{const n={async:!1};try{const r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Rp(r,n)}catch{}return nb(e,t)},vendor:"zod",version:1}}const wr=y("$ZodString",(e,t)=>{j.init(e,t),e._zod.pattern=t.pattern??cp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),re=y("$ZodStringFormat",(e,t)=>{br.init(e,t),wr.init(e,t)}),Dp=y("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Vf),re.init(e,t)}),Zp=y("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=un(r))}else t.pattern??(t.pattern=un());re.init(e,t)}),jp=y("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=qf),re.init(e,t)}),Va=1,er=2;function qa(e){try{return typeof URL<"u"&&typeof URL.canParse=="function"?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function Ha(e,t){return!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t)?qa(e)||er:Fp(e,t)}function Fp(e,t){if(!t.normalize&&t.protocol?.source===Oa.source&&!/^https?:\/\//i.test(e))return Va;try{if(typeof URL<"u"){const n=URL;if(typeof n.parse=="function")return n.parse(e)??er}return new URL(e)}catch{return er}}const rb=/[\t\n\r]/g;function Wo(e){return e.replace(rb,"")}function Ba(e,t){return t.lastIndex=0,t.test(e.hostname)}function Ka(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}const Up=y("$ZodURL",(e,t)=>{re.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=Ha(r,t);if(o===Va){n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});return}if(o===er){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort});return}if(o===!0){n.value=Wo(r);return}t.hostname&&!Ba(o,t.hostname)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!Ka(o,t.protocol)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?o.href:Wo(r);return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Vp=y("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Bf()),re.init(e,t)}),qp=y("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw new Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?jf:Ff(t.length)),re.init(e,t)}),Hp=y("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Mf),re.init(e,t)}),Bp=y("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Lf),re.init(e,t)}),Kp=y("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Rf),re.init(e,t)}),Jp=y("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Df),re.init(e,t)}),Wp=y("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Zf),re.init(e,t)}),Gp=y("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=ap(t)),re.init(e,t)}),Yp=y("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=sp),re.init(e,t)}),Qp=y("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=ip(t)),re.init(e,t)}),Xp=y("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Uf),re.init(e,t)}),eh=y("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Kf),re.init(e,t)}),ob=/^[0-9a-fA-F:.]+$/;function ms(e){return ob.test(e)?qa(`http://[${e}]`):!1}const th=y("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Jf),re.init(e,t),e._zod.check=n=>{ms(n.value)||n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}),nh=y("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=Wf(t.delimiter)),re.init(e,t)}),rh=y("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Gf),re.init(e,t)});function Ja(e){const t=e.split("/");if(t.length!==2)return!1;const[n,r]=t;if(!r)return!1;const o=Number(r);return`${o}`!==r||o<0||o>128?!1:ms(n)}const oh=y("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Yf),re.init(e,t),e._zod.check=n=>{Ja(n.value)||n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}});function gs(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Wa=/^[0-9a-zA-Z+/]*={0,2}$/,sh=y("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Wa),re.init(e,t),e._zod.check=n=>{gs(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}}),ys=/^[A-Za-z0-9_-]*$/;function Ga(e){if(!ys.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return gs(n)}const ih=y("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=ys),re.init(e,t),e._zod.check=n=>{Ga(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ah=y("$ZodE164",(e,t)=>{t.pattern??(t.pattern=np),re.init(e,t)}),sb=/[- ]/g;function ib(e){let t=e.length,n=1,r=0;for(;t;){const o=e.charCodeAt(--t)-48;n^=1,r+=n?[0,2,4,6,8,1,3,5,7,9][o]:o}return r%10===0}function Ya(e){return Pa.test(e)?ib(e.replace(sb,"")):!1}const ch=y("$ZodCreditCard",(e,t)=>{t.pattern??(t.pattern=Pa),re.init(e,t),e._zod.check=n=>{Ya(n.value)||n.issues.push({code:"invalid_format",format:"credit_card",input:n.value,inst:e,continue:!t.abort})}});function ab(e){let t=0;const n=e.length;for(let r=4;r<n;r++){const o=e.charCodeAt(r);t=(o>=65?t*100+(o-55):t*10+(o-48))%97}for(let r=0;r<4;r++){const o=e.charCodeAt(r);t=(o>=65?t*100+(o-55):t*10+(o-48))%97}return t===1}function Qa(e){return Ma.test(e)?ab(e):!1}const uh=y("$ZodIBAN",(e,t)=>{t.pattern??(t.pattern=Ma),re.init(e,t),e._zod.check=n=>{Qa(n.value)||n.issues.push({code:"invalid_format",format:"iban",input:n.value,inst:e,continue:!t.abort})}});function Xa(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const lh=y("$ZodJWT",(e,t)=>{re.init(e,t),e._zod.check=n=>{Xa(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),dh=y("$ZodCustomStringFormat",(e,t)=>{re.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),ec=y("$ZodNumber",(e,t)=>{j.init(e,t),e._zod.pattern=bn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const o=n.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;const s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:String(o):void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),n}}),fh=y("$ZodNumberFormat",(e,t)=>{_p.init(e,t),ec.init(e,t)}),tc=y("$ZodBoolean",(e,t)=>{j.init(e,t),e._zod.pattern=dp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const o=n.value;return typeof o=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),nc=y("$ZodBigInt",(e,t)=>{j.init(e,t),e._zod.pattern=lp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),ph=y("$ZodBigIntFormat",(e,t)=>{bp.init(e,t),nc.init(e,t)}),hh=y("$ZodSymbol",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;return typeof o=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),n}}),mh=y("$ZodUndefined",(e,t)=>{j.init(e,t),e._zod.pattern=pp,e._zod.values=new Set([void 0]),e._zod.parse=(n,r)=>{const o=n.value;return typeof o>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),n}}),gh=y("$ZodNull",(e,t)=>{j.init(e,t),e._zod.pattern=fp,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const o=n.value;return o===null||n.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),n}}),yh=y("$ZodAny",(e,t)=>{j.init(e,t),e._zod.parse=n=>n}),_h=y("$ZodUnknown",(e,t)=>{j.init(e,t),e._zod.parse=n=>n}),bh=y("$ZodNever",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),wh=y("$ZodVoid",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;return typeof o>"u"||n.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),n}}),vh=y("$ZodDate",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const o=n.value,s=o instanceof Date;return s&&!Number.isNaN(o.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:o,...s?{received:"Invalid Date"}:{},inst:e}),n}});function Yl(e,t,n){e.issues.length&&t.issues.push(...He(n,e.issues)),t.value[n]=e.value}const kh=y("$ZodArray",(e,t)=>{j.init(e,t);const n=Ee.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{const s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),r;r.value=n?n.alloc(e,r,Array(s.length),o):Array(s.length);const i=[],a=o?.abortEarly;for(let c=0;c<s.length;c++){const u=s[c],l=t.element._zod.run({value:u,issues:[]},o);if(l instanceof Promise)i.push(l.then(d=>Yl(d,r,c)));else if(Yl(l,r,c),a&&l.issues.length!==0&&Ne(l))break}return i.length?Promise.all(i).then(()=>r):r}});function Go(e,t,n,r,o,s){const i=n in r,a=s==="optional";if(!(!i&&a&&o==="optional")){if(e.issues.length){if(o!==void 0&&a&&!i)return;t.issues.push(...He(n,e.issues))}if(!i&&o===void 0){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]});return}e.value===void 0?(i||o==="defaulted"&&!a)&&(t.value[n]=void 0):t.value[n]=e.value}}const cb=[];function $h(e){const t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:cb,o=r.length?[...t,...r]:t;for(const i of o)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${String(i)}": expected a Zod schema`);const s=gf(e.shape);return{...e,allKeys:o,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(s)}}function Sh(e,t,n,r,o,s,i){const a=[],c=o.keySet,u=o.catchall._zod,l=u.def.type,d=u.optin,f=u.optout;let p=0;for(const h in t){if(i&&n.issues.length!==p){if(Ne(n,p))break;p=n.issues.length}if(c.has(h))continue;if(h==="__proto__"){l==="never"&&a.push(h);continue}if(l==="never"){a.push(h);continue}const m=u.run({value:t[h],issues:[]},r);m instanceof Promise?e.push(m.then(_=>Go(_,n,h,t,d,f))):Go(m,n,h,t,d,f)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:s,continue:!0}),e.length?Promise.all(e).then(()=>n):n}const xh=y("$ZodObject",(e,t)=>{j.init(e,t);const n=Object.getOwnPropertyDescriptor(t,"shape"),r=n?.get?n.get.raw:t.shape??{};if(r){const u=()=>{const l={...r};return Object.defineProperty(t,"shape",{value:l}),u.raw=l,l};u.raw=r,Object.defineProperty(t,"shape",{get:u})}const o=ur(()=>$h(t));B(e,"propValues",u=>{const l=u.def.shape,d={};for(const f in l){const p=l[f]._zod;if(p.values){Object.prototype.hasOwnProperty.call(d,f)||Fe(d,f,new Set);for(const h of p.values)d[f].add(h);p.optin!==void 0&&d[f].add(void 0)}}return d});const s=an,i=t.catchall;let a;const c=Ee.memoizer;c?.attach(e),e._zod.parse=(u,l)=>{a??(a=o.value);const d=u.value;if(!s(d))return u.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),u;u.value=c?c.alloc(e,u,{},l):{};const f=[],p=a.shape,h=l?.abortEarly;let m=u.issues.length;for(const _ of a.allKeys){if(h&&u.issues.length!==m){if(Ne(u,m))break;m=u.issues.length}if(_==="__proto__")continue;const S=p[_],w=S._zod.optin,x=S._zod.optout,C=S._zod.run({value:d[_],issues:[]},l);C instanceof Promise?f.push(C.then(R=>Go(R,u,_,d,w,x))):Go(C,u,_,d,w,x)}return i?Sh(f,d,u,l,o.value,e,h===!0):f.length?Promise.all(f).then(()=>u):u}}),Ih=y("$ZodObjectJIT",(e,t)=>{xh.init(e,t);const n=e._zod.parse,r=ur(()=>$h(t)),o=Ee.memoizer,s=p=>{const h=r.value,m=h.symbolKeys,_=new Fa(["payload","ctx"],{shape:p,inst:e,memo:o,syms:m}),S=R=>`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`,w=(R,O)=>`
15
- let ${R}_ab = false;
16
- for (let i = 0; i < ${R}.issues.length; i++) {
17
- const iss = ${R}.issues[i];
18
- iss.path = iss.path ? [${O}, ...iss.path] : [${O}];
14
+ };`)(...Object.values(this.closed))}}const hg={major:4,minor:6,patch:5},le=k("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=hg;const r=e._zod.def.checks,i=e._zod.traits.has("$ZodCheck")?[e,...r??[]]:r?.length?[...r]:[];for(const o of i)for(const s of o._zod.onattach)s(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(a,u,c)=>{if(a.memo)return a;let l=vt(a),d;for(const f of u){if(f._zod.def.when){if(tm(a)||!f._zod.def.when(a))continue}else if(l)continue;const h=a.issues.length,p=f._zod.check(a);if(p instanceof Promise&&c?.async===!1)throw new en;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,a.issues.length!==h&&(vu(a.issues,h,e),l||(l=vt(a,h)))});else{if(a.issues.length===h)continue;vu(a.issues,h,e),l||(l=vt(a,h))}}return d?d.then(()=>a):a},s=(a,u,c)=>{if(vt(a))return a.aborted=!0,a;const l=o(u,i,c);if(l instanceof Promise){if(c.async===!1)throw new en;return l.then(d=>e._zod.parse(d,c))}return e._zod.parse(l,c)};e._zod.run=(a,u)=>{if(u.skipChecks)return e._zod.parse(a,u);if(u.direction==="backward"){const l=e._zod.parse({value:a.value,issues:[]},{...u,skipChecks:!0});return l instanceof Promise?l.then(d=>s(d,a,u)):s(l,a,u)}const c=e._zod.parse(a,u);if(c instanceof Promise){if(u.async===!1)throw new en;return c.then(l=>o(l,i,u))}return o(c,i,u)}}},{get"~standard"(){return ms(this,"~standard",Ac(this))},set"~standard"(e){sn(this,"~standard",e)}}),pg=(e,t)=>e.issues.length?{issues:e.issues.map(n=>Pt(n,t,Ye()))}:{value:e.value};async function Lk(e,t){const n={async:!0};return pg(await e._zod.run({value:t,issues:[]},n),n)}function Ac(e){return{validate:t=>{const n={async:!1};try{const r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return pg(r,n)}catch{}return Lk(e,t)},vendor:"zod",version:1}}const vi=k("$ZodString",(e,t)=>{le.init(e,t),e._zod.pattern=t.pattern??Fm,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Pe=k("$ZodStringFormat",(e,t)=>{yi.init(e,t),vi.init(e,t)}),mg=k("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=wm),Pe.init(e,t)}),gg=k("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Qn(r))}else t.pattern??(t.pattern=Qn());Pe.init(e,t)}),yg=k("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=_m),Pe.init(e,t)}),Ic=1,Xr=2;function Nc(e){try{return typeof URL<"u"&&typeof URL.canParse=="function"?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function zc(e,t){return!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t)?Nc(e)||Xr:vg(e,t)}function vg(e,t){if(!t.normalize&&t.protocol?.source===wc.source&&!/^https?:\/\//i.test(e))return Ic;try{if(typeof URL<"u"){const n=URL;if(typeof n.parse=="function")return n.parse(e)??Xr}return new URL(e)}catch{return Xr}}const Pk=/[\t\n\r]/g;function Qo(e){return e.replace(Pk,"")}function Rc(e,t){return t.lastIndex=0,t.test(e.hostname)}function Lc(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}const bg=k("$ZodURL",(e,t)=>{Pe.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=zc(r,t);if(i===Ic){n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});return}if(i===Xr){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=Qo(r);return}t.hostname&&!Rc(i,t.hostname)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!Lc(i,t.protocol)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:Qo(r);return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),wg=k("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Sm()),Pe.init(e,t)}),_g=k("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw new Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?ym:vm(t.length)),Pe.init(e,t)}),kg=k("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=fm),Pe.init(e,t)}),Sg=k("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=hm),Pe.init(e,t)}),xg=k("$ZodULID",(e,t)=>{t.pattern??(t.pattern=pm),Pe.init(e,t)}),Eg=k("$ZodXID",(e,t)=>{t.pattern??(t.pattern=mm),Pe.init(e,t)}),$g=k("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=gm),Pe.init(e,t)}),Tg=k("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Mm(t)),Pe.init(e,t)}),Cg=k("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Dm),Pe.init(e,t)}),Ag=k("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Om(t)),Pe.init(e,t)}),Ig=k("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=bm),Pe.init(e,t)}),Ng=k("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=xm),Pe.init(e,t)}),Dk=/^[0-9a-fA-F:.]+$/;function Ss(e){return Dk.test(e)?Nc(`http://[${e}]`):!1}const zg=k("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Em),Pe.init(e,t),e._zod.check=n=>{Ss(n.value)||n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}),Rg=k("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=$m(t.delimiter)),Pe.init(e,t)}),Lg=k("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Tm),Pe.init(e,t)});function Pc(e){const t=e.split("/");if(t.length!==2)return!1;const[n,r]=t;if(!r)return!1;const i=Number(r);return`${i}`!==r||i<0||i>128?!1:Ss(n)}const Pg=k("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Cm),Pe.init(e,t),e._zod.check=n=>{Pc(n.value)||n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}});function xs(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Dc=/^[0-9a-zA-Z+/]*={0,2}$/,Dg=k("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Dc),Pe.init(e,t),e._zod.check=n=>{xs(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}}),Es=/^[A-Za-z0-9_-]*$/;function Oc(e){if(!Es.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return xs(n)}const Og=k("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Es),Pe.init(e,t),e._zod.check=n=>{Oc(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Mg=k("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Rm),Pe.init(e,t)}),Ok=/[- ]/g;function Mk(e){let t=e.length,n=1,r=0;for(;t;){const i=e.charCodeAt(--t)-48;n^=1,r+=n?[0,2,4,6,8,1,3,5,7,9][i]:i}return r%10===0}function Mc(e){return _c.test(e)?Mk(e.replace(Ok,"")):!1}const Fg=k("$ZodCreditCard",(e,t)=>{t.pattern??(t.pattern=_c),Pe.init(e,t),e._zod.check=n=>{Mc(n.value)||n.issues.push({code:"invalid_format",format:"credit_card",input:n.value,inst:e,continue:!t.abort})}});function Fk(e){let t=0;const n=e.length;for(let r=4;r<n;r++){const i=e.charCodeAt(r);t=(i>=65?t*100+(i-55):t*10+(i-48))%97}for(let r=0;r<4;r++){const i=e.charCodeAt(r);t=(i>=65?t*100+(i-55):t*10+(i-48))%97}return t===1}function Fc(e){return kc.test(e)?Fk(e):!1}const Ug=k("$ZodIBAN",(e,t)=>{t.pattern??(t.pattern=kc),Pe.init(e,t),e._zod.check=n=>{Fc(n.value)||n.issues.push({code:"invalid_format",format:"iban",input:n.value,inst:e,continue:!t.abort})}});function Uc(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const Gg=k("$ZodJWT",(e,t)=>{Pe.init(e,t),e._zod.check=n=>{Uc(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),jg=k("$ZodCustomStringFormat",(e,t)=>{Pe.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Gc=k("$ZodNumber",(e,t)=>{le.init(e,t),e._zod.pattern=dr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),Zg=k("$ZodNumberFormat",(e,t)=>{Km.init(e,t),Gc.init(e,t)}),jc=k("$ZodBoolean",(e,t)=>{le.init(e,t),e._zod.pattern=jm,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Zc=k("$ZodBigInt",(e,t)=>{le.init(e,t),e._zod.pattern=Gm,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),Bg=k("$ZodBigIntFormat",(e,t)=>{Jm.init(e,t),Zc.init(e,t)}),Vg=k("$ZodSymbol",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),Hg=k("$ZodUndefined",(e,t)=>{le.init(e,t),e._zod.pattern=Bm,e._zod.values=new Set([void 0]),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),qg=k("$ZodNull",(e,t)=>{le.init(e,t),e._zod.pattern=Zm,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),Wg=k("$ZodAny",(e,t)=>{le.init(e,t),e._zod.parse=n=>n}),Kg=k("$ZodUnknown",(e,t)=>{le.init(e,t),e._zod.parse=n=>n}),Jg=k("$ZodNever",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),Yg=k("$ZodVoid",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),Xg=k("$ZodDate",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function Hf(e,t,n){e.issues.length&&t.issues.push(...zt(n,e.issues)),t.value[n]=e.value}const Qg=k("$ZodArray",(e,t)=>{le.init(e,t);const n=gt.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=n?n.alloc(e,r,Array(o.length),i):Array(o.length);const s=[],a=i?.abortEarly;for(let u=0;u<o.length;u++){const c=o[u],l=t.element._zod.run({value:c,issues:[]},i);if(l instanceof Promise)s.push(l.then(d=>Hf(d,r,u)));else if(Hf(l,r,u),a&&l.issues.length!==0&&vt(l))break}return s.length?Promise.all(s).then(()=>r):r}});function es(e,t,n,r,i,o){const s=n in r,a=o==="optional";if(!(!s&&a&&i==="optional")){if(e.issues.length){if(i!==void 0&&a&&!s)return;t.issues.push(...zt(n,e.issues))}if(!s&&i===void 0){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]});return}e.value===void 0?(s||i==="defaulted"&&!a)&&(t.value[n]=void 0):t.value[n]=e.value}}const Uk=[];function ey(e){const t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:Uk,i=r.length?[...t,...r]:t;for(const s of i)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${String(s)}": expected a Zod schema`);const o=qp(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(o)}}function ty(e,t,n,r,i,o,s){const a=[],u=i.keySet,c=i.catchall._zod,l=c.def.type,d=c.optin,f=c.optout;let h=0;for(const p in t){if(s&&n.issues.length!==h){if(vt(n,h))break;h=n.issues.length}if(u.has(p))continue;if(p==="__proto__"){l==="never"&&a.push(p);continue}if(l==="never"){a.push(p);continue}const m=c.run({value:t[p],issues:[]},r);m instanceof Promise?e.push(m.then(g=>es(g,n,p,t,d,f))):es(m,n,p,t,d,f)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o,continue:!0}),e.length?Promise.all(e).then(()=>n):n}const ny=k("$ZodObject",(e,t)=>{le.init(e,t);const n=Object.getOwnPropertyDescriptor(t,"shape"),r=n?.get?n.get.raw:t.shape??{};if(r){const c=()=>{const l={...r};return Object.defineProperty(t,"shape",{value:l}),c.raw=l,l};c.raw=r,Object.defineProperty(t,"shape",{get:c})}const i=ai(()=>ey(t));ye(e,"propValues",c=>{const l=c.def.shape,d={};for(const f in l){const h=l[f]._zod;if(h.values){Object.prototype.hasOwnProperty.call(d,f)||$t(d,f,new Set);for(const p of h.values)d[f].add(p);h.optin!==void 0&&d[f].add(void 0)}}return d});const o=Yn,s=t.catchall;let a;const u=gt.memoizer;u?.attach(e),e._zod.parse=(c,l)=>{a??(a=i.value);const d=c.value;if(!o(d))return c.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),c;c.value=u?u.alloc(e,c,{},l):{};const f=[],h=a.shape,p=l?.abortEarly;let m=c.issues.length;for(const g of a.allKeys){if(p&&c.issues.length!==m){if(vt(c,m))break;m=c.issues.length}if(g==="__proto__")continue;const w=h[g],y=w._zod.optin,b=w._zod.optout,v=w._zod.run({value:d[g],issues:[]},l);v instanceof Promise?f.push(v.then(S=>es(S,c,g,d,y,b))):es(v,c,g,d,y,b)}return s?ty(f,d,c,l,i.value,e,p===!0):f.length?Promise.all(f).then(()=>c):c}}),ry=k("$ZodObjectJIT",(e,t)=>{ny.init(e,t);const n=e._zod.parse,r=ai(()=>ey(t)),i=gt.memoizer,o=h=>{const p=r.value,m=p.symbolKeys,g=new Cc(["payload","ctx"],{shape:h,inst:e,memo:i,syms:m}),w=S=>`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`,y=(S,_)=>`
15
+ let ${S}_ab = false;
16
+ for (let i = 0; i < ${S}.issues.length; i++) {
17
+ const iss = ${S}.issues[i];
18
+ iss.path = iss.path ? [${_}, ...iss.path] : [${_}];
19
19
  payload.issues.push(iss);
20
- if (iss.continue !== true) ${R}_ab = true;
20
+ if (iss.continue !== true) ${S}_ab = true;
21
21
  }
22
- if (${R}_ab && ctx && ctx.abortEarly) {
22
+ if (${S}_ab && ctx && ctx.abortEarly) {
23
23
  payload.value = newResult;
24
24
  return payload;
25
- }`;_.write("const input = payload.value;");const x=Object.create(null);let C=0;for(const R of h.allKeys)x[R]=`key_${C++}`;_.write(o?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(const R of h.allKeys){if(R==="__proto__")continue;const O=x[R],F=typeof R=="symbol"?`syms[${m.indexOf(R)}]`:De(R),oe=`${F} in input`,le=p[R],te=le?._zod?.optin,ie=te!==void 0,qe=le?._zod?.optout==="optional";if(_.write(`const ${O} = ${S(F)};`),ie&&qe){const Pe=te==="optional"?`${O}_present`:`${O}.value !== undefined || ${O}_present`;_.write(`
26
- const ${O}_present = ${oe};
27
- if (!${O}.issues.length || ${O}_present) {
28
- if (${O}.issues.length) {${w(O,F)}
25
+ }`;g.write("const input = payload.value;");const b=Object.create(null);let v=0;for(const S of p.allKeys)b[S]=`key_${v++}`;g.write(i?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(const S of p.allKeys){if(S==="__proto__")continue;const _=b[S],$=typeof S=="symbol"?`syms[${m.indexOf(S)}]`:St(S),R=`${$} in input`,P=h[S],O=P?._zod?.optin,Y=O!==void 0,he=P?._zod?.optout==="optional";if(g.write(`const ${_} = ${w($)};`),Y&&he){const Se=O==="optional"?`${_}_present`:`${_}.value !== undefined || ${_}_present`;g.write(`
26
+ const ${_}_present = ${R};
27
+ if (!${_}.issues.length || ${_}_present) {
28
+ if (${_}.issues.length) {${y(_,$)}
29
29
  }
30
30
 
31
- if (${Pe}) {
32
- newResult[${F}] = ${O}.value;
31
+ if (${Se}) {
32
+ newResult[${$}] = ${_}.value;
33
33
  }
34
34
  }
35
35
 
36
- `)}else ie?(_.write(`
37
- if (${O}.issues.length) {${w(O,F)}
36
+ `)}else Y?(g.write(`
37
+ if (${_}.issues.length) {${y(_,$)}
38
38
  }
39
- `),te==="defaulted"?_.write(`newResult[${F}] = ${O}.value;`):_.write(`
40
- if (${O}.value !== undefined || ${oe}) {
41
- newResult[${F}] = ${O}.value;
39
+ `),O==="defaulted"?g.write(`newResult[${$}] = ${_}.value;`):g.write(`
40
+ if (${_}.value !== undefined || ${R}) {
41
+ newResult[${$}] = ${_}.value;
42
42
  }
43
- `)):_.write(`
44
- const ${O}_present = ${oe};
45
- if (${O}.issues.length) {${w(O,F)}
43
+ `)):g.write(`
44
+ const ${_}_present = ${R};
45
+ if (${_}.issues.length) {${y(_,$)}
46
46
  }
47
- if (!${O}_present && !${O}.issues.length) {
47
+ if (!${_}_present && !${_}.issues.length) {
48
48
  payload.issues.push({
49
49
  code: "invalid_type",
50
50
  expected: "nonoptional",
51
51
  input: undefined,
52
- path: [${F}]
52
+ path: [${$}]
53
53
  });
54
54
  if (ctx && ctx.abortEarly) {
55
55
  payload.value = newResult;
@@ -57,23 +57,23 @@ ${n.join(`
57
57
  }
58
58
  }
59
59
 
60
- if (${O}_present) {
61
- newResult[${F}] = ${O}.value;
60
+ if (${_}_present) {
61
+ newResult[${$}] = ${_}.value;
62
62
  }
63
63
 
64
- `)}return _.write("payload.value = newResult;"),_.write("return payload;"),_.compile()};let i;const a=an,c=!Ee.jitless,l=c&&hf.value,d=t.catchall;let f;e._zod.parse=(p,h)=>{f??(f=r.value);const m=p.value;return a(m)?c&&l&&h?.async===!1&&h.jitless!==!0?(i||(i=s(t.shape)),p=i(p,h),d?Sh([],m,p,h,f,e,h?.abortEarly===!0):p):n(p,h):(p.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),p)}});function Ql(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!Ne(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>Je(i,r,ye())))}),t)}const _s=y("$ZodUnion",(e,t)=>{j.init(e,t),B(e,"optin",r=>r.def.options.some(o=>o._zod.optin==="defaulted")?"defaulted":r.def.options.some(o=>o._zod.optin!==void 0)?"optional":void 0),B(e,"optout",r=>r.def.options.some(o=>o._zod.optout==="optional")?"optional":void 0),B(e,"values",r=>{if(r.def.options.every(o=>o._zod.values))return new Set(r.def.options.flatMap(o=>Array.from(o._zod.values)))}),B(e,"pattern",r=>{if(r.def.options.every(o=>o._zod.pattern)){const o=r.def.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>Ct(s.source)).join("|")})$`)}});const n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,o)=>{if(n)return n(r,o);let s=!1;const i=[];for(const a of t.options){const c=a._zod.run({value:r.value,issues:[]},o);if(c instanceof Promise)i.push(c),s=!0;else{if(c.issues.length===0)return c;i.push(c)}}return s?Promise.all(i).then(a=>Ql(a,r,e,o)):Ql(i,r,e,o)}});function Xl(e,t,n,r){const o=[];for(let s=0;s<e.length;s++)e[s].issues.length===0&&o.push(s);return o.length===1?(t.value=e[o[0]].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>Je(i,r,ye())))}):t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:[],inclusive:!1,matches:o}),t)}const zh=y("$ZodXor",(e,t)=>{_s.init(e,t),t.inclusive=!1;const n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,o)=>{if(n)return n(r,o);let s=!1;const i=[];for(const a of t.options){const c=a._zod.run({value:r.value,issues:[]},o);c instanceof Promise?(i.push(c),s=!0):i.push(c)}return s?Promise.all(i).then(a=>Xl(a,r,e,o)):Xl(i,r,e,o)}});function rc(e,t){const n=e._zod;let r=n.bag.optionsMap;r||(r=Th(n.def),n.bag.optionsMap=r);const o=r.get(t);if(o===null)throw new Error(`Ambiguous discriminator value "${String(t)}"`);return o}function Th(e){const t=new Map;for(const n of e.options){const r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(const o of r)if(t.has(o)){if(o!==void 0)throw new Error(`Duplicate discriminator value "${String(o)}"`);t.set(o,null)}else t.set(o,n)}return t}const Ch=y("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,_s.init(e,t);const n=e._zod.parse;B(e,"propValues",o=>{const s={};let i=0;for(const a of o.def.options){const c=a._zod.propValues;if(!c||Object.keys(c).length===0)throw new Error(`Invalid discriminated union option at index "${o.def.options.indexOf(a)}"`);c[o.def.discriminator]?.has(void 0)&&i++;for(const[u,l]of Object.entries(c)){Object.prototype.hasOwnProperty.call(s,u)||Fe(s,u,new Set);for(const d of l)s[u].add(d)}}return!o.def.unionFallback&&i>1&&s[o.def.discriminator]?.delete(void 0),s}),t.options.forEach((o,s)=>{const i=rs(o._zod.def);if(i&&!Object.prototype.hasOwnProperty.call(i,t.discriminator))throw new Error(`Invalid discriminated union option at index "${s}"`)});const r=ur(()=>Th(t));e._zod.parse=(o,s)=>{const i=o.value;if(!an(i))return o.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),o;const a=i?.[t.discriminator],c=r.value.get(a);return c&&(a!==void 0||s.direction!=="backward")?c._zod.run(o,s):t.unionFallback||s.direction==="backward"?n(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()).filter(u=>r.value.get(u)!==null),input:i,path:[t.discriminator],inst:e}),o)}}),Eh=y("$ZodIntersection",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>ed(n,c,u)):ed(n,s,i)}});function tr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(mt(e)&&mt(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};Object.prototype.hasOwnProperty.call(o,"__proto__")&&delete o.__proto__;for(const s of r){if(s==="__proto__")continue;const i=tr(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const o=e[r],s=t[r],i=tr(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function ed(e,t,n){const r=new Map;let o;const s=new Map,i=(u,l)=>{let d;if(u.code==="unrecognized_keys"&&!u.path?.length)o??(o=u),d=u.keys;else if(u.code==="invalid_key"&&u.origin==="record"&&u.path?.length===1){const f=String(u.path[0]);s.has(f)||s.set(f,u),d=[f]}else return!1;for(const f of d)r.has(f)||r.set(f,{}),r.get(f)[l]=!0;return!0};for(const u of t.issues)i(u,"l")||e.issues.push(u);for(const u of n.issues)i(u,"r")||e.issues.push(u);const a=[...r].filter(([,u])=>u.l&&u.r).map(([u])=>u);if(a.length){const u=o?a.filter(l=>o.keys.includes(l)):[];u.length&&e.issues.push({...o,keys:u});for(const l of a)!u.includes(l)&&s.has(l)&&e.issues.push(s.get(l))}const c=tr(t.value,n.value);if(!c.valid){if(Ne(e))return e;throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}const oc=y("$ZodTuple",(e,t)=>{j.init(e,t);const n=t.items,r=Ee.memoizer;r?.attach(e),e._zod.parse=(o,s)=>{const i=o.value;if(!Array.isArray(i))return o.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),o;o.value=r?r.alloc(e,o,[],s):[];const a=[],c=td(n,"optin"),u=td(n,"optout");if(!t.rest){if(i.length<c)return o.issues.push({code:"too_small",minimum:c,inclusive:!0,input:i,inst:e,origin:"array"}),o;i.length>n.length&&o.issues.push({code:"too_big",maximum:n.length,inclusive:!0,input:i,inst:e,origin:"array"})}const l=new Array(n.length),d=t.rest?s?.abortEarly:void 0;let f=!1;for(let p=0;p<n.length;p++){const h=n[p]._zod.run({value:i[p],issues:[]},s);h instanceof Promise?a.push(h.then(m=>{l[p]=m})):(l[p]=h,d&&!f&&h.issues.length&&(f=Ne(h)))}if(t.rest&&!f){let p=n.length-1;const h=i.slice(n.length);let m=o.issues.length;for(const _ of h){if(d&&o.issues.length!==m){if(Ne(o,m))break;m=o.issues.length}p++;const S=t.rest._zod.run({value:_,issues:[]},s);S instanceof Promise?a.push(S.then(w=>nd(w,o,p))):nd(S,o,p)}}return a.length?Promise.all(a).then(()=>rd(l,o,n,i,u)):rd(l,o,n,i,u)}});function td(e,t){for(let n=e.length-1;n>=0;n--)if(!(t==="optin"?e[n]._zod.optin!==void 0:e[n]._zod.optout==="optional"))return n+1;return 0}function nd(e,t,n){e.issues.length&&t.issues.push(...He(n,e.issues)),t.value[n]=e.value}function rd(e,t,n,r,o){for(let s=0;s<n.length;s++){const i=e[s],a=s<r.length;if(!a&&s>=o&&n[s]._zod.optin==="optional"){t.value.length=s;break}if(i.issues.length){if(!a&&s>=o){t.value.length=s;break}t.issues.push(...He(s,i.issues))}t.value[s]=i.value}for(let s=t.value.length-1;s>=r.length&&(n[s]._zod.optout==="optional"&&t.value[s]===void 0);s--)t.value.length=s;return t}const Ah=y("$ZodRecord",(e,t)=>{j.init(e,t);const n=Ee.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{const s=r.value;if(!mt(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:e}),r;const i=[],a=t.keyType._zod.values;if(a&&!t.partial){r.value=n?n.alloc(e,r,{},o):{};const c=new Set;for(const l of a)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){if(c.add(typeof l=="number"?l.toString():l),l==="__proto__")continue;const d=t.keyType._zod.run({value:l,issues:[]},o);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(h=>Je(h,o,ye())),input:l,path:[l],inst:e});continue}const f=d.value;if(f==="__proto__")continue;const p=t.valueType._zod.run({value:s[l],issues:[]},o);p instanceof Promise?i.push(p.then(h=>{h.issues.length&&r.issues.push(...He(l,h.issues)),r.value[f]=h.value})):(p.issues.length&&r.issues.push(...He(l,p.issues)),r.value[f]=p.value)}let u;for(const l in s)if(!c.has(l))if(t.mode==="loose"){if(l==="__proto__")continue;r.value[l]=s[l]}else u=u??[],u.push(l);u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:e,keys:u,continue:!0})}else{r.value=n?n.alloc(e,r,{},o):{};let c;for(const u of Reflect.ownKeys(s)){if(u==="__proto__"||!Object.prototype.propertyIsEnumerable.call(s,u))continue;let l=t.keyType._zod.run({value:u,issues:[]},o);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof u=="string"&&bn.test(u)&&l.issues.length){const h=t.keyType._zod.run({value:Number(u),issues:[]},o);if(h instanceof Promise)throw new Error("Async schemas not supported in object keys currently");h.issues.length===0&&(l=h)}if(l.issues.length){t.mode==="loose"?r.value[u]=s[u]:a?(c=c??[],c.push(u)):r.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(h=>Je(h,o,ye())),input:u,path:[u],inst:e});continue}const f=l.value;if(f==="__proto__")continue;const p=t.valueType._zod.run({value:s[u],issues:[]},o);p instanceof Promise?i.push(p.then(h=>{h.issues.length&&r.issues.push(...He(u,h.issues)),r.value[f]=h.value})):(p.issues.length&&r.issues.push(...He(u,p.issues)),r.value[f]=p.value)}c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:e,keys:c,continue:!0})}return i.length?Promise.all(i).then(()=>r):r}}),Nh=y("$ZodMap",(e,t)=>{j.init(e,t);const n=Ee.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{const s=r.value;if(!(s instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:s,inst:e}),r;const i=[];r.value=n?n.alloc(e,r,new Map,o):new Map;const a=o?.abortEarly;let c=r.issues.length;for(const[u,l]of s){if(a&&r.issues.length!==c){if(Ne(r,c))break;c=r.issues.length}const d=t.keyType._zod.run({value:u,issues:[]},o),f=t.valueType._zod.run({value:l,issues:[]},o);d instanceof Promise||f instanceof Promise?i.push(Promise.all([d,f]).then(([p,h])=>{od(p,h,r,u,s,e,o)})):od(d,f,r,u,s,e,o)}return i.length?Promise.all(i).then(()=>r):r}});function od(e,t,n,r,o,s,i){e.issues.length&&(Bo.has(typeof r)?n.issues.push(...He(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:o,inst:s,issues:e.issues.map(a=>Je(a,i,ye()))})),t.issues.length&&(Bo.has(typeof r)?n.issues.push(...He(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:o,inst:s,key:r,issues:t.issues.map(a=>Je(a,i,ye()))})),n.value.set(e.value,t.value)}const Oh=y("$ZodSet",(e,t)=>{j.init(e,t);const n=Ee.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{const s=r.value;if(!(s instanceof Set))return r.issues.push({input:s,inst:e,expected:"set",code:"invalid_type"}),r;const i=[];r.value=n?n.alloc(e,r,new Set,o):new Set;const a=o?.abortEarly;let c=r.issues.length;for(const u of s){if(a&&r.issues.length!==c){if(Ne(r,c))break;c=r.issues.length}const l=t.valueType._zod.run({value:u,issues:[]},o);l instanceof Promise?i.push(l.then(d=>sd(d,r))):sd(l,r)}return i.length?Promise.all(i).then(()=>r):r}});function sd(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const Ph=y("$ZodEnum",(e,t)=>{j.init(e,t);const n=qo(t.entries),r=new Set(n);e._zod.values=r,B(e,"pattern",o=>{const s=qo(o.def.entries).filter(i=>Bo.has(typeof i));return new RegExp(s.length?`^(${s.map(i=>gt(i.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,s)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),Mh=y("$ZodLiteral",(e,t)=>{j.init(e,t);const n=new Set(t.values);e._zod.values=n,B(e,"pattern",r=>{const o=r.def.values;return new RegExp(o.length?`^(${o.map(s=>typeof s=="string"?gt(s):s?gt(s.toString()):String(s)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(r,o)=>{const s=r.value;return n.has(s)||r.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),r}}),Lh=y("$ZodFile",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;return o instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),n}}),Rh=y("$ZodTransform",(e,t)=>{j.init(e,t),e._zod.optin="optional",Ee.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new cs(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new pt;return n.value=o,n}});function id(e,t){return e.value=t.issues.length?void 0:t.value,e}const sc=y("$ZodOptional",(e,t)=>{j.init(e,t),B(e,"optin",n=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",B(e,"values",n=>{const r=n.def.innerType._zod.values;return r?new Set([...r,void 0]):void 0}),B(e,"pattern",n=>{const r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${Ct(r.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(n.value===void 0){if(t.innerType._zod.optin!=="defaulted")return n;const o=t.innerType._zod.run({value:n.value,issues:[]},r);return o instanceof Promise?o.then(s=>id(n,s)):id(n,o)}return t.innerType._zod.run(n,r)}}),Dh=y("$ZodExactOptional",(e,t)=>{sc.init(e,t),B(e,"values",n=>n.def.innerType._zod.values),B(e,"pattern",n=>n.def.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),Zh=y("$ZodNullable",(e,t)=>{j.init(e,t),B(e,"optin",n=>n.def.innerType._zod.optin),B(e,"optout",n=>n.def.innerType._zod.optout),B(e,"pattern",n=>{const r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${Ct(r.source)}|null)$`):void 0}),B(e,"values",n=>n.def.innerType._zod.values?new Set([...n.def.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),jh=y("$ZodDefault",(e,t)=>{j.init(e,t),e._zod.optin="defaulted",B(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>ad(s,t)):ad(o,t)}});function ad(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Fh=y("$ZodPrefault",(e,t)=>{j.init(e,t),e._zod.optin="defaulted",B(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Uh=y("$ZodNonOptional",(e,t)=>{j.init(e,t),B(e,"values",n=>{const r=n.def.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>cd(s,e)):cd(o,e)}});function cd(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Vh=y("$ZodSuccess",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new cs("ZodSuccess");const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>(n.value=s.issues.length===0,n)):(n.value=o.issues.length===0,n)}});function ud(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(o=>Je(o,r,ye()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}const qh=y("$ZodCatch",(e,t)=>{j.init(e,t),B(e,"optin",n=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),B(e,"optout",n=>n.def.innerType._zod.optout),B(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run({value:n.value,issues:[]},r);return o instanceof Promise?o.then(s=>ud(n,s,t,r)):ud(n,o,t,r)}}),Hh=y("$ZodNaN",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),ic=y("$ZodPipe",(e,t)=>{j.init(e,t),B(e,"values",n=>n.def.in._zod.values),B(e,"optin",n=>n.def.in._zod.optin),B(e,"optout",n=>n.def.out._zod.optout),B(e,"propValues",n=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>To(i,t.in,r)):To(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>To(s,t.out,r)):To(o,t.out,r)}});function To(e,t,n){return e.issues.some(r=>r.code!=="unrecognized_keys")?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const ac=y("$ZodCodec",(e,t)=>{j.init(e,t),B(e,"values",n=>n.def.in._zod.values),B(e,"optin",n=>n.def.in._zod.optin),B(e,"optout",n=>n.def.out._zod.optout),B(e,"propValues",n=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const s=t.in._zod.run(n,r);return s instanceof Promise?s.then(i=>Co(i,t,r)):Co(s,t,r)}else{const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>Co(i,t,r)):Co(s,t,r)}}});function Co(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const o=t.transform(e.value,e);return o instanceof Promise?o.then(s=>Eo(e,s,t.out,n)):Eo(e,o,t.out,n)}else{const o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>Eo(e,s,t.in,n)):Eo(e,o,t.in,n)}}function Eo(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const Bh=y("$ZodPreprocess",(e,t)=>{ic.init(e,t)}),Kh=y("$ZodReadonly",(e,t)=>{j.init(e,t),B(e,"propValues",n=>n.def.innerType._zod.propValues),B(e,"values",n=>n.def.innerType._zod.values),B(e,"optin",n=>n.def.innerType?._zod?.optin),B(e,"optout",n=>n.def.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(ld):ld(o)}});function ld(e){return e.memo||(e.value=Object.freeze(e.value)),e}function ub(e){const t=e._zod.def;let n=t.pattern,r=!!t.format?.includes("int"),o,s;for(const a of t.checks??[]){const c=a._zod.def;c.pattern&&(n=c.pattern),r||(r=!!c.format?.includes("int"));const u=c.minimum??c.length,l=c.maximum??c.length;u!==void 0&&(o===void 0||u>o)&&(o=u),l!==void 0&&(s===void 0||l<s)&&(s=l)}if(n)return n.source;if(o!==void 0&&s!==void 0&&o>s)return"(?!)";if(o!==void 0||s!==void 0)return up({minimum:o,maximum:s}).source;const i=e._zod.pattern;return(r&&i===bn?La:i)?.source}function Ji(e){const t=e._zod.def,n=e._zod.pattern?.source,r=t.innerType??e._zod.innerType;if(r){const o=r._zod.pattern?.source,s=Ji(r);return n&&o&&s&&s!==o?n.replace(Ct(o),()=>Ct(s)):n}if(t.options){const o=t.options.map(Ji);if(o.every(Boolean))return`^(${o.map(s=>Ct(s)).join("|")})$`}return ub(e)}const Jh=y("$ZodTemplateLiteral",(e,t)=>{j.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){const o=Ji(r);if(!o)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);n.push(Ct(o))}else if(r===null||mf.has(typeof r))n.push(gt(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,o)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"string",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),Wh=y("$ZodFunction",(e,t)=>(j.init(e,t),Object.defineProperty(e,"_def",{value:t}),e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return Object.defineProperty(function(...r){const o=e._def.input?Hi(e._def.input,r):r,s=Reflect.apply(n,this,o);return e._def.output?Hi(e._def.output,s):s},"_zod",{value:e._zod,enumerable:!1})},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return Object.defineProperty(async function(...r){const o=e._def.input?await Bi(e._def.input,r):r,s=await Reflect.apply(n,this,o);return e._def.output?await Bi(e._def.output,s):s},"_zod",{value:e._zod,enumerable:!1})},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new oc({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),Gh=y("$ZodPromise",(e,t)=>{j.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(o=>t.innerType._zod.run({value:o,issues:[]},r))}),cc=y("$ZodLazy",(e,t)=>{j.init(e,t),lf(e._zod,"innerType",()=>{const n=t;return n._cachedInner||(n._cachedInner=t.getter()),n._cachedInner}),B(e,"pattern",n=>n.innerType?._zod?.pattern),B(e,"propValues",n=>n.innerType?._zod?.propValues),B(e,"optin",n=>n.innerType?._zod?.optin??void 0),B(e,"optout",n=>n.innerType?._zod?.optout??void 0),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),Yh=y("$ZodCustom",(e,t)=>{ue.init(e,t),j.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(s=>dd(s,n,r,e));dd(o,n,r,e)}});function dd(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(cn(o))}}class Qh extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform"),this.name="ZodCyclicError"}}const Wi="~memo",fd=[];function Xh(e){return e!==null&&typeof e=="object"}function Ai(e){return e.map(t=>t.path?{...t,path:t.path.slice()}:{...t})}const em=new WeakMap,sn=0,Vo=1,Gn=2;function Yn(e,t,n){const r=em.get(e);if(r!==void 0)return r?Gn:sn;if(t.has(e))return Gn;t.add(e);let o=sn;const s=l=>{if(o!==Gn&&l?._zod){const d=Yn(l,t,n);d>o&&(o=d)}},i=(l,d)=>{let f=sn;for(const p of Reflect.ownKeys(l)){const h=Object.getOwnPropertyDescriptor(l,p);if(!h.enumerable)continue;const m=h.get?Vo:h.value?._zod?Yn(h.value,t,n):sn;m>f&&(f=m)}return f},a=l=>{l>o&&(o=l)},c=e._zod.def;switch(c.type){case"object":{const l=rs(c);a(l?i(l):Vo),s(c.catchall);break}case"array":s(c.element);break;case"tuple":for(const l of c.items)s(l);s(c.rest);break;case"record":case"map":s(c.keyType),s(c.valueType);break;case"set":s(c.valueType);break;case"union":for(const l of c.options)s(l);break;case"intersection":s(c.left),s(c.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":s(c.innerType);break;case"pipe":s(c.in),s(c.out);break;case"function":s(c.input),s(c.output);break;case"lazy":{const l=c._cachedInner??(n?e._zod.innerType:void 0);a(l?Yn(l,t,!1):Vo);break}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":break;default:for(const l in c){const d=Object.getOwnPropertyDescriptor(c,l);if(!d||d.get)continue;const f=d.value;if(!(!f||typeof f!="object")){if(f._zod)s(f);else if(Array.isArray(f))for(const p of f)s(p)}}}return t.delete(e),lb(e,o)}function lb(e,t){return t!==Vo&&em.set(e,t===Gn),t}function uc(e){return Yn(e,new Set,!0)!==sn}function db(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}let Ao;const No=[],fb={alloc(e,t,n){const r=Ao;if(!r)return n;Ao=void 0;const o={value:n,issues:null};return r.set(t.value,o),No.push(o),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{const n=e._zod.parse,r=(o,s)=>{if(s.direction!=="backward"&&lc(s,o.value))throw new Qh;return n(o,s)};e._zod.parse=r,e._zod.run===n&&(e._zod.run=r)})},attach(e){var t;let n,r=!1,o,s;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{const i=e._zod.parse,a=(c,u)=>{if(n===void 0){const S=Yn(e,new Set,!1);if(S===sn)return e._zod.parse=i,e._zod.run===a&&(e._zod.run=i),i(c,u);S===Gn||r?n=!0:r=!0}const l=c.value;if(!Xh(l))return i(c,u);let d=u[Wi];d||(d={buckets:new WeakMap,backEdges:void 0},u[Wi]=d);let f;o===u?f=s:(f=db(d,e),o=u,s=f);const p=f.get(l);if(p)return c.value=p.value,p.issues?p.issues.length&&c.issues.push(...Ai(p.issues)):(c.memo=!0,d.backEdges??(d.backEdges=new WeakSet),d.backEdges.add(p.value)),c;Ao=f;const h=No.length,m=i(c,u);Ao=void 0;const _=No.length>h?No.pop():void 0;return m instanceof Promise?m.then(S=>(_&&(_.issues=S.issues.length?Ai(S.issues):fd),S)):(_&&(_.issues=m.issues.length?Ai(m.issues):fd),m)};e._zod.parse=a,e._zod.run===i&&(e._zod.run=a)})}};function bs(){return fb}function lc(e,t){const n=e[Wi]?.backEdges;return n!==void 0&&Xh(t)&&n.has(t)}const dc=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));var pd;const fc=Symbol("ZodOutput"),pc=Symbol("ZodInput");class tm{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function ws(){return new tm}(pd=globalThis).__zod_globalRegistry??(pd.__zod_globalRegistry=ws());const Re=globalThis.__zod_globalRegistry,Ae=Symbol.for("zod.compile.invalid"),hd=Symbol.for("zod.compile.fallback");class _t extends Error{constructor(t="z.compile does not support async refinements, transforms, or checks"){super(t),this.name="ZodCompileAsyncError"}}class G extends Error{constructor(t,n=!0){super(`z.compile does not support ${t}; this schema must use the runtime parser`),this.name="ZodCompileUnsupportedError",this.islandable=n}}function pb(e,t){try{return ks(e,{assertOnly:!0})}catch{return t}}function hc(e,t){try{const n=ks(e),r=vs(e,n);return r._zod.bag.validator=pb(e,n),r}catch(n){if(t?.strict)throw n;return e}}function vs(e,t){if(uc(e))throw new G("a schema whose subtree contains a reference cycle");const n=ce(e),r=e._zod.run,o=r.__originalRun??r,s=(i,a)=>{if(a?.async||a?.direction==="backward"||a?.skipChecks||a?.[hd]||a&&lc(a,i.value))return o(i,a);const c=t(i.value);return c!==Ae?(i.value=c,i):(a&&(a[hd]=!0),o(i,a))};return s.__originalRun=o,n._zod.bag.fallbackRun=o,n._zod.bag.validator=t,n._zod.run=s,r.__originalRun||hb(n,e,t),n}function hb(e,t,n){const r=e,o=t;if(typeof o.safeParse=="function"){const s=o.safeParse;r.safeParse=(i,a)=>{const c=n(i);return c!==Ae?{success:!0,data:c}:s(i,a)}}if(typeof o.parse=="function"){const s=o.parse;r.parse=(i,a)=>{const c=n(i);return c!==Ae?c:s(i,a)}}}function ks(e,t){let n=!0;try{n=uc(e)}catch{}if(n)throw new G("a schema whose subtree contains a reference cycle");const r={constants:new Map,constantCounter:0,varCounter:0,definite:!0},o=new Fa(["input"]),s=de(o,r,e,"input",!t?.assertOnly);o.write(s===null?"return true;":`return ${s};`);const i=["INVALID",...r.constants.keys()],a=[Ae,...r.constants.values()],c=o.content.join(`
65
- `),u=t?.debug?i.length>0?`// Constants: ${i.join(", ")}
66
- ${c}`:c:"",l=Function,d=`return (input) => {
67
- ${c}
68
- }`;let f;try{f=new l(...i,d)(...a)}catch(p){throw new G(`this schema (generated code failed to evaluate: ${p.message})`)}return t?.debug&&(f.code=u),f.definite=r.definite,f}function Z(e,t){for(const[r,o]of e.constants)if(o===t)return r;const n=`c${e.constantCounter++}`;return e.constants.set(n,t),n}function Ut(e,t){return e.definite=!1,Z(e,t)}function L(e){return`v${e.varCounter++}`}function mb(e,t){const n=e._zod.run({value:t,issues:[]},{});if(n&&typeof n.then=="function")return Ae;const r=n;return r.issues.length===0?r.value:Ae}function Ie(e,t,n,r,o=!0){const s=e.content.length,i=t.constants.size,a=t.constantCounter,c=t.varCounter;try{return de(e,t,n,r,o)}catch(u){if(!(u instanceof G)||!u.islandable)throw u;if(e.content.length=s,t.constants.size>i){const l=Array.from(t.constants.keys()).slice(i);for(const d of l)t.constants.delete(d)}return t.constantCounter=a,t.varCounter=c,gb(e,t,n,r)}}function gb(e,t,n,r){t.definite=!1;const o=Z(t,n),s=Z(t,mb),i=L(t);return e.write(`const ${i} = ${s}(${o}, ${r});`),e.write(`if (${i} === INVALID) return INVALID;`),i}const yb=new Set(["max_size","min_size","size_equals","max_length","min_length","length_equals"]);function _b(e,t,n,r){const o=n._zod.def.checks;if(!o||o.length===0)return r;let s=r;for(const i of o){const a=i._zod.def;if(a.when&&!yb.has(a.check))throw new G('check with a custom "when" condition');switch(a.check){case"greater_than":bb(e,t,a,s);break;case"less_than":wb(e,t,a,s);break;case"multiple_of":vb(e,t,a,s);break;case"number_format":rm(e,a,s);break;case"min_length":{const c=Rt(a.minimum,"min_length"),u=Ni(e,t,s,`${s}.length >= ${c} && ${s}.length < ${a.minimum*2}`);e.write(`if (${u} < ${c}) return INVALID;`);break}case"max_length":{const c=Rt(a.maximum,"max_length"),u=Ni(e,t,s,`${s}.length > ${c}`);e.write(`if (${u} > ${c}) return INVALID;`);break}case"length_equals":{const c=Rt(a.length,"length_equals"),u=Ni(e,t,s,`${s}.length >= ${c} && ${s}.length <= ${a.length*2}`);e.write(`if (${u} !== ${c}) return INVALID;`);break}case"min_size":e.write(`if (${s}.size < ${Rt(a.minimum,"min_size")}) return INVALID;`);break;case"max_size":e.write(`if (${s}.size > ${Rt(a.maximum,"max_size")}) return INVALID;`);break;case"size_equals":e.write(`if (${s}.size !== ${Rt(a.size,"size_equals")}) return INVALID;`);break;case"string_format":s=om(e,t,a,s);break;case"custom":s=zb(e,t,i,s);break;case"bigint_format":kb(e,a,s);break;case"mime_type":$b(e,t,a,s);break;case"property":xb(e,t,a,s);break;case"properties":Sb(e,t,a,s);break;case"overwrite":{const c=L(t);Ib(e,t,i,s,c),s=c;break}default:throw new G(`check type ${a.check}`)}}return s}function Ni(e,t,n,r){const o=Z(t,dr),s=L(t);return e.write(`const ${s} = typeof ${n} === "string" && ${r} ? ${o}(${n}) : ${n}.length;`),s}function Rt(e,t){if(typeof e!="number"||!Number.isFinite(e))throw new G(`${t} bound of type ${typeof e}`);return`${e}`}function nm(e,t){if(typeof t=="bigint")return`${t}n`;if(typeof t=="number"){if(Number.isNaN(t))throw new G("comparison check with NaN bound");return`${t}`}if(t instanceof Date){if(Number.isNaN(t.getTime()))throw new G("comparison check with Invalid Date bound");return Z(e,t)}throw new G(`comparison check bound of type ${typeof t}`)}function bb(e,t,n,r){const o=n.inclusive?"<":"<=";e.write(`if (${r} ${o} ${nm(t,n.value)}) return INVALID;`)}function wb(e,t,n,r){const o=n.inclusive?">":">=";e.write(`if (${r} ${o} ${nm(t,n.value)}) return INVALID;`)}function vb(e,t,n,r){if(typeof n.value=="bigint"){if(n.value===BigInt(0))throw new G("multiple_of check with a zero divisor");e.write(`if (${r} % ${n.value}n !== 0n) return INVALID;`)}else{const o=Z(t,pa);e.write(`if (${o}(${r}, ${Rt(n.value,"multiple_of")}) !== 0) return INVALID;`)}}function rm(e,t,n){const r=t.format;switch(r){case"safeint":e.write(`if (!Number.isSafeInteger(${n})) return INVALID;`);break;case"int32":e.write(`if (!Number.isInteger(${n}) || ${n} < -2147483648 || ${n} > 2147483647) return INVALID;`);break;case"uint32":e.write(`if (!Number.isInteger(${n}) || ${n} < 0 || ${n} > 4294967295) return INVALID;`);break;case"float32":e.write(`if (!Number.isFinite(${n}) || ${n} < -3.4028234663852886e38 || ${n} > 3.4028234663852886e38) return INVALID;`);break;case"float64":e.write(`if (!Number.isFinite(${n})) return INVALID;`);break;default:throw new G(`number format ${r}`)}}function kb(e,t,n){const r=t.format;if(r)switch(r){case"int64":e.write(`if (${n} < -9223372036854775808n || ${n} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${n} < 0n || ${n} > 18446744073709551615n) return INVALID;`);break;default:throw new G(`bigint format ${r}`)}}function $b(e,t,n,r){const o=n.mime;if(o&&o.length>0){const s=Z(t,new Set(o));e.write(`if (!${s}.has(${r}.type)) return INVALID;`)}}function Sb(e,t,n,r){if(n.when)throw new G('check with a custom "when" condition');e.write(`if (${r} == null) return INVALID;`);const o=n.shape;for(const s of Reflect.ownKeys(o)){const i=typeof s=="symbol"?Z(t,s):De(s),a=L(t);e.write(`const ${a} = ${r}[${i}];`),Ie(e,t,o[s],a,!1)}}function xb(e,t,n,r){const o=`${r}[${JSON.stringify(n.property)}]`;de(e,t,n.schema,o)}function Ib(e,t,n,r,o){const s=n._zod.def.tx;if(!s)throw new G("overwrite check without a transform function");if(Vt(s))throw new _t("z.compile: async overwrite transforms are not supported");const i=Z(t,s);e.write(`const ${o} = ${i}(${r});`)}function Gi(){throw new pt}function mc(e){this.issues.push(e)}function zb(e,t,n,r){const o=n._zod.def;if(o.fn){if(Vt(o.fn))throw new _t("z.compile: async .refine() predicates are not supported");const s=Ut(t,o.fn),i=Z(t,Gi),a=L(t);return e.write(`const ${a} = ${s}(${r});`),e.write(`if (${a} instanceof Promise) ${i}();`),e.write(`if (!${a}) return INVALID;`),r}if(n._zod.check){if(Vt(n._zod.check))throw new _t("z.compile: async .superRefine() / check functions are not supported");const s=n._zod.check,a=Ut(t,u=>{const l={value:u,issues:[],addIssue:mc};return s(l)instanceof Promise&&Gi(),l.issues.length===0?l.value:Ae}),c=L(t);return e.write(`const ${c} = ${a}(${r});`),e.write(`if (${c} === INVALID) return INVALID;`),c}throw new G("custom check without a predicate or check function")}const Tb=new Set(["cidrv4","cuid","cuid2","date","datetime","duration","e164","email","emoji","ends_with","guid","includes","ipv4","ksuid","lowercase","mac","nanoid","regex","starts_with","time","ulid","uppercase","uuid","xid"]);function om(e,t,n,r,o=!0){const s=n.format;if(s==="base64"){const u=Z(t,gs);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(s==="base64url"){const u=Z(t,Ga);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(s==="jwt"){const u=Z(t,Xa),l=Z(t,n.alg??null);return e.write(`if (!${u}(${r}, ${l})) return INVALID;`),r}if(s==="ipv6"){const u=Z(t,ms);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(s==="cidrv6"){const u=Z(t,Ja);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(s==="credit_card"){const u=Z(t,Ya);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(s==="iban"){const u=Z(t,Qa);return e.write(`if (!${u}(${r})) return INVALID;`),r}const i=n;if(s==="url"||s==="httpurl"||i.normalize||i.hostname!==void 0||i.protocol!==void 0){const u=Z(t,Ha),l=Z(t,n),d=L(t),f=L(t);if(e.write(`const ${d} = ${r}.trim();`),e.write(`const ${f} = ${u}(${d}, ${l});`),e.write(`if (typeof ${f} === "number") return INVALID;`),i.hostname!==void 0){const m=Z(t,Ba);e.write(`if (!${m}(${f}, ${l}.hostname)) return INVALID;`)}if(i.protocol!==void 0){const m=Z(t,Ka);e.write(`if (!${m}(${f}, ${l}.protocol)) return INVALID;`)}if(!o)return null;const p=L(t),h=i.normalize?`${f}.href`:`${Z(t,Wo)}(${d})`;return e.write(`const ${p} = ${h};`),p}const a=n.fn;if(a){if(Vt(a))throw new G(`async string format ${s}`);const u=Z(t,a);return e.write(`if (!${u}(${r})) return INVALID;`),r}if(Tb.has(s)&&n.pattern){const u=Z(t,n.pattern);return e.write(`${u}.lastIndex = 0;`),e.write(`if (!${u}.test(${r})) return INVALID;`),r}const c=n.format;switch(c){case"regex":throw new G("regex format without a pattern");case"lowercase":e.write(`if (${r} !== ${r}.toLowerCase()) return INVALID;`);break;case"uppercase":e.write(`if (${r} !== ${r}.toUpperCase()) return INVALID;`);break;case"includes":e.write(`if (!${r}.includes(${De(n.includes)})) return INVALID;`);break;case"starts_with":{const u=n.prefix;e.write(`if (${r}.slice(0, ${u.length}) !== ${De(u)}) return INVALID;`);break}case"ends_with":{const u=n.suffix;e.write(`if (${r}.slice(-${u.length}) !== ${De(u)}) return INVALID;`);break}default:throw new G(`string format ${c}`)}return r}function de(e,t,n,r,o=!0){const s=n._zod.def,i=s.type;if(s.coerce)throw new G(`coercion (z.coerce.${i}())`);const a=o||!!s.checks?.length;let c;switch(i){case"string":c=Cb(e,t,n,r,a);break;case"number":c=Eb(e,n,r);break;case"boolean":c=Ab(e,r);break;case"bigint":c=Nb(e,n,r);break;case"symbol":c=Ob(e,r);break;case"undefined":c=Pb(e,r);break;case"null":c=Mb(e,r);break;case"any":case"unknown":c=r;break;case"never":e.write("return INVALID;"),c=r;break;case"void":c=Lb(e,r);break;case"nan":c=Rb(e,r);break;case"date":c=Db(e,r);break;case"object":c=Zb(e,t,n,r,a);break;case"optional":c=jb(e,t,n,r,a);break;case"nullable":c=Vb(e,t,n,r,a);break;case"array":c=qb(e,t,n,r,a);break;case"literal":c=Hb(e,t,n,r);break;case"enum":c=Bb(e,t,n,r);break;case"readonly":{const u=gd(e,t,n,r),l=L(t);e.write(`const ${l} = Object.freeze(${u});`),c=l;break}case"success":gd(e,t,n,r),c="true";break;case"default":case"prefault":c=Kb(e,t,n,r);break;case"nonoptional":c=Jb(e,t,n,r);break;case"tuple":c=Wb(e,t,n,r);break;case"union":c=Gb(e,t,n,r);break;case"intersection":c=Xb(e,t,n,r);break;case"record":c=ew(e,t,n,r);break;case"map":c=nw(e,t,n,r);break;case"set":c=rw(e,t,n,r);break;case"file":c=ow(e,r);break;case"template_literal":c=sw(e,t,n,r);break;case"lazy":c=iw(e,t,n,r);break;case"pipe":c=aw(e,t,n,r);break;case"custom":c=cw(e,t,n,r);break;case"transform":c=dw(e,t,n,r);break;case"catch":c=lw(e,t,n,r);break;default:throw new G(`schema type ${i}`)}return c===null?null:_b(e,t,n,c)}function Cb(e,t,n,r,o=!0){e.write(`if (typeof ${r} !== "string") return INVALID;`);const s=n._zod.def;return s.format===void 0?r:om(e,t,s,r,o)}function Eb(e,t,n){e.write(`if (typeof ${n} !== "number" || !Number.isFinite(${n})) return INVALID;`);const r=t._zod.def;return r.check==="number_format"&&r.format&&rm(e,{format:r.format},n),n}function Ab(e,t){return e.write(`if (typeof ${t} !== "boolean") return INVALID;`),t}function Nb(e,t,n){e.write(`if (typeof ${n} !== "bigint") return INVALID;`);const r=t._zod.def;if(r.format)switch(r.format){case"int64":e.write(`if (${n} < -9223372036854775808n || ${n} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${n} < 0n || ${n} > 18446744073709551615n) return INVALID;`);break}return n}function Ob(e,t){return e.write(`if (typeof ${t} !== "symbol") return INVALID;`),t}function Pb(e,t){return e.write(`if (${t} !== undefined) return INVALID;`),t}function Mb(e,t){return e.write(`if (${t} !== null) return INVALID;`),t}function Lb(e,t){return e.write(`if (${t} !== undefined) return INVALID;`),t}function Rb(e,t){return e.write(`if (typeof ${t} !== "number" || !Number.isNaN(${t})) return INVALID;`),t}function Db(e,t){return e.write(`if (!(${t} instanceof Date) || Number.isNaN(${t}.getTime())) return INVALID;`),t}function Zb(e,t,n,r,o=!0){const s=n._zod.def;e.write(`if (typeof ${r} !== "object" || ${r} === null || Array.isArray(${r})) return INVALID;`);const i=s.shape,a=Object.keys(i),c=Object.getOwnPropertySymbols(i),u=c.length?[...a,...c]:a,l=w=>typeof w=="symbol"?Z(t,w):De(w),d=w=>typeof w=="symbol"?`[${l(w)}]`:De(w),f=i;if(a.includes("__proto__"))throw new G('object shape key "__proto__"');const p=new Map;for(const w of u){const x=f[w],C=l(w),R=L(t);if(e.write(`const ${R} = ${r}[${C}];`),x._zod.optin!==void 0){const O=L(t);e.write(`let ${O} = (() => {`),e.indented(F=>{const oe=Ie(F,t,x,R);F.write(`return ${oe};`)}),e.write("})();"),x._zod.optout==="optional"?(e.write(`if (${O} === INVALID) {`),e.indented(F=>{F.write(`if (${C} in ${r}) return INVALID;`),F.write(`${O} = undefined;`)}),e.write("}")):e.write(`if (${O} === INVALID) return INVALID;`),p.set(w,O)}else{Ub(x)&&e.write(`if (!(${C} in ${r})) return INVALID;`);const O=Ie(e,t,x,R,o);O!==null&&p.set(w,O)}}const h=s.catchall;let m="none";if(h){const w=h._zod.def.type;if(w==="never"){const x=a.map(C=>`k !== ${De(C)}`).join(" && ")||"true";e.write(`for (const k in ${r}) {`),e.indented(C=>{C.write(`if (${x}) return INVALID;`)}),e.write("}")}else(w==="unknown"||w==="any")&&!h._zod.def.checks?.length?m="passthrough":m="schema"}const _=L(t),S=u.some(w=>md(f[w])||Yi(f[w]));if(!o){if(m==="schema"){const w=a.length>0?Z(t,new Set(a)):null;e.write(`for (const k in ${r}) {`),e.indented(x=>{x.write('if (k === "__proto__") continue;'),w&&x.write(`if (${w}.has(k)) continue;`);const C=L(t);x.write(`const ${C} = ${r}[k];`),Ie(x,t,h,C,!1)}),e.write("}")}return null}if(S){e.write(`const ${_} = {};`);for(const w of u){const x=l(w),C=p.get(w);Yi(f[w])?e.write(`if (${x} in ${r}) ${_}[${x}] = ${C};`):md(f[w])?e.write(`if (${C} !== undefined || ${x} in ${r}) ${_}[${x}] = ${C};`):e.write(`${_}[${x}] = ${C};`)}}else{const w=u.map(x=>`${d(x)}: ${p.get(x)}`).join(", ");e.write(`const ${_} = { ${w} };`)}if(m!=="none"){const w=a.length>0?Z(t,new Set(a)):null;e.write(`for (const k in ${r}) {`),e.indented(x=>{if(x.write('if (k === "__proto__") continue;'),w&&x.write(`if (${w}.has(k)) continue;`),m==="passthrough")x.write(`${_}[k] = ${r}[k];`);else{const C=L(t);x.write(`const ${C} = ${r}[k];`);const R=Ie(x,t,h,C);x.write(`${_}[k] = ${R};`)}}),e.write("}")}return _}function jb(e,t,n,r,o=!0){const s=n._zod.def;if(Fb(n))return de(e,t,s.innerType,r,o);if(s.innerType._zod.optin==="defaulted"){const a=L(t),c=L(t);return e.write(`let ${a};`),e.write(`if (${r} === undefined) {`),e.indented(u=>{u.write(`const ${c} = (() => {`),u.indented(l=>{const d=de(l,t,s.innerType,r);l.write(`return ${d};`)}),u.write("})();"),u.write(`if (${c} !== INVALID) ${a} = ${c};`)}),e.write("} else {"),e.indented(u=>{const l=de(u,t,s.innerType,r);u.write(`${a} = ${l};`)}),e.write("}"),a}const i=o?L(t):null;return i&&e.write(`let ${i};`),e.write(`if (${r} !== undefined) {`),e.indented(a=>{const c=de(a,t,s.innerType,r,o);i&&c!==null&&a.write(`${i} = ${c};`)}),e.write("}"),i}function Fb(e){return e._zod.traits?.has("$ZodExactOptional")===!0}function Ub(e){return e._zod.optin===void 0&&Dt(e)}function Dt(e){if(e._zod.def.coerce)return!0;const t=e._zod.def;switch(t.type){case"any":case"unknown":case"undefined":case"void":case"default":case"prefault":case"transform":case"custom":case"lazy":return!0;case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"never":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":return!1;case"nonoptional":return t.innerType?Dt(t.innerType):!1;case"literal":return!!t.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":case"nullable":case"readonly":case"success":return t.innerType?Dt(t.innerType):!0;case"catch":return!0;case"union":return t.options?t.options.some(Dt):!0;case"intersection":return!t.left||!t.right?!0:Dt(t.left)&&Dt(t.right);case"pipe":return t.in?Dt(t.in):!0;default:return!0}}function Yi(e){return e._zod.optin==="optional"&&e._zod.optout==="optional"}function md(e){return(e._zod.optin!=="defaulted"||e._zod.optout==="optional")&&on(e)}function on(e){const t=e._zod.def;switch(t.type){case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":case"never":case"success":return!1;case"literal":return!!t.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":return!0;case"nullable":case"readonly":case"nonoptional":return t.innerType?on(t.innerType):!0;case"union":return t.options?t.options.some(on):!0;case"intersection":return!t.left||!t.right||on(t.left)||on(t.right);case"pipe":return t.out?on(t.out):!0;default:return!0}}function Vb(e,t,n,r,o=!0){const s=n._zod.def,i=o?L(t):null;return i&&e.write(`let ${i} = null;`),e.write(`if (${r} !== null) {`),e.indented(a=>{const c=de(a,t,s.innerType,r,o);i&&c!==null&&a.write(`${i} = ${c};`)}),e.write("}"),i}function qb(e,t,n,r,o=!0){const s=n._zod.def;e.write(`if (!Array.isArray(${r})) return INVALID;`);const i=o?L(t):null,a=L(t),c=L(t);return i&&e.write(`const ${i} = new Array(${r}.length);`),e.write(`for (let ${a} = 0; ${a} < ${r}.length; ${a}++) {`),e.indented(u=>{u.write(`const ${c} = ${r}[${a}];`);const l=Ie(u,t,s.element,c,o);i&&l!==null&&u.write(`${i}[${a}] = ${l};`)}),e.write("}"),i}function Hb(e,t,n,r){const s=n._zod.def.values;if(s.length!==1){const a=Z(t,new Set(s));return e.write(`if (!${a}.has(${r})) return INVALID;`),r}const i=s[0];if(typeof i=="number"&&Number.isNaN(i)){const a=Z(t,new Set(s));return e.write(`if (!${a}.has(${r})) return INVALID;`),r}if(typeof i=="string")e.write(`if (${r} !== ${De(i)}) return INVALID;`);else if(typeof i=="number"||typeof i=="boolean")e.write(`if (${r} !== ${i}) return INVALID;`);else if(i===null)e.write(`if (${r} !== null) return INVALID;`);else if(i===void 0)e.write(`if (${r} !== undefined) return INVALID;`);else if(typeof i=="bigint")e.write(`if (${r} !== ${i}n) return INVALID;`);else throw new G(`literal type ${typeof i}`);return r}function Bb(e,t,n,r){const o=n._zod.values;if(!o)throw new G("enum schema without enumerated values");const s=Z(t,o);return e.write(`if (!${s}.has(${r})) return INVALID;`),r}function gd(e,t,n,r){const o=n._zod.def;return de(e,t,o.innerType,r)}function Kb(e,t,n,r){const o=n._zod.def,i=Object.getOwnPropertyDescriptor(n._zod.def,"defaultValue")?()=>n._zod.def.defaultValue:void 0;if(n._zod.def.type==="prefault"){if(!i)return de(e,t,o.innerType,r);const c=Z(t,i),u=L(t);return e.write(`let ${u} = ${r};`),e.write(`if (${r} === undefined) ${u} = ${c}();`),de(e,t,o.innerType,u)}const a=L(t);if(i){const c=Z(t,i),u=Z(t,lr);e.write(`let ${a};`),e.write(`if (${r} === undefined) {`),e.indented(l=>{l.write(`${a} = ${u}(${c}());`)}),e.write("} else {"),e.indented(l=>{const d=de(l,t,o.innerType,r);l.write(`${a} = ${d} === undefined ? ${u}(${c}()) : ${d};`)}),e.write("}")}else e.write(`let ${a};`),e.write(`if (${r} !== undefined) {`),e.indented(c=>{const u=de(c,t,o.innerType,r);c.write(`${a} = ${u};`)}),e.write("}");return a}function Jb(e,t,n,r){const o=n._zod.def,s=de(e,t,o.innerType,r),i=L(t);return e.write(`const ${i} = ${s};`),e.write(`if (${i} === undefined) return INVALID;`),i}function Wb(e,t,n,r){const o=n._zod.def,s=o.items,i=o.rest;e.write(`if (!Array.isArray(${r})) return INVALID;`);const a=yd(s,"optin"),c=yd(s,"optout");i?e.write(`if (${r}.length < ${a}) return INVALID;`):e.write(`if (${r}.length < ${a} || ${r}.length > ${s.length}) return INVALID;`);const u=L(t);e.write(`const ${u} = [];`);for(let l=0;l<s.length;l++){const d=s[l];if(l>=c)e.write(`if (${u}.length === ${l}) {`),e.indented(f=>{f.write(`if (${l} < ${r}.length) {`),f.indented(p=>{const h=L(t);p.write(`const ${h} = ${r}[${l}];`);const m=Ie(p,t,d,h);p.write(`${u}[${l}] = ${m};`)}),f.write("} else {"),f.indented(p=>{if(Yi(d)){p.write(`${u}.length = ${l};`);return}const h=L(t),m=L(t);p.write(`const ${h} = undefined;`),p.write(`const ${m} = (() => {`),p.indented(_=>{const S=Ie(_,t,d,h);_.write(`return ${S};`)}),p.write("})();"),p.write(`if (${m} === INVALID || ${m} === undefined) ${u}.length = ${l};`),p.write(`else ${u}[${l}] = ${m};`)}),f.write("}")}),e.write("}");else{const f=L(t);e.write(`const ${f} = ${r}[${l}];`);const p=Ie(e,t,d,f);e.write(`${u}[${l}] = ${p};`)}}if(i){const l=L(t),d=L(t);e.write(`for (let ${l} = ${s.length}; ${l} < ${r}.length; ${l}++) {`),e.indented(f=>{f.write(`const ${d} = ${r}[${l}];`);const p=Ie(f,t,i,d);f.write(`${u}[${l}] = ${p};`)}),e.write("}")}return u}function yd(e,t){for(let n=e.length-1;n>=0;n--)if(!(t==="optin"?e[n]._zod.optin!==void 0:e[n]._zod.optout==="optional"))return n+1;return 0}function Gb(e,t,n,r){const o=n._zod.def,s=o.options;if(o.discriminator)return Yb(e,t,o,r);if(o.inclusive===!1)throw new G("exclusive unions (z.xor)");if(s.length===0)return e.write("return INVALID;"),r;if(s.length===1)return de(e,t,s[0],r);if(s.every(c=>c._zod.def.type==="literal"&&!c._zod.def.checks?.length)){const c=new Set(s.flatMap(l=>l._zod.def.values)),u=Z(t,c);return e.write(`if (!${u}.has(${r})) return INVALID;`),r}const a=L(t);e.write(`let ${a};`);for(let c=0;c<s.length;c++){const u=s[c];c===0?e.write(`${a} = (() => {`):e.write(`if (${a} === INVALID) ${a} = (() => {`),e.indented(l=>{const d=de(l,t,u,r);l.write(`return ${d};`)}),e.write("})();")}return e.write(`if (${a} === INVALID) return INVALID;`),a}function Yb(e,t,n,r){if(n.unionFallback)throw new G("discriminated union with unionFallback");if(n.options.length===0)return e.write("return INVALID;"),r;const o=L(t),s=L(t);e.write(`const ${o} = ${r}?.[${De(n.discriminator)}];`),e.write(`let ${s};`);let i=!0;const a=new Set;for(const c of n.options){const u=c._zod.propValues?.[n.discriminator];if(!u||u.size===0)throw new G("discriminated union option without static discriminator values");for(const f of u){if(a.has(f))throw new G(`duplicate discriminator value ${String(f)}`);a.add(f)}const l=Array.from(u,f=>Qb(t,o,f)),d=i?"if":"else if";e.write(`${d} (${l.join(" || ")}) {`),e.indented(f=>{const p=de(f,t,c,r);f.write(`${s} = ${p};`)}),e.write("}"),i=!1}return e.write("else { return INVALID; }"),s}function Qb(e,t,n){if(typeof n=="string")return`${t} === ${De(n)}`;if(typeof n=="number")return Number.isNaN(n)?`Number.isNaN(${t})`:`${t} === ${n}`;if(typeof n=="boolean")return`${t} === ${n}`;if(n===null)return`${t} === null`;if(n===void 0)return`${t} === undefined`;if(typeof n=="bigint")return`${t} === ${n}n`;if(typeof n=="symbol"){const r=Z(e,n);return`${t} === ${r}`}throw new G(`literal discriminator value ${String(n)}`)}function Xb(e,t,n,r){const o=n._zod.def;t.definite=!1;const s=Ie(e,t,o.left,r),i=Ie(e,t,o.right,r),a=Z(t,tr),c=L(t);return e.write(`const ${c} = ${a}(${s}, ${i});`),e.write(`if (!${c}.valid) return INVALID;`),`${c}.data`}function ew(e,t,n,r){const o=n._zod.def,s=Z(t,mt);e.write(`if (!${s}(${r})) return INVALID;`);const i=L(t),a=L(t),c=L(t);e.write(`const ${i} = {};`);const u=o,l=u.partial?void 0:o.keyType._zod.values;if(l){const p=[];for(const m of l){if(!(typeof m=="string"||typeof m=="number"||typeof m=="symbol"))throw new G(`record key value ${String(m)}`);const _=typeof m=="number"?m.toString():m;if(_==="__proto__")throw new G('record key "__proto__"');p.push(_);const S=Z(t,m),w=de(e,t,o.keyType,S),x=L(t);e.write(`const ${x} = ${r}[${tw(t,_)}];`);const C=Ie(e,t,o.valueType,x);e.write(`${i}[${w}] = ${C};`)}const h=Z(t,new Set(p));return e.write(`for (const ${a} in ${r}) {`),e.indented(m=>{m.write(`if (${h}.has(${a})) continue;`),u.mode==="loose"?m.write(`if (${a} !== "__proto__") ${i}[${a}] = ${r}[${a}];`):m.write("return INVALID;")}),e.write("}"),i}const d=o.keyType._zod.def;if(!(d.type==="string"&&d.format===void 0&&!d.coerce&&(d.checks?.length??0)===0)){const p=o.mode==="loose",h=ks(o.keyType);h.definite===!1&&(t.definite=!1);const m=Z(t,h),_=Z(t,bn),S=L(t);return _d(e,t,r,a,w=>{w.write(`let ${S} = ${m}(${a});`),w.write(`if (${S} === INVALID && typeof ${a} === "string" && ${_}.test(${a})) ${S} = ${m}(Number(${a}));`),p?w.write(`if (${S} === INVALID) { ${i}[${a}] = ${r}[${a}]; continue; }`):w.write(`if (${S} === INVALID) return INVALID;`),w.write(`if (${S} === "__proto__") continue;`);const x=L(t);w.write(`const ${x} = ${r}[${a}];`);const C=Ie(w,t,o.valueType,x);w.write(`${i}[${S}] = ${C};`)}),i}return _d(e,t,r,a,p=>{p.write(`const ${c} = ${r}[${a}];`);const h=Ie(p,t,o.valueType,c);p.write(`${i}[${a}] = ${h};`)},"return INVALID;"),i}function _d(e,t,n,r,o,s){const i=Z(t,Object.prototype.propertyIsEnumerable),a=L(t),c=L(t),u=L(t);e.write(`const ${a} = Object.getOwnPropertySymbols(${n});`),e.write(`const ${c} = Object.getOwnPropertyNames(${n});`),e.write(`for (let ${u} = 0; ${u} < ${c}.length; ${u}++) {`),e.indented(l=>{l.write(`const ${r} = ${c}[${u}];`),l.write(`if (${r} === "__proto__" || !${i}.call(${n}, ${r})) continue;`),o(l)}),e.write("}"),e.write(`for (let ${u} = 0; ${u} < ${a}.length; ${u}++) {`),e.indented(l=>{l.write(`const ${r} = ${a}[${u}];`),l.write(`if (!${i}.call(${n}, ${r})) continue;`),s?l.write(s):o(l)}),e.write("}")}function tw(e,t){return typeof t=="string"?De(t):Z(e,t)}function nw(e,t,n,r){const o=n._zod.def;e.write(`if (!(${r} instanceof Map)) return INVALID;`);const s=L(t),i=L(t),a=L(t);return e.write(`const ${s} = new Map();`),e.write(`for (const [${i}, ${a}] of ${r}) {`),e.indented(c=>{const u=de(c,t,o.keyType,i),l=de(c,t,o.valueType,a);c.write(`${s}.set(${u}, ${l});`)}),e.write("}"),s}function rw(e,t,n,r){const o=n._zod.def;e.write(`if (!(${r} instanceof Set)) return INVALID;`);const s=L(t),i=L(t);return e.write(`const ${s} = new Set();`),e.write(`for (const ${i} of ${r}) {`),e.indented(a=>{const c=de(a,t,o.valueType,i);a.write(`${s}.add(${c});`)}),e.write("}"),s}function ow(e,t){return e.write(`if (!(${t} instanceof File)) return INVALID;`),t}function sw(e,t,n,r){e.write(`if (typeof ${r} !== "string") return INVALID;`);const o=n._zod.pattern;if(o){const s=Z(t,o);e.write(`${s}.lastIndex = 0;`),e.write(`if (!${s}.test(${r})) return INVALID;`)}return r}function iw(e,t,n,r){const o=n._zod.def,s=Ut(t,o.getter),i=Z(t,{parser:null});e.write(`if (!${i}.parser) {`),e.indented(c=>{c.write(`const inner = ${s}();`),c.write(`${i}.parser = function(input) {`),c.indented(u=>{u.write("const result = inner._zod.run({ value: input, issues: [] }, {});"),u.write("return result.issues.length === 0 ? result.value : INVALID;")}),c.write("};")}),e.write("}");const a=L(t);return e.write(`const ${a} = ${i}.parser(${r});`),e.write(`if (${a} === INVALID) return INVALID;`),a}function aw(e,t,n,r){const o=n._zod.def,s=de(e,t,o.in,r);if(o.transform){if(Vt(o.transform))throw new _t("z.compile: async transforms in pipes are not supported");const i=o.transform,c=Ut(t,l=>{const d={value:l,issues:[],addIssue:mc},f=i(l,d);return f instanceof Promise?Ae:d.issues.length===0?f:Ae}),u=L(t);return e.write(`const ${u} = ${c}(${s});`),e.write(`if (${u} === INVALID) return INVALID;`),de(e,t,o.out,u)}else return de(e,t,o.out,s)}function Vt(e){return typeof e=="function"&&(e.constructor.name==="AsyncFunction"||e[Symbol.toStringTag]==="AsyncFunction")}function cw(e,t,n,r){const o=n._zod.def;if(o.fn){if(Vt(o.fn))throw new _t("z.compile: async custom predicates are not supported");const s=Ut(t,o.fn),i=Z(t,Gi),a=L(t);e.write(`const ${a} = ${s}(${r});`),e.write(`if (${a} instanceof Promise) ${i}();`),e.write(`if (!${a}) return INVALID;`)}else throw new G("custom schema without a predicate function");return r}function uw(e,t,n){const r=e._zod.run({value:n,issues:[]},{});if(r&&typeof r.then=="function")return Ae;const o=r;return o.issues.length===0?o.value:t()}function lw(e,t,n,r){const o=n._zod.def;if(!o.catchValue[_a])throw new G("catch with a callback (only a constant catch value compiles)",!1);const s=L(t);e.write(`let ${s} = (() => {`),e.indented(u=>{const l=Ie(u,t,o.innerType,r);u.write(`return ${l};`)}),e.write("})();");const i=Z(t,o.innerType),a=Ut(t,o.catchValue),c=Z(t,uw);return e.write(`if (${s} === INVALID) {`),e.indented(u=>{u.write(`${s} = ${c}(${i}, ${a}, ${r});`),u.write(`if (${s} === INVALID) return INVALID;`)}),e.write("}"),s}function dw(e,t,n,r){const o=n._zod.def;if(o.transform){if(Vt(o.transform))throw new _t("z.compile: async transforms are not supported");const s=o.transform,a=Ut(t,u=>{const l={value:u,issues:[],addIssue:mc},d=s(u,l);return d instanceof Promise?Ae:l.issues.length===0?d:Ae}),c=L(t);return e.write(`const ${c} = ${a}(${r});`),e.write(`if (${c} === INVALID) return INVALID;`),c}return r}function $s(e){return e.checks&&(e.checks=[...e.checks]),e}function sm(e,t){return new e($s({type:"string",...I(t)}))}function im(e,t){return new e($s({type:"string",coerce:!0,...I(t)}))}function gc(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...I(t)})}function yc(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...I(t)})}function _c(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...I(t)})}function bc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...I(t)})}function wc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...I(t)})}function vc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...I(t)})}function Ss(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...I(t)})}function kc(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...I(t)})}function $c(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...I(t)})}function Sc(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...I(t)})}function xc(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...I(t)})}function Ic(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...I(t)})}function zc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...I(t)})}function Tc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...I(t)})}function Cc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...I(t)})}function Ec(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...I(t)})}function am(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...I(t)})}function Ac(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...I(t)})}function Nc(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...I(t)})}function Oc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...I(t)})}function Pc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...I(t)})}function Mc(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...I(t)})}function cm(e,t){return new e({type:"string",format:"credit_card",check:"string_format",abort:!1,...I(t)})}function um(e,t){return new e({type:"string",format:"iban",check:"string_format",abort:!1,...I(t)})}function Lc(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...I(t)})}const Rc={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Dc(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...I(t)})}function Zc(e,t){return new e({type:"string",format:"date",check:"string_format",...I(t)})}function jc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...I(t)})}function Fc(e,t){return new e({type:"string",format:"duration",check:"string_format",...I(t)})}function lm(e,t){return new e($s({type:"number",checks:[],...I(t)}))}function dm(e,t){return new e($s({type:"number",coerce:!0,checks:[],...I(t)}))}function fm(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...I(t)})}function pm(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...I(t)})}function hm(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...I(t)})}function mm(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...I(t)})}function gm(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...I(t)})}function ym(e,t){return new e({type:"boolean",...I(t)})}function _m(e,t){return new e({type:"boolean",coerce:!0,...I(t)})}function bm(e,t){return new e({type:"bigint",...I(t)})}function wm(e,t){return new e({type:"bigint",coerce:!0,...I(t)})}function vm(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...I(t)})}function km(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...I(t)})}function $m(e,t){return new e({type:"symbol",...I(t)})}function Sm(e,t){return new e({type:"undefined",...I(t)})}function xm(e,t){return new e({type:"null",...I(t)})}function Im(e){return new e({type:"any"})}function zm(e){return new e({type:"unknown"})}function Tm(e,t){return new e({type:"never",...I(t)})}function Cm(e,t){return new e({type:"void",...I(t)})}function Em(e,t){return new e({type:"date",...I(t)})}function Am(e,t){return new e({type:"date",coerce:!0,...I(t)})}function Nm(e,t){return new e({type:"nan",...I(t)})}function bt(e,t){return new Za({check:"less_than",...I(t),value:e,inclusive:!1})}function Ze(e,t){return new Za({check:"less_than",...I(t),value:e,inclusive:!0})}function wt(e,t){return new ja({check:"greater_than",...I(t),value:e,inclusive:!1})}function je(e,t){return new ja({check:"greater_than",...I(t),value:e,inclusive:!0})}function xs(e){return wt(0,e)}function Is(e){return bt(0,e)}function zs(e){return Ze(0,e)}function Ts(e){return je(0,e)}function qt(e,t){return new yp({check:"multiple_of",...I(t),value:e})}function Jt(e,t){return new wp({check:"max_size",...I(t),maximum:e})}function vt(e,t){return new vp({check:"min_size",...I(t),minimum:e})}function wn(e,t){return new kp({check:"size_equals",...I(t),size:e})}function vn(e,t){return new $p({check:"max_length",...I(t),maximum:e})}function Nt(e,t){return new Sp({check:"min_length",...I(t),minimum:e})}function kn(e,t){return new xp({check:"length_equals",...I(t),length:e})}function vr(e,t){return new Ip({check:"string_format",format:"regex",...I(t),pattern:e})}function kr(e){return new zp({check:"string_format",format:"lowercase",...I(e)})}function $r(e){return new Tp({check:"string_format",format:"uppercase",...I(e)})}function Sr(e,t){return new Cp({check:"string_format",format:"includes",...I(t),includes:e})}function xr(e,t){return new Ep({check:"string_format",format:"starts_with",...I(t),prefix:e})}function Ir(e,t){return new Ap({check:"string_format",format:"ends_with",...I(t),suffix:e})}function Cs(e,t,n){return new Np({check:"property",property:e,schema:t,...I(n)})}function zr(e,t){return new Op({check:"properties",shape:e,...I(t)})}function Tr(e,t){return new Pp({check:"mime_type",mime:e,...I(t)})}function at(e){return new Mp({check:"overwrite",tx:e})}function Cr(e){return at(t=>t.normalize(e))}function Er(){return at(e=>e.trim())}function Ar(){return at(e=>e.toLowerCase())}function Nr(){return at(e=>e.toUpperCase())}function Or(){return at(e=>pf(e))}function Om(e,t,n){return new e({type:"array",element:t,...I(n)})}function fw(e,t,n){return new e({type:"union",options:t,...I(n)})}function pw(e,t,n){return new e({type:"union",options:t,inclusive:!1,...I(n)})}function hw(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...I(r)})}function mw(e,t,n){return new e({type:"intersection",left:t,right:n})}function gw(e,t,n,r){const o=n instanceof j,s=o?r:n,i=o?n:null;return new e({type:"tuple",items:t,rest:i,...I(s)})}function yw(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...I(r)})}function _w(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...I(r)})}function bw(e,t,n){return new e({type:"set",valueType:t,...I(n)})}function ww(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:r,...I(n)})}function vw(e,t,n){return new e({type:"enum",entries:t,...I(n)})}function kw(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...I(n)})}function Pm(e,t){return new e({type:"file",...I(t)})}function $w(e,t){return new e({type:"transform",transform:t})}function Sw(e,t){return new e({type:"optional",innerType:t})}function xw(e,t){return new e({type:"nullable",innerType:t})}function Iw(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():lr(n)}})}function zw(e,t,n){return new e({type:"nonoptional",innerType:t,...I(n)})}function Tw(e,t){return new e({type:"success",innerType:t})}function Cw(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:ba(n)})}function Ew(e,t,n){return new e({type:"pipe",in:t,out:n})}function Aw(e,t){return new e({type:"readonly",innerType:t})}function Nw(e,t,n){return new e({type:"template_literal",parts:t,...I(n)})}function Ow(e,t){return new e({type:"lazy",getter:t})}function Pw(e,t){return new e({type:"promise",innerType:t})}function Mm(e,t,n){const r=I(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Lm(e,t,n){return new e({type:"custom",check:"custom",fn:t,...I(n)})}function Rm(e,t){const n=Dm(r=>(r.addIssue=o=>{if(typeof o=="string")r.issues.push(cn(o,r.value,n._zod.def));else{const s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),"input"in s||(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(cn(s))}},e(r.value,r)),t);return n}function Dm(e,t){const n=new ue({check:"custom",...I(t)});return n._zod.check=e,n}function Zm(e){const t=new ue({check:"describe"});return t._zod.onattach=[n=>{const r=Re.get(n)??{};Re.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function jm(e){const t=new ue({check:"meta"});return t._zod.onattach=[n=>{const r=Re.get(n)??{};Re.add(n,{...r,...e})}],t._zod.check=()=>{},t}function Fm(e,t){const n=I(t);let r=n.truthy??["true","1","yes","on","y","enabled"],o=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(p=>typeof p=="string"?p.toLowerCase():p),o=o.map(p=>typeof p=="string"?p.toLowerCase():p));const s=new Set(r),i=new Set(o),a=e.Codec??ac,c=e.Boolean??tc,u=e.String??wr,l=new u({type:"string",error:n.error}),d=new c({type:"boolean",error:n.error}),f=new a({type:"pipe",in:l,out:d,transform:((p,h)=>{let m=p;return n.case!=="sensitive"&&(m=m.toLowerCase()),s.has(m)?!0:i.has(m)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:h.value,inst:f,continue:!1}),{})}),reverseTransform:((p,h)=>p===!0?r[0]||"true":o[0]||"false"),error:n.error});return f._zod.bag.truthy=r,f._zod.bag.falsy=o,f._zod.bag.case=n.case??"insensitive",f}function $n(e,t,n,r={}){const o=I(r),s={check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...o};return n instanceof RegExp&&(s.pattern=n),new e(s)}function Qn(e,...t){for(const n of t)for(const r of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,r)&&Fe(e,r,n[r]);return e}function ln(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Re,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??"ref",reused:e?.reused??"inline",intersections:[],deferred:[],external:e?.external??void 0}}function be(e,t,n,r,o){const s=typeof t.unrepresentable=="function"?t.unrepresentable({zodSchema:e,path:r.path,message:o}):t.unrepresentable;if(s==="any")return!1;if(s===void 0||s==="throw")throw new Error(o);return Object.assign(n,s),!0}function ne(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;const a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{const l={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,l);else{const f=i.schema,p=t.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(e,t,f,l)}const d=e._zod.parent;d&&(i.ref||(i.ref=d),ne(d,t,l),t.seen.get(d).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Qn(i.schema,c),t.io==="input"&&Te(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&"_prefault"in i.schema&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function bd(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function dn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;const r=new Map;for(const i of e.seen.entries()){const a=e.metadataRegistry.get(i[0])?.id;if(a){const c=r.get(a);if(c&&c!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,i[0])}}const o=i=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const d=e.external.registry.get(i[0])?.id,f=e.external.uri??(h=>h);if(d)return{ref:f(d)};const p=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${bd(p)}`}}const c="#",u=`${c}/${a}/`;if(i[1]===n&&!i[1].schema.id)return{ref:c};const l=i[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:u+bd(l)}},s=i=>{if(i[1].schema.$ref)return;const a=i[1],{ref:c,defId:u}=o(i);a.def={...a.schema},u&&(a.defId=u);const l=a.schema;for(const d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(const i of e.seen.entries()){const a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
64
+ `)}return g.write("payload.value = newResult;"),g.write("return payload;"),g.compile()};let s;const a=Yn,u=!gt.jitless,l=u&&Vp.value,d=t.catchall;let f;e._zod.parse=(h,p)=>{f??(f=r.value);const m=h.value;return a(m)?u&&l&&p?.async===!1&&p.jitless!==!0?(s||(s=o(t.shape)),h=s(h,p),d?ty([],m,h,p,f,e,p?.abortEarly===!0):h):n(h,p):(h.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),h)}});function qf(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!vt(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(s=>Pt(s,r,Ye())))}),t)}const $s=k("$ZodUnion",(e,t)=>{le.init(e,t),ye(e,"optin",r=>r.def.options.some(i=>i._zod.optin==="defaulted")?"defaulted":r.def.options.some(i=>i._zod.optin!==void 0)?"optional":void 0),ye(e,"optout",r=>r.def.options.some(i=>i._zod.optout==="optional")?"optional":void 0),ye(e,"values",r=>{if(r.def.options.every(i=>i._zod.values))return new Set(r.def.options.flatMap(i=>Array.from(i._zod.values)))}),ye(e,"pattern",r=>{if(r.def.options.every(i=>i._zod.pattern)){const i=r.def.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>bn(o.source)).join("|")})$`)}});const n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let o=!1;const s=[];for(const a of t.options){const u=a._zod.run({value:r.value,issues:[]},i);if(u instanceof Promise)s.push(u),o=!0;else{if(u.issues.length===0)return u;s.push(u)}}return o?Promise.all(s).then(a=>qf(a,r,e,i)):qf(s,r,e,i)}});function Wf(e,t,n,r){const i=[];for(let o=0;o<e.length;o++)e[o].issues.length===0&&i.push(o);return i.length===1?(t.value=e[i[0]].value,t):(i.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(s=>Pt(s,r,Ye())))}):t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:[],inclusive:!1,matches:i}),t)}const iy=k("$ZodXor",(e,t)=>{$s.init(e,t),t.inclusive=!1;const n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let o=!1;const s=[];for(const a of t.options){const u=a._zod.run({value:r.value,issues:[]},i);u instanceof Promise?(s.push(u),o=!0):s.push(u)}return o?Promise.all(s).then(a=>Wf(a,r,e,i)):Wf(s,r,e,i)}});function Bc(e,t){const n=e._zod;let r=n.bag.optionsMap;r||(r=oy(n.def),n.bag.optionsMap=r);const i=r.get(t);if(i===null)throw new Error(`Ambiguous discriminator value "${String(t)}"`);return i}function oy(e){const t=new Map;for(const n of e.options){const r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(const i of r)if(t.has(i)){if(i!==void 0)throw new Error(`Duplicate discriminator value "${String(i)}"`);t.set(i,null)}else t.set(i,n)}return t}const sy=k("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,$s.init(e,t);const n=e._zod.parse;ye(e,"propValues",i=>{const o={};let s=0;for(const a of i.def.options){const u=a._zod.propValues;if(!u||Object.keys(u).length===0)throw new Error(`Invalid discriminated union option at index "${i.def.options.indexOf(a)}"`);u[i.def.discriminator]?.has(void 0)&&s++;for(const[c,l]of Object.entries(u)){Object.prototype.hasOwnProperty.call(o,c)||$t(o,c,new Set);for(const d of l)o[c].add(d)}}return!i.def.unionFallback&&s>1&&o[i.def.discriminator]?.delete(void 0),o}),t.options.forEach((i,o)=>{const s=ds(i._zod.def);if(s&&!Object.prototype.hasOwnProperty.call(s,t.discriminator))throw new Error(`Invalid discriminated union option at index "${o}"`)});const r=ai(()=>oy(t));e._zod.parse=(i,o)=>{const s=i.value;if(!Yn(s))return i.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),i;const a=s?.[t.discriminator],u=r.value.get(a);return u&&(a!==void 0||o.direction!=="backward")?u._zod.run(i,o):t.unionFallback||o.direction==="backward"?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()).filter(c=>r.value.get(c)!==null),input:s,path:[t.discriminator],inst:e}),i)}}),ay=k("$ZodIntersection",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),s=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||s instanceof Promise?Promise.all([o,s]).then(([u,c])=>Kf(n,u,c)):Kf(n,o,s)}});function Qr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(rn(e)&&rn(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,"__proto__")&&delete i.__proto__;for(const o of r){if(o==="__proto__")continue;const s=Qr(e[o],t[o]);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};i[o]=s.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const i=e[r],o=t[r],s=Qr(i,o);if(!s.valid)return{valid:!1,mergeErrorPath:[r,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Kf(e,t,n){const r=new Map;let i;const o=new Map,s=(c,l)=>{let d;if(c.code==="unrecognized_keys"&&!c.path?.length)i??(i=c),d=c.keys;else if(c.code==="invalid_key"&&c.origin==="record"&&c.path?.length===1){const f=String(c.path[0]);o.has(f)||o.set(f,c),d=[f]}else return!1;for(const f of d)r.has(f)||r.set(f,{}),r.get(f)[l]=!0;return!0};for(const c of t.issues)s(c,"l")||e.issues.push(c);for(const c of n.issues)s(c,"r")||e.issues.push(c);const a=[...r].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(a.length){const c=i?a.filter(l=>i.keys.includes(l)):[];c.length&&e.issues.push({...i,keys:c});for(const l of a)!c.includes(l)&&o.has(l)&&e.issues.push(o.get(l))}const u=Qr(t.value,n.value);if(!u.valid){if(vt(e))return e;throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(u.mergeErrorPath)}`)}return e.value=u.data,e}const Vc=k("$ZodTuple",(e,t)=>{le.init(e,t);const n=t.items,r=gt.memoizer;r?.attach(e),e._zod.parse=(i,o)=>{const s=i.value;if(!Array.isArray(s))return i.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),i;i.value=r?r.alloc(e,i,[],o):[];const a=[],u=Jf(n,"optin"),c=Jf(n,"optout");if(!t.rest){if(s.length<u)return i.issues.push({code:"too_small",minimum:u,inclusive:!0,input:s,inst:e,origin:"array"}),i;s.length>n.length&&i.issues.push({code:"too_big",maximum:n.length,inclusive:!0,input:s,inst:e,origin:"array"})}const l=new Array(n.length),d=t.rest?o?.abortEarly:void 0;let f=!1;for(let h=0;h<n.length;h++){const p=n[h]._zod.run({value:s[h],issues:[]},o);p instanceof Promise?a.push(p.then(m=>{l[h]=m})):(l[h]=p,d&&!f&&p.issues.length&&(f=vt(p)))}if(t.rest&&!f){let h=n.length-1;const p=s.slice(n.length);let m=i.issues.length;for(const g of p){if(d&&i.issues.length!==m){if(vt(i,m))break;m=i.issues.length}h++;const w=t.rest._zod.run({value:g,issues:[]},o);w instanceof Promise?a.push(w.then(y=>Yf(y,i,h))):Yf(w,i,h)}}return a.length?Promise.all(a).then(()=>Xf(l,i,n,s,c)):Xf(l,i,n,s,c)}});function Jf(e,t){for(let n=e.length-1;n>=0;n--)if(!(t==="optin"?e[n]._zod.optin!==void 0:e[n]._zod.optout==="optional"))return n+1;return 0}function Yf(e,t,n){e.issues.length&&t.issues.push(...zt(n,e.issues)),t.value[n]=e.value}function Xf(e,t,n,r,i){for(let o=0;o<n.length;o++){const s=e[o],a=o<r.length;if(!a&&o>=i&&n[o]._zod.optin==="optional"){t.value.length=o;break}if(s.issues.length){if(!a&&o>=i){t.value.length=o;break}t.issues.push(...zt(o,s.issues))}t.value[o]=s.value}for(let o=t.value.length-1;o>=r.length&&(n[o]._zod.optout==="optional"&&t.value[o]===void 0);o--)t.value.length=o;return t}const uy=k("$ZodRecord",(e,t)=>{le.init(e,t);const n=gt.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{const o=r.value;if(!rn(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;const s=[],a=t.keyType._zod.values;if(a&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};const u=new Set;for(const l of a)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){if(u.add(typeof l=="number"?l.toString():l),l==="__proto__")continue;const d=t.keyType._zod.run({value:l,issues:[]},i);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>Pt(p,i,Ye())),input:l,path:[l],inst:e});continue}const f=d.value;if(f==="__proto__")continue;const h=t.valueType._zod.run({value:o[l],issues:[]},i);h instanceof Promise?s.push(h.then(p=>{p.issues.length&&r.issues.push(...zt(l,p.issues)),r.value[f]=p.value})):(h.issues.length&&r.issues.push(...zt(l,h.issues)),r.value[f]=h.value)}let c;for(const l in o)if(!u.has(l))if(t.mode==="loose"){if(l==="__proto__")continue;r.value[l]=o[l]}else c=c??[],c.push(l);c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let u;for(const c of Reflect.ownKeys(o)){if(c==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,c))continue;let l=t.keyType._zod.run({value:c,issues:[]},i);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&dr.test(c)&&l.issues.length){const p=t.keyType._zod.run({value:Number(c),issues:[]},i);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");p.issues.length===0&&(l=p)}if(l.issues.length){t.mode==="loose"?r.value[c]=o[c]:a?(u=u??[],u.push(c)):r.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(p=>Pt(p,i,Ye())),input:c,path:[c],inst:e});continue}const f=l.value;if(f==="__proto__")continue;const h=t.valueType._zod.run({value:o[c],issues:[]},i);h instanceof Promise?s.push(h.then(p=>{p.issues.length&&r.issues.push(...zt(c,p.issues)),r.value[f]=p.value})):(h.issues.length&&r.issues.push(...zt(c,h.issues)),r.value[f]=h.value)}u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u,continue:!0})}return s.length?Promise.all(s).then(()=>r):r}}),cy=k("$ZodMap",(e,t)=>{le.init(e,t);const n=gt.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{const o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;const s=[];r.value=n?n.alloc(e,r,new Map,i):new Map;const a=i?.abortEarly;let u=r.issues.length;for(const[c,l]of o){if(a&&r.issues.length!==u){if(vt(r,u))break;u=r.issues.length}const d=t.keyType._zod.run({value:c,issues:[]},i),f=t.valueType._zod.run({value:l,issues:[]},i);d instanceof Promise||f instanceof Promise?s.push(Promise.all([d,f]).then(([h,p])=>{Qf(h,p,r,c,o,e,i)})):Qf(d,f,r,c,o,e,i)}return s.length?Promise.all(s).then(()=>r):r}});function Qf(e,t,n,r,i,o,s){e.issues.length&&(Jo.has(typeof r)?n.issues.push(...zt(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(a=>Pt(a,s,Ye()))})),t.issues.length&&(Jo.has(typeof r)?n.issues.push(...zt(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(a=>Pt(a,s,Ye()))})),n.value.set(e.value,t.value)}const ly=k("$ZodSet",(e,t)=>{le.init(e,t);const n=gt.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{const o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;const s=[];r.value=n?n.alloc(e,r,new Set,i):new Set;const a=i?.abortEarly;let u=r.issues.length;for(const c of o){if(a&&r.issues.length!==u){if(vt(r,u))break;u=r.issues.length}const l=t.valueType._zod.run({value:c,issues:[]},i);l instanceof Promise?s.push(l.then(d=>eh(d,r))):eh(l,r)}return s.length?Promise.all(s).then(()=>r):r}});function eh(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const dy=k("$ZodEnum",(e,t)=>{le.init(e,t);const n=Wo(t.entries),r=new Set(n);e._zod.values=r,ye(e,"pattern",i=>{const o=Wo(i.def.entries).filter(s=>Jo.has(typeof s));return new RegExp(o.length?`^(${o.map(s=>on(s.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(i,o)=>{const s=i.value;return r.has(s)||i.issues.push({code:"invalid_value",values:n,input:s,inst:e}),i}}),fy=k("$ZodLiteral",(e,t)=>{le.init(e,t);const n=new Set(t.values);e._zod.values=n,ye(e,"pattern",r=>{const i=r.def.values;return new RegExp(i.length?`^(${i.map(o=>typeof o=="string"?on(o):o?on(o.toString()):String(o)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),hy=k("$ZodFile",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),py=k("$ZodTransform",(e,t)=>{le.init(e,t),e._zod.optin="optional",gt.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new gs(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(s=>(n.value=s,n));if(i instanceof Promise)throw new en;return n.value=i,n}});function th(e,t){return e.value=t.issues.length?void 0:t.value,e}const Hc=k("$ZodOptional",(e,t)=>{le.init(e,t),ye(e,"optin",n=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",ye(e,"values",n=>{const r=n.def.innerType._zod.values;return r?new Set([...r,void 0]):void 0}),ye(e,"pattern",n=>{const r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${bn(r.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(n.value===void 0){if(t.innerType._zod.optin!=="defaulted")return n;const i=t.innerType._zod.run({value:n.value,issues:[]},r);return i instanceof Promise?i.then(o=>th(n,o)):th(n,i)}return t.innerType._zod.run(n,r)}}),my=k("$ZodExactOptional",(e,t)=>{Hc.init(e,t),ye(e,"values",n=>n.def.innerType._zod.values),ye(e,"pattern",n=>n.def.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),gy=k("$ZodNullable",(e,t)=>{le.init(e,t),ye(e,"optin",n=>n.def.innerType._zod.optin),ye(e,"optout",n=>n.def.innerType._zod.optout),ye(e,"pattern",n=>{const r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${bn(r.source)}|null)$`):void 0}),ye(e,"values",n=>n.def.innerType._zod.values?new Set([...n.def.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),yy=k("$ZodDefault",(e,t)=>{le.init(e,t),e._zod.optin="defaulted",ye(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>nh(o,t)):nh(i,t)}});function nh(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const vy=k("$ZodPrefault",(e,t)=>{le.init(e,t),e._zod.optin="defaulted",ye(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),by=k("$ZodNonOptional",(e,t)=>{le.init(e,t),ye(e,"values",n=>{const r=n.def.innerType._zod.values;return r?new Set([...r].filter(i=>i!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>rh(o,e)):rh(i,e)}});function rh(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wy=k("$ZodSuccess",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new gs("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}});function ih(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(i=>Pt(i,r,Ye()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}const _y=k("$ZodCatch",(e,t)=>{le.init(e,t),ye(e,"optin",n=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),ye(e,"optout",n=>n.def.innerType._zod.optout),ye(e,"values",n=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run({value:n.value,issues:[]},r);return i instanceof Promise?i.then(o=>ih(n,o,t,r)):ih(n,i,t,r)}}),ky=k("$ZodNaN",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),qc=k("$ZodPipe",(e,t)=>{le.init(e,t),ye(e,"values",n=>n.def.in._zod.values),ye(e,"optin",n=>n.def.in._zod.optin),ye(e,"optout",n=>n.def.out._zod.optout),ye(e,"propValues",n=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(s=>wo(s,t.in,r)):wo(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>wo(o,t.out,r)):wo(i,t.out,r)}});function wo(e,t,n){return e.issues.some(r=>r.code!=="unrecognized_keys")?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Wc=k("$ZodCodec",(e,t)=>{le.init(e,t),ye(e,"values",n=>n.def.in._zod.values),ye(e,"optin",n=>n.def.in._zod.optin),ye(e,"optout",n=>n.def.out._zod.optout),ye(e,"propValues",n=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>_o(s,t,r)):_o(o,t,r)}else{const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(s=>_o(s,t,r)):_o(o,t,r)}}});function _o(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const i=t.transform(e.value,e);return i instanceof Promise?i.then(o=>ko(e,o,t.out,n)):ko(e,i,t.out,n)}else{const i=t.reverseTransform(e.value,e);return i instanceof Promise?i.then(o=>ko(e,o,t.in,n)):ko(e,i,t.in,n)}}function ko(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const Sy=k("$ZodPreprocess",(e,t)=>{qc.init(e,t)}),xy=k("$ZodReadonly",(e,t)=>{le.init(e,t),ye(e,"propValues",n=>n.def.innerType._zod.propValues),ye(e,"values",n=>n.def.innerType._zod.values),ye(e,"optin",n=>n.def.innerType?._zod?.optin),ye(e,"optout",n=>n.def.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(oh):oh(i)}});function oh(e){return e.memo||(e.value=Object.freeze(e.value)),e}function Gk(e){const t=e._zod.def;let n=t.pattern,r=!!t.format?.includes("int"),i,o;for(const a of t.checks??[]){const u=a._zod.def;u.pattern&&(n=u.pattern),r||(r=!!u.format?.includes("int"));const c=u.minimum??u.length,l=u.maximum??u.length;c!==void 0&&(i===void 0||c>i)&&(i=c),l!==void 0&&(o===void 0||l<o)&&(o=l)}if(n)return n.source;if(i!==void 0&&o!==void 0&&i>o)return"(?!)";if(i!==void 0||o!==void 0)return Um({minimum:i,maximum:o}).source;const s=e._zod.pattern;return(r&&s===dr?Sc:s)?.source}function ku(e){const t=e._zod.def,n=e._zod.pattern?.source,r=t.innerType??e._zod.innerType;if(r){const i=r._zod.pattern?.source,o=ku(r);return n&&i&&o&&o!==i?n.replace(bn(i),()=>bn(o)):n}if(t.options){const i=t.options.map(ku);if(i.every(Boolean))return`^(${i.map(o=>bn(o)).join("|")})$`}return Gk(e)}const Ey=k("$ZodTemplateLiteral",(e,t)=>{le.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){const i=ku(r);if(!i)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);n.push(bn(i))}else if(r===null||Hp.has(typeof r))n.push(on(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"string",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),$y=k("$ZodFunction",(e,t)=>(le.init(e,t),Object.defineProperty(e,"_def",{value:t}),e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return Object.defineProperty(function(...r){const i=e._def.input?bu(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?bu(e._def.output,o):o},"_zod",{value:e._zod,enumerable:!1})},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return Object.defineProperty(async function(...r){const i=e._def.input?await wu(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await wu(e._def.output,o):o},"_zod",{value:e._zod,enumerable:!1})},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new Vc({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),Ty=k("$ZodPromise",(e,t)=>{le.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),Kc=k("$ZodLazy",(e,t)=>{le.init(e,t),Gp(e._zod,"innerType",()=>{const n=t;return n._cachedInner||(n._cachedInner=t.getter()),n._cachedInner}),ye(e,"pattern",n=>n.innerType?._zod?.pattern),ye(e,"propValues",n=>n.innerType?._zod?.propValues),ye(e,"optin",n=>n.innerType?._zod?.optin??void 0),ye(e,"optout",n=>n.innerType?._zod?.optout??void 0),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),Cy=k("$ZodCustom",(e,t)=>{Me.init(e,t),le.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>sh(o,n,r,e));sh(i,n,r,e)}});function sh(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(Xn(i))}}class Ay extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform"),this.name="ZodCyclicError"}}const Su="~memo",ah=[];function Iy(e){return e!==null&&typeof e=="object"}function Ba(e){return e.map(t=>t.path?{...t,path:t.path.slice()}:{...t})}const Ny=new WeakMap,Kn=0,Vo=1,qr=2;function Wr(e,t,n){const r=Ny.get(e);if(r!==void 0)return r?qr:Kn;if(t.has(e))return qr;t.add(e);let i=Kn;const o=l=>{if(i!==qr&&l?._zod){const d=Wr(l,t,n);d>i&&(i=d)}},s=(l,d)=>{let f=Kn;for(const h of Reflect.ownKeys(l)){const p=Object.getOwnPropertyDescriptor(l,h);if(!p.enumerable)continue;const m=p.get?Vo:p.value?._zod?Wr(p.value,t,n):Kn;m>f&&(f=m)}return f},a=l=>{l>i&&(i=l)},u=e._zod.def;switch(u.type){case"object":{const l=ds(u);a(l?s(l):Vo),o(u.catchall);break}case"array":o(u.element);break;case"tuple":for(const l of u.items)o(l);o(u.rest);break;case"record":case"map":o(u.keyType),o(u.valueType);break;case"set":o(u.valueType);break;case"union":for(const l of u.options)o(l);break;case"intersection":o(u.left),o(u.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":o(u.innerType);break;case"pipe":o(u.in),o(u.out);break;case"function":o(u.input),o(u.output);break;case"lazy":{const l=u._cachedInner??(n?e._zod.innerType:void 0);a(l?Wr(l,t,!1):Vo);break}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":break;default:for(const l in u){const d=Object.getOwnPropertyDescriptor(u,l);if(!d||d.get)continue;const f=d.value;if(!(!f||typeof f!="object")){if(f._zod)o(f);else if(Array.isArray(f))for(const h of f)o(h)}}}return t.delete(e),jk(e,i)}function jk(e,t){return t!==Vo&&Ny.set(e,t===qr),t}function Jc(e){return Wr(e,new Set,!0)!==Kn}function Zk(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}let So;const xo=[],Bk={alloc(e,t,n){const r=So;if(!r)return n;So=void 0;const i={value:n,issues:null};return r.set(t.value,i),xo.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{const n=e._zod.parse,r=(i,o)=>{if(o.direction!=="backward"&&Yc(o,i.value))throw new Ay;return n(i,o)};e._zod.parse=r,e._zod.run===n&&(e._zod.run=r)})},attach(e){var t;let n,r=!1,i,o;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{const s=e._zod.parse,a=(u,c)=>{if(n===void 0){const w=Wr(e,new Set,!1);if(w===Kn)return e._zod.parse=s,e._zod.run===a&&(e._zod.run=s),s(u,c);w===qr||r?n=!0:r=!0}const l=u.value;if(!Iy(l))return s(u,c);let d=c[Su];d||(d={buckets:new WeakMap,backEdges:void 0},c[Su]=d);let f;i===c?f=o:(f=Zk(d,e),i=c,o=f);const h=f.get(l);if(h)return u.value=h.value,h.issues?h.issues.length&&u.issues.push(...Ba(h.issues)):(u.memo=!0,d.backEdges??(d.backEdges=new WeakSet),d.backEdges.add(h.value)),u;So=f;const p=xo.length,m=s(u,c);So=void 0;const g=xo.length>p?xo.pop():void 0;return m instanceof Promise?m.then(w=>(g&&(g.issues=w.issues.length?Ba(w.issues):ah),w)):(g&&(g.issues=m.issues.length?Ba(m.issues):ah),m)};e._zod.parse=a,e._zod.run===s&&(e._zod.run=a)})}};function Ts(){return Bk}function Yc(e,t){const n=e[Su]?.backEdges;return n!==void 0&&Iy(t)&&n.has(t)}const Xc=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));var uh;const Qc=Symbol("ZodOutput"),el=Symbol("ZodInput");class zy{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function Cs(){return new zy}(uh=globalThis).__zod_globalRegistry??(uh.__zod_globalRegistry=Cs());const kt=globalThis.__zod_globalRegistry,yt=Symbol.for("zod.compile.invalid"),ch=Symbol.for("zod.compile.fallback");class an extends Error{constructor(t="z.compile does not support async refinements, transforms, or checks"){super(t),this.name="ZodCompileAsyncError"}}class ke extends Error{constructor(t,n=!0){super(`z.compile does not support ${t}; this schema must use the runtime parser`),this.name="ZodCompileUnsupportedError",this.islandable=n}}function Vk(e,t){try{return Is(e,{assertOnly:!0})}catch{return t}}function tl(e,t){try{const n=Is(e),r=As(e,n);return r._zod.bag.validator=Vk(e,n),r}catch(n){if(t?.strict)throw n;return e}}function As(e,t){if(Jc(e))throw new ke("a schema whose subtree contains a reference cycle");const n=Oe(e),r=e._zod.run,i=r.__originalRun??r,o=(s,a)=>{if(a?.async||a?.direction==="backward"||a?.skipChecks||a?.[ch]||a&&Yc(a,s.value))return i(s,a);const u=t(s.value);return u!==yt?(s.value=u,s):(a&&(a[ch]=!0),i(s,a))};return o.__originalRun=i,n._zod.bag.fallbackRun=i,n._zod.bag.validator=t,n._zod.run=o,r.__originalRun||Hk(n,e,t),n}function Hk(e,t,n){const r=e,i=t;if(typeof i.safeParse=="function"){const o=i.safeParse;r.safeParse=(s,a)=>{const u=n(s);return u!==yt?{success:!0,data:u}:o(s,a)}}if(typeof i.parse=="function"){const o=i.parse;r.parse=(s,a)=>{const u=n(s);return u!==yt?u:o(s,a)}}}function Is(e,t){let n=!0;try{n=Jc(e)}catch{}if(n)throw new ke("a schema whose subtree contains a reference cycle");const r={constants:new Map,constantCounter:0,varCounter:0,definite:!0},i=new Cc(["input"]),o=Ue(i,r,e,"input",!t?.assertOnly);i.write(o===null?"return true;":`return ${o};`);const s=["INVALID",...r.constants.keys()],a=[yt,...r.constants.values()],u=i.content.join(`
65
+ `),c=t?.debug?s.length>0?`// Constants: ${s.join(", ")}
66
+ ${u}`:u:"",l=Function,d=`return (input) => {
67
+ ${u}
68
+ }`;let f;try{f=new l(...s,d)(...a)}catch(h){throw new ke(`this schema (generated code failed to evaluate: ${h.message})`)}return t?.debug&&(f.code=c),f.definite=r.definite,f}function se(e,t){for(const[r,i]of e.constants)if(i===t)return r;const n=`c${e.constantCounter++}`;return e.constants.set(n,t),n}function On(e,t){return e.definite=!1,se(e,t)}function ne(e){return`v${e.varCounter++}`}function qk(e,t){const n=e._zod.run({value:t,issues:[]},{});if(n&&typeof n.then=="function")return yt;const r=n;return r.issues.length===0?r.value:yt}function lt(e,t,n,r,i=!0){const o=e.content.length,s=t.constants.size,a=t.constantCounter,u=t.varCounter;try{return Ue(e,t,n,r,i)}catch(c){if(!(c instanceof ke)||!c.islandable)throw c;if(e.content.length=o,t.constants.size>s){const l=Array.from(t.constants.keys()).slice(s);for(const d of l)t.constants.delete(d)}return t.constantCounter=a,t.varCounter=u,Wk(e,t,n,r)}}function Wk(e,t,n,r){t.definite=!1;const i=se(t,n),o=se(t,qk),s=ne(t);return e.write(`const ${s} = ${o}(${i}, ${r});`),e.write(`if (${s} === INVALID) return INVALID;`),s}const Kk=new Set(["max_size","min_size","size_equals","max_length","min_length","length_equals"]);function Jk(e,t,n,r){const i=n._zod.def.checks;if(!i||i.length===0)return r;let o=r;for(const s of i){const a=s._zod.def;if(a.when&&!Kk.has(a.check))throw new ke('check with a custom "when" condition');switch(a.check){case"greater_than":Yk(e,t,a,o);break;case"less_than":Xk(e,t,a,o);break;case"multiple_of":Qk(e,t,a,o);break;case"number_format":Ly(e,a,o);break;case"min_length":{const u=Nn(a.minimum,"min_length"),c=Va(e,t,o,`${o}.length >= ${u} && ${o}.length < ${a.minimum*2}`);e.write(`if (${c} < ${u}) return INVALID;`);break}case"max_length":{const u=Nn(a.maximum,"max_length"),c=Va(e,t,o,`${o}.length > ${u}`);e.write(`if (${c} > ${u}) return INVALID;`);break}case"length_equals":{const u=Nn(a.length,"length_equals"),c=Va(e,t,o,`${o}.length >= ${u} && ${o}.length <= ${a.length*2}`);e.write(`if (${c} !== ${u}) return INVALID;`);break}case"min_size":e.write(`if (${o}.size < ${Nn(a.minimum,"min_size")}) return INVALID;`);break;case"max_size":e.write(`if (${o}.size > ${Nn(a.maximum,"max_size")}) return INVALID;`);break;case"size_equals":e.write(`if (${o}.size !== ${Nn(a.size,"size_equals")}) return INVALID;`);break;case"string_format":o=Py(e,t,a,o);break;case"custom":o=oS(e,t,s,o);break;case"bigint_format":eS(e,a,o);break;case"mime_type":tS(e,t,a,o);break;case"property":rS(e,t,a,o);break;case"properties":nS(e,t,a,o);break;case"overwrite":{const u=ne(t);iS(e,t,s,o,u),o=u;break}default:throw new ke(`check type ${a.check}`)}}return o}function Va(e,t,n,r){const i=se(t,ci),o=ne(t);return e.write(`const ${o} = typeof ${n} === "string" && ${r} ? ${i}(${n}) : ${n}.length;`),o}function Nn(e,t){if(typeof e!="number"||!Number.isFinite(e))throw new ke(`${t} bound of type ${typeof e}`);return`${e}`}function Ry(e,t){if(typeof t=="bigint")return`${t}n`;if(typeof t=="number"){if(Number.isNaN(t))throw new ke("comparison check with NaN bound");return`${t}`}if(t instanceof Date){if(Number.isNaN(t.getTime()))throw new ke("comparison check with Invalid Date bound");return se(e,t)}throw new ke(`comparison check bound of type ${typeof t}`)}function Yk(e,t,n,r){const i=n.inclusive?"<":"<=";e.write(`if (${r} ${i} ${Ry(t,n.value)}) return INVALID;`)}function Xk(e,t,n,r){const i=n.inclusive?">":">=";e.write(`if (${r} ${i} ${Ry(t,n.value)}) return INVALID;`)}function Qk(e,t,n,r){if(typeof n.value=="bigint"){if(n.value===BigInt(0))throw new ke("multiple_of check with a zero divisor");e.write(`if (${r} % ${n.value}n !== 0n) return INVALID;`)}else{const i=se(t,ec);e.write(`if (${i}(${r}, ${Nn(n.value,"multiple_of")}) !== 0) return INVALID;`)}}function Ly(e,t,n){const r=t.format;switch(r){case"safeint":e.write(`if (!Number.isSafeInteger(${n})) return INVALID;`);break;case"int32":e.write(`if (!Number.isInteger(${n}) || ${n} < -2147483648 || ${n} > 2147483647) return INVALID;`);break;case"uint32":e.write(`if (!Number.isInteger(${n}) || ${n} < 0 || ${n} > 4294967295) return INVALID;`);break;case"float32":e.write(`if (!Number.isFinite(${n}) || ${n} < -3.4028234663852886e38 || ${n} > 3.4028234663852886e38) return INVALID;`);break;case"float64":e.write(`if (!Number.isFinite(${n})) return INVALID;`);break;default:throw new ke(`number format ${r}`)}}function eS(e,t,n){const r=t.format;if(r)switch(r){case"int64":e.write(`if (${n} < -9223372036854775808n || ${n} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${n} < 0n || ${n} > 18446744073709551615n) return INVALID;`);break;default:throw new ke(`bigint format ${r}`)}}function tS(e,t,n,r){const i=n.mime;if(i&&i.length>0){const o=se(t,new Set(i));e.write(`if (!${o}.has(${r}.type)) return INVALID;`)}}function nS(e,t,n,r){if(n.when)throw new ke('check with a custom "when" condition');e.write(`if (${r} == null) return INVALID;`);const i=n.shape;for(const o of Reflect.ownKeys(i)){const s=typeof o=="symbol"?se(t,o):St(o),a=ne(t);e.write(`const ${a} = ${r}[${s}];`),lt(e,t,i[o],a,!1)}}function rS(e,t,n,r){const i=`${r}[${JSON.stringify(n.property)}]`;Ue(e,t,n.schema,i)}function iS(e,t,n,r,i){const o=n._zod.def.tx;if(!o)throw new ke("overwrite check without a transform function");if(Mn(o))throw new an("z.compile: async overwrite transforms are not supported");const s=se(t,o);e.write(`const ${i} = ${s}(${r});`)}function xu(){throw new en}function nl(e){this.issues.push(e)}function oS(e,t,n,r){const i=n._zod.def;if(i.fn){if(Mn(i.fn))throw new an("z.compile: async .refine() predicates are not supported");const o=On(t,i.fn),s=se(t,xu),a=ne(t);return e.write(`const ${a} = ${o}(${r});`),e.write(`if (${a} instanceof Promise) ${s}();`),e.write(`if (!${a}) return INVALID;`),r}if(n._zod.check){if(Mn(n._zod.check))throw new an("z.compile: async .superRefine() / check functions are not supported");const o=n._zod.check,a=On(t,c=>{const l={value:c,issues:[],addIssue:nl};return o(l)instanceof Promise&&xu(),l.issues.length===0?l.value:yt}),u=ne(t);return e.write(`const ${u} = ${a}(${r});`),e.write(`if (${u} === INVALID) return INVALID;`),u}throw new ke("custom check without a predicate or check function")}const sS=new Set(["cidrv4","cuid","cuid2","date","datetime","duration","e164","email","emoji","ends_with","guid","includes","ipv4","ksuid","lowercase","mac","nanoid","regex","starts_with","time","ulid","uppercase","uuid","xid"]);function Py(e,t,n,r,i=!0){const o=n.format;if(o==="base64"){const c=se(t,xs);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(o==="base64url"){const c=se(t,Oc);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(o==="jwt"){const c=se(t,Uc),l=se(t,n.alg??null);return e.write(`if (!${c}(${r}, ${l})) return INVALID;`),r}if(o==="ipv6"){const c=se(t,Ss);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(o==="cidrv6"){const c=se(t,Pc);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(o==="credit_card"){const c=se(t,Mc);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(o==="iban"){const c=se(t,Fc);return e.write(`if (!${c}(${r})) return INVALID;`),r}const s=n;if(o==="url"||o==="httpurl"||s.normalize||s.hostname!==void 0||s.protocol!==void 0){const c=se(t,zc),l=se(t,n),d=ne(t),f=ne(t);if(e.write(`const ${d} = ${r}.trim();`),e.write(`const ${f} = ${c}(${d}, ${l});`),e.write(`if (typeof ${f} === "number") return INVALID;`),s.hostname!==void 0){const m=se(t,Rc);e.write(`if (!${m}(${f}, ${l}.hostname)) return INVALID;`)}if(s.protocol!==void 0){const m=se(t,Lc);e.write(`if (!${m}(${f}, ${l}.protocol)) return INVALID;`)}if(!i)return null;const h=ne(t),p=s.normalize?`${f}.href`:`${se(t,Qo)}(${d})`;return e.write(`const ${h} = ${p};`),h}const a=n.fn;if(a){if(Mn(a))throw new ke(`async string format ${o}`);const c=se(t,a);return e.write(`if (!${c}(${r})) return INVALID;`),r}if(sS.has(o)&&n.pattern){const c=se(t,n.pattern);return e.write(`${c}.lastIndex = 0;`),e.write(`if (!${c}.test(${r})) return INVALID;`),r}const u=n.format;switch(u){case"regex":throw new ke("regex format without a pattern");case"lowercase":e.write(`if (${r} !== ${r}.toLowerCase()) return INVALID;`);break;case"uppercase":e.write(`if (${r} !== ${r}.toUpperCase()) return INVALID;`);break;case"includes":e.write(`if (!${r}.includes(${St(n.includes)})) return INVALID;`);break;case"starts_with":{const c=n.prefix;e.write(`if (${r}.slice(0, ${c.length}) !== ${St(c)}) return INVALID;`);break}case"ends_with":{const c=n.suffix;e.write(`if (${r}.slice(-${c.length}) !== ${St(c)}) return INVALID;`);break}default:throw new ke(`string format ${u}`)}return r}function Ue(e,t,n,r,i=!0){const o=n._zod.def,s=o.type;if(o.coerce)throw new ke(`coercion (z.coerce.${s}())`);const a=i||!!o.checks?.length;let u;switch(s){case"string":u=aS(e,t,n,r,a);break;case"number":u=uS(e,n,r);break;case"boolean":u=cS(e,r);break;case"bigint":u=lS(e,n,r);break;case"symbol":u=dS(e,r);break;case"undefined":u=fS(e,r);break;case"null":u=hS(e,r);break;case"any":case"unknown":u=r;break;case"never":e.write("return INVALID;"),u=r;break;case"void":u=pS(e,r);break;case"nan":u=mS(e,r);break;case"date":u=gS(e,r);break;case"object":u=yS(e,t,n,r,a);break;case"optional":u=vS(e,t,n,r,a);break;case"nullable":u=_S(e,t,n,r,a);break;case"array":u=kS(e,t,n,r,a);break;case"literal":u=SS(e,t,n,r);break;case"enum":u=xS(e,t,n,r);break;case"readonly":{const c=dh(e,t,n,r),l=ne(t);e.write(`const ${l} = Object.freeze(${c});`),u=l;break}case"success":dh(e,t,n,r),u="true";break;case"default":case"prefault":u=ES(e,t,n,r);break;case"nonoptional":u=$S(e,t,n,r);break;case"tuple":u=TS(e,t,n,r);break;case"union":u=CS(e,t,n,r);break;case"intersection":u=NS(e,t,n,r);break;case"record":u=zS(e,t,n,r);break;case"map":u=LS(e,t,n,r);break;case"set":u=PS(e,t,n,r);break;case"file":u=DS(e,r);break;case"template_literal":u=OS(e,t,n,r);break;case"lazy":u=MS(e,t,n,r);break;case"pipe":u=FS(e,t,n,r);break;case"custom":u=US(e,t,n,r);break;case"transform":u=ZS(e,t,n,r);break;case"catch":u=jS(e,t,n,r);break;default:throw new ke(`schema type ${s}`)}return u===null?null:Jk(e,t,n,u)}function aS(e,t,n,r,i=!0){e.write(`if (typeof ${r} !== "string") return INVALID;`);const o=n._zod.def;return o.format===void 0?r:Py(e,t,o,r,i)}function uS(e,t,n){e.write(`if (typeof ${n} !== "number" || !Number.isFinite(${n})) return INVALID;`);const r=t._zod.def;return r.check==="number_format"&&r.format&&Ly(e,{format:r.format},n),n}function cS(e,t){return e.write(`if (typeof ${t} !== "boolean") return INVALID;`),t}function lS(e,t,n){e.write(`if (typeof ${n} !== "bigint") return INVALID;`);const r=t._zod.def;if(r.format)switch(r.format){case"int64":e.write(`if (${n} < -9223372036854775808n || ${n} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${n} < 0n || ${n} > 18446744073709551615n) return INVALID;`);break}return n}function dS(e,t){return e.write(`if (typeof ${t} !== "symbol") return INVALID;`),t}function fS(e,t){return e.write(`if (${t} !== undefined) return INVALID;`),t}function hS(e,t){return e.write(`if (${t} !== null) return INVALID;`),t}function pS(e,t){return e.write(`if (${t} !== undefined) return INVALID;`),t}function mS(e,t){return e.write(`if (typeof ${t} !== "number" || !Number.isNaN(${t})) return INVALID;`),t}function gS(e,t){return e.write(`if (!(${t} instanceof Date) || Number.isNaN(${t}.getTime())) return INVALID;`),t}function yS(e,t,n,r,i=!0){const o=n._zod.def;e.write(`if (typeof ${r} !== "object" || ${r} === null || Array.isArray(${r})) return INVALID;`);const s=o.shape,a=Object.keys(s),u=Object.getOwnPropertySymbols(s),c=u.length?[...a,...u]:a,l=y=>typeof y=="symbol"?se(t,y):St(y),d=y=>typeof y=="symbol"?`[${l(y)}]`:St(y),f=s;if(a.includes("__proto__"))throw new ke('object shape key "__proto__"');const h=new Map;for(const y of c){const b=f[y],v=l(y),S=ne(t);if(e.write(`const ${S} = ${r}[${v}];`),b._zod.optin!==void 0){const _=ne(t);e.write(`let ${_} = (() => {`),e.indented($=>{const R=lt($,t,b,S);$.write(`return ${R};`)}),e.write("})();"),b._zod.optout==="optional"?(e.write(`if (${_} === INVALID) {`),e.indented($=>{$.write(`if (${v} in ${r}) return INVALID;`),$.write(`${_} = undefined;`)}),e.write("}")):e.write(`if (${_} === INVALID) return INVALID;`),h.set(y,_)}else{wS(b)&&e.write(`if (!(${v} in ${r})) return INVALID;`);const _=lt(e,t,b,S,i);_!==null&&h.set(y,_)}}const p=o.catchall;let m="none";if(p){const y=p._zod.def.type;if(y==="never"){const b=a.map(v=>`k !== ${St(v)}`).join(" && ")||"true";e.write(`for (const k in ${r}) {`),e.indented(v=>{v.write(`if (${b}) return INVALID;`)}),e.write("}")}else(y==="unknown"||y==="any")&&!p._zod.def.checks?.length?m="passthrough":m="schema"}const g=ne(t),w=c.some(y=>lh(f[y])||Eu(f[y]));if(!i){if(m==="schema"){const y=a.length>0?se(t,new Set(a)):null;e.write(`for (const k in ${r}) {`),e.indented(b=>{b.write('if (k === "__proto__") continue;'),y&&b.write(`if (${y}.has(k)) continue;`);const v=ne(t);b.write(`const ${v} = ${r}[k];`),lt(b,t,p,v,!1)}),e.write("}")}return null}if(w){e.write(`const ${g} = {};`);for(const y of c){const b=l(y),v=h.get(y);Eu(f[y])?e.write(`if (${b} in ${r}) ${g}[${b}] = ${v};`):lh(f[y])?e.write(`if (${v} !== undefined || ${b} in ${r}) ${g}[${b}] = ${v};`):e.write(`${g}[${b}] = ${v};`)}}else{const y=c.map(b=>`${d(b)}: ${h.get(b)}`).join(", ");e.write(`const ${g} = { ${y} };`)}if(m!=="none"){const y=a.length>0?se(t,new Set(a)):null;e.write(`for (const k in ${r}) {`),e.indented(b=>{if(b.write('if (k === "__proto__") continue;'),y&&b.write(`if (${y}.has(k)) continue;`),m==="passthrough")b.write(`${g}[k] = ${r}[k];`);else{const v=ne(t);b.write(`const ${v} = ${r}[k];`);const S=lt(b,t,p,v);b.write(`${g}[k] = ${S};`)}}),e.write("}")}return g}function vS(e,t,n,r,i=!0){const o=n._zod.def;if(bS(n))return Ue(e,t,o.innerType,r,i);if(o.innerType._zod.optin==="defaulted"){const a=ne(t),u=ne(t);return e.write(`let ${a};`),e.write(`if (${r} === undefined) {`),e.indented(c=>{c.write(`const ${u} = (() => {`),c.indented(l=>{const d=Ue(l,t,o.innerType,r);l.write(`return ${d};`)}),c.write("})();"),c.write(`if (${u} !== INVALID) ${a} = ${u};`)}),e.write("} else {"),e.indented(c=>{const l=Ue(c,t,o.innerType,r);c.write(`${a} = ${l};`)}),e.write("}"),a}const s=i?ne(t):null;return s&&e.write(`let ${s};`),e.write(`if (${r} !== undefined) {`),e.indented(a=>{const u=Ue(a,t,o.innerType,r,i);s&&u!==null&&a.write(`${s} = ${u};`)}),e.write("}"),s}function bS(e){return e._zod.traits?.has("$ZodExactOptional")===!0}function wS(e){return e._zod.optin===void 0&&zn(e)}function zn(e){if(e._zod.def.coerce)return!0;const t=e._zod.def;switch(t.type){case"any":case"unknown":case"undefined":case"void":case"default":case"prefault":case"transform":case"custom":case"lazy":return!0;case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"never":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":return!1;case"nonoptional":return t.innerType?zn(t.innerType):!1;case"literal":return!!t.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":case"nullable":case"readonly":case"success":return t.innerType?zn(t.innerType):!0;case"catch":return!0;case"union":return t.options?t.options.some(zn):!0;case"intersection":return!t.left||!t.right?!0:zn(t.left)&&zn(t.right);case"pipe":return t.in?zn(t.in):!0;default:return!0}}function Eu(e){return e._zod.optin==="optional"&&e._zod.optout==="optional"}function lh(e){return(e._zod.optin!=="defaulted"||e._zod.optout==="optional")&&qn(e)}function qn(e){const t=e._zod.def;switch(t.type){case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":case"never":case"success":return!1;case"literal":return!!t.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":return!0;case"nullable":case"readonly":case"nonoptional":return t.innerType?qn(t.innerType):!0;case"union":return t.options?t.options.some(qn):!0;case"intersection":return!t.left||!t.right||qn(t.left)||qn(t.right);case"pipe":return t.out?qn(t.out):!0;default:return!0}}function _S(e,t,n,r,i=!0){const o=n._zod.def,s=i?ne(t):null;return s&&e.write(`let ${s} = null;`),e.write(`if (${r} !== null) {`),e.indented(a=>{const u=Ue(a,t,o.innerType,r,i);s&&u!==null&&a.write(`${s} = ${u};`)}),e.write("}"),s}function kS(e,t,n,r,i=!0){const o=n._zod.def;e.write(`if (!Array.isArray(${r})) return INVALID;`);const s=i?ne(t):null,a=ne(t),u=ne(t);return s&&e.write(`const ${s} = new Array(${r}.length);`),e.write(`for (let ${a} = 0; ${a} < ${r}.length; ${a}++) {`),e.indented(c=>{c.write(`const ${u} = ${r}[${a}];`);const l=lt(c,t,o.element,u,i);s&&l!==null&&c.write(`${s}[${a}] = ${l};`)}),e.write("}"),s}function SS(e,t,n,r){const o=n._zod.def.values;if(o.length!==1){const a=se(t,new Set(o));return e.write(`if (!${a}.has(${r})) return INVALID;`),r}const s=o[0];if(typeof s=="number"&&Number.isNaN(s)){const a=se(t,new Set(o));return e.write(`if (!${a}.has(${r})) return INVALID;`),r}if(typeof s=="string")e.write(`if (${r} !== ${St(s)}) return INVALID;`);else if(typeof s=="number"||typeof s=="boolean")e.write(`if (${r} !== ${s}) return INVALID;`);else if(s===null)e.write(`if (${r} !== null) return INVALID;`);else if(s===void 0)e.write(`if (${r} !== undefined) return INVALID;`);else if(typeof s=="bigint")e.write(`if (${r} !== ${s}n) return INVALID;`);else throw new ke(`literal type ${typeof s}`);return r}function xS(e,t,n,r){const i=n._zod.values;if(!i)throw new ke("enum schema without enumerated values");const o=se(t,i);return e.write(`if (!${o}.has(${r})) return INVALID;`),r}function dh(e,t,n,r){const i=n._zod.def;return Ue(e,t,i.innerType,r)}function ES(e,t,n,r){const i=n._zod.def,s=Object.getOwnPropertyDescriptor(n._zod.def,"defaultValue")?()=>n._zod.def.defaultValue:void 0;if(n._zod.def.type==="prefault"){if(!s)return Ue(e,t,i.innerType,r);const u=se(t,s),c=ne(t);return e.write(`let ${c} = ${r};`),e.write(`if (${r} === undefined) ${c} = ${u}();`),Ue(e,t,i.innerType,c)}const a=ne(t);if(s){const u=se(t,s),c=se(t,ui);e.write(`let ${a};`),e.write(`if (${r} === undefined) {`),e.indented(l=>{l.write(`${a} = ${c}(${u}());`)}),e.write("} else {"),e.indented(l=>{const d=Ue(l,t,i.innerType,r);l.write(`${a} = ${d} === undefined ? ${c}(${u}()) : ${d};`)}),e.write("}")}else e.write(`let ${a};`),e.write(`if (${r} !== undefined) {`),e.indented(u=>{const c=Ue(u,t,i.innerType,r);u.write(`${a} = ${c};`)}),e.write("}");return a}function $S(e,t,n,r){const i=n._zod.def,o=Ue(e,t,i.innerType,r),s=ne(t);return e.write(`const ${s} = ${o};`),e.write(`if (${s} === undefined) return INVALID;`),s}function TS(e,t,n,r){const i=n._zod.def,o=i.items,s=i.rest;e.write(`if (!Array.isArray(${r})) return INVALID;`);const a=fh(o,"optin"),u=fh(o,"optout");s?e.write(`if (${r}.length < ${a}) return INVALID;`):e.write(`if (${r}.length < ${a} || ${r}.length > ${o.length}) return INVALID;`);const c=ne(t);e.write(`const ${c} = [];`);for(let l=0;l<o.length;l++){const d=o[l];if(l>=u)e.write(`if (${c}.length === ${l}) {`),e.indented(f=>{f.write(`if (${l} < ${r}.length) {`),f.indented(h=>{const p=ne(t);h.write(`const ${p} = ${r}[${l}];`);const m=lt(h,t,d,p);h.write(`${c}[${l}] = ${m};`)}),f.write("} else {"),f.indented(h=>{if(Eu(d)){h.write(`${c}.length = ${l};`);return}const p=ne(t),m=ne(t);h.write(`const ${p} = undefined;`),h.write(`const ${m} = (() => {`),h.indented(g=>{const w=lt(g,t,d,p);g.write(`return ${w};`)}),h.write("})();"),h.write(`if (${m} === INVALID || ${m} === undefined) ${c}.length = ${l};`),h.write(`else ${c}[${l}] = ${m};`)}),f.write("}")}),e.write("}");else{const f=ne(t);e.write(`const ${f} = ${r}[${l}];`);const h=lt(e,t,d,f);e.write(`${c}[${l}] = ${h};`)}}if(s){const l=ne(t),d=ne(t);e.write(`for (let ${l} = ${o.length}; ${l} < ${r}.length; ${l}++) {`),e.indented(f=>{f.write(`const ${d} = ${r}[${l}];`);const h=lt(f,t,s,d);f.write(`${c}[${l}] = ${h};`)}),e.write("}")}return c}function fh(e,t){for(let n=e.length-1;n>=0;n--)if(!(t==="optin"?e[n]._zod.optin!==void 0:e[n]._zod.optout==="optional"))return n+1;return 0}function CS(e,t,n,r){const i=n._zod.def,o=i.options;if(i.discriminator)return AS(e,t,i,r);if(i.inclusive===!1)throw new ke("exclusive unions (z.xor)");if(o.length===0)return e.write("return INVALID;"),r;if(o.length===1)return Ue(e,t,o[0],r);if(o.every(u=>u._zod.def.type==="literal"&&!u._zod.def.checks?.length)){const u=new Set(o.flatMap(l=>l._zod.def.values)),c=se(t,u);return e.write(`if (!${c}.has(${r})) return INVALID;`),r}const a=ne(t);e.write(`let ${a};`);for(let u=0;u<o.length;u++){const c=o[u];u===0?e.write(`${a} = (() => {`):e.write(`if (${a} === INVALID) ${a} = (() => {`),e.indented(l=>{const d=Ue(l,t,c,r);l.write(`return ${d};`)}),e.write("})();")}return e.write(`if (${a} === INVALID) return INVALID;`),a}function AS(e,t,n,r){if(n.unionFallback)throw new ke("discriminated union with unionFallback");if(n.options.length===0)return e.write("return INVALID;"),r;const i=ne(t),o=ne(t);e.write(`const ${i} = ${r}?.[${St(n.discriminator)}];`),e.write(`let ${o};`);let s=!0;const a=new Set;for(const u of n.options){const c=u._zod.propValues?.[n.discriminator];if(!c||c.size===0)throw new ke("discriminated union option without static discriminator values");for(const f of c){if(a.has(f))throw new ke(`duplicate discriminator value ${String(f)}`);a.add(f)}const l=Array.from(c,f=>IS(t,i,f)),d=s?"if":"else if";e.write(`${d} (${l.join(" || ")}) {`),e.indented(f=>{const h=Ue(f,t,u,r);f.write(`${o} = ${h};`)}),e.write("}"),s=!1}return e.write("else { return INVALID; }"),o}function IS(e,t,n){if(typeof n=="string")return`${t} === ${St(n)}`;if(typeof n=="number")return Number.isNaN(n)?`Number.isNaN(${t})`:`${t} === ${n}`;if(typeof n=="boolean")return`${t} === ${n}`;if(n===null)return`${t} === null`;if(n===void 0)return`${t} === undefined`;if(typeof n=="bigint")return`${t} === ${n}n`;if(typeof n=="symbol"){const r=se(e,n);return`${t} === ${r}`}throw new ke(`literal discriminator value ${String(n)}`)}function NS(e,t,n,r){const i=n._zod.def;t.definite=!1;const o=lt(e,t,i.left,r),s=lt(e,t,i.right,r),a=se(t,Qr),u=ne(t);return e.write(`const ${u} = ${a}(${o}, ${s});`),e.write(`if (!${u}.valid) return INVALID;`),`${u}.data`}function zS(e,t,n,r){const i=n._zod.def,o=se(t,rn);e.write(`if (!${o}(${r})) return INVALID;`);const s=ne(t),a=ne(t),u=ne(t);e.write(`const ${s} = {};`);const c=i,l=c.partial?void 0:i.keyType._zod.values;if(l){const h=[];for(const m of l){if(!(typeof m=="string"||typeof m=="number"||typeof m=="symbol"))throw new ke(`record key value ${String(m)}`);const g=typeof m=="number"?m.toString():m;if(g==="__proto__")throw new ke('record key "__proto__"');h.push(g);const w=se(t,m),y=Ue(e,t,i.keyType,w),b=ne(t);e.write(`const ${b} = ${r}[${RS(t,g)}];`);const v=lt(e,t,i.valueType,b);e.write(`${s}[${y}] = ${v};`)}const p=se(t,new Set(h));return e.write(`for (const ${a} in ${r}) {`),e.indented(m=>{m.write(`if (${p}.has(${a})) continue;`),c.mode==="loose"?m.write(`if (${a} !== "__proto__") ${s}[${a}] = ${r}[${a}];`):m.write("return INVALID;")}),e.write("}"),s}const d=i.keyType._zod.def;if(!(d.type==="string"&&d.format===void 0&&!d.coerce&&(d.checks?.length??0)===0)){const h=i.mode==="loose",p=Is(i.keyType);p.definite===!1&&(t.definite=!1);const m=se(t,p),g=se(t,dr),w=ne(t);return hh(e,t,r,a,y=>{y.write(`let ${w} = ${m}(${a});`),y.write(`if (${w} === INVALID && typeof ${a} === "string" && ${g}.test(${a})) ${w} = ${m}(Number(${a}));`),h?y.write(`if (${w} === INVALID) { ${s}[${a}] = ${r}[${a}]; continue; }`):y.write(`if (${w} === INVALID) return INVALID;`),y.write(`if (${w} === "__proto__") continue;`);const b=ne(t);y.write(`const ${b} = ${r}[${a}];`);const v=lt(y,t,i.valueType,b);y.write(`${s}[${w}] = ${v};`)}),s}return hh(e,t,r,a,h=>{h.write(`const ${u} = ${r}[${a}];`);const p=lt(h,t,i.valueType,u);h.write(`${s}[${a}] = ${p};`)},"return INVALID;"),s}function hh(e,t,n,r,i,o){const s=se(t,Object.prototype.propertyIsEnumerable),a=ne(t),u=ne(t),c=ne(t);e.write(`const ${a} = Object.getOwnPropertySymbols(${n});`),e.write(`const ${u} = Object.getOwnPropertyNames(${n});`),e.write(`for (let ${c} = 0; ${c} < ${u}.length; ${c}++) {`),e.indented(l=>{l.write(`const ${r} = ${u}[${c}];`),l.write(`if (${r} === "__proto__" || !${s}.call(${n}, ${r})) continue;`),i(l)}),e.write("}"),e.write(`for (let ${c} = 0; ${c} < ${a}.length; ${c}++) {`),e.indented(l=>{l.write(`const ${r} = ${a}[${c}];`),l.write(`if (!${s}.call(${n}, ${r})) continue;`),o?l.write(o):i(l)}),e.write("}")}function RS(e,t){return typeof t=="string"?St(t):se(e,t)}function LS(e,t,n,r){const i=n._zod.def;e.write(`if (!(${r} instanceof Map)) return INVALID;`);const o=ne(t),s=ne(t),a=ne(t);return e.write(`const ${o} = new Map();`),e.write(`for (const [${s}, ${a}] of ${r}) {`),e.indented(u=>{const c=Ue(u,t,i.keyType,s),l=Ue(u,t,i.valueType,a);u.write(`${o}.set(${c}, ${l});`)}),e.write("}"),o}function PS(e,t,n,r){const i=n._zod.def;e.write(`if (!(${r} instanceof Set)) return INVALID;`);const o=ne(t),s=ne(t);return e.write(`const ${o} = new Set();`),e.write(`for (const ${s} of ${r}) {`),e.indented(a=>{const u=Ue(a,t,i.valueType,s);a.write(`${o}.add(${u});`)}),e.write("}"),o}function DS(e,t){return e.write(`if (!(${t} instanceof File)) return INVALID;`),t}function OS(e,t,n,r){e.write(`if (typeof ${r} !== "string") return INVALID;`);const i=n._zod.pattern;if(i){const o=se(t,i);e.write(`${o}.lastIndex = 0;`),e.write(`if (!${o}.test(${r})) return INVALID;`)}return r}function MS(e,t,n,r){const i=n._zod.def,o=On(t,i.getter),s=se(t,{parser:null});e.write(`if (!${s}.parser) {`),e.indented(u=>{u.write(`const inner = ${o}();`),u.write(`${s}.parser = function(input) {`),u.indented(c=>{c.write("const result = inner._zod.run({ value: input, issues: [] }, {});"),c.write("return result.issues.length === 0 ? result.value : INVALID;")}),u.write("};")}),e.write("}");const a=ne(t);return e.write(`const ${a} = ${s}.parser(${r});`),e.write(`if (${a} === INVALID) return INVALID;`),a}function FS(e,t,n,r){const i=n._zod.def,o=Ue(e,t,i.in,r);if(i.transform){if(Mn(i.transform))throw new an("z.compile: async transforms in pipes are not supported");const s=i.transform,u=On(t,l=>{const d={value:l,issues:[],addIssue:nl},f=s(l,d);return f instanceof Promise?yt:d.issues.length===0?f:yt}),c=ne(t);return e.write(`const ${c} = ${u}(${o});`),e.write(`if (${c} === INVALID) return INVALID;`),Ue(e,t,i.out,c)}else return Ue(e,t,i.out,o)}function Mn(e){return typeof e=="function"&&(e.constructor.name==="AsyncFunction"||e[Symbol.toStringTag]==="AsyncFunction")}function US(e,t,n,r){const i=n._zod.def;if(i.fn){if(Mn(i.fn))throw new an("z.compile: async custom predicates are not supported");const o=On(t,i.fn),s=se(t,xu),a=ne(t);e.write(`const ${a} = ${o}(${r});`),e.write(`if (${a} instanceof Promise) ${s}();`),e.write(`if (!${a}) return INVALID;`)}else throw new ke("custom schema without a predicate function");return r}function GS(e,t,n){const r=e._zod.run({value:n,issues:[]},{});if(r&&typeof r.then=="function")return yt;const i=r;return i.issues.length===0?i.value:t()}function jS(e,t,n,r){const i=n._zod.def;if(!i.catchValue[oc])throw new ke("catch with a callback (only a constant catch value compiles)",!1);const o=ne(t);e.write(`let ${o} = (() => {`),e.indented(c=>{const l=lt(c,t,i.innerType,r);c.write(`return ${l};`)}),e.write("})();");const s=se(t,i.innerType),a=On(t,i.catchValue),u=se(t,GS);return e.write(`if (${o} === INVALID) {`),e.indented(c=>{c.write(`${o} = ${u}(${s}, ${a}, ${r});`),c.write(`if (${o} === INVALID) return INVALID;`)}),e.write("}"),o}function ZS(e,t,n,r){const i=n._zod.def;if(i.transform){if(Mn(i.transform))throw new an("z.compile: async transforms are not supported");const o=i.transform,a=On(t,c=>{const l={value:c,issues:[],addIssue:nl},d=o(c,l);return d instanceof Promise?yt:l.issues.length===0?d:yt}),u=ne(t);return e.write(`const ${u} = ${a}(${r});`),e.write(`if (${u} === INVALID) return INVALID;`),u}return r}function Ns(e){return e.checks&&(e.checks=[...e.checks]),e}function Dy(e,t){return new e(Ns({type:"string",...A(t)}))}function Oy(e,t){return new e(Ns({type:"string",coerce:!0,...A(t)}))}function rl(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...A(t)})}function il(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...A(t)})}function ol(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...A(t)})}function sl(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(t)})}function al(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(t)})}function ul(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(t)})}function zs(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...A(t)})}function cl(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...A(t)})}function ll(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(t)})}function dl(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...A(t)})}function fl(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(t)})}function hl(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...A(t)})}function pl(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...A(t)})}function ml(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(t)})}function gl(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(t)})}function yl(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(t)})}function My(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...A(t)})}function vl(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(t)})}function bl(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(t)})}function wl(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...A(t)})}function _l(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...A(t)})}function kl(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...A(t)})}function Fy(e,t){return new e({type:"string",format:"credit_card",check:"string_format",abort:!1,...A(t)})}function Uy(e,t){return new e({type:"string",format:"iban",check:"string_format",abort:!1,...A(t)})}function Sl(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...A(t)})}const xl={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function El(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(t)})}function $l(e,t){return new e({type:"string",format:"date",check:"string_format",...A(t)})}function Tl(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...A(t)})}function Cl(e,t){return new e({type:"string",format:"duration",check:"string_format",...A(t)})}function Gy(e,t){return new e(Ns({type:"number",checks:[],...A(t)}))}function jy(e,t){return new e(Ns({type:"number",coerce:!0,checks:[],...A(t)}))}function Zy(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...A(t)})}function By(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...A(t)})}function Vy(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...A(t)})}function Hy(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...A(t)})}function qy(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...A(t)})}function Wy(e,t){return new e({type:"boolean",...A(t)})}function Ky(e,t){return new e({type:"boolean",coerce:!0,...A(t)})}function Jy(e,t){return new e({type:"bigint",...A(t)})}function Yy(e,t){return new e({type:"bigint",coerce:!0,...A(t)})}function Xy(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...A(t)})}function Qy(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...A(t)})}function ev(e,t){return new e({type:"symbol",...A(t)})}function tv(e,t){return new e({type:"undefined",...A(t)})}function nv(e,t){return new e({type:"null",...A(t)})}function rv(e){return new e({type:"any"})}function iv(e){return new e({type:"unknown"})}function ov(e,t){return new e({type:"never",...A(t)})}function sv(e,t){return new e({type:"void",...A(t)})}function av(e,t){return new e({type:"date",...A(t)})}function uv(e,t){return new e({type:"date",coerce:!0,...A(t)})}function cv(e,t){return new e({type:"nan",...A(t)})}function un(e,t){return new $c({check:"less_than",...A(t),value:e,inclusive:!1})}function xt(e,t){return new $c({check:"less_than",...A(t),value:e,inclusive:!0})}function cn(e,t){return new Tc({check:"greater_than",...A(t),value:e,inclusive:!1})}function Et(e,t){return new Tc({check:"greater_than",...A(t),value:e,inclusive:!0})}function Rs(e){return cn(0,e)}function Ls(e){return un(0,e)}function Ps(e){return xt(0,e)}function Ds(e){return Et(0,e)}function Fn(e,t){return new Wm({check:"multiple_of",...A(t),value:e})}function Zn(e,t){return new Ym({check:"max_size",...A(t),maximum:e})}function ln(e,t){return new Xm({check:"min_size",...A(t),minimum:e})}function fr(e,t){return new Qm({check:"size_equals",...A(t),size:e})}function hr(e,t){return new eg({check:"max_length",...A(t),maximum:e})}function kn(e,t){return new tg({check:"min_length",...A(t),minimum:e})}function pr(e,t){return new ng({check:"length_equals",...A(t),length:e})}function bi(e,t){return new rg({check:"string_format",format:"regex",...A(t),pattern:e})}function wi(e){return new ig({check:"string_format",format:"lowercase",...A(e)})}function _i(e){return new og({check:"string_format",format:"uppercase",...A(e)})}function ki(e,t){return new sg({check:"string_format",format:"includes",...A(t),includes:e})}function Si(e,t){return new ag({check:"string_format",format:"starts_with",...A(t),prefix:e})}function xi(e,t){return new ug({check:"string_format",format:"ends_with",...A(t),suffix:e})}function Os(e,t,n){return new cg({check:"property",property:e,schema:t,...A(n)})}function Ei(e,t){return new lg({check:"properties",shape:e,...A(t)})}function $i(e,t){return new dg({check:"mime_type",mime:e,...A(t)})}function Yt(e){return new fg({check:"overwrite",tx:e})}function Ti(e){return Yt(t=>t.normalize(e))}function Ci(){return Yt(e=>e.trim())}function Ai(){return Yt(e=>e.toLowerCase())}function Ii(){return Yt(e=>e.toUpperCase())}function Ni(){return Yt(e=>Bp(e))}function lv(e,t,n){return new e({type:"array",element:t,...A(n)})}function BS(e,t,n){return new e({type:"union",options:t,...A(n)})}function VS(e,t,n){return new e({type:"union",options:t,inclusive:!1,...A(n)})}function HS(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...A(r)})}function qS(e,t,n){return new e({type:"intersection",left:t,right:n})}function WS(e,t,n,r){const i=n instanceof le,o=i?r:n,s=i?n:null;return new e({type:"tuple",items:t,rest:s,...A(o)})}function KS(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...A(r)})}function JS(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...A(r)})}function YS(e,t,n){return new e({type:"set",valueType:t,...A(n)})}function XS(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...A(n)})}function QS(e,t,n){return new e({type:"enum",entries:t,...A(n)})}function ex(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...A(n)})}function dv(e,t){return new e({type:"file",...A(t)})}function tx(e,t){return new e({type:"transform",transform:t})}function nx(e,t){return new e({type:"optional",innerType:t})}function rx(e,t){return new e({type:"nullable",innerType:t})}function ix(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():ui(n)}})}function ox(e,t,n){return new e({type:"nonoptional",innerType:t,...A(n)})}function sx(e,t){return new e({type:"success",innerType:t})}function ax(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:sc(n)})}function ux(e,t,n){return new e({type:"pipe",in:t,out:n})}function cx(e,t){return new e({type:"readonly",innerType:t})}function lx(e,t,n){return new e({type:"template_literal",parts:t,...A(n)})}function dx(e,t){return new e({type:"lazy",getter:t})}function fx(e,t){return new e({type:"promise",innerType:t})}function fv(e,t,n){const r=A(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function hv(e,t,n){return new e({type:"custom",check:"custom",fn:t,...A(n)})}function pv(e,t){const n=mv(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(Xn(i,r.value,n._zod.def));else{const o=i;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),"input"in o||(o.input=r.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),r.issues.push(Xn(o))}},e(r.value,r)),t);return n}function mv(e,t){const n=new Me({check:"custom",...A(t)});return n._zod.check=e,n}function gv(e){const t=new Me({check:"describe"});return t._zod.onattach=[n=>{const r=kt.get(n)??{};kt.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function yv(e){const t=new Me({check:"meta"});return t._zod.onattach=[n=>{const r=kt.get(n)??{};kt.add(n,{...r,...e})}],t._zod.check=()=>{},t}function vv(e,t){const n=A(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(h=>typeof h=="string"?h.toLowerCase():h),i=i.map(h=>typeof h=="string"?h.toLowerCase():h));const o=new Set(r),s=new Set(i),a=e.Codec??Wc,u=e.Boolean??jc,c=e.String??vi,l=new c({type:"string",error:n.error}),d=new u({type:"boolean",error:n.error}),f=new a({type:"pipe",in:l,out:d,transform:((h,p)=>{let m=h;return n.case!=="sensitive"&&(m=m.toLowerCase()),o.has(m)?!0:s.has(m)?!1:(p.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...s],input:p.value,inst:f,continue:!1}),{})}),reverseTransform:((h,p)=>h===!0?r[0]||"true":i[0]||"false"),error:n.error});return f._zod.bag.truthy=r,f._zod.bag.falsy=i,f._zod.bag.case=n.case??"insensitive",f}function mr(e,t,n,r={}){const i=A(r),o={check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}function Kr(e,...t){for(const n of t)for(const r of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,r)&&$t(e,r,n[r]);return e}function er(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??kt,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??"ref",reused:e?.reused??"inline",intersections:[],deferred:[],external:e?.external??void 0}}function Qe(e,t,n,r,i){const o=typeof t.unrepresentable=="function"?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(o==="any")return!1;if(o===void 0||o==="throw")throw new Error(i);return Object.assign(n,o),!0}function Re(e,t,n={path:[],schemaPath:[]}){var r;const i=e._zod.def,o=t.seen.get(e);if(o)return o.count++,n.schemaPath.includes(e)&&(o.cycle=n.path),o.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;const a=e._zod.toJSONSchema?.();if(a)s.schema=a;else{const l={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,l);else{const f=s.schema,h=t.processors[i.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);h(e,t,f,l)}const d=e._zod.parent;d&&(s.ref||(s.ref=d),Re(d,t,l),t.seen.get(d).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Kr(s.schema,u),t.io==="input"&&pt(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&"_prefault"in s.schema&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function ph(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function tr(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;const r=new Map;for(const s of e.seen.entries()){const a=e.metadataRegistry.get(s[0])?.id;if(a){const u=r.get(a);if(u&&u!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,s[0])}}const i=s=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const d=e.external.registry.get(s[0])?.id,f=e.external.uri??(p=>p);if(d)return{ref:f(d)};const h=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=h,{defId:h,ref:`${f("__shared")}#/${a}/${ph(h)}`}}const u="#",c=`${u}/${a}/`;if(s[1]===n&&!s[1].schema.id)return{ref:u};const l=s[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:c+ph(l)}},o=s=>{if(s[1].schema.$ref)return;const a=s[1],{ref:u,defId:c}=i(s);a.def={...a.schema},c&&(a.defId=c);const l=a.schema;for(const d in l)delete l[d];l.$ref=u};if(e.cycles==="throw")for(const s of e.seen.entries()){const a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
69
69
 
70
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const a=i[1];if(t===i[0]){s(i);continue}if(e.external){const u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}a.count>1&&e.reused==="ref"&&s(i)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Um(e){const t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;const n=[];for(const r of t){if(!r||typeof r!="object")return;Um(r);const o=Object.keys(r);if(o.length!==1||o[0]!=="type")return;const s=r.type;for(const i of Array.isArray(s)?s:[s]){if(typeof i!="string")return;n.includes(i)||n.push(i)}}delete e.anyOf,e.type=n.length===1?n[0]:n}const Vm=new Set(["type","properties","required","additionalProperties"]),wd=["oneOf","anyOf"];function vd(e){const t=e.additionalProperties;return t===void 0||t===!1||typeof t!="object"||t===null?null:Object.keys(t).length?t:null}function Qi(e){const t=[];for(const s of e){if(typeof s!="object"||s.type!=="object")return null;for(const i in s)if(!Vm.has(i))return null;t.push(s)}const n={},r=new Set;for(const s of t){for(const i in s.properties){if(Object.prototype.hasOwnProperty.call(n,i))continue;const a=[];for(const u of t){const l=u.properties?.[i]??vd(u);l!=null&&(a.some(d=>JSON.stringify(d)===JSON.stringify(l))||a.push(l))}const c=a.length===1?a[0]:Qi(a)??{allOf:a};Fe(n,i,c)}for(const i of s.required??[])r.add(i)}const o={type:"object",properties:n};if(r.size&&(o.required=[...r]),t.every(s=>s.additionalProperties===!1))o.additionalProperties=!1;else{const s=[];for(const i of t){const a=vd(i);a&&!s.some(c=>JSON.stringify(c)===JSON.stringify(a))&&s.push(a)}s.length===1?o.additionalProperties=s[0]:s.length>1&&(o.additionalProperties={allOf:s})}return o}function Mw(e){const t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(const o of Vm)if(o in e)return;const n=t.filter(o=>wd.some(s=>Array.isArray(o[s])));let r=null;if(!n.length)r=Qi(t);else{const o=n[0],s=wd.find(c=>Array.isArray(o[c]));if(Object.keys(o).length!==1)return;const i=t.filter(c=>c!==o),a=o[s].map(c=>Qi([...i,c]));if(a.some(c=>!c))return;r={[s]:a}}r&&(delete e.allOf,Qn(e,r))}function fn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=a=>{const c=e.seen.get(a);if(c.ref===null)return;const u=c.def??c.schema,l={...u},d=c.ref;if(c.ref=null,d){r(d);const p=e.seen.get(d),h=p.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Qn(u,h),Qn(u,l),a._zod.parent===d)for(const _ in u)_==="$ref"||_==="allOf"||_ in l||delete u[_];if(h.$ref&&p.def)for(const _ in u)_==="$ref"||_==="allOf"||_ in p.def&&JSON.stringify(u[_])===JSON.stringify(p.def[_])&&delete u[_]}const f=a._zod.parent;if(f&&f!==d){r(f);const p=e.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(const h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}e.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(const a of[...e.seen.entries()].reverse())r(a[0]);if(e.target!=="openapi-3.0")for(const a of e.seen.entries())Um(a[1].def??a[1].schema);for(const a of e.deferred)a();if(e.intersections.length){const a=new Map;for(const c of e.seen.values())for(const u of[c.schema,c.def]){const l=u?.allOf;if(!Array.isArray(l))continue;const d=a.get(l);d?d.push(u):a.set(l,[u])}for(const c of e.intersections)for(const u of a.get(c)??[])Mw(u)}}const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}Qn(o,n.defId?n.schema:n.def??n.schema);const s=e.metadataRegistry.get(t)?.id;s!==void 0&&o.id===s&&delete o.id;const i=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(const a of e.seen.entries()){const c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,Fe(i,c.defId,c.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{const a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:nr(t,"input",e.processors),output:nr(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Te(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Te(r.element,n);if(r.type==="set")return Te(r.valueType,n);if(r.type==="lazy")return Te(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault"||r.type==="catch")return Te(r.innerType,n);if(r.type==="intersection")return Te(r.left,n)||Te(r.right,n);if(r.type==="record"||r.type==="map")return Te(r.keyType,n)||Te(r.valueType,n);if(r.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:Te(r.in,n)||Te(r.out,n);if(r.type==="object"){for(const o in r.shape)if(Te(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(Te(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(Te(o,n))return!0;return!!(r.rest&&Te(r.rest,n))}return!1}const qm=(e,t={})=>n=>{const r=ln({...n,processors:t});return ne(e,r),dn(r,e),fn(r,e)},nr=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=ln({...o??{},target:s,io:t,processors:n});return ne(e,i),dn(i,e),fn(i,e)},pn=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},hn=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},kd=(e,t)=>{pn(e,"minimum",t),hn(e,"maximum",t)},Hm=(e,t)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(t)||e.multipleOf.push(t)},Bm=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},Km=(e,t)=>{e.mime=e.mime?e.mime.filter(n=>t.includes(n)):[...t]},Jm=(e,t)=>{e.format=t,t.includes("int")&&(e.isInt=!0)},$d=(e,t)=>pn(e,"minimum",t.minimum),Sd=(e,t)=>hn(e,"maximum",t.maximum),xd=e=>(t,n)=>{Jm(t,n.format);const[r,o]=e[n.format];pn(t,"minimum",r),hn(t,"maximum",o)},Lw={greater_than:(e,t)=>pn(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>hn(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>Hm(e,t.value),number_format:xd(ga),bigint_format:xd(ya),min_length:$d,max_length:Sd,length_equals:(e,t)=>kd(e,t.length),min_size:$d,max_size:Sd,size_equals:(e,t)=>kd(e,t.size),string_format:(e,t)=>{Jm(e,t.format),t.pattern&&Bm(e,t.pattern),(t.format==="base64"||t.format==="base64url")&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>Km(e,t.mime)};function _e(e){const t={},n=e._zod.def,r=e._zod.traits.has("$ZodCheck")?[e,...n.checks??[]]:n.checks??[];for(const s of r)Lw[s._zod.def.check]?.(t,s._zod.def);const o=e._zod.bag;o.minimum!==void 0&&pn(t,"minimum",o.minimum),o.exclusiveMinimum!==void 0&&pn(t,"exclusiveMinimum",o.exclusiveMinimum),o.maximum!==void 0&&hn(t,"maximum",o.maximum),o.exclusiveMaximum!==void 0&&hn(t,"exclusiveMaximum",o.exclusiveMaximum),o.multipleOf!==void 0&&Hm(t,o.multipleOf),o.format!==void 0&&(t.format??(t.format=o.format),o.format.includes("int")&&(t.isInt=!0)),o.mime&&Km(t,o.mime);for(const s of o.patterns??[])Bm(t,s);return t}const Rw={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Dw=new Map([[Wa,Qf],[ys,Xf]]),Wm=e=>Dw.get(e)??e,Gm=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:s,maximum:i,format:a,patterns:c,contentEncoding:u,laxFormat:l}=_e(e);if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Rw[a]??a,o.format===""&&delete o.format,(a==="time"||l)&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const d=[...c].map(Wm);d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Ym=(e,t,n,r)=>{const o=n,{minimum:s,maximum:i,multipleOf:a,exclusiveMaximum:c,exclusiveMinimum:u,isInt:l}=_e(e);o.type=l?"integer":"number";const d=typeof u=="number"&&u>=(s??Number.NEGATIVE_INFINITY),f=typeof c=="number"&&c<=(i??Number.POSITIVE_INFINITY),p=t.target==="draft-04"||t.target==="openapi-3.0";if(d?p?(o.minimum=u,o.exclusiveMinimum=!0):o.exclusiveMinimum=u:typeof s=="number"&&(o.minimum=s),f?p?(o.maximum=c,o.exclusiveMaximum=!0):o.exclusiveMaximum=c:typeof i=="number"&&(o.maximum=i),a){const h=new Set;for(const S of a)Number.isFinite(S)&&S!==0?h.add(Math.abs(S)):be(e,t,o,r,`A multipleOf divisor of ${S} cannot be represented in JSON Schema`);const[m,..._]=h;m!==void 0&&(o.multipleOf=m),_.length&&(o.allOf=[...o.allOf??[],..._.map(S=>({multipleOf:S}))])}},Qm=(e,t,n,r)=>{n.type="boolean"},Xm=(e,t,n,r)=>{be(e,t,n,r,"BigInt cannot be represented in JSON Schema")},eg=(e,t,n,r)=>{be(e,t,n,r,"Symbols cannot be represented in JSON Schema")},tg=(e,t,n,r)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},ng=(e,t,n,r)=>{be(e,t,n,r,"Undefined cannot be represented in JSON Schema")},rg=(e,t,n,r)=>{be(e,t,n,r,"Void cannot be represented in JSON Schema")},og=(e,t,n,r)=>{n.not={}},sg=(e,t,n,r)=>{},ig=(e,t,n,r)=>{},ag=(e,t,n,r)=>{be(e,t,n,r,"Date cannot be represented in JSON Schema")},cg=(e,t,n,r)=>{const o=e._zod.def,s=qo(o.entries);if(s.length===0){n.not={};return}s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},ug=(e,t,n,r)=>{const o=e._zod.def;if(o.values.length===0){n.not={};return}const s=[];for(const i of o.values)if(i===void 0){if(be(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof i=="bigint"){if(be(e,t,n,r,"BigInt literals cannot be represented in JSON Schema"))return;s.push(Number(i))}else s.push(i);if(s.length!==0)if(s.length===1){const i=s[0];n.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[i]:n.const=i}else s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),s.every(i=>typeof i=="boolean")&&(n.type="boolean"),s.every(i=>i===null)&&(n.type="null"),n.enum=s},lg=(e,t,n,r)=>{be(e,t,n,r,"NaN cannot be represented in JSON Schema")},dg=(e,t,n,r)=>{const o=n,s=e._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=s.source},fg=(e,t,n,r)=>{const o=n;o.type="string",o.format="binary",o.contentEncoding="binary";const{minimum:s,maximum:i,mime:a}=_e(e);s!==void 0&&(o.minLength=s),i!==void 0&&(o.maxLength=i),a&&(a.length===0?o.not={}:a.length===1?o.contentMediaType=a[0]:o.anyOf=a.map(c=>({contentMediaType:c})))},pg=(e,t,n,r)=>{n.type="boolean"},hg=(e,t,n,r)=>{be(e,t,n,r,"Custom types cannot be represented in JSON Schema")},mg=(e,t,n,r)=>{be(e,t,n,r,"Function types cannot be represented in JSON Schema")},gg=(e,t,n,r)=>{be(e,t,n,r,"Transforms cannot be represented in JSON Schema")},yg=(e,t,n,r)=>{be(e,t,n,r,"Map cannot be represented in JSON Schema")},_g=(e,t,n,r)=>{be(e,t,n,r,"Set cannot be represented in JSON Schema")},bg=(e,t,n,r)=>{const o=n,s=e._zod.def,{minimum:i,maximum:a}=_e(e);typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=ne(s.element,t,{...r,path:[...r.path,"items"]})};function rr(e){const t=e._zod.def;return t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform")?rr(t.out):t.type==="catch"?rr(t.innerType):e._zod.optin}const wg=(e,t,n,r)=>{const o=n,s=e._zod.def,i=s.shape;if(Object.getOwnPropertySymbols(i).length&&be(e,t,o,r,"Symbol keys cannot be represented in JSON Schema"))return;o.type="object",o.properties={};for(const u in i)Fe(o.properties,u,ne(i[u],t,{...r,path:[...r.path,"properties",u]}));const c=[];for(const u of Object.keys(i)){const l=s.shape[u];(t.io==="input"?rr(l)===void 0:l._zod.optout===void 0)&&c.push(u)}c.length>0&&(o.required=c),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=ne(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Uc=(e,t,n,r)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,c)=>ne(a,t,{...r,path:[...r.path,s?"oneOf":"anyOf",c]}));s?n.oneOf=i:n.anyOf=i},vg=(e,t,n,r)=>{const o=e._zod.def,s=ne(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=ne(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];n.allOf=c,t.intersections.push(c)},kg=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="array";const i=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",c=s.items.map((m,_)=>ne(m,t,{...r,path:[...r.path,i,_]})),u=s.rest?ne(s.rest,t,{...r,path:[...r.path,a,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null;let l=s.items.length;for(;l>0;){const m=s.items[l-1];if(!(t.io==="input"?rr(m)!==void 0:m._zod.optout==="optional"))break;l--}const d=s.items.length,f=!s.rest;t.target==="draft-2020-12"?(o.prefixItems=c,f?o.items=!1:u&&(o.items=u),l>0&&(o.minItems=l),f&&(o.maxItems=d)):t.target==="openapi-3.0"?(o.items={anyOf:c},u&&o.items.anyOf.push(u),l>0&&(o.minItems=l),f&&(o.maxItems=d)):(o.items=c,f?o.additionalItems=!1:u&&(o.additionalItems=u),l>0&&(o.minItems=l),f&&(o.maxItems=d));const{minimum:p,maximum:h}=_e(e);typeof p=="number"&&(o.minItems=p),typeof h=="number"&&(o.maxItems=h)};function Xi(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);const h=e.get(t)?.def;if(!h)return t;const m=Xi(e,h,n);return m===h?t:m}for(const h of["anyOf","oneOf"]){const m=t[h];if(!Array.isArray(m))continue;const _=m.map(S=>Xi(e,S,n));_.some((S,w)=>S!==m[w])&&(t={...t,[h]:_})}const r=Array.isArray(t.type)?t.type:[t.type],o=!r.includes("string")&&r.some(h=>h==="number"||h==="integer"),s=t.enum??(t.const!==void 0?[t.const]:void 0);if(!o&&!s?.some(h=>typeof h=="number"))return t;const{minimum:i,maximum:a,exclusiveMinimum:c,exclusiveMaximum:u,multipleOf:l,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(h=>typeof h=="number"?String(h):h):typeof p.const=="number"&&(p.const=String(p.const)),o&&(p.type="string",s||(p.pattern=(r.includes("number")?bn:La).source)),p}const ea=new WeakMap;function Zw(e){const t=new Map;for(const r of e.seen.values())r.def&&!t.has(r.schema)&&t.set(r.schema,r);const n=new Map;for(const r of ea.get(e)??[]){const o=e.seen.get(r),s=(o?.def??o?.schema)?.propertyNames;if(!s||s===!0||n.has(s))continue;const i=Xi(t,s,new Set);i!==s&&n.set(s,i)}if(n.size)for(const r of e.seen.values())for(const o of[r.schema,r.def]){const s=o&&n.get(o.propertyNames);s&&(o.propertyNames=s)}}const $g=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="object";const i=s.keyType,a=_e(i).patterns;if(s.mode==="loose"&&a&&a.size>0){const l=ne(s.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});o.patternProperties={};for(const d of a)Fe(o.patternProperties,Wm(d).source,l)}else{if(t.target==="draft-07"||t.target==="draft-2020-12"){o.propertyNames=ne(s.keyType,t,{...r,path:[...r.path,"propertyNames"]});let l=ea.get(t);l||(l=[],ea.set(t,l),t.deferred.push(()=>Zw(t))),l.push(e)}o.additionalProperties=ne(s.valueType,t,{...r,path:[...r.path,"additionalProperties"]})}const c=i._zod.values,u=t.io==="input"&&rr(s.valueType)!==void 0;if(c&&!s.partial&&!u){const l=[...c].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(o.required=l.map(String))}},Sg=(e,t,n,r)=>{const o=e._zod.def,s=ne(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},xg=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},Vc=Symbol();function Ig(e,t,n,r,o){let s=!1;const i=JSON.stringify(e,(a,c)=>typeof c!="bigint"?c:(s=!0,null));return s?(be(t,n,r,o,"BigInt defaults cannot be represented in JSON Schema"),Vc):JSON.parse(i)}const zg=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;const i=Ig(o.defaultValue,e,t,n,r);i!==Vc&&(n.default=i)},Tg=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);if(s.ref=o.innerType,t.io!=="input")return;const i=Ig(o.defaultValue,e,t,n,r);i!==Vc&&(n._prefault=i)},Cg=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{be(e,t,n,r,"Dynamic catch values are not supported in JSON Schema");return}n.default=i},Eg=(e,t,n,r)=>{const o=e._zod.def,s=o.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?o.out:o.in:o.out;ne(i,t,r);const a=t.seen.get(e);a.ref=i},Ag=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},Ng=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},qc=(e,t,n,r)=>{const o=e._zod.def;ne(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},Og=(e,t,n,r)=>{const o=e._zod.innerType;ne(o,t,r);const s=t.seen.get(e);s.ref=o},ta={string:Gm,number:Ym,boolean:Qm,bigint:Xm,symbol:eg,null:tg,undefined:ng,void:rg,never:og,any:sg,unknown:ig,date:ag,enum:cg,literal:ug,nan:lg,template_literal:dg,file:fg,success:pg,custom:hg,function:mg,transform:gg,map:yg,set:_g,array:bg,object:wg,union:Uc,intersection:vg,tuple:kg,record:$g,nullable:Sg,nonoptional:xg,default:zg,prefault:Tg,catch:Cg,pipe:Eg,readonly:Ag,promise:Ng,optional:qc,lazy:Og};function Hc(e,t){if("_idmap"in e){const r=e,o=ln({...t,processors:ta}),s={};for(const c of r._idmap.entries()){const[u,l]=c;ne(l,o)}const i={},a={registry:r,uri:t?.uri,defs:s};o.external=a;for(const c of r._idmap.entries()){const[u,l]=c;dn(o,l),Fe(i,u,fn(o,l))}if(Object.keys(s).length>0){const c=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[c]:s}}return{schemas:i}}const n=ln({...t,processors:ta});return ne(e,n),dn(n,e),fn(n,e)}class jw{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let n=t?.target??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=ln({processors:ta,target:n,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,n={path:[],schemaPath:[]}){return ne(t,this.ctx,n)}emit(t,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),this.ctx.sharedDefsExtractedFor=void 0,this.ctx.sharedEmitDoneFor=void 0,dn(this.ctx,t);const r=fn(this.ctx,t),{"~standard":o,...s}=r;return s}}const Fw=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Pg=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:yh,$ZodArray:kh,$ZodAsyncError:pt,$ZodBase64:sh,$ZodBase64URL:ih,$ZodBigInt:nc,$ZodBigIntFormat:ph,$ZodBoolean:tc,$ZodCIDRv4:rh,$ZodCIDRv6:oh,$ZodCUID:Hp,$ZodCUID2:Bp,$ZodCatch:qh,$ZodCheck:ue,$ZodCheckBigIntFormat:bp,$ZodCheckEndsWith:Ap,$ZodCheckGreaterThan:ja,$ZodCheckIncludes:Cp,$ZodCheckLengthEquals:xp,$ZodCheckLessThan:Za,$ZodCheckLowerCase:zp,$ZodCheckMaxLength:$p,$ZodCheckMaxSize:wp,$ZodCheckMimeType:Pp,$ZodCheckMinLength:Sp,$ZodCheckMinSize:vp,$ZodCheckMultipleOf:yp,$ZodCheckNumberFormat:_p,$ZodCheckOverwrite:Mp,$ZodCheckProperties:Op,$ZodCheckProperty:Np,$ZodCheckRegex:Ip,$ZodCheckSizeEquals:kp,$ZodCheckStartsWith:Ep,$ZodCheckStringFormat:br,$ZodCheckUpperCase:Tp,$ZodCodec:ac,$ZodCreditCard:ch,$ZodCustom:Yh,$ZodCustomStringFormat:dh,$ZodCyclicError:Qh,$ZodDate:vh,$ZodDefault:jh,$ZodDiscriminatedUnion:Ch,$ZodE164:ah,$ZodEmail:jp,$ZodEmoji:Vp,$ZodEncodeError:cs,$ZodEnum:Ph,$ZodError:Af,$ZodExactOptional:Dh,$ZodFile:Lh,$ZodFunction:Wh,$ZodGUID:Dp,$ZodIBAN:uh,$ZodIPv4:eh,$ZodIPv6:th,$ZodISODate:Yp,$ZodISODateTime:Gp,$ZodISODuration:Xp,$ZodISOTime:Qp,$ZodIntersection:Eh,$ZodJWT:lh,$ZodKSUID:Wp,$ZodLazy:cc,$ZodLiteral:Mh,$ZodMAC:nh,$ZodMap:Nh,$ZodNaN:Hh,$ZodNanoID:qp,$ZodNever:bh,$ZodNonOptional:Uh,$ZodNull:gh,$ZodNullable:Zh,$ZodNumber:ec,$ZodNumberFormat:fh,$ZodObject:xh,$ZodObjectJIT:Ih,$ZodOptional:sc,$ZodPipe:ic,$ZodPrefault:Fh,$ZodPreprocess:Bh,$ZodPromise:Gh,$ZodReadonly:Kh,$ZodRealError:Ue,$ZodRecord:Ah,$ZodRegistry:tm,$ZodSet:Oh,$ZodString:wr,$ZodStringFormat:re,$ZodSuccess:Vh,$ZodSymbol:hh,$ZodTemplateLiteral:Jh,$ZodTransform:Rh,$ZodTuple:oc,$ZodType:j,$ZodULID:Kp,$ZodURL:Up,$ZodUUID:Zp,$ZodUndefined:mh,$ZodUnion:_s,$ZodUnknown:_h,$ZodVoid:wh,$ZodXID:Jp,$ZodXor:zh,$brand:ka,$constructor:y,$input:pc,$output:fc,Doc:Fa,INVALID:Ae,JSONSchema:Fw,JSONSchemaGenerator:jw,NEVER:va,TimePrecision:Rc,URL_BAD_FORMAT:Va,URL_UNPARSEABLE:er,ZodCompileAsyncError:_t,ZodCompileUnsupportedError:G,_any:Im,_array:Om,_base64:Oc,_base64url:Pc,_bigint:bm,_boolean:ym,_catch:Cw,_check:Dm,_cidrv4:Ac,_cidrv6:Nc,_coercedBigint:wm,_coercedBoolean:_m,_coercedDate:Am,_coercedNumber:dm,_coercedString:im,_creditCard:cm,_cuid:Sc,_cuid2:xc,_custom:Mm,_date:Em,_decode:Ia,_decodeAsync:Ta,_default:Iw,_discriminatedUnion:hw,_e164:Mc,_email:gc,_emoji:kc,_encode:xa,_encodeAsync:za,_endsWith:Ir,_enum:ww,_file:Pm,_float32:pm,_float64:hm,_gt:wt,_gte:je,_guid:yc,_iban:um,_includes:Sr,_int:fm,_int32:mm,_int64:vm,_intersection:mw,_ipv4:Cc,_ipv6:Ec,_isoDate:Zc,_isoDateTime:Dc,_isoDuration:Fc,_isoTime:jc,_jwt:Lc,_ksuid:Tc,_lazy:Ow,_length:kn,_literal:kw,_lowercase:kr,_lt:bt,_lte:Ze,_mac:am,_map:_w,_max:Ze,_maxLength:vn,_maxSize:Jt,_mime:Tr,_min:je,_minLength:Nt,_minSize:vt,_multipleOf:qt,_nan:Nm,_nanoid:$c,_nativeEnum:vw,_negative:Is,_never:Tm,_nonnegative:Ts,_nonoptional:zw,_nonpositive:zs,_normalize:Cr,_null:xm,_nullable:xw,_number:lm,_optional:Sw,_overwrite:at,_parse:pr,_parseAsync:hr,_pipe:Ew,_positive:xs,_promise:Pw,_properties:zr,_property:Cs,_readonly:Aw,_record:yw,_refine:Lm,_regex:vr,_safeDecode:Ea,_safeDecodeAsync:Na,_safeEncode:Ca,_safeEncodeAsync:Aa,_safeParse:mr,_safeParseAsync:gr,_set:bw,_size:wn,_slugify:Or,_startsWith:xr,_string:sm,_stringFormat:$n,_stringbool:Fm,_success:Tw,_superRefine:Rm,_symbol:$m,_templateLiteral:Nw,_toLowerCase:Ar,_toUpperCase:Nr,_transform:$w,_trim:Er,_tuple:gw,_uint32:gm,_uint64:km,_ulid:Ic,_undefined:Sm,_union:fw,_unknown:zm,_uppercase:$r,_url:Ss,_uuid:_c,_uuidv4:bc,_uuidv6:wc,_uuidv7:vc,_void:Cm,_xid:zc,_xor:pw,base64Charset:Wa,base64urlCharset:ys,canParseURL:qa,clone:ce,compile:hc,compileFn:ks,config:ye,createStandardJSONSchemaMethod:nr,createToJSONSchemaMethod:qm,decode:S_,decodeAsync:I_,describe:Zm,encode:$_,encodeAsync:x_,extractDefs:dn,finalize:fn,flattenError:us,formatError:ls,getDiscriminatedOption:rc,globalConfig:Ee,globalRegistry:Re,handleUnrepresentable:be,initializeContext:ln,isBackEdge:lc,isRecursiveSchema:uc,isValidBase64:gs,isValidBase64URL:Ga,isValidCIDRv6:Ja,isValidCreditCard:Ya,isValidIBAN:Qa,isValidIPv6:ms,isValidJWT:Xa,locales:dc,memoizer:bs,mergeValues:tr,meta:jm,parse:Hi,parseAsync:Bi,parseURLObject:Fp,prettifyError:Sa,process:ne,processSchema:ne,regexes:hs,registry:ws,safeDecode:T_,safeDecodeAsync:E_,safeEncode:z_,safeEncodeAsync:C_,safeParse:Of,safeParseAsync:b_,standardProps:Ua,stripTabAndNewline:Wo,toDotPath:Nf,toJSONSchema:Hc,toZod:ns,treeifyError:$a,urlHostnameOk:Ba,urlProtocolOk:Ka,util:wa,validate:fs,validateAsync:ps,validateURL:Ha,version:Lp,withParser:vs},Symbol.toStringTag,{value:"Module"})),Id=Symbol("z.visit/resolving");function Bc(e,t){const n=typeof t=="function"?t:(i,a)=>{const c=t[i._zod.def.type];return c?c(i,a):i},r=new Map;function o(i){const a=r.get(i);if(a===Id)return new cc({type:"lazy",getter:()=>r.get(i)});if(a!==void 0)return a;r.set(i,Id);const c=s(i),u=n(c,c!==i);return r.set(i,u),u}function s(i){const a=i._zod.def;switch(a.type){case"object":{const u=a.shape,l=Object.keys(u);let d=!1;const f={};for(const h of l){const m=o(u[h]);m!==u[h]&&(d=!0),f[h]=m}let p=a.catchall;return a.catchall&&(p=o(a.catchall),p!==a.catchall&&(d=!0)),d?ce(i,{...a,shape:f,catchall:p}):i}case"array":{const u=o(a.element);return u===a.element?i:ce(i,{...a,element:u})}case"tuple":{const u=a.items;let l=!1;const d=[];for(const p of u){const h=o(p);h!==p&&(l=!0),d.push(h)}let f=a.rest;return a.rest&&(f=o(a.rest),f!==a.rest&&(l=!0)),l?ce(i,{...a,items:d,rest:f}):i}case"record":case"map":{const u=o(a.keyType),l=o(a.valueType);return u===a.keyType&&l===a.valueType?i:ce(i,{...a,keyType:u,valueType:l})}case"set":{const u=o(a.valueType);return u===a.valueType?i:ce(i,{...a,valueType:u})}case"union":{const u=a.options;let l=!1;const d=[];for(const f of u){const p=o(f);p!==f&&(l=!0),d.push(p)}return l?ce(i,{...a,options:d}):i}case"intersection":{const u=o(a.left),l=o(a.right);return u===a.left&&l===a.right?i:ce(i,{...a,left:u,right:l})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{const u=o(a.innerType);return u===a.innerType?i:ce(i,{...a,innerType:u})}case"pipe":{const u=o(a.in),l=o(a.out);return u===a.in&&l===a.out?i:ce(i,{...a,in:u,out:l})}case"function":{const u=o(a.input),l=o(a.output);return u===a.input&&l===a.output?i:ce(i,{...a,input:u,output:l})}case"lazy":{const u=a.getter,{_cachedInner:l,...d}=a;return ce(i,{...d,getter:()=>o(u())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return i;default:return i}}return o(e)}function Kc(e){return!!e._zod}function Mg(e,t){return Kc(e)?Of(e,t):e.safeParse(t)}function Uw(e){if(!e)return;let t;if(Kc(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Vw(e){if(Kc(e)){const s=e._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}const n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}const r=e.value;if(r!==void 0)return r}const qw=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(s){return e[s]??null}const n={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",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",currency_code:"currency code",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};function o(s,i){return s==="number"&&typeof i=="number"&&!Number.isFinite(i)?String(i):r[s]??s}return s=>{switch(s.code){case"invalid_type":{const i=o(s.expected),a=xf(s.input),c=o(a,s.input);return`Invalid input: expected ${i}, received ${c}`}case"invalid_value":return s.values.length===1?`Invalid input: expected ${ma(s.values[0])}`:`Invalid option: expected one of ${Ui(s.values,"|")}`;case"too_big":{const i=s.exact?"exactly ":s.inclusive?"<=":"<",a=t(s.origin);return a?`Too big: expected ${s.origin??"value"} to have ${i}${s.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${s.origin??"value"} to be ${i}${s.maximum.toString()}`}case"too_small":{const i=s.exact?"exactly ":s.inclusive?">=":">",a=t(s.origin);return a?`Too small: expected ${s.origin} to have ${i}${s.minimum.toString()} ${a.unit}`:`Too small: expected ${s.origin} to be ${i}${s.minimum.toString()}`}case"invalid_format":{const i=s;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${s.divisor}`;case"unrecognized_keys":return`Unrecognized key${s.keys.length>1?"s":""}: ${Ui(s.keys,", ")}`;case"invalid_key":return`Invalid key in ${s.origin}`;case"invalid_union":return s.options&&Array.isArray(s.options)&&s.options.length>0?`Invalid discriminator value. Expected ${s.options.map(a=>`'${a}'`).join(" | ")}`:s.inclusive===!1?"Invalid input: more than one option matched":"Invalid input";case"invalid_element":return`Invalid value in ${s.origin}`;default:return"Invalid input"}}};function Hw(){return{localeError:qw()}}const Bw=Object.freeze(Object.defineProperty({__proto__:null,endsWith:Ir,gt:wt,gte:je,includes:Sr,length:kn,lowercase:kr,lt:bt,lte:Ze,maxLength:vn,maxSize:Jt,mime:Tr,minLength:Nt,minSize:vt,multipleOf:qt,negative:Is,nonnegative:Ts,nonpositive:zs,normalize:Cr,overwrite:at,positive:xs,properties:zr,property:Cs,regex:vr,size:wn,slugify:Or,startsWith:xr,toLowerCase:Ar,toUpperCase:Nr,trim:Er,uppercase:$r},Symbol.toStringTag,{value:"Module"})),zd=new WeakSet([Object.prototype,Error.prototype]);function Oo(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){const r=n(this);return Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0})}})}const Lg=(e,t)=>{Af.init(e,t),e.name="ZodError";const n=Object.getPrototypeOf(e);zd.has(n)||(zd.add(n),Oo(n,"format",r=>o=>ls(r,o)),Oo(n,"flatten",r=>o=>us(r,o)),Oo(n,"addIssue",r=>o=>{r.issues.push(o),r.message=JSON.stringify(r.issues,Ho,2)}),Oo(n,"addIssues",r=>o=>{r.issues.push(...o),r.message=JSON.stringify(r.issues,Ho,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},Rg=y("ZodError",Lg),Oe=y("ZodError",Lg,void 0,{Parent:Error}),Jc=pr(Oe),Wc=hr(Oe),Gc=mr(Oe),Yc=gr(Oe),Qc=xa(Oe),Xc=Ia(Oe),eu=za(Oe),tu=Ta(Oe),nu=Ca(Oe),ru=Ea(Oe),ou=Aa(Oe),su=Na(Oe);function Kw(){Ee.localeError||ye(Hw())}function Wt(){Ee.memoizer||ye({memoizer:bs()})}const V=y("ZodType",(e,t)=>(Kw(),j.init(e,t),e.def=t,e.type=t.type,e),{check(...e){const t=this.def;return this.clone(xe(t,{checks:[...t.checks??[],...e.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ce(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(yi(e,t))},superRefine(e,t){return this.check(_i(e,t))},overwrite(e){return this.check(at(e))},optional(){return se(this)},exactOptional(){return Ys(this)},nullable(){return gn(this)},nullish(){return se(gn(this))},nonoptional(e){return ri(this,e)},array(){return D(this)},or(e){return H([this,e])},and(e){return Mn(this,e)},transform(e){return sr(this,ro(e))},default(e){return ei(this,e)},prefault(e){return ni(this,e)},catch(e){return ii(this,e)},pipe(e){return sr(this,e)},readonly(){return li(this)},describe(e){const t=this.clone();return Re.add(t,{description:e}),t},meta(...e){if(e.length===0)return Re.get(this);const t=this.clone();return Re.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return as(this,"~standard",{...Ua(this),jsonSchema:{input:nr(this,"input"),output:nr(this,"output")}})},set"~standard"(e){yt(this,"~standard",e)},parse:function e(t,n){return Jc(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Wc(this,t,n,{callee:e})},safeParse(e,t){return Gc(this,e,t)},async safeParseAsync(e,t){return Yc(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){yt(this,"spa",e)},validate(e,t){return fs(this,e,t)},validateAsync(e,t){return ps(this,e,t)},encode:function e(t,n){return Qc(this,t,n,{callee:e})},decode:function e(t,n){return Xc(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await eu(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await tu(this,t,n,{callee:e})},safeEncode(e,t){return nu(this,e,t)},safeDecode(e,t){return ru(this,e,t)},async safeEncodeAsync(e,t){return ou(this,e,t)},async safeDecodeAsync(e,t){return su(this,e,t)},toJSONSchema(e){return qm(this,{})(e)},get description(){return Re.get(this)?.description},get _def(){return this._zod.def}}),Pr=y("_ZodString",(e,t)=>{wr.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Gm(e,n,r)},fr({format:e=>_e(e).format??null,minLength:e=>_e(e).minimum??null,maxLength:e=>_e(e).maximum??null},{regex(...e){return this.check(vr(...e))},includes(...e){return this.check(Sr(...e))},startsWith(...e){return this.check(xr(...e))},endsWith(...e){return this.check(Ir(...e))},min(...e){return this.check(Nt(...e))},max(...e){return this.check(vn(...e))},length(...e){return this.check(kn(...e))},nonempty(...e){return this.check(Nt(1,...e))},lowercase(e){return this.check(kr(e))},uppercase(e){return this.check($r(e))},trim(){return this.check(Er())},normalize(...e){return this.check(Cr(...e))},toLowerCase(){return this.check(Ar())},toUpperCase(){return this.check(Nr())},slugify(){return this.check(Or())}})),Sn=y("ZodString",(e,t)=>{wr.init(e,t),Pr.init(e,t)},{email(e){return this.check(gc(Mr,e))},url(e){return this.check(Ss(Cn,e))},jwt(e){return this.check(Lc(Yr,e))},emoji(e){return this.check(kc(Rr,e))},guid(e){return this.check(yc(Lr,e))},uuid(e){return this.check(_c(tt,e))},uuidv4(e){return this.check(bc(tt,e))},uuidv6(e){return this.check(wc(tt,e))},uuidv7(e){return this.check(vc(tt,e))},nanoid(e){return this.check($c(Dr,e))},cuid(e){return this.check(Sc(Zr,e))},cuid2(e){return this.check(xc(jr,e))},ulid(e){return this.check(Ic(Fr,e))},base64(e){return this.check(Oc(Jr,e))},base64url(e){return this.check(Pc(Wr,e))},xid(e){return this.check(zc(Ur,e))},ksuid(e){return this.check(Tc(Vr,e))},ipv4(e){return this.check(Cc(qr,e))},ipv6(e){return this.check(Ec(Hr,e))},cidrv4(e){return this.check(Ac(Br,e))},cidrv6(e){return this.check(Nc(Kr,e))},e164(e){return this.check(Mc(Gr,e))},datetime(e){return this.check(Dc(xn,e))},date(e){return this.check(Zc(In,e))},time(e){return this.check(jc(zn,e))},duration(e){return this.check(Fc(Tn,e))}});function b(e){return sm(Sn,e)}const ee=y("ZodStringFormat",(e,t)=>{re.init(e,t),Pr.init(e,t)}),xn=y("ZodISODateTime",(e,t)=>{Gp.init(e,t),ee.init(e,t)}),In=y("ZodISODate",(e,t)=>{Yp.init(e,t),ee.init(e,t)}),zn=y("ZodISOTime",(e,t)=>{Qp.init(e,t),ee.init(e,t)}),Tn=y("ZodISODuration",(e,t)=>{Xp.init(e,t),ee.init(e,t)}),Mr=y("ZodEmail",(e,t)=>{jp.init(e,t),ee.init(e,t)});function iu(e){return gc(Mr,e)}const Lr=y("ZodGUID",(e,t)=>{Dp.init(e,t),ee.init(e,t)});function au(e){return yc(Lr,e)}const tt=y("ZodUUID",(e,t)=>{Zp.init(e,t),ee.init(e,t)});function cu(e){return _c(tt,e)}function uu(e){return bc(tt,e)}function lu(e){return wc(tt,e)}function du(e){return vc(tt,e)}const Cn=y("ZodURL",(e,t)=>{Up.init(e,t),ee.init(e,t)});function fu(e){return Ss(Cn,e)}function pu(e){return Ss(Cn,{protocol:Oa,hostname:tp,...I(e)})}const Rr=y("ZodEmoji",(e,t)=>{Vp.init(e,t),ee.init(e,t)});function hu(e){return kc(Rr,e)}const Dr=y("ZodNanoID",(e,t)=>{qp.init(e,t),ee.init(e,t)});function mu(e){return $c(Dr,e)}const Zr=y("ZodCUID",(e,t)=>{Hp.init(e,t),ee.init(e,t)});function gu(e){return Sc(Zr,e)}const jr=y("ZodCUID2",(e,t)=>{Bp.init(e,t),ee.init(e,t)});function yu(e){return xc(jr,e)}const Fr=y("ZodULID",(e,t)=>{Kp.init(e,t),ee.init(e,t)});function _u(e){return Ic(Fr,e)}const Ur=y("ZodXID",(e,t)=>{Jp.init(e,t),ee.init(e,t)});function bu(e){return zc(Ur,e)}const Vr=y("ZodKSUID",(e,t)=>{Wp.init(e,t),ee.init(e,t)});function wu(e){return Tc(Vr,e)}const qr=y("ZodIPv4",(e,t)=>{eh.init(e,t),ee.init(e,t)});function vu(e){return Cc(qr,e)}const Es=y("ZodMAC",(e,t)=>{nh.init(e,t),ee.init(e,t)});function ku(e){return am(Es,e)}const Hr=y("ZodIPv6",(e,t)=>{th.init(e,t),ee.init(e,t)});function $u(e){return Ec(Hr,e)}const Br=y("ZodCIDRv4",(e,t)=>{rh.init(e,t),ee.init(e,t)});function Su(e){return Ac(Br,e)}const Kr=y("ZodCIDRv6",(e,t)=>{oh.init(e,t),ee.init(e,t)});function xu(e){return Nc(Kr,e)}const Jr=y("ZodBase64",(e,t)=>{sh.init(e,t),ee.init(e,t)});function Iu(e){return Oc(Jr,e)}const Wr=y("ZodBase64URL",(e,t)=>{ih.init(e,t),ee.init(e,t)});function zu(e){return Pc(Wr,e)}const Gr=y("ZodE164",(e,t)=>{ah.init(e,t),ee.init(e,t)});function Tu(e){return Mc(Gr,e)}const As=y("ZodCreditCard",(e,t)=>{ch.init(e,t),ee.init(e,t)});function Cu(e){return cm(As,e)}const Ns=y("ZodIBAN",(e,t)=>{uh.init(e,t),ee.init(e,t)});function Eu(e){return um(Ns,e)}const Yr=y("ZodJWT",(e,t)=>{lh.init(e,t),ee.init(e,t)});function Au(e){return Lc(Yr,e)}const Ot=y("ZodCustomStringFormat",(e,t)=>{dh.init(e,t),ee.init(e,t)});function Nu(e,t,n={}){return $n(Ot,e,t,n)}function Ou(e){return $n(Ot,"hostname",ep,e)}function Pu(e){return $n(Ot,"hex",gp,e)}function Mu(e){return $n(Ot,"currency_code",rp,e)}function Lu(e,t){const n=t?.enc??"hex",r=`${e}_${n}`,o=hs[r];if(!o)throw new Error(`Unrecognized hash format: ${r}`);return $n(Ot,r,o,t)}const En=y("ZodNumber",(e,t)=>{ec.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ym(e,n,r,o),e.isFinite=!0},fr({minValue:e=>{const{minimum:t,exclusiveMinimum:n}=_e(e);return Math.max(t??Number.NEGATIVE_INFINITY,n??Number.NEGATIVE_INFINITY)},maxValue:e=>{const{maximum:t,exclusiveMaximum:n}=_e(e);return Math.min(t??Number.POSITIVE_INFINITY,n??Number.POSITIVE_INFINITY)},isInt:e=>{const{isInt:t,multipleOf:n}=_e(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>_e(e).format??null},{gt(e,t){return this.check(wt(e,t))},gte(e,t){return this.check(je(e,t))},min(e,t){return this.check(je(e,t))},lt(e,t){return this.check(bt(e,t))},lte(e,t){return this.check(Ze(e,t))},max(e,t){return this.check(Ze(e,t))},int(e){return this.check(or(e))},safe(e){return this.check(or(e))},positive(e){return this.check(wt(0,e))},nonnegative(e){return this.check(je(0,e))},negative(e){return this.check(bt(0,e))},nonpositive(e){return this.check(Ze(0,e))},multipleOf(e,t){return this.check(qt(e,t))},step(e,t){return this.check(qt(e,t))},finite(){return this}}));function U(e){return lm(En,e)}const Pt=y("ZodNumberFormat",(e,t)=>{fh.init(e,t),En.init(e,t)});function or(e){return fm(Pt,e)}function Ru(e){return pm(Pt,e)}function Du(e){return hm(Pt,e)}function Zu(e){return mm(Pt,e)}function ju(e){return gm(Pt,e)}const An=y("ZodBoolean",(e,t)=>{tc.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Qm(e,n,r)});function X(e){return ym(An,e)}const Nn=y("ZodBigInt",(e,t)=>{nc.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Xm(e,n,r,o)},fr({minValue:e=>_e(e).minimum??null,maxValue:e=>_e(e).maximum??null,format:e=>_e(e).format??null},{gte(e,t){return this.check(je(e,t))},min(e,t){return this.check(je(e,t))},gt(e,t){return this.check(wt(e,t))},lt(e,t){return this.check(bt(e,t))},lte(e,t){return this.check(Ze(e,t))},max(e,t){return this.check(Ze(e,t))},positive(e){return this.check(wt(BigInt(0),e))},negative(e){return this.check(bt(BigInt(0),e))},nonpositive(e){return this.check(Ze(BigInt(0),e))},nonnegative(e){return this.check(je(BigInt(0),e))},multipleOf(e,t){return this.check(qt(e,t))}}));function Fu(e){return bm(Nn,e)}const Qr=y("ZodBigIntFormat",(e,t)=>{ph.init(e,t),Nn.init(e,t)});function Uu(e){return vm(Qr,e)}function Vu(e){return km(Qr,e)}const Os=y("ZodSymbol",(e,t)=>{hh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>eg(e,n,r,o)});function qu(e){return $m(Os,e)}const Ps=y("ZodUndefined",(e,t)=>{mh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ng(e,n,r,o)});function mn(e){return Sm(Ps,e)}const Ms=y("ZodNull",(e,t)=>{gh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>tg(e,n,r)});function Xr(e){return xm(Ms,e)}const Ls=y("ZodAny",(e,t)=>{yh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>sg()});function eo(){return Im(Ls)}const Rs=y("ZodUnknown",(e,t)=>{_h.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ig()});function Q(){return zm(Rs)}const Ds=y("ZodNever",(e,t)=>{bh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>og(e,n,r)});function Ht(e){return Tm(Ds,e)}const Zs=y("ZodVoid",(e,t)=>{wh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>rg(e,n,r,o)});function Hu(e){return Cm(Zs,e)}const to=y("ZodDate",(e,t)=>{vh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ag(e,n,r,o),e.min=(n,r)=>e.check(je(n,r)),e.max=(n,r)=>e.check(Ze(n,r))},fr({minDate:e=>{const{minimum:t}=_e(e);return t?new Date(t):null},maxDate:e=>{const{maximum:t}=_e(e);return t?new Date(t):null}},{}));function Bu(e){return Em(to,e)}const js=y("ZodArray",(e,t)=>{Wt(),kh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>bg(e,n,r,o),e.element=t.element},{min(e,t){return this.check(Nt(e,t))},nonempty(e){return this.check(Nt(1,e))},max(e,t){return this.check(vn(e,t))},length(e,t){return this.check(kn(e,t))},unwrap(){return this.element}});function D(e,t){return Om(js,e,t)}function Ku(e){const t=e._zod.def.shape;return ve(Object.keys(t))}const On=y("ZodObject",(e,t)=>{Wt(),Ih.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>wg(e,n,r,o),Cf(e,"shape",n=>n._zod.def.shape,!1)},{keyof(){return ve(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(xe(this._zod.def,{catchall:e}))},passthrough(){return this.clone(xe(this._zod.def,{catchall:Q()}))},loose(){return this.clone(xe(this._zod.def,{catchall:Q()}))},strict(){return this.clone(xe(this._zod.def,{catchall:Ht()}))},strip(){return this.clone(xe(this._zod.def,{catchall:void 0}))},extend(e){return bf(this,e)},safeExtend(e){return vf(this,e)},merge(e){return kf(this,e)},pick(e){return yf(this,e)},omit(e){return _f(this,e)},partial(...e){return Vi(Ln,this,e[0])},exactPartial(...e){return Vi(oo,this,e[0],"exactPartial")},required(...e){return $f(so,this,e[0])}});function k(e,t){const n={type:"object",shape:e??{},...I(t)};return new On(n)}function Ju(e,t){return new On({type:"object",shape:e,catchall:Ht(),...I(t)})}function we(e,t){return new On({type:"object",shape:e,catchall:Q(),...I(t)})}const Pn=y("ZodUnion",(e,t)=>{_s.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Uc(e,n,r,o),e.options=t.options});function H(e,t){return new Pn({type:"union",options:e,...I(t)})}const Fs=y("ZodXor",(e,t)=>{Pn.init(e,t),zh.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Uc(e,n,r,o),e.options=t.options});function Wu(e,t){return new Fs({type:"union",options:e,inclusive:!1,...I(t)})}const Us=y("ZodDiscriminatedUnion",(e,t)=>{Pn.init(e,t),Ch.init(e,t)});function no(e,t,n){return new Us({type:"union",options:t,discriminator:e,...I(n)})}const Vs=y("ZodIntersection",(e,t)=>{Eh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>vg(e,n,r,o)});function Mn(e,t){return new Vs({type:"intersection",left:e,right:t})}const qs=y("ZodTuple",(e,t)=>{Wt(),oc.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>kg(e,n,r,o)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){const e=this._zod.def;if(e.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...e,items:e.items.map(t=>new Ln({type:"optional",innerType:t}))})}});function Hs(e,t,n){const r=t instanceof j,o=r?n:t,s=r?t:null;return new qs({type:"tuple",items:e,rest:s,...I(o)})}const Bt=y("ZodRecord",(e,t)=>{Wt(),Ah.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>$g(e,n,r,o),e.keyType=t.keyType,e.valueType=t.valueType});function J(e,t,n){return!t||!t._zod?new Bt({type:"record",keyType:b(),valueType:e,...I(t)}):new Bt({type:"record",keyType:e,valueType:t,...I(n)})}function Gu(e,t,n){return new Bt({type:"record",keyType:e,valueType:t,...I(n),partial:!0})}function Yu(e,t,n){return new Bt({type:"record",keyType:e,valueType:t,mode:"loose",...I(n)})}const Bs=y("ZodMap",(e,t)=>{Wt(),Nh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>yg(e,n,r,o),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...n)=>e.check(vt(...n)),e.nonempty=n=>e.check(vt(1,n)),e.max=(...n)=>e.check(Jt(...n)),e.size=(...n)=>e.check(wn(...n))});function Qu(e,t,n){return new Bs({type:"map",keyType:e,valueType:t,...I(n)})}const Ks=y("ZodSet",(e,t)=>{Wt(),Oh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>_g(e,n,r,o),e.min=(...n)=>e.check(vt(...n)),e.nonempty=n=>e.check(vt(1,n)),e.max=(...n)=>e.check(Jt(...n)),e.size=(...n)=>e.check(wn(...n))});function Xu(e,t){return new Ks({type:"set",valueType:e,...I(t)})}const Kt=y("ZodEnum",(e,t)=>{Ph.init(e,t),V.init(e,t),e._zod.processJSONSchema=(r,o,s)=>cg(e,r,o),e.enum=t.entries,e.options=[...e._zod.values];const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const s={};for(const i of r)if(n.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Kt({...t,checks:[],...I(o),entries:s})},e.exclude=(r,o)=>{const s={...t.entries};for(const i of r)if(n.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Kt({...t,checks:[],...I(o),entries:s})}});function ve(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Kt({type:"enum",entries:n,...I(t)})}function el(e,t){return new Kt({type:"enum",entries:e,...I(t)})}const Js=y("ZodLiteral",(e,t)=>{Mh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ug(e,n,r,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function v(e,t){return new Js({type:"literal",values:Array.isArray(e)?e:[e],...I(t)})}const Ws=y("ZodFile",(e,t)=>{Lh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>fg(e,n,r),e.min=(n,r)=>e.check(vt(n,r)),e.max=(n,r)=>e.check(Jt(n,r)),e.mime=(n,r)=>e.check(Tr(Array.isArray(n)?n:[n],r))});function tl(e){return Pm(Ws,e)}const Gs=y("ZodTransform",(e,t)=>{Wt(),Rh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>gg(e,n,r,o),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new cs(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(cn(s,n.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),"input"in i||(i.input=n.value),i.inst??(i.inst=e),n.issues.push(cn(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function ro(e){return new Gs({type:"transform",transform:e})}const Ln=y("ZodOptional",(e,t)=>{sc.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>qc(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function se(e){return new Ln({type:"optional",innerType:e})}const oo=y("ZodExactOptional",(e,t)=>{Dh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>qc(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Ys(e){return new oo({type:"optional",innerType:e})}const Qs=y("ZodNullable",(e,t)=>{Zh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Sg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function gn(e){return new Qs({type:"nullable",innerType:e})}function nl(e){return se(gn(e))}const Xs=y("ZodDefault",(e,t)=>{jh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>zg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ei(e,t){return new Xs({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():lr(t)}})}const ti=y("ZodPrefault",(e,t)=>{Fh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Tg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function ni(e,t){return new ti({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():lr(t)}})}const so=y("ZodNonOptional",(e,t)=>{Uh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>xg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function ri(e,t){return new so({type:"nonoptional",innerType:e,...I(t)})}const oi=y("ZodSuccess",(e,t)=>{Vh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>pg(e,n,r),e.unwrap=()=>e._zod.def.innerType});function rl(e){return new oi({type:"success",innerType:e})}const si=y("ZodCatch",(e,t)=>{qh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Cg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ii(e,t){return new si({type:"catch",innerType:e,catchValue:typeof t=="function"?t:ba(t)})}const ai=y("ZodNaN",(e,t)=>{Hh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>lg(e,n,r,o)});function ol(e){return Nm(ai,e)}const Rn=y("ZodPipe",(e,t)=>{ic.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Eg(e,n,r,o),e.in=t.in,e.out=t.out});function sr(e,t){return new Rn({type:"pipe",in:e,out:t})}const Dn=y("ZodCodec",(e,t)=>{Rn.init(e,t),ac.init(e,t)});function sl(e,t,n){return new Dn({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}function il(e){const t=e._zod.def;return new Dn({type:"pipe",in:t.out,out:t.in,transform:t.reverseTransform,reverseTransform:t.transform})}const ci=y("ZodPreprocess",(e,t)=>{Rn.init(e,t),Bh.init(e,t)}),ui=y("ZodReadonly",(e,t)=>{Kh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ag(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function li(e){return new ui({type:"readonly",innerType:e})}const di=y("ZodTemplateLiteral",(e,t)=>{Jh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>dg(e,n,r)});function al(e,t){return new di({type:"template_literal",parts:e,...I(t)})}const fi=y("ZodLazy",(e,t)=>{cc.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Og(e,n,r,o),e.unwrap=()=>e._zod.def.getter()});function pi(e){return new fi({type:"lazy",getter:e})}const hi=y("ZodPromise",(e,t)=>{Gh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ng(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function cl(e){return new hi({type:"promise",innerType:e})}const mi=y("ZodFunction",(e,t)=>{Wh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>mg(e,n,r,o)});function yn(e){return new mi({type:"function",input:Array.isArray(e?.input)?Hs(e?.input):e?.input??D(Q()),output:e?.output??Q()})}const Zn=y("ZodCustom",(e,t)=>{Yh.init(e,t),V.init(e,t),e._zod.processJSONSchema=(n,r,o)=>hg(e,n,r,o)});function ul(e){const t=new ue({check:"custom"});return t._zod.check=e,t}function gi(e,t){return Mm(Zn,e??(()=>!0),t)}function yi(e,t={}){return Lm(Zn,e,t)}function _i(e,t){return Rm(e,t)}const ll=Zm,dl=jm,bi=y("ZodInstanceOf",(e,t)=>{Zn.init(e,t)},{properties(e,t){return this.check(zr(e,t))}});function fl(e,t={}){const n=new bi({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...I(t)});return n._zod.bag.Class=e,n._zod.check=r=>{r.value instanceof e||r.issues.push({code:"invalid_type",expected:e.name,input:r.value,inst:n,path:[...n._zod.def.path??[]]})},n}const pl=(...e)=>Fm({Codec:Dn,Boolean:An,String:Sn},...e);function hl(e){const t=pi(()=>H([b(e),U(),X(),Xr(),D(t),J(b(),t)]));return t}function io(e,t){return new ci({type:"pipe",in:ro(e),out:t})}const Jw=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:Ls,ZodArray:js,ZodBase64:Jr,ZodBase64URL:Wr,ZodBigInt:Nn,ZodBigIntFormat:Qr,ZodBoolean:An,ZodCIDRv4:Br,ZodCIDRv6:Kr,ZodCUID:Zr,ZodCUID2:jr,ZodCatch:si,ZodCodec:Dn,ZodCreditCard:As,ZodCustom:Zn,ZodCustomStringFormat:Ot,ZodDate:to,ZodDefault:Xs,ZodDiscriminatedUnion:Us,ZodE164:Gr,ZodEmail:Mr,ZodEmoji:Rr,ZodEnum:Kt,ZodExactOptional:oo,ZodFile:Ws,ZodFunction:mi,ZodGUID:Lr,ZodIBAN:Ns,ZodIPv4:qr,ZodIPv6:Hr,ZodISODate:In,ZodISODateTime:xn,ZodISODuration:Tn,ZodISOTime:zn,ZodInstanceOf:bi,ZodIntersection:Vs,ZodJWT:Yr,ZodKSUID:Vr,ZodLazy:fi,ZodLiteral:Js,ZodMAC:Es,ZodMap:Bs,ZodNaN:ai,ZodNanoID:Dr,ZodNever:Ds,ZodNonOptional:so,ZodNull:Ms,ZodNullable:Qs,ZodNumber:En,ZodNumberFormat:Pt,ZodObject:On,ZodOptional:Ln,ZodPipe:Rn,ZodPrefault:ti,ZodPreprocess:ci,ZodPromise:hi,ZodReadonly:ui,ZodRecord:Bt,ZodSet:Ks,ZodString:Sn,ZodStringFormat:ee,ZodSuccess:oi,ZodSymbol:Os,ZodTemplateLiteral:di,ZodTransform:Gs,ZodTuple:qs,ZodType:V,ZodULID:Fr,ZodURL:Cn,ZodUUID:tt,ZodUndefined:Ps,ZodUnion:Pn,ZodUnknown:Rs,ZodVoid:Zs,ZodXID:Ur,ZodXor:Fs,_ZodString:Pr,_default:ei,_function:yn,any:eo,array:D,base64:Iu,base64url:zu,bigint:Fu,boolean:X,catch:ii,check:ul,cidrv4:Su,cidrv6:xu,codec:sl,creditCard:Cu,cuid:gu,cuid2:yu,currencyCode:Mu,custom:gi,date:Bu,describe:ll,discriminatedUnion:no,e164:Tu,email:iu,emoji:hu,enum:ve,exactOptional:Ys,file:tl,float32:Ru,float64:Du,function:yn,guid:au,hash:Lu,hex:Pu,hostname:Ou,httpUrl:pu,iban:Eu,instanceof:fl,int:or,int32:Zu,int64:Uu,intersection:Mn,invertCodec:il,ipv4:vu,ipv6:$u,json:hl,jwt:Au,keyof:Ku,ksuid:wu,lazy:pi,literal:v,looseObject:we,looseRecord:Yu,mac:ku,map:Qu,meta:dl,nan:ol,nanoid:mu,nativeEnum:el,never:Ht,nonoptional:ri,null:Xr,nullable:gn,nullish:nl,number:U,object:k,optional:se,partialRecord:Gu,pipe:sr,prefault:ni,preprocess:io,promise:cl,readonly:li,record:J,refine:yi,set:Xu,strictObject:Ju,string:b,stringFormat:Nu,stringbool:pl,success:rl,superRefine:_i,symbol:qu,templateLiteral:al,transform:ro,tuple:Hs,uint32:ju,uint64:Vu,ulid:_u,undefined:mn,union:H,unknown:Q,url:fu,uuid:cu,uuidv4:uu,uuidv6:lu,uuidv7:du,void:Hu,xid:bu,xor:Wu},Symbol.toStringTag,{value:"Module"})),Dg={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Zg(e){ye({customError:e})}function jg(){return ye().customError}var Yo;Yo||(Yo={});function Fg(e){return Dc(xn,e)}function Ww(e){return Zc(In,e)}function Gw(e){return jc(zn,e)}function Yw(e){return Fc(Tn,e)}const ml=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:In,ZodISODateTime:xn,ZodISODuration:Tn,ZodISOTime:zn,date:Ww,datetime:Fg,duration:Yw,time:Gw},Symbol.toStringTag,{value:"Module"})),A={...Jw,...Bw,iso:ml},Qw=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Xw(e,t){const n=e.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":t??"draft-2020-12"}function Td(e,t){return e.map((n,r)=>r<t?n:n.optional())}function ev(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function tv(e,t){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");const n=e.slice(1).split("/").filter(Boolean);if(n.length===0)return t.rootSchema;const r=t.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===r){const o=n[1]===void 0?void 0:ev(n[1]);if(!o||!t.defs[o])throw new Error(`Reference not found: ${e}`);return t.defs[o]}throw new Error(`Reference not found: ${e}`)}function nv(e,t){return A.transform(r=>r).check(r=>{const o=r.value;if(typeof o!="object"||o===null||Array.isArray(o))return;const s=Object.getOwnPropertyNames(o);if(t.minProperties!==void 0&&s.length<t.minProperties&&r.issues.push({origin:"object",code:"too_small",minimum:t.minProperties,inclusive:!0,message:`Too small: expected object to have >=${t.minProperties} properties`,input:o,inst:e,continue:!0}),t.maxProperties!==void 0&&s.length>t.maxProperties&&r.issues.push({origin:"object",code:"too_big",maximum:t.maxProperties,inclusive:!0,message:`Too big: expected object to have <=${t.maxProperties} properties`,input:o,inst:e,continue:!0}),t.keySchema)for(const i of s){const a=t.keySchema.safeParse(i);a.success||r.issues.push({code:"invalid_key",origin:"record",issues:a.error.issues,input:i,path:[i],continue:!0})}}).pipe(e)}function na(e,t){if(e===null)return"z";const n=typeof e;if(n!=="object"){if(n==="number"&&Number.isNaN(e))return null;const r=String(e);return`${n[0]}${r.length}:${r}`}if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){const s=[];for(const i of e){const a=na(i,t);if(a===null)return null;s.push(a)}return`a${s.length}:[${s.join(",")}]`}const r=Object.keys(e).sort(),o=[];for(const s of r){const i=na(e[s],t);if(i===null)return null;o.push(`${s.length}:${s}=${i}`)}return`o${o.length}:{${o.join(",")}}`}finally{t.delete(e)}}const rv=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]),ov=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function Xn(e){return typeof e!="object"||e===null?!1:Array.isArray(e)?e.some(Xn):typeof e.$ref=="string"?!0:Object.entries(e).some(([t,n])=>rv.has(t)?Xn(n):!ov.has(t)||typeof n!="object"||n===null?!1:Object.values(n).some(Xn))}function Cd(e){return e===1?"element":"elements"}function sv(e,t){return A.transform(r=>r).check(r=>{const o=r.value;if(Array.isArray(o)){if(t.uniqueItems===!0){const s=new Map;for(let i=0;i<o.length;i++){const a=na(o[i],new Set);if(a===null)continue;const c=s.get(a);if(c===void 0){s.set(a,i);continue}r.issues.push({code:"custom",message:`Array items must be unique: element at index ${i} duplicates the one at index ${c}`,input:o,path:[i],continue:!0})}}if(t.containsSchema){const s=t.minContains??1,i=t.maxContains!==void 0?t.maxContains+1:Number.POSITIVE_INFINITY;let a=0;for(const c of o)if(t.containsSchema.safeParse(c).success&&++a>=i)break;a<s&&r.issues.push({code:"custom",message:`Array must contain at least ${s} matching ${Cd(s)}; found ${a}`,input:o,continue:!0}),t.maxContains!==void 0&&a>t.maxContains&&r.issues.push({code:"custom",message:`Array must contain at most ${t.maxContains} matching ${Cd(t.maxContains)}`,input:o,continue:!0})}}}).pipe(e)}function Ed(e,t){if(e!==!1)return e===void 0||e===!0?A.any():Ce(e,t)}const iv=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function Ug(e,t){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return A.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){const o=e.$ref;if(t.refs.has(o))return t.refs.get(o);if(t.processing.has(o))return A.lazy(()=>{if(!t.refs.has(o))throw new Error(`Circular reference not resolved: ${o}`);return t.refs.get(o)});t.processing.add(o);const s=tv(o,t),i=Ce(s,t);return t.refs.set(o,i),t.processing.delete(o),i}if(e.enum!==void 0){const o=e.enum;if(t.version==="openapi-3.0"&&e.nullable===!0&&o.length===1&&o[0]===null)return A.null();if(o.length===0)return A.never();if(o.length===1)return A.literal(o[0]);if(o.every(i=>typeof i=="string"))return A.enum(o);const s=o.map(i=>A.literal(i));return s.length<2?s[0]:A.union([s[0],s[1],...s.slice(2)])}if(e.const!==void 0)return A.literal(e.const);const n=e.type;if(Array.isArray(n)){const o=n.map(s=>{const i={...e,type:s};return Ug(i,t)});return o.length===0?A.never():o.length===1?o[0]:A.union(o)}if(!n)return A.any();let r;switch(n){case"string":{let o=A.string();if(e.format){const s=e.format;s==="email"?o=o.check(A.email()):s==="uri"||s==="uri-reference"?o=o.check(A.url()):s==="uuid"||s==="guid"?o=o.check(A.uuid()):s==="date-time"?o=o.check(A.iso.datetime({offset:!0})):s==="date"?o=o.check(A.iso.date()):s==="time"?o=o.check(A.regex(iv)):s==="duration"?o=o.check(A.iso.duration()):s==="hostname"?o=o.check(A.hostname()):s==="ipv4"?o=o.check(A.ipv4()):s==="ipv6"?o=o.check(A.ipv6()):s==="mac"?o=o.check(A.mac()):s==="cidr"?o=o.check(A.cidrv4()):s==="cidr-v6"?o=o.check(A.cidrv6()):s==="base64"?o=o.check(A.base64()):s==="base64url"?o=o.check(A.base64url()):s==="e164"?o=o.check(A.e164()):s==="credit_card"?o=o.check(A.creditCard()):s==="iban"?o=o.check(A.iban()):s==="jwt"?o=o.check(A.jwt()):s==="emoji"?o=o.check(A.emoji()):s==="nanoid"?o=o.check(A.nanoid()):s==="cuid"?o=o.check(A.cuid()):s==="cuid2"?o=o.check(A.cuid2()):s==="ulid"?o=o.check(A.ulid()):s==="xid"?o=o.check(A.xid()):s==="ksuid"&&(o=o.check(A.ksuid()))}typeof e.minLength=="number"&&(o=o.min(e.minLength)),typeof e.maxLength=="number"&&(o=o.max(e.maxLength)),e.pattern&&(o=o.regex(new RegExp(e.pattern))),r=o;break}case"number":case"integer":{let o=n==="integer"?A.number().int():A.number();typeof e.minimum=="number"&&e.exclusiveMinimum!==!0&&(o=o.min(e.minimum)),typeof e.maximum=="number"&&e.exclusiveMaximum!==!0&&(o=o.max(e.maximum)),typeof e.exclusiveMinimum=="number"?o=o.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(o=o.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?o=o.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(o=o.lt(e.maximum)),typeof e.multipleOf=="number"&&(o=o.multipleOf(e.multipleOf)),r=o;break}case"boolean":{r=A.boolean();break}case"null":{r=A.null();break}case"object":{const o={},s=e.properties||{},i=new Set(e.required||[]),a=typeof e.additionalProperties=="object"?Ce(e.additionalProperties,t):void 0;for(const[d,f]of Object.entries(s)){const p=Ce(f,t);Fe(o,d,i.has(d)?p:p.optional())}if(e.patternProperties){const d=e.patternProperties,f=Object.keys(d),p=[];for(const m of f){const _=Ce(d[m],t),S=A.string().regex(new RegExp(m));p.push(A.looseRecord(S,_))}const h=[];if(Object.keys(o).length>0&&h.push(A.object(o).passthrough()),h.push(...p),h.length===0)r=A.object({}).passthrough();else if(h.length===1)r=h[0];else{let m=A.intersection(h[0],h[1]);for(let _=2;_<h.length;_++)m=A.intersection(m,h[_]);r=m}if(e.additionalProperties===!1){const m=Object.keys(o),_=f.map(w=>new RegExp(w)),S=r;r=r.check(w=>{if(!mt(w.value))return;const x=[];for(const C of Object.keys(w.value))m.includes(C)||_.some(R=>R.test(C))||x.push(C);x.length&&w.issues.push({code:"unrecognized_keys",keys:x,input:w.value,inst:S})})}}else{const d=A.object(o);e.additionalProperties===!1?r=d.strict():a?r=d.catchall(a):r=d.passthrough()}const c=e.propertyNames!==void 0&&e.propertyNames!==!0,u=typeof e.minProperties=="number"?e.minProperties:void 0,l=typeof e.maxProperties=="number"?e.maxProperties:void 0;if(c||u!==void 0||l!==void 0){let d;if(c){const f=typeof e.propertyNames=="object"&&e.propertyNames.type===void 0?{type:"string",...e.propertyNames}:e.propertyNames;d=Ce(f,t)}r=nv(r,{keySchema:d,minProperties:u,maxProperties:l})}break}case"array":{const o=e.prefixItems,s=e.items;if(o&&Array.isArray(o)){const i=typeof e.minItems=="number"?e.minItems:0,a=o.map(d=>Ce(d,t)),c=Td(a,i),u=Array.isArray(s)?void 0:Ed(s,t),l=A.tuple(c);r=u?l.rest(u):l,typeof e.minItems=="number"&&(r=r.check(A.minLength(e.minItems))),typeof e.maxItems=="number"&&(r=r.check(A.maxLength(e.maxItems)))}else if(Array.isArray(s)){const i=typeof e.minItems=="number"?e.minItems:0,a=s.map(d=>Ce(d,t)),c=Td(a,i),u=Ed(e.additionalItems,t),l=A.tuple(c);r=u?l.rest(u):l,typeof e.minItems=="number"&&(r=r.check(A.minLength(e.minItems))),typeof e.maxItems=="number"&&(r=r.check(A.maxLength(e.maxItems)))}else if(s!==void 0){const i=Ce(s,t);let a=A.array(i);typeof e.minItems=="number"&&(a=a.min(e.minItems)),typeof e.maxItems=="number"&&(a=a.max(e.maxItems)),r=a}else r=A.array(A.any());(e.uniqueItems===!0||e.contains!==void 0)&&(r=sv(r,{uniqueItems:e.uniqueItems===!0,containsSchema:e.contains!==void 0?Ce(e.contains,t):void 0,minContains:typeof e.minContains=="number"?e.minContains:void 0,maxContains:typeof e.maxContains=="number"?e.maxContains:void 0}));break}default:throw new Error(`Unsupported type: ${n}`)}return r}function Ce(e,t){if(typeof e=="boolean")return e?A.any():A.never();let n=Ug(e,t);const r=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){const a=e.anyOf.map(u=>Ce(u,t)),c=A.union(a);n=r?A.intersection(n,c):c}if(e.oneOf&&Array.isArray(e.oneOf)){const a=e.oneOf.map(u=>Ce(u,t)),c=A.xor(a);n=r?A.intersection(n,c):c}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)n=r?n:A.any();else{let a=r?n:Ce(e.allOf[0],t);const c=r?0:1;for(let u=c;u<e.allOf.length;u++)a=A.intersection(a,Ce(e.allOf[u],t));n=a}e.nullable===!0&&t.version==="openapi-3.0"&&(n=A.nullable(n)),e.readOnly===!0&&(n=A.readonly(n)),e.default!==void 0&&(n=n.default(e.default));const o={},s=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(const a of s)a in e&&(o[a]=e[a]);const i=["contentEncoding","contentMediaType","contentSchema"];for(const a of i)a in e&&(o[a]=e[a]);if(e.type==="object"&&e.$ref===void 0){e.propertyNames!==void 0&&!Xn(e.propertyNames)&&(o.propertyNames=e.propertyNames);for(const a of["minProperties","maxProperties"])e[a]!==void 0&&(o[a]=e[a])}if(e.type==="array"&&e.$ref===void 0){e.contains!==void 0&&!Xn(e.contains)&&(o.contains=e.contains);for(const a of["uniqueItems","minContains","maxContains"])e[a]!==void 0&&(o[a]=e[a])}for(const a of Object.keys(e))Qw.has(a)||Fe(o,a,e[a]);return Object.keys(o).length>0&&t.registry.add(n,o),e.description&&(n=n.describe(e.description)),n}function Vg(e,t){if(typeof e=="boolean")return e?A.any():A.never();let n;try{n=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}const r=Xw(n,t?.defaultTarget),o=n.$defs||n.definitions||{},s={version:r,defs:o,refs:new Map,processing:new Set,rootSchema:n,registry:t?.registry??Re};return Ce(n,s)}function qg(e){return Bc(e,{object:t=>t.partial(),union:t=>{const n=t._zod.def;return n.discriminator===void 0?t:H(n.options)}})}function av(e,t){if(!t?.length)return e;const n=e._zod.def;return ce(e,xe(n,{checks:[...n.checks??[],...t]}),{parent:!0})}function Hg(e){return av(e.out,e.checks)}function cv(e){return e.in._zod.traits.has("$ZodTransform")?Hg(e):e.in}function Bg(e){return Bc(e,{pipe:t=>cv(t._zod.def),default:(t,n)=>n?se(t._zod.def.innerType):t,catch:(t,n)=>n?t._zod.def.innerType:t})}function Kg(e){return Bc(e,{pipe:t=>Hg(t._zod.def),prefault:(t,n)=>n?t._zod.def.innerType:t})}function uv(e){return im(Sn,e)}function lv(e){return dm(En,e)}function dv(e){return _m(An,e)}function fv(e){return wm(Nn,e)}function pv(e){return Am(to,e)}const Jg=Object.freeze(Object.defineProperty({__proto__:null,bigint:fv,boolean:dv,date:pv,number:lv,string:uv},Symbol.toStringTag,{value:"Module"})),Ad=Object.freeze(Object.defineProperty({__proto__:null,$brand:ka,$input:pc,$output:fc,INVALID:Ae,NEVER:va,TimePrecision:Rc,ZodAny:Ls,ZodArray:js,ZodBase64:Jr,ZodBase64URL:Wr,ZodBigInt:Nn,ZodBigIntFormat:Qr,ZodBoolean:An,ZodCIDRv4:Br,ZodCIDRv6:Kr,ZodCUID:Zr,ZodCUID2:jr,ZodCatch:si,ZodCodec:Dn,ZodCompileAsyncError:_t,ZodCompileUnsupportedError:G,ZodCreditCard:As,ZodCustom:Zn,ZodCustomStringFormat:Ot,ZodDate:to,ZodDefault:Xs,ZodDiscriminatedUnion:Us,ZodE164:Gr,ZodEmail:Mr,ZodEmoji:Rr,ZodEnum:Kt,ZodError:Rg,ZodExactOptional:oo,ZodFile:Ws,get ZodFirstPartyTypeKind(){return Yo},ZodFunction:mi,ZodGUID:Lr,ZodIBAN:Ns,ZodIPv4:qr,ZodIPv6:Hr,ZodISODate:In,ZodISODateTime:xn,ZodISODuration:Tn,ZodISOTime:zn,ZodInstanceOf:bi,ZodIntersection:Vs,ZodIssueCode:Dg,ZodJWT:Yr,ZodKSUID:Vr,ZodLazy:fi,ZodLiteral:Js,ZodMAC:Es,ZodMap:Bs,ZodNaN:ai,ZodNanoID:Dr,ZodNever:Ds,ZodNonOptional:so,ZodNull:Ms,ZodNullable:Qs,ZodNumber:En,ZodNumberFormat:Pt,ZodObject:On,ZodOptional:Ln,ZodPipe:Rn,ZodPrefault:ti,ZodPreprocess:ci,ZodPromise:hi,ZodReadonly:ui,ZodRealError:Oe,ZodRecord:Bt,ZodSet:Ks,ZodString:Sn,ZodStringFormat:ee,ZodSuccess:oi,ZodSymbol:Os,ZodTemplateLiteral:di,ZodTransform:Gs,ZodTuple:qs,ZodType:V,ZodULID:Fr,ZodURL:Cn,ZodUUID:tt,ZodUndefined:Ps,ZodUnion:Pn,ZodUnknown:Rs,ZodVoid:Zs,ZodXID:Ur,ZodXor:Fs,_ZodString:Pr,_default:ei,_function:yn,any:eo,array:D,base64:Iu,base64url:zu,bigint:Fu,boolean:X,catch:ii,check:ul,cidrv4:Su,cidrv6:xu,clone:ce,codec:sl,coerce:Jg,compile:hc,config:ye,core:Pg,creditCard:Cu,cuid:gu,cuid2:yu,currencyCode:Mu,custom:gi,date:Bu,decode:Xc,decodeAsync:tu,deepPartial:qg,describe:ll,discriminatedUnion:no,e164:Tu,email:iu,emoji:hu,encode:Qc,encodeAsync:eu,endsWith:Ir,enum:ve,exactOptional:Ys,file:tl,flattenError:us,float32:Ru,float64:Du,formatError:ls,fromJSONSchema:Vg,function:yn,getDiscriminatedOption:rc,getErrorMap:jg,globalRegistry:Re,gt:wt,gte:je,guid:au,hash:Lu,hex:Pu,hostname:Ou,httpUrl:pu,iban:Eu,includes:Sr,input:Bg,instanceof:fl,int:or,int32:Zu,int64:Uu,intersection:Mn,invertCodec:il,ipv4:vu,ipv6:$u,iso:ml,json:hl,jwt:Au,keyof:Ku,ksuid:wu,lazy:pi,length:kn,literal:v,locales:dc,looseObject:we,looseRecord:Yu,lowercase:kr,lt:bt,lte:Ze,mac:ku,map:Qu,maxLength:vn,maxSize:Jt,memoizer:bs,meta:dl,mime:Tr,minLength:Nt,minSize:vt,multipleOf:qt,nan:ol,nanoid:mu,nativeEnum:el,negative:Is,never:Ht,nonnegative:Ts,nonoptional:ri,nonpositive:zs,normalize:Cr,null:Xr,nullable:gn,nullish:nl,number:U,object:k,optional:se,output:Kg,overwrite:at,parse:Jc,parseAsync:Wc,partialRecord:Gu,pipe:sr,positive:xs,prefault:ni,preprocess:io,prettifyError:Sa,promise:cl,properties:zr,property:Cs,readonly:li,record:J,refine:yi,regex:vr,regexes:hs,registry:ws,safeDecode:ru,safeDecodeAsync:su,safeEncode:nu,safeEncodeAsync:ou,safeParse:Gc,safeParseAsync:Yc,set:Xu,setErrorMap:Zg,size:wn,slugify:Or,startsWith:xr,strictObject:Ju,string:b,stringFormat:Nu,stringbool:pl,success:rl,superRefine:_i,symbol:qu,templateLiteral:al,toJSONSchema:Hc,toLowerCase:Ar,toUpperCase:Nr,toZod:ns,transform:ro,treeifyError:$a,trim:Er,tuple:Hs,uint32:ju,uint64:Vu,ulid:_u,undefined:mn,union:H,unknown:Q,uppercase:$r,url:fu,util:wa,uuid:cu,uuidv4:uu,uuidv6:lu,uuidv7:du,validate:fs,validateAsync:ps,void:Hu,withParser:vs,xid:bu,xor:Wu},Symbol.toStringTag,{value:"Module"})),hv=Object.freeze(Object.defineProperty({__proto__:null,$brand:ka,$input:pc,$output:fc,INVALID:Ae,NEVER:va,TimePrecision:Rc,ZodAny:Ls,ZodArray:js,ZodBase64:Jr,ZodBase64URL:Wr,ZodBigInt:Nn,ZodBigIntFormat:Qr,ZodBoolean:An,ZodCIDRv4:Br,ZodCIDRv6:Kr,ZodCUID:Zr,ZodCUID2:jr,ZodCatch:si,ZodCodec:Dn,ZodCompileAsyncError:_t,ZodCompileUnsupportedError:G,ZodCreditCard:As,ZodCustom:Zn,ZodCustomStringFormat:Ot,ZodDate:to,ZodDefault:Xs,ZodDiscriminatedUnion:Us,ZodE164:Gr,ZodEmail:Mr,ZodEmoji:Rr,ZodEnum:Kt,ZodError:Rg,ZodExactOptional:oo,ZodFile:Ws,get ZodFirstPartyTypeKind(){return Yo},ZodFunction:mi,ZodGUID:Lr,ZodIBAN:Ns,ZodIPv4:qr,ZodIPv6:Hr,ZodISODate:In,ZodISODateTime:xn,ZodISODuration:Tn,ZodISOTime:zn,ZodInstanceOf:bi,ZodIntersection:Vs,ZodIssueCode:Dg,ZodJWT:Yr,ZodKSUID:Vr,ZodLazy:fi,ZodLiteral:Js,ZodMAC:Es,ZodMap:Bs,ZodNaN:ai,ZodNanoID:Dr,ZodNever:Ds,ZodNonOptional:so,ZodNull:Ms,ZodNullable:Qs,ZodNumber:En,ZodNumberFormat:Pt,ZodObject:On,ZodOptional:Ln,ZodPipe:Rn,ZodPrefault:ti,ZodPreprocess:ci,ZodPromise:hi,ZodReadonly:ui,ZodRealError:Oe,ZodRecord:Bt,ZodSet:Ks,ZodString:Sn,ZodStringFormat:ee,ZodSuccess:oi,ZodSymbol:Os,ZodTemplateLiteral:di,ZodTransform:Gs,ZodTuple:qs,ZodType:V,ZodULID:Fr,ZodURL:Cn,ZodUUID:tt,ZodUndefined:Ps,ZodUnion:Pn,ZodUnknown:Rs,ZodVoid:Zs,ZodXID:Ur,ZodXor:Fs,_ZodString:Pr,_default:ei,_function:yn,any:eo,array:D,base64:Iu,base64url:zu,bigint:Fu,boolean:X,catch:ii,check:ul,cidrv4:Su,cidrv6:xu,clone:ce,codec:sl,coerce:Jg,compile:hc,config:ye,core:Pg,creditCard:Cu,cuid:gu,cuid2:yu,currencyCode:Mu,custom:gi,date:Bu,decode:Xc,decodeAsync:tu,deepPartial:qg,default:Ad,describe:ll,discriminatedUnion:no,e164:Tu,email:iu,emoji:hu,encode:Qc,encodeAsync:eu,endsWith:Ir,enum:ve,exactOptional:Ys,file:tl,flattenError:us,float32:Ru,float64:Du,formatError:ls,fromJSONSchema:Vg,function:yn,getDiscriminatedOption:rc,getErrorMap:jg,globalRegistry:Re,gt:wt,gte:je,guid:au,hash:Lu,hex:Pu,hostname:Ou,httpUrl:pu,iban:Eu,includes:Sr,input:Bg,instanceof:fl,int:or,int32:Zu,int64:Uu,intersection:Mn,invertCodec:il,ipv4:vu,ipv6:$u,iso:ml,json:hl,jwt:Au,keyof:Ku,ksuid:wu,lazy:pi,length:kn,literal:v,locales:dc,looseObject:we,looseRecord:Yu,lowercase:kr,lt:bt,lte:Ze,mac:ku,map:Qu,maxLength:vn,maxSize:Jt,memoizer:bs,meta:dl,mime:Tr,minLength:Nt,minSize:vt,multipleOf:qt,nan:ol,nanoid:mu,nativeEnum:el,negative:Is,never:Ht,nonnegative:Ts,nonoptional:ri,nonpositive:zs,normalize:Cr,null:Xr,nullable:gn,nullish:nl,number:U,object:k,optional:se,output:Kg,overwrite:at,parse:Jc,parseAsync:Wc,partialRecord:Gu,pipe:sr,positive:xs,prefault:ni,preprocess:io,prettifyError:Sa,promise:cl,properties:zr,property:Cs,readonly:li,record:J,refine:yi,regex:vr,regexes:hs,registry:ws,safeDecode:ru,safeDecodeAsync:su,safeEncode:nu,safeEncodeAsync:ou,safeParse:Gc,safeParseAsync:Yc,set:Xu,setErrorMap:Zg,size:wn,slugify:Or,startsWith:xr,strictObject:Ju,string:b,stringFormat:Nu,stringbool:pl,success:rl,superRefine:_i,symbol:qu,templateLiteral:al,toJSONSchema:Hc,toLowerCase:Ar,toUpperCase:Nr,toZod:ns,transform:ro,treeifyError:$a,trim:Er,tuple:Hs,uint32:ju,uint64:Vu,ulid:_u,undefined:mn,union:H,unknown:Q,uppercase:$r,url:fu,util:wa,uuid:cu,uuidv4:uu,uuidv6:lu,uuidv7:du,validate:fs,validateAsync:ps,void:Hu,withParser:vs,xid:bu,xor:Wu,z:Ad},Symbol.toStringTag,{value:"Module"})),Zt="io.modelcontextprotocol/related-task",wi="2.0",ge=gi(e=>e!==null&&(typeof e=="object"||typeof e=="function")),Wg=H([b(),U().int()]),Gg=b();we({ttl:U().optional(),pollInterval:U().optional()});const mv=k({ttl:U().optional()}),gv=k({taskId:b()}),gl=we({progressToken:Wg.optional(),[Zt]:gv.optional()}),Ve=k({_meta:gl.optional()}),ao=Ve.extend({task:mv.optional()}),yv=e=>ao.safeParse(e).success,ke=k({method:b(),params:Ve.loose().optional()}),We=k({_meta:gl.optional()}),Ge=k({method:b(),params:We.loose().optional()}),$e=we({_meta:gl.optional()}),co=H([b(),U().int()]),Yg=k({jsonrpc:v(wi),id:co,...ke.shape}).strict(),Nd=e=>Yg.safeParse(e).success,Qg=k({jsonrpc:v(wi),...Ge.shape}).strict(),_v=e=>Qg.safeParse(e).success,yl=k({jsonrpc:v(wi),id:co,result:$e}).strict(),Po=e=>yl.safeParse(e).success;var Y;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Y||(Y={}));const _l=k({jsonrpc:v(wi),id:co.optional(),error:k({code:U().int(),message:b(),data:Q().optional()})}).strict(),bv=e=>_l.safeParse(e).success,wv=H([Yg,Qg,yl,_l]);H([yl,_l]);const bl=$e.strict(),vv=We.extend({requestId:co.optional(),reason:b().optional()}),wl=Ge.extend({method:v("notifications/cancelled"),params:vv}),kv=k({src:b(),mimeType:b().optional(),sizes:D(b()).optional(),theme:ve(["light","dark"]).optional()}),uo=k({icons:D(kv).optional()}),_n=k({name:b(),title:b().optional()}),vi=_n.extend({..._n.shape,...uo.shape,version:b(),websiteUrl:b().optional(),description:b().optional()}),$v=Mn(k({applyDefaults:X().optional()}),J(b(),Q())),Sv=io(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Mn(k({form:$v.optional(),url:ge.optional()}),J(b(),Q()).optional())),xv=we({list:ge.optional(),cancel:ge.optional(),requests:we({sampling:we({createMessage:ge.optional()}).optional(),elicitation:we({create:ge.optional()}).optional()}).optional()}),Iv=we({list:ge.optional(),cancel:ge.optional(),requests:we({tools:we({call:ge.optional()}).optional()}).optional()}),zv=k({experimental:J(b(),ge).optional(),sampling:k({context:ge.optional(),tools:ge.optional()}).optional(),elicitation:Sv.optional(),roots:k({listChanged:X().optional()}).optional(),tasks:xv.optional(),extensions:J(b(),ge).optional()}),Tv=Ve.extend({protocolVersion:b(),capabilities:zv,clientInfo:vi}),Cv=ke.extend({method:v("initialize"),params:Tv}),Ev=k({experimental:J(b(),ge).optional(),logging:ge.optional(),completions:ge.optional(),prompts:k({listChanged:X().optional()}).optional(),resources:k({subscribe:X().optional(),listChanged:X().optional()}).optional(),tools:k({listChanged:X().optional()}).optional(),tasks:Iv.optional(),extensions:J(b(),ge).optional()}),Av=$e.extend({protocolVersion:b(),capabilities:Ev,serverInfo:vi,instructions:b().optional()}),Nv=Ge.extend({method:v("notifications/initialized"),params:We.optional()}),ki=ke.extend({method:v("ping"),params:Ve.optional()}),Ov=k({progress:U(),total:se(U()),message:se(b())}),Pv=k({...We.shape,...Ov.shape,progressToken:Wg}),vl=Ge.extend({method:v("notifications/progress"),params:Pv}),Mv=Ve.extend({cursor:Gg.optional()}),lo=ke.extend({params:Mv.optional()}),fo=$e.extend({nextCursor:Gg.optional()}),Lv=ve(["working","input_required","completed","failed","cancelled"]),po=k({taskId:b(),status:Lv,ttl:H([U(),Xr()]),createdAt:b(),lastUpdatedAt:b(),pollInterval:se(U()),statusMessage:se(b())}),kl=$e.extend({task:po}),Rv=We.merge(po),Qo=Ge.extend({method:v("notifications/tasks/status"),params:Rv}),$l=ke.extend({method:v("tasks/get"),params:Ve.extend({taskId:b()})}),Sl=$e.merge(po),xl=ke.extend({method:v("tasks/result"),params:Ve.extend({taskId:b()})});$e.loose();const Il=lo.extend({method:v("tasks/list")}),zl=fo.extend({tasks:D(po)}),Tl=ke.extend({method:v("tasks/cancel"),params:Ve.extend({taskId:b()})}),Dv=$e.merge(po),Xg=k({uri:b(),mimeType:se(b()),_meta:J(b(),Q()).optional()}),ey=Xg.extend({text:b()}),Cl=b().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),ty=Xg.extend({blob:Cl}),ho=ve(["user","assistant"]),jn=k({audience:D(ho).optional(),priority:U().min(0).max(1).optional(),lastModified:Fg({offset:!0}).optional()}),ny=k({..._n.shape,...uo.shape,uri:b(),description:se(b()),mimeType:se(b()),size:se(U()),annotations:jn.optional(),_meta:se(we({}))}),Zv=k({..._n.shape,...uo.shape,uriTemplate:b(),description:se(b()),mimeType:se(b()),annotations:jn.optional(),_meta:se(we({}))}),jv=lo.extend({method:v("resources/list")}),ry=fo.extend({resources:D(ny)}),Fv=lo.extend({method:v("resources/templates/list")}),Uv=fo.extend({resourceTemplates:D(Zv)}),El=Ve.extend({uri:b()}),Vv=El,qv=ke.extend({method:v("resources/read"),params:Vv}),oy=$e.extend({contents:D(H([ey,ty]))}),Hv=Ge.extend({method:v("notifications/resources/list_changed"),params:We.optional()}),Bv=El,Kv=ke.extend({method:v("resources/subscribe"),params:Bv}),Jv=El,Wv=ke.extend({method:v("resources/unsubscribe"),params:Jv}),Gv=We.extend({uri:b()}),Yv=Ge.extend({method:v("notifications/resources/updated"),params:Gv}),Qv=k({name:b(),description:se(b()),required:se(X())}),Xv=k({..._n.shape,...uo.shape,description:se(b()),arguments:se(D(Qv)),_meta:se(we({}))}),ek=lo.extend({method:v("prompts/list")}),tk=fo.extend({prompts:D(Xv)}),nk=Ve.extend({name:b(),arguments:J(b(),b()).optional()}),rk=ke.extend({method:v("prompts/get"),params:nk}),Al=k({type:v("text"),text:b(),annotations:jn.optional(),_meta:J(b(),Q()).optional()}),Nl=k({type:v("image"),data:Cl,mimeType:b(),annotations:jn.optional(),_meta:J(b(),Q()).optional()}),Ol=k({type:v("audio"),data:Cl,mimeType:b(),annotations:jn.optional(),_meta:J(b(),Q()).optional()}),ok=k({type:v("tool_use"),name:b(),id:b(),input:J(b(),Q()),_meta:J(b(),Q()).optional()}),sy=k({type:v("resource"),resource:H([ey,ty]),annotations:jn.optional(),_meta:J(b(),Q()).optional()}),iy=ny.extend({type:v("resource_link")}),mo=H([Al,Nl,Ol,iy,sy]),sk=k({role:ho,content:mo}),ik=$e.extend({description:b().optional(),messages:D(sk)}),ak=Ge.extend({method:v("notifications/prompts/list_changed"),params:We.optional()}),ck=k({title:b().optional(),readOnlyHint:X().optional(),destructiveHint:X().optional(),idempotentHint:X().optional(),openWorldHint:X().optional()}),uk=k({taskSupport:ve(["required","optional","forbidden"]).optional()}),Pl=k({..._n.shape,...uo.shape,description:b().optional(),inputSchema:k({type:v("object"),properties:J(b(),ge).optional(),required:D(b()).optional()}).catchall(Q()),outputSchema:k({type:v("object"),properties:J(b(),ge).optional(),required:D(b()).optional()}).catchall(Q()).optional(),annotations:ck.optional(),execution:uk.optional(),_meta:J(b(),Q()).optional()}),ay=lo.extend({method:v("tools/list")}),lk=fo.extend({tools:D(Pl)}),$i=$e.extend({content:D(mo).default([]),structuredContent:J(b(),Q()).optional(),isError:X().optional()});$i.or($e.extend({toolResult:Q()}));const dk=ao.extend({name:b(),arguments:J(b(),Q()).optional()}),cy=ke.extend({method:v("tools/call"),params:dk}),fk=Ge.extend({method:v("notifications/tools/list_changed"),params:We.optional()});k({autoRefresh:X().default(!0),debounceMs:U().int().nonnegative().default(300)});const uy=ve(["debug","info","notice","warning","error","critical","alert","emergency"]),pk=Ve.extend({level:uy}),hk=ke.extend({method:v("logging/setLevel"),params:pk}),mk=We.extend({level:uy,logger:b().optional(),data:Q()}),gk=Ge.extend({method:v("notifications/message"),params:mk}),yk=k({name:b().optional()}),_k=k({hints:D(yk).optional(),costPriority:U().min(0).max(1).optional(),speedPriority:U().min(0).max(1).optional(),intelligencePriority:U().min(0).max(1).optional()}),bk=k({mode:ve(["auto","required","none"]).optional()}),wk=k({type:v("tool_result"),toolUseId:b().describe("The unique identifier for the corresponding tool call."),content:D(mo).default([]),structuredContent:k({}).loose().optional(),isError:X().optional(),_meta:J(b(),Q()).optional()}),vk=no("type",[Al,Nl,Ol]),Xo=no("type",[Al,Nl,Ol,ok,wk]),kk=k({role:ho,content:H([Xo,D(Xo)]),_meta:J(b(),Q()).optional()}),$k=ao.extend({messages:D(kk),modelPreferences:_k.optional(),systemPrompt:b().optional(),includeContext:ve(["none","thisServer","allServers"]).optional(),temperature:U().optional(),maxTokens:U().int(),stopSequences:D(b()).optional(),metadata:ge.optional(),tools:D(Pl).optional(),toolChoice:bk.optional()}),Sk=ke.extend({method:v("sampling/createMessage"),params:$k}),ly=$e.extend({model:b(),stopReason:se(ve(["endTurn","stopSequence","maxTokens"]).or(b())),role:ho,content:vk}),dy=$e.extend({model:b(),stopReason:se(ve(["endTurn","stopSequence","maxTokens","toolUse"]).or(b())),role:ho,content:H([Xo,D(Xo)])}),xk=k({type:v("boolean"),title:b().optional(),description:b().optional(),default:X().optional()}),Ik=k({type:v("string"),title:b().optional(),description:b().optional(),minLength:U().optional(),maxLength:U().optional(),format:ve(["email","uri","date","date-time"]).optional(),default:b().optional()}),zk=k({type:ve(["number","integer"]),title:b().optional(),description:b().optional(),minimum:U().optional(),maximum:U().optional(),default:U().optional()}),Tk=k({type:v("string"),title:b().optional(),description:b().optional(),enum:D(b()),default:b().optional()}),Ck=k({type:v("string"),title:b().optional(),description:b().optional(),oneOf:D(k({const:b(),title:b()})),default:b().optional()}),Ek=k({type:v("string"),title:b().optional(),description:b().optional(),enum:D(b()),enumNames:D(b()).optional(),default:b().optional()}),Ak=H([Tk,Ck]),Nk=k({type:v("array"),title:b().optional(),description:b().optional(),minItems:U().optional(),maxItems:U().optional(),items:k({type:v("string"),enum:D(b())}),default:D(b()).optional()}),Ok=k({type:v("array"),title:b().optional(),description:b().optional(),minItems:U().optional(),maxItems:U().optional(),items:k({anyOf:D(k({const:b(),title:b()}))}),default:D(b()).optional()}),Pk=H([Nk,Ok]),Mk=H([Ek,Ak,Pk]),Lk=H([Mk,xk,Ik,zk]),Rk=ao.extend({mode:v("form").optional(),message:b(),requestedSchema:k({type:v("object"),properties:J(b(),Lk),required:D(b()).optional()})}),Dk=ao.extend({mode:v("url"),message:b(),elicitationId:b(),url:b().url()}),Zk=H([Rk,Dk]),jk=ke.extend({method:v("elicitation/create"),params:Zk}),Fk=We.extend({elicitationId:b()}),Uk=Ge.extend({method:v("notifications/elicitation/complete"),params:Fk}),Vk=$e.extend({action:ve(["accept","decline","cancel"]),content:io(e=>e===null?void 0:e,J(b(),H([b(),U(),X(),D(b())])).optional())}),qk=k({type:v("ref/resource"),uri:b()}),Hk=k({type:v("ref/prompt"),name:b()}),Bk=Ve.extend({ref:H([Hk,qk]),argument:k({name:b(),value:b()}),context:k({arguments:J(b(),b()).optional()}).optional()}),Kk=ke.extend({method:v("completion/complete"),params:Bk}),Jk=$e.extend({completion:we({values:D(b()).max(100),total:se(U().int()),hasMore:se(X())})}),Wk=k({uri:b().startsWith("file://"),name:b().optional(),_meta:J(b(),Q()).optional()}),Gk=ke.extend({method:v("roots/list"),params:Ve.optional()}),Yk=$e.extend({roots:D(Wk)}),Qk=Ge.extend({method:v("notifications/roots/list_changed"),params:We.optional()});H([ki,Cv,Kk,hk,rk,ek,jv,Fv,qv,Kv,Wv,cy,ay,$l,xl,Il,Tl]);H([wl,vl,Nv,Qk,Qo]);H([bl,ly,dy,Vk,Yk,Sl,zl,kl]);H([ki,Sk,jk,Gk,$l,xl,Il,Tl]);H([wl,vl,gk,Yv,Hv,fk,ak,Qo,Uk]);H([bl,Av,Jk,ik,tk,ry,Uv,oy,$i,lk,Sl,zl,kl]);class W extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Y.UrlElicitationRequired&&r){const o=r;if(o.elicitations)return new Xk(o.elicitations,n)}return new W(t,n,r)}}class Xk extends W{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Y.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}function Lt(e){return e==="completed"||e==="failed"||e==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Od(e){const n=Uw(e)?.method;if(!n)throw new Error("Schema is missing a method literal");const r=Vw(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Pd(e,t){const n=Mg(e,t);if(!n.success)throw n.error;return n.data}const e$=6e4;class t${constructor(t){this._options=t,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(wl,n=>{this._oncancel(n)}),this.setNotificationHandler(vl,n=>{this._onprogress(n)}),this.setRequestHandler(ki,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler($l,async(n,r)=>{const o=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!o)throw new W(Y.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(xl,async(n,r)=>{const o=async()=>{const s=n.params.taskId;if(!await this._taskStore.getTask(s,r.sessionId))throw new W(Y.InvalidParams,`Task not found: ${s}`);if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){const c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{const d=c,f=new W(d.error.code,d.error.message,d.error.data);l(f)}else{const d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}const i=await this._taskStore.getTask(s,r.sessionId);if(!i)throw new W(Y.InvalidParams,`Task not found: ${s}`);if(!Lt(i.status))return await this._waitForTaskUpdate(s,r.signal,r.sessionId),await o();if(Lt(i.status)){const a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s,r.sessionId),{...a,_meta:{...a._meta,[Zt]:{taskId:s}}}}return await o()};return await o()}),this.setRequestHandler(Il,async(n,r)=>{try{const{tasks:o,nextCursor:s}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:o,nextCursor:s,_meta:{}}}catch(o){throw new W(Y.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Tl,async(n,r)=>{try{const o=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!o)throw new W(Y.InvalidParams,`Task not found: ${n.params.taskId}`);if(Lt(o.status))throw new W(Y.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId,r.sessionId);const s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new W(Y.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(o){throw o instanceof W?o:new W(Y.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,o,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(o,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:o})}_resetTimeout(t){const n=this._timeoutInfo.get(t);if(!n)return!1;const r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),W.fromError(Y.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){const n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;const n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};const r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};const o=this._transport?.onmessage;this._transport.onmessage=(s,i)=>{o?.(s,i),Po(s)||bv(s)?this._onresponse(s):Nd(s)?this._onrequest(s,i):_v(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){const t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(const r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(const r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();const n=W.fromError(Y.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(const r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){const n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){const r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,o=this._transport,s=t.params?._meta?.[Zt]?.taskId,i=o?.sessionId,a=this._taskStore;let c=!0,u;if(s&&a&&this._taskMessageQueue&&i!==void 0&&(c=!1,u=(async()=>{if(!await a.getTask(s,i))throw new W(Y.InvalidParams,`Task not found: ${s}`);c=!0})()),r===void 0){const h={jsonrpc:"2.0",id:t.id,error:{code:Y.MethodNotFound,message:"Method not found"}};if(s&&u){const m={type:"error",message:h,timestamp:Date.now()};u.then(()=>this._enqueueTaskMessage(s,m,i),()=>o?.send(h)).catch(_=>this._onerror(new Error(`Failed to send an error response: ${_}`)))}else s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:h,timestamp:Date.now()},o?.sessionId).catch(m=>this._onerror(new Error(`Failed to enqueue error response: ${m}`))):o?.send(h).catch(m=>this._onerror(new Error(`Failed to send an error response: ${m}`)));return}const l=new AbortController;this._requestHandlerAbortControllers.set(t.id,l);const d=yv(t.params)?t.params.task:void 0,f=this._taskStore?this.requestTaskStore(t,o?.sessionId):void 0,p={signal:l.signal,sessionId:o?.sessionId,_meta:t.params?._meta,sendNotification:async h=>{if(l.signal.aborted)return;const m={relatedRequestId:t.id};s&&(m.relatedTask={taskId:s}),await this.notification(h,m)},sendRequest:async(h,m,_)=>{if(l.signal.aborted)throw new W(Y.ConnectionClosed,"Request was cancelled");const S={..._,relatedRequestId:t.id};s&&!S.relatedTask&&(S.relatedTask={taskId:s});const w=S.relatedTask?.taskId??s;return w&&f&&await f.updateTaskStatus(w,"input_required"),await this.request(h,m,S)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:s,taskStore:f,taskRequestedTtl:d?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};(u??Promise.resolve()).then(()=>{if(u&&l.signal.aborted)throw new W(Y.ConnectionClosed,"Request was cancelled");d&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,p)).then(async h=>{if(l.signal.aborted)return;const m={result:h,jsonrpc:"2.0",id:t.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:m,timestamp:Date.now()},o?.sessionId):await o?.send(m)},async h=>{if(l.signal.aborted)return;const m={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(h.code)?h.code:Y.InternalError,message:h.message??"Internal error",...h.data!==void 0&&{data:h.data}}};s&&this._taskMessageQueue&&c?await this._enqueueTaskMessage(s,{type:"error",message:m,timestamp:Date.now()},o?.sessionId):await o?.send(m)}).catch(h=>this._onerror(new Error(`Failed to send response: ${h}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===l&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){const{progressToken:n,...r}=t.params,o=Number(n),s=this._progressHandlers.get(o);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}const i=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&i&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),i(c);return}s(r)}_onresponse(t){const n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),Po(t))r(t);else{const i=new W(t.error.code,t.error.message,t.error.data);r(i)}return}const o=this._responseHandlers.get(n);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(Po(t)&&t.result&&typeof t.result=="object"){const i=t.result;if(i.task&&typeof i.task=="object"){const a=i.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),Po(t))o(t);else{const i=W.fromError(t.error.code,t.error.message,t.error.data);o(i)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){const{task:o}=r??{};if(!o){try{yield{type:"result",result:await this.request(t,n,r)}}catch(i){yield{type:"error",error:i instanceof W?i:new W(Y.InternalError,String(i))}}return}let s;try{const i=await this.request(t,kl,r);if(i.task)s=i.task.taskId,yield{type:"taskCreated",task:i.task};else throw new W(Y.InternalError,"Task creation did not return a task");for(;;){const a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},Lt(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new W(Y.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new W(Y.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}const c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(i){yield{type:"error",error:i instanceof W?i:new W(Y.InternalError,String(i))}}}request(t,n,r){const{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{const d=w=>{l(w)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(w){d(w);return}r?.signal?.throwIfAborted();const f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[Zt]:c}});const h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch(C=>this._onerror(new Error(`Failed to send cancellation: ${C}`)));const x=w instanceof W?w:new W(Y.RequestTimeout,String(w));l(x)};this._responseHandlers.set(f,w=>{if(!r?.signal?.aborted){if(w instanceof Error)return l(w);try{const x=Mg(n,w.result);x.success?u(x.data):l(x.error)}catch(x){l(x)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});const m=r?.timeout??e$,_=()=>h(W.fromError(Y.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,_,r?.resetTimeoutOnProgress??!1);const S=c?.taskId;if(S){const w=x=>{const C=this._responseHandlers.get(f);C?C(x):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,w),this._enqueueTaskMessage(S,{type:"request",message:p,timestamp:Date.now()}).catch(x=>{this._cleanupTimeout(f),l(x)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch(w=>{this._cleanupTimeout(f),l(w)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},Sl,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},zl,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Dv,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);const r=n?.relatedTask?.taskId;if(r){const a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Zt]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Zt]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let i={...t,jsonrpc:"2.0"};n?.relatedTask&&(i={...i,params:{...i.params,_meta:{...i.params?._meta||{},[Zt]:n.relatedTask}}}),await this._transport.send(i,n)}setRequestHandler(t,n){const r=Od(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(o,s)=>{const i=Pd(t,o);return Promise.resolve(n(i,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){const r=Od(t);this._notificationHandlers.set(r,o=>{const s=Pd(t,o);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){const n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r??this._transport?.sessionId,o)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){const r=await this._taskMessageQueue.dequeueAll(t,n);for(const o of r)if(o.type==="request"&&Nd(o.message)){const s=o.message.id,i=this._requestResolvers.get(s);i?(i(new W(Y.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n,r){let o=this._options?.defaultTaskPollInterval??1e3;try{const s=await this._taskStore?.getTask(t,r);s?.pollInterval&&(o=s.pollInterval)}catch{}return new Promise((s,i)=>{if(n.aborted){i(new W(Y.InvalidRequest,"Request cancelled"));return}const a=setTimeout(s,o);n.addEventListener("abort",()=>{clearTimeout(a),i(new W(Y.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){const r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async o=>{if(!t)throw new Error("No request provided");return await r.createTask(o,t.id,{method:t.method,params:t.params},n)},getTask:async o=>{const s=await r.getTask(o,n);if(!s)throw new W(Y.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(o,s,i)=>{await r.storeTaskResult(o,s,i,n);const a=await r.getTask(o,n);if(a){const c=Qo.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Lt(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>r.getTaskResult(o,n),updateTaskStatus:async(o,s,i)=>{const a=await r.getTask(o,n);if(!a)throw new W(Y.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Lt(a.status))throw new W(Y.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(o,s,i,n);const c=await r.getTask(o,n);if(c){const u=Qo.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Lt(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>r.listTasks(o,n)}}}function Md(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function n$(e,t){const n={...e};for(const r in t){const o=r,s=t[o];if(s===void 0)continue;const i=n[o];Md(i)&&Md(s)?n[o]={...i,...s}:n[o]=s}return n}(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});class r$ extends t${_registeredMethods=new Set;_eventSlots=new Map;onEventDispatch(t,n){}_ensureEventSlot(t){let n=this._eventSlots.get(t);if(!n){let r=this.eventSchemas[t];if(!r)throw Error(`Unknown event: ${String(t)}`);n={listeners:[]},this._eventSlots.set(t,n);let o=r.shape.method.value;this._registeredMethods.add(o);let s=n;super.setNotificationHandler(r,i=>{let a=i.params;this.onEventDispatch(t,a),s.onHandler?.(a);for(let c of[...s.listeners])c(a)})}return n}setEventHandler(t,n){let r=this._ensureEventSlot(t);r.onHandler&&n&&console.warn(`[MCP Apps] on${String(t)} handler replaced. Use addEventListener("${String(t)}", …) to add multiple listeners without replacing.`),r.onHandler=n}getEventHandler(t){return this._eventSlots.get(t)?.onHandler}addEventListener(t,n){this._ensureEventSlot(t).listeners.push(n)}removeEventListener(t,n){let r=this._eventSlots.get(t);if(!r)return;let o=r.listeners.indexOf(n);o!==-1&&r.listeners.splice(o,1)}setRequestHandler=(t,n)=>{this._assertMethodNotRegistered(t,"setRequestHandler"),super.setRequestHandler(t,n)};setNotificationHandler=(t,n)=>{this._assertMethodNotRegistered(t,"setNotificationHandler"),super.setNotificationHandler(t,n)};warnIfRequestHandlerReplaced(t,n,r){n&&r&&console.warn(`[MCP Apps] ${t} handler replaced. Previous handler will no longer be called.`)}replaceRequestHandler=(t,n)=>{let r=t.shape.method.value;this._registeredMethods.add(r),super.setRequestHandler(t,n)};_assertMethodNotRegistered(t,n){let r=t.shape.method.value;if(this._registeredMethods.has(r))throw Error(`Handler for "${r}" already registered (via ${n}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._registeredMethods.add(r)}}var o$="2026-01-26",s$="ui/notifications/tool-input-partial";class fy{eventTarget;eventSource;messageListener;constructor(t=window.parent,n){this.eventTarget=t,this.eventSource=n,this.messageListener=r=>{if(n&&r.source!==this.eventSource){console.debug("Ignoring message from unknown source",r);return}let o=wv.safeParse(r.data);o.success?(console.debug("Parsed message",o.data),this.onmessage?.(o.data)):r.data?.jsonrpc!=="2.0"?console.debug("Ignoring non-JSON-RPC message",o.error.message,r):(console.error("Failed to parse message",o.error.message,r),this.onerror?.(Error("Invalid JSON-RPC message received: "+o.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(t,n){t.method!==s$&&console.debug("Sending message",t),this.eventTarget.postMessage(t,"*")}async close(){window.removeEventListener("message",this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion}var i$=H([v("light"),v("dark")]).describe("Color theme preference for the host environment."),ir=H([v("inline"),v("fullscreen"),v("pip")]).describe("Display mode for UI presentation."),a$=H([v("--color-background-primary"),v("--color-background-secondary"),v("--color-background-tertiary"),v("--color-background-inverse"),v("--color-background-ghost"),v("--color-background-info"),v("--color-background-danger"),v("--color-background-success"),v("--color-background-warning"),v("--color-background-disabled"),v("--color-text-primary"),v("--color-text-secondary"),v("--color-text-tertiary"),v("--color-text-inverse"),v("--color-text-ghost"),v("--color-text-info"),v("--color-text-danger"),v("--color-text-success"),v("--color-text-warning"),v("--color-text-disabled"),v("--color-border-primary"),v("--color-border-secondary"),v("--color-border-tertiary"),v("--color-border-inverse"),v("--color-border-ghost"),v("--color-border-info"),v("--color-border-danger"),v("--color-border-success"),v("--color-border-warning"),v("--color-border-disabled"),v("--color-ring-primary"),v("--color-ring-secondary"),v("--color-ring-inverse"),v("--color-ring-info"),v("--color-ring-danger"),v("--color-ring-success"),v("--color-ring-warning"),v("--font-sans"),v("--font-mono"),v("--font-weight-normal"),v("--font-weight-medium"),v("--font-weight-semibold"),v("--font-weight-bold"),v("--font-text-xs-size"),v("--font-text-sm-size"),v("--font-text-md-size"),v("--font-text-lg-size"),v("--font-heading-xs-size"),v("--font-heading-sm-size"),v("--font-heading-md-size"),v("--font-heading-lg-size"),v("--font-heading-xl-size"),v("--font-heading-2xl-size"),v("--font-heading-3xl-size"),v("--font-text-xs-line-height"),v("--font-text-sm-line-height"),v("--font-text-md-line-height"),v("--font-text-lg-line-height"),v("--font-heading-xs-line-height"),v("--font-heading-sm-line-height"),v("--font-heading-md-line-height"),v("--font-heading-lg-line-height"),v("--font-heading-xl-line-height"),v("--font-heading-2xl-line-height"),v("--font-heading-3xl-line-height"),v("--border-radius-xs"),v("--border-radius-sm"),v("--border-radius-md"),v("--border-radius-lg"),v("--border-radius-xl"),v("--border-radius-full"),v("--border-width-regular"),v("--shadow-hairline"),v("--shadow-sm"),v("--shadow-md"),v("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),c$=J(a$.describe(`Style variables for theming MCP apps.
70
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const s of e.seen.entries()){const a=s[1];if(t===s[0]){o(s);continue}if(e.external){const c=e.external.registry.get(s[0])?.id;if(t!==s[0]&&c){o(s);continue}}if(e.metadataRegistry.get(s[0])?.id){o(s);continue}if(a.cycle){o(s);continue}a.count>1&&e.reused==="ref"&&o(s)}e.external&&(e.sharedDefsExtractedFor=e.external)}function bv(e){const t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;const n=[];for(const r of t){if(!r||typeof r!="object")return;bv(r);const i=Object.keys(r);if(i.length!==1||i[0]!=="type")return;const o=r.type;for(const s of Array.isArray(o)?o:[o]){if(typeof s!="string")return;n.includes(s)||n.push(s)}}delete e.anyOf,e.type=n.length===1?n[0]:n}const wv=new Set(["type","properties","required","additionalProperties"]),mh=["oneOf","anyOf"];function gh(e){const t=e.additionalProperties;return t===void 0||t===!1||typeof t!="object"||t===null?null:Object.keys(t).length?t:null}function $u(e){const t=[];for(const o of e){if(typeof o!="object"||o.type!=="object")return null;for(const s in o)if(!wv.has(s))return null;t.push(o)}const n={},r=new Set;for(const o of t){for(const s in o.properties){if(Object.prototype.hasOwnProperty.call(n,s))continue;const a=[];for(const c of t){const l=c.properties?.[s]??gh(c);l!=null&&(a.some(d=>JSON.stringify(d)===JSON.stringify(l))||a.push(l))}const u=a.length===1?a[0]:$u(a)??{allOf:a};$t(n,s,u)}for(const s of o.required??[])r.add(s)}const i={type:"object",properties:n};if(r.size&&(i.required=[...r]),t.every(o=>o.additionalProperties===!1))i.additionalProperties=!1;else{const o=[];for(const s of t){const a=gh(s);a&&!o.some(u=>JSON.stringify(u)===JSON.stringify(a))&&o.push(a)}o.length===1?i.additionalProperties=o[0]:o.length>1&&(i.additionalProperties={allOf:o})}return i}function hx(e){const t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(const i of wv)if(i in e)return;const n=t.filter(i=>mh.some(o=>Array.isArray(i[o])));let r=null;if(!n.length)r=$u(t);else{const i=n[0],o=mh.find(u=>Array.isArray(i[u]));if(Object.keys(i).length!==1)return;const s=t.filter(u=>u!==i),a=i[o].map(u=>$u([...s,u]));if(a.some(u=>!u))return;r={[o]:a}}r&&(delete e.allOf,Kr(e,r))}function nr(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=a=>{const u=e.seen.get(a);if(u.ref===null)return;const c=u.def??u.schema,l={...c},d=u.ref;if(u.ref=null,d){r(d);const h=e.seen.get(d),p=h.schema;if(p.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(p)):Kr(c,p),Kr(c,l),a._zod.parent===d)for(const g in c)g==="$ref"||g==="allOf"||g in l||delete c[g];if(p.$ref&&h.def)for(const g in c)g==="$ref"||g==="allOf"||g in h.def&&JSON.stringify(c[g])===JSON.stringify(h.def[g])&&delete c[g]}const f=a._zod.parent;if(f&&f!==d){r(f);const h=e.seen.get(f);if(h?.schema.$ref&&(c.$ref=h.schema.$ref,h.def))for(const p in c)p==="$ref"||p==="allOf"||p in h.def&&JSON.stringify(c[p])===JSON.stringify(h.def[p])&&delete c[p]}e.override({zodSchema:a,jsonSchema:c,path:u.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(const a of[...e.seen.entries()].reverse())r(a[0]);if(e.target!=="openapi-3.0")for(const a of e.seen.entries())bv(a[1].def??a[1].schema);for(const a of e.deferred)a();if(e.intersections.length){const a=new Map;for(const u of e.seen.values())for(const c of[u.schema,u.def]){const l=c?.allOf;if(!Array.isArray(l))continue;const d=a.get(l);d?d.push(c):a.set(l,[c])}for(const u of e.intersections)for(const c of a.get(u)??[])hx(c)}}const i={};if(e.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(a)}Kr(i,n.defId?n.schema:n.def??n.schema);const o=e.metadataRegistry.get(t)?.id;o!==void 0&&i.id===o&&delete i.id;const s=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(const a of e.seen.entries()){const u=a[1];u.def&&u.defId&&(u.def.id===u.defId&&delete u.def.id,$t(s,u.defId,u.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{const a=JSON.parse(JSON.stringify(i));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:ei(t,"input",e.processors),output:ei(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function pt(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return pt(r.element,n);if(r.type==="set")return pt(r.valueType,n);if(r.type==="lazy")return pt(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault"||r.type==="catch")return pt(r.innerType,n);if(r.type==="intersection")return pt(r.left,n)||pt(r.right,n);if(r.type==="record"||r.type==="map")return pt(r.keyType,n)||pt(r.valueType,n);if(r.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:pt(r.in,n)||pt(r.out,n);if(r.type==="object"){for(const i in r.shape)if(pt(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(pt(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(pt(i,n))return!0;return!!(r.rest&&pt(r.rest,n))}return!1}const _v=(e,t={})=>n=>{const r=er({...n,processors:t});return Re(e,r),tr(r,e),nr(r,e)},ei=(e,t,n={})=>r=>{const{libraryOptions:i,target:o}=r??{},s=er({...i??{},target:o,io:t,processors:n});return Re(e,s),tr(s,e),nr(s,e)},rr=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},ir=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},yh=(e,t)=>{rr(e,"minimum",t),ir(e,"maximum",t)},kv=(e,t)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(t)||e.multipleOf.push(t)},Sv=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},xv=(e,t)=>{e.mime=e.mime?e.mime.filter(n=>t.includes(n)):[...t]},Ev=(e,t)=>{e.format=t,t.includes("int")&&(e.isInt=!0)},vh=(e,t)=>rr(e,"minimum",t.minimum),bh=(e,t)=>ir(e,"maximum",t.maximum),wh=e=>(t,n)=>{Ev(t,n.format);const[r,i]=e[n.format];rr(t,"minimum",r),ir(t,"maximum",i)},px={greater_than:(e,t)=>rr(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>ir(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>kv(e,t.value),number_format:wh(rc),bigint_format:wh(ic),min_length:vh,max_length:bh,length_equals:(e,t)=>yh(e,t.length),min_size:vh,max_size:bh,size_equals:(e,t)=>yh(e,t.size),string_format:(e,t)=>{Ev(e,t.format),t.pattern&&Sv(e,t.pattern),(t.format==="base64"||t.format==="base64url")&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>xv(e,t.mime)};function Xe(e){const t={},n=e._zod.def,r=e._zod.traits.has("$ZodCheck")?[e,...n.checks??[]]:n.checks??[];for(const o of r)px[o._zod.def.check]?.(t,o._zod.def);const i=e._zod.bag;i.minimum!==void 0&&rr(t,"minimum",i.minimum),i.exclusiveMinimum!==void 0&&rr(t,"exclusiveMinimum",i.exclusiveMinimum),i.maximum!==void 0&&ir(t,"maximum",i.maximum),i.exclusiveMaximum!==void 0&&ir(t,"exclusiveMaximum",i.exclusiveMaximum),i.multipleOf!==void 0&&kv(t,i.multipleOf),i.format!==void 0&&(t.format??(t.format=i.format),i.format.includes("int")&&(t.isInt=!0)),i.mime&&xv(t,i.mime);for(const o of i.patterns??[])Sv(t,o);return t}const mx={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},gx=new Map([[Dc,Am],[Es,Im]]),$v=e=>gx.get(e)??e,Tv=(e,t,n,r)=>{const i=n;i.type="string";const{minimum:o,maximum:s,format:a,patterns:u,contentEncoding:c,laxFormat:l}=Xe(e);if(typeof o=="number"&&(i.minLength=o),typeof s=="number"&&(i.maxLength=s),a&&(i.format=mx[a]??a,i.format===""&&delete i.format,(a==="time"||l)&&delete i.format),c&&(i.contentEncoding=c),u&&u.size>0){const d=[...u].map($v);d.length===1?i.pattern=d[0].source:d.length>1&&(i.allOf=[...d.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Cv=(e,t,n,r)=>{const i=n,{minimum:o,maximum:s,multipleOf:a,exclusiveMaximum:u,exclusiveMinimum:c,isInt:l}=Xe(e);i.type=l?"integer":"number";const d=typeof c=="number"&&c>=(o??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(s??Number.POSITIVE_INFINITY),h=t.target==="draft-04"||t.target==="openapi-3.0";if(d?h?(i.minimum=c,i.exclusiveMinimum=!0):i.exclusiveMinimum=c:typeof o=="number"&&(i.minimum=o),f?h?(i.maximum=u,i.exclusiveMaximum=!0):i.exclusiveMaximum=u:typeof s=="number"&&(i.maximum=s),a){const p=new Set;for(const w of a)Number.isFinite(w)&&w!==0?p.add(Math.abs(w)):Qe(e,t,i,r,`A multipleOf divisor of ${w} cannot be represented in JSON Schema`);const[m,...g]=p;m!==void 0&&(i.multipleOf=m),g.length&&(i.allOf=[...i.allOf??[],...g.map(w=>({multipleOf:w}))])}},Av=(e,t,n,r)=>{n.type="boolean"},Iv=(e,t,n,r)=>{Qe(e,t,n,r,"BigInt cannot be represented in JSON Schema")},Nv=(e,t,n,r)=>{Qe(e,t,n,r,"Symbols cannot be represented in JSON Schema")},zv=(e,t,n,r)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},Rv=(e,t,n,r)=>{Qe(e,t,n,r,"Undefined cannot be represented in JSON Schema")},Lv=(e,t,n,r)=>{Qe(e,t,n,r,"Void cannot be represented in JSON Schema")},Pv=(e,t,n,r)=>{n.not={}},Dv=(e,t,n,r)=>{},Ov=(e,t,n,r)=>{},Mv=(e,t,n,r)=>{Qe(e,t,n,r,"Date cannot be represented in JSON Schema")},Fv=(e,t,n,r)=>{const i=e._zod.def,o=Wo(i.entries);if(o.length===0){n.not={};return}o.every(s=>typeof s=="number")&&(n.type="number"),o.every(s=>typeof s=="string")&&(n.type="string"),n.enum=o},Uv=(e,t,n,r)=>{const i=e._zod.def;if(i.values.length===0){n.not={};return}const o=[];for(const s of i.values)if(s===void 0){if(Qe(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof s=="bigint"){if(Qe(e,t,n,r,"BigInt literals cannot be represented in JSON Schema"))return;o.push(Number(s))}else o.push(s);if(o.length!==0)if(o.length===1){const s=o[0];n.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[s]:n.const=s}else o.every(s=>typeof s=="number")&&(n.type="number"),o.every(s=>typeof s=="string")&&(n.type="string"),o.every(s=>typeof s=="boolean")&&(n.type="boolean"),o.every(s=>s===null)&&(n.type="null"),n.enum=o},Gv=(e,t,n,r)=>{Qe(e,t,n,r,"NaN cannot be represented in JSON Schema")},jv=(e,t,n,r)=>{const i=n,o=e._zod.pattern;if(!o)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=o.source},Zv=(e,t,n,r)=>{const i=n;i.type="string",i.format="binary",i.contentEncoding="binary";const{minimum:o,maximum:s,mime:a}=Xe(e);o!==void 0&&(i.minLength=o),s!==void 0&&(i.maxLength=s),a&&(a.length===0?i.not={}:a.length===1?i.contentMediaType=a[0]:i.anyOf=a.map(u=>({contentMediaType:u})))},Bv=(e,t,n,r)=>{n.type="boolean"},Vv=(e,t,n,r)=>{Qe(e,t,n,r,"Custom types cannot be represented in JSON Schema")},Hv=(e,t,n,r)=>{Qe(e,t,n,r,"Function types cannot be represented in JSON Schema")},qv=(e,t,n,r)=>{Qe(e,t,n,r,"Transforms cannot be represented in JSON Schema")},Wv=(e,t,n,r)=>{Qe(e,t,n,r,"Map cannot be represented in JSON Schema")},Kv=(e,t,n,r)=>{Qe(e,t,n,r,"Set cannot be represented in JSON Schema")},Jv=(e,t,n,r)=>{const i=n,o=e._zod.def,{minimum:s,maximum:a}=Xe(e);typeof s=="number"&&(i.minItems=s),typeof a=="number"&&(i.maxItems=a),i.type="array",i.items=Re(o.element,t,{...r,path:[...r.path,"items"]})};function ti(e){const t=e._zod.def;return t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform")?ti(t.out):t.type==="catch"?ti(t.innerType):e._zod.optin}const Yv=(e,t,n,r)=>{const i=n,o=e._zod.def,s=o.shape;if(Object.getOwnPropertySymbols(s).length&&Qe(e,t,i,r,"Symbol keys cannot be represented in JSON Schema"))return;i.type="object",i.properties={};for(const c in s)$t(i.properties,c,Re(s[c],t,{...r,path:[...r.path,"properties",c]}));const u=[];for(const c of Object.keys(s)){const l=o.shape[c];(t.io==="input"?ti(l)===void 0:l._zod.optout===void 0)&&u.push(c)}u.length>0&&(i.required=u),o.catchall?._zod.def.type==="never"?i.additionalProperties=!1:o.catchall?o.catchall&&(i.additionalProperties=Re(o.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(i.additionalProperties=!1)},Al=(e,t,n,r)=>{const i=e._zod.def,o=i.inclusive===!1,s=i.options.map((a,u)=>Re(a,t,{...r,path:[...r.path,o?"oneOf":"anyOf",u]}));o?n.oneOf=s:n.anyOf=s},Xv=(e,t,n,r)=>{const i=e._zod.def,o=Re(i.left,t,{...r,path:[...r.path,"allOf",0]}),s=Re(i.right,t,{...r,path:[...r.path,"allOf",1]}),a=c=>"allOf"in c&&Object.keys(c).length===1,u=[...a(o)?o.allOf:[o],...a(s)?s.allOf:[s]];n.allOf=u,t.intersections.push(u)},Qv=(e,t,n,r)=>{const i=n,o=e._zod.def;i.type="array";const s=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",u=o.items.map((m,g)=>Re(m,t,{...r,path:[...r.path,s,g]})),c=o.rest?Re(o.rest,t,{...r,path:[...r.path,a,...t.target==="openapi-3.0"?[o.items.length]:[]]}):null;let l=o.items.length;for(;l>0;){const m=o.items[l-1];if(!(t.io==="input"?ti(m)!==void 0:m._zod.optout==="optional"))break;l--}const d=o.items.length,f=!o.rest;t.target==="draft-2020-12"?(i.prefixItems=u,f?i.items=!1:c&&(i.items=c),l>0&&(i.minItems=l),f&&(i.maxItems=d)):t.target==="openapi-3.0"?(i.items={anyOf:u},c&&i.items.anyOf.push(c),l>0&&(i.minItems=l),f&&(i.maxItems=d)):(i.items=u,f?i.additionalItems=!1:c&&(i.additionalItems=c),l>0&&(i.minItems=l),f&&(i.maxItems=d));const{minimum:h,maximum:p}=Xe(e);typeof h=="number"&&(i.minItems=h),typeof p=="number"&&(i.maxItems=p)};function Tu(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);const p=e.get(t)?.def;if(!p)return t;const m=Tu(e,p,n);return m===p?t:m}for(const p of["anyOf","oneOf"]){const m=t[p];if(!Array.isArray(m))continue;const g=m.map(w=>Tu(e,w,n));g.some((w,y)=>w!==m[y])&&(t={...t,[p]:g})}const r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes("string")&&r.some(p=>p==="number"||p==="integer"),o=t.enum??(t.const!==void 0?[t.const]:void 0);if(!i&&!o?.some(p=>typeof p=="number"))return t;const{minimum:s,maximum:a,exclusiveMinimum:u,exclusiveMaximum:c,multipleOf:l,format:d,id:f,...h}=t;return h.enum?h.enum=h.enum.map(p=>typeof p=="number"?String(p):p):typeof h.const=="number"&&(h.const=String(h.const)),i&&(h.type="string",o||(h.pattern=(r.includes("number")?dr:Sc).source)),h}const Cu=new WeakMap;function yx(e){const t=new Map;for(const r of e.seen.values())r.def&&!t.has(r.schema)&&t.set(r.schema,r);const n=new Map;for(const r of Cu.get(e)??[]){const i=e.seen.get(r),o=(i?.def??i?.schema)?.propertyNames;if(!o||o===!0||n.has(o))continue;const s=Tu(t,o,new Set);s!==o&&n.set(o,s)}if(n.size)for(const r of e.seen.values())for(const i of[r.schema,r.def]){const o=i&&n.get(i.propertyNames);o&&(i.propertyNames=o)}}const eb=(e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object";const s=o.keyType,a=Xe(s).patterns;if(o.mode==="loose"&&a&&a.size>0){const l=Re(o.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(const d of a)$t(i.patternProperties,$v(d).source,l)}else{if(t.target==="draft-07"||t.target==="draft-2020-12"){i.propertyNames=Re(o.keyType,t,{...r,path:[...r.path,"propertyNames"]});let l=Cu.get(t);l||(l=[],Cu.set(t,l),t.deferred.push(()=>yx(t))),l.push(e)}i.additionalProperties=Re(o.valueType,t,{...r,path:[...r.path,"additionalProperties"]})}const u=s._zod.values,c=t.io==="input"&&ti(o.valueType)!==void 0;if(u&&!o.partial&&!c){const l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(i.required=l.map(String))}},tb=(e,t,n,r)=>{const i=e._zod.def,o=Re(i.innerType,t,r),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=i.innerType,n.nullable=!0):n.anyOf=[o,{type:"null"}]},nb=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType},Il=Symbol();function rb(e,t,n,r,i){let o=!1;const s=JSON.stringify(e,(a,u)=>typeof u!="bigint"?u:(o=!0,null));return o?(Qe(t,n,r,i,"BigInt defaults cannot be represented in JSON Schema"),Il):JSON.parse(s)}const ib=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType;const s=rb(i.defaultValue,e,t,n,r);s!==Il&&(n.default=s)},ob=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);if(o.ref=i.innerType,t.io!=="input")return;const s=rb(i.defaultValue,e,t,n,r);s!==Il&&(n._prefault=s)},sb=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType;let s;try{s=i.catchValue(void 0)}catch{Qe(e,t,n,r,"Dynamic catch values are not supported in JSON Schema");return}n.default=s},ab=(e,t,n,r)=>{const i=e._zod.def,o=i.in._zod.traits.has("$ZodTransform"),s=t.io==="input"?o?i.out:i.in:i.out;Re(s,t,r);const a=t.seen.get(e);a.ref=s},ub=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType,n.readOnly=!0},cb=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType},Nl=(e,t,n,r)=>{const i=e._zod.def;Re(i.innerType,t,r);const o=t.seen.get(e);o.ref=i.innerType},lb=(e,t,n,r)=>{const i=e._zod.innerType;Re(i,t,r);const o=t.seen.get(e);o.ref=i},Au={string:Tv,number:Cv,boolean:Av,bigint:Iv,symbol:Nv,null:zv,undefined:Rv,void:Lv,never:Pv,any:Dv,unknown:Ov,date:Mv,enum:Fv,literal:Uv,nan:Gv,template_literal:jv,file:Zv,success:Bv,custom:Vv,function:Hv,transform:qv,map:Wv,set:Kv,array:Jv,object:Yv,union:Al,intersection:Xv,tuple:Qv,record:eb,nullable:tb,nonoptional:nb,default:ib,prefault:ob,catch:sb,pipe:ab,readonly:ub,promise:cb,optional:Nl,lazy:lb};function zl(e,t){if("_idmap"in e){const r=e,i=er({...t,processors:Au}),o={};for(const u of r._idmap.entries()){const[c,l]=u;Re(l,i)}const s={},a={registry:r,uri:t?.uri,defs:o};i.external=a;for(const u of r._idmap.entries()){const[c,l]=u;tr(i,l),$t(s,c,nr(i,l))}if(Object.keys(o).length>0){const u=i.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[u]:o}}return{schemas:s}}const n=er({...t,processors:Au});return Re(e,n),tr(n,e),nr(n,e)}class vx{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let n=t?.target??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=er({processors:Au,target:n,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,n={path:[],schemaPath:[]}){return Re(t,this.ctx,n)}emit(t,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),this.ctx.sharedDefsExtractedFor=void 0,this.ctx.sharedEmitDoneFor=void 0,tr(this.ctx,t);const r=nr(this.ctx,t),{"~standard":i,...o}=r;return o}}const bx=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),db=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:Wg,$ZodArray:Qg,$ZodAsyncError:en,$ZodBase64:Dg,$ZodBase64URL:Og,$ZodBigInt:Zc,$ZodBigIntFormat:Bg,$ZodBoolean:jc,$ZodCIDRv4:Lg,$ZodCIDRv6:Pg,$ZodCUID:kg,$ZodCUID2:Sg,$ZodCatch:_y,$ZodCheck:Me,$ZodCheckBigIntFormat:Jm,$ZodCheckEndsWith:ug,$ZodCheckGreaterThan:Tc,$ZodCheckIncludes:sg,$ZodCheckLengthEquals:ng,$ZodCheckLessThan:$c,$ZodCheckLowerCase:ig,$ZodCheckMaxLength:eg,$ZodCheckMaxSize:Ym,$ZodCheckMimeType:dg,$ZodCheckMinLength:tg,$ZodCheckMinSize:Xm,$ZodCheckMultipleOf:Wm,$ZodCheckNumberFormat:Km,$ZodCheckOverwrite:fg,$ZodCheckProperties:lg,$ZodCheckProperty:cg,$ZodCheckRegex:rg,$ZodCheckSizeEquals:Qm,$ZodCheckStartsWith:ag,$ZodCheckStringFormat:yi,$ZodCheckUpperCase:og,$ZodCodec:Wc,$ZodCreditCard:Fg,$ZodCustom:Cy,$ZodCustomStringFormat:jg,$ZodCyclicError:Ay,$ZodDate:Xg,$ZodDefault:yy,$ZodDiscriminatedUnion:sy,$ZodE164:Mg,$ZodEmail:yg,$ZodEmoji:wg,$ZodEncodeError:gs,$ZodEnum:dy,$ZodError:um,$ZodExactOptional:my,$ZodFile:hy,$ZodFunction:$y,$ZodGUID:mg,$ZodIBAN:Ug,$ZodIPv4:Ng,$ZodIPv6:zg,$ZodISODate:Cg,$ZodISODateTime:Tg,$ZodISODuration:Ig,$ZodISOTime:Ag,$ZodIntersection:ay,$ZodJWT:Gg,$ZodKSUID:$g,$ZodLazy:Kc,$ZodLiteral:fy,$ZodMAC:Rg,$ZodMap:cy,$ZodNaN:ky,$ZodNanoID:_g,$ZodNever:Jg,$ZodNonOptional:by,$ZodNull:qg,$ZodNullable:gy,$ZodNumber:Gc,$ZodNumberFormat:Zg,$ZodObject:ny,$ZodObjectJIT:ry,$ZodOptional:Hc,$ZodPipe:qc,$ZodPrefault:vy,$ZodPreprocess:Sy,$ZodPromise:Ty,$ZodReadonly:xy,$ZodRealError:Tt,$ZodRecord:uy,$ZodRegistry:zy,$ZodSet:ly,$ZodString:vi,$ZodStringFormat:Pe,$ZodSuccess:wy,$ZodSymbol:Vg,$ZodTemplateLiteral:Ey,$ZodTransform:py,$ZodTuple:Vc,$ZodType:le,$ZodULID:xg,$ZodURL:bg,$ZodUUID:gg,$ZodUndefined:Hg,$ZodUnion:$s,$ZodUnknown:Kg,$ZodVoid:Yg,$ZodXID:Eg,$ZodXor:iy,$brand:cc,$constructor:k,$input:el,$output:Qc,Doc:Cc,INVALID:yt,JSONSchema:bx,JSONSchemaGenerator:vx,NEVER:uc,TimePrecision:xl,URL_BAD_FORMAT:Ic,URL_UNPARSEABLE:Xr,ZodCompileAsyncError:an,ZodCompileUnsupportedError:ke,_any:rv,_array:lv,_base64:wl,_base64url:_l,_bigint:Jy,_boolean:Wy,_catch:ax,_check:mv,_cidrv4:vl,_cidrv6:bl,_coercedBigint:Yy,_coercedBoolean:Ky,_coercedDate:uv,_coercedNumber:jy,_coercedString:Oy,_creditCard:Fy,_cuid:dl,_cuid2:fl,_custom:fv,_date:av,_decode:hc,_decodeAsync:mc,_default:ix,_discriminatedUnion:HS,_e164:kl,_email:rl,_emoji:cl,_encode:fc,_encodeAsync:pc,_endsWith:xi,_enum:XS,_file:dv,_float32:By,_float64:Vy,_gt:cn,_gte:Et,_guid:il,_iban:Uy,_includes:ki,_int:Zy,_int32:Hy,_int64:Xy,_intersection:qS,_ipv4:gl,_ipv6:yl,_isoDate:$l,_isoDateTime:El,_isoDuration:Cl,_isoTime:Tl,_jwt:Sl,_ksuid:ml,_lazy:dx,_length:pr,_literal:ex,_lowercase:wi,_lt:un,_lte:xt,_mac:My,_map:JS,_max:xt,_maxLength:hr,_maxSize:Zn,_mime:$i,_min:Et,_minLength:kn,_minSize:ln,_multipleOf:Fn,_nan:cv,_nanoid:ll,_nativeEnum:QS,_negative:Ls,_never:ov,_nonnegative:Ds,_nonoptional:ox,_nonpositive:Ps,_normalize:Ti,_null:nv,_nullable:rx,_number:Gy,_optional:nx,_overwrite:Yt,_parse:di,_parseAsync:fi,_pipe:ux,_positive:Rs,_promise:fx,_properties:Ei,_property:Os,_readonly:cx,_record:KS,_refine:hv,_regex:bi,_safeDecode:yc,_safeDecodeAsync:bc,_safeEncode:gc,_safeEncodeAsync:vc,_safeParse:hi,_safeParseAsync:pi,_set:YS,_size:fr,_slugify:Ni,_startsWith:Si,_string:Dy,_stringFormat:mr,_stringbool:vv,_success:sx,_superRefine:pv,_symbol:ev,_templateLiteral:lx,_toLowerCase:Ai,_toUpperCase:Ii,_transform:tx,_trim:Ci,_tuple:WS,_uint32:qy,_uint64:Qy,_ulid:hl,_undefined:tv,_union:BS,_unknown:iv,_uppercase:_i,_url:zs,_uuid:ol,_uuidv4:sl,_uuidv6:al,_uuidv7:ul,_void:sv,_xid:pl,_xor:VS,base64Charset:Dc,base64urlCharset:Es,canParseURL:Nc,clone:Oe,compile:tl,compileFn:Is,config:Ye,createStandardJSONSchemaMethod:ei,createToJSONSchemaMethod:_v,decode:nk,decodeAsync:ik,describe:gv,encode:tk,encodeAsync:rk,extractDefs:tr,finalize:nr,flattenError:ys,formatError:vs,getDiscriminatedOption:Bc,globalConfig:gt,globalRegistry:kt,handleUnrepresentable:Qe,initializeContext:er,isBackEdge:Yc,isRecursiveSchema:Jc,isValidBase64:xs,isValidBase64URL:Oc,isValidCIDRv6:Pc,isValidCreditCard:Mc,isValidIBAN:Fc,isValidIPv6:Ss,isValidJWT:Uc,locales:Xc,memoizer:Ts,mergeValues:Qr,meta:yv,parse:bu,parseAsync:wu,parseURLObject:vg,prettifyError:dc,process:Re,processSchema:Re,regexes:ks,registry:Cs,safeDecode:sk,safeDecodeAsync:uk,safeEncode:ok,safeEncodeAsync:ak,safeParse:lm,safeParseAsync:Y_,standardProps:Ac,stripTabAndNewline:Qo,toDotPath:cm,toJSONSchema:zl,toZod:ls,treeifyError:lc,urlHostnameOk:Rc,urlProtocolOk:Lc,util:ac,validate:ws,validateAsync:_s,validateURL:zc,version:hg,withParser:As},Symbol.toStringTag,{value:"Module"})),_h=Symbol("z.visit/resolving");function Rl(e,t){const n=typeof t=="function"?t:(s,a)=>{const u=t[s._zod.def.type];return u?u(s,a):s},r=new Map;function i(s){const a=r.get(s);if(a===_h)return new Kc({type:"lazy",getter:()=>r.get(s)});if(a!==void 0)return a;r.set(s,_h);const u=o(s),c=n(u,u!==s);return r.set(s,c),c}function o(s){const a=s._zod.def;switch(a.type){case"object":{const c=a.shape,l=Object.keys(c);let d=!1;const f={};for(const p of l){const m=i(c[p]);m!==c[p]&&(d=!0),f[p]=m}let h=a.catchall;return a.catchall&&(h=i(a.catchall),h!==a.catchall&&(d=!0)),d?Oe(s,{...a,shape:f,catchall:h}):s}case"array":{const c=i(a.element);return c===a.element?s:Oe(s,{...a,element:c})}case"tuple":{const c=a.items;let l=!1;const d=[];for(const h of c){const p=i(h);p!==h&&(l=!0),d.push(p)}let f=a.rest;return a.rest&&(f=i(a.rest),f!==a.rest&&(l=!0)),l?Oe(s,{...a,items:d,rest:f}):s}case"record":case"map":{const c=i(a.keyType),l=i(a.valueType);return c===a.keyType&&l===a.valueType?s:Oe(s,{...a,keyType:c,valueType:l})}case"set":{const c=i(a.valueType);return c===a.valueType?s:Oe(s,{...a,valueType:c})}case"union":{const c=a.options;let l=!1;const d=[];for(const f of c){const h=i(f);h!==f&&(l=!0),d.push(h)}return l?Oe(s,{...a,options:d}):s}case"intersection":{const c=i(a.left),l=i(a.right);return c===a.left&&l===a.right?s:Oe(s,{...a,left:c,right:l})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{const c=i(a.innerType);return c===a.innerType?s:Oe(s,{...a,innerType:c})}case"pipe":{const c=i(a.in),l=i(a.out);return c===a.in&&l===a.out?s:Oe(s,{...a,in:c,out:l})}case"function":{const c=i(a.input),l=i(a.output);return c===a.input&&l===a.output?s:Oe(s,{...a,input:c,output:l})}case"lazy":{const c=a.getter,{_cachedInner:l,...d}=a;return Oe(s,{...d,getter:()=>i(c())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return s;default:return s}}return i(e)}function Ll(e){return!!e._zod}function fb(e,t){return Ll(e)?lm(e,t):e.safeParse(t)}function wx(e){if(!e)return;let t;if(Ll(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function _x(e){if(Ll(e)){const o=e._zod?.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}const n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}const r=e.value;if(r!==void 0)return r}const kx=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(o){return e[o]??null}const n={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",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",currency_code:"currency code",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};function i(o,s){return o==="number"&&typeof s=="number"&&!Number.isFinite(s)?String(s):r[o]??o}return o=>{switch(o.code){case"invalid_type":{const s=i(o.expected),a=nm(o.input),u=i(a,o.input);return`Invalid input: expected ${s}, received ${u}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${nc(o.values[0])}`:`Invalid option: expected one of ${gu(o.values,"|")}`;case"too_big":{const s=o.exact?"exactly ":o.inclusive?"<=":"<",a=t(o.origin);return a?`Too big: expected ${o.origin??"value"} to have ${s}${o.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${s}${o.maximum.toString()}`}case"too_small":{const s=o.exact?"exactly ":o.inclusive?">=":">",a=t(o.origin);return a?`Too small: expected ${o.origin} to have ${s}${o.minimum.toString()} ${a.unit}`:`Too small: expected ${o.origin} to be ${s}${o.minimum.toString()}`}case"invalid_format":{const s=o;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${n[s.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${gu(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return o.options&&Array.isArray(o.options)&&o.options.length>0?`Invalid discriminator value. Expected ${o.options.map(a=>`'${a}'`).join(" | ")}`:o.inclusive===!1?"Invalid input: more than one option matched":"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function Sx(){return{localeError:kx()}}const xx=Object.freeze(Object.defineProperty({__proto__:null,endsWith:xi,gt:cn,gte:Et,includes:ki,length:pr,lowercase:wi,lt:un,lte:xt,maxLength:hr,maxSize:Zn,mime:$i,minLength:kn,minSize:ln,multipleOf:Fn,negative:Ls,nonnegative:Ds,nonpositive:Ps,normalize:Ti,overwrite:Yt,positive:Rs,properties:Ei,property:Os,regex:bi,size:fr,slugify:Ni,startsWith:Si,toLowerCase:Ai,toUpperCase:Ii,trim:Ci,uppercase:_i},Symbol.toStringTag,{value:"Module"})),kh=new WeakSet([Object.prototype,Error.prototype]);function Eo(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){const r=n(this);return Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0})}})}const hb=(e,t)=>{um.init(e,t),e.name="ZodError";const n=Object.getPrototypeOf(e);kh.has(n)||(kh.add(n),Eo(n,"format",r=>i=>vs(r,i)),Eo(n,"flatten",r=>i=>ys(r,i)),Eo(n,"addIssue",r=>i=>{r.issues.push(i),r.message=JSON.stringify(r.issues,Ko,2)}),Eo(n,"addIssues",r=>i=>{r.issues.push(...i),r.message=JSON.stringify(r.issues,Ko,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},pb=k("ZodError",hb),bt=k("ZodError",hb,void 0,{Parent:Error}),Pl=di(bt),Dl=fi(bt),Ol=hi(bt),Ml=pi(bt),Fl=fc(bt),Ul=hc(bt),Gl=pc(bt),jl=mc(bt),Zl=gc(bt),Bl=yc(bt),Vl=vc(bt),Hl=bc(bt);function Ex(){gt.localeError||Ye(Sx())}function Bn(){gt.memoizer||Ye({memoizer:Ts()})}const fe=k("ZodType",(e,t)=>(Ex(),le.init(e,t),e.def=t,e.type=t.type,e),{check(...e){const t=this.def;return this.clone(ct(t,{checks:[...t.checks??[],...e.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Oe(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Ea(e,t))},superRefine(e,t){return this.check($a(e,t))},overwrite(e){return this.check(Yt(e))},optional(){return De(this)},exactOptional(){return oa(this)},nullable(){return sr(this)},nullish(){return De(sr(this))},nonoptional(e){return da(this,e)},array(){return oe(this)},or(e){return ge([this,e])},and(e){return Tr(this,e)},transform(e){return ri(this,to(e))},default(e){return ua(this,e)},prefault(e){return la(this,e)},catch(e){return pa(this,e)},pipe(e){return ri(this,e)},readonly(){return va(this)},describe(e){const t=this.clone();return kt.add(t,{description:e}),t},meta(...e){if(e.length===0)return kt.get(this);const t=this.clone();return kt.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return ms(this,"~standard",{...Ac(this),jsonSchema:{input:ei(this,"input"),output:ei(this,"output")}})},set"~standard"(e){sn(this,"~standard",e)},parse:function e(t,n){return Pl(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Dl(this,t,n,{callee:e})},safeParse(e,t){return Ol(this,e,t)},async safeParseAsync(e,t){return Ml(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){sn(this,"spa",e)},validate(e,t){return ws(this,e,t)},validateAsync(e,t){return _s(this,e,t)},encode:function e(t,n){return Fl(this,t,n,{callee:e})},decode:function e(t,n){return Ul(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Gl(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await jl(this,t,n,{callee:e})},safeEncode(e,t){return Zl(this,e,t)},safeDecode(e,t){return Bl(this,e,t)},async safeEncodeAsync(e,t){return Vl(this,e,t)},async safeDecodeAsync(e,t){return Hl(this,e,t)},toJSONSchema(e){return _v(this,{})(e)},get description(){return kt.get(this)?.description},get _def(){return this._zod.def}}),zi=k("_ZodString",(e,t)=>{vi.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Tv(e,n,r)},li({format:e=>Xe(e).format??null,minLength:e=>Xe(e).minimum??null,maxLength:e=>Xe(e).maximum??null},{regex(...e){return this.check(bi(...e))},includes(...e){return this.check(ki(...e))},startsWith(...e){return this.check(Si(...e))},endsWith(...e){return this.check(xi(...e))},min(...e){return this.check(kn(...e))},max(...e){return this.check(hr(...e))},length(...e){return this.check(pr(...e))},nonempty(...e){return this.check(kn(1,...e))},lowercase(e){return this.check(wi(e))},uppercase(e){return this.check(_i(e))},trim(){return this.check(Ci())},normalize(...e){return this.check(Ti(...e))},toLowerCase(){return this.check(Ai())},toUpperCase(){return this.check(Ii())},slugify(){return this.check(Ni())}})),gr=k("ZodString",(e,t)=>{vi.init(e,t),zi.init(e,t)},{email(e){return this.check(rl(Ri,e))},url(e){return this.check(zs(_r,e))},jwt(e){return this.check(Sl(Ki,e))},emoji(e){return this.check(cl(Pi,e))},guid(e){return this.check(il(Li,e))},uuid(e){return this.check(ol(Bt,e))},uuidv4(e){return this.check(sl(Bt,e))},uuidv6(e){return this.check(al(Bt,e))},uuidv7(e){return this.check(ul(Bt,e))},nanoid(e){return this.check(ll(Di,e))},cuid(e){return this.check(dl(Oi,e))},cuid2(e){return this.check(fl(Mi,e))},ulid(e){return this.check(hl(Fi,e))},base64(e){return this.check(wl(Hi,e))},base64url(e){return this.check(_l(qi,e))},xid(e){return this.check(pl(Ui,e))},ksuid(e){return this.check(ml(Gi,e))},ipv4(e){return this.check(gl(ji,e))},ipv6(e){return this.check(yl(Zi,e))},cidrv4(e){return this.check(vl(Bi,e))},cidrv6(e){return this.check(bl(Vi,e))},e164(e){return this.check(kl(Wi,e))},datetime(e){return this.check(El(yr,e))},date(e){return this.check($l(vr,e))},time(e){return this.check(Tl(br,e))},duration(e){return this.check(Cl(wr,e))}});function x(e){return Dy(gr,e)}const ze=k("ZodStringFormat",(e,t)=>{Pe.init(e,t),zi.init(e,t)}),yr=k("ZodISODateTime",(e,t)=>{Tg.init(e,t),ze.init(e,t)}),vr=k("ZodISODate",(e,t)=>{Cg.init(e,t),ze.init(e,t)}),br=k("ZodISOTime",(e,t)=>{Ag.init(e,t),ze.init(e,t)}),wr=k("ZodISODuration",(e,t)=>{Ig.init(e,t),ze.init(e,t)}),Ri=k("ZodEmail",(e,t)=>{yg.init(e,t),ze.init(e,t)});function ql(e){return rl(Ri,e)}const Li=k("ZodGUID",(e,t)=>{mg.init(e,t),ze.init(e,t)});function Wl(e){return il(Li,e)}const Bt=k("ZodUUID",(e,t)=>{gg.init(e,t),ze.init(e,t)});function Kl(e){return ol(Bt,e)}function Jl(e){return sl(Bt,e)}function Yl(e){return al(Bt,e)}function Xl(e){return ul(Bt,e)}const _r=k("ZodURL",(e,t)=>{bg.init(e,t),ze.init(e,t)});function Ql(e){return zs(_r,e)}function ed(e){return zs(_r,{protocol:wc,hostname:zm,...A(e)})}const Pi=k("ZodEmoji",(e,t)=>{wg.init(e,t),ze.init(e,t)});function td(e){return cl(Pi,e)}const Di=k("ZodNanoID",(e,t)=>{_g.init(e,t),ze.init(e,t)});function nd(e){return ll(Di,e)}const Oi=k("ZodCUID",(e,t)=>{kg.init(e,t),ze.init(e,t)});function rd(e){return dl(Oi,e)}const Mi=k("ZodCUID2",(e,t)=>{Sg.init(e,t),ze.init(e,t)});function id(e){return fl(Mi,e)}const Fi=k("ZodULID",(e,t)=>{xg.init(e,t),ze.init(e,t)});function od(e){return hl(Fi,e)}const Ui=k("ZodXID",(e,t)=>{Eg.init(e,t),ze.init(e,t)});function sd(e){return pl(Ui,e)}const Gi=k("ZodKSUID",(e,t)=>{$g.init(e,t),ze.init(e,t)});function ad(e){return ml(Gi,e)}const ji=k("ZodIPv4",(e,t)=>{Ng.init(e,t),ze.init(e,t)});function ud(e){return gl(ji,e)}const Ms=k("ZodMAC",(e,t)=>{Rg.init(e,t),ze.init(e,t)});function cd(e){return My(Ms,e)}const Zi=k("ZodIPv6",(e,t)=>{zg.init(e,t),ze.init(e,t)});function ld(e){return yl(Zi,e)}const Bi=k("ZodCIDRv4",(e,t)=>{Lg.init(e,t),ze.init(e,t)});function dd(e){return vl(Bi,e)}const Vi=k("ZodCIDRv6",(e,t)=>{Pg.init(e,t),ze.init(e,t)});function fd(e){return bl(Vi,e)}const Hi=k("ZodBase64",(e,t)=>{Dg.init(e,t),ze.init(e,t)});function hd(e){return wl(Hi,e)}const qi=k("ZodBase64URL",(e,t)=>{Og.init(e,t),ze.init(e,t)});function pd(e){return _l(qi,e)}const Wi=k("ZodE164",(e,t)=>{Mg.init(e,t),ze.init(e,t)});function md(e){return kl(Wi,e)}const Fs=k("ZodCreditCard",(e,t)=>{Fg.init(e,t),ze.init(e,t)});function gd(e){return Fy(Fs,e)}const Us=k("ZodIBAN",(e,t)=>{Ug.init(e,t),ze.init(e,t)});function yd(e){return Uy(Us,e)}const Ki=k("ZodJWT",(e,t)=>{Gg.init(e,t),ze.init(e,t)});function vd(e){return Sl(Ki,e)}const Sn=k("ZodCustomStringFormat",(e,t)=>{jg.init(e,t),ze.init(e,t)});function bd(e,t,n={}){return mr(Sn,e,t,n)}function wd(e){return mr(Sn,"hostname",Nm,e)}function _d(e){return mr(Sn,"hex",qm,e)}function kd(e){return mr(Sn,"currency_code",Lm,e)}function Sd(e,t){const n=t?.enc??"hex",r=`${e}_${n}`,i=ks[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return mr(Sn,r,i,t)}const kr=k("ZodNumber",(e,t)=>{Gc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Cv(e,n,r,i),e.isFinite=!0},li({minValue:e=>{const{minimum:t,exclusiveMinimum:n}=Xe(e);return Math.max(t??Number.NEGATIVE_INFINITY,n??Number.NEGATIVE_INFINITY)},maxValue:e=>{const{maximum:t,exclusiveMaximum:n}=Xe(e);return Math.min(t??Number.POSITIVE_INFINITY,n??Number.POSITIVE_INFINITY)},isInt:e=>{const{isInt:t,multipleOf:n}=Xe(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>Xe(e).format??null},{gt(e,t){return this.check(cn(e,t))},gte(e,t){return this.check(Et(e,t))},min(e,t){return this.check(Et(e,t))},lt(e,t){return this.check(un(e,t))},lte(e,t){return this.check(xt(e,t))},max(e,t){return this.check(xt(e,t))},int(e){return this.check(ni(e))},safe(e){return this.check(ni(e))},positive(e){return this.check(cn(0,e))},nonnegative(e){return this.check(Et(0,e))},negative(e){return this.check(un(0,e))},nonpositive(e){return this.check(xt(0,e))},multipleOf(e,t){return this.check(Fn(e,t))},step(e,t){return this.check(Fn(e,t))},finite(){return this}}));function de(e){return Gy(kr,e)}const xn=k("ZodNumberFormat",(e,t)=>{Zg.init(e,t),kr.init(e,t)});function ni(e){return Zy(xn,e)}function xd(e){return By(xn,e)}function Ed(e){return Vy(xn,e)}function $d(e){return Hy(xn,e)}function Td(e){return qy(xn,e)}const Sr=k("ZodBoolean",(e,t)=>{jc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Av(e,n,r)});function Ne(e){return Wy(Sr,e)}const xr=k("ZodBigInt",(e,t)=>{Zc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Iv(e,n,r,i)},li({minValue:e=>Xe(e).minimum??null,maxValue:e=>Xe(e).maximum??null,format:e=>Xe(e).format??null},{gte(e,t){return this.check(Et(e,t))},min(e,t){return this.check(Et(e,t))},gt(e,t){return this.check(cn(e,t))},lt(e,t){return this.check(un(e,t))},lte(e,t){return this.check(xt(e,t))},max(e,t){return this.check(xt(e,t))},positive(e){return this.check(cn(BigInt(0),e))},negative(e){return this.check(un(BigInt(0),e))},nonpositive(e){return this.check(xt(BigInt(0),e))},nonnegative(e){return this.check(Et(BigInt(0),e))},multipleOf(e,t){return this.check(Fn(e,t))}}));function Cd(e){return Jy(xr,e)}const Ji=k("ZodBigIntFormat",(e,t)=>{Bg.init(e,t),xr.init(e,t)});function Ad(e){return Xy(Ji,e)}function Id(e){return Qy(Ji,e)}const Gs=k("ZodSymbol",(e,t)=>{Vg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Nv(e,n,r,i)});function Nd(e){return ev(Gs,e)}const js=k("ZodUndefined",(e,t)=>{Hg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Rv(e,n,r,i)});function or(e){return tv(js,e)}const Zs=k("ZodNull",(e,t)=>{qg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>zv(e,n,r)});function Yi(e){return nv(Zs,e)}const Bs=k("ZodAny",(e,t)=>{Wg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Dv()});function Xi(){return rv(Bs)}const Vs=k("ZodUnknown",(e,t)=>{Kg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Ov()});function Ae(){return iv(Vs)}const Hs=k("ZodNever",(e,t)=>{Jg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Pv(e,n,r)});function Un(e){return ov(Hs,e)}const qs=k("ZodVoid",(e,t)=>{Yg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Lv(e,n,r,i)});function zd(e){return sv(qs,e)}const Qi=k("ZodDate",(e,t)=>{Xg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Mv(e,n,r,i),e.min=(n,r)=>e.check(Et(n,r)),e.max=(n,r)=>e.check(xt(n,r))},li({minDate:e=>{const{minimum:t}=Xe(e);return t?new Date(t):null},maxDate:e=>{const{maximum:t}=Xe(e);return t?new Date(t):null}},{}));function Rd(e){return av(Qi,e)}const Ws=k("ZodArray",(e,t)=>{Bn(),Qg.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Jv(e,n,r,i),e.element=t.element},{min(e,t){return this.check(kn(e,t))},nonempty(e){return this.check(kn(1,e))},max(e,t){return this.check(hr(e,t))},length(e,t){return this.check(pr(e,t))},unwrap(){return this.element}});function oe(e,t){return lv(Ws,e,t)}function Ld(e){const t=e._zod.def.shape;return rt(Object.keys(t))}const Er=k("ZodObject",(e,t)=>{Bn(),ry.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Yv(e,n,r,i),sm(e,"shape",n=>n._zod.def.shape,!1)},{keyof(){return rt(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(ct(this._zod.def,{catchall:e}))},passthrough(){return this.clone(ct(this._zod.def,{catchall:Ae()}))},loose(){return this.clone(ct(this._zod.def,{catchall:Ae()}))},strict(){return this.clone(ct(this._zod.def,{catchall:Un()}))},strip(){return this.clone(ct(this._zod.def,{catchall:void 0}))},extend(e){return Jp(this,e)},safeExtend(e){return Xp(this,e)},merge(e){return Qp(this,e)},pick(e){return Wp(this,e)},omit(e){return Kp(this,e)},partial(...e){return yu(Cr,this,e[0])},exactPartial(...e){return yu(no,this,e[0],"exactPartial")},required(...e){return em(ro,this,e[0])}});function T(e,t){const n={type:"object",shape:e??{},...A(t)};return new Er(n)}function Pd(e,t){return new Er({type:"object",shape:e,catchall:Un(),...A(t)})}function nt(e,t){return new Er({type:"object",shape:e,catchall:Ae(),...A(t)})}const $r=k("ZodUnion",(e,t)=>{$s.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Al(e,n,r,i),e.options=t.options});function ge(e,t){return new $r({type:"union",options:e,...A(t)})}const Ks=k("ZodXor",(e,t)=>{$r.init(e,t),iy.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Al(e,n,r,i),e.options=t.options});function Dd(e,t){return new Ks({type:"union",options:e,inclusive:!1,...A(t)})}const Js=k("ZodDiscriminatedUnion",(e,t)=>{$r.init(e,t),sy.init(e,t)});function eo(e,t,n){return new Js({type:"union",options:t,discriminator:e,...A(n)})}const Ys=k("ZodIntersection",(e,t)=>{ay.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Xv(e,n,r,i)});function Tr(e,t){return new Ys({type:"intersection",left:e,right:t})}const Xs=k("ZodTuple",(e,t)=>{Bn(),Vc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Qv(e,n,r,i)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){const e=this._zod.def;if(e.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...e,items:e.items.map(t=>new Cr({type:"optional",innerType:t}))})}});function Qs(e,t,n){const r=t instanceof le,i=r?n:t,o=r?t:null;return new Xs({type:"tuple",items:e,rest:o,...A(i)})}const Gn=k("ZodRecord",(e,t)=>{Bn(),uy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>eb(e,n,r,i),e.keyType=t.keyType,e.valueType=t.valueType});function be(e,t,n){return!t||!t._zod?new Gn({type:"record",keyType:x(),valueType:e,...A(t)}):new Gn({type:"record",keyType:e,valueType:t,...A(n)})}function Od(e,t,n){return new Gn({type:"record",keyType:e,valueType:t,...A(n),partial:!0})}function Md(e,t,n){return new Gn({type:"record",keyType:e,valueType:t,mode:"loose",...A(n)})}const ea=k("ZodMap",(e,t)=>{Bn(),cy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Wv(e,n,r,i),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...n)=>e.check(ln(...n)),e.nonempty=n=>e.check(ln(1,n)),e.max=(...n)=>e.check(Zn(...n)),e.size=(...n)=>e.check(fr(...n))});function Fd(e,t,n){return new ea({type:"map",keyType:e,valueType:t,...A(n)})}const ta=k("ZodSet",(e,t)=>{Bn(),ly.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Kv(e,n,r,i),e.min=(...n)=>e.check(ln(...n)),e.nonempty=n=>e.check(ln(1,n)),e.max=(...n)=>e.check(Zn(...n)),e.size=(...n)=>e.check(fr(...n))});function Ud(e,t){return new ta({type:"set",valueType:e,...A(t)})}const jn=k("ZodEnum",(e,t)=>{dy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(r,i,o)=>Fv(e,r,i),e.enum=t.entries,e.options=[...e._zod.values];const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const s of r)if(n.has(s))o[s]=t.entries[s];else throw new Error(`Key ${s} not found in enum`);return new jn({...t,checks:[],...A(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const s of r)if(n.has(s))delete o[s];else throw new Error(`Key ${s} not found in enum`);return new jn({...t,checks:[],...A(i),entries:o})}});function rt(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new jn({type:"enum",entries:n,...A(t)})}function Gd(e,t){return new jn({type:"enum",entries:e,...A(t)})}const na=k("ZodLiteral",(e,t)=>{fy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Uv(e,n,r,i),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function E(e,t){return new na({type:"literal",values:Array.isArray(e)?e:[e],...A(t)})}const ra=k("ZodFile",(e,t)=>{hy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Zv(e,n,r),e.min=(n,r)=>e.check(ln(n,r)),e.max=(n,r)=>e.check(Zn(n,r)),e.mime=(n,r)=>e.check($i(Array.isArray(n)?n:[n],r))});function jd(e){return dv(ra,e)}const ia=k("ZodTransform",(e,t)=>{Bn(),py.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>qv(e,n,r,i),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new gs(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(Xn(o,n.value,t));else{const s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),"input"in s||(s.input=n.value),s.inst??(s.inst=e),n.issues.push(Xn(s))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function to(e){return new ia({type:"transform",transform:e})}const Cr=k("ZodOptional",(e,t)=>{Hc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Nl(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function De(e){return new Cr({type:"optional",innerType:e})}const no=k("ZodExactOptional",(e,t)=>{my.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Nl(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function oa(e){return new no({type:"optional",innerType:e})}const sa=k("ZodNullable",(e,t)=>{gy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>tb(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function sr(e){return new sa({type:"nullable",innerType:e})}function Zd(e){return De(sr(e))}const aa=k("ZodDefault",(e,t)=>{yy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>ib(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ua(e,t){return new aa({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():ui(t)}})}const ca=k("ZodPrefault",(e,t)=>{vy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>ob(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function la(e,t){return new ca({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():ui(t)}})}const ro=k("ZodNonOptional",(e,t)=>{by.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>nb(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function da(e,t){return new ro({type:"nonoptional",innerType:e,...A(t)})}const fa=k("ZodSuccess",(e,t)=>{wy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Bv(e,n,r),e.unwrap=()=>e._zod.def.innerType});function Bd(e){return new fa({type:"success",innerType:e})}const ha=k("ZodCatch",(e,t)=>{_y.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>sb(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function pa(e,t){return new ha({type:"catch",innerType:e,catchValue:typeof t=="function"?t:sc(t)})}const ma=k("ZodNaN",(e,t)=>{ky.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Gv(e,n,r,i)});function Vd(e){return cv(ma,e)}const Ar=k("ZodPipe",(e,t)=>{qc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>ab(e,n,r,i),e.in=t.in,e.out=t.out});function ri(e,t){return new Ar({type:"pipe",in:e,out:t})}const Ir=k("ZodCodec",(e,t)=>{Ar.init(e,t),Wc.init(e,t)});function Hd(e,t,n){return new Ir({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}function qd(e){const t=e._zod.def;return new Ir({type:"pipe",in:t.out,out:t.in,transform:t.reverseTransform,reverseTransform:t.transform})}const ga=k("ZodPreprocess",(e,t)=>{Ar.init(e,t),Sy.init(e,t)}),ya=k("ZodReadonly",(e,t)=>{xy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>ub(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function va(e){return new ya({type:"readonly",innerType:e})}const ba=k("ZodTemplateLiteral",(e,t)=>{Ey.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>jv(e,n,r)});function Wd(e,t){return new ba({type:"template_literal",parts:e,...A(t)})}const wa=k("ZodLazy",(e,t)=>{Kc.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>lb(e,n,r,i),e.unwrap=()=>e._zod.def.getter()});function _a(e){return new wa({type:"lazy",getter:e})}const ka=k("ZodPromise",(e,t)=>{Ty.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>cb(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function Kd(e){return new ka({type:"promise",innerType:e})}const Sa=k("ZodFunction",(e,t)=>{$y.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Hv(e,n,r,i)});function ar(e){return new Sa({type:"function",input:Array.isArray(e?.input)?Qs(e?.input):e?.input??oe(Ae()),output:e?.output??Ae()})}const Nr=k("ZodCustom",(e,t)=>{Cy.init(e,t),fe.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Vv(e,n,r,i)});function Jd(e){const t=new Me({check:"custom"});return t._zod.check=e,t}function xa(e,t){return fv(Nr,e??(()=>!0),t)}function Ea(e,t={}){return hv(Nr,e,t)}function $a(e,t){return pv(e,t)}const Yd=gv,Xd=yv,Ta=k("ZodInstanceOf",(e,t)=>{Nr.init(e,t)},{properties(e,t){return this.check(Ei(e,t))}});function Qd(e,t={}){const n=new Ta({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...A(t)});return n._zod.bag.Class=e,n._zod.check=r=>{r.value instanceof e||r.issues.push({code:"invalid_type",expected:e.name,input:r.value,inst:n,path:[...n._zod.def.path??[]]})},n}const ef=(...e)=>vv({Codec:Ir,Boolean:Sr,String:gr},...e);function tf(e){const t=_a(()=>ge([x(e),de(),Ne(),Yi(),oe(t),be(x(),t)]));return t}function io(e,t){return new ga({type:"pipe",in:to(e),out:t})}const $x=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:Bs,ZodArray:Ws,ZodBase64:Hi,ZodBase64URL:qi,ZodBigInt:xr,ZodBigIntFormat:Ji,ZodBoolean:Sr,ZodCIDRv4:Bi,ZodCIDRv6:Vi,ZodCUID:Oi,ZodCUID2:Mi,ZodCatch:ha,ZodCodec:Ir,ZodCreditCard:Fs,ZodCustom:Nr,ZodCustomStringFormat:Sn,ZodDate:Qi,ZodDefault:aa,ZodDiscriminatedUnion:Js,ZodE164:Wi,ZodEmail:Ri,ZodEmoji:Pi,ZodEnum:jn,ZodExactOptional:no,ZodFile:ra,ZodFunction:Sa,ZodGUID:Li,ZodIBAN:Us,ZodIPv4:ji,ZodIPv6:Zi,ZodISODate:vr,ZodISODateTime:yr,ZodISODuration:wr,ZodISOTime:br,ZodInstanceOf:Ta,ZodIntersection:Ys,ZodJWT:Ki,ZodKSUID:Gi,ZodLazy:wa,ZodLiteral:na,ZodMAC:Ms,ZodMap:ea,ZodNaN:ma,ZodNanoID:Di,ZodNever:Hs,ZodNonOptional:ro,ZodNull:Zs,ZodNullable:sa,ZodNumber:kr,ZodNumberFormat:xn,ZodObject:Er,ZodOptional:Cr,ZodPipe:Ar,ZodPrefault:ca,ZodPreprocess:ga,ZodPromise:ka,ZodReadonly:ya,ZodRecord:Gn,ZodSet:ta,ZodString:gr,ZodStringFormat:ze,ZodSuccess:fa,ZodSymbol:Gs,ZodTemplateLiteral:ba,ZodTransform:ia,ZodTuple:Xs,ZodType:fe,ZodULID:Fi,ZodURL:_r,ZodUUID:Bt,ZodUndefined:js,ZodUnion:$r,ZodUnknown:Vs,ZodVoid:qs,ZodXID:Ui,ZodXor:Ks,_ZodString:zi,_default:ua,_function:ar,any:Xi,array:oe,base64:hd,base64url:pd,bigint:Cd,boolean:Ne,catch:pa,check:Jd,cidrv4:dd,cidrv6:fd,codec:Hd,creditCard:gd,cuid:rd,cuid2:id,currencyCode:kd,custom:xa,date:Rd,describe:Yd,discriminatedUnion:eo,e164:md,email:ql,emoji:td,enum:rt,exactOptional:oa,file:jd,float32:xd,float64:Ed,function:ar,guid:Wl,hash:Sd,hex:_d,hostname:wd,httpUrl:ed,iban:yd,instanceof:Qd,int:ni,int32:$d,int64:Ad,intersection:Tr,invertCodec:qd,ipv4:ud,ipv6:ld,json:tf,jwt:vd,keyof:Ld,ksuid:ad,lazy:_a,literal:E,looseObject:nt,looseRecord:Md,mac:cd,map:Fd,meta:Xd,nan:Vd,nanoid:nd,nativeEnum:Gd,never:Un,nonoptional:da,null:Yi,nullable:sr,nullish:Zd,number:de,object:T,optional:De,partialRecord:Od,pipe:ri,prefault:la,preprocess:io,promise:Kd,readonly:va,record:be,refine:Ea,set:Ud,strictObject:Pd,string:x,stringFormat:bd,stringbool:ef,success:Bd,superRefine:$a,symbol:Nd,templateLiteral:Wd,transform:to,tuple:Qs,uint32:Td,uint64:Id,ulid:od,undefined:or,union:ge,unknown:Ae,url:Ql,uuid:Kl,uuidv4:Jl,uuidv6:Yl,uuidv7:Xl,void:zd,xid:sd,xor:Dd},Symbol.toStringTag,{value:"Module"})),mb={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function gb(e){Ye({customError:e})}function yb(){return Ye().customError}var ts;ts||(ts={});function vb(e){return El(yr,e)}function Tx(e){return $l(vr,e)}function Cx(e){return Tl(br,e)}function Ax(e){return Cl(wr,e)}const nf=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:vr,ZodISODateTime:yr,ZodISODuration:wr,ZodISOTime:br,date:Tx,datetime:vb,duration:Ax,time:Cx},Symbol.toStringTag,{value:"Module"})),j={...$x,...xx,iso:nf},Ix=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Nx(e,t){const n=e.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":t??"draft-2020-12"}function Sh(e,t){return e.map((n,r)=>r<t?n:n.optional())}function zx(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Rx(e,t){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");const n=e.slice(1).split("/").filter(Boolean);if(n.length===0)return t.rootSchema;const r=t.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===r){const i=n[1]===void 0?void 0:zx(n[1]);if(!i||!t.defs[i])throw new Error(`Reference not found: ${e}`);return t.defs[i]}throw new Error(`Reference not found: ${e}`)}function Lx(e,t){return j.transform(r=>r).check(r=>{const i=r.value;if(typeof i!="object"||i===null||Array.isArray(i))return;const o=Object.getOwnPropertyNames(i);if(t.minProperties!==void 0&&o.length<t.minProperties&&r.issues.push({origin:"object",code:"too_small",minimum:t.minProperties,inclusive:!0,message:`Too small: expected object to have >=${t.minProperties} properties`,input:i,inst:e,continue:!0}),t.maxProperties!==void 0&&o.length>t.maxProperties&&r.issues.push({origin:"object",code:"too_big",maximum:t.maxProperties,inclusive:!0,message:`Too big: expected object to have <=${t.maxProperties} properties`,input:i,inst:e,continue:!0}),t.keySchema)for(const s of o){const a=t.keySchema.safeParse(s);a.success||r.issues.push({code:"invalid_key",origin:"record",issues:a.error.issues,input:s,path:[s],continue:!0})}}).pipe(e)}function Iu(e,t){if(e===null)return"z";const n=typeof e;if(n!=="object"){if(n==="number"&&Number.isNaN(e))return null;const r=String(e);return`${n[0]}${r.length}:${r}`}if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){const o=[];for(const s of e){const a=Iu(s,t);if(a===null)return null;o.push(a)}return`a${o.length}:[${o.join(",")}]`}const r=Object.keys(e).sort(),i=[];for(const o of r){const s=Iu(e[o],t);if(s===null)return null;i.push(`${o.length}:${o}=${s}`)}return`o${i.length}:{${i.join(",")}}`}finally{t.delete(e)}}const Px=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]),Dx=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function Jr(e){return typeof e!="object"||e===null?!1:Array.isArray(e)?e.some(Jr):typeof e.$ref=="string"?!0:Object.entries(e).some(([t,n])=>Px.has(t)?Jr(n):!Dx.has(t)||typeof n!="object"||n===null?!1:Object.values(n).some(Jr))}function xh(e){return e===1?"element":"elements"}function Ox(e,t){return j.transform(r=>r).check(r=>{const i=r.value;if(Array.isArray(i)){if(t.uniqueItems===!0){const o=new Map;for(let s=0;s<i.length;s++){const a=Iu(i[s],new Set);if(a===null)continue;const u=o.get(a);if(u===void 0){o.set(a,s);continue}r.issues.push({code:"custom",message:`Array items must be unique: element at index ${s} duplicates the one at index ${u}`,input:i,path:[s],continue:!0})}}if(t.containsSchema){const o=t.minContains??1,s=t.maxContains!==void 0?t.maxContains+1:Number.POSITIVE_INFINITY;let a=0;for(const u of i)if(t.containsSchema.safeParse(u).success&&++a>=s)break;a<o&&r.issues.push({code:"custom",message:`Array must contain at least ${o} matching ${xh(o)}; found ${a}`,input:i,continue:!0}),t.maxContains!==void 0&&a>t.maxContains&&r.issues.push({code:"custom",message:`Array must contain at most ${t.maxContains} matching ${xh(t.maxContains)}`,input:i,continue:!0})}}}).pipe(e)}function Eh(e,t){if(e!==!1)return e===void 0||e===!0?j.any():mt(e,t)}const Mx=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function bb(e,t){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return j.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){const i=e.$ref;if(t.refs.has(i))return t.refs.get(i);if(t.processing.has(i))return j.lazy(()=>{if(!t.refs.has(i))throw new Error(`Circular reference not resolved: ${i}`);return t.refs.get(i)});t.processing.add(i);const o=Rx(i,t),s=mt(o,t);return t.refs.set(i,s),t.processing.delete(i),s}if(e.enum!==void 0){const i=e.enum;if(t.version==="openapi-3.0"&&e.nullable===!0&&i.length===1&&i[0]===null)return j.null();if(i.length===0)return j.never();if(i.length===1)return j.literal(i[0]);if(i.every(s=>typeof s=="string"))return j.enum(i);const o=i.map(s=>j.literal(s));return o.length<2?o[0]:j.union([o[0],o[1],...o.slice(2)])}if(e.const!==void 0)return j.literal(e.const);const n=e.type;if(Array.isArray(n)){const i=n.map(o=>{const s={...e,type:o};return bb(s,t)});return i.length===0?j.never():i.length===1?i[0]:j.union(i)}if(!n)return j.any();let r;switch(n){case"string":{let i=j.string();if(e.format){const o=e.format;o==="email"?i=i.check(j.email()):o==="uri"||o==="uri-reference"?i=i.check(j.url()):o==="uuid"||o==="guid"?i=i.check(j.uuid()):o==="date-time"?i=i.check(j.iso.datetime({offset:!0})):o==="date"?i=i.check(j.iso.date()):o==="time"?i=i.check(j.regex(Mx)):o==="duration"?i=i.check(j.iso.duration()):o==="hostname"?i=i.check(j.hostname()):o==="ipv4"?i=i.check(j.ipv4()):o==="ipv6"?i=i.check(j.ipv6()):o==="mac"?i=i.check(j.mac()):o==="cidr"?i=i.check(j.cidrv4()):o==="cidr-v6"?i=i.check(j.cidrv6()):o==="base64"?i=i.check(j.base64()):o==="base64url"?i=i.check(j.base64url()):o==="e164"?i=i.check(j.e164()):o==="credit_card"?i=i.check(j.creditCard()):o==="iban"?i=i.check(j.iban()):o==="jwt"?i=i.check(j.jwt()):o==="emoji"?i=i.check(j.emoji()):o==="nanoid"?i=i.check(j.nanoid()):o==="cuid"?i=i.check(j.cuid()):o==="cuid2"?i=i.check(j.cuid2()):o==="ulid"?i=i.check(j.ulid()):o==="xid"?i=i.check(j.xid()):o==="ksuid"&&(i=i.check(j.ksuid()))}typeof e.minLength=="number"&&(i=i.min(e.minLength)),typeof e.maxLength=="number"&&(i=i.max(e.maxLength)),e.pattern&&(i=i.regex(new RegExp(e.pattern))),r=i;break}case"number":case"integer":{let i=n==="integer"?j.number().int():j.number();typeof e.minimum=="number"&&e.exclusiveMinimum!==!0&&(i=i.min(e.minimum)),typeof e.maximum=="number"&&e.exclusiveMaximum!==!0&&(i=i.max(e.maximum)),typeof e.exclusiveMinimum=="number"?i=i.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(i=i.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?i=i.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(i=i.lt(e.maximum)),typeof e.multipleOf=="number"&&(i=i.multipleOf(e.multipleOf)),r=i;break}case"boolean":{r=j.boolean();break}case"null":{r=j.null();break}case"object":{const i={},o=e.properties||{},s=new Set(e.required||[]),a=typeof e.additionalProperties=="object"?mt(e.additionalProperties,t):void 0;for(const[d,f]of Object.entries(o)){const h=mt(f,t);$t(i,d,s.has(d)?h:h.optional())}if(e.patternProperties){const d=e.patternProperties,f=Object.keys(d),h=[];for(const m of f){const g=mt(d[m],t),w=j.string().regex(new RegExp(m));h.push(j.looseRecord(w,g))}const p=[];if(Object.keys(i).length>0&&p.push(j.object(i).passthrough()),p.push(...h),p.length===0)r=j.object({}).passthrough();else if(p.length===1)r=p[0];else{let m=j.intersection(p[0],p[1]);for(let g=2;g<p.length;g++)m=j.intersection(m,p[g]);r=m}if(e.additionalProperties===!1){const m=Object.keys(i),g=f.map(y=>new RegExp(y)),w=r;r=r.check(y=>{if(!rn(y.value))return;const b=[];for(const v of Object.keys(y.value))m.includes(v)||g.some(S=>S.test(v))||b.push(v);b.length&&y.issues.push({code:"unrecognized_keys",keys:b,input:y.value,inst:w})})}}else{const d=j.object(i);e.additionalProperties===!1?r=d.strict():a?r=d.catchall(a):r=d.passthrough()}const u=e.propertyNames!==void 0&&e.propertyNames!==!0,c=typeof e.minProperties=="number"?e.minProperties:void 0,l=typeof e.maxProperties=="number"?e.maxProperties:void 0;if(u||c!==void 0||l!==void 0){let d;if(u){const f=typeof e.propertyNames=="object"&&e.propertyNames.type===void 0?{type:"string",...e.propertyNames}:e.propertyNames;d=mt(f,t)}r=Lx(r,{keySchema:d,minProperties:c,maxProperties:l})}break}case"array":{const i=e.prefixItems,o=e.items;if(i&&Array.isArray(i)){const s=typeof e.minItems=="number"?e.minItems:0,a=i.map(d=>mt(d,t)),u=Sh(a,s),c=Array.isArray(o)?void 0:Eh(o,t),l=j.tuple(u);r=c?l.rest(c):l,typeof e.minItems=="number"&&(r=r.check(j.minLength(e.minItems))),typeof e.maxItems=="number"&&(r=r.check(j.maxLength(e.maxItems)))}else if(Array.isArray(o)){const s=typeof e.minItems=="number"?e.minItems:0,a=o.map(d=>mt(d,t)),u=Sh(a,s),c=Eh(e.additionalItems,t),l=j.tuple(u);r=c?l.rest(c):l,typeof e.minItems=="number"&&(r=r.check(j.minLength(e.minItems))),typeof e.maxItems=="number"&&(r=r.check(j.maxLength(e.maxItems)))}else if(o!==void 0){const s=mt(o,t);let a=j.array(s);typeof e.minItems=="number"&&(a=a.min(e.minItems)),typeof e.maxItems=="number"&&(a=a.max(e.maxItems)),r=a}else r=j.array(j.any());(e.uniqueItems===!0||e.contains!==void 0)&&(r=Ox(r,{uniqueItems:e.uniqueItems===!0,containsSchema:e.contains!==void 0?mt(e.contains,t):void 0,minContains:typeof e.minContains=="number"?e.minContains:void 0,maxContains:typeof e.maxContains=="number"?e.maxContains:void 0}));break}default:throw new Error(`Unsupported type: ${n}`)}return r}function mt(e,t){if(typeof e=="boolean")return e?j.any():j.never();let n=bb(e,t);const r=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){const a=e.anyOf.map(c=>mt(c,t)),u=j.union(a);n=r?j.intersection(n,u):u}if(e.oneOf&&Array.isArray(e.oneOf)){const a=e.oneOf.map(c=>mt(c,t)),u=j.xor(a);n=r?j.intersection(n,u):u}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)n=r?n:j.any();else{let a=r?n:mt(e.allOf[0],t);const u=r?0:1;for(let c=u;c<e.allOf.length;c++)a=j.intersection(a,mt(e.allOf[c],t));n=a}e.nullable===!0&&t.version==="openapi-3.0"&&(n=j.nullable(n)),e.readOnly===!0&&(n=j.readonly(n)),e.default!==void 0&&(n=n.default(e.default));const i={},o=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(const a of o)a in e&&(i[a]=e[a]);const s=["contentEncoding","contentMediaType","contentSchema"];for(const a of s)a in e&&(i[a]=e[a]);if(e.type==="object"&&e.$ref===void 0){e.propertyNames!==void 0&&!Jr(e.propertyNames)&&(i.propertyNames=e.propertyNames);for(const a of["minProperties","maxProperties"])e[a]!==void 0&&(i[a]=e[a])}if(e.type==="array"&&e.$ref===void 0){e.contains!==void 0&&!Jr(e.contains)&&(i.contains=e.contains);for(const a of["uniqueItems","minContains","maxContains"])e[a]!==void 0&&(i[a]=e[a])}for(const a of Object.keys(e))Ix.has(a)||$t(i,a,e[a]);return Object.keys(i).length>0&&t.registry.add(n,i),e.description&&(n=n.describe(e.description)),n}function wb(e,t){if(typeof e=="boolean")return e?j.any():j.never();let n;try{n=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}const r=Nx(n,t?.defaultTarget),i=n.$defs||n.definitions||{},o={version:r,defs:i,refs:new Map,processing:new Set,rootSchema:n,registry:t?.registry??kt};return mt(n,o)}function _b(e){return Rl(e,{object:t=>t.partial(),union:t=>{const n=t._zod.def;return n.discriminator===void 0?t:ge(n.options)}})}function Fx(e,t){if(!t?.length)return e;const n=e._zod.def;return Oe(e,ct(n,{checks:[...n.checks??[],...t]}),{parent:!0})}function kb(e){return Fx(e.out,e.checks)}function Ux(e){return e.in._zod.traits.has("$ZodTransform")?kb(e):e.in}function Sb(e){return Rl(e,{pipe:t=>Ux(t._zod.def),default:(t,n)=>n?De(t._zod.def.innerType):t,catch:(t,n)=>n?t._zod.def.innerType:t})}function xb(e){return Rl(e,{pipe:t=>kb(t._zod.def),prefault:(t,n)=>n?t._zod.def.innerType:t})}function Gx(e){return Oy(gr,e)}function jx(e){return jy(kr,e)}function Zx(e){return Ky(Sr,e)}function Bx(e){return Yy(xr,e)}function Vx(e){return uv(Qi,e)}const Eb=Object.freeze(Object.defineProperty({__proto__:null,bigint:Bx,boolean:Zx,date:Vx,number:jx,string:Gx},Symbol.toStringTag,{value:"Module"})),$h=Object.freeze(Object.defineProperty({__proto__:null,$brand:cc,$input:el,$output:Qc,INVALID:yt,NEVER:uc,TimePrecision:xl,ZodAny:Bs,ZodArray:Ws,ZodBase64:Hi,ZodBase64URL:qi,ZodBigInt:xr,ZodBigIntFormat:Ji,ZodBoolean:Sr,ZodCIDRv4:Bi,ZodCIDRv6:Vi,ZodCUID:Oi,ZodCUID2:Mi,ZodCatch:ha,ZodCodec:Ir,ZodCompileAsyncError:an,ZodCompileUnsupportedError:ke,ZodCreditCard:Fs,ZodCustom:Nr,ZodCustomStringFormat:Sn,ZodDate:Qi,ZodDefault:aa,ZodDiscriminatedUnion:Js,ZodE164:Wi,ZodEmail:Ri,ZodEmoji:Pi,ZodEnum:jn,ZodError:pb,ZodExactOptional:no,ZodFile:ra,get ZodFirstPartyTypeKind(){return ts},ZodFunction:Sa,ZodGUID:Li,ZodIBAN:Us,ZodIPv4:ji,ZodIPv6:Zi,ZodISODate:vr,ZodISODateTime:yr,ZodISODuration:wr,ZodISOTime:br,ZodInstanceOf:Ta,ZodIntersection:Ys,ZodIssueCode:mb,ZodJWT:Ki,ZodKSUID:Gi,ZodLazy:wa,ZodLiteral:na,ZodMAC:Ms,ZodMap:ea,ZodNaN:ma,ZodNanoID:Di,ZodNever:Hs,ZodNonOptional:ro,ZodNull:Zs,ZodNullable:sa,ZodNumber:kr,ZodNumberFormat:xn,ZodObject:Er,ZodOptional:Cr,ZodPipe:Ar,ZodPrefault:ca,ZodPreprocess:ga,ZodPromise:ka,ZodReadonly:ya,ZodRealError:bt,ZodRecord:Gn,ZodSet:ta,ZodString:gr,ZodStringFormat:ze,ZodSuccess:fa,ZodSymbol:Gs,ZodTemplateLiteral:ba,ZodTransform:ia,ZodTuple:Xs,ZodType:fe,ZodULID:Fi,ZodURL:_r,ZodUUID:Bt,ZodUndefined:js,ZodUnion:$r,ZodUnknown:Vs,ZodVoid:qs,ZodXID:Ui,ZodXor:Ks,_ZodString:zi,_default:ua,_function:ar,any:Xi,array:oe,base64:hd,base64url:pd,bigint:Cd,boolean:Ne,catch:pa,check:Jd,cidrv4:dd,cidrv6:fd,clone:Oe,codec:Hd,coerce:Eb,compile:tl,config:Ye,core:db,creditCard:gd,cuid:rd,cuid2:id,currencyCode:kd,custom:xa,date:Rd,decode:Ul,decodeAsync:jl,deepPartial:_b,describe:Yd,discriminatedUnion:eo,e164:md,email:ql,emoji:td,encode:Fl,encodeAsync:Gl,endsWith:xi,enum:rt,exactOptional:oa,file:jd,flattenError:ys,float32:xd,float64:Ed,formatError:vs,fromJSONSchema:wb,function:ar,getDiscriminatedOption:Bc,getErrorMap:yb,globalRegistry:kt,gt:cn,gte:Et,guid:Wl,hash:Sd,hex:_d,hostname:wd,httpUrl:ed,iban:yd,includes:ki,input:Sb,instanceof:Qd,int:ni,int32:$d,int64:Ad,intersection:Tr,invertCodec:qd,ipv4:ud,ipv6:ld,iso:nf,json:tf,jwt:vd,keyof:Ld,ksuid:ad,lazy:_a,length:pr,literal:E,locales:Xc,looseObject:nt,looseRecord:Md,lowercase:wi,lt:un,lte:xt,mac:cd,map:Fd,maxLength:hr,maxSize:Zn,memoizer:Ts,meta:Xd,mime:$i,minLength:kn,minSize:ln,multipleOf:Fn,nan:Vd,nanoid:nd,nativeEnum:Gd,negative:Ls,never:Un,nonnegative:Ds,nonoptional:da,nonpositive:Ps,normalize:Ti,null:Yi,nullable:sr,nullish:Zd,number:de,object:T,optional:De,output:xb,overwrite:Yt,parse:Pl,parseAsync:Dl,partialRecord:Od,pipe:ri,positive:Rs,prefault:la,preprocess:io,prettifyError:dc,promise:Kd,properties:Ei,property:Os,readonly:va,record:be,refine:Ea,regex:bi,regexes:ks,registry:Cs,safeDecode:Bl,safeDecodeAsync:Hl,safeEncode:Zl,safeEncodeAsync:Vl,safeParse:Ol,safeParseAsync:Ml,set:Ud,setErrorMap:gb,size:fr,slugify:Ni,startsWith:Si,strictObject:Pd,string:x,stringFormat:bd,stringbool:ef,success:Bd,superRefine:$a,symbol:Nd,templateLiteral:Wd,toJSONSchema:zl,toLowerCase:Ai,toUpperCase:Ii,toZod:ls,transform:to,treeifyError:lc,trim:Ci,tuple:Qs,uint32:Td,uint64:Id,ulid:od,undefined:or,union:ge,unknown:Ae,uppercase:_i,url:Ql,util:ac,uuid:Kl,uuidv4:Jl,uuidv6:Yl,uuidv7:Xl,validate:ws,validateAsync:_s,void:zd,withParser:As,xid:sd,xor:Dd},Symbol.toStringTag,{value:"Module"})),Hx=Object.freeze(Object.defineProperty({__proto__:null,$brand:cc,$input:el,$output:Qc,INVALID:yt,NEVER:uc,TimePrecision:xl,ZodAny:Bs,ZodArray:Ws,ZodBase64:Hi,ZodBase64URL:qi,ZodBigInt:xr,ZodBigIntFormat:Ji,ZodBoolean:Sr,ZodCIDRv4:Bi,ZodCIDRv6:Vi,ZodCUID:Oi,ZodCUID2:Mi,ZodCatch:ha,ZodCodec:Ir,ZodCompileAsyncError:an,ZodCompileUnsupportedError:ke,ZodCreditCard:Fs,ZodCustom:Nr,ZodCustomStringFormat:Sn,ZodDate:Qi,ZodDefault:aa,ZodDiscriminatedUnion:Js,ZodE164:Wi,ZodEmail:Ri,ZodEmoji:Pi,ZodEnum:jn,ZodError:pb,ZodExactOptional:no,ZodFile:ra,get ZodFirstPartyTypeKind(){return ts},ZodFunction:Sa,ZodGUID:Li,ZodIBAN:Us,ZodIPv4:ji,ZodIPv6:Zi,ZodISODate:vr,ZodISODateTime:yr,ZodISODuration:wr,ZodISOTime:br,ZodInstanceOf:Ta,ZodIntersection:Ys,ZodIssueCode:mb,ZodJWT:Ki,ZodKSUID:Gi,ZodLazy:wa,ZodLiteral:na,ZodMAC:Ms,ZodMap:ea,ZodNaN:ma,ZodNanoID:Di,ZodNever:Hs,ZodNonOptional:ro,ZodNull:Zs,ZodNullable:sa,ZodNumber:kr,ZodNumberFormat:xn,ZodObject:Er,ZodOptional:Cr,ZodPipe:Ar,ZodPrefault:ca,ZodPreprocess:ga,ZodPromise:ka,ZodReadonly:ya,ZodRealError:bt,ZodRecord:Gn,ZodSet:ta,ZodString:gr,ZodStringFormat:ze,ZodSuccess:fa,ZodSymbol:Gs,ZodTemplateLiteral:ba,ZodTransform:ia,ZodTuple:Xs,ZodType:fe,ZodULID:Fi,ZodURL:_r,ZodUUID:Bt,ZodUndefined:js,ZodUnion:$r,ZodUnknown:Vs,ZodVoid:qs,ZodXID:Ui,ZodXor:Ks,_ZodString:zi,_default:ua,_function:ar,any:Xi,array:oe,base64:hd,base64url:pd,bigint:Cd,boolean:Ne,catch:pa,check:Jd,cidrv4:dd,cidrv6:fd,clone:Oe,codec:Hd,coerce:Eb,compile:tl,config:Ye,core:db,creditCard:gd,cuid:rd,cuid2:id,currencyCode:kd,custom:xa,date:Rd,decode:Ul,decodeAsync:jl,deepPartial:_b,default:$h,describe:Yd,discriminatedUnion:eo,e164:md,email:ql,emoji:td,encode:Fl,encodeAsync:Gl,endsWith:xi,enum:rt,exactOptional:oa,file:jd,flattenError:ys,float32:xd,float64:Ed,formatError:vs,fromJSONSchema:wb,function:ar,getDiscriminatedOption:Bc,getErrorMap:yb,globalRegistry:kt,gt:cn,gte:Et,guid:Wl,hash:Sd,hex:_d,hostname:wd,httpUrl:ed,iban:yd,includes:ki,input:Sb,instanceof:Qd,int:ni,int32:$d,int64:Ad,intersection:Tr,invertCodec:qd,ipv4:ud,ipv6:ld,iso:nf,json:tf,jwt:vd,keyof:Ld,ksuid:ad,lazy:_a,length:pr,literal:E,locales:Xc,looseObject:nt,looseRecord:Md,lowercase:wi,lt:un,lte:xt,mac:cd,map:Fd,maxLength:hr,maxSize:Zn,memoizer:Ts,meta:Xd,mime:$i,minLength:kn,minSize:ln,multipleOf:Fn,nan:Vd,nanoid:nd,nativeEnum:Gd,negative:Ls,never:Un,nonnegative:Ds,nonoptional:da,nonpositive:Ps,normalize:Ti,null:Yi,nullable:sr,nullish:Zd,number:de,object:T,optional:De,output:xb,overwrite:Yt,parse:Pl,parseAsync:Dl,partialRecord:Od,pipe:ri,positive:Rs,prefault:la,preprocess:io,prettifyError:dc,promise:Kd,properties:Ei,property:Os,readonly:va,record:be,refine:Ea,regex:bi,regexes:ks,registry:Cs,safeDecode:Bl,safeDecodeAsync:Hl,safeEncode:Zl,safeEncodeAsync:Vl,safeParse:Ol,safeParseAsync:Ml,set:Ud,setErrorMap:gb,size:fr,slugify:Ni,startsWith:Si,strictObject:Pd,string:x,stringFormat:bd,stringbool:ef,success:Bd,superRefine:$a,symbol:Nd,templateLiteral:Wd,toJSONSchema:zl,toLowerCase:Ai,toUpperCase:Ii,toZod:ls,transform:to,treeifyError:lc,trim:Ci,tuple:Qs,uint32:Td,uint64:Id,ulid:od,undefined:or,union:ge,unknown:Ae,uppercase:_i,url:Ql,util:ac,uuid:Kl,uuidv4:Jl,uuidv6:Yl,uuidv7:Xl,validate:ws,validateAsync:_s,void:zd,withParser:As,xid:sd,xor:Dd,z:$h},Symbol.toStringTag,{value:"Module"})),Rn="io.modelcontextprotocol/related-task",Ca="2.0",Je=xa(e=>e!==null&&(typeof e=="object"||typeof e=="function")),$b=ge([x(),de().int()]),Tb=x();nt({ttl:de().optional(),pollInterval:de().optional()});const qx=T({ttl:de().optional()}),Wx=T({taskId:x()}),rf=nt({progressToken:$b.optional(),[Rn]:Wx.optional()}),Ct=T({_meta:rf.optional()}),oo=Ct.extend({task:qx.optional()}),Kx=e=>oo.safeParse(e).success,it=T({method:x(),params:Ct.loose().optional()}),Dt=T({_meta:rf.optional()}),Ot=T({method:x(),params:Dt.loose().optional()}),ot=nt({_meta:rf.optional()}),so=ge([x(),de().int()]),Cb=T({jsonrpc:E(Ca),id:so,...it.shape}).strict(),Th=e=>Cb.safeParse(e).success,Ab=T({jsonrpc:E(Ca),...Ot.shape}).strict(),Jx=e=>Ab.safeParse(e).success,of=T({jsonrpc:E(Ca),id:so,result:ot}).strict(),$o=e=>of.safeParse(e).success;var Ce;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ce||(Ce={}));const sf=T({jsonrpc:E(Ca),id:so.optional(),error:T({code:de().int(),message:x(),data:Ae().optional()})}).strict(),Yx=e=>sf.safeParse(e).success,Xx=ge([Cb,Ab,of,sf]);ge([of,sf]);const af=ot.strict(),Qx=Dt.extend({requestId:so.optional(),reason:x().optional()}),uf=Ot.extend({method:E("notifications/cancelled"),params:Qx}),eE=T({src:x(),mimeType:x().optional(),sizes:oe(x()).optional(),theme:rt(["light","dark"]).optional()}),ao=T({icons:oe(eE).optional()}),ur=T({name:x(),title:x().optional()}),Aa=ur.extend({...ur.shape,...ao.shape,version:x(),websiteUrl:x().optional(),description:x().optional()}),tE=Tr(T({applyDefaults:Ne().optional()}),be(x(),Ae())),nE=io(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Tr(T({form:tE.optional(),url:Je.optional()}),be(x(),Ae()).optional())),rE=nt({list:Je.optional(),cancel:Je.optional(),requests:nt({sampling:nt({createMessage:Je.optional()}).optional(),elicitation:nt({create:Je.optional()}).optional()}).optional()}),iE=nt({list:Je.optional(),cancel:Je.optional(),requests:nt({tools:nt({call:Je.optional()}).optional()}).optional()}),oE=T({experimental:be(x(),Je).optional(),sampling:T({context:Je.optional(),tools:Je.optional()}).optional(),elicitation:nE.optional(),roots:T({listChanged:Ne().optional()}).optional(),tasks:rE.optional(),extensions:be(x(),Je).optional()}),sE=Ct.extend({protocolVersion:x(),capabilities:oE,clientInfo:Aa}),aE=it.extend({method:E("initialize"),params:sE}),uE=T({experimental:be(x(),Je).optional(),logging:Je.optional(),completions:Je.optional(),prompts:T({listChanged:Ne().optional()}).optional(),resources:T({subscribe:Ne().optional(),listChanged:Ne().optional()}).optional(),tools:T({listChanged:Ne().optional()}).optional(),tasks:iE.optional(),extensions:be(x(),Je).optional()}),cE=ot.extend({protocolVersion:x(),capabilities:uE,serverInfo:Aa,instructions:x().optional()}),lE=Ot.extend({method:E("notifications/initialized"),params:Dt.optional()}),Ia=it.extend({method:E("ping"),params:Ct.optional()}),dE=T({progress:de(),total:De(de()),message:De(x())}),fE=T({...Dt.shape,...dE.shape,progressToken:$b}),cf=Ot.extend({method:E("notifications/progress"),params:fE}),hE=Ct.extend({cursor:Tb.optional()}),uo=it.extend({params:hE.optional()}),co=ot.extend({nextCursor:Tb.optional()}),pE=rt(["working","input_required","completed","failed","cancelled"]),lo=T({taskId:x(),status:pE,ttl:ge([de(),Yi()]),createdAt:x(),lastUpdatedAt:x(),pollInterval:De(de()),statusMessage:De(x())}),lf=ot.extend({task:lo}),mE=Dt.merge(lo),ns=Ot.extend({method:E("notifications/tasks/status"),params:mE}),df=it.extend({method:E("tasks/get"),params:Ct.extend({taskId:x()})}),ff=ot.merge(lo),hf=it.extend({method:E("tasks/result"),params:Ct.extend({taskId:x()})});ot.loose();const pf=uo.extend({method:E("tasks/list")}),mf=co.extend({tasks:oe(lo)}),gf=it.extend({method:E("tasks/cancel"),params:Ct.extend({taskId:x()})}),gE=ot.merge(lo),Ib=T({uri:x(),mimeType:De(x()),_meta:be(x(),Ae()).optional()}),Nb=Ib.extend({text:x()}),yf=x().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),zb=Ib.extend({blob:yf}),fo=rt(["user","assistant"]),zr=T({audience:oe(fo).optional(),priority:de().min(0).max(1).optional(),lastModified:vb({offset:!0}).optional()}),Rb=T({...ur.shape,...ao.shape,uri:x(),description:De(x()),mimeType:De(x()),size:De(de()),annotations:zr.optional(),_meta:De(nt({}))}),yE=T({...ur.shape,...ao.shape,uriTemplate:x(),description:De(x()),mimeType:De(x()),annotations:zr.optional(),_meta:De(nt({}))}),vE=uo.extend({method:E("resources/list")}),Lb=co.extend({resources:oe(Rb)}),bE=uo.extend({method:E("resources/templates/list")}),wE=co.extend({resourceTemplates:oe(yE)}),vf=Ct.extend({uri:x()}),_E=vf,kE=it.extend({method:E("resources/read"),params:_E}),Pb=ot.extend({contents:oe(ge([Nb,zb]))}),SE=Ot.extend({method:E("notifications/resources/list_changed"),params:Dt.optional()}),xE=vf,EE=it.extend({method:E("resources/subscribe"),params:xE}),$E=vf,TE=it.extend({method:E("resources/unsubscribe"),params:$E}),CE=Dt.extend({uri:x()}),AE=Ot.extend({method:E("notifications/resources/updated"),params:CE}),IE=T({name:x(),description:De(x()),required:De(Ne())}),NE=T({...ur.shape,...ao.shape,description:De(x()),arguments:De(oe(IE)),_meta:De(nt({}))}),zE=uo.extend({method:E("prompts/list")}),RE=co.extend({prompts:oe(NE)}),LE=Ct.extend({name:x(),arguments:be(x(),x()).optional()}),PE=it.extend({method:E("prompts/get"),params:LE}),bf=T({type:E("text"),text:x(),annotations:zr.optional(),_meta:be(x(),Ae()).optional()}),wf=T({type:E("image"),data:yf,mimeType:x(),annotations:zr.optional(),_meta:be(x(),Ae()).optional()}),_f=T({type:E("audio"),data:yf,mimeType:x(),annotations:zr.optional(),_meta:be(x(),Ae()).optional()}),DE=T({type:E("tool_use"),name:x(),id:x(),input:be(x(),Ae()),_meta:be(x(),Ae()).optional()}),Db=T({type:E("resource"),resource:ge([Nb,zb]),annotations:zr.optional(),_meta:be(x(),Ae()).optional()}),Ob=Rb.extend({type:E("resource_link")}),ho=ge([bf,wf,_f,Ob,Db]),OE=T({role:fo,content:ho}),ME=ot.extend({description:x().optional(),messages:oe(OE)}),FE=Ot.extend({method:E("notifications/prompts/list_changed"),params:Dt.optional()}),UE=T({title:x().optional(),readOnlyHint:Ne().optional(),destructiveHint:Ne().optional(),idempotentHint:Ne().optional(),openWorldHint:Ne().optional()}),GE=T({taskSupport:rt(["required","optional","forbidden"]).optional()}),kf=T({...ur.shape,...ao.shape,description:x().optional(),inputSchema:T({type:E("object"),properties:be(x(),Je).optional(),required:oe(x()).optional()}).catchall(Ae()),outputSchema:T({type:E("object"),properties:be(x(),Je).optional(),required:oe(x()).optional()}).catchall(Ae()).optional(),annotations:UE.optional(),execution:GE.optional(),_meta:be(x(),Ae()).optional()}),Mb=uo.extend({method:E("tools/list")}),jE=co.extend({tools:oe(kf)}),Na=ot.extend({content:oe(ho).default([]),structuredContent:be(x(),Ae()).optional(),isError:Ne().optional()});Na.or(ot.extend({toolResult:Ae()}));const ZE=oo.extend({name:x(),arguments:be(x(),Ae()).optional()}),Fb=it.extend({method:E("tools/call"),params:ZE}),BE=Ot.extend({method:E("notifications/tools/list_changed"),params:Dt.optional()});T({autoRefresh:Ne().default(!0),debounceMs:de().int().nonnegative().default(300)});const Ub=rt(["debug","info","notice","warning","error","critical","alert","emergency"]),VE=Ct.extend({level:Ub}),HE=it.extend({method:E("logging/setLevel"),params:VE}),qE=Dt.extend({level:Ub,logger:x().optional(),data:Ae()}),WE=Ot.extend({method:E("notifications/message"),params:qE}),KE=T({name:x().optional()}),JE=T({hints:oe(KE).optional(),costPriority:de().min(0).max(1).optional(),speedPriority:de().min(0).max(1).optional(),intelligencePriority:de().min(0).max(1).optional()}),YE=T({mode:rt(["auto","required","none"]).optional()}),XE=T({type:E("tool_result"),toolUseId:x().describe("The unique identifier for the corresponding tool call."),content:oe(ho).default([]),structuredContent:T({}).loose().optional(),isError:Ne().optional(),_meta:be(x(),Ae()).optional()}),QE=eo("type",[bf,wf,_f]),rs=eo("type",[bf,wf,_f,DE,XE]),e0=T({role:fo,content:ge([rs,oe(rs)]),_meta:be(x(),Ae()).optional()}),t0=oo.extend({messages:oe(e0),modelPreferences:JE.optional(),systemPrompt:x().optional(),includeContext:rt(["none","thisServer","allServers"]).optional(),temperature:de().optional(),maxTokens:de().int(),stopSequences:oe(x()).optional(),metadata:Je.optional(),tools:oe(kf).optional(),toolChoice:YE.optional()}),n0=it.extend({method:E("sampling/createMessage"),params:t0}),Gb=ot.extend({model:x(),stopReason:De(rt(["endTurn","stopSequence","maxTokens"]).or(x())),role:fo,content:QE}),jb=ot.extend({model:x(),stopReason:De(rt(["endTurn","stopSequence","maxTokens","toolUse"]).or(x())),role:fo,content:ge([rs,oe(rs)])}),r0=T({type:E("boolean"),title:x().optional(),description:x().optional(),default:Ne().optional()}),i0=T({type:E("string"),title:x().optional(),description:x().optional(),minLength:de().optional(),maxLength:de().optional(),format:rt(["email","uri","date","date-time"]).optional(),default:x().optional()}),o0=T({type:rt(["number","integer"]),title:x().optional(),description:x().optional(),minimum:de().optional(),maximum:de().optional(),default:de().optional()}),s0=T({type:E("string"),title:x().optional(),description:x().optional(),enum:oe(x()),default:x().optional()}),a0=T({type:E("string"),title:x().optional(),description:x().optional(),oneOf:oe(T({const:x(),title:x()})),default:x().optional()}),u0=T({type:E("string"),title:x().optional(),description:x().optional(),enum:oe(x()),enumNames:oe(x()).optional(),default:x().optional()}),c0=ge([s0,a0]),l0=T({type:E("array"),title:x().optional(),description:x().optional(),minItems:de().optional(),maxItems:de().optional(),items:T({type:E("string"),enum:oe(x())}),default:oe(x()).optional()}),d0=T({type:E("array"),title:x().optional(),description:x().optional(),minItems:de().optional(),maxItems:de().optional(),items:T({anyOf:oe(T({const:x(),title:x()}))}),default:oe(x()).optional()}),f0=ge([l0,d0]),h0=ge([u0,c0,f0]),p0=ge([h0,r0,i0,o0]),m0=oo.extend({mode:E("form").optional(),message:x(),requestedSchema:T({type:E("object"),properties:be(x(),p0),required:oe(x()).optional()})}),g0=oo.extend({mode:E("url"),message:x(),elicitationId:x(),url:x().url()}),y0=ge([m0,g0]),v0=it.extend({method:E("elicitation/create"),params:y0}),b0=Dt.extend({elicitationId:x()}),w0=Ot.extend({method:E("notifications/elicitation/complete"),params:b0}),_0=ot.extend({action:rt(["accept","decline","cancel"]),content:io(e=>e===null?void 0:e,be(x(),ge([x(),de(),Ne(),oe(x())])).optional())}),k0=T({type:E("ref/resource"),uri:x()}),S0=T({type:E("ref/prompt"),name:x()}),x0=Ct.extend({ref:ge([S0,k0]),argument:T({name:x(),value:x()}),context:T({arguments:be(x(),x()).optional()}).optional()}),E0=it.extend({method:E("completion/complete"),params:x0}),$0=ot.extend({completion:nt({values:oe(x()).max(100),total:De(de().int()),hasMore:De(Ne())})}),T0=T({uri:x().startsWith("file://"),name:x().optional(),_meta:be(x(),Ae()).optional()}),C0=it.extend({method:E("roots/list"),params:Ct.optional()}),A0=ot.extend({roots:oe(T0)}),I0=Ot.extend({method:E("notifications/roots/list_changed"),params:Dt.optional()});ge([Ia,aE,E0,HE,PE,zE,vE,bE,kE,EE,TE,Fb,Mb,df,hf,pf,gf]);ge([uf,cf,lE,I0,ns]);ge([af,Gb,jb,_0,A0,ff,mf,lf]);ge([Ia,n0,v0,C0,df,hf,pf,gf]);ge([uf,cf,WE,AE,SE,BE,FE,ns,w0]);ge([af,cE,$0,ME,RE,Lb,wE,Pb,Na,jE,ff,mf,lf]);class _e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Ce.UrlElicitationRequired&&r){const i=r;if(i.elicitations)return new N0(i.elicitations,n)}return new _e(t,n,r)}}class N0 extends _e{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ce.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}function An(e){return e==="completed"||e==="failed"||e==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ch(e){const n=wx(e)?.method;if(!n)throw new Error("Schema is missing a method literal");const r=_x(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Ah(e,t){const n=fb(e,t);if(!n.success)throw n.error;return n.data}const z0=6e4;class R0{constructor(t){this._options=t,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(uf,n=>{this._oncancel(n)}),this.setNotificationHandler(cf,n=>{this._onprogress(n)}),this.setRequestHandler(Ia,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(df,async(n,r)=>{const i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new _e(Ce.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(hf,async(n,r)=>{const i=async()=>{const o=n.params.taskId;if(!await this._taskStore.getTask(o,r.sessionId))throw new _e(Ce.InvalidParams,`Task not found: ${o}`);if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(o,r.sessionId);){if(a.type==="response"||a.type==="error"){const u=a.message,c=u.id,l=this._requestResolvers.get(c);if(l)if(this._requestResolvers.delete(c),a.type==="response")l(u);else{const d=u,f=new _e(d.error.code,d.error.message,d.error.data);l(f)}else{const d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${c}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}const s=await this._taskStore.getTask(o,r.sessionId);if(!s)throw new _e(Ce.InvalidParams,`Task not found: ${o}`);if(!An(s.status))return await this._waitForTaskUpdate(o,r.signal,r.sessionId),await i();if(An(s.status)){const a=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o,r.sessionId),{...a,_meta:{...a._meta,[Rn]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(pf,async(n,r)=>{try{const{tasks:i,nextCursor:o}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:o,_meta:{}}}catch(i){throw new _e(Ce.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(gf,async(n,r)=>{try{const i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new _e(Ce.InvalidParams,`Task not found: ${n.params.taskId}`);if(An(i.status))throw new _e(Ce.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId,r.sessionId);const o=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!o)throw new _e(Ce.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...o}}catch(i){throw i instanceof _e?i:new _e(Ce.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,o=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:o,onTimeout:i})}_resetTimeout(t){const n=this._timeoutInfo.get(t);if(!n)return!1;const r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),_e.fromError(Ce.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){const n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;const n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};const r=this.transport?.onerror;this._transport.onerror=o=>{r?.(o),this._onerror(o)};const i=this._transport?.onmessage;this._transport.onmessage=(o,s)=>{i?.(o,s),$o(o)||Yx(o)?this._onresponse(o):Th(o)?this._onrequest(o,s):Jx(o)?this._onnotification(o):this._onerror(new Error(`Unknown message type: ${JSON.stringify(o)}`))},await this._transport.start()}_onclose(){const t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(const r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(const r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();const n=_e.fromError(Ce.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(const r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){const n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){const r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,o=t.params?._meta?.[Rn]?.taskId,s=i?.sessionId,a=this._taskStore;let u=!0,c;if(o&&a&&this._taskMessageQueue&&s!==void 0&&(u=!1,c=(async()=>{if(!await a.getTask(o,s))throw new _e(Ce.InvalidParams,`Task not found: ${o}`);u=!0})()),r===void 0){const p={jsonrpc:"2.0",id:t.id,error:{code:Ce.MethodNotFound,message:"Method not found"}};if(o&&c){const m={type:"error",message:p,timestamp:Date.now()};c.then(()=>this._enqueueTaskMessage(o,m,s),()=>i?.send(p)).catch(g=>this._onerror(new Error(`Failed to send an error response: ${g}`)))}else o&&this._taskMessageQueue?this._enqueueTaskMessage(o,{type:"error",message:p,timestamp:Date.now()},i?.sessionId).catch(m=>this._onerror(new Error(`Failed to enqueue error response: ${m}`))):i?.send(p).catch(m=>this._onerror(new Error(`Failed to send an error response: ${m}`)));return}const l=new AbortController;this._requestHandlerAbortControllers.set(t.id,l);const d=Kx(t.params)?t.params.task:void 0,f=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,h={signal:l.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async p=>{if(l.signal.aborted)return;const m={relatedRequestId:t.id};o&&(m.relatedTask={taskId:o}),await this.notification(p,m)},sendRequest:async(p,m,g)=>{if(l.signal.aborted)throw new _e(Ce.ConnectionClosed,"Request was cancelled");const w={...g,relatedRequestId:t.id};o&&!w.relatedTask&&(w.relatedTask={taskId:o});const y=w.relatedTask?.taskId??o;return y&&f&&await f.updateTaskStatus(y,"input_required"),await this.request(p,m,w)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:o,taskStore:f,taskRequestedTtl:d?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};(c??Promise.resolve()).then(()=>{if(c&&l.signal.aborted)throw new _e(Ce.ConnectionClosed,"Request was cancelled");d&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,h)).then(async p=>{if(l.signal.aborted)return;const m={result:p,jsonrpc:"2.0",id:t.id};o&&this._taskMessageQueue?await this._enqueueTaskMessage(o,{type:"response",message:m,timestamp:Date.now()},i?.sessionId):await i?.send(m)},async p=>{if(l.signal.aborted)return;const m={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(p.code)?p.code:Ce.InternalError,message:p.message??"Internal error",...p.data!==void 0&&{data:p.data}}};o&&this._taskMessageQueue&&u?await this._enqueueTaskMessage(o,{type:"error",message:m,timestamp:Date.now()},i?.sessionId):await i?.send(m)}).catch(p=>this._onerror(new Error(`Failed to send response: ${p}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===l&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){const{progressToken:n,...r}=t.params,i=Number(n),o=this._progressHandlers.get(i);if(!o){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}const s=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(u){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),s(u);return}o(r)}_onresponse(t){const n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),$o(t))r(t);else{const s=new _e(t.error.code,t.error.message,t.error.data);r(s)}return}const i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let o=!1;if($o(t)&&t.result&&typeof t.result=="object"){const s=t.result;if(s.task&&typeof s.task=="object"){const a=s.task;typeof a.taskId=="string"&&(o=!0,this._taskProgressTokens.set(a.taskId,n))}}if(o||this._progressHandlers.delete(n),$o(t))i(t);else{const s=_e.fromError(t.error.code,t.error.message,t.error.data);i(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){const{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(s){yield{type:"error",error:s instanceof _e?s:new _e(Ce.InternalError,String(s))}}return}let o;try{const s=await this.request(t,lf,r);if(s.task)o=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new _e(Ce.InternalError,"Task creation did not return a task");for(;;){const a=await this.getTask({taskId:o},r);if(yield{type:"taskStatus",task:a},An(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:o},n,r)}:a.status==="failed"?yield{type:"error",error:new _e(Ce.InternalError,`Task ${o} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new _e(Ce.InternalError,`Task ${o} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:o},n,r)};return}const u=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(c=>setTimeout(c,u)),r?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof _e?s:new _e(Ce.InternalError,String(s))}}}request(t,n,r){const{relatedRequestId:i,resumptionToken:o,onresumptiontoken:s,task:a,relatedTask:u}=r??{};return new Promise((c,l)=>{const d=y=>{l(y)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(y){d(y);return}r?.signal?.throwIfAborted();const f=this._requestMessageId++,h={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),h.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(h.params={...h.params,task:a}),u&&(h.params={...h.params,_meta:{...h.params?._meta||{},[Rn]:u}});const p=y=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(y)}},{relatedRequestId:i,resumptionToken:o,onresumptiontoken:s}).catch(v=>this._onerror(new Error(`Failed to send cancellation: ${v}`)));const b=y instanceof _e?y:new _e(Ce.RequestTimeout,String(y));l(b)};this._responseHandlers.set(f,y=>{if(!r?.signal?.aborted){if(y instanceof Error)return l(y);try{const b=fb(n,y.result);b.success?c(b.data):l(b.error)}catch(b){l(b)}}}),r?.signal?.addEventListener("abort",()=>{p(r?.signal?.reason)});const m=r?.timeout??z0,g=()=>p(_e.fromError(Ce.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,g,r?.resetTimeoutOnProgress??!1);const w=u?.taskId;if(w){const y=b=>{const v=this._responseHandlers.get(f);v?v(b):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,y),this._enqueueTaskMessage(w,{type:"request",message:h,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(f),l(b)})}else this._transport.send(h,{relatedRequestId:i,resumptionToken:o,onresumptiontoken:s}).catch(y=>{this._cleanupTimeout(f),l(y)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},ff,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},mf,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},gE,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);const r=n?.relatedTask?.taskId;if(r){const a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Rn]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Rn]:n.relatedTask}}}),this._transport?.send(a,n).catch(u=>this._onerror(u))});return}let s={...t,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Rn]:n.relatedTask}}}),await this._transport.send(s,n)}setRequestHandler(t,n){const r=Ch(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,o)=>{const s=Ah(t,i);return Promise.resolve(n(s,o))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){const r=Ch(t);this._notificationHandlers.set(r,i=>{const o=Ah(t,i);return Promise.resolve(n(o))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){const n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r??this._transport?.sessionId,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){const r=await this._taskMessageQueue.dequeueAll(t,n);for(const i of r)if(i.type==="request"&&Th(i.message)){const o=i.message.id,s=this._requestResolvers.get(o);s?(s(new _e(Ce.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(o)):this._onerror(new Error(`Resolver missing for request ${o} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n,r){let i=this._options?.defaultTaskPollInterval??1e3;try{const o=await this._taskStore?.getTask(t,r);o?.pollInterval&&(i=o.pollInterval)}catch{}return new Promise((o,s)=>{if(n.aborted){s(new _e(Ce.InvalidRequest,"Request cancelled"));return}const a=setTimeout(o,i);n.addEventListener("abort",()=>{clearTimeout(a),s(new _e(Ce.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){const r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{const o=await r.getTask(i,n);if(!o)throw new _e(Ce.InvalidParams,"Failed to retrieve task: Task not found");return o},storeTaskResult:async(i,o,s)=>{await r.storeTaskResult(i,o,s,n);const a=await r.getTask(i,n);if(a){const u=ns.parse({method:"notifications/tasks/status",params:a});await this.notification(u),An(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,o,s)=>{const a=await r.getTask(i,n);if(!a)throw new _e(Ce.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(An(a.status))throw new _e(Ce.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${o}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,o,s,n);const u=await r.getTask(i,n);if(u){const c=ns.parse({method:"notifications/tasks/status",params:u});await this.notification(c),An(u.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}function Ih(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function L0(e,t){const n={...e};for(const r in t){const i=r,o=t[i];if(o===void 0)continue;const s=n[i];Ih(s)&&Ih(o)?n[i]={...s,...o}:n[i]=o}return n}(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});class P0 extends R0{_registeredMethods=new Set;_eventSlots=new Map;onEventDispatch(t,n){}_ensureEventSlot(t){let n=this._eventSlots.get(t);if(!n){let r=this.eventSchemas[t];if(!r)throw Error(`Unknown event: ${String(t)}`);n={listeners:[]},this._eventSlots.set(t,n);let i=r.shape.method.value;this._registeredMethods.add(i);let o=n;super.setNotificationHandler(r,s=>{let a=s.params;this.onEventDispatch(t,a),o.onHandler?.(a);for(let u of[...o.listeners])u(a)})}return n}setEventHandler(t,n){let r=this._ensureEventSlot(t);r.onHandler&&n&&console.warn(`[MCP Apps] on${String(t)} handler replaced. Use addEventListener("${String(t)}", …) to add multiple listeners without replacing.`),r.onHandler=n}getEventHandler(t){return this._eventSlots.get(t)?.onHandler}addEventListener(t,n){this._ensureEventSlot(t).listeners.push(n)}removeEventListener(t,n){let r=this._eventSlots.get(t);if(!r)return;let i=r.listeners.indexOf(n);i!==-1&&r.listeners.splice(i,1)}setRequestHandler=(t,n)=>{this._assertMethodNotRegistered(t,"setRequestHandler"),super.setRequestHandler(t,n)};setNotificationHandler=(t,n)=>{this._assertMethodNotRegistered(t,"setNotificationHandler"),super.setNotificationHandler(t,n)};warnIfRequestHandlerReplaced(t,n,r){n&&r&&console.warn(`[MCP Apps] ${t} handler replaced. Previous handler will no longer be called.`)}replaceRequestHandler=(t,n)=>{let r=t.shape.method.value;this._registeredMethods.add(r),super.setRequestHandler(t,n)};_assertMethodNotRegistered(t,n){let r=t.shape.method.value;if(this._registeredMethods.has(r))throw Error(`Handler for "${r}" already registered (via ${n}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._registeredMethods.add(r)}}var D0="2026-01-26",O0="ui/notifications/tool-input-partial";class Zb{eventTarget;eventSource;messageListener;constructor(t=window.parent,n){this.eventTarget=t,this.eventSource=n,this.messageListener=r=>{if(n&&r.source!==this.eventSource){console.debug("Ignoring message from unknown source",r);return}let i=Xx.safeParse(r.data);i.success?(console.debug("Parsed message",i.data),this.onmessage?.(i.data)):r.data?.jsonrpc!=="2.0"?console.debug("Ignoring non-JSON-RPC message",i.error.message,r):(console.error("Failed to parse message",i.error.message,r),this.onerror?.(Error("Invalid JSON-RPC message received: "+i.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(t,n){t.method!==O0&&console.debug("Sending message",t),this.eventTarget.postMessage(t,"*")}async close(){window.removeEventListener("message",this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion}var M0=ge([E("light"),E("dark")]).describe("Color theme preference for the host environment."),ii=ge([E("inline"),E("fullscreen"),E("pip")]).describe("Display mode for UI presentation."),F0=ge([E("--color-background-primary"),E("--color-background-secondary"),E("--color-background-tertiary"),E("--color-background-inverse"),E("--color-background-ghost"),E("--color-background-info"),E("--color-background-danger"),E("--color-background-success"),E("--color-background-warning"),E("--color-background-disabled"),E("--color-text-primary"),E("--color-text-secondary"),E("--color-text-tertiary"),E("--color-text-inverse"),E("--color-text-ghost"),E("--color-text-info"),E("--color-text-danger"),E("--color-text-success"),E("--color-text-warning"),E("--color-text-disabled"),E("--color-border-primary"),E("--color-border-secondary"),E("--color-border-tertiary"),E("--color-border-inverse"),E("--color-border-ghost"),E("--color-border-info"),E("--color-border-danger"),E("--color-border-success"),E("--color-border-warning"),E("--color-border-disabled"),E("--color-ring-primary"),E("--color-ring-secondary"),E("--color-ring-inverse"),E("--color-ring-info"),E("--color-ring-danger"),E("--color-ring-success"),E("--color-ring-warning"),E("--font-sans"),E("--font-mono"),E("--font-weight-normal"),E("--font-weight-medium"),E("--font-weight-semibold"),E("--font-weight-bold"),E("--font-text-xs-size"),E("--font-text-sm-size"),E("--font-text-md-size"),E("--font-text-lg-size"),E("--font-heading-xs-size"),E("--font-heading-sm-size"),E("--font-heading-md-size"),E("--font-heading-lg-size"),E("--font-heading-xl-size"),E("--font-heading-2xl-size"),E("--font-heading-3xl-size"),E("--font-text-xs-line-height"),E("--font-text-sm-line-height"),E("--font-text-md-line-height"),E("--font-text-lg-line-height"),E("--font-heading-xs-line-height"),E("--font-heading-sm-line-height"),E("--font-heading-md-line-height"),E("--font-heading-lg-line-height"),E("--font-heading-xl-line-height"),E("--font-heading-2xl-line-height"),E("--font-heading-3xl-line-height"),E("--border-radius-xs"),E("--border-radius-sm"),E("--border-radius-md"),E("--border-radius-lg"),E("--border-radius-xl"),E("--border-radius-full"),E("--border-width-regular"),E("--shadow-hairline"),E("--shadow-sm"),E("--shadow-md"),E("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),U0=be(F0.describe(`Style variables for theming MCP apps.
71
71
 
72
72
  Individual style keys are optional - hosts may provide any subset of these values.
73
73
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
74
74
 
75
75
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
76
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),H([b(),mn()]).describe(`Style variables for theming MCP apps.
76
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),ge([x(),or()]).describe(`Style variables for theming MCP apps.
77
77
 
78
78
  Individual style keys are optional - hosts may provide any subset of these values.
79
79
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
@@ -85,10 +85,10 @@ Individual style keys are optional - hosts may provide any subset of these value
85
85
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
86
86
 
87
87
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
88
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);k({method:v("ui/open-link"),params:k({url:b().describe("URL to open in the host's browser")})});var u$=k({isError:X().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),l$=k({isError:X().optional().describe("True if the download failed (e.g., user cancelled or host denied).")}).passthrough(),d$=k({isError:X().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();k({method:v("ui/notifications/sandbox-proxy-ready"),params:k({})});var Ml=k({connectDomains:D(b()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
88
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);T({method:E("ui/open-link"),params:T({url:x().describe("URL to open in the host's browser")})});var G0=T({isError:Ne().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),j0=T({isError:Ne().optional().describe("True if the download failed (e.g., user cancelled or host denied).")}).passthrough(),Z0=T({isError:Ne().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();T({method:E("ui/notifications/sandbox-proxy-ready"),params:T({})});var Sf=T({connectDomains:oe(x()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
89
89
 
90
90
  - Maps to CSP \`connect-src\` directive
91
- - Empty or omitted → no network connections (secure default)`),resourceDomains:D(b()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:D(b()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:D(b()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),Ll=k({camera:k({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),microphone:k({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),geolocation:k({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),clipboardWrite:k({}).optional().describe("Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.")});k({method:v("ui/notifications/size-changed"),params:k({width:U().optional().describe("New width in pixels."),height:U().optional().describe("New height in pixels.")})});var f$=k({method:v("ui/notifications/tool-input"),params:k({arguments:J(b(),Q().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),p$=k({method:v("ui/notifications/tool-input-partial"),params:k({arguments:J(b(),Q().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),h$=k({method:v("ui/notifications/tool-cancelled"),params:k({reason:b().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),m$=k({fonts:b().optional()}),g$=k({variables:c$.optional().describe("CSS variables for theming the app."),css:m$.optional().describe("CSS blocks that apps can inject.")}),y$=k({method:v("ui/resource-teardown"),params:k({})});J(b(),Q());var Ld=k({text:k({}).optional().describe("Host supports text content blocks."),image:k({}).optional().describe("Host supports image content blocks."),audio:k({}).optional().describe("Host supports audio content blocks."),resource:k({}).optional().describe("Host supports resource content blocks."),resourceLink:k({}).optional().describe("Host supports resource link content blocks."),structuredContent:k({}).optional().describe("Host supports structured content.")});k({method:v("ui/notifications/request-teardown"),params:k({}).optional()});var _$=k({experimental:J(b(),J(b(),eo()).describe("Experimental features keyed by identifier.")).optional().describe("Experimental features keyed by identifier."),openLinks:k({}).optional().describe("Host supports opening external URLs."),downloadFile:k({}).optional().describe("Host supports file downloads via ui/download-file."),serverTools:k({listChanged:X().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:k({listChanged:X().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:k({}).optional().describe("Host accepts log messages."),sandbox:k({permissions:Ll.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:Ml.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:Ld.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:Ld.optional().describe("Host supports receiving content messages (ui/message) from the view."),sampling:k({tools:k({}).optional().describe("Host supports tool use via `tools` and `toolChoice` parameters.")}).optional().describe("Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.")}),b$=k({experimental:J(b(),J(b(),eo()).describe("Experimental features keyed by identifier.")).optional().describe("Experimental features keyed by identifier."),tools:k({listChanged:X().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:D(ir).optional().describe("Display modes the app supports.")});k({method:v("ui/notifications/initialized"),params:k({}).optional()});k({csp:Ml.optional().describe("Content Security Policy configuration for UI resources."),permissions:Ll.optional().describe("Sandbox permissions requested by the UI resource."),domain:b().optional().describe(`Dedicated origin for view sandbox.
91
+ - Empty or omitted → no network connections (secure default)`),resourceDomains:oe(x()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:oe(x()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:oe(x()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),xf=T({camera:T({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),microphone:T({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),geolocation:T({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),clipboardWrite:T({}).optional().describe("Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.")});T({method:E("ui/notifications/size-changed"),params:T({width:de().optional().describe("New width in pixels."),height:de().optional().describe("New height in pixels.")})});var B0=T({method:E("ui/notifications/tool-input"),params:T({arguments:be(x(),Ae().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),V0=T({method:E("ui/notifications/tool-input-partial"),params:T({arguments:be(x(),Ae().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),H0=T({method:E("ui/notifications/tool-cancelled"),params:T({reason:x().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),q0=T({fonts:x().optional()}),W0=T({variables:U0.optional().describe("CSS variables for theming the app."),css:q0.optional().describe("CSS blocks that apps can inject.")}),K0=T({method:E("ui/resource-teardown"),params:T({})});be(x(),Ae());var Nh=T({text:T({}).optional().describe("Host supports text content blocks."),image:T({}).optional().describe("Host supports image content blocks."),audio:T({}).optional().describe("Host supports audio content blocks."),resource:T({}).optional().describe("Host supports resource content blocks."),resourceLink:T({}).optional().describe("Host supports resource link content blocks."),structuredContent:T({}).optional().describe("Host supports structured content.")});T({method:E("ui/notifications/request-teardown"),params:T({}).optional()});var J0=T({experimental:be(x(),be(x(),Xi()).describe("Experimental features keyed by identifier.")).optional().describe("Experimental features keyed by identifier."),openLinks:T({}).optional().describe("Host supports opening external URLs."),downloadFile:T({}).optional().describe("Host supports file downloads via ui/download-file."),serverTools:T({listChanged:Ne().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:T({listChanged:Ne().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:T({}).optional().describe("Host accepts log messages."),sandbox:T({permissions:xf.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:Sf.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:Nh.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:Nh.optional().describe("Host supports receiving content messages (ui/message) from the view."),sampling:T({tools:T({}).optional().describe("Host supports tool use via `tools` and `toolChoice` parameters.")}).optional().describe("Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.")}),Y0=T({experimental:be(x(),be(x(),Xi()).describe("Experimental features keyed by identifier.")).optional().describe("Experimental features keyed by identifier."),tools:T({listChanged:Ne().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:oe(ii).optional().describe("Display modes the app supports.")});T({method:E("ui/notifications/initialized"),params:T({}).optional()});T({csp:Sf.optional().describe("Content Security Policy configuration for UI resources."),permissions:xf.optional().describe("Sandbox permissions requested by the UI resource."),domain:x().optional().describe(`Dedicated origin for view sandbox.
92
92
 
93
93
  Useful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.
94
94
 
@@ -96,20 +96,629 @@ Useful when views need stable, dedicated origins for OAuth callbacks, CORS polic
96
96
  - Hash-based subdomains (e.g., \`{hash}.claudemcpcontent.com\`)
97
97
  - URL-derived subdomains (e.g., \`www-example-com.oaiusercontent.com\`)
98
98
 
99
- If omitted, host uses default sandbox origin (typically per-conversation).`),prefersBorder:X().optional().describe(`Visual boundary preference - true if view prefers a visible border.
99
+ If omitted, host uses default sandbox origin (typically per-conversation).`),prefersBorder:Ne().optional().describe(`Visual boundary preference - true if view prefers a visible border.
100
100
 
101
101
  Boolean requesting whether a visible border and background is provided by the host. Specifying an explicit value for this is recommended because hosts' defaults may vary.
102
102
 
103
103
  - \`true\`: request visible border + background
104
104
  - \`false\`: request no visible border + background
105
- - omitted: host decides border`)});k({method:v("ui/request-display-mode"),params:k({mode:ir.describe("The display mode being requested.")})});var w$=k({mode:ir.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),v$=H([v("model"),v("app")]).describe("Tool visibility scope - who can access the tool.");k({resourceUri:b().optional(),visibility:D(v$).optional().describe(`Who can access this tool. Default: ["model", "app"]
105
+ - omitted: host decides border`)});T({method:E("ui/request-display-mode"),params:T({mode:ii.describe("The display mode being requested.")})});var X0=T({mode:ii.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),Q0=ge([E("model"),E("app")]).describe("Tool visibility scope - who can access the tool.");T({resourceUri:x().optional(),visibility:oe(Q0).optional().describe(`Who can access this tool. Default: ["model", "app"]
106
106
  - "model": Tool visible to and callable by the agent
107
- - "app": Tool callable by the app from this server only`),csp:Ht().optional(),permissions:Ht().optional()});k({mimeTypes:D(b()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});k({method:v("ui/download-file"),params:k({contents:D(H([sy,iy])).describe("Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})});k({method:v("ui/message"),params:k({role:v("user").describe('Message role, currently only "user" is supported.'),content:D(mo).describe("Message content blocks (text, image, etc.).")})});k({method:v("ui/notifications/sandbox-resource-ready"),params:k({html:b().describe("HTML content to load into the inner iframe."),sandbox:b().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:Ml.optional().describe("CSP configuration from resource metadata."),permissions:Ll.optional().describe("Sandbox permissions from resource metadata.")})});var k$=k({method:v("ui/notifications/tool-result"),params:$i.describe("Standard MCP tool execution result.")}),py=k({toolInfo:k({id:co.optional().describe("JSON-RPC id of the tools/call request."),tool:Pl.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:i$.optional().describe("Current color theme preference."),styles:g$.optional().describe("Style configuration for theming the app."),displayMode:ir.optional().describe("How the UI is currently displayed."),availableDisplayModes:D(ir).optional().describe("Display modes the host supports."),containerDimensions:H([k({height:U().describe("Fixed container height in pixels.")}),k({maxHeight:H([U(),mn()]).optional().describe("Maximum container height in pixels.")})]).and(H([k({width:U().describe("Fixed container width in pixels.")}),k({maxWidth:H([U(),mn()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
108
- container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:b().optional().describe("User's language and region preference in BCP 47 format."),timeZone:b().optional().describe("User's timezone in IANA format."),userAgent:b().optional().describe("Host application identifier."),platform:H([v("web"),v("desktop"),v("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:k({touch:X().optional().describe("Whether the device supports touch input."),hover:X().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:k({top:U().describe("Top safe area inset in pixels."),right:U().describe("Right safe area inset in pixels."),bottom:U().describe("Bottom safe area inset in pixels."),left:U().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),$$=k({method:v("ui/notifications/host-context-changed"),params:py.describe("Partial context update containing only changed fields.")});k({method:v("ui/update-model-context"),params:k({content:D(mo).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:J(b(),Q().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});k({method:v("ui/initialize"),params:k({appInfo:vi.describe("App identification (name and version)."),appCapabilities:b$.describe("Features and capabilities this app provides."),protocolVersion:b().describe("Protocol version this app supports.")})});var S$=k({protocolVersion:b().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:vi.describe("Host application identification and version."),hostCapabilities:_$.describe("Features and capabilities provided by the host."),hostContext:py.describe("Rich context about the host environment.")}).passthrough(),x$={target:"draft-2020-12"};async function Rd(e,t){let n=e["~standard"];if(n.jsonSchema)return n.jsonSchema[t](x$);if(n.vendor==="zod"){let{z:r}=await Uy(()=>Promise.resolve().then(()=>hv),void 0,import.meta.url);return r.toJSONSchema(e,{io:t})}throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function Dd(e,t,n=""){let r=await e["~standard"].validate(t);if(r.issues){let o=r.issues.map(s=>{let i=s.path?.map(a=>typeof a=="object"?a.key:a).join(".");return i?`${i}: ${s.message}`:s.message}).join("; ");throw Error(n+o)}return r.value}function I$(e,t=document.documentElement){for(let[n,r]of Object.entries(e))r!==void 0&&t.style.setProperty(n,r)}function z$(e){if(document.getElementById("__mcp-host-fonts"))return;let t=document.createElement("style");t.id="__mcp-host-fonts",t.textContent=e,document.head.appendChild(t)}class Rl extends r${_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(t){if(this._initializedSent)return;let n=`[ext-apps] App.${t}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(n);console.warn(`${n}. This will throw in a future release.`)}eventSchemas={toolinput:f$,toolinputpartial:p$,toolresult:k$,toolcancelled:h$,hostcontextchanged:$$};static ONE_SHOT_EVENTS=new Set(["toolinput","toolinputpartial","toolresult","toolcancelled"]);_everHadListener=new Set;_assertHandlerTiming(t){if(!Rl.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(t,n){n&&this._assertHandlerTiming(t),super.setEventHandler(t,n)}addEventListener(t,n){this._assertHandlerTiming(t),super.addEventListener(t,n)}onEventDispatch(t,n){t==="hostcontextchanged"&&(this._hostContext={...this._hostContext,...n})}constructor(t,n={},r={autoResize:!0}){super(r),this._appInfo=t,this._capabilities=n,this.options=r,r.allowUnsafeEval||ye({jitless:!0}),this.setRequestHandler(ki,o=>(console.log("Received ping:",o.params),{})),this.setEventHandler("hostcontextchanged",void 0)}registerCapabilities(t){if(this.transport)throw Error("Cannot register capabilities after transport is established");this._capabilities=n$(this._capabilities,t)}registerTool(t,n,r){if(this._registeredTools[t])throw Error(`Tool ${t} is already registered`);let o=this,s=()=>{o._initializedSent&&o._capabilities.tools?.listChanged&&o.sendToolListChanged()},i=n.inputSchema!==void 0,a={title:n.title,description:n.description,inputSchema:n.inputSchema,outputSchema:n.outputSchema,annotations:n.annotations,_meta:n._meta,enabled:!0,enable(){this.enabled=!0,s()},disable(){this.enabled=!1,s()},update(c){Object.assign(this,c),s()},remove(){o._registeredTools[t]===a&&(delete o._registeredTools[t],s())},handler:async(c,u)=>{if(!a.enabled)throw Error(`Tool ${t} is disabled`);let l;if(i){let d=a.inputSchema,f=d?await Dd(d,c??{},`Invalid input for tool ${t}: `):c??{};l=await r(f,u)}else l=await r(u);return a.outputSchema&&!l.isError&&(l.structuredContent=await Dd(a.outputSchema,l.structuredContent,`Invalid output for tool ${t}: `)),l}};return this._registeredTools[t]=a,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),s(),a}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(t,n)=>{let r=this._registeredTools[t.name];if(!r)throw Error(`Tool ${t.name} not found`);return r.handler(t.arguments,n)},this.onlisttools=async(t,n)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([r,o])=>o.enabled).map(async([r,o])=>{let s={name:r,title:o.title,description:o.description,inputSchema:o.inputSchema?await Rd(o.inputSchema,"input"):{type:"object",properties:{}}};return o.outputSchema&&(s.outputSchema=await Rd(o.outputSchema,"output")),o.annotations&&(s.annotations=o.annotations),o._meta&&(s._meta=o._meta),s}))}))}async sendToolListChanged(t={}){this._assertInitialized("sendToolListChanged"),await this.notification({method:"notifications/tools/list_changed",params:t})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler("toolinput")}set ontoolinput(t){this.setEventHandler("toolinput",t)}get ontoolinputpartial(){return this.getEventHandler("toolinputpartial")}set ontoolinputpartial(t){this.setEventHandler("toolinputpartial",t)}get ontoolresult(){return this.getEventHandler("toolresult")}set ontoolresult(t){this.setEventHandler("toolresult",t)}get ontoolcancelled(){return this.getEventHandler("toolcancelled")}set ontoolcancelled(t){this.setEventHandler("toolcancelled",t)}get onhostcontextchanged(){return this.getEventHandler("hostcontextchanged")}set onhostcontextchanged(t){this.setEventHandler("hostcontextchanged",t)}_onteardown;get onteardown(){return this._onteardown}set onteardown(t){this.warnIfRequestHandlerReplaced("onteardown",this._onteardown,t),this._onteardown=t,this.replaceRequestHandler(y$,(n,r)=>{if(!this._onteardown)throw Error("No onteardown handler set");return this._onteardown(n.params,r)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(t){this.warnIfRequestHandlerReplaced("oncalltool",this._oncalltool,t),this._oncalltool=t,this.replaceRequestHandler(cy,(n,r)=>{if(!this._oncalltool)throw Error("No oncalltool handler set");return this._oncalltool(n.params,r)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(t){this.warnIfRequestHandlerReplaced("onlisttools",this._onlisttools,t),this._onlisttools=t,this.replaceRequestHandler(ay,(n,r)=>{if(!this._onlisttools)throw Error("No onlisttools handler set");return this._onlisttools(n.params,r)})}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${t})`);break}}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){if(this._assertInitialized("callServerTool"),typeof t=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${t}"). Did you mean: callServerTool({ name: "${t}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:t},$i,{onprogress:()=>{},resetTimeoutOnProgress:!0,...n})}async readServerResource(t,n){return this._assertInitialized("readServerResource"),await this.request({method:"resources/read",params:t},oy,n)}async listServerResources(t,n){return this._assertInitialized("listServerResources"),await this.request({method:"resources/list",params:t},ry,n)}async createSamplingMessage(t,n){this._assertInitialized("createSamplingMessage");let r=t.tools?dy:ly;return await this.request({method:"sampling/createMessage",params:t},r,n)}sendMessage(t,n){return this._assertInitialized("sendMessage"),this.request({method:"ui/message",params:t},d$,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this._assertInitialized("updateModelContext"),this.request({method:"ui/update-model-context",params:t},bl,n)}openLink(t,n){return this._assertInitialized("openLink"),this.request({method:"ui/open-link",params:t},u$,n)}sendOpenLink=this.openLink;downloadFile(t,n){return this._assertInitialized("downloadFile"),this.request({method:"ui/download-file",params:t},l$,n)}requestTeardown(t={}){return this.notification({method:"ui/notifications/request-teardown",params:t})}requestDisplayMode(t,n){return this._assertInitialized("requestDisplayMode"),this.request({method:"ui/request-display-mode",params:t},w$,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,r=0,o=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let i=document.documentElement,a=i.style.height;i.style.height="max-content";let c=Math.ceil(i.getBoundingClientRect().height);i.style.height=a;let u=Math.ceil(window.innerWidth);(u!==n||c!==r)&&(n=u,r=c,this.sendSizeChanged({width:u,height:c}))}))};o();let s=new ResizeObserver(o);return s.observe(document.documentElement),s.observe(document.body),()=>s.disconnect()}async connect(t=new fy(window.parent,window.parent),n){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");this._initializedSent=!1,await super.connect(t);try{let r=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:o$}},S$,n);if(r===void 0)throw Error(`Server sent invalid initialize result: ${r}`);this._hostCapabilities=r.hostCapabilities,this._hostInfo=r.hostInfo,this._hostContext=r.hostContext,await this.notification({method:"ui/notifications/initialized"}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(r){throw this.close(),r}}}const T$="http://www.w3.org/2000/svg",C$=.45,E$=2.5,A$=5,N$="chain-insights.flows.v1",Dl="cia-graph-model",O$=90,zt={rest:.6,related:.95,faded:.07},Zd={checked:24,other:19},ar=16,P$=[["Sanctioned","Sanctioned"],["Scam","Scam"],["Poisoned","Poisoned"],["OnMoneyTrail","On money trail"],["Mixer","Mixer"],["Bridge","Bridge"],["Exchange","Exchange"],["Victim","Victim"],["Targeted","Targeted"]],go=["exchange","scam","sanctioned","victim","pool","other"],M$={exchange:"infrastructure",scam:"danger",sanctioned:"danger",victim:"target",pool:"trail",other:"neutral"},hy={exchange:"Exchange",scam:"Scam",sanctioned:"Sanctioned",victim:"Victim",pool:"Pool",other:""};function Zl(e){return!!e&&e.schema===N$}function L$(e){return!!e&&e.kind===Dl}function pe(e){return String(e??"").trim().toLowerCase()}function R$(e){const t=pe(e);return go.includes(t)?t:"other"}function xt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function ra(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function D$(e){const t=String(e??"").toUpperCase();return t==="IN"||t==="OUT"||t==="MIXED"||t==="CHECKED"?t:"OUT"}function Ke(e){return L$(e)?e:Zl(e)?Z$(e):F$(e)}function Z$(e){const t=pe(e.center),n=new Map;for(const a of e.nodes??[]){const c=pe(a?.address);c&&!n.has(c)&&n.set(c,a)}const r=[],o=new Set;for(const a of e.edges??[]){const c=pe(a?.from),u=pe(a?.to);if(!n.has(c)||!n.has(u)||c===u)continue;const l=`${c}->${u}`;o.has(l)||(o.add(l),r.push({id:l,from:c,to:u,source:"flows",amount_usd_sum:xt(a.usd),tx_count:xt(a.tx_count),first_seen_timestamp:xt(a.first_seen_ms),last_seen_timestamp:xt(a.last_seen_ms),...typeof a.link_kind=="string"&&a.link_kind?{link_kind:a.link_kind}:{}}))}const s=j$(t,[...n.keys()],r),i=[...n.entries()].map(([a,c])=>{const u=s.get(a)??{direction:"OUT",hop:2};return{id:a,address:a,direction:a===t?"CHECKED":u.direction,hop:a===t?0:u.hop,labels:ra(c.labels),taxonomy:[],role:R$(c.role),total_in_usd:xt(c.total_in_usd),total_out_usd:xt(c.total_out_usd),degree_in:xt(c.degree_in),degree_out:xt(c.degree_out)}});return{kind:Dl,checked_address:t,network:e.network??null,nodes:i,edges:r,truncated:!!e.truncated,cursor:e.cursor??null}}function j$(e,t,n){const r=new Map,o=new Map,s=new Map,i=(d,f,p)=>d.set(f,[...d.get(f)??[],p]);for(const d of n)i(r,d.from,d.to),i(o,d.to,d.from),i(s,d.from,d.to),i(s,d.to,d.from);const a=d=>{const f=new Map([[e,0]]);for(let p=[e];p.length;){const h=[];for(const m of p)for(const _ of d.get(m)??[])f.has(_)||(f.set(_,(f.get(m)??0)+1),h.push(_));p=h}return f},c=a(r),u=a(o),l=new Map;for(const d of t){if(d===e)continue;const f=c.get(d),p=u.get(d);if(f==null&&p==null)continue;const h=f!=null&&p!=null?f<p?"OUT":p<f?"IN":"MIXED":f!=null?"OUT":"IN";l.set(d,{direction:h,hop:Math.min(2,Math.min(f??1/0,p??1/0))})}for(let d=!0;d;){d=!1;for(const f of t){if(f===e||l.has(f))continue;const p=(s.get(f)??[]).find(m=>m!==e&&l.has(m));if(p==null)continue;const h=l.get(p);l.set(f,{direction:h.direction==="MIXED"?"OUT":h.direction,hop:2}),d=!0}}return l}function F$(e){const t=(e?.nodes??[]).map(r=>({...r,id:String(r.id??r.address),address:r.address,hop:Number(r.hop)||0,direction:r.address===e.checked_address?"CHECKED":D$(r.direction),labels:ra(r.labels),taxonomy:ra(r.taxonomy),role:null})),n=(e?.edges??[]).map(r=>({...r,id:String(r.id??`${r.from}->${r.to}`),amount_usd_sum:r.amount_usd_sum??null,tx_count:r.tx_count??null,first_seen_timestamp:r.first_seen_timestamp??null,last_seen_timestamp:r.last_seen_timestamp??null,source:"risk"}));return{kind:Dl,checked_address:e?.checked_address??"",network:null,nodes:t,edges:n,truncated:!1,cursor:null}}function U$(e,t,n){const r=Ke(t),o=Wn(e,n??r.checked_address),s=e.nodes.find(d=>d.id===o),i=new Map(e.nodes.map(d=>[pe(d.address),d])),a=[];for(const d of r.nodes){if(i.has(pe(d.address)))continue;const f=!s||s.direction==="CHECKED"?d.direction==="CHECKED"?"OUT":d.direction:s.direction,p={...d,id:d.id,direction:f,hop:Math.min(2,(s?.hop??0)+1)};a.push(p),i.set(pe(d.address),p)}const c=new Set(e.edges.map(d=>d.id)),u=new Set(e.edges.map(d=>`${pe(d.from)}->${pe(d.to)}`)),l=[...e.edges];for(const d of r.edges){const f=`${pe(d.from)}->${pe(d.to)}`;if(c.has(d.id)||u.has(f)||!i.has(pe(d.from))||!i.has(pe(d.to)))continue;const p=i.get(pe(d.from)).address,h=i.get(pe(d.to)).address;l.push({...d,from:p,to:h}),c.add(d.id),u.add(f)}return{model:{...e,nodes:[...e.nodes,...a],edges:l,truncated:e.truncated||r.truncated},added:a.map(d=>d.id)}}function Wn(e,t){if(t==null)return null;const n=pe(t);return e.nodes.find(o=>o.id===t||pe(o.address)===n)?.id??null}function cr(e){return typeof e!="string"||e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function jl(e){return String(e??"").trim().replace(/\s+/g," ")}function es(e){return jl(e).replaceAll(" ","").toLowerCase()}function Et(e){const t=[...e.taxonomy??[],...e.labels??[]],n=new Set,r=[];for(const o of t){const s=jl(o),i=s.toLowerCase();!s||i==="address"||n.has(i)||(n.add(i),r.push(s))}return r}function Mo(e,t){const n=new Set(Et(e).map(es));return t.some(r=>n.has(es(r)))}function V$(e){if(e.role&&go.includes(e.role))return M$[e.role];if(Mo(e,["Sanctioned","Scam","Poisoned"]))return"danger";if(Mo(e,["Victim","Targeted"]))return"target";if(Mo(e,["OnMoneyTrail","Mixer"]))return"trail";if(Mo(e,["Exchange","Bridge","token contract"]))return"infrastructure";if(e.risk_score!=null){const t=String(e.risk_level).toLowerCase();if(t==="critical"||t==="high"||t==="medium"||t==="low")return t}return"neutral"}function fe(e){return`var(--cia-graph-${e})`}const q$={semantic:{danger:{stroke:fe("danger"),fill:fe("node")},target:{stroke:fe("target"),fill:fe("node")},trail:{stroke:fe("trail"),fill:fe("node")},infrastructure:{stroke:fe("infrastructure"),fill:fe("node")},neutral:{stroke:fe("neutral"),fill:fe("node")}},risk:{CRITICAL:{stroke:fe("critical"),fill:fe("node")},HIGH:{stroke:fe("high"),fill:fe("node")},MEDIUM:{stroke:fe("medium"),fill:fe("node")},LOW:{stroke:fe("low"),fill:fe("node")}}};function H$(e,t=q$){const n=V$(e);return n==="critical"||n==="high"||n==="medium"||n==="low"?t.risk[n.toUpperCase()]??t.semantic.neutral:t.semantic[n]}function B$(e){return e.role&&go.includes(e.role)?fe(`role-${e.role}`):H$(e).stroke}function Si(e){if(e.role&&e.role!=="other"&&go.includes(e.role))return hy[e.role];const t=Et(e);for(const[r,o]of P$)if(t.some(s=>es(s)===es(r)))return o;return(Array.isArray(e.labels)?e.labels.map(jl).filter(Boolean).sort((r,o)=>r.localeCompare(o)):[])[0]??""}function oa(e){return Math.min(E$,Math.max(C$,e))}function yo(e){return[...e.nodes??[]].sort((t,n)=>String(t.id).localeCompare(String(n.id)))}function Fl(e,t=yo(e)){return t.find(n=>n.address===e.checked_address)??t[0]}function jd(e,t){return e.address===t?43:e.hop>=2?25:30}function jt(e,t){return e.address===t?Zd.checked:Zd.other}function _o(e,t,n){const r=e.address===t,o=jt(e,t),s=Si(e),i=[];return s&&i.push({kind:"role",text:RS(s),y:o+17}),i.push({kind:"address",text:cr(e.address),y:o+(s?33:17)}),n&&i.push({kind:"note",text:n,y:o+(s?48:32)}),{radius:o,ring:r,dot:r?8:5,texts:i}}const K$={role:{size:13,advance:.68},address:{size:11,advance:.62},note:{size:11,advance:.6}},Oi=2;function Ul(e){const t=e.radius+(e.ring?7:2),n=[{kind:"circle",box:{x1:-t,y1:-t,x2:t,y2:t}}];for(const r of e.texts){const o=K$[r.kind],s=[...r.text].length*o.size*o.advance/2+Oi;n.push({kind:r.kind,box:{x1:-s,y1:r.y-o.size*.8-Oi,x2:s,y2:r.y+o.size*.25+Oi}})}return n}function my(e){return e.length?{x1:Math.min(...e.map(t=>t.x1)),y1:Math.min(...e.map(t=>t.y1)),x2:Math.max(...e.map(t=>t.x2)),y2:Math.max(...e.map(t=>t.y2))}:null}function gy(e){return my(Ul(e).map(t=>t.box))}const Vl=(e,t)=>(e instanceof Map?e.get(t):e?.[t])??null;function J$(e,t,n){const r=Ke(e),o=[];for(const s of r.nodes){const i=t[s.id];if(i)for(const{kind:a,box:c}of Ul(_o(s,r.checked_address,Vl(n,s.id))))o.push({id:s.id,kind:a,x1:i.x+c.x1,y1:i.y+c.y1,x2:i.x+c.x2,y2:i.y+c.y2})}return o}function W$(e,t,n){return my(J$(e,t,n))}function G$(e,t){return e.x1<t.x2&&t.x1<e.x2&&e.y1<t.y2&&t.y1<e.y2}function Y$(e){let t=0;for(const n of String(e))t=(t<<5)-t+n.charCodeAt(0)|0;return Math.abs(t)}function Q$(e,t,n){const r=Ke(e),o={x:t/2,y:n/2},s={},i=yo(r),a=Fl(r,i);if(!a)return s;s[a.id]=o;const c=new Map;for(const u of i){if(u.id===a.id)continue;let l=u.direction==="IN"?-1:1;u.direction==="MIXED"&&(l=Y$(u.id)%2?-1:1);const d=Math.min(2,Math.max(1,Number(u.hop)||1)),f=`${l}:${d}`;c.has(f)||c.set(f,[]),c.get(f).push(u)}for(const[u,l]of c){const[d,f]=u.split(":"),p=Number(d),h=Number(f),m=o.x+p*(h===1?t*.23:t*.43);Object.assign(s,X$(l,m,o.y,r.checked_address))}return s}function X$(e,t,n,r,o=24){const s=e.map((c,u)=>({node:c,x:t,y:n+(u-(e.length-1)/2)*64})),i=c=>gy(_o(c,r)),a=(c,u)=>Math.max(jd(c,r)+jd(u,r)+20,i(c).y2-i(u).y1+2);for(let c=0;c<o;c++){for(let d=1;d<s.length;d++){const f=s[d-1],p=s[d];!f||!p||(p.y=Math.max(p.y,f.y+a(f.node,p.node)))}for(let d=s.length-2;d>=0;d--){const f=s[d],p=s[d+1];!f||!p||(f.y=Math.min(f.y,p.y-a(f.node,p.node)))}const u=s[0],l=s[s.length-1];if(u&&l){const d=(u.y+l.y)/2,f=n-d;for(const p of s)p.y+=f}}return Object.fromEntries(s.map(c=>[c.node.id,{x:c.x,y:c.y}]))}function eS(e,t,n){const r=Ke(e),o={x:t/2,y:n/2},s={},i=yo(r),a=Fl(r,i);if(!a)return s;s[a.id]=o;const c=i.filter(u=>u.id!==a.id);return c.forEach((u,l)=>{const d=-Math.PI/2+l*Math.PI*2/Math.max(1,c.length),f=u.hop>=2?Math.min(t,n)*.39:Math.min(t,n)*.27;s[u.id]={x:o.x+Math.cos(d)*f,y:o.y+Math.sin(d)*f}}),s}function tS(e,t,n,r){const o=Ke(e),s=yo(o).filter(c=>t[c.id]),i=s.find(c=>c.address===o.checked_address);for(let c=0;c<s.length;c++)for(let u=c+1;u<s.length;u++){const l=s[c],d=s[u],f=l&&t[l.id],p=d&&t[d.id];if(!f||!p)continue;const h=p.x-f.x||.1,m=p.y-f.y||.1,_=Math.max(1,Math.hypot(h,m)),S=Math.max(0,88-_)*.012;f.x-=h/_*S,f.y-=m/_*S,p.x+=h/_*S,p.y+=m/_*S}const a=new Map(s.map(c=>[c.address,c]));for(const c of o.edges){const u=a.get(c.from),l=a.get(c.to);if(!u||!l)continue;const d=t[u.id],f=t[l.id];if(!d||!f)continue;const p=f.x-d.x,h=f.y-d.y,m=Math.max(1,Math.hypot(p,h)),_=(m-155)*.003;u!==i&&(d.x+=p/m*_,d.y+=h/m*_),l!==i&&(f.x-=p/m*_,f.y-=h/m*_)}return i&&(t[i.id]={x:n/2,y:r/2}),t}function nS(e,t,n,r=O$){const o=Ke(e),s=eS(o,t,n);for(let i=0;i<r;i++)tS(o,s,t,n);return s}function Lo(e,t,n,r){return t==="tree"?Q$(e,n,r):nS(e,n,r)}function rS(e,t,n,r,o={}){const s=Ke(e),i=t[n],a={...t};if(!i)return a;const c=o.spacing??80,u=o.gap??48,l=Math.max(1,o.perColumn??6),d=s.nodes.find(w=>w.id===n),f=new Map(s.nodes.map(w=>[w.id,w])),p=w=>gy(_o(w,s.checked_address,Vl(o.notes,w.id))),h=s.nodes.flatMap(w=>{const x=t[w.id];if(!x)return[];const C=p(w);return[{x1:x.x+C.x1,x2:x.x+C.x2}]});let m=h.length?Math.min(...h.map(w=>w.x1)):i.x,_=h.length?Math.max(...h.map(w=>w.x2)):i.x;const S={left:[],right:[]};for(const w of[...r].sort()){const x=f.get(w);if(!x||a[w])continue;const C=s.edges.some(O=>O.from===x.address&&O.to===d?.address),R=s.edges.some(O=>O.to===x.address&&O.from===d?.address);S[C&&!R?"left":"right"].push(x)}for(const w of["left","right"]){const x=S[w];for(let C=0;C<x.length;C+=l){const R=x.slice(C,C+l),O=R.map(p),F=Math.max(...O.map(te=>Math.max(-te.x1,te.x2))),oe=Math.max(c,Math.max(...O.map(te=>te.y2))-Math.min(...O.map(te=>te.y1))+6),le=w==="left"?m-u-F:_+u+F;R.forEach((te,ie)=>{a[te.id]={x:le,y:i.y+(ie-(R.length-1)/2)*oe}}),w==="left"?m=le-F:_=le+F}}return a}function oS(e,t,n,r=ar){const o=Math.max(1,e.x2-e.x1),s=Math.max(1,e.y2-e.y1),i=oa(Math.min((t-r*2)/o,(n-r*2)/s));return{x:t/2-(e.x1+e.x2)/2*i,y:n/2-(e.y1+e.y2)/2*i,scale:i}}function Fd(e,t,n,r=ar){return Math.min((t-r*2)/Math.max(1,e.x2-e.x1),(n-r*2)/Math.max(1,e.y2-e.y1))}function sS(e,t,n,r,o=4){const s=t.x-e.x,i=t.y-e.y,a=Math.hypot(s,i),c=n+o,u=r+o;if(!Number.isFinite(a)||a<=0||c+u>=a)return null;const l=s/a,d=i/a;return{x1:e.x+l*c,y1:e.y+d*c,x2:t.x-l*u,y2:t.y-d*u}}function Be(e){return Math.round(e*100)/100}function Pi(e,t,n,r,o){const s=i=>`${Be(i.x)},${Be(i.y)}`;return{kind:e,start:t,end:o,controls:[n,r],d:`M${s(t)} C${s(n)} ${s(r)} ${s(o)}`}}function sa(e,t,n,r,o=4){const s=t.x-e.x,i=t.y-e.y,a=Math.hypot(s,i),c=n+r+o*2;if(!Number.isFinite(a)||a<=c)return null;if(s>=c){const f={x:e.x+n+o,y:e.y},p={x:t.x-r-o,y:t.y},h=p.x-f.x,m=Math.max(h*.45,Math.min(65,h));return Pi("forward",f,{x:f.x+m,y:f.y},{x:p.x-m,y:p.y},p)}if(s<=-c){const f={x:e.x,y:e.y-n-o},p={x:t.x,y:t.y-r-o},h=Math.max(100,Math.abs(s)*.2);return Pi("backward",f,{x:f.x+85,y:f.y-h},{x:p.x+85,y:p.y-h},p)}if(Math.abs(i)>c){const f=i>0?1:-1,p={x:e.x,y:e.y+f*(n+o)},h={x:t.x,y:t.y-f*(r+o)},m=Math.abs(h.y-p.y),_=Math.max(m*.45,Math.min(40,m));return Pi("vertical",p,{x:p.x,y:p.y+f*_},{x:h.x,y:h.y-f*_},h)}const u=sS(e,t,n,r,o),l={x:u.x1,y:u.y1},d={x:u.x2,y:u.y2};return{kind:"straight",start:l,end:d,controls:null,d:`M${Be(l.x)},${Be(l.y)} L${Be(d.x)},${Be(d.y)}`}}const iS=6,Mi=iS+3,ot=14,Ud=10,aS=3,Vd=6;function cS(e,t,n){const r=Ke(e),o=[];for(const s of r.nodes){const i=t[s.id];if(i)for(const{kind:a,box:c}of Ul(_o(s,r.checked_address,Vl(n,s.id))))a==="circle"?o.push({id:s.id,kind:"circle",x:i.x,y:i.y,r:c.x2}):o.push({id:s.id,kind:"box",x1:i.x+c.x1,y1:i.y+c.y1,x2:i.x+c.x2,y2:i.y+c.y2})}return o}function uS(e,t){if(t.kind==="circle")return Math.hypot(e.x-t.x,e.y-t.y)-t.r;const n=Math.max(t.x1-e.x,0,e.x-t.x2),r=Math.max(t.y1-e.y,0,e.y-t.y2);return n||r?Math.hypot(n,r):-Math.min(e.x-t.x1,t.x2-e.x,e.y-t.y1,t.y2-e.y)}function lS(e,t){return e.kind==="circle"?{x1:e.x-e.r-t,y1:e.y-e.r-t,x2:e.x+e.r+t,y2:e.y+e.r+t}:{x1:e.x1-t,y1:e.y1-t,x2:e.x2+t,y2:e.y2+t}}function dS(e,t){const n=1-t;return{x:n*n*n*e[0].x+3*n*n*t*e[1].x+3*n*t*t*e[2].x+t*t*t*e[3].x,y:n*n*n*e[0].y+3*n*n*t*e[1].y+3*n*t*t*e[2].y+t*t*t*e[3].y}}function fS(e){return e.controls?[{kind:"C",points:[e.start,e.controls[0],e.controls[1],e.end]}]:[{kind:"L",points:[e.start,e.end]}]}function yy(e){let t=0,n;for(const r of e)n&&(t+=Math.hypot(r.x-n.x,r.y-n.y)),n=r;return t}function pS(e,t){const n=[];for(const r of e){const o=Math.max(1,Math.ceil(yy(r.points)/t));for(let s=0;s<=o;s++){const i=s/o;if(r.kind==="L"){const[a,c]=r.points;n.push({x:a.x+(c.x-a.x)*i,y:a.y+(c.y-a.y)*i})}else n.push(dS(r.points,i))}}return n}function qd(e,t,n,r){const o=e.flatMap(a=>a.points),s={x1:Math.min(...o.map(a=>a.x)),y1:Math.min(...o.map(a=>a.y)),x2:Math.max(...o.map(a=>a.x)),y2:Math.max(...o.map(a=>a.y))},i=[];if(n.forEach((a,c)=>{a.x1<=s.x2&&s.x1<=a.x2&&a.y1<=s.y2&&s.y1<=a.y2&&i.push(c)}),!i.length)return!0;for(const a of pS(e,aS))for(const c of i){const u=n[c],l=t[c];if(!(!u||!l)&&!(a.x<u.x1||a.x>u.x2||a.y<u.y1||a.y>u.y2)&&uS(a,l)<r)return!1}return!0}function hS(e){const t=e[0],n=e[e.length-1];if(!t||!n)return[];const r=[];for(let i=1;i<e.length;i++)r.push(yy(e.slice(i-1,i+1)));const o=[];let s=t;for(let i=1;i<e.length-1;i++){const a=e[i-1],c=e[i],u=e[i+1],l=r[i-1],d=r[i];if(!a||!c||!u||l===void 0||d===void 0)continue;const f=l/(i-1===0?1:2),p=d/(i===r.length-1?1:2),h=Math.min(ot,f,p),m={x:(c.x-a.x)/l,y:(c.y-a.y)/l},_={x:(u.x-c.x)/d,y:(u.y-c.y)/d},S={x:c.x-m.x*h,y:c.y-m.y*h},w={x:c.x+_.x*h,y:c.y+_.y*h};o.push({kind:"L",points:[s,S]}),o.push({kind:"C",points:[S,{x:S.x+m.x*h*.55,y:S.y+m.y*h*.55},{x:w.x-_.x*h*.55,y:w.y-_.y*h*.55},w]}),s=w}return o.push({kind:"L",points:[s,n]}),o.filter(i=>i.kind==="C"||Math.hypot(i.points[1].x-i.points[0].x,i.points[1].y-i.points[0].y)>.01)}function mS(e){const t=o=>`${Be(o.x)},${Be(o.y)}`,n=e[0];if(!n)return"";let r=`M${t(n.points[0])}`;for(const o of e)r+=o.kind==="L"?` L${t(o.points[1])}`:` C${t(o.points[1])} ${t(o.points[2])} ${t(o.points[3])}`;return r}function Hd(e,t,n,r,o){const s=Math.min(e.y,n)-ot,i=Math.max(e.y,n)+ot,a=d=>(d-e.x)*t;let c=1/0;for(const d of o)if(d.y1<e.y&&e.y<d.y2){const f=t===1?d.x1:d.x2,p=t===1?d.x2:d.x1;a(p)>0&&(c=Math.min(c,Math.max(0,a(f))))}const u=o.filter(d=>d.y1<i&&s<d.y2).map(d=>[a(t===1?d.x1:d.x2),a(t===1?d.x2:d.x1)]).filter(([,d])=>d>r).sort((d,f)=>d[0]-f[0]);let l=r;for(const[d,f]of[...u,[1/0,1/0]]){if(d>l+1){const p=Math.min(d,c);if(p<=l+1)return null;const h=Number.isFinite(p)&&p-l<80?(l+p)/2:l+40;return e.x+t*h}if(l=Math.max(l,f),l>=c)return null}return null}function gS(e){const t=[];for(const n of e){const r=t[t.length-1];r&&Math.abs(r.x-n.x)<.01&&Math.abs(r.y-n.y)<.01||t.push(n)}return t.filter((n,r)=>{if(r===0||r===t.length-1)return!0;const o=t[r-1],s=t[r+1];return!o||!s?!0:!(Math.abs(o.x-n.x)<.01&&Math.abs(s.x-n.x)<.01||Math.abs(o.y-n.y)<.01&&Math.abs(s.y-n.y)<.01)})}const yS=120;function _S(e,t,n,r,o,s=4){const i=sa(e,t,n,r,s);if(!i||!o.length)return i;const a=o.map(f=>lS(f,Mi));if(qd(fS(i),o,a,Mi))return i;const c=new Set([e.y,t.y]),u=f=>Math.abs(f-e.y)<Vd?e.y:Math.abs(f-t.y)<Vd?t.y:f;for(const f of a)c.add(u(Math.round(f.y1)-ot-1)),c.add(u(Math.round(f.y2)+ot+1));const l=t.x>=e.x?1:-1,d=[[l,l],[l,-l],[-l,l],[-l,-l]];for(const[f,p]of d){const h={x:e.x+f*(n+s),y:e.y},m={x:t.x-p*(r+s),y:t.y},_=[];for(const S of c){const w=Math.abs(S-h.y)<.01?h.x:Hd(h,f,S,ot,a);if(w===null)continue;const x=Math.abs(S-m.y)<.01?m.x:Hd(m,-p,S,ot+Ud,a);if(x===null||Math.abs(S-m.y)<.01&&(m.x-w)*p<ot+Ud||Math.abs(S-h.y)<.01&&(x-h.x)*f<ot)continue;const C=gS([h,{x:w,y:h.y},{x:w,y:S},{x,y:S},{x,y:m.y},m]);if(!bS(C,a))continue;let R=(C.length-2)*ot,O;for(const F of C)O&&(R+=Math.abs(F.x-O.x)+Math.abs(F.y-O.y)),O=F;_.push({points:C,length:R})}_.sort((S,w)=>{const x=S.points[2]?.y,C=w.points[2]?.y;return S.length-w.length||(x===void 0||C===void 0?0:x-C)});for(const S of _){const w=hS(S.points);if(!qd(w,o,a,Mi))continue;const x=S.points,C=x[0],R=x[x.length-1];if(!C||!R)continue;const O={x1:Math.min(...x.map(F=>F.x)),y1:Math.min(...x.map(F=>F.y)),x2:Math.max(...x.map(F=>F.x)),y2:Math.max(...x.map(F=>F.y))};return{kind:"routed",start:C,end:R,controls:null,d:mS(w),bounds:O}}}return i}function bS(e,t){let n;for(const r of e){if(n){const o={x1:Math.min(n.x,r.x),y1:Math.min(n.y,r.y),x2:Math.max(n.x,r.x),y2:Math.max(n.y,r.y)};for(const s of t)if(G$(o,s))return!1}n=r}return!0}function wS(e,t){if(!t)return zt.rest;const n=pe(t);return pe(e.from)===n||pe(e.to)===n?zt.related:zt.faded}function vS(){return{hit:{stroke:"transparent",width:16},line:{stroke:fe("edge"),width:1.6},arrow:{fill:fe("edge")}}}function kS(e,t,n){return e!=="gravity"&&e!=="tree"?null:{layout:e,id:t,pointerId:n}}function $S(e,t,n,r){return e!=="node"&&e!=="edge"&&e!=="canvas"||!Number.isFinite(r?.x)||!Number.isFinite(r?.y)?null:{kind:e,id:t??null,pointerId:n,start:{...r},moved:!1}}function SS(e,t,n,r=A$){if(!e||e.pointerId!==t)return e;const o=Math.hypot(n.x-e.start.x,n.y-e.start.y);return{...e,moved:e.moved||o>r}}function xS(e,t,n=!1){return!e||e.pointerId!==t||n||e.moved?null:e.kind==="node"?{type:"select-node",id:e.id}:e.kind==="edge"?{type:"select-edge",id:e.id}:e.kind==="canvas"?{type:"select-checked"}:null}function Bd(e){return e==="Enter"||e===" "}function IS(e,t){return{x:(e.x-t.x)/t.scale,y:(e.y-t.y)/t.scale}}function zS(e,t,n,r,o){return!t||t.pointerId!==n||!Object.hasOwn(e,t.id)?!1:(e[t.id]=IS(r,o),!0)}function TS(e,t){return e?.pointerId===t?null:e}function CS(e,t,n,r){const o=Math.min(t.width/n,t.height/r),s=t.left+(t.width-n*o)/2,i=t.top+(t.height-r*o)/2;return{x:(e.x-s)/o,y:(e.y-i)/o}}function ES(e,t){const n=new Map;let r=null,o=null,s=null;function i(f){if(f===e)return{kind:"canvas",id:null};const p=f;if(p?.closest?.("[data-canvas]"))return{kind:"canvas",id:null};const h=p?.closest?.("[data-node-id]");if(h)return{kind:"node",id:h.dataset.nodeId??null};const m=p?.closest?.("[data-edge-id]");return m?{kind:"edge",id:m.dataset.edgeId??null}:null}function a(f){if(f.pointerType==="mouse"&&f.button!==0)return;const p=i(f.target);if(!p)return;const h=t.point(f);if(n.set(f.pointerId,h),e.setPointerCapture(f.pointerId),p.kind!=="canvas"&&(f.preventDefault(),f.stopPropagation()),n.size===1){r=$S(p.kind,p.id,f.pointerId,{x:f.clientX,y:f.clientY}),o=p.kind==="canvas"?{point:h,transform:{...t.transform()}}:null;return}if(r&&(r={...r,moved:!0}),o=null,n.size===2){const[m,_]=[...n.values()];m&&_&&(s={distance:Math.hypot(_.x-m.x,_.y-m.y),scale:t.transform().scale},t.startPinch())}}function c(f){if(!n.has(f.pointerId))return;const p=t.point(f);if(n.set(f.pointerId,p),s){const[h,m]=[...n.values()];h&&m&&t.pinch(s,[h,m],f);return}if(r?.pointerId===f.pointerId){if(r=SS(r,f.pointerId,{x:f.clientX,y:f.clientY}),!r?.moved)return;if(r.kind==="node"){t.drag(r.id??"",f.pointerId,p,f);return}if(r.kind==="edge")return}o&&t.pan(o,p,f)}function u(f,p=!1){const h=xS(r,f.pointerId,p);h&&t.select(h),r?.pointerId===f.pointerId&&(r=null),t.endDrag(f.pointerId),n.delete(f.pointerId),n.size||(r=null,o=null,s=null),e.hasPointerCapture(f.pointerId)&&e.releasePointerCapture(f.pointerId)}const l=f=>u(f),d=f=>u(f,!0);return e.addEventListener("pointerdown",a,!0),e.addEventListener("pointermove",c),e.addEventListener("pointerup",l),e.addEventListener("pointercancel",d),()=>{e.removeEventListener("pointerdown",a,!0),e.removeEventListener("pointermove",c),e.removeEventListener("pointerup",l),e.removeEventListener("pointercancel",d)}}function AS(e,t,n){let r=!1;function o(s,i=!1){r=s,e.classList.toggle("graph-panel--expanded",s),n.classList.toggle("graph-expanded",s),t.classList.toggle("expand-control--expanded",s),t.setAttribute("aria-expanded",String(s)),t.setAttribute("aria-label",s?"Close expanded graph":"Expand graph"),t.setAttribute("title",s?"Close expanded graph":"Expand graph"),s?(e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true")):(e.removeAttribute("role"),e.removeAttribute("aria-modal"),i&&t.focus())}return{open(){o(!0)},close(s={}){o(!1,s.restoreFocus!==!1)},toggle(){o(!r,r)},isOpen(){return r}}}function _y(e){const t=String(e??"").toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):"Unknown"}function ia(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e)}function aa(e){return e==null?"Unavailable":new Intl.NumberFormat("en-US").format(e)}function Tt(e){if(typeof e!="number"||!Number.isFinite(e)||e<=0)return"Unavailable";const t=new Date(e<1e11?e*1e3:e);return!Number.isFinite(t.getTime())||t.getUTCFullYear()<2009||t.getUTCFullYear()>2100?"Unavailable":new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"}).format(t)}function by(e,t=Date.now()){if(typeof e!="number"||!Number.isFinite(e)||e<=0)return"Unavailable";const n=Math.max(0,(t-(e<1e11?e*1e3:e))/1e3),r=[[31536e3,"year"],[2592e3,"month"],[86400,"day"],[3600,"hour"],[60,"minute"]];for(const[o,s]of r){const i=Math.floor(n/o);if(i>=1)return`${i} ${s}${i===1?"":"s"} ago`}return"just now"}function ca(e){if(e.amount_usd_sum==null||e.price_coverage_ratio===0)return"Unavailable";const t=e.price_coverage_ratio;return ia(e.amount_usd_sum)+(t!=null&&t>0&&t<1?" (priced portion)":"")}function NS(e){const t=[["Incoming amount (USD)",e.total_in_usd==null?"Unavailable":ia(e.total_in_usd)],["Outgoing amount (USD)",e.total_out_usd==null?"Unavailable":ia(e.total_out_usd)]];return e.role&&go.includes(e.role)?[["Role",hy[e.role]||"Other"],...t,["Senders",aa(e.degree_in)],["Receivers",aa(e.degree_out)],["Labels",Et(e).join(", ")||"No labels"]]:[["Address risk",e.risk_score==null?"Not scored":`${Math.round(e.risk_score*100)} · ${_y(e.risk_level)}`],["Confidence","Unavailable"],...t,["First activity (UTC)",Tt(e.first_activity_timestamp)],["Last activity (UTC)",Tt(e.last_activity_timestamp)],["Labels",Et(e).join(", ")||"No labels"]]}function OS(e,t){if(e.source==="flows")return[["From",e.from||"Unavailable"],["To",e.to||"Unavailable"],["Value (USD)",ca(e)],["Transfers",aa(e.tx_count)],["First seen (UTC)",Tt(e.first_seen_timestamp)],["Last seen (UTC)",Tt(e.last_seen_timestamp)],["Since last seen",by(e.last_seen_timestamp,t)],...e.link_kind?[["Link kind",e.link_kind]]:[]];const n=e.price_coverage_ratio;return[["From",e.from||"Unavailable"],["To",e.to||"Unavailable"],["Value (USD)",ca(e)],["Price coverage",n==null?"Unavailable":new Intl.NumberFormat("en-GB",{style:"percent",maximumFractionDigits:1}).format(n)],["Transfers",e.tx_count==null?"Unavailable":String(e.tx_count)],["First seen (UTC)",Tt(e.first_seen_timestamp)],["Last seen (UTC)",Tt(e.last_seen_timestamp)],["First transaction",e.first_tx_id||"Unavailable"],["Last transaction",e.last_tx_id||"Unavailable"]]}function wy(e){return typeof e!="string"||!/^0x[a-fA-F0-9]{64}$/.test(e)?null:`https://robinhoodchain.blockscout.com/tx/${e.toLowerCase()}`}function Kd(e){const t=Si(e);if(e.role)return`${e.address}. ${t||"Other"}.${Et(e).length?` Labels: ${Et(e).join(", ")}.`:""}`;const n=e.risk_score==null?"Not scored":`${Math.round(e.risk_score*100)} ${_y(e.risk_level)} risk`,r=Et(e).join(", ");return`${e.address}. ${n}.${r?` Labels: ${r}.`:""}`}function Jd(e,t){const n=`${e.from} to ${e.to}. Aggregate value ${ca(e)}. ${e.tx_count??0} ${e.tx_count===1?"transfer":"transfers"}.`;return e.source==="flows"&&e.last_seen_timestamp?`${n} Last seen ${by(e.last_seen_timestamp,t)}.`:n}function PS(e,t){return Ke(e).nodes.map(n=>{const r={id:n.address,label:Et(n).join(", ")||Si(n)};n.role&&(r.role=n.role);const o=t?.(n.address);return o&&(r.href=o),r})}let MS=0;function me(e,t={}){const n=document.createElementNS(T$,e);for(const[r,o]of Object.entries(t))n.setAttribute(r,String(o));return n}function LS(e,t,n){const r=me("text",{x:0,y:t,"text-anchor":"middle",class:n,"pointer-events":"none"});return r.textContent=e,r}function RS(e,t=22){return e.length>t?`${e.slice(0,t-1)}…`:e}function DS(e,t,n={}){const r=`cia-graph-${++MS}`,o=e.ownerDocument;let s=Ke(t),i=n.layout??(Zl(t)?"tree":"gravity");const a={width:e.clientWidth||n.width||820,height:e.clientHeight||n.height||430};let c=Lo(s,i,a.width,a.height);const u=new Map,l=new Map;let d=null;const f=()=>{if(d)return d;const g=new Map;d=g;const $=s.nodes.length>yS,T=new Map(s.nodes.map(P=>[P.address,P])),E=cS(s,c,u);for(const P of s.edges){const M=T.get(P.from),q=T.get(P.to),he=M&&c[M.id],Se=q&&c[q.id];if(!M||!q||!he||!Se){g.set(P.id,null);continue}if($){g.set(P.id,sa(he,Se,jt(M,s.checked_address),jt(q,s.checked_address)));continue}const ft=E.filter(et=>et.id!==M.id&&et.id!==q.id);g.set(P.id,_S(he,Se,jt(M,s.checked_address),jt(q,s.checked_address),ft))}return g},p=()=>{const g=W$(s,c,u);if(!g)return null;for(const $ of f().values())$?.bounds&&(g.x1=Math.min(g.x1,$.bounds.x1),g.y1=Math.min(g.y1,$.bounds.y1),g.x2=Math.max(g.x2,$.bounds.x2),g.y2=Math.max(g.y2,$.bounds.y2));return g},h=()=>{const g=p();return g?oS(g,a.width,a.height,ar):{x:0,y:0,scale:1}};let m=h(),_=null,S=null;const w=n.now??(()=>Date.now());e.classList.add("cia-graph-engine"),e.closest(".cia-graph-surface")||e.classList.add("cia-graph-surface");const x=me("svg",{class:"cia-graph-svg",viewBox:`0 0 ${a.width} ${a.height}`,role:"group",tabindex:0,"aria-label":n.label??"Money-flow graph. Drag the background or use arrow keys to pan, plus and minus to zoom. Select an address or a link for details."}),C=me("defs"),R=me("pattern",{id:`${r}-dots`,width:24,height:24,patternUnits:"userSpaceOnUse"});R.append(me("circle",{class:"cia-graph-dot",cx:1,cy:1,r:1})),C.append(R);const O=me("rect",{class:"cia-graph-backdrop",width:"100%",height:"100%","data-canvas":""}),F=me("rect",{class:"cia-graph-dots",width:"100%",height:"100%",fill:`url(#${r}-dots)`,"data-canvas":""}),oe=me("g",{"data-viewport":""}),le=me("g",{"data-edges":"",class:"cia-graph-edges"}),te=me("g",{"data-nodes":"",class:"cia-graph-nodes"});oe.append(le,te),x.append(C,O,F,oe);const ie=o.createElement("div");ie.className="graph-tooltip cia-graph-tooltip",ie.hidden=!0,ie.setAttribute("role","tooltip"),e.append(x,ie);const qe=new Map,Pe=new Map,ct=new Map;function vo(g){let $=qe.get(g);if($)return $;$=`${r}-arrow-${qe.size}`;const T=me("marker",{id:$,viewBox:"0 0 10 10",refX:9,refY:5,markerWidth:6,markerHeight:6,orient:"auto-start-reverse",markerUnits:"strokeWidth"}),E=me("path",{d:"M0 0L10 5L0 10Z",class:"cia-graph-arrowhead"});return E.style.fill=g,T.append(E),C.append(T),qe.set(g,$),$}const ko=()=>new Map(s.nodes.map(g=>[g.address,g])),Ye=g=>n.nodeStyle?.(g).stroke??B$(g);function ut(){le.replaceChildren(),te.replaceChildren(),Pe.clear(),ct.clear();const g=ko();for(const $ of s.edges){const T=g.get($.from);if(!T||!g.get($.to))continue;const E=Ye(T),P=me("g",{class:"cia-graph-edge graph-edge",tabindex:0,role:"button","aria-label":Jd($,w())});P.dataset.edgeId=$.id,P.style.setProperty("--edge-tone",E);const M=vS(),q=me("path",{class:"cia-graph-edge-hit","stroke-width":M.hit.width,"pointer-events":"stroke"}),he=me("path",{class:"cia-graph-edge-line","stroke-width":M.line.width,"marker-end":`url(#${vo(E)})`,"pointer-events":"none"});P.append(q,he),P.addEventListener("keydown",Se=>{Bd(Se.key)&&(Se.preventDefault(),Qt($.id))}),P.addEventListener("pointerenter",Se=>Xe(Se,Jd($,w()))),P.addEventListener("pointerleave",Un),le.append(P),ct.set($.id,{group:P,hit:q,line:he})}for(const $ of yo(s))te.append(Ii($));Gt(),dt()}function Ii(g){const $=g.address===s.checked_address,T=u.get(g.id),E=_o(g,s.checked_address,T),P=E.radius,M=me("g",{class:"cia-graph-node graph-node",tabindex:0,role:"button","aria-label":Kd(g),"aria-pressed":"false"});M.dataset.nodeId=g.id,$&&(M.dataset.checked=""),M.style.setProperty("--node-tone",Ye(g)),$&&M.append(me("circle",{class:"cia-graph-node-ring",r:P+6})),M.append(me("circle",{class:"cia-graph-node-body",r:P})),M.append(me("circle",{class:"cia-graph-node-dot",r:E.dot}));for(const q of E.texts)M.append(LS(q.text,q.y,`cia-graph-node-${q.kind}`));T&&(M.dataset.state="refused");for(const q of l.get(g.id)??[])M.setAttribute(`data-flag-${q}`,"");return M.addEventListener("keydown",q=>{Bd(q.key)&&(q.preventDefault(),St(g.id))}),M.addEventListener("pointerenter",q=>Xe(q,Kd(g))),M.addEventListener("pointerleave",Un),Pe.set(g.id,M),M}function kt(){oe.setAttribute("transform",`translate(${m.x} ${m.y}) scale(${m.scale})`)}function Gt(){kt();for(const[$,T]of Pe){const E=c[$]??{x:a.width/2,y:a.height/2};T.setAttribute("transform",`translate(${Be(E.x)} ${Be(E.y)})`)}const g=f();for(const $ of s.edges){const T=ct.get($.id);if(!T)continue;const E=g.get($.id)??null;T.group.style.display=E?"":"none",E&&(T.hit.setAttribute("d",E.d),T.line.setAttribute("d",E.d))}}let $t=!1;function lt(g){$t=!0;const $=c[g],T=Pe.get(g);if(!$||!T)return;T.setAttribute("transform",`translate(${Be($.x)} ${Be($.y)})`);const E=s.nodes.find(M=>M.id===g);if(!E)return;const P=new Map(s.nodes.map(M=>[M.address,M]));for(const M of s.edges){if(M.from!==E.address&&M.to!==E.address)continue;const q=ct.get(M.id),he=P.get(M.from),Se=P.get(M.to),ft=he&&c[he.id],et=Se&&c[Se.id];if(!q||!he||!Se||!ft||!et)continue;const Me=sa(ft,et,jt(he,s.checked_address),jt(Se,s.checked_address));q.group.style.display=Me?"":"none",Me&&(q.hit.setAttribute("d",Me.d),q.line.setAttribute("d",Me.d))}}function $o(){return _?.kind!=="node"?null:s.nodes.find(g=>g.id===_.id)?.address??null}function dt(){const g=$o();for(const $ of s.edges){const T=ct.get($.id);if(!T)continue;const E=_?.kind==="edge"&&_.id===$.id,P=_?.kind==="edge"?E?zt.related:zt.faded:wS($,g),M=P===zt.faded;T.group.setAttribute("opacity",M?String(P):"1"),T.line.setAttribute("stroke-opacity",M?"1":String(P)),T.group.dataset.opacity=String(P),T.group.dataset.state=P===zt.rest?"rest":P===zt.related?"related":"faded",T.group.setAttribute("aria-pressed",String(E))}for(const[$,T]of Pe){const E=_?.kind==="node"&&_.id===$;T.classList.toggle("is-selected",E),T.setAttribute("aria-pressed",String(E))}}function Yt(){const g=PS(s,n.href),$=_?.kind==="node"?s.nodes.find(E=>E.id===_.id)??null:null,T=_?.kind==="edge"?s.edges.find(E=>E.id===_.id)??null:null;if($){const E=s.edges.filter(P=>P.from===$.address||P.to===$.address);return{kind:"node",id:$.id,selectedId:$.address,nodes:g,title:"Selected address",identity:$.address,values:NS($),related:E,node:$,edge:null}}return T?{kind:"edge",id:T.id,selectedId:null,nodes:g,title:"Selected aggregate flow",identity:`${T.from} → ${T.to}`,values:OS(T,w()),related:[T],node:null,edge:T}:{kind:null,id:null,selectedId:null,nodes:g,title:"Nothing selected",identity:"",values:[],related:[],node:null,edge:null}}function So(){const g=Yt();zi(g),n.onSelect?.(g)}function zi(g){const $=n.selectionRoot,T=$?.querySelector("[data-selection-title]"),E=$?.querySelector("[data-selection-identity]"),P=$?.querySelector("[data-selection-meta]");!T||!E||!P||(T.textContent=g.title,E.textContent=g.identity,P.replaceChildren(...g.values.map(([M,q])=>{const he=o.createElement("div");he.className="meta-item",q!=="Unavailable"&&(["From","To","First transaction","Last transaction"].includes(M)&&he.classList.add("meta-item--identity"),M==="Incoming amount (USD)"&&he.classList.add("meta-item--incoming"),M==="Outgoing amount (USD)"&&he.classList.add("meta-item--outgoing")),["From","To","First transaction","Last transaction","Labels"].includes(M)&&he.classList.add("meta-item--wide");const Se=o.createElement("span");Se.textContent=M;const ft=o.createElement("strong"),et=["First transaction","Last transaction"].includes(M)?wy(q):null;if(et&&n.openLink){const Me=n.openLink,Mt=o.createElement("button");Mt.type="button",Mt.className="cia-graph-explorer-link",Mt.dataset.explorer=et,Mt.textContent=q,Mt.setAttribute("aria-label",`${M}: ${q} (opens the explorer)`),Mt.addEventListener("click",()=>Me(et)),ft.append(Mt)}else if(et){const Me=o.createElement("a");Me.href=et,Me.target="_blank",Me.rel="noopener noreferrer",Me.textContent=q,Me.setAttribute("aria-label",`${M}: ${q} (opens in new tab)`),ft.append(Me)}else ft.textContent=q;return he.append(Se,ft),he})))}function St(g){_=g?{kind:"node",id:g}:null,dt(),So()}function Qt(g){_=g?{kind:"edge",id:g}:null,dt(),So()}function ae(g){if(g==null)return St(null);const $=Wn(s,g);if($)return St($);if(s.edges.some(T=>T.id===g))return Qt(g)}function ze(){m=h(),kt()}function Qe(g,$={x:a.width/2,y:a.height/2}){const T=oa(m.scale*(1+g)),E=T/m.scale;m={x:$.x-($.x-m.x)*E,y:$.y-($.y-m.y)*E,scale:T},kt()}function Fn(g){i=g,n.controls?.querySelectorAll("[data-layout]").forEach($=>{$.classList.toggle("active",$.dataset.layout===g),$.setAttribute("aria-pressed",String($.dataset.layout===g))}),n.onLayoutChange?.(g),c=Lo(s,i,a.width,a.height),d=null,ze(),Gt()}function Xe(g,$){ie.textContent=$,ie.hidden=!1;const T=e.getBoundingClientRect();ie.style.left=`${Math.min(T.width-330,Math.max(8,g.clientX-T.left+12))}px`,ie.style.top=`${Math.max(8,g.clientY-T.top+12)}px`}function Un(){ie.hidden=!0}function Xt(g){return CS({x:g.clientX,y:g.clientY},x.getBoundingClientRect(),a.width,a.height)}const xo=ES(x,{point:Xt,transform:()=>m,select(g){g.type==="select-node"?St(g.id):g.type==="select-edge"?Qt(g.id):St(Fl(s)?.id??null)},drag(g,$,T){!S&&(S=kS(i,g,$),!S)||zS(c,S,$,T,m)&&lt(S.id)},endDrag(g){const $=S?.pointerId===g&&$t;S=TS(S,g),$&&($t=!1,d=null,Gt())},pan(g,$){m={x:g.transform.x+$.x-g.point.x,y:g.transform.y+$.y-g.point.y,scale:m.scale},kt()},startPinch(){S=null},pinch(g,[$,T]){const E=Math.hypot(T.x-$.x,T.y-$.y),P=oa(g.scale*E/Math.max(1,g.distance));Qe(P/m.scale-1,{x:($.x+T.x)/2,y:($.y+T.y)/2})}}),en=g=>{g.preventDefault(),Qe(g.deltaY>0?-.12:.12,Xt(g))},Io={ArrowLeft:[60,0],ArrowRight:[-60,0],ArrowUp:[0,60],ArrowDown:[0,-60]},tn=g=>{if(g.target!==x)return;const $=Io[g.key];$?(g.preventDefault(),m={...m,x:m.x+$[0],y:m.y+$[1]},kt()):g.key==="+"||g.key==="="?Qe(.18):g.key==="-"?Qe(-.18):g.key==="0"&&ze()};x.addEventListener("wheel",en,{passive:!1}),x.addEventListener("keydown",tn);const nn=n.controls?.querySelector("[data-expand]")??null,rt=n.panel&&nn?AS(n.panel,nn,o.body):null,zo=()=>{rt?.toggle(),n.onExpansionChange?.(rt?.isOpen()??!1),requestAnimationFrame(ze)},Vn=n.panel??e,qn=g=>{if(g.key==="Tab"&&rt?.isOpen()&&n.panel){const $=Array.from(n.panel.querySelectorAll('button,a[href],[tabindex="0"],summary')).filter(P=>P.checkVisibility()),T=$[0],E=$.at(-1);g.shiftKey&&o.activeElement===T?(g.preventDefault(),E?.focus()):!g.shiftKey&&o.activeElement===E&&(g.preventDefault(),T?.focus())}if(g.key==="Escape"){if(rt?.isOpen()){rt.close(),n.onExpansionChange?.(!1),requestAnimationFrame(ze);return}St(null)}};Vn.addEventListener("keydown",qn);const Hn=[],N=(g,$)=>{g&&(g.addEventListener("click",$),Hn.push([g,$]))};n.controls?.querySelectorAll("[data-layout]").forEach(g=>N(g,()=>Fn(g.dataset.layout==="tree"?"tree":"gravity"))),N(n.controls?.querySelector("[data-zoom='in']"),()=>Qe(.18)),N(n.controls?.querySelector("[data-zoom='out']"),()=>Qe(-.18)),N(n.controls?.querySelector("[data-zoom='fit']"),ze),rt&&N(nn,zo);const K=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{const g=e.clientWidth,$=e.clientHeight;!g||!$||g===a.width&&$===a.height||(a.width=g,a.height=$,x.setAttribute("viewBox",`0 0 ${g} ${$}`),ze())});return K?.observe(e),ut(),n.selected&&ae(n.selected),{update(g){const $=c;s=Ke(g);const T=Lo(s,i,a.width,a.height);c=Object.fromEntries(s.nodes.map(E=>[E.id,$[E.id]??T[E.id]]).filter(([,E])=>E)),d=null,_&&!(_.kind==="node"?s.nodes.some(E=>E.id===_.id):s.edges.some(E=>E.id===_.id))&&(_=null),m=h(),ut()},merge(g,$){const T=U$(s,g,$);s=T.model;const E=Wn(s,$??Ke(g).checked_address);return c=E?rS(s,c,E,T.added,{notes:u}):{...c,...Lo(s,i,a.width,a.height),...c},d=null,T.added.length&&(m=h()),ut(),T.added},setTheme(g){g&&o.documentElement.setAttribute("data-theme",g);for(const $ of s.nodes)Pe.get($.id)?.style.setProperty("--node-tone",Ye($))},select:ae,destroy(){K?.disconnect(),xo(),x.removeEventListener("wheel",en),x.removeEventListener("keydown",tn),Vn.removeEventListener("keydown",qn);for(const[g,$]of Hn)g.removeEventListener("click",$);rt?.close({restoreFocus:!1}),x.remove(),ie.remove(),e.classList.remove("cia-graph-engine")},fit:ze,zoom:g=>Qe(g),setLayout:Fn,markNode(g,$){const T=Wn(s,g);T&&($?u.set(T,$):u.delete(T),d=null,ut())},flagNode(g,$,T){const E=Wn(s,g);if(!E)return;const P=l.get(E)??new Set;T?P.add($):P.delete($),P.size?l.set(E,P):l.delete(E);const M=Pe.get(E);M&&M.toggleAttribute(`data-flag-${$}`,T)},positions:()=>structuredClone(c),model:()=>s,contentBounds:()=>p(),transform:()=>({...m})}}const vy="chain-insights.flows.v1",ky="chain-insights.result.v1",ZS=60,Wd=6,jS=3,$y=/^0x[0-9a-fA-F]{40}$/,FS=/^0x[0-9a-fA-F]{64}$/;function US(e){return typeof e=="string"&&($y.test(e)||FS.test(e))}function ts(e){return typeof e=="string"&&$y.test(e)}function ua(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Sy(e){const t=e?.facts?.query?.results;return Array.isArray(t)?t.filter(ua):[]}function VS(e){const t=e?.facts;return typeof t?.subject?.network=="string"&&t.subject.network?t.subject.network:"robinhood"}function st(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&/^-?\d+(\.\d+)?([eE][-+]?\d+)?$/.test(e.trim())){const t=Number(e);return Number.isFinite(t)?t:null}return null}function ql(e){return e<1e11?e*1e3:e}const la=/^\d{4}-\d{2}-\d{2}$/,qS=Date.UTC(2009,0,1),HS=Date.UTC(2100,0,1);function Li(e){return new Date(ql(e)).toISOString().slice(0,10)}function Gd(e){const t=Date.parse(`${e}T00:00:00Z`);return new Date(t-864e5).toISOString().slice(0,10)}function BS(e){return typeof e=="string"&&la.test(e)&&Number.isFinite(Date.parse(`${e}T00:00:00Z`))}const KS=new Set(["day","date"]);function Yd(e){return KS.has(e)||e.endsWith("_timestamp")}function JS(e){const t=[];for(const n of e)for(const r of Object.keys(n))t.includes(r)||t.push(r);return t}function WS(e){return Array.isArray(e)?e.some(ts):ts(e)}function GS(e){return e.some(t=>Object.values(t).some(WS))}function YS(e){return e.length>0&&e.every(t=>ts(t.from_address)&&ts(t.to_address))}function Qd(e){if(typeof e=="string"){const r=e.trim();if(la.test(r)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/.test(r)){const o=Date.parse(la.test(r)?`${r}T00:00:00Z`:/(?:Z|[+-]\d{2}:?\d{2})$/.test(r)?r.replace(" ","T"):`${r.replace(" ","T")}Z`);return Number.isFinite(o)?o:null}}const t=st(e);if(t==null)return null;const n=ql(t);return n>=qS&&n<HS?n:null}function xy(e){if(e.length===0||GS(e))return null;const t=JS(e),r=t.filter(Yd).find(c=>e.some(u=>Qd(u[c])!=null));if(!r)return null;const o=t.filter(c=>{if(Yd(c))return!1;const u=e.map(l=>l[c]).filter(l=>l!=null);return u.length>0&&u.every(l=>st(l)!=null)});if(o.length===0)return null;const s=e.map((c,u)=>({time:Qd(c[r]),row:c,index:u})).filter(c=>c.time!=null).sort((c,u)=>c.time-u.time||c.index-u.index),i=o.slice(0,Wd);return new Set(s.filter(c=>i.some(u=>st(c.row[u])!=null)).map(c=>c.time)).size<jS?null:{xColumn:r,times:s.map(c=>c.time),daily:s.every(c=>c.time%864e5===0),series:i.map(c=>({column:c,values:s.map(u=>st(u.row[c]))})),omittedColumns:o.slice(Wd),skippedRows:e.length-s.length}}function QS(e){return YS(e)?"graph":xy(e)?"chart":"table"}const XS=[["sanctioned","sanctioned"],["scam","scam"],["victim","victim"],["pool","pool"],["exchange","exchange"]];function Xd(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim()!=="").map(t=>t.trim()):[]}function ex(e,t){if(t)return"exchange";const n=new Set(e.map(r=>r.replace(/\s+/g,"").toLowerCase()));for(const[r,o]of XS)if(n.has(r))return o;return"other"}const ef=(e,t)=>e==null?t:t==null?e:e+t;function tx(e,t="robinhood"){const n=new Map;for(const d of e)for(const f of new Set([String(d.from_address).toLowerCase(),String(d.to_address).toLowerCase()]))n.set(f,(n.get(f)??0)+1);let r="",o=0;for(const[d,f]of n)f>o&&(r=d,o=f);const s=new Map,i=new Map,a=(d,f,p)=>{const h=s.get(d)??{address:d,labels:[],exchange:!1};for(const m of f)h.labels.some(_=>_.toLowerCase()===m.toLowerCase())||h.labels.push(m);h.exchange=h.exchange||p,s.set(d,h)};r&&s.set(r,{address:r,labels:[],exchange:!1});let c=0;for(const d of e){const f=String(d.from_address).toLowerCase(),p=String(d.to_address).toLowerCase(),h=[f,p].filter((x,C,R)=>!s.has(x)&&R.indexOf(x)===C).length;if(s.size+h>ZS||(c++,a(f,Xd(d.from_labels),d.from_is_exchange===!0),a(p,Xd(d.to_labels),d.to_is_exchange===!0),f===p))continue;const m=`${f}->${p}`,_=i.get(m)??{from:f,to:p,usd:null,tx:null,first:null,last:null,kinds:[]};_.usd=ef(_.usd,st(d.amount_usd_sum)),_.tx=ef(_.tx,st(d.tx_count));const S=st(d.first_seen_timestamp),w=st(d.last_seen_timestamp);S!=null&&(_.first=_.first==null?S:Math.min(_.first,S)),w!=null&&(_.last=_.last==null?w:Math.max(_.last,w)),typeof d.link_kind=="string"&&d.link_kind&&!_.kinds.includes(d.link_kind)&&_.kinds.push(d.link_kind),i.set(m,_)}const u=[...s.values()].map(d=>({address:d.address,role:ex(d.labels,d.exchange),labels:d.labels})),l=[...i.values()].map(d=>({from:d.from,to:d.to,usd:d.usd,tx_count:d.tx,first_seen_ms:d.first,last_seen_ms:d.last,...d.kinds.length?{link_kind:d.kinds.join(", ")}:{}}));return{view:{schema:vy,network:t,center:r,nodes:u,edges:l,truncated:!1},rowsTotal:e.length,rowsDrawn:c,rowsLeftOut:e.length-c,addresses:s.size}}function nx(e){const t=e?.facts?.queries;return Array.isArray(t)?t.filter(ua).map((n,r)=>({id:typeof n.id=="string"&&n.id?n.id:`Query ${r+1}`,ok:n.ok!==!1&&n.error==null,error:typeof n.error=="string"&&n.error?n.error:null,rows:Array.isArray(n.results)?n.results.filter(ua):[],count:typeof n.count=="number"?n.count:null,truncated:n.truncated===!0,elapsedMs:typeof n.elapsed_ms=="number"?n.elapsed_ms:null})):[]}const tf=200;function bo(e){return(e?.content??[]).filter(t=>t?.type==="text"&&typeof t.text=="string").map(t=>t.text).join(`
109
- `).trim()}function Bn(e){if(typeof e=="string")return e.trim()||null;if(!e||typeof e!="object"||Array.isArray(e))return null;const{code:t,message:n,detail:r,error:o}=e,s=[n,r,o].find(a=>typeof a=="string"&&a.trim()!=="")?.trim()??null,i=typeof t=="string"&&t.trim()?t.trim():null;return s?i&&!s.startsWith(i)?`${i}: ${s}`:s:i}function Iy(e){if(!e)return null;const t=e.structuredContent,n=Bn(t?.error)??Bn(t?.facts?.error)??Bn(t?.facts?.query?.error);if(!e.isError||n)return n;const r=bo(e);if(r.startsWith("{"))try{const o=JSON.parse(r),s=Bn(o?.error)??Bn(o);if(s)return s}catch{}return r||"The tool answered with an error."}const rx=new Set(["usage_status","subscription_status","meta_usage_status","meta_subscription_status"]);function zy(e){if(!e||Iy(e)!=null)return"text";const t=e.structuredContent;if(t?.schema===vy)return"flows";if(t?.schema===ky){if(t.tool==="graph_query")return QS(Sy(t));if(t.tool==="graph_query_batch")return Array.isArray(t.facts?.queries)&&t.facts.queries.length>0?"batch":"text";if(typeof t.tool=="string"&&rx.has(t.tool))return"balance"}return"text"}function z(e,t,n={},...r){const o=e.createElement(t);for(const[s,i]of Object.entries(n))i==null||i===!1||(s==="class"?o.className=String(i):s==="text"?o.textContent=String(i):o.setAttribute(s,i===!0?"":String(i)));for(const s of r)s==null||s===!1||o.append(typeof s=="string"?e.createTextNode(s):s);return o}function ox(e,t){const n=z(e,"code",{class:"cv-addr",title:t,"data-full":t,text:cr(t)}),r=z(e,"button",{type:"button",class:"cv-copy","data-copy":t,"aria-label":`Copy ${t}`,title:"Copy the full value",text:"Copy"});return r.addEventListener("click",()=>{sx(e,t,n,r)}),z(e,"span",{class:"cv-addr-cell"},n,r)}async function sx(e,t,n,r){const o=e.defaultView?.navigator?.clipboard;try{if(o?.writeText)return await o.writeText(t),r&&(r.textContent="Copied"),"copied"}catch{}return n.textContent=t,n.classList.add("is-full"),e.getSelection?.()?.selectAllChildren(n),r&&(r.textContent="Selected"),"selected"}function ix(e,t){return/(timestamp|seen|_at|_ms|time)$/i.test(t)&&e>1e9?Tt(e):/usd/i.test(t)?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e):new Intl.NumberFormat("en-US",{maximumFractionDigits:4}).format(e)}const ax=160,nf=2e3;function cx(e,t=ax){const n=e.trim().split(/\r?\n/,1)[0]??"",r=n.search(/[.!?](?=\s|$)/),o=(r<0?n:n.slice(0,r+1)).trim();if(o.length<=t)return o;const s=o.slice(0,t-1),i=s.lastIndexOf(" ");return`${(i>t*.6?s.slice(0,i):s).trimEnd()}…`}function Ty(e,t,n){const r=e.ownerDocument,o=n.full!=null&&n.full.length>nf?`${n.full.slice(0,nf-1)}…`:n.full,s=o!=null&&o!==t,i=z(r,"section",{class:`cia-graph-surface cv-notice cv-notice-${n.kind}`,"data-view":n.view,"data-notice":n.kind,role:n.kind==="refused"?"alert":"status",title:s?o:null},s?z(r,"details",{class:"cv-notice-more"},z(r,"summary",{class:"cv-notice-line",text:t}),z(r,"p",{class:"cv-notice-full",text:o})):z(r,"p",{class:"cv-notice-line",text:t}));return e.replaceChildren(i),i}function ux(e){const t=e?.facts?.query,n=Array.isArray(t?.results)?t.results.filter(s=>!!s&&typeof s=="object"&&!Array.isArray(s)):[],r=n.slice(0,tf),o=[];for(const s of r)for(const i of Object.keys(s))o.includes(i)||o.push(i);return{columns:o,rows:r,total:n.length,truncated:n.length>tf||t?.truncated===!0,elapsedMs:typeof t?.elapsed_ms=="number"?t.elapsed_ms:null}}function lx(e,t,n){return t==null?z(e,"span",{class:"cv-null","aria-label":"empty",text:"—"}):US(t)?ox(e,t):typeof t=="number"?e.createTextNode(ix(t,n)):typeof t=="boolean"?e.createTextNode(t?"yes":"no"):Array.isArray(t)?e.createTextNode(t.map(r=>typeof r=="string"?r:JSON.stringify(r)).join(", ")):typeof t=="object"?e.createTextNode(JSON.stringify(t)):e.createTextNode(String(t))}function rf(e,t,n={}){const r=e.ownerDocument,o=ux(t.structuredContent),s=o.rows.length;if(o.total===0)return Ty(e,"No rows.",{kind:"empty",view:"table"}),o;const i=`${new Intl.NumberFormat("en-US").format(s)} ${s===1?"row":"rows"}${o.elapsedMs==null?"":` in ${o.elapsedMs} ms`}`,a=z(r,"table",{class:"cv-table"},z(r,"thead",{},z(r,"tr",{},...o.columns.map(c=>z(r,"th",{scope:"col",text:c})))),z(r,"tbody",{},...o.rows.map(c=>z(r,"tr",{},...o.columns.map(u=>z(r,"td",{},lx(r,c[u],u)))))));return e.replaceChildren(z(r,"section",{class:"cv-card cv-table-view","data-view":"table","aria-label":"Graph query result"},z(r,"header",{class:"cv-card-head"},z(r,"strong",{text:"Graph query result"}),z(r,"span",{class:"cv-muted",text:i}),n.toggle??null),o.truncated?z(r,"p",{class:"cv-note",role:"note","data-truncated":"",text:`Truncated: showing the first ${new Intl.NumberFormat("en-US").format(s)} of ${new Intl.NumberFormat("en-US").format(o.total)} rows. Narrow the query to see the rest.`}):null,o.columns.length?z(r,"div",{class:"cv-table-wrap"},a):null)),o}const Kn=(e,t=0)=>typeof e=="number"&&Number.isFinite(e)?e:t,Ro=e=>typeof e=="string"&&e?e:null;function dx(e){const t=e?.facts??{};if(typeof t.wallet=="string"&&t.wallet)return{kind:"wallet",wallet:t.wallet,tier:String(t.tier??"anonymous"),allowanceUsd:Kn(t.allowance_usd),consumedUsd:Kn(t.consumed_usd),windowEnd:Ro(t.window_end)};const n=t.usage;if(n&&typeof n=="object"){const r="daily_units_limit"in n||"daily_units_used"in n,o=Ro(n.access_mode);return{kind:"free",unit:r?"units":"seconds",used:Kn(r?n.daily_units_used:n.daily_seconds_used),limit:Kn(r?n.daily_units_limit:n.daily_seconds_limit),remaining:Kn(r?n.remaining_units:n.remaining_seconds),resetAt:Ro(n.reset_at),identifierKind:Ro(n.identifier_kind),accessMode:o,noLimit:!r&&o==="public_free"&&n.daily_seconds_limit===0}}return{kind:"unknown"}}const of=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e),Do=(e,t)=>`${new Intl.NumberFormat("en-US").format(e)} ${t==="units"?e===1?"unit":"units":e===1?"second":"seconds"}`;function Ri(e){if(!e)return"No active window";const t=Date.parse(e);return Number.isFinite(t)?`${Tt(t)} UTC`:e}function sf(e,t,n,r){const o=n>0?Math.min(1,t/n):0,s=z(e,"div",{class:"cv-meter",role:"meter","aria-label":r,"aria-valuemin":0,"aria-valuemax":n,"aria-valuenow":Math.min(t,n)},z(e,"span"));return s.firstElementChild.style.width=`${Math.round(o*100)}%`,s}function Di(e,t){return z(e,"dl",{class:"cv-facts"},...t.flatMap(([n,r])=>[z(e,"dt",{text:n}),z(e,"dd",{text:r})]))}function fx(e,t){const n=e.ownerDocument,r=dx(t.structuredContent);let o,s,i;return r.kind==="wallet"?(s="Wallet allowance",i=`${cr(r.wallet)} · ${r.tier==="subscriber"?"Subscriber":"No active subscription"}`,o=[sf(n,r.consumedUsd,r.allowanceUsd,"Share of today's allowance used"),Di(n,[["Daily allowance",of(r.allowanceUsd)],["Used today",of(r.consumedUsd)],["Window ends",Ri(r.windowEnd)]])]):r.kind==="free"?(s="Free tier",i=`No wallet · counted per ${r.identifierKind==="ip"||!r.identifierKind?"network address":r.identifierKind}`,o=r.noLimit?[z(n,"p",{class:"cv-balance-note","data-no-limit":"",text:"Free access, no daily limit"}),Di(n,[["Daily allowance","No daily limit"],["Used today",Do(r.used,r.unit)],["Window ends",Ri(r.resetAt)]])]:[sf(n,r.used,r.limit,"Share of today's free allowance used"),Di(n,[["Daily allowance",Do(r.limit,r.unit)],["Used today",Do(r.used,r.unit)],["Left today",Do(r.remaining,r.unit)],["Window ends",Ri(r.resetAt)]])]):(s="Usage",i="The server sent no allowance figures.",o=[z(n,"p",{class:"cv-muted",text:bo(t)||"Nothing to show."})]),e.replaceChildren(z(n,"section",{class:"cv-card cv-balance-view","data-view":"balance","data-balance":r.kind,"aria-label":s},z(n,"header",{class:"cv-card-head"},z(n,"strong",{text:s}),z(n,"span",{class:"cv-muted",text:i})),...o)),r}function xi(e,t,n="No drawing for this answer."){const r=e.ownerDocument,o=Iy(t);if(o!=null){Ty(e,cx(o),{kind:"refused",view:"text",full:o});return}const s=bo(t);e.replaceChildren(z(r,"section",{class:"cv-card cv-text-view","data-view":"text"},z(r,"p",{text:n}),s?z(r,"p",{class:"cv-muted cv-text-body",text:s.length>600?`${s.slice(0,599)}…`:s}):null))}function Cy(e,t="Loading the Chain Insights view"){const n=e.ownerDocument;e.replaceChildren(z(n,"section",{class:"cv-card cv-skeleton","data-view":"loading","aria-busy":"true","aria-label":t},z(n,"span",{class:"cv-sr",text:t}),z(n,"div",{class:"cv-skel-line cv-skel-title"}),z(n,"div",{class:"cv-skel-line cv-skel-sub"}),z(n,"div",{class:"cv-skel-block"})))}const px="http://www.w3.org/2000/svg",hx=720,mx=6,Zo={left:66,right:18,top:6},af=18,gx=16,yx=26,_x=170,bx=82,wx=80;function Ey(e,t){const n=new Date(e).toISOString();return t?n.slice(0,10):`${n.slice(0,10)} ${n.slice(11,16)}`}const vx=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:2}),Ay=new Intl.NumberFormat("en-US",{maximumFractionDigits:6});function cf(e){return Math.abs(e)<1e3?Ay.format(Math.round(e*100)/100):vx.format(e)}function kx(e,t=hx){const n=Zo.left,r=t-Zo.right,o=r-n,s=e.times[0]??0,i=e.times[e.times.length-1]??s,a=i-s,c=p=>a>0?n+(p-s)/a*o:n+o/2,u=e.series.length===1?_x:bx,l=e.series.map((p,h)=>{const m=Zo.top+h*(af+u+gx),_=m+af,S=_+u,w=p.values.filter(le=>le!=null),x=Math.min(0,...w),C=Math.max(...w,x+1e-9),R=le=>S-(le-x)/(C-x||1)*u,O=[],F=[];let oe=[];return p.values.forEach((le,te)=>{if(le==null){oe.length&&F.push(oe),oe=[];return}const ie={x:c(e.times[te]??s),y:R(le),time:e.times[te]??s,value:le};O.push(ie),oe.push(ie)}),oe.length&&F.push(oe),{column:p.column,color:`var(--cia-graph-series-${h%mx+1})`,top:m,plotTop:_,plotBottom:S,min:x,max:C,runs:F,points:O}}),d=(l[l.length-1]?.plotBottom??Zo.top)+6,f=[];if(e.times.length){const p=a>0?[[s,"start"],[s+a/2,"middle"],[i,"end"]]:[[s,"middle"]];for(const[h,m]of p)f.push({x:c(h),label:Ey(h,e.daily),anchor:m})}return{width:t,height:d+yx,plotLeft:n,plotRight:r,lanes:l,ticks:f,axisY:d}}function Le(e,t,n={}){const r=e.createElementNS(px,t);for(const[o,s]of Object.entries(n))r.setAttribute(o,String(s));return r}const Jn=e=>Math.round(e*10)/10;function $x(e,t,n={}){const r=e.ownerDocument,o=kx(t),s=Le(r,"svg",{class:"cv-chart-svg",viewBox:`0 0 ${o.width} ${o.height}`,role:"img",preserveAspectRatio:"xMidYMid meet","aria-label":`Line chart of ${t.series.map(u=>u.column).join(", ")} by ${t.xColumn}, ${t.times.length} ${t.times.length===1?"point":"points"}`});for(const u of o.lanes){const l=Le(r,"g",{class:"cv-chart-lane","data-series":u.column}),d=Le(r,"rect",{class:"cv-chart-swatch",x:o.plotLeft,y:u.top+4,width:14,height:4,rx:2});d.style.fill=u.color;const f=Le(r,"text",{class:"cv-chart-name",x:o.plotLeft+20,y:u.top+11});f.textContent=u.column,l.append(d,f,Le(r,"line",{class:"cv-chart-grid",x1:o.plotLeft,x2:o.plotRight,y1:u.plotTop,y2:u.plotTop}),Le(r,"line",{class:"cv-chart-base",x1:o.plotLeft,x2:o.plotRight,y1:u.plotBottom,y2:u.plotBottom}));const p=Le(r,"text",{class:"cv-chart-tick",x:o.plotLeft-8,y:u.plotTop+4,"text-anchor":"end"});p.textContent=cf(u.max);const h=Le(r,"text",{class:"cv-chart-tick",x:o.plotLeft-8,y:u.plotBottom+4,"text-anchor":"end"});h.textContent=cf(u.min),l.append(p,h);for(const m of u.runs){if(m.length<2)continue;const _=Le(r,"polyline",{class:"cv-chart-line",points:m.map(S=>`${Jn(S.x)},${Jn(S.y)}`).join(" "),fill:"none"});_.style.stroke=u.color,l.append(_)}if(u.points.length<=wx)for(const m of u.points){const _=Le(r,"circle",{class:"cv-chart-dot",cx:Jn(m.x),cy:Jn(m.y),r:3});_.style.fill=u.color;const S=Le(r,"title");S.textContent=`${Ey(m.time,t.daily)} · ${u.column} ${Ay.format(m.value)}`,_.append(S),l.append(_)}s.append(l)}const i=Le(r,"g",{class:"cv-chart-axis"});for(const u of o.ticks){const l=Le(r,"text",{class:"cv-chart-tick",x:Jn(u.x),y:o.axisY+14,"text-anchor":u.anchor});l.textContent=u.label,i.append(l)}s.append(i);const a=[t.omittedColumns.length?`${t.omittedColumns.length} more number ${t.omittedColumns.length===1?"column is":"columns are"} only in the table: ${t.omittedColumns.join(", ")}.`:"",t.skippedRows?`${t.skippedRows} ${t.skippedRows===1?"row has":"rows have"} no usable ${t.xColumn} and ${t.skippedRows===1?"is":"are"} only in the table.`:""].filter(Boolean),c=z(r,"section",{class:"cv-chart cia-graph-surface","data-view":"chart","aria-label":`Chart by ${t.xColumn}`},z(r,"header",{class:"cv-flows-head"},z(r,"div",{class:"cv-title"},z(r,"strong",{text:"Chart"}),z(r,"span",{class:"cv-muted",text:`${t.times.length} ${t.times.length===1?"point":"points"} by ${t.xColumn} (UTC) · ${t.series.length} ${t.series.length===1?"line":"lines"}`})),n.toggle??null),a.length?z(r,"p",{class:"cv-note",role:"note","data-chart-note":"",text:a.join(" ")}):null,z(r,"div",{class:"cv-chart-body"},s));return e.replaceChildren(c),{root:c,layout:o}}const Sx="chain-insights.transfers.v1",xx="graph_expand",Ix="2015-01-01";function zx(e,t,n,r){return{network:e,from:t,to:n,day:r}}function Tx(e,t){const n=typeof e.first_seen_timestamp=="number"&&e.first_seen_timestamp>0?Li(e.first_seen_timestamp):null,r=typeof e.last_seen_timestamp=="number"&&e.last_seen_timestamp>0?Li(e.last_seen_timestamp):Li(t);return{first:n,last:n&&r<n?n:r}}function jo(e,t){return e<=(t??Ix)}function Cx(e){if(!e)return"no answer";const t=bo(e);return e.isError?t||"the server refused the read":/query_timeout|topology_busy/.test(t)?t:Ny(e.structuredContent)?null:t||"the answer held no transfers"}function Ny(e){const t=e;if(!t||t.schema!==Sx||!Array.isArray(t.transfers)||typeof t.from!="string"||typeof t.to!="string"||!BS(t.day))return null;const n=[];for(const r of t.transfers){if(!r||typeof r!="object")continue;const o=r;if(typeof o.tx_id!="string")continue;const s=st(o.block_timestamp);n.push({tx_id:o.tx_id,block_timestamp:s,amount:typeof o.amount=="string"?o.amount:typeof o.amount=="number"?String(o.amount):null,asset_symbol:typeof o.asset_symbol=="string"&&o.asset_symbol?o.asset_symbol:null,amount_usd:st(o.amount_usd)})}return{network:typeof t.network=="string"?t.network:null,from:t.from,to:t.to,day:t.day,transfers:n,truncated:t.truncated===!0}}function Ex(e){return[...e].sort((t,n)=>(n.block_timestamp??0)-(t.block_timestamp??0)||t.tx_id.localeCompare(n.tx_id))}function Ax(e){if(e==null)return"—";const t=e.trim().match(/^(-?)(\d+)(?:\.(\d+))?$/);if(!t)return e;const[,n="",r="0",o=""]=t,s=o.replace(/0+$/,"");return`${n}${r.replace(/\B(?=(\d{3})+(?!\d))/g,",")}${s?`.${s}`:""}`}function Nx(e){return e==null?"—":new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:e!==0&&Math.abs(e)<.01?6:2}).format(e)}function Ox(e){return e==null?"—":`${new Date(ql(e)).toISOString().slice(11,19)} UTC`}function Zi(e){return new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeZone:"UTC"}).format(new Date(`${e}T00:00:00Z`))}function Px(e,t){const n=t.now??Date.now,r=z(e,"strong",{"data-link-title":"",text:"Transfers"}),o=z(e,"button",{type:"button",class:"cv-button cv-icon","data-link-close":"","aria-label":"Close the transfers",text:"×"}),s=z(e,"p",{class:"cv-link-pair","data-link-pair":""}),i=z(e,"p",{class:"cv-link-day","data-link-day":""}),a=z(e,"div",{class:"cv-link-body","data-link-body":"",role:"status","aria-live":"polite"}),c=z(e,"button",{type:"button",class:"cv-button","data-link-earlier":"",text:"Earlier day"}),u=z(e,"section",{class:"cv-linkpanel cv-linkpanel-embedded","data-link-panel":"","aria-label":"Transfers of the selected link",hidden:!0},z(e,"header",{class:"cv-link-head"},r,null),s,i,a,c);let l=null,d=0;function f(){if(!l){u.hidden=!0;return}u.hidden=!1,s.replaceChildren(z(e,"code",{"data-link-from":"",text:l.from})," → ",z(e,"code",{"data-link-to":"",text:l.to})),i.textContent=`${Zi(l.day)} (UTC)`,c.disabled=l.status==="loading"||jo(l.day,l.firstDay);const S=jo(l.day,l.firstDay)?null:Gd(l.day);c.setAttribute("aria-label",S?`Earlier day: show the transfers of ${Zi(S)}`:"Earlier day: this is the first day the link was seen"),l.status==="loading"?a.replaceChildren(z(e,"p",{class:"cv-muted",text:`Loading the transfers of ${Zi(l.day)}…`})):l.status==="error"?a.replaceChildren(z(e,"p",{class:"cv-link-error","data-link-error":"",role:"alert",text:l.error??"The transfers could not be read."})):l.transfers.length===0?a.replaceChildren(z(e,"p",{class:"cv-muted","data-link-empty":"",text:"No transfers between these two addresses on this day."})):(a.replaceChildren(z(e,"ol",{class:"cv-transfers"},...l.transfers.map(w=>Mx(e,w,t.host)))),l.truncated&&a.append(z(e,"p",{class:"cv-muted","data-link-truncated":"",text:`${l.transfers.length} transfers shown. This day holds more.`}))),l.status!=="loading"&&jo(l.day,l.firstDay)&&l.firstDay&&a.append(z(e,"p",{class:"cv-muted","data-link-first":"",text:"This is the first day the link was seen."}))}async function p(S){const w=++d,x=l;x.day=S,x.status="loading",x.error=null,f(),t.onLayout?.();let C=null;try{C=await t.host.callServerTool({name:xx,arguments:zx(t.network,x.from,x.to,S)})}catch(O){C={isError:!0,content:[{type:"text",text:O instanceof Error?O.message:String(O)}]}}if(w!==d||l!==x)return x;const R=Cx(C);if(R)x.status="error",x.transfers=[],x.error=R.length>300?`${R.slice(0,299)}…`:R;else{const O=Ny(C.structuredContent);x.status="ready",x.transfers=Ex(O.transfers),x.truncated=O.truncated}return f(),t.onLayout?.(),x}const h=()=>_.close(),m=()=>{_.earlier()};o.addEventListener("click",h),c.addEventListener("click",m);const _={element:u,open(S){const w=Tx(S,n());return l={from:S.from,to:S.to,day:w.last,firstDay:w.first,status:"loading",transfers:[],truncated:!1,error:null},p(w.last)},async earlier(){return!l||l.status==="loading"||jo(l.day,l.firstDay)?null:p(Gd(l.day))},close(){d++,l=null,f(),t.onLayout?.()},state:()=>l?{...l,transfers:[...l.transfers]}:null,destroy(){d++,o.removeEventListener("click",h),c.removeEventListener("click",m)}};return _}function Mx(e,t,n){const r=wy(t.tx_id),o=n.openLink,s=r&&o?z(e,"button",{type:"button",class:"cia-graph-explorer-link","data-explorer":r,"aria-label":`Transaction ${t.tx_id} (opens the explorer)`,title:t.tx_id,text:cr(t.tx_id)}):z(e,"code",{title:t.tx_id,text:cr(t.tx_id)});return r&&o&&s.addEventListener("click",()=>{o.call(n,{url:r}).catch(()=>{})}),z(e,"li",{class:"cv-transfer","data-tx":t.tx_id},z(e,"span",{class:"cv-transfer-time",text:Ox(t.block_timestamp)}),z(e,"span",{class:"cv-transfer-amount",text:`${Ax(t.amount)}${t.asset_symbol?` ${t.asset_symbol}`:""}`}),z(e,"span",{class:"cv-transfer-usd",text:t.amount_usd==null?"— USD":Nx(t.amount_usd)}),s)}const Lx="graph_expand",Fo="too busy to expand",Oy=640,Rx=300,ji=.45,Dx="Full screen shows the whole graph",uf=400,Fi="expanded",Zx="Click an address for its details. Double-click it to load its senders and receivers, and again to fold them back. Click a link to list its transfers.",jx=[["scam","Scam"],["sanctioned","Sanctioned"],["exchange","Exchange"],["victim","Victim"],["pool","Pool"],["other","Other"]];function Fx(e,t,n){return{network:e,address:t,in_offset:n?.in_offset??0,out_offset:n?.out_offset??0}}function Ux(e){const t=bo(e);return e?e.isError?t||"the server refused the expansion":/query_timeout|topology_busy/.test(t)?t:Zl(e.structuredContent)?null:t||"the answer held no money flows":"no answer"}function Vx(e,t,n,r=Oy,o=Rx){if(!e||t<=0)return{height:r,fits:!0};const s=Math.max(1,e.x2-e.x1),i=Math.max(1,e.y2-e.y1),a=Math.max(ji,Math.min(1,(t-ar*2)/s)),c=Math.ceil(n+i*a+ar*2),u=Math.min(r,Math.max(o,c));return Fd(e,t,u-n)>=ji?{height:u,fits:!0}:{height:r,fits:Fd(e,t,r-n)>=ji}}function qx(e){return/query_timeout|topology_busy|timed? ?out/i.test(e)}function Hx(e){const t=e.split(`
110
- `)[0].trim();return t.length>200?`${t.slice(0,199)}…`:t}function Bx(e,t){return`investigator expanded ${e}: ${t} new addresses`}function Kx(e,t){const n=e.nodes.find(r=>r.address.toLowerCase()===t.toLowerCase());return n&&Si({role:n.role??null,labels:n.labels??[]})||"Other"}function Py(e,t,n){const r=e.ownerDocument,o=t.network??"robinhood",s=t.center.toLowerCase(),i=()=>new Map(t.cursor?[[s,{cursor:t.cursor,truncated:!!t.truncated}]]:[]);let a=i();const c=new Set,u=new Set;let l=[];const d=new Set;let f=!1,p=!1,h=null,m=null;const _=n.now??Date.now,S=n.title??"Money flow graph",w=z(r,"p",{class:"cv-status",role:"status","aria-live":"polite",text:Zx}),x=z(r,"ul",{class:"cv-roles","aria-label":"Address roles"}),C=z(r,"div",{class:"cv-canvas","data-graph":""}),R=z(r,"div",{class:"cv-detail","aria-label":"Selection"},z(r,"strong",{"data-selection-title":""}),z(r,"code",{"data-selection-identity":""}),z(r,"div",{class:"cv-detail-meta","data-selection-meta":""})),O=z(r,"strong",{"data-side-title":"",text:"Details"}),F=z(r,"button",{type:"button",class:"cv-button cv-icon","data-side-close":"","aria-label":"Close the details",text:"×"}),oe=z(r,"button",{type:"button",class:"cv-button","data-toggle-expand":"",hidden:!0,text:"Expand"}),le=z(r,"button",{type:"button",class:"cv-button","data-more":"",hidden:!0,text:"More flows"}),te=Px(r,{host:n.host,network:o,now:n.now,embedded:!0,onLayout:()=>Xe()}),ie=z(r,"aside",{class:"cv-side","data-side-panel":"","aria-label":"Details of the selection",hidden:!0},z(r,"header",{class:"cv-side-head"},O,F),R,z(r,"div",{class:"cv-side-actions"},oe,le),te.element),qe=z(r,"button",{type:"button",class:"cv-button","data-fullscreen":"",hidden:!0,"aria-label":"Open full screen",text:"Full screen"}),Pe=z(r,"button",{type:"button",class:"cv-button","data-reset":"","aria-label":"Reset the graph to the first answer",text:"Reset"}),ct=z(r,"span",{class:"cv-hint","data-fullscreen-hint":"",hidden:!0,text:Dx}),vo=z(r,"div",{class:"cv-actions"},z(r,"button",{type:"button",class:"cv-button cv-icon","data-zoom":"out","aria-label":"Zoom out",text:"−"}),z(r,"button",{type:"button",class:"cv-button cv-icon","data-zoom":"in","aria-label":"Zoom in",text:"+"}),z(r,"button",{type:"button",class:"cv-button","data-zoom":"fit","aria-label":"Fit the graph",text:"Fit"}),Pe,ct,qe),ko=z(r,"span",{class:"cv-muted","data-subtitle":""}),Ye=z(r,"section",{class:"cv-flows cia-graph-surface","data-view":"flows","aria-label":`${S} of ${s}`},z(r,"header",{class:"cv-flows-head"},z(r,"div",{class:"cv-title"},z(r,"strong",{text:S}),ko),n.toggle??null,vo),x,n.note?z(r,"p",{class:"cv-note",role:"note","data-left-out":"",text:n.note}):null,z(r,"div",{class:"cv-body"},C,ie),w);e.replaceChildren(Ye);function ut(){const N=ae.model(),K=N.truncated?" · more flows than shown":"";ko.textContent=`${s} · ${Kx(t,s)} · ${o} · ${N.nodes.length} addresses${K}`;const g=new Set(N.nodes.map($=>$.role??"other"));x.replaceChildren(...jx.filter(([$])=>g.has($)).map(([$,T])=>{const E=z(r,"i",{"aria-hidden":"true"});return E.style.background=`var(--cia-graph-role-${$})`,z(r,"li",{"data-role":$},E,T)}))}function Ii(N){return N?ae.model().nodes.find(K=>K.id===N)?.address.toLowerCase()??null:null}const kt=N=>{const K=N.target;f=!!K?.closest?.("[data-node-id]"),p=!f&&!!K?.closest?.("[data-edge-id]")},Gt=N=>{const K=N.target,g=N.key==="Enter"||N.key===" ",$=K?.closest?.("[data-node-id]");if(g&&N.shiftKey&&$){N.preventDefault();const T=Ii($.dataset.nodeId);T&&en(T);return}f=!1,p=g&&!$&&!!K?.closest?.("[data-edge-id]")},$t=()=>{f=!1,p=!1};C.addEventListener("pointerdown",kt,!0),C.addEventListener("keydown",Gt,!0),C.addEventListener("pointerup",$t),C.addEventListener("pointercancel",$t);function lt(){const N=m;if(!N){oe.hidden=!0,le.hidden=!0;return}const K=d.has(N);oe.hidden=!1,oe.disabled=c.has(N)||u.has(N),oe.textContent=c.has(N)?"Too busy to expand":K?"Collapse":"Expand",oe.setAttribute("aria-label",`${oe.textContent} ${N}`),le.hidden=!(K&&a.get(N)?.truncated)}function $o(N){const K=ie.hidden;ie.hidden=N.kind==null,N.kind==="node"&&N.node?(m=N.node.address.toLowerCase(),O.textContent="Address details",te.close()):(m=null,N.kind==="edge"?O.textContent="Link details":te.close()),lt(),K!==ie.hidden&&Xe()}let dt=null;function Yt(){dt&&clearTimeout(dt),dt=null}function So(N){const K=f&&N.kind==="node"&&N.node,g=p&&N.kind==="edge"&&N.edge;if(f=!1,p=!1,Yt(),K){const $=N.node.address.toLowerCase(),T=_();h&&h.address===$&&T-h.at<=uf?(h=null,zo(),en($)):(h={address:$,at:T},dt=setTimeout(()=>{dt=null,$o(N)},uf));return}N.kind!=="node"&&(h=null),$o(N),g&&te.open(N.edge)}const zi=n.height??Oy,St=`${S} of ${s}: senders on the left, receivers on the right. Select an address for its details; double-click it, or press Shift+Enter, to load its senders and receivers, and again to fold them back. Select a link to list its transfers.`;function Qt(){return DS(C,t,{layout:"tree",width:n.width??720,height:zi,now:n.now,controls:vo,selectionRoot:R,onSelect:So,openLink:N=>{n.host.openLink?.({url:N}).catch(()=>{w.textContent="The host did not open the link."})},label:St})}let ae=Qt();ut();let ze=n.displayMode??"inline",Qe=n.availableDisplayModes??[];const Fn=()=>!!n.host.requestDisplayMode&&(Qe.length===0||Qe.includes("fullscreen"));function Xe(){if(ze==="fullscreen"){Ye.style.removeProperty("height"),ct.hidden=!0;return}const N=C.clientWidth||n.width||720,K=Math.max(0,Ye.offsetHeight-C.offsetHeight)||140,{height:g,fits:$}=Vx(ae.contentBounds(),N,K);Ye.style.height=`${g}px`,ct.hidden=$||!Fn(),Ye.dataset.fits=String($),ae.fit()}async function Un(N){try{await n.host.updateModelContext?.({content:[{type:"text",text:N}]})}catch{}}async function Xt(N,K=!1){const g=N.toLowerCase();if(c.has(g))return w.textContent=`${g} is ${Fo}.`,{added:[],refused:Fo};if(u.has(g))return{added:[],refused:null};const $=a.get(g);if($&&!$.truncated)return w.textContent=`Every recent flow of ${g} is drawn.`,{added:[],refused:null};u.add(g),lt(),w.textContent=`Loading the flows of ${g}…`;let T=null;try{T=await n.host.callServerTool({name:Lx,arguments:Fx(o,g,K||$?$?.cursor:null)})}catch(q){T={isError:!0,content:[{type:"text",text:q instanceof Error?q.message:String(q)}]}}finally{u.delete(g)}const E=Ux(T);if(E)return qx(E)?(c.add(g),ae.markNode(g,Fo),w.textContent=`${g} is ${Fo}. The drawing is kept.`):w.textContent=`${g} could not be expanded: ${Hx(E)}. The drawing is kept; try again.`,lt(),{added:[],refused:E};const P=T.structuredContent,M=ae.merge(P,g);return l.push({address:g,page:P}),d.add(g),ae.flagNode(g,Fi,!0),a.set(g,{cursor:P.cursor??null,truncated:!!P.truncated}),ut(),Xe(),lt(),w.textContent=`${M.length} new ${M.length===1?"address":"addresses"} linked to ${g}. Double-click it again to fold them back.`,await Un(Bx(g,M.length)),{added:M,refused:null}}function xo(N){const K=N.toLowerCase();if(!d.has(K))return{removed:0};const g=ae.model().nodes.length;ae.flagNode(K,Fi,!1),d.delete(K),a.delete(K);const $=l.filter(P=>P.address!==K);ae.update(t);const T=[];for(const P of $)ae.model().nodes.some(q=>q.address.toLowerCase()===P.address)?(ae.merge(P.page,P.address),T.push(P)):T.some(q=>q.address===P.address)||(ae.flagNode(P.address,Fi,!1),d.delete(P.address),a.delete(P.address));l=T;const E=Math.max(0,g-ae.model().nodes.length);return m&&!ae.model().nodes.some(P=>P.address.toLowerCase()===m)&&(ie.hidden=!0,m=null),ut(),Xe(),lt(),w.textContent=`Folded ${K} back: ${E} ${E===1?"address":"addresses"} removed.`,Un(`investigator collapsed ${K}: ${E} addresses removed`),{removed:E}}async function en(N){d.has(N)?xo(N):await Xt(N)}function Io(){Yt(),ae.destroy(),l=[],d.clear(),c.clear(),u.clear(),a=i(),h=null,m=null,te.close(),ie.hidden=!0,ae=Qt(),ut(),Xe(),lt(),w.textContent="Back to the first answer."}function tn(N,K){N&&(ze=N),K&&(Qe=K),Ye.dataset.displayMode=ze,qe.hidden=!Fn(),qe.textContent=ze==="fullscreen"?"Exit full screen":"Full screen",qe.setAttribute("aria-label",ze==="fullscreen"?"Back to the inline view":"Open full screen"),Xe()}tn(ze);const nn=async()=>{const N=ze==="fullscreen"?"inline":"fullscreen";try{const K=await n.host.requestDisplayMode?.({mode:N});tn(K?.mode??N)}catch{w.textContent="The host did not change the display mode."}},rt=()=>Io();function zo(){Yt();const N=!ie.hidden;ae.select(null),te.close(),ie.hidden=!0,m=null,lt(),N&&Xe()}const Vn=()=>zo(),qn=()=>{m&&en(m)},Hn=()=>{m&&Xt(m,!0)};return qe.addEventListener("click",nn),Pe.addEventListener("click",rt),F.addEventListener("click",Vn),oe.addEventListener("click",qn),le.addEventListener("click",Hn),{root:Ye,get graph(){return ae},expand:N=>Xt(N),collapse:xo,reset:Io,expanded:()=>[...d],linkPanel:te,openLink(N,K){const g=ae.model().edges.find($=>$.from===N.toLowerCase()&&$.to===K.toLowerCase());return g?(ae.select(g.id),te.open(g)):Promise.resolve(null)},setTheme(N){ae.setTheme(N)},setDisplayMode:tn,refit:Xe,destroy(){Yt(),C.removeEventListener("pointerdown",kt,!0),C.removeEventListener("keydown",Gt,!0),C.removeEventListener("pointerup",$t),C.removeEventListener("pointercancel",$t),qe.removeEventListener("click",nn),Pe.removeEventListener("click",rt),F.removeEventListener("click",Vn),oe.removeEventListener("click",qn),le.removeEventListener("click",Hn),te.destroy(),ae.destroy()}}}function da(e){return{kind:e,flows:()=>[],setTheme(){},setDisplayMode(){},refit(){},destroy(){}}}function Jx(e,t){return{kind:e,flows:()=>{const n=t();return n?[n]:[]},setTheme(n){t()?.setTheme(n)},setDisplayMode(n,r){t()?.setDisplayMode(n,r)},refit(){t()?.refit()},destroy(){t()?.destroy()}}}const My=e=>({host:e.host,availableDisplayModes:e.availableDisplayModes,displayMode:e.displayMode,now:e.now,width:e.width,height:e.height});function Wx(e,t){if(e<=0)return null;const n=new Intl.NumberFormat("en-US");return`${n.format(e)} of ${n.format(t)} rows ${e===1?"is":"are"} not drawn: a graph holds at most 60 addresses. The table has the rows.`}function Gx(e,t,n){const r=[];let o="picture";const s=i=>{for(const a of i.querySelectorAll("[data-show]"))a.setAttribute("aria-pressed",String(a.dataset.show===o))};return{make(){const i=z(e,"button",{type:"button",class:"cv-toggle-button","data-show":"picture",text:t}),a=z(e,"button",{type:"button",class:"cv-toggle-button","data-show":"table",text:"Table"});i.addEventListener("click",()=>n("picture")),a.addEventListener("click",()=>n("table"));const c=z(e,"div",{class:"cv-toggle",role:"group","aria-label":"Show the rows as"},i,a);return r.push(c),s(c),c},set(i){o=i,r.forEach(s)}}}function Ly(e,t,n){const r=e.ownerDocument,o=zy(t);if(o!=="graph"&&o!=="chart")return o==="table"?rf(e,t):xi(e,t),da(o==="table"?"table":"text");const s=t.structuredContent,i=Sy(s),a=z(r,"div",{class:"cv-face","data-face":"picture"}),c=z(r,"div",{class:"cv-face","data-face":"table",hidden:!0});e.replaceChildren(a,c);const u=Gx(r,o==="graph"?"Graph":"Chart",p=>f(p));let l=null,d=!1;if(o==="graph"){const p=tx(i,VS(s));l=Py(a,p.view,{...My(n),title:"Money flow graph",toggle:u.make(),note:Wx(p.rowsLeftOut,p.rowsTotal)})}else $x(a,xy(i),{toggle:u.make()});function f(p){a.hidden=p!=="picture",c.hidden=p!=="table",p==="table"&&!d&&(d=!0,rf(c,t,{toggle:u.make()})),u.set(p),p==="picture"&&l?.refit()}return{kind:o,flows:()=>l?[l]:[],setTheme(p){l?.setTheme(p)},setDisplayMode(p,h){l?.setDisplayMode(p,h)},refit(){a.hidden||l?.refit()},destroy(){l?.destroy()}}}function Yx(e,t){if(!e.ok)return{isError:!0,content:[{type:"text",text:e.error??"The query failed."}]};const n=t?.facts?.subject;return{content:[],structuredContent:{schema:ky,tool:"graph_query",facts:{...n?{subject:n}:{},query:{results:e.rows,count:e.count??e.rows.length,truncated:e.truncated,elapsed_ms:e.elapsedMs}}}}}function Qx(e,t,n){const r=e.ownerDocument,o=nx(t.structuredContent),s=o.map((h,m)=>z(r,"button",{type:"button",role:"tab",class:"cv-tab",id:`cv-tab-${m}`,"data-tab":h.id,"aria-controls":`cv-panel-${m}`,"aria-selected":"false",tabindex:-1,text:h.ok?h.id:`${h.id} (failed)`})),i=o.map((h,m)=>z(r,"div",{class:"cv-tabpanel",role:"tabpanel",id:`cv-panel-${m}`,"aria-labelledby":`cv-tab-${m}`,hidden:!0})),a=z(r,"div",{class:"cv-tabs",role:"tablist","aria-label":"Queries of the batch"},...s);e.replaceChildren(a,...i);const c=o.map(()=>null);let u=n.displayMode,l=n.availableDisplayModes,d=-1;const f=()=>e.style.setProperty("--cv-tabs-h",`${a.offsetHeight}px`);function p(h){const m=o[h],_=i[h];if(!m||!_)return;d=h,s.forEach((w,x)=>{w.setAttribute("aria-selected",String(x===h)),w.tabIndex=x===h?0:-1}),i.forEach((w,x)=>{w.hidden=x!==h});const S=c[h];if(S)S.refit();else{const w=Ly(_,Yx(m,t.structuredContent),{...n,displayMode:u,availableDisplayModes:l});c[h]=w,_.dataset.view=w.kind}f()}return s.forEach((h,m)=>{h.addEventListener("click",()=>p(m)),h.addEventListener("keydown",_=>{const S=s.length-1,w=_.key==="ArrowRight"?m===S?0:m+1:_.key==="ArrowLeft"?m===0?S:m-1:_.key==="Home"?0:_.key==="End"?S:null;w!=null&&(_.preventDefault(),p(w),s[w]?.focus())})}),p(0),{kind:"batch",flows:()=>c.flatMap(h=>h?.flows()??[]),setTheme(h){for(const m of c)m?.setTheme(h)},setDisplayMode(h,m){h&&(u=h),m&&(l=m);for(const _ of c)_?.setDisplayMode(h,m);f()},refit(){d>=0&&c[d]?.refit()},destroy(){for(const h of c)h?.destroy()}}}function Xx(e,t,n){const r=zy(t);if(r==="flows"){const o=Py(e,t.structuredContent,My(n));return Jx("flows",()=>o)}return r==="graph"||r==="chart"||r==="table"?Ly(e,t,n):r==="batch"?Qx(e,t,n):r==="balance"?(fx(e,t),da("balance")):(xi(e,t),da("text"))}function e0(e){return e==="light"||e==="dark"}function t0(e,t=()=>!1){return e0(e?.theme)?e.theme:t()?"dark":"light"}function Hl(e,t){const n={...e??{},...t??{}};return(e?.styles||t?.styles)&&(n.styles={...e?.styles??{},...t?.styles??{},variables:{...e?.styles?.variables??{},...t?.styles?.variables??{}}}),n}function Ry(e,t,n={}){const r=e.documentElement,o=t0(t,n.prefersDark);r.setAttribute("data-theme",o),r.style.colorScheme=o;const s=t?.styles?.variables;s&&n.applyVariables&&n.applyVariables(s,r);const i=t?.styles?.css?.fonts;return i&&n.applyFonts&&n.applyFonts(i),o}const wo=document.getElementById("view"),Dy=()=>typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches;let At={},Uo=Ry(document,At,{prefersDark:Dy}),nt=null;Cy(wo);const it=new Rl({name:"chain-insights-view",version:"1.0.0"},{});function Zy(e){const t=Uo;Uo=Ry(document,e,{prefersDark:Dy,applyVariables:(n,r)=>I$(n,r),applyFonts:z$}),nt&&Uo!==t&&nt.setTheme(Uo),nt?.setDisplayMode(e.displayMode,e.availableDisplayModes)}function n0(e){nt?.destroy(),nt=null;const t=Hl(it.getHostContext(),At);nt=Xx(wo,e,{host:it,availableDisplayModes:t.availableDisplayModes,displayMode:t.displayMode}),document.documentElement.dataset.view=nt.kind}it.ontoolinput=e=>{const t=typeof e.arguments?.address=="string"?e.arguments.address:null;nt||Cy(wo,t?`Loading the graph of ${t}`:"Loading the Chain Insights view")};it.ontoolresult=e=>{n0(e)};it.ontoolcancelled=()=>{nt||xi(wo,null,"The tool call was cancelled. Nothing to draw.")};it.onhostcontextchanged=e=>{At=Hl(At,e),Zy(At)};it.onteardown=async()=>(nt?.destroy(),nt=null,{});it.onerror=e=>{console.warn("chain-insights-view:",e)};it.connect(new fy(window.parent,window.parent)).then(()=>{At=Hl(At,it.getHostContext()),Zy(At)},e=>{console.warn("chain-insights-view: no host answered",e),xi(wo,null,"This view opens inside Claude, next to a Chain Insights tool answer.")});
107
+ - "app": Tool callable by the app from this server only`),csp:Un().optional(),permissions:Un().optional()});T({mimeTypes:oe(x()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});T({method:E("ui/download-file"),params:T({contents:oe(ge([Db,Ob])).describe("Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})});T({method:E("ui/message"),params:T({role:E("user").describe('Message role, currently only "user" is supported.'),content:oe(ho).describe("Message content blocks (text, image, etc.).")})});T({method:E("ui/notifications/sandbox-resource-ready"),params:T({html:x().describe("HTML content to load into the inner iframe."),sandbox:x().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:Sf.optional().describe("CSP configuration from resource metadata."),permissions:xf.optional().describe("Sandbox permissions from resource metadata.")})});var e$=T({method:E("ui/notifications/tool-result"),params:Na.describe("Standard MCP tool execution result.")}),Bb=T({toolInfo:T({id:so.optional().describe("JSON-RPC id of the tools/call request."),tool:kf.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:M0.optional().describe("Current color theme preference."),styles:W0.optional().describe("Style configuration for theming the app."),displayMode:ii.optional().describe("How the UI is currently displayed."),availableDisplayModes:oe(ii).optional().describe("Display modes the host supports."),containerDimensions:ge([T({height:de().describe("Fixed container height in pixels.")}),T({maxHeight:ge([de(),or()]).optional().describe("Maximum container height in pixels.")})]).and(ge([T({width:de().describe("Fixed container width in pixels.")}),T({maxWidth:ge([de(),or()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
108
+ container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:x().optional().describe("User's language and region preference in BCP 47 format."),timeZone:x().optional().describe("User's timezone in IANA format."),userAgent:x().optional().describe("Host application identifier."),platform:ge([E("web"),E("desktop"),E("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:T({touch:Ne().optional().describe("Whether the device supports touch input."),hover:Ne().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:T({top:de().describe("Top safe area inset in pixels."),right:de().describe("Right safe area inset in pixels."),bottom:de().describe("Bottom safe area inset in pixels."),left:de().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),t$=T({method:E("ui/notifications/host-context-changed"),params:Bb.describe("Partial context update containing only changed fields.")});T({method:E("ui/update-model-context"),params:T({content:oe(ho).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:be(x(),Ae().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});T({method:E("ui/initialize"),params:T({appInfo:Aa.describe("App identification (name and version)."),appCapabilities:Y0.describe("Features and capabilities this app provides."),protocolVersion:x().describe("Protocol version this app supports.")})});var n$=T({protocolVersion:x().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:Aa.describe("Host application identification and version."),hostCapabilities:J0.describe("Features and capabilities provided by the host."),hostContext:Bb.describe("Rich context about the host environment.")}).passthrough(),r$={target:"draft-2020-12"};async function zh(e,t){let n=e["~standard"];if(n.jsonSchema)return n.jsonSchema[t](r$);if(n.vendor==="zod"){let{z:r}=await w_(()=>Promise.resolve().then(()=>Hx),void 0,import.meta.url);return r.toJSONSchema(e,{io:t})}throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function Rh(e,t,n=""){let r=await e["~standard"].validate(t);if(r.issues){let i=r.issues.map(o=>{let s=o.path?.map(a=>typeof a=="object"?a.key:a).join(".");return s?`${s}: ${o.message}`:o.message}).join("; ");throw Error(n+i)}return r.value}function i$(e,t=document.documentElement){for(let[n,r]of Object.entries(e))r!==void 0&&t.style.setProperty(n,r)}function o$(e){if(document.getElementById("__mcp-host-fonts"))return;let t=document.createElement("style");t.id="__mcp-host-fonts",t.textContent=e,document.head.appendChild(t)}class Ef extends P0{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(t){if(this._initializedSent)return;let n=`[ext-apps] App.${t}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(n);console.warn(`${n}. This will throw in a future release.`)}eventSchemas={toolinput:B0,toolinputpartial:V0,toolresult:e$,toolcancelled:H0,hostcontextchanged:t$};static ONE_SHOT_EVENTS=new Set(["toolinput","toolinputpartial","toolresult","toolcancelled"]);_everHadListener=new Set;_assertHandlerTiming(t){if(!Ef.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(t,n){n&&this._assertHandlerTiming(t),super.setEventHandler(t,n)}addEventListener(t,n){this._assertHandlerTiming(t),super.addEventListener(t,n)}onEventDispatch(t,n){t==="hostcontextchanged"&&(this._hostContext={...this._hostContext,...n})}constructor(t,n={},r={autoResize:!0}){super(r),this._appInfo=t,this._capabilities=n,this.options=r,r.allowUnsafeEval||Ye({jitless:!0}),this.setRequestHandler(Ia,i=>(console.log("Received ping:",i.params),{})),this.setEventHandler("hostcontextchanged",void 0)}registerCapabilities(t){if(this.transport)throw Error("Cannot register capabilities after transport is established");this._capabilities=L0(this._capabilities,t)}registerTool(t,n,r){if(this._registeredTools[t])throw Error(`Tool ${t} is already registered`);let i=this,o=()=>{i._initializedSent&&i._capabilities.tools?.listChanged&&i.sendToolListChanged()},s=n.inputSchema!==void 0,a={title:n.title,description:n.description,inputSchema:n.inputSchema,outputSchema:n.outputSchema,annotations:n.annotations,_meta:n._meta,enabled:!0,enable(){this.enabled=!0,o()},disable(){this.enabled=!1,o()},update(u){Object.assign(this,u),o()},remove(){i._registeredTools[t]===a&&(delete i._registeredTools[t],o())},handler:async(u,c)=>{if(!a.enabled)throw Error(`Tool ${t} is disabled`);let l;if(s){let d=a.inputSchema,f=d?await Rh(d,u??{},`Invalid input for tool ${t}: `):u??{};l=await r(f,c)}else l=await r(c);return a.outputSchema&&!l.isError&&(l.structuredContent=await Rh(a.outputSchema,l.structuredContent,`Invalid output for tool ${t}: `)),l}};return this._registeredTools[t]=a,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),o(),a}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(t,n)=>{let r=this._registeredTools[t.name];if(!r)throw Error(`Tool ${t.name} not found`);return r.handler(t.arguments,n)},this.onlisttools=async(t,n)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([r,i])=>i.enabled).map(async([r,i])=>{let o={name:r,title:i.title,description:i.description,inputSchema:i.inputSchema?await zh(i.inputSchema,"input"):{type:"object",properties:{}}};return i.outputSchema&&(o.outputSchema=await zh(i.outputSchema,"output")),i.annotations&&(o.annotations=i.annotations),i._meta&&(o._meta=i._meta),o}))}))}async sendToolListChanged(t={}){this._assertInitialized("sendToolListChanged"),await this.notification({method:"notifications/tools/list_changed",params:t})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler("toolinput")}set ontoolinput(t){this.setEventHandler("toolinput",t)}get ontoolinputpartial(){return this.getEventHandler("toolinputpartial")}set ontoolinputpartial(t){this.setEventHandler("toolinputpartial",t)}get ontoolresult(){return this.getEventHandler("toolresult")}set ontoolresult(t){this.setEventHandler("toolresult",t)}get ontoolcancelled(){return this.getEventHandler("toolcancelled")}set ontoolcancelled(t){this.setEventHandler("toolcancelled",t)}get onhostcontextchanged(){return this.getEventHandler("hostcontextchanged")}set onhostcontextchanged(t){this.setEventHandler("hostcontextchanged",t)}_onteardown;get onteardown(){return this._onteardown}set onteardown(t){this.warnIfRequestHandlerReplaced("onteardown",this._onteardown,t),this._onteardown=t,this.replaceRequestHandler(K0,(n,r)=>{if(!this._onteardown)throw Error("No onteardown handler set");return this._onteardown(n.params,r)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(t){this.warnIfRequestHandlerReplaced("oncalltool",this._oncalltool,t),this._oncalltool=t,this.replaceRequestHandler(Fb,(n,r)=>{if(!this._oncalltool)throw Error("No oncalltool handler set");return this._oncalltool(n.params,r)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(t){this.warnIfRequestHandlerReplaced("onlisttools",this._onlisttools,t),this._onlisttools=t,this.replaceRequestHandler(Mb,(n,r)=>{if(!this._onlisttools)throw Error("No onlisttools handler set");return this._onlisttools(n.params,r)})}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${t})`);break}}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){if(this._assertInitialized("callServerTool"),typeof t=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${t}"). Did you mean: callServerTool({ name: "${t}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:t},Na,{onprogress:()=>{},resetTimeoutOnProgress:!0,...n})}async readServerResource(t,n){return this._assertInitialized("readServerResource"),await this.request({method:"resources/read",params:t},Pb,n)}async listServerResources(t,n){return this._assertInitialized("listServerResources"),await this.request({method:"resources/list",params:t},Lb,n)}async createSamplingMessage(t,n){this._assertInitialized("createSamplingMessage");let r=t.tools?jb:Gb;return await this.request({method:"sampling/createMessage",params:t},r,n)}sendMessage(t,n){return this._assertInitialized("sendMessage"),this.request({method:"ui/message",params:t},Z0,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this._assertInitialized("updateModelContext"),this.request({method:"ui/update-model-context",params:t},af,n)}openLink(t,n){return this._assertInitialized("openLink"),this.request({method:"ui/open-link",params:t},G0,n)}sendOpenLink=this.openLink;downloadFile(t,n){return this._assertInitialized("downloadFile"),this.request({method:"ui/download-file",params:t},j0,n)}requestTeardown(t={}){return this.notification({method:"ui/notifications/request-teardown",params:t})}requestDisplayMode(t,n){return this._assertInitialized("requestDisplayMode"),this.request({method:"ui/request-display-mode",params:t},X0,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,r=0,i=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let s=document.documentElement,a=s.style.height;s.style.height="max-content";let u=Math.ceil(s.getBoundingClientRect().height);s.style.height=a;let c=Math.ceil(window.innerWidth);(c!==n||u!==r)&&(n=c,r=u,this.sendSizeChanged({width:c,height:u}))}))};i();let o=new ResizeObserver(i);return o.observe(document.documentElement),o.observe(document.body),()=>o.disconnect()}async connect(t=new Zb(window.parent,window.parent),n){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");this._initializedSent=!1,await super.connect(t);try{let r=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:D0}},n$,n);if(r===void 0)throw Error(`Server sent invalid initialize result: ${r}`);this._hostCapabilities=r.hostCapabilities,this._hostInfo=r.hostInfo,this._hostContext=r.hostContext,await this.notification({method:"ui/notifications/initialized"}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(r){throw this.close(),r}}}const Vb=new Map;function s$(e,t){Vb.set(e,t)}function Lh(e){return Vb.get(e)??null}function a$(e){try{const t=e.createElement("canvas");if(typeof t.getContext!="function")return!1;const n=t.getContext("webgl2")??t.getContext("webgl");return n?(n.getExtension?.("WEBGL_lose_context")?.loseContext(),!0):!1}catch{return!1}}const u$="http://www.w3.org/2000/svg";let c$=0;function To(e){return Math.round(e*10)/10}function l$(e,t,n={}){const r=e.createElementNS(u$,t);for(const[i,o]of Object.entries(n))r.setAttribute(i,String(o));return r}function Ph(e,t,n,r){const i=`cia-graph-svg-${++c$}`,o=e.ownerDocument,s=(M,G)=>l$(o,M,G),a=(M,G,B)=>{const ee=s("text",{x:0,y:G,"text-anchor":"middle",class:B,"pointer-events":"none"});return ee.textContent=M,ee},{width:u,height:c}=t.dimensions(),l=s("svg",{class:"cia-graph-svg",viewBox:`0 0 ${u} ${c}`,role:"group",tabindex:0,"aria-label":r.label??"Money-flow graph. Drag the background or use arrow keys to pan, plus and minus to zoom. Select an address or a link for details."}),d=s("defs"),f=s("pattern",{id:`${i}-dots`,width:24,height:24,patternUnits:"userSpaceOnUse"});f.append(s("circle",{class:"cia-graph-dot",cx:1,cy:1,r:1})),d.append(f);const h=s("rect",{class:"cia-graph-backdrop",width:"100%",height:"100%","data-canvas":""}),p=s("rect",{class:"cia-graph-dots",width:"100%",height:"100%",fill:`url(#${i}-dots)`,"data-canvas":""}),m=s("g",{"data-viewport":""}),g=s("g",{"data-edges":"",class:"cia-graph-edges"}),w=s("g",{"data-nodes":"",class:"cia-graph-nodes"});m.append(g,w),l.append(d,h,p,m),e.append(l);const y=new Map,b=new Map,v=new Map;let S=null;function _(){if(S)return S;const M=t.model(),G=t.positions(),B=new Map;S=B;const ee=M.nodes.length>Q$,X=new Map(M.nodes.map(q=>[q.address,q])),V=ee?[]:B$(M,G,t.notes());for(const q of M.edges){const W=X.get(q.from),xe=X.get(q.to),Ie=W&&G[W.id],je=xe&&G[xe.id];if(!W||!xe||!Ie||!je){B.set(q.id,null);continue}if(ee){B.set(q.id,Ru(Ie,je,Pn(W,M.checked_address),Pn(xe,M.checked_address)));continue}const st=V.filter(et=>et.id!==W.id&&et.id!==xe.id);B.set(q.id,eT(Ie,je,Pn(W,M.checked_address),Pn(xe,M.checked_address),st))}return B}function $(M){let G=y.get(M);if(G)return G;G=`${i}-arrow-${y.size}`;const B=s("marker",{id:G,viewBox:"0 0 10 10",refX:9,refY:5,markerWidth:6,markerHeight:6,orient:"auto-start-reverse",markerUnits:"strokeWidth"}),ee=s("path",{d:"M0 0L10 5L0 10Z",class:"cia-graph-arrowhead"});return ee.style.fill=M,B.append(ee),d.append(B),y.set(M,G),G}function R(){return[...t.model().nodes??[]].sort((M,G)=>String(M.id).localeCompare(String(G.id)))}function P(){S=null;const M=t.model();g.replaceChildren(),w.replaceChildren(),b.clear(),v.clear();const G=new Map(M.nodes.map(B=>[B.address,B]));for(const B of M.edges){const ee=G.get(B.from);if(!ee||!G.get(B.to))continue;const X=t.colorOf(ee),V=s("g",{class:"cia-graph-edge graph-edge",tabindex:0,role:"button","aria-label":Mu(B,t.now())});V.dataset.edgeId=B.id,V.style.setProperty("--edge-tone",X);const q=nT(),W=s("path",{class:"cia-graph-edge-hit","stroke-width":q.hit.width,"pointer-events":"stroke"}),xe=s("path",{class:"cia-graph-edge-line","stroke-width":q.line.width,"marker-end":`url(#${$(X)})`,"pointer-events":"none"});V.append(W,xe),V.addEventListener("keydown",Ie=>{Zh(Ie.key)&&(Ie.preventDefault(),n.selectEdge(B.id,"keyboard"))}),V.addEventListener("pointerenter",Ie=>n.showTooltip(Ie,Mu(B,t.now()))),V.addEventListener("pointerleave",()=>n.hideTooltip()),g.append(V),v.set(B.id,{group:V,hit:W,line:xe})}for(const B of R())w.append(O(B));he(),$e()}function O(M){const G=t.model(),B=M.address===G.checked_address,ee=t.notes().get(M.id),X=Rr(M,G.checked_address,ee),V=X.radius,q=s("g",{class:"cia-graph-node graph-node",tabindex:0,role:"button","aria-label":Ou(M),"aria-pressed":"false"});q.dataset.nodeId=M.id,B&&(q.dataset.checked=""),q.style.setProperty("--node-tone",t.colorOf(M)),B&&q.append(s("circle",{class:"cia-graph-node-ring",r:V+6})),q.append(s("circle",{class:"cia-graph-node-body",r:V})),q.append(s("circle",{class:"cia-graph-node-dot",r:X.dot}));for(const W of X.texts)q.append(a(W.text,W.y,`cia-graph-node-${W.kind}`));ee&&(q.dataset.state="refused");for(const W of t.flags().get(M.id)??[])q.setAttribute(`data-flag-${W}`,"");return q.addEventListener("keydown",W=>{Zh(W.key)&&(W.preventDefault(),n.selectNode(M.id,"keyboard"))}),q.addEventListener("pointerenter",W=>n.showTooltip(W,Ou(M))),q.addEventListener("pointerleave",()=>n.hideTooltip()),b.set(M.id,q),q}function Y(){const M=t.transform();m.setAttribute("transform",`translate(${M.x} ${M.y}) scale(${M.scale})`)}function he(){Y();const M=t.positions(),{width:G,height:B}=t.dimensions();for(const[X,V]of b){const q=M[X]??{x:G/2,y:B/2};V.setAttribute("transform",`translate(${To(q.x)} ${To(q.y)})`)}const ee=_();for(const X of t.model().edges){const V=v.get(X.id);if(!V)continue;const q=ee.get(X.id)??null;V.group.style.display=q?"":"none",q&&(V.hit.setAttribute("d",q.d),V.line.setAttribute("d",q.d))}}function Se(M){const G=t.model(),B=t.positions(),ee=B[M],X=b.get(M);if(!ee||!X)return;X.setAttribute("transform",`translate(${To(ee.x)} ${To(ee.y)})`);const V=G.nodes.find(W=>W.id===M);if(!V)return;const q=new Map(G.nodes.map(W=>[W.address,W]));for(const W of G.edges){if(W.from!==V.address&&W.to!==V.address)continue;const xe=v.get(W.id),Ie=q.get(W.from),je=q.get(W.to),st=Ie&&B[Ie.id],et=je&&B[je.id];if(!xe||!Ie||!je||!st||!et)continue;const L=Ru(st,et,Pn(Ie,G.checked_address),Pn(je,G.checked_address));xe.group.style.display=L?"":"none",L&&(xe.hit.setAttribute("d",L.d),xe.line.setAttribute("d",L.d))}}function $e(){const M=t.model(),G=t.selected(),B=t.highlighted(),ee=G?.kind==="node"?M.nodes.find(X=>X.id===G.id)?.address??null:null;for(const X of M.edges){const V=v.get(X.id);if(!V)continue;const q=G?.kind==="edge"&&G.id===X.id,W=G?.kind==="edge"?q?Wt.related:Wt.faded:Jb(X,ee),xe=W===Wt.faded;V.group.setAttribute("opacity",xe?String(W):"1"),V.line.setAttribute("stroke-opacity",xe?"1":String(W)),V.group.dataset.opacity=String(W),V.group.dataset.state=W===Wt.rest?"rest":W===Wt.related?"related":"faded",V.group.setAttribute("aria-pressed",String(q))}for(const[X,V]of b){const q=G?.kind==="node"&&G.id===X;V.classList.toggle("is-selected",q),V.classList.toggle("is-focused",B===X),V.setAttribute("aria-pressed",String(q))}}function Fe(){let M=null;for(const G of _().values())G?.bounds&&(M=M??{...G.bounds},M.x1=Math.min(M.x1,G.bounds.x1),M.y1=Math.min(M.y1,G.bounds.y1),M.x2=Math.max(M.x2,G.bounds.x2),M.y2=Math.max(M.y2,G.bounds.y2));return M}return{kind:"svg",surface:l,build:P,geometry(){S=null,he()},moveNode:Se,endMove(){S=null,he()},camera:Y,selection:$e,flag(M,G,B){b.get(M)?.toggleAttribute(`data-flag-${G}`,B)},theme(){for(const M of t.model().nodes)b.get(M.id)?.style.setProperty("--node-tone",t.colorOf(M))},resize(M,G){l.setAttribute("viewBox",`0 0 ${M} ${G}`)},pick:()=>null,linkBounds:Fe,destroy(){l.remove()}}}const d$=.45,f$=2.5,h$=5,p$="chain-insights.flows.v1",$f="cia-graph-model",m$=90,Wt={rest:.6,related:.95,faded:.07},Dh={checked:24,other:19},oi=16,g$=[["Sanctioned","Sanctioned"],["Scam","Scam"],["Poisoned","Poisoned"],["OnMoneyTrail","On money trail"],["Mixer","Mixer"],["Bridge","Bridge"],["Exchange","Exchange"],["Victim","Victim"],["Targeted","Targeted"]],po=["exchange","scam","sanctioned","victim","pool","other"],y$={exchange:"infrastructure",scam:"danger",sanctioned:"danger",victim:"target",pool:"trail",other:"neutral"},Hb={exchange:"Exchange",scam:"Scam",sanctioned:"Sanctioned",victim:"Victim",pool:"Pool",other:""};function Tf(e){return!!e&&e.schema===p$}function v$(e){return!!e&&e.kind===$f}function qe(e){return String(e??"").trim().toLowerCase()}function b$(e){const t=qe(e);return po.includes(t)?t:"other"}function hn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Nu(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function w$(e){const t=String(e??"").toUpperCase();return t==="IN"||t==="OUT"||t==="MIXED"||t==="CHECKED"?t:"OUT"}function Rt(e){return v$(e)?e:Tf(e)?_$(e):S$(e)}function _$(e){const t=qe(e.center),n=new Map;for(const a of e.nodes??[]){const u=qe(a?.address);u&&!n.has(u)&&n.set(u,a)}const r=[],i=new Set;for(const a of e.edges??[]){const u=qe(a?.from),c=qe(a?.to);if(!n.has(u)||!n.has(c)||u===c)continue;const l=`${u}->${c}`;i.has(l)||(i.add(l),r.push({id:l,from:u,to:c,source:"flows",amount_usd_sum:hn(a.usd),tx_count:hn(a.tx_count),first_seen_timestamp:hn(a.first_seen_ms),last_seen_timestamp:hn(a.last_seen_ms),...typeof a.link_kind=="string"&&a.link_kind?{link_kind:a.link_kind}:{}}))}const o=k$(t,[...n.keys()],r),s=[...n.entries()].map(([a,u])=>{const c=o.get(a)??{direction:"OUT",hop:2};return{id:a,address:a,direction:a===t?"CHECKED":c.direction,hop:a===t?0:c.hop,labels:Nu(u.labels),taxonomy:[],role:b$(u.role),total_in_usd:hn(u.total_in_usd),total_out_usd:hn(u.total_out_usd),degree_in:hn(u.degree_in),degree_out:hn(u.degree_out)}});return{kind:$f,checked_address:t,network:e.network??null,nodes:s,edges:r,truncated:!!e.truncated,cursor:e.cursor??null}}function k$(e,t,n){const r=new Map,i=new Map,o=new Map,s=(d,f,h)=>d.set(f,[...d.get(f)??[],h]);for(const d of n)s(r,d.from,d.to),s(i,d.to,d.from),s(o,d.from,d.to),s(o,d.to,d.from);const a=d=>{const f=new Map([[e,0]]);for(let h=[e];h.length;){const p=[];for(const m of h)for(const g of d.get(m)??[])f.has(g)||(f.set(g,(f.get(m)??0)+1),p.push(g));h=p}return f},u=a(r),c=a(i),l=new Map;for(const d of t){if(d===e)continue;const f=u.get(d),h=c.get(d);if(f==null&&h==null)continue;const p=f!=null&&h!=null?f<h?"OUT":h<f?"IN":"MIXED":f!=null?"OUT":"IN";l.set(d,{direction:p,hop:Math.min(2,Math.min(f??1/0,h??1/0))})}for(let d=!0;d;){d=!1;for(const f of t){if(f===e||l.has(f))continue;const h=(o.get(f)??[]).find(m=>m!==e&&l.has(m));if(h==null)continue;const p=l.get(h);l.set(f,{direction:p.direction==="MIXED"?"OUT":p.direction,hop:2}),d=!0}}return l}function S$(e){const t=(e?.nodes??[]).map(r=>({...r,id:String(r.id??r.address),address:r.address,hop:Number(r.hop)||0,direction:r.address===e.checked_address?"CHECKED":w$(r.direction),labels:Nu(r.labels),taxonomy:Nu(r.taxonomy),role:null})),n=(e?.edges??[]).map(r=>({...r,id:String(r.id??`${r.from}->${r.to}`),amount_usd_sum:r.amount_usd_sum??null,tx_count:r.tx_count??null,first_seen_timestamp:r.first_seen_timestamp??null,last_seen_timestamp:r.last_seen_timestamp??null,source:"risk"}));return{kind:$f,checked_address:e?.checked_address??"",network:null,nodes:t,edges:n,truncated:!1,cursor:null}}function x$(e,t,n){const r=Rt(t),i=Ln(e,n??r.checked_address),o=e.nodes.find(d=>d.id===i),s=new Map(e.nodes.map(d=>[qe(d.address),d])),a=[];for(const d of r.nodes){if(s.has(qe(d.address)))continue;const f=!o||o.direction==="CHECKED"?d.direction==="CHECKED"?"OUT":d.direction:o.direction,h={...d,id:d.id,direction:f,hop:Math.min(2,(o?.hop??0)+1)};a.push(h),s.set(qe(d.address),h)}const u=new Set(e.edges.map(d=>d.id)),c=new Set(e.edges.map(d=>`${qe(d.from)}->${qe(d.to)}`)),l=[...e.edges];for(const d of r.edges){const f=`${qe(d.from)}->${qe(d.to)}`;if(u.has(d.id)||c.has(f)||!s.has(qe(d.from))||!s.has(qe(d.to)))continue;const h=s.get(qe(d.from)).address,p=s.get(qe(d.to)).address;l.push({...d,from:h,to:p}),u.add(d.id),c.add(f)}return{model:{...e,nodes:[...e.nodes,...a],edges:l,truncated:e.truncated||r.truncated},added:a.map(d=>d.id)}}function Ln(e,t){if(t==null)return null;const n=qe(t);return e.nodes.find(i=>i.id===t||qe(i.address)===n)?.id??null}function si(e){return typeof e!="string"||e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function Cf(e){return String(e??"").trim().replace(/\s+/g," ")}function is(e){return Cf(e).replaceAll(" ","").toLowerCase()}function wn(e){const t=[...e.taxonomy??[],...e.labels??[]],n=new Set,r=[];for(const i of t){const o=Cf(i),s=o.toLowerCase();!o||s==="address"||n.has(s)||(n.add(s),r.push(o))}return r}function Co(e,t){const n=new Set(wn(e).map(is));return t.some(r=>n.has(is(r)))}function E$(e){if(e.role&&po.includes(e.role))return y$[e.role];if(Co(e,["Sanctioned","Scam","Poisoned"]))return"danger";if(Co(e,["Victim","Targeted"]))return"target";if(Co(e,["OnMoneyTrail","Mixer"]))return"trail";if(Co(e,["Exchange","Bridge","token contract"]))return"infrastructure";if(e.risk_score!=null){const t=String(e.risk_level).toLowerCase();if(t==="critical"||t==="high"||t==="medium"||t==="low")return t}return"neutral"}function He(e){return`var(--cia-graph-${e})`}const $$={semantic:{danger:{stroke:He("danger"),fill:He("node")},target:{stroke:He("target"),fill:He("node")},trail:{stroke:He("trail"),fill:He("node")},infrastructure:{stroke:He("infrastructure"),fill:He("node")},neutral:{stroke:He("neutral"),fill:He("node")}},risk:{CRITICAL:{stroke:He("critical"),fill:He("node")},HIGH:{stroke:He("high"),fill:He("node")},MEDIUM:{stroke:He("medium"),fill:He("node")},LOW:{stroke:He("low"),fill:He("node")}}};function T$(e,t=$$){const n=E$(e);return n==="critical"||n==="high"||n==="medium"||n==="low"?t.risk[n.toUpperCase()]??t.semantic.neutral:t.semantic[n]}function C$(e){return e.role&&po.includes(e.role)?He(`role-${e.role}`):T$(e).stroke}function mo(e){if(e.role&&e.role!=="other"&&po.includes(e.role))return Hb[e.role];const t=wn(e);for(const[r,i]of g$)if(t.some(o=>is(o)===is(r)))return i;return(Array.isArray(e.labels)?e.labels.map(Cf).filter(Boolean).sort((r,i)=>r.localeCompare(i)):[])[0]??""}function zu(e){return Math.min(f$,Math.max(d$,e))}function za(e){return[...e.nodes??[]].sort((t,n)=>String(t.id).localeCompare(String(n.id)))}function Af(e,t=za(e)){return t.find(n=>n.address===e.checked_address)??t[0]}function Oh(e,t){return e.address===t?43:e.hop>=2?25:30}function Pn(e,t){return e.address===t?Dh.checked:Dh.other}function Rr(e,t,n){const r=e.address===t,i=Pn(e,t),o=mo(e),s=[];return o&&s.push({kind:"role",text:gT(o),y:i+17}),s.push({kind:"address",text:si(e.address),y:i+(o?33:17)}),n&&s.push({kind:"note",text:n,y:i+(o?48:32)}),{radius:i,ring:r,dot:r?8:5,texts:s}}const A$={role:{size:13,advance:.68},address:{size:11,advance:.62},note:{size:11,advance:.6}},Ha=2;function If(e){const t=e.radius+(e.ring?7:2),n=[{kind:"circle",box:{x1:-t,y1:-t,x2:t,y2:t}}];for(const r of e.texts){const i=A$[r.kind],o=[...r.text].length*i.size*i.advance/2+Ha;n.push({kind:r.kind,box:{x1:-o,y1:r.y-i.size*.8-Ha,x2:o,y2:r.y+i.size*.25+Ha}})}return n}function qb(e){return e.length?{x1:Math.min(...e.map(t=>t.x1)),y1:Math.min(...e.map(t=>t.y1)),x2:Math.max(...e.map(t=>t.x2)),y2:Math.max(...e.map(t=>t.y2))}:null}function Wb(e){return qb(If(e).map(t=>t.box))}const Nf=(e,t)=>(e instanceof Map?e.get(t):e?.[t])??null;function I$(e,t,n){const r=Rt(e),i=[];for(const o of r.nodes){const s=t[o.id];if(s)for(const{kind:a,box:u}of If(Rr(o,r.checked_address,Nf(n,o.id))))i.push({id:o.id,kind:a,x1:s.x+u.x1,y1:s.y+u.y1,x2:s.x+u.x2,y2:s.y+u.y2})}return i}function N$(e,t,n){return qb(I$(e,t,n))}function z$(e,t){return e.x1<t.x2&&t.x1<e.x2&&e.y1<t.y2&&t.y1<e.y2}function R$(e){let t=0;for(const n of String(e))t=(t<<5)-t+n.charCodeAt(0)|0;return Math.abs(t)}function L$(e,t,n){const r=Rt(e),i={x:t/2,y:n/2},o={},s=za(r),a=Af(r,s);if(!a)return o;o[a.id]=i;const u=new Map;for(const c of s){if(c.id===a.id)continue;let l=c.direction==="IN"?-1:1;c.direction==="MIXED"&&(l=R$(c.id)%2?-1:1);const d=Math.min(2,Math.max(1,Number(c.hop)||1)),f=`${l}:${d}`;u.has(f)||u.set(f,[]),u.get(f).push(c)}for(const[c,l]of u){const[d,f]=c.split(":"),h=Number(d),p=Number(f),m=i.x+h*(p===1?t*.23:t*.43);Object.assign(o,P$(l,m,i.y,r.checked_address))}return o}function P$(e,t,n,r,i=24){const o=e.map((u,c)=>({node:u,x:t,y:n+(c-(e.length-1)/2)*64})),s=u=>Wb(Rr(u,r)),a=(u,c)=>Math.max(Oh(u,r)+Oh(c,r)+20,s(u).y2-s(c).y1+2);for(let u=0;u<i;u++){for(let d=1;d<o.length;d++){const f=o[d-1],h=o[d];!f||!h||(h.y=Math.max(h.y,f.y+a(f.node,h.node)))}for(let d=o.length-2;d>=0;d--){const f=o[d],h=o[d+1];!f||!h||(f.y=Math.min(f.y,h.y-a(f.node,h.node)))}const c=o[0],l=o[o.length-1];if(c&&l){const d=(c.y+l.y)/2,f=n-d;for(const h of o)h.y+=f}}return Object.fromEntries(o.map(u=>[u.node.id,{x:u.x,y:u.y}]))}function D$(e,t,n){const r=Rt(e),i={x:t/2,y:n/2},o={},s=za(r),a=Af(r,s);if(!a)return o;o[a.id]=i;const u=s.filter(c=>c.id!==a.id);return u.forEach((c,l)=>{const d=-Math.PI/2+l*Math.PI*2/Math.max(1,u.length),f=c.hop>=2?Math.min(t,n)*.39:Math.min(t,n)*.27;o[c.id]={x:i.x+Math.cos(d)*f,y:i.y+Math.sin(d)*f}}),o}function O$(e,t,n,r){const i=Rt(e),o=za(i).filter(u=>t[u.id]),s=o.find(u=>u.address===i.checked_address);for(let u=0;u<o.length;u++)for(let c=u+1;c<o.length;c++){const l=o[u],d=o[c],f=l&&t[l.id],h=d&&t[d.id];if(!f||!h)continue;const p=h.x-f.x||.1,m=h.y-f.y||.1,g=Math.max(1,Math.hypot(p,m)),w=Math.max(0,88-g)*.012;f.x-=p/g*w,f.y-=m/g*w,h.x+=p/g*w,h.y+=m/g*w}const a=new Map(o.map(u=>[u.address,u]));for(const u of i.edges){const c=a.get(u.from),l=a.get(u.to);if(!c||!l)continue;const d=t[c.id],f=t[l.id];if(!d||!f)continue;const h=f.x-d.x,p=f.y-d.y,m=Math.max(1,Math.hypot(h,p)),g=(m-155)*.003;c!==s&&(d.x+=h/m*g,d.y+=p/m*g),l!==s&&(f.x-=h/m*g,f.y-=p/m*g)}return s&&(t[s.id]={x:n/2,y:r/2}),t}function M$(e,t,n,r=m$){const i=Rt(e),o=D$(i,t,n);for(let s=0;s<r;s++)O$(i,o,t,n);return o}function Ao(e,t,n,r){return t==="tree"?L$(e,n,r):M$(e,n,r)}function F$(e,t,n,r,i={}){const o=Rt(e),s=t[n],a={...t};if(!s)return a;const u=i.spacing??80,c=i.gap??48,l=Math.max(1,i.perColumn??6),d=o.nodes.find(y=>y.id===n),f=new Map(o.nodes.map(y=>[y.id,y])),h=y=>Wb(Rr(y,o.checked_address,Nf(i.notes,y.id))),p=o.nodes.flatMap(y=>{const b=t[y.id];if(!b)return[];const v=h(y);return[{x1:b.x+v.x1,x2:b.x+v.x2}]});let m=p.length?Math.min(...p.map(y=>y.x1)):s.x,g=p.length?Math.max(...p.map(y=>y.x2)):s.x;const w={left:[],right:[]};for(const y of[...r].sort()){const b=f.get(y);if(!b||a[y])continue;const v=o.edges.some(_=>_.from===b.address&&_.to===d?.address),S=o.edges.some(_=>_.to===b.address&&_.from===d?.address);w[v&&!S?"left":"right"].push(b)}for(const y of["left","right"]){const b=w[y];for(let v=0;v<b.length;v+=l){const S=b.slice(v,v+l),_=S.map(h),$=Math.max(..._.map(O=>Math.max(-O.x1,O.x2))),R=Math.max(u,Math.max(..._.map(O=>O.y2))-Math.min(..._.map(O=>O.y1))+6),P=y==="left"?m-c-$:g+c+$;S.forEach((O,Y)=>{a[O.id]={x:P,y:s.y+(Y-(S.length-1)/2)*R}}),y==="left"?m=P-$:g=P+$}}return a}function U$(e,t,n,r=oi){const i=Math.max(1,e.x2-e.x1),o=Math.max(1,e.y2-e.y1),s=zu(Math.min((t-r*2)/i,(n-r*2)/o));return{x:t/2-(e.x1+e.x2)/2*s,y:n/2-(e.y1+e.y2)/2*s,scale:s}}function Mh(e,t,n,r=oi){return Math.min((t-r*2)/Math.max(1,e.x2-e.x1),(n-r*2)/Math.max(1,e.y2-e.y1))}function G$(e,t,n,r,i=4){const o=t.x-e.x,s=t.y-e.y,a=Math.hypot(o,s),u=n+i,c=r+i;if(!Number.isFinite(a)||a<=0||u+c>=a)return null;const l=o/a,d=s/a;return{x1:e.x+l*u,y1:e.y+d*u,x2:t.x-l*c,y2:t.y-d*c}}function yn(e){return Math.round(e*100)/100}function qa(e,t,n,r,i){const o=s=>`${yn(s.x)},${yn(s.y)}`;return{kind:e,start:t,end:i,controls:[n,r],d:`M${o(t)} C${o(n)} ${o(r)} ${o(i)}`}}function Ru(e,t,n,r,i=4){const o=t.x-e.x,s=t.y-e.y,a=Math.hypot(o,s),u=n+r+i*2;if(!Number.isFinite(a)||a<=u)return null;if(o>=u){const f={x:e.x+n+i,y:e.y},h={x:t.x-r-i,y:t.y},p=h.x-f.x,m=Math.max(p*.45,Math.min(65,p));return qa("forward",f,{x:f.x+m,y:f.y},{x:h.x-m,y:h.y},h)}if(o<=-u){const f={x:e.x,y:e.y-n-i},h={x:t.x,y:t.y-r-i},p=Math.max(100,Math.abs(o)*.2);return qa("backward",f,{x:f.x+85,y:f.y-p},{x:h.x+85,y:h.y-p},h)}if(Math.abs(s)>u){const f=s>0?1:-1,h={x:e.x,y:e.y+f*(n+i)},p={x:t.x,y:t.y-f*(r+i)},m=Math.abs(p.y-h.y),g=Math.max(m*.45,Math.min(40,m));return qa("vertical",h,{x:h.x,y:h.y+f*g},{x:p.x,y:p.y-f*g},p)}const c=G$(e,t,n,r,i),l={x:c.x1,y:c.y1},d={x:c.x2,y:c.y2};return{kind:"straight",start:l,end:d,controls:null,d:`M${yn(l.x)},${yn(l.y)} L${yn(d.x)},${yn(d.y)}`}}const j$=6,Wa=j$+3,qt=14,Fh=10,Z$=3,Uh=6;function B$(e,t,n){const r=Rt(e),i=[];for(const o of r.nodes){const s=t[o.id];if(s)for(const{kind:a,box:u}of If(Rr(o,r.checked_address,Nf(n,o.id))))a==="circle"?i.push({id:o.id,kind:"circle",x:s.x,y:s.y,r:u.x2}):i.push({id:o.id,kind:"box",x1:s.x+u.x1,y1:s.y+u.y1,x2:s.x+u.x2,y2:s.y+u.y2})}return i}function V$(e,t){if(t.kind==="circle")return Math.hypot(e.x-t.x,e.y-t.y)-t.r;const n=Math.max(t.x1-e.x,0,e.x-t.x2),r=Math.max(t.y1-e.y,0,e.y-t.y2);return n||r?Math.hypot(n,r):-Math.min(e.x-t.x1,t.x2-e.x,e.y-t.y1,t.y2-e.y)}function H$(e,t){return e.kind==="circle"?{x1:e.x-e.r-t,y1:e.y-e.r-t,x2:e.x+e.r+t,y2:e.y+e.r+t}:{x1:e.x1-t,y1:e.y1-t,x2:e.x2+t,y2:e.y2+t}}function q$(e,t){const n=1-t;return{x:n*n*n*e[0].x+3*n*n*t*e[1].x+3*n*t*t*e[2].x+t*t*t*e[3].x,y:n*n*n*e[0].y+3*n*n*t*e[1].y+3*n*t*t*e[2].y+t*t*t*e[3].y}}function W$(e){return e.controls?[{kind:"C",points:[e.start,e.controls[0],e.controls[1],e.end]}]:[{kind:"L",points:[e.start,e.end]}]}function Kb(e){let t=0,n;for(const r of e)n&&(t+=Math.hypot(r.x-n.x,r.y-n.y)),n=r;return t}function K$(e,t){const n=[];for(const r of e){const i=Math.max(1,Math.ceil(Kb(r.points)/t));for(let o=0;o<=i;o++){const s=o/i;if(r.kind==="L"){const[a,u]=r.points;n.push({x:a.x+(u.x-a.x)*s,y:a.y+(u.y-a.y)*s})}else n.push(q$(r.points,s))}}return n}function Gh(e,t,n,r){const i=e.flatMap(a=>a.points),o={x1:Math.min(...i.map(a=>a.x)),y1:Math.min(...i.map(a=>a.y)),x2:Math.max(...i.map(a=>a.x)),y2:Math.max(...i.map(a=>a.y))},s=[];if(n.forEach((a,u)=>{a.x1<=o.x2&&o.x1<=a.x2&&a.y1<=o.y2&&o.y1<=a.y2&&s.push(u)}),!s.length)return!0;for(const a of K$(e,Z$))for(const u of s){const c=n[u],l=t[u];if(!(!c||!l)&&!(a.x<c.x1||a.x>c.x2||a.y<c.y1||a.y>c.y2)&&V$(a,l)<r)return!1}return!0}function J$(e){const t=e[0],n=e[e.length-1];if(!t||!n)return[];const r=[];for(let s=1;s<e.length;s++)r.push(Kb(e.slice(s-1,s+1)));const i=[];let o=t;for(let s=1;s<e.length-1;s++){const a=e[s-1],u=e[s],c=e[s+1],l=r[s-1],d=r[s];if(!a||!u||!c||l===void 0||d===void 0)continue;const f=l/(s-1===0?1:2),h=d/(s===r.length-1?1:2),p=Math.min(qt,f,h),m={x:(u.x-a.x)/l,y:(u.y-a.y)/l},g={x:(c.x-u.x)/d,y:(c.y-u.y)/d},w={x:u.x-m.x*p,y:u.y-m.y*p},y={x:u.x+g.x*p,y:u.y+g.y*p};i.push({kind:"L",points:[o,w]}),i.push({kind:"C",points:[w,{x:w.x+m.x*p*.55,y:w.y+m.y*p*.55},{x:y.x-g.x*p*.55,y:y.y-g.y*p*.55},y]}),o=y}return i.push({kind:"L",points:[o,n]}),i.filter(s=>s.kind==="C"||Math.hypot(s.points[1].x-s.points[0].x,s.points[1].y-s.points[0].y)>.01)}function Y$(e){const t=i=>`${yn(i.x)},${yn(i.y)}`,n=e[0];if(!n)return"";let r=`M${t(n.points[0])}`;for(const i of e)r+=i.kind==="L"?` L${t(i.points[1])}`:` C${t(i.points[1])} ${t(i.points[2])} ${t(i.points[3])}`;return r}function jh(e,t,n,r,i){const o=Math.min(e.y,n)-qt,s=Math.max(e.y,n)+qt,a=d=>(d-e.x)*t;let u=1/0;for(const d of i)if(d.y1<e.y&&e.y<d.y2){const f=t===1?d.x1:d.x2,h=t===1?d.x2:d.x1;a(h)>0&&(u=Math.min(u,Math.max(0,a(f))))}const c=i.filter(d=>d.y1<s&&o<d.y2).map(d=>[a(t===1?d.x1:d.x2),a(t===1?d.x2:d.x1)]).filter(([,d])=>d>r).sort((d,f)=>d[0]-f[0]);let l=r;for(const[d,f]of[...c,[1/0,1/0]]){if(d>l+1){const h=Math.min(d,u);if(h<=l+1)return null;const p=Number.isFinite(h)&&h-l<80?(l+h)/2:l+40;return e.x+t*p}if(l=Math.max(l,f),l>=u)return null}return null}function X$(e){const t=[];for(const n of e){const r=t[t.length-1];r&&Math.abs(r.x-n.x)<.01&&Math.abs(r.y-n.y)<.01||t.push(n)}return t.filter((n,r)=>{if(r===0||r===t.length-1)return!0;const i=t[r-1],o=t[r+1];return!i||!o?!0:!(Math.abs(i.x-n.x)<.01&&Math.abs(o.x-n.x)<.01||Math.abs(i.y-n.y)<.01&&Math.abs(o.y-n.y)<.01)})}const Q$=120;function eT(e,t,n,r,i,o=4){const s=Ru(e,t,n,r,o);if(!s||!i.length)return s;const a=i.map(f=>H$(f,Wa));if(Gh(W$(s),i,a,Wa))return s;const u=new Set([e.y,t.y]),c=f=>Math.abs(f-e.y)<Uh?e.y:Math.abs(f-t.y)<Uh?t.y:f;for(const f of a)u.add(c(Math.round(f.y1)-qt-1)),u.add(c(Math.round(f.y2)+qt+1));const l=t.x>=e.x?1:-1,d=[[l,l],[l,-l],[-l,l],[-l,-l]];for(const[f,h]of d){const p={x:e.x+f*(n+o),y:e.y},m={x:t.x-h*(r+o),y:t.y},g=[];for(const w of u){const y=Math.abs(w-p.y)<.01?p.x:jh(p,f,w,qt,a);if(y===null)continue;const b=Math.abs(w-m.y)<.01?m.x:jh(m,-h,w,qt+Fh,a);if(b===null||Math.abs(w-m.y)<.01&&(m.x-y)*h<qt+Fh||Math.abs(w-p.y)<.01&&(b-p.x)*f<qt)continue;const v=X$([p,{x:y,y:p.y},{x:y,y:w},{x:b,y:w},{x:b,y:m.y},m]);if(!tT(v,a))continue;let S=(v.length-2)*qt,_;for(const $ of v)_&&(S+=Math.abs($.x-_.x)+Math.abs($.y-_.y)),_=$;g.push({points:v,length:S})}g.sort((w,y)=>{const b=w.points[2]?.y,v=y.points[2]?.y;return w.length-y.length||(b===void 0||v===void 0?0:b-v)});for(const w of g){const y=J$(w.points);if(!Gh(y,i,a,Wa))continue;const b=w.points,v=b[0],S=b[b.length-1];if(!v||!S)continue;const _={x1:Math.min(...b.map($=>$.x)),y1:Math.min(...b.map($=>$.y)),x2:Math.max(...b.map($=>$.x)),y2:Math.max(...b.map($=>$.y))};return{kind:"routed",start:v,end:S,controls:null,d:Y$(y),bounds:_}}}return s}function tT(e,t){let n;for(const r of e){if(n){const i={x1:Math.min(n.x,r.x),y1:Math.min(n.y,r.y),x2:Math.max(n.x,r.x),y2:Math.max(n.y,r.y)};for(const o of t)if(z$(i,o))return!1}n=r}return!0}function Jb(e,t){if(!t)return Wt.rest;const n=qe(t);return qe(e.from)===n||qe(e.to)===n?Wt.related:Wt.faded}function nT(){return{hit:{stroke:"transparent",width:16},line:{stroke:He("edge"),width:1.6},arrow:{fill:He("edge")}}}function rT(e,t,n){return e!=="gravity"&&e!=="tree"?null:{layout:e,id:t,pointerId:n}}function iT(e,t,n,r){return e!=="node"&&e!=="edge"&&e!=="canvas"||!Number.isFinite(r?.x)||!Number.isFinite(r?.y)?null:{kind:e,id:t??null,pointerId:n,start:{...r},moved:!1}}function oT(e,t,n,r=h$){if(!e||e.pointerId!==t)return e;const i=Math.hypot(n.x-e.start.x,n.y-e.start.y);return{...e,moved:e.moved||i>r}}function sT(e,t,n=!1){return!e||e.pointerId!==t||n||e.moved?null:e.kind==="node"?{type:"select-node",id:e.id}:e.kind==="edge"?{type:"select-edge",id:e.id}:e.kind==="canvas"?{type:"select-checked"}:null}function Zh(e){return e==="Enter"||e===" "}function aT(e,t){return{x:(e.x-t.x)/t.scale,y:(e.y-t.y)/t.scale}}function uT(e,t,n,r,i){return!t||t.pointerId!==n||!Object.hasOwn(e,t.id)?!1:(e[t.id]=aT(r,i),!0)}function cT(e,t){return e?.pointerId===t?null:e}function lT(e,t,n,r){const i=Math.min(t.width/n,t.height/r),o=t.left+(t.width-n*i)/2,s=t.top+(t.height-r*i)/2;return{x:(e.x-o)/i,y:(e.y-s)/i}}function dT(e,t,n){const r=new Map;let i=null,o=null,s=null;function a(h){if(h===e)return{kind:"canvas",id:null};const p=h;if(p?.closest?.("[data-canvas]"))return{kind:"canvas",id:null};const m=p?.closest?.("[data-node-id]");if(m)return{kind:"node",id:m.dataset.nodeId??null};const g=p?.closest?.("[data-edge-id]");return g?{kind:"edge",id:g.dataset.edgeId??null}:null}function u(h){if(h.pointerType==="mouse"&&h.button!==0)return;const p=n?n(h):a(h.target);if(!p)return;const m=t.point(h);if(r.set(h.pointerId,m),e.setPointerCapture(h.pointerId),p.kind!=="canvas"&&(h.preventDefault(),h.stopPropagation()),r.size===1){i=iT(p.kind,p.id,h.pointerId,{x:h.clientX,y:h.clientY}),o=p.kind==="canvas"?{point:m,transform:{...t.transform()}}:null;return}if(i&&(i={...i,moved:!0}),o=null,r.size===2){const[g,w]=[...r.values()];g&&w&&(s={distance:Math.hypot(w.x-g.x,w.y-g.y),scale:t.transform().scale},t.startPinch())}}function c(h){if(!r.has(h.pointerId))return;const p=t.point(h);if(r.set(h.pointerId,p),s){const[m,g]=[...r.values()];m&&g&&t.pinch(s,[m,g],h);return}if(i?.pointerId===h.pointerId){if(i=oT(i,h.pointerId,{x:h.clientX,y:h.clientY}),!i?.moved)return;if(i.kind==="node"){t.drag(i.id??"",h.pointerId,p,h);return}if(i.kind==="edge")return}o&&t.pan(o,p,h)}function l(h,p=!1){const m=sT(i,h.pointerId,p);m&&t.select(m),i?.pointerId===h.pointerId&&(i=null),t.endDrag(h.pointerId),r.delete(h.pointerId),r.size||(i=null,o=null,s=null),e.hasPointerCapture(h.pointerId)&&e.releasePointerCapture(h.pointerId)}const d=h=>l(h),f=h=>l(h,!0);return e.addEventListener("pointerdown",u,!0),e.addEventListener("pointermove",c),e.addEventListener("pointerup",d),e.addEventListener("pointercancel",f),()=>{e.removeEventListener("pointerdown",u,!0),e.removeEventListener("pointermove",c),e.removeEventListener("pointerup",d),e.removeEventListener("pointercancel",f)}}function fT(e,t,n){let r=!1;function i(o,s=!1){r=o,e.classList.toggle("graph-panel--expanded",o),n.classList.toggle("graph-expanded",o),t.classList.toggle("expand-control--expanded",o),t.setAttribute("aria-expanded",String(o)),t.setAttribute("aria-label",o?"Close expanded graph":"Expand graph"),t.setAttribute("title",o?"Close expanded graph":"Expand graph"),o?(e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true")):(e.removeAttribute("role"),e.removeAttribute("aria-modal"),s&&t.focus())}return{open(){i(!0)},close(o={}){i(!1,o.restoreFocus!==!1)},toggle(){i(!r,r)},isOpen(){return r}}}function Yb(e){const t=String(e??"").toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):"Unknown"}function Lu(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e)}function Pu(e){return e==null?"Unavailable":new Intl.NumberFormat("en-US").format(e)}function vn(e){if(typeof e!="number"||!Number.isFinite(e)||e<=0)return"Unavailable";const t=new Date(e<1e11?e*1e3:e);return!Number.isFinite(t.getTime())||t.getUTCFullYear()<2009||t.getUTCFullYear()>2100?"Unavailable":new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"}).format(t)}function Xb(e,t=Date.now()){if(typeof e!="number"||!Number.isFinite(e)||e<=0)return"Unavailable";const n=Math.max(0,(t-(e<1e11?e*1e3:e))/1e3),r=[[31536e3,"year"],[2592e3,"month"],[86400,"day"],[3600,"hour"],[60,"minute"]];for(const[i,o]of r){const s=Math.floor(n/i);if(s>=1)return`${s} ${o}${s===1?"":"s"} ago`}return"just now"}function Du(e){if(e.amount_usd_sum==null||e.price_coverage_ratio===0)return"Unavailable";const t=e.price_coverage_ratio;return Lu(e.amount_usd_sum)+(t!=null&&t>0&&t<1?" (priced portion)":"")}function hT(e){const t=[["Incoming amount (USD)",e.total_in_usd==null?"Unavailable":Lu(e.total_in_usd)],["Outgoing amount (USD)",e.total_out_usd==null?"Unavailable":Lu(e.total_out_usd)]];return e.role&&po.includes(e.role)?[["Role",Hb[e.role]||"Other"],...t,["Senders",Pu(e.degree_in)],["Receivers",Pu(e.degree_out)],["Labels",wn(e).join(", ")||"No labels"]]:[["Address risk",e.risk_score==null?"Not scored":`${Math.round(e.risk_score*100)} · ${Yb(e.risk_level)}`],["Confidence","Unavailable"],...t,["First activity (UTC)",vn(e.first_activity_timestamp)],["Last activity (UTC)",vn(e.last_activity_timestamp)],["Labels",wn(e).join(", ")||"No labels"]]}function pT(e,t){if(e.source==="flows")return[["From",e.from||"Unavailable"],["To",e.to||"Unavailable"],["Value (USD)",Du(e)],["Transfers",Pu(e.tx_count)],["First seen (UTC)",vn(e.first_seen_timestamp)],["Last seen (UTC)",vn(e.last_seen_timestamp)],["Since last seen",Xb(e.last_seen_timestamp,t)],...e.link_kind?[["Link kind",e.link_kind]]:[]];const n=e.price_coverage_ratio;return[["From",e.from||"Unavailable"],["To",e.to||"Unavailable"],["Value (USD)",Du(e)],["Price coverage",n==null?"Unavailable":new Intl.NumberFormat("en-GB",{style:"percent",maximumFractionDigits:1}).format(n)],["Transfers",e.tx_count==null?"Unavailable":String(e.tx_count)],["First seen (UTC)",vn(e.first_seen_timestamp)],["Last seen (UTC)",vn(e.last_seen_timestamp)],["First transaction",e.first_tx_id||"Unavailable"],["Last transaction",e.last_tx_id||"Unavailable"]]}function Qb(e){return typeof e!="string"||!/^0x[a-fA-F0-9]{64}$/.test(e)?null:`https://robinhoodchain.blockscout.com/tx/${e.toLowerCase()}`}function Ou(e){const t=mo(e);if(e.role)return`${e.address}. ${t||"Other"}.${wn(e).length?` Labels: ${wn(e).join(", ")}.`:""}`;const n=e.risk_score==null?"Not scored":`${Math.round(e.risk_score*100)} ${Yb(e.risk_level)} risk`,r=wn(e).join(", ");return`${e.address}. ${n}.${r?` Labels: ${r}.`:""}`}function Mu(e,t){const n=`${e.from} to ${e.to}. Aggregate value ${Du(e)}. ${e.tx_count??0} ${e.tx_count===1?"transfer":"transfers"}.`;return e.source==="flows"&&e.last_seen_timestamp?`${n} Last seen ${Xb(e.last_seen_timestamp,t)}.`:n}function mT(e,t){return Rt(e).nodes.map(n=>{const r={id:n.address,label:wn(n).join(", ")||mo(n)};n.role&&(r.role=n.role);const i=t?.(n.address);return i&&(r.href=i),r})}function gT(e,t=22){return e.length>t?`${e.slice(0,t-1)}…`:e}function yT(e,t,n={}){const r=e.ownerDocument;let i=Rt(t),o=n.layout??(Tf(t)?"tree":"gravity");const s={width:e.clientWidth||n.width||820,height:e.clientHeight||n.height||430};let a=Ao(i,o,s.width,s.height);const u=new Map,c=new Map;let l={x:0,y:0,scale:1},d=null,f=null,h=null;const p=n.now??(()=>Date.now()),m=C=>n.nodeStyle?.(C).stroke??C$(C);e.classList.add("cia-graph-engine"),e.closest(".cia-graph-surface")||e.classList.add("cia-graph-surface");const g={model:()=>i,positions:()=>a,transform:()=>l,notes:()=>u,flags:()=>c,selected:()=>d,highlighted:()=>f,colorOf:m,now:p,dimensions:()=>s},w={selectNode:(C,z)=>G(C,z),selectEdge:(C,z)=>B(C,z),showTooltip:(C,z)=>W(C,z),hideTooltip:()=>xe(),lost:()=>ue()};function y(C){const z=C==="webgl"?Lh("webgl"):null;if(z)try{return z(e,g,w,{label:n.label})}catch{}return Ph(e,g,w,{label:n.label})}const b=n.renderer??(Lh("webgl")&&a$(r)?"webgl":"svg");let v=y(b);e.dataset.renderer=v.kind;const S=()=>{const C=N$(i,a,u);if(!C)return null;const z=v.linkBounds();return z&&(C.x1=Math.min(C.x1,z.x1),C.y1=Math.min(C.y1,z.y1),C.x2=Math.max(C.x2,z.x2),C.y2=Math.max(C.y2,z.y2)),C},_=()=>{const C=S();return C?U$(C,s.width,s.height,oi):{x:0,y:0,scale:1}};l=_();const $=r.createElement("div");$.className="graph-tooltip cia-graph-tooltip",$.hidden=!0,$.setAttribute("role","tooltip"),e.append($);let R=0,P=!1,O=!1;function Y(){if(R){P=!0;return}v.build()}function he(){if(R){O=!0;return}l=_(),Se()}function Se(){v.camera()}function $e(C="program"){const z=mT(i,n.href),te=d?.kind==="node"?i.nodes.find(ce=>ce.id===d.id)??null:null,ve=d?.kind==="edge"?i.edges.find(ce=>ce.id===d.id)??null:null;if(te){const ce=i.edges.filter(ut=>ut.from===te.address||ut.to===te.address);return{kind:"node",id:te.id,selectedId:te.address,nodes:z,title:"Selected address",identity:te.address,values:hT(te),related:ce,node:te,edge:null,source:C}}return ve?{kind:"edge",id:ve.id,selectedId:null,nodes:z,title:"Selected aggregate flow",identity:`${ve.from} → ${ve.to}`,values:pT(ve,p()),related:[ve],node:null,edge:ve,source:C}:{kind:null,id:null,selectedId:null,nodes:z,title:"Nothing selected",identity:"",values:[],related:[],node:null,edge:null,source:C}}function Fe(C){const z=$e(C);M(z),n.onSelect?.(z)}function M(C){const z=n.selectionRoot,te=z?.querySelector("[data-selection-title]"),ve=z?.querySelector("[data-selection-identity]"),ce=z?.querySelector("[data-selection-meta]");!te||!ve||!ce||(te.textContent=C.title,ve.textContent=C.identity,ce.replaceChildren(...C.values.map(([ut,At])=>{const Ut=r.createElement("div");Ut.className="meta-item",At!=="Unavailable"&&(["From","To","First transaction","Last transaction"].includes(ut)&&Ut.classList.add("meta-item--identity"),ut==="Incoming amount (USD)"&&Ut.classList.add("meta-item--incoming"),ut==="Outgoing amount (USD)"&&Ut.classList.add("meta-item--outgoing")),["From","To","First transaction","Last transaction","Labels"].includes(ut)&&Ut.classList.add("meta-item--wide");const Or=r.createElement("span");Or.textContent=ut;const $n=r.createElement("strong"),fn=["First transaction","Last transaction"].includes(ut)?Qb(At):null;if(fn&&n.openLink){const D=n.openLink,ie=r.createElement("button");ie.type="button",ie.className="cia-graph-explorer-link",ie.dataset.explorer=fn,ie.textContent=At,ie.setAttribute("aria-label",`${ut}: ${At} (opens the explorer)`),ie.addEventListener("click",()=>D(fn)),$n.append(ie)}else if(fn){const D=r.createElement("a");D.href=fn,D.target="_blank",D.rel="noopener noreferrer",D.textContent=At,D.setAttribute("aria-label",`${ut}: ${At} (opens in new tab)`),$n.append(D)}else $n.textContent=At;return Ut.append(Or,$n),Ut})))}function G(C,z="program"){d=C?{kind:"node",id:C}:null,v.selection(),Fe(z)}function B(C,z="program"){d=C?{kind:"edge",id:C}:null,v.selection(),Fe(z)}function ee(C){if(C==null)return G(null);const z=Ln(i,C);if(z)return G(z);if(i.edges.some(te=>te.id===C))return B(C)}function X(){l=_(),Se()}function V(C,z={x:s.width/2,y:s.height/2}){const te=zu(l.scale*(1+C)),ve=te/l.scale;l={x:z.x-(z.x-l.x)*ve,y:z.y-(z.y-l.y)*ve,scale:te},Se()}function q(C){o=C,n.controls?.querySelectorAll("[data-layout]").forEach(z=>{z.classList.toggle("active",z.dataset.layout===C),z.setAttribute("aria-pressed",String(z.dataset.layout===C))}),n.onLayoutChange?.(C),a=Ao(i,o,s.width,s.height),v.geometry(),X()}function W(C,z){$.textContent=z,$.hidden=!1;const te=e.getBoundingClientRect();$.style.left=`${Math.min(te.width-330,Math.max(8,C.clientX-te.left+12))}px`,$.style.top=`${Math.max(8,C.clientY-te.top+12)}px`}function xe(){$.hidden=!0}function Ie(C){return lT({x:C.clientX,y:C.clientY},v.surface.getBoundingClientRect(),s.width,s.height)}const je={point:Ie,transform:()=>l,select(C){C.type==="select-node"?G(C.id,"pointer"):C.type==="select-edge"?B(C.id,"pointer"):G(Af(i)?.id??null,"canvas")},drag(C,z,te){!h&&(h=rT(o,C,z),!h)||uT(a,h,z,te,l)&&(st=!0,v.moveNode(h.id))},endDrag(C){const z=h?.pointerId===C&&st;h=cT(h,C),z&&(st=!1,v.endMove())},pan(C,z){l={x:C.transform.x+z.x-C.point.x,y:C.transform.y+z.y-C.point.y,scale:l.scale},Se()},startPinch(){h=null},pinch(C,[z,te]){const ve=Math.hypot(te.x-z.x,te.y-z.y),ce=zu(C.scale*ve/Math.max(1,C.distance));V(ce/l.scale-1,{x:(z.x+te.x)/2,y:(z.y+te.y)/2})}};let st=!1;const et=C=>{C.preventDefault(),V(C.deltaY>0?-.12:.12,Ie(C))},L={ArrowLeft:[60,0],ArrowRight:[-60,0],ArrowUp:[0,60],ArrowDown:[0,-60]},F=C=>{if(C.target!==v.surface)return;const z=L[C.key];z?(C.preventDefault(),l={...l,x:l.x+z[0],y:l.y+z[1]},Se()):C.key==="+"||C.key==="="?V(.18):C.key==="-"?V(-.18):C.key==="0"&&X()};let H=()=>{};function J(){const C=v.surface,z=te=>v.pick(Ie(te));H=dT(C,je,v.kind==="svg"?void 0:z),C.addEventListener("wheel",et,{passive:!1}),C.addEventListener("keydown",F)}function me(){H(),v.surface.removeEventListener("wheel",et),v.surface.removeEventListener("keydown",F)}J();function ue(){v.kind!=="svg"&&(me(),v.destroy(),v=Ph(e,g,w,{label:n.label}),e.dataset.renderer=v.kind,e.append($),J(),Y())}const we=n.controls?.querySelector("[data-expand]")??null,Ee=n.panel&&we?fT(n.panel,we,r.body):null,ae=()=>{Ee?.toggle(),n.onExpansionChange?.(Ee?.isOpen()??!1),requestAnimationFrame(X)},Q=n.panel??e,Ge=C=>{if(C.key==="Tab"&&Ee?.isOpen()&&n.panel){const z=Array.from(n.panel.querySelectorAll('button,a[href],[tabindex="0"],summary')).filter(ce=>ce.checkVisibility()),te=z[0],ve=z.at(-1);C.shiftKey&&r.activeElement===te?(C.preventDefault(),ve?.focus()):!C.shiftKey&&r.activeElement===ve&&(C.preventDefault(),te?.focus())}if(C.key==="Escape"){if(Ee?.isOpen()){Ee.close(),n.onExpansionChange?.(!1),requestAnimationFrame(X);return}G(null,"keyboard")}};Q.addEventListener("keydown",Ge);const at=[],Ze=(C,z)=>{C&&(C.addEventListener("click",z),at.push([C,z]))};n.controls?.querySelectorAll("[data-layout]").forEach(C=>Ze(C,()=>q(C.dataset.layout==="tree"?"tree":"gravity"))),Ze(n.controls?.querySelector("[data-zoom='in']"),()=>V(.18)),Ze(n.controls?.querySelector("[data-zoom='out']"),()=>V(-.18)),Ze(n.controls?.querySelector("[data-zoom='fit']"),X),Ee&&Ze(we,ae);const Be=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{const C=e.clientWidth,z=e.clientHeight;!C||!z||C===s.width&&z===s.height||(s.width=C,s.height=z,v.resize(C,z),X())});Be?.observe(e),Y(),n.selected&&ee(n.selected);const ht={update(C){const z=a;i=Rt(C);const te=i.nodes.every(ce=>z[ce.id])?{}:Ao(i,o,s.width,s.height);a=Object.fromEntries(i.nodes.map(ce=>[ce.id,z[ce.id]??te[ce.id]]).filter(([,ce])=>ce)),d&&!(d.kind==="node"?i.nodes.some(ce=>ce.id===d.id):i.edges.some(ce=>ce.id===d.id))&&(d=null),f&&!i.nodes.some(ce=>ce.id===f)&&(f=null);const ve=new Set(i.nodes.map(ce=>ce.id));for(const ce of[...c.keys()])ve.has(ce)||c.delete(ce);Y(),he()},merge(C,z){const te=x$(i,C,z);i=te.model;const ve=Ln(i,z??Rt(C).checked_address);return a=ve?F$(i,a,ve,te.added,{notes:u}):{...a,...Ao(i,o,s.width,s.height),...a},Y(),te.added.length&&he(),te.added},batch(C){R++;try{C()}finally{R--,!R&&P&&(P=!1,v.build()),!R&&O&&(O=!1,l=_(),Se())}},setTheme(C){C&&r.documentElement.setAttribute("data-theme",C),v.theme()},select:ee,destroy(){Be?.disconnect(),me(),Q.removeEventListener("keydown",Ge);for(const[C,z]of at)C.removeEventListener("click",z);Ee?.close({restoreFocus:!1}),v.destroy(),$.remove(),e.classList.remove("cia-graph-engine"),delete e.dataset.renderer,delete e.ciaGraph},fit:X,zoom:C=>V(C),setLayout:q,markNode(C,z){const te=Ln(i,C);te&&(z?u.set(te,z):u.delete(te),Y())},flagNode(C,z,te){const ve=Ln(i,C);if(!ve)return;const ce=c.get(ve)??new Set;te?ce.add(z):ce.delete(z),ce.size?c.set(ve,ce):c.delete(ve),R?P=!0:v.flag(ve,z,te)},positions:()=>structuredClone(a),model:()=>i,contentBounds:()=>S(),transform:()=>({...l}),highlight(C){f=C==null?null:Ln(i,C),v.selection()},renderer:()=>v.kind,clientPoint(C){const z=Ln(i,C),te=z?a[z]:null;if(!te)return null;const ve=v.surface.getBoundingClientRect(),ce=Math.min(ve.width/s.width,ve.height/s.height)||1,ut=ve.left+(ve.width-s.width*ce)/2,At=ve.top+(ve.height-s.height*ce)/2;return{x:ut+(te.x*l.scale+l.x)*ce,y:At+(te.y*l.scale+l.y)*ce}}};return Object.defineProperty(e,"ciaGraph",{value:ht,configurable:!0}),ht}const ew="chain-insights.flows.v1",tw="chain-insights.result.v1",nw=5e3,Bh=6,vT=3,rw=/^0x[0-9a-fA-F]{40}$/,bT=/^0x[0-9a-fA-F]{64}$/;function wT(e){return typeof e=="string"&&(rw.test(e)||bT.test(e))}function os(e){return typeof e=="string"&&rw.test(e)}function Fu(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function iw(e){const t=e?.facts?.query?.results;return Array.isArray(t)?t.filter(Fu):[]}function _T(e){const t=e?.facts;return typeof t?.subject?.network=="string"&&t.subject.network?t.subject.network:"robinhood"}function Kt(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&/^-?\d+(\.\d+)?([eE][-+]?\d+)?$/.test(e.trim())){const t=Number(e);return Number.isFinite(t)?t:null}return null}function zf(e){return e<1e11?e*1e3:e}const Uu=/^\d{4}-\d{2}-\d{2}$/,kT=Date.UTC(2009,0,1),ST=Date.UTC(2100,0,1);function Ka(e){return new Date(zf(e)).toISOString().slice(0,10)}function Vh(e){const t=Date.parse(`${e}T00:00:00Z`);return new Date(t-864e5).toISOString().slice(0,10)}function xT(e){return typeof e=="string"&&Uu.test(e)&&Number.isFinite(Date.parse(`${e}T00:00:00Z`))}const ET=new Set(["day","date"]);function Hh(e){return ET.has(e)||e.endsWith("_timestamp")}function $T(e){const t=[];for(const n of e)for(const r of Object.keys(n))t.includes(r)||t.push(r);return t}function TT(e){return Array.isArray(e)?e.some(os):os(e)}function CT(e){return e.some(t=>Object.values(t).some(TT))}function AT(e){return e.length>0&&e.every(t=>os(t.from_address)&&os(t.to_address))}function qh(e){if(typeof e=="string"){const r=e.trim();if(Uu.test(r)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/.test(r)){const i=Date.parse(Uu.test(r)?`${r}T00:00:00Z`:/(?:Z|[+-]\d{2}:?\d{2})$/.test(r)?r.replace(" ","T"):`${r.replace(" ","T")}Z`);return Number.isFinite(i)?i:null}}const t=Kt(e);if(t==null)return null;const n=zf(t);return n>=kT&&n<ST?n:null}function ow(e){if(e.length===0||CT(e))return null;const t=$T(e),r=t.filter(Hh).find(u=>e.some(c=>qh(c[u])!=null));if(!r)return null;const i=t.filter(u=>{if(Hh(u))return!1;const c=e.map(l=>l[u]).filter(l=>l!=null);return c.length>0&&c.every(l=>Kt(l)!=null)});if(i.length===0)return null;const o=e.map((u,c)=>({time:qh(u[r]),row:u,index:c})).filter(u=>u.time!=null).sort((u,c)=>u.time-c.time||u.index-c.index),s=i.slice(0,Bh);return new Set(o.filter(u=>s.some(c=>Kt(u.row[c])!=null)).map(u=>u.time)).size<vT?null:{xColumn:r,times:o.map(u=>u.time),daily:o.every(u=>u.time%864e5===0),series:s.map(u=>({column:u,values:o.map(c=>Kt(c.row[u]))})),omittedColumns:i.slice(Bh),skippedRows:e.length-o.length}}function IT(e){return AT(e)?"graph":ow(e)?"chart":"table"}const NT=[["sanctioned","sanctioned"],["scam","scam"],["victim","victim"],["pool","pool"],["exchange","exchange"]];function Wh(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim()!=="").map(t=>t.trim()):[]}function zT(e,t){if(t)return"exchange";const n=new Set(e.map(r=>r.replace(/\s+/g,"").toLowerCase()));for(const[r,i]of NT)if(n.has(r))return i;return"other"}const Kh=(e,t)=>e==null?t:t==null?e:e+t;function RT(e,t="robinhood"){const n=new Map;for(const d of e)for(const f of new Set([String(d.from_address).toLowerCase(),String(d.to_address).toLowerCase()]))n.set(f,(n.get(f)??0)+1);let r="",i=0;for(const[d,f]of n)f>i&&(r=d,i=f);const o=new Map,s=new Map,a=(d,f,h)=>{const p=o.get(d)??{address:d,labels:[],exchange:!1};for(const m of f)p.labels.some(g=>g.toLowerCase()===m.toLowerCase())||p.labels.push(m);p.exchange=p.exchange||h,o.set(d,p)};r&&o.set(r,{address:r,labels:[],exchange:!1});let u=0;for(const d of e){const f=String(d.from_address).toLowerCase(),h=String(d.to_address).toLowerCase(),p=[f,h].filter((b,v,S)=>!o.has(b)&&S.indexOf(b)===v).length;if(o.size+p>nw||(u++,a(f,Wh(d.from_labels),d.from_is_exchange===!0),a(h,Wh(d.to_labels),d.to_is_exchange===!0),f===h))continue;const m=`${f}->${h}`,g=s.get(m)??{from:f,to:h,usd:null,tx:null,first:null,last:null,kinds:[]};g.usd=Kh(g.usd,Kt(d.amount_usd_sum)),g.tx=Kh(g.tx,Kt(d.tx_count));const w=Kt(d.first_seen_timestamp),y=Kt(d.last_seen_timestamp);w!=null&&(g.first=g.first==null?w:Math.min(g.first,w)),y!=null&&(g.last=g.last==null?y:Math.max(g.last,y)),typeof d.link_kind=="string"&&d.link_kind&&!g.kinds.includes(d.link_kind)&&g.kinds.push(d.link_kind),s.set(m,g)}const c=[...o.values()].map(d=>({address:d.address,role:zT(d.labels,d.exchange),labels:d.labels})),l=[...s.values()].map(d=>({from:d.from,to:d.to,usd:d.usd,tx_count:d.tx,first_seen_ms:d.first,last_seen_ms:d.last,...d.kinds.length?{link_kind:d.kinds.join(", ")}:{}}));return{view:{schema:ew,network:t,center:r,nodes:c,edges:l,truncated:!1},rowsTotal:e.length,rowsDrawn:u,rowsLeftOut:e.length-u,addresses:o.size}}function LT(e){const t=e?.facts?.queries;return Array.isArray(t)?t.filter(Fu).map((n,r)=>({id:typeof n.id=="string"&&n.id?n.id:`Query ${r+1}`,ok:n.ok!==!1&&n.error==null,error:typeof n.error=="string"&&n.error?n.error:null,rows:Array.isArray(n.results)?n.results.filter(Fu):[],count:typeof n.count=="number"?n.count:null,truncated:n.truncated===!0,elapsedMs:typeof n.elapsed_ms=="number"?n.elapsed_ms:null})):[]}const Jh=200;function go(e){return(e?.content??[]).filter(t=>t?.type==="text"&&typeof t.text=="string").map(t=>t.text).join(`
109
+ `).trim()}function Mr(e){if(typeof e=="string")return e.trim()||null;if(!e||typeof e!="object"||Array.isArray(e))return null;const{code:t,message:n,detail:r,error:i}=e,o=[n,r,i].find(a=>typeof a=="string"&&a.trim()!=="")?.trim()??null,s=typeof t=="string"&&t.trim()?t.trim():null;return o?s&&!o.startsWith(s)?`${s}: ${o}`:o:s}function sw(e){if(!e)return null;const t=e.structuredContent,n=Mr(t?.error)??Mr(t?.facts?.error)??Mr(t?.facts?.query?.error);if(!e.isError||n)return n;const r=go(e);if(r.startsWith("{"))try{const i=JSON.parse(r),o=Mr(i?.error)??Mr(i);if(o)return o}catch{}return r||"The tool answered with an error."}const PT=new Set(["usage_status","subscription_status","meta_usage_status","meta_subscription_status"]);function aw(e){if(!e||sw(e)!=null)return"text";const t=e.structuredContent;if(t?.schema===ew)return"flows";if(t?.schema===tw){if(t.tool==="graph_query")return IT(iw(t));if(t.tool==="graph_query_batch")return Array.isArray(t.facts?.queries)&&t.facts.queries.length>0?"batch":"text";if(typeof t.tool=="string"&&PT.has(t.tool))return"balance"}return"text"}function I(e,t,n={},...r){const i=e.createElement(t);for(const[o,s]of Object.entries(n))s==null||s===!1||(o==="class"?i.className=String(s):o==="text"?i.textContent=String(s):i.setAttribute(o,s===!0?"":String(s)));for(const o of r)o==null||o===!1||i.append(typeof o=="string"?e.createTextNode(o):o);return i}function DT(e,t){const n=I(e,"code",{class:"cv-addr",title:t,"data-full":t,text:si(t)}),r=I(e,"button",{type:"button",class:"cv-copy","data-copy":t,"aria-label":`Copy ${t}`,title:"Copy the full value",text:"Copy"});return r.addEventListener("click",()=>{OT(e,t,n,r)}),I(e,"span",{class:"cv-addr-cell"},n,r)}async function OT(e,t,n,r){const i=e.defaultView?.navigator?.clipboard;try{if(i?.writeText)return await i.writeText(t),r&&(r.textContent="Copied"),"copied"}catch{}return n.textContent=t,n.classList.add("is-full"),e.getSelection?.()?.selectAllChildren(n),r&&(r.textContent="Selected"),"selected"}function MT(e,t){return/(timestamp|seen|_at|_ms|time)$/i.test(t)&&e>1e9?vn(e):/usd/i.test(t)?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e):new Intl.NumberFormat("en-US",{maximumFractionDigits:4}).format(e)}const FT=160,Yh=2e3;function UT(e,t=FT){const n=e.trim().split(/\r?\n/,1)[0]??"",r=n.search(/[.!?](?=\s|$)/),i=(r<0?n:n.slice(0,r+1)).trim();if(i.length<=t)return i;const o=i.slice(0,t-1),s=o.lastIndexOf(" ");return`${(s>t*.6?o.slice(0,s):o).trimEnd()}…`}function uw(e,t,n){const r=e.ownerDocument,i=n.full!=null&&n.full.length>Yh?`${n.full.slice(0,Yh-1)}…`:n.full,o=i!=null&&i!==t,s=I(r,"section",{class:`cia-graph-surface cv-notice cv-notice-${n.kind}`,"data-view":n.view,"data-notice":n.kind,role:n.kind==="refused"?"alert":"status",title:o?i:null},o?I(r,"details",{class:"cv-notice-more"},I(r,"summary",{class:"cv-notice-line",text:t}),I(r,"p",{class:"cv-notice-full",text:i})):I(r,"p",{class:"cv-notice-line",text:t}));return e.replaceChildren(s),s}function GT(e){const t=e?.facts?.query,n=Array.isArray(t?.results)?t.results.filter(o=>!!o&&typeof o=="object"&&!Array.isArray(o)):[],r=n.slice(0,Jh),i=[];for(const o of r)for(const s of Object.keys(o))i.includes(s)||i.push(s);return{columns:i,rows:r,total:n.length,truncated:n.length>Jh||t?.truncated===!0,elapsedMs:typeof t?.elapsed_ms=="number"?t.elapsed_ms:null}}function jT(e,t,n){return t==null?I(e,"span",{class:"cv-null","aria-label":"empty",text:"—"}):wT(t)?DT(e,t):typeof t=="number"?e.createTextNode(MT(t,n)):typeof t=="boolean"?e.createTextNode(t?"yes":"no"):Array.isArray(t)?e.createTextNode(t.map(r=>typeof r=="string"?r:JSON.stringify(r)).join(", ")):typeof t=="object"?e.createTextNode(JSON.stringify(t)):e.createTextNode(String(t))}function Xh(e,t,n={}){const r=e.ownerDocument,i=GT(t.structuredContent),o=i.rows.length;if(i.total===0)return uw(e,"No rows.",{kind:"empty",view:"table"}),i;const s=`${new Intl.NumberFormat("en-US").format(o)} ${o===1?"row":"rows"}${i.elapsedMs==null?"":` in ${i.elapsedMs} ms`}`,a=I(r,"table",{class:"cv-table"},I(r,"thead",{},I(r,"tr",{},...i.columns.map(u=>I(r,"th",{scope:"col",text:u})))),I(r,"tbody",{},...i.rows.map(u=>I(r,"tr",{},...i.columns.map(c=>I(r,"td",{},jT(r,u[c],c)))))));return e.replaceChildren(I(r,"section",{class:"cv-card cv-table-view","data-view":"table","aria-label":"Graph query result"},I(r,"header",{class:"cv-card-head"},I(r,"strong",{text:"Graph query result"}),I(r,"span",{class:"cv-muted",text:s}),n.toggle??null),i.truncated?I(r,"p",{class:"cv-note",role:"note","data-truncated":"",text:`Truncated: showing the first ${new Intl.NumberFormat("en-US").format(o)} of ${new Intl.NumberFormat("en-US").format(i.total)} rows. Narrow the query to see the rest.`}):null,i.columns.length?I(r,"div",{class:"cv-table-wrap"},a):null)),i}const Fr=(e,t=0)=>typeof e=="number"&&Number.isFinite(e)?e:t,Io=e=>typeof e=="string"&&e?e:null;function ZT(e){const t=e?.facts??{};if(typeof t.wallet=="string"&&t.wallet)return{kind:"wallet",wallet:t.wallet,tier:String(t.tier??"anonymous"),allowanceUsd:Fr(t.allowance_usd),consumedUsd:Fr(t.consumed_usd),windowEnd:Io(t.window_end)};const n=t.usage;if(n&&typeof n=="object"){const r="daily_units_limit"in n||"daily_units_used"in n,i=Io(n.access_mode);return{kind:"free",unit:r?"units":"seconds",used:Fr(r?n.daily_units_used:n.daily_seconds_used),limit:Fr(r?n.daily_units_limit:n.daily_seconds_limit),remaining:Fr(r?n.remaining_units:n.remaining_seconds),resetAt:Io(n.reset_at),identifierKind:Io(n.identifier_kind),accessMode:i,noLimit:!r&&i==="public_free"&&n.daily_seconds_limit===0}}return{kind:"unknown"}}const Qh=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}).format(e),No=(e,t)=>`${new Intl.NumberFormat("en-US").format(e)} ${t==="units"?e===1?"unit":"units":e===1?"second":"seconds"}`;function Ja(e){if(!e)return"No active window";const t=Date.parse(e);return Number.isFinite(t)?`${vn(t)} UTC`:e}function ep(e,t,n,r){const i=n>0?Math.min(1,t/n):0,o=I(e,"div",{class:"cv-meter",role:"meter","aria-label":r,"aria-valuemin":0,"aria-valuemax":n,"aria-valuenow":Math.min(t,n)},I(e,"span"));return o.firstElementChild.style.width=`${Math.round(i*100)}%`,o}function Ya(e,t){return I(e,"dl",{class:"cv-facts"},...t.flatMap(([n,r])=>[I(e,"dt",{text:n}),I(e,"dd",{text:r})]))}function BT(e,t){const n=e.ownerDocument,r=ZT(t.structuredContent);let i,o,s;return r.kind==="wallet"?(o="Wallet allowance",s=`${si(r.wallet)} · ${r.tier==="subscriber"?"Subscriber":"No active subscription"}`,i=[ep(n,r.consumedUsd,r.allowanceUsd,"Share of today's allowance used"),Ya(n,[["Daily allowance",Qh(r.allowanceUsd)],["Used today",Qh(r.consumedUsd)],["Window ends",Ja(r.windowEnd)]])]):r.kind==="free"?(o="Free tier",s=`No wallet · counted per ${r.identifierKind==="ip"||!r.identifierKind?"network address":r.identifierKind}`,i=r.noLimit?[I(n,"p",{class:"cv-balance-note","data-no-limit":"",text:"Free access, no daily limit"}),Ya(n,[["Daily allowance","No daily limit"],["Used today",No(r.used,r.unit)],["Window ends",Ja(r.resetAt)]])]:[ep(n,r.used,r.limit,"Share of today's free allowance used"),Ya(n,[["Daily allowance",No(r.limit,r.unit)],["Used today",No(r.used,r.unit)],["Left today",No(r.remaining,r.unit)],["Window ends",Ja(r.resetAt)]])]):(o="Usage",s="The server sent no allowance figures.",i=[I(n,"p",{class:"cv-muted",text:go(t)||"Nothing to show."})]),e.replaceChildren(I(n,"section",{class:"cv-card cv-balance-view","data-view":"balance","data-balance":r.kind,"aria-label":o},I(n,"header",{class:"cv-card-head"},I(n,"strong",{text:o}),I(n,"span",{class:"cv-muted",text:s})),...i)),r}function Ra(e,t,n="No drawing for this answer."){const r=e.ownerDocument,i=sw(t);if(i!=null){uw(e,UT(i),{kind:"refused",view:"text",full:i});return}const o=go(t);e.replaceChildren(I(r,"section",{class:"cv-card cv-text-view","data-view":"text"},I(r,"p",{text:n}),o?I(r,"p",{class:"cv-muted cv-text-body",text:o.length>600?`${o.slice(0,599)}…`:o}):null))}function cw(e,t="Loading the Chain Insights view"){const n=e.ownerDocument;e.replaceChildren(I(n,"section",{class:"cv-card cv-skeleton","data-view":"loading","aria-busy":"true","aria-label":t},I(n,"span",{class:"cv-sr",text:t}),I(n,"div",{class:"cv-skel-line cv-skel-title"}),I(n,"div",{class:"cv-skel-line cv-skel-sub"}),I(n,"div",{class:"cv-skel-block"})))}const VT="http://www.w3.org/2000/svg",HT=720,qT=6,zo={left:66,right:18,top:6},tp=18,WT=16,KT=26,JT=170,YT=82,XT=80;function lw(e,t){const n=new Date(e).toISOString();return t?n.slice(0,10):`${n.slice(0,10)} ${n.slice(11,16)}`}const QT=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:2}),dw=new Intl.NumberFormat("en-US",{maximumFractionDigits:6});function np(e){return Math.abs(e)<1e3?dw.format(Math.round(e*100)/100):QT.format(e)}function eC(e,t=HT){const n=zo.left,r=t-zo.right,i=r-n,o=e.times[0]??0,s=e.times[e.times.length-1]??o,a=s-o,u=h=>a>0?n+(h-o)/a*i:n+i/2,c=e.series.length===1?JT:YT,l=e.series.map((h,p)=>{const m=zo.top+p*(tp+c+WT),g=m+tp,w=g+c,y=h.values.filter(P=>P!=null),b=Math.min(0,...y),v=Math.max(...y,b+1e-9),S=P=>w-(P-b)/(v-b||1)*c,_=[],$=[];let R=[];return h.values.forEach((P,O)=>{if(P==null){R.length&&$.push(R),R=[];return}const Y={x:u(e.times[O]??o),y:S(P),time:e.times[O]??o,value:P};_.push(Y),R.push(Y)}),R.length&&$.push(R),{column:h.column,color:`var(--cia-graph-series-${p%qT+1})`,top:m,plotTop:g,plotBottom:w,min:b,max:v,runs:$,points:_}}),d=(l[l.length-1]?.plotBottom??zo.top)+6,f=[];if(e.times.length){const h=a>0?[[o,"start"],[o+a/2,"middle"],[s,"end"]]:[[o,"middle"]];for(const[p,m]of h)f.push({x:u(p),label:lw(p,e.daily),anchor:m})}return{width:t,height:d+KT,plotLeft:n,plotRight:r,lanes:l,ticks:f,axisY:d}}function _t(e,t,n={}){const r=e.createElementNS(VT,t);for(const[i,o]of Object.entries(n))r.setAttribute(i,String(o));return r}const Ur=e=>Math.round(e*10)/10;function tC(e,t,n={}){const r=e.ownerDocument,i=eC(t),o=_t(r,"svg",{class:"cv-chart-svg",viewBox:`0 0 ${i.width} ${i.height}`,role:"img",preserveAspectRatio:"xMidYMid meet","aria-label":`Line chart of ${t.series.map(c=>c.column).join(", ")} by ${t.xColumn}, ${t.times.length} ${t.times.length===1?"point":"points"}`});for(const c of i.lanes){const l=_t(r,"g",{class:"cv-chart-lane","data-series":c.column}),d=_t(r,"rect",{class:"cv-chart-swatch",x:i.plotLeft,y:c.top+4,width:14,height:4,rx:2});d.style.fill=c.color;const f=_t(r,"text",{class:"cv-chart-name",x:i.plotLeft+20,y:c.top+11});f.textContent=c.column,l.append(d,f,_t(r,"line",{class:"cv-chart-grid",x1:i.plotLeft,x2:i.plotRight,y1:c.plotTop,y2:c.plotTop}),_t(r,"line",{class:"cv-chart-base",x1:i.plotLeft,x2:i.plotRight,y1:c.plotBottom,y2:c.plotBottom}));const h=_t(r,"text",{class:"cv-chart-tick",x:i.plotLeft-8,y:c.plotTop+4,"text-anchor":"end"});h.textContent=np(c.max);const p=_t(r,"text",{class:"cv-chart-tick",x:i.plotLeft-8,y:c.plotBottom+4,"text-anchor":"end"});p.textContent=np(c.min),l.append(h,p);for(const m of c.runs){if(m.length<2)continue;const g=_t(r,"polyline",{class:"cv-chart-line",points:m.map(w=>`${Ur(w.x)},${Ur(w.y)}`).join(" "),fill:"none"});g.style.stroke=c.color,l.append(g)}if(c.points.length<=XT)for(const m of c.points){const g=_t(r,"circle",{class:"cv-chart-dot",cx:Ur(m.x),cy:Ur(m.y),r:3});g.style.fill=c.color;const w=_t(r,"title");w.textContent=`${lw(m.time,t.daily)} · ${c.column} ${dw.format(m.value)}`,g.append(w),l.append(g)}o.append(l)}const s=_t(r,"g",{class:"cv-chart-axis"});for(const c of i.ticks){const l=_t(r,"text",{class:"cv-chart-tick",x:Ur(c.x),y:i.axisY+14,"text-anchor":c.anchor});l.textContent=c.label,s.append(l)}o.append(s);const a=[t.omittedColumns.length?`${t.omittedColumns.length} more number ${t.omittedColumns.length===1?"column is":"columns are"} only in the table: ${t.omittedColumns.join(", ")}.`:"",t.skippedRows?`${t.skippedRows} ${t.skippedRows===1?"row has":"rows have"} no usable ${t.xColumn} and ${t.skippedRows===1?"is":"are"} only in the table.`:""].filter(Boolean),u=I(r,"section",{class:"cv-chart cia-graph-surface","data-view":"chart","aria-label":`Chart by ${t.xColumn}`},I(r,"header",{class:"cv-flows-head"},I(r,"div",{class:"cv-title"},I(r,"strong",{text:"Chart"}),I(r,"span",{class:"cv-muted",text:`${t.times.length} ${t.times.length===1?"point":"points"} by ${t.xColumn} (UTC) · ${t.series.length} ${t.series.length===1?"line":"lines"}`})),n.toggle??null),a.length?I(r,"p",{class:"cv-note",role:"note","data-chart-note":"",text:a.join(" ")}):null,I(r,"div",{class:"cv-chart-body"},o));return e.replaceChildren(u),{root:u,layout:i}}const nC="chain-insights.transfers.v1",rC="graph_expand",iC="2015-01-01";function oC(e,t,n,r){return{network:e,from:t,to:n,day:r}}function sC(e,t){const n=typeof e.first_seen_timestamp=="number"&&e.first_seen_timestamp>0?Ka(e.first_seen_timestamp):null,r=typeof e.last_seen_timestamp=="number"&&e.last_seen_timestamp>0?Ka(e.last_seen_timestamp):Ka(t);return{first:n,last:n&&r<n?n:r}}function Ro(e,t){return e<=(t??iC)}function aC(e){if(!e)return"no answer";const t=go(e);return e.isError?t||"the server refused the read":/query_timeout|topology_busy/.test(t)?t:fw(e.structuredContent)?null:t||"the answer held no transfers"}function fw(e){const t=e;if(!t||t.schema!==nC||!Array.isArray(t.transfers)||typeof t.from!="string"||typeof t.to!="string"||!xT(t.day))return null;const n=[];for(const r of t.transfers){if(!r||typeof r!="object")continue;const i=r;if(typeof i.tx_id!="string")continue;const o=Kt(i.block_timestamp);n.push({tx_id:i.tx_id,block_timestamp:o,amount:typeof i.amount=="string"?i.amount:typeof i.amount=="number"?String(i.amount):null,asset_symbol:typeof i.asset_symbol=="string"&&i.asset_symbol?i.asset_symbol:null,amount_usd:Kt(i.amount_usd)})}return{network:typeof t.network=="string"?t.network:null,from:t.from,to:t.to,day:t.day,transfers:n,truncated:t.truncated===!0}}function uC(e){return[...e].sort((t,n)=>(n.block_timestamp??0)-(t.block_timestamp??0)||t.tx_id.localeCompare(n.tx_id))}function cC(e){if(e==null)return"—";const t=e.trim().match(/^(-?)(\d+)(?:\.(\d+))?$/);if(!t)return e;const[,n="",r="0",i=""]=t,o=i.replace(/0+$/,"");return`${n}${r.replace(/\B(?=(\d{3})+(?!\d))/g,",")}${o?`.${o}`:""}`}function lC(e){return e==null?"—":new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:e!==0&&Math.abs(e)<.01?6:2}).format(e)}function dC(e){return e==null?"—":`${new Date(zf(e)).toISOString().slice(11,19)} UTC`}function Xa(e){return new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeZone:"UTC"}).format(new Date(`${e}T00:00:00Z`))}function fC(e,t){const n=t.now??Date.now,r=I(e,"strong",{"data-link-title":"",text:"Transfers"}),i=I(e,"button",{type:"button",class:"cv-button cv-icon","data-link-close":"","aria-label":"Close the transfers",text:"×"}),o=I(e,"p",{class:"cv-link-pair","data-link-pair":""}),s=I(e,"p",{class:"cv-link-day","data-link-day":""}),a=I(e,"div",{class:"cv-link-body","data-link-body":"",role:"status","aria-live":"polite"}),u=I(e,"button",{type:"button",class:"cv-button","data-link-earlier":"",text:"Earlier day"}),c=I(e,"section",{class:"cv-linkpanel cv-linkpanel-embedded","data-link-panel":"","aria-label":"Transfers of the selected link",hidden:!0},I(e,"header",{class:"cv-link-head"},r,null),o,s,a,u);let l=null,d=0;function f(){if(!l){c.hidden=!0;return}c.hidden=!1,o.replaceChildren(I(e,"code",{"data-link-from":"",text:l.from})," → ",I(e,"code",{"data-link-to":"",text:l.to})),s.textContent=`${Xa(l.day)} (UTC)`,u.disabled=l.status==="loading"||Ro(l.day,l.firstDay);const w=Ro(l.day,l.firstDay)?null:Vh(l.day);u.setAttribute("aria-label",w?`Earlier day: show the transfers of ${Xa(w)}`:"Earlier day: this is the first day the link was seen"),l.status==="loading"?a.replaceChildren(I(e,"p",{class:"cv-muted",text:`Loading the transfers of ${Xa(l.day)}…`})):l.status==="error"?a.replaceChildren(I(e,"p",{class:"cv-link-error","data-link-error":"",role:"alert",text:l.error??"The transfers could not be read."})):l.transfers.length===0?a.replaceChildren(I(e,"p",{class:"cv-muted","data-link-empty":"",text:"No transfers between these two addresses on this day."})):(a.replaceChildren(I(e,"ol",{class:"cv-transfers"},...l.transfers.map(y=>hC(e,y,t.host)))),l.truncated&&a.append(I(e,"p",{class:"cv-muted","data-link-truncated":"",text:`${l.transfers.length} transfers shown. This day holds more.`}))),l.status!=="loading"&&Ro(l.day,l.firstDay)&&l.firstDay&&a.append(I(e,"p",{class:"cv-muted","data-link-first":"",text:"This is the first day the link was seen."}))}async function h(w){const y=++d,b=l;b.day=w,b.status="loading",b.error=null,f(),t.onLayout?.();let v=null;try{v=await t.host.callServerTool({name:rC,arguments:oC(t.network,b.from,b.to,w)})}catch(_){v={isError:!0,content:[{type:"text",text:_ instanceof Error?_.message:String(_)}]}}if(y!==d||l!==b)return b;const S=aC(v);if(S)b.status="error",b.transfers=[],b.error=S.length>300?`${S.slice(0,299)}…`:S;else{const _=fw(v.structuredContent);b.status="ready",b.transfers=uC(_.transfers),b.truncated=_.truncated}return f(),t.onLayout?.(),b}const p=()=>g.close(),m=()=>{g.earlier()};i.addEventListener("click",p),u.addEventListener("click",m);const g={element:c,open(w){const y=sC(w,n());return l={from:w.from,to:w.to,day:y.last,firstDay:y.first,status:"loading",transfers:[],truncated:!1,error:null},h(y.last)},async earlier(){return!l||l.status==="loading"||Ro(l.day,l.firstDay)?null:h(Vh(l.day))},close(){d++,l=null,f(),t.onLayout?.()},state:()=>l?{...l,transfers:[...l.transfers]}:null,destroy(){d++,i.removeEventListener("click",p),u.removeEventListener("click",m)}};return g}function hC(e,t,n){const r=Qb(t.tx_id),i=n.openLink,o=r&&i?I(e,"button",{type:"button",class:"cia-graph-explorer-link","data-explorer":r,"aria-label":`Transaction ${t.tx_id} (opens the explorer)`,title:t.tx_id,text:si(t.tx_id)}):I(e,"code",{title:t.tx_id,text:si(t.tx_id)});return r&&i&&o.addEventListener("click",()=>{i.call(n,{url:r}).catch(()=>{})}),I(e,"li",{class:"cv-transfer","data-tx":t.tx_id},I(e,"span",{class:"cv-transfer-time",text:dC(t.block_timestamp)}),I(e,"span",{class:"cv-transfer-amount",text:`${cC(t.amount)}${t.asset_symbol?` ${t.asset_symbol}`:""}`}),I(e,"span",{class:"cv-transfer-usd",text:t.amount_usd==null?"— USD":lC(t.amount_usd)}),o)}const pC="graph_expand",Lo="too busy to expand",hw=640,mC=300,Qa=.45,gC="Full screen shows the whole graph",rp=400,eu="expanded",pw=5e3,yC="Click an address for its details. Double-click it to load its senders and receivers, and again to fold them back. Click a link to list its transfers.",Gu=new Intl.NumberFormat("en-US");function ip(e){const t=e.remaining;if(!t||typeof t!="object")return null;const n=Number(t.senders),r=Number(t.receivers);return!Number.isFinite(n)||!Number.isFinite(r)?null:{senders:Math.max(0,n),receivers:Math.max(0,r)}}function vC(e){if(!e||e.senders+e.receivers<=0)return null;const t=(n,r)=>`${Gu.format(n)} more ${r}${n===1?"":"s"}`;return`${t(e.senders,"sender")}, ${t(e.receivers,"receiver")} not loaded`}function bC(e,t){return`Not loaded: ${Gu.format(e)} ${e===1?"link":"links"} of ${t} would take the picture past ${Gu.format(pw)} addresses. Fold another address to make room.`}const op=e=>!!(e&&(e.truncated||e.remaining&&e.remaining.senders+e.remaining.receivers>0));let wC=0;const _C=[["scam","Scam"],["sanctioned","Sanctioned"],["exchange","Exchange"],["victim","Victim"],["pool","Pool"],["other","Other"]];function kC(e,t,n){return{network:e,address:t,in_offset:n?.in_offset??0,out_offset:n?.out_offset??0}}function SC(e){const t=go(e);return e?e.isError?t||"the server refused the expansion":/query_timeout|topology_busy/.test(t)?t:Tf(e.structuredContent)?null:t||"the answer held no money flows":"no answer"}function xC(e,t,n,r=hw,i=mC){if(!e||t<=0)return{height:r,fits:!0};const o=Math.max(1,e.x2-e.x1),s=Math.max(1,e.y2-e.y1),a=Math.max(Qa,Math.min(1,(t-oi*2)/o)),u=Math.ceil(n+s*a+oi*2),c=Math.min(r,Math.max(i,u));return Mh(e,t,c-n)>=Qa?{height:c,fits:!0}:{height:r,fits:Mh(e,t,r-n)>=Qa}}function EC(e){return/query_timeout|topology_busy|timed? ?out/i.test(e)}function $C(e){const t=e.split(`
110
+ `)[0].trim();return t.length>200?`${t.slice(0,199)}…`:t}function TC(e,t){return`investigator expanded ${e}: ${t} new addresses`}function CC(e,t){const n=e.nodes.find(r=>r.address.toLowerCase()===t.toLowerCase());return n&&mo({role:n.role??null,labels:n.labels??[]})||"Other"}function mw(e,t,n){const r=e.ownerDocument,i=t.network??"robinhood",o=t.center.toLowerCase(),s=()=>new Map(t.cursor?[[o,{cursor:t.cursor,truncated:!!t.truncated,remaining:ip(t)}]]:[]);let a=s();const u=new Set,c=new Set;let l=[];const d=new Set;let f=null,h=null;const p=n.now??Date.now,m=n.title??"Money flow graph",g=I(r,"p",{class:"cv-status",role:"status","aria-live":"polite",text:yC}),w=I(r,"ul",{class:"cv-roles","aria-label":"Address roles"}),y=I(r,"div",{class:"cv-canvas","data-graph":""}),b=I(r,"div",{class:"cv-detail","aria-label":"Selection"},I(r,"strong",{"data-selection-title":""}),I(r,"code",{"data-selection-identity":""}),I(r,"div",{class:"cv-detail-meta","data-selection-meta":""})),v=I(r,"strong",{"data-side-title":"",text:"Details"}),S=I(r,"button",{type:"button",class:"cv-button cv-icon","data-side-close":"","aria-label":"Close the details",text:"×"}),_=I(r,"button",{type:"button",class:"cv-button","data-toggle-expand":"",hidden:!0,text:"Expand"}),$=I(r,"button",{type:"button",class:"cv-button","data-more":"",hidden:!0,text:"More flows"}),R=I(r,"p",{class:"cv-remaining cv-muted","data-remaining":"",hidden:!0}),P=fC(r,{host:n.host,network:i,now:n.now,embedded:!0,onLayout:()=>Be()}),O=I(r,"aside",{class:"cv-side","data-side-panel":"","aria-label":"Details of the selection",hidden:!0},I(r,"header",{class:"cv-side-head"},v,S),b,R,I(r,"div",{class:"cv-side-actions"},_,$),P.element),Y=I(r,"button",{type:"button",class:"cv-button","data-fullscreen":"",hidden:!0,"aria-label":"Open full screen",text:"Full screen"}),he=I(r,"button",{type:"button",class:"cv-button","data-reset":"","aria-label":"Reset the graph to the first answer",text:"Reset"}),Se=I(r,"span",{class:"cv-hint","data-fullscreen-hint":"",hidden:!0,text:gC}),$e=I(r,"div",{class:"cv-actions"},I(r,"button",{type:"button",class:"cv-button cv-icon","data-zoom":"out","aria-label":"Zoom out",text:"−"}),I(r,"button",{type:"button",class:"cv-button cv-icon","data-zoom":"in","aria-label":"Zoom in",text:"+"}),I(r,"button",{type:"button",class:"cv-button","data-zoom":"fit","aria-label":"Fit the graph",text:"Fit"}),he,Se,Y),Fe=I(r,"span",{class:"cv-muted","data-subtitle":""}),M=`cv-addresses-${++wC}`,G=I(r,"div",{class:"cv-visually-hidden",role:"listbox",tabindex:"0",id:M,"data-address-list":"","aria-label":"Drawn addresses. Down and Up move, Enter shows the details, Shift+Enter expands or folds."});let B=[],ee=-1;const X=I(r,"section",{class:"cv-flows cia-graph-surface","data-view":"flows","aria-label":`${m} of ${o}`},I(r,"header",{class:"cv-flows-head"},I(r,"div",{class:"cv-title"},I(r,"strong",{text:m}),Fe),n.toggle??null,$e),w,n.note?I(r,"p",{class:"cv-note",role:"note","data-left-out":"",text:n.note}):null,I(r,"div",{class:"cv-body"},G,y,O),g);e.replaceChildren(X);function V(){const D=Q.model(),ie=D.truncated?" · more flows than shown":"";Fe.textContent=`${o} · ${CC(t,o)} · ${i} · ${D.nodes.length} addresses${ie}`;const pe=new Set(D.nodes.map(Te=>Te.role??"other"));w.replaceChildren(..._C.filter(([Te])=>pe.has(Te)).map(([Te,We])=>{const It=I(r,"i",{"aria-hidden":"true"});return It.style.background=`var(--cia-graph-role-${Te})`,I(r,"li",{"data-role":Te},It,We)})),q()}function q(){const D=Q.model().nodes,ie=B[ee]??null;B=D.map(Te=>Te.address.toLowerCase()),G.replaceChildren(...D.map((Te,We)=>I(r,"div",{role:"option",id:`${M}-${We}`,"data-list-address":B[We],"aria-selected":"false",text:`${Te.address} ${mo({role:Te.role??null,labels:Te.labels??[]})||"Other"}`})));const pe=ie?B.indexOf(ie):-1;ee=pe>=0?pe:B.length?Math.min(Math.max(ee,-1),B.length-1):-1,W()}function W(){for(const ie of G.children)ie.setAttribute("aria-selected",String(ie.id===`${M}-${ee}`));ee>=0?G.setAttribute("aria-activedescendant",`${M}-${ee}`):G.removeAttribute("aria-activedescendant");const D=r.activeElement===G;Q.highlight(D?B[ee]??null:null)}function xe(D){return D?Q.model().nodes.find(ie=>ie.id===D)?.address.toLowerCase()??null:null}const Ie=D=>{const ie=D.target,pe=D.key==="Enter"||D.key===" ",Te=ie?.closest?.("[data-node-id]");if(pe&&D.shiftKey&&Te){D.preventDefault();const We=xe(Te.dataset.nodeId);We&&te(We)}};y.addEventListener("keydown",Ie,!0);function je(D){B.length&&(ee=Math.max(0,Math.min(B.length-1,D)),W())}const st=()=>{ee<0&&B.length&&(ee=0),W()},et=()=>Q.highlight(null),L=D=>{const ie=B[ee];switch(D.key){case"ArrowDown":D.preventDefault(),je(ee+1);return;case"ArrowUp":D.preventDefault(),je(ee-1);return;case"Home":D.preventDefault(),je(0);return;case"End":D.preventDefault(),je(B.length-1);return;case"Escape":Ut();return;case"Enter":case" ":if(D.preventDefault(),!ie)return;D.shiftKey?te(ie):Q.select(ie);return}};G.addEventListener("focus",st),G.addEventListener("blur",et),G.addEventListener("keydown",L);function F(){const D=h;if(!D){_.hidden=!0,$.hidden=!0,R.hidden=!0;return}const ie=d.has(D),pe=ie?vC(a.get(D)?.remaining??null):null;R.hidden=!pe,R.textContent=pe??"",_.hidden=!1,_.disabled=u.has(D)||c.has(D),_.textContent=u.has(D)?"Too busy to expand":ie?"Collapse":"Expand",_.setAttribute("aria-label",`${_.textContent} ${D}`),$.hidden=!(ie&&op(a.get(D)))}function H(D){const ie=O.hidden;O.hidden=D.kind==null,D.kind==="node"&&D.node?(h=D.node.address.toLowerCase(),v.textContent="Address details",P.close()):(h=null,D.kind==="edge"?v.textContent="Link details":P.close()),F(),ie!==O.hidden&&Be()}let J=null;function me(){J&&clearTimeout(J),J=null}function ue(D){const ie=D.source==="pointer"&&D.kind==="node"&&D.node,pe=D.source!=="program"&&D.kind==="edge"&&D.edge;if(me(),ie){const Te=D.node.address.toLowerCase(),We=p();f&&f.address===Te&&We-f.at<=rp?(f=null,Ut(),te(Te)):(f={address:Te,at:We},J=setTimeout(()=>{J=null,H(D)},rp));return}D.kind!=="node"&&(f=null),H(D),pe&&P.open(D.edge)}const we=n.height??hw,Ee=`${m} of ${o}: senders on the left, receivers on the right. Select an address for its details; double-click it, or press Shift+Enter, to load its senders and receivers, and again to fold them back. Select a link to list its transfers.`;function ae(){return yT(y,t,{layout:"tree",width:n.width??720,height:we,now:n.now,controls:$e,selectionRoot:b,onSelect:ue,openLink:D=>{n.host.openLink?.({url:D}).catch(()=>{g.textContent="The host did not open the link."})},label:Ee})}let Q=ae();V();let Ge=n.displayMode??"inline",at=n.availableDisplayModes??[];const Ze=()=>!!n.host.requestDisplayMode&&(at.length===0||at.includes("fullscreen"));function Be(){if(Ge==="fullscreen"){X.style.removeProperty("height"),Se.hidden=!0;return}const D=y.clientWidth||n.width||720,ie=Math.max(0,X.offsetHeight-y.offsetHeight)||140,{height:pe,fits:Te}=xC(Q.contentBounds(),D,ie);X.style.height=`${pe}px`,Se.hidden=Te||!Ze(),X.dataset.fits=String(Te),Q.fit()}async function ht(D){try{await n.host.updateModelContext?.({content:[{type:"text",text:D}]})}catch{}}async function C(D,ie=!1){const pe=D.toLowerCase();if(u.has(pe))return g.textContent=`${pe} is ${Lo}.`,{added:[],refused:Lo};if(c.has(pe))return{added:[],refused:null};const Te=a.get(pe);if(Te&&!op(Te))return g.textContent=`Every recent flow of ${pe} is drawn.`,{added:[],refused:null};c.add(pe),F(),g.textContent=`Loading the flows of ${pe}…`;let We=null;try{We=await n.host.callServerTool({name:pC,arguments:kC(i,pe,ie||Te?Te?.cursor:null)})}catch(wt){We={isError:!0,content:[{type:"text",text:wt instanceof Error?wt.message:String(wt)}]}}finally{c.delete(pe)}const It=SC(We);if(It)return EC(It)?(u.add(pe),Q.markNode(pe,Lo),g.textContent=`${pe} is ${Lo}. The drawing is kept.`):g.textContent=`${pe} could not be expanded: ${$C(It)}. The drawing is kept; try again.`,F(),{added:[],refused:It};const Ve=We.structuredContent,Fa=Q.model(),Tn=new Set(Fa.nodes.map(wt=>wt.address.toLowerCase())),Ua=new Set;for(const wt of Ve.nodes)Tn.has(wt.address.toLowerCase())||Ua.add(wt.address.toLowerCase());for(const wt of Ve.edges)for(const bo of[wt.from,wt.to])Tn.has(bo.toLowerCase())||Ua.add(bo.toLowerCase());if(Tn.size+Ua.size>pw){const wt=new Set(Fa.edges.map(Cn=>`${Cn.from.toLowerCase()}->${Cn.to.toLowerCase()}`)),bo=new Set(Ve.edges.map(Cn=>`${Cn.from.toLowerCase()}->${Cn.to.toLowerCase()}`).filter(Cn=>!wt.has(Cn))).size,Uf=bC(bo,pe);return g.textContent=Uf,F(),{added:[],refused:Uf}}const vo=Q.merge(Ve,pe);return l.push({address:pe,page:Ve}),d.add(pe),Q.flagNode(pe,eu,!0),a.set(pe,{cursor:Ve.cursor??null,truncated:!!Ve.truncated,remaining:ip(Ve)}),V(),Be(),F(),g.textContent=`${vo.length} new ${vo.length===1?"address":"addresses"} linked to ${pe}. Double-click it again to fold them back.`,await ht(TC(pe,vo.length)),{added:vo,refused:null}}function z(D){const ie=D.toLowerCase();if(!d.has(ie))return{removed:0};const pe=Q.model().nodes.length;d.delete(ie),a.delete(ie);const Te=l.filter(Ve=>Ve.address!==ie),We=[];Q.batch(()=>{Q.flagNode(ie,eu,!1),Q.update(t);for(const Ve of Te)Q.model().nodes.some(Tn=>Tn.address.toLowerCase()===Ve.address)?(Q.merge(Ve.page,Ve.address),We.push(Ve)):We.some(Tn=>Tn.address===Ve.address)||(Q.flagNode(Ve.address,eu,!1),d.delete(Ve.address),a.delete(Ve.address))}),l=We;const It=Math.max(0,pe-Q.model().nodes.length);return h&&!Q.model().nodes.some(Ve=>Ve.address.toLowerCase()===h)&&(O.hidden=!0,h=null),V(),Be(),F(),g.textContent=`Folded ${ie} back: ${It} ${It===1?"address":"addresses"} removed.`,ht(`investigator collapsed ${ie}: ${It} addresses removed`),{removed:It}}async function te(D){d.has(D)?z(D):await C(D)}function ve(){me(),Q.destroy(),l=[],d.clear(),u.clear(),c.clear(),a=s(),f=null,h=null,P.close(),O.hidden=!0,Q=ae(),V(),Be(),F(),g.textContent="Back to the first answer."}function ce(D,ie){D&&(Ge=D),ie&&(at=ie),X.dataset.displayMode=Ge,Y.hidden=!Ze(),Y.textContent=Ge==="fullscreen"?"Exit full screen":"Full screen",Y.setAttribute("aria-label",Ge==="fullscreen"?"Back to the inline view":"Open full screen"),Be()}ce(Ge);const ut=async()=>{const D=Ge==="fullscreen"?"inline":"fullscreen";try{const ie=await n.host.requestDisplayMode?.({mode:D});ce(ie?.mode??D)}catch{g.textContent="The host did not change the display mode."}},At=()=>ve();function Ut(){me();const D=!O.hidden;Q.select(null),P.close(),O.hidden=!0,h=null,F(),D&&Be()}const Or=()=>Ut(),$n=()=>{h&&te(h)},fn=()=>{h&&C(h,!0)};return Y.addEventListener("click",ut),he.addEventListener("click",At),S.addEventListener("click",Or),_.addEventListener("click",$n),$.addEventListener("click",fn),{root:X,get graph(){return Q},expand:D=>C(D),collapse:z,reset:ve,expanded:()=>[...d],linkPanel:P,openLink(D,ie){const pe=Q.model().edges.find(Te=>Te.from===D.toLowerCase()&&Te.to===ie.toLowerCase());return pe?(Q.select(pe.id),P.open(pe)):Promise.resolve(null)},setTheme(D){Q.setTheme(D)},setDisplayMode:ce,refit:Be,destroy(){me(),y.removeEventListener("keydown",Ie,!0),G.removeEventListener("focus",st),G.removeEventListener("blur",et),G.removeEventListener("keydown",L),Y.removeEventListener("click",ut),he.removeEventListener("click",At),S.removeEventListener("click",Or),_.removeEventListener("click",$n),$.removeEventListener("click",fn),P.destroy(),Q.destroy()}}}function ju(e){return{kind:e,flows:()=>[],setTheme(){},setDisplayMode(){},refit(){},destroy(){}}}function AC(e,t){return{kind:e,flows:()=>{const n=t();return n?[n]:[]},setTheme(n){t()?.setTheme(n)},setDisplayMode(n,r){t()?.setDisplayMode(n,r)},refit(){t()?.refit()},destroy(){t()?.destroy()}}}const gw=e=>({host:e.host,availableDisplayModes:e.availableDisplayModes,displayMode:e.displayMode,now:e.now,width:e.width,height:e.height});function IC(e,t){if(e<=0)return null;const n=new Intl.NumberFormat("en-US");return`${n.format(e)} of ${n.format(t)} rows ${e===1?"is":"are"} not drawn: a graph holds at most ${n.format(nw)} addresses. The table has the rows.`}function NC(e,t,n){const r=[];let i="picture";const o=s=>{for(const a of s.querySelectorAll("[data-show]"))a.setAttribute("aria-pressed",String(a.dataset.show===i))};return{make(){const s=I(e,"button",{type:"button",class:"cv-toggle-button","data-show":"picture",text:t}),a=I(e,"button",{type:"button",class:"cv-toggle-button","data-show":"table",text:"Table"});s.addEventListener("click",()=>n("picture")),a.addEventListener("click",()=>n("table"));const u=I(e,"div",{class:"cv-toggle",role:"group","aria-label":"Show the rows as"},s,a);return r.push(u),o(u),u},set(s){i=s,r.forEach(o)}}}function yw(e,t,n){const r=e.ownerDocument,i=aw(t);if(i!=="graph"&&i!=="chart")return i==="table"?Xh(e,t):Ra(e,t),ju(i==="table"?"table":"text");const o=t.structuredContent,s=iw(o),a=I(r,"div",{class:"cv-face","data-face":"picture"}),u=I(r,"div",{class:"cv-face","data-face":"table",hidden:!0});e.replaceChildren(a,u);const c=NC(r,i==="graph"?"Graph":"Chart",h=>f(h));let l=null,d=!1;if(i==="graph"){const h=RT(s,_T(o));l=mw(a,h.view,{...gw(n),title:"Money flow graph",toggle:c.make(),note:IC(h.rowsLeftOut,h.rowsTotal)})}else tC(a,ow(s),{toggle:c.make()});function f(h){a.hidden=h!=="picture",u.hidden=h!=="table",h==="table"&&!d&&(d=!0,Xh(u,t,{toggle:c.make()})),c.set(h),h==="picture"&&l?.refit()}return{kind:i,flows:()=>l?[l]:[],setTheme(h){l?.setTheme(h)},setDisplayMode(h,p){l?.setDisplayMode(h,p)},refit(){a.hidden||l?.refit()},destroy(){l?.destroy()}}}function zC(e,t){if(!e.ok)return{isError:!0,content:[{type:"text",text:e.error??"The query failed."}]};const n=t?.facts?.subject;return{content:[],structuredContent:{schema:tw,tool:"graph_query",facts:{...n?{subject:n}:{},query:{results:e.rows,count:e.count??e.rows.length,truncated:e.truncated,elapsed_ms:e.elapsedMs}}}}}function RC(e,t,n){const r=e.ownerDocument,i=LT(t.structuredContent),o=i.map((p,m)=>I(r,"button",{type:"button",role:"tab",class:"cv-tab",id:`cv-tab-${m}`,"data-tab":p.id,"aria-controls":`cv-panel-${m}`,"aria-selected":"false",tabindex:-1,text:p.ok?p.id:`${p.id} (failed)`})),s=i.map((p,m)=>I(r,"div",{class:"cv-tabpanel",role:"tabpanel",id:`cv-panel-${m}`,"aria-labelledby":`cv-tab-${m}`,hidden:!0})),a=I(r,"div",{class:"cv-tabs",role:"tablist","aria-label":"Queries of the batch"},...o);e.replaceChildren(a,...s);const u=i.map(()=>null);let c=n.displayMode,l=n.availableDisplayModes,d=-1;const f=()=>e.style.setProperty("--cv-tabs-h",`${a.offsetHeight}px`);function h(p){const m=i[p],g=s[p];if(!m||!g)return;d=p,o.forEach((y,b)=>{y.setAttribute("aria-selected",String(b===p)),y.tabIndex=b===p?0:-1}),s.forEach((y,b)=>{y.hidden=b!==p});const w=u[p];if(w)w.refit();else{const y=yw(g,zC(m,t.structuredContent),{...n,displayMode:c,availableDisplayModes:l});u[p]=y,g.dataset.view=y.kind}f()}return o.forEach((p,m)=>{p.addEventListener("click",()=>h(m)),p.addEventListener("keydown",g=>{const w=o.length-1,y=g.key==="ArrowRight"?m===w?0:m+1:g.key==="ArrowLeft"?m===0?w:m-1:g.key==="Home"?0:g.key==="End"?w:null;y!=null&&(g.preventDefault(),h(y),o[y]?.focus())})}),h(0),{kind:"batch",flows:()=>u.flatMap(p=>p?.flows()??[]),setTheme(p){for(const m of u)m?.setTheme(p)},setDisplayMode(p,m){p&&(c=p),m&&(l=m);for(const g of u)g?.setDisplayMode(p,m);f()},refit(){d>=0&&u[d]?.refit()},destroy(){for(const p of u)p?.destroy()}}}function LC(e,t,n){const r=aw(t);if(r==="flows"){const i=mw(e,t.structuredContent,gw(n));return AC("flows",()=>i)}return r==="graph"||r==="chart"||r==="table"?yw(e,t,n):r==="batch"?RC(e,t,n):r==="balance"?(BT(e,t),ju("balance")):(Ra(e,t),ju("text"))}function PC(e){return e==="light"||e==="dark"}function DC(e,t=()=>!1){return PC(e?.theme)?e.theme:t()?"dark":"light"}function Rf(e,t){const n={...e??{},...t??{}};return(e?.styles||t?.styles)&&(n.styles={...e?.styles??{},...t?.styles??{},variables:{...e?.styles?.variables??{},...t?.styles?.variables??{}}}),n}function vw(e,t,n={}){const r=e.documentElement,i=DC(t,n.prefersDark);r.setAttribute("data-theme",i),r.style.colorScheme=i;const o=t?.styles?.variables;o&&n.applyVariables&&n.applyVariables(o,r);const s=t?.styles?.css?.fonts;return s&&n.applyFonts&&n.applyFonts(s),i}function OC(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Po={exports:{}},sp;function MC(){if(sp)return Po.exports;sp=1;var e=typeof Reflect=="object"?Reflect:null,t=e&&typeof e.apply=="function"?e.apply:function(S,_,$){return Function.prototype.apply.call(S,_,$)},n;e&&typeof e.ownKeys=="function"?n=e.ownKeys:Object.getOwnPropertySymbols?n=function(S){return Object.getOwnPropertyNames(S).concat(Object.getOwnPropertySymbols(S))}:n=function(S){return Object.getOwnPropertyNames(S)};function r(v){console&&console.warn&&console.warn(v)}var i=Number.isNaN||function(S){return S!==S};function o(){o.init.call(this)}Po.exports=o,Po.exports.once=w,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function a(v){if(typeof v!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof v)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(v){if(typeof v!="number"||v<0||i(v))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+v+".");s=v}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(S){if(typeof S!="number"||S<0||i(S))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+S+".");return this._maxListeners=S,this};function u(v){return v._maxListeners===void 0?o.defaultMaxListeners:v._maxListeners}o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(S){for(var _=[],$=1;$<arguments.length;$++)_.push(arguments[$]);var R=S==="error",P=this._events;if(P!==void 0)R=R&&P.error===void 0;else if(!R)return!1;if(R){var O;if(_.length>0&&(O=_[0]),O instanceof Error)throw O;var Y=new Error("Unhandled error."+(O?" ("+O.message+")":""));throw Y.context=O,Y}var he=P[S];if(he===void 0)return!1;if(typeof he=="function")t(he,this,_);else for(var Se=he.length,$e=p(he,Se),$=0;$<Se;++$)t($e[$],this,_);return!0};function c(v,S,_,$){var R,P,O;if(a(_),P=v._events,P===void 0?(P=v._events=Object.create(null),v._eventsCount=0):(P.newListener!==void 0&&(v.emit("newListener",S,_.listener?_.listener:_),P=v._events),O=P[S]),O===void 0)O=P[S]=_,++v._eventsCount;else if(typeof O=="function"?O=P[S]=$?[_,O]:[O,_]:$?O.unshift(_):O.push(_),R=u(v),R>0&&O.length>R&&!O.warned){O.warned=!0;var Y=new Error("Possible EventEmitter memory leak detected. "+O.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");Y.name="MaxListenersExceededWarning",Y.emitter=v,Y.type=S,Y.count=O.length,r(Y)}return v}o.prototype.addListener=function(S,_){return c(this,S,_,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(S,_){return c(this,S,_,!0)};function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(v,S,_){var $={fired:!1,wrapFn:void 0,target:v,type:S,listener:_},R=l.bind($);return R.listener=_,$.wrapFn=R,R}o.prototype.once=function(S,_){return a(_),this.on(S,d(this,S,_)),this},o.prototype.prependOnceListener=function(S,_){return a(_),this.prependListener(S,d(this,S,_)),this},o.prototype.removeListener=function(S,_){var $,R,P,O,Y;if(a(_),R=this._events,R===void 0)return this;if($=R[S],$===void 0)return this;if($===_||$.listener===_)--this._eventsCount===0?this._events=Object.create(null):(delete R[S],R.removeListener&&this.emit("removeListener",S,$.listener||_));else if(typeof $!="function"){for(P=-1,O=$.length-1;O>=0;O--)if($[O]===_||$[O].listener===_){Y=$[O].listener,P=O;break}if(P<0)return this;P===0?$.shift():m($,P),$.length===1&&(R[S]=$[0]),R.removeListener!==void 0&&this.emit("removeListener",S,Y||_)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(S){var _,$,R;if($=this._events,$===void 0)return this;if($.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):$[S]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete $[S]),this;if(arguments.length===0){var P=Object.keys($),O;for(R=0;R<P.length;++R)O=P[R],O!=="removeListener"&&this.removeAllListeners(O);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(_=$[S],typeof _=="function")this.removeListener(S,_);else if(_!==void 0)for(R=_.length-1;R>=0;R--)this.removeListener(S,_[R]);return this};function f(v,S,_){var $=v._events;if($===void 0)return[];var R=$[S];return R===void 0?[]:typeof R=="function"?_?[R.listener||R]:[R]:_?g(R):p(R,R.length)}o.prototype.listeners=function(S){return f(this,S,!0)},o.prototype.rawListeners=function(S){return f(this,S,!1)},o.listenerCount=function(v,S){return typeof v.listenerCount=="function"?v.listenerCount(S):h.call(v,S)},o.prototype.listenerCount=h;function h(v){var S=this._events;if(S!==void 0){var _=S[v];if(typeof _=="function")return 1;if(_!==void 0)return _.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]};function p(v,S){for(var _=new Array(S),$=0;$<S;++$)_[$]=v[$];return _}function m(v,S){for(;S+1<v.length;S++)v[S]=v[S+1];v.pop()}function g(v){for(var S=new Array(v.length),_=0;_<S.length;++_)S[_]=v[_].listener||v[_];return S}function w(v,S){return new Promise(function(_,$){function R(O){v.removeListener(S,P),$(O)}function P(){typeof v.removeListener=="function"&&v.removeListener("error",R),_([].slice.call(arguments))}b(v,S,P,{once:!0}),S!=="error"&&y(v,R,{once:!0})})}function y(v,S,_){typeof v.on=="function"&&b(v,"error",S,_)}function b(v,S,_,$){if(typeof v.on=="function")$.once?v.once(S,_):v.on(S,_);else if(typeof v.addEventListener=="function")v.addEventListener(S,function R(P){$.once&&v.removeEventListener(S,R),_(P)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof v)}return Po.exports}var bw=MC();function FC(){const e=arguments[0];for(let t=1,n=arguments.length;t<n;t++)if(arguments[t])for(const r in arguments[t])e[r]=arguments[t][r];return e}let Ke=FC;typeof Object.assign=="function"&&(Ke=Object.assign);function Lt(e,t,n,r){const i=e._nodes.get(t);let o=null;return i&&(r==="mixed"?o=i.out&&i.out[n]||i.undirected&&i.undirected[n]:r==="directed"?o=i.out&&i.out[n]:o=i.undirected&&i.undirected[n]),o}function tt(e){return typeof e=="object"&&e!==null}function ww(e){let t;for(t in e)return!1;return!0}function Nt(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!1,writable:!0,value:n})}function Gt(e,t,n){const r={enumerable:!0,configurable:!0};typeof n=="function"?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(e,t,r)}function ap(e){return!(!tt(e)||e.attributes&&!Array.isArray(e.attributes))}function UC(){let e=Math.floor(Math.random()*256)&255;return()=>e++}function tn(){const e=arguments;let t=null,n=-1;return{[Symbol.iterator](){return this},next(){let r=null;do{if(t===null){if(n++,n>=e.length)return{done:!0};t=e[n][Symbol.iterator]()}if(r=t.next(),r.done){t=null;continue}break}while(!0);return r}}}function Lr(){return{[Symbol.iterator](){return this},next(){return{done:!0}}}}class Lf extends Error{constructor(t){super(),this.name="GraphError",this.message=t}}class Z extends Lf{constructor(t){super(t),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Z.prototype.constructor)}}class U extends Lf{constructor(t){super(t),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,U.prototype.constructor)}}class re extends Lf{constructor(t){super(t),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,re.prototype.constructor)}}function _w(e,t){this.key=e,this.attributes=t,this.clear()}_w.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function kw(e,t){this.key=e,this.attributes=t,this.clear()}kw.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function Sw(e,t){this.key=e,this.attributes=t,this.clear()}Sw.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function Pr(e,t,n,r,i){this.key=t,this.attributes=i,this.undirected=e,this.source=n,this.target=r}Pr.prototype.attach=function(){let e="out",t="in";this.undirected&&(e=t="undirected");const n=this.source.key,r=this.target.key;this.source[e][r]=this,!(this.undirected&&n===r)&&(this.target[t][n]=this)};Pr.prototype.attachMulti=function(){let e="out",t="in";const n=this.source.key,r=this.target.key;this.undirected&&(e=t="undirected");const i=this.source[e],o=i[r];if(typeof o>"u"){i[r]=this,this.undirected&&n===r||(this.target[t][n]=this);return}o.previous=this,this.next=o,i[r]=this,this.target[t][n]=this};Pr.prototype.detach=function(){const e=this.source.key,t=this.target.key;let n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][t],delete this.target[r][e]};Pr.prototype.detachMulti=function(){const e=this.source.key,t=this.target.key;let n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][t],delete this.target[r][e]):(this.next.previous=void 0,this.source[n][t]=this.next,this.target[r][e]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};const xw=0,Ew=1,GC=2,$w=3;function dn(e,t,n,r,i,o,s){let a,u,c,l;if(r=""+r,n===xw){if(a=e._nodes.get(r),!a)throw new U(`Graph.${t}: could not find the "${r}" node in the graph.`);c=i,l=o}else if(n===$w){if(i=""+i,u=e._edges.get(i),!u)throw new U(`Graph.${t}: could not find the "${i}" edge in the graph.`);const d=u.source.key,f=u.target.key;if(r===d)a=u.target;else if(r===f)a=u.source;else throw new U(`Graph.${t}: the "${r}" node is not attached to the "${i}" edge (${d}, ${f}).`);c=o,l=s}else{if(u=e._edges.get(r),!u)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`);n===Ew?a=u.source:a=u.target,c=i,l=o}return[a,c,l]}function jC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);return s.attributes[a]}}function ZC(e,t,n){e.prototype[t]=function(r,i){const[o]=dn(this,t,n,r,i);return o.attributes}}function BC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);return s.attributes.hasOwnProperty(a)}}function VC(e,t,n){e.prototype[t]=function(r,i,o,s){const[a,u,c]=dn(this,t,n,r,i,o,s);return a.attributes[u]=c,this.emit("nodeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:u}),this}}function HC(e,t,n){e.prototype[t]=function(r,i,o,s){const[a,u,c]=dn(this,t,n,r,i,o,s);if(typeof c!="function")throw new Z(`Graph.${t}: updater should be a function.`);const l=a.attributes,d=c(l[u]);return l[u]=d,this.emit("nodeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:u}),this}}function qC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);return delete s.attributes[a],this.emit("nodeAttributesUpdated",{key:s.key,type:"remove",attributes:s.attributes,name:a}),this}}function WC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);if(!tt(a))throw new Z(`Graph.${t}: provided attributes are not a plain object.`);return s.attributes=a,this.emit("nodeAttributesUpdated",{key:s.key,type:"replace",attributes:s.attributes}),this}}function KC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);if(!tt(a))throw new Z(`Graph.${t}: provided attributes are not a plain object.`);return Ke(s.attributes,a),this.emit("nodeAttributesUpdated",{key:s.key,type:"merge",attributes:s.attributes,data:a}),this}}function JC(e,t,n){e.prototype[t]=function(r,i,o){const[s,a]=dn(this,t,n,r,i,o);if(typeof a!="function")throw new Z(`Graph.${t}: provided updater is not a function.`);return s.attributes=a(s.attributes),this.emit("nodeAttributesUpdated",{key:s.key,type:"update",attributes:s.attributes}),this}}const YC=[{name:e=>`get${e}Attribute`,attacher:jC},{name:e=>`get${e}Attributes`,attacher:ZC},{name:e=>`has${e}Attribute`,attacher:BC},{name:e=>`set${e}Attribute`,attacher:VC},{name:e=>`update${e}Attribute`,attacher:HC},{name:e=>`remove${e}Attribute`,attacher:qC},{name:e=>`replace${e}Attributes`,attacher:WC},{name:e=>`merge${e}Attributes`,attacher:KC},{name:e=>`update${e}Attributes`,attacher:JC}];function XC(e){YC.forEach(function({name:t,attacher:n}){n(e,t("Node"),xw),n(e,t("Source"),Ew),n(e,t("Target"),GC),n(e,t("Opposite"),$w)})}function QC(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]}}function eA(e,t,n){e.prototype[t]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const o=""+r,s=""+arguments[1];if(i=Lt(this,o,s,n),!i)throw new U(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function tA(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes.hasOwnProperty(i)}}function nA(e,t,n){e.prototype[t]=function(r,i,o){let s;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const a=""+r,u=""+i;if(i=arguments[2],o=arguments[3],s=Lt(this,a,u,n),!s)throw new U(`Graph.${t}: could not find an edge for the given path ("${a}" - "${u}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,s=this._edges.get(r),!s)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return s.attributes[i]=o,this.emit("edgeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:i}),this}}function rA(e,t,n){e.prototype[t]=function(r,i,o){let s;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const a=""+r,u=""+i;if(i=arguments[2],o=arguments[3],s=Lt(this,a,u,n),!s)throw new U(`Graph.${t}: could not find an edge for the given path ("${a}" - "${u}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,s=this._edges.get(r),!s)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof o!="function")throw new Z(`Graph.${t}: updater should be a function.`);return s.attributes[i]=o(s.attributes[i]),this.emit("edgeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:i}),this}}function iA(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return delete o.attributes[i],this.emit("edgeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:i}),this}}function oA(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!tt(i))throw new Z(`Graph.${t}: provided attributes are not a plain object.`);return o.attributes=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function sA(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!tt(i))throw new Z(`Graph.${t}: provided attributes are not a plain object.`);return Ke(o.attributes,i),this.emit("edgeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:i}),this}}function aA(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new re(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new re(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,a=""+i;if(i=arguments[2],o=Lt(this,s,a,n),!o)throw new U(`Graph.${t}: could not find an edge for the given path ("${s}" - "${a}").`)}else{if(n!=="mixed")throw new re(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new U(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new Z(`Graph.${t}: provided updater is not a function.`);return o.attributes=i(o.attributes),this.emit("edgeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}const uA=[{name:e=>`get${e}Attribute`,attacher:QC},{name:e=>`get${e}Attributes`,attacher:eA},{name:e=>`has${e}Attribute`,attacher:tA},{name:e=>`set${e}Attribute`,attacher:nA},{name:e=>`update${e}Attribute`,attacher:rA},{name:e=>`remove${e}Attribute`,attacher:iA},{name:e=>`replace${e}Attributes`,attacher:oA},{name:e=>`merge${e}Attributes`,attacher:sA},{name:e=>`update${e}Attributes`,attacher:aA}];function cA(e){uA.forEach(function({name:t,attacher:n}){n(e,t("Edge"),"mixed"),n(e,t("DirectedEdge"),"directed"),n(e,t("UndirectedEdge"),"undirected")})}const lA=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function dA(e,t,n,r){let i=!1;for(const o in t){if(o===r)continue;const s=t[o];if(i=n(s.key,s.attributes,s.source.key,s.target.key,s.source.attributes,s.target.attributes,s.undirected),e&&i)return s.key}}function fA(e,t,n,r){let i,o,s,a=!1;for(const u in t)if(u!==r){i=t[u];do{if(o=i.source,s=i.target,a=n(i.key,i.attributes,o.key,s.key,o.attributes,s.attributes,i.undirected),e&&a)return i.key;i=i.next}while(i!==void 0)}}function tu(e,t){const n=Object.keys(e),r=n.length;let i,o=0;return{[Symbol.iterator](){return this},next(){do if(i)i=i.next;else{if(o>=r)return{done:!0};const s=n[o++];if(s===t){i=void 0;continue}i=e[s]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}}}}function hA(e,t,n,r){const i=t[n];if(!i)return;const o=i.source,s=i.target;if(r(i.key,i.attributes,o.key,s.key,o.attributes,s.attributes,i.undirected)&&e)return i.key}function pA(e,t,n,r){let i=t[n];if(!i)return;let o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),e&&o)return i.key;i=i.next}while(i!==void 0)}function nu(e,t){let n=e[t];if(n.next!==void 0)return{[Symbol.iterator](){return this},next(){if(!n)return{done:!0};const i={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:i}}};let r=!1;return{[Symbol.iterator](){return this},next(){return r===!0?{done:!0}:(r=!0,{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}})}}}function mA(e,t){if(e.size===0)return[];if(t==="mixed"||t===e.type)return Array.from(e._edges.keys());const n=t==="undirected"?e.undirectedSize:e.directedSize,r=new Array(n),i=t==="undirected",o=e._edges.values();let s=0,a,u;for(;a=o.next(),a.done!==!0;)u=a.value,u.undirected===i&&(r[s++]=u.key);return r}function Tw(e,t,n,r){if(t.size===0)return;const i=n!=="mixed"&&n!==t.type,o=n==="undirected";let s,a,u=!1;const c=t._edges.values();for(;s=c.next(),s.done!==!0;){if(a=s.value,i&&a.undirected!==o)continue;const{key:l,attributes:d,source:f,target:h}=a;if(u=r(l,d,f.key,h.key,f.attributes,h.attributes,a.undirected),e&&u)return l}}function gA(e,t){if(e.size===0)return Lr();const n=t!=="mixed"&&t!==e.type,r=t==="undirected",i=e._edges.values();return{[Symbol.iterator](){return this},next(){let o,s;for(;;){if(o=i.next(),o.done)return o;if(s=o.value,!(n&&s.undirected!==r))break}return{value:{edge:s.key,attributes:s.attributes,source:s.source.key,target:s.target.key,sourceAttributes:s.source.attributes,targetAttributes:s.target.attributes,undirected:s.undirected},done:!1}}}}function Pf(e,t,n,r,i,o){const s=t?fA:dA;let a;if(n!=="undirected"&&(r!=="out"&&(a=s(e,i.in,o),e&&a)||r!=="in"&&(a=s(e,i.out,o,r?void 0:i.key),e&&a))||n!=="directed"&&(a=s(e,i.undirected,o),e&&a))return a}function yA(e,t,n,r){const i=[];return Pf(!1,e,t,n,r,function(o){i.push(o)}),i}function vA(e,t,n){let r=Lr();return e!=="undirected"&&(t!=="out"&&typeof n.in<"u"&&(r=tn(r,tu(n.in))),t!=="in"&&typeof n.out<"u"&&(r=tn(r,tu(n.out,t?void 0:n.key)))),e!=="directed"&&typeof n.undirected<"u"&&(r=tn(r,tu(n.undirected))),r}function Df(e,t,n,r,i,o,s){const a=n?pA:hA;let u;if(t!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(u=a(e,i.in,o,s),e&&u)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==o)&&(u=a(e,i.out,o,s),e&&u))||t!=="directed"&&typeof i.undirected<"u"&&(u=a(e,i.undirected,o,s),e&&u))return u}function bA(e,t,n,r,i){const o=[];return Df(!1,e,t,n,r,i,function(s){o.push(s)}),o}function wA(e,t,n,r){let i=Lr();return e!=="undirected"&&(typeof n.in<"u"&&t!=="out"&&r in n.in&&(i=tn(i,nu(n.in,r))),typeof n.out<"u"&&t!=="in"&&r in n.out&&(t||n.key!==r)&&(i=tn(i,nu(n.out,r)))),e!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=tn(i,nu(n.undirected,r))),i}function _A(e,t){const{name:n,type:r,direction:i}=t;e.prototype[n]=function(o,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return mA(this,r);if(arguments.length===1){o=""+o;const a=this._nodes.get(o);if(typeof a>"u")throw new U(`Graph.${n}: could not find the "${o}" node in the graph.`);return yA(this.multi,r==="mixed"?this.type:r,i,a)}if(arguments.length===2){o=""+o,s=""+s;const a=this._nodes.get(o);if(!a)throw new U(`Graph.${n}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(s))throw new U(`Graph.${n}: could not find the "${s}" target node in the graph.`);return bA(r,this.multi,i,a,s)}throw new Z(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function kA(e,t){const{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(c,l,d){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return d=c,Tw(!1,this,r,d);if(arguments.length===2){c=""+c,d=l;const f=this._nodes.get(c);if(typeof f>"u")throw new U(`Graph.${o}: could not find the "${c}" node in the graph.`);return Pf(!1,this.multi,r==="mixed"?this.type:r,i,f,d)}if(arguments.length===3){c=""+c,l=""+l;const f=this._nodes.get(c);if(!f)throw new U(`Graph.${o}: could not find the "${c}" source node in the graph.`);if(!this._nodes.has(l))throw new U(`Graph.${o}: could not find the "${l}" target node in the graph.`);return Df(!1,r,this.multi,i,f,l,d)}throw new Z(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};const s="map"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(){const c=Array.prototype.slice.call(arguments),l=c.pop();let d;if(c.length===0){let f=0;r!=="directed"&&(f+=this.undirectedSize),r!=="undirected"&&(f+=this.directedSize),d=new Array(f);let h=0;c.push((p,m,g,w,y,b,v)=>{d[h++]=l(p,m,g,w,y,b,v)})}else d=[],c.push((f,h,p,m,g,w,y)=>{d.push(l(f,h,p,m,g,w,y))});return this[o].apply(this,c),d};const a="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(){const c=Array.prototype.slice.call(arguments),l=c.pop(),d=[];return c.push((f,h,p,m,g,w,y)=>{l(f,h,p,m,g,w,y)&&d.push(f)}),this[o].apply(this,c),d};const u="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[u]=function(){let c=Array.prototype.slice.call(arguments);if(c.length<2||c.length>4)throw new Z(`Graph.${u}: invalid number of arguments (expecting 2, 3 or 4 and got ${c.length}).`);if(typeof c[c.length-1]=="function"&&typeof c[c.length-2]!="function")throw new Z(`Graph.${u}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let l,d;c.length===2?(l=c[0],d=c[1],c=[]):c.length===3?(l=c[1],d=c[2],c=[c[0]]):c.length===4&&(l=c[2],d=c[3],c=[c[0],c[1]]);let f=d;return c.push((h,p,m,g,w,y,b)=>{f=l(f,h,p,m,g,w,y,b)}),this[o].apply(this,c),f}}function SA(e,t){const{name:n,type:r,direction:i}=t,o="find"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(u,c,l){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return l=u,Tw(!0,this,r,l);if(arguments.length===2){u=""+u,l=c;const d=this._nodes.get(u);if(typeof d>"u")throw new U(`Graph.${o}: could not find the "${u}" node in the graph.`);return Pf(!0,this.multi,r==="mixed"?this.type:r,i,d,l)}if(arguments.length===3){u=""+u,c=""+c;const d=this._nodes.get(u);if(!d)throw new U(`Graph.${o}: could not find the "${u}" source node in the graph.`);if(!this._nodes.has(c))throw new U(`Graph.${o}: could not find the "${c}" target node in the graph.`);return Df(!0,r,this.multi,i,d,c,l)}throw new Z(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};const s="some"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[s]=function(){const u=Array.prototype.slice.call(arguments),c=u.pop();return u.push((d,f,h,p,m,g,w)=>c(d,f,h,p,m,g,w)),!!this[o].apply(this,u)};const a="every"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(){const u=Array.prototype.slice.call(arguments),c=u.pop();return u.push((d,f,h,p,m,g,w)=>!c(d,f,h,p,m,g,w)),!this[o].apply(this,u)}}function xA(e,t){const{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(s,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Lr();if(!arguments.length)return gA(this,r);if(arguments.length===1){s=""+s;const u=this._nodes.get(s);if(!u)throw new U(`Graph.${o}: could not find the "${s}" node in the graph.`);return vA(r,i,u)}if(arguments.length===2){s=""+s,a=""+a;const u=this._nodes.get(s);if(!u)throw new U(`Graph.${o}: could not find the "${s}" source node in the graph.`);if(!this._nodes.has(a))throw new U(`Graph.${o}: could not find the "${a}" target node in the graph.`);return wA(r,i,u,a)}throw new Z(`Graph.${o}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function EA(e){lA.forEach(t=>{_A(e,t),kA(e,t),SA(e,t),xA(e,t)})}const $A=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function La(){this.A=null,this.B=null}La.prototype.wrap=function(e){this.A===null?this.A=e:this.B===null&&(this.B=e)};La.prototype.has=function(e){return this.A!==null&&e in this.A||this.B!==null&&e in this.B};function Gr(e,t,n,r,i){for(const o in r){const s=r[o],a=s.source,u=s.target,c=a===n?u:a;if(t&&t.has(c.key))continue;const l=i(c.key,c.attributes);if(e&&l)return c.key}}function Of(e,t,n,r,i){if(t!=="mixed"){if(t==="undirected")return Gr(e,null,r,r.undirected,i);if(typeof n=="string")return Gr(e,null,r,r[n],i)}const o=new La;let s;if(t!=="undirected"){if(n!=="out"){if(s=Gr(e,null,r,r.in,i),e&&s)return s;o.wrap(r.in)}if(n!=="in"){if(s=Gr(e,o,r,r.out,i),e&&s)return s;o.wrap(r.out)}}if(t!=="directed"&&(s=Gr(e,o,r,r.undirected,i),e&&s))return s}function TA(e,t,n){if(e!=="mixed"){if(e==="undirected")return Object.keys(n.undirected);if(typeof t=="string")return Object.keys(n[t])}const r=[];return Of(!1,e,t,n,function(i){r.push(i)}),r}function jr(e,t,n){const r=Object.keys(n),i=r.length;let o=0;return{[Symbol.iterator](){return this},next(){let s=null;do{if(o>=i)return e&&e.wrap(n),{done:!0};const a=n[r[o++]],u=a.source,c=a.target;if(s=u===t?c:u,e&&e.has(s.key)){s=null;continue}}while(s===null);return{done:!1,value:{neighbor:s.key,attributes:s.attributes}}}}}function CA(e,t,n){if(e!=="mixed"){if(e==="undirected")return jr(null,n,n.undirected);if(typeof t=="string")return jr(null,n,n[t])}let r=Lr();const i=new La;return e!=="undirected"&&(t!=="out"&&(r=tn(r,jr(i,n,n.in))),t!=="in"&&(r=tn(r,jr(i,n,n.out)))),e!=="directed"&&(r=tn(r,jr(i,n,n.undirected))),r}function AA(e,t){const{name:n,type:r,direction:i}=t;e.prototype[n]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];o=""+o;const s=this._nodes.get(o);if(typeof s>"u")throw new U(`Graph.${n}: could not find the "${o}" node in the graph.`);return TA(r==="mixed"?this.type:r,i,s)}}function IA(e,t){const{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(c,l){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;const d=this._nodes.get(c);if(typeof d>"u")throw new U(`Graph.${o}: could not find the "${c}" node in the graph.`);Of(!1,r==="mixed"?this.type:r,i,d,l)};const s="map"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(c,l){const d=[];return this[o](c,(f,h)=>{d.push(l(f,h))}),d};const a="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(c,l){const d=[];return this[o](c,(f,h)=>{l(f,h)&&d.push(f)}),d};const u="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[u]=function(c,l,d){if(arguments.length<3)throw new Z(`Graph.${u}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let f=d;return this[o](c,(h,p)=>{f=l(f,h,p)}),f}}function NA(e,t){const{name:n,type:r,direction:i}=t,o=n[0].toUpperCase()+n.slice(1,-1),s="find"+o;e.prototype[s]=function(c,l){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;const d=this._nodes.get(c);if(typeof d>"u")throw new U(`Graph.${s}: could not find the "${c}" node in the graph.`);return Of(!0,r==="mixed"?this.type:r,i,d,l)};const a="some"+o;e.prototype[a]=function(c,l){return!!this[s](c,l)};const u="every"+o;e.prototype[u]=function(c,l){return!this[s](c,(f,h)=>!l(f,h))}}function zA(e,t){const{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Lr();s=""+s;const a=this._nodes.get(s);if(typeof a>"u")throw new U(`Graph.${o}: could not find the "${s}" node in the graph.`);return CA(r==="mixed"?this.type:r,i,a)}}function RA(e){$A.forEach(t=>{AA(e,t),IA(e,t),NA(e,t),zA(e,t)})}function Do(e,t,n,r,i){const o=r._nodes.values(),s=r.type;let a,u,c,l,d,f;for(;a=o.next(),a.done!==!0;){let h=!1;if(u=a.value,s!=="undirected"){l=u.out;for(c in l){d=l[c];do f=d.target,h=!0,i(u.key,f.key,u.attributes,f.attributes,d.key,d.attributes,d.undirected),d=d.next;while(d)}}if(s!=="directed"){l=u.undirected;for(c in l)if(!(t&&u.key>c)){d=l[c];do f=d.target,f.key!==c&&(f=d.source),h=!0,i(u.key,f.key,u.attributes,f.attributes,d.key,d.attributes,d.undirected),d=d.next;while(d)}}n&&!h&&i(u.key,null,u.attributes,null,null,null,null)}}function LA(e,t){const n={key:e};return ww(t.attributes)||(n.attributes=Ke({},t.attributes)),n}function PA(e,t,n){const r={key:t,source:n.source.key,target:n.target.key};return ww(n.attributes)||(r.attributes=Ke({},n.attributes)),e==="mixed"&&n.undirected&&(r.undirected=!0),r}function DA(e){if(!tt(e))throw new Z('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in e))throw new Z("Graph.import: serialized node is missing its key.");if("attributes"in e&&(!tt(e.attributes)||e.attributes===null))throw new Z("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function OA(e){if(!tt(e))throw new Z('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in e))throw new Z("Graph.import: serialized edge is missing its source.");if(!("target"in e))throw new Z("Graph.import: serialized edge is missing its target.");if("attributes"in e&&(!tt(e.attributes)||e.attributes===null))throw new Z("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in e&&typeof e.undirected!="boolean")throw new Z("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}const MA=UC(),FA=new Set(["directed","undirected","mixed"]),up=new Set(["domain","_events","_eventsCount","_maxListeners"]),UA=[{name:e=>`${e}Edge`,generateKey:!0},{name:e=>`${e}DirectedEdge`,generateKey:!0,type:"directed"},{name:e=>`${e}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:e=>`${e}EdgeWithKey`},{name:e=>`${e}DirectedEdgeWithKey`,type:"directed"},{name:e=>`${e}UndirectedEdgeWithKey`,type:"undirected"}],GA={allowSelfLoops:!0,multi:!1,type:"mixed"};function jA(e,t,n){if(n&&!tt(n))throw new Z(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(t=""+t,n=n||{},e._nodes.has(t))throw new re(`Graph.addNode: the "${t}" node already exist in the graph.`);const r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function cp(e,t,n){const r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function Cw(e,t,n,r,i,o,s,a){if(!r&&e.type==="undirected")throw new re(`Graph.${t}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new re(`Graph.${t}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(a&&!tt(a))throw new Z(`Graph.${t}: invalid attributes. Expecting an object but got "${a}"`);if(o=""+o,s=""+s,a=a||{},!e.allowSelfLoops&&o===s)throw new re(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);const u=e._nodes.get(o),c=e._nodes.get(s);if(!u)throw new U(`Graph.${t}: source node "${o}" not found.`);if(!c)throw new U(`Graph.${t}: target node "${s}" not found.`);const l={key:null,undirected:r,source:o,target:s,attributes:a};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new re(`Graph.${t}: the "${i}" edge already exists in the graph.`);if(!e.multi&&(r?typeof u.undirected[s]<"u":typeof u.out[s]<"u"))throw new re(`Graph.${t}: an edge linking "${o}" to "${s}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);const d=new Pr(r,i,u,c,a);e._edges.set(i,d);const f=o===s;return r?(u.undirectedDegree++,c.undirectedDegree++,f&&(u.undirectedLoops++,e._undirectedSelfLoopCount++)):(u.outDegree++,c.inDegree++,f&&(u.directedLoops++,e._directedSelfLoopCount++)),e.multi?d.attachMulti():d.attach(),r?e._undirectedSize++:e._directedSize++,l.key=i,e.emit("edgeAdded",l),i}function ZA(e,t,n,r,i,o,s,a,u){if(!r&&e.type==="undirected")throw new re(`Graph.${t}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new re(`Graph.${t}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(a){if(u){if(typeof a!="function")throw new Z(`Graph.${t}: invalid updater function. Expecting a function but got "${a}"`)}else if(!tt(a))throw new Z(`Graph.${t}: invalid attributes. Expecting an object but got "${a}"`)}o=""+o,s=""+s;let c;if(u&&(c=a,a=void 0),!e.allowSelfLoops&&o===s)throw new re(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let l=e._nodes.get(o),d=e._nodes.get(s),f,h;if(!n&&(f=e._edges.get(i),f)){if((f.source.key!==o||f.target.key!==s)&&(!r||f.source.key!==s||f.target.key!==o))throw new re(`Graph.${t}: inconsistency detected when attempting to merge the "${i}" edge with "${o}" source & "${s}" target vs. ("${f.source.key}", "${f.target.key}").`);h=f}if(!h&&!e.multi&&l&&(h=r?l.undirected[s]:l.out[s]),h){const y=[h.key,!1,!1,!1];if(u?!c:!a)return y;if(u){const b=h.attributes;h.attributes=c(b),e.emit("edgeAttributesUpdated",{type:"replace",key:h.key,attributes:h.attributes})}else Ke(h.attributes,a),e.emit("edgeAttributesUpdated",{type:"merge",key:h.key,attributes:h.attributes,data:a});return y}a=a||{},u&&c&&(a=c(a));const p={key:null,undirected:r,source:o,target:s,attributes:a};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new re(`Graph.${t}: the "${i}" edge already exists in the graph.`);let m=!1,g=!1;l||(l=cp(e,o,{}),m=!0,o===s&&(d=l,g=!0)),d||(d=cp(e,s,{}),g=!0),f=new Pr(r,i,l,d,a),e._edges.set(i,f);const w=o===s;return r?(l.undirectedDegree++,d.undirectedDegree++,w&&(l.undirectedLoops++,e._undirectedSelfLoopCount++)):(l.outDegree++,d.inDegree++,w&&(l.directedLoops++,e._directedSelfLoopCount++)),e.multi?f.attachMulti():f.attach(),r?e._undirectedSize++:e._directedSize++,p.key=i,e.emit("edgeAdded",p),[i,!0,m,g]}function Vn(e,t){e._edges.delete(t.key);const{source:n,target:r,attributes:i}=t,o=t.undirected,s=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,s&&(n.undirectedLoops--,e._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,s&&(n.directedLoops--,e._directedSelfLoopCount--)),e.multi?t.detachMulti():t.detach(),o?e._undirectedSize--:e._directedSize--,e.emit("edgeDropped",{key:t.key,attributes:i,source:n.key,target:r.key,undirected:o})}class Le extends bw.EventEmitter{constructor(t){if(super(),t=Ke({},GA,t),typeof t.multi!="boolean")throw new Z(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${t.multi}".`);if(!FA.has(t.type))throw new Z(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${t.type}".`);if(typeof t.allowSelfLoops!="boolean")throw new Z(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${t.allowSelfLoops}".`);const n=t.type==="mixed"?_w:t.type==="directed"?kw:Sw;Nt(this,"NodeDataClass",n);const r="geid_"+MA()+"_";let i=0;const o=()=>{let s;do s=r+i++;while(this._edges.has(s));return s};Nt(this,"_attributes",{}),Nt(this,"_nodes",new Map),Nt(this,"_edges",new Map),Nt(this,"_directedSize",0),Nt(this,"_undirectedSize",0),Nt(this,"_directedSelfLoopCount",0),Nt(this,"_undirectedSelfLoopCount",0),Nt(this,"_edgeKeyGenerator",o),Nt(this,"_options",t),up.forEach(s=>Nt(this,s,this[s])),Gt(this,"order",()=>this._nodes.size),Gt(this,"size",()=>this._edges.size),Gt(this,"directedSize",()=>this._directedSize),Gt(this,"undirectedSize",()=>this._undirectedSize),Gt(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),Gt(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),Gt(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),Gt(this,"multi",this._options.multi),Gt(this,"type",this._options.type),Gt(this,"allowSelfLoops",this._options.allowSelfLoops),Gt(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(t){return this._nodes.has(""+t)}hasDirectedEdge(t,n){if(this.type==="undirected")return!1;if(arguments.length===1){const r=""+t,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?r.out.hasOwnProperty(n):!1}throw new Z(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(t,n){if(this.type==="directed")return!1;if(arguments.length===1){const r=""+t,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?r.undirected.hasOwnProperty(n):!1}throw new Z(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(t,n){if(arguments.length===1){const r=""+t;return this._edges.has(r)}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new Z(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(t,n){if(this.type==="undirected")return;if(t=""+t,n=""+n,this.multi)throw new re("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");const r=this._nodes.get(t);if(!r)throw new U(`Graph.directedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new U(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);const i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(t,n){if(this.type==="directed")return;if(t=""+t,n=""+n,this.multi)throw new re("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");const r=this._nodes.get(t);if(!r)throw new U(`Graph.undirectedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new U(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);const i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(t,n){if(this.multi)throw new re("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.edge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new U(`Graph.edge: could not find the "${n}" target node in the graph.`);const i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areDirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areOutNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areInNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areUndirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areInboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new U(`Graph.areOutboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.inDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.outDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.directedDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.undirectedDegree: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.inboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.outboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.degree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.inDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.outDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.directedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.degreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.source: could not find the "${t}" edge in the graph.`);return n.source.key}target(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.target: could not find the "${t}" edge in the graph.`);return n.target.key}extremities(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.extremities: could not find the "${t}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(t,n){t=""+t,n=""+n;const r=this._edges.get(n);if(!r)throw new U(`Graph.opposite: could not find the "${n}" edge in the graph.`);const i=r.source.key,o=r.target.key;if(t===i)return o;if(t===o)return i;throw new U(`Graph.opposite: the "${t}" node is not attached to the "${n}" edge (${i}, ${o}).`)}hasExtremity(t,n){t=""+t,n=""+n;const r=this._edges.get(t);if(!r)throw new U(`Graph.hasExtremity: could not find the "${t}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.isUndirected: could not find the "${t}" edge in the graph.`);return n.undirected}isDirected(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.isDirected: could not find the "${t}" edge in the graph.`);return!n.undirected}isSelfLoop(t){t=""+t;const n=this._edges.get(t);if(!n)throw new U(`Graph.isSelfLoop: could not find the "${t}" edge in the graph.`);return n.source===n.target}addNode(t,n){return jA(this,t,n).key}mergeNode(t,n){if(n&&!tt(n))throw new Z(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);t=""+t,n=n||{};let r=this._nodes.get(t);return r?(n&&(Ke(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:r.attributes,data:n})),[t,!1]):(r=new this.NodeDataClass(t,n),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:n}),[t,!0])}updateNode(t,n){if(n&&typeof n!="function")throw new Z(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);t=""+t;let r=this._nodes.get(t);if(r){if(n){const o=r.attributes;r.attributes=n(o),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:r.attributes})}return[t,!1]}const i=n?n({}):{};return r=new this.NodeDataClass(t,i),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]}dropNode(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new U(`Graph.dropNode: could not find the "${t}" node in the graph.`);let r;if(this.type!=="undirected"){for(const i in n.out){r=n.out[i];do Vn(this,r),r=r.next;while(r)}for(const i in n.in){r=n.in[i];do Vn(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(const i in n.undirected){r=n.undirected[i];do Vn(this,r),r=r.next;while(r)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})}dropEdge(t){let n;if(arguments.length>1){const r=""+arguments[0],i=""+arguments[1];if(n=Lt(this,r,i,this.type),!n)throw new U(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(t=""+t,n=this._edges.get(t),!n)throw new U(`Graph.dropEdge: could not find the "${t}" edge in the graph.`);return Vn(this,n),this}dropDirectedEdge(t,n){if(arguments.length<2)throw new re("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new re("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");t=""+t,n=""+n;const r=Lt(this,t,n,"directed");if(!r)throw new U(`Graph.dropDirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Vn(this,r),this}dropUndirectedEdge(t,n){if(arguments.length<2)throw new re("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new re("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");const r=Lt(this,t,n,"undirected");if(!r)throw new U(`Graph.dropUndirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Vn(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){const t=this._nodes.values();let n;for(;n=t.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(t){return this._attributes[t]}getAttributes(){return this._attributes}hasAttribute(t){return this._attributes.hasOwnProperty(t)}setAttribute(t,n){return this._attributes[t]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}updateAttribute(t,n){if(typeof n!="function")throw new Z("Graph.updateAttribute: updater should be a function.");const r=this._attributes[t];return this._attributes[t]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}removeAttribute(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this}replaceAttributes(t){if(!tt(t))throw new Z("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(t){if(!tt(t))throw new Z("Graph.mergeAttributes: provided attributes are not a plain object.");return Ke(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this}updateAttributes(t){if(typeof t!="function")throw new Z("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(t,n){if(typeof t!="function")throw new Z("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!ap(n))throw new Z("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");const r=this._nodes.values();let i,o;for(;i=r.next(),i.done!==!0;)o=i.value,o.attributes=t(o.key,o.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(t,n){if(typeof t!="function")throw new Z("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!ap(n))throw new Z("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");const r=this._edges.values();let i,o,s,a;for(;i=r.next(),i.done!==!0;)o=i.value,s=o.source,a=o.target,o.attributes=t(o.key,o.attributes,s.key,a.key,s.attributes,a.attributes,o.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(t){if(typeof t!="function")throw new Z("Graph.forEachAdjacencyEntry: expecting a callback.");Do(!1,!1,!1,this,t)}forEachAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new Z("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");Do(!1,!1,!0,this,t)}forEachAssymetricAdjacencyEntry(t){if(typeof t!="function")throw new Z("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");Do(!1,!0,!1,this,t)}forEachAssymetricAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new Z("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");Do(!1,!0,!0,this,t)}nodes(){return Array.from(this._nodes.keys())}forEachNode(t){if(typeof t!="function")throw new Z("Graph.forEachNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)}findNode(t){if(typeof t!="function")throw new Z("Graph.findNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return i.key}mapNodes(t){if(typeof t!="function")throw new Z("Graph.mapNode: expecting a callback.");const n=this._nodes.values();let r,i;const o=new Array(this.order);let s=0;for(;r=n.next(),r.done!==!0;)i=r.value,o[s++]=t(i.key,i.attributes);return o}someNode(t){if(typeof t!="function")throw new Z("Graph.someNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return!0;return!1}everyNode(t){if(typeof t!="function")throw new Z("Graph.everyNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!t(i.key,i.attributes))return!1;return!0}filterNodes(t){if(typeof t!="function")throw new Z("Graph.filterNodes: expecting a callback.");const n=this._nodes.values();let r,i;const o=[];for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)&&o.push(i.key);return o}reduceNodes(t,n){if(typeof t!="function")throw new Z("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new Z("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n;const i=this._nodes.values();let o,s;for(;o=i.next(),o.done!==!0;)s=o.value,r=t(r,s.key,s.attributes);return r}nodeEntries(){const t=this._nodes.values();return{[Symbol.iterator](){return this},next(){const n=t.next();if(n.done)return n;const r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}}}}export(){const t=new Array(this._nodes.size);let n=0;this._nodes.forEach((i,o)=>{t[n++]=LA(o,i)});const r=new Array(this._edges.size);return n=0,this._edges.forEach((i,o)=>{r[n++]=PA(this.type,o,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:t,edges:r}}import(t,n=!1){if(t instanceof Le)return t.forEachNode((u,c)=>{n?this.mergeNode(u,c):this.addNode(u,c)}),t.forEachEdge((u,c,l,d,f,h,p)=>{n?p?this.mergeUndirectedEdgeWithKey(u,l,d,c):this.mergeDirectedEdgeWithKey(u,l,d,c):p?this.addUndirectedEdgeWithKey(u,l,d,c):this.addDirectedEdgeWithKey(u,l,d,c)}),this;if(!tt(t))throw new Z("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!tt(t.attributes))throw new Z("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}let r,i,o,s,a;if(t.nodes){if(o=t.nodes,!Array.isArray(o))throw new Z("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=o.length;r<i;r++){s=o[r],DA(s);const{key:u,attributes:c}=s;n?this.mergeNode(u,c):this.addNode(u,c)}}if(t.edges){let u=!1;if(this.type==="undirected"&&(u=!0),o=t.edges,!Array.isArray(o))throw new Z("Graph.import: invalid edges. Expecting an array.");for(r=0,i=o.length;r<i;r++){a=o[r],OA(a);const{source:c,target:l,attributes:d,undirected:f=u}=a;let h;"key"in a?(h=n?f?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:f?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey,h.call(this,a.key,c,l,d)):(h=n?f?this.mergeUndirectedEdge:this.mergeDirectedEdge:f?this.addUndirectedEdge:this.addDirectedEdge,h.call(this,c,l,d))}}return this}nullCopy(t){const n=new Le(Ke({},this._options,t));return n.replaceAttributes(Ke({},this.getAttributes())),n}emptyCopy(t){const n=this.nullCopy(t);return this._nodes.forEach((r,i)=>{const o=Ke({},r.attributes);r=new n.NodeDataClass(i,o),n._nodes.set(i,r)}),n}copy(t){if(t=t||{},typeof t.type=="string"&&t.type!==this.type&&t.type!=="mixed")throw new re(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${t.type}" because this would mean losing information about the current graph.`);if(typeof t.multi=="boolean"&&t.multi!==this.multi&&t.multi!==!0)throw new re("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof t.allowSelfLoops=="boolean"&&t.allowSelfLoops!==this.allowSelfLoops&&t.allowSelfLoops!==!0)throw new re("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");const n=this.emptyCopy(t),r=this._edges.values();let i,o;for(;i=r.next(),i.done!==!0;)o=i.value,Cw(n,"copy",!1,o.undirected,o.key,o.source.key,o.target.key,Ke({},o.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){const t={};this._nodes.forEach((o,s)=>{t[s]=o.attributes});const n={},r={};this._edges.forEach((o,s)=>{const a=o.undirected?"--":"->";let u="",c=o.source.key,l=o.target.key,d;o.undirected&&c>l&&(d=c,c=l,l=d);const f=`(${c})${a}(${l})`;s.startsWith("geid_")?this.multi&&(typeof r[f]>"u"?r[f]=0:r[f]++,u+=`${r[f]}. `):u+=`[${s}]: `,u+=f,n[u]=o.attributes});const i={};for(const o in this)this.hasOwnProperty(o)&&!up.has(o)&&typeof this[o]!="function"&&typeof o!="symbol"&&(i[o]=this[o]);return i.attributes=this._attributes,i.nodes=t,i.edges=n,Nt(i,"constructor",this.constructor),i}}typeof Symbol<"u"&&(Le.prototype[Symbol.for("nodejs.util.inspect.custom")]=Le.prototype.inspect);UA.forEach(e=>{["add","merge","update"].forEach(t=>{const n=e.name(t),r=t==="add"?Cw:ZA;e.generateKey?Le.prototype[n]=function(i,o,s){return r(this,n,!0,(e.type||this.type)==="undirected",null,i,o,s,t==="update")}:Le.prototype[n]=function(i,o,s,a){return r(this,n,!1,(e.type||this.type)==="undirected",i,o,s,a,t==="update")}})});XC(Le);cA(Le);EA(Le);RA(Le);class Aw extends Le{constructor(t){const n=Ke({type:"directed"},t);if("multi"in n&&n.multi!==!1)throw new Z("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new Z('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class Iw extends Le{constructor(t){const n=Ke({type:"undirected"},t);if("multi"in n&&n.multi!==!1)throw new Z("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new Z('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class Nw extends Le{constructor(t){const n=Ke({multi:!0},t);if("multi"in n&&n.multi!==!0)throw new Z("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}}class zw extends Le{constructor(t){const n=Ke({type:"directed",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new Z("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new Z('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class Rw extends Le{constructor(t){const n=Ke({type:"undirected",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new Z("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new Z('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}function Dr(e){e.from=function(t,n){const r=Ke({},t.options,n),i=new e(r);return i.import(t),i}}Dr(Le);Dr(Aw);Dr(Iw);Dr(Nw);Dr(zw);Dr(Rw);Le.Graph=Le;Le.DirectedGraph=Aw;Le.UndirectedGraph=Iw;Le.MultiGraph=Nw;Le.MultiDirectedGraph=zw;Le.MultiUndirectedGraph=Rw;Le.InvalidArgumentsGraphError=Z;Le.NotFoundGraphError=U;Le.UsageGraphError=re;function BA(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yr(e){var t=BA(e,"string");return typeof t=="symbol"?t:t+""}function dt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Yr(r.key),r)}}function ft(e,t,n){return t&&lp(e.prototype,t),n&&lp(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function cr(e){return cr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},cr(e)}function Lw(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Lw=function(){return!!e})()}function VA(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function HA(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return VA(e)}function Mt(e,t,n){return t=cr(t),HA(e,Lw()?Reflect.construct(t,n||[],cr(e).constructor):t.apply(e,n))}function Zu(e,t){return Zu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Zu(e,t)}function Ft(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zu(e,t)}function qA(e){if(Array.isArray(e))return e}function WA(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,a=[],u=!0,c=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);u=!0);}catch(l){c=!0,i=l}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return a}}function Bu(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Pw(e,t){if(e){if(typeof e=="string")return Bu(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bu(e,t):void 0}}function KA(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
111
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lr(e,t){return qA(e)||WA(e,t)||Pw(e,t)||KA()}var ru={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"},Dw=new Int8Array(4),Ho=new Int32Array(Dw.buffer,0,1),Ow=new Float32Array(Dw.buffer,0,1),JA=/^\s*rgba?\s*\(/,YA=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function XA(e){var t=0,n=0,r=0,i=1;if(e[0]==="#")e.length===4?(t=parseInt(e.charAt(1)+e.charAt(1),16),n=parseInt(e.charAt(2)+e.charAt(2),16),r=parseInt(e.charAt(3)+e.charAt(3),16)):(t=parseInt(e.charAt(1)+e.charAt(2),16),n=parseInt(e.charAt(3)+e.charAt(4),16),r=parseInt(e.charAt(5)+e.charAt(6),16)),e.length===9&&(i=parseInt(e.charAt(7)+e.charAt(8),16)/255);else if(JA.test(e)){var o=e.match(YA);o&&(t=+o[1],n=+o[2],r=+o[3],o[4]&&(i=+o[4]))}return{r:t,g:n,b:r,a:i}}var Jn={};for(var Oo in ru)Jn[Oo]=En(ru[Oo]),Jn[ru[Oo]]=Jn[Oo];function Mw(e,t,n,r,i){return Ho[0]=r<<24|n<<16|t<<8|e,Ho[0]=Ho[0]&4278190079,Ow[0]}function En(e){if(e=e.toLowerCase(),typeof Jn[e]<"u")return Jn[e];var t=XA(e),n=t.r,r=t.g,i=t.b,o=t.a;o=o*255|0;var s=Mw(n,r,i,o);return Jn[e]=s,s}function QA(e,t){Ow[0]=En(e);var n=Ho[0],r=n&255,i=n>>8&255,o=n>>16&255,s=n>>24&255;return[r,i,o,s]}var iu={};function Fw(e){if(typeof iu[e]<"u")return iu[e];var t=(e&16711680)>>>16,n=(e&65280)>>>8,r=e&255,i=255,o=Mw(t,n,r,i);return iu[e]=o,o}function dp(e,t,n,r){return n+(t<<8)+(e<<16)}function fp(e,t,n,r,i,o){var s=Math.floor(n/o*i),a=Math.floor(e.drawingBufferHeight/o-r/o*i),u=new Uint8Array(4);e.bindFramebuffer(e.FRAMEBUFFER,t),e.readPixels(s,a,1,1,e.RGBA,e.UNSIGNED_BYTE,u);var c=lr(u,4),l=c[0],d=c[1],f=c[2],h=c[3];return[l,d,f,h]}function N(e,t,n){return(t=Yr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?hp(Object(n),!0).forEach(function(r){N(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hp(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function eI(e,t){for(;!{}.hasOwnProperty.call(e,t)&&(e=cr(e))!==null;);return e}function Vu(){return Vu=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=eI(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},Vu.apply(null,arguments)}function Uw(e,t,n,r){var i=Vu(cr(e.prototype),t,n);return typeof i=="function"?function(o){return i.apply(n,o)}:i}function tI(e){return e.normalized?1:e.size}function ou(e){var t=0;return e.forEach(function(n){return t+=tI(n)}),t}function Gw(e,t,n){var r=e==="VERTEX"?t.VERTEX_SHADER:t.FRAGMENT_SHADER,i=t.createShader(r);if(i===null)throw new Error("loadShader: error while creating the shader");t.shaderSource(i,n),t.compileShader(i);var o=t.getShaderParameter(i,t.COMPILE_STATUS);if(!o){var s=t.getShaderInfoLog(i);throw t.deleteShader(i),new Error(`loadShader: error while compiling the shader:
112
+ `.concat(s,`
113
+ `).concat(n))}return i}function nI(e,t){return Gw("VERTEX",e,t)}function rI(e,t){return Gw("FRAGMENT",e,t)}function iI(e,t){var n=e.createProgram();if(n===null)throw new Error("loadProgram: error while creating the program.");var r,i;for(r=0,i=t.length;r<i;r++)e.attachShader(n,t[r]);e.linkProgram(n);var o=e.getProgramParameter(n,e.LINK_STATUS);if(!o){var s=e.getProgramInfoLog(n);throw e.deleteProgram(n),new Error("loadProgram: error while linking the program: ".concat(s))}return n}function pp(e){var t=e.gl,n=e.buffer,r=e.program,i=e.vertexShader,o=e.fragmentShader;t.deleteShader(i),t.deleteShader(o),t.deleteProgram(r),t.deleteBuffer(n)}function mp(e){return e%1===0?e.toFixed(1):e.toString()}var gp=`#define PICKING_MODE
114
+ `,oI=N(N(N(N(N(N(N(N({},WebGL2RenderingContext.BOOL,1),WebGL2RenderingContext.BYTE,1),WebGL2RenderingContext.UNSIGNED_BYTE,1),WebGL2RenderingContext.SHORT,2),WebGL2RenderingContext.UNSIGNED_SHORT,2),WebGL2RenderingContext.INT,4),WebGL2RenderingContext.UNSIGNED_INT,4),WebGL2RenderingContext.FLOAT,4),jw=(function(){function e(t,n,r){dt(this,e),N(this,"array",new Float32Array),N(this,"constantArray",new Float32Array),N(this,"capacity",0),N(this,"verticesCount",0);var i=this.getDefinition();if(this.VERTICES=i.VERTICES,this.VERTEX_SHADER_SOURCE=i.VERTEX_SHADER_SOURCE,this.FRAGMENT_SHADER_SOURCE=i.FRAGMENT_SHADER_SOURCE,this.UNIFORMS=i.UNIFORMS,this.ATTRIBUTES=i.ATTRIBUTES,this.METHOD=i.METHOD,this.CONSTANT_ATTRIBUTES="CONSTANT_ATTRIBUTES"in i?i.CONSTANT_ATTRIBUTES:[],this.CONSTANT_DATA="CONSTANT_DATA"in i?i.CONSTANT_DATA:[],this.isInstanced="CONSTANT_ATTRIBUTES"in i,this.ATTRIBUTES_ITEMS_COUNT=ou(this.ATTRIBUTES),this.STRIDE=this.VERTICES*this.ATTRIBUTES_ITEMS_COUNT,this.renderer=r,this.normalProgram=this.getProgramInfo("normal",t,i.VERTEX_SHADER_SOURCE,i.FRAGMENT_SHADER_SOURCE,null),this.pickProgram=n?this.getProgramInfo("pick",t,gp+i.VERTEX_SHADER_SOURCE,gp+i.FRAGMENT_SHADER_SOURCE,n):null,this.isInstanced){var o=ou(this.CONSTANT_ATTRIBUTES);if(this.CONSTANT_DATA.length!==this.VERTICES)throw new Error("Program: error while getting constant data (expected ".concat(this.VERTICES," items, received ").concat(this.CONSTANT_DATA.length," instead)"));this.constantArray=new Float32Array(this.CONSTANT_DATA.length*o);for(var s=0;s<this.CONSTANT_DATA.length;s++){var a=this.CONSTANT_DATA[s];if(a.length!==o)throw new Error("Program: error while getting constant data (one vector has ".concat(a.length," items instead of ").concat(o,")"));for(var u=0;u<a.length;u++)this.constantArray[s*o+u]=a[u]}this.STRIDE=this.ATTRIBUTES_ITEMS_COUNT}}return ft(e,[{key:"kill",value:function(){pp(this.normalProgram),this.pickProgram&&(pp(this.pickProgram),this.pickProgram=null)}},{key:"getProgramInfo",value:function(n,r,i,o,s){var a=this.getDefinition(),u=r.createBuffer();if(u===null)throw new Error("Program: error while creating the WebGL buffer.");var c=nI(r,i),l=rI(r,o),d=iI(r,[c,l]),f={};a.UNIFORMS.forEach(function(m){var g=r.getUniformLocation(d,m);g&&(f[m]=g)});var h={};a.ATTRIBUTES.forEach(function(m){h[m.name]=r.getAttribLocation(d,m.name)});var p;if("CONSTANT_ATTRIBUTES"in a&&(a.CONSTANT_ATTRIBUTES.forEach(function(m){h[m.name]=r.getAttribLocation(d,m.name)}),p=r.createBuffer(),p===null))throw new Error("Program: error while creating the WebGL constant buffer.");return{name:n,program:d,gl:r,frameBuffer:s,buffer:u,constantBuffer:p||{},uniformLocations:f,attributeLocations:h,isPicking:n==="pick",vertexShader:c,fragmentShader:l}}},{key:"bindProgram",value:function(n){var r=this,i=0,o=n.gl,s=n.buffer;this.isInstanced?(o.bindBuffer(o.ARRAY_BUFFER,n.constantBuffer),i=0,this.CONSTANT_ATTRIBUTES.forEach(function(a){return i+=r.bindAttribute(a,n,i,!1)}),o.bufferData(o.ARRAY_BUFFER,this.constantArray,o.STATIC_DRAW),o.bindBuffer(o.ARRAY_BUFFER,n.buffer),i=0,this.ATTRIBUTES.forEach(function(a){return i+=r.bindAttribute(a,n,i,!0)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)):(o.bindBuffer(o.ARRAY_BUFFER,s),i=0,this.ATTRIBUTES.forEach(function(a){return i+=r.bindAttribute(a,n,i)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)),o.bindBuffer(o.ARRAY_BUFFER,null)}},{key:"unbindProgram",value:function(n){var r=this;this.isInstanced?(this.CONSTANT_ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!1)}),this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!0)})):this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n)})}},{key:"bindAttribute",value:function(n,r,i,o){var s=oI[n.type];if(typeof s!="number")throw new Error('Program.bind: yet unsupported attribute type "'.concat(n.type,'"'));var a=r.attributeLocations[n.name],u=r.gl;if(a!==-1){u.enableVertexAttribArray(a);var c=this.isInstanced?(o?this.ATTRIBUTES_ITEMS_COUNT:ou(this.CONSTANT_ATTRIBUTES))*Float32Array.BYTES_PER_ELEMENT:this.ATTRIBUTES_ITEMS_COUNT*Float32Array.BYTES_PER_ELEMENT;if(u.vertexAttribPointer(a,n.size,n.type,n.normalized||!1,c,i),this.isInstanced&&o)if(u instanceof WebGL2RenderingContext)u.vertexAttribDivisor(a,1);else{var l=u.getExtension("ANGLE_instanced_arrays");l&&l.vertexAttribDivisorANGLE(a,1)}}return n.size*s}},{key:"unbindAttribute",value:function(n,r,i){var o=r.attributeLocations[n.name],s=r.gl;if(o!==-1&&(s.disableVertexAttribArray(o),this.isInstanced&&i))if(s instanceof WebGL2RenderingContext)s.vertexAttribDivisor(o,0);else{var a=s.getExtension("ANGLE_instanced_arrays");a&&a.vertexAttribDivisorANGLE(o,0)}}},{key:"reallocate",value:function(n){n!==this.capacity&&(this.capacity=n,this.verticesCount=this.VERTICES*n,this.array=new Float32Array(this.isInstanced?this.capacity*this.ATTRIBUTES_ITEMS_COUNT:this.verticesCount*this.ATTRIBUTES_ITEMS_COUNT))}},{key:"hasNothingToRender",value:function(){return this.verticesCount===0}},{key:"renderProgram",value:function(n,r){var i=r.gl,o=r.program;i.enable(i.BLEND),i.useProgram(o),this.setUniforms(n,r),this.drawWebGL(this.METHOD,r)}},{key:"render",value:function(n){this.hasNothingToRender()||(this.pickProgram&&(this.pickProgram.gl.viewport(0,0,n.width*n.pixelRatio/n.downSizingRatio,n.height*n.pixelRatio/n.downSizingRatio),this.bindProgram(this.pickProgram),this.renderProgram(K(K({},n),{},{pixelRatio:n.pixelRatio/n.downSizingRatio}),this.pickProgram),this.unbindProgram(this.pickProgram)),this.normalProgram.gl.viewport(0,0,n.width*n.pixelRatio,n.height*n.pixelRatio),this.bindProgram(this.normalProgram),this.renderProgram(n,this.normalProgram),this.unbindProgram(this.normalProgram))}},{key:"drawWebGL",value:function(n,r){var i=r.gl,o=r.frameBuffer;if(i.bindFramebuffer(i.FRAMEBUFFER,o),!this.isInstanced)i.drawArrays(n,0,this.verticesCount);else if(i instanceof WebGL2RenderingContext)i.drawArraysInstanced(n,0,this.VERTICES,this.capacity);else{var s=i.getExtension("ANGLE_instanced_arrays");s&&s.drawArraysInstancedANGLE(n,0,this.VERTICES,this.capacity)}}}])})(),Zw=(function(e){function t(){return dt(this,t),Mt(this,t,arguments)}return Ft(t,e),ft(t,[{key:"kill",value:function(){Uw(t,"kill",this)([])}},{key:"process",value:function(r,i,o){var s=i*this.STRIDE;if(o.hidden){for(var a=s+this.STRIDE;s<a;s++)this.array[s]=0;return}return this.processVisibleItem(Fw(r),s,o)}}])})(jw),Pa=(function(e){function t(){var n;dt(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=Mt(this,t,[].concat(i)),N(n,"drawLabel",void 0),n}return Ft(t,e),ft(t,[{key:"kill",value:function(){Uw(t,"kill",this)([])}},{key:"process",value:function(r,i,o,s,a){var u=i*this.STRIDE;if(a.hidden||o.hidden||s.hidden){for(var c=u+this.STRIDE;u<c;u++)this.array[u]=0;return}return this.processVisibleItem(Fw(r),u,o,s,a)}}])})(jw);function sI(e,t){return(function(){function n(r,i,o){dt(this,n),N(this,"drawLabel",t),this.programs=e.map(function(s){return new s(r,i,o)})}return ft(n,[{key:"reallocate",value:function(i){this.programs.forEach(function(o){return o.reallocate(i)})}},{key:"process",value:function(i,o,s,a,u){this.programs.forEach(function(c){return c.process(i,o,s,a,u)})}},{key:"render",value:function(i){this.programs.forEach(function(o){return o.render(i)})}},{key:"kill",value:function(){this.programs.forEach(function(i){return i.kill()})}}])})()}function aI(e,t,n,r,i){var o=i.edgeLabelSize,s=i.edgeLabelFont,a=i.edgeLabelWeight,u=i.edgeLabelColor.attribute?t[i.edgeLabelColor.attribute]||i.edgeLabelColor.color||"#000":i.edgeLabelColor.color,c=t.label;if(c){e.fillStyle=u,e.font="".concat(a," ").concat(o,"px ").concat(s);var l=n.size,d=r.size,f=n.x,h=n.y,p=r.x,m=r.y,g=(f+p)/2,w=(h+m)/2,y=p-f,b=m-h,v=Math.sqrt(y*y+b*b);if(!(v<l+d)){f+=y*l/v,h+=b*l/v,p-=y*d/v,m-=b*d/v,g=(f+p)/2,w=(h+m)/2,y=p-f,b=m-h,v=Math.sqrt(y*y+b*b);var S=e.measureText(c).width;if(S>v){var _="…";for(c=c+_,S=e.measureText(c).width;S>v&&c.length>1;)c=c.slice(0,-2)+_,S=e.measureText(c).width;if(c.length<4)return}var $;y>0?b>0?$=Math.acos(y/v):$=Math.asin(b/v):b>0?$=Math.acos(y/v)+Math.PI:$=Math.asin(y/v)+Math.PI/2,e.save(),e.translate(g,w),e.rotate($),e.fillText(c,-S/2,t.size/2+o),e.restore()}}}function Bw(e,t,n){if(t.label){var r=n.labelSize,i=n.labelFont,o=n.labelWeight,s=n.labelColor.attribute?t[n.labelColor.attribute]||n.labelColor.color||"#000":n.labelColor.color;e.fillStyle=s,e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillText(t.label,t.x+t.size+3,t.y+r/3)}}function uI(e,t,n){var r=n.labelSize,i=n.labelFont,o=n.labelWeight;e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillStyle="#FFF",e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=8,e.shadowColor="#000";var s=2;if(typeof t.label=="string"){var a=e.measureText(t.label).width,u=Math.round(a+5),c=Math.round(r+2*s),l=Math.max(t.size,r/2)+s,d=Math.asin(c/2/l),f=Math.sqrt(Math.abs(Math.pow(l,2)-Math.pow(c/2,2)));e.beginPath(),e.moveTo(t.x+f,t.y+c/2),e.lineTo(t.x+l+u,t.y+c/2),e.lineTo(t.x+l+u,t.y-c/2),e.lineTo(t.x+f,t.y-c/2),e.arc(t.x,t.y,l,d,-d),e.closePath(),e.fill()}else e.beginPath(),e.arc(t.x,t.y,t.size+s,0,Math.PI*2),e.closePath(),e.fill();e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=0,Bw(e,t,n)}var cI=`
115
+ precision highp float;
116
+
117
+ varying vec4 v_color;
118
+ varying vec2 v_diffVector;
119
+ varying float v_radius;
120
+
121
+ uniform float u_correctionRatio;
122
+
123
+ const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);
124
+
125
+ void main(void) {
126
+ float border = u_correctionRatio * 2.0;
127
+ float dist = length(v_diffVector) - v_radius + border;
128
+
129
+ // No antialiasing for picking mode:
130
+ #ifdef PICKING_MODE
131
+ if (dist > border)
132
+ gl_FragColor = transparent;
133
+ else
134
+ gl_FragColor = v_color;
135
+
136
+ #else
137
+ float t = 0.0;
138
+ if (dist > border)
139
+ t = 1.0;
140
+ else if (dist > 0.0)
141
+ t = dist / border;
142
+
143
+ gl_FragColor = mix(v_color, transparent, t);
144
+ #endif
145
+ }
146
+ `,lI=cI,dI=`
147
+ attribute vec4 a_id;
148
+ attribute vec4 a_color;
149
+ attribute vec2 a_position;
150
+ attribute float a_size;
151
+ attribute float a_angle;
152
+
153
+ uniform mat3 u_matrix;
154
+ uniform float u_sizeRatio;
155
+ uniform float u_correctionRatio;
156
+
157
+ varying vec4 v_color;
158
+ varying vec2 v_diffVector;
159
+ varying float v_radius;
160
+ varying float v_border;
161
+
162
+ const float bias = 255.0 / 254.0;
163
+
164
+ void main() {
165
+ float size = a_size * u_correctionRatio / u_sizeRatio * 4.0;
166
+ vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));
167
+ vec2 position = a_position + diffVector;
168
+ gl_Position = vec4(
169
+ (u_matrix * vec3(position, 1)).xy,
170
+ 0,
171
+ 1
172
+ );
173
+
174
+ v_diffVector = diffVector;
175
+ v_radius = size / 2.0;
176
+
177
+ #ifdef PICKING_MODE
178
+ // For picking mode, we use the ID as the color:
179
+ v_color = a_id;
180
+ #else
181
+ // For normal mode, we use the color:
182
+ v_color = a_color;
183
+ #endif
184
+
185
+ v_color.a *= bias;
186
+ }
187
+ `,fI=dI,Vw=WebGLRenderingContext,yp=Vw.UNSIGNED_BYTE,su=Vw.FLOAT,hI=["u_sizeRatio","u_correctionRatio","u_matrix"],Da=(function(e){function t(){return dt(this,t),Mt(this,t,arguments)}return Ft(t,e),ft(t,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:fI,FRAGMENT_SHADER_SOURCE:lI,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:hI,ATTRIBUTES:[{name:"a_position",size:2,type:su},{name:"a_size",size:1,type:su},{name:"a_color",size:4,type:yp,normalized:!0},{name:"a_id",size:4,type:yp,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:su}],CONSTANT_DATA:[[t.ANGLE_1],[t.ANGLE_2],[t.ANGLE_3]]}}},{key:"processVisibleItem",value:function(r,i,o){var s=this.array,a=En(o.color);s[i++]=o.x,s[i++]=o.y,s[i++]=o.size,s[i++]=a,s[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,s=i.uniformLocations,a=s.u_sizeRatio,u=s.u_correctionRatio,c=s.u_matrix;o.uniform1f(u,r.correctionRatio),o.uniform1f(a,r.sizeRatio),o.uniformMatrix3fv(c,!1,r.matrix)}}])})(Zw);N(Da,"ANGLE_1",0);N(Da,"ANGLE_2",2*Math.PI/3);N(Da,"ANGLE_3",4*Math.PI/3);var pI=`
188
+ precision mediump float;
189
+
190
+ varying vec4 v_color;
191
+
192
+ void main(void) {
193
+ gl_FragColor = v_color;
194
+ }
195
+ `,mI=pI,gI=`
196
+ attribute vec2 a_position;
197
+ attribute vec2 a_normal;
198
+ attribute float a_radius;
199
+ attribute vec3 a_barycentric;
200
+
201
+ #ifdef PICKING_MODE
202
+ attribute vec4 a_id;
203
+ #else
204
+ attribute vec4 a_color;
205
+ #endif
206
+
207
+ uniform mat3 u_matrix;
208
+ uniform float u_sizeRatio;
209
+ uniform float u_correctionRatio;
210
+ uniform float u_minEdgeThickness;
211
+ uniform float u_lengthToThicknessRatio;
212
+ uniform float u_widenessToThicknessRatio;
213
+
214
+ varying vec4 v_color;
215
+
216
+ const float bias = 255.0 / 254.0;
217
+
218
+ void main() {
219
+ float minThickness = u_minEdgeThickness;
220
+
221
+ float normalLength = length(a_normal);
222
+ vec2 unitNormal = a_normal / normalLength;
223
+
224
+ // These first computations are taken from edge.vert.glsl and
225
+ // edge.clamped.vert.glsl. Please read it to get better comments on what's
226
+ // happening:
227
+ float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);
228
+ float webGLThickness = pixelsThickness * u_correctionRatio;
229
+ float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;
230
+ float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;
231
+ float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;
232
+
233
+ float da = a_barycentric.x;
234
+ float db = a_barycentric.y;
235
+ float dc = a_barycentric.z;
236
+
237
+ vec2 delta = vec2(
238
+ da * (webGLNodeRadius * unitNormal.y)
239
+ + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)
240
+ + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),
241
+
242
+ da * (-webGLNodeRadius * unitNormal.x)
243
+ + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)
244
+ + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)
245
+ );
246
+
247
+ vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;
248
+
249
+ gl_Position = vec4(position, 0, 1);
250
+
251
+ #ifdef PICKING_MODE
252
+ // For picking mode, we use the ID as the color:
253
+ v_color = a_id;
254
+ #else
255
+ // For normal mode, we use the color:
256
+ v_color = a_color;
257
+ #endif
258
+
259
+ v_color.a *= bias;
260
+ }
261
+ `,yI=gI,Hw=WebGLRenderingContext,vp=Hw.UNSIGNED_BYTE,Mo=Hw.FLOAT,vI=["u_matrix","u_sizeRatio","u_correctionRatio","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio"],Oa={extremity:"target",lengthToThicknessRatio:2.5,widenessToThicknessRatio:2};function qw(e){var t=K(K({},Oa),e||{});return(function(n){function r(){return dt(this,r),Mt(this,r,arguments)}return Ft(r,n),ft(r,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:yI,FRAGMENT_SHADER_SOURCE:mI,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:vI,ATTRIBUTES:[{name:"a_position",size:2,type:Mo},{name:"a_normal",size:2,type:Mo},{name:"a_radius",size:1,type:Mo},{name:"a_color",size:4,type:vp,normalized:!0},{name:"a_id",size:4,type:vp,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_barycentric",size:3,type:Mo}],CONSTANT_DATA:[[1,0,0],[0,1,0],[0,0,1]]}}},{key:"processVisibleItem",value:function(o,s,a,u,c){if(t.extremity==="source"){var l=[u,a];a=l[0],u=l[1]}var d=c.size||1,f=u.size||1,h=a.x,p=a.y,m=u.x,g=u.y,w=En(c.color),y=m-h,b=g-p,v=y*y+b*b,S=0,_=0;v&&(v=1/Math.sqrt(v),S=-b*v*d,_=y*v*d);var $=this.array;$[s++]=m,$[s++]=g,$[s++]=-S,$[s++]=-_,$[s++]=f,$[s++]=w,$[s++]=o}},{key:"setUniforms",value:function(o,s){var a=s.gl,u=s.uniformLocations,c=u.u_matrix,l=u.u_sizeRatio,d=u.u_correctionRatio,f=u.u_minEdgeThickness,h=u.u_lengthToThicknessRatio,p=u.u_widenessToThicknessRatio;a.uniformMatrix3fv(c,!1,o.matrix),a.uniform1f(l,o.sizeRatio),a.uniform1f(d,o.correctionRatio),a.uniform1f(f,o.minEdgeThickness),a.uniform1f(h,t.lengthToThicknessRatio),a.uniform1f(p,t.widenessToThicknessRatio)}}])})(Pa)}qw();var bI=`
262
+ precision mediump float;
263
+
264
+ varying vec4 v_color;
265
+ varying vec2 v_normal;
266
+ varying float v_thickness;
267
+ varying float v_feather;
268
+
269
+ const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);
270
+
271
+ void main(void) {
272
+ // We only handle antialiasing for normal mode:
273
+ #ifdef PICKING_MODE
274
+ gl_FragColor = v_color;
275
+ #else
276
+ float dist = length(v_normal) * v_thickness;
277
+
278
+ float t = smoothstep(
279
+ v_thickness - v_feather,
280
+ v_thickness,
281
+ dist
282
+ );
283
+
284
+ gl_FragColor = mix(v_color, transparent, t);
285
+ #endif
286
+ }
287
+ `,Ww=bI,wI=`
288
+ attribute vec4 a_id;
289
+ attribute vec4 a_color;
290
+ attribute vec2 a_normal;
291
+ attribute float a_normalCoef;
292
+ attribute vec2 a_positionStart;
293
+ attribute vec2 a_positionEnd;
294
+ attribute float a_positionCoef;
295
+ attribute float a_radius;
296
+ attribute float a_radiusCoef;
297
+
298
+ uniform mat3 u_matrix;
299
+ uniform float u_zoomRatio;
300
+ uniform float u_sizeRatio;
301
+ uniform float u_pixelRatio;
302
+ uniform float u_correctionRatio;
303
+ uniform float u_minEdgeThickness;
304
+ uniform float u_lengthToThicknessRatio;
305
+ uniform float u_feather;
306
+
307
+ varying vec4 v_color;
308
+ varying vec2 v_normal;
309
+ varying float v_thickness;
310
+ varying float v_feather;
311
+
312
+ const float bias = 255.0 / 254.0;
313
+
314
+ void main() {
315
+ float minThickness = u_minEdgeThickness;
316
+
317
+ float radius = a_radius * a_radiusCoef;
318
+ vec2 normal = a_normal * a_normalCoef;
319
+ vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;
320
+
321
+ float normalLength = length(normal);
322
+ vec2 unitNormal = normal / normalLength;
323
+
324
+ // These first computations are taken from edge.vert.glsl. Please read it to
325
+ // get better comments on what's happening:
326
+ float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);
327
+ float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;
328
+
329
+ // Here, we move the point to leave space for the arrow head:
330
+ float direction = sign(radius);
331
+ float webGLNodeRadius = direction * radius * 2.0 * u_correctionRatio / u_sizeRatio;
332
+ float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;
333
+
334
+ vec2 compensationVector = vec2(-direction * unitNormal.y, direction * unitNormal.x) * (webGLNodeRadius + webGLArrowHeadLength);
335
+
336
+ // Here is the proper position of the vertex
337
+ gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness + compensationVector, 1)).xy, 0, 1);
338
+
339
+ v_thickness = webGLThickness / u_zoomRatio;
340
+
341
+ v_normal = unitNormal;
342
+
343
+ v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;
344
+
345
+ #ifdef PICKING_MODE
346
+ // For picking mode, we use the ID as the color:
347
+ v_color = a_id;
348
+ #else
349
+ // For normal mode, we use the color:
350
+ v_color = a_color;
351
+ #endif
352
+
353
+ v_color.a *= bias;
354
+ }
355
+ `,_I=wI,Kw=WebGLRenderingContext,bp=Kw.UNSIGNED_BYTE,In=Kw.FLOAT,kI=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness","u_lengthToThicknessRatio"],SI={lengthToThicknessRatio:Oa.lengthToThicknessRatio};function Jw(e){var t=K(K({},SI),e||{});return(function(n){function r(){return dt(this,r),Mt(this,r,arguments)}return Ft(r,n),ft(r,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:_I,FRAGMENT_SHADER_SOURCE:Ww,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:kI,ATTRIBUTES:[{name:"a_positionStart",size:2,type:In},{name:"a_positionEnd",size:2,type:In},{name:"a_normal",size:2,type:In},{name:"a_color",size:4,type:bp,normalized:!0},{name:"a_id",size:4,type:bp,normalized:!0},{name:"a_radius",size:1,type:In}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:In},{name:"a_normalCoef",size:1,type:In},{name:"a_radiusCoef",size:1,type:In}],CONSTANT_DATA:[[0,1,0],[0,-1,0],[1,1,1],[1,1,1],[0,-1,0],[1,-1,-1]]}}},{key:"processVisibleItem",value:function(o,s,a,u,c){var l=c.size||1,d=a.x,f=a.y,h=u.x,p=u.y,m=En(c.color),g=h-d,w=p-f,y=u.size||1,b=g*g+w*w,v=0,S=0;b&&(b=1/Math.sqrt(b),v=-w*b*l,S=g*b*l);var _=this.array;_[s++]=d,_[s++]=f,_[s++]=h,_[s++]=p,_[s++]=v,_[s++]=S,_[s++]=m,_[s++]=o,_[s++]=y}},{key:"setUniforms",value:function(o,s){var a=s.gl,u=s.uniformLocations,c=u.u_matrix,l=u.u_zoomRatio,d=u.u_feather,f=u.u_pixelRatio,h=u.u_correctionRatio,p=u.u_sizeRatio,m=u.u_minEdgeThickness,g=u.u_lengthToThicknessRatio;a.uniformMatrix3fv(c,!1,o.matrix),a.uniform1f(l,o.zoomRatio),a.uniform1f(p,o.sizeRatio),a.uniform1f(h,o.correctionRatio),a.uniform1f(f,o.pixelRatio),a.uniform1f(d,o.antiAliasingFeather),a.uniform1f(m,o.minEdgeThickness),a.uniform1f(g,t.lengthToThicknessRatio)}}])})(Pa)}Jw();function Yw(e){return sI([Jw(e),qw(e)])}var xI=Yw(),EI=xI,$I=`
356
+ attribute vec4 a_id;
357
+ attribute vec4 a_color;
358
+ attribute vec2 a_normal;
359
+ attribute float a_normalCoef;
360
+ attribute vec2 a_positionStart;
361
+ attribute vec2 a_positionEnd;
362
+ attribute float a_positionCoef;
363
+
364
+ uniform mat3 u_matrix;
365
+ uniform float u_sizeRatio;
366
+ uniform float u_zoomRatio;
367
+ uniform float u_pixelRatio;
368
+ uniform float u_correctionRatio;
369
+ uniform float u_minEdgeThickness;
370
+ uniform float u_feather;
371
+
372
+ varying vec4 v_color;
373
+ varying vec2 v_normal;
374
+ varying float v_thickness;
375
+ varying float v_feather;
376
+
377
+ const float bias = 255.0 / 254.0;
378
+
379
+ void main() {
380
+ float minThickness = u_minEdgeThickness;
381
+
382
+ vec2 normal = a_normal * a_normalCoef;
383
+ vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;
384
+
385
+ float normalLength = length(normal);
386
+ vec2 unitNormal = normal / normalLength;
387
+
388
+ // We require edges to be at least "minThickness" pixels thick *on screen*
389
+ // (so we need to compensate the size ratio):
390
+ float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);
391
+
392
+ // Then, we need to retrieve the normalized thickness of the edge in the WebGL
393
+ // referential (in a ([0, 1], [0, 1]) space), using our "magic" correction
394
+ // ratio:
395
+ float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;
396
+
397
+ // Here is the proper position of the vertex
398
+ gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness, 1)).xy, 0, 1);
399
+
400
+ // For the fragment shader though, we need a thickness that takes the "magic"
401
+ // correction ratio into account (as in webGLThickness), but so that the
402
+ // antialiasing effect does not depend on the zoom level. So here's yet
403
+ // another thickness version:
404
+ v_thickness = webGLThickness / u_zoomRatio;
405
+
406
+ v_normal = unitNormal;
407
+
408
+ v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;
409
+
410
+ #ifdef PICKING_MODE
411
+ // For picking mode, we use the ID as the color:
412
+ v_color = a_id;
413
+ #else
414
+ // For normal mode, we use the color:
415
+ v_color = a_color;
416
+ #endif
417
+
418
+ v_color.a *= bias;
419
+ }
420
+ `,TI=$I,Xw=WebGLRenderingContext,wp=Xw.UNSIGNED_BYTE,Zr=Xw.FLOAT,CI=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness"],AI=(function(e){function t(){return dt(this,t),Mt(this,t,arguments)}return Ft(t,e),ft(t,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:TI,FRAGMENT_SHADER_SOURCE:Ww,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:CI,ATTRIBUTES:[{name:"a_positionStart",size:2,type:Zr},{name:"a_positionEnd",size:2,type:Zr},{name:"a_normal",size:2,type:Zr},{name:"a_color",size:4,type:wp,normalized:!0},{name:"a_id",size:4,type:wp,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:Zr},{name:"a_normalCoef",size:1,type:Zr}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[1,1],[0,-1],[1,-1]]}}},{key:"processVisibleItem",value:function(r,i,o,s,a){var u=a.size||1,c=o.x,l=o.y,d=s.x,f=s.y,h=En(a.color),p=d-c,m=f-l,g=p*p+m*m,w=0,y=0;g&&(g=1/Math.sqrt(g),w=-m*g*u,y=p*g*u);var b=this.array;b[i++]=c,b[i++]=l,b[i++]=d,b[i++]=f,b[i++]=w,b[i++]=y,b[i++]=h,b[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,s=i.uniformLocations,a=s.u_matrix,u=s.u_zoomRatio,c=s.u_feather,l=s.u_pixelRatio,d=s.u_correctionRatio,f=s.u_sizeRatio,h=s.u_minEdgeThickness;o.uniformMatrix3fv(a,!1,r.matrix),o.uniform1f(u,r.zoomRatio),o.uniform1f(f,r.sizeRatio),o.uniform1f(d,r.correctionRatio),o.uniform1f(l,r.pixelRatio),o.uniform1f(c,r.antiAliasingFeather),o.uniform1f(h,r.minEdgeThickness)}}])})(Pa),Mf=(function(e){function t(){var n;return dt(this,t),n=Mt(this,t),n.rawEmitter=n,n}return Ft(t,e),ft(t)})(bw.EventEmitter),au,_p;function II(){return _p||(_p=1,au=function(t){return t!==null&&typeof t=="object"&&typeof t.addUndirectedEdgeWithKey=="function"&&typeof t.dropNode=="function"&&typeof t.multi=="boolean"}),au}var NI=II();const zI=OC(NI);var RI=function(t){return t},LI=function(t){return t*t},PI=function(t){return t*(2-t)},DI=function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},OI=function(t){return t*t*t},MI=function(t){return--t*t*t+1},FI=function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},UI={linear:RI,quadraticIn:LI,quadraticOut:PI,quadraticInOut:DI,cubicIn:OI,cubicOut:MI,cubicInOut:FI},GI={easing:"quadraticInOut",duration:150};function jt(){return Float32Array.of(1,0,0,0,1,0,0,0,1)}function Fo(e,t,n){return e[0]=t,e[4]=typeof n=="number"?n:t,e}function kp(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[3]=-n,e[4]=r,e}function Sp(e,t,n){return e[6]=t,e[7]=n,e}function pn(e,t){var n=e[0],r=e[1],i=e[2],o=e[3],s=e[4],a=e[5],u=e[6],c=e[7],l=e[8],d=t[0],f=t[1],h=t[2],p=t[3],m=t[4],g=t[5],w=t[6],y=t[7],b=t[8];return e[0]=d*n+f*o+h*u,e[1]=d*r+f*s+h*c,e[2]=d*i+f*a+h*l,e[3]=p*n+m*o+g*u,e[4]=p*r+m*s+g*c,e[5]=p*i+m*a+g*l,e[6]=w*n+y*o+b*u,e[7]=w*r+y*s+b*c,e[8]=w*i+y*a+b*l,e}function Hu(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=e[0],i=e[1],o=e[3],s=e[4],a=e[6],u=e[7],c=t.x,l=t.y;return{x:c*r+l*o+a*n,y:c*i+l*s+u*n}}function jI(e,t){var n=e.height/e.width,r=t.height/t.width;return n<1&&r>1||n>1&&r<1?1:Math.min(Math.max(r,1/r),Math.max(1/n,n))}function Br(e,t,n,r,i){var o=e.angle,s=e.ratio,a=e.x,u=e.y,c=t.width,l=t.height,d=jt(),f=Math.min(c,l)-2*r,h=jI(t,n);return i?(pn(d,Sp(jt(),a,u)),pn(d,Fo(jt(),s)),pn(d,kp(jt(),o)),pn(d,Fo(jt(),c/f/2/h,l/f/2/h))):(pn(d,Fo(jt(),2*(f/c)*h,2*(f/l)*h)),pn(d,kp(jt(),-o)),pn(d,Fo(jt(),1/s)),pn(d,Sp(jt(),-a,-u))),d}function ZI(e,t,n){var r=Hu(e,{x:Math.cos(t.angle),y:Math.sin(t.angle)},0),i=r.x,o=r.y;return 1/Math.sqrt(Math.pow(i,2)+Math.pow(o,2))/n.width}function BI(e){if(!e.order)return{x:[0,1],y:[0,1]};var t=1/0,n=-1/0,r=1/0,i=-1/0;return e.forEachNode(function(o,s){var a=s.x,u=s.y;a<t&&(t=a),a>n&&(n=a),u<r&&(r=u),u>i&&(i=u)}),{x:[t,n],y:[r,i]}}function VI(e){if(!zI(e))throw new Error("Sigma: invalid graph instance.");e.forEachNode(function(t,n){if(!Number.isFinite(n.x)||!Number.isFinite(n.y))throw new Error("Sigma: Coordinates of node ".concat(t," are invalid. A node must have a numeric 'x' and 'y' attribute."))})}function HI(e,t,n){var r=document.createElement(e);if(t)for(var i in t)r.style[i]=t[i];if(n)for(var o in n)r.setAttribute(o,n[o]);return r}function xp(){return typeof window.devicePixelRatio<"u"?window.devicePixelRatio:1}function Ep(e,t,n){return n.sort(function(r,i){var o=t(r)||0,s=t(i)||0;return o<s?-1:o>s?1:0})}function $p(e){var t=lr(e.x,2),n=t[0],r=t[1],i=lr(e.y,2),o=i[0],s=i[1],a=Math.max(r-n,s-o),u=(r+n)/2,c=(s+o)/2;(a===0||Math.abs(a)===1/0||isNaN(a))&&(a=1),isNaN(u)&&(u=0),isNaN(c)&&(c=0);var l=function(f){return{x:.5+(f.x-u)/a,y:.5+(f.y-c)/a}};return l.applyTo=function(d){d.x=.5+(d.x-u)/a,d.y=.5+(d.y-c)/a},l.inverse=function(d){return{x:u+a*(d.x-.5),y:c+a*(d.y-.5)}},l.ratio=a,l}function qu(e){"@babel/helpers - typeof";return qu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qu(e)}function Tp(e,t){var n=t.size;if(n!==0){var r=e.length;e.length+=n;var i=0;t.forEach(function(o){e[r+i]=o,i++})}}function uu(e){e=e||{};for(var t=0,n=arguments.length<=1?0:arguments.length-1;t<n;t++){var r=t+1<1||arguments.length<=t+1?void 0:arguments[t+1];r&&Object.assign(e,r)}return e}var Ff={hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!1,enableEdgeEvents:!1,defaultNodeColor:"#999",defaultNodeType:"circle",defaultEdgeColor:"#ccc",defaultEdgeType:"line",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,defaultDrawEdgeLabel:aI,defaultDrawNodeLabel:Bw,defaultDrawNodeHover:uI,minEdgeThickness:1.7,antiAliasingFeather:1,dragTimeout:100,draggedEventsTolerance:3,inertiaDuration:200,inertiaRatio:3,zoomDuration:250,zoomingRatio:1.7,doubleClickTimeout:300,doubleClickZoomingRatio:2.2,doubleClickZoomingDuration:200,tapMoveTolerance:10,zoomToSizeRatioFunction:Math.sqrt,itemSizesReference:"screen",autoRescale:!0,autoCenter:!0,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,nodeReducer:null,edgeReducer:null,zIndex:!1,minCameraRatio:null,maxCameraRatio:null,enableCameraZooming:!0,enableCameraPanning:!0,enableCameraRotation:!0,cameraPanBoundaries:null,allowInvalidContainer:!1,nodeProgramClasses:{},nodeHoverProgramClasses:{},edgeProgramClasses:{}},qI={circle:Da},WI={arrow:EI,line:AI};function cu(e){if(typeof e.labelDensity!="number"||e.labelDensity<0)throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");var t=e.minCameraRatio,n=e.maxCameraRatio;if(typeof t=="number"&&typeof n=="number"&&n<t)throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.")}function KI(e){var t=uu({},Ff,e);return t.nodeProgramClasses=uu({},qI,t.nodeProgramClasses),t.edgeProgramClasses=uu({},WI,t.edgeProgramClasses),t}var Uo=1.5,Cp=(function(e){function t(){var n;return dt(this,t),n=Mt(this,t),N(n,"x",.5),N(n,"y",.5),N(n,"angle",0),N(n,"ratio",1),N(n,"minRatio",null),N(n,"maxRatio",null),N(n,"enabledZooming",!0),N(n,"enabledPanning",!0),N(n,"enabledRotation",!0),N(n,"clean",null),N(n,"nextFrame",null),N(n,"previousState",null),N(n,"enabled",!0),n.previousState=n.getState(),n}return Ft(t,e),ft(t,[{key:"enable",value:function(){return this.enabled=!0,this}},{key:"disable",value:function(){return this.enabled=!1,this}},{key:"getState",value:function(){return{x:this.x,y:this.y,angle:this.angle,ratio:this.ratio}}},{key:"hasState",value:function(r){return this.x===r.x&&this.y===r.y&&this.ratio===r.ratio&&this.angle===r.angle}},{key:"getPreviousState",value:function(){var r=this.previousState;return r?{x:r.x,y:r.y,angle:r.angle,ratio:r.ratio}:null}},{key:"getBoundedRatio",value:function(r){var i=r;return typeof this.minRatio=="number"&&(i=Math.max(i,this.minRatio)),typeof this.maxRatio=="number"&&(i=Math.min(i,this.maxRatio)),i}},{key:"validateState",value:function(r){var i={};return this.enabledPanning&&typeof r.x=="number"&&(i.x=r.x),this.enabledPanning&&typeof r.y=="number"&&(i.y=r.y),this.enabledZooming&&typeof r.ratio=="number"&&(i.ratio=this.getBoundedRatio(r.ratio)),this.enabledRotation&&typeof r.angle=="number"&&(i.angle=r.angle),this.clean?this.clean(K(K({},this.getState()),i)):i}},{key:"isAnimated",value:function(){return!!this.nextFrame}},{key:"setState",value:function(r){if(!this.enabled)return this;this.previousState=this.getState();var i=this.validateState(r);return typeof i.x=="number"&&(this.x=i.x),typeof i.y=="number"&&(this.y=i.y),typeof i.ratio=="number"&&(this.ratio=i.ratio),typeof i.angle=="number"&&(this.angle=i.angle),this.hasState(this.previousState)||this.emit("updated",this.getState()),this}},{key:"updateState",value:function(r){return this.setState(r(this.getState())),this}},{key:"animate",value:function(r){var i=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0;if(!s)return new Promise(function(h){return i.animate(r,o,h)});if(this.enabled){var a=K(K({},GI),o),u=this.validateState(r),c=typeof a.easing=="function"?a.easing:UI[a.easing],l=Date.now(),d=this.getState(),f=function(){var p=(Date.now()-l)/a.duration;if(p>=1){i.nextFrame=null,i.setState(u),i.animationCallback&&(i.animationCallback.call(null),i.animationCallback=void 0);return}var m=c(p),g={};typeof u.x=="number"&&(g.x=d.x+(u.x-d.x)*m),typeof u.y=="number"&&(g.y=d.y+(u.y-d.y)*m),i.enabledRotation&&typeof u.angle=="number"&&(g.angle=d.angle+(u.angle-d.angle)*m),typeof u.ratio=="number"&&(g.ratio=d.ratio+(u.ratio-d.ratio)*m),i.setState(g),i.nextFrame=requestAnimationFrame(f)};this.nextFrame?(cancelAnimationFrame(this.nextFrame),this.animationCallback&&this.animationCallback.call(null),this.nextFrame=requestAnimationFrame(f)):f(),this.animationCallback=s}}},{key:"animatedZoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio/r}):this.animate({ratio:this.ratio/(r.factor||Uo)},r):this.animate({ratio:this.ratio/Uo})}},{key:"animatedUnzoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio*r}):this.animate({ratio:this.ratio*(r.factor||Uo)},r):this.animate({ratio:this.ratio*Uo})}},{key:"animatedReset",value:function(r){return this.animate({x:.5,y:.5,ratio:1,angle:0},r)}},{key:"copy",value:function(){return t.from(this.getState())}}],[{key:"from",value:function(r){var i=new t;return i.setState(r)}}])})(Mf);function Zt(e,t){var n=t.getBoundingClientRect();return{x:e.clientX-n.left,y:e.clientY-n.top}}function Xt(e,t){var n=K(K({},Zt(e,t)),{},{sigmaDefaultPrevented:!1,preventSigmaDefault:function(){n.sigmaDefaultPrevented=!0},original:e});return n}function Vr(e){var t="x"in e?e:K(K({},e.touches[0]||e.previousTouches[0]),{},{original:e.original,sigmaDefaultPrevented:e.sigmaDefaultPrevented,preventSigmaDefault:function(){e.sigmaDefaultPrevented=!0,t.sigmaDefaultPrevented=!0}});return t}function JI(e,t){return K(K({},Xt(e,t)),{},{delta:Qw(e)})}var YI=2;function qo(e){for(var t=[],n=0,r=Math.min(e.length,YI);n<r;n++)t.push(e[n]);return t}function Hr(e,t,n){var r={touches:qo(e.touches).map(function(i){return Zt(i,n)}),previousTouches:t.map(function(i){return Zt(i,n)}),sigmaDefaultPrevented:!1,preventSigmaDefault:function(){r.sigmaDefaultPrevented=!0},original:e};return r}function Qw(e){if(typeof e.deltaY<"u")return e.deltaY*-3/360;if(typeof e.detail<"u")return e.detail/-9;throw new Error("Captor: could not extract delta from event.")}var e_=(function(e){function t(n,r){var i;return dt(this,t),i=Mt(this,t),i.container=n,i.renderer=r,i}return Ft(t,e),ft(t)})(Mf),XI=["doubleClickTimeout","doubleClickZoomingDuration","doubleClickZoomingRatio","dragTimeout","draggedEventsTolerance","inertiaDuration","inertiaRatio","zoomDuration","zoomingRatio"],QI=XI.reduce(function(e,t){return K(K({},e),{},N({},t,Ff[t]))},{}),eN=(function(e){function t(n,r){var i;return dt(this,t),i=Mt(this,t,[n,r]),N(i,"enabled",!0),N(i,"draggedEvents",0),N(i,"downStartTime",null),N(i,"lastMouseX",null),N(i,"lastMouseY",null),N(i,"isMouseDown",!1),N(i,"isMoving",!1),N(i,"movingTimeout",null),N(i,"startCameraState",null),N(i,"clicks",0),N(i,"doubleClickTimeout",null),N(i,"currentWheelDirection",0),N(i,"settings",QI),i.handleClick=i.handleClick.bind(i),i.handleRightClick=i.handleRightClick.bind(i),i.handleDown=i.handleDown.bind(i),i.handleUp=i.handleUp.bind(i),i.handleMove=i.handleMove.bind(i),i.handleWheel=i.handleWheel.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleEnter=i.handleEnter.bind(i),n.addEventListener("click",i.handleClick,{capture:!1}),n.addEventListener("contextmenu",i.handleRightClick,{capture:!1}),n.addEventListener("mousedown",i.handleDown,{capture:!1}),n.addEventListener("wheel",i.handleWheel,{capture:!1}),n.addEventListener("mouseleave",i.handleLeave,{capture:!1}),n.addEventListener("mouseenter",i.handleEnter,{capture:!1}),document.addEventListener("mousemove",i.handleMove,{capture:!1}),document.addEventListener("mouseup",i.handleUp,{capture:!1}),i}return Ft(t,e),ft(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("click",this.handleClick),r.removeEventListener("contextmenu",this.handleRightClick),r.removeEventListener("mousedown",this.handleDown),r.removeEventListener("wheel",this.handleWheel),r.removeEventListener("mouseleave",this.handleLeave),r.removeEventListener("mouseenter",this.handleEnter),document.removeEventListener("mousemove",this.handleMove),document.removeEventListener("mouseup",this.handleUp)}},{key:"handleClick",value:function(r){var i=this;if(this.enabled){if(this.clicks++,this.clicks===2)return this.clicks=0,typeof this.doubleClickTimeout=="number"&&(clearTimeout(this.doubleClickTimeout),this.doubleClickTimeout=null),this.handleDoubleClick(r);setTimeout(function(){i.clicks=0,i.doubleClickTimeout=null},this.settings.doubleClickTimeout),this.draggedEvents<this.settings.draggedEventsTolerance&&this.emit("click",Xt(r,this.container))}}},{key:"handleRightClick",value:function(r){this.enabled&&this.emit("rightClick",Xt(r,this.container))}},{key:"handleDoubleClick",value:function(r){if(this.enabled){r.preventDefault(),r.stopPropagation();var i=Xt(r,this.container);if(this.emit("doubleClick",i),!i.sigmaDefaultPrevented){var o=this.renderer.getCamera(),s=o.getBoundedRatio(o.getState().ratio/this.settings.doubleClickZoomingRatio);o.animate(this.renderer.getViewportZoomedState(Zt(r,this.container),s),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}}},{key:"handleDown",value:function(r){if(this.enabled){if(r.button===0){this.startCameraState=this.renderer.getCamera().getState();var i=Zt(r,this.container),o=i.x,s=i.y;this.lastMouseX=o,this.lastMouseY=s,this.draggedEvents=0,this.downStartTime=Date.now(),this.isMouseDown=!0}this.emit("mousedown",Xt(r,this.container))}}},{key:"handleUp",value:function(r){var i=this;if(!(!this.enabled||!this.isMouseDown)){var o=this.renderer.getCamera();this.isMouseDown=!1,typeof this.movingTimeout=="number"&&(clearTimeout(this.movingTimeout),this.movingTimeout=null);var s=Zt(r,this.container),a=s.x,u=s.y,c=o.getState(),l=o.getPreviousState()||{x:0,y:0};this.isMoving?o.animate({x:c.x+this.settings.inertiaRatio*(c.x-l.x),y:c.y+this.settings.inertiaRatio*(c.y-l.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"}):(this.lastMouseX!==a||this.lastMouseY!==u)&&o.setState({x:c.x,y:c.y}),this.isMoving=!1,setTimeout(function(){var d=i.draggedEvents>0;i.draggedEvents=0,d&&i.renderer.getSetting("hideEdgesOnMove")&&i.renderer.refresh()},0),this.emit("mouseup",Xt(r,this.container))}}},{key:"handleMove",value:function(r){var i=this;if(this.enabled){var o=Xt(r,this.container);if(this.emit("mousemovebody",o),(r.target===this.container||r.composedPath()[0]===this.container)&&this.emit("mousemove",o),!o.sigmaDefaultPrevented&&this.isMouseDown){this.isMoving=!0,this.draggedEvents++,typeof this.movingTimeout=="number"&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.movingTimeout=null,i.isMoving=!1},this.settings.dragTimeout);var s=this.renderer.getCamera(),a=Zt(r,this.container),u=a.x,c=a.y,l=this.renderer.viewportToFramedGraph({x:this.lastMouseX,y:this.lastMouseY}),d=this.renderer.viewportToFramedGraph({x:u,y:c}),f=l.x-d.x,h=l.y-d.y,p=s.getState(),m=p.x+f,g=p.y+h;s.setState({x:m,y:g}),this.lastMouseX=u,this.lastMouseY=c,r.preventDefault(),r.stopPropagation()}}}},{key:"handleLeave",value:function(r){this.emit("mouseleave",Xt(r,this.container))}},{key:"handleEnter",value:function(r){this.emit("mouseenter",Xt(r,this.container))}},{key:"handleWheel",value:function(r){var i=this,o=this.renderer.getCamera();if(!(!this.enabled||!o.enabledZooming)){var s=Qw(r);if(s){var a=JI(r,this.container);if(this.emit("wheel",a),a.sigmaDefaultPrevented){r.preventDefault(),r.stopPropagation();return}var u=o.getState().ratio,c=s>0?1/this.settings.zoomingRatio:this.settings.zoomingRatio,l=o.getBoundedRatio(u*c),d=s>0?1:-1,f=Date.now();u!==l&&(r.preventDefault(),r.stopPropagation(),!(this.currentWheelDirection===d&&this.lastWheelTriggerTime&&f-this.lastWheelTriggerTime<this.settings.zoomDuration/5)&&(o.animate(this.renderer.getViewportZoomedState(Zt(r,this.container),l),{easing:"quadraticOut",duration:this.settings.zoomDuration},function(){i.currentWheelDirection=0}),this.currentWheelDirection=d,this.lastWheelTriggerTime=f))}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(e_),tN=["dragTimeout","inertiaDuration","inertiaRatio","doubleClickTimeout","doubleClickZoomingRatio","doubleClickZoomingDuration","tapMoveTolerance"],nN=tN.reduce(function(e,t){return K(K({},e),{},N({},t,Ff[t]))},{}),rN=(function(e){function t(n,r){var i;return dt(this,t),i=Mt(this,t,[n,r]),N(i,"enabled",!0),N(i,"isMoving",!1),N(i,"hasMoved",!1),N(i,"touchMode",0),N(i,"startTouchesPositions",[]),N(i,"lastTouches",[]),N(i,"lastTap",null),N(i,"settings",nN),i.handleStart=i.handleStart.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleMove=i.handleMove.bind(i),n.addEventListener("touchstart",i.handleStart,{capture:!1}),n.addEventListener("touchcancel",i.handleLeave,{capture:!1}),document.addEventListener("touchend",i.handleLeave,{capture:!1,passive:!1}),document.addEventListener("touchmove",i.handleMove,{capture:!1,passive:!1}),i}return Ft(t,e),ft(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("touchstart",this.handleStart),r.removeEventListener("touchcancel",this.handleLeave),document.removeEventListener("touchend",this.handleLeave),document.removeEventListener("touchmove",this.handleMove)}},{key:"getDimensions",value:function(){return{width:this.container.offsetWidth,height:this.container.offsetHeight}}},{key:"handleStart",value:function(r){var i=this;if(this.enabled){r.preventDefault();var o=qo(r.touches);if(this.touchMode=o.length,this.startCameraState=this.renderer.getCamera().getState(),this.startTouchesPositions=o.map(function(h){return Zt(h,i.container)}),this.touchMode===2){var s=lr(this.startTouchesPositions,2),a=s[0],u=a.x,c=a.y,l=s[1],d=l.x,f=l.y;this.startTouchesAngle=Math.atan2(f-c,d-u),this.startTouchesDistance=Math.sqrt(Math.pow(d-u,2)+Math.pow(f-c,2))}this.emit("touchdown",Hr(r,this.lastTouches,this.container)),this.lastTouches=o,this.lastTouchesPositions=this.startTouchesPositions}}},{key:"handleLeave",value:function(r){if(!(!this.enabled||!this.startTouchesPositions.length)){switch(r.cancelable&&r.preventDefault(),this.movingTimeout&&(this.isMoving=!1,clearTimeout(this.movingTimeout)),this.touchMode){case 2:if(r.touches.length===1){this.handleStart(r),r.preventDefault();break}case 1:if(this.isMoving){var i=this.renderer.getCamera(),o=i.getState(),s=i.getPreviousState()||{x:0,y:0};i.animate({x:o.x+this.settings.inertiaRatio*(o.x-s.x),y:o.y+this.settings.inertiaRatio*(o.y-s.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"})}this.hasMoved=!1,this.isMoving=!1,this.touchMode=0;break}if(this.emit("touchup",Hr(r,this.lastTouches,this.container)),!r.touches.length){var a=Zt(this.lastTouches[0],this.container),u=this.startTouchesPositions[0],c=Math.pow(a.x-u.x,2)+Math.pow(a.y-u.y,2);if(!r.touches.length&&c<Math.pow(this.settings.tapMoveTolerance,2))if(this.lastTap&&Date.now()-this.lastTap.time<this.settings.doubleClickTimeout){var l=Hr(r,this.lastTouches,this.container);if(this.emit("doubletap",l),this.lastTap=null,!l.sigmaDefaultPrevented){var d=this.renderer.getCamera(),f=d.getBoundedRatio(d.getState().ratio/this.settings.doubleClickZoomingRatio);d.animate(this.renderer.getViewportZoomedState(a,f),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}else{var h=Hr(r,this.lastTouches,this.container);this.emit("tap",h),this.lastTap={time:Date.now(),position:h.touches[0]||h.previousTouches[0]}}}this.lastTouches=qo(r.touches),this.startTouchesPositions=[]}}},{key:"handleMove",value:function(r){var i=this;if(!(!this.enabled||!this.startTouchesPositions.length)){r.preventDefault();var o=qo(r.touches),s=o.map(function(V){return Zt(V,i.container)}),a=this.lastTouches;this.lastTouches=o,this.lastTouchesPositions=s;var u=Hr(r,a,this.container);if(this.emit("touchmove",u),!u.sigmaDefaultPrevented&&(this.hasMoved||(this.hasMoved=s.some(function(V,q){var W=i.startTouchesPositions[q];return W&&(V.x!==W.x||V.y!==W.y)})),!!this.hasMoved)){this.isMoving=!0,this.movingTimeout&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.isMoving=!1},this.settings.dragTimeout);var c=this.renderer.getCamera(),l=this.startCameraState,d=this.renderer.getSetting("stagePadding");switch(this.touchMode){case 1:{var f=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0]),h=f.x,p=f.y,m=this.renderer.viewportToFramedGraph(s[0]),g=m.x,w=m.y;c.setState({x:l.x+h-g,y:l.y+p-w});break}case 2:{var y={x:.5,y:.5,angle:0,ratio:1},b=s[0],v=b.x,S=b.y,_=s[1],$=_.x,R=_.y,P=Math.atan2(R-S,$-v)-this.startTouchesAngle,O=Math.hypot(R-S,$-v)/this.startTouchesDistance,Y=c.getBoundedRatio(l.ratio/O);y.ratio=Y,y.angle=l.angle+P;var he=this.getDimensions(),Se=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0],{cameraState:l}),$e=Math.min(he.width,he.height)-2*d,Fe=$e/he.width,M=$e/he.height,G=Y/$e,B=v-$e/2/Fe,ee=S-$e/2/M,X=[B*Math.cos(-y.angle)-ee*Math.sin(-y.angle),ee*Math.cos(-y.angle)+B*Math.sin(-y.angle)];B=X[0],ee=X[1],y.x=Se.x-B*G,y.y=Se.y+ee*G,c.setState(y);break}}}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(e_);function iN(e){if(Array.isArray(e))return Bu(e)}function oN(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sN(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
421
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ap(e){return iN(e)||oN(e)||Pw(e)||sN()}function aN(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function lu(e,t){if(e==null)return{};var n,r,i=aN(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var Ip=(function(){function e(t,n){dt(this,e),this.key=t,this.size=n}return ft(e,null,[{key:"compare",value:function(n,r){return n.size>r.size?-1:n.size<r.size||n.key>r.key?1:-1}}])})(),Np=(function(){function e(){dt(this,e),N(this,"width",0),N(this,"height",0),N(this,"cellSize",0),N(this,"columns",0),N(this,"rows",0),N(this,"cells",{})}return ft(e,[{key:"resizeAndClear",value:function(n,r){this.width=n.width,this.height=n.height,this.cellSize=r,this.columns=Math.ceil(n.width/r),this.rows=Math.ceil(n.height/r),this.cells={}}},{key:"getIndex",value:function(n){var r=Math.floor(n.x/this.cellSize),i=Math.floor(n.y/this.cellSize);return i*this.columns+r}},{key:"add",value:function(n,r,i){var o=new Ip(n,r),s=this.getIndex(i),a=this.cells[s];a||(a=[],this.cells[s]=a),a.push(o)}},{key:"organize",value:function(){for(var n in this.cells){var r=this.cells[n];r.sort(Ip.compare)}}},{key:"getLabelsToDisplay",value:function(n,r){var i=this.cellSize*this.cellSize,o=i/n/n,s=o*r/i,a=Math.ceil(s),u=[];for(var c in this.cells)for(var l=this.cells[c],d=0;d<Math.min(a,l.length);d++)u.push(l[d].key);return u}}])})();function uN(e){var t=e.graph,n=e.hoveredNode,r=e.highlightedNodes,i=e.displayedNodeLabels,o=[];return t.forEachEdge(function(s,a,u,c){(u===n||c===n||r.has(u)||r.has(c)||i.has(u)&&i.has(c))&&o.push(s)}),o}var zp=150,Rp=50,Qt=Object.prototype.hasOwnProperty;function cN(e,t,n){if(!Qt.call(n,"x")||!Qt.call(n,"y"))throw new Error('Sigma: could not find a valid position (x, y) for node "'.concat(t,'". All your nodes must have a number "x" and "y". Maybe your forgot to apply a layout or your "nodeReducer" is not returning the correct data?'));return n.color||(n.color=e.defaultNodeColor),!n.label&&n.label!==""&&(n.label=null),n.label!==void 0&&n.label!==null?n.label=""+n.label:n.label=null,n.size||(n.size=2),Qt.call(n,"hidden")||(n.hidden=!1),Qt.call(n,"highlighted")||(n.highlighted=!1),Qt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultNodeType),n.zIndex||(n.zIndex=0),n}function lN(e,t,n){return n.color||(n.color=e.defaultEdgeColor),n.label||(n.label=""),n.size||(n.size=.5),Qt.call(n,"hidden")||(n.hidden=!1),Qt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultEdgeType),n.zIndex||(n.zIndex=0),n}var dN=(function(e){function t(n,r){var i,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(dt(this,t),i=Mt(this,t),N(i,"elements",{}),N(i,"canvasContexts",{}),N(i,"webGLContexts",{}),N(i,"pickingLayers",new Set),N(i,"textures",{}),N(i,"frameBuffers",{}),N(i,"activeListeners",{}),N(i,"labelGrid",new Np),N(i,"nodeDataCache",{}),N(i,"edgeDataCache",{}),N(i,"nodeProgramIndex",{}),N(i,"edgeProgramIndex",{}),N(i,"nodesWithForcedLabels",new Set),N(i,"edgesWithForcedLabels",new Set),N(i,"nodeExtent",{x:[0,1],y:[0,1]}),N(i,"nodeZExtent",[1/0,-1/0]),N(i,"edgeZExtent",[1/0,-1/0]),N(i,"matrix",jt()),N(i,"invMatrix",jt()),N(i,"correctionRatio",1),N(i,"customBBox",null),N(i,"normalizationFunction",$p({x:[0,1],y:[0,1]})),N(i,"graphToViewportRatio",1),N(i,"itemIDsIndex",{}),N(i,"nodeIndices",{}),N(i,"edgeIndices",{}),N(i,"width",0),N(i,"height",0),N(i,"pixelRatio",xp()),N(i,"pickingDownSizingRatio",2*i.pixelRatio),N(i,"displayedNodeLabels",new Set),N(i,"displayedEdgeLabels",new Set),N(i,"highlightedNodes",new Set),N(i,"hoveredNode",null),N(i,"hoveredEdge",null),N(i,"renderFrame",null),N(i,"renderHighlightedNodesFrame",null),N(i,"needToProcess",!1),N(i,"checkEdgesEventsFrame",null),N(i,"nodePrograms",{}),N(i,"nodeHoverPrograms",{}),N(i,"edgePrograms",{}),i.settings=KI(o),cu(i.settings),VI(n),!(r instanceof HTMLElement))throw new Error("Sigma: container should be an html element.");i.graph=n,i.container=r,i.createWebGLContext("edges",{picking:o.enableEdgeEvents}),i.createCanvasContext("edgeLabels"),i.createWebGLContext("nodes",{picking:!0}),i.createCanvasContext("labels"),i.createCanvasContext("hovers"),i.createWebGLContext("hoverNodes"),i.createCanvasContext("mouse",{style:{touchAction:"none",userSelect:"none"}}),i.resize();for(var s in i.settings.nodeProgramClasses)i.registerNodeProgram(s,i.settings.nodeProgramClasses[s],i.settings.nodeHoverProgramClasses[s]);for(var a in i.settings.edgeProgramClasses)i.registerEdgeProgram(a,i.settings.edgeProgramClasses[a]);return i.camera=new Cp,i.bindCameraHandlers(),i.mouseCaptor=new eN(i.elements.mouse,i),i.mouseCaptor.setSettings(i.settings),i.touchCaptor=new rN(i.elements.mouse,i),i.touchCaptor.setSettings(i.settings),i.bindEventHandlers(),i.bindGraphHandlers(),i.handleSettingsUpdate(),i.refresh(),i}return Ft(t,e),ft(t,[{key:"registerNodeProgram",value:function(r,i,o){return this.nodePrograms[r]&&this.nodePrograms[r].kill(),this.nodeHoverPrograms[r]&&this.nodeHoverPrograms[r].kill(),this.nodePrograms[r]=new i(this.webGLContexts.nodes,this.frameBuffers.nodes,this),this.nodeHoverPrograms[r]=new(o||i)(this.webGLContexts.hoverNodes,null,this),this}},{key:"registerEdgeProgram",value:function(r,i){return this.edgePrograms[r]&&this.edgePrograms[r].kill(),this.edgePrograms[r]=new i(this.webGLContexts.edges,this.frameBuffers.edges,this),this}},{key:"unregisterNodeProgram",value:function(r){if(this.nodePrograms[r]){var i=this.nodePrograms,o=i[r],s=lu(i,[r].map(Yr));o.kill(),this.nodePrograms=s}if(this.nodeHoverPrograms[r]){var a=this.nodeHoverPrograms,u=a[r],c=lu(a,[r].map(Yr));u.kill(),this.nodePrograms=c}return this}},{key:"unregisterEdgeProgram",value:function(r){if(this.edgePrograms[r]){var i=this.edgePrograms,o=i[r],s=lu(i,[r].map(Yr));o.kill(),this.edgePrograms=s}return this}},{key:"resetWebGLTexture",value:function(r){var i=this.webGLContexts[r],o=this.frameBuffers[r],s=this.textures[r];s&&i.deleteTexture(s);var a=i.createTexture();return i.bindFramebuffer(i.FRAMEBUFFER,o),i.bindTexture(i.TEXTURE_2D,a),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,a,0),this.textures[r]=a,this}},{key:"bindCameraHandlers",value:function(){var r=this;return this.activeListeners.camera=function(){r.scheduleRender()},this.camera.on("updated",this.activeListeners.camera),this}},{key:"unbindCameraHandlers",value:function(){return this.camera.removeListener("updated",this.activeListeners.camera),this}},{key:"getNodeAtPosition",value:function(r){var i=r.x,o=r.y,s=fp(this.webGLContexts.nodes,this.frameBuffers.nodes,i,o,this.pixelRatio,this.pickingDownSizingRatio),a=dp.apply(void 0,Ap(s)),u=this.itemIDsIndex[a];return u&&u.type==="node"?u.id:null}},{key:"bindEventHandlers",value:function(){var r=this;this.activeListeners.handleResize=function(){r.scheduleRefresh()},window.addEventListener("resize",this.activeListeners.handleResize),this.activeListeners.handleMove=function(o){var s=Vr(o),a={event:s,preventSigmaDefault:function(){s.preventSigmaDefault()}},u=r.getNodeAtPosition(s);if(u&&r.hoveredNode!==u&&!r.nodeDataCache[u].hidden){r.hoveredNode&&r.emit("leaveNode",K(K({},a),{},{node:r.hoveredNode})),r.hoveredNode=u,r.emit("enterNode",K(K({},a),{},{node:u})),r.scheduleHighlightedNodesRender();return}if(r.hoveredNode&&r.getNodeAtPosition(s)!==r.hoveredNode){var c=r.hoveredNode;r.hoveredNode=null,r.emit("leaveNode",K(K({},a),{},{node:c})),r.scheduleHighlightedNodesRender();return}if(r.settings.enableEdgeEvents){var l=r.hoveredNode?null:r.getEdgeAtPoint(a.event.x,a.event.y);l!==r.hoveredEdge&&(r.hoveredEdge&&r.emit("leaveEdge",K(K({},a),{},{edge:r.hoveredEdge})),l&&r.emit("enterEdge",K(K({},a),{},{edge:l})),r.hoveredEdge=l)}},this.activeListeners.handleMoveBody=function(o){var s=Vr(o);r.emit("moveBody",{event:s,preventSigmaDefault:function(){s.preventSigmaDefault()}})},this.activeListeners.handleLeave=function(o){var s=Vr(o),a={event:s,preventSigmaDefault:function(){s.preventSigmaDefault()}};r.hoveredNode&&(r.emit("leaveNode",K(K({},a),{},{node:r.hoveredNode})),r.scheduleHighlightedNodesRender()),r.settings.enableEdgeEvents&&r.hoveredEdge&&(r.emit("leaveEdge",K(K({},a),{},{edge:r.hoveredEdge})),r.scheduleHighlightedNodesRender()),r.emit("leaveStage",K({},a))},this.activeListeners.handleEnter=function(o){var s=Vr(o),a={event:s,preventSigmaDefault:function(){s.preventSigmaDefault()}};r.emit("enterStage",K({},a))};var i=function(s){return function(a){var u=Vr(a),c={event:u,preventSigmaDefault:function(){u.preventSigmaDefault()}},l=r.getNodeAtPosition(u);if(l)return r.emit("".concat(s,"Node"),K(K({},c),{},{node:l}));if(r.settings.enableEdgeEvents){var d=r.getEdgeAtPoint(u.x,u.y);if(d)return r.emit("".concat(s,"Edge"),K(K({},c),{},{edge:d}))}return r.emit("".concat(s,"Stage"),c)}};return this.activeListeners.handleClick=i("click"),this.activeListeners.handleRightClick=i("rightClick"),this.activeListeners.handleDoubleClick=i("doubleClick"),this.activeListeners.handleWheel=i("wheel"),this.activeListeners.handleDown=i("down"),this.activeListeners.handleUp=i("up"),this.mouseCaptor.on("mousemove",this.activeListeners.handleMove),this.mouseCaptor.on("mousemovebody",this.activeListeners.handleMoveBody),this.mouseCaptor.on("click",this.activeListeners.handleClick),this.mouseCaptor.on("rightClick",this.activeListeners.handleRightClick),this.mouseCaptor.on("doubleClick",this.activeListeners.handleDoubleClick),this.mouseCaptor.on("wheel",this.activeListeners.handleWheel),this.mouseCaptor.on("mousedown",this.activeListeners.handleDown),this.mouseCaptor.on("mouseup",this.activeListeners.handleUp),this.mouseCaptor.on("mouseleave",this.activeListeners.handleLeave),this.mouseCaptor.on("mouseenter",this.activeListeners.handleEnter),this.touchCaptor.on("touchdown",this.activeListeners.handleDown),this.touchCaptor.on("touchdown",this.activeListeners.handleMove),this.touchCaptor.on("touchup",this.activeListeners.handleUp),this.touchCaptor.on("touchmove",this.activeListeners.handleMove),this.touchCaptor.on("tap",this.activeListeners.handleClick),this.touchCaptor.on("doubletap",this.activeListeners.handleDoubleClick),this.touchCaptor.on("touchmove",this.activeListeners.handleMoveBody),this}},{key:"bindGraphHandlers",value:function(){var r=this,i=this.graph,o=new Set(["x","y","zIndex","type"]);return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate=function(s){var a,u=(a=s.hints)===null||a===void 0?void 0:a.attributes;r.graph.forEachNode(function(l){return r.updateNode(l)});var c=!u||u.some(function(l){return o.has(l)});r.refresh({partialGraph:{nodes:i.nodes()},skipIndexation:!c,schedule:!0})},this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate=function(s){var a,u=(a=s.hints)===null||a===void 0?void 0:a.attributes;r.graph.forEachEdge(function(l){return r.updateEdge(l)});var c=u&&["zIndex","type"].some(function(l){return u?.includes(l)});r.refresh({partialGraph:{edges:i.edges()},skipIndexation:!c,schedule:!0})},this.activeListeners.addNodeGraphUpdate=function(s){var a=s.key;r.addNode(a),r.refresh({partialGraph:{nodes:[a]},skipIndexation:!1,schedule:!0})},this.activeListeners.updateNodeGraphUpdate=function(s){var a=s.key;r.refresh({partialGraph:{nodes:[a]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropNodeGraphUpdate=function(s){var a=s.key;r.removeNode(a),r.refresh({schedule:!0})},this.activeListeners.addEdgeGraphUpdate=function(s){var a=s.key;r.addEdge(a),r.refresh({partialGraph:{edges:[a]},schedule:!0})},this.activeListeners.updateEdgeGraphUpdate=function(s){var a=s.key;r.refresh({partialGraph:{edges:[a]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropEdgeGraphUpdate=function(s){var a=s.key;r.removeEdge(a),r.refresh({schedule:!0})},this.activeListeners.clearEdgesGraphUpdate=function(){r.clearEdgeState(),r.clearEdgeIndices(),r.refresh({schedule:!0})},this.activeListeners.clearGraphUpdate=function(){r.clearEdgeState(),r.clearNodeState(),r.clearEdgeIndices(),r.clearNodeIndices(),r.refresh({schedule:!0})},i.on("nodeAdded",this.activeListeners.addNodeGraphUpdate),i.on("nodeDropped",this.activeListeners.dropNodeGraphUpdate),i.on("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),i.on("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),i.on("edgeAdded",this.activeListeners.addEdgeGraphUpdate),i.on("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),i.on("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),i.on("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),i.on("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),i.on("cleared",this.activeListeners.clearGraphUpdate),this}},{key:"unbindGraphHandlers",value:function(){var r=this.graph;r.removeListener("nodeAdded",this.activeListeners.addNodeGraphUpdate),r.removeListener("nodeDropped",this.activeListeners.dropNodeGraphUpdate),r.removeListener("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),r.removeListener("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),r.removeListener("edgeAdded",this.activeListeners.addEdgeGraphUpdate),r.removeListener("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),r.removeListener("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),r.removeListener("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),r.removeListener("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),r.removeListener("cleared",this.activeListeners.clearGraphUpdate)}},{key:"getEdgeAtPoint",value:function(r,i){var o=fp(this.webGLContexts.edges,this.frameBuffers.edges,r,i,this.pixelRatio,this.pickingDownSizingRatio),s=dp.apply(void 0,Ap(o)),a=this.itemIDsIndex[s];return a&&a.type==="edge"?a.id:null}},{key:"process",value:function(){var r=this;this.emit("beforeProcess");var i=this.graph,o=this.settings,s=this.getDimensions();if(this.nodeExtent=BI(this.graph),!this.settings.autoRescale){var a=s.width,u=s.height,c=this.nodeExtent,l=c.x,d=c.y;this.nodeExtent={x:[(l[0]+l[1])/2-a/2,(l[0]+l[1])/2+a/2],y:[(d[0]+d[1])/2-u/2,(d[0]+d[1])/2+u/2]}}this.normalizationFunction=$p(this.customBBox||this.nodeExtent);var f=new Cp,h=Br(f.getState(),s,this.getGraphDimensions(),this.getStagePadding());this.labelGrid.resizeAndClear(s,o.labelGridCellSize);for(var p={},m={},g={},w={},y=1,b=i.nodes(),v=0,S=b.length;v<S;v++){var _=b[v],$=this.nodeDataCache[_],R=i.getNodeAttributes(_);$.x=R.x,$.y=R.y,this.normalizationFunction.applyTo($),typeof $.label=="string"&&!$.hidden&&this.labelGrid.add(_,$.size,this.framedGraphToViewport($,{matrix:h})),p[$.type]=(p[$.type]||0)+1}this.labelGrid.organize();for(var P in this.nodePrograms){if(!Qt.call(this.nodePrograms,P))throw new Error('Sigma: could not find a suitable program for node type "'.concat(P,'"!'));this.nodePrograms[P].reallocate(p[P]||0),p[P]=0}this.settings.zIndex&&this.nodeZExtent[0]!==this.nodeZExtent[1]&&(b=Ep(this.nodeZExtent,function(Ie){return r.nodeDataCache[Ie].zIndex},b));for(var O=0,Y=b.length;O<Y;O++){var he=b[O];m[he]=y,w[m[he]]={type:"node",id:he},y++;var Se=this.nodeDataCache[he];this.addNodeToProgram(he,m[he],p[Se.type]++)}for(var $e={},Fe=i.edges(),M=0,G=Fe.length;M<G;M++){var B=Fe[M],ee=this.edgeDataCache[B];$e[ee.type]=($e[ee.type]||0)+1}this.settings.zIndex&&this.edgeZExtent[0]!==this.edgeZExtent[1]&&(Fe=Ep(this.edgeZExtent,function(Ie){return r.edgeDataCache[Ie].zIndex},Fe));for(var X in this.edgePrograms){if(!Qt.call(this.edgePrograms,X))throw new Error('Sigma: could not find a suitable program for edge type "'.concat(X,'"!'));this.edgePrograms[X].reallocate($e[X]||0),$e[X]=0}for(var V=0,q=Fe.length;V<q;V++){var W=Fe[V];g[W]=y,w[g[W]]={type:"edge",id:W},y++;var xe=this.edgeDataCache[W];this.addEdgeToProgram(W,g[W],$e[xe.type]++)}return this.itemIDsIndex=w,this.nodeIndices=m,this.edgeIndices=g,this.emit("afterProcess"),this}},{key:"handleSettingsUpdate",value:function(r){var i=this,o=this.settings;if(this.camera.minRatio=o.minCameraRatio,this.camera.maxRatio=o.maxCameraRatio,this.camera.enabledZooming=o.enableCameraZooming,this.camera.enabledPanning=o.enableCameraPanning,this.camera.enabledRotation=o.enableCameraRotation,o.cameraPanBoundaries?this.camera.clean=function(l){return i.cleanCameraState(l,o.cameraPanBoundaries&&qu(o.cameraPanBoundaries)==="object"?o.cameraPanBoundaries:{})}:this.camera.clean=null,this.camera.setState(this.camera.validateState(this.camera.getState())),r){if(r.edgeProgramClasses!==o.edgeProgramClasses){for(var s in o.edgeProgramClasses)o.edgeProgramClasses[s]!==r.edgeProgramClasses[s]&&this.registerEdgeProgram(s,o.edgeProgramClasses[s]);for(var a in r.edgeProgramClasses)o.edgeProgramClasses[a]||this.unregisterEdgeProgram(a)}if(r.nodeProgramClasses!==o.nodeProgramClasses||r.nodeHoverProgramClasses!==o.nodeHoverProgramClasses){for(var u in o.nodeProgramClasses)(o.nodeProgramClasses[u]!==r.nodeProgramClasses[u]||o.nodeHoverProgramClasses[u]!==r.nodeHoverProgramClasses[u])&&this.registerNodeProgram(u,o.nodeProgramClasses[u],o.nodeHoverProgramClasses[u]);for(var c in r.nodeProgramClasses)o.nodeProgramClasses[c]||this.unregisterNodeProgram(c)}}return this.mouseCaptor.setSettings(this.settings),this.touchCaptor.setSettings(this.settings),this}},{key:"cleanCameraState",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.tolerance,s=o===void 0?0:o,a=i.boundaries,u=K({},r),c=a||this.nodeExtent,l=lr(c.x,2),d=l[0],f=l[1],h=lr(c.y,2),p=h[0],m=h[1],g=[this.graphToViewport({x:d,y:p},{cameraState:r}),this.graphToViewport({x:f,y:p},{cameraState:r}),this.graphToViewport({x:d,y:m},{cameraState:r}),this.graphToViewport({x:f,y:m},{cameraState:r})],w=1/0,y=-1/0,b=1/0,v=-1/0;g.forEach(function($e){var Fe=$e.x,M=$e.y;w=Math.min(w,Fe),y=Math.max(y,Fe),b=Math.min(b,M),v=Math.max(v,M)});var S=y-w,_=v-b,$=this.getDimensions(),R=$.width,P=$.height,O=0,Y=0;if(S>=R?y<R-s?O=y-(R-s):w>s&&(O=w-s):y>R+s?O=y-(R+s):w<-s&&(O=w+s),_>=P?v<P-s?Y=v-(P-s):b>s&&(Y=b-s):v>P+s?Y=v-(P+s):b<-s&&(Y=b+s),O||Y){var he=this.viewportToFramedGraph({x:0,y:0},{cameraState:r}),Se=this.viewportToFramedGraph({x:O,y:Y},{cameraState:r});O=Se.x-he.x,Y=Se.y-he.y,u.x+=O,u.y+=Y}return u}},{key:"renderLabels",value:function(){if(!this.settings.renderLabels)return this;var r=this.camera.getState(),i=this.labelGrid.getLabelsToDisplay(r.ratio,this.settings.labelDensity);Tp(i,this.nodesWithForcedLabels),this.displayedNodeLabels=new Set;for(var o=this.canvasContexts.labels,s=0,a=i.length;s<a;s++){var u=i[s],c=this.nodeDataCache[u];if(!this.displayedNodeLabels.has(u)&&!c.hidden){var l=this.framedGraphToViewport(c),d=l.x,f=l.y,h=this.scaleSize(c.size);if(!(!c.forceLabel&&h<this.settings.labelRenderedSizeThreshold)&&!(d<-zp||d>this.width+zp||f<-Rp||f>this.height+Rp)){this.displayedNodeLabels.add(u);var p=this.settings.defaultDrawNodeLabel,m=this.nodePrograms[c.type],g=m?.drawLabel||p;g(o,K(K({key:u},c),{},{size:h,x:d,y:f}),this.settings)}}}return this}},{key:"renderEdgeLabels",value:function(){if(!this.settings.renderEdgeLabels)return this;var r=this.canvasContexts.edgeLabels;r.clearRect(0,0,this.width,this.height);var i=uN({graph:this.graph,hoveredNode:this.hoveredNode,displayedNodeLabels:this.displayedNodeLabels,highlightedNodes:this.highlightedNodes});Tp(i,this.edgesWithForcedLabels);for(var o=new Set,s=0,a=i.length;s<a;s++){var u=i[s],c=this.graph.extremities(u),l=this.nodeDataCache[c[0]],d=this.nodeDataCache[c[1]],f=this.edgeDataCache[u];if(!o.has(u)&&!(f.hidden||l.hidden||d.hidden)){var h=this.settings.defaultDrawEdgeLabel,p=this.edgePrograms[f.type],m=p?.drawLabel||h;m(r,K(K({key:u},f),{},{size:this.scaleSize(f.size)}),K(K(K({key:c[0]},l),this.framedGraphToViewport(l)),{},{size:this.scaleSize(l.size)}),K(K(K({key:c[1]},d),this.framedGraphToViewport(d)),{},{size:this.scaleSize(d.size)}),this.settings),o.add(u)}}return this.displayedEdgeLabels=o,this}},{key:"renderHighlightedNodes",value:function(){var r=this,i=this.canvasContexts.hovers;i.clearRect(0,0,this.width,this.height);var o=function(h){var p=r.nodeDataCache[h],m=r.framedGraphToViewport(p),g=m.x,w=m.y,y=r.scaleSize(p.size),b=r.settings.defaultDrawNodeHover,v=r.nodePrograms[p.type],S=v?.drawHover||b;S(i,K(K({key:h},p),{},{size:y,x:g,y:w}),r.settings)},s=[];this.hoveredNode&&!this.nodeDataCache[this.hoveredNode].hidden&&s.push(this.hoveredNode),this.highlightedNodes.forEach(function(f){f!==r.hoveredNode&&s.push(f)}),s.forEach(function(f){return o(f)});var a={};s.forEach(function(f){var h=r.nodeDataCache[f].type;a[h]=(a[h]||0)+1});for(var u in this.nodeHoverPrograms)this.nodeHoverPrograms[u].reallocate(a[u]||0),a[u]=0;s.forEach(function(f){var h=r.nodeDataCache[f];r.nodeHoverPrograms[h.type].process(0,a[h.type]++,h)}),this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);var c=this.getRenderParams();for(var l in this.nodeHoverPrograms){var d=this.nodeHoverPrograms[l];d.render(c)}}},{key:"scheduleHighlightedNodesRender",value:function(){var r=this;this.renderHighlightedNodesFrame||this.renderFrame||(this.renderHighlightedNodesFrame=requestAnimationFrame(function(){r.renderHighlightedNodesFrame=null,r.renderHighlightedNodes(),r.renderEdgeLabels()}))}},{key:"render",value:function(){var r=this;this.emit("beforeRender");var i=function(){return r.emit("afterRender"),r};if(this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.resize(),this.needToProcess&&this.process(),this.needToProcess=!1,this.clear(),this.pickingLayers.forEach(function(g){return r.resetWebGLTexture(g)}),!this.graph.order)return i();var o=this.mouseCaptor,s=this.camera.isAnimated()||o.isMoving||o.draggedEvents||o.currentWheelDirection,a=this.camera.getState(),u=this.getDimensions(),c=this.getGraphDimensions(),l=this.getStagePadding();this.matrix=Br(a,u,c,l),this.invMatrix=Br(a,u,c,l,!0),this.correctionRatio=ZI(this.matrix,a,u),this.graphToViewportRatio=this.getGraphToViewportRatio();var d=this.getRenderParams();for(var f in this.nodePrograms){var h=this.nodePrograms[f];h.render(d)}if(!this.settings.hideEdgesOnMove||!s)for(var p in this.edgePrograms){var m=this.edgePrograms[p];m.render(d)}return this.settings.hideLabelsOnMove&&s||(this.renderLabels(),this.renderEdgeLabels(),this.renderHighlightedNodes()),i()}},{key:"addNode",value:function(r){var i=Object.assign({},this.graph.getNodeAttributes(r));this.settings.nodeReducer&&(i=this.settings.nodeReducer(r,i));var o=cN(this.settings,r,i);this.nodeDataCache[r]=o,this.nodesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.nodesWithForcedLabels.add(r),this.highlightedNodes.delete(r),o.highlighted&&!o.hidden&&this.highlightedNodes.add(r),this.settings.zIndex&&(o.zIndex<this.nodeZExtent[0]&&(this.nodeZExtent[0]=o.zIndex),o.zIndex>this.nodeZExtent[1]&&(this.nodeZExtent[1]=o.zIndex))}},{key:"updateNode",value:function(r){this.addNode(r);var i=this.nodeDataCache[r];this.normalizationFunction.applyTo(i)}},{key:"removeNode",value:function(r){delete this.nodeDataCache[r],delete this.nodeProgramIndex[r],this.highlightedNodes.delete(r),this.hoveredNode===r&&(this.hoveredNode=null),this.nodesWithForcedLabels.delete(r)}},{key:"addEdge",value:function(r){var i=Object.assign({},this.graph.getEdgeAttributes(r));this.settings.edgeReducer&&(i=this.settings.edgeReducer(r,i));var o=lN(this.settings,r,i);this.edgeDataCache[r]=o,this.edgesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.edgesWithForcedLabels.add(r),this.settings.zIndex&&(o.zIndex<this.edgeZExtent[0]&&(this.edgeZExtent[0]=o.zIndex),o.zIndex>this.edgeZExtent[1]&&(this.edgeZExtent[1]=o.zIndex))}},{key:"updateEdge",value:function(r){this.addEdge(r)}},{key:"removeEdge",value:function(r){delete this.edgeDataCache[r],delete this.edgeProgramIndex[r],this.hoveredEdge===r&&(this.hoveredEdge=null),this.edgesWithForcedLabels.delete(r)}},{key:"clearNodeIndices",value:function(){this.labelGrid=new Np,this.nodeExtent={x:[0,1],y:[0,1]},this.nodeDataCache={},this.edgeProgramIndex={},this.nodesWithForcedLabels=new Set,this.nodeZExtent=[1/0,-1/0],this.highlightedNodes=new Set}},{key:"clearEdgeIndices",value:function(){this.edgeDataCache={},this.edgeProgramIndex={},this.edgesWithForcedLabels=new Set,this.edgeZExtent=[1/0,-1/0]}},{key:"clearIndices",value:function(){this.clearEdgeIndices(),this.clearNodeIndices()}},{key:"clearNodeState",value:function(){this.displayedNodeLabels=new Set,this.highlightedNodes=new Set,this.hoveredNode=null}},{key:"clearEdgeState",value:function(){this.displayedEdgeLabels=new Set,this.highlightedNodes=new Set,this.hoveredEdge=null}},{key:"clearState",value:function(){this.clearEdgeState(),this.clearNodeState()}},{key:"addNodeToProgram",value:function(r,i,o){var s=this.nodeDataCache[r],a=this.nodePrograms[s.type];if(!a)throw new Error('Sigma: could not find a suitable program for node type "'.concat(s.type,'"!'));a.process(i,o,s),this.nodeProgramIndex[r]=o}},{key:"addEdgeToProgram",value:function(r,i,o){var s=this.edgeDataCache[r],a=this.edgePrograms[s.type];if(!a)throw new Error('Sigma: could not find a suitable program for edge type "'.concat(s.type,'"!'));var u=this.graph.extremities(r),c=this.nodeDataCache[u[0]],l=this.nodeDataCache[u[1]];a.process(i,o,c,l,s),this.edgeProgramIndex[r]=o}},{key:"getRenderParams",value:function(){return{matrix:this.matrix,invMatrix:this.invMatrix,width:this.width,height:this.height,pixelRatio:this.pixelRatio,zoomRatio:this.camera.ratio,cameraAngle:this.camera.angle,sizeRatio:1/this.scaleSize(),correctionRatio:this.correctionRatio,downSizingRatio:this.pickingDownSizingRatio,minEdgeThickness:this.settings.minEdgeThickness,antiAliasingFeather:this.settings.antiAliasingFeather}}},{key:"getStagePadding",value:function(){var r=this.settings,i=r.stagePadding,o=r.autoRescale;return o&&i||0}},{key:"createLayer",value:function(r,i){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.elements[r])throw new Error('Sigma: a layer named "'.concat(r,'" already exists'));var s=HI(i,{position:"absolute"},{class:"sigma-".concat(r)});return o.style&&Object.assign(s.style,o.style),this.elements[r]=s,"beforeLayer"in o&&o.beforeLayer?this.elements[o.beforeLayer].before(s):"afterLayer"in o&&o.afterLayer?this.elements[o.afterLayer].after(s):this.container.appendChild(s),s}},{key:"createCanvas",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.createLayer(r,"canvas",i)}},{key:"createCanvasContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.createCanvas(r,i),s={preserveDrawingBuffer:!1,antialias:!1};return this.canvasContexts[r]=o.getContext("2d",s),this}},{key:"createWebGLContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i?.canvas||this.createCanvas(r,i);i.hidden&&o.remove();var s=K({preserveDrawingBuffer:!1,antialias:!1},i),a;a=o.getContext("webgl2",s),a||(a=o.getContext("webgl",s)),a||(a=o.getContext("experimental-webgl",s));var u=a;if(this.webGLContexts[r]=u,u.blendFunc(u.ONE,u.ONE_MINUS_SRC_ALPHA),i.picking){this.pickingLayers.add(r);var c=u.createFramebuffer();if(!c)throw new Error("Sigma: cannot create a new frame buffer for layer ".concat(r));this.frameBuffers[r]=c}return u}},{key:"killLayer",value:function(r){var i=this.elements[r];if(!i)throw new Error("Sigma: cannot kill layer ".concat(r,", which does not exist"));if(this.webGLContexts[r]){var o,s=this.webGLContexts[r];(o=s.getExtension("WEBGL_lose_context"))===null||o===void 0||o.loseContext(),delete this.webGLContexts[r]}else this.canvasContexts[r]&&delete this.canvasContexts[r];return i.remove(),delete this.elements[r],this}},{key:"getCamera",value:function(){return this.camera}},{key:"setCamera",value:function(r){this.unbindCameraHandlers(),this.camera=r,this.bindCameraHandlers()}},{key:"getContainer",value:function(){return this.container}},{key:"getGraph",value:function(){return this.graph}},{key:"setGraph",value:function(r){r!==this.graph&&(this.hoveredNode&&!r.hasNode(this.hoveredNode)&&(this.hoveredNode=null),this.hoveredEdge&&!r.hasEdge(this.hoveredEdge)&&(this.hoveredEdge=null),this.unbindGraphHandlers(),this.checkEdgesEventsFrame!==null&&(cancelAnimationFrame(this.checkEdgesEventsFrame),this.checkEdgesEventsFrame=null),this.graph=r,this.bindGraphHandlers(),this.refresh())}},{key:"getMouseCaptor",value:function(){return this.mouseCaptor}},{key:"getTouchCaptor",value:function(){return this.touchCaptor}},{key:"getDimensions",value:function(){return{width:this.width,height:this.height}}},{key:"getGraphDimensions",value:function(){var r=this.customBBox||this.nodeExtent;return{width:r.x[1]-r.x[0]||1,height:r.y[1]-r.y[0]||1}}},{key:"getNodeDisplayData",value:function(r){var i=this.nodeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getEdgeDisplayData",value:function(r){var i=this.edgeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getNodeDisplayedLabels",value:function(){return new Set(this.displayedNodeLabels)}},{key:"getEdgeDisplayedLabels",value:function(){return new Set(this.displayedEdgeLabels)}},{key:"getSettings",value:function(){return K({},this.settings)}},{key:"getSetting",value:function(r){return this.settings[r]}},{key:"setSetting",value:function(r,i){var o=K({},this.settings);return this.settings[r]=i,cu(this.settings),this.handleSettingsUpdate(o),this.scheduleRefresh(),this}},{key:"updateSetting",value:function(r,i){return this.setSetting(r,i(this.settings[r])),this}},{key:"setSettings",value:function(r){var i=K({},this.settings);return this.settings=K(K({},this.settings),r),cu(this.settings),this.handleSettingsUpdate(i),this.scheduleRefresh(),this}},{key:"resize",value:function(r){var i=this.width,o=this.height;if(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.pixelRatio=xp(),this.width===0)if(this.settings.allowInvalidContainer)this.width=1;else throw new Error("Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(this.height===0)if(this.settings.allowInvalidContainer)this.height=1;else throw new Error("Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(!r&&i===this.width&&o===this.height)return this;for(var s in this.elements){var a=this.elements[s];a.style.width=this.width+"px",a.style.height=this.height+"px"}for(var u in this.canvasContexts)this.elements[u].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[u].setAttribute("height",this.height*this.pixelRatio+"px"),this.pixelRatio!==1&&this.canvasContexts[u].scale(this.pixelRatio,this.pixelRatio);for(var c in this.webGLContexts){this.elements[c].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[c].setAttribute("height",this.height*this.pixelRatio+"px");var l=this.webGLContexts[c];if(l.viewport(0,0,this.width*this.pixelRatio,this.height*this.pixelRatio),this.pickingLayers.has(c)){var d=this.textures[c];d&&l.deleteTexture(d)}}return this.emit("resize"),this}},{key:"clear",value:function(){return this.emit("beforeClear"),this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.canvasContexts.labels.clearRect(0,0,this.width,this.height),this.canvasContexts.hovers.clearRect(0,0,this.width,this.height),this.canvasContexts.edgeLabels.clearRect(0,0,this.width,this.height),this.emit("afterClear"),this}},{key:"refresh",value:function(r){var i=this,o=r?.skipIndexation!==void 0?r?.skipIndexation:!1,s=r?.schedule!==void 0?r.schedule:!1,a=!r||!r.partialGraph;if(a)this.clearEdgeIndices(),this.clearNodeIndices(),this.graph.forEachNode(function(v){return i.addNode(v)}),this.graph.forEachEdge(function(v){return i.addEdge(v)});else{for(var u,c,l=((u=r.partialGraph)===null||u===void 0?void 0:u.nodes)||[],d=0,f=l?.length||0;d<f;d++){var h=l[d];if(this.updateNode(h),o){var p=this.nodeProgramIndex[h];if(p===void 0)throw new Error('Sigma: node "'.concat(h,`" can't be repaint`));this.addNodeToProgram(h,this.nodeIndices[h],p)}}for(var m=(r==null||(c=r.partialGraph)===null||c===void 0?void 0:c.edges)||[],g=0,w=m.length;g<w;g++){var y=m[g];if(this.updateEdge(y),o){var b=this.edgeProgramIndex[y];if(b===void 0)throw new Error('Sigma: edge "'.concat(y,`" can't be repaint`));this.addEdgeToProgram(y,this.edgeIndices[y],b)}}}return(a||!o)&&(this.needToProcess=!0),s?this.scheduleRender():this.render(),this}},{key:"scheduleRender",value:function(){var r=this;return this.renderFrame||(this.renderFrame=requestAnimationFrame(function(){r.render()})),this}},{key:"scheduleRefresh",value:function(r){return this.refresh(K(K({},r),{},{schedule:!0}))}},{key:"getViewportZoomedState",value:function(r,i){var o=this.camera.getState(),s=o.ratio,a=o.angle,u=o.x,c=o.y,l=this.settings,d=l.minCameraRatio,f=l.maxCameraRatio;typeof f=="number"&&(i=Math.min(i,f)),typeof d=="number"&&(i=Math.max(i,d));var h=i/s,p={x:this.width/2,y:this.height/2},m=this.viewportToFramedGraph(r),g=this.viewportToFramedGraph(p);return{angle:a,x:(m.x-g.x)*(1-h)+u,y:(m.y-g.y)*(1-h)+c,ratio:i}}},{key:"viewRectangle",value:function(){var r=this.viewportToFramedGraph({x:0,y:0}),i=this.viewportToFramedGraph({x:this.width,y:0}),o=this.viewportToFramedGraph({x:0,y:this.height});return{x1:r.x,y1:r.y,x2:i.x,y2:i.y,height:i.y-o.y}}},{key:"framedGraphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!!i.graphDimensions,s=i.matrix?i.matrix:o?Br(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding()):this.matrix,a=Hu(s,r);return{x:(1+a.x)*this.width/2,y:(1-a.y)*this.height/2}}},{key:"viewportToFramedGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!i.graphDimensions,s=i.matrix?i.matrix:o?Br(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding(),!0):this.invMatrix,a=Hu(s,{x:r.x/this.width*2-1,y:1-r.y/this.height*2});return isNaN(a.x)&&(a.x=0),isNaN(a.y)&&(a.y=0),a}},{key:"viewportToGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.normalizationFunction.inverse(this.viewportToFramedGraph(r,i))}},{key:"graphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.framedGraphToViewport(this.normalizationFunction(r),i)}},{key:"getGraphToViewportRatio",value:function(){var r={x:0,y:0},i={x:1,y:1},o=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),s=this.graphToViewport(r),a=this.graphToViewport(i),u=Math.sqrt(Math.pow(s.x-a.x,2)+Math.pow(s.y-a.y,2));return u/o}},{key:"getBBox",value:function(){return this.nodeExtent}},{key:"getCustomBBox",value:function(){return this.customBBox}},{key:"setCustomBBox",value:function(r){return this.customBBox=r,this.scheduleRender(),this}},{key:"kill",value:function(){this.emit("kill"),this.removeAllListeners(),this.unbindCameraHandlers(),window.removeEventListener("resize",this.activeListeners.handleResize),this.mouseCaptor.kill(),this.touchCaptor.kill(),this.unbindGraphHandlers(),this.clearIndices(),this.clearState(),this.nodeDataCache={},this.edgeDataCache={},this.highlightedNodes.clear(),this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.renderHighlightedNodesFrame&&(cancelAnimationFrame(this.renderHighlightedNodesFrame),this.renderHighlightedNodesFrame=null);for(var r=this.container;r.firstChild;)r.removeChild(r.firstChild);for(var i in this.nodePrograms)this.nodePrograms[i].kill();for(var o in this.nodeHoverPrograms)this.nodeHoverPrograms[o].kill();for(var s in this.edgePrograms)this.edgePrograms[s].kill();this.nodePrograms={},this.nodeHoverPrograms={},this.edgePrograms={};for(var a in this.elements)this.killLayer(a);this.canvasContexts={},this.webGLContexts={},this.elements={}}},{key:"scaleSize",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.camera.ratio;return r/this.settings.zoomToSizeRatioFunction(i)*(this.getSetting("itemSizesReference")==="positions"?i*this.graphToViewportRatio:1)}},{key:"getCanvases",value:function(){var r={};for(var i in this.elements)this.elements[i]instanceof HTMLCanvasElement&&(r[i]=this.elements[i]);return r}}])})(Mf),fN=dN;function hN(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function t_(e){var t=hN(e,"string");return typeof t=="symbol"?t:t+""}function n_(e,t,n){return(t=t_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Lp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ss(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Lp(Object(n),!0).forEach(function(r){n_(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lp(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pN(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mN(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,t_(r.key),r)}}function gN(e,t,n){return t&&mN(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function as(e){return as=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},as(e)}function r_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(r_=function(){return!!e})()}function i_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yN(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return i_(e)}function vN(e,t,n){return t=as(t),yN(e,r_()?Reflect.construct(t,n||[],as(e).constructor):t.apply(e,n))}function Wu(e,t){return Wu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Wu(e,t)}function bN(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Wu(e,t)}function Ku(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function wN(e){if(Array.isArray(e))return Ku(e)}function _N(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function kN(e,t){if(e){if(typeof e=="string")return Ku(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ku(e,t):void 0}}function SN(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
422
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function du(e){return wN(e)||_N(e)||kN(e)||SN()}function o_(e,t,n,r){var i=Math.pow(1-e,2)*t.x+2*(1-e)*e*n.x+Math.pow(e,2)*r.x,o=Math.pow(1-e,2)*t.y+2*(1-e)*e*n.y+Math.pow(e,2)*r.y;return{x:i,y:o}}function xN(e,t,n){for(var r=20,i=0,o=e,s=0;s<r;s++){var a=o_((s+1)/r,e,t,n);i+=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),o=a}return i}function EN(e){var t=e.curvatureAttribute,n=e.defaultCurvature,r=e.keepLabelUpright,i=r===void 0?!0:r;return function(o,s,a,u,c){var l=c.edgeLabelSize,d=s[t]||n,f=c.edgeLabelFont,h=c.edgeLabelWeight,p=c.edgeLabelColor.attribute?s[c.edgeLabelColor.attribute]||c.edgeLabelColor.color||"#000":c.edgeLabelColor.color,m=s.label;if(m){o.fillStyle=p,o.font="".concat(h," ").concat(l,"px ").concat(f);var g=!i||a.x<u.x,w=g?a.x:u.x,y=g?a.y:u.y,b=g?u.x:a.x,v=g?u.y:a.y,S=(w+b)/2,_=(y+v)/2,$=b-w,R=v-y,P=Math.sqrt(Math.pow($,2)+Math.pow(R,2)),O=g?1:-1,Y=S+R*d*O,he=_-$*d*O,Se=s.size*.7+5,$e={x:he-y,y:-(Y-w)},Fe=Math.sqrt(Math.pow($e.x,2)+Math.pow($e.y,2)),M={x:v-he,y:-(b-Y)},G=Math.sqrt(Math.pow(M.x,2)+Math.pow(M.y,2));w+=Se*$e.x/Fe,y+=Se*$e.y/Fe,b+=Se*M.x/G,v+=Se*M.y/G,Y+=Se*R/P,he-=Se*$/P;var B={x:Y,y:he},ee={x:w,y},X={x:b,y:v},V=xN(ee,B,X);if(!(V<a.size+u.size)){var q=o.measureText(m).width,W=V-a.size-u.size;if(q>W){var xe="…";for(m=m+xe,q=o.measureText(m).width;q>W&&m.length>1;)m=m.slice(0,-2)+xe,q=o.measureText(m).width;if(m.length<4)return}for(var Ie={},je=0,st=m.length;je<st;je++){var et=m[je];Ie[et]||(Ie[et]=o.measureText(et).width*(1+d*.35))}for(var L=.5-q/V/2,F=0,H=m.length;F<H;F++){var J=m[F],me=o_(L,ee,B,X),ue=2*(1-L)*(Y-w)+2*L*(b-Y),we=2*(1-L)*(he-y)+2*L*(v-he),Ee=Math.atan2(we,ue);o.save(),o.translate(me.x,me.y),o.rotate(Ee),o.fillText(J,0,0),o.restore(),L+=Ie[J]/V}}}}}function $N(e){var t=e.arrowHead,n=t?.extremity==="target"||t?.extremity==="both",r=t?.extremity==="source"||t?.extremity==="both",i=`
423
+ precision highp float;
424
+
425
+ varying vec4 v_color;
426
+ varying float v_thickness;
427
+ varying float v_feather;
428
+ varying vec2 v_cpA;
429
+ varying vec2 v_cpB;
430
+ varying vec2 v_cpC;
431
+ `.concat(n?`
432
+ varying float v_targetSize;
433
+ varying vec2 v_targetPoint;`:"",`
434
+ `).concat(r?`
435
+ varying float v_sourceSize;
436
+ varying vec2 v_sourcePoint;`:"",`
437
+ `).concat(t?`
438
+ uniform float u_lengthToThicknessRatio;
439
+ uniform float u_widenessToThicknessRatio;`:"",`
440
+
441
+ float det(vec2 a, vec2 b) {
442
+ return a.x * b.y - b.x * a.y;
443
+ }
444
+
445
+ vec2 getDistanceVector(vec2 b0, vec2 b1, vec2 b2) {
446
+ float a = det(b0, b2), b = 2.0 * det(b1, b0), d = 2.0 * det(b2, b1);
447
+ float f = b * d - a * a;
448
+ vec2 d21 = b2 - b1, d10 = b1 - b0, d20 = b2 - b0;
449
+ vec2 gf = 2.0 * (b * d21 + d * d10 + a * d20);
450
+ gf = vec2(gf.y, -gf.x);
451
+ vec2 pp = -f * gf / dot(gf, gf);
452
+ vec2 d0p = b0 - pp;
453
+ float ap = det(d0p, d20), bp = 2.0 * det(d10, d0p);
454
+ float t = clamp((ap + bp) / (2.0 * a + b + d), 0.0, 1.0);
455
+ return mix(mix(b0, b1, t), mix(b1, b2, t), t);
456
+ }
457
+
458
+ float distToQuadraticBezierCurve(vec2 p, vec2 b0, vec2 b1, vec2 b2) {
459
+ return length(getDistanceVector(b0 - p, b1 - p, b2 - p));
460
+ }
461
+
462
+ const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);
463
+
464
+ void main(void) {
465
+ float dist = distToQuadraticBezierCurve(gl_FragCoord.xy, v_cpA, v_cpB, v_cpC);
466
+ float thickness = v_thickness;
467
+ `).concat(n?`
468
+ float distToTarget = length(gl_FragCoord.xy - v_targetPoint);
469
+ float targetArrowLength = v_targetSize + thickness * u_lengthToThicknessRatio;
470
+ if (distToTarget < targetArrowLength) {
471
+ thickness = (distToTarget - v_targetSize) / (targetArrowLength - v_targetSize) * u_widenessToThicknessRatio * thickness;
472
+ }`:"",`
473
+ `).concat(r?`
474
+ float distToSource = length(gl_FragCoord.xy - v_sourcePoint);
475
+ float sourceArrowLength = v_sourceSize + thickness * u_lengthToThicknessRatio;
476
+ if (distToSource < sourceArrowLength) {
477
+ thickness = (distToSource - v_sourceSize) / (sourceArrowLength - v_sourceSize) * u_widenessToThicknessRatio * thickness;
478
+ }`:"",`
479
+
480
+ float halfThickness = thickness / 2.0;
481
+ if (dist < halfThickness) {
482
+ #ifdef PICKING_MODE
483
+ gl_FragColor = v_color;
484
+ #else
485
+ float t = smoothstep(
486
+ halfThickness - v_feather,
487
+ halfThickness,
488
+ dist
489
+ );
490
+
491
+ gl_FragColor = mix(v_color, transparent, t);
492
+ #endif
493
+ } else {
494
+ gl_FragColor = transparent;
495
+ }
496
+ }
497
+ `);return i}function TN(e){var t=e.arrowHead,n=t?.extremity==="target"||t?.extremity==="both",r=t?.extremity==="source"||t?.extremity==="both",i=`
498
+ attribute vec4 a_id;
499
+ attribute vec4 a_color;
500
+ attribute float a_direction;
501
+ attribute float a_thickness;
502
+ attribute vec2 a_source;
503
+ attribute vec2 a_target;
504
+ attribute float a_current;
505
+ attribute float a_curvature;
506
+ `.concat(n?`attribute float a_targetSize;
507
+ `:"",`
508
+ `).concat(r?`attribute float a_sourceSize;
509
+ `:"",`
510
+
511
+ uniform mat3 u_matrix;
512
+ uniform float u_sizeRatio;
513
+ uniform float u_pixelRatio;
514
+ uniform vec2 u_dimensions;
515
+ uniform float u_minEdgeThickness;
516
+ uniform float u_feather;
517
+
518
+ varying vec4 v_color;
519
+ varying float v_thickness;
520
+ varying float v_feather;
521
+ varying vec2 v_cpA;
522
+ varying vec2 v_cpB;
523
+ varying vec2 v_cpC;
524
+ `).concat(n?`
525
+ varying float v_targetSize;
526
+ varying vec2 v_targetPoint;`:"",`
527
+ `).concat(r?`
528
+ varying float v_sourceSize;
529
+ varying vec2 v_sourcePoint;`:"",`
530
+ `).concat(t?`
531
+ uniform float u_widenessToThicknessRatio;`:"",`
532
+
533
+ const float bias = 255.0 / 254.0;
534
+ const float epsilon = 0.7;
535
+
536
+ vec2 clipspaceToViewport(vec2 pos, vec2 dimensions) {
537
+ return vec2(
538
+ (pos.x + 1.0) * dimensions.x / 2.0,
539
+ (pos.y + 1.0) * dimensions.y / 2.0
540
+ );
541
+ }
542
+
543
+ vec2 viewportToClipspace(vec2 pos, vec2 dimensions) {
544
+ return vec2(
545
+ pos.x / dimensions.x * 2.0 - 1.0,
546
+ pos.y / dimensions.y * 2.0 - 1.0
547
+ );
548
+ }
549
+
550
+ void main() {
551
+ float minThickness = u_minEdgeThickness;
552
+
553
+ // Selecting the correct position
554
+ // Branchless "position = a_source if a_current == 1.0 else a_target"
555
+ vec2 position = a_source * max(0.0, a_current) + a_target * max(0.0, 1.0 - a_current);
556
+ position = (u_matrix * vec3(position, 1)).xy;
557
+
558
+ vec2 source = (u_matrix * vec3(a_source, 1)).xy;
559
+ vec2 target = (u_matrix * vec3(a_target, 1)).xy;
560
+
561
+ vec2 viewportPosition = clipspaceToViewport(position, u_dimensions);
562
+ vec2 viewportSource = clipspaceToViewport(source, u_dimensions);
563
+ vec2 viewportTarget = clipspaceToViewport(target, u_dimensions);
564
+
565
+ vec2 delta = viewportTarget.xy - viewportSource.xy;
566
+ float len = length(delta);
567
+ vec2 normal = vec2(-delta.y, delta.x) * a_direction;
568
+ vec2 unitNormal = normal / len;
569
+ float boundingBoxThickness = len * a_curvature;
570
+
571
+ float curveThickness = max(minThickness, a_thickness / u_sizeRatio);
572
+ v_thickness = curveThickness * u_pixelRatio;
573
+ v_feather = u_feather;
574
+
575
+ v_cpA = viewportSource;
576
+ v_cpB = 0.5 * (viewportSource + viewportTarget) + unitNormal * a_direction * boundingBoxThickness;
577
+ v_cpC = viewportTarget;
578
+
579
+ vec2 viewportOffsetPosition = (
580
+ viewportPosition +
581
+ unitNormal * (boundingBoxThickness / 2.0 + sign(boundingBoxThickness) * (`).concat(t?"curveThickness * u_widenessToThicknessRatio":"curveThickness",` + epsilon)) *
582
+ max(0.0, a_direction) // NOTE: cutting the bounding box in half to avoid overdraw
583
+ );
584
+
585
+ position = viewportToClipspace(viewportOffsetPosition, u_dimensions);
586
+ gl_Position = vec4(position, 0, 1);
587
+
588
+ `).concat(n?`
589
+ v_targetSize = a_targetSize * u_pixelRatio / u_sizeRatio;
590
+ v_targetPoint = viewportTarget;
591
+ `:"",`
592
+ `).concat(r?`
593
+ v_sourceSize = a_sourceSize * u_pixelRatio / u_sizeRatio;
594
+ v_sourcePoint = viewportSource;
595
+ `:"",`
596
+
597
+ #ifdef PICKING_MODE
598
+ // For picking mode, we use the ID as the color:
599
+ v_color = a_id;
600
+ #else
601
+ // For normal mode, we use the color:
602
+ v_color = a_color;
603
+ #endif
604
+
605
+ v_color.a *= bias;
606
+ }
607
+ `);return i}var s_=.25,CN={arrowHead:null,curvatureAttribute:"curvature",defaultCurvature:s_},a_=WebGLRenderingContext,Pp=a_.UNSIGNED_BYTE,mn=a_.FLOAT;function Ma(e){var t=ss(ss({},CN),e||{}),n=t,r=n.arrowHead,i=n.curvatureAttribute,o=n.drawLabel,s=r?.extremity==="target"||r?.extremity==="both",a=r?.extremity==="source"||r?.extremity==="both",u=["u_matrix","u_sizeRatio","u_dimensions","u_pixelRatio","u_feather","u_minEdgeThickness"].concat(du(r?["u_lengthToThicknessRatio","u_widenessToThicknessRatio"]:[]));return(function(c){bN(l,c);function l(){var d;pN(this,l);for(var f=arguments.length,h=new Array(f),p=0;p<f;p++)h[p]=arguments[p];return d=vN(this,l,[].concat(h)),n_(i_(d),"drawLabel",o||EN(t)),d}return gN(l,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:TN(t),FRAGMENT_SHADER_SOURCE:$N(t),METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:u,ATTRIBUTES:[{name:"a_source",size:2,type:mn},{name:"a_target",size:2,type:mn}].concat(du(s?[{name:"a_targetSize",size:1,type:mn}]:[]),du(a?[{name:"a_sourceSize",size:1,type:mn}]:[]),[{name:"a_thickness",size:1,type:mn},{name:"a_curvature",size:1,type:mn},{name:"a_color",size:4,type:Pp,normalized:!0},{name:"a_id",size:4,type:Pp,normalized:!0}]),CONSTANT_ATTRIBUTES:[{name:"a_current",size:1,type:mn},{name:"a_direction",size:1,type:mn}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[0,-1],[1,1],[1,-1]]}}},{key:"processVisibleItem",value:function(f,h,p,m,g){var w,y=g.size||1,b=p.x,v=p.y,S=m.x,_=m.y,$=En(g.color),R=(w=g[i])!==null&&w!==void 0?w:s_,P=this.array;P[h++]=b,P[h++]=v,P[h++]=S,P[h++]=_,s&&(P[h++]=m.size),a&&(P[h++]=p.size),P[h++]=y,P[h++]=R,P[h++]=$,P[h++]=f}},{key:"setUniforms",value:function(f,h){var p=h.gl,m=h.uniformLocations,g=m.u_matrix,w=m.u_pixelRatio,y=m.u_feather,b=m.u_sizeRatio,v=m.u_dimensions,S=m.u_minEdgeThickness;if(p.uniformMatrix3fv(g,!1,f.matrix),p.uniform1f(w,f.pixelRatio),p.uniform1f(b,f.sizeRatio),p.uniform1f(y,f.antiAliasingFeather),p.uniform2f(v,f.width*f.pixelRatio,f.height*f.pixelRatio),p.uniform1f(S,f.minEdgeThickness),r){var _=m.u_lengthToThicknessRatio,$=m.u_widenessToThicknessRatio;p.uniform1f(_,r.lengthToThicknessRatio),p.uniform1f($,r.widenessToThicknessRatio)}}}]),l})(Pa)}Ma();Ma({arrowHead:Oa});Ma({arrowHead:ss(ss({},Oa),{},{extremity:"both"})});function AN(e){if(Array.isArray(e))return e}function IN(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,a=[],u=!0,c=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);u=!0);}catch(l){c=!0,i=l}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return a}}function Ju(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u_(e,t){if(e){if(typeof e=="string")return Ju(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ju(e,t):void 0}}function NN(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
608
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function zN(e,t){return AN(e)||IN(e,t)||u_(e,t)||NN()}function RN(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function LN(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function c_(e){var t=LN(e,"string");return typeof t=="symbol"?t:t+""}function PN(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c_(r.key),r)}}function DN(e,t,n){return t&&PN(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function us(e){return us=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},us(e)}function l_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(l_=function(){return!!e})()}function Yu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ON(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Yu(e)}function MN(e,t,n){return t=us(t),ON(e,l_()?Reflect.construct(t,n||[],us(e).constructor):t.apply(e,n))}function Xu(e,t){return Xu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Xu(e,t)}function FN(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Xu(e,t)}function Wn(e,t,n){return(t=c_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function UN(e){if(Array.isArray(e))return Ju(e)}function GN(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function jN(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
609
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fu(e){return UN(e)||GN(e)||u_(e)||jN()}function Dp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Op(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Dp(Object(n),!0).forEach(function(r){Wn(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dp(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var ZN="relative",BN={drawLabel:void 0,drawHover:void 0,borders:[{size:{value:.1},color:{attribute:"borderColor"}},{size:{fill:!0},color:{attribute:"color"}}]},VN="#000000";function HN(e){var t=e.borders,n=mp(t.filter(function(i){var o=i.size;return"fill"in o}).length),r=`
610
+ precision highp float;
611
+
612
+ varying vec2 v_diffVector;
613
+ varying float v_radius;
614
+
615
+ #ifdef PICKING_MODE
616
+ varying vec4 v_color;
617
+ #else
618
+ // For normal mode, we use the border colors defined in the program:
619
+ `.concat(t.flatMap(function(i,o){var s=i.size;return"attribute"in s?["varying float v_borderSize_".concat(o+1,";")]:[]}).join(`
620
+ `),`
621
+ `).concat(t.flatMap(function(i,o){var s=i.color;return"attribute"in s?["varying vec4 v_borderColor_".concat(o+1,";")]:"value"in s?["uniform vec4 u_borderColor_".concat(o+1,";")]:[]}).join(`
622
+ `),`
623
+ #endif
624
+
625
+ uniform float u_correctionRatio;
626
+
627
+ const float bias = 255.0 / 254.0;
628
+ const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);
629
+
630
+ void main(void) {
631
+ float dist = length(v_diffVector);
632
+ float aaBorder = 2.0 * u_correctionRatio;
633
+ float v_borderSize_0 = v_radius;
634
+ vec4 v_borderColor_0 = transparent;
635
+
636
+ // No antialiasing for picking mode:
637
+ #ifdef PICKING_MODE
638
+ if (dist > v_radius)
639
+ gl_FragColor = transparent;
640
+ else {
641
+ gl_FragColor = v_color;
642
+ gl_FragColor.a *= bias;
643
+ }
644
+ #else
645
+ // Sizes:
646
+ `).concat(t.flatMap(function(i,o){var s=i.size;if("fill"in s)return[];s=s;var a="attribute"in s?"v_borderSize_".concat(o+1):mp(s.value),u=(s.mode||ZN)==="pixels"?"u_correctionRatio":"v_radius";return[" float borderSize_".concat(o+1," = ").concat(u," * ").concat(a,";")]}).join(`
647
+ `),`
648
+ // Now, let's split the remaining space between "fill" borders:
649
+ float fillBorderSize = (v_radius - (`).concat(t.flatMap(function(i,o){var s=i.size;return"fill"in s?[]:["borderSize_".concat(o+1)]}).join(" + "),") ) / ").concat(n,`;
650
+ `).concat(t.flatMap(function(i,o){var s=i.size;return"fill"in s?[" float borderSize_".concat(o+1," = fillBorderSize;")]:[]}).join(`
651
+ `),`
652
+
653
+ // Finally, normalize all border sizes, to start from the full size and to end with the smallest:
654
+ float adjustedBorderSize_0 = v_radius;
655
+ `).concat(t.map(function(i,o){return" float adjustedBorderSize_".concat(o+1," = adjustedBorderSize_").concat(o," - borderSize_").concat(o+1,";")}).join(`
656
+ `),`
657
+
658
+ // Colors:
659
+ vec4 borderColor_0 = transparent;
660
+ `).concat(t.map(function(i,o){var s=i.color,a=[];return"attribute"in s?a.push(" vec4 borderColor_".concat(o+1," = v_borderColor_").concat(o+1,";")):"transparent"in s?a.push(" vec4 borderColor_".concat(o+1," = vec4(0.0, 0.0, 0.0, 0.0);")):a.push(" vec4 borderColor_".concat(o+1," = u_borderColor_").concat(o+1,";")),a.push(" borderColor_".concat(o+1,".a *= bias;")),a.push(" if (borderSize_".concat(o+1," <= 1.0 * u_correctionRatio) { borderColor_").concat(o+1," = borderColor_").concat(o,"; }")),a.join(`
661
+ `)}).join(`
662
+ `),`
663
+ if (dist > adjustedBorderSize_0) {
664
+ gl_FragColor = borderColor_0;
665
+ } else `).concat(t.map(function(i,o){return"if (dist > adjustedBorderSize_".concat(o,` - aaBorder) {
666
+ gl_FragColor = mix(borderColor_`).concat(o+1,", borderColor_").concat(o,", (dist - adjustedBorderSize_").concat(o,` + aaBorder) / aaBorder);
667
+ } else if (dist > adjustedBorderSize_`).concat(o+1,`) {
668
+ gl_FragColor = borderColor_`).concat(o+1,`;
669
+ } else `)}).join(""),` { /* Nothing to add here */ }
670
+ #endif
671
+ }
672
+ `);return r}function qN(e){var t=e.borders,n=`
673
+ attribute vec2 a_position;
674
+ attribute float a_size;
675
+ attribute float a_angle;
676
+
677
+ uniform mat3 u_matrix;
678
+ uniform float u_sizeRatio;
679
+ uniform float u_correctionRatio;
680
+
681
+ varying vec2 v_diffVector;
682
+ varying float v_radius;
683
+
684
+ #ifdef PICKING_MODE
685
+ attribute vec4 a_id;
686
+ varying vec4 v_color;
687
+ #else
688
+ `.concat(t.flatMap(function(r,i){var o=r.size;return"attribute"in o?["attribute float a_borderSize_".concat(i+1,";"),"varying float v_borderSize_".concat(i+1,";")]:[]}).join(`
689
+ `),`
690
+ `).concat(t.flatMap(function(r,i){var o=r.color;return"attribute"in o?["attribute vec4 a_borderColor_".concat(i+1,";"),"varying vec4 v_borderColor_".concat(i+1,";")]:[]}).join(`
691
+ `),`
692
+ #endif
693
+
694
+ const float bias = 255.0 / 254.0;
695
+ const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);
696
+
697
+ void main() {
698
+ float size = a_size * u_correctionRatio / u_sizeRatio * 4.0;
699
+ vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));
700
+ vec2 position = a_position + diffVector;
701
+ gl_Position = vec4(
702
+ (u_matrix * vec3(position, 1)).xy,
703
+ 0,
704
+ 1
705
+ );
706
+
707
+ v_radius = size / 2.0;
708
+ v_diffVector = diffVector;
709
+
710
+ #ifdef PICKING_MODE
711
+ v_color = a_id;
712
+ #else
713
+ `).concat(t.flatMap(function(r,i){var o=r.size;return"attribute"in o?[" v_borderSize_".concat(i+1," = a_borderSize_").concat(i+1,";")]:[]}).join(`
714
+ `),`
715
+ `).concat(t.flatMap(function(r,i){var o=r.color;return"attribute"in o?[" v_borderColor_".concat(i+1," = a_borderColor_").concat(i+1,";")]:[]}).join(`
716
+ `),`
717
+ #endif
718
+ }
719
+ `);return n}var d_=WebGLRenderingContext,Mp=d_.UNSIGNED_BYTE,Go=d_.FLOAT;function f_(e){var t,n=Op(Op({},BN),e||{}),r=n.borders,i=n.drawLabel,o=n.drawHover,s=["u_sizeRatio","u_correctionRatio","u_matrix"].concat(fu(r.flatMap(function(a,u){var c=a.color;return"value"in c?["u_borderColor_".concat(u+1)]:[]})));return t=(function(a){FN(u,a);function u(){var c;RN(this,u);for(var l=arguments.length,d=new Array(l),f=0;f<l;f++)d[f]=arguments[f];return c=MN(this,u,[].concat(d)),Wn(Yu(c),"drawLabel",i),Wn(Yu(c),"drawHover",o),c}return DN(u,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:qN(n),FRAGMENT_SHADER_SOURCE:HN(n),METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:s,ATTRIBUTES:[{name:"a_position",size:2,type:Go},{name:"a_id",size:4,type:Mp,normalized:!0},{name:"a_size",size:1,type:Go}].concat(fu(r.flatMap(function(l,d){var f=l.color;return"attribute"in f?[{name:"a_borderColor_".concat(d+1),size:4,type:Mp,normalized:!0}]:[]})),fu(r.flatMap(function(l,d){var f=l.size;return"attribute"in f?[{name:"a_borderSize_".concat(d+1),size:1,type:Go}]:[]}))),CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:Go}],CONSTANT_DATA:[[u.ANGLE_1],[u.ANGLE_2],[u.ANGLE_3]]}}},{key:"processVisibleItem",value:function(l,d,f){var h=this.array;h[d++]=f.x,h[d++]=f.y,h[d++]=l,h[d++]=f.size,r.forEach(function(p){var m=p.color;"attribute"in m&&(h[d++]=En(f[m.attribute]||m.defaultValue||VN))}),r.forEach(function(p){var m=p.size;"attribute"in m&&(h[d++]=f[m.attribute]||m.defaultValue)})}},{key:"setUniforms",value:function(l,d){var f=d.gl,h=d.uniformLocations,p=h.u_sizeRatio,m=h.u_correctionRatio,g=h.u_matrix;f.uniform1f(m,l.correctionRatio),f.uniform1f(p,l.sizeRatio),f.uniformMatrix3fv(g,!1,l.matrix),r.forEach(function(w,y){var b=w.color;if("value"in b){var v=h["u_borderColor_".concat(y+1)],S=QA(b.value),_=zN(S,4),$=_[0],R=_[1],P=_[2],O=_[3];f.uniform4f(v,$/255,R/255,P/255,O/255)}})}}]),u})(Zw),Wn(t,"ANGLE_1",0),Wn(t,"ANGLE_2",2*Math.PI/3),Wn(t,"ANGLE_3",4*Math.PI/3),t}f_();const cs=.18,WN=500,KN=2,JN=3,jo={rest:2,selected:4,expanded:5},YN=6,hu=2,XN=8,Fp=6,pu=400,QN=2e3,ez={x:[0,1e3],y:[0,1e3]},mu=1e3,Up=500,tz={role:{size:13,font:e=>`600 ${e}px Inter, system-ui, sans-serif`},address:{size:11,font:e=>`400 ${e}px ui-monospace, monospace`},note:{size:11,font:e=>`italic 400 ${e}px Inter, system-ui, sans-serif`}};function Zo(e){return Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0")}function Ht(e,t=1){return`#${Zo(e.r)}${Zo(e.g)}${Zo(e.b)}${Zo(e.a*t*255)}`}function h_(e,t,n,r){const i=1-r;return{x:i*i*e.x+2*i*r*t.x+r*r*n.x,y:i*i*e.y+2*i*r*t.y+r*r*n.y}}function p_(e,t,n=cs){const r=t.x-e.x,i=t.y-e.y;return{x:(e.x+t.x)/2+i*n,y:(e.y+t.y)/2-r*n}}function m_(e,t,n){const r=n.x-t.x,i=n.y-t.y,o=r*r+i*i,s=o?Math.max(0,Math.min(1,((e.x-t.x)*r+(e.y-t.y)*i)/o)):0;return Math.hypot(e.x-(t.x+s*r),e.y-(t.y+s*i))}function nz(e,t,n,r=cs){const i=p_(t,n,r);let o=1/0,s=t;for(let a=1;a<=12;a++){const u=h_(t,i,n,a/12);o=Math.min(o,m_(e,s,u)),s=u}return o}function rz(e,t,n,r){const i=e.ownerDocument,o=i.defaultView,s=i.createElement("div");s.className="cia-graph-webgl",s.tabIndex=0,s.setAttribute("role","group"),s.setAttribute("aria-label",r.label??"Money-flow graph. Drag the background or use arrow keys to pan, plus and minus to zoom. Select an address or a link for details.");const a=i.createElement("span");a.hidden=!0,s.append(a),e.append(s);const u=new Map;function c(L){const F=u.get(L);if(F)return F;a.style.color="",a.style.color=L;const H=o.getComputedStyle(a).color.match(/[\d.]+/g)?.map(Number)??[0,0,0],J={r:H[0]??0,g:H[1]??0,b:H[2]??0,a:H[3]??1};return u.set(L,J),J}const l=L=>c(`var(--cia-graph-${L})`);let d;function f(){u.clear(),d={node:l("node"),edge:l("edge"),halo:l("halo"),selected:l("selected"),expanded:l("expanded"),text:l("text"),muted:l("muted")}}f();function h(L,F){if(!F.texts?.length||!F.outer)return;const H=F.size/F.outer;L.textAlign="center",L.textBaseline="alphabetic",L.lineJoin="round";for(const J of F.texts){const me=tz[J.kind],ue=me.size*H;if(ue<Fp)continue;L.font=me.font(ue);const we=F.y+J.y*H;L.lineWidth=4*H,L.strokeStyle=F.haloColor??"#000",L.strokeText(J.text,F.x,we),L.fillStyle=J.kind==="role"?F.toneColor??"#fff":J.kind==="address"?F.mutedColor??"#aaa":F.textColor??"#fff",L.fillText(J.text,F.x,we)}}const p=()=>{},m=f_({borders:[{size:{attribute:"ringSize",defaultValue:0},color:{attribute:"ringColor"}},{size:{attribute:"gapSize",defaultValue:0},color:{transparent:!0}},{size:{attribute:"strokeSize",defaultValue:.1},color:{attribute:"strokeColor"}},{size:{fill:!0},color:{attribute:"bodyColor"}},{size:{attribute:"dotSize",defaultValue:.25},color:{attribute:"dotColor"}}],drawLabel:h,drawHover:p}),g=Ma({arrowHead:{extremity:"target",lengthToThicknessRatio:6,widenessToThicknessRatio:4}}),w=Yw({lengthToThicknessRatio:6,widenessToThicknessRatio:4});let y=new Le({type:"directed",multi:!1,allowSelfLoops:!1});const b=new fN(y,s,{allowInvalidContainer:!0,autoRescale:!0,stagePadding:0,itemSizesReference:"positions",zoomToSizeRatioFunction:L=>L,enableCameraPanning:!0,enableCameraZooming:!0,enableCameraRotation:!1,enableEdgeEvents:!1,hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderEdgeLabels:!1,renderLabels:!0,labelRenderedSizeThreshold:Fp,labelDensity:1,labelGridCellSize:120,minEdgeThickness:1.6,defaultNodeType:"address",defaultEdgeType:"link",nodeProgramClasses:{address:m},edgeProgramClasses:{link:g,straight:w},defaultDrawNodeLabel:h,defaultDrawNodeHover:p});b.setCustomBBox(ez);const v=b.getMouseCaptor(),S=b.getTouchCaptor();v.removeAllListeners(),S.removeAllListeners(),v.enabled=!1,S.enabled=!1;const _=new Map;let $=cs;function R(L){const F=t.flags().get(L),H=t.selected();return F?.has("expanded")?{width:jo.expanded,color:d.expanded}:H?.kind==="node"&&H.id===L||t.highlighted()===L?{width:jo.selected,color:d.selected}:{width:jo.rest,color:c(t.colorOf(_.get(L)))}}function P(L,F,H){const J=t.model(),me=t.notes().get(L.id)??null,ue=Rr(L,J.checked_address,me),we=c(t.colorOf(L)),Ee=R(L.id),ae=ue.radius+Ee.width/2,Q=ue.ring?ue.radius+YN+hu/2:ae,Ge=ue.ring?hu/Q:0,at=ue.ring?Math.max(0,Q-hu-ae)/Q:0,Ze=t.selected(),Be=ue.ring||Ee.width!==jo.rest||Ze?.kind==="node"&&Ze.id===L.id;return{x:F.x,y:-F.y,size:Q,label:ue.texts.find(ht=>ht.kind==="address")?.text??L.address,color:Ht(we),forceLabel:!H||Be,ringColor:Ht(d.edge),ringSize:Ge,gapSize:at,strokeColor:Ht(Ee.color,me?.5:1),strokeSize:Ee.width/Q,bodyColor:Ht(d.node),dotColor:Ht(we),dotSize:ue.dot/Q,outer:Q,texts:ue.texts,toneColor:Ht(we),mutedColor:Ht(d.muted),textColor:Ht(d.text),haloColor:Ht(d.halo)}}function O(L,F){const H=t.selected(),J=H?.kind==="node"?_.get(H.id)?.address??null:null,me=H?.kind==="edge"&&H.id===L.id,ue=H?.kind==="edge"?me?Wt.related:Wt.faded:Jb(L,J);return{size:me?JN:KN,color:Ht(c(t.colorOf(F)),ue),curvature:$,type:$?"link":"straight"}}function Y(){const L=t.model(),F=t.positions(),{width:H,height:J}=t.dimensions();_.clear();for(const ae of L.nodes)_.set(ae.id,ae);const me=L.nodes.length>pu;$=L.edges.length>WN?0:cs;const ue=new Le({type:"directed",multi:!1,allowSelfLoops:!1}),we=new Map(L.nodes.map(ae=>[ae.address,ae]));for(const ae of L.nodes)ue.addNode(ae.id,P(ae,F[ae.id]??{x:H/2,y:J/2},me));for(const ae of L.edges){const Q=we.get(ae.from),Ge=we.get(ae.to);!Q||!Ge||Q.id===Ge.id||ue.hasEdge(ae.id)||ue.hasDirectedEdge(Q.id,Ge.id)||ue.addDirectedEdgeWithKey(ae.id,Q.id,Ge.id,O(ae,Q))}y=ue;const Ee=t.selected();$e=[Ee?.kind==="node"?Ee.id:null,t.highlighted()].filter(ae=>!!ae),b.setGraph(y),G()}function he(){const F=t.model().nodes.length>pu,H=t.positions();y.updateEachNodeAttributes((J,me)=>{const ue=_.get(J);return ue?P(ue,H[J]??{x:me.x,y:-me.y},F):me}),M()}function Se(L){const F=L?_.get(L):null;if(!F||!y.hasNode(F.id))return;const H=t.positions()[F.id],J=y.getNodeAttributes(F.id);y.replaceNodeAttributes(F.id,P(F,H??{x:J.x,y:-J.y},t.model().nodes.length>pu))}let $e=[];function Fe(){const L=t.selected(),F=[L?.kind==="node"?L.id:null,t.highlighted()].filter(H=>!!H);for(const H of new Set([...$e,...F]))Se(H);$e=F,M()}function M(){const L=t.model(),F=new Map(L.nodes.map(J=>[J.address,J])),H=new Map(L.edges.map(J=>[J.id,J]));y.updateEachEdgeAttributes((J,me)=>{const ue=H.get(J),we=ue&&F.get(ue.from);return ue&&we?O(ue,we):me})}function G(){const{width:L,height:F}=t.dimensions(),H=b.getDimensions();if(!H.width||!H.height)return;const J=Math.min(H.width/L,H.height/F),me=t.transform(),ue=me.scale*J,we=(H.width-L*J)/2+me.x*J,Ee=(H.height-F*J)/2+me.y*J,ae={x:.5,y:.5,ratio:1,angle:0},Q=b.framedGraphToViewport({x:.5,y:.5},{cameraState:ae}),Ge=(b.framedGraphToViewport({x:.6,y:.5},{cameraState:ae}).x-Q.x)/.1,at=(b.framedGraphToViewport({x:.5,y:.6},{cameraState:ae}).y-Q.y)/.1,Ze=Ge/(mu*ue);b.getCamera().setState({ratio:Ze,angle:0,x:.5-Up/mu-(we-Q.x)*Ze/Ge,y:.5-Up/mu-(Ee-Q.y)*Ze/at})}function B(L){const F=t.transform(),H={x:(L.x-F.x)/F.scale,y:(L.y-F.y)/F.scale},J=t.positions();let me=null,ue=1/0;if(y.forEachNode((Q,Ge)=>{const at=J[Q];if(!at)return;const Ze=Math.hypot(H.x-at.x,H.y-at.y);Ze<=Ge.size+1/F.scale&&Ze<ue&&(me=Q,ue=Ze)}),me)return{kind:"node",id:me};const we=XN/F.scale;let Ee=null,ae=1/0;return y.forEachEdge((Q,Ge,at,Ze)=>{const Be=J[at],ht=J[Ze];if(!Be||!ht)return;const C=Math.hypot(ht.x-Be.x,ht.y-Be.y)*(.5+$)+we;if(Math.hypot(H.x-(Be.x+ht.x)/2,H.y-(Be.y+ht.y)/2)>C)return;const z=$?nz(H,Be,ht,$):m_(H,Be,ht);z<=we&&z<ae&&(Ee=Q,ae=z)}),Ee?{kind:"edge",id:Ee}:{kind:"canvas",id:null}}let ee=0,X=null,V=null;const q=L=>{L.buttons||(V=L,!ee&&(ee=o.requestAnimationFrame(()=>{ee=0;const F=V;if(!F)return;const H=s.getBoundingClientRect(),{width:J,height:me}=t.dimensions(),ue=Math.min(H.width/J,H.height/me)||1,we=B({x:(F.clientX-H.left-(H.width-J*ue)/2)/ue,y:(F.clientY-H.top-(H.height-me*ue)/2)/ue}),Ee=we.kind==="canvas"?null:`${we.kind}:${we.id}`;if(s.style.cursor=Ee?"pointer":"",Ee!==X){if(X=Ee,!Ee){n.hideTooltip();return}if(we.kind==="node"){const ae=_.get(we.id);ae&&n.showTooltip(F,Ou(ae))}else{const ae=t.model().edges.find(Q=>Q.id===we.id);ae&&n.showTooltip(F,Mu(ae,t.now()))}}})))},W=()=>{X=null,s.style.cursor="",n.hideTooltip()};s.addEventListener("pointermove",q),s.addEventListener("pointerleave",W);let xe=null;const Ie=L=>{L.preventDefault(),!xe&&(xe=setTimeout(()=>{xe=null,n.lost()},QN))},je=()=>{xe&&clearTimeout(xe),xe=null,n.lost()},st=Object.values(b.getCanvases());for(const L of st)L.addEventListener("webglcontextlost",Ie),L.addEventListener("webglcontextrestored",je);function et(){const L=t.positions();let F=null;return y.forEachEdge((H,J,me,ue)=>{const we=L[me],Ee=L[ue];if(!we||!Ee||!$)return;const ae=h_(we,p_(we,Ee,$),Ee,.5);F=F??{x1:ae.x,y1:ae.y,x2:ae.x,y2:ae.y},F.x1=Math.min(F.x1,ae.x),F.y1=Math.min(F.y1,ae.y),F.x2=Math.max(F.x2,ae.x),F.y2=Math.max(F.y2,ae.y)}),F}return{kind:"webgl",surface:s,build:Y,geometry(){const L=t.positions();y.updateEachNodeAttributes((F,H)=>{const J=L[F];return J?{...H,x:J.x,y:-J.y}:H},{attributes:["x","y"]}),G()},moveNode(L){const F=t.positions()[L];F&&y.hasNode(L)&&y.mergeNodeAttributes(L,{x:F.x,y:-F.y})},endMove(){},camera:G,selection:Fe,flag:L=>Se(L),theme(){f(),he()},resize(){b.resize(!0),G()},pick:B,linkBounds:et,destroy(){xe&&clearTimeout(xe),ee&&o.cancelAnimationFrame(ee),s.removeEventListener("pointermove",q),s.removeEventListener("pointerleave",W);for(const L of st)L.removeEventListener("webglcontextlost",Ie),L.removeEventListener("webglcontextrestored",je);b.kill(),s.remove()}}}s$("webgl",rz);const yo=document.getElementById("view"),g_=()=>typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches;let _n={},Bo=vw(document,_n,{prefersDark:g_}),Vt=null;cw(yo);const Jt=new Ef({name:"chain-insights-view",version:"1.0.0"},{});function y_(e){const t=Bo;Bo=vw(document,e,{prefersDark:g_,applyVariables:(n,r)=>i$(n,r),applyFonts:o$}),Vt&&Bo!==t&&Vt.setTheme(Bo),Vt?.setDisplayMode(e.displayMode,e.availableDisplayModes)}function iz(e){Vt?.destroy(),Vt=null;const t=Rf(Jt.getHostContext(),_n);Vt=LC(yo,e,{host:Jt,availableDisplayModes:t.availableDisplayModes,displayMode:t.displayMode}),document.documentElement.dataset.view=Vt.kind}Jt.ontoolinput=e=>{const t=typeof e.arguments?.address=="string"?e.arguments.address:null;Vt||cw(yo,t?`Loading the graph of ${t}`:"Loading the Chain Insights view")};Jt.ontoolresult=e=>{iz(e)};Jt.ontoolcancelled=()=>{Vt||Ra(yo,null,"The tool call was cancelled. Nothing to draw.")};Jt.onhostcontextchanged=e=>{_n=Rf(_n,e),y_(_n)};Jt.onteardown=async()=>(Vt?.destroy(),Vt=null,{});Jt.onerror=e=>{console.warn("chain-insights-view:",e)};Jt.connect(new Zb(window.parent,window.parent)).then(()=>{_n=Rf(_n,Jt.getHostContext()),y_(_n)},e=>{console.warn("chain-insights-view: no host answered",e),Ra(yo,null,"This view opens inside Claude, next to a Chain Insights tool answer.")});
111
720
  </script>
112
- <style>.cia-graph-surface{--cia-graph-surface:linear-gradient(140deg,#171a20,#0d0f13);--cia-graph-canvas:#101318;--cia-graph-dot:#f2dda621;--cia-graph-text:#e2e8f0;--cia-graph-muted:#adb1ba;--cia-graph-border:#f2dda640;--cia-graph-divider:#ffffff10;--cia-graph-control:#14161a;--cia-graph-hover:#f2dda626;--cia-graph-active:#f2dda6;--cia-graph-active-text:#0b0e13;--cia-graph-node:#14161a;--cia-graph-edge:#f2dda6;--cia-graph-halo:#07090d;--cia-graph-selected:#ffffff;--cia-graph-expanded:#4da3ff;--cia-graph-danger:#d89087;--cia-graph-target:#8bb6b0;--cia-graph-trail:#b49bc4;--cia-graph-infrastructure:#94b58b;--cia-graph-neutral:#f2dda6;--cia-graph-critical:#d89087;--cia-graph-high:#d6a07d;--cia-graph-medium:#b49bc4;--cia-graph-low:#94b58b;--cia-graph-role-exchange:var(--cia-graph-infrastructure);--cia-graph-role-scam:var(--cia-graph-danger);--cia-graph-role-sanctioned:var(--cia-graph-danger);--cia-graph-role-victim:var(--cia-graph-target);--cia-graph-role-pool:var(--cia-graph-trail);--cia-graph-role-other:var(--cia-graph-neutral);--cia-graph-series-1:var(--cia-graph-edge);--cia-graph-series-2:var(--cia-graph-target);--cia-graph-series-3:var(--cia-graph-trail);--cia-graph-series-4:var(--cia-graph-infrastructure);--cia-graph-series-5:var(--cia-graph-danger);--cia-graph-series-6:var(--cia-graph-high);color:var(--cia-graph-text);background:var(--cia-graph-surface);border:1px solid var(--cia-graph-border);border-radius:14px;overflow:hidden}html[data-theme=light] .cia-graph-surface{--cia-graph-surface:#f9f9f9;--cia-graph-canvas:#fff;--cia-graph-dot:#dedede;--cia-graph-text:#242424;--cia-graph-muted:#686868;--cia-graph-border:#dedede;--cia-graph-divider:#e6e6e6;--cia-graph-control:#fff;--cia-graph-hover:#ececec;--cia-graph-active:#4e708a;--cia-graph-active-text:#fff;--cia-graph-node:#fff;--cia-graph-edge:#4e708a;--cia-graph-halo:#fff;--cia-graph-selected:#242424;--cia-graph-expanded:#0057d9;--cia-graph-danger:#a64d4b;--cia-graph-target:#356e68;--cia-graph-trail:#78538f;--cia-graph-infrastructure:#416c4a;--cia-graph-neutral:#4e708a;--cia-graph-critical:#a64d4b;--cia-graph-high:#a15432;--cia-graph-medium:#78538f;--cia-graph-low:#416c4a}.cia-graph-canvas{background:radial-gradient(circle,var(--cia-graph-dot) 1px,transparent 1px) 0 0/24px 24px,var(--cia-graph-canvas)}.graph-detail{border-top:1px solid var(--cia-graph-divider,#ffffff10);padding:1rem 1.5rem;font-size:.85rem;color:var(--cia-graph-muted,#adb1ba);line-height:1.6}.graph-detail strong{color:var(--cia-graph-text,#f2dda6)}.graph-detail p{margin:0}.graph-detail ul{padding-left:1.25rem;margin-bottom:0}.graph-detail strong,.graph-detail li{overflow-wrap:anywhere}.graph-legend{border-top:1px solid var(--cia-graph-divider,#ffffff10);padding:1rem 1.5rem;font-size:.85rem}.graph-legend summary{cursor:pointer}.graph-legend ul{list-style:none;padding:0}.graph-legend li{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:.6rem 0;border-bottom:1px solid var(--cia-graph-divider,#ffffff0a)}.graph-legend button{color:var(--cia-graph-edge,#f2dda6);background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit;font-family:ui-monospace,monospace;overflow-wrap:anywhere;max-width:100%}.graph-legend span{color:var(--cia-graph-muted,#adb1ba)}.graph-detail a,.graph-legend a{color:var(--cia-graph-edge,#f2dda6);text-decoration:none;border-bottom:1px solid var(--cia-graph-border,#f2dda659)}.graph-detail a:hover,.graph-legend a:hover{border-bottom-color:var(--cia-graph-edge,#f2dda6)}.graph-legend .graph-legend-link{overflow-wrap:normal;flex:none}.cia-graph-node-body{fill:var(--cia-graph-node,#14161a)}.cia-graph-node-ring{stroke:var(--cia-graph-edge,#f2dda6)}.cia-graph-node-address{fill:var(--cia-graph-muted,#adb1ba)}.cia-graph-edge-underlay{stroke:var(--cia-graph-halo,#07090d)}.cia-graph-edge-direction{stroke:var(--cia-graph-edge,#f2dda6)}.cia-graph-edge-arrow{fill:var(--cia-graph-edge,#f2dda6);stroke:var(--cia-graph-halo,#07090d)}.cia-graph-surface .graph-tooltip{background:var(--cia-graph-control);color:var(--cia-graph-text);border-color:var(--cia-graph-border)}.cia-graph-engine{position:relative;min-height:240px}.cia-graph-svg{display:block;width:100%;height:100%;touch-action:none;font-family:Inter,system-ui,sans-serif;outline:none}.cia-graph-svg:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:-2px}.cia-graph-backdrop{fill:var(--cia-graph-canvas)}.cia-graph-dot{fill:var(--cia-graph-dot)}.cia-graph-edge{cursor:pointer;outline:none;transition:opacity .15s}.cia-graph-edge-hit{fill:none;stroke:transparent}.cia-graph-edge-line{fill:none;stroke:var(--edge-tone,var(--cia-graph-edge));stroke-linecap:round}.cia-graph-edge:focus-visible .cia-graph-edge-line,.cia-graph-edge[aria-pressed=true] .cia-graph-edge-line{stroke-width:3}.cia-graph-node{cursor:pointer;outline:none}.cia-graph-engine .cia-graph-node-body{fill:var(--cia-graph-node);stroke:var(--node-tone,var(--cia-graph-neutral));stroke-width:2}.cia-graph-engine .cia-graph-node-ring{fill:none;stroke:var(--cia-graph-edge);stroke-width:2}.cia-graph-node-dot{fill:var(--node-tone,var(--cia-graph-neutral))}.cia-graph-node.is-selected .cia-graph-node-body,.cia-graph-node:focus-visible .cia-graph-node-body{stroke:var(--cia-graph-selected);stroke-width:4}.cia-graph-node text{paint-order:stroke;stroke:var(--cia-graph-halo);stroke-width:4px;stroke-linejoin:round}.cia-graph-node-role{fill:var(--node-tone,var(--cia-graph-neutral));font-size:13px;font-weight:600}.cia-graph-engine .cia-graph-node-address{fill:var(--cia-graph-muted);font:400 11px ui-monospace,monospace}.cia-graph-node-note{fill:var(--cia-graph-text);font-size:11px;font-style:italic}.cia-graph-node[data-state=refused] .cia-graph-node-body{stroke-dasharray:4 3}.cia-graph-engine .cia-graph-node[data-flag-expanded] .cia-graph-node-body{stroke:var(--cia-graph-expanded);stroke-width:5}.cia-graph-engine>.graph-tooltip{position:absolute;z-index:2;max-width:320px;padding:.5rem .65rem;border:1px solid;border-radius:6px;font:12px/1.45 Inter,system-ui,sans-serif;overflow-wrap:anywhere;pointer-events:none}:root{color-scheme:light dark}html,body{margin:0;padding:0;background:transparent}html[data-theme=dark]{color-scheme:dark;--cv-text:var(--color-text-primary,#ececec);--cv-muted:var(--color-text-secondary,#b4b4b4);--cv-surface:var(--color-background-secondary,#262624);--cv-raised:var(--color-background-tertiary,#30302e);--cv-border:var(--color-border-primary,#4a4a46);--cv-ring:var(--color-ring-primary,#8fb5ff);--cv-skeleton:#3a3a37}html[data-theme=light]{color-scheme:light;--cv-text:var(--color-text-primary,#1f1f1e);--cv-muted:var(--color-text-secondary,#5c5c58);--cv-surface:var(--color-background-secondary,#f5f4ef);--cv-raised:var(--color-background-tertiary,#ecebe5);--cv-border:var(--color-border-primary,#d6d4cc);--cv-ring:var(--color-ring-primary,#2f5fb8);--cv-skeleton:#e4e2db}body{color:var(--cv-text);font-family:var(--font-sans,system-ui,-apple-system,"Segoe UI",sans-serif);font-size:var(--font-text-sm-size,14px);line-height:var(--font-text-sm-line-height,1.45)}.cv-root{display:block}.cv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cv-muted{color:var(--cv-muted)}button:focus-visible{outline:2px solid var(--cv-ring);outline-offset:2px}.cv-card{box-sizing:border-box;border:var(--border-width-regular,1px) solid var(--cv-border);border-radius:var(--border-radius-lg,12px);background:var(--cv-surface);padding:14px 16px;overflow:hidden}.cv-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px}.cv-card-head strong{font-size:var(--font-text-md-size,15px);font-weight:var(--font-weight-semibold,600)}.cv-note{margin:0 0 10px;padding:6px 10px;border-radius:var(--border-radius-sm,6px);background:var(--color-background-warning,var(--cv-raised));color:var(--color-text-warning,var(--cv-text))}.cv-text-view p{margin:0 0 6px}.cv-text-body{white-space:pre-wrap;overflow-wrap:anywhere}.cia-graph-surface.cv-notice{box-sizing:border-box;margin:0;padding:6px 12px;border-radius:8px;font:400 13px/1.4 var(--font-sans,system-ui,-apple-system,"Segoe UI",sans-serif)}.cia-graph-surface.cv-notice-refused{border-left:3px solid var(--cia-graph-danger)}.cv-notice-empty{color:var(--cia-graph-muted)}.cv-notice p{margin:0}.cv-notice-line{overflow-wrap:anywhere}.cv-notice summary{cursor:pointer}.cv-notice summary:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:2px}.cv-notice-full{margin:4px 0 0;color:var(--cia-graph-muted);white-space:pre-wrap;overflow-wrap:anywhere}.cv-skeleton{min-height:220px}.cv-skel-line,.cv-skel-block{background:var(--cv-skeleton);border-radius:6px;margin-bottom:10px}.cv-skel-title{width:32%;height:16px}.cv-skel-sub{width:54%;height:12px}.cv-skel-block{height:160px;border-radius:10px}@media(prefers-reduced-motion:no-preference){.cv-skel-line,.cv-skel-block{animation:cv-pulse 1.6s ease-in-out infinite}}@keyframes cv-pulse{50%{opacity:.55}}.cv-table-wrap{overflow-x:auto}.cv-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.cv-table th{position:sticky;top:0;text-align:left;font-weight:var(--font-weight-semibold,600);color:var(--cv-muted);background:var(--cv-surface);border-bottom:1px solid var(--cv-border);padding:6px 10px;white-space:nowrap}.cv-table td{padding:5px 10px;border-bottom:1px solid var(--color-border-secondary,var(--cv-border));white-space:nowrap}.cv-table tr:last-child td{border-bottom:0}.cv-null{color:var(--cv-muted)}.cv-addr-cell{display:inline-flex;align-items:center;gap:6px}.cv-addr{font-family:var(--font-mono,ui-monospace,monospace);font-size:.92em}.cv-addr.is-full{-webkit-user-select:all;user-select:all}.cv-copy{font:inherit;font-size:.8em;padding:1px 7px;border:1px solid var(--cv-border);border-radius:var(--border-radius-sm,5px);background:transparent;color:var(--cv-muted);cursor:pointer}.cv-copy:hover{color:var(--cv-text);background:var(--cv-raised)}.cv-meter{height:8px;border-radius:999px;background:var(--cv-raised);overflow:hidden;margin:2px 0 12px}.cv-meter span{display:block;height:100%;background:var(--cv-ring)}.cv-balance-note{margin:2px 0 12px;font-weight:var(--font-weight-semibold,600)}.cv-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}.cv-facts dt{color:var(--cv-muted)}.cv-facts dd{margin:0;font-weight:var(--font-weight-medium,500)}.cv-flows{box-sizing:border-box;display:flex;flex-direction:column;height:640px;max-height:640px;font-family:var(--font-sans,system-ui,sans-serif)}.cv-flows[data-display-mode=fullscreen]{height:calc(100vh - var(--cv-tabs-h,0px));max-height:none;border-radius:0}.cv-flows-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:10px 14px 6px}.cv-title{display:flex;flex-direction:column;min-width:0}.cv-title strong{font-size:15px;font-weight:600}.cv-title .cv-muted,.cv-flows .cv-muted{color:var(--cia-graph-muted);font-size:12px;overflow-wrap:anywhere}.cv-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.cv-hint{font-size:12px;color:var(--cia-graph-muted);margin-right:2px}.cv-hint[hidden]{display:none}.cv-button{min-height:30px;min-width:30px;padding:0 10px;border:1px solid var(--cia-graph-border);border-radius:6px;background:var(--cia-graph-control);color:var(--cia-graph-text);font:500 12px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-button:hover{background:var(--cia-graph-hover)}.cv-button:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:1px}.cv-icon{padding:0;font-size:16px;line-height:1}.cv-roles{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0 14px 6px;list-style:none;font-size:12px;color:var(--cia-graph-muted)}.cv-roles li{display:inline-flex;align-items:center;gap:5px}.cv-roles i{width:9px;height:9px;border-radius:50%}.cv-canvas{position:relative;flex:1;min-height:0;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider)}.cv-canvas.cia-graph-engine{min-height:0}.cv-canvas .cia-graph-svg{font-family:var(--font-sans,Inter,system-ui,sans-serif)}.cv-status{margin:0;padding:6px 14px 8px;font-size:12px;color:var(--cia-graph-muted)}.cv-detail{flex:none;padding:0 0 8px;color:var(--cia-graph-text);font-size:12px;display:flex;flex-direction:column;gap:4px}.cv-detail[hidden]{display:none}.cv-detail>strong{color:var(--cia-graph-muted);font-weight:500}.cv-detail>code{font:11px var(--font-mono,ui-monospace,monospace);overflow-wrap:anywhere;word-break:break-all}.cv-detail-meta{display:flex;flex-direction:column;gap:3px}.cv-detail-meta .meta-item{display:inline-flex;gap:5px;align-items:baseline}.cv-detail-meta .meta-item span{color:var(--cia-graph-muted)}.cv-detail-meta .meta-item strong{color:var(--cia-graph-text);font-weight:600;overflow-wrap:anywhere}.cv-detail-meta .cia-graph-explorer-link{font:inherit;font-weight:600;padding:0;border:0;border-bottom:1px solid var(--cia-graph-border);background:none;color:var(--cia-graph-edge);cursor:pointer;overflow-wrap:anywhere;text-align:left}.cv-detail-meta .cia-graph-explorer-link:hover{border-bottom-color:var(--cia-graph-edge)}.cv-face[hidden],.cv-tabpanel[hidden]{display:none}.cv-toggle{display:inline-flex;flex:none;border:1px solid var(--cia-graph-border,var(--cv-border));border-radius:6px;overflow:hidden}.cv-card-head .cv-toggle{margin-left:auto}.cv-toggle-button{min-height:28px;padding:0 12px;border:0;background:var(--cia-graph-control,var(--cv-raised));color:var(--cia-graph-text,var(--cv-text));font:500 12px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-toggle-button+.cv-toggle-button{border-left:1px solid var(--cia-graph-border,var(--cv-border))}.cv-toggle-button:hover{background:var(--cia-graph-hover,var(--cv-border))}.cv-toggle-button[aria-pressed=true]{background:var(--cia-graph-active,var(--cv-text));color:var(--cia-graph-active-text,var(--cv-surface))}.cv-toggle-button:focus-visible{outline:2px solid var(--cia-graph-active,var(--cv-ring));outline-offset:-2px}.cia-graph-surface .cv-note{margin:0 14px 6px;background:var(--cia-graph-control);color:var(--cia-graph-text);border:1px solid var(--cia-graph-border)}.cv-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.cv-tab{padding:6px 12px;border:1px solid var(--cv-border);border-radius:var(--border-radius-md,8px);background:transparent;color:var(--cv-muted);font:500 13px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-tab:hover{color:var(--cv-text)}.cv-tab[aria-selected=true]{background:var(--cv-raised);color:var(--cv-text);border-color:var(--cv-ring)}.cv-tab:focus-visible{outline:2px solid var(--cv-ring);outline-offset:2px}.cv-chart{box-sizing:border-box;font-family:var(--font-sans,system-ui,sans-serif)}.cv-chart .cv-muted{color:var(--cia-graph-muted);font-size:12px}.cv-chart-body{padding:4px 14px 12px}.cv-chart-svg{display:block;width:100%;height:auto}.cv-chart-name{fill:var(--cia-graph-text);font:600 12px var(--font-sans,Inter,system-ui,sans-serif)}.cv-chart-tick{fill:var(--cia-graph-muted);font:400 11px var(--font-sans,Inter,system-ui,sans-serif)}.cv-chart-grid{stroke:var(--cia-graph-divider);stroke-width:1}.cv-chart-base{stroke:var(--cia-graph-border);stroke-width:1}.cv-chart-line{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.cv-body{position:relative;display:flex;flex:1;min-height:0;min-width:0}.cv-body>.cv-canvas{flex:1;min-width:0}.cv-linkpanel{display:flex;flex-direction:column;flex:none;box-sizing:border-box;width:min(46%,320px);overflow:hidden;padding:10px 12px;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider);border-left:1px solid var(--cia-graph-divider);font-size:12px;color:var(--cia-graph-text)}.cv-linkpanel[hidden]{display:none}.cv-link-body{flex:1;min-height:0;overflow:auto}.cv-linkpanel>[data-link-earlier]{flex:none;align-self:flex-start;margin-top:8px}.cv-link-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.cv-link-head strong{font-size:13px}.cv-link-pair{margin:0;color:var(--cia-graph-muted)}.cv-link-pair code{font:11px var(--font-mono,ui-monospace,monospace)}.cv-link-day{margin:4px 0 8px;font-weight:600}.cv-link-body p{margin:0 0 8px}.cv-link-error{color:var(--cia-graph-danger);overflow-wrap:anywhere}.cv-transfers{list-style:none;margin:0 0 8px;padding:0}.cv-transfer{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:6px 0;border-bottom:1px solid var(--cia-graph-divider)}.cv-transfer-time{color:var(--cia-graph-muted);font-variant-numeric:tabular-nums}.cv-transfer-amount{font-weight:600;overflow-wrap:anywhere}.cv-transfer-usd{text-align:right;font-variant-numeric:tabular-nums}.cv-transfer>code,.cv-transfer>.cia-graph-explorer-link{grid-column:1/-1;font:11px var(--font-mono,ui-monospace,monospace);color:var(--cia-graph-muted)}.cv-transfer>.cia-graph-explorer-link{padding:0;border:0;border-bottom:1px solid var(--cia-graph-border);background:none;text-align:left;cursor:pointer;justify-self:start;color:var(--cia-graph-edge)}.cv-transfer>.cia-graph-explorer-link:hover{border-bottom-color:var(--cia-graph-edge)}.cv-linkpanel .cv-button:disabled{opacity:.5;cursor:default}@media(max-width:560px){.cv-linkpanel{position:absolute;inset:0;width:auto;border-left:0;background:var(--cia-graph-surface)}}.cv-side{display:flex;flex-direction:column;flex:none;box-sizing:border-box;width:min(46%,340px);overflow:hidden;padding:10px 12px;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider);border-left:1px solid var(--cia-graph-divider);font-size:12px;color:var(--cia-graph-text)}.cv-side[hidden]{display:none}.cv-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.cv-side-head strong{font-size:13px}.cv-side-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.cv-side-actions:not(:has(button:not([hidden]))){display:none}.cv-side .cv-button:disabled{opacity:.5;cursor:default}.cv-linkpanel-embedded{flex:1;min-height:0;width:auto;padding:8px 0 0;border:0;border-top:1px solid var(--cia-graph-divider);overflow:hidden}.cv-side>.cv-detail{max-height:40%;overflow:auto}.cv-linkpanel-embedded>[data-link-pair]{display:none}.cv-linkpanel-embedded .cv-link-body{min-height:44px}.cv-side:not(:has(.cv-linkpanel-embedded:not([hidden])))>.cv-detail{max-height:none}.cv-link-pair code{word-break:break-all}@media(max-width:560px){.cv-side{position:absolute;inset:0;width:auto;border-left:0;background:var(--cia-graph-surface)}.cv-side .cv-linkpanel-embedded{position:static;width:auto;border:0;border-top:1px solid var(--cia-graph-divider);background:none}}
721
+ <style>.cia-graph-surface{--cia-graph-surface:linear-gradient(140deg,#171a20,#0d0f13);--cia-graph-canvas:#101318;--cia-graph-dot:#f2dda621;--cia-graph-text:#e2e8f0;--cia-graph-muted:#adb1ba;--cia-graph-border:#f2dda640;--cia-graph-divider:#ffffff10;--cia-graph-control:#14161a;--cia-graph-hover:#f2dda626;--cia-graph-active:#f2dda6;--cia-graph-active-text:#0b0e13;--cia-graph-node:#14161a;--cia-graph-edge:#f2dda6;--cia-graph-halo:#07090d;--cia-graph-selected:#ffffff;--cia-graph-expanded:#4da3ff;--cia-graph-danger:#d89087;--cia-graph-target:#8bb6b0;--cia-graph-trail:#b49bc4;--cia-graph-infrastructure:#94b58b;--cia-graph-neutral:#f2dda6;--cia-graph-critical:#d89087;--cia-graph-high:#d6a07d;--cia-graph-medium:#b49bc4;--cia-graph-low:#94b58b;--cia-graph-role-exchange:var(--cia-graph-infrastructure);--cia-graph-role-scam:var(--cia-graph-danger);--cia-graph-role-sanctioned:var(--cia-graph-danger);--cia-graph-role-victim:var(--cia-graph-target);--cia-graph-role-pool:var(--cia-graph-trail);--cia-graph-role-other:var(--cia-graph-neutral);--cia-graph-series-1:var(--cia-graph-edge);--cia-graph-series-2:var(--cia-graph-target);--cia-graph-series-3:var(--cia-graph-trail);--cia-graph-series-4:var(--cia-graph-infrastructure);--cia-graph-series-5:var(--cia-graph-danger);--cia-graph-series-6:var(--cia-graph-high);color:var(--cia-graph-text);background:var(--cia-graph-surface);border:1px solid var(--cia-graph-border);border-radius:14px;overflow:hidden}html[data-theme=light] .cia-graph-surface{--cia-graph-surface:#f9f9f9;--cia-graph-canvas:#fff;--cia-graph-dot:#dedede;--cia-graph-text:#242424;--cia-graph-muted:#686868;--cia-graph-border:#dedede;--cia-graph-divider:#e6e6e6;--cia-graph-control:#fff;--cia-graph-hover:#ececec;--cia-graph-active:#4e708a;--cia-graph-active-text:#fff;--cia-graph-node:#fff;--cia-graph-edge:#4e708a;--cia-graph-halo:#fff;--cia-graph-selected:#242424;--cia-graph-expanded:#0057d9;--cia-graph-danger:#a64d4b;--cia-graph-target:#356e68;--cia-graph-trail:#78538f;--cia-graph-infrastructure:#416c4a;--cia-graph-neutral:#4e708a;--cia-graph-critical:#a64d4b;--cia-graph-high:#a15432;--cia-graph-medium:#78538f;--cia-graph-low:#416c4a}.cia-graph-canvas{background:radial-gradient(circle,var(--cia-graph-dot) 1px,transparent 1px) 0 0/24px 24px,var(--cia-graph-canvas)}.graph-detail{border-top:1px solid var(--cia-graph-divider,#ffffff10);padding:1rem 1.5rem;font-size:.85rem;color:var(--cia-graph-muted,#adb1ba);line-height:1.6}.graph-detail strong{color:var(--cia-graph-text,#f2dda6)}.graph-detail p{margin:0}.graph-detail ul{padding-left:1.25rem;margin-bottom:0}.graph-detail strong,.graph-detail li{overflow-wrap:anywhere}.graph-legend{border-top:1px solid var(--cia-graph-divider,#ffffff10);padding:1rem 1.5rem;font-size:.85rem}.graph-legend summary{cursor:pointer}.graph-legend ul{list-style:none;padding:0}.graph-legend li{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:.6rem 0;border-bottom:1px solid var(--cia-graph-divider,#ffffff0a)}.graph-legend button{color:var(--cia-graph-edge,#f2dda6);background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit;font-family:ui-monospace,monospace;overflow-wrap:anywhere;max-width:100%}.graph-legend span{color:var(--cia-graph-muted,#adb1ba)}.graph-detail a,.graph-legend a{color:var(--cia-graph-edge,#f2dda6);text-decoration:none;border-bottom:1px solid var(--cia-graph-border,#f2dda659)}.graph-detail a:hover,.graph-legend a:hover{border-bottom-color:var(--cia-graph-edge,#f2dda6)}.graph-legend .graph-legend-link{overflow-wrap:normal;flex:none}.cia-graph-node-body{fill:var(--cia-graph-node,#14161a)}.cia-graph-node-ring{stroke:var(--cia-graph-edge,#f2dda6)}.cia-graph-node-address{fill:var(--cia-graph-muted,#adb1ba)}.cia-graph-edge-underlay{stroke:var(--cia-graph-halo,#07090d)}.cia-graph-edge-direction{stroke:var(--cia-graph-edge,#f2dda6)}.cia-graph-edge-arrow{fill:var(--cia-graph-edge,#f2dda6);stroke:var(--cia-graph-halo,#07090d)}.cia-graph-surface .graph-tooltip{background:var(--cia-graph-control);color:var(--cia-graph-text);border-color:var(--cia-graph-border)}.cia-graph-engine{position:relative;min-height:240px}.cia-graph-svg{display:block;width:100%;height:100%;touch-action:none;font-family:Inter,system-ui,sans-serif;outline:none}.cia-graph-svg:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:-2px}.cia-graph-backdrop{fill:var(--cia-graph-canvas)}.cia-graph-dot{fill:var(--cia-graph-dot)}.cia-graph-edge{cursor:pointer;outline:none;transition:opacity .15s}.cia-graph-edge-hit{fill:none;stroke:transparent}.cia-graph-edge-line{fill:none;stroke:var(--edge-tone,var(--cia-graph-edge));stroke-linecap:round}.cia-graph-edge:focus-visible .cia-graph-edge-line,.cia-graph-edge[aria-pressed=true] .cia-graph-edge-line{stroke-width:3}.cia-graph-node{cursor:pointer;outline:none}.cia-graph-engine .cia-graph-node-body{fill:var(--cia-graph-node);stroke:var(--node-tone,var(--cia-graph-neutral));stroke-width:2}.cia-graph-engine .cia-graph-node-ring{fill:none;stroke:var(--cia-graph-edge);stroke-width:2}.cia-graph-node-dot{fill:var(--node-tone,var(--cia-graph-neutral))}.cia-graph-node.is-selected .cia-graph-node-body,.cia-graph-node.is-focused .cia-graph-node-body,.cia-graph-node:focus-visible .cia-graph-node-body{stroke:var(--cia-graph-selected);stroke-width:4}.cia-graph-node text{paint-order:stroke;stroke:var(--cia-graph-halo);stroke-width:4px;stroke-linejoin:round}.cia-graph-node-role{fill:var(--node-tone,var(--cia-graph-neutral));font-size:13px;font-weight:600}.cia-graph-engine .cia-graph-node-address{fill:var(--cia-graph-muted);font:400 11px ui-monospace,monospace}.cia-graph-node-note{fill:var(--cia-graph-text);font-size:11px;font-style:italic}.cia-graph-node[data-state=refused] .cia-graph-node-body{stroke-dasharray:4 3}.cia-graph-engine .cia-graph-node[data-flag-expanded] .cia-graph-node-body{stroke:var(--cia-graph-expanded);stroke-width:5}.cia-graph-engine>.graph-tooltip{position:absolute;z-index:2;max-width:320px;padding:.5rem .65rem;border:1px solid;border-radius:6px;font:12px/1.45 Inter,system-ui,sans-serif;overflow-wrap:anywhere;pointer-events:none}.cia-graph-webgl{position:relative;display:block;width:100%;height:100%;min-height:inherit;touch-action:none;outline:none;overflow:hidden;background:radial-gradient(circle,var(--cia-graph-dot) 1px,transparent 1px) 0 0/24px 24px,var(--cia-graph-canvas)}.cia-graph-webgl:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:-2px}:root{color-scheme:light dark}html,body{margin:0;padding:0;background:transparent}html[data-theme=dark]{color-scheme:dark;--cv-text:var(--color-text-primary,#ececec);--cv-muted:var(--color-text-secondary,#b4b4b4);--cv-surface:var(--color-background-secondary,#262624);--cv-raised:var(--color-background-tertiary,#30302e);--cv-border:var(--color-border-primary,#4a4a46);--cv-ring:var(--color-ring-primary,#8fb5ff);--cv-skeleton:#3a3a37}html[data-theme=light]{color-scheme:light;--cv-text:var(--color-text-primary,#1f1f1e);--cv-muted:var(--color-text-secondary,#5c5c58);--cv-surface:var(--color-background-secondary,#f5f4ef);--cv-raised:var(--color-background-tertiary,#ecebe5);--cv-border:var(--color-border-primary,#d6d4cc);--cv-ring:var(--color-ring-primary,#2f5fb8);--cv-skeleton:#e4e2db}body{color:var(--cv-text);font-family:var(--font-sans,system-ui,-apple-system,"Segoe UI",sans-serif);font-size:var(--font-text-sm-size,14px);line-height:var(--font-text-sm-line-height,1.45)}.cv-root{display:block}.cv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cv-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.cv-muted{color:var(--cv-muted)}button:focus-visible{outline:2px solid var(--cv-ring);outline-offset:2px}.cv-card{box-sizing:border-box;border:var(--border-width-regular,1px) solid var(--cv-border);border-radius:var(--border-radius-lg,12px);background:var(--cv-surface);padding:14px 16px;overflow:hidden}.cv-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px}.cv-card-head strong{font-size:var(--font-text-md-size,15px);font-weight:var(--font-weight-semibold,600)}.cv-note{margin:0 0 10px;padding:6px 10px;border-radius:var(--border-radius-sm,6px);background:var(--color-background-warning,var(--cv-raised));color:var(--color-text-warning,var(--cv-text))}.cv-text-view p{margin:0 0 6px}.cv-text-body{white-space:pre-wrap;overflow-wrap:anywhere}.cia-graph-surface.cv-notice{box-sizing:border-box;margin:0;padding:6px 12px;border-radius:8px;font:400 13px/1.4 var(--font-sans,system-ui,-apple-system,"Segoe UI",sans-serif)}.cia-graph-surface.cv-notice-refused{border-left:3px solid var(--cia-graph-danger)}.cv-notice-empty{color:var(--cia-graph-muted)}.cv-notice p{margin:0}.cv-notice-line{overflow-wrap:anywhere}.cv-notice summary{cursor:pointer}.cv-notice summary:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:2px}.cv-notice-full{margin:4px 0 0;color:var(--cia-graph-muted);white-space:pre-wrap;overflow-wrap:anywhere}.cv-skeleton{min-height:220px}.cv-skel-line,.cv-skel-block{background:var(--cv-skeleton);border-radius:6px;margin-bottom:10px}.cv-skel-title{width:32%;height:16px}.cv-skel-sub{width:54%;height:12px}.cv-skel-block{height:160px;border-radius:10px}@media(prefers-reduced-motion:no-preference){.cv-skel-line,.cv-skel-block{animation:cv-pulse 1.6s ease-in-out infinite}}@keyframes cv-pulse{50%{opacity:.55}}.cv-table-wrap{overflow-x:auto}.cv-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.cv-table th{position:sticky;top:0;text-align:left;font-weight:var(--font-weight-semibold,600);color:var(--cv-muted);background:var(--cv-surface);border-bottom:1px solid var(--cv-border);padding:6px 10px;white-space:nowrap}.cv-table td{padding:5px 10px;border-bottom:1px solid var(--color-border-secondary,var(--cv-border));white-space:nowrap}.cv-table tr:last-child td{border-bottom:0}.cv-null{color:var(--cv-muted)}.cv-addr-cell{display:inline-flex;align-items:center;gap:6px}.cv-addr{font-family:var(--font-mono,ui-monospace,monospace);font-size:.92em}.cv-addr.is-full{-webkit-user-select:all;user-select:all}.cv-copy{font:inherit;font-size:.8em;padding:1px 7px;border:1px solid var(--cv-border);border-radius:var(--border-radius-sm,5px);background:transparent;color:var(--cv-muted);cursor:pointer}.cv-copy:hover{color:var(--cv-text);background:var(--cv-raised)}.cv-meter{height:8px;border-radius:999px;background:var(--cv-raised);overflow:hidden;margin:2px 0 12px}.cv-meter span{display:block;height:100%;background:var(--cv-ring)}.cv-balance-note{margin:2px 0 12px;font-weight:var(--font-weight-semibold,600)}.cv-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}.cv-facts dt{color:var(--cv-muted)}.cv-facts dd{margin:0;font-weight:var(--font-weight-medium,500)}.cv-flows{box-sizing:border-box;display:flex;flex-direction:column;height:640px;max-height:640px;font-family:var(--font-sans,system-ui,sans-serif)}.cv-flows[data-display-mode=fullscreen]{height:calc(100vh - var(--cv-tabs-h,0px));max-height:none;border-radius:0}.cv-flows-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:10px 14px 6px}.cv-title{display:flex;flex-direction:column;min-width:0}.cv-title strong{font-size:15px;font-weight:600}.cv-title .cv-muted,.cv-flows .cv-muted{color:var(--cia-graph-muted);font-size:12px;overflow-wrap:anywhere}.cv-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.cv-hint{font-size:12px;color:var(--cia-graph-muted);margin-right:2px}.cv-hint[hidden]{display:none}.cv-button{min-height:30px;min-width:30px;padding:0 10px;border:1px solid var(--cia-graph-border);border-radius:6px;background:var(--cia-graph-control);color:var(--cia-graph-text);font:500 12px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-button:hover{background:var(--cia-graph-hover)}.cv-button:focus-visible{outline:2px solid var(--cia-graph-active);outline-offset:1px}.cv-icon{padding:0;font-size:16px;line-height:1}.cv-roles{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0 14px 6px;list-style:none;font-size:12px;color:var(--cia-graph-muted)}.cv-roles li{display:inline-flex;align-items:center;gap:5px}.cv-roles i{width:9px;height:9px;border-radius:50%}.cv-canvas{position:relative;flex:1;min-height:0;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider)}.cv-canvas.cia-graph-engine{min-height:0}.cv-canvas .cia-graph-svg{font-family:var(--font-sans,Inter,system-ui,sans-serif)}.cv-status{margin:0;padding:6px 14px 8px;font-size:12px;color:var(--cia-graph-muted)}.cv-detail{flex:none;padding:0 0 8px;color:var(--cia-graph-text);font-size:12px;display:flex;flex-direction:column;gap:4px}.cv-detail[hidden]{display:none}.cv-detail>strong{color:var(--cia-graph-muted);font-weight:500}.cv-detail>code{font:11px var(--font-mono,ui-monospace,monospace);overflow-wrap:anywhere;word-break:break-all}.cv-detail-meta{display:flex;flex-direction:column;gap:3px}.cv-detail-meta .meta-item{display:inline-flex;gap:5px;align-items:baseline}.cv-detail-meta .meta-item span{color:var(--cia-graph-muted)}.cv-detail-meta .meta-item strong{color:var(--cia-graph-text);font-weight:600;overflow-wrap:anywhere}.cv-detail-meta .cia-graph-explorer-link{font:inherit;font-weight:600;padding:0;border:0;border-bottom:1px solid var(--cia-graph-border);background:none;color:var(--cia-graph-edge);cursor:pointer;overflow-wrap:anywhere;text-align:left}.cv-detail-meta .cia-graph-explorer-link:hover{border-bottom-color:var(--cia-graph-edge)}.cv-face[hidden],.cv-tabpanel[hidden]{display:none}.cv-toggle{display:inline-flex;flex:none;border:1px solid var(--cia-graph-border,var(--cv-border));border-radius:6px;overflow:hidden}.cv-card-head .cv-toggle{margin-left:auto}.cv-toggle-button{min-height:28px;padding:0 12px;border:0;background:var(--cia-graph-control,var(--cv-raised));color:var(--cia-graph-text,var(--cv-text));font:500 12px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-toggle-button+.cv-toggle-button{border-left:1px solid var(--cia-graph-border,var(--cv-border))}.cv-toggle-button:hover{background:var(--cia-graph-hover,var(--cv-border))}.cv-toggle-button[aria-pressed=true]{background:var(--cia-graph-active,var(--cv-text));color:var(--cia-graph-active-text,var(--cv-surface))}.cv-toggle-button:focus-visible{outline:2px solid var(--cia-graph-active,var(--cv-ring));outline-offset:-2px}.cia-graph-surface .cv-note{margin:0 14px 6px;background:var(--cia-graph-control);color:var(--cia-graph-text);border:1px solid var(--cia-graph-border)}.cv-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.cv-tab{padding:6px 12px;border:1px solid var(--cv-border);border-radius:var(--border-radius-md,8px);background:transparent;color:var(--cv-muted);font:500 13px var(--font-sans,system-ui,sans-serif);cursor:pointer}.cv-tab:hover{color:var(--cv-text)}.cv-tab[aria-selected=true]{background:var(--cv-raised);color:var(--cv-text);border-color:var(--cv-ring)}.cv-tab:focus-visible{outline:2px solid var(--cv-ring);outline-offset:2px}.cv-chart{box-sizing:border-box;font-family:var(--font-sans,system-ui,sans-serif)}.cv-chart .cv-muted{color:var(--cia-graph-muted);font-size:12px}.cv-chart-body{padding:4px 14px 12px}.cv-chart-svg{display:block;width:100%;height:auto}.cv-chart-name{fill:var(--cia-graph-text);font:600 12px var(--font-sans,Inter,system-ui,sans-serif)}.cv-chart-tick{fill:var(--cia-graph-muted);font:400 11px var(--font-sans,Inter,system-ui,sans-serif)}.cv-chart-grid{stroke:var(--cia-graph-divider);stroke-width:1}.cv-chart-base{stroke:var(--cia-graph-border);stroke-width:1}.cv-chart-line{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.cv-body{position:relative;display:flex;flex:1;min-height:0;min-width:0}.cv-body>.cv-canvas{flex:1;min-width:0}.cv-linkpanel{display:flex;flex-direction:column;flex:none;box-sizing:border-box;width:min(46%,320px);overflow:hidden;padding:10px 12px;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider);border-left:1px solid var(--cia-graph-divider);font-size:12px;color:var(--cia-graph-text)}.cv-linkpanel[hidden]{display:none}.cv-link-body{flex:1;min-height:0;overflow:auto}.cv-linkpanel>[data-link-earlier]{flex:none;align-self:flex-start;margin-top:8px}.cv-link-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.cv-link-head strong{font-size:13px}.cv-link-pair{margin:0;color:var(--cia-graph-muted)}.cv-link-pair code{font:11px var(--font-mono,ui-monospace,monospace)}.cv-link-day{margin:4px 0 8px;font-weight:600}.cv-link-body p{margin:0 0 8px}.cv-link-error{color:var(--cia-graph-danger);overflow-wrap:anywhere}.cv-transfers{list-style:none;margin:0 0 8px;padding:0}.cv-transfer{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:6px 0;border-bottom:1px solid var(--cia-graph-divider)}.cv-transfer-time{color:var(--cia-graph-muted);font-variant-numeric:tabular-nums}.cv-transfer-amount{font-weight:600;overflow-wrap:anywhere}.cv-transfer-usd{text-align:right;font-variant-numeric:tabular-nums}.cv-transfer>code,.cv-transfer>.cia-graph-explorer-link{grid-column:1/-1;font:11px var(--font-mono,ui-monospace,monospace);color:var(--cia-graph-muted)}.cv-transfer>.cia-graph-explorer-link{padding:0;border:0;border-bottom:1px solid var(--cia-graph-border);background:none;text-align:left;cursor:pointer;justify-self:start;color:var(--cia-graph-edge)}.cv-transfer>.cia-graph-explorer-link:hover{border-bottom-color:var(--cia-graph-edge)}.cv-linkpanel .cv-button:disabled{opacity:.5;cursor:default}@media(max-width:560px){.cv-linkpanel{position:absolute;inset:0;width:auto;border-left:0;background:var(--cia-graph-surface)}}.cv-side{display:flex;flex-direction:column;flex:none;box-sizing:border-box;width:min(46%,340px);overflow:hidden;padding:10px 12px;border-top:1px solid var(--cia-graph-divider);border-bottom:1px solid var(--cia-graph-divider);border-left:1px solid var(--cia-graph-divider);font-size:12px;color:var(--cia-graph-text)}.cv-side[hidden]{display:none}.cv-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.cv-side-head strong{font-size:13px}.cv-side-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.cv-remaining{margin:0 0 8px;font-size:12px;color:var(--cia-graph-muted)}.cv-remaining[hidden]{display:none}.cv-side-actions:not(:has(button:not([hidden]))){display:none}.cv-side .cv-button:disabled{opacity:.5;cursor:default}.cv-linkpanel-embedded{flex:1;min-height:0;width:auto;padding:8px 0 0;border:0;border-top:1px solid var(--cia-graph-divider);overflow:hidden}.cv-side>.cv-detail{max-height:40%;overflow:auto}.cv-linkpanel-embedded>[data-link-pair]{display:none}.cv-linkpanel-embedded .cv-link-body{min-height:44px}.cv-side:not(:has(.cv-linkpanel-embedded:not([hidden])))>.cv-detail{max-height:none}.cv-link-pair code{word-break:break-all}@media(max-width:560px){.cv-side{position:absolute;inset:0;width:auto;border-left:0;background:var(--cia-graph-surface)}.cv-side .cv-linkpanel-embedded{position:static;width:auto;border:0;border-top:1px solid var(--cia-graph-divider);background:none}}
113
722
  </style>
114
723
  </head>
115
724
  <body>