ziex 0.1.0-dev.1389 → 0.1.0-dev.1466

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.
Files changed (49) hide show
  1. package/README.md +4 -1
  2. package/app.d.ts +6 -6
  3. package/build.zig.zon +1 -1
  4. package/index.js +490 -174
  5. package/package.json +7 -5
  6. package/{aws-lambda → platforms/aws-lambda}/index.js +1 -1
  7. package/platforms/cloudflare/app.d.ts +2 -0
  8. package/platforms/cloudflare/db.d.ts +6 -0
  9. package/{cloudflare → platforms/cloudflare}/do.d.ts +5 -5
  10. package/platforms/cloudflare/index.d.ts +4 -0
  11. package/{cloudflare → platforms/cloudflare}/index.js +1959 -1532
  12. package/platforms/cloudflare/kv.d.ts +5 -0
  13. package/platforms/cloudflare/worker.d.ts +3 -0
  14. package/{vercel → platforms/vercel}/index.js +1 -1
  15. package/runtime/db/extern.d.ts +38 -0
  16. package/runtime/db/sqlite.d.ts +7 -0
  17. package/runtime/db.d.ts +3 -0
  18. package/runtime/db.js +419 -0
  19. package/{fetch.d.ts → runtime/fetch.d.ts} +1 -1
  20. package/{runtime.d.ts → runtime/index.d.ts} +6 -15
  21. package/runtime/kv/extern.d.ts +11 -0
  22. package/runtime/kv/indexdb.d.ts +7 -0
  23. package/runtime/kv/localstorage.d.ts +6 -0
  24. package/runtime/kv/memory.d.ts +6 -0
  25. package/runtime/kv.d.ts +45 -0
  26. package/runtime/kv.js +543 -0
  27. package/wasm/constants.d.ts +33 -0
  28. package/wasm/core.d.ts +23 -33
  29. package/wasm/dom_cmd.d.ts +15 -0
  30. package/wasm/generated/event_bits.d.ts +2 -0
  31. package/wasm/generated/events.d.ts +1 -0
  32. package/wasm/generated/tag_indices.d.ts +2 -0
  33. package/wasm/generated/tags.d.ts +1 -0
  34. package/wasm/index.d.ts +15 -13
  35. package/wasm/index.js +911 -676
  36. package/wasm/init.dev.js +895 -674
  37. package/wasm/init.js +3 -3
  38. package/wasm/wasi.d.ts +1 -5
  39. package/browser/kv.d.ts +0 -13
  40. package/cloudflare/app.d.ts +0 -2
  41. package/cloudflare/db.d.ts +0 -2
  42. package/cloudflare/index.d.ts +0 -4
  43. package/cloudflare/kv.d.ts +0 -2
  44. package/cloudflare/worker.d.ts +0 -3
  45. package/db.d.ts +0 -22
  46. package/kv.d.ts +0 -42
  47. /package/{aws-lambda → platforms/aws-lambda}/index.d.ts +0 -0
  48. /package/{vercel → platforms/vercel}/index.d.ts +0 -0
  49. /package/{wasi.d.ts → runtime/wasi.d.ts} +0 -0
