@codesys/mcp-toolkit 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/README.md +63 -7
- package/README.zh-CN.md +43 -5
- package/dist/actions.js +7 -2
- package/dist/actions.js.map +1 -1
- package/dist/codesys/alarm-tools.d.ts +28 -0
- package/dist/codesys/alarm-tools.js +126 -0
- package/dist/codesys/alarm-tools.js.map +1 -0
- package/dist/codesys/graphical-read.d.ts +63 -0
- package/dist/codesys/graphical-read.js +214 -0
- package/dist/codesys/graphical-read.js.map +1 -0
- package/dist/codesys/graphical.js +13 -1
- package/dist/codesys/graphical.js.map +1 -1
- package/dist/codesys/report.d.ts +51 -0
- package/dist/codesys/report.js +100 -0
- package/dist/codesys/report.js.map +1 -0
- package/dist/hmi/native.d.ts +2 -1
- package/dist/hmi/native.js +42 -4
- package/dist/hmi/native.js.map +1 -1
- package/dist/hmi/render.d.ts +5 -0
- package/dist/hmi/render.js +33 -7
- package/dist/hmi/render.js.map +1 -1
- package/dist/hmi/route.d.ts +7 -7
- package/dist/hmi/route.js +36 -12
- package/dist/hmi/route.js.map +1 -1
- package/dist/hmi/service.d.ts +26 -1
- package/dist/hmi/service.js +113 -21
- package/dist/hmi/service.js.map +1 -1
- package/dist/hmi/spec.d.ts +104 -1
- package/dist/hmi/spec.js +20 -2
- package/dist/hmi/spec.js.map +1 -1
- package/dist/hmi/symbols.d.ts +89 -0
- package/dist/hmi/symbols.js +210 -0
- package/dist/hmi/symbols.js.map +1 -0
- package/dist/hmi/tools.d.ts +2 -0
- package/dist/hmi/tools.js +87 -10
- package/dist/hmi/tools.js.map +1 -1
- package/dist/panel/hmi.js +121 -27
- package/dist/panel.js +2 -1
- package/dist/panel.js.map +1 -1
- package/dist/progress.d.ts +17 -0
- package/dist/progress.js +36 -0
- package/dist/progress.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +4 -3
- package/dist/server.js.map +1 -1
- package/dist/tools.js +126 -5
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
- package/watcher/mcp_alarms.py +58 -0
package/dist/panel/hmi.js
CHANGED
|
@@ -1,34 +1,118 @@
|
|
|
1
|
-
"use strict";(()=>{var Q=t=>"id"in t&&t.id||"label"in t&&t.label||void 0;function lt(t,i){switch(t.type){case"tank":{let{x:e,y:c,w:p,h:d}=t,o=e+p/2;return{top:{at:[o,c],dir:"u"},bottom:{at:[o,c+d],dir:"d"},left:{at:[e,c+d*.85],dir:"l"},right:{at:[e+p,c+d*.85],dir:"r"},"left-high":{at:[e,c+d*.15],dir:"l"},"right-high":{at:[e+p,c+d*.15],dir:"r"}}}case"pump":case"fan":{let e=t.size/2,c=e/i;return{in:{at:[t.x-e,t.y],dir:"l"},out:{at:[t.x+e,t.y],dir:"r"},top:{at:[t.x,t.y-c],dir:"u"},bottom:{at:[t.x,t.y+c],dir:"d"}}}case"valve":{let e=t.size/2;return t.vertical?{in:{at:[t.x,t.y+e/i],dir:"d"},out:{at:[t.x,t.y-e/i],dir:"u"}}:{in:{at:[t.x-e,t.y],dir:"l"},out:{at:[t.x+e,t.y],dir:"r"}}}case"junction":return{c:{at:[t.x,t.y],dir:"r"}};default:return{}}}var ct={tank:["top","bottom","left","right","left-high","right-high"],pump:["in","out","top","bottom"],fan:["in","out","top","bottom"],valve:["in","out"],junction:["c"]};var q=t=>t==="l"||t==="r";function dt(t,i,e){if(!t.from||!t.to)return t.points??[];let c=new Map(i.flatMap(h=>Q(h)&&h.type in ct?[[Q(h).toLowerCase(),h]]:[])),p=(h,S)=>{if(typeof h!="string"){if(h[0]<=5)return{at:h,dir:"l"};if(h[0]>=95)return{at:h,dir:"r"};if(h[1]<=5)return{at:h,dir:"u"};if(h[1]>=95)return{at:h,dir:"d"};let g=S??[50,50],y=g[0]-h[0],v=(g[1]-h[1])/e;return{at:h,dir:Math.abs(y)>=Math.abs(v)?y>=0?"r":"l":v>=0?"d":"u"}}let[z,P]=h.split("."),f=c.get(z.toLowerCase());return(f?lt(f,e):{})[P]??{at:[50,50],dir:"r"}},d=typeof t.from=="string"?p(t.from):void 0,o=typeof t.to=="string"?p(t.to):void 0,s=d??p(t.from,o?.at??(Array.isArray(t.to)?t.to:void 0)),r=o??p(t.to,s.at),l=(h,S)=>{if(!(typeof t.from=="string"&&h===s&&t.from.endsWith(".c"))&&!(typeof t.to=="string"&&h===r&&t.to.endsWith(".c")))return h;let z=S[0]-h.at[0],P=(S[1]-h.at[1])/e;return{at:h.at,dir:Math.abs(z)>=Math.abs(P)?z>=0?"r":"l":P>=0?"d":"u"}},n=l(s,r.at),m=l(r,s.at),x=[n.at],$=[...t.via??[],m.at],b=n.at,M=n.dir;return $.forEach((h,S)=>{let P=S===$.length-1?m.dir:void 0;for(let u of pt(b,M,h,P))x.push(u);let f=x[x.length-2]??b;M=f[0]===h[0]?h[1]>=f[1]?"d":"u":h[0]>=f[0]?"r":"l",b=h}),ut(x)}function pt(t,i,e,c){let p=(o,s)=>Math.abs(o-s)<1e-6;if(p(t[0],e[0])||p(t[1],e[1]))return[e];let d=c?q(c):!q(i);if(q(i)&&d){let o=(t[0]+e[0])/2;return[[o,t[1]],[o,e[1]],e]}if(!q(i)&&!d){let o=(t[1]+e[1])/2;return[[t[0],o],[e[0],o],e]}return q(i)?[[e[0],t[1]],e]:[[t[0],e[1]],e]}function ut(t){let i=[];for(let e of t){let c=i[i.length-1];if(c&&Math.abs(c[0]-e[0])<1e-6&&Math.abs(c[1]-e[1])<1e-6)continue;let p=i[i.length-2];c&&p&&(Math.abs(p[0]-c[0])<1e-6&&Math.abs(c[0]-e[0])<1e-6||Math.abs(p[1]-c[1])<1e-6&&Math.abs(c[1]-e[1])<1e-6)&&i.pop(),i.push(e)}return i}function tt(t,i){return t.map(e=>e.type==="pipe"?{...e,points:dt(e,t,i),from:void 0,to:void 0,via:void 0}:e)}function B(t){let[i,e]=(t.size??"1280x720").split("x").map(Number);return e<=480?{w:i,h:e,header:54,pad:12,gap:9}:e>=1080?{w:i,h:e,header:96,pad:28,gap:18}:{w:i,h:e,header:76,pad:20,gap:14}}var k=t=>t.replace(/[&<>"']/g,i=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[i]),a=t=>Math.round(t*10)/10,R=["#38bdf8","#a78bfa","#fbbf24","#34d399","#f472b6","#60a5fa"];function mt(t,i){let[e,c]=t.grid,{w:p,h:d,header:o,pad:s,gap:r}=B(t),l=(p-2*s-(e-1)*r)/e,n=(d-o-s-(c-1)*r)/c,[m,x,$,b]=i;return{x:s+(m-1)*(l+r),y:o+(x-1)*(n+r),w:$*l+($-1)*r,h:b*n+(b-1)*r}}function et(t,i={}){let e=[],c=b=>`data-b="${e.push(b)-1}"`,p=0,d=b=>`${b}${++p}`,o=[],s=(b,M,h)=>{let S=`fp-${o.length+1}`;return o.push(ft(S,b,M,h,c)),`data-open="${S}"`},r=B(t),l=t.widgets.map(b=>{let M=mt(t,b.at),h=gt(b,M,c,d,s),S=b.title?`<div class="t-title">${k(b.title)}</div>`:"";return`<section class="tile t-${b.type}${b.title?"":" untitled"}${M.h<110?" compact":""}" style="left:${a(M.x)}px;top:${a(M.y)}px;width:${a(M.w)}px;height:${a(M.h)}px">${S}<div class="t-body">${h}</div></section>`}),n=(i.pages?.length??0)>1?`<nav class="h-nav">${i.pages.map(b=>`<button class="h-page${b.name===t.name?" cur":""}" data-nav="${k(b.name)}">${k(b.title)}</button>`).join("")}</nav>`:"",m=(i.alarms??[]).map(b=>b.active),x=m.length?`<div class="h-alarm" ${c({kind:"count",vars:m})}><span class="dot"></span><span class="n">0</span><span class="lbl">alarms</span></div>`:"";return{html:`<div class="hmi theme-${t.theme}${r.h<=480?" small":r.h>=1080?" large":""}" style="width:${r.w}px;height:${r.h}px;--hdr:${r.header}px">
|
|
1
|
+
"use strict";(()=>{var yc=Object.defineProperty;var _c=(e,t)=>{for(var r in t)yc(e,r,{get:t[r],enumerable:!0})};var S={};_c(S,{BIGINT_FORMAT_RANGES:()=>Xe,CONSTANT_CATCH:()=>Qr,Class:()=>Nt,NUMBER_FORMAT_RANGES:()=>Pe,aborted:()=>U,allowsEval:()=>Dt,assert:()=>Pc,assertEqual:()=>$c,assertIs:()=>zc,assertNever:()=>Sc,assertNotEqual:()=>kc,assignProp:()=>K,attachSchema:()=>Ze,base64ToUint8Array:()=>Xr,base64urlToUint8Array:()=>Kc,cached:()=>we,captureStackTrace:()=>We,cleanEnum:()=>Vc,cleanRegex:()=>ze,clone:()=>G,cloneDef:()=>Ic,codePointLength:()=>Oe,constantCatch:()=>en,createTransparentProxy:()=>Mc,defineLazy:()=>Jr,defineLazyInternal:()=>Z,derived:()=>qc,esc:()=>Rt,escapeRegex:()=>ie,explicitlyAborted:()=>Bt,extend:()=>jc,finalizeIssue:()=>W,floatSafeRemainder:()=>Lt,getElementAtPath:()=>Ec,getEnumValues:()=>me,getLengthableOrigin:()=>Ie,getParsedType:()=>Nc,getSizableOrigin:()=>qr,hexToUint8Array:()=>Hc,hide:()=>et,installLazyProp:()=>ea,isObject:()=>fe,isPlainObject:()=>re,issue:()=>ge,joinValues:()=>He,jsonStringifyReplacer:()=>he,members:()=>Vt,merge:()=>Fc,mergeDefs:()=>Q,normalizeParams:()=>k,nullish:()=>Mt,numKeys:()=>Cc,objectClone:()=>Zc,omit:()=>Rc,optionalKeys:()=>Ut,own:()=>te,parsedType:()=>Jt,partial:()=>Uc,pick:()=>Lc,prefixIssues:()=>H,primitiveTypes:()=>Hr,promiseAllObject:()=>Ac,propertyKeyTypes:()=>Ft,randomString:()=>Tc,rawShape:()=>Se,required:()=>Bc,safeExtend:()=>Dc,shallowClone:()=>Gr,sizeCaps:()=>Qe,slugify:()=>jt,stringifyPrimitive:()=>qe,toZod:()=>wc,uint8ArrayToBase64:()=>Yr,uint8ArrayToBase64url:()=>Gc,uint8ArrayToHex:()=>Wc,unwrapMessage:()=>de});function $c(e){return e}function kc(e){return e}function wc(){return e=>e}function zc(e){}function Sc(e){throw new Error("Unexpected value in exhaustive check")}function Pc(e){}function me(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function He(e,t="|"){return e.map(r=>qe(r)).join(t)}function he(e,t){return typeof t=="bigint"?t.toString():t}var Ct=class{constructor(t){this._getter=t,this._value=void 0}get value(){let t=this._getter;return t!==void 0&&(this._value=t(),this._getter=void 0),this._value}};function we(e){return new Ct(e)}function Mt(e){return e==null}function ze(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Lt(e,t){let r=e/t,n=Math.round(r),o=4*Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var Br=Symbol("evaluating");function Jr(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Br)return n===void 0&&(n=Br,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Zc(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function K(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Se(e){let t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function Y(e){return Se(e._zod.def)??e._zod.def.shape}function Vr(e,t,r){Object.defineProperty(e,t,{get(){let n=r();return K(this,t,n),n},enumerable:!0,configurable:!0})}function Kr(e,t,r){t in e?K(e,t,r):e[t]=r}function se(e,t,r,n){let o=Y(t);for(let s of r){let i=Object.getOwnPropertyDescriptor(o,s);i.enumerable&&(i.get?Vr(e,s,()=>{let c=t._zod.def.shape[s];return n?n(c,s):c}):Kr(e,s,n?n(i.value,s):i.value))}}function Oc(e,t){for(let r of Reflect.ownKeys(t)){let n=Object.getOwnPropertyDescriptor(t,r);n.enumerable&&(n.get?Vr(e,r,()=>t[r]):Kr(e,r,n.value))}}function Q(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Ic(e){return Q(e._zod.def)}function Ec(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Ac(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let s=0;s<t.length;s++)o[t[s]]=n[s];return o})}function Tc(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function Rt(e){return JSON.stringify(e)}function jt(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var We="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function fe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Dt=we(()=>{if(j.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function re(e){if(fe(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(fe(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Gr(e){return re(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Cc(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Nc=e=>{let 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}`)}},Ft=new Set(["string","number","symbol"]),Hr=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ie(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function G(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function k(e){let 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 Mc(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,s){return t??(t=e()),Reflect.set(t,n,o,s)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function qe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Ut(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}var Pe={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]},Xe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Lc(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s={};return se(s,e,Ye(e,t)),G(e,Q(r,{shape:s,checks:[]}))}function Ye(e,t){let r=Y(e),n=[];for(let o of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(r,o)?.enumerable)throw new Error(`Unrecognized key: "${String(o)}"`);t[o]&&n.push(o)}return n}function Rc(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=new Set(Ye(e,t)),i={};return se(i,e,Reflect.ownKeys(Y(e)).filter(c=>!s.has(c))),G(e,Q(r,{shape:i,checks:[]}))}function jc(e,t){if(!re(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let o=Y(e);for(let 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 G(e,Q(e._zod.def,{shape:Wr(e,t)}))}function Wr(e,t){let r={};return se(r,e,Reflect.ownKeys(Y(e))),Oc(r,t),r}function Dc(e,t){if(!re(t))throw new Error("Invalid input to safeExtend: expected a plain object");return G(e,Q(e._zod.def,{shape:Wr(e,t)}))}function Fc(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.");let r={};se(r,e,Reflect.ownKeys(Y(e))),se(r,t,Reflect.ownKeys(Y(t)));let n=Q(e._zod.def,{shape:r,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return G(e,n)}function Uc(e,t,r,n="partial"){let s=t._zod.def.checks;if(s&&s.length>0)throw new Error(`.${n}() cannot be used on object schemas containing refinements`);let c=r?new Set(Ye(t,r)):void 0,a={};return se(a,t,Reflect.ownKeys(Y(t)),e&&((l,u)=>c&&!c.has(u)?l:new e({type:"optional",innerType:l}))),G(t,Q(t._zod.def,{shape:a,checks:[]}))}function Bc(e,t,r){let n=r?new Set(Ye(t,r)):void 0,o={};return se(o,t,Reflect.ownKeys(Y(t)),(s,i)=>n&&!n.has(i)?s:new e({type:"nonoptional",innerType:s})),G(t,Q(t._zod.def,{shape:o}))}function U(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Bt(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function H(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function de(e){return typeof e=="string"?e:e?.message}function Qe(e){let t=[];for(let r of e??[]){let n=r._zod.def;if(!/_(length|size)$|_equals$/.test(n.check))break;let o=n.maximum??n.length??n.size;o>=0&&t.push([o,r])}return t}function Ze(e,t,r){var n;for(let o=t;o<e.length;o++)(n=e[o]).schema??(n.schema=r)}function W(e,t,r){var n;let o=e.inst?._zod?.traits;o?.has("$ZodType")&&(o.has("$ZodCheck")?(n=e).schema??(n.schema=e.inst):e.schema=e.inst);let s=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,i=e.message?e.message:de(e.inst?._zod.def?.error?.(e))??de(s?.(e))??de(t?.error?.(e))??de(r.customError?.(e))??de(r.localeError?.(e))??"Invalid input",c={};for(let a of Object.keys(e))a==="inst"||a==="schema"||a==="continue"||a==="input"||a==="__proto__"||(c[a]=e[a]);return c.path??(c.path=[]),c.message=i,t?.reportInput&&(c.input=e.input),c}function qr(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}var Jc=/[\uD800-\uDBFF]/;function Oe(e){let t=e.length;if(!Jc.test(e))return t;let r=t;for(let n=0;n<t-1;n++)(e.charCodeAt(n)&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320&&(r--,n++);return r}function Ie(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Jt(e){let 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";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function ge(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Vc(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Xr(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function Yr(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Kc(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Xr(t+r)}function Gc(e){return Yr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Hc(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function Wc(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Nt=class{constructor(...t){}};function Vt(e,t){for(let r in t){let n=Object.getOwnPropertyDescriptor(t,r);n.get?Object.defineProperty(e,r,{...n,enumerable:!1}):Xc(e,r,n.value)}}function te(e,t,r,n=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:n,value:r}),r}function et(e,t,r){return te(e,t,r,!1)}function qc(e,t){for(let r in e){let n=e[r];Object.defineProperty(t,r,{configurable:!0,enumerable:!0,get(){return te(this,r,n(this))},set(o){te(this,r,o)}})}return t}function Xc(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:te(this,t,r.bind(this))},set(n){te(this,t,n)}})}function Yc(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var Tt,ee=!1,Qc={configurable:!0,get(){ee=!0}};function Z(e,t,r){let n=Object.getPrototypeOf(e._zod);if(t in n&&Tt!==e._zod){Tt=void 0;return}Tt=e._zod,Object.defineProperty(n,t,{configurable:!0,get(){Object.defineProperty(this,t,Qc);let o=ee;ee=!1;try{let s=r(this);return ee?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:s}),ee=ee||o,s}catch(s){throw delete this[t],ee=ee||o,s}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function ea(e,t,r,n){let o=Yc(e,t);o&&Object.defineProperty(o,t,{configurable:!0,get(){let s={configurable:!0,writable:!0,enumerable:n,value:void 0};return Object.defineProperty(this,t,s),s.value=r(this),Object.defineProperty(this,t,s),s.value},set(s){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:n,value:s})}})}var Qr="~constantCatch";function en(e){let t=()=>e;return t[Qr]=!0,t}var tn;var Kt={value:void 0,enumerable:!1},rn="captureStackTrace"in Error?Error:null;function ta(e){let t=rn;if(t){let r=t.stackTraceLimit;if(typeof r=="number"){try{t.stackTraceLimit=0}catch{return rn=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function h(e,t,r,n){let o={};function s(d){this.def=d,this.constr=p,this.traits=new Set}s.prototype=o;let i=r,c=i&&new WeakSet;function a(d,f){if(d._zod){if(d._zod.traits.has(e))return}else{Kt.value=new s(f);try{Object.defineProperty(d,"_zod",Kt)}finally{Kt.value=void 0}}if(d._zod.traits.add(e),t(d,f),c){let x=Object.getPrototypeOf(d),_=d._zod.constr.prototype,y=x;for(;y&&y!==_;)y=Object.getPrototypeOf(y);let I=y??x;c.has(I)||(c.add(I),Vt(I,i))}let m=p.prototype;for(let x in m)Object.prototype.hasOwnProperty.call(m,x)&&(x in d||(d[x]=m[x].bind(d)))}let l=n?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function p(d){let f=n?.Parent?ta(u):this;a(f,d);let m=f._zod.deferred;if(m){for(let _ of m)_();f._zod.deferred=void 0}let x=globalThis.__zod_globalConfig?.postProcessor;return x&&x(f),f}return Object.defineProperty(p,"init",{value:a}),Object.defineProperty(p,Symbol.hasInstance,{value:d=>n?.Parent&&d instanceof n.Parent?!0:d?._zod?.traits?.has(e)}),Object.defineProperty(p,"name",{value:e}),p}var q=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},xe=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};(tn=globalThis).__zod_globalConfig??(tn.__zod_globalConfig={});var j=globalThis.__zod_globalConfig;function B(e){return e&&Object.assign(j,e),j}function ra(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,he,2)),e.message}function na(e){this._zod.message=e}var oa={get:ra,set:na,enumerable:!0,configurable:!0},Ht={value:void 0,enumerable:!1},nn=new WeakSet([Object.prototype,Error.prototype]),on=(e,t)=>{e.name="$ZodError",Ht.value=t,Object.defineProperty(e,"issues",Ht),Ht.value=void 0,Object.defineProperty(e,"message",oa);let r=Object.getPrototypeOf(e);nn.has(r)||(nn.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let n=()=>this.message;return Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0}),n},set(n){Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0})}}))},sn=h("$ZodError",on),gl=h("$ZodError",on,void 0,{Parent:Error});function sa(e,t,r){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:r(),writable:!0,enumerable:!0,configurable:!0}):e[t]=r()),e[t]}function cn(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?sa(r,o.path[0],()=>[]).push(t(o)):n.push(t(o));return{formErrors:n,fieldErrors:r}}function an(e,t=r=>r.message){let r={_errors:[]},n=(o,s=[])=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(c=>n({issues:c},[...s,...i.path]));else if(i.code==="invalid_key")n({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")n({issues:i.issues},[...s,...i.path]);else{let c=[...s,...i.path];if(c.length===0)r._errors.push(t(i));else{let a=r,l=0;for(;l<c.length;){let u=c[l],p=l===c.length-1;if(u==="_errors"){p&&a._errors.push(t(i)),l++;continue}Object.prototype.hasOwnProperty.call(a,u)||Object.defineProperty(a,u,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let d=a[u];p&&d._errors.push(t(i)),a=d,l++}}}};return n(e),r}function tt(e,t){return{callee:t?.callee??e,Err:t?.Err}}var rt=e=>{let t=(r,n,o,s)=>{let i=o?{...o,async:!1}:{async:!1},c=r._zod.run({value:n,issues:[]},i);if(c instanceof Promise)throw new q;if(c.issues.length){let a=new(s?.Err??e)(c.issues.map(l=>W(l,i,B())));throw We(a,s?.callee??t),a}return c.value};return t};var nt=e=>{let t=async(r,n,o,s)=>{let i=o?{...o,async:!0}:{async:!0},c=r._zod.run({value:n,issues:[]},i);if(c instanceof Promise&&(c=await c),c.issues.length){let a=new(s?.Err??e)(c.issues.map(l=>W(l,i,B())));throw We(a,s?.callee??t),a}return c.value};return t};var ot=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new q;return s.issues.length?un(e,s.issues,o):{success:!0,data:s.value}};function un(e,t,r){let n;return{success:!1,get error(){return n||(n=new e(t.map(o=>W(o,r,B()))),t=void 0,r=void 0),n},set error(o){n=o,t=void 0,r=void 0}}}var st=e=>async(t,r,n)=>{let o=n?{...n,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?un(e,s.issues,o):{success:!0,data:s.value}};var ia=Symbol.for("zod.compile.invalid"),ca=Symbol.for("zod.compile.fallback"),Wt=((e,t,r)=>{let n=e._zod.bag.validator;if(n!==void 0){if(n(t)!==ia)return!0;if(n.definite===!0&&r===void 0)return!1}return aa(e,t,r)});function aa(e,t,r){let n=r?{...r,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},o=e._zod.bag.fallbackRun,s;if(o?(n[ca]=!0,s=o({value:t,issues:[]},n)):s=e._zod.run({value:t,issues:[]},n),s instanceof Promise)throw new q;return s.issues.length===0}var qt=async(e,t,r)=>{let n=r?{...r,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},o=e._zod.run({value:t,issues:[]},n);return o instanceof Promise&&(o=await o),o.issues.length===0},ln=e=>{let t=rt(e),r=(n,o,s,i)=>{let c=s?{...s,direction:"backward"}:{direction:"backward"};return t(n,o,c,tt(r,i))};return r};var pn=e=>{let t=rt(e),r=(n,o,s,i)=>t(n,o,s,tt(r,i));return r};var dn=e=>{let t=nt(e),r=async(n,o,s,i)=>{let c=s?{...s,direction:"backward"}:{direction:"backward"};return await t(n,o,c,tt(r,i))};return r};var fn=e=>{let t=nt(e),r=async(n,o,s,i)=>await t(n,o,s,tt(r,i));return r};var mn=e=>(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return ot(e)(t,r,o)};var hn=e=>(t,r,n)=>ot(e)(t,r,n);var gn=e=>async(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return st(e)(t,r,o)};var xn=e=>async(t,r,n)=>st(e)(t,r,n);var bn=/^[cC][0-9a-z]{6,}$/,vn=/^[0-9a-z]+$/,yn=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,_n=/^[0-9a-vA-V]{20}$/,$n=/^[A-Za-z0-9]{27}$/,kn=/^[a-zA-Z0-9_-]{21}$/;function wn(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var zn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Sn=/^([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})$/,Yt=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)$/;var Pn=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var ua="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function Zn(){return new RegExp(ua,"u")}var On=/^(?:(?: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])$/,In=/^(([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}|:))$/;var En=/^((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])$/,An=/^(([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])$/,Tn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Cn=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var Nn=/^https?$/,Mn=/^\+[1-9]\d{6,14}$/;var Ln="(?:(?:\\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 la(e){return new RegExp(`^${e}$`)}var Rn=la(Ln);function Xt(e){let 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 jn(e){return new RegExp(`^${Xt(e)}$`)}function Dn(e){let t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${Xt({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,n=e.local?`${r}|${Xt({precision:e.precision})}`:r;return new RegExp(`^${Ln}T(?:${n})$`)}var Fn=/^[\s\S]{0,}$/;var Qt=/^-?\d+$/,Ee=/^-?\d+(?:\.\d+)?$/;var Un=/^[^A-Z]*$/,Bn=/^[^a-z]*$/;var R=h("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])});var er=e=>{let t=e.value;return!Mt(t)&&t.length!==void 0},it={number:"number",bigint:"bigint",object:"date"},tr=h("$ZodCheckLessThan",(e,t)=>{R.init(e,t);let r=it[typeof t.value];e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:it[typeof n.value]??r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),rr=h("$ZodCheckGreaterThan",(e,t)=>{R.init(e,t);let r=it[typeof t.value];e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:it[typeof n.value]??r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Jn=h("$ZodCheckMultipleOf",(e,t)=>{R.init(e,t),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?t.value!==BigInt(0)&&r.value%t.value===BigInt(0):Lt(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Vn=h("$ZodCheckNumberFormat",(e,t)=>{R.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,s]=Pe[t.format];e._zod.check=i=>{let c=i.value;if(r){if(!Number.isInteger(c)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?i.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}c<o&&i.issues.push({origin:"number",input:c,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),c>s&&i.issues.push({origin:"number",input:c,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}});var Kn=h("$ZodCheckMaxLength",(e,t)=>{var r;R.init(e,t),(r=e._zod.def).when??(r.when=er),e._zod.check=n=>{let o=n.value,s=o.length;if((typeof o=="string"&&s>t.maximum?Oe(o):s)<=t.maximum)return;let c=Ie(o);n.issues.push({origin:c,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Gn=h("$ZodCheckMinLength",(e,t)=>{var r;R.init(e,t),(r=e._zod.def).when??(r.when=er),e._zod.check=n=>{let o=n.value,s=o.length;if((typeof o=="string"&&s>=t.minimum&&s<t.minimum*2?Oe(o):s)>=t.minimum)return;let c=Ie(o);n.issues.push({origin:c,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Hn=h("$ZodCheckLengthEquals",(e,t)=>{var r;R.init(e,t),(r=e._zod.def).when??(r.when=er),e._zod.check=n=>{let o=n.value,s=o.length,i=typeof o=="string"&&s>=t.length&&s<=t.length*2?Oe(o):s;if(i===t.length)return;let c=Ie(o),a=i>t.length;n.issues.push({origin:c,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Te=h("$ZodCheckStringFormat",(e,t)=>{var r,n;R.init(e,t),t.pattern?(r=e._zod).check??(r.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})}):(n=e._zod).check??(n.check=()=>{})}),Wn=h("$ZodCheckRegex",(e,t)=>{Te.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),qn=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Un),Te.init(e,t)}),Xn=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Bn),Te.init(e,t)}),Yn=h("$ZodCheckIncludes",(e,t)=>{R.init(e,t);let r=ie(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position},}${r}`:r);t.pattern=n,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})}}),Qn=h("$ZodCheckStartsWith",(e,t)=>{R.init(e,t);let r=new RegExp(`^${ie(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),eo=h("$ZodCheckEndsWith",(e,t)=>{R.init(e,t);let r=new RegExp(`.*${ie(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});var to=h("$ZodCheckOverwrite",(e,t)=>{R.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var ct=class{constructor(t=[],r={}){this.content=[],this.indent=0,this.args=t,this.closed=r}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}let n=t.split(`
|
|
2
|
+
`).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),s=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let t=Function,r=this?.content??[""];return new t(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
|
|
3
|
+
${r.join(`
|
|
4
|
+
`)}
|
|
5
|
+
};`)(...Object.values(this.closed))}};var no={major:4,minor:6,patch:7};var A=h("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=no;let n=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...n??[]]:n?.length?[...n]:[];for(let s of o)for(let i of s._zod.onattach)i(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let s=(c,a,l)=>{if(c.memo)return c;let u=U(c),p;for(let d of a){if(d._zod.def.when){if(Bt(c)||!d._zod.def.when(c))continue}else if(u)continue;let f=c.issues.length,m=d._zod.check(c);if(m instanceof Promise&&l?.async===!1)throw new q;if(p||m instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await m,c.issues.length!==f&&(Ze(c.issues,f,e),u||(u=U(c,f)))});else{if(c.issues.length===f)continue;Ze(c.issues,f,e),u||(u=U(c,f))}}return p?p.then(()=>c):c},i=(c,a,l)=>{if(U(c))return c.aborted=!0,c;let u=s(a,o,l);if(u instanceof Promise){if(l.async===!1)throw new q;return u.then(p=>e._zod.parse(p,l))}return e._zod.parse(u,l)};e._zod.run=(c,a)=>{if(a.skipChecks)return e._zod.parse(c,a);if(a.direction==="backward"){let u=e._zod.parse({value:c.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(p=>i(p,c,a)):i(u,c,a)}let l=e._zod.parse(c,a);if(l instanceof Promise){if(a.async===!1)throw new q;return l.then(u=>s(u,o,a))}return s(l,o,a)}}},{get"~standard"(){return et(this,"~standard",or(this))},set"~standard"(e){te(this,"~standard",e)}}),bo=(e,t)=>e.issues.length?{issues:e.issues.map(r=>W(r,t,B()))}:{value:e.value};async function pa(e,t){let r={async:!0};return bo(await e._zod.run({value:t,issues:[]},r),r)}function or(e){return{validate:t=>{let r={async:!1};try{let n=e._zod.run({value:t,issues:[]},r);if(!(n instanceof Promise))return bo(n,r)}catch{}return pa(e,t)},vendor:"zod",version:1}}var pt=h("$ZodString",(e,t)=>{A.init(e,t),e._zod.pattern=t.pattern??Fn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),E=h("$ZodStringFormat",(e,t)=>{Te.init(e,t),pt.init(e,t)}),vo=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Sn),E.init(e,t)}),yo=h("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Yt(n))}else t.pattern??(t.pattern=Yt());E.init(e,t)}),_o=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Pn),E.init(e,t)}),$o=1,ut=2;function ko(e){try{return typeof URL<"u"&&typeof URL.canParse=="function"?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function da(e,t){return!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t)?ko(e)||ut:fa(e,t)}function fa(e,t){if(!t.normalize&&t.protocol?.source===Nn.source&&!/^https?:\/\//i.test(e))return $o;try{if(typeof URL<"u"){let r=URL;if(typeof r.parse=="function")return r.parse(e)??ut}return new URL(e)}catch{return ut}}var ma=/[\t\n\r]/g;function oo(e){return e.replace(ma,"")}function ha(e,t){return t.lastIndex=0,t.test(e.hostname)}function ga(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var wo=h("$ZodURL",(e,t)=>{E.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=da(n,t);if(o===$o){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}if(o===ut){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort});return}if(o===!0){r.value=oo(n);return}t.hostname&&!ha(o,t.hostname)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort}),t.protocol&&!ga(o,t.protocol)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort}),r.value=t.normalize?o.href:oo(n);return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),zo=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Zn()),E.init(e,t)}),So=h("$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?kn:wn(t.length)),E.init(e,t)}),Po=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=bn),E.init(e,t)}),Zo=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=vn),E.init(e,t)}),Oo=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=yn),E.init(e,t)}),Io=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=_n),E.init(e,t)}),Eo=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=$n),E.init(e,t)}),Ao=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Dn(t)),E.init(e,t)}),To=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Rn),E.init(e,t)}),Co=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=jn(t)),E.init(e,t)}),No=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=zn),E.init(e,t)}),Mo=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=On),E.init(e,t)}),xa=/^[0-9a-fA-F:.]+$/;function Lo(e){return xa.test(e)?ko(`http://[${e}]`):!1}var Ro=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=In),E.init(e,t),e._zod.check=r=>{Lo(r.value)||r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}});var jo=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=En),E.init(e,t)});function ba(e){let t=e.split("/");if(t.length!==2)return!1;let[r,n]=t;if(!n)return!1;let o=Number(n);return`${o}`!==n||o<0||o>128?!1:Lo(r)}var Do=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=An),E.init(e,t),e._zod.check=r=>{ba(r.value)||r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}});function Fo(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var sr=/^[0-9a-zA-Z+/]*={0,2}$/,Uo=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=sr),E.init(e,t),e._zod.check=r=>{Fo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),dt=/^[A-Za-z0-9_-]*$/;function va(e){if(!dt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Fo(r)}var Bo=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=dt),E.init(e,t),e._zod.check=r=>{va(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Jo=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Mn),E.init(e,t)});function ya(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Vo=h("$ZodJWT",(e,t)=>{E.init(e,t),e._zod.check=r=>{ya(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var ir=h("$ZodNumber",(e,t)=>{A.init(e,t),e._zod.pattern=Ee,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:String(o):void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),Ko=h("$ZodNumberFormat",(e,t)=>{Vn.init(e,t),ir.init(e,t)});var Go=h("$ZodUnknown",(e,t)=>{A.init(e,t),e._zod.parse=r=>r}),Ho=h("$ZodNever",(e,t)=>{A.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function _a(e,t){let r=Qe(e._zod.def.checks);if(!r.length)return;let n=Math.min(...r.map(s=>s[0])),o=e._zod.parse;e._zod.parse=(s,i)=>{let c=t(s.value);if(c>n&&!i?.skipChecks&&i?.direction!=="backward"){for(let[a,l]of Qe(e._zod.def.checks))if(c>a&&l._zod.def.when(s)){let u=s.issues.length;return l._zod.check(s),s.issues[u].continue=!1,Ze(s.issues,u,e),s}}return o(s,i)}}var $a=e=>Array.isArray(e)?e.length:-1;function so(e,t,r){e.issues.length&&t.issues.push(...H(r,e.issues)),t.value[r]=e.value}var Wo=h("$ZodArray",(e,t)=>{A.init(e,t);let r=j.memoizer;r?.attach(e),e._zod.parse=(n,o)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),n;n.value=r?r.alloc(e,n,Array(s.length),o):Array(s.length);let i=[],c=o?.abortEarly;for(let a=0;a<s.length;a++){let l=s[a],u=t.element._zod.run({value:l,issues:[]},o);if(u instanceof Promise)i.push(u.then(p=>so(p,n,a)));else if(so(u,n,a),c&&u.issues.length!==0&&U(u))break}return i.length?Promise.all(i).then(()=>n):n},_a(e,$a)});function lt(e,t,r,n,o,s){let i=r in n,c=s==="optional";if(!(!i&&c&&o==="optional")){if(e.issues.length){if(o!==void 0&&c&&!i)return;t.issues.push(...H(r,e.issues))}if(!i&&o===void 0){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?(i||o==="defaulted"&&!c)&&(t.value[r]=void 0):t.value[r]=e.value}}var ka=[];function qo(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),n=r.length?r:ka,o=n.length?[...t,...n]:t;for(let i of o)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${String(i)}": expected a Zod schema`);let s=Ut(e.shape);return{...e,allKeys:o,symbolKeys:n,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(s)}}function Xo(e,t,r,n,o,s,i){let c=[],a=o.keySet,l=o.catchall._zod,u=l.def.type,p=l.optin,d=l.optout,f=0;for(let m in t){if(i&&r.issues.length!==f){if(U(r,f))break;f=r.issues.length}if(a.has(m))continue;if(m==="__proto__"){u==="never"&&c.push(m);continue}if(u==="never"){c.push(m);continue}let x=l.run({value:t[m],issues:[]},n);x instanceof Promise?e.push(x.then(_=>lt(_,r,m,t,p,d))):lt(x,r,m,t,p,d)}return c.length&&r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:s,continue:!0}),e.length?Promise.all(e).then(()=>r):r}var wa=h("$ZodObject",(e,t)=>{A.init(e,t);let r=Object.getOwnPropertyDescriptor(t,"shape"),n=r?.get?r.get.raw:t.shape??{};if(n){let l=()=>{let u={...n};return Object.defineProperty(t,"shape",{value:u}),l.raw=u,u};l.raw=n,Object.defineProperty(t,"shape",{get:l})}let o=we(()=>qo(t));Z(e,"propValues",l=>{let u=l.def.shape,p={};for(let d in u){let f=u[d]._zod;if(f.values){Object.prototype.hasOwnProperty.call(p,d)||K(p,d,new Set);for(let m of f.values)p[d].add(m);f.optin!==void 0&&p[d].add(void 0)}}return p});let s=fe,i=t.catchall,c,a=j.memoizer;a?.attach(e),e._zod.parse=(l,u)=>{c??(c=o.value);let p=l.value;if(!s(p))return l.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),l;l.value=a?a.alloc(e,l,{},u):{};let d=[],f=c.shape,m=u?.abortEarly,x=l.issues.length;for(let _ of c.allKeys){if(m&&l.issues.length!==x){if(U(l,x))break;x=l.issues.length}if(_==="__proto__")continue;let y=f[_],I=y._zod.optin,F=y._zod.optout,$=y._zod.run({value:p[_],issues:[]},u);$ instanceof Promise?d.push($.then(b=>lt(b,l,_,p,I,F))):lt($,l,_,p,I,F)}return i?Xo(d,p,l,u,o.value,e,m===!0):d.length?Promise.all(d).then(()=>l):l}}),Yo=h("$ZodObjectJIT",(e,t)=>{wa.init(e,t);let r=e._zod.parse,n=we(()=>qo(t)),o=j.memoizer,s=f=>{let m=n.value,x=m.symbolKeys,_=new ct(["payload","ctx"],{shape:f,inst:e,memo:o,syms:x}),y=b=>`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`,I=(b,v)=>`
|
|
6
|
+
let ${b}_ab = false;
|
|
7
|
+
for (let i = 0; i < ${b}.issues.length; i++) {
|
|
8
|
+
const iss = ${b}.issues[i];
|
|
9
|
+
iss.path = iss.path ? [${v}, ...iss.path] : [${v}];
|
|
10
|
+
payload.issues.push(iss);
|
|
11
|
+
if (iss.continue !== true) ${b}_ab = true;
|
|
12
|
+
}
|
|
13
|
+
if (${b}_ab && ctx && ctx.abortEarly) {
|
|
14
|
+
payload.value = newResult;
|
|
15
|
+
return payload;
|
|
16
|
+
}`;_.write("const input = payload.value;");let F=Object.create(null),$=0;for(let b of m.allKeys)F[b]=`key_${$++}`;_.write(o?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(let b of m.allKeys){if(b==="__proto__")continue;let v=F[b],w=typeof b=="symbol"?`syms[${x.indexOf(b)}]`:Rt(b),z=`${w} in input`,O=f[b],M=O?._zod?.optin,L=M!==void 0,Ge=O?._zod?.optout==="optional";if(_.write(`const ${v} = ${y(w)};`),L&&Ge){let ue=M==="optional"?`${v}_present`:`${v}.value !== undefined || ${v}_present`;_.write(`
|
|
17
|
+
const ${v}_present = ${z};
|
|
18
|
+
if (!${v}.issues.length || ${v}_present) {
|
|
19
|
+
if (${v}.issues.length) {${I(v,w)}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (${ue}) {
|
|
23
|
+
newResult[${w}] = ${v}.value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
`)}else L?(_.write(`
|
|
28
|
+
if (${v}.issues.length) {${I(v,w)}
|
|
29
|
+
}
|
|
30
|
+
`),M==="defaulted"?_.write(`newResult[${w}] = ${v}.value;`):_.write(`
|
|
31
|
+
if (${v}.value !== undefined || ${z}) {
|
|
32
|
+
newResult[${w}] = ${v}.value;
|
|
33
|
+
}
|
|
34
|
+
`)):_.write(`
|
|
35
|
+
const ${v}_present = ${z};
|
|
36
|
+
if (${v}.issues.length) {${I(v,w)}
|
|
37
|
+
}
|
|
38
|
+
if (!${v}_present && !${v}.issues.length) {
|
|
39
|
+
payload.issues.push({
|
|
40
|
+
code: "invalid_type",
|
|
41
|
+
expected: "nonoptional",
|
|
42
|
+
input: undefined,
|
|
43
|
+
path: [${w}]
|
|
44
|
+
});
|
|
45
|
+
if (ctx && ctx.abortEarly) {
|
|
46
|
+
payload.value = newResult;
|
|
47
|
+
return payload;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (${v}_present) {
|
|
52
|
+
newResult[${w}] = ${v}.value;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
`)}return _.write("payload.value = newResult;"),_.write("return payload;"),_.compile()},i,c=fe,a=!j.jitless,u=a&&Dt.value,p=t.catchall,d;e._zod.parse=(f,m)=>{d??(d=n.value);let x=f.value;return c(x)?a&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=s(t.shape)),f=i(f,m),p?Xo([],x,f,m,d,e,m?.abortEarly===!0):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:x,inst:e}),f)}});function io(e,t,r,n){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let o=e.filter(s=>!U(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>W(i,n,B())))}),t)}var Qo=h("$ZodUnion",(e,t)=>{A.init(e,t),Z(e,"optin",n=>n.def.options.some(o=>o._zod.optin==="defaulted")?"defaulted":n.def.options.some(o=>o._zod.optin!==void 0)?"optional":void 0),Z(e,"optout",n=>n.def.options.some(o=>o._zod.optout==="optional")?"optional":void 0),Z(e,"values",n=>{if(n.def.options.every(o=>o._zod.values))return new Set(n.def.options.flatMap(o=>Array.from(o._zod.values)))}),Z(e,"pattern",n=>{if(n.def.options.every(o=>o._zod.pattern)){let o=n.def.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>ze(s.source)).join("|")})$`)}});let r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let s=!1,i=[];for(let c of t.options){let a=c._zod.run({value:n.value,issues:[]},o);if(a instanceof Promise)i.push(a),s=!0;else{if(a.issues.length===0)return a;i.push(a)}}return s?Promise.all(i).then(c=>io(c,n,e,o)):io(i,n,e,o)}});var es=h("$ZodIntersection",(e,t)=>{A.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([a,l])=>co(r,a,l)):co(r,s,i)}});function nr(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(re(e)&&re(t)){let r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};Object.prototype.hasOwnProperty.call(o,"__proto__")&&delete o.__proto__;for(let s of n){if(s==="__proto__")continue;let i=nr(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:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n],i=nr(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function co(e,t,r){let n=new Map,o,s=new Map,i=(l,u)=>{let p;if(l.code==="unrecognized_keys"&&!l.path?.length)o??(o=l),p=l.keys;else if(l.code==="invalid_key"&&l.origin==="record"&&l.path?.length===1){let d=String(l.path[0]);s.has(d)||s.set(d,l),p=[d]}else return!1;for(let d of p)n.has(d)||n.set(d,{}),n.get(d)[u]=!0;return!0};for(let l of t.issues)i(l,"l")||e.issues.push(l);for(let l of r.issues)i(l,"r")||e.issues.push(l);let c=[...n].filter(([,l])=>l.l&&l.r).map(([l])=>l);if(c.length){let l=o?c.filter(u=>o.keys.includes(u)):[];l.length&&e.issues.push({...o,keys:l});for(let u of c)!l.includes(u)&&s.has(u)&&e.issues.push(s.get(u))}let a=nr(t.value,r.value);if(!a.valid){if(U(e))return e;throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`)}return e.value=a.data,e}var ts=h("$ZodTuple",(e,t)=>{A.init(e,t);let r=t.items,n=j.memoizer;n?.attach(e),e._zod.parse=(o,s)=>{let i=o.value;if(!Array.isArray(i))return o.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),o;o.value=n?n.alloc(e,o,[],s):[];let c=[],a=ao(r,"optin"),l=ao(r,"optout");if(!t.rest){if(i.length<a)return o.issues.push({code:"too_small",minimum:a,inclusive:!0,input:i,inst:e,origin:"array"}),o;i.length>r.length&&o.issues.push({code:"too_big",maximum:r.length,inclusive:!0,input:i,inst:e,origin:"array"})}let u=new Array(r.length),p=t.rest?s?.abortEarly:void 0,d=!1;for(let f=0;f<r.length;f++){let m=r[f]._zod.run({value:i[f],issues:[]},s);m instanceof Promise?c.push(m.then(x=>{u[f]=x})):(u[f]=m,p&&!d&&m.issues.length&&(d=U(m)))}if(t.rest&&!d){let f=r.length-1,m=i.slice(r.length),x=o.issues.length;for(let _ of m){if(p&&o.issues.length!==x){if(U(o,x))break;x=o.issues.length}f++;let y=t.rest._zod.run({value:_,issues:[]},s);y instanceof Promise?c.push(y.then(I=>uo(I,o,f))):uo(y,o,f)}}return c.length?Promise.all(c).then(()=>lo(u,o,r,i,l)):lo(u,o,r,i,l)}});function ao(e,t){for(let r=e.length-1;r>=0;r--)if(!(t==="optin"?e[r]._zod.optin!==void 0:e[r]._zod.optout==="optional"))return r+1;return 0}function uo(e,t,r){e.issues.length&&t.issues.push(...H(r,e.issues)),t.value[r]=e.value}function lo(e,t,r,n,o){for(let s=0;s<r.length;s++){let i=e[s],c=s<n.length;if(!c&&s>=o&&r[s]._zod.optin==="optional"){t.value.length=s;break}if(i.issues.length){if(!c&&s>=o){t.value.length=s;break}t.issues.push(...H(s,i.issues))}t.value[s]=i.value}for(let s=t.value.length-1;s>=n.length&&(r[s]._zod.optout==="optional"&&t.value[s]===void 0);s--)t.value.length=s;return t}var rs=h("$ZodRecord",(e,t)=>{A.init(e,t);let r=j.memoizer;r?.attach(e),e._zod.parse=(n,o)=>{let s=n.value;if(!re(s))return n.issues.push({expected:"record",code:"invalid_type",input:s,inst:e}),n;let i=[],c=t.keyType._zod.values;if(c&&!t.partial){n.value=r?r.alloc(e,n,{},o):{};let a=new Set;for(let u of c)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){if(a.add(typeof u=="number"?u.toString():u),u==="__proto__")continue;let p=t.keyType._zod.run({value:u,issues:[]},o);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(p.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:p.issues.map(m=>W(m,o,B())),input:u,path:[u],inst:e});continue}let d=p.value;if(d==="__proto__")continue;let f=t.valueType._zod.run({value:s[u],issues:[]},o);f instanceof Promise?i.push(f.then(m=>{m.issues.length&&n.issues.push(...H(u,m.issues)),n.value[d]=m.value})):(f.issues.length&&n.issues.push(...H(u,f.issues)),n.value[d]=f.value)}let l;for(let u in s)if(!a.has(u))if(t.mode==="loose"){if(u==="__proto__")continue;n.value[u]=s[u]}else l=l??[],l.push(u);l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:s,inst:e,keys:l,continue:!0})}else{n.value=r?r.alloc(e,n,{},o):{};let a;for(let l of Reflect.ownKeys(s)){if(l==="__proto__"||!Object.prototype.propertyIsEnumerable.call(s,l))continue;let u=t.keyType._zod.run({value:l,issues:[]},o);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof l=="string"&&Ee.test(l)&&u.issues.length){let m=t.keyType._zod.run({value:Number(l),issues:[]},o);if(m instanceof Promise)throw new Error("Async schemas not supported in object keys currently");m.issues.length===0&&(u=m)}if(u.issues.length){t.mode==="loose"?n.value[l]=s[l]:c?(a=a??[],a.push(l)):n.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(m=>W(m,o,B())),input:l,path:[l],inst:e});continue}let d=u.value;if(d==="__proto__")continue;let f=t.valueType._zod.run({value:s[l],issues:[]},o);f instanceof Promise?i.push(f.then(m=>{m.issues.length&&n.issues.push(...H(l,m.issues)),n.value[d]=m.value})):(f.issues.length&&n.issues.push(...H(l,f.issues)),n.value[d]=f.value)}a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:s,inst:e,keys:a,continue:!0})}return i.length?Promise.all(i).then(()=>n):n}});var ns=h("$ZodEnum",(e,t)=>{A.init(e,t);let r=me(t.entries),n=new Set(r);e._zod.values=n,Z(e,"pattern",o=>{let s=me(o.def.entries).filter(i=>Ft.has(typeof i));return new RegExp(s.length?`^(${s.map(i=>ie(i.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,s)=>{let i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}});var os=h("$ZodTransform",(e,t)=>{A.init(e,t),e._zod.optin="optional",j.memoizer?.guard(e),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new xe(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r));if(o instanceof Promise)throw new q;return r.value=o,r}});function po(e,t){return e.value=t.issues.length?void 0:t.value,e}var cr=h("$ZodOptional",(e,t)=>{A.init(e,t),Z(e,"optin",r=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",Z(e,"values",r=>{let n=r.def.innerType._zod.values;return n?new Set([...n,void 0]):void 0}),Z(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${ze(n.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(r.value===void 0){if(t.innerType._zod.optin!=="defaulted")return r;let o=t.innerType._zod.run({value:r.value,issues:[]},n);return o instanceof Promise?o.then(s=>po(r,s)):po(r,o)}return t.innerType._zod.run(r,n)}}),ss=h("$ZodExactOptional",(e,t)=>{cr.init(e,t),Z(e,"values",r=>r.def.innerType._zod.values),Z(e,"pattern",r=>r.def.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),is=h("$ZodNullable",(e,t)=>{A.init(e,t),Z(e,"optin",r=>r.def.innerType._zod.optin),Z(e,"optout",r=>r.def.innerType._zod.optout),Z(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${ze(n.source)}|null)$`):void 0}),Z(e,"values",r=>r.def.innerType._zod.values?new Set([...r.def.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),cs=h("$ZodDefault",(e,t)=>{A.init(e,t),e._zod.optin="defaulted",Z(e,"values",r=>r.def.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>fo(s,t)):fo(o,t)}});function fo(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var as=h("$ZodPrefault",(e,t)=>{A.init(e,t),e._zod.optin="defaulted",Z(e,"values",r=>r.def.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),us=h("$ZodNonOptional",(e,t)=>{A.init(e,t),Z(e,"values",r=>{let n=r.def.innerType._zod.values;return n?new Set([...n].filter(o=>o!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>mo(s,e)):mo(o,e)}});function mo(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}function ho(e,t,r,n){return t.issues.length?(e.value=r.catchValue({...t,value:e.value,error:{issues:t.issues.map(o=>W(o,n,B()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var ls=h("$ZodCatch",(e,t)=>{A.init(e,t),Z(e,"optin",r=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),Z(e,"optout",r=>r.def.innerType._zod.optout),Z(e,"values",r=>r.def.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run({value:r.value,issues:[]},n);return o instanceof Promise?o.then(s=>ho(r,s,t,n)):ho(r,o,t,n)}});var ps=h("$ZodPipe",(e,t)=>{A.init(e,t),Z(e,"values",r=>r.def.in._zod.values),Z(e,"optin",r=>r.def.in._zod.optin),Z(e,"optout",r=>r.def.out._zod.optout),Z(e,"propValues",r=>r.def.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>at(i,t.in,n)):at(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>at(s,t.out,n)):at(o,t.out,n)}});function at(e,t,r){return e.issues.some(n=>n.code!=="unrecognized_keys")?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var ds=h("$ZodReadonly",(e,t)=>{A.init(e,t),Z(e,"propValues",r=>r.def.innerType._zod.propValues),Z(e,"values",r=>r.def.innerType._zod.values),Z(e,"optin",r=>r.def.innerType?._zod?.optin),Z(e,"optout",r=>r.def.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(go):go(o)}});function go(e){return e.memo||(e.value=Object.freeze(e.value)),e}var fs=h("$ZodCustom",(e,t)=>{R.init(e,t),A.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>xo(s,r,n,e));xo(o,r,n,e)}});function xo(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(ge(o))}}var ur=class extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform"),this.name="ZodCyclicError"}},lr="~memo",ms=[];function hs(e){return e!==null&&typeof e=="object"}function ar(e){return e.map(t=>t.path?{...t,path:t.path.slice()}:{...t})}var gs=new WeakMap,Ce=0,ht=1,Ne=2;function gt(e,t,r){let n=gs.get(e);if(n!==void 0)return n?Ne:Ce;if(t.has(e))return Ne;t.add(e);let o=Ce,s=u=>{if(o!==Ne&&u?._zod){let p=gt(u,t,r);p>o&&(o=p)}},i=(u,p)=>{let d=Ce;for(let f of Reflect.ownKeys(u)){let m=Object.getOwnPropertyDescriptor(u,f);if(p&&!m.enumerable)continue;let x=m.get?ht:m.value?._zod?gt(m.value,t,r):Ce;x>d&&(d=x)}return d},c=u=>{u>o&&(o=u)},a=e._zod.def,l=a.type;switch(l){case"object":{let u=Se(a);c(u?i(u,!0):ht),s(a.catchall);break}case"array":s(a.element);break;case"tuple":for(let u of a.items)s(u);s(a.rest);break;case"record":case"map":s(a.keyType),s(a.valueType);break;case"set":s(a.valueType);break;case"union":for(let u of a.options)s(u);break;case"intersection":s(a.left),s(a.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":s(a.innerType);break;case"pipe":s(a.in),s(a.out);break;case"function":s(a.input),s(a.output);break;case"lazy":{let u=a._cachedInner??(r?e._zod.innerType:void 0);c(u?gt(u,t,!1):ht);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(let u in a){let p=Object.getOwnPropertyDescriptor(a,u);if(!p||p.get)continue;let d=p.value;if(!(!d||typeof d!="object")){if(d._zod)s(d);else if(Array.isArray(d))for(let f of d)s(f)}}}return t.delete(e),za(e,o)}function za(e,t){return t!==ht&&gs.set(e,t===Ne),t}function Sa(e,t){let r=e.buckets.get(t);return r||(r=new WeakMap,e.buckets.set(t,r)),r}var ft,mt=[],Pa={alloc(e,t,r){let n=ft;if(!n)return r;ft=void 0;let o={value:r,issues:null};return n.set(t.value,o),mt.push(o),r},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let r=e._zod.parse,n=(o,s)=>{if(s.direction!=="backward"&&Za(s,o.value))throw new ur;return r(o,s)};e._zod.parse=n,e._zod.run===r&&(e._zod.run=n)})},attach(e){var t;let r,n=!1,o,s;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let i=e._zod.parse,c=(a,l)=>{if(r===void 0){let y=gt(e,new Set,!1);if(y===Ce)return e._zod.parse=i,e._zod.run===c&&(e._zod.run=i),i(a,l);y===Ne||n?r=!0:n=!0}let u=a.value;if(!hs(u))return i(a,l);let p=l[lr];p||(p={buckets:new WeakMap,backEdges:void 0},l[lr]=p);let d;o===l?d=s:(d=Sa(p,e),o=l,s=d);let f=d.get(u);if(f)return a.value=f.value,f.issues?f.issues.length&&a.issues.push(...ar(f.issues)):(a.memo=!0,p.backEdges??(p.backEdges=new WeakSet),p.backEdges.add(f.value)),a;ft=d;let m=mt.length,x=i(a,l);ft=void 0;let _=mt.length>m?mt.pop():void 0;return x instanceof Promise?x.then(y=>(_&&(_.issues=y.issues.length?ar(y.issues):ms),y)):(_&&(_.issues=x.issues.length?ar(x.issues):ms),x)};e._zod.parse=c,e._zod.run===i&&(e._zod.run=c)})}};function xs(){return Pa}function Za(e,t){let r=e[lr]?.backEdges;return r!==void 0&&hs(t)&&r.has(t)}var Oa=()=>{let 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}let r={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"},n={nan:"NaN"};function o(s,i){return s==="number"&&typeof i=="number"&&!Number.isFinite(i)?String(i):n[s]??s}return s=>{switch(s.code){case"invalid_type":{let i=o(s.expected),c=Jt(s.input),a=o(c,s.input);return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return s.values.length===1?`Invalid input: expected ${qe(s.values[0])}`:`Invalid option: expected one of ${He(s.values,"|")}`;case"too_big":{let i=s.exact?"exactly ":s.inclusive?"<=":"<",c=t(s.origin);return c?`Too big: expected ${s.origin??"value"} to have ${i}${s.maximum.toString()} ${c.unit??"elements"}`:`Too big: expected ${s.origin??"value"} to be ${i}${s.maximum.toString()}`}case"too_small":{let i=s.exact?"exactly ":s.inclusive?">=":">",c=t(s.origin);return c?`Too small: expected ${s.origin} to have ${i}${s.minimum.toString()} ${c.unit}`:`Too small: expected ${s.origin} to be ${i}${s.minimum.toString()}`}case"invalid_format":{let 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 ${r[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":""}: ${He(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(c=>`'${c}'`).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 bs(){return{localeError:Oa()}}var vs;var pr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...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 Ia(){return new pr}(vs=globalThis).__zod_globalRegistry??(vs.__zod_globalRegistry=Ia());var ce=globalThis.__zod_globalRegistry;function ys(e){return e.checks&&(e.checks=[...e.checks]),e}function _s(e,t){return new e(ys({type:"string",...k(t)}))}function $s(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...k(t)})}function ks(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...k(t)})}function ws(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...k(t)})}function zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(t)})}function Ss(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(t)})}function Ps(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(t)})}function Zs(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...k(t)})}function Os(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...k(t)})}function Is(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(t)})}function Es(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...k(t)})}function As(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(t)})}function Ts(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...k(t)})}function Cs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...k(t)})}function Ns(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(t)})}function Ms(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(t)})}function Ls(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(t)})}function Rs(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(t)})}function js(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(t)})}function Ds(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...k(t)})}function Fs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...k(t)})}function Us(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...k(t)})}function Bs(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...k(t)})}function Js(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(t)})}function Vs(e,t){return new e({type:"string",format:"date",check:"string_format",...k(t)})}function Ks(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...k(t)})}function Gs(e,t){return new e({type:"string",format:"duration",check:"string_format",...k(t)})}function Hs(e,t){return new e(ys({type:"number",checks:[],...k(t)}))}function Ws(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...k(t)})}function qs(e){return new e({type:"unknown"})}function Xs(e,t){return new e({type:"never",...k(t)})}function xt(e,t){return new tr({check:"less_than",...k(t),value:e,inclusive:!1})}function Me(e,t){return new tr({check:"less_than",...k(t),value:e,inclusive:!0})}function bt(e,t){return new rr({check:"greater_than",...k(t),value:e,inclusive:!1})}function Le(e,t){return new rr({check:"greater_than",...k(t),value:e,inclusive:!0})}function vt(e,t){return new Jn({check:"multiple_of",...k(t),value:e})}function yt(e,t){return new Kn({check:"max_length",...k(t),maximum:e})}function be(e,t){return new Gn({check:"min_length",...k(t),minimum:e})}function _t(e,t){return new Hn({check:"length_equals",...k(t),length:e})}function dr(e,t){return new Wn({check:"string_format",format:"regex",...k(t),pattern:e})}function fr(e){return new qn({check:"string_format",format:"lowercase",...k(e)})}function mr(e){return new Xn({check:"string_format",format:"uppercase",...k(e)})}function hr(e,t){return new Yn({check:"string_format",format:"includes",...k(t),includes:e})}function gr(e,t){return new Qn({check:"string_format",format:"starts_with",...k(t),prefix:e})}function xr(e,t){return new eo({check:"string_format",format:"ends_with",...k(t),suffix:e})}function ne(e){return new to({check:"overwrite",tx:e})}function br(e){return ne(t=>t.normalize(e))}function vr(){return ne(e=>e.trim())}function yr(){return ne(e=>e.toLowerCase())}function _r(){return ne(e=>e.toUpperCase())}function $r(){return ne(e=>jt(e))}function Ys(e,t,r){return new e({type:"array",element:t,...k(r)})}function Qs(e,t,r){return new e({type:"custom",check:"custom",fn:t,...k(r)})}function ei(e,t){let r=Ea(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(ge(o,n.value,r._zod.def));else{let s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),"input"in s||(s.input=n.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),n.issues.push(ge(s))}},e(n.value,n)),t);return r}function Ea(e,t){let r=new R({check:"custom",...k(t)});return r._zod.check=e,r}function Re(e,...t){for(let r of t)for(let n of Reflect.ownKeys(r))Object.prototype.propertyIsEnumerable.call(r,n)&&K(e,n,r[n]);return e}function wr(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??ce,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 ae(e,t,r,n,o){let s=typeof t.unrepresentable=="function"?t.unrepresentable({zodSchema:e,path:n.path,message:o}):t.unrepresentable;if(s==="any")return!1;if(s===void 0||s==="throw")throw new Error(o);return Object.assign(r,s),!0}function T(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let c=e._zod.toJSONSchema?.();if(c)i.schema=c;else{let u={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,u);else{let d=i.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,d,u)}let p=e._zod.parent;p&&(i.ref||(i.ref=p),T(p,t,u),t.seen.get(p).isParent=!0)}let a=t.metadataRegistry.get(e);return a&&Re(i.schema,a),t.io==="input"&&D(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&"_prefault"in i.schema&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function ti(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function zr(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;let n=new Map;for(let i of e.seen.entries()){let c=e.metadataRegistry.get(i[0])?.id;if(c){let a=n.get(c);if(a&&a!==i[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(c,i[0])}}let o=i=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(i[0])?.id,d=e.external.uri??(m=>m);if(p)return{ref:d(p)};let f=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=f,{defId:f,ref:`${d("__shared")}#/${c}/${ti(f)}`}}let a="#",l=`${a}/${c}/`;if(i[1]===r&&!i[1].schema.id)return{ref:a};let u=i[1].schema.id??`__schema${e.counter++}`;return{defId:u,ref:l+ti(u)}},s=i=>{if(i[1].schema.$ref)return;let c=i[1],{ref:a,defId:l}=o(i);c.def={...c.schema},l&&(c.defId=l);let u=c.schema;for(let p in u)delete u[p];u.$ref=a};if(e.cycles==="throw")for(let i of e.seen.entries()){let c=i[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
|
|
56
|
+
|
|
57
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let c=i[1];if(t===i[0]){s(i);continue}if(e.external){let l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(c.cycle){s(i);continue}c.count>1&&e.reused==="ref"&&s(i)}e.external&&(e.sharedDefsExtractedFor=e.external)}function oi(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let r=[];for(let n of t){if(!n||typeof n!="object")return;oi(n);let o=Object.keys(n);if(o.length!==1||o[0]!=="type")return;let s=n.type;for(let i of Array.isArray(s)?s:[s]){if(typeof i!="string")return;r.includes(i)||r.push(i)}}delete e.anyOf,e.type=r.length===1?r[0]:r}var si=new Set(["type","properties","required","additionalProperties"]),ri=["oneOf","anyOf"];function ni(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!="object"||t===null?null:Object.keys(t).length?t:null}function kr(e){let t=[];for(let s of e){if(typeof s!="object"||s.type!=="object")return null;for(let i in s)if(!si.has(i))return null;t.push(s)}let r={},n=new Set;for(let s of t){for(let i in s.properties){if(Object.prototype.hasOwnProperty.call(r,i))continue;let c=[];for(let l of t){let u=l.properties?.[i]??ni(l);u!=null&&(c.some(p=>JSON.stringify(p)===JSON.stringify(u))||c.push(u))}let a=c.length===1?c[0]:kr(c)??{allOf:c};K(r,i,a)}for(let i of s.required??[])n.add(i)}let o={type:"object",properties:r};if(n.size&&(o.required=[...n]),t.every(s=>s.additionalProperties===!1))o.additionalProperties=!1;else{let s=[];for(let i of t){let c=ni(i);c&&!s.some(a=>JSON.stringify(a)===JSON.stringify(c))&&s.push(c)}s.length===1?o.additionalProperties=s[0]:s.length>1&&(o.additionalProperties={allOf:s})}return o}function Aa(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let o of si)if(o in e)return;let r=t.filter(o=>ri.some(s=>Array.isArray(o[s]))),n=null;if(!r.length)n=kr(t);else{let o=r[0],s=ri.find(a=>Array.isArray(o[a]));if(Object.keys(o).length!==1)return;let i=t.filter(a=>a!==o),c=o[s].map(a=>kr([...i,a]));if(c.some(a=>!a))return;n={[s]:c}}n&&(delete e.allOf,Re(e,n))}function Sr(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=c=>{let a=e.seen.get(c);if(a.ref===null)return;let l=a.def??a.schema,u={...l},p=a.ref;if(a.ref=null,p){n(p);let f=e.seen.get(p),m=f.schema;if(m.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(l.allOf=l.allOf??[],l.allOf.push(m)):Re(l,m),Re(l,u),c._zod.parent===p)for(let _ in l)_==="$ref"||_==="allOf"||_ in u||delete l[_];if(m.$ref&&f.def)for(let _ in l)_==="$ref"||_==="allOf"||_ in f.def&&JSON.stringify(l[_])===JSON.stringify(f.def[_])&&delete l[_]}let d=c._zod.parent;if(d&&d!==p){n(d);let f=e.seen.get(d);if(f?.schema.$ref&&(l.$ref=f.schema.$ref,f.def))for(let m in l)m==="$ref"||m==="allOf"||m in f.def&&JSON.stringify(l[m])===JSON.stringify(f.def[m])&&delete l[m]}e.override({zodSchema:c,jsonSchema:l,path:a.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let c of[...e.seen.entries()].reverse())n(c[0]);if(e.target!=="openapi-3.0")for(let c of e.seen.entries())oi(c[1].def??c[1].schema);for(let c of e.deferred)c();if(e.intersections.length){let c=new Map;for(let a of e.seen.values())for(let l of[a.schema,a.def]){let u=l?.allOf;if(!Array.isArray(u))continue;let p=c.get(u);p?p.push(l):c.set(u,[l])}for(let a of e.intersections)for(let l of c.get(a)??[])Aa(l)}}let 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){let c=e.external.registry.get(t)?.id;if(!c)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(c)}Re(o,r.defId?r.schema:r.def??r.schema);let s=e.metadataRegistry.get(t)?.id;s!==void 0&&o.id===s&&delete o.id;let i=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let c of e.seen.entries()){let a=c[1];a.def&&a.defId&&(a.def.id===a.defId&&delete a.def.id,K(i,a.defId,a.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{let c=JSON.parse(JSON.stringify(o));return Object.defineProperty(c,"~standard",{value:{...t["~standard"],jsonSchema:{input:je(t,"input",e.processors),output:je(t,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function D(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return D(n.element,r);if(n.type==="set")return D(n.valueType,r);if(n.type==="lazy")return D(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault"||n.type==="catch")return D(n.innerType,r);if(n.type==="intersection")return D(n.left,r)||D(n.right,r);if(n.type==="record"||n.type==="map")return D(n.keyType,r)||D(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:D(n.in,r)||D(n.out,r);if(n.type==="object"){for(let o in n.shape)if(D(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(D(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(D(o,r))return!0;return!!(n.rest&&D(n.rest,r))}return!1}var ii=(e,t={})=>r=>{let n=wr({...r,processors:t});return T(e,n),zr(n,e),Sr(n,e)},je=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=wr({...o??{},target:s,io:t,processors:r});return T(e,i),zr(i,e),Sr(i,e)};var ve=(e,t,r)=>{(e[t]===void 0||r>e[t])&&(e[t]=r)},ye=(e,t,r)=>{(e[t]===void 0||r<e[t])&&(e[t]=r)},ci=(e,t)=>{ve(e,"minimum",t),ye(e,"maximum",t)},pi=(e,t)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(t)||e.multipleOf.push(t)},di=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},fi=(e,t)=>{e.mime=e.mime?e.mime.filter(r=>t.includes(r)):[...t]},mi=(e,t)=>{e.format=t,t.includes("int")&&(e.isInt=!0)},ai=(e,t)=>ve(e,"minimum",t.minimum),ui=(e,t)=>ye(e,"maximum",t.maximum),li=e=>(t,r)=>{mi(t,r.format);let[n,o]=e[r.format];ve(t,"minimum",n),ye(t,"maximum",o)},Ta={greater_than:(e,t)=>ve(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>ye(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>pi(e,t.value),number_format:li(Pe),bigint_format:li(Xe),min_length:ai,max_length:ui,length_equals:(e,t)=>ci(e,t.length),min_size:ai,max_size:ui,size_equals:(e,t)=>ci(e,t.size),string_format:(e,t)=>{mi(e,t.format),t.pattern&&di(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)=>fi(e,t.mime)};function J(e){let t={},r=e._zod.def,n=e._zod.traits.has("$ZodCheck")?[e,...r.checks??[]]:r.checks??[];for(let s of n)Ta[s._zod.def.check]?.(t,s._zod.def);let o=e._zod.bag;o.minimum!==void 0&&ve(t,"minimum",o.minimum),o.exclusiveMinimum!==void 0&&ve(t,"exclusiveMinimum",o.exclusiveMinimum),o.maximum!==void 0&&ye(t,"maximum",o.maximum),o.exclusiveMaximum!==void 0&&ye(t,"exclusiveMaximum",o.exclusiveMaximum),o.multipleOf!==void 0&&pi(t,o.multipleOf),o.format!==void 0&&(t.format??(t.format=o.format),o.format.includes("int")&&(t.isInt=!0)),o.mime&&fi(t,o.mime);for(let s of o.patterns??[])di(t,s);return t}var Ca={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Na=new Map([[sr,Tn],[dt,Cn]]),hi=e=>Na.get(e)??e,gi=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:s,maximum:i,format:c,patterns:a,contentEncoding:l,laxFormat:u}=J(e);if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),c&&(o.format=Ca[c]??c,o.format===""&&delete o.format,(c==="time"||u)&&delete o.format),l&&(o.contentEncoding=l),a&&a.size>0){let p=[...a].map(hi);p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},xi=(e,t,r,n)=>{let o=r,{minimum:s,maximum:i,multipleOf:c,exclusiveMaximum:a,exclusiveMinimum:l,isInt:u}=J(e);o.type=u?"integer":"number";let p=typeof l=="number"&&l>=(s??Number.NEGATIVE_INFINITY),d=typeof a=="number"&&a<=(i??Number.POSITIVE_INFINITY),f=t.target==="draft-04"||t.target==="openapi-3.0";if(p?f?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:typeof s=="number"&&(o.minimum=s),d?f?(o.maximum=a,o.exclusiveMaximum=!0):o.exclusiveMaximum=a:typeof i=="number"&&(o.maximum=i),c){let m=new Set;for(let y of c)Number.isFinite(y)&&y!==0?m.add(Math.abs(y)):ae(e,t,o,n,`A multipleOf divisor of ${y} cannot be represented in JSON Schema`);let[x,..._]=m;x!==void 0&&(o.multipleOf=x),_.length&&(o.allOf=[...o.allOf??[],..._.map(y=>({multipleOf:y}))])}};var bi=(e,t,r,n)=>{r.not={}};var vi=(e,t,r,n)=>{};var yi=(e,t,r,n)=>{let o=e._zod.def,s=me(o.entries);if(s.length===0){r.not={};return}s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s};var _i=(e,t,r,n)=>{ae(e,t,r,n,"Custom types cannot be represented in JSON Schema")};var $i=(e,t,r,n)=>{ae(e,t,r,n,"Transforms cannot be represented in JSON Schema")};var ki=(e,t,r,n)=>{let o=r,s=e._zod.def,{minimum:i,maximum:c}=J(e);typeof i=="number"&&(o.minItems=i),typeof c=="number"&&(o.maxItems=c),o.type="array",o.items=T(s.element,t,{...n,path:[...n.path,"items"]})};function De(e){let t=e._zod.def;return t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform")?De(t.out):t.type==="catch"?De(t.innerType):e._zod.optin}var wi=(e,t,r,n)=>{let o=r,s=e._zod.def,i=s.shape;if(Object.getOwnPropertySymbols(i).length&&ae(e,t,o,n,"Symbol keys cannot be represented in JSON Schema"))return;o.type="object",o.properties={};for(let l in i)K(o.properties,l,T(i[l],t,{...n,path:[...n.path,"properties",l]}));let a=[];for(let l of Object.keys(i)){let u=s.shape[l];(t.io==="input"?De(u)===void 0:u._zod.optout===void 0)&&a.push(l)}a.length>0&&(o.required=a),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=T(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},zi=(e,t,r,n)=>{let o=e._zod.def,s=o.inclusive===!1,i=o.options.map((c,a)=>T(c,t,{...n,path:[...n.path,s?"oneOf":"anyOf",a]}));s?r.oneOf=i:r.anyOf=i},Si=(e,t,r,n)=>{let o=e._zod.def,s=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),c=l=>"allOf"in l&&Object.keys(l).length===1,a=[...c(s)?s.allOf:[s],...c(i)?i.allOf:[i]];r.allOf=a,t.intersections.push(a)},Pi=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="array";let i=t.target==="draft-2020-12"?"prefixItems":"items",c=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",a=s.items.map((x,_)=>T(x,t,{...n,path:[...n.path,i,_]})),l=s.rest?T(s.rest,t,{...n,path:[...n.path,c,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null,u=s.items.length;for(;u>0;){let x=s.items[u-1];if(!(t.io==="input"?De(x)!==void 0:x._zod.optout==="optional"))break;u--}let p=s.items.length,d=!s.rest;t.target==="draft-2020-12"?(o.prefixItems=a,d?o.items=!1:l&&(o.items=l),u>0&&(o.minItems=u),d&&(o.maxItems=p)):t.target==="openapi-3.0"?(o.items={anyOf:a},l&&o.items.anyOf.push(l),u>0&&(o.minItems=u),d&&(o.maxItems=p)):(o.items=a,d?o.additionalItems=!1:l&&(o.additionalItems=l),u>0&&(o.minItems=u),d&&(o.maxItems=p));let{minimum:f,maximum:m}=J(e);typeof f=="number"&&(o.minItems=f),typeof m=="number"&&(o.maxItems=m)};function Pr(e,t,r){if(t.$ref){if(r.has(t))return t;r.add(t);let m=e.get(t)?.def;if(!m)return t;let x=Pr(e,m,r);return x===m?t:x}for(let m of["anyOf","oneOf"]){let x=t[m];if(!Array.isArray(x))continue;let _=x.map(y=>Pr(e,y,r));_.some((y,I)=>y!==x[I])&&(t={...t,[m]:_})}let n=Array.isArray(t.type)?t.type:[t.type],o=!n.includes("string")&&n.some(m=>m==="number"||m==="integer"),s=t.enum??(t.const!==void 0?[t.const]:void 0);if(!o&&!s?.some(m=>typeof m=="number"))return t;let{minimum:i,maximum:c,exclusiveMinimum:a,exclusiveMaximum:l,multipleOf:u,format:p,id:d,...f}=t;return f.enum?f.enum=f.enum.map(m=>typeof m=="number"?String(m):m):typeof f.const=="number"&&(f.const=String(f.const)),o&&(f.type="string",s||(f.pattern=(n.includes("number")?Ee:Qt).source)),f}var Zr=new WeakMap;function Ma(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let r=new Map;for(let n of Zr.get(e)??[]){let o=e.seen.get(n),s=(o?.def??o?.schema)?.propertyNames;if(!s||s===!0||r.has(s))continue;let i=Pr(t,s,new Set);i!==s&&r.set(s,i)}if(r.size)for(let n of e.seen.values())for(let o of[n.schema,n.def]){let s=o&&r.get(o.propertyNames);s&&(o.propertyNames=s)}}var Zi=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object";let i=s.keyType,c=J(i).patterns;if(s.mode==="loose"&&c&&c.size>0){let u=T(s.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let p of c)K(o.patternProperties,hi(p).source,u)}else{if(t.target==="draft-07"||t.target==="draft-2020-12"){o.propertyNames=T(s.keyType,t,{...n,path:[...n.path,"propertyNames"]});let u=Zr.get(t);u||(u=[],Zr.set(t,u),t.deferred.push(()=>Ma(t))),u.push(e)}o.additionalProperties=T(s.valueType,t,{...n,path:[...n.path,"additionalProperties"]})}let a=i._zod.values,l=t.io==="input"&&De(s.valueType)!==void 0;if(a&&!s.partial&&!l){let u=[...a].filter(p=>typeof p=="string"||typeof p=="number");u.length>0&&(o.required=u.map(String))}},Oi=(e,t,r,n)=>{let o=e._zod.def,s=T(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Ii=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Or=Symbol();function Ei(e,t,r,n,o){let s=!1,i=JSON.stringify(e,(c,a)=>typeof a!="bigint"?a:(s=!0,null));return s?(ae(t,r,n,o,"BigInt defaults cannot be represented in JSON Schema"),Or):JSON.parse(i)}var Ai=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i=Ei(o.defaultValue,e,t,r,n);i!==Or&&(r.default=i)},Ti=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);if(s.ref=o.innerType,t.io!=="input")return;let i=Ei(o.defaultValue,e,t,r,n);i!==Or&&(r._prefault=i)},Ci=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{ae(e,t,r,n,"Dynamic catch values are not supported in JSON Schema");return}r.default=i},Ni=(e,t,r,n)=>{let o=e._zod.def,s=o.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?o.out:o.in:o.out;T(i,t,n);let c=t.seen.get(e);c.ref=i},Mi=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0};var Ir=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType};var Li=new WeakSet([Object.prototype,Error.prototype]);function $t(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let n=r(this);return Object.defineProperty(this,t,{value:n,configurable:!0,writable:!0}),n},set(n){Object.defineProperty(this,t,{value:n,configurable:!0,writable:!0})}})}var Ja=(e,t)=>{sn.init(e,t),e.name="ZodError";let r=Object.getPrototypeOf(e);Li.has(r)||(Li.add(r),$t(r,"format",n=>o=>an(n,o)),$t(r,"flatten",n=>o=>cn(n,o)),$t(r,"addIssue",n=>o=>{n.issues.push(o),n.message=JSON.stringify(n.issues,he,2)}),$t(r,"addIssues",n=>o=>{n.issues.push(...o),n.message=JSON.stringify(n.issues,he,2)}),Object.defineProperty(r,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))};var V=h("ZodError",Ja,void 0,{Parent:Error});var Ri=rt(V),ji=nt(V),Di=ot(V),Fi=st(V),Ui=ln(V),Bi=pn(V),Ji=dn(V),Vi=fn(V),Ki=mn(V),Gi=hn(V),Hi=gn(V),Wi=xn(V);function Ka(){j.localeError||B(bs())}function Fe(){j.memoizer||B({memoizer:xs()})}var N=h("ZodType",(e,t)=>(Ka(),A.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(S.mergeDefs(t,{checks:[...t.checks??[],...e.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return G(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Bu(e,t))},superRefine(e,t){return this.check(Ju(e,t))},overwrite(e){return this.check(ne(e))},optional(){return Qi(this)},exactOptional(){return Iu(this)},nullable(){return ec(this)},nullish(){return Qi(ec(this))},nonoptional(e){return Mu(this,e)},array(){return _u(this)},or(e){return wu([this,e])},and(e){return Su(this,e)},transform(e){return tc(this,Ou(e))},default(e){return Tu(this,e)},prefault(e){return Nu(this,e)},catch(e){return Ru(this,e)},pipe(e){return tc(this,e)},readonly(){return Fu(this)},describe(e){let t=this.clone();return ce.add(t,{description:e}),t},meta(...e){if(e.length===0)return ce.get(this);let t=this.clone();return ce.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 S.hide(this,"~standard",{...or(this),jsonSchema:{input:je(this,"input"),output:je(this,"output")}})},set"~standard"(e){S.own(this,"~standard",e)},parse:function e(t,r){return Ri(this,t,r,{callee:e})},parseAsync:async function e(t,r){return await ji(this,t,r,{callee:e})},safeParse(e,t){return Di(this,e,t)},async safeParseAsync(e,t){return Fi(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){S.own(this,"spa",e)},validate(e,t){return Wt(this,e,t)},validateAsync(e,t){return qt(this,e,t)},encode:function e(t,r){return Ui(this,t,r,{callee:e})},decode:function e(t,r){return Bi(this,t,r,{callee:e})},encodeAsync:async function e(t,r){return await Ji(this,t,r,{callee:e})},decodeAsync:async function e(t,r){return await Vi(this,t,r,{callee:e})},safeEncode(e,t){return Ki(this,e,t)},safeDecode(e,t){return Gi(this,e,t)},async safeEncodeAsync(e,t){return Hi(this,e,t)},async safeDecodeAsync(e,t){return Wi(this,e,t)},toJSONSchema(e){return ii(this,{})(e)},get description(){return ce.get(this)?.description},get _def(){return this._zod.def}}),rc=h("_ZodString",(e,t)=>{pt.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>gi(e,r,n,o)},S.derived({format:e=>J(e).format??null,minLength:e=>J(e).minimum??null,maxLength:e=>J(e).maximum??null},{regex(...e){return this.check(dr(...e))},includes(...e){return this.check(hr(...e))},startsWith(...e){return this.check(gr(...e))},endsWith(...e){return this.check(xr(...e))},min(...e){return this.check(be(...e))},max(...e){return this.check(yt(...e))},length(...e){return this.check(_t(...e))},nonempty(...e){return this.check(be(1,...e))},lowercase(e){return this.check(fr(e))},uppercase(e){return this.check(mr(e))},trim(){return this.check(vr())},normalize(...e){return this.check(br(...e))},toLowerCase(){return this.check(yr())},toUpperCase(){return this.check(_r())},slugify(){return this.check($r())}})),Ga=h("ZodString",(e,t)=>{pt.init(e,t),rc.init(e,t)},{email(e){return this.check($s(Ya,e))},url(e){return this.check(Zs(eu,e))},jwt(e){return this.check(Bs(hu,e))},emoji(e){return this.check(Os(tu,e))},guid(e){return this.check(ks(Qa,e))},uuid(e){return this.check(ws(kt,e))},uuidv4(e){return this.check(zs(kt,e))},uuidv6(e){return this.check(Ss(kt,e))},uuidv7(e){return this.check(Ps(kt,e))},nanoid(e){return this.check(Is(ru,e))},cuid(e){return this.check(Es(nu,e))},cuid2(e){return this.check(As(ou,e))},ulid(e){return this.check(Ts(su,e))},base64(e){return this.check(Ds(du,e))},base64url(e){return this.check(Fs(fu,e))},xid(e){return this.check(Cs(iu,e))},ksuid(e){return this.check(Ns(cu,e))},ipv4(e){return this.check(Ms(au,e))},ipv6(e){return this.check(Ls(uu,e))},cidrv4(e){return this.check(Rs(lu,e))},cidrv6(e){return this.check(js(pu,e))},e164(e){return this.check(Us(mu,e))},datetime(e){return this.check(Js(Ha,e))},date(e){return this.check(Vs(Wa,e))},time(e){return this.check(Ks(qa,e))},duration(e){return this.check(Gs(Xa,e))}});function Ue(e){return _s(Ga,e)}var C=h("ZodStringFormat",(e,t)=>{E.init(e,t),rc.init(e,t)}),Ha=h("ZodISODateTime",(e,t)=>{Ao.init(e,t),C.init(e,t)}),Wa=h("ZodISODate",(e,t)=>{To.init(e,t),C.init(e,t)}),qa=h("ZodISOTime",(e,t)=>{Co.init(e,t),C.init(e,t)}),Xa=h("ZodISODuration",(e,t)=>{No.init(e,t),C.init(e,t)}),Ya=h("ZodEmail",(e,t)=>{_o.init(e,t),C.init(e,t)});var Qa=h("ZodGUID",(e,t)=>{vo.init(e,t),C.init(e,t)});var kt=h("ZodUUID",(e,t)=>{yo.init(e,t),C.init(e,t)});var eu=h("ZodURL",(e,t)=>{wo.init(e,t),C.init(e,t)});var tu=h("ZodEmoji",(e,t)=>{zo.init(e,t),C.init(e,t)});var ru=h("ZodNanoID",(e,t)=>{So.init(e,t),C.init(e,t)});var nu=h("ZodCUID",(e,t)=>{Po.init(e,t),C.init(e,t)});var ou=h("ZodCUID2",(e,t)=>{Zo.init(e,t),C.init(e,t)});var su=h("ZodULID",(e,t)=>{Oo.init(e,t),C.init(e,t)});var iu=h("ZodXID",(e,t)=>{Io.init(e,t),C.init(e,t)});var cu=h("ZodKSUID",(e,t)=>{Eo.init(e,t),C.init(e,t)});var au=h("ZodIPv4",(e,t)=>{Mo.init(e,t),C.init(e,t)});var uu=h("ZodIPv6",(e,t)=>{Ro.init(e,t),C.init(e,t)});var lu=h("ZodCIDRv4",(e,t)=>{jo.init(e,t),C.init(e,t)});var pu=h("ZodCIDRv6",(e,t)=>{Do.init(e,t),C.init(e,t)});var du=h("ZodBase64",(e,t)=>{Uo.init(e,t),C.init(e,t)});var fu=h("ZodBase64URL",(e,t)=>{Bo.init(e,t),C.init(e,t)});var mu=h("ZodE164",(e,t)=>{Jo.init(e,t),C.init(e,t)});var hu=h("ZodJWT",(e,t)=>{Vo.init(e,t),C.init(e,t)});var nc=h("ZodNumber",(e,t)=>{ir.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>xi(e,r,n,o),e.isFinite=!0},S.derived({minValue:e=>{let{minimum:t,exclusiveMinimum:r}=J(e);return Math.max(t??Number.NEGATIVE_INFINITY,r??Number.NEGATIVE_INFINITY)},maxValue:e=>{let{maximum:t,exclusiveMaximum:r}=J(e);return Math.min(t??Number.POSITIVE_INFINITY,r??Number.POSITIVE_INFINITY)},isInt:e=>{let{isInt:t,multipleOf:r}=J(e);return!!t||!!r?.some(Number.isSafeInteger)},format:e=>J(e).format??null},{gt(e,t){return this.check(bt(e,t))},gte(e,t){return this.check(Le(e,t))},min(e,t){return this.check(Le(e,t))},lt(e,t){return this.check(xt(e,t))},lte(e,t){return this.check(Me(e,t))},max(e,t){return this.check(Me(e,t))},int(e){return this.check(qi(e))},safe(e){return this.check(qi(e))},positive(e){return this.check(bt(0,e))},nonnegative(e){return this.check(Le(0,e))},negative(e){return this.check(xt(0,e))},nonpositive(e){return this.check(Me(0,e))},multipleOf(e,t){return this.check(vt(e,t))},step(e,t){return this.check(vt(e,t))},finite(){return this}}));function Be(e){return Hs(nc,e)}var gu=h("ZodNumberFormat",(e,t)=>{Ko.init(e,t),nc.init(e,t)});function qi(e){return Ws(gu,e)}var xu=h("ZodUnknown",(e,t)=>{Go.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>vi(e,r,n,o)});function Xi(){return qs(xu)}var bu=h("ZodNever",(e,t)=>{Ho.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>bi(e,r,n,o)});function vu(e){return Xs(bu,e)}var yu=h("ZodArray",(e,t)=>{Fe(),Wo.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ki(e,r,n,o),e.element=t.element},{min(e,t){return this.check(be(e,t))},nonempty(e){return this.check(be(1,e))},max(e,t){return this.check(yt(e,t))},length(e,t){return this.check(_t(e,t))},unwrap(){return this.element}});function _u(e,t){return Ys(yu,e,t)}var $u=h("ZodObject",(e,t)=>{Fe(),Yo.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wi(e,r,n,o),S.installLazyProp(e,"shape",r=>r._zod.def.shape,!1)},{keyof(){return Cr(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(S.mergeDefs(this._zod.def,{catchall:e}))},passthrough(){return this.clone(S.mergeDefs(this._zod.def,{catchall:Xi()}))},loose(){return this.clone(S.mergeDefs(this._zod.def,{catchall:Xi()}))},strict(){return this.clone(S.mergeDefs(this._zod.def,{catchall:vu()}))},strip(){return this.clone(S.mergeDefs(this._zod.def,{catchall:void 0}))},extend(e){return S.extend(this,e)},safeExtend(e){return S.safeExtend(this,e)},merge(e){return S.merge(this,e)},pick(e){return S.pick(this,e)},omit(e){return S.omit(this,e)},partial(...e){return S.partial(Nr,this,e[0])},exactPartial(...e){return S.partial(ic,this,e[0],"exactPartial")},required(...e){return S.required(cc,this,e[0])}});function Tr(e,t){let r={type:"object",shape:e??{},...S.normalizeParams(t)};return new $u(r)}var ku=h("ZodUnion",(e,t)=>{Qo.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>zi(e,r,n,o),e.options=t.options});function wu(e,t){return new ku({type:"union",options:e,...S.normalizeParams(t)})}var zu=h("ZodIntersection",(e,t)=>{es.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Si(e,r,n,o)});function Su(e,t){return new zu({type:"intersection",left:e,right:t})}var Pu=h("ZodTuple",(e,t)=>{Fe(),ts.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Pi(e,r,n,o)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let 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 Nr({type:"optional",innerType:t}))})}});function oc(e,t,r){let n=t instanceof A,o=n?r:t,s=n?t:null;return new Pu({type:"tuple",items:e,rest:s,...S.normalizeParams(o)})}var Yi=h("ZodRecord",(e,t)=>{Fe(),rs.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zi(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function sc(e,t,r){return!t||!t._zod?new Yi({type:"record",keyType:Ue(),valueType:e,...S.normalizeParams(t)}):new Yi({type:"record",keyType:e,valueType:t,...S.normalizeParams(r)})}var Ar=h("ZodEnum",(e,t)=>{ns.init(e,t),N.init(e,t),e._zod.processJSONSchema=(n,o,s)=>yi(e,n,o,s),e.enum=t.entries,e.options=[...e._zod.values];let r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{let s={};for(let i of n)if(r.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Ar({...t,checks:[],...S.normalizeParams(o),entries:s})},e.exclude=(n,o)=>{let s={...t.entries};for(let i of n)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Ar({...t,checks:[],...S.normalizeParams(o),entries:s})}});function Cr(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Ar({type:"enum",entries:r,...S.normalizeParams(t)})}var Zu=h("ZodTransform",(e,t)=>{Fe(),os.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$i(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new xe(e.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(S.issue(s,r.value,t));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),"input"in i||(i.input=r.value),i.inst??(i.inst=e),r.issues.push(S.issue(i))}};let o=t.transform(r.value,r);return o instanceof Promise?o.then(s=>(r.value=s,r)):(r.value=o,r)}});function Ou(e){return new Zu({type:"transform",transform:e})}var Nr=h("ZodOptional",(e,t)=>{cr.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ir(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Qi(e){return new Nr({type:"optional",innerType:e})}var ic=h("ZodExactOptional",(e,t)=>{ss.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ir(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Iu(e){return new ic({type:"optional",innerType:e})}var Eu=h("ZodNullable",(e,t)=>{is.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Oi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ec(e){return new Eu({type:"nullable",innerType:e})}var Au=h("ZodDefault",(e,t)=>{cs.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ai(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Tu(e,t){return new Au({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():S.shallowClone(t)}})}var Cu=h("ZodPrefault",(e,t)=>{as.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ti(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Nu(e,t){return new Cu({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():S.shallowClone(t)}})}var cc=h("ZodNonOptional",(e,t)=>{us.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ii(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Mu(e,t){return new cc({type:"nonoptional",innerType:e,...S.normalizeParams(t)})}var Lu=h("ZodCatch",(e,t)=>{ls.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ci(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ru(e,t){return new Lu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:S.constantCatch(t)})}var ju=h("ZodPipe",(e,t)=>{ps.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ni(e,r,n,o),e.in=t.in,e.out=t.out});function tc(e,t){return new ju({type:"pipe",in:e,out:t})}var Du=h("ZodReadonly",(e,t)=>{ds.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Mi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Fu(e){return new Du({type:"readonly",innerType:e})}var Uu=h("ZodCustom",(e,t)=>{fs.init(e,t),N.init(e,t),e._zod.processJSONSchema=(r,n,o)=>_i(e,r,n,o)});function Bu(e,t={}){return Qs(Uu,e,t)}function Ju(e,t){return ei(e,t)}var Vu=Tr({x:Be(),y:Be(),dir:Cr(["left","right","up","down"]).describe("The way a pipe leaves the port")}),Dd=Tr({svg:Ue().min(1).max(3e4).describe("SVG markup inside the symbol's box (no outer <svg>). Colours: var(--state), var(--body), var(--body2), var(--line), var(--accent), or fixed colours"),viewBox:oc([Be().positive(),Be().positive()]).default([100,100]).describe("Width and height of the box the markup is drawn in"),ports:sc(Ue().regex(/^[a-z][a-z0-9-]*$/),Vu).default({}).describe("Where pipes connect, in box coordinates, e.g. { in: { x: 0, y: 50, dir: 'left' } }"),description:Ue().max(200).optional()}),Ku={left:"l",right:"r",up:"u",down:"d"},X=(e,t={},r=[100,100],n)=>({svg:e.replace(/\n\s*/g,""),viewBox:r,ports:Object.fromEntries(Object.entries(t).map(([o,[s,i,c]])=>[o,{x:s,y:i,dir:c}])),...n?{description:n}:{}}),_e={motor:X(`<rect x="6" y="34" width="9" height="32" rx="2" fill="var(--body2)" stroke="var(--line)" stroke-width="2"/>
|
|
58
|
+
<rect x="15" y="24" width="62" height="52" rx="9" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
59
|
+
<path d="M27 30v40M37 30v40M55 30v40M65 30v40" stroke="var(--body2)" stroke-width="3.5" stroke-linecap="round"/>
|
|
60
|
+
<rect x="33" y="10" width="26" height="14" rx="3" fill="var(--body2)" stroke="var(--line)" stroke-width="2"/>
|
|
61
|
+
<rect x="77" y="44" width="17" height="12" rx="2" fill="var(--line)"/>
|
|
62
|
+
<circle cx="46" cy="50" r="9" fill="var(--state)"/>`,{shaft:[94,50,"right"]},[100,100],"Electric motor, shaft to the right"),conveyor:X(`<rect x="5" y="16" width="190" height="28" rx="14" fill="var(--body2)" stroke="var(--state)" stroke-width="4"/>
|
|
63
|
+
<circle cx="19" cy="30" r="9" fill="var(--body)" stroke="var(--line)" stroke-width="2.5"/>
|
|
64
|
+
<circle cx="181" cy="30" r="9" fill="var(--body)" stroke="var(--line)" stroke-width="2.5"/>
|
|
65
|
+
<g class="spin"><path d="M19 23v14M12 30h14" stroke="var(--line)" stroke-width="2"/></g>
|
|
66
|
+
<circle cx="62" cy="30" r="4" fill="var(--line)"/><circle cx="100" cy="30" r="4" fill="var(--line)"/><circle cx="138" cy="30" r="4" fill="var(--line)"/>
|
|
67
|
+
<path d="M42 44l-6 14M158 44l6 14" stroke="var(--line)" stroke-width="3.5" stroke-linecap="round"/>`,{in:[5,30,"left"],out:[195,30,"right"]},[200,60],"Belt conveyor (twice as wide as high)"),heat_exchanger:X(`<circle cx="50" cy="50" r="38" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
68
|
+
<path d="M12 50h14l10-18 14 36 14-36 10 18h14" fill="none" stroke="var(--line)" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/>`,{in:[12,50,"left"],out:[88,50,"right"],top:[50,12,"up"],bottom:[50,88,"down"]},[100,100],"Heat exchanger: tube side in/out, shell side top/bottom"),mixer:X(`<rect x="32" y="4" width="36" height="24" rx="5" fill="var(--body)" stroke="var(--state)" stroke-width="3.5"/>
|
|
69
|
+
<rect x="46" y="28" width="8" height="54" rx="2" fill="var(--line)"/>
|
|
70
|
+
<path d="M50 80L22 72v18zM50 80l28-8v18z" fill="var(--state)" stroke="var(--line)" stroke-width="2" stroke-linejoin="round"/>`,{},[100,100],"Agitator: place it over a tank"),filter:X(`<rect x="18" y="12" width="64" height="76" rx="9" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
71
|
+
<path d="M24 82L76 18" stroke="var(--line)" stroke-width="3.5" stroke-dasharray="7 5" stroke-linecap="round"/>`,{in:[18,50,"left"],out:[82,50,"right"],top:[50,12,"up"],bottom:[50,88,"down"]},[100,100],"Filter or strainer"),compressor:X(`<circle cx="50" cy="50" r="40" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
72
|
+
<path d="M17 27l66 12M17 73l66-12" stroke="var(--line)" stroke-width="4" stroke-linecap="round"/>`,{in:[10,50,"left"],out:[90,50,"right"]},[100,100],"Compressor or blower, inlet left"),cylinder:X(`<rect x="6" y="14" width="84" height="32" rx="5" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
73
|
+
<rect x="44" y="18" width="9" height="24" rx="1" fill="var(--line)"/>
|
|
74
|
+
<rect x="53" y="27" width="62" height="6" rx="2" fill="var(--line)"/>
|
|
75
|
+
<rect x="22" y="46" width="7" height="10" fill="var(--line)"/><rect x="71" y="46" width="7" height="10" fill="var(--line)"/>`,{a:[25,56,"down"],b:[75,56,"down"]},[120,60],"Pneumatic cylinder, rod to the right; ports a and b underneath"),level_switch:X(`<rect x="34" y="4" width="32" height="14" rx="3" fill="var(--body2)" stroke="var(--line)" stroke-width="2"/>
|
|
76
|
+
<path d="M50 18v36" stroke="var(--line)" stroke-width="4" stroke-linecap="round"/>
|
|
77
|
+
<circle cx="50" cy="68" r="17" fill="var(--state)" stroke="var(--line)" stroke-width="3"/>
|
|
78
|
+
<path d="M16 93h68" stroke="var(--line)" stroke-width="3" stroke-dasharray="6 4"/>`,{},[100,100],"Float level switch: place it inside a tank"),pressure_switch:X(`<circle cx="50" cy="40" r="33" fill="var(--body)" stroke="var(--state)" stroke-width="4"/>
|
|
79
|
+
<path d="M27 54a26 26 0 0 1 46 0" fill="none" stroke="var(--line)" stroke-width="2.5" stroke-dasharray="3 4"/>
|
|
80
|
+
<path d="M50 40l19-17" stroke="var(--state)" stroke-width="4.5" stroke-linecap="round"/>
|
|
81
|
+
<circle cx="50" cy="40" r="5" fill="var(--line)"/>
|
|
82
|
+
<rect x="45" y="73" width="10" height="23" fill="var(--line)"/>`,{bottom:[50,96,"down"]},[100,100],"Pressure switch or gauge on a stem"),check_valve:X(`<path d="M4 30v40l46-20zM96 30v40L50 50z" fill="var(--state)" stroke="var(--line)" stroke-width="2.5" stroke-linejoin="round"/>
|
|
83
|
+
<path d="M30 16h38M60 9l9 7-9 7" fill="none" stroke="var(--line)" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>`,{in:[4,50,"left"],out:[96,50,"right"]},[100,100],"Check (non-return) valve, flow left to right"),control_valve:X(`<path d="M50 50V22" stroke="var(--line)" stroke-width="4"/>
|
|
84
|
+
<path d="M22 22a28 20 0 0 1 56 0z" fill="var(--body)" stroke="var(--line)" stroke-width="3" stroke-linejoin="round"/>
|
|
85
|
+
<path d="M4 32v36l46-18zM96 32v36L50 50z" fill="var(--state)" stroke="var(--line)" stroke-width="2.5" stroke-linejoin="round"/>`,{in:[4,50,"left"],out:[96,50,"right"]},[100,100],"Control valve with diaphragm actuator")};function uc(e,t){return e.replace(/\bid="([^"]+)"/g,`id="${t}-$1"`).replace(/url\(#([^)]+)\)/g,`url(#${t}-$1)`)}function wt(e,t){return{w:t,h:t*e.viewBox[1]/e.viewBox[0]}}var ac=["r","d","l","u"],Gu=(e,t)=>ac[(ac.indexOf(e)+t/90)%4];function Hu(e,t,r,n,o){let{w:s,h:i}=wt(e,t.size),c=(r/e.viewBox[0]-.5)*s,a=(n/e.viewBox[1]-.5)*i,l=t.rotate??0;for(let u=0;u<l/90;u++)[c,a]=[-a,c];return[t.x+c,t.y+a/o]}function lc(e,t,r){return Object.fromEntries(Object.entries(e.ports).map(([n,o])=>[n,{at:Hu(e,t,o.x,o.y,r),dir:Gu(Ku[o.dir],t.rotate??0)}]))}function Mr(e,t,r){let{w:n,h:o}=wt(e,t.size),[s,i]=(t.rotate??0)%180?[o,n]:[n,o];return{x0:t.x-s/2,y0:t.y-i/2/r,x1:t.x+s/2,y1:t.y+i/2/r}}function zt(e,t){let r=Object.keys(e).find(n=>n.toLowerCase()===t.toLowerCase());return r?[r,e[r]]:void 0}var pc=e=>"id"in e&&e.id||"label"in e&&e.label||void 0;function Wu(e,t,r=_e){switch(e.type){case"symbol":{let n=zt(r,e.symbol);return n?lc(n[1],e,t):{}}case"tank":{let{x:n,y:o,w:s,h:i}=e,c=n+s/2;return{top:{at:[c,o],dir:"u"},bottom:{at:[c,o+i],dir:"d"},left:{at:[n,o+i*.85],dir:"l"},right:{at:[n+s,o+i*.85],dir:"r"},"left-high":{at:[n,o+i*.15],dir:"l"},"right-high":{at:[n+s,o+i*.15],dir:"r"}}}case"pump":case"fan":{let n=e.size/2,o=n/t;return{in:{at:[e.x-n,e.y],dir:"l"},out:{at:[e.x+n,e.y],dir:"r"},top:{at:[e.x,e.y-o],dir:"u"},bottom:{at:[e.x,e.y+o],dir:"d"}}}case"valve":{let n=e.size/2;return e.vertical?{in:{at:[e.x,e.y+n/t],dir:"d"},out:{at:[e.x,e.y-n/t],dir:"u"}}:{in:{at:[e.x-n,e.y],dir:"l"},out:{at:[e.x+n,e.y],dir:"r"}}}case"junction":return{c:{at:[e.x,e.y],dir:"r"}};default:return{}}}var qu={tank:["top","bottom","left","right","left-high","right-high"],pump:["in","out","top","bottom"],fan:["in","out","top","bottom"],valve:["in","out"],junction:["c"]},Xu=e=>e.type in qu||e.type==="symbol",Yu=e=>new Map(e.flatMap(t=>pc(t)&&Xu(t)?[[pc(t).toLowerCase(),t]]:[]));var Je=e=>e==="l"||e==="r";function Qu(e,t,r,n=_e){if(!e.from||!e.to)return e.points??[];let o=Yu(t),s=(y,I)=>{if(typeof y!="string"){if(y[0]<=5)return{at:y,dir:"l"};if(y[0]>=95)return{at:y,dir:"r"};if(y[1]<=5)return{at:y,dir:"u"};if(y[1]>=95)return{at:y,dir:"d"};let w=I??[50,50],z=w[0]-y[0],O=(w[1]-y[1])/r;return{at:y,dir:Math.abs(z)>=Math.abs(O)?z>=0?"r":"l":O>=0?"d":"u"}}let[F,$]=y.split("."),b=o.get(F.toLowerCase());return(b?Wu(b,r,n):{})[$]??{at:[50,50],dir:"r"}},i=typeof e.from=="string"?s(e.from):void 0,c=typeof e.to=="string"?s(e.to):void 0,a=i??s(e.from,c?.at??(Array.isArray(e.to)?e.to:void 0)),l=c??s(e.to,a.at),u=(y,I)=>{if(!(typeof e.from=="string"&&y===a&&e.from.endsWith(".c"))&&!(typeof e.to=="string"&&y===l&&e.to.endsWith(".c")))return y;let F=I[0]-y.at[0],$=(I[1]-y.at[1])/r;return{at:y.at,dir:Math.abs(F)>=Math.abs($)?F>=0?"r":"l":$>=0?"d":"u"}},p=u(a,l.at),d=u(l,a.at),f=[p.at],m=[...e.via??[],d.at],x=p.at,_=p.dir;return m.forEach((y,I)=>{let $=I===m.length-1?d.dir:void 0;for(let v of el(x,_,y,$))f.push(v);let b=f[f.length-2]??x;_=b[0]===y[0]?y[1]>=b[1]?"d":"u":y[0]>=b[0]?"r":"l",x=y}),tl(f)}function el(e,t,r,n){let o=(i,c)=>Math.abs(i-c)<1e-6;if(o(e[0],r[0])||o(e[1],r[1]))return[r];let s=n?Je(n):!Je(t);if(Je(t)&&s){let i=(e[0]+r[0])/2;return[[i,e[1]],[i,r[1]],r]}if(!Je(t)&&!s){let i=(e[1]+r[1])/2;return[[e[0],i],[r[0],i],r]}return Je(t)?[[r[0],e[1]],r]:[[e[0],r[1]],r]}function tl(e){let t=[];for(let r of e){let n=t[t.length-1];if(n&&Math.abs(n[0]-r[0])<1e-6&&Math.abs(n[1]-r[1])<1e-6)continue;let o=t[t.length-2];n&&o&&(Math.abs(o[0]-n[0])<1e-6&&Math.abs(n[0]-r[0])<1e-6||Math.abs(o[1]-n[1])<1e-6&&Math.abs(n[1]-r[1])<1e-6)&&t.pop(),t.push(r)}return t}function dc(e,t,r=_e){return e.map(n=>n.type==="pipe"?{...n,points:Qu(n,e,t,r),from:void 0,to:void 0,via:void 0}:n)}function Pt(e){let[t,r]=(e.size??"1280x720").split("x").map(Number);return r<=480?{w:t,h:r,header:54,pad:12,gap:9}:r>=1080?{w:t,h:r,header:96,pad:28,gap:18}:{w:t,h:r,header:76,pad:20,gap:14}}var P=e=>e.replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t]),g=e=>Math.round(e*10)/10,St=["#38bdf8","#a78bfa","#fbbf24","#34d399","#f472b6","#60a5fa"];function rl(e,t){let[r,n]=e.grid,{w:o,h:s,header:i,pad:c,gap:a}=Pt(e),l=(o-2*c-(r-1)*a)/r,u=(s-i-c-(n-1)*a)/n,[p,d,f,m]=t;return{x:c+(p-1)*(l+a),y:i+(d-1)*(u+a),w:f*l+(f-1)*a,h:m*u+(m-1)*a}}function fc(e,t={}){let r=[],n=x=>`data-b="${r.push(x)-1}"`,o=0,s=x=>`${x}${++o}`,i=[],c=(x,_,y)=>{let I=`fp-${i.length+1}`;return i.push(nl(I,x,_,y,n)),`data-open="${I}"`},a=Pt(e),l={..._e,...t.symbols},u=e.widgets.map(x=>{let _=rl(e,x.at),y=ol(x,_,n,s,c,l),I=x.title?`<div class="t-title">${P(x.title)}</div>`:"";return`<section class="tile t-${x.type}${x.title?"":" untitled"}${_.h<110?" compact":""}" style="left:${g(_.x)}px;top:${g(_.y)}px;width:${g(_.w)}px;height:${g(_.h)}px">${I}<div class="t-body">${y}</div></section>`}),p=(t.pages?.length??0)>1?`<nav class="h-nav">${t.pages.map(x=>`<button class="h-page${x.name===e.name?" cur":""}" data-nav="${P(x.name)}">${P(x.title)}</button>`).join("")}</nav>`:"",d=(t.alarms??[]).map(x=>x.active),f=d.length?`<div class="h-alarm" ${n({kind:"count",vars:d})}><span class="dot"></span><span class="n">0</span><span class="lbl">alarms</span></div>`:"";return{html:`<div class="hmi theme-${e.theme}${a.h<=480?" small":a.h>=1080?" large":""}" style="width:${a.w}px;height:${a.h}px;--hdr:${a.header}px">
|
|
2
86
|
<div class="glow"></div>
|
|
3
|
-
<svg width="0" height="0" style="position:absolute" aria-hidden="true">${
|
|
4
|
-
<header class="h-bar"><div class="h-titles"><div class="h-title">${
|
|
5
|
-
${
|
|
6
|
-
${
|
|
87
|
+
<svg width="0" height="0" style="position:absolute" aria-hidden="true">${il}</svg>
|
|
88
|
+
<header class="h-bar"><div class="h-titles"><div class="h-title">${P(e.title)}</div>${e.subtitle?`<div class="h-sub">${P(e.subtitle)}</div>`:""}</div>
|
|
89
|
+
${p}<div class="h-right">${f}<div class="h-sim" data-sim><span class="dot"></span><span class="lbl">Offline</span></div><div class="h-clock" data-clock>--:--:--</div></div></header>
|
|
90
|
+
${u.join(`
|
|
7
91
|
`)}
|
|
8
|
-
${
|
|
92
|
+
${i.join(`
|
|
9
93
|
`)}
|
|
10
|
-
</div>`,bindings:
|
|
11
|
-
<path class="g-track" d="${
|
|
12
|
-
<text x="100" y="104" class="g-num" ${
|
|
13
|
-
<text x="100" y="128" class="g-unit">${
|
|
14
|
-
<text x="${
|
|
15
|
-
<div class="sp-row"><button class="sp-btn" data-step="-1">\u2212</button><div class="sp-val"><span class="sp-num" ${
|
|
16
|
-
<input class="sp-range" type="range" min="${
|
|
94
|
+
</div>`,bindings:r,css:Rr}}function nl(e,t,r,n,o){let s=[n.running?`<span class="led tone-ok" ${o({kind:"on",v:n.running})}><span class="led-dot"></span>Running</span>`:"",n.open?`<span class="led tone-ok" ${o({kind:"on",v:n.open})}><span class="led-dot"></span>Open</span>`:"",n.fault?`<span class="led tone-alarm" ${o({kind:"on",v:n.fault})}><span class="led-dot"></span>Fault</span>`:""].join(""),i=r.auto?`<label class="sw" data-act="toggle" data-var="${P(r.auto)}" ${o({kind:"on",v:r.auto})}><span class="sw-track"><span class="sw-knob"></span></span><span class="sw-lbl">Automatic</span><span class="sw-state"><span class="s-on">AUTO</span><span class="s-off">MANUAL</span></span></label>`:"",c=(d,f,m)=>f?`<button class="btn tone-${m}" data-act="tap" data-var="${P(f)}" ${o({kind:"on",v:f})}>${d}</button>`:"",a=[c("Start",r.start,"ok"),c("Stop",r.stop,"alarm"),c("Open",r.open,"ok"),c("Close",r.close,"alarm"),c("Reset",r.reset,"warn")].join(""),l=(r.values??[]).map(d=>`<div class="fp-row"><span>${P(d.label)}</span><b ${o({kind:"text",v:d.value,decimals:d.decimals,unit:d.unit})}>\u2013</b></div>`).join(""),u=r.setpoint,p=u?`<div class="fp-sp"><div class="fp-row"><span>${P(u.label??"Setpoint")}</span></div><div class="sp" data-var="${P(u.variable)}" data-min="${u.min}" data-max="${u.max}" data-step="${u.step??1}" ${o({kind:"setpoint",v:u.variable,decimals:1})}><div class="sp-row"><button class="sp-btn" data-step="-1">\u2212</button><div class="sp-val"><span class="sp-num" ${o({kind:"text",v:u.variable,decimals:1})}>\u2013</span><span class="sp-unit">${P(u.unit??"")}</span></div><button class="sp-btn" data-step="1">+</button></div><input class="sp-range" type="range" min="${u.min}" max="${u.max}" step="${u.step??1}"></div></div>`:"";return`<div class="fp" id="${e}" hidden><div class="fp-card"><div class="fp-head"><div class="fp-title">${P(r.title??t)}</div><button class="fp-x" data-close>\xD7</button></div>${s?`<div class="fp-status">${s}</div>`:""}${i}${a?`<div class="btns fp-btns">${a}</div>`:""}${l}${p}</div></div>`}function Lr(e){return e??"accent"}function ol(e,t,r,n,o,s){let i=t.h-(e.title?44:20);switch(e.type){case"value":{let c=Math.max(22,Math.min(64,i*(e.trend?.36:.55),t.w/6)),a=e.trend?`<svg class="spark" viewBox="0 0 200 40" preserveAspectRatio="none" ${r({kind:"spark",v:e.value})}><path class="spark-fill"/><path class="spark-line"/></svg>`:"";return`<div class="v-wrap"><div class="v-num" style="font-size:${g(c)}px" ${r({kind:"text",v:e.value,decimals:e.decimals,bands:e.bands})}>\u2013</div>${e.unit?`<div class="v-unit">${P(e.unit)}</div>`:""}</div>${a}`}case"gauge":{let c=Math.min(t.w-24,i*1.25),a=80,l=sl(100,100,a,-120,120),u=g(240/360*2*Math.PI*a),p=Array.from({length:11},(d,f)=>{let m=(-120+f*24)*Math.PI/180,x=f%5===0?62:66;return`<line x1="${g(100+x*Math.sin(m))}" y1="${g(100-x*Math.cos(m))}" x2="${g(100+70*Math.sin(m))}" y2="${g(100-70*Math.cos(m))}"/>`}).join("");return`<svg class="gauge" style="width:${g(c)}px;height:${g(c*.86)}px;--len:${u}" viewBox="0 0 200 172" ${r({kind:"level",v:e.value,min:e.min,max:e.max,bands:e.bands})}>
|
|
95
|
+
<path class="g-track" d="${l}"/><path class="g-val" d="${l}" style="stroke-dasharray:${u};"/><g class="g-ticks">${p}</g>
|
|
96
|
+
<text x="100" y="104" class="g-num" ${r({kind:"text",v:e.value,decimals:e.decimals,bands:e.bands})}>\u2013</text>
|
|
97
|
+
<text x="100" y="128" class="g-unit">${P(e.unit??"")}</text>
|
|
98
|
+
<text x="${g(100-a*Math.sin(120*Math.PI/180))}" y="166" class="g-lim">${e.min}</text><text x="${g(100+a*Math.sin(120*Math.PI/180))}" y="166" class="g-lim">${e.max}</text></svg>`}case"bar":{let c=r({kind:"level",v:e.value,min:e.min,max:e.max,bands:e.bands});return`<div class="bar-wrap${e.vertical?" vert":""}"><div class="bar" ${c}><div class="bar-fill"></div></div><div class="bar-read"><span class="bar-num" ${r({kind:"text",v:e.value,decimals:1,bands:e.bands})}>\u2013</span> <span class="bar-unit">${P(e.unit??"")}</span><span class="bar-lim">${e.min} \u2013 ${e.max}</span></div></div>`}case"status":return`<ul class="status">${e.items.map(c=>`<li class="led tone-${Lr(c.tone??"ok")}" ${r({kind:"on",v:c.on,invert:c.invert})}><span class="led-dot"></span><span>${P(c.label)}</span></li>`).join("")}</ul>`;case"buttons":return`<div class="btns${e.items.length>2&&t.w<360?" col":""}">${e.items.map(c=>`<button class="btn tone-${Lr(c.tone??(/stop|reset|off/i.test(c.label)?"alarm":"accent"))}" data-act="${c.action}" data-var="${P(c.variable)}" ${c.action==="tap"||c.action==="toggle"?r({kind:"on",v:c.variable}):""}>${P(c.label)}</button>`).join("")}</div>`;case"switch":return`<label class="sw" data-act="toggle" data-var="${P(e.variable)}" ${r({kind:"on",v:e.variable})}><span class="sw-track"><span class="sw-knob"></span></span><span class="sw-lbl">${P(e.label??"")}</span><span class="sw-state"><span class="s-on">ON</span><span class="s-off">OFF</span></span></label>`;case"setpoint":{let c=e.step!==void 0&&!Number.isInteger(e.step)?String(e.step).split(".")[1].length:0;return`<div class="sp" data-var="${P(e.variable)}" data-min="${e.min}" data-max="${e.max}" data-step="${e.step??1}" ${r({kind:"setpoint",v:e.variable,decimals:c})}>
|
|
99
|
+
<div class="sp-row"><button class="sp-btn" data-step="-1">\u2212</button><div class="sp-val"><span class="sp-num" ${r({kind:"text",v:e.variable,decimals:c})}>\u2013</span><span class="sp-unit">${P(e.unit??"")}</span></div><button class="sp-btn" data-step="1">+</button></div>
|
|
100
|
+
<input class="sp-range" type="range" min="${e.min}" max="${e.max}" step="${e.step??1}"><div class="sp-lim"><span>${e.min}</span><span>${e.max}</span></div></div>`}case"trend":{let c=e.series.map((u,p)=>`<path class="tr-line" style="stroke:${St[p%St.length]}"/>`).join(""),a=e.series.map((u,p)=>`<span><i style="background:${St[p%St.length]}"></i>${P(u.label??u.value.split(".").pop())}</span>`).join(""),l=[.25,.5,.75].map(u=>`<line x1="0" x2="600" y1="${200*u}" y2="${200*u}"/>`).join("");return`<div class="tr-legend">${a}</div><svg class="trend" viewBox="0 0 600 200" preserveAspectRatio="none" ${r({kind:"trend",series:e.series.map(u=>u.value),min:e.min,max:e.max,seconds:e.seconds})}><g class="tr-grid">${l}</g>${c}</svg><div class="tr-axis"><span>\u2212${e.seconds} s</span><span class="tr-range"><span class="tr-min"></span> \u2013 <span class="tr-max"></span></span><span>now</span></div>`}case"alarms":return`<ul class="alarms">${e.items.map(c=>`<li class="al sev-${c.severity}" ${r({kind:"alarm",v:c.active})}><span class="al-badge">${c.severity==="info"?"INFO":c.severity==="warning"?"WARN":"ALARM"}</span><span class="al-text">${P(c.text)}</span><span class="al-st"></span><button class="al-ack" data-ack="${P(c.active)}">ACK</button></li>`).join("")}<li class="al-none">No active alarms</li></ul>`;case"text":return`<div class="txt">${P(e.text).replace(/\n/g,"<br>")}</div>`;case"process":{let a=g(100*Math.max(60,i)/Math.max(60,t.w-24)),l=a/100,u=dc(e.items,l,s).sort((p,d)=>(p.type==="pipe"?-1:0)-(d.type==="pipe"?-1:0));return`<svg class="proc" viewBox="0 0 100 ${a}" preserveAspectRatio="xMidYMid meet">${u.map(p=>al(p,l,r,n,o,s)).join("")}</svg>`}}}function sl(e,t,r,n,o){let s=u=>[e+r*Math.sin(u*Math.PI/180),t-r*Math.cos(u*Math.PI/180)].map(g),[i,c]=s(n),[a,l]=s(o);return`M${i} ${c} A${r} ${r} 0 ${o-n>180?1:0} 1 ${a} ${l}`}var il=`<defs>
|
|
17
101
|
<linearGradient id="gShell" x1="0" x2="1"><stop offset="0" stop-color="var(--shell-a)"/><stop offset=".5" stop-color="var(--shell-b)"/><stop offset="1" stop-color="var(--shell-a)"/></linearGradient>
|
|
18
102
|
<linearGradient id="gLiquid" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="var(--liq-a)"/><stop offset="1" stop-color="var(--liq-b)"/></linearGradient>
|
|
19
103
|
<radialGradient id="gHub" cx=".35" cy=".35" r=".8"><stop offset="0" stop-color="var(--hub-a)"/><stop offset="1" stop-color="var(--hub-b)"/></radialGradient>
|
|
20
104
|
<filter id="fGlow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="1.2" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
|
21
|
-
</defs>`;function
|
|
22
|
-
<clipPath id="${
|
|
23
|
-
<rect class="tank-shell" x="${
|
|
24
|
-
<g clip-path="url(#${
|
|
25
|
-
<rect class="tank-gloss" x="${a
|
|
26
|
-
<g class="tank-ticks">${
|
|
27
|
-
<text class="tank-num" x="${a
|
|
28
|
-
${
|
|
29
|
-
<circle class="pump-ring" cx="${
|
|
30
|
-
<g transform="translate(${
|
|
31
|
-
${
|
|
105
|
+
</defs>`;function cl(e,t,r,n=0){let{w:o,h:s}=wt(t,r);return`<g${n?` transform="rotate(${n})"`:""}><svg x="${g(-o/2)}" y="${g(-s/2)}" width="${g(o)}" height="${g(s)}" viewBox="0 0 ${t.viewBox[0]} ${t.viewBox[1]}" overflow="visible">${uc(t.svg,`sym-${e}`)}</svg></g>`}function al(e,t,r,n,o,s){let i=a=>g(a*t),c=(a,l,u)=>u?`<text class="p-label" x="${g(a)}" y="${i(l)}">${P(u)}</text>`:"";switch(e.type){case"symbol":{let a=zt(s,e.symbol);if(!a)return"";let[l,u]=a,p=Mr(u,e,t),d=e.faceplate?`class="clickable" ${o(e.label??l,e.faceplate,{running:e.on,fault:e.fault})}`:"";return`<g ${e.fault?r({kind:"fault",v:e.fault}):""} ${d}><g class="sym sym-${P(l)}" ${e.on?r({kind:"on",v:e.on}):""}><g transform="translate(${g(e.x)} ${i(e.y)})">${cl(l,u,e.size,e.rotate??0)}</g></g>${c(e.x,p.y1+2.6/t,e.label)}</g>`}case"pipe":{let a=(e.points??[]).map(([l,u],p)=>`${p?"L":"M"}${g(l)} ${i(u)}`).join(" ");return`<g class="pipe" ${e.flow?r({kind:"on",v:e.flow}):""}><path class="pipe-outer" d="${a}"/><path class="pipe-inner" d="${a}"/><path class="pipe-flow" d="${a}"/></g>`}case"tank":{let a=g(e.x),l=i(e.y),u=g(e.w),p=i(e.h),d=n("tk"),f=[.25,.5,.75].map(m=>`<line x1="${g(a+u-2.2)}" x2="${g(a+u-.8)}" y1="${g(l+p*(1-m))}" y2="${g(l+p*(1-m))}"/>`).join("");return`<g class="tank" ${r({kind:"level",v:e.level,min:0,max:e.max,bands:e.bands})}>
|
|
106
|
+
<clipPath id="${d}"><rect x="${a}" y="${l}" width="${u}" height="${p}" rx="${g(Math.min(u,p)*.12)}"/></clipPath>
|
|
107
|
+
<rect class="tank-shell" x="${a}" y="${l}" width="${u}" height="${p}" rx="${g(Math.min(u,p)*.12)}"/>
|
|
108
|
+
<g clip-path="url(#${d})"><g class="tank-liq" style="transform-origin:${a}px ${g(l+p)}px"><rect x="${a}" y="${l}" width="${u}" height="${p}" fill="url(#gLiquid)"/><path class="tank-wave" d="M${a} ${g(l+1)} q ${g(u/8)} -1.2 ${g(u/4)} 0 t ${g(u/4)} 0 t ${g(u/4)} 0 t ${g(u/4)} 0 t ${g(u/4)} 0 V ${g(l+3)} H ${a} Z"/></g></g>
|
|
109
|
+
<rect class="tank-gloss" x="${g(a+u*.1)}" y="${g(l+p*.05)}" width="${g(u*.12)}" height="${g(p*.9)}" rx="${g(u*.06)}"/>
|
|
110
|
+
<g class="tank-ticks">${f}</g>
|
|
111
|
+
<text class="tank-num" x="${g(a+u/2)}" y="${g(l+p/2+1.5)}" ${r({kind:"text",v:e.level,decimals:0,unit:e.unit})}>\u2013</text>
|
|
112
|
+
${c(a+u/2,e.y+e.h+2.8/t,e.label)}</g>`}case"pump":{let a=e.size,l=g(e.x),u=i(e.y),p=g(a/2),d=[0,60,120,180,240,300].map(f=>`<path d="M0 0 Q ${g(p*.3)} ${g(-p*.25)} ${g(p*.12)} ${g(-p*.62)}" transform="rotate(${f})"/>`).join("");return`<g ${e.fault?r({kind:"fault",v:e.fault}):""} ${e.faceplate?`class="clickable" ${o(e.label??"Pump",e.faceplate,{running:e.running,fault:e.fault})}`:""}><g class="pump" ${r({kind:"on",v:e.running})}>
|
|
113
|
+
<circle class="pump-ring" cx="${l}" cy="${u}" r="${p}"/><circle class="pump-body" cx="${l}" cy="${u}" r="${g(p*.86)}" fill="url(#gHub)"/>
|
|
114
|
+
<g transform="translate(${l} ${u})"><g class="pump-imp">${d}<circle r="${g(p*.14)}" class="pump-hub"/></g></g>
|
|
115
|
+
${c(e.x,e.y+(a/2+2.6)/t,e.label)}</g></g>`}case"fan":{let a=e.size,l=g(e.x),u=i(e.y),p=g(a/2),d=[0,120,240].map(f=>`<path d="M0 0 C ${g(p*.5)} ${g(-p*.2)} ${g(p*.55)} ${g(-p*.8)} 0 ${g(-p*.86)} C ${g(-p*.2)} ${g(-p*.6)} ${g(-p*.1)} ${g(-p*.2)} 0 0Z" transform="rotate(${f})"/>`).join("");return`<g class="pump fan${e.faceplate?" clickable":""}" ${r({kind:"on",v:e.running})} ${e.faceplate?o(e.label??"Fan",e.faceplate,{running:e.running}):""}><circle class="pump-ring" cx="${l}" cy="${u}" r="${p}"/><circle class="pump-body" cx="${l}" cy="${u}" r="${g(p*.9)}" fill="url(#gHub)"/><g transform="translate(${l} ${u})"><g class="pump-imp">${d}<circle r="${g(p*.12)}" class="pump-hub"/></g></g>${c(e.x,e.y+(a/2+2.6)/t,e.label)}</g>`}case"valve":{let a=e.size,l=g(e.x),u=i(e.y),p=g(a/2),d=`<path class="valve-body" d="M${g(-p)} ${g(-p*.7)} L${p} ${g(p*.7)} L${p} ${g(-p*.7)} L${g(-p)} ${g(p*.7)} Z"/><line class="valve-stem" x1="0" y1="0" x2="0" y2="${g(-p*1.1)}"/><rect class="valve-act" x="${g(-p*.5)}" y="${g(-p*1.5)}" width="${p}" height="${g(p*.45)}" rx="${g(p*.1)}"/>`;return`<g class="valve${e.faceplate?" clickable":""}" ${r({kind:"on",v:e.open})} ${e.faceplate?o(e.label??"Valve",e.faceplate,{open:e.open}):""}><g transform="translate(${l} ${u})${e.vertical?" rotate(90)":""}">${d}</g>${e.label?e.vertical?`<text class="p-label left" x="${g(e.x+a*.75)}" y="${g(u+.6)}">${P(e.label)}</text>`:c(e.x,e.y+(a/2+2.6)/t,e.label):""}</g>`}case"sensor":{let a=g(e.x),l=i(e.y);return`<g class="sensor"><rect class="sen-box" x="${g(a-6.5)}" y="${g(l-2.1)}" width="13" height="4.2" rx="2.1"/><text class="sen-num" x="${a}" y="${g(l+.75)}" ${r({kind:"text",v:e.value,decimals:e.decimals??1,unit:e.unit})}>\u2013</text>${e.label?`<text class="sen-tag" x="${a}" y="${g(l-3)}">${P(e.label)}</text>`:""}</g>`}case"lamp":{let a=g(e.x),l=i(e.y);return`<g class="plamp tone-${Lr(e.tone??"ok")}" ${r({kind:"on",v:e.on})}><circle class="pl-halo" cx="${a}" cy="${l}" r="2.2"/><circle class="pl-dot" cx="${a}" cy="${l}" r="1.3"/>${e.label?`<text class="p-label left" x="${g(a+3)}" y="${g(l+.65)}">${P(e.label)}</text>`:""}</g>`}case"junction":return`<circle class="junction" cx="${g(e.x)}" cy="${i(e.y)}" r="1.1"/>`;case"label":return`<text class="p-text" x="${g(e.x)}" y="${i(e.y)}">${P(e.text)}</text>`}}var Rr=String.raw`
|
|
32
116
|
.hmi{position:relative;overflow:hidden;font-family:"Segoe UI Variable Display","Segoe UI",Inter,system-ui,sans-serif;color:var(--fg);background:var(--bg);border-radius:18px;box-sizing:border-box;-webkit-font-smoothing:antialiased}
|
|
33
117
|
.hmi *{box-sizing:border-box}
|
|
34
118
|
.theme-dark{--bg:radial-gradient(1200px 600px at 15% -10%,#13284a 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#1c1640 0%,transparent 55%),#070d1a;--fg:#e6edf7;--muted:#8193ad;--tile:linear-gradient(160deg,rgba(30,41,64,.72),rgba(14,21,37,.78));--tile-bd:rgba(148,163,184,.13);--tile-sh:0 10px 30px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.05);--track:rgba(148,163,184,.16);--accent:#38bdf8;--ok:#22c55e;--warn:#f59e0b;--alarm:#ef4444;--neutral:#64748b;--shell-a:#1e293b;--shell-b:#334155;--liq-a:#38bdf8;--liq-b:#0369a1;--hub-a:#475569;--hub-b:#0f172a;--pipe:#334155;--pipe-in:#1e293b;--btn:rgba(148,163,184,.1)}
|
|
@@ -98,7 +182,12 @@ ${o(t.x,t.y+(s/2+2.6)/i,t.label)}</g></g>`}case"fan":{let s=t.size,r=a(t.x),l=d(
|
|
|
98
182
|
.alarms{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;overflow:hidden}
|
|
99
183
|
.al{display:none;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;font-size:12.5px;line-height:1.25;background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
|
|
100
184
|
.al.active{display:flex}.sev-alarm{--c:var(--alarm)}.sev-warning{--c:var(--warn)}.sev-info{--c:var(--accent)}
|
|
101
|
-
.sev-alarm.active{animation:blink 1.2s infinite}
|
|
185
|
+
.sev-alarm.active:not(.cleared):not(.acked){animation:blink 1.2s infinite}
|
|
186
|
+
.al-text{flex:1}.al-st{font-size:10.5px;font-weight:650;color:var(--c);letter-spacing:.03em;white-space:nowrap}
|
|
187
|
+
.al.cleared{background:transparent;border-style:dashed}.al.cleared .al-badge{background:transparent;color:var(--c);box-shadow:inset 0 0 0 1px var(--c)}
|
|
188
|
+
.al.acked .al-badge{opacity:.6}
|
|
189
|
+
.al-ack{display:none;border:1px solid var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--fg);font:700 10.5px/1 inherit;letter-spacing:.06em;padding:5px 9px;border-radius:7px;cursor:pointer}.al-ack:hover{background:color-mix(in srgb,var(--c) 35%,transparent)}
|
|
190
|
+
.al.can-ack .al-ack{display:inline-block}
|
|
102
191
|
.al-badge{font-size:10px;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:6px;background:var(--c);color:#fff}
|
|
103
192
|
.al-none{display:flex;align-items:center;gap:9px;color:var(--ok);font-size:14px}.al-none::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}
|
|
104
193
|
.alarms.has .al-none{display:none}
|
|
@@ -117,6 +206,11 @@ ${o(t.x,t.y+(s/2+2.6)/i,t.label)}</g></g>`}case"fan":{let s=t.size,r=a(t.x),l=d(
|
|
|
117
206
|
.pump-imp path{fill:none;stroke:var(--muted);stroke-width:.9;stroke-linecap:round}.fan .pump-imp path{fill:var(--muted);stroke:none;opacity:.85}.pump-hub{fill:var(--muted)}
|
|
118
207
|
.pump.on .pump-ring{stroke:var(--ok);filter:url(#fGlow)}.pump.on .pump-imp{animation:spin 1s linear infinite}.pump.on .pump-imp path{stroke:var(--ok)}.fan.on .pump-imp path{fill:var(--ok)}.pump.on .pump-hub{fill:var(--ok)}
|
|
119
208
|
.fault .pump-ring{stroke:var(--alarm);animation:blink .8s infinite}
|
|
209
|
+
.sym{--state:var(--neutral);--body:var(--shell-b);--body2:var(--shell-a);--line:var(--muted);transition:filter .3s}
|
|
210
|
+
.sym.on{--state:var(--ok);filter:drop-shadow(0 0 1px color-mix(in srgb,var(--ok) 70%,transparent))}
|
|
211
|
+
.fault .sym{--state:var(--alarm);animation:blink .8s infinite}
|
|
212
|
+
.sym .spin{transform-box:fill-box;transform-origin:center}.sym.on .spin{animation:spin 1.2s linear infinite}
|
|
213
|
+
.clickable:hover .sym{filter:drop-shadow(0 0 1.5px var(--accent))}
|
|
120
214
|
.valve-body{fill:var(--neutral);stroke:var(--tile-bd);stroke-width:.3;transition:fill .3s}.valve-stem{stroke:var(--muted);stroke-width:.6}.valve-act{fill:var(--shell-b);stroke:var(--tile-bd);stroke-width:.3}
|
|
121
215
|
.valve.on .valve-body{fill:var(--ok);filter:url(#fGlow)}
|
|
122
216
|
.sen-box{fill:rgba(2,6,23,.6);stroke:color-mix(in srgb,var(--accent) 70%,transparent);stroke-width:.22}.theme-light .sen-box{fill:#fff}
|
|
@@ -127,7 +221,7 @@ ${o(t.x,t.y+(s/2+2.6)/i,t.label)}</g></g>`}case"fan":{let s=t.size,r=a(t.x),l=d(
|
|
|
127
221
|
.small .h-title{font-size:18px}.small .h-sub{display:none}.small .h-page{padding:6px 10px;font-size:11px}.small .t-title{font-size:10px}.small .tile{padding:9px 11px}
|
|
128
222
|
.large .h-title{font-size:32px}.large .h-page{font-size:16px;padding:10px 20px}.large .t-title{font-size:14px}
|
|
129
223
|
@media (prefers-reduced-motion:reduce){.hmi *{animation:none!important;transition:none!important}}
|
|
130
|
-
`;function
|
|
224
|
+
`;function Zt(e){if(e===void 0)return;let t=e.trim();if(/^true$/i.test(t))return!0;if(/^false$/i.test(t))return!1;let r=/^[A-Z_]+#(.*)$/i.exec(t),n=r?r[1]:t;if(/^[+-]?\d+(\.\d+)?(e[+-]?\d+)?$/i.test(n))return Number(n);let o=/^(?:T|TIME|LTIME)#(.+)$/i.exec(t);if(o){let s=0;for(let i of o[1].matchAll(/(\d+(?:\.\d+)?)(ms|us|ns|d|h|m|s)/gi)){let c=Number(i[1]);s+={d:864e5,h:36e5,m:6e4,s:1e3,ms:1,us:.001,ns:1e-6}[i[2].toLowerCase()]*c}return s}return t}var Ve=e=>typeof e=="number"?e:typeof e=="boolean"?e?1:0:void 0,Ke=e=>e===!0||typeof e=="number"&&e!==0;function jr(e,t){if(typeof e=="boolean")return e?"ON":"OFF";if(typeof e=="number"){let r=t??(Number.isInteger(e)||Math.abs(e)>=100?0:Math.abs(e)>=10?1:2);return e.toLocaleString("en-US",{minimumFractionDigits:r,maximumFractionDigits:r})}return e===void 0?"\u2013":String(e)}function mc(e,t){if(e===void 0||!t?.length)return;let r;for(let n of[...t].sort((o,s)=>o.from-s.from))e>=n.from&&(r=n.tone);return r}var Ot=new Map;function hc(e,t,r,n){let o=($,b)=>{r($,b),I({[$]:b})},s=new Map;e.querySelectorAll("[data-b]").forEach($=>{let b=Number($.dataset.b);s.set(b,[...s.get(b)??[],$])});let i={},c=()=>Date.now(),a=$=>Zt(i[$]),l=$=>{let b=$.target.closest("[data-act]");if(!b||!e.contains(b))return;let v=b.dataset.var,w=b.dataset.act;if(w==="tap"){o(v,"TRUE");let z=()=>{o(v,"FALSE"),window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z)};window.addEventListener("pointerup",z),window.addEventListener("pointercancel",z)}else w==="toggle"?o(v,Ke(a(v))?"FALSE":"TRUE"):w==="set"?o(v,"TRUE"):w==="reset"&&o(v,"FALSE");$.preventDefault()},u=($,b)=>{let v=Number($.dataset.min),w=Number($.dataset.max),z=Number($.dataset.step)||1,O=Math.min(w,Math.max(v,Math.round(b/z)*z));o($.dataset.var,String(Number(O.toFixed(6))))},p=$=>{let b=$.target,v=b.closest("[data-ack]");if(v)return r(`@ack:${v.dataset.ack}`,"TRUE");let w=b.closest("[data-nav]");if(w)return n?.(w.dataset.nav);let z=b.closest("[data-open]");if(z){e.querySelector(`#${z.getAttribute("data-open")}`)?.removeAttribute("hidden");return}if(b.closest("[data-close]")||b.classList.contains("fp")){b.closest(".fp")?.setAttribute("hidden","");return}let O=b.closest(".sp-btn");if(!O)return;let M=O.closest(".sp"),L=Ve(a(M.dataset.var))??Number(M.dataset.min);u(M,L+Number(O.dataset.step)*(Number(M.dataset.step)||1))},d=$=>{let b=$.target;b.classList.contains("sp-range")&&u(b.closest(".sp"),Number(b.value))};e.addEventListener("pointerdown",l),e.addEventListener("click",p),e.addEventListener("change",d);let f=e.querySelector("[data-clock]"),m=()=>f&&(f.textContent=new Date().toLocaleTimeString("en-GB"));m();let x=setInterval(m,1e3);function _($,b,v,w,z,O,M){let L=$.viewBox.baseVal,Ge=c(),ue=Ge-w*1e3,Et=v.flat().filter(ke=>ke.t>=ue).map(ke=>ke.v),oe=z??Math.min(...Et),le=O??Math.max(...Et);if(!Et.length)return{min:0,max:0};le-oe<1e-9&&(oe-=1,le+=1);let Fr=(le-oe)*.08;return z===void 0&&(oe-=Fr),O===void 0&&(le+=Fr),v.forEach((ke,Ur)=>{let At=ke.filter(pe=>pe.t>=ue).map((pe,vc)=>`${vc?"L":"M"}${((pe.t-ue)/(Ge-ue)*L.width).toFixed(1)} ${(L.height-(pe.v-oe)/(le-oe)*L.height).toFixed(1)}`).join(" ");b[Ur]?.setAttribute("d",At),M&&Ur===0&&At&&M.setAttribute("d",`${At} L${L.width} ${L.height} L0 ${L.height} Z`.replace(/^M[\d.]+/,pe=>pe))}),{min:oe,max:le}}let y;function I($,b=y){y=b,i={...i,...$};let v=c();for(let[z,O]of Object.entries($)){let M=Ve(Zt(O));if(M===void 0)continue;let L=Ot.get(z)??[];for(L.push({t:v,v:M});L.length&&L[0].t<v-36e5;)L.shift();Ot.set(z,L)}s.forEach((z,O)=>{let M=t[O];if(M)for(let L of z)F(L,M)}),e.querySelectorAll(".alarms").forEach(z=>z.classList.toggle("has",!!z.querySelector(".al.active")));let w=e.querySelector("[data-sim]");if(w){let z=b?.state,O=z==="run";w.classList.toggle("run",O),w.classList.toggle("stop",!!z&&!O),w.querySelector(".lbl").textContent=O?"Simulation running":z?`Simulation ${z}`:"Offline"}}function F($,b){switch(b.kind){case"text":{let v="v"in b?a(b.v):void 0;$.textContent=jr(v,b.decimals)+(b.unit&&v!==void 0?` ${b.unit}`:"");let w=mc(Ve(v),b.bands);w?$.dataset.tone=w:delete $.dataset.tone;break}case"on":$.classList.toggle("on",Ke(a(b.v))!==!!b.invert);break;case"fault":$.classList.toggle("fault",Ke(a(b.v)));break;case"alarm":{let v=i[`@alarm:${b.v}`],w=Ke(a(b.v)),z=w||v==="active"||v==="acknowledged"||v==="waiting"||v==="unacknowledged";$.classList.toggle("active",z),$.classList.toggle("cleared",z&&!w&&v!==void 0),$.classList.toggle("acked",v==="acknowledged"),$.classList.toggle("can-ack",v==="active"||v==="waiting"||v==="unacknowledged");let O=$.querySelector(".al-st");O&&(O.textContent=v==="waiting"?"cleared \xB7 confirm":v==="unacknowledged"?"cleared \xB7 acknowledge":v==="acknowledged"?"acknowledged":"");break}case"count":{let v=M=>Ke(a(M))||["waiting","unacknowledged"].includes(i[`@alarm:${M}`]??""),w=b.vars.filter(v).length;$.classList.toggle("on",w>0);let z=$.querySelector(".n");z&&(z.textContent=String(w));let O=$.querySelector(".lbl");O&&(O.textContent=w===1?"alarm":"alarms");break}case"level":{let v=Ve(a(b.v)),w=v===void 0?0:Math.min(1,Math.max(0,(v-b.min)/(b.max-b.min||1)));$.style.setProperty("--p",w.toFixed(4));let z=mc(v,b.bands);z?$.dataset.tone=z:delete $.dataset.tone;break}case"setpoint":{let v=$.querySelector(".sp-range"),w=Ve(a(b.v));v&&w!==void 0&&document.activeElement!==v&&(v.value=String(w));break}case"spark":{let v=$;_(v,[v.querySelector(".spark-line")],[Ot.get(b.v)??[]],60,void 0,void 0,v.querySelector(".spark-fill"));break}case"trend":{let v=$,w=_(v,[...v.querySelectorAll(".tr-line")],b.series.map(O=>Ot.get(O)??[]),b.seconds,b.min,b.max),z=v.parentElement?.querySelector(".tr-axis");z&&(z.querySelector(".tr-max").textContent=jr(w.max),z.querySelector(".tr-min").textContent=jr(w.min));break}}}return{update:I,destroy(){clearInterval(x),e.removeEventListener("pointerdown",l),e.removeEventListener("click",p),e.removeEventListener("change",d)}}}function gc(e,t,r=60){let n=Date.now(),o=Date.now;for(let s=30;s>=1;s--){let i=n-s*r*1e3/30;Date.now=()=>i;let c={};for(let[a,l]of Object.entries(t)){let u=Zt(l);c[a]=typeof u=="number"?String(u*(1+.08*Math.sin(s/3)+.03*Math.cos(s*1.7))):l}e.update(c)}Date.now=o,e.update(t)}var ul=`
|
|
131
225
|
html,body{margin:0;height:100%;background:#05080f;overflow:hidden}
|
|
132
226
|
#stage{position:absolute;left:50%;top:50%;transform-origin:0 0}
|
|
133
227
|
#tabs{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:6px;padding:5px;border-radius:999px;background:rgba(15,23,42,.75);border:1px solid rgba(148,163,184,.18);backdrop-filter:blur(10px);font:600 13px "Segoe UI",system-ui,sans-serif;z-index:5}
|
|
@@ -135,4 +229,4 @@ html,body{margin:0;height:100%;background:#05080f;overflow:hidden}
|
|
|
135
229
|
#tabs button{border:0;border-radius:999px;padding:7px 16px;background:transparent;color:#94a3b8;font:inherit;cursor:pointer}
|
|
136
230
|
#tabs button.cur{background:#38bdf8;color:#04121f}
|
|
137
231
|
#banner{position:fixed;left:50%;top:14px;transform:translateX(-50%);padding:9px 16px;border-radius:10px;background:#7f1d1d;color:#fff;font:500 13px "Segoe UI",system-ui,sans-serif;z-index:6}
|
|
138
|
-
`;function
|
|
232
|
+
`;function ll(e){let t=document.createElement("style");t.textContent=e,document.head.appendChild(t)}var xc;function bc(e,t,r,n={},o){let s=fc(t,n);return e.innerHTML=s.html,xc=t,hc(e.firstElementChild,s.bindings,r,o)}function Dr(e,t){if(t){e.style.left="0",e.style.top="0";return}let r=Pt(xc??{}),n=Math.min(innerWidth/r.w,innerHeight/r.h)*.98;e.style.left="50%",e.style.top="50%",e.style.transform=`translate(-50%,-50%) scale(${n})`,e.style.transformOrigin="center"}async function pl(e){let t=new URLSearchParams(location.search),r=t.get("t")??"",n=t.get("s")??void 0,o=document.getElementById("tabs"),s=document.getElementById("banner"),i=async(p,d)=>{let f=await fetch("/call",{method:"POST",headers:{"content-type":"application/json","x-viewer-token":r},body:JSON.stringify({name:p,arguments:d})});if(!f.ok)throw new Error(f.status===403?"This link is out of date: ask Claude to open the HMI again.":await f.text());let m=await f.json(),x=m.content?.[0]?.text??"{}";if(m.isError)throw new Error(x);return JSON.parse(x)},c=p=>{s.hidden=!p,s.textContent=p??""},a="",l,u=(p,d)=>{i("ui_hmi_write",{variable:p,value:d}).then(f=>c(f.ok===!1?String(f.message):void 0),f=>c(f.message))};for(;;){try{let p=await i("get_hmi",{screen:n});if(c(p.screen?void 0:"No HMI screens in this project yet: ask Claude to make one."),o.innerHTML="",p.screens.length>1&&p.screens.map(d=>`<button data-s="${d.name}" class="${d.name===p.screen?.name?"cur":""}">${d.title.replace(/[<&]/g,"")}</button>`).join(""),p.screen){let d=JSON.stringify([p.screen,p.screens,p.alarms,p.symbols]);if(d!==a){l?.destroy();let f=m=>{n=m,history.replaceState(null,"",`?t=${encodeURIComponent(r)}&s=${encodeURIComponent(m)}`),a=""};l=bc(e,p.screen,u,{pages:p.screens,alarms:p.alarms,symbols:p.symbols},f),a=d,document.title=p.screen.title,Dr(e,!1)}l.update(p.values??{},p.sim)}}catch(p){c(p.message.includes("fetch")?"The CODESYS MCP server isn't answering; this page reconnects by itself.":p.message)}await new Promise(p=>setTimeout(p,300)),o.onclick=p=>{let d=p.target.closest("button");d&&(n=d.dataset.s,history.replaceState(null,"",`?t=${encodeURIComponent(r)}&s=${encodeURIComponent(n??"")}`))}}}ll(Rr+ul);var It=document.getElementById("stage"),$e=window.HMI_STATIC;if($e){Dr(It,!0);let e=bc(It,$e.screen,()=>{},$e.page??{});gc(e,$e.values),e.update($e.values,$e.sim),document.body.dataset.ready="1"}else addEventListener("resize",()=>Dr(It,!1)),pl(It);})();
|