ziex 0.1.0-dev.1466 → 0.1.0-dev.1568

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/wasm/init.js CHANGED
@@ -1,3 +1,3 @@
1
- var W={nan:0,null:1,true:2,false:3,undefined:4,globalThis:5,runtime:6},Ce=6,pe=new TextEncoder,Ie=new TextDecoder("utf-8"),U=class{constructor(){this.values=[NaN,null,!0,!1,void 0,globalThis,this];this.idPool=[]}importObject(){return{"zig-js":{valueGet:this.valueGet.bind(this),valueSet:this.valueSet.bind(this),valueDeinit:this.valueDeinit.bind(this),valueObjectCreate:this.valueObjectCreate.bind(this),valueStringCreate:this.valueStringCreate.bind(this),valueStringLen:this.valueStringLen.bind(this),valueStringCopy:this.valueStringCopy.bind(this),valueNew:this.valueNew.bind(this),funcApply:this.funcApply.bind(this)}}}valueGet(e,t,n,o){let r=this.loadValue(t);if(r==null||typeof r!="object"&&typeof r!="function"){this.storeValue(e,void 0);return}let s=this.loadString(n,o),c=Reflect.get(r,s);this.storeValue(e,c)}valueSet(e,t,n,o){let r=this.loadValue(e),s=this.loadString(t,n),c=this.loadRef(o);Reflect.set(r,s,c)}valueDeinit(e){e>Ce&&(this.values[e]=null,this.idPool.push(e))}valueObjectCreate(e){this.storeValue(e,new Object)}valueStringCreate(e,t,n){let o=this.loadString(t,n);this.storeValue(e,o)}valueStringLen(e){let t=this.loadValue(e);return pe.encode(t).byteLength}valueStringCopy(e,t,n){if(this.memory==null)return;let o=t>>>0,r=n>>>0,s=this.loadValue(e);if(typeof s!="string")return;let c=pe.encode(s);if(c.byteLength>r||c.length===0)return;let m=this.memory.buffer;o+c.length>m.byteLength||new Uint8Array(m,o,c.length).set(c)}valueNew(e,t,n,o){let r=this.loadValue(t),s=[],c=n>>>0,m=o>>>0;for(let u=0;u<m;u++)s.push(this.loadRef(c+u*8));let a=Reflect.construct(r,s);this.storeValue(e,a)}funcApply(e,t,n,o,r){let s=this.loadValue(t),c=this.loadRef(n>>>0),m=[],a=o>>>0,u=r>>>0;for(let l=0;l<u;l++)m.push(this.loadRef(a+l*8));if(typeof s!="function"){this.storeValue(e,void 0);return}try{let l=Reflect.apply(s,c,m);this.storeValue(e,l)}catch{this.storeValue(e,void 0)}}loadValue(e){return this.values[e]}deleteValue(e){let t=this.values[e];return this.valueDeinit(e),t}loadRef(e){if(this.memory==null)return;let t=e>>>0,o=new DataView(this.memory.buffer).getFloat64(t,!0);if(!isNaN(o))return o;let r=this.loadRefId(t);return this.values[r]}loadRefId(e){return this.memory==null?0:new DataView(this.memory.buffer).getUint32(e>>>0,!0)}storeValue(e,t){if(this.memory==null)return;let n=new DataView(this.memory.buffer);if(e=e>>>0,typeof t=="number"){isNaN(t)?(n.setUint32(e,W.nan,!0),n.setUint32(e+4,2146959360,!0)):n.setFloat64(e,t,!0);return}if(t===null){n.setUint32(e,W.null,!0),n.setUint32(e+4,2146959360,!0);return}if(t===void 0){n.setUint32(e,W.undefined,!0),n.setUint32(e+4,2146959360,!0);return}if(typeof t=="boolean"){n.setUint32(e,t?W.true:W.false,!0),n.setUint32(e+4,2146959360,!0);return}if(typeof t=="bigint"){n.setFloat64(e,Number(t),!0);return}let o=this.idPool.pop();o===void 0&&(o=this.values.length),this.values[o]=t;let r=0;switch(typeof t){case"object":r=1;break;case"string":r=2;break;case"symbol":r=3;break;case"function":r=4;break}n.setUint32(e,Number(o),!0),n.setUint32(e+4,2146959360|r,!0)}loadString(e,t){if(this.memory==null)return"";let n=e>>>0,o=Number(t)>>>0,r=this.memory.buffer;if(o===0||n+o>r.byteLength)return"";let c=new Uint8ClampedArray(r,n,o).slice();return Ie.decode(c)}};function H(i){let e=new TextEncoder,t=new TextDecoder;function n(a,u){return t.decode(new Uint8Array(i().buffer,a,u))}function o(a,u,l){return l.length>u?-2:(new Uint8Array(i().buffer,a,l.length).set(l),l.length)}function r(a,u){return new Uint8Array(i().buffer,a,u)}function s(a){let u={};try{u=JSON.parse(a)}catch{for(let l of a.split(`
2
- `)){let b=l.indexOf(":");b>0&&(u[l.slice(0,b)]=l.slice(b+1))}}return u}async function c(a,u,l,b,g,f,p,h,v,k,d,y){let x=n(a,u),$=b>0?n(l,b):"GET",Ee=f>0?n(g,f):"{}",De=h>0?r(p,h):void 0,de=s(Ee),fe=new AbortController,K=v>0?setTimeout(()=>fe.abort(),v):null;try{let C=await fetch(x,{method:$,headers:Object.keys(de).length>0?de:void 0,body:$!=="GET"&&$!=="HEAD"?De:void 0,signal:fe.signal});K&&clearTimeout(K),new DataView(i().buffer).setUint16(k,C.status,!0);let Q=new Uint8Array(await C.arrayBuffer());return o(d,y,Q)}catch(C){K&&clearTimeout(K);let Q=C instanceof Error?C.message:String(C);return console.error(`wasm fetch failed: ${x} (${Q})`),-1}}let m=WebAssembly.Suspending;return typeof m!="function"?{fetch:(a,u,l,b,g,f,p,h,v,k,d,y)=>-1}:{fetch:new m(c)}}var _=new U,ie=new ArrayBuffer(8),N=new DataView(ie);function ae(i){let e=_.memory;return _.memory={buffer:ie},_.storeValue(0,i),_.memory=e,N.getBigUint64(0,!0)}function M(i){N.setBigUint64(0,i,!0);let e=_.memory;_.memory={buffer:ie};let t=_.loadRef(0);return _.memory=e,t}function j(i){if(N.setBigUint64(0,i,!0),!Number.isNaN(N.getFloat64(0,!0)))return;let e=N.getUint32(0,!0);e>6&&_.deleteValue(e)}var F=new TextDecoder,A=new TextEncoder,ye=null,ge=null;function S(){let i=_.memory.buffer;return i!==ge&&(ge=i,ye=new Uint8Array(i)),ye}function w(i,e){let t=i>>>0,n=e>>>0;if(n===0)return"";let o=S();return t+n>o.byteLength?"":F.decode(o.subarray(t,t+n))}function B(i,e){let t=i>>>0,n=S();t+e.length>n.byteLength||n.set(e,t)}function G(i){if(!i)return;let e=WebAssembly.promising;return typeof e!="function"?i:e(i)}function R(i,...e){if(!i)return;let t=i(...e);t&&typeof t.then=="function"&&t.then(void 0,n=>{console.error(n)})}var I=class i{#e=new Map;#t;constructor(e){this._alloc=e.__zx_alloc,this.#t=G(e.__zx_cb),this.#t||console.warn("__zx_cb not exported from WASM"),e.memory&&(_.memory=e.memory)}_invoke(e,t,n=0n,o=0n,r=0n){let s=this.#t;if(!s){console.warn("__zx_cb not exported from WASM");return}R(s,e,t,n,o,r)}fetchAsync(e,t,n,o,r,s,c,m,a,u){let l=w(e,t),b=o>0?w(n,o):"GET",g=s>0?w(r,s):"{}",f=m>0?S().subarray(c,c+m):void 0,p={};try{p=JSON.parse(g)}catch{for(let d of g.split(`
3
- `)){let y=d.indexOf(":");y>0&&(p[d.slice(0,y)]=d.slice(y+1))}}let h=new AbortController,v=a>0?setTimeout(()=>h.abort(),a):null,k={method:b,headers:Object.keys(p).length>0?p:void 0,body:b!=="GET"&&b!=="HEAD"?f:void 0,signal:h.signal};fetch(l,k).then(async d=>{v&&clearTimeout(v);let y=new Uint8Array(await d.arrayBuffer());this._notifyFetchComplete(u,d.status,y,!1)}).catch(d=>{v&&clearTimeout(v);let x=d.name==="AbortError"?"Request timeout":d.message??"Fetch failed";this._notifyFetchComplete(u,0,x,!0)})}_notifyFetchComplete(e,t,n,o){let r=typeof n=="string"?A.encode(n):n,s=this._alloc(r.length)>>>0;if(!s&&r.length>0)return;B(s,r);let c=o?2:1;this._invoke(c,e,BigInt(t),BigInt(s),BigInt(r.length))}setTimeout(e,t){setTimeout(()=>{this._invoke(3,e)},t)}setInterval(e,t){let n=setInterval(()=>{this._invoke(4,e)},t);this.#e.set(e,n)}clearInterval(e){let t=this.#e.get(e);t!==void 0&&(clearInterval(t),this.#e.delete(e))}dispose(){for(let e of this.#e.values())clearInterval(e);this.#e.clear()}_writeStringToWasm(e){return this.writeBytesToWasm(A.encode(e))}writeBytesToWasm(e){if(e.length===0)return[0,0];let t=this._alloc(e.length)>>>0;return t?(B(t,e),[t,e.length]):[0,0]}static log(e,t,n){let o=t>>>0,r=n>>>0,s=S();if(o+r>s.byteLength)return;let c=F.decode(s.subarray(o,o+r));switch(e){case 0:console.error(c);break;case 1:console.warn(c);break;case 3:console.debug(c);break;default:console.log(c);break}}static createImportObject(e){return{..._.importObject(),__zx_net:H(()=>{if(!_.memory)throw new Error("WASM memory is not ready");return _.memory}),__zx:{_log:(t,n,o)=>i.log(t,n,o),_fetchAsync:(t,n,o,r,s,c,m,a,u,l)=>{e[0]?.fetchAsync(t,n,o,r,s,c,m,a,u,l)},_setTimeout:(t,n)=>{e[0]?.setTimeout(t,n)},_setInterval:(t,n)=>{e[0]?.setInterval(t,n)},_clearInterval:t=>{e[0]?.clearInterval(t)}}}}};function L(i,e,t,n){if(n.length===0)return new DataView(i().buffer).setUint32(t,0,!0),0;let o=e[0];if(!o)return-1;let r=o(n.length)>>>0;if(!r)return-1;let s=i().buffer;return r+n.length>s.byteLength?-1:(new Uint8Array(s,r,n.length).set(n),new DataView(s).setUint32(t>>>0,r,!0),n.length)}function O(i,e,t,n){return L(i,e,t,A.encode(JSON.stringify(n)))}function ce(i,e){i[0]=e.__zx_alloc}var he=["aside","fragment","iframe","slot","img","html","base","head","link","meta","script","style","title","address","article","body","h1","h6","footer","header","h2","h3","h4","h5","hgroup","nav","section","dd","dl","dt","div","figcaption","figure","hr","li","ol","ul","menu","main","p","picture","pre","a","abbr","b","bdi","bdo","br","cite","code","data","time","dfn","em","i","kbd","mark","q","blockquote","rp","ruby","rt","rtc","rb","s","del","ins","samp","small","span","strong","sub","sup","u","var","wbr","area","map","audio","source","track","video","embed","object","param","canvas","noscript","caption","table","col","colgroup","tbody","tr","thead","tfoot","td","th","button","datalist","option","fieldset","label","form","input","keygen","legend","meter","optgroup","select","output","progress","textarea","details","dialog","menuitem","summary","content","element","shadow","template","acronym","applet","basefont","font","big","blink","center","command","dir","frame","frameset","isindex","listing","marquee","noembed","plaintext","spacer","strike","tt","xmp","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view","custom"];function ve(i,e,t){let n=i>>>0,o=e>>>0;if(o<8)return;let r=S();if(n+o>r.byteLength)return;let s=new DataView(r.buffer,r.byteOffset+n,o),c=s.getUint32(0,!0),m=c*24;if(8+m>o)return;let{domNodes:a,cleanupDomNodes:u}=t;for(let l=0;l<c;l++){let b=8+l*24,g=s.getUint8(b),f=s.getUint32(b+4,!0),p=s.getUint32(b+8,!0),h=s.getUint32(b+12,!0),v=s.getUint32(b+16,!0),k=s.getUint32(b+20,!0);switch(g){case 1:{let d=f===199,y=d?w(h,v):he[f],x=!d&&f>=140?document.createElementNS("http://www.w3.org/2000/svg",y):document.createElement(y);x.__zx_ref=p,a.set(p,x);break}case 2:{let d=document.createTextNode(w(f,p));d.__zx_ref=h,a.set(h,d);break}case 3:{let d=a.get(f),y=BigInt(p)|BigInt(h)<<32n,x=M(y);if(!d||!x?.parentNode)break;x.parentNode.insertBefore(d,x);break}case 4:{a.get(f)?.setAttribute(w(p,h),w(v,k));break}case 5:{let d=a.get(f);if(d){let y=w(p,h),x=w(v,k);y==="checked"||y==="selected"||y==="muted"?d[y]=x!=="false":d[y]=x}break}case 6:{a.get(f)?.removeAttribute(w(p,h));break}case 7:{let d=a.get(f);d&&(d.nodeValue=w(p,h));break}case 8:{let d=a.get(f);d&&(d.innerHTML=w(p,h));break}case 9:{let d=a.get(f),y=a.get(p);d&&y&&d.appendChild(y);break}case 10:{let d=a.get(f),y=a.get(p),x=a.get(h)??null;d&&y&&d.insertBefore(y,x);break}case 11:{let d=a.get(f),y=a.get(p);d&&y&&(d.removeChild(y),u(y));break}case 12:{let d=a.get(f),y=a.get(p),x=a.get(h);d&&y&&x&&(d.replaceChild(y,x),u(x));break}default:break}}}function xe(i){if(!(i<60))return{expirationTtl:i}}function Ge(i){let e=i;return typeof e.getSync=="function"&&typeof e.putSync=="function"&&typeof e.deleteSync=="function"&&typeof e.listSync=="function"}function le(i,e,t){let n=new TextEncoder,o=new TextDecoder;function r(a,u){return o.decode(new Uint8Array(e().buffer,a,u))}function s(a){return i[a]??i.default??null}let c=WebAssembly.Suspending;if(typeof c!="function"){let a=function(u){let l=s(u);return l&&Ge(l)?l:null};var m=a;return{kv_get:(u,l,b,g,f)=>{let p=a(r(u,l));if(!p)return-1;let h=p.getSync(r(b,g));return h===null?-1:L(e,t,f,n.encode(h))},kv_put:(u,l,b,g,f,p,h)=>{let v=a(r(u,l));return v&&v.putSync(r(b,g),r(f,p),xe(h)),0},kv_delete:(u,l,b,g)=>{let f=a(r(u,l));return f&&f.deleteSync(r(b,g)),0},kv_list:(u,l,b,g,f)=>{let p=a(r(u,l));if(!p)return O(e,t,f,[]);let h=r(b,g),v=p.listSync(h.length>0?{prefix:h}:void 0);return O(e,t,f,v.keys.map(k=>k.name))}}}return{kv_get:new c(async(a,u,l,b,g)=>{let f=s(r(a,u));if(!f)return-1;let p=await f.get(r(l,b));return p===null?-1:L(e,t,g,n.encode(p))}),kv_put:new c(async(a,u,l,b,g,f,p)=>{let h=s(r(a,u));return h?(await h.put(r(l,b),r(g,f),xe(p)),0):-1}),kv_delete:new c(async(a,u,l,b)=>{let g=s(r(a,u));return g?(await g.delete(r(l,b)),0):-1}),kv_list:new c(async(a,u,l,b,g)=>{let f=s(r(a,u));if(!f)return O(e,t,g,[]);let p=r(l,b),v=(await f.list(p.length>0?{prefix:p}:void 0)).keys.map(k=>k.name);return v.length===0?(new DataView(e().buffer).setUint32(g,0,!0),0):O(e,t,g,v)})}}function Ze(){if(typeof localStorage>"u")throw new Error("localStorage is not available in this environment");return localStorage}function me(i={}){let e=Ze(),t=i.namespace??"default",n=i.storagePrefix??"ziex-kv",o=s=>`${n}:${t}:${s}`,r=o("");return{getSync(s){return e.getItem(o(s))},async get(s){return this.getSync(s)},putSync(s,c){e.setItem(o(s),c)},async put(s,c){this.putSync(s,c)},deleteSync(s){e.removeItem(o(s))},async delete(s){this.deleteSync(s)},listSync(s){let c=r+(s?.prefix??""),m=[];for(let a=0;a<e.length;a+=1){let u=e.key(a);!u||!u.startsWith(c)||m.push({name:u.slice(r.length)})}return{keys:m}},async list(s){return this.listSync(s)}}}function Xe(){if(typeof indexedDB>"u")throw new Error("IndexedDB is not available in this environment");return indexedDB}function we(i){return new Promise((e,t)=>{i.onsuccess=()=>e(i.result),i.onerror=()=>t(i.error??new Error("IndexedDB request failed"))})}function Z(i){return new Promise((e,t)=>{i.oncomplete=()=>e(),i.onabort=()=>t(i.error??new Error("IndexedDB transaction aborted")),i.onerror=()=>t(i.error??new Error("IndexedDB transaction failed"))})}function be(i={}){let e=i.databaseName??"ziex-kv",t=i.storeName??"kv",n=i.namespace??"default",o=new Promise((s,c)=>{let m=Xe().open(e,1);m.onupgradeneeded=()=>{let a=m.result;a.objectStoreNames.contains(t)||a.createObjectStore(t)},m.onsuccess=()=>s(m.result),m.onerror=()=>c(m.error??new Error("Failed to open IndexedDB"))}),r=s=>`${n}:${s}`;return{async get(s){let m=(await o).transaction(t,"readonly"),a=m.objectStore(t),u=await we(a.get(r(s)));return await Z(m),typeof u=="string"?u:null},async put(s,c){let a=(await o).transaction(t,"readwrite");a.objectStore(t).put(c,r(s)),await Z(a)},async delete(s){let m=(await o).transaction(t,"readwrite");m.objectStore(t).delete(r(s)),await Z(m)},async list(s){let m=(await o).transaction(t,"readonly"),a=m.objectStore(t),u=await we(a.getAllKeys());await Z(m);let l=r(s?.prefix??"");return{keys:u.filter(b=>typeof b=="string"&&b.startsWith(l)).map(b=>({name:b.slice(n.length+1)}))}}}}function Je(){return typeof WebAssembly.Suspending=="function"&&typeof WebAssembly.promising=="function"}function ke(i={}){let e=i.namespace??"default",t=Je()&&!i.forceLocalStorage;return{[e]:t?be(i):me(i)}}var P=["click","dblclick","input","change","submit","focusin","focusout","keydown","keyup","keypress","mouseenter","mouseleave","mousedown","mouseup","mousemove","touchstart","touchend","touchmove","scroll","wheel","pointerdown","pointermove","pointerup","pointercancel","pointerenter","pointerleave","lostpointercapture"];var J=class extends I{#e=new Map;#t;#n;constructor(e){super(e),this.#t=e.__zx_eventbridge,this.#n=G(e.__zx_eventbridge_async??e.__zx_eventbridge)}hasEventHandler(e,t){return!!((T.get(e)??0)&1<<t)}eventMaySuspend(e,t){return!!((D.get(e)??0)&1<<t)}setEventHandlerMode(e,t,n){let o=1<<t,r=(T.get(e)??0)|o;T.set(e,r);let s=D.get(e)??0,c=n?s|o:s&~o;c===0?D.delete(e):D.set(e,c),Se(t)}clearEventHandlerModes(e){let t=T.get(e)??0;T.delete(e),D.delete(e);for(let n=t&3031040;n!==0;n&=n-1)Te(31-Math.clz32(n))}submitFormActionAsync(e,t,n,o){let r=new FormData(e);r.append("__$states",n),fetch(window.location.href,{method:"POST",headers:{"x-action":String(t>>>0)},body:r}).then(async s=>{let c=await s.text();this._notifyFetchComplete(o,s.status,c,!1)}).catch(s=>{let c=s instanceof Error?s.message:"Fetch failed";this._notifyFetchComplete(o,0,c,!0)})}wsConnect(e,t,n,o,r){let s=w(t,n),c=r>0?w(o,r):"",m=c?c.split(",").map(a=>a.trim()).filter(Boolean):void 0;try{let a=m&&m.length>0?new WebSocket(s,m):new WebSocket(s);a.binaryType="arraybuffer",a.onopen=()=>{let u=a.protocol||"",[l,b]=this._writeStringToWasm(u);this._invoke(5,e,BigInt(l),BigInt(b))},a.onmessage=u=>{let l=u.data instanceof ArrayBuffer,b=l?new Uint8Array(u.data):A.encode(u.data),[g,f]=this.writeBytesToWasm(b);this._invoke(6,e,BigInt(g),BigInt(f),BigInt(l?1:0))},a.onerror=u=>{let[l,b]=this._writeStringToWasm("WebSocket error");this._invoke(7,e,BigInt(l),BigInt(b))},a.onclose=u=>{let l=u.reason||"",[b,g]=this._writeStringToWasm(l),f=BigInt(g)|BigInt(u.wasClean?1:0)<<32n;this._invoke(8,e,BigInt(u.code),BigInt(b),f),this.#e.delete(e)},this.#e.set(e,a)}catch(a){let u=a instanceof Error?a.message:"WebSocket connection failed",[l,b]=this._writeStringToWasm(u);this._invoke(7,e,BigInt(l),BigInt(b))}}wsSend(e,t,n,o){let r=this.#e.get(e);if(!r||r.readyState!==WebSocket.OPEN)return;let s=S(),c=t>>>0,m=n>>>0;c+m>s.byteLength||(o?r.send(s.slice(c,c+m)):r.send(F.decode(s.subarray(c,c+m))))}wsClose(e,t,n,o){let r=this.#e.get(e);if(!r)return;let s=o>0?w(n,o):void 0;try{s?r.close(t,s):r.close(t)}catch{r.close()}}dispose(){super.dispose(),T.clear(),D.clear();for(let e of this.#e.values())try{e.close()}catch{}this.#e.clear()}eventbridge(e,t,n){let o=BigInt(e>>>0);if(this.eventMaySuspend(e,t))return R(this.#n,o,t,n);R(this.#t,o,t,n)}static createImportObject(e){return{..._.importObject(),__zx_net:H(()=>{if(!_.memory)throw new Error("WASM memory is not ready");return _.memory}),__zx:{_log:(t,n,o)=>I.log(t,n,o),_setEventHandlerMode:(t,n,o)=>{e[0]?.setEventHandlerMode(Number(t),n,o!==0)},_clearEventHandlerModes:t=>{e[0]?.clearEventHandlerModes(Number(t))},_fetchAsync:(t,n,o,r,s,c,m,a,u,l)=>{e[0]?.fetchAsync(t,n,o,r,s,c,m,a,u,l)},_setTimeout:(t,n)=>{e[0]?.setTimeout(t,n)},_setInterval:(t,n)=>{e[0]?.setInterval(t,n)},_clearInterval:t=>{e[0]?.clearInterval(t)},_wsConnect:(t,n,o,r,s)=>{e[0]?.wsConnect(t,n,o,r,s)},_wsSend:(t,n,o,r)=>{e[0]?.wsSend(t,n,o,r)},_wsClose:(t,n,o,r)=>{e[0]?.wsClose(t,n,o,r)},_flush:(t,n)=>{ve(t,n,{domNodes:V,cleanupDomNodes:qe})},_getLocationHref:(t,n)=>{let o=A.encode(window.location.href),r=Math.min(o.length,n);return B(t,o.subarray(0,r)),r},_getFormData:(t,n)=>{let r=M(t)?.target,s=r instanceof HTMLFormElement?r:r?.closest?.("form")??null;if(!s)return 0;let c=[];for(let[l,b]of new FormData(s).entries())c.push(l,String(b));let m=A.encode(JSON.stringify(c)),[a,u]=e[0].writeBytesToWasm(m);return new DataView(_.memory.buffer).setUint32(n,a,!0),u},_submitFormAction:(t,n)=>{let o=V.get(Number(t));if(!o||!(o instanceof HTMLFormElement))return;let r=new FormData(o);fetch(window.location.href,{method:"POST",headers:{"x-action":String(n>>>0)},body:r}).catch(()=>{})},_submitFormActionAsync:(t,n,o,r,s)=>{let c=V.get(Number(t));if(!c||!(c instanceof HTMLFormElement))return;let m=r>0?w(o,r):"[]";e[0]?.submitFormActionAsync(c,n,m,s)}}}}},V=new Map,T=new Map,D=new Map;function qe(i){let e=[i],t=0;for(;e.length>0;){let n=e.pop(),o=n.__zx_ref;if(typeof o=="number"){let s=T.get(o);s!==void 0&&(t|=s,T.delete(o),D.delete(o)),V.delete(o)}let r=n.childNodes;for(let s=0;s<r.length;s++)e.push(r[s])}for(let n=t&3031040;n!==0;n&=n-1)Te(31-Math.clz32(n))}var E=null;function $e(i,e){return t=>{let n,o=[],r=t.target;for(;r&&r!==document.body;){let s=r.__zx_ref;if(typeof s=="number"&&i.hasEventHandler(s,e)){n===void 0&&(n=ae(t));let c=i.eventbridge(s,e,n);if(c&&typeof c.then=="function"&&o.push(c),t.cancelBubble)break}r=r.parentElement}if(n!==void 0){let s=n;o.length>0?Promise.all(o).finally(()=>j(s)):j(s)}}}function Se(i){let e=E;if(!e||e.attached.has(i))return;let t=P[i];if(!t)return;let o={passive:t.startsWith("touch")||t==="scroll"},r=$e(e.bridge,i);e.root.addEventListener(t,r,o),e.attached.set(i,{listener:r,options:o})}function Qe(i){let e=1<<i;for(let t of T.values())if(t&e)return!0;return!1}function Te(i){if((3031040&1<<i)===0||Qe(i))return;let e=E;if(!e)return;let t=e.attached.get(i);if(!t)return;let n=P[i];e.root.removeEventListener(n,t.listener,t.options),e.attached.delete(i)}function Ye(i,e="body"){let t=document.querySelector(e);if(!t)return()=>{};E={root:t,bridge:i,attached:new Map};for(let n=0;n<P.length;n++)(3031040&1<<n)===0&&Se(n);return()=>{if(E){for(let[n,o]of E.attached){let r=P[n];E.root.removeEventListener(r,o.listener,o.options)}E.attached.clear(),E=null}}}var X=null;function et(i={}){return{url:i.url,eventDelegationRoot:i.eventDelegationRoot,importObject:i.importObject,kv:i.kv}}async function Ae(i={}){let e=et(i);X&&(X.dispose(),X=null);let t=i.url??document.getElementById("__$wasmlink")?.href;if(!t)throw new Error("WASM URL is not set");let n=[null],o=null,r=[null],s=()=>{if(o)return o;if(_.memory)return _.memory;throw new Error("WASM memory is not ready")},c={...J.createImportObject(n),...i.importObject};c.__zx_kv=le(i.kv??ke(),s,r);let m=await WebAssembly.instantiateStreaming(fetch(t),c),{instance:a}=m;o=a.exports.memory,_.memory=o,ce(r,a.exports);let u=new J(a.exports);n[0]=u,V.clear();let l=Ye(u,i.eventDelegationRoot??"body"),b=G(a.exports.mainClient);return R(b),X={options:e,dispose:()=>{l(),u.dispose(),V.clear()}},{source:m,bridge:u}}Ae();
1
+ var B={nan:0,null:1,true:2,false:3,undefined:4,globalThis:5,runtime:6},Ze=6,Te=new TextEncoder,Je=new TextDecoder("utf-8"),j=class{constructor(){this.values=[NaN,null,!0,!1,void 0,globalThis,this];this.idPool=[]}importObject(){return{"zig-js":{valueGet:this.valueGet.bind(this),valueSet:this.valueSet.bind(this),valueDeinit:this.valueDeinit.bind(this),valueObjectCreate:this.valueObjectCreate.bind(this),valueStringCreate:this.valueStringCreate.bind(this),valueStringLen:this.valueStringLen.bind(this),valueStringCopy:this.valueStringCopy.bind(this),valueNew:this.valueNew.bind(this),funcApply:this.funcApply.bind(this)}}}valueGet(e,t,n,o){let s=this.loadValue(t);if(s==null||typeof s!="object"&&typeof s!="function"){this.storeValue(e,void 0);return}let i=this.loadString(n,o),a=Reflect.get(s,i);this.storeValue(e,a)}valueSet(e,t,n,o){let s=this.loadValue(e),i=this.loadString(t,n),a=this.loadRef(o);Reflect.set(s,i,a)}valueDeinit(e){e>Ze&&(this.values[e]=null,this.idPool.push(e))}valueObjectCreate(e){this.storeValue(e,new Object)}valueStringCreate(e,t,n){let o=this.loadString(t,n);this.storeValue(e,o)}valueStringLen(e){let t=this.loadValue(e);return Te.encode(t).byteLength}valueStringCopy(e,t,n){if(this.memory==null)return;let o=t>>>0,s=n>>>0,i=this.loadValue(e);if(typeof i!="string")return;let a=Te.encode(i);if(a.byteLength>s||a.length===0)return;let m=this.memory.buffer;o+a.length>m.byteLength||new Uint8Array(m,o,a.length).set(a)}valueNew(e,t,n,o){let s=this.loadValue(t),i=[],a=n>>>0,m=o>>>0;for(let u=0;u<m;u++)i.push(this.loadRef(a+u*8));let c=Reflect.construct(s,i);this.storeValue(e,c)}funcApply(e,t,n,o,s){let i=this.loadValue(t),a=this.loadRef(n>>>0),m=[],c=o>>>0,u=s>>>0;for(let b=0;b<u;b++)m.push(this.loadRef(c+b*8));if(typeof i!="function"){this.storeValue(e,void 0);return}try{let b=Reflect.apply(i,a,m);this.storeValue(e,b)}catch{this.storeValue(e,void 0)}}loadValue(e){return this.values[e]}deleteValue(e){let t=this.values[e];return this.valueDeinit(e),t}loadRef(e){if(this.memory==null)return;let t=e>>>0,o=new DataView(this.memory.buffer).getFloat64(t,!0);if(!isNaN(o))return o;let s=this.loadRefId(t);return this.values[s]}loadRefId(e){return this.memory==null?0:new DataView(this.memory.buffer).getUint32(e>>>0,!0)}storeValue(e,t){if(this.memory==null)return;let n=new DataView(this.memory.buffer);if(e=e>>>0,typeof t=="number"){isNaN(t)?(n.setUint32(e,B.nan,!0),n.setUint32(e+4,2146959360,!0)):n.setFloat64(e,t,!0);return}if(t===null){n.setUint32(e,B.null,!0),n.setUint32(e+4,2146959360,!0);return}if(t===void 0){n.setUint32(e,B.undefined,!0),n.setUint32(e+4,2146959360,!0);return}if(typeof t=="boolean"){n.setUint32(e,t?B.true:B.false,!0),n.setUint32(e+4,2146959360,!0);return}if(typeof t=="bigint"){n.setFloat64(e,Number(t),!0);return}let o=this.idPool.pop();o===void 0&&(o=this.values.length),this.values[o]=t;let s=0;switch(typeof t){case"object":s=1;break;case"string":s=2;break;case"symbol":s=3;break;case"function":s=4;break}n.setUint32(e,Number(o),!0),n.setUint32(e+4,2146959360|s,!0)}loadString(e,t){if(this.memory==null)return"";let n=e>>>0,o=Number(t)>>>0,s=this.memory.buffer;if(o===0||n+o>s.byteLength)return"";let a=new Uint8ClampedArray(s,n,o).slice();return Je.decode(a)}};function z(r){let e=new TextEncoder,t=new TextDecoder;function n(c,u){return t.decode(new Uint8Array(r().buffer,c,u))}function o(c,u,b){return b.length>u?-2:(new Uint8Array(r().buffer,c,b.length).set(b),b.length)}function s(c,u){return new Uint8Array(r().buffer,c,u)}function i(c){let u={};try{u=JSON.parse(c)}catch{for(let b of c.split(`
2
+ `)){let d=b.indexOf(":");d>0&&(u[b.slice(0,d)]=b.slice(d+1))}}return u}async function a(c,u,b,d,w,k,g,y,h,C,x,l){let f=n(c,u),v=d>0?n(b,d):"GET",Ge=k>0?n(w,k):"{}",$e=y>0?s(g,y):void 0,xe=i(Ge),ke=new AbortController,H=h>0?setTimeout(()=>ke.abort(),h):null;try{let I=await fetch(f,{method:v,headers:Object.keys(xe).length>0?xe:void 0,body:v!=="GET"&&v!=="HEAD"?$e:void 0,signal:ke.signal});H&&clearTimeout(H),new DataView(r().buffer).setUint16(C,I.status,!0);let ae=new Uint8Array(await I.arrayBuffer());return o(x,l,ae)}catch(I){H&&clearTimeout(H);let ae=I instanceof Error?I.message:String(I);return console.error(`wasm fetch failed: ${f} (${ae})`),-1}}let m=WebAssembly.Suspending;return typeof m!="function"?{fetch:(c,u,b,d,w,k,g,y,h,C,x,l)=>-1}:{fetch:new m(a)}}var p=new j,pe=new ArrayBuffer(8),R=new DataView(pe);function ge(r){let e=p.memory;return p.memory={buffer:pe},p.storeValue(0,r),p.memory=e,R.getBigUint64(0,!0)}function F(r){R.setBigUint64(0,r,!0);let e=p.memory;p.memory={buffer:pe};let t=p.loadRef(0);return p.memory=e,t}function G(r){if(R.setBigUint64(0,r,!0),!Number.isNaN(R.getFloat64(0,!0)))return;let e=R.getUint32(0,!0);e>6&&p.deleteValue(e)}var O=new TextDecoder,T=new TextEncoder,Ae=null,Se=null;function A(){let r=p.memory.buffer;return r!==Se&&(Se=r,Ae=new Uint8Array(r)),Ae}function _(r,e){let t=r>>>0,n=e>>>0;if(n===0)return"";let o=A();return t+n>o.byteLength?"":O.decode(o.subarray(t,t+n))}function M(r,e){let t=r>>>0,n=A();t+e.length>n.byteLength||n.set(e,t)}function $(r){if(!r)return;let e=WebAssembly.promising;return typeof e!="function"?r:e(r)}function P(r,...e){if(!r)return;let t=r(...e);t&&typeof t.then=="function"&&t.then(void 0,n=>{console.error(n)})}var V=class r{#e=new Map;#t;constructor(e){this._alloc=e.__zx_alloc,this.#t=$(e.__zx_cb),this.#t||console.warn("__zx_cb not exported from WASM"),e.memory&&(p.memory=e.memory)}_invoke(e,t,n=0n,o=0n,s=0n){let i=this.#t;if(!i){console.warn("__zx_cb not exported from WASM");return}P(i,e,t,n,o,s)}fetchAsync(e,t,n,o,s,i,a,m,c,u){let b=_(e,t),d=o>0?_(n,o):"GET",w=i>0?_(s,i):"{}",k=m>0?A().subarray(a,a+m):void 0,g={};try{g=JSON.parse(w)}catch{for(let x of w.split(`
3
+ `)){let l=x.indexOf(":");l>0&&(g[x.slice(0,l)]=x.slice(l+1))}}let y=new AbortController,h=c>0?setTimeout(()=>y.abort(),c):null,C={method:d,headers:Object.keys(g).length>0?g:void 0,body:d!=="GET"&&d!=="HEAD"?k:void 0,signal:y.signal};fetch(b,C).then(async x=>{h&&clearTimeout(h);let l=new Uint8Array(await x.arrayBuffer());this._notifyFetchComplete(u,x.status,l,!1)}).catch(x=>{h&&clearTimeout(h);let f=x.name==="AbortError"?"Request timeout":x.message??"Fetch failed";this._notifyFetchComplete(u,0,f,!0)})}_notifyFetchComplete(e,t,n,o){let s=typeof n=="string"?T.encode(n):n,i=this._alloc(s.length)>>>0;if(!i&&s.length>0)return;M(i,s);let a=o?2:1;this._invoke(a,e,BigInt(t),BigInt(i),BigInt(s.length))}setTimeout(e,t){setTimeout(()=>{this._invoke(3,e)},t)}setInterval(e,t){let n=setInterval(()=>{this._invoke(4,e)},t);this.#e.set(e,n)}clearInterval(e){let t=this.#e.get(e);t!==void 0&&(clearInterval(t),this.#e.delete(e))}dispose(){for(let e of this.#e.values())clearInterval(e);this.#e.clear()}_writeStringToWasm(e){return this.writeBytesToWasm(T.encode(e))}writeBytesToWasm(e){if(e.length===0)return[0,0];let t=this._alloc(e.length)>>>0;return t?(M(t,e),[t,e.length]):[0,0]}static log(e,t,n){let o=t>>>0,s=n>>>0,i=A();if(o+s>i.byteLength)return;let a=O.decode(i.subarray(o,o+s));switch(e){case 0:console.error(a);break;case 1:console.warn(a);break;case 3:console.debug(a);break;default:console.log(a);break}}static createImportObject(e){return{...p.importObject(),__zx_net:z(()=>{if(!p.memory)throw new Error("WASM memory is not ready");return p.memory}),__zx:{_log:(t,n,o)=>r.log(t,n,o),_fetchAsync:(t,n,o,s,i,a,m,c,u,b)=>{e[0]?.fetchAsync(t,n,o,s,i,a,m,c,u,b)},_setTimeout:(t,n)=>{e[0]?.setTimeout(t,n)},_setInterval:(t,n)=>{e[0]?.setInterval(t,n)},_clearInterval:t=>{e[0]?.clearInterval(t)}}}}};function Z(r,e,t,n){if(n.length===0)return new DataView(r().buffer).setUint32(t,0,!0),0;let o=e[0];if(!o)return-1;let s=o(n.length)>>>0;if(!s)return-1;let i=r().buffer;return s+n.length>i.byteLength?-1:(new Uint8Array(i,s,n.length).set(n),new DataView(i).setUint32(t>>>0,s,!0),n.length)}function J(r,e,t,n){return Z(r,e,t,T.encode(JSON.stringify(n)))}function ye(r,e){r[0]=e.__zx_alloc}var Ee=["aside","fragment","iframe","slot","img","html","base","head","link","meta","script","style","title","address","article","body","h1","h6","footer","header","h2","h3","h4","h5","hgroup","nav","section","dd","dl","dt","div","figcaption","figure","hr","li","ol","ul","menu","main","p","picture","pre","a","abbr","b","bdi","bdo","br","cite","code","data","time","dfn","em","i","kbd","mark","q","blockquote","rp","ruby","rt","rtc","rb","s","del","ins","samp","small","span","strong","sub","sup","u","var","wbr","area","map","audio","source","track","video","embed","object","param","canvas","noscript","caption","table","col","colgroup","tbody","tr","thead","tfoot","td","th","button","datalist","option","fieldset","label","form","input","keygen","legend","meter","optgroup","select","output","progress","textarea","details","dialog","menuitem","summary","content","element","shadow","template","acronym","applet","basefont","font","big","blink","center","command","dir","frame","frameset","isindex","listing","marquee","noembed","plaintext","spacer","strike","tt","xmp","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view","custom"];var mt=new Set(["checked","selected","muted","defaultChecked","indeterminate"]);function bt(r,e,t){for(let n=0;n<r.length;n++){let o=r[n];if(o.el===e&&o.kind===t)return}r.push({el:e,kind:t})}function dt(r){for(let e=0;e<r.length;e++){let t=r[e];if(t.el.isConnected)switch(t.kind){case"focus":{if(typeof t.el.focus!="function")break;try{t.el.focus({preventScroll:!0})}catch{t.el.focus()}break}}}}function ft(r,e,t){if(mt.has(e)){let n=t!=="false";r[e]=n,e==="defaultChecked"&&"checked"in r&&(r.checked=n);return}if(e==="defaultValue"){r.defaultValue=t,typeof r.value=="string"&&(r.value===""||r.value===r.defaultValue)&&(r.value=t);return}r[e]=t}function De(r,e,t){let n=r>>>0,o=e>>>0;if(o<8)return;let s=A();if(n+o>s.byteLength)return;let i=new DataView(s.buffer,s.byteOffset+n,o),a=i.getUint32(0,!0),m=a*24;if(8+m>o)return;let{domNodes:c,cleanupDomNodes:u}=t,b=[];for(let d=0;d<a;d++){let w=8+d*24,k=i.getUint8(w),g=i.getUint32(w+4,!0),y=i.getUint32(w+8,!0),h=i.getUint32(w+12,!0),C=i.getUint32(w+16,!0),x=i.getUint32(w+20,!0);switch(k){case 1:{let l=g===199,f=l?_(h,C):Ee[g],v=!l&&g>=140?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f);v.__zx_ref=y,c.set(y,v);break}case 2:{let l=document.createTextNode(_(g,y));l.__zx_ref=h,c.set(h,l);break}case 3:{let l=c.get(g),f=BigInt(y)|BigInt(h)<<32n,v=F(f);if(!l||!v?.parentNode)break;v.parentNode.insertBefore(l,v);break}case 4:{let l=c.get(g);if(!l)break;let f=_(y,h),v=_(C,x);l.setAttribute(f,v),f==="autofocus"&&bt(b,l,"focus");break}case 5:{let l=c.get(g);l&&ft(l,_(y,h),_(C,x));break}case 6:{c.get(g)?.removeAttribute(_(y,h));break}case 7:{let l=c.get(g);l&&(l.nodeValue=_(y,h));break}case 8:{let l=c.get(g);l&&(l.innerHTML=_(y,h));break}case 9:{let l=c.get(g),f=c.get(y);l&&f&&l.appendChild(f);break}case 10:{let l=c.get(g),f=c.get(y),v=c.get(h)??null;l&&f&&l.insertBefore(f,v);break}case 11:{let l=c.get(g),f=c.get(y);l&&f&&(l.removeChild(f),u(f));break}case 12:{let l=c.get(g),f=c.get(y),v=c.get(h);l&&f&&v&&(l.replaceChild(f,v),u(v));break}default:break}}dt(b)}var Ne=WebAssembly.Suspending,_e=typeof Ne=="function",Oe=_e?-1:0;function pt(r){if(!(r<60))return{expirationTtl:r}}function gt(r,e){let t=r;return(t.del??t.delete).call(t,e)}function yt(r){return typeof r.get=="function"&&r.get.constructor.name!=="AsyncFunction"}function ht(r){return r.length>0?{prefix:r}:void 0}function Q(r,e){return r instanceof Promise?r.then(e):e(r)}function S(r,e,t){return O.decode(new Uint8Array(r().buffer,e,t))}function X(r,e){let t=r[e]??r.default??null;return!t||_e||yt(t)?t:null}function _t(r,e,t,n){return t===null?-1:Z(r,e,n,T.encode(t))}function vt(r,e,t,n){return t.length===0?(new DataView(r().buffer).setUint32(n,0,!0),0):J(r,e,n,t)}function wt(r,e,t,n,o){return Q(r.get(e),s=>_t(n,o,s,t))}function xt(r,e,t,n){return Q(r.put(e,t,pt(n)),()=>0)}function kt(r,e){return Q(gt(r,e),()=>0)}function Tt(r,e,t,n,o){return Q(r.list(ht(e)),s=>vt(n,o,s.keys.map(i=>i.name),t))}function q(r){return _e?new Ne(r):((...e)=>{let t=r(...e);if(t instanceof Promise)throw new Error("async kv binding requires JSPI");return t})}function ve(r,e,t){return{kv_get:q((n,o,s,i,a)=>{let m=X(r,S(e,n,o));return m?wt(m,S(e,s,i),a,e,t):-1}),kv_put:q((n,o,s,i,a,m,c)=>{let u=X(r,S(e,n,o));return u?xt(u,S(e,s,i),S(e,a,m),c):Oe}),kv_delete:q((n,o,s,i)=>{let a=X(r,S(e,n,o));return a?kt(a,S(e,s,i)):Oe}),kv_list:q((n,o,s,i,a)=>{let m=X(r,S(e,n,o));return m?Tt(m,S(e,s,i),a,e,t):J(e,t,a,[])})}}var Y="default",ee="ziex-kv",We=`${ee}:${Y}:`;function te(){if(typeof localStorage>"u")throw new Error("localStorage is not available in this environment");return localStorage}function Ie(r){return te().getItem(`${ee}:${Y}:${r}`)}function Ve(r,e){te().setItem(`${ee}:${Y}:${r}`,e)}function Be(r){te().removeItem(`${ee}:${Y}:${r}`)}function Re(r){let e=te(),t=We+(r?.prefix??""),n=[];for(let o=0;o<e.length;o+=1){let s=e.key(o);!s||!s.startsWith(t)||n.push({name:s.slice(We.length)})}return{keys:n}}var At="ziex-kv";var L="default",we;function ne(){if(!we){if(typeof indexedDB>"u")return Promise.reject(new Error("IndexedDB is not available in this environment"));we=new Promise((r,e)=>{let t=indexedDB.open(At,1);t.onupgradeneeded=()=>{let n=t.result;n.objectStoreNames.contains("kv")||n.createObjectStore("kv")},t.onsuccess=()=>r(t.result),t.onerror=()=>e(t.error??new Error("Failed to open IndexedDB"))})}return we}function Me(r){return new Promise((e,t)=>{r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error??new Error("IndexedDB request failed"))})}function re(r){return new Promise((e,t)=>{r.oncomplete=()=>e(),r.onabort=()=>t(r.error??new Error("IndexedDB transaction aborted")),r.onerror=()=>t(r.error??new Error("IndexedDB transaction failed"))})}async function Fe(r){let t=(await ne()).transaction("kv","readonly"),n=await Me(t.objectStore("kv").get(`${L}:${r}`));return await re(t),typeof n=="string"?n:null}async function Pe(r,e){let n=(await ne()).transaction("kv","readwrite");n.objectStore("kv").put(e,`${L}:${r}`),await re(n)}async function Le(r){let t=(await ne()).transaction("kv","readwrite");t.objectStore("kv").delete(`${L}:${r}`),await re(t)}async function Ue(r){let t=(await ne()).transaction("kv","readonly"),n=await Me(t.objectStore("kv").getAllKeys());await re(t);let o=`${L}:${r?.prefix??""}`;return{keys:n.filter(s=>typeof s=="string"&&s.startsWith(o)).map(s=>({name:s.slice(L.length+1)}))}}var St=typeof WebAssembly.Suspending=="function"&&typeof WebAssembly.promising=="function";function He(r={}){return{[r.namespace??"default"]:St&&!r.forceLocalStorage?{get:Fe,put:Pe,del:Le,list:Ue}:{get:Ie,put:Ve,del:Be,list:Re}}}var U=["click","dblclick","input","change","submit","focusin","focusout","keydown","keyup","keypress","mouseenter","mouseleave","mousedown","mouseup","mousemove","touchstart","touchend","touchmove","scroll","wheel","pointerdown","pointermove","pointerup","pointercancel","pointerenter","pointerleave","lostpointercapture"];var se=class extends V{#e=new Map;#t;#n;constructor(e){super(e),this.#t=e.__zx_eventbridge,this.#n=$(e.__zx_eventbridge_async??e.__zx_eventbridge)}hasEventHandler(e,t){return!!((E.get(e)??0)&1<<t)}eventMaySuspend(e,t){return!!((N.get(e)??0)&1<<t)}setEventHandlerMode(e,t,n){let o=1<<t,s=(E.get(e)??0)|o;E.set(e,s);let i=N.get(e)??0,a=n?i|o:i&~o;a===0?N.delete(e):N.set(e,a),je(t)}clearEventHandlerModes(e){let t=E.get(e)??0;E.delete(e),N.delete(e);for(let n=t&3031040;n!==0;n&=n-1)ze(31-Math.clz32(n))}submitFormActionAsync(e,t,n,o){let s=new FormData(e);s.append("__$states",n),fetch(window.location.href,{method:"POST",headers:{"x-action":String(t>>>0)},body:s}).then(async i=>{let a=await i.text();this._notifyFetchComplete(o,i.status,a,!1)}).catch(i=>{let a=i instanceof Error?i.message:"Fetch failed";this._notifyFetchComplete(o,0,a,!0)})}wsConnect(e,t,n,o,s){let i=_(t,n),a=s>0?_(o,s):"",m=a?a.split(",").map(c=>c.trim()).filter(Boolean):void 0;try{let c=m&&m.length>0?new WebSocket(i,m):new WebSocket(i);c.binaryType="arraybuffer",c.onopen=()=>{let u=c.protocol||"",[b,d]=this._writeStringToWasm(u);this._invoke(5,e,BigInt(b),BigInt(d))},c.onmessage=u=>{let b=u.data instanceof ArrayBuffer,d=b?new Uint8Array(u.data):T.encode(u.data),[w,k]=this.writeBytesToWasm(d);this._invoke(6,e,BigInt(w),BigInt(k),BigInt(b?1:0))},c.onerror=u=>{let[b,d]=this._writeStringToWasm("WebSocket error");this._invoke(7,e,BigInt(b),BigInt(d))},c.onclose=u=>{let b=u.reason||"",[d,w]=this._writeStringToWasm(b),k=BigInt(w)|BigInt(u.wasClean?1:0)<<32n;this._invoke(8,e,BigInt(u.code),BigInt(d),k),this.#e.delete(e)},this.#e.set(e,c)}catch(c){let u=c instanceof Error?c.message:"WebSocket connection failed",[b,d]=this._writeStringToWasm(u);this._invoke(7,e,BigInt(b),BigInt(d))}}wsSend(e,t,n,o){let s=this.#e.get(e);if(!s||s.readyState!==WebSocket.OPEN)return;let i=A(),a=t>>>0,m=n>>>0;a+m>i.byteLength||(o?s.send(i.slice(a,a+m)):s.send(O.decode(i.subarray(a,a+m))))}wsClose(e,t,n,o){let s=this.#e.get(e);if(!s)return;let i=o>0?_(n,o):void 0;try{i?s.close(t,i):s.close(t)}catch{s.close()}}dispose(){super.dispose(),E.clear(),N.clear();for(let e of this.#e.values())try{e.close()}catch{}this.#e.clear()}eventbridge(e,t,n){let o=BigInt(e>>>0);if(this.eventMaySuspend(e,t))return P(this.#n,o,t,n);P(this.#t,o,t,n)}static createImportObject(e){return{...p.importObject(),__zx_net:z(()=>{if(!p.memory)throw new Error("WASM memory is not ready");return p.memory}),__zx:{_log:(t,n,o)=>V.log(t,n,o),_setEventHandlerMode:(t,n,o)=>{e[0]?.setEventHandlerMode(Number(t),n,o!==0)},_clearEventHandlerModes:t=>{e[0]?.clearEventHandlerModes(Number(t))},_fetchAsync:(t,n,o,s,i,a,m,c,u,b)=>{e[0]?.fetchAsync(t,n,o,s,i,a,m,c,u,b)},_setTimeout:(t,n)=>{e[0]?.setTimeout(t,n)},_setInterval:(t,n)=>{e[0]?.setInterval(t,n)},_clearInterval:t=>{e[0]?.clearInterval(t)},_wsConnect:(t,n,o,s,i)=>{e[0]?.wsConnect(t,n,o,s,i)},_wsSend:(t,n,o,s)=>{e[0]?.wsSend(t,n,o,s)},_wsClose:(t,n,o,s)=>{e[0]?.wsClose(t,n,o,s)},_flush:(t,n)=>{De(t,n,{domNodes:W,cleanupDomNodes:Et})},_getLocationHref:(t,n)=>{let o=T.encode(window.location.href),s=Math.min(o.length,n);return M(t,o.subarray(0,s)),s},_getFormData:(t,n)=>{let s=F(t)?.target,i=s instanceof HTMLFormElement?s:s?.closest?.("form")??null;if(!i)return 0;let a=[];for(let[b,d]of new FormData(i).entries())a.push(b,String(d));let m=T.encode(JSON.stringify(a)),[c,u]=e[0].writeBytesToWasm(m);return new DataView(p.memory.buffer).setUint32(n,c,!0),u},_submitFormAction:(t,n)=>{let o=W.get(Number(t));if(!o||!(o instanceof HTMLFormElement))return;let s=new FormData(o);fetch(window.location.href,{method:"POST",headers:{"x-action":String(n>>>0)},body:s}).catch(()=>{})},_submitFormActionAsync:(t,n,o,s,i)=>{let a=W.get(Number(t));if(!a||!(a instanceof HTMLFormElement))return;let m=s>0?_(o,s):"[]";e[0]?.submitFormActionAsync(a,n,m,i)},_formReset:t=>{let n=W.get(Number(t));n instanceof HTMLFormElement&&n.reset()}}}}},W=new Map,E=new Map,N=new Map;function Et(r){let e=[r],t=0;for(;e.length>0;){let n=e.pop(),o=n.__zx_ref;if(typeof o=="number"){let i=E.get(o);i!==void 0&&(t|=i,E.delete(o),N.delete(o)),W.delete(o)}let s=n.childNodes;for(let i=0;i<s.length;i++)e.push(s[i])}for(let n=t&3031040;n!==0;n&=n-1)ze(31-Math.clz32(n))}var D=null;function Ct(r,e){return t=>{let n,o=[],s=t.target;for(;s&&s!==document.body;){let i=s.__zx_ref;if(typeof i=="number"&&r.hasEventHandler(i,e)){n===void 0&&(n=ge(t));let a=r.eventbridge(i,e,n);if(a&&typeof a.then=="function"&&o.push(a),t.cancelBubble)break}s=s.parentElement}if(n!==void 0){let i=n;o.length>0?Promise.all(o).finally(()=>G(i)):G(i)}}}function je(r){let e=D;if(!e||e.attached.has(r))return;let t=U[r];if(!t)return;let o={passive:t.startsWith("touch")||t==="scroll"},s=Ct(e.bridge,r);e.root.addEventListener(t,s,o),e.attached.set(r,{listener:s,options:o})}function Dt(r){let e=1<<r;for(let t of E.values())if(t&e)return!0;return!1}function ze(r){if((3031040&1<<r)===0||Dt(r))return;let e=D;if(!e)return;let t=e.attached.get(r);if(!t)return;let n=U[r];e.root.removeEventListener(n,t.listener,t.options),e.attached.delete(r)}function Ot(r,e="body"){let t=document.querySelector(e);if(!t)return()=>{};D={root:t,bridge:r,attached:new Map};for(let n=0;n<U.length;n++)(3031040&1<<n)===0&&je(n);return()=>{if(D){for(let[n,o]of D.attached){let s=U[n];D.root.removeEventListener(s,o.listener,o.options)}D.attached.clear(),D=null}}}var oe=null;function Nt(r={}){return{url:r.url,eventDelegationRoot:r.eventDelegationRoot,importObject:r.importObject,kv:r.kv}}async function Ke(r={}){let e=Nt(r);oe&&(oe.dispose(),oe=null);let t=r.url??document.getElementById("__$wasmlink")?.href;if(!t)throw new Error("WASM URL is not set");let n=[null],o=null,s=[null],i=()=>{if(o)return o;if(p.memory)return p.memory;throw new Error("WASM memory is not ready")},a={...se.createImportObject(n),...r.importObject};a.__zx_kv=ve(r.kv??He(),i,s);let m=await WebAssembly.instantiateStreaming(fetch(t),a),{instance:c}=m;o=c.exports.memory,p.memory=o,ye(s,c.exports);let u=new se(c.exports);n[0]=u,W.clear();let b=Ot(u,r.eventDelegationRoot??"body"),d=$(c.exports.mainClient);return P(d),oe={options:e,dispose:()=>{b(),u.dispose(),W.clear()}},{source:m,bridge:u}}Ke();
@@ -1,50 +0,0 @@
1
- import type { WsState } from "../../runtime";
2
- import { type KVNamespace } from "../../runtime/kv";
3
- import type { Database } from "../../runtime/db";
4
- type ConnState = WsState & {
5
- topics: Set<string>;
6
- };
7
- /**
8
- * Create a Durable Object class that handles WebSocket connections for a ZX app.
9
- *
10
- * Each DO instance corresponds to one "room" (keyed by pathname). All clients
11
- * connecting to the same route share a DO instance, enabling pub/sub via
12
- * `ctx.socket.subscribe()` / `ctx.socket.publish()`.
13
- *
14
- * @example
15
- * ```ts
16
- * // worker.ts
17
- * import { Ziex } from "ziex";
18
- * import { createWebSocketDO } from "ziex/cloudflare";
19
- * import module from "./app.wasm";
20
- *
21
- * export const ZxWS = createWebSocketDO(module);
22
- *
23
- * export default new Ziex({
24
- * module,
25
- * websocket: (env) => env.ZxWS,
26
- * });
27
- * ```
28
- */
29
- export declare function createWebSocketDO(module: WebAssembly.Module, options?: {
30
- /**
31
- * KV namespace bindings for the DO. Pass a factory that receives the DO's
32
- * `env` so bindings are resolved at runtime:
33
- *
34
- * ```ts
35
- * createWebSocketDO(module, { kv: (env) => ({ default: env.KV }) })
36
- * ```
37
- */
38
- kv?: (env: any) => Record<string, KVNamespace>;
39
- db?: (env: any) => Record<string, Database>;
40
- imports?: (mem: () => WebAssembly.Memory) => WebAssembly.Imports;
41
- }): {
42
- new (state: any, env: any): {
43
- readonly doState: any;
44
- readonly env: any;
45
- /** All active connections in this room, keyed by their server-side WebSocket. */
46
- readonly connections: Map<WebSocket, ConnState>;
47
- fetch(request: Request): Promise<Response>;
48
- };
49
- };
50
- export {};