package/wasm/init.js CHANGED
@@ -1,3 +1,3 @@
1
- var N={nan:0,null:1,true:2,false:3,undefined:4,globalThis:5,runtime:6},se=6,Z=new TextEncoder,ae=new TextDecoder("utf-8"),F=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(n,e,r,t){let o=this.loadValue(e),i=this.loadString(r,t),c=Reflect.get(o,i);this.storeValue(n,c)}valueSet(n,e,r,t){let o=this.loadValue(n),i=this.loadString(e,r),c=this.loadRef(t);Reflect.set(o,i,c)}valueDeinit(n){n>se&&(this.values[n]=null,this.idPool.push(n))}valueObjectCreate(n){this.storeValue(n,new Object)}valueStringCreate(n,e,r){let t=this.loadString(e,r);this.storeValue(n,t)}valueStringLen(n){let e=this.loadValue(n);return Z.encode(e).byteLength}valueStringCopy(n,e,r){if(this.memory==null)return;let t=this.loadValue(n),o=Z.encode(t);o.byteLength>r||o.length!==0&&new Uint8Array(this.memory.buffer,e,o.length).set(o)}valueNew(n,e,r,t){let o=this.loadValue(e),i=[];for(let m=0;m<t;m++)i.push(this.loadRef(r+m*8));let c=Reflect.construct(o,i);this.storeValue(n,c)}funcApply(n,e,r,t,o){let i=this.loadValue(e),c=this.loadRef(r),m=[];for(let u=0;u<o;u++)m.push(this.loadRef(t+u*8));let s=Reflect.apply(i,c,m);this.storeValue(n,s)}loadValue(n){return this.values[n]}deleteValue(n){let e=this.values[n];return this.valueDeinit(n),e}loadRef(n){if(this.memory==null)return;let r=new DataView(this.memory.buffer).getFloat64(n,!0);if(!isNaN(r))return r;let t=this.loadRefId(n);return this.values[t]}loadRefId(n){return this.memory==null?0:new DataView(this.memory.buffer).getUint32(n,!0)}storeValue(n,e){if(this.memory==null)return;let r=new DataView(this.memory.buffer);if(typeof e=="number"){isNaN(e)?(r.setUint32(n,N.nan,!0),r.setUint32(n+4,2146959360,!0)):r.setFloat64(n,e,!0);return}if(e===null){r.setUint32(n,N.null,!0),r.setUint32(n+4,2146959360,!0);return}if(e===void 0){r.setUint32(n,N.undefined,!0),r.setUint32(n+4,2146959360,!0);return}if(typeof e=="boolean"){r.setUint32(n,e?N.true:N.false,!0),r.setUint32(n+4,2146959360,!0);return}if(typeof e=="bigint"){r.setFloat64(n,Number(e),!0);return}let t=this.idPool.pop();t===void 0&&(t=this.values.length),this.values[t]=e;let o=0;switch(typeof e){case"object":o=1;break;case"string":o=2;break;case"symbol":o=3;break;case"function":o=4;break}r.setUint32(n,Number(t),!0),r.setUint32(n+4,2146959360|o,!0)}loadString(n,e){if(this.memory==null)return"";let t=new Uint8ClampedArray(this.memory.buffer,n,Number(e)).slice();return ae.decode(t)}};function H(a){let n=new TextEncoder,e=new TextDecoder;function r(s,u){return e.decode(new Uint8Array(a().buffer,s,u))}function t(s,u,l){return l.length>u?-2:(new Uint8Array(a().buffer,s,l.length).set(l),l.length)}function o(s,u){return new Uint8Array(a().buffer,s,u)}function i(s){let u={};try{u=JSON.parse(s)}catch{for(let l of s.split(`
2
- `)){let d=l.indexOf(":");d>0&&(u[l.slice(0,d)]=l.slice(d+1))}}return u}async function c(s,u,l,d,b,f,p,y,h,A,_,T){let M=r(s,u),K=d>0?r(l,d):"GET",oe=f>0?r(b,f):"{}",ie=y>0?o(p,y):void 0,G=i(oe),$=new AbortController,B=h>0?setTimeout(()=>$.abort(),h):null;try{let I=await fetch(M,{method:K,headers:Object.keys(G).length>0?G:void 0,body:K!=="GET"&&K!=="HEAD"?ie:void 0,signal:$.signal});B&&clearTimeout(B),new DataView(a().buffer).setUint16(A,I.status,!0);let z=new Uint8Array(await I.arrayBuffer());return t(_,T,z)}catch(I){B&&clearTimeout(B);let z=I instanceof Error?I.message:String(I);return console.error(`wasm fetch failed: ${M} (${z})`),-1}}let m=WebAssembly.Suspending;return typeof m!="function"?{fetch:(s,u,l,d,b,f,p,y,h,A,_,T)=>-1}:{fetch:new m(c)}}var U={Event:0,FetchSuccess:1,FetchError:2,Timeout:3,Interval:4,WebSocketOpen:5,WebSocketMessage:6,WebSocketError:7,WebSocketClose:8},v=new F,Q=new ArrayBuffer(8),ue=new DataView(Q);function D(a){let n=v.memory;return v.memory={buffer:Q},v.storeValue(0,a),v.memory=n,ue.getBigUint64(0,!0)}var C=new TextDecoder,E=new TextEncoder,X=null,q=null;function k(){let a=v.memory.buffer;return a!==q&&(q=a,X=new Uint8Array(a)),X}var J=new Map;function ce(a,n){return a*65536+n}function w(a,n){let e=ce(a,n),r=J.get(e);if(r!==void 0)return r;let t=C.decode(k().subarray(a,a+n));return J.set(e,t),t}function O(a,n){k().set(n,a)}function S(a){if(!a)return;let n=WebAssembly.promising;return typeof n!="function"?a:n(a)}function x(a,...n){if(!a)return;let e=a(...n);e&&typeof e.then=="function"&&e.then(void 0,r=>{console.error(r)})}var V=class a{#e=new Map;#t;#r;constructor(n){this._alloc=n.__zx_alloc,this.#t=S(n.__zx_cb);let e=S(n.__zx_fetch_complete);if(!e)throw new Error("__zx_fetch_complete not exported from WASM");this.#r=e,n.memory&&(v.memory=n.memory)}#n(n,e,r){let t=this.#t;if(!t){console.warn("__zx_cb not exported from WASM");return}let o=D(r);x(t,n,e,o)}fetchAsync(n,e,r,t,o,i,c,m,s,u){let l=w(n,e),d=t>0?w(r,t):"GET",b=i>0?w(o,i):"{}",f=m>0?k().subarray(c,c+m):void 0,p={};try{p=JSON.parse(b)}catch{for(let _ of b.split(`
3
- `)){let T=_.indexOf(":");T>0&&(p[_.slice(0,T)]=_.slice(T+1))}}let y=new AbortController,h=s>0?setTimeout(()=>y.abort(),s):null,A={method:d,headers:Object.keys(p).length>0?p:void 0,body:d!=="GET"&&d!=="HEAD"?f:void 0,signal:y.signal};fetch(l,A).then(async _=>{h&&clearTimeout(h);let T=new Uint8Array(await _.arrayBuffer());this._notifyFetchComplete(u,_.status,T,!1)}).catch(_=>{h&&clearTimeout(h);let M=_.name==="AbortError"?"Request timeout":_.message??"Fetch failed";this._notifyFetchComplete(u,0,M,!0)})}_notifyFetchComplete(n,e,r,t){let o=this.#r,i=typeof r=="string"?E.encode(r):r,c=this._alloc(i.length);O(c,i),x(o,n,e,c,i.length,t?1:0)}setTimeout(n,e){setTimeout(()=>{this.#n(U.Timeout,n,null)},e)}setInterval(n,e){let r=setInterval(()=>{this.#n(U.Interval,n,null)},e);this.#e.set(n,r)}clearInterval(n){let e=this.#e.get(n);e!==void 0&&(clearInterval(e),this.#e.delete(n))}dispose(){for(let n of this.#e.values())clearInterval(n);this.#e.clear()}_writeStringToWasm(n){return this._writeBytesToWasm(E.encode(n))}_writeBytesToWasm(n){let e=this._alloc(n.length);return O(e,n),{ptr:e,len:n.length}}static log(n,e,r){let t=C.decode(k().subarray(e,e+r));switch(n){case 0:console.error(t);break;case 1:console.warn(t);break;case 3:console.debug(t);break;default:console.log(t);break}}static createImportObject(n){return{...v.importObject(),__zx_net:H(()=>{if(!v.memory)throw new Error("WASM memory is not ready");return v.memory}),__zx:{_log:(e,r,t)=>a.log(e,r,t),_fetchAsync:(e,r,t,o,i,c,m,s,u,l)=>{n.current?.fetchAsync(e,r,t,o,i,c,m,s,u,l)},_setTimeout:(e,r)=>{n.current?.setTimeout(e,r)},_setInterval:(e,r)=>{n.current?.setInterval(e,r)},_clearInterval:e=>{n.current?.clearInterval(e)}}}}};function Y(a){if(!(a<60))return{expirationTtl:a}}function me(a){let n=a;return typeof n.getSync=="function"&&typeof n.putSync=="function"&&typeof n.deleteSync=="function"&&typeof n.listSync=="function"}function ee(a,n){let e=new TextEncoder,r=new TextDecoder;function t(s,u){return r.decode(new Uint8Array(n().buffer,s,u))}function o(s,u,l){return l.length>u?-2:(new Uint8Array(n().buffer,s,l.length).set(l),l.length)}function i(s){return a[s]??a.default??null}let c=WebAssembly.Suspending;if(typeof c!="function"){let s=function(u){let l=i(u);return l&&me(l)?l:null};var m=s;return{kv_get:(u,l,d,b,f,p)=>{let y=s(t(u,l));if(!y)return-1;let h=y.getSync(t(d,b));return h===null?-1:o(f,p,e.encode(h))},kv_put:(u,l,d,b,f,p,y)=>{let h=s(t(u,l));return h&&h.putSync(t(d,b),t(f,p),Y(y)),0},kv_delete:(u,l,d,b)=>{let f=s(t(u,l));return f&&f.deleteSync(t(d,b)),0},kv_list:(u,l,d,b,f,p)=>{let y=s(t(u,l));if(!y)return o(f,p,e.encode("[]"));let h=t(d,b),A=y.listSync(h.length>0?{prefix:h}:void 0);return o(f,p,e.encode(JSON.stringify(A.keys.map(_=>_.name))))}}}return{kv_get:new c(async(s,u,l,d,b,f)=>{let p=i(t(s,u));if(!p)return-1;let y=await p.get(t(l,d));return y===null?-1:o(b,f,e.encode(y))}),kv_put:new c(async(s,u,l,d,b,f,p)=>{let y=i(t(s,u));return y?(await y.put(t(l,d),t(b,f),Y(p)),0):-1}),kv_delete:new c(async(s,u,l,d)=>{let b=i(t(s,u));return b?(await b.delete(t(l,d)),0):-1}),kv_list:new c(async(s,u,l,d,b,f)=>{let p=i(t(s,u));if(!p)return o(b,f,e.encode("[]"));let y=t(l,d),h=await p.list(y.length>0?{prefix:y}:void 0);return o(b,f,e.encode(JSON.stringify(h.keys.map(A=>A.name))))})}}function le(){if(typeof indexedDB>"u")throw new Error("IndexedDB is not available in this environment");return indexedDB}function ne(a){return new Promise((n,e)=>{a.onsuccess=()=>n(a.result),a.onerror=()=>e(a.error??new Error("IndexedDB request failed"))})}function P(a){return new Promise((n,e)=>{a.oncomplete=()=>n(),a.onabort=()=>e(a.error??new Error("IndexedDB transaction aborted")),a.onerror=()=>e(a.error??new Error("IndexedDB transaction failed"))})}function de(a={}){let n=a.databaseName??"ziex-kv",e=a.storeName??"kv",r=a.namespace??"default",t=new Promise((i,c)=>{let m=le().open(n,1);m.onupgradeneeded=()=>{let s=m.result;s.objectStoreNames.contains(e)||s.createObjectStore(e)},m.onsuccess=()=>i(m.result),m.onerror=()=>c(m.error??new Error("Failed to open IndexedDB"))}),o=i=>`${r}:${i}`;return{async get(i){let m=(await t).transaction(e,"readonly"),s=m.objectStore(e),u=await ne(s.get(o(i)));return await P(m),console.debug(`KV GET - Key: ${i}, Value: ${u}`),typeof u=="string"?u:null},async put(i,c){let s=(await t).transaction(e,"readwrite");s.objectStore(e).put(c,o(i)),await P(s),console.debug(`KV PUT - Key: ${i}, Value: ${c}`)},async delete(i){let m=(await t).transaction(e,"readwrite");m.objectStore(e).delete(o(i)),await P(m)},async list(i){let m=(await t).transaction(e,"readonly"),s=m.objectStore(e),u=await ne(s.getAllKeys());await P(m);let l=o(i?.prefix??"");return{keys:u.filter(d=>typeof d=="string"&&d.startsWith(l)).map(d=>({name:d.slice(r.length+1)}))}}}}function be(){if(typeof localStorage>"u")throw new Error("localStorage is not available in this environment");return localStorage}function fe(a={}){let n=be(),e=a.namespace??"default",r=a.storagePrefix??"ziex-kv",t=i=>`${r}:${e}:${i}`,o=t("");return{getSync(i){return n.getItem(t(i))},async get(i){return this.getSync(i)},putSync(i,c){n.setItem(t(i),c)},async put(i,c){this.putSync(i,c)},deleteSync(i){n.removeItem(t(i))},async delete(i){this.deleteSync(i)},listSync(i){let c=o+(i?.prefix??""),m=[];for(let s=0;s<n.length;s+=1){let u=n.key(s);!u||!u.startsWith(c)||m.push({name:u.slice(o.length)})}return{keys:m}},async list(i){return this.listSync(i)}}}function pe(){return typeof WebAssembly.Suspending=="function"&&typeof WebAssembly.promising=="function"}function te(a={}){return{[a.namespace??"default"]:pe()?de(a):fe(a)}}var L=class extends V{#e=new Map;#t;#r;#n;#o;#i;#s;constructor(n){super(n),this.#t=S(n.__zx_ws_onopen),this.#r=S(n.__zx_ws_onmessage),this.#n=S(n.__zx_ws_onerror),this.#o=S(n.__zx_ws_onclose),this.#i=n.__zx_eventbridge,this.#s=S(n.__zx_eventbridge_async??n.__zx_eventbridge)}eventMaySuspend(n,e){return!!((W.get(n)??0)&1<<e)}setEventHandlerMode(n,e,r){let t=1<<e,o=W.get(n)??0,i=r?o|t:o&~t;i===0?W.delete(n):W.set(n,i)}clearEventHandlerModes(n){W.delete(n)}submitFormActionAsync(n,e,r,t){let o=new FormData(n);o.append("__$states",r),fetch(window.location.href,{method:"POST",headers:{"x-action":String(e>>>0)},body:o}).then(async i=>{let c=await i.text();this._notifyFetchComplete(t,i.status,c,!1)}).catch(i=>{let c=i instanceof Error?i.message:"Fetch failed";this._notifyFetchComplete(t,0,c,!0)})}wsConnect(n,e,r,t,o){let i=w(e,r),c=o>0?w(t,o):"",m=c?c.split(",").map(s=>s.trim()).filter(Boolean):void 0;try{let s=m&&m.length>0?new WebSocket(i,m):new WebSocket(i);s.binaryType="arraybuffer",s.onopen=()=>{let u=this.#t;if(!u)return;let l=s.protocol||"",{ptr:d,len:b}=this._writeStringToWasm(l);x(u,n,d,b)},s.onmessage=u=>{let l=this.#r;if(!l)return;let d=u.data instanceof ArrayBuffer,b=d?new Uint8Array(u.data):E.encode(u.data),{ptr:f,len:p}=this._writeBytesToWasm(b);x(l,n,f,p,d?1:0)},s.onerror=u=>{let l=this.#n;if(!l)return;let{ptr:d,len:b}=this._writeStringToWasm("WebSocket error");x(l,n,d,b)},s.onclose=u=>{let l=this.#o;if(!l)return;let d=u.reason||"",{ptr:b,len:f}=this._writeStringToWasm(d);x(l,n,u.code,b,f,u.wasClean?1:0),this.#e.delete(n)},this.#e.set(n,s)}catch(s){let u=this.#n;if(u){let l=s instanceof Error?s.message:"WebSocket connection failed",{ptr:d,len:b}=this._writeStringToWasm(l);x(u,n,d,b)}}}wsSend(n,e,r,t){let o=this.#e.get(n);if(!o||o.readyState!==WebSocket.OPEN)return;let i=k();t?o.send(i.slice(e,e+r)):o.send(C.decode(i.subarray(e,e+r)))}wsClose(n,e,r,t){let o=this.#e.get(n);if(!o)return;let i=t>0?w(r,t):void 0;try{i?o.close(e,i):o.close(e)}catch{o.close()}}dispose(){super.dispose(),W.clear();for(let n of this.#e.values())try{n.close()}catch{}this.#e.clear()}eventbridge(n,e,r){let t=D(r);if(this.eventMaySuspend(n,e)){x(this.#s,n,e,t);return}x(this.#i,n,e,t)}static createImportObject(n){return{...v.importObject(),__zx_net:H(()=>{if(!v.memory)throw new Error("WASM memory is not ready");return v.memory}),__zx:{_log:(e,r,t)=>V.log(e,r,t),_setEventHandlerMode:(e,r,t)=>{n.current?.setEventHandlerMode(e,r,t!==0)},_clearEventHandlerModes:e=>{n.current?.clearEventHandlerModes(e)},_fetchAsync:(e,r,t,o,i,c,m,s,u,l)=>{n.current?.fetchAsync(e,r,t,o,i,c,m,s,u,l)},_setTimeout:(e,r)=>{n.current?.setTimeout(e,r)},_setInterval:(e,r)=>{n.current?.setInterval(e,r)},_clearInterval:e=>{n.current?.clearInterval(e)},_wsConnect:(e,r,t,o,i)=>{n.current?.wsConnect(e,r,t,o,i)},_wsSend:(e,r,t,o)=>{n.current?.wsSend(e,r,t,o)},_wsClose:(e,r,t,o)=>{n.current?.wsClose(e,r,t,o)},_ce:(e,r)=>{let t=ge[e],o=e>=ye?document.createElementNS("http://www.w3.org/2000/svg",t):document.createElement(t);return o.__zx_ref=Number(r),g.set(r,o),D(o)},_ct:(e,r,t)=>{let o=w(e,r),i=document.createTextNode(o);return i.__zx_ref=Number(t),g.set(t,i),D(i)},_sa:(e,r,t,o,i)=>{g.get(e)?.setAttribute(w(r,t),w(o,i))},_sp:(e,r,t,o,i)=>{let c=g.get(e);if(c){let m=w(r,t),s=w(o,i);m==="checked"||m==="selected"||m==="muted"?c[m]=s!=="false":c[m]=s}},_ra:(e,r,t)=>{g.get(e)?.removeAttribute(w(r,t))},_snv:(e,r,t)=>{let o=g.get(e);o&&(o.nodeValue=w(r,t))},_srh:(e,r,t)=>{let o=g.get(e);o&&(o.innerHTML=w(r,t))},_ac:(e,r)=>{let t=g.get(e),o=g.get(r);t&&o&&t.appendChild(o)},_ib:(e,r,t)=>{let o=g.get(e),i=g.get(r),c=g.get(t)??null;o&&i&&o.insertBefore(i,c)},_rc:(e,r)=>{let t=g.get(e),o=g.get(r);t&&o&&(t.removeChild(o),j(o))},_rpc:(e,r,t)=>{let o=g.get(e),i=g.get(r),c=g.get(t);o&&i&&c&&(o.replaceChild(i,c),j(c))},_getLocationHref:(e,r)=>{let t=E.encode(window.location.href),o=Math.min(t.length,r);return O(e,t.subarray(0,o)),o},_getFormData:(e,r,t)=>{let o=g.get(e);if(!o||!(o instanceof HTMLFormElement))return 0;let i=new FormData(o),c=new URLSearchParams(i).toString(),m=E.encode(c),s=Math.min(m.length,t);return O(r,m.subarray(0,s)),s},_submitFormAction:(e,r)=>{let t=g.get(e);if(!t||!(t instanceof HTMLFormElement))return;let o=new FormData(t);fetch(window.location.href,{method:"POST",headers:{"x-action":String(r>>>0)},body:o}).catch(()=>{})},_submitFormActionAsync:(e,r,t,o,i)=>{let c=g.get(e);if(!c||!(c instanceof HTMLFormElement))return;let m=o>0?w(t,o):"[]";n.current?.submitFormActionAsync(c,r,m,i)}}}}},g=new Map;function j(a){let n=a.__zx_ref;n!==void 0&&g.delete(BigInt(n));let e=a.childNodes;for(let r=0;r<e.length;r++)j(e[r])}var ye=140,ge=["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"],he=[{domType:"click",eventTypeId:0},{domType:"dblclick",eventTypeId:1},{domType:"input",eventTypeId:2},{domType:"change",eventTypeId:3},{domType:"submit",eventTypeId:4},{domType:"focusin",eventTypeId:5},{domType:"focusout",eventTypeId:6},{domType:"keydown",eventTypeId:7},{domType:"keyup",eventTypeId:8},{domType:"keypress",eventTypeId:9},{domType:"mouseenter",eventTypeId:10},{domType:"mouseleave",eventTypeId:11},{domType:"mousedown",eventTypeId:12},{domType:"mouseup",eventTypeId:13},{domType:"mousemove",eventTypeId:14},{domType:"touchstart",eventTypeId:15},{domType:"touchend",eventTypeId:16},{domType:"touchmove",eventTypeId:17},{domType:"scroll",eventTypeId:18}],W=new Map;function ve(a,n="body"){let e=document.querySelector(n);if(!e)return()=>{};let r=[];for(let t of he){let o=c=>{let m=c.target;for(;m&&m!==document.body;){let s=m.__zx_ref;if(s!==void 0&&(a.eventbridge(BigInt(s),t.eventTypeId,c),c.cancelBubble))break;m=m.parentElement}},i={passive:t.domType.startsWith("touch")||t.domType==="scroll"};e.addEventListener(t.domType,o,i),r.push(()=>e.removeEventListener(t.domType,o,i))}return()=>{for(let t of r)t()}}var we="/assets/_/main.wasm",R=null;function _e(a={}){return{url:a.url,eventDelegationRoot:a.eventDelegationRoot,importObject:a.importObject,kv:a.kv}}async function re(a={}){let n=_e(a);R&&(R.dispose(),R=null);let e=a.url??document.getElementById("__$wasmlink")?.href??we,r={current:null},t=null,o=a.kv??te(),i={__zx_kv:ee(o,()=>{if(t)return t;if(v.memory)return v.memory;throw new Error("WASM memory is not ready")})},c=Object.assign({},L.createImportObject(r),i,a.importObject),m=await WebAssembly.instantiateStreaming(fetch(e),c),{instance:s}=m;t=s.exports.memory,v.memory=t;let u=new L(s.exports);r.current=u,g.clear();let l=ve(u,a.eventDelegationRoot??"body"),d=S(s.exports.mainClient);return x(d),R={options:n,dispose:()=>{l(),u.dispose(),g.clear()}},{source:m,bridge:u}}re();
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();
package/wasm/wasi.d.ts CHANGED
@@ -20,9 +20,5 @@ export declare class ZxWasiBridge {
20
20
  * Returns only the `__zx` namespace (log, fetch, timers).
21
21
  * Does NOT include jsz.importObject() - the server binary does not use jsz.
22
22
  */
23
- static createImportObject(bridgeRef: {
24
- current: ZxWasiBridge | null;
25
- }): {
26
- __zx: Record<string, unknown>;
27
- };
23
+ static createImportObject(bridgeRef: [ZxWasiBridge | null]): WebAssembly.Imports;
28
24
  }
package/browser/kv.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import type { KVNamespace, SyncKVNamespace } from "../kv";
2
- export type IndexedDbKVOptions = {
3
- databaseName?: string;
4
- storeName?: string;
5
- namespace?: string;
6
- };
7
- export type BrowserKVOptions = IndexedDbKVOptions & {
8
- storagePrefix?: string;
9
- };
10
- export declare function createIndexedDbKV(options?: IndexedDbKVOptions): KVNamespace;
11
- export declare function createLocalStorageKV(options?: BrowserKVOptions): SyncKVNamespace;
12
- export declare function hasJSPI(): boolean;
13
- export declare function createBrowserKVBindings(options?: BrowserKVOptions): Record<string, KVNamespace>;
@@ -1,2 +0,0 @@
1
- export { Ziex, resolveModule } from "../app";
2
- export type { WasmInput } from "../app";
@@ -1,2 +0,0 @@
1
- export { createD1Imports } from "../db";
2
- export type { D1Database, D1PreparedStatement, D1ExecResult, D1Value } from "../db";
@@ -1,4 +0,0 @@
1
- export * as worker from "../runtime";
2
- export * as kv from "../kv";
3
- export { Ziex } from "../app";
4
- export { createWebSocketDO } from "./do";
@@ -1,2 +0,0 @@
1
- export { createMemoryKV, createKVImports } from "../kv";
2
- export type { KVNamespace } from "../kv";
@@ -1,3 +0,0 @@
1
- export { run, buildWsImports, attachWebSocket } from "../runtime";
2
- export type { DurableObjectNamespace, WsState } from "../runtime";
3
- export { createWebSocketDO } from "./do";
package/db.d.ts DELETED
@@ -1,22 +0,0 @@
1
- export type D1Value = null | string | number | boolean | ArrayBuffer | ArrayBufferView;
2
- export interface D1ExecResult {
3
- meta?: {
4
- changes?: number;
5
- last_row_id?: number;
6
- };
7
- }
8
- export interface D1PreparedStatement {
9
- bind(...values: D1Value[]): D1PreparedStatement;
10
- first<T = Record<string, unknown>>(): Promise<T | null>;
11
- all<T = Record<string, unknown>>(): Promise<{
12
- results?: T[];
13
- }>;
14
- raw(options?: {
15
- columnNames?: boolean;
16
- }): Promise<unknown[][]>;
17
- run(): Promise<D1ExecResult>;
18
- }
19
- export interface D1Database {
20
- prepare(query: string): D1PreparedStatement;
21
- }
22
- export declare function createD1Imports(bindings: Record<string, D1Database>, getMemory: () => WebAssembly.Memory): Record<string, unknown>;
package/kv.d.ts DELETED
@@ -1,42 +0,0 @@
1
- export interface KVNamespace {
2
- get(key: string): Promise<string | null>;
3
- put(key: string, value: string, options?: {
4
- expiration?: number;
5
- expirationTtl?: number;
6
- }): Promise<void>;
7
- delete(key: string): Promise<void>;
8
- list(options?: {
9
- prefix?: string;
10
- }): Promise<{
11
- keys: {
12
- name: string;
13
- }[];
14
- }>;
15
- }
16
- export interface SyncKVNamespace extends KVNamespace {
17
- getSync(key: string): string | null;
18
- putSync(key: string, value: string, options?: {
19
- expiration?: number;
20
- expirationTtl?: number;
21
- }): void;
22
- deleteSync(key: string): void;
23
- listSync(options?: {
24
- prefix?: string;
25
- }): {
26
- keys: {
27
- name: string;
28
- }[];
29
- };
30
- }
31
- /**
32
- * In-memory KV namespace. Used as the default shim on platforms that don't
33
- * provide a real KV binding (e.g. Vercel). Data lives only for the lifetime
34
- * of the isolate instance.
35
- */
36
- export declare function createMemoryKV(): KVNamespace;
37
- /**
38
- * Create a `__zx_kv` import object for use with `run({ kv: ... })`.
39
- * Always returns a valid import object. When JSPI is unavailable it uses
40
- * synchronous bindings when available, otherwise falls back to stubbed no-ops.
41
- */
42
- export declare function createKVImports(bindings: Record<string, KVNamespace>, getMemory: () => WebAssembly.Memory): Record<string, unknown>;
File without changes
File without changes
File without changes