tinybase 8.5.0-beta.2 → 8.5.0-beta.4
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/@types/ui-react-dom-charts/index.d.ts +369 -49
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +396 -70
- package/common/index.js +1 -1
- package/common/with-schemas/index.js +1 -1
- package/index.js +3 -2
- package/mergeable-store/index.js +3 -2
- package/mergeable-store/with-schemas/index.js +3 -2
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom-charts/index.js +1 -1
- package/min/ui-react-dom-charts/index.js.gz +0 -0
- package/min/ui-react-dom-charts/with-schemas/index.js +1 -1
- package/min/ui-react-dom-charts/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +7 -6
- package/omni/with-schemas/index.js +7 -6
- package/package.json +10 -10
- package/persisters/index.js +1 -1
- package/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/persisters/persister-electric-sql/index.js +1 -1
- package/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/persisters/persister-expo-sqlite/index.js +1 -1
- package/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/persisters/persister-libsql/index.js +1 -1
- package/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/persisters/persister-pglite/index.js +1 -1
- package/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/persisters/persister-postgres/index.js +1 -1
- package/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/persisters/persister-powersync/index.js +1 -1
- package/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/persisters/persister-react-native-sqlite/index.js +1 -1
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/persisters/persister-remote/index.js +3 -3
- package/persisters/persister-remote/with-schemas/index.js +3 -3
- package/persisters/persister-sqlite-bun/index.js +1 -1
- package/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/persisters/persister-sqlite-wasm/index.js +1 -1
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/persisters/persister-sqlite3/index.js +1 -1
- package/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/persisters/with-schemas/index.js +1 -1
- package/readme.md +13 -13
- package/releases.md +57 -57
- package/synchronizers/index.js +2 -1
- package/synchronizers/synchronizer-broadcast-channel/index.js +2 -1
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -1
- package/synchronizers/synchronizer-local/index.js +2 -1
- package/synchronizers/synchronizer-local/with-schemas/index.js +2 -1
- package/synchronizers/synchronizer-ws-client/index.js +2 -1
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +2 -1
- package/synchronizers/synchronizer-ws-server/index.js +2 -1
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +2 -1
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +2 -1
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +2 -1
- package/synchronizers/with-schemas/index.js +2 -1
- package/ui-react-dom-charts/index.js +753 -306
- package/ui-react-dom-charts/with-schemas/index.js +753 -306
- package/with-schemas/index.js +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addDatabaseChangeListener as e}from"expo-sqlite";import{existsSync as t,writeFileSync as a,watch as s}from"fs";import{writeFile as n,readFile as o}from"fs/promises";import{Map as r}from"yjs";import{DurableObject as i}from"cloudflare:workers";const l=e=>typeof e,c="tinybase",d="",u=",",g=l(d),w=l(!0),h=l(0),y=l(l),f="object",b="array",v="true",S="type",C="default",p="allowNull",m="utf8",R="Listener",I="Result",T="add",L="Has",E="Ids",D="Table",N=D+"s",M=D+E,O="Row",A=O+"Count",P=O+E,k="Sorted"+O+E,_="Cell",V=_+E,$="Value",x=$+"s",W=$+E,H="message",F="error",J="t",U="v",j=e=>d+e,G=(e,t)=>e.startsWith(t),q=(e,t)=>e.endsWith(t),B=(e,t)=>e?.match(t),z=(e,t=d,a)=>e.split(t,a),Q=(e,t,a)=>e.replace(t,a),Y=Promise,X=Math,K=e=>(t,a,s)=>e(t)?s?.():a(t),Z=globalThis,ee=Z.window,te=String,ae=(e,t,a)=>setInterval(e,1e3*t),se=clearInterval,ne=(e,t=0)=>setTimeout(e,1e3*t),oe=X.max,re=X.min,ie=X.floor,le=X.random,ce=isFinite,de=e=>null==e,ue=e=>void 0===e,ge=e=>null===e,we=e=>!0===e,he=e=>!1===e,ye=K(de),fe=K(ue),be=e=>e==g||e==w,ve=e=>l(e)==g,Se=e=>l(e)==y,Ce=e=>Array.isArray(e),pe=(e,t,a)=>e.slice(t,a),me=e=>e.length,Re=()=>{},Ie=()=>{},Te=e=>new Y(e),Le=async e=>Y.all(e),Ee=Z.structuredClone,De=e=>{throw Error(e)},Ne=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},Me=(e,t)=>e.includes(t),Oe=(e,t)=>e.every(t),Ae=(e,t)=>me(e)===me(t)&&Oe(e,(e,a)=>t[a]===e),Pe=(e,t)=>Oe(e,(a,s)=>0==s||t(e[s-1],a)<=0),ke=(e,t)=>e.sort(t),_e=(e,t)=>e.forEach(t),Ve=(e,t=d)=>e.join(t),$e=(e,t)=>e.map(t),xe=e=>He(e,(e,t)=>e+t,0),We=e=>0==me(e),He=(e,t,a)=>e.reduce(t,a),Fe=(e,t)=>e.filter(t),Je=(e,t)=>e.splice(0,t),Ue=(e,...t)=>e.push(...t),je=e=>e.pop(),Ge=(e,...t)=>e.unshift(...t),qe=e=>e.shift(),Be=e=>t=>He(et(t),(t,a)=>t+e(a),0),ze=e=>e?.size??0,Qe=Be(ze),Ye=Be(Qe),Xe=Be(Ye),Ke=(e,t)=>e?.has(t)??!1,Ze=e=>ue(e)||0==ze(e),et=e=>[...e?.values()??[]],tt=e=>e.clear(),at=(e,t)=>e?.forEach(t),st=(e,t)=>e?.delete(t),nt=Object,ot=e=>nt.getPrototypeOf(e),rt=nt.isFrozen,it=nt.entries,lt=e=>!de(e)&&ye(ot(e),e=>e==nt.prototype||de(ot(e)),()=>!0),ct=nt.keys,dt=nt.freeze,ut=(e=[])=>nt.fromEntries(e),gt=(...e)=>nt.assign({},...e),wt=(e,t)=>fe(e,e=>e[t]),ht=(e,t)=>t in e,yt=(e,t)=>(delete e[t],e),ft=(e,t)=>_e(it(e),([e,a])=>t(a,e)),bt=(e,t)=>$e(it(e),([e,a])=>t(a,e)),vt=(e,t)=>ut(bt(e,(e,a)=>[a,t(e,a)])),St=e=>nt.values(e),Ct=e=>me(ct(e)),pt=e=>lt(e)&&0==Ct(e),mt=(e,t,a=(e,t)=>e===t)=>{const s=it(e);return me(s)===Ct(t)&&Oe(s,([e,s])=>lt(s)?!!lt(t[e])&&mt(t[e],s,a):a(s,t[e]))},Rt=(e,t,a)=>(ht(e,t)||(e[t]=a()),e[t]),It=(e,t,a,s=0)=>de(e)||!lt(e)||!s&&pt(e)||rt(e)?(a?.(),!1):(ft(e,(a,s)=>{t(a,s)||yt(e,s)}),!!s||!pt(e)),Tt=Map,Lt=e=>new Tt(e),Et=e=>[...e?.keys()??[]],Dt=(e,t)=>e?.get(t),Nt=(e,t)=>at(e,(e,a)=>t(a,e)),Mt=(e,t)=>$e([...e?.entries()??[]],([e,a])=>t(a,e)),Ot=(e,t,a)=>ue(a)?(st(e,t),e):e?.set(t,a),At=(e,t,a,s)=>(Ke(e,t)?s?.(Dt(e,t)):Ot(e,t,a()),Dt(e,t)),Pt=(e,t,a,s=Ot)=>(vt(t,(t,s)=>a(e,s,t)),Nt(e,a=>ht(t,a)?0:s(e,a)),e),kt=(e,t,a,s)=>{const n={};return at(e,(e,o)=>{if(!a?.(e,o)){const a=t?t(e,o):e;s?.(a)||(n[o]=a)}}),n},_t=(e,t,a)=>kt(e,e=>kt(e,t,a),Ze,pt),Vt=(e,t,a)=>kt(e,e=>_t(e,t,a),Ze,pt),$t=(e,t)=>{const a=Lt();return at(e,(e,s)=>a.set(s,t?.(e)??e)),a},xt=e=>$t(e,$t),Wt=e=>$t(e,xt),Ht=(e,t,a,s,n=0)=>fe((a?At:Dt)(e,t[n],n>me(t)-2?a:Lt),o=>{if(n>me(t)-2)return s?.(o)&&Ot(e,t[n]),o;const r=Ht(o,t,a,s,n+1);return Ze(o)&&Ot(e,t[n]),r}),Ft=e=>new Set(Ce(e)||ue(e)?e:[e]),Jt=(e,t)=>e?.add(t),Ut=(e,t,a,s,n)=>{const o=e.hasRow,r=Lt(),i=Lt(),l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=t=>fe(Dt(u,t),a=>{_e(et(a),t=>{e.delListener(t),st(a,t)}),Ot(u,t)}),w=(e,a)=>{Ot(r,e,a),Ke(i,e)||(Ot(i,e,t()),Ot(c,e,Lt()),Ot(d,e,Lt()),n(l))},h=e=>{Ot(r,e),Ot(i,e),Ot(c,e),Ot(d,e),g(e),n(l)};return[()=>e,()=>Et(r),e=>Nt(i,e),e=>Ke(i,e),e=>Dt(r,e),e=>Dt(i,e),(e,t)=>Ot(i,e,t),w,(t,s,n,r,i)=>{w(t,s);const l=Lt(),h=Lt(),y=Dt(c,t),f=Dt(d,t),b=t=>{const n=a=>e.getCell(s,t,a),c=Dt(y,t),d=o(s,t)?a(r(n,t)):void 0;if(c===d||Ce(c)&&Ce(d)&&Ae(c,d)||Ot(l,t,[c,d]),!ue(i)){const e=Dt(f,t),a=o(s,t)?i(n,t):void 0;e!=a&&Ot(h,t,a)}},v=e=>{n(()=>{at(l,([,e],t)=>Ot(y,t,e)),at(h,(e,t)=>Ot(f,t,e))},l,h,y,f,e),tt(l),tt(h)};Nt(y,b),e.hasTable(s)&&_e(e.getRowIds(s),e=>{Ke(y,e)||b(e)}),v(!0),g(t),((e,...t)=>{const a=At(u,e,Ft);_e(t,e=>Jt(a,e))})(t,e.addRowListener(s,null,(e,t,a)=>b(a)),e.addTableListener(s,()=>v()))},h,e=>s(e,l),()=>Nt(u,h)]},jt=(e,t)=>ve(e)?t=>t(e):e??(()=>t??d),Gt=(e,t)=>{const a=new WeakMap;return s=>{a.has(s)||a.set(s,e(s));const n=a.get(s);return t?.(n),n}},qt=/^\d+$/,Bt=()=>{const e=[];let t=0;return[a=>(a?qe(e):null)??d+t++,t=>{qt.test(t)&&me(e)<1e3&&Ue(e,t)}]},zt=e=>{let t;const[a,s]=Bt(),n=Lt();return[(s,o,r,i=[],l=()=>[])=>{t??=e();const c=a(1);return Ot(n,c,[s,o,r,i,l]),Jt(Ht(o,r??[d],Ft),c),c},(e,a,...s)=>_e(((e,t=[d])=>{const a=[],s=(e,n)=>n==me(t)?Ue(a,e):ge(t[n])?at(e,e=>s(e,n+1)):_e([t[n],null],t=>s(Dt(e,t),n+1));return s(e,0),a})(e,a),e=>at(e,e=>Dt(n,e)[0](t,...a??[],...s))),e=>fe(Dt(n,e),([,t,a])=>(Ht(t,a??[d],void 0,t=>(st(t,e),Ze(t)?1:0)),Ot(n,e),s(e),a)),e=>fe(Dt(n,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=me(r);i==me(a)?e(t,...r,...n(r)):ge(a[i])?_e(s[i]?.(...r)??[],e=>o(...r,e)):o(...r,a[i])};o()})]},Qt=Gt(e=>{let t,a,s,n=100,o=Lt(),r=Lt(),i=1;const l=Lt(),c=Lt(),[u,g,w]=zt(()=>P),h=Lt(),y=Lt(),f=[],b=[],v=(t,a)=>{i=0,e.transaction(()=>{const[s,n]=Dt(h,a);at(s,(a,s)=>at(a,(a,n)=>at(a,(a,o)=>e._[5](s,n,o,a[t],!0)))),at(n,(a,s)=>e._[6](s,a[t],!0))}),i=1},S=e=>{Ot(h,e),Ot(y,e),g(c,[e])},C=(e,t)=>_e(Je(e,t??me(e)),S),p=()=>C(f,me(f)-n),m=()=>fe(t,()=>{Ue(f,t),p(),C(b),t=void 0,s=1}),R=()=>{t=je(f),s=1};let I,T;const L=(e=d)=>(ue(t)&&(t=d+a++,Ot(h,t,[o,r]),O(t,e),o=Lt(),r=Lt(),s=1),t),E=()=>{We(f)||(Ge(b,L()),v(0,t),t=je(f),s=1)},D=()=>{We(b)||(Ue(f,t),t=qe(b),v(1,t),s=1)},N=()=>{s&&(g(l),s=0)},M=e=>{const t=L(e);return N(),t},O=(e,t)=>(A(e)&&Dt(y,e)!==t&&(Ot(y,e,t),g(c,[e])),P),A=e=>Ke(h,e),P={setSize:e=>(n=e,p(),P),addCheckpoint:M,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...f],t,[...b]],forEachCheckpoint:e=>Nt(y,e),hasCheckpoint:A,getCheckpoint:e=>Dt(y,e),goBackward:()=>(E(),N(),P),goForward:()=>(D(),N(),P),goTo:e=>{const a=Me(f,e)?E:Me(b,e)?D:void 0;for(;!ue(a)&&e!=t;)a();return N(),P},addCheckpointIdsListener:e=>u(e,l),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(w(e),P),clear:()=>(C(f),C(b),ue(t)||S(t),t=void 0,a=0,M(),P),clearForward:()=>(We(b)||(C(b),g(l)),P),destroy:()=>{e.delListener(I),e.delListener(T)},getListenerStats:()=>({checkpointIds:Qe(l),checkpoint:Qe(c)}),_registerListeners:()=>{I=e.addCellListener(null,null,null,(e,t,a,s,n,r)=>{if(i){m();const e=At(o,t,Lt),i=At(e,a,Lt),l=At(i,s,()=>[r,void 0]);l[1]=n,l[0]===n&&Ze(Ot(i,s))&&Ze(Ot(e,a))&&Ze(Ot(o,t))&&R(),N()}}),T=e.addValueListener(null,(e,t,a,s)=>{if(i){m();const e=At(r,t,()=>[s,void 0]);e[1]=a,e[0]===a&&Ze(Ot(r,t))&&R(),N()}})}};return dt(P.clear())},e=>e._registerListeners()),Yt=z("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Xt=Lt($e(Yt,(e,t)=>[e,t])),Kt=e=>Yt[63&e],Zt=(e,t)=>Dt(Xt,e[t])??0,ea=Z.crypto?e=>Z.crypto.getRandomValues(e):e=>$e(e,()=>ie(256*le())),ta=(e=16)=>He(ea(new Uint8Array(e)),(e,t)=>e+Kt(t),d),aa=JSON.stringify,sa=JSON.parse,na=e=>aa(e,(e,t)=>t instanceof Map?nt.fromEntries([...t]):t),oa=e=>aa(e,(e,t)=>ue(t)?"":t),ra=e=>ia(sa(e)),ia=e=>""===e?void 0:Ce(e)?$e(e,ia):lt(e)?vt(e,ia):e,la=new Z.TextEncoder,ca=e=>{let t=2166136261;return _e(la.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},da=(e,t)=>(e^t)>>>0,ua=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)^ga(t,0)),0),ga=(e,t)=>ca(e+":"+t),wa=(e,t)=>ca(na(e??null)+":"+t),ha=wa,ya=ga,fa=ua,ba=ga,va=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)),0),Sa=ga,Ca=va,pa=2**36,ma=2**30,Ra=2**24,Ia=2**18,Ta=4096,La=e=>{const t=ca(e);return Kt(t/Ra)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)},Ea=(e,t=Date.now)=>{let a=0,s=-1;const n=fe(e,La,()=>ta(5)),o=e=>{const n=a,[o,r]=ue(e)||""==e?[0,0]:i(e);a=oe(n,o,t()),s=a==n?a==o?oe(s,r):s:a==o?r:-1},r=(e,t,a)=>Kt(e/pa)+Kt(e/ma)+Kt(e/Ra)+Kt(e/Ia)+Kt(e/Ta)+Kt(e/64)+Kt(e)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)+(ue(a)?n:La(a)),i=e=>[Zt(e,0)*pa+Zt(e,1)*ma+Zt(e,2)*Ra+Zt(e,3)*Ia+Zt(e,4)*Ta+64*Zt(e,5)+Zt(e,6),Zt(e,7)*Ia+Zt(e,8)*Ta+64*Zt(e,9)+Zt(e,10),e.slice(11)];return[()=>(o(),r(a,++s)),o,r,i,()=>a,()=>s,()=>n]},Da=(e,t)=>(e??0)<(t??0)?-1:1,Na=Gt(e=>{const t=Lt(),a=Lt(),[s,n,o]=zt(()=>S),[r,i,l,c,u,g,w,,h,y,f,b]=Ut(e,Lt,e=>ue(e)?d:Ce(e)?$e(e,j):j(e),s,n),v=(t,a,s)=>{const n=u(t);at(s,(t,s)=>a(s,a=>at(t,t=>a(t,a=>e.forEachCell(n,t,a)))))},S={setIndexDefinition:(e,s,o,r,i,l=Da)=>{const c=ue(i)?void 0:([e],[t])=>i(e,t);return h(e,s,(s,o,i,d,u,h)=>{let y=0;const f=Ft(),b=Ft(),v=g(e);if(at(o,([e,t],a)=>{const s=Ft(e),n=Ft(t);at(s,e=>st(n,e)?st(s,e):0),at(s,e=>{Jt(f,e),fe(Dt(v,e),t=>{st(t,a),Ze(t)&&(Ot(v,e),y=1)})}),at(n,e=>{Jt(f,e),Ke(v,e)||(Ot(v,e,Ft()),y=1),Jt(Dt(v,e),a),ue(r)||Jt(b,e)})}),s(),Ze(u)||(h?Nt(v,e=>Jt(b,e)):Nt(i,e=>fe(Dt(d,e),e=>_e(Ce(e)?e:[e],e=>Jt(b,e)))),at(b,e=>{const t=(t,a)=>l(Dt(u,t),Dt(u,a),e),a=[...Dt(v,e)];Pe(a,t)||(Ot(v,e,Ft(ke(a,t))),Jt(f,e))})),(y||h)&&!ue(c)){const t=[...v];Pe(t,c)||(w(e,Lt(ke(t,c))),y=1)}y&&n(t,[e]),at(f,t=>n(a,[e,t]))},jt(o),fe(r,jt)),S},delIndexDefinition:e=>(y(e),S),getStore:r,getIndexIds:i,forEachIndex:e=>l((t,a)=>e(t,e=>v(t,e,a))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ke(g(e),t),getTableId:u,getSliceIds:e=>Et(g(e)),getSliceRowIds:(e,t)=>et(Dt(g(e),t)),addIndexIdsListener:f,addSliceIdsListener:(e,a)=>s(a,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,a,[e,t]),delListener:e=>(o(e),S),destroy:b,getListenerStats:()=>({sliceIds:Qe(t),sliceRowIds:Ye(a)})};return dt(S)}),Ma=e=>{if(ge(e))return"null";if(Ce(e))return b;if(lt(e))return f;const t=l(e);return be(t)||t==h&&ce(e)?t:void 0},Oa=e=>ue(e)||!ue(Ma(e)),Aa=e=>e==f||e==b,Pa=e=>lt(e)||Ce(e)?"�"+aa(e):e,ka=e=>ve(e)&&"�"==e[0],_a=(e,t,a)=>!a&&ka(e)?sa(pe(e,1)):e,Va=([e,t])=>$a(e,t),$a=(e,t)=>t?[e,t]:[e],xa=(e,t,a)=>[e,t,a],Wa=e=>e[2],Ha=(e,t)=>t>e?(e?ca(e):0)^ca(t):0,Fa=(e,t)=>((e??"")>(t??"")?e:t)??"",Ja=(e,t,a)=>{t>e[1]&&(e[1]=t),e[2]=a>>>0},Ua=(e=d)=>$a(ut(),e),ja=(e=d)=>[Lt(),e,0],Ga=([e,t,a],s)=>[kt(e,s),t,a],qa=([e,t],a=Va)=>$a(kt(e,a),t),Ba=(e,t)=>{return Ce(e)&&3==me(e)&&ve(e[1])&&(a=e[2],l(a)==h)&&ce(e[2])&&t(e[0]);var a},za=e=>[e,e],Qa=(e,t=Qe)=>t(e[0])+t(e[1]),Ya=()=>[Lt(),Lt()],Xa=e=>[...e],Ka=([e,t])=>e===t,Za=(e,t,a)=>Ot(e,t,Dt(e,t)==-a?void 0:a),es=([e,t],[a,s])=>mt(e,a)&&mt(t,s),ts=()=>{let e,t,a=!1,s=!1,n=0,o=[],r=[],i=0;const l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=Lt(),w=Lt(),y=Lt(),f=Lt(),b=Lt(),v=Lt(),m=Lt(),I=Lt(),E=Lt(),k=Lt(),H=Ft(),F=Lt(),J=Lt(),U=Lt(),G=Lt(),q=Ya(),B=Ya(),z=Ya(),Q=Ya(),Y=Ya(),X=Ya(),K=Ya(),Z=Ya(),ee=Ya(),te=Ya(),ae=Ya(),se=Ya(),ne=Ya(),oe=Ya(),re=Ya(),ie=Ya(),le=Ya(),ce=Ya(),de=Ya(),we=Ya(),he=Ya(),ye=Ya(),ve=Lt(),me=Ya(),[Re,Ie,Te,Le]=zt(()=>is),De=e=>{const t=i;i=1;const a=e();return i=t,a},Oe=(e,t,a,s=Object.is)=>fe(t(),t=>e===t||s(e,t)?a(t):De(()=>a(t))),Pe=e=>{if(!It(e,(e,t)=>Me([S,C,p],t)))return!1;const t=e[S];if(!be(t)&&t!=h&&!Aa(t))return!1;const a=e[C];return!(ge(a)&&!e[p]||(ge(a)||(Ma(a)!=t?yt(e,C):e[C]=Pa(a)),0))},Ve=Ce,xe=(t,a)=>(!e||Ke(m,a)||Xt(a))&&It(t,(e,t)=>We(a,t,e),()=>Xt(a)),We=(e,t,a,s)=>It(s?a:je(a,e,t),(s,n)=>fe(He(e,t,n,s),e=>(a[n]=e,!0),()=>!1),()=>Xt(e,t)),He=(t,a,s,n)=>e?fe(Dt(Dt(m,t),s),e=>ge(n)?e[p]?n:Xt(t,a,s,n,e[C]):Ma(n)===e[S]?Pa(n):Aa(e[S])&&ka(n)?n:Xt(t,a,s,n,e[C]),()=>Xt(t,a,s,n)):ue(Ma(n))?Xt(t,a,s,n):Pa(n),Fe=(e,t)=>It(t?e:Ge(e),(t,a)=>fe(Je(a,t),t=>(e[a]=t,!0),()=>!1),()=>Kt()),Je=(e,a)=>t?fe(Dt(E,e),t=>ge(a)?t[p]?a:Kt(e,a,t[C]):Ma(a)===t[S]?Pa(a):Aa(t[S])&&ka(a)?a:Kt(e,a,t[C]),()=>Kt(e,a)):ue(Ma(a))?Kt(e,a):Pa(a),je=(e,t,a)=>(fe(Dt(I,t),([s,n])=>{at(s,(t,a)=>{ht(e,a)||(e[a]=t)}),at(n,s=>{ht(e,s)||Xt(t,a,s)})}),e),Ge=e=>(t&&(at(k,(t,a)=>{ht(e,a)||(e[a]=t)}),at(H,t=>{ht(e,t)||Kt(t)})),e),qe=e=>Pt(m,e,(e,t,a)=>{const s=Lt(),n=Ft();Pt(At(m,t,Lt),a,(e,t,a)=>{Ot(e,t,a),fe(a[C],e=>Ot(s,t,e),()=>Jt(n,t))}),Ot(I,t,[s,n])},(e,t)=>{Ot(m,t),Ot(I,t)}),Be=e=>Pt(E,e,(e,t,a)=>{Ot(E,t,a),fe(a[C],e=>Ot(k,t,e),()=>Jt(H,t))},(e,t)=>{Ot(E,t),Ot(k,t),st(H,t)}),et=e=>pt(e)?Ja():Oa(e),nt=(e,t,a,s,n,o)=>ue(s)?Ga(e,t,a,!0,n):Va(e,t,a,s,n,o),ot=e=>pt(e)?qa():$a(e),rt=(e,t,a)=>ue(t)?Ba(e,a):xa(e,t,a),it=(e,t)=>Oe(e,()=>t?e:fe(o[1],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(U,e,(e,t,a)=>ct(t,a),(e,t)=>Ct(t)),mt),ct=(e,t,a)=>Oe(t,()=>a?t:fe(o[2],a=>De(()=>a(e,Ee(t))),()=>t),t=>Pt(At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),t,(t,a,s)=>ut(e,t,a,s),(t,a)=>Rt(e,t,a)),mt),ut=(e,t,a,s,n)=>Oe(s,()=>n?s:fe(o[3],t=>De(()=>t(e,a,Ee(s))),()=>s),s=>Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,n)=>gt(e,a,t,s,n),(s,o)=>Tt(e,t,a,s,o,n)),mt),gt=(e,t,a,s,n,r)=>Oe(n,()=>fe(r?void 0:o[4],a=>De(()=>a(e,t,s,n)),()=>n),n=>{Ke(a,s)||Gt(e,t,s,1);const o=Dt(a,s);n!==o&&(qt(e,t,s,o,n),Ot(a,s,n))}),wt=(e,t,a,s,n,o)=>fe(Dt(t,a),t=>gt(e,a,t,s,n,o),()=>{const r=Lt();Ot(t,a,r),jt(e,a,1),vt(je({[s]:n},e,a),(t,s)=>gt(e,a,r,s,t,o))}),ft=(e,t)=>Oe(e,()=>t?e:fe(o[5],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(G,e,(e,t,a)=>bt(t,a),(e,t)=>Ht(t)),mt),bt=(e,t,a)=>Oe(t,()=>fe(a?void 0:o[6],a=>De(()=>a(e,t)),()=>t),t=>{Ke(G,e)||Qt(e,1);const a=Dt(G,e);t!==a&&(Yt(e,a,t),Ot(G,e,t))}),St=e=>At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),Ct=e=>De(()=>o[8]?.(e))??1?ct(e,{},!0):Dt(U,e),Rt=(e,t,a)=>{if(De(()=>o[9]?.(e,a))??1){const[,s]=Dt(F,e);s(a),ut(e,t,a,{},!0)}},Tt=(e,t,a,s,n,r,i)=>{const l=Dt(Dt(I,e)?.[0],n);if(!ue(l)&&!r)return gt(e,a,s,n,l);if(i||(De(()=>o[10]?.(e,a,n))??1)){const o=t=>{qt(e,a,t,Dt(s,t)),Gt(e,a,t,-1),Ot(s,t)};ue(l)?o(n):Nt(s,o),Ze(s)&&(jt(e,a,-1),Ze(Ot(t,a))&&(Ut(e,-1),Ot(U,e),Ot(F,e),Ot(J,e)))}},Ht=(e,t)=>{const a=Dt(k,e);if(!ue(a))return bt(e,a);(t||(De(()=>o[12]?.(e))??1))&&(Yt(e,Dt(G,e)),Qt(e,-1),Ot(G,e))},Ut=(e,t)=>Za(l,e,t),jt=(e,t,a)=>Za(At(u,e,Lt),t,a)&&Ot(d,e,At(d,e,()=>0)+a),Gt=(e,t,a,s)=>{const n=Dt(J,e),o=Dt(n,a)??0;(0==o&&1==s||1==o&&-1==s)&&Za(At(c,e,Lt),a,s),Ot(n,a,o!=-s?o+s:void 0),Za(At(At(g,e,Lt),t,Lt),a,s)},qt=(e,t,a,s,n)=>{At(At(At(w,e,Lt),t,Lt),a,()=>[s,0])[1]=n,r[3]?.(e,t,a,n,i)},Qt=(e,t)=>Za(y,e,t),Yt=(e,t,a)=>{At(f,e,()=>[t,0])[1]=a,r[4]?.(e,a,i)},Xt=(e,t,a,s,n)=>(Ue(At(At(At(b,e,Lt),t,Lt),a,()=>[]),s),n),Kt=(e,t,a)=>(Ue(At(v,e,()=>[]),t),a),Zt=(e,t,a)=>fe(Dt(Dt(Dt(w,e),t),a),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(va(e,t,a))]),ea=e=>fe(Dt(f,e),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(pa(e))]),ta=e=>Ze(b)||Ze(ie[e])?0:at(e?Wt(b):b,(t,a)=>at(t,(t,s)=>at(t,(t,n)=>Ie(ie[e],[a,s,n],t)))),aa=e=>Ze(v)||Ze(le[e])?0:at(e?$t(v):v,(t,a)=>Ie(le[e],[a],t)),oa=(e,t,a,s)=>{if(!Ze(e))return Ie(t,s,()=>kt(e)),Nt(e,(e,t)=>Ie(a,[...s??[],e],1==t)),1},ra=e=>{const t=!Ze(q[e]),s=!Ze(te[e]),n=!(Ze(ne[e])&&Ze(oe[e])&&Ze(ee[e])&&Ze(ae[e])&&Ze(X[e])&&Ze(K[e])&&Ze(Z[e])&&!s&&Ze(z[e])&&Ze(Q[e])),o=!(Ze(re[e])&&Ze(se[e])&&Ze(Y[e])&&Ze(B[e]));if(t||n||o){const i=e?[$t(l),xt(c),$t(d),xt(u),Wt(g),(r=w,$t(r,e=>$t(e,e=>$t(e,Xa))))]:[l,c,d,u,g,w];if(t){const t=ma();t!=a&&Ie(q[e],void 0,t)}if(n){oa(i[0],z[e],Q[e]),at(i[1],(t,a)=>oa(t,X[e],K[e],[a])),at(i[2],(t,a)=>{0!=t&&Ie(Z[e],[a],ha(a))});const t=Ft();at(i[3],(a,n)=>{oa(a,ee[e],ae[e],[n])&&s&&(Ie(te[e],[n,null]),Jt(t,n))}),s&&at(i[5],(a,s)=>{if(!Ke(t,s)){const t=Ft();at(a,e=>at(e,([a,s],n)=>s!==a?Jt(t,n):st(e,n))),at(t,t=>Ie(te[e],[s,t]))}}),at(i[4],(t,a)=>at(t,(t,s)=>oa(t,ne[e],oe[e],[a,s])))}if(o){let t;at(i[5],(a,s)=>{let n;at(a,(a,o)=>{let r;at(a,([a,i],l)=>{i!==a&&(Ie(re[e],[s,o,l],_a(i),_a(a),Zt),t=n=r=1)}),r&&Ie(se[e],[s,o],Zt)}),n&&Ie(Y[e],[s],Zt)}),t&&Ie(B[e],void 0,Zt)}}var r},ia=e=>{const t=!Ze(ce[e]),a=!Ze(we[e])||!Ze(he[e]),n=!Ze(ye[e])||!Ze(de[e]);if(t||a||n){const o=e?[$t(y),$t(f,Xa)]:[y,f];if(t){const t=Ea();t!=s&&Ie(ce[e],void 0,t)}if(a&&oa(o[0],we[e],he[e]),n){let t;at(o[1],([a,s],n)=>{s!==a&&(Ie(ye[e],[n],_a(s),_a(a),ea),t=1)}),t&&Ie(de[e],void 0,ea)}}},la=(e,...t)=>(ns(()=>e(...$e(t,j))),is),ca=(e,t,a,s,n)=>{let o=fa(e,t,...a);return Re(()=>{const n=fa(e,t,...a);Ae(n,o)||(o=n,s(is,e,t,...a,o))},te[n?1:0],[e,t],[ga])},da=(e=!1)=>[kt(w,(t,a)=>-1===Dt(l,a)?void 0:kt(t,(t,s)=>-1===Dt(Dt(u,a),s)?void 0:kt(t,([,t])=>_a(t,0,e),e=>Ka(e)),Ze,pt),Ze,pt),kt(f,([,t])=>_a(t,0,e),e=>Ka(e)),1],ua=()=>Vt(U,_a),ga=()=>Et(U),wa=e=>Et(Dt(J,j(e))),ha=e=>ze(Dt(U,j(e))),ya=e=>Et(Dt(U,j(e))),fa=(e,t,a,s=0,n)=>lt(e)?fa(e.tableId,e.cellId,e.descending,e.offset,e.limit):$e(pe(ke(Mt(Dt(U,j(e)),(e,a)=>[ue(t)?a:Dt(e,j(t)),a]),([e],[t])=>Da(e,t)*(a?-1:1)),s,ue(n)?n:s+n),([,e])=>e),ba=(e,t)=>Et(Dt(Dt(U,j(e)),j(t))),va=(e,t,a)=>_a(Dt(Dt(Dt(U,j(e)),j(t)),j(a))),Sa=()=>kt(G,_a),Ca=()=>Et(G),pa=e=>_a(Dt(G,j(e))),ma=()=>!Ze(U),Ra=e=>Ke(U,j(e)),Ia=(e,t)=>Ke(Dt(J,j(e)),j(t)),Ta=(e,t)=>Ke(Dt(U,j(e)),j(t)),La=(e,t,a)=>Ke(Dt(Dt(U,j(e)),j(t)),j(a)),Ea=()=>!Ze(G),Na=e=>Ke(G,j(e)),Oa=e=>la(()=>(e=>It(e,xe,Xt))(e)?it(e):0),Va=(e,t,a,s,n,r)=>la((e,t,a)=>fe(He(e,t,a,Se(s)?s(va(e,t,a)):s),s=>{const i=St(e);fe(n||r||!o[14]?.()?void 0:o[3],o=>{const r=Dt(i,t),l={...r?kt(r):{},[a]:s};fe(De(()=>o(e,t,Ee(l))),a=>((e,t,a,s,n)=>{Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,o)=>fe(He(e,a,s,o),o=>gt(e,a,t,s,o,n)),(s,n)=>Tt(e,t,a,s,n,!0))})(e,i,t,a,n))},()=>wt(e,i,t,a,s,n))}),e,t,a),$a=e=>la(()=>Fe(e)?ft(e):0),xa=(e,t,a)=>la(e=>fe(Je(e,Se(t)?t(pa(e)):t),t=>bt(e,t,a)),e),Wa=e=>(Ne(()=>et(sa(e))),is),Ha=t=>la(()=>{if((e=It(t,e=>It(e,Pe)))&&(qe(t),!Ze(U))){const e=ua();Ja(),Oa(e)}}),Fa=e=>la(()=>{if(t=(e=>It(e,Pe))(e)){const a=Sa();ss(),qa(),t=!0,Be(e),$a(a)}}),Ja=()=>la(()=>De(()=>o[7]?.())??1?it({},!0):0),Ua=e=>la(e=>Ke(U,e)?Ct(e):0,e),ja=(e,t)=>la((e,t)=>fe(Dt(U,e),a=>Ke(a,t)?Rt(e,a,t):0),e,t),Ga=(e,t,a,s,n)=>la((e,t,a)=>fe(Dt(U,e),o=>fe(Dt(o,t),r=>Ke(r,a)?Tt(e,o,t,r,a,s,n):0)),e,t,a),qa=()=>la(()=>De(()=>o[11]?.())??1?ft({},!0):0),Ba=(e,t)=>la(e=>Ke(G,e)?Ht(e,t):0,e),as=()=>la(()=>{qe({}),e=!1}),ss=()=>la(()=>{Be({}),t=!1}),ns=(e,t)=>{if(-1!=n){os();const a=e();return rs(t),a}},os=()=>(-1!=n&&n++,1==n&&(r[0]?.(),Ie(ve)),is),rs=e=>(n>0&&(n--,0==n&&(n=1,De(()=>{ta(1),Ze(w)||ra(1),aa(1),Ze(f)||ia(1)}),e?.(is)&&(at(w,(e,t)=>at(e,(e,a)=>at(e,([e],s)=>nt(t,a,s,e,!0)))),tt(w),at(f,([e],t)=>rt(t,e,!0)),tt(f)),Ie(me[0],void 0),n=-1,ta(0),Ze(w)||ra(0),aa(0),Ze(f)||ia(0),r[1]?.(),Ie(me[1],void 0),r[2]?.(),n=0,a=ma(),s=Ea(),_e([l,c,d,u,g,w,b,y,f,v],tt))),is),is={getContent:()=>[ua(),Sa()],getTables:ua,getTableIds:ga,getTable:e=>_t(Dt(U,j(e)),_a),getTableCellIds:wa,getRowCount:ha,getRowIds:ya,getSortedRowIds:fa,getRow:(e,t)=>kt(Dt(Dt(U,j(e)),j(t)),_a),getCellIds:ba,getCell:va,getValues:Sa,getValueIds:Ca,getValue:pa,hasTables:ma,hasTable:Ra,hasTableCell:Ia,hasRow:Ta,hasCell:La,hasValues:Ea,hasValue:Na,getTablesJson:()=>na(U),getValuesJson:()=>na(G),getJson:()=>na([U,G]),getTablesSchemaJson:()=>na(m),getValuesSchemaJson:()=>na(E),getSchemaJson:()=>na([m,E]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>la(()=>{const t=Se(e)?e():e;Ve(t)&&(e=>{Oe(e,()=>fe(o[0],t=>De(()=>t(Ee(e))),()=>e),([e,t])=>{(pt(e)?Ja:Oa)(e),(pt(t)?qa:$a)(t)},es)})(t)}),setTables:Oa,setTable:(e,t)=>la(e=>xe(t,e)?ct(e,t):0,e),setRow:(e,t,a)=>la((e,t)=>We(e,t,a)?ut(e,St(e),t,a):0,e,t),addRow:(e,t,a=!0)=>ns(()=>{let s;return We(e,s,t)&&(e=j(e),ut(e,St(e),s=((e,t)=>{const[a]=Dt(F,e);let s;do{s=a(t)}while(Ke(Dt(U,e),s));return s})(e,a?1:0),t)),s}),setPartialRow:(e,t,a)=>la((e,t)=>{if(We(e,t,a,1)){const s=St(e);vt(a,(a,n)=>wt(e,s,t,n,a))}},e,t),setCell:Va,setValues:$a,setPartialValues:e=>la(()=>Fe(e,1)?vt(e,(e,t)=>bt(t,e)):0),setValue:xa,applyChanges:e=>la(()=>Oe(e,()=>fe(o[13],t=>De(()=>t(Ee(e))),()=>e),e=>{vt(e[0],(e,t)=>ue(e)?Ua(t):vt(e,(e,a)=>ue(e)?ja(t,a):vt(e,(e,s)=>nt(t,a,s,e,void 0,!0)))),vt(e[1],(e,t)=>rt(t,e))},es)),setTablesJson:Wa,setValuesJson:e=>(Ne(()=>ot(sa(e))),is),setJson:e=>la(()=>Ne(()=>{const[t,a]=sa(e);et(t),ot(a)},()=>Wa(e))),setTablesSchema:Ha,setValuesSchema:Fa,setSchema:(e,t)=>la(()=>{Ha(e),Fa(t)}),delTables:Ja,delTable:Ua,delRow:ja,delCell:Ga,delValues:qa,delValue:Ba,delTablesSchema:as,delValuesSchema:ss,delSchema:()=>la(()=>{as(),ss()}),transaction:ns,startTransaction:os,getTransactionChanges:()=>da(),getTransactionLog:()=>[!Ze(w),!Ze(f),Vt(w,Xa,Ka),Vt(b),kt(f,Xa,Ka),kt(v),kt(l),_t(u),Vt(g),kt(y)],finishTransaction:rs,forEachTable:e=>at(U,(t,a)=>e(a,e=>at(t,(t,a)=>e(a,e=>Nt(t,(t,a)=>e(t,_a(a))))))),forEachTableCell:(e,t)=>Nt(Dt(J,j(e)),t),forEachRow:(e,t)=>at(Dt(U,j(e)),(e,a)=>t(a,t=>Nt(e,(e,a)=>t(e,_a(a))))),forEachCell:(e,t,a)=>Nt(Dt(Dt(U,j(e)),j(t)),(e,t)=>a(e,_a(t))),forEachValue:e=>Nt(G,(t,a)=>e(t,_a(a))),addSortedRowIdsListener:(e,t,a,s,n,o,r)=>lt(e)?ca(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,a):ca(e,t,[a,s,n],o,r),addStartTransactionListener:e=>Re(e,ve),addWillFinishTransactionListener:e=>Re(e,me[0]),addDidFinishTransactionListener:e=>Re(e,me[1]),callListener:e=>(Le(e),is),delListener:e=>(Te(e),is),getListenerStats:()=>({hasTables:Qa(q),tables:Qa(B),tableIds:Qa(z),hasTable:Qa(Q),table:Qa(Y),tableCellIds:Qa(X),hasTableCell:Qa(K,Ye),rowCount:Qa(Z),rowIds:Qa(ee),sortedRowIds:Qa(te),hasRow:Qa(ae,Ye),row:Qa(se,Ye),cellIds:Qa(ne,Ye),hasCell:Qa(oe,Xe),cell:Qa(re,Xe),invalidCell:Qa(ie,Xe),hasValues:Qa(ce),values:Qa(de),valueIds:Qa(we),hasValue:Qa(he),value:Qa(ye),invalidValue:Qa(le),transaction:Qe(ve)+Qa(me)}),isMergeable:()=>!1,_:[ts,Re,Ie,(e,t,a,s,n)=>r=[e,t,a,s,n],(e,t,a,s,n,r,i,l,c,d,u,g,w,h,y)=>o=[e,t,a,s,n,r,i,l,c,d,u,g,w,h,y],nt,rt,()=>[Vt(U),kt(G)],()=>da(!0)]};return vt({[L+N]:[0,q,[],()=>[ma()]],[N]:[0,B],[M]:[0,z],[L+D]:[1,Q,[ga],e=>[Ra(...e)]],[D]:[1,Y,[ga]],[D+V]:[1,X,[ga]],[L+D+_]:[2,K,[ga,wa],e=>[Ia(...e)]],[A]:[1,Z,[ga]],[P]:[1,ee,[ga]],[L+O]:[2,ae,[ga,ya],e=>[Ta(...e)]],[O]:[2,se,[ga,ya]],[V]:[2,ne,[ga,ya]],[L+_]:[3,oe,[ga,ya,ba],e=>[La(...e)]],[_]:[3,re,[ga,ya,ba],e=>za(va(...e))],InvalidCell:[3,ie],[L+x]:[0,ce,[],()=>[Ea()]],[x]:[0,de],[W]:[0,we],[L+$]:[1,he,[Ca],e=>[Na(...e)]],[$]:[1,ye,[Ca],e=>za(pa(e[0]))],InvalidValue:[1,le]},([e,t,a,s],n)=>{is[T+n+R]=(...n)=>Re(n[e],t[n[e+1]?1:0],e>0?pe(n,0,e):void 0,a,s)}),dt(is)},as={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ss=(e=d)=>[ja(e),ja(e)],ns=(e,t)=>{let a=1,s=ss(),n=0,o=0;const r=Lt(),i=Ft(),[l,c]=Ea(e,t),u=ts(),g=e=>{const t=a;return a=0,e(),a=t,p},w=(e,t=0)=>{const a={},n={},[[o,r=d,i=0],l]=e,[u,g]=s,[w,y,f]=u;let b=t?i:f,v=r;ft(o,([e,s=d,n=0],o)=>{const r=At(w,o,ja),[i,l,c]=r;let u=t?n:c,g=s;ft(e,(e,s)=>{const[n,r,l]=h(e,At(i,s,ja),Rt(Rt(a,o,ut),s,ut),t);u^=t?0:da(r?ga(s,r):0,ga(s,l)),g=Fa(g,n)}),u^=t?0:Ha(l,s),Ja(r,s,u),b^=t?0:da(c?ga(o,c):0,ga(o,r[2])),v=Fa(v,g)}),b^=t?0:Ha(y,r),Ja(u,r,b);const[S]=h(l,g,n,t);return c(Fa(v,S)),[a,n,1]},h=(e,t,a,s)=>{const[n,o=d,r=0]=e,[i,l,c]=t;let u=o,g=s?r:c;return ft(n,([e,t=d,n=0],o)=>{const r=At(i,o,()=>[void 0,d,0]),[,l,c]=r;(!l||t>l)&&(Ja(r,t,s?n:wa(e,t)),r[0]=e,a[o]=e,g^=s?0:da(ga(o,c),ga(o,r[2])),u=Fa(u,t))}),g^=s?0:Ha(l,o),Ja(t,o,g),[u,c,t[2]]},y=Ie,f=Ie,b=(e=!1)=>[Ga(s[0],t=>Ga(t,t=>Ga(t,([t,a,s])=>[_a(t,0,e),a,s]))),Ga(s[1],([t,a,s])=>[_a(t,0,e),a,s])],v=(e,t=!1)=>{const[[a,n,o],[l,c,d]]=s,u=e?xa:$a,g={};at(r,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const r={};at(e,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const i={};at(e,e=>{fe(Dt(a,e),([a,s,n])=>i[e]=u(t?a:_a(a),s,n))}),r[s]=u(i,n,o)})),g[s]=u(r,n,o)}));const w={};return at(i,e=>fe(Dt(l,e),([a,s,n])=>w[e]=u(t?a:_a(a),s,n))),[u(g,n,o),u(w,c,d),1]},S=()=>b(),C=e=>g(()=>u.applyChanges(w(e))),p={getMergeableContent:S,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>kt(s[0][0],Wa),getMergeableTableDiff:e=>{const t=Ua(s[0][1]),a={};return Nt(s[0][0],(s,[n,o,r])=>ht(e,s)?r!=e[s]?a[s]=r:0:t[0][s]=qa([n,o],e=>qa(e))),[t,a]},getMergeableRowHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s,,n])=>n!=e?Nt(s,(e,[,,s])=>Rt(t,a,ut)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=Ua(s[0][1]),a={};return ft(e,(e,n)=>Nt(Dt(s[0][0],n)?.[0],(s,[o,r,i])=>ht(e,s)?i!==e[s]?Rt(a,n,ut)[s]=i:0:Rt(t[0],n,Ua)[0][s]=qa([o,r]))),[t,a]},getMergeableCellHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s])=>ft(e,(e,n)=>fe(Dt(s,n),([s,,o])=>o!==e?Nt(s,(e,[,,s])=>Rt(Rt(t,a,ut),n,ut)[e]=s):0)))),t},getMergeableCellDiff:e=>{const[[t,a]]=s,n={};return ft(e,(e,a)=>ft(e,(e,s)=>fe(Dt(t,a),([t,o])=>fe(Dt(t,s),([t,r])=>Nt(t,(t,[i,l,c])=>c!==e[t]?Rt(Rt(n,a,()=>Ua(o))[0],s,()=>Ua(r))[0][t]=[i,l]:0))))),$a(n,a)},getMergeableValueHashes:()=>kt(s[1][0],Wa),getMergeableValueDiff:e=>{const[,[t,a]]=s,n=kt(t,Va,([,,t],a)=>t==e?.[a]);return $a(n,a)},setMergeableContent:e=>g(()=>(e=>Ce(e)&&2==me(e)&&Ba(e[0],e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,Oa),void 0,1)),void 0,1)),void 0,1))&&Ba(e[1],e=>It(e,e=>Ba(e,Oa),void 0,1)))(e)?u.transaction(()=>{u.delTables().delValues(),s=ss(),u.applyChanges(w(e,1))}):0),setDefaultContent:e=>(u.transaction(()=>{n=1,u.setContent(e),n=0}),p),getTransactionMergeableChanges:(e=!1)=>v(e),applyMergeableChanges:C,merge:e=>{const t=S(),a=e.getMergeableContent();return e.applyMergeableChanges(t),C(a)},__:[()=>{const e=o;return o=0,e},()=>b(!0),e=>v(e,!0)]};return u._[3](y,f,()=>{tt(r),tt(i)},(e,t,s,i,c)=>{Jt(At(At(r,e,Lt),t,Ft),s),(a||c)&&(c&&(o=1),w([[{[e]:[{[t]:[{[s]:[i,n?d:l()]}]}]}],[{}],1]))},(e,t,s)=>{Jt(i,e),(a||s)&&(s&&(o=1),w([[{}],[{[e]:[t,n?d:l()]}],1]))}),vt(u,(e,t)=>p[t]=G(t,"set")||G(t,"del")||G(t,"apply")||q(t,"Transaction")||t=="call"+R||"use"==t?(...t)=>(e(...t),p):G(t,T)&&q(t,R)?(...a)=>{const s=as[pe(t,3,-8)]??0,n=a[s];return a[s]=(e,...t)=>n(p,...t),e(...a)}:"isMergeable"==t?()=>!0:e),dt(p)},os=Lt([["avg",[(e,t)=>xe(e)/t,(e,t,a)=>e+(t-e)/(a+1),(e,t,a)=>e+(e-t)/(a-1),(e,t,a,s)=>e+(t-a)/s]],["max",[e=>oe(...e),(e,t)=>oe(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:oe(t,e)]],["min",[e=>re(...e),(e,t)=>re(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:re(t,e)]],["sum",[e=>xe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,a)=>e-a+t]]]),rs=(e,t,a,s,n,o=!1)=>{if(Ze(a))return;const[r,i,l,c]=n;return o||=ue(e),at(s,([a,s])=>{o||(e=ue(a)?i?.(e,s,t++):ue(s)?l?.(e,a,t--):c?.(e,s,a,t),o||=ue(e))}),o?r(et(a),ze(a)):e},is=Gt(e=>{const t=Lt(),[a,s,n]=zt(()=>b),[o,r,i,l,c,u,g,,w,h,y,f]=Ut(e,Re,e=>isNaN(e)||ue(e)||we(e)||he(e)||e===d?void 0:1*e,a,s),b={setMetricDefinition:(e,a,n,o,r,i,l)=>{const c=Se(n)?[n,r,i,l]:Dt(os,n)??Dt(os,"sum");return w(e,a,(a,n,o,r,i,l)=>{const d=u(e),w=ze(r);l||=ue(d),a();let h=rs(d,w,r,n,c,l);ce(h)||(h=void 0),h!=d&&(g(e,h),s(t,[e],h,d))},jt(o,1)),b},delMetricDefinition:e=>(h(e),b),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:l,getTableId:c,getMetric:u,addMetricIdsListener:y,addMetricListener:(e,s)=>a(s,t,[e]),delListener:e=>(n(e),b),destroy:f,getListenerStats:()=>({metric:Qe(t)})};return dt(b)}),ls=(e,t,...a)=>He(e,(e,t)=>ue(e)?e:t(...a,e),t),cs=(e,...t)=>Oe(e,e=>e(...t)),ds=Gt(e=>{const t=e=>t=>(Ue(e,t),M),a=[],s=[],n=[],o=[],r=[],i=[],l=[],c=[],d=[],u=[],g=[],w=[],h=[],y=[],f=t(a),b=t(s),v=t(n),S=t(o),C=t(r),p=t(i),m=t(l),R=t(c),I=t(d),T=t(u),L=t(g),E=t(w),D=t(h),N=t(y),M=dt({getStore:()=>e,addWillSetContentCallback:f,addWillSetTablesCallback:b,addWillSetTableCallback:v,addWillSetRowCallback:S,addWillSetCellCallback:C,addWillSetValuesCallback:p,addWillSetValueCallback:m,addWillDelTablesCallback:R,addWillDelTableCallback:I,addWillDelRowCallback:T,addWillDelCellCallback:L,addWillDelValuesCallback:E,addWillDelValueCallback:D,addWillApplyChangesCallback:N,destroy:()=>{}});return e._[4](e=>ls(a,e),e=>ls(s,e),(e,t)=>ls(n,t,e),(e,t,a)=>ls(o,a,e,t),(e,t,a,s)=>ls(r,s,e,t,a),e=>ls(i,e),(e,t)=>ls(l,t,e),()=>cs(c),e=>cs(d,e),(e,t)=>cs(u,e,t),(e,t,a)=>cs(g,e,t,a),()=>cs(w),e=>cs(h,e),e=>ls(y,e),()=>o.length>0),M}),us={Idle:0,Loading:1,Saving:2},gs={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ws=Lt(),hs=Lt(),ys=(e,t,a,s,n,o,r,i={},l=0,c=[])=>{let d,u,g,w=0,h=0,y=0;At(ws,c,()=>0),At(hs,c,()=>[]);const f=Lt(),[b,v,S,C,p]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!a),([[e],[t]])=>!pt(e)||!pt(t),t.setDefaultContent]:2!=e?[0,t._[7],t._[8],([e,t])=>!pt(e)||!pt(t),t.setContent]:De("Store type not supported by this Persister"))(r,e,l),[m,R,I]=zt(()=>$),T=e=>{e!=w&&(w=e,R(f,void 0,w))},L=t=>{(b&&Ce(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},E=async()=>{k()&&e.__?.[0]?.()&&await O()},D=async e=>(2!=w&&(T(1),h++,await V(async()=>{await Ne(async()=>{const a=await t();Ce(a)?L(a):e?p(e):De("Content is not an array: "+a)},()=>{e&&p(e)}),T(0),await E()})),$),N=async e=>(M(),await D(e),await Ne(async()=>u=await s(async(e,t)=>{t||e?2!=w&&(T(1),h++,L(t??e),T(0),await E()):await D()}),o),$),M=async()=>(u&&(await Ne(()=>n(u),o),u=void 0),$),O=async e=>(1!=w&&(T(2),y++,await V(async()=>{await Ne(()=>a(v,e),o),T(0)})),$),A=async()=>(P(),await O(),g=e.addDidFinishTransactionListener(()=>{const e=S();C(e)&&O(e)}),$),P=async()=>(g&&(e.delListener(g),g=void 0),$),k=()=>!ue(g),_=async(e=!1)=>{const[t,a]=e?[P,M]:[M,P];return await t(),await a(),$},V=async(...e)=>(Ue(Dt(hs,c),...e),await(async()=>{if(!Dt(ws,c)){for(Ot(ws,c,1);!ue(d=qe(Dt(hs,c)));)await Ne(d,o);Ot(ws,c,0)}})(),$),$={load:D,startAutoLoad:N,stopAutoLoad:M,isAutoLoading:()=>!ue(u),save:O,startAutoSave:A,stopAutoSave:P,isAutoSaving:k,startAutoPersisting:async(e,t=!1)=>{const[a,s]=t?[A,N]:[N,A];return await a(e),await s(e),$},stopAutoPersisting:_,getStatus:()=>w,addStatusListener:e=>m(e,f),delListener:t=>(I(t),e),schedule:V,getStore:()=>e,destroy:()=>(Je(Dt(hs,c)),_()),getStats:()=>({loads:h,saves:y}),...i};return dt($)},fs="_",bs="_id",vs="SELECT",Ss="WHERE",Cs="TABLE",ps="INSERT",ms="DELETE",Rs="UPDATE",Is="ALTER "+Cs,Ts="FROM",Ls=ms+" "+Ts,Es=vs+"*"+Ts,Ds="pragma_",Ns="data_version",Ms="schema_version",Os="pragma_table_",As="CREATE ",Ps=As+Cs,ks="OR REPLACE ",_s="FUNCTION",Vs="$tableName",$s=(e,t)=>t?async(a,s)=>(t(a,s),await e(a,s)):e,xs=e=>Ve($e(z(e,"."),e=>`"${Q(e,/"/g,'""')}"`),"."),Ws=(...e)=>xs(Ve(e,"_")),Hs=(...e)=>Ve($e(e,xs),u),Fs=(e,t=[1])=>Ve($e(e,()=>"$"+t[0]++),u),Js=(e,t=v)=>Ss+`(${Q(t,Vs,xs(e))})`,Us="ColumnName",js="store",Gs="json",qs=js+"TableName",Bs=js+"Id"+Us,zs=js+Us,Qs="autoLoadIntervalSeconds",Ys="rowId"+Us,Xs="tableId",Ks="tableName",Zs="deleteEmptyColumns",en="deleteEmptyTable",tn="condition",an={mode:Gs,[Qs]:1},sn={load:0,save:0,[Ks]:c+"_values"},nn=(e,t,a,s,n)=>{const o=Lt();return vt(e,(e,r)=>{const i=pe(St(gt(t,ve(e)?{[a]:e}:e)),0,Ct(t));ge(i[0])||s(r,i[0])||(n(r,i[0]),Ot(o,r,i))}),o},on=e=>{const t=(e=>gt(an,ve(e)?{[qs]:e}:e??{}))(e),a=t[Qs];if(t.mode==Gs){const e=t[qs]??c;return[1,a,[e,t[Bs]??bs,t[zs]??js],Ft(e)]}const{tables:{load:s={},save:n={}}={},values:o={}}=t,r=pe(St(gt(sn,o)),0,Ct(sn)),i=r[2],l=Ft(i),d=Ft(i),u=nn(s,{[Xs]:null,[Ys]:bs,[tn]:v},Xs,e=>Ke(d,e),e=>Jt(l,e)),g=nn(n,{[Ks]:null,[Ys]:bs,[Zs]:0,[en]:0,[tn]:null},Ks,(e,t)=>Ke(d,t),(e,t)=>Jt(l,t));return Nt(g,(e,t)=>t[4]??=Dt(u,t[0])?.[2]??v),[0,a,[u,g,r],l]},rn=(e,t,a,s,n,o=ln,r,i)=>{const l=Lt();return[async()=>{tt(l),$e(await a(e,t),({tn:e,cn:t})=>Jt(At(l,e,Ft),t))},async(t,a,s)=>((e,t)=>Ke(Dt(l,e),t))(t,a)?ut(Fe($e(await e(Es+xs(t)+Js(t,s)),e=>[e[a],i?vt(yt(e,a),i):yt(e,a)]),([e,t])=>!ue(e)&&!pt(t))):{},async(t,a,s,i,c,d=!1,g=v)=>{const w=Ft();vt(s??{},e=>$e(ct(e??{}),e=>Jt(w,e)));const h=et(w);if(!d&&c&&g==v&&We(h)&&Ke(l,t))return await e("DROP "+Cs+xs(t)),void Ot(l,t);const y=Dt(l,t),f=Ft(et(y));if(We(h)||(Ke(l,t)?await Le($e([a,...h],async(s,o)=>{st(f,s)||(await e(Is+xs(t)+"ADD"+xs(s)+n),0==o&&await e("CREATE UNIQUE INDEX pk ON "+xs(t)+`(${xs(a)})`),Jt(y,s))})):(await e(Ps+xs(t)+`(${xs(a)}${n} PRIMARY KEY${Ve($e(h,e=>u+xs(e)+n))});`),Ot(l,t,Ft([a,...h])))),await Le([...!d&&i?$e(et(f),async s=>{s!=a&&(await e(Is+xs(t)+"DROP"+xs(s)),st(y,s))}):[]]),d)ue(s)?await e(Ls+xs(t)+Js(t,g)):await Le(bt(s,async(s,n)=>{ue(s)?await e(Ls+xs(t)+Js(t,g)+`AND(${xs(a)}=$1)`,[n]):We(h)||await o(e,t,a,ct(s),{[n]:r?$e(St(s),r):St(s)},y)}));else if(We(h))Ke(l,t)&&await e(Ls+xs(t)+Js(t,g));else{const n=Fe(et(Dt(l,t)),e=>e!=a),i={},c=[];vt(s??{},(e,t)=>{i[t]=$e(n,t=>r?r(e?.[t]):e?.[t]),Ue(c,t)}),await o(e,t,a,n,i),await e(Ls+xs(t)+Js(t,g)+`AND${xs(a)}NOT IN(${Fs(c)})`,c)}},async t=>{let a;return await e("BEGIN"),await Ne(async()=>a=await t(),s),await e("END"),a}]},ln=async(e,t,a,s,n)=>{const o=[1];await e(ps+" INTO"+xs(t)+"("+Hs(a,...s)+")VALUES"+Ve(bt(n,e=>"($"+o[0]+++","+Fs(e,o)+")"),u)+"ON CONFLICT("+xs(a)+`)DO ${Rs} SET`+Ve($e(s,e=>xs(e)+"=excluded."+xs(e)),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},cn=(e,t,a,s,n,o,r,[i,l,c],d,u,g,w,h,y)=>{const[f,b,v,S]=rn(t,d,u,n,h,y),C=ys(e,()=>S(async()=>(await f(),ra((await b(i,l))[fs]?.[c]??"null"))),e=>S(async()=>{await f(),await v(i,l,{[fs]:{[c]:oa(e()??null)}},!0,!0)}),a,s,n,r,{[w]:()=>g,destroy:async()=>(await C.stopAutoPersisting(),o(),C)},0,g);return C},dn=(e,t,a,s,n,o,r,[i,l,[c,d,u]],g,w,h,y,f,b,v,S)=>{const[C,p,m,R]=rn(t,g,w,n,f,b,v,S),I=(e,t)=>Le(Mt(l,async([a,s,n,o,r],i)=>{t&&!ht(e,i)||await m(a,s,e[i],n,o,t,r)})),T=async(e,t)=>d?await m(u,bs,{[fs]:e},!0,!0,t):null,L=ys(e,()=>R(async()=>{await C();const e=await(async()=>ut(Fe(await Le(Mt(i,async([e,t,a],s)=>[e,await p(s,t,a)])),e=>!pt(e[1]))))(),t=await(async()=>c?(await p(u,bs))[fs]:{})();return pt(e)&&ue(t)?void 0:[e,t]}),(e,t)=>R(async()=>{if(await C(),ue(t)){const[t,a]=e();await I(t),await T(a)}else await I(t[0],!0),await T(t[1],!0)}),a,s,n,r,{[y]:()=>h,destroy:async()=>(await L.stopAutoPersisting(),o(),L)},0,h);return L},un=/^([cd]:)(.+)/,gn=(e,t,a,s,n,o,r,i,l,u,g="getDb")=>{const w=$s(a,o),[h,,y,f]=on(t),b=d+ca(oa(y)),S=c+"_"+b,C=async(e,t,a="",s="")=>{const n=Ws(c,e,b);return await w(As+ks+_s+n+`()RETURNS ${a}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),n},p=async(e,t,a,s)=>(await w(As+e+"TRIGGER"+t+a+"EXECUTE "+_s+s+"()"),t),m=e=>`PERFORM pg_notify('${S}',${e});`,R=(e,t)=>h?v:2===t?R(e,0)+" OR "+R(e,1):Q(Dt(y[0],e)?.[2]??v,Vs,0==t?"NEW":"OLD"),I=(e,t)=>Le($e([ps,ms,Rs],(a,s)=>p(ks,Ws(c,"d",b,e,a),`AFTER ${a} ON${xs(e)}FOR EACH ROW WHEN(${R(e,s)})`,t)));return(h?cn:dn)(e,w,async e=>{const t=await C("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ss} command_tag='${Ps}' LOOP ${m("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await p("EVENT ",Ws(c,"c",b),`ON ddl_command_end WHEN TAG IN('${Ps}')`,t);const a=await C("d",m("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Le($e(et(f),async e=>(await w(Ps+` IF NOT EXISTS${xs(e)}("_id"text PRIMARY KEY)`),await I(e,a)))),[await s(S,t=>fe(B(t,un),async([,t,s])=>{Ke(f,s)&&("c:"==t&&await I(s,a),e())})),[t,a]]},async([e,t])=>{n(e),await w(`DROP FUNCTION IF EXISTS${Ve(t,",")}CASCADE`)},r,i,l,y,et(f),async(e,t)=>await e(vs+` table_name tn,column_name cn FROM information_schema.columns ${Ss} table_schema='public'AND table_name IN(${Fs(t)})`,t),u,g,"text",void 0,e=>aa(e),e=>sa(e))},wn=(e,t,a,s,n,o,r,i,l,c,u="getDb",g)=>{let w,h,y;const f=$s(a,o),[b,v,S,C]=on(t);return(b?cn:dn)(e,f,e=>{let t;const a=()=>t=ae(()=>Ne(async()=>{const[{d:t,s:a,c:s}]=await f(vs+` ${Ns} d,${Ms} s,TOTAL_CHANGES() c FROM ${Ds}${Ns} JOIN ${Ds}${Ms}`);t==w&&a==h&&s==y||(de(w)||e(),w=t,h=a,y=s)}),v),o=()=>{w=h=y=null,se(t)},r=s(t=>{C.has(t)&&(o(),e(),a())});return a(),()=>{o(),n(r)}},e=>e(),r,i,l,S,et(C),async(e,t)=>await e(vs+` t.name tn,c.name cn FROM ${Os}list()t,${Os}info(t.name)c ${Ss} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Fs(t)})ORDER BY t.name,c.name`,t),c,u,d,g,e=>we(e)?1:he(e)?0:e,void 0)},hn=(e,t)=>[e[t].t,e[t].v],yn=(e,t,a,s)=>{const n=ue(t)?e:Rt(e,t,()=>({}));let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),vt(n,(e,t)=>{ht(a,t)||(yt(n,t),o=1)}),!ue(t)&&pt(n)&&yt(e,t),o},fn=(e,t,a=c,s)=>(t.change(e=>Rt(e,a,ut)),ys(e,async()=>{const e=t.doc();return 2==Ct(e?.[a])?hn(e,a):void 0},async(e,s)=>t.change(t=>((e,t,a,s)=>{((e,t)=>{pt(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[n,o]=hn(e,t),r=()=>{i=1};let i=1;if(fe(s,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?yt(n,t):fe(n[t],t=>vt(e,(e,a)=>i?0:ue(e)?yt(t,a):fe(wt(t,a),t=>vt(e,(e,a)=>ue(e)?yt(t,a):t[a]=e),r)),r)),vt(t,(e,t)=>i?0:ue(e)?yt(o,t):o[t]=e)}),i){const[e,t]=a();yn(n,void 0,e,(e,t,a)=>yn(n,t,a,(e,t,a)=>yn(e,t,a,(e,t,a)=>{if(wt(e,t)!==a)return e[t]=a,1}))),yn(o,void 0,t,(e,t,a)=>{wt(o,t)!==a&&(o[t]=a)})}})(t,a,e,s)),e=>{const s=({doc:t})=>e(hn(t,a));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),bn="storage",vn=(e,t,a,s)=>ys(e,async()=>ra(a.getItem(t)),async e=>a.setItem(t,oa(e())),e=>{const s=s=>{s.storageArea===a&&s.key===t&&Ne(()=>e(ra(s.newValue)),e)};return ee.addEventListener(bn,s),s},e=>ee.removeEventListener(bn,e),s,3,{getStorageName:()=>t}),Sn=(e,t,a)=>vn(e,t,localStorage,a),Cn=(e,t,a)=>vn(e,t,sessionStorage,a),pn=(e,t,a)=>ys(e,async()=>ra(await(await t.getFile()).text()),async e=>{const a=await t.createWritable();await a.write(oa(e())),await a.close()},async e=>{const a=new FileSystemObserver(()=>e());return await a.observe(t),a},e=>e?.disconnect(),a,3,{getHandle:()=>t}),mn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.execO(e,a),e=>t.onUpdate((t,a,s)=>e(s)),e=>e(),s,n,Ie,1,t),Rn=()=>xa({},d,0),In=(e,t,a=d,s)=>{const n=(e,...t)=>a+e+pe(oa(t),1,-1);return ys(e,async()=>{const e=Rn(),s=Rn();return(await t.list({prefix:a})).forEach(async([t,n,o],r)=>fe((e=>{if(G(e,a)){const t=pe(e,me(a),me(a)+1);return t==J||t==U?[t,...JSON.parse("["+pe(e,me(a)+1)+"]")]:void 0}})(r),([a,...r])=>a==J?fe(r[0],a=>{const s=Rt(e[0],a,Rn);fe(r[1],e=>{const a=Rt(s[0],e,Rn);fe(r[2],e=>a[0][e]=[t,n,o],()=>Ja(a,n,o))},()=>Ja(s,n,o))},()=>Ja(e,n,o)):a==U?fe(r[0],e=>s[0][e]=[t,n,o],()=>Ja(s,n,o)):0)),pt(e[0])&&pt(s[0])?void 0:[e,s]},async(e,[[a,s,o],[r,i,l]]=e())=>{const c=Lt();Ot(c,n(J),[0,s,o]),ft(a,([e,t,a],s)=>{Ot(c,n(J,s),[0,t,a]),ft(e,([e,t,a],o)=>{Ot(c,n(J,s,o),[0,t,a]),ft(e,(e,t)=>Ot(c,n(J,s,o,t),e))})}),Ot(c,n(U),[0,i,l]),ft(r,(e,t)=>Ot(c,n(U,t),e)),await t.put(kt(c))},Ie,Ie,s,2,{getStorage:()=>t})},Tn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.db.raw({sql:e,args:a}),e=>t.notifier.subscribeToDataChanges(a=>_e(t.notifier.alias(a),({tablename:t})=>e(t))),e=>e(),s,n,Ie,1,t,"getElectricClient"),Ln=(t,a,s,n,o)=>wn(t,s,async(e,t=[])=>await a.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),n,o,Ie,3,a),En=(e,r,i)=>ys(e,async()=>ra(await o(r,m)),async e=>await n(r,oa(e()),m),e=>(t(r)||a(r,d,m),s(r,()=>e())),e=>e?.close(),i,3,{getFilePath:()=>r}),Dn=[J,U],Nn={keyPath:"k"},Mn=async(e,t)=>{const a=bt(t,(t,a)=>On(e,"put",{k:a,v:t}));$e(await On(e,"getAllKeys"),s=>ht(t,s)?0:Ue(a,On(e,"delete",s))),await Le(a)},On=async(e,t,a)=>Te((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}),An=(e,t,a=1,s)=>{const n=async(e,a=[],s=0)=>Te((n,o)=>{const r=(ee?ee.indexedDB:indexedDB).open(t,s?2:void 0);r.onupgradeneeded=()=>s&&$e(Dn,e=>Ne(()=>r.result.createObjectStore(e,Nn))),r.onsuccess=()=>Ne(async()=>{const t=r.result.transaction(Dn,"readwrite"),s=await Le($e(Dn,(s,n)=>e(t.objectStore(s),a[n])));r.result.close(),n(s)},e=>{r.result.close(),o(e)}),r.onerror=()=>o("indexedDB.open error")});return ys(e,async()=>await n(async e=>ut($e(await On(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>n((e,t)=>Mn(e,t),e(),1),e=>ae(e,a),e=>se(e),s,1,{getDbName:()=>t})},Pn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.execute({sql:e,args:a})).rows,()=>Ie,e=>e(),s,n,Ie,1,t,"getClient"),kn="s",_n="/store",Vn=(e,t,a)=>e+t+(ve(a)?a:oa(a)),$n=(e,t,a)=>{const s=me(e);return G(t,e)?[t[s],(a?ra:te)(pe(t,s+1))]:void 0},xn=(e,t,a,s)=>{const{host:n,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:i=_n,messagePrefix:l=d}={...ve(a)?{storeProtocol:a}:a},c=r+"://"+n+"/parties/"+t.name+"/"+o+i,u=async e=>await(await fetch(c,{...e?{method:"PUT",body:na(e)}:{},mode:"cors",cache:"no-store"})).json();return ys(e,u,async(e,a)=>{a?t.send(Vn(l,kn,a)):await u(e())},e=>{const a=t=>fe($n(l,t.data,1),([t,a])=>{t==kn&&e(void 0,a)});return t.addEventListener(H,a),a},e=>{t.removeEventListener(H,e)},s,1,{getConnection:()=>t})},Wn="hasStore",Hn=ut($e(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),Fn=async(e,t=d)=>!!await e.get(t+Wn),Jn=async(e,t=d)=>{const a={},s={};return Nt(await e.list(),(e,n)=>fe($n(t,e),([e,t])=>{if(e==J){const[e,s,o]=sa("["+t+"]");Rt(Rt(a,e,ut),s,ut)[o]=n}else e==U&&(s[t]=n)})),[a,s]},Un=async(e,t,a)=>e.party.broadcast(Vn(e.config.messagePrefix??d,kn,t),a),jn=async(e,t,a,s)=>{const n=e.party.storage,o=e.config.storagePrefix??d,r={[o+Wn]:1},i=[],l=[];await Le(bt(t[0],async(t,c)=>ue(t)?!a&&await e.canDelTable(c,s)&&Ge(l,Gn(o,J,c)):await e.canSetTable(c,a,s)&&await Le(bt(t,async(t,d)=>ue(t)?!a&&await e.canDelRow(c,d,s)&&Ue(l,Gn(o,J,c,d)):await e.canSetRow(c,d,a,s)&&await Le(bt(t,async(t,l)=>{const u=[c,d,l],g=Gn(o,J,...u);ue(t)?!a&&await e.canDelCell(...u,s)&&Ue(i,g):await e.canSetCell(...u,t,a,s,await n.get(g))&&(r[g]=t)})))))),await Le(bt(t[1],async(t,l)=>{const c=o+U+l;ue(t)?!a&&await e.canDelValue(l,s)&&Ue(i,c):await e.canSetValue(l,t,a,s,await n.get(c))&&(r[c]=t)})),We(l)||Nt(await n.list(),e=>Oe(l,t=>!G(e,t)||Ue(i,e)&&0)),await n.delete(i),await n.put(r)},Gn=(e,t,...a)=>Vn(e,t,pe(na(a),1,-1)),qn=async(e,t,a=null)=>new Response(a,{status:t,headers:e.config.responseHeaders});class Bn{constructor(e){this.party=e,this.config.storePath??=_n,this.config.messagePrefix??=d,this.config.storagePrefix??=d,this.config.responseHeaders??=Hn}party;config={};async onRequest(e){const{party:{storage:t},config:{storePath:a=_n,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(a)){const a=await Fn(t,s),n=await e.text();return"PUT"==e.method?a?qn(this,205):(await jn(this,sa(n),!0,e),qn(this,201)):qn(this,200,a?na(await Jn(t,s)):d)}return qn(this,404)}async onMessage(e,t){const{config:{messagePrefix:a=d,storagePrefix:s}}=this;await fe($n(a,e,1),async([e,a])=>{e==kn&&await Fn(this.party.storage,s)&&(await jn(this,a,!1,t),Un(this,a,[t.id]))})}async canSetTable(e,t,a){return!0}async canDelTable(e,t){return!0}async canSetRow(e,t,a,s){return!0}async canDelRow(e,t,a){return!0}async canSetCell(e,t,a,s,n,o,r){return!0}async canDelCell(e,t,a,s){return!0}async canSetValue(e,t,a,s,n){return!0}async canDelValue(e,t){return!0}}const zn=async(e,t,a,s,n)=>gn(e,a,async(e,a=[])=>(await t.query(e,a)).rows,(e,a)=>t.listen(e,a),e=>Ne(e,n),s,n,Ie,3,t,"getPglite"),Qn=async(e,t,a,s,n)=>{const o=await(t.reserve?.());return gn(e,a,o?.unsafe,async(e,a)=>t.listen(e,a),e=>Ne(e.unlisten,n),s,n,()=>o?.release?.(),3,t,"getSql")},Yn=(e,t,a,s,n)=>{let o;return wn(e,a,async(e,a=[])=>t.execute(e,a).then(e=>e.rows?._array??[]),e=>{const a=new AbortController,s=t.onChange({rawTableNames:!0,signal:a.signal});return(async()=>{for await(const e of s)o&&$e(e.changedTables,o)})(),o=e,a},e=>{o=void 0,e.abort()},s,n,Ie,1,t,"getPowerSync",Xn)},Xn=async(e,t,a,s,n,o)=>{const r=[1],i=Ft(s),l=o?Fe([...o],e=>e!=a&&!Ke(i,e)):[];if(!We(l)){const s=ct(n),o=ut($e(await e(vs+Hs(a,...l)+Ts+xs(t)+Ss+xs(a)+"IN("+Fs(s)+")",s),e=>[e[a],e]));_e(s,e=>Ue(n[e],...$e(l,t=>o?.[e]?.[t]??null)))}await e(ps+" "+ks+"INTO"+xs(t)+"("+Hs(a,...s,...l)+")VALUES"+Ve(bt(n,e=>"($"+r[0]+++","+Fs(e,r)+")"),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},Kn=(e,t,a="storage",s)=>ys(e,async()=>{const e=t.getString(a),s=ue(e)?void 0:JSON.parse(e);return Promise.resolve(s)},async e=>{const s=e();ue(s)||t.set(a,JSON.stringify(s))},e=>t.addOnValueChangedListener(s=>{if(s===a){const s=t.getString(a);s&&e(JSON.parse(s))}}),e=>{e.remove()},s,3,{getStorageName:()=>a}),Zn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.executeSql(e,a))[0].rows.raw(),Ie,Ie,s,n,Ie,3,t),eo=e=>e.headers.get("ETag")??"",to=e=>""==e?void 0:{"If-None-Match":e},ao=(e,t,a,s=5,n)=>{let o="";return ys(e,async()=>{const e=await fetch(t,{headers:to(o)});return o=eo(e),sa(await e.text())},async e=>await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:na(e())}),e=>ae(async()=>{const a=await fetch(t,{method:"HEAD",headers:to(o)}),s=eo(a);s!=o&&(o=s,e())},s),e=>se(e),n,1,{getUrls:()=>[t,a]})},so=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>t.query(e).all(...a),()=>Ie,e=>e(),s,n,Ie,3,t),no=(e,t,a,s,n,o)=>wn(e,s,async(e,t=[])=>a.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(e=>({...e})),e=>t.capi.sqlite3_update_hook(a,(t,a,s,n)=>e(n),0),()=>t.capi.sqlite3_update_hook(a,Ie,0),n,o,Ie,3,a),oo="change",ro=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await Te((s,n)=>t.all(e,a,(e,t)=>e?n(e):s(t))),e=>{const a=(t,a,s)=>e(s);return t.on(oo,a),a},e=>t.off(oo,e),s,n,Ie,3,t),io="delete",lo=e=>[e.get(J),e.get(U)],co=(e,t,a,s)=>{const n=ue(t)?e:e.get(t)??e.set(t,new r);let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),n.forEach((e,t)=>{ht(a,t)||(n.delete(t),o=1)}),ue(t)||n.size||e.delete(t),o},uo=(e,t,a=c,s)=>{const n=t.getMap(a);return ys(e,async()=>n.size?[n.get(J).toJSON(),n.get(U).toJSON()]:void 0,async(e,a)=>t.transact(()=>((e,t,a)=>{e.size||(e.set(J,new r),e.set(U,new r));const[s,n]=lo(e),o=()=>{i=1};let i=1;if(fe(a,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?s.delete(t):fe(s.get(t),t=>vt(e,(e,a)=>i?0:ue(e)?t.delete(a):fe(t.get(a),t=>vt(e,(e,a)=>ue(e)?t.delete(a):t.set(a,e)),o)),o)),vt(t,(e,t)=>i?0:ue(e)?n.delete(t):n.set(t,e))}),i){const[e,a]=t();co(s,void 0,e,(e,t,a)=>co(s,t,a,(e,t,a)=>co(e,t,a,(e,t,a)=>{if(e.get(t)!==a)return e.set(t,a),1}))),co(n,void 0,a,(e,t,a)=>{n.get(t)!==a&&n.set(t,a)})}})(n,e,a)),e=>{const t=t=>e(void 0,((e,t)=>{if(1==me(t)&&We(t[0].path))return[e.get(J).toJSON(),e.get(U).toJSON(),1];const[a,s]=lo(e),n={},o={};return _e(t,({path:e,changes:{keys:t}})=>qe(e)==J?fe(qe(e),s=>{const o=Rt(n,s,ut),r=a.get(s);fe(qe(e),e=>{const a=Rt(o,e,ut),s=r.get(e);Nt(t,(e,{action:t})=>a[e]=t==io?void 0:s.get(e))},()=>Nt(t,(e,{action:t})=>o[e]=t==io?void 0:r.get(e)?.toJSON()))},()=>Nt(t,(e,{action:t})=>n[e]=t==io?void 0:a.get(e)?.toJSON())):Nt(t,(e,{action:t})=>o[e]=t==io?void 0:s.get(e))),[n,o,1]})(n,t));return n.observeDeep(t),t},e=>{n.unobserveDeep(e)},s,1,{getYDoc:()=>t})},go="_",wo=Gt(e=>{const t=e._[0],a=t(),s=t(),n=t(),o=Lt(),r=Ft(),i=Lt(),l=Lt(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},u=Lt(),g=Lt(),{_:[,w,h],delListener:y}=n,[f,b,v,S,C,p,m,L,,E,N,M]=Ut(e,()=>[],Re,w,h),$=e=>At(o,e,t),x=(e,t,...a)=>_e(a,a=>Jt(At(At(u,t,Lt),e,Ft),a)),W=e=>{fe(Dt(u,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),_e([$(e),a],t=>t.delTable(e))},H=(e,t,a,...s)=>{const n=At(At(g,t,Lt),e,Ft);return _e(s,t=>{Jt(n,t),a&&e.callListener(t)}),s},F=(e,t,a)=>fe(Dt(Dt(g,e),t),s=>{t.delListener(a),st(s,a),Ze(s)&&Ot(Dt(g,e),t)}),J=e=>fe(Dt(g,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),U=(e,t,a)=>x(t,e,t.addStartTransactionListener(a.startTransaction),t.addDidFinishTransactionListener(()=>a.finishTransaction())),j=(e,t)=>(pt(t)?s.delRow:s.setRow)(go,e,{...t}),G=t=>$(t).transaction(()=>fe(p(t),([s,,n])=>{const o=C(t),i=n?$(o):e,l=$(t),c=B(t);Jt(r,t),W(t),J(t);const u=[],g=[[void 0,[o,void 0,void 0,[],Lt(),i]]],w=[],h=[],y=[];s({select:(e,t,a)=>{const s=we(e)?t:e,n=we(e)?a:t,o=Se(e)?[me(u)+d,e]:ue(n)?[e,t=>t(e)]:[n,t=>we(e)?t(!0,s,n):t(s,n)];return Ue(u,o),{as:e=>o[0]=e}},join:(t,a,s,n)=>{const o=we(t)?a:t,[r,i]=we(t)?ue(n)||Se(s)?[void 0,s]:[s,n]:ue(s)||Se(a)?[void 0,a]:[a,s],l=[o,[o,r,Se(i)?i:e=>e(i),[],Lt(),we(t)?$(o):e]];return Ue(g,l),{as:e=>l[0]=e}},where:(e,t,a,s)=>Ue(w,Se(e)?e:we(e)?e=>e(!0,t,a)===s:ue(a)?a=>a(e)===t:s=>s(e,t)===a),group:(e,t,a,s,n)=>{const o=[e,[e,Se(t)?[t,a,s,n]:Dt(os,t)??[(e,t)=>t]]];return Ue(h,o),{as:e=>o[0]=e}},having:(e,t)=>Ue(y,Se(e)?e:a=>a(e)===t),param:e=>wt(c,e)});const f=Lt(u);if(Ze(f))return st(r,t),z;const b=Lt(g);Nt(b,(e,[,t])=>fe(Dt(b,t),({3:t})=>ue(e)?0:Ue(t,e)));const v=Lt(h);let S=a;if(Ze(v)&&We(y))S=l;else{U(t,S,l);const e=Lt();Nt(v,(t,[a,s])=>Jt(At(e,a,Ft),[t,s]));const a=Ft();Nt(f,t=>Ke(e,t)?0:Jt(a,t));const s=Lt(),n=(a,s,n,o)=>fe(a,([r,i,c,d])=>{Nt(s,(t,[a])=>{const s=At(r,t,Lt),i=Dt(s,n),l=o?void 0:a;if(i!==l){const a=Ft([[i,l]]),o=ze(s);Ot(s,n,l),at(Dt(e,t),([e,t])=>{const n=rs(d[e],o,s,a,t);d[e]=ue(Ma(n))?void 0:n})}}),Ze(i)||!Oe(y,e=>e(e=>d[e]))?l.delRow(t,c):ue(c)?a[2]=l.addRow(t,d):l.setRow(t,c,d)});x(S,t,S.addRowListener(t,null,(o,r,i,l)=>{const c=[],d=[],u=Lt(),g=S.hasRow(t,i);let w=!g;at(a,e=>{const[a,s,n]=l(t,i,e);Ue(c,s),Ue(d,n),w||=a}),Nt(e,e=>{const[a,,s]=l(t,i,e);(w||a)&&Ot(u,e,[s])}),w&&n(Ht(s,c,void 0,([,e])=>(st(e,i),Ze(e))),u,i,1),g&&n(Ht(s,d,()=>{const e={};return at(a,a=>e[a]=S.getCell(t,i,a)),[Lt(),Ft(),void 0,e]},([,e])=>{Jt(e,i)}),u,i)}))}U(t,i,S);const p=(e,a,s,n,r)=>{const l=e=>a.getCell(s,n,e);_e(r,a=>{const[s,,n,o,r,i]=Dt(b,a),c=n?.(l,e),d=Dt(r,e),u=d?.[0];c!=u&&(fe(d,([,e,a])=>F(t,e,a)),Ot(r,e,ue(c)?void 0:[c,i,...H(i,t,1,i.addRowListener(s,c,()=>p(e,i,s,c,o)))]))}),(e=>{const a=(t,a,s)=>{const n=we(t)?a:t,r=we(t)?s:a;if(ue(r))return i.getCell(o,e,t);if(n===o&&!we(t))return i.getCell(o,e,r);const l=Dt(b,n);return ue(l)?void 0:l[5].getCell(l[0],Dt(l[4],e)?.[0],r)};S.transaction(()=>Oe(w,e=>e(a))?Nt(f,(s,n)=>S._[5](t,e,s,n(a,e))):S.delRow(t,e))})(e)},{3:m}=Dt(b,void 0),R=(e,a,s)=>{i.hasRow(o,s)?p(s,i,o,s,m):(S.delRow(t,s),at(b,({4:e})=>fe(Dt(e,s),([,a,n])=>{F(t,a,n),Ot(e,s)})))};return S.transaction(()=>{_e(i.getRowIds(o),e=>R(0,0,e)),H(i,t,0,i.addRowListener(o,null,R))}),st(r,t),z})),q=e=>(fe(p(e),([,e])=>s.delListener(e)),s.delRow(go,e),W(e),J(e),E(e),z),B=e=>s.getRow(go,e),z={setQueryDefinition:(e,t,a,n,o={})=>{const[r,i,l,c]=we(t)?[a,n,1,o]:[t,a,0,n??{}];return fe(p(e),([,e])=>s.delListener(e)),L(e,r),m(e,[i,s.addRowListener(go,e,()=>G(e)),l]),j(e,c),G(e),z},delQueryDefinition:q,getParamValues:B,getParamValue:(e,t)=>s.getCell(go,e,t),setParamValues:(e,t)=>(S(e)&&j(e,t),z),setParamValue:(e,t,a)=>(S(e)&&s.setCell(go,e,t,a),z),getStore:f,getQueryIds:b,forEachQuery:v,hasQuery:S,getTableId:C,forEachResultTable:e=>v(t=>$(t).hasTable(t)?e(t,e=>z.forEachResultRow(t,e)):0),addQueryIdsListener:e=>N(()=>e(z)),addParamValuesListener:(e,t)=>"p"+s.addRowListener(go,e,(e,a,s)=>t(z,s,B(s))),addParamValueListener:(e,t,a)=>"p"+s.addCellListener(go,e,t,(e,t,s,n,o)=>a(z,s,n,o)),delListener:e=>{const t=Dt(i,e);if("p"==e[0])s.delListener(pe(e,1));else if(ue(t))y(e);else{const[a,s,n]=t;Nt(s,(e,[t,a])=>t.delListener(a)),fe(n,y),Ot(i,e),y(e),c[a]--}return z},destroy:()=>{_e(b(),q),M()},getListenerStats:()=>({...c,paramValues:s.getListenerStats().row-me(b()),paramValue:s.getListenerStats().cell})};return vt({[D]:[2,1],[D+V]:[1,1],[A]:[1,1],[P]:[1,1],[k]:[1,5],[O]:[3,2],[V]:[1,2],[_]:[3,3]},([e,t],a)=>{_e(pe(["get","has","forEach"],0,e),e=>z[e+I+a]=(...t)=>$(t[0])[e+a](...t)),z[T+I+a+R]=(...e)=>((s,n)=>{const o=w(Re,l),r=Lt(),d=()=>{const s=null==n?b():[n];_e(s,s=>{return Ke(r,s)?0:Ot(r,s,[$(s),(n=$(s),n[T+a+R](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:pe(e,0,t))(e,t),(a,...s)=>e[t](z,...s),!0))]);var n}),Nt(r,(e,[t,a])=>null==n&&S(e)||e==n?0:(t.delListener(a),void Ot(r,e)))};return d(),Ot(i,o,[s,r,null==n?N(d):void 0]),c[s]++,o})((e=>e[0].toLowerCase()+pe(e,1))(a),e[0])}),dt(z)}),ho=Gt(e=>{const t=Lt(),a=Lt(),s=Lt(),n=Lt(),[o,r,i]=zt(()=>m),[l,c,u,g,w,h,,,y,f,b,v]=Ut(e,()=>[Lt(),Lt(),Lt(),Lt()],e=>ue(e)?void 0:e+d,o,r),S=(e,t,a)=>fe(h(e),([s,,n])=>{if(!Ke(n,t)){const o=Ft();if(w(e)!=p(e))Jt(o,t);else{let e=t;for(;!ue(e)&&!Ke(o,e);)Jt(o,e),e=Dt(s,e)}if(a)return o;Ot(n,t,o)}return Dt(n,t)}),C=(e,t)=>fe(h(e),([,,e])=>Ot(e,t)),p=e=>Dt(t,e),m={setRelationshipDefinition:(e,o,i,l)=>(Ot(t,e,i),y(e,o,(t,o)=>{const i=Ft(),l=Ft(),c=Ft(),[d,u]=h(e);at(o,([t,a],s)=>{ue(t)||(Jt(l,t),fe(Dt(u,t),e=>{st(e,s),Ze(e)&&Ot(u,t)})),ue(a)||(Jt(l,a),Ke(u,a)||Ot(u,a,Ft()),Jt(Dt(u,a),s)),Jt(i,s),Ot(d,s,a),Nt(Dt(n,e),t=>{Ke(S(e,t),s)&&Jt(c,t)})}),t(),at(i,t=>r(a,[e,t])),at(l,t=>r(s,[e,t])),at(c,t=>{C(e,t),r(n,[e,t])})},jt(l)),m),delRelationshipDefinition:e=>(Ot(t,e),f(e),m),getStore:l,getRelationshipIds:c,forEachRelationship:t=>u(a=>t(a,t=>e.forEachRow(w(a),t))),hasRelationship:g,getLocalTableId:w,getRemoteTableId:p,getRemoteRowId:(e,t)=>Dt(h(e)?.[0],t),getLocalRowIds:(e,t)=>et(Dt(h(e)?.[1],t)),getLinkedRowIds:(e,t)=>ue(h(e))?[t]:et(S(e,t,!0)),addRelationshipIdsListener:b,addRemoteRowIdListener:(e,t,s)=>o(s,a,[e,t]),addLocalRowIdsListener:(e,t,a)=>o(a,s,[e,t]),addLinkedRowIdsListener:(e,t,a)=>(S(e,t),o(a,n,[e,t])),delListener:e=>(C(...i(e)??[]),m),destroy:v,getListenerStats:()=>({remoteRowId:Ye(a),localRowIds:Ye(s),linkedRowIds:Ye(n)})};return dt(m)}),yo={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},fo=(e,t,a,s,n,o,r,i,l={})=>{let c,u=0,g=0,w=0;const h=Lt(),y=()=>ta(11),f=(e,a,s,n)=>{g++,o?.(e,a,s,n),t(e,a,s,n)},b=async(e,t,a,s)=>Te((o,r)=>{const i=s+"."+ta(4),l=ne(()=>{st(h,i),r(`No response from ${e??"anyone"} to ${i}, `+t)},n);Ot(h,i,[e,(e,t)=>{clearTimeout(l),st(h,i),o([e,t,s])}]),f(e,i,t,a)}),v=(e,[t,a])=>{ft(t,([t,a],s)=>{const n=Rt(e[0],s,Ua);ft(t,([e,t],a)=>{const s=Rt(n[0],a,Ua);ft(e,([e,t],a)=>s[0][a]=$a(e,t)),s[1]=Fa(s[1],t)}),n[1]=Fa(n[1],a)}),e[1]=Fa(e[1],a)},S=(t=null,a,s=y())=>Ne(async()=>{ue(a)&&([a,t,s]=await b(null,1,d,s));const[n,o]=a,[r,i]=e.getMergeableContentHashes();let l=Ua();if(r!=n){const[a,n]=(await b(t,4,e.getMergeableTableHashes(),s))[0];if(l=a,!pt(n)){const[a,o]=(await b(t,5,e.getMergeableRowHashes(n),s))[0];if(v(l,a),!pt(o)){const a=(await b(t,6,e.getMergeableCellHashes(o),s))[0];v(l,a)}}}return[l,i==o?Ua():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},i),C=ys(e,async()=>{const e=await S();return!e||pt(e[0][0])&&pt(e[1][0])?void 0:e},async(t,a)=>a?f(null,y(),3,a):f(null,y(),2,e.getMergeableContentHashes()),e=>c=e,()=>c=void 0,i,2,{startSync:async e=>(u=1,await C.startAutoPersisting(e)),stopSync:async()=>(u=0,await C.stopAutoPersisting(),C),destroy:async()=>(await C.stopSync(),s(),C),getSynchronizerStats:()=>({sends:g,receives:w}),...l},1);return a((t,a,s,n)=>{const o=u||C.isAutoLoading();w++,r?.(t,a,s,n),0==s?fe(Dt(h,a),([e,a])=>ge(e)||e==t?a(n,t):0):2==s&&o?S(t,n,a??void 0).then(e=>{c?.(void 0,e)}).catch(i):3==s&&o?c?.(void 0,n):fe(1==s&&(u||C.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{f(t,a,0,e)})}),C},bo=(e,t,a,s,n)=>{const o=ta(),r=new BroadcastChannel(t);return fo(e,(e,t,a,s)=>r.postMessage([o,e,t,a,s]),e=>{r.onmessage=({data:[t,a,s,n,r]})=>ge(a)||a==o?e(t,s,n,r):0},()=>{r.close()},.01,a,s,n,{getChannelName:()=>t})},vo=Lt(),So=(e,t,a,s)=>{const n=ta();return fo(e,(e,t,a,s)=>ne(()=>ge(e)?Nt(vo,(e,o)=>e!=n?o(n,t,a,s):0):Dt(vo,e)?.(n,t,a,s)),e=>{Ot(vo,n,e)},()=>{st(vo,n)},.01,t,a,s)},Co=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(pe(e,0,a),pe(e,a+1))},po=(e,t)=>Co(e,(e,a)=>t(e,...ra(a))),mo=(e,...t)=>Ro(e??d,oa(t)),Ro=(e,t)=>e+"\n"+t,Io=async(e,t,a=1,s,n,o)=>{const r=(e,a)=>(t.addEventListener(e,a),()=>t.removeEventListener(e,a)),i=fo(e,(e,...a)=>t.send(mo(e,...a)),e=>r(H,({data:t})=>po(t.toString(m),e)),()=>{t.close()},a,s,n,o,{getWebSocket:()=>t});return Te(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&o?.(t),a(),s(),e(i)},a=r("open",()=>t()),s=r(F,t)}else e(i)})},To=/\/([^?]*)/,Lo="S",Eo=e=>B(new URL(e.url).pathname,To)?.[1]??d,Do=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,No=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),Mo=()=>No(426,null,"Upgrade required");class Oo extends i{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await fe(await this.createPersister(),async e=>{const t=fo(e.getStore(),(e,t,a,s)=>this.#t(Lo,mo(e,t,a,s)),e=>this.#e=t=>po(t,e),Ie,1);await e.load(),await e.startAutoSave(),ne(t.startSync)}))}fetch(e){const t=Eo(e);return fe(Do(e),e=>{const[a,s]=St(new WebSocketPair);return We(this.#a())&&this.onPathId(t,1),this.ctx.acceptWebSocket(s,[e,t]),this.onClientId(t,e,1),s.send(mo(Lo,null,1,d)),No(101,a)},Mo)}webSocketMessage(e,t){fe(this.ctx.getTags(e)[0],a=>this.#t(a,t.toString(),e))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==me(this.#a())&&this.onPathId(a,-1)}#t(e,t,a){Co(t.toString(),(t,s)=>{const n=Ro(e,s);this.onMessage(e,t,s),t==d?(e!=Lo&&this.#e?.(n),_e(this.#a(),e=>{e!=a&&e.send(n)})):t==Lo?this.#e?.(n):t!=e&&this.#a(t)[0]?.send(n)})}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return $e(this.#a(),e=>this.ctx.getTags(e)[0])}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const Ao=e=>(t,a)=>Do(t)?a[e].get(a[e].idFromName(Eo(t))).fetch(t):Mo(),Po=/\/([^?]*)/,ko=e=>{const t=Lt();return e.on("connection",(e,a)=>fe(B(a.url,Po),([,s])=>fe(a.headers["sec-websocket-key"],async a=>{const n=At(t,s,Lt);Ot(n,a,e),e.on(H,e=>Co(e.toString(m),(e,t)=>{const s=Ro(a,t);e===d?Nt(n,(e,t)=>e!==a?t.send(s):0):Dt(n,e)?.send(s)})),e.on("close",()=>{st(n,a),Ze(n)&&st(t,s)})}))),dt({getWebSocketServer:()=>e,destroy:async()=>{tt(t),e.close()}})},_o=/\/([^?]*)/,Vo=(e,t,a)=>{const s=Lt(),n=Lt(),o=Lt(),r=Lt(),[i,l,c]=zt(()=>w),u=async e=>{await(e[1]?.destroy()),await(e[2]?.destroy())},g=(e,t,a)=>s=>Co(s,(s,n)=>{const o=Ro(e,n);s===d?("S"!==e&&a[3]?.(o),Nt(t,(t,a)=>t!==e?a.send(o):0)):"S"===s?a[3]?.(o):Dt(t,s)?.send(o)});e.on("connection",(e,i)=>fe(B(i.url,_o),([,c])=>fe(i.headers["sec-websocket-key"],async i=>{const d=At(o,c,Lt),w=At(r,c,()=>[0]),h=g(i,d,w);Ze(d)&&(l(s,void 0,c,1),await(async(e,s,n)=>fe(await(t?.(s)),t=>{e[0]=1,e[1]=Ce(t)?t[0]:t;const s=g("S",n,e);e[2]=fo(e[1].getStore(),(e,t,a,n)=>s(mo(e,t,a,n)),t=>e[3]=e=>po(e,t),Ie,1,void 0,void 0,a),e[4]=[],e[5]=Ce(t)?t[1]:e=>0}))(w,c,d)),Ot(d,i,e),l(n,[c],i,1),e.on(H,e=>{const t=e.toString(m);0==w[0]?h(t):Ue(w[4],t)}),1==w[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(w),_e(w[4],h),w[4]=[]),e.on("close",async()=>{st(d,i),l(n,[c],i,-1),Ze(d)&&(await u(w),st(r,c),st(o,c),l(s,void 0,c,-1))}),a&&e.on(F,a)}))),a&&e.on(F,a);const w={getWebSocketServer:()=>e,getPathIds:()=>Et(o),getClientIds:e=>Et(Dt(o,e)),addPathIdsListener:e=>i(e,s),addClientIdsListener:(e,t)=>i(t,n,[e]),delListener:e=>(c(e),w),getStats:()=>({paths:ze(o),clients:Qe(o)}),destroy:async()=>{tt(o),await Le(Mt(r,u)),e.close()}};return dt(w)};export{yo as Message,gs as Persists,us as Status,Bn as TinyBasePartyKitServer,Oo as WsServerDurableObject,da as addOrRemoveHash,Un as broadcastChanges,fn as createAutomergePersister,bo as createBroadcastChannelSynchronizer,Qt as createCheckpoints,mn as createCrSqliteWasmPersister,ys as createCustomPersister,gn as createCustomPostgreSqlPersister,wn as createCustomSqlitePersister,fo as createCustomSynchronizer,In as createDurableObjectStoragePersister,Tn as createElectricSqlPersister,Ln as createExpoSqlitePersister,En as createFilePersister,An as createIndexedDbPersister,Na as createIndexes,Pn as createLibSqlPersister,Sn as createLocalPersister,So as createLocalSynchronizer,ns as createMergeableStore,is as createMetrics,ds as createMiddleware,pn as createOpfsPersister,xn as createPartyKitPersister,zn as createPglitePersister,Qn as createPostgresPersister,Yn as createPowerSyncPersister,wo as createQueries,Kn as createReactNativeMmkvPersister,Zn as createReactNativeSqlitePersister,ho as createRelationships,ao as createRemotePersister,Cn as createSessionPersister,ro as createSqlite3Persister,so as createSqliteBunPersister,no as createSqliteWasmPersister,ts as createStore,Vo as createWsServer,ko as createWsServerSimple,Io as createWsSynchronizer,uo as createYjsPersister,Da as defaultSorter,ha as getCellHash,ya as getCellInRowHash,ca as getHash,Ea as getHlcFunctions,fa as getRowHash,ba as getRowInTableHash,va as getTableHash,Sa as getTableInTablesHash,Ca as getTablesHash,ta as getUniqueId,wa as getValueHash,ga as getValueInValuesHash,ua as getValuesHash,Ao as getWsServerDurableObjectFetch,Fn as hasStoreInStorage,Jn as loadStoreFromStorage,Mn as objectStoreMatch};
|
|
1
|
+
import{addDatabaseChangeListener as e}from"expo-sqlite";import{existsSync as t,writeFileSync as a,watch as s}from"fs";import{writeFile as n,readFile as o}from"fs/promises";import{Map as r}from"yjs";import{DurableObject as i}from"cloudflare:workers";const l=e=>typeof e,c="tinybase",d="",u=",",g=l(d),w=l(!0),h=l(0),y=l(l),f="object",b="array",v="true",S="type",C="default",p="allowNull",m="utf8",R="Listener",I="Result",T="add",L="Has",E="Ids",D="Table",N=D+"s",M=D+E,O="Row",A=O+"Count",P=O+E,k="Sorted"+O+E,_="Cell",V=_+E,$="Value",x=$+"s",W=$+E,H="message",F="error",J="t",U="v",j=e=>d+e,G=(e,t)=>e.startsWith(t),q=(e,t)=>e.endsWith(t),B=(e,t)=>e?.match(t),z=(e,t=d,a)=>e.split(t,a),Q=(e,t,a)=>e.replace(t,a),Y=Promise,X=Math,K=e=>(t,a,s)=>e(t)?s?.():a(t),Z=globalThis,ee=Z.window,te=String,ae=(e,t,a)=>setInterval(e,1e3*t),se=clearInterval,ne=(e,t=0)=>setTimeout(e,1e3*t),oe=X.max,re=X.min,ie=X.floor,le=X.random,ce=isFinite,de=e=>null==e,ue=e=>void 0===e,ge=e=>null===e,we=e=>!0===e,he=e=>!1===e,ye=K(de),fe=K(ue),be=e=>e==g||e==w,ve=e=>l(e)==g,Se=e=>l(e)==y,Ce=e=>Array.isArray(e),pe=(e,t,a)=>e.slice(t,a),me=e=>e.length,Re=()=>{},Ie=()=>{},Te=e=>new Y(e),Le=async e=>Y.all(e),Ee=Z.structuredClone,De=e=>{throw Error(e)},Ne=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},Me=(e,t)=>e.includes(t),Oe=(e,t)=>e.every(t),Ae=(e,t)=>me(e)===me(t)&&Oe(e,(e,a)=>t[a]===e),Pe=(e,t)=>Oe(e,(a,s)=>0==s||t(e[s-1],a)<=0),ke=(e,t)=>e.sort(t),_e=(e,t)=>e.forEach(t),Ve=(e,t=d)=>e.join(t),$e=(e,t)=>e.map(t),xe=e=>He(e,(e,t)=>e+t,0),We=e=>0==me(e),He=(e,t,a)=>e.reduce(t,a),Fe=(e,t)=>e.filter(t),Je=(e,t)=>e.splice(0,t),Ue=(e,...t)=>e.push(...t),je=e=>e.pop(),Ge=(e,...t)=>e.unshift(...t),qe=e=>e.shift(),Be=e=>t=>He(et(t),(t,a)=>t+e(a),0),ze=e=>e?.size??0,Qe=Be(ze),Ye=Be(Qe),Xe=Be(Ye),Ke=(e,t)=>e?.has(t)??!1,Ze=e=>ue(e)||0==ze(e),et=e=>[...e?.values()??[]],tt=e=>e.clear(),at=(e,t)=>e?.forEach(t),st=(e,t)=>e?.delete(t),nt=Object,ot=e=>nt.getPrototypeOf(e),rt=nt.isFrozen,it=nt.entries,lt=e=>!de(e)&&ye(ot(e),e=>e==nt.prototype||de(ot(e)),()=>!0),ct=nt.keys,dt=nt.freeze,ut=(e=[])=>nt.fromEntries(e),gt=(...e)=>nt.assign({},...e),wt=(e,t)=>fe(e,e=>e[t]),ht=(e,t)=>t in e,yt=(e,t)=>(delete e[t],e),ft=(e,t)=>_e(it(e),([e,a])=>t(a,e)),bt=(e,t)=>$e(it(e),([e,a])=>t(a,e)),vt=(e,t)=>ut(bt(e,(e,a)=>[a,t(e,a)])),St=e=>nt.values(e),Ct=e=>me(ct(e)),pt=e=>lt(e)&&0==Ct(e),mt=(e,t,a=(e,t)=>e===t)=>{const s=it(e);return me(s)===Ct(t)&&Oe(s,([e,s])=>lt(s)?!!lt(t[e])&&mt(t[e],s,a):a(s,t[e]))},Rt=(e,t,a)=>(ht(e,t)||(e[t]=a()),e[t]),It=(e,t,a,s=0)=>de(e)||!lt(e)||!s&&pt(e)||rt(e)?(a?.(),!1):(ft(e,(a,s)=>{t(a,s)||yt(e,s)}),!!s||!pt(e)),Tt=Map,Lt=e=>new Tt(e),Et=e=>[...e?.keys()??[]],Dt=(e,t)=>e?.get(t),Nt=(e,t)=>at(e,(e,a)=>t(a,e)),Mt=(e,t)=>$e([...e?.entries()??[]],([e,a])=>t(a,e)),Ot=(e,t,a)=>ue(a)?(st(e,t),e):e?.set(t,a),At=(e,t,a,s)=>(Ke(e,t)?s?.(Dt(e,t)):Ot(e,t,a()),Dt(e,t)),Pt=(e,t,a,s=Ot)=>(vt(t,(t,s)=>a(e,s,t)),Nt(e,a=>ht(t,a)?0:s(e,a)),e),kt=(e,t,a,s)=>{const n={};return at(e,(e,o)=>{if(!a?.(e,o)){const a=t?t(e,o):e;s?.(a)||(n[o]=a)}}),n},_t=(e,t,a)=>kt(e,e=>kt(e,t,a),Ze,pt),Vt=(e,t,a)=>kt(e,e=>_t(e,t,a),Ze,pt),$t=(e,t)=>{const a=Lt();return at(e,(e,s)=>a.set(s,t?.(e)??e)),a},xt=e=>$t(e,$t),Wt=e=>$t(e,xt),Ht=(e,t,a,s,n=0)=>fe((a?At:Dt)(e,t[n],n>me(t)-2?a:Lt),o=>{if(n>me(t)-2)return s?.(o)&&Ot(e,t[n]),o;const r=Ht(o,t,a,s,n+1);return Ze(o)&&Ot(e,t[n]),r}),Ft=e=>new Set(Ce(e)||ue(e)?e:[e]),Jt=(e,t)=>e?.add(t),Ut=(e,t,a,s,n)=>{const o=e.hasRow,r=Lt(),i=Lt(),l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=t=>fe(Dt(u,t),a=>{_e(et(a),t=>{e.delListener(t),st(a,t)}),Ot(u,t)}),w=(e,a)=>{Ot(r,e,a),Ke(i,e)||(Ot(i,e,t()),Ot(c,e,Lt()),Ot(d,e,Lt()),n(l))},h=e=>{Ot(r,e),Ot(i,e),Ot(c,e),Ot(d,e),g(e),n(l)};return[()=>e,()=>Et(r),e=>Nt(i,e),e=>Ke(i,e),e=>Dt(r,e),e=>Dt(i,e),(e,t)=>Ot(i,e,t),w,(t,s,n,r,i)=>{w(t,s);const l=Lt(),h=Lt(),y=Dt(c,t),f=Dt(d,t),b=t=>{const n=a=>e.getCell(s,t,a),c=Dt(y,t),d=o(s,t)?a(r(n,t)):void 0;if(c===d||Ce(c)&&Ce(d)&&Ae(c,d)||Ot(l,t,[c,d]),!ue(i)){const e=Dt(f,t),a=o(s,t)?i(n,t):void 0;e!=a&&Ot(h,t,a)}},v=e=>{n(()=>{at(l,([,e],t)=>Ot(y,t,e)),at(h,(e,t)=>Ot(f,t,e))},l,h,y,f,e),tt(l),tt(h)};Nt(y,b),e.hasTable(s)&&_e(e.getRowIds(s),e=>{Ke(y,e)||b(e)}),v(!0),g(t),((e,...t)=>{const a=At(u,e,Ft);_e(t,e=>Jt(a,e))})(t,e.addRowListener(s,null,(e,t,a)=>b(a)),e.addTableListener(s,()=>v()))},h,e=>s(e,l),()=>Nt(u,h)]},jt=(e,t)=>ve(e)?t=>t(e):e??(()=>t??d),Gt=(e,t)=>{const a=new WeakMap;return s=>{a.has(s)||a.set(s,e(s));const n=a.get(s);return t?.(n),n}},qt=/^\d+$/,Bt=()=>{const e=[];let t=0;return[a=>(a?qe(e):null)??d+t++,t=>{qt.test(t)&&me(e)<1e3&&Ue(e,t)}]},zt=e=>{let t;const[a,s]=Bt(),n=Lt();return[(s,o,r,i=[],l=()=>[])=>{t??=e();const c=a(1);return Ot(n,c,[s,o,r,i,l]),Jt(Ht(o,r??[d],Ft),c),c},(e,a,...s)=>_e(((e,t=[d])=>{const a=[],s=(e,n)=>n==me(t)?Ue(a,e):ge(t[n])?at(e,e=>s(e,n+1)):_e([t[n],null],t=>s(Dt(e,t),n+1));return s(e,0),a})(e,a),e=>at(e,e=>Dt(n,e)[0](t,...a??[],...s))),e=>fe(Dt(n,e),([,t,a])=>(Ht(t,a??[d],void 0,t=>(st(t,e),Ze(t)?1:0)),Ot(n,e),s(e),a)),e=>fe(Dt(n,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=me(r);i==me(a)?e(t,...r,...n(r)):ge(a[i])?_e(s[i]?.(...r)??[],e=>o(...r,e)):o(...r,a[i])};o()})]},Qt=Gt(e=>{let t,a,s,n=100,o=Lt(),r=Lt(),i=1;const l=Lt(),c=Lt(),[u,g,w]=zt(()=>P),h=Lt(),y=Lt(),f=[],b=[],v=(t,a)=>{i=0,e.transaction(()=>{const[s,n]=Dt(h,a);at(s,(a,s)=>at(a,(a,n)=>at(a,(a,o)=>e._[5](s,n,o,a[t],!0)))),at(n,(a,s)=>e._[6](s,a[t],!0))}),i=1},S=e=>{Ot(h,e),Ot(y,e),g(c,[e])},C=(e,t)=>_e(Je(e,t??me(e)),S),p=()=>C(f,me(f)-n),m=()=>fe(t,()=>{Ue(f,t),p(),C(b),t=void 0,s=1}),R=()=>{t=je(f),s=1};let I,T;const L=(e=d)=>(ue(t)&&(t=d+a++,Ot(h,t,[o,r]),O(t,e),o=Lt(),r=Lt(),s=1),t),E=()=>{We(f)||(Ge(b,L()),v(0,t),t=je(f),s=1)},D=()=>{We(b)||(Ue(f,t),t=qe(b),v(1,t),s=1)},N=()=>{s&&(g(l),s=0)},M=e=>{const t=L(e);return N(),t},O=(e,t)=>(A(e)&&Dt(y,e)!==t&&(Ot(y,e,t),g(c,[e])),P),A=e=>Ke(h,e),P={setSize:e=>(n=e,p(),P),addCheckpoint:M,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...f],t,[...b]],forEachCheckpoint:e=>Nt(y,e),hasCheckpoint:A,getCheckpoint:e=>Dt(y,e),goBackward:()=>(E(),N(),P),goForward:()=>(D(),N(),P),goTo:e=>{const a=Me(f,e)?E:Me(b,e)?D:void 0;for(;!ue(a)&&e!=t;)a();return N(),P},addCheckpointIdsListener:e=>u(e,l),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(w(e),P),clear:()=>(C(f),C(b),ue(t)||S(t),t=void 0,a=0,M(),P),clearForward:()=>(We(b)||(C(b),g(l)),P),destroy:()=>{e.delListener(I),e.delListener(T)},getListenerStats:()=>({checkpointIds:Qe(l),checkpoint:Qe(c)}),_registerListeners:()=>{I=e.addCellListener(null,null,null,(e,t,a,s,n,r)=>{if(i){m();const e=At(o,t,Lt),i=At(e,a,Lt),l=At(i,s,()=>[r,void 0]);l[1]=n,l[0]===n&&Ze(Ot(i,s))&&Ze(Ot(e,a))&&Ze(Ot(o,t))&&R(),N()}}),T=e.addValueListener(null,(e,t,a,s)=>{if(i){m();const e=At(r,t,()=>[s,void 0]);e[1]=a,e[0]===a&&Ze(Ot(r,t))&&R(),N()}})}};return dt(P.clear())},e=>e._registerListeners()),Yt=z("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Xt=Lt($e(Yt,(e,t)=>[e,t])),Kt=e=>Yt[63&e],Zt=(e,t)=>Dt(Xt,e[t])??0,ea=Z.crypto?e=>Z.crypto.getRandomValues(e):e=>$e(e,()=>ie(256*le())),ta=(e=16)=>He(ea(new Uint8Array(e)),(e,t)=>e+Kt(t),d),aa=JSON.stringify,sa=JSON.parse,na=e=>aa(e,(e,t)=>t instanceof Map?nt.fromEntries([...t]):t),oa=e=>aa(e,(e,t)=>ue(t)?"":t),ra=e=>ia(sa(e)),ia=e=>""===e?void 0:Ce(e)?$e(e,ia):lt(e)?vt(e,ia):e,la=new Z.TextEncoder,ca=e=>{let t=2166136261;return _e(la.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},da=(e,t)=>(e^t)>>>0,ua=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)^ga(t,0)),0),ga=(e,t)=>ca(e+":"+t),wa=(e,t)=>ca(na(e??null)+":"+t),ha=wa,ya=ga,fa=ua,ba=ga,va=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)),0),Sa=ga,Ca=va,pa=2**36,ma=2**30,Ra=2**24,Ia=2**18,Ta=4096,La=e=>{const t=ca(e);return Kt(t/Ra)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)},Ea=(e,t=Date.now)=>{let a=0,s=-1;const n=fe(e,La,()=>ta(5)),o=e=>{const n=a,[o,r]=ue(e)||e==d?[0,0]:i(e);a=oe(n,o,t()),s=a==n?a==o?oe(s,r):s:a==o?r:-1},r=(e,t,a)=>Kt(e/pa)+Kt(e/ma)+Kt(e/Ra)+Kt(e/Ia)+Kt(e/Ta)+Kt(e/64)+Kt(e)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)+(ue(a)?n:La(a)),i=e=>[Zt(e,0)*pa+Zt(e,1)*ma+Zt(e,2)*Ra+Zt(e,3)*Ia+Zt(e,4)*Ta+64*Zt(e,5)+Zt(e,6),Zt(e,7)*Ia+Zt(e,8)*Ta+64*Zt(e,9)+Zt(e,10),e.slice(11)];return[()=>(o(),r(a,++s)),o,r,i,()=>a,()=>s,()=>n]},Da=(e,t)=>(e??0)<(t??0)?-1:1,Na=Gt(e=>{const t=Lt(),a=Lt(),[s,n,o]=zt(()=>S),[r,i,l,c,u,g,w,,h,y,f,b]=Ut(e,Lt,e=>ue(e)?d:Ce(e)?$e(e,j):j(e),s,n),v=(t,a,s)=>{const n=u(t);at(s,(t,s)=>a(s,a=>at(t,t=>a(t,a=>e.forEachCell(n,t,a)))))},S={setIndexDefinition:(e,s,o,r,i,l=Da)=>{const c=ue(i)?void 0:([e],[t])=>i(e,t);return h(e,s,(s,o,i,d,u,h)=>{let y=0;const f=Ft(),b=Ft(),v=g(e);if(at(o,([e,t],a)=>{const s=Ft(e),n=Ft(t);at(s,e=>st(n,e)?st(s,e):0),at(s,e=>{Jt(f,e),fe(Dt(v,e),t=>{st(t,a),Ze(t)&&(Ot(v,e),y=1)})}),at(n,e=>{Jt(f,e),Ke(v,e)||(Ot(v,e,Ft()),y=1),Jt(Dt(v,e),a),ue(r)||Jt(b,e)})}),s(),Ze(u)||(h?Nt(v,e=>Jt(b,e)):Nt(i,e=>fe(Dt(d,e),e=>_e(Ce(e)?e:[e],e=>Jt(b,e)))),at(b,e=>{const t=(t,a)=>l(Dt(u,t),Dt(u,a),e),a=[...Dt(v,e)];Pe(a,t)||(Ot(v,e,Ft(ke(a,t))),Jt(f,e))})),(y||h)&&!ue(c)){const t=[...v];Pe(t,c)||(w(e,Lt(ke(t,c))),y=1)}y&&n(t,[e]),at(f,t=>n(a,[e,t]))},jt(o),fe(r,jt)),S},delIndexDefinition:e=>(y(e),S),getStore:r,getIndexIds:i,forEachIndex:e=>l((t,a)=>e(t,e=>v(t,e,a))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ke(g(e),t),getTableId:u,getSliceIds:e=>Et(g(e)),getSliceRowIds:(e,t)=>et(Dt(g(e),t)),addIndexIdsListener:f,addSliceIdsListener:(e,a)=>s(a,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,a,[e,t]),delListener:e=>(o(e),S),destroy:b,getListenerStats:()=>({sliceIds:Qe(t),sliceRowIds:Ye(a)})};return dt(S)}),Ma=e=>{if(ge(e))return"null";if(Ce(e))return b;if(lt(e))return f;const t=l(e);return be(t)||t==h&&ce(e)?t:void 0},Oa=e=>ue(e)||!ue(Ma(e)),Aa=e=>e==f||e==b,Pa=e=>lt(e)||Ce(e)?"�"+aa(e):e,ka=e=>ve(e)&&"�"==e[0],_a=(e,t,a)=>!a&&ka(e)?sa(pe(e,1)):e,Va=([e,t])=>$a(e,t),$a=(e,t)=>t?[e,t]:[e],xa=(e,t,a)=>[e,t,a],Wa=e=>e[2],Ha=(e,t)=>t>e?(e?ca(e):0)^ca(t):0,Fa=(e,t)=>((e??d)>(t??d)?e:t)??d,Ja=(e,t,a)=>{t>e[1]&&(e[1]=t),e[2]=a>>>0},Ua=(e=d)=>$a(ut(),e),ja=(e=d)=>[Lt(),e,0],Ga=([e,t,a],s)=>[kt(e,s),t,a],qa=([e,t],a=Va)=>$a(kt(e,a),t),Ba=(e,t)=>{return Ce(e)&&3==me(e)&&ve(e[1])&&(a=e[2],l(a)==h)&&ce(e[2])&&t(e[0]);var a},za=e=>[e,e],Qa=(e,t=Qe)=>t(e[0])+t(e[1]),Ya=()=>[Lt(),Lt()],Xa=e=>[...e],Ka=([e,t])=>e===t,Za=(e,t,a)=>Ot(e,t,Dt(e,t)==-a?void 0:a),es=([e,t],[a,s])=>mt(e,a)&&mt(t,s),ts=()=>{let e,t,a=!1,s=!1,n=0,o=[],r=[],i=0;const l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=Lt(),w=Lt(),y=Lt(),f=Lt(),b=Lt(),v=Lt(),m=Lt(),I=Lt(),E=Lt(),k=Lt(),H=Ft(),F=Lt(),J=Lt(),U=Lt(),G=Lt(),q=Ya(),B=Ya(),z=Ya(),Q=Ya(),Y=Ya(),X=Ya(),K=Ya(),Z=Ya(),ee=Ya(),te=Ya(),ae=Ya(),se=Ya(),ne=Ya(),oe=Ya(),re=Ya(),ie=Ya(),le=Ya(),ce=Ya(),de=Ya(),we=Ya(),he=Ya(),ye=Ya(),ve=Lt(),me=Ya(),[Re,Ie,Te,Le]=zt(()=>is),De=e=>{const t=i;i=1;const a=e();return i=t,a},Oe=(e,t,a,s=Object.is)=>fe(t(),t=>e===t||s(e,t)?a(t):De(()=>a(t))),Pe=e=>{if(!It(e,(e,t)=>Me([S,C,p],t)))return!1;const t=e[S];if(!be(t)&&t!=h&&!Aa(t))return!1;const a=e[C];return!(ge(a)&&!e[p]||(ge(a)||(Ma(a)!=t?yt(e,C):e[C]=Pa(a)),0))},Ve=Ce,xe=(t,a)=>(!e||Ke(m,a)||Xt(a))&&It(t,(e,t)=>We(a,t,e),()=>Xt(a)),We=(e,t,a,s)=>It(s?a:je(a,e,t),(s,n)=>fe(He(e,t,n,s),e=>(a[n]=e,!0),()=>!1),()=>Xt(e,t)),He=(t,a,s,n)=>e?fe(Dt(Dt(m,t),s),e=>ge(n)?e[p]?n:Xt(t,a,s,n,e[C]):Ma(n)===e[S]?Pa(n):Aa(e[S])&&ka(n)?n:Xt(t,a,s,n,e[C]),()=>Xt(t,a,s,n)):ue(Ma(n))?Xt(t,a,s,n):Pa(n),Fe=(e,t)=>It(t?e:Ge(e),(t,a)=>fe(Je(a,t),t=>(e[a]=t,!0),()=>!1),()=>Kt()),Je=(e,a)=>t?fe(Dt(E,e),t=>ge(a)?t[p]?a:Kt(e,a,t[C]):Ma(a)===t[S]?Pa(a):Aa(t[S])&&ka(a)?a:Kt(e,a,t[C]),()=>Kt(e,a)):ue(Ma(a))?Kt(e,a):Pa(a),je=(e,t,a)=>(fe(Dt(I,t),([s,n])=>{at(s,(t,a)=>{ht(e,a)||(e[a]=t)}),at(n,s=>{ht(e,s)||Xt(t,a,s)})}),e),Ge=e=>(t&&(at(k,(t,a)=>{ht(e,a)||(e[a]=t)}),at(H,t=>{ht(e,t)||Kt(t)})),e),qe=e=>Pt(m,e,(e,t,a)=>{const s=Lt(),n=Ft();Pt(At(m,t,Lt),a,(e,t,a)=>{Ot(e,t,a),fe(a[C],e=>Ot(s,t,e),()=>Jt(n,t))}),Ot(I,t,[s,n])},(e,t)=>{Ot(m,t),Ot(I,t)}),Be=e=>Pt(E,e,(e,t,a)=>{Ot(E,t,a),fe(a[C],e=>Ot(k,t,e),()=>Jt(H,t))},(e,t)=>{Ot(E,t),Ot(k,t),st(H,t)}),et=e=>pt(e)?Ja():Oa(e),nt=(e,t,a,s,n,o)=>ue(s)?Ga(e,t,a,!0,n):Va(e,t,a,s,n,o),ot=e=>pt(e)?qa():$a(e),rt=(e,t,a)=>ue(t)?Ba(e,a):xa(e,t,a),it=(e,t)=>Oe(e,()=>t?e:fe(o[1],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(U,e,(e,t,a)=>ct(t,a),(e,t)=>Ct(t)),mt),ct=(e,t,a)=>Oe(t,()=>a?t:fe(o[2],a=>De(()=>a(e,Ee(t))),()=>t),t=>Pt(At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),t,(t,a,s)=>ut(e,t,a,s),(t,a)=>Rt(e,t,a)),mt),ut=(e,t,a,s,n)=>Oe(s,()=>n?s:fe(o[3],t=>De(()=>t(e,a,Ee(s))),()=>s),s=>Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,n)=>gt(e,a,t,s,n),(s,o)=>Tt(e,t,a,s,o,n)),mt),gt=(e,t,a,s,n,r)=>Oe(n,()=>fe(r?void 0:o[4],a=>De(()=>a(e,t,s,n)),()=>n),n=>{Ke(a,s)||Gt(e,t,s,1);const o=Dt(a,s);n!==o&&(qt(e,t,s,o,n),Ot(a,s,n))}),wt=(e,t,a,s,n,o)=>fe(Dt(t,a),t=>gt(e,a,t,s,n,o),()=>{const r=Lt();Ot(t,a,r),jt(e,a,1),vt(je({[s]:n},e,a),(t,s)=>gt(e,a,r,s,t,o))}),ft=(e,t)=>Oe(e,()=>t?e:fe(o[5],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(G,e,(e,t,a)=>bt(t,a),(e,t)=>Ht(t)),mt),bt=(e,t,a)=>Oe(t,()=>fe(a?void 0:o[6],a=>De(()=>a(e,t)),()=>t),t=>{Ke(G,e)||Qt(e,1);const a=Dt(G,e);t!==a&&(Yt(e,a,t),Ot(G,e,t))}),St=e=>At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),Ct=e=>De(()=>o[8]?.(e))??1?ct(e,{},!0):Dt(U,e),Rt=(e,t,a)=>{if(De(()=>o[9]?.(e,a))??1){const[,s]=Dt(F,e);s(a),ut(e,t,a,{},!0)}},Tt=(e,t,a,s,n,r,i)=>{const l=Dt(Dt(I,e)?.[0],n);if(!ue(l)&&!r)return gt(e,a,s,n,l);if(i||(De(()=>o[10]?.(e,a,n))??1)){const o=t=>{qt(e,a,t,Dt(s,t)),Gt(e,a,t,-1),Ot(s,t)};ue(l)?o(n):Nt(s,o),Ze(s)&&(jt(e,a,-1),Ze(Ot(t,a))&&(Ut(e,-1),Ot(U,e),Ot(F,e),Ot(J,e)))}},Ht=(e,t)=>{const a=Dt(k,e);if(!ue(a))return bt(e,a);(t||(De(()=>o[12]?.(e))??1))&&(Yt(e,Dt(G,e)),Qt(e,-1),Ot(G,e))},Ut=(e,t)=>Za(l,e,t),jt=(e,t,a)=>Za(At(u,e,Lt),t,a)&&Ot(d,e,At(d,e,()=>0)+a),Gt=(e,t,a,s)=>{const n=Dt(J,e),o=Dt(n,a)??0;(0==o&&1==s||1==o&&-1==s)&&Za(At(c,e,Lt),a,s),Ot(n,a,o!=-s?o+s:void 0),Za(At(At(g,e,Lt),t,Lt),a,s)},qt=(e,t,a,s,n)=>{At(At(At(w,e,Lt),t,Lt),a,()=>[s,0])[1]=n,r[3]?.(e,t,a,n,i)},Qt=(e,t)=>Za(y,e,t),Yt=(e,t,a)=>{At(f,e,()=>[t,0])[1]=a,r[4]?.(e,a,i)},Xt=(e,t,a,s,n)=>(Ue(At(At(At(b,e,Lt),t,Lt),a,()=>[]),s),n),Kt=(e,t,a)=>(Ue(At(v,e,()=>[]),t),a),Zt=(e,t,a)=>fe(Dt(Dt(Dt(w,e),t),a),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(va(e,t,a))]),ea=e=>fe(Dt(f,e),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(pa(e))]),ta=e=>Ze(b)||Ze(ie[e])?0:at(e?Wt(b):b,(t,a)=>at(t,(t,s)=>at(t,(t,n)=>Ie(ie[e],[a,s,n],t)))),aa=e=>Ze(v)||Ze(le[e])?0:at(e?$t(v):v,(t,a)=>Ie(le[e],[a],t)),oa=(e,t,a,s)=>{if(!Ze(e))return Ie(t,s,()=>kt(e)),Nt(e,(e,t)=>Ie(a,[...s??[],e],1==t)),1},ra=e=>{const t=!Ze(q[e]),s=!Ze(te[e]),n=!(Ze(ne[e])&&Ze(oe[e])&&Ze(ee[e])&&Ze(ae[e])&&Ze(X[e])&&Ze(K[e])&&Ze(Z[e])&&!s&&Ze(z[e])&&Ze(Q[e])),o=!(Ze(re[e])&&Ze(se[e])&&Ze(Y[e])&&Ze(B[e]));if(t||n||o){const i=e?[$t(l),xt(c),$t(d),xt(u),Wt(g),(r=w,$t(r,e=>$t(e,e=>$t(e,Xa))))]:[l,c,d,u,g,w];if(t){const t=ma();t!=a&&Ie(q[e],void 0,t)}if(n){oa(i[0],z[e],Q[e]),at(i[1],(t,a)=>oa(t,X[e],K[e],[a])),at(i[2],(t,a)=>{0!=t&&Ie(Z[e],[a],ha(a))});const t=Ft();at(i[3],(a,n)=>{oa(a,ee[e],ae[e],[n])&&s&&(Ie(te[e],[n,null]),Jt(t,n))}),s&&at(i[5],(a,s)=>{if(!Ke(t,s)){const t=Ft();at(a,e=>at(e,([a,s],n)=>s!==a?Jt(t,n):st(e,n))),at(t,t=>Ie(te[e],[s,t]))}}),at(i[4],(t,a)=>at(t,(t,s)=>oa(t,ne[e],oe[e],[a,s])))}if(o){let t;at(i[5],(a,s)=>{let n;at(a,(a,o)=>{let r;at(a,([a,i],l)=>{i!==a&&(Ie(re[e],[s,o,l],_a(i),_a(a),Zt),t=n=r=1)}),r&&Ie(se[e],[s,o],Zt)}),n&&Ie(Y[e],[s],Zt)}),t&&Ie(B[e],void 0,Zt)}}var r},ia=e=>{const t=!Ze(ce[e]),a=!Ze(we[e])||!Ze(he[e]),n=!Ze(ye[e])||!Ze(de[e]);if(t||a||n){const o=e?[$t(y),$t(f,Xa)]:[y,f];if(t){const t=Ea();t!=s&&Ie(ce[e],void 0,t)}if(a&&oa(o[0],we[e],he[e]),n){let t;at(o[1],([a,s],n)=>{s!==a&&(Ie(ye[e],[n],_a(s),_a(a),ea),t=1)}),t&&Ie(de[e],void 0,ea)}}},la=(e,...t)=>(ns(()=>e(...$e(t,j))),is),ca=(e,t,a,s,n)=>{let o=fa(e,t,...a);return Re(()=>{const n=fa(e,t,...a);Ae(n,o)||(o=n,s(is,e,t,...a,o))},te[n?1:0],[e,t],[ga])},da=(e=!1)=>[kt(w,(t,a)=>-1===Dt(l,a)?void 0:kt(t,(t,s)=>-1===Dt(Dt(u,a),s)?void 0:kt(t,([,t])=>_a(t,0,e),e=>Ka(e)),Ze,pt),Ze,pt),kt(f,([,t])=>_a(t,0,e),e=>Ka(e)),1],ua=()=>Vt(U,_a),ga=()=>Et(U),wa=e=>Et(Dt(J,j(e))),ha=e=>ze(Dt(U,j(e))),ya=e=>Et(Dt(U,j(e))),fa=(e,t,a,s=0,n)=>lt(e)?fa(e.tableId,e.cellId,e.descending,e.offset,e.limit):$e(pe(ke(Mt(Dt(U,j(e)),(e,a)=>[ue(t)?a:Dt(e,j(t)),a]),([e],[t])=>Da(e,t)*(a?-1:1)),s,ue(n)?n:s+n),([,e])=>e),ba=(e,t)=>Et(Dt(Dt(U,j(e)),j(t))),va=(e,t,a)=>_a(Dt(Dt(Dt(U,j(e)),j(t)),j(a))),Sa=()=>kt(G,_a),Ca=()=>Et(G),pa=e=>_a(Dt(G,j(e))),ma=()=>!Ze(U),Ra=e=>Ke(U,j(e)),Ia=(e,t)=>Ke(Dt(J,j(e)),j(t)),Ta=(e,t)=>Ke(Dt(U,j(e)),j(t)),La=(e,t,a)=>Ke(Dt(Dt(U,j(e)),j(t)),j(a)),Ea=()=>!Ze(G),Na=e=>Ke(G,j(e)),Oa=e=>la(()=>(e=>It(e,xe,Xt))(e)?it(e):0),Va=(e,t,a,s,n,r)=>la((e,t,a)=>fe(He(e,t,a,Se(s)?s(va(e,t,a)):s),s=>{const i=St(e);fe(n||r||!o[14]?.()?void 0:o[3],o=>{const r=Dt(i,t),l={...r?kt(r):{},[a]:s};fe(De(()=>o(e,t,Ee(l))),a=>((e,t,a,s,n)=>{Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,o)=>fe(He(e,a,s,o),o=>gt(e,a,t,s,o,n)),(s,n)=>Tt(e,t,a,s,n,!0))})(e,i,t,a,n))},()=>wt(e,i,t,a,s,n))}),e,t,a),$a=e=>la(()=>Fe(e)?ft(e):0),xa=(e,t,a)=>la(e=>fe(Je(e,Se(t)?t(pa(e)):t),t=>bt(e,t,a)),e),Wa=e=>(Ne(()=>et(sa(e))),is),Ha=t=>la(()=>{if((e=It(t,e=>It(e,Pe)))&&(qe(t),!Ze(U))){const e=ua();Ja(),Oa(e)}}),Fa=e=>la(()=>{if(t=(e=>It(e,Pe))(e)){const a=Sa();ss(),qa(),t=!0,Be(e),$a(a)}}),Ja=()=>la(()=>De(()=>o[7]?.())??1?it({},!0):0),Ua=e=>la(e=>Ke(U,e)?Ct(e):0,e),ja=(e,t)=>la((e,t)=>fe(Dt(U,e),a=>Ke(a,t)?Rt(e,a,t):0),e,t),Ga=(e,t,a,s,n)=>la((e,t,a)=>fe(Dt(U,e),o=>fe(Dt(o,t),r=>Ke(r,a)?Tt(e,o,t,r,a,s,n):0)),e,t,a),qa=()=>la(()=>De(()=>o[11]?.())??1?ft({},!0):0),Ba=(e,t)=>la(e=>Ke(G,e)?Ht(e,t):0,e),as=()=>la(()=>{qe({}),e=!1}),ss=()=>la(()=>{Be({}),t=!1}),ns=(e,t)=>{if(-1!=n){os();const a=e();return rs(t),a}},os=()=>(-1!=n&&n++,1==n&&(r[0]?.(),Ie(ve)),is),rs=e=>(n>0&&(n--,0==n&&(n=1,De(()=>{ta(1),Ze(w)||ra(1),aa(1),Ze(f)||ia(1)}),e?.(is)&&(at(w,(e,t)=>at(e,(e,a)=>at(e,([e],s)=>nt(t,a,s,e,!0)))),tt(w),at(f,([e],t)=>rt(t,e,!0)),tt(f)),Ie(me[0],void 0),n=-1,ta(0),Ze(w)||ra(0),aa(0),Ze(f)||ia(0),r[1]?.(),Ie(me[1],void 0),r[2]?.(),n=0,a=ma(),s=Ea(),_e([l,c,d,u,g,w,b,y,f,v],tt))),is),is={getContent:()=>[ua(),Sa()],getTables:ua,getTableIds:ga,getTable:e=>_t(Dt(U,j(e)),_a),getTableCellIds:wa,getRowCount:ha,getRowIds:ya,getSortedRowIds:fa,getRow:(e,t)=>kt(Dt(Dt(U,j(e)),j(t)),_a),getCellIds:ba,getCell:va,getValues:Sa,getValueIds:Ca,getValue:pa,hasTables:ma,hasTable:Ra,hasTableCell:Ia,hasRow:Ta,hasCell:La,hasValues:Ea,hasValue:Na,getTablesJson:()=>na(U),getValuesJson:()=>na(G),getJson:()=>na([U,G]),getTablesSchemaJson:()=>na(m),getValuesSchemaJson:()=>na(E),getSchemaJson:()=>na([m,E]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>la(()=>{const t=Se(e)?e():e;Ve(t)&&(e=>{Oe(e,()=>fe(o[0],t=>De(()=>t(Ee(e))),()=>e),([e,t])=>{(pt(e)?Ja:Oa)(e),(pt(t)?qa:$a)(t)},es)})(t)}),setTables:Oa,setTable:(e,t)=>la(e=>xe(t,e)?ct(e,t):0,e),setRow:(e,t,a)=>la((e,t)=>We(e,t,a)?ut(e,St(e),t,a):0,e,t),addRow:(e,t,a=!0)=>ns(()=>{let s;return We(e,s,t)&&(e=j(e),ut(e,St(e),s=((e,t)=>{const[a]=Dt(F,e);let s;do{s=a(t)}while(Ke(Dt(U,e),s));return s})(e,a?1:0),t)),s}),setPartialRow:(e,t,a)=>la((e,t)=>{if(We(e,t,a,1)){const s=St(e);vt(a,(a,n)=>wt(e,s,t,n,a))}},e,t),setCell:Va,setValues:$a,setPartialValues:e=>la(()=>Fe(e,1)?vt(e,(e,t)=>bt(t,e)):0),setValue:xa,applyChanges:e=>la(()=>Oe(e,()=>fe(o[13],t=>De(()=>t(Ee(e))),()=>e),e=>{vt(e[0],(e,t)=>ue(e)?Ua(t):vt(e,(e,a)=>ue(e)?ja(t,a):vt(e,(e,s)=>nt(t,a,s,e,void 0,!0)))),vt(e[1],(e,t)=>rt(t,e))},es)),setTablesJson:Wa,setValuesJson:e=>(Ne(()=>ot(sa(e))),is),setJson:e=>la(()=>Ne(()=>{const[t,a]=sa(e);et(t),ot(a)},()=>Wa(e))),setTablesSchema:Ha,setValuesSchema:Fa,setSchema:(e,t)=>la(()=>{Ha(e),Fa(t)}),delTables:Ja,delTable:Ua,delRow:ja,delCell:Ga,delValues:qa,delValue:Ba,delTablesSchema:as,delValuesSchema:ss,delSchema:()=>la(()=>{as(),ss()}),transaction:ns,startTransaction:os,getTransactionChanges:()=>da(),getTransactionLog:()=>[!Ze(w),!Ze(f),Vt(w,Xa,Ka),Vt(b),kt(f,Xa,Ka),kt(v),kt(l),_t(u),Vt(g),kt(y)],finishTransaction:rs,forEachTable:e=>at(U,(t,a)=>e(a,e=>at(t,(t,a)=>e(a,e=>Nt(t,(t,a)=>e(t,_a(a))))))),forEachTableCell:(e,t)=>Nt(Dt(J,j(e)),t),forEachRow:(e,t)=>at(Dt(U,j(e)),(e,a)=>t(a,t=>Nt(e,(e,a)=>t(e,_a(a))))),forEachCell:(e,t,a)=>Nt(Dt(Dt(U,j(e)),j(t)),(e,t)=>a(e,_a(t))),forEachValue:e=>Nt(G,(t,a)=>e(t,_a(a))),addSortedRowIdsListener:(e,t,a,s,n,o,r)=>lt(e)?ca(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,a):ca(e,t,[a,s,n],o,r),addStartTransactionListener:e=>Re(e,ve),addWillFinishTransactionListener:e=>Re(e,me[0]),addDidFinishTransactionListener:e=>Re(e,me[1]),callListener:e=>(Le(e),is),delListener:e=>(Te(e),is),getListenerStats:()=>({hasTables:Qa(q),tables:Qa(B),tableIds:Qa(z),hasTable:Qa(Q),table:Qa(Y),tableCellIds:Qa(X),hasTableCell:Qa(K,Ye),rowCount:Qa(Z),rowIds:Qa(ee),sortedRowIds:Qa(te),hasRow:Qa(ae,Ye),row:Qa(se,Ye),cellIds:Qa(ne,Ye),hasCell:Qa(oe,Xe),cell:Qa(re,Xe),invalidCell:Qa(ie,Xe),hasValues:Qa(ce),values:Qa(de),valueIds:Qa(we),hasValue:Qa(he),value:Qa(ye),invalidValue:Qa(le),transaction:Qe(ve)+Qa(me)}),isMergeable:()=>!1,_:[ts,Re,Ie,(e,t,a,s,n)=>r=[e,t,a,s,n],(e,t,a,s,n,r,i,l,c,d,u,g,w,h,y)=>o=[e,t,a,s,n,r,i,l,c,d,u,g,w,h,y],nt,rt,()=>[Vt(U),kt(G)],()=>da(!0)]};return vt({[L+N]:[0,q,[],()=>[ma()]],[N]:[0,B],[M]:[0,z],[L+D]:[1,Q,[ga],e=>[Ra(...e)]],[D]:[1,Y,[ga]],[D+V]:[1,X,[ga]],[L+D+_]:[2,K,[ga,wa],e=>[Ia(...e)]],[A]:[1,Z,[ga]],[P]:[1,ee,[ga]],[L+O]:[2,ae,[ga,ya],e=>[Ta(...e)]],[O]:[2,se,[ga,ya]],[V]:[2,ne,[ga,ya]],[L+_]:[3,oe,[ga,ya,ba],e=>[La(...e)]],[_]:[3,re,[ga,ya,ba],e=>za(va(...e))],InvalidCell:[3,ie],[L+x]:[0,ce,[],()=>[Ea()]],[x]:[0,de],[W]:[0,we],[L+$]:[1,he,[Ca],e=>[Na(...e)]],[$]:[1,ye,[Ca],e=>za(pa(e[0]))],InvalidValue:[1,le]},([e,t,a,s],n)=>{is[T+n+R]=(...n)=>Re(n[e],t[n[e+1]?1:0],e>0?pe(n,0,e):void 0,a,s)}),dt(is)},as={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ss=(e=d)=>[ja(e),ja(e)],ns=(e,t)=>{let a=1,s=ss(),n=0,o=0;const r=Lt(),i=Ft(),[l,c]=Ea(e,t),u=ts(),g=e=>{const t=a;return a=0,e(),a=t,p},w=(e,t=0)=>{const a={},n={},[[o,r=d,i=0],l]=e,[u,g]=s,[w,y,f]=u;let b=t?i:f,v=r;ft(o,([e,s=d,n=0],o)=>{const r=At(w,o,ja),[i,l,c]=r;let u=t?n:c,g=s;ft(e,(e,s)=>{const[n,r,l]=h(e,At(i,s,ja),Rt(Rt(a,o,ut),s,ut),t);u^=t?0:da(r?ga(s,r):0,ga(s,l)),g=Fa(g,n)}),u^=t?0:Ha(l,s),Ja(r,s,u),b^=t?0:da(c?ga(o,c):0,ga(o,r[2])),v=Fa(v,g)}),b^=t?0:Ha(y,r),Ja(u,r,b);const[S]=h(l,g,n,t);return c(Fa(v,S)),[a,n,1]},h=(e,t,a,s)=>{const[n,o=d,r=0]=e,[i,l,c]=t;let u=o,g=s?r:c;return ft(n,([e,t=d,n=0],o)=>{const r=At(i,o,()=>[void 0,d,0]),[,l,c]=r;(!l||t>l)&&(Ja(r,t,s?n:wa(e,t)),r[0]=e,a[o]=e,g^=s?0:da(ga(o,c),ga(o,r[2])),u=Fa(u,t))}),g^=s?0:Ha(l,o),Ja(t,o,g),[u,c,t[2]]},y=Ie,f=Ie,b=(e=!1)=>[Ga(s[0],t=>Ga(t,t=>Ga(t,([t,a,s])=>[_a(t,0,e),a,s]))),Ga(s[1],([t,a,s])=>[_a(t,0,e),a,s])],v=(e,t=!1)=>{const[[a,n,o],[l,c,d]]=s,u=e?xa:$a,g={};at(r,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const r={};at(e,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const i={};at(e,e=>{fe(Dt(a,e),([a,s,n])=>i[e]=u(t?a:_a(a),s,n))}),r[s]=u(i,n,o)})),g[s]=u(r,n,o)}));const w={};return at(i,e=>fe(Dt(l,e),([a,s,n])=>w[e]=u(t?a:_a(a),s,n))),[u(g,n,o),u(w,c,d),1]},S=()=>b(),C=e=>g(()=>u.applyChanges(w(e))),p={getMergeableContent:S,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>kt(s[0][0],Wa),getMergeableTableDiff:e=>{const t=Ua(s[0][1]),a={};return Nt(s[0][0],(s,[n,o,r])=>ht(e,s)?r!=e[s]?a[s]=r:0:t[0][s]=qa([n,o],e=>qa(e))),[t,a]},getMergeableRowHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s,,n])=>n!=e?Nt(s,(e,[,,s])=>Rt(t,a,ut)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=Ua(s[0][1]),a={};return ft(e,(e,n)=>Nt(Dt(s[0][0],n)?.[0],(s,[o,r,i])=>ht(e,s)?i!==e[s]?Rt(a,n,ut)[s]=i:0:Rt(t[0],n,Ua)[0][s]=qa([o,r]))),[t,a]},getMergeableCellHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s])=>ft(e,(e,n)=>fe(Dt(s,n),([s,,o])=>o!==e?Nt(s,(e,[,,s])=>Rt(Rt(t,a,ut),n,ut)[e]=s):0)))),t},getMergeableCellDiff:e=>{const[[t,a]]=s,n={};return ft(e,(e,a)=>ft(e,(e,s)=>fe(Dt(t,a),([t,o])=>fe(Dt(t,s),([t,r])=>Nt(t,(t,[i,l,c])=>c!==e[t]?Rt(Rt(n,a,()=>Ua(o))[0],s,()=>Ua(r))[0][t]=[i,l]:0))))),$a(n,a)},getMergeableValueHashes:()=>kt(s[1][0],Wa),getMergeableValueDiff:e=>{const[,[t,a]]=s,n=kt(t,Va,([,,t],a)=>t==e?.[a]);return $a(n,a)},setMergeableContent:e=>g(()=>(e=>Ce(e)&&2==me(e)&&Ba(e[0],e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,Oa),void 0,1)),void 0,1)),void 0,1))&&Ba(e[1],e=>It(e,e=>Ba(e,Oa),void 0,1)))(e)?u.transaction(()=>{u.delTables().delValues(),s=ss(),u.applyChanges(w(e,1))}):0),setDefaultContent:e=>(u.transaction(()=>{n=1,u.setContent(e),n=0}),p),getTransactionMergeableChanges:(e=!1)=>v(e),applyMergeableChanges:C,merge:e=>{const t=S(),a=e.getMergeableContent();return e.applyMergeableChanges(t),C(a)},__:[()=>{const e=o;return o=0,e},()=>b(!0),e=>v(e,!0)]};return u._[3](y,f,()=>{tt(r),tt(i)},(e,t,s,i,c)=>{Jt(At(At(r,e,Lt),t,Ft),s),(a||c)&&(c&&(o=1),w([[{[e]:[{[t]:[{[s]:[i,n?d:l()]}]}]}],[{}],1]))},(e,t,s)=>{Jt(i,e),(a||s)&&(s&&(o=1),w([[{}],[{[e]:[t,n?d:l()]}],1]))}),vt(u,(e,t)=>p[t]=G(t,"set")||G(t,"del")||G(t,"apply")||q(t,"Transaction")||t=="call"+R||"use"==t?(...t)=>(e(...t),p):G(t,T)&&q(t,R)?(...a)=>{const s=as[pe(t,3,-8)]??0,n=a[s];return a[s]=(e,...t)=>n(p,...t),e(...a)}:"isMergeable"==t?()=>!0:e),dt(p)},os=Lt([["avg",[(e,t)=>xe(e)/t,(e,t,a)=>e+(t-e)/(a+1),(e,t,a)=>e+(e-t)/(a-1),(e,t,a,s)=>e+(t-a)/s]],["max",[e=>oe(...e),(e,t)=>oe(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:oe(t,e)]],["min",[e=>re(...e),(e,t)=>re(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:re(t,e)]],["sum",[e=>xe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,a)=>e-a+t]]]),rs=(e,t,a,s,n,o=!1)=>{if(Ze(a))return;const[r,i,l,c]=n;return o||=ue(e),at(s,([a,s])=>{o||(e=ue(a)?i?.(e,s,t++):ue(s)?l?.(e,a,t--):c?.(e,s,a,t),o||=ue(e))}),o?r(et(a),ze(a)):e},is=Gt(e=>{const t=Lt(),[a,s,n]=zt(()=>b),[o,r,i,l,c,u,g,,w,h,y,f]=Ut(e,Re,e=>isNaN(e)||ue(e)||we(e)||he(e)||e===d?void 0:1*e,a,s),b={setMetricDefinition:(e,a,n,o,r,i,l)=>{const c=Se(n)?[n,r,i,l]:Dt(os,n)??Dt(os,"sum");return w(e,a,(a,n,o,r,i,l)=>{const d=u(e),w=ze(r);l||=ue(d),a();let h=rs(d,w,r,n,c,l);ce(h)||(h=void 0),h!=d&&(g(e,h),s(t,[e],h,d))},jt(o,1)),b},delMetricDefinition:e=>(h(e),b),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:l,getTableId:c,getMetric:u,addMetricIdsListener:y,addMetricListener:(e,s)=>a(s,t,[e]),delListener:e=>(n(e),b),destroy:f,getListenerStats:()=>({metric:Qe(t)})};return dt(b)}),ls=(e,t,...a)=>He(e,(e,t)=>ue(e)?e:t(...a,e),t),cs=(e,...t)=>Oe(e,e=>e(...t)),ds=Gt(e=>{const t=e=>t=>(Ue(e,t),M),a=[],s=[],n=[],o=[],r=[],i=[],l=[],c=[],d=[],u=[],g=[],w=[],h=[],y=[],f=t(a),b=t(s),v=t(n),S=t(o),C=t(r),p=t(i),m=t(l),R=t(c),I=t(d),T=t(u),L=t(g),E=t(w),D=t(h),N=t(y),M=dt({getStore:()=>e,addWillSetContentCallback:f,addWillSetTablesCallback:b,addWillSetTableCallback:v,addWillSetRowCallback:S,addWillSetCellCallback:C,addWillSetValuesCallback:p,addWillSetValueCallback:m,addWillDelTablesCallback:R,addWillDelTableCallback:I,addWillDelRowCallback:T,addWillDelCellCallback:L,addWillDelValuesCallback:E,addWillDelValueCallback:D,addWillApplyChangesCallback:N,destroy:()=>{}});return e._[4](e=>ls(a,e),e=>ls(s,e),(e,t)=>ls(n,t,e),(e,t,a)=>ls(o,a,e,t),(e,t,a,s)=>ls(r,s,e,t,a),e=>ls(i,e),(e,t)=>ls(l,t,e),()=>cs(c),e=>cs(d,e),(e,t)=>cs(u,e,t),(e,t,a)=>cs(g,e,t,a),()=>cs(w),e=>cs(h,e),e=>ls(y,e),()=>o.length>0),M}),us={Idle:0,Loading:1,Saving:2},gs={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ws=Lt(),hs=Lt(),ys=(e,t,a,s,n,o,r,i={},l=0,c=[])=>{let d,u,g,w=0,h=0,y=0;At(ws,c,()=>0),At(hs,c,()=>[]);const f=Lt(),[b,v,S,C,p]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!a),([[e],[t]])=>!pt(e)||!pt(t),t.setDefaultContent]:2!=e?[0,t._[7],t._[8],([e,t])=>!pt(e)||!pt(t),t.setContent]:De("Store type not supported by this Persister"))(r,e,l),[m,R,I]=zt(()=>$),T=e=>{e!=w&&(w=e,R(f,void 0,w))},L=t=>{(b&&Ce(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},E=async()=>{k()&&e.__?.[0]?.()&&await O()},D=async e=>(2!=w&&(T(1),h++,await V(async()=>{await Ne(async()=>{const a=await t();Ce(a)?L(a):e?p(e):De("Content is not an array: "+a)},()=>{e&&p(e)}),T(0),await E()})),$),N=async e=>(M(),await D(e),await Ne(async()=>u=await s(async(e,t)=>{t||e?2!=w&&(T(1),h++,L(t??e),T(0),await E()):await D()}),o),$),M=async()=>(u&&(await Ne(()=>n(u),o),u=void 0),$),O=async e=>(1!=w&&(T(2),y++,await V(async()=>{await Ne(()=>a(v,e),o),T(0)})),$),A=async()=>(P(),await O(),g=e.addDidFinishTransactionListener(()=>{const e=S();C(e)&&O(e)}),$),P=async()=>(g&&(e.delListener(g),g=void 0),$),k=()=>!ue(g),_=async(e=!1)=>{const[t,a]=e?[P,M]:[M,P];return await t(),await a(),$},V=async(...e)=>(Ue(Dt(hs,c),...e),await(async()=>{if(!Dt(ws,c)){for(Ot(ws,c,1);!ue(d=qe(Dt(hs,c)));)await Ne(d,o);Ot(ws,c,0)}})(),$),$={load:D,startAutoLoad:N,stopAutoLoad:M,isAutoLoading:()=>!ue(u),save:O,startAutoSave:A,stopAutoSave:P,isAutoSaving:k,startAutoPersisting:async(e,t=!1)=>{const[a,s]=t?[A,N]:[N,A];return await a(e),await s(e),$},stopAutoPersisting:_,getStatus:()=>w,addStatusListener:e=>m(e,f),delListener:t=>(I(t),e),schedule:V,getStore:()=>e,destroy:()=>(Je(Dt(hs,c)),_()),getStats:()=>({loads:h,saves:y}),...i};return dt($)},fs="_",bs="_id",vs="SELECT",Ss="WHERE",Cs="TABLE",ps="INSERT",ms="DELETE",Rs="UPDATE",Is="ALTER "+Cs,Ts="FROM",Ls=ms+" "+Ts,Es=vs+"*"+Ts,Ds="pragma_",Ns="data_version",Ms="schema_version",Os="pragma_table_",As="CREATE ",Ps=As+Cs,ks="OR REPLACE ",_s="FUNCTION",Vs="$tableName",$s=(e,t)=>t?async(a,s)=>(t(a,s),await e(a,s)):e,xs=e=>Ve($e(z(e,"."),e=>`"${Q(e,/"/g,'""')}"`),"."),Ws=(...e)=>xs(Ve(e,"_")),Hs=(...e)=>Ve($e(e,xs),u),Fs=(e,t=[1])=>Ve($e(e,()=>"$"+t[0]++),u),Js=(e,t=v)=>Ss+`(${Q(t,Vs,xs(e))})`,Us="ColumnName",js="store",Gs="json",qs=js+"TableName",Bs=js+"Id"+Us,zs=js+Us,Qs="autoLoadIntervalSeconds",Ys="rowId"+Us,Xs="tableId",Ks="tableName",Zs="deleteEmptyColumns",en="deleteEmptyTable",tn="condition",an={mode:Gs,[Qs]:1},sn={load:0,save:0,[Ks]:c+"_values"},nn=(e,t,a,s,n)=>{const o=Lt();return vt(e,(e,r)=>{const i=pe(St(gt(t,ve(e)?{[a]:e}:e)),0,Ct(t));ge(i[0])||s(r,i[0])||(n(r,i[0]),Ot(o,r,i))}),o},on=e=>{const t=(e=>gt(an,ve(e)?{[qs]:e}:e??{}))(e),a=t[Qs];if(t.mode==Gs){const e=t[qs]??c;return[1,a,[e,t[Bs]??bs,t[zs]??js],Ft(e)]}const{tables:{load:s={},save:n={}}={},values:o={}}=t,r=pe(St(gt(sn,o)),0,Ct(sn)),i=r[2],l=Ft(i),d=Ft(i),u=nn(s,{[Xs]:null,[Ys]:bs,[tn]:v},Xs,e=>Ke(d,e),e=>Jt(l,e)),g=nn(n,{[Ks]:null,[Ys]:bs,[Zs]:0,[en]:0,[tn]:null},Ks,(e,t)=>Ke(d,t),(e,t)=>Jt(l,t));return Nt(g,(e,t)=>t[4]??=Dt(u,t[0])?.[2]??v),[0,a,[u,g,r],l]},rn=(e,t,a,s,n,o=ln,r,i)=>{const l=Lt();return[async()=>{tt(l),$e(await a(e,t),({tn:e,cn:t})=>Jt(At(l,e,Ft),t))},async(t,a,s)=>((e,t)=>Ke(Dt(l,e),t))(t,a)?ut(Fe($e(await e(Es+xs(t)+Js(t,s)),e=>[e[a],i?vt(yt(e,a),i):yt(e,a)]),e=>!ue(e[0])&&!pt(e[1]))):{},async(t,a,s,i,c,d=!1,g=v)=>{const w=Ft();vt(s??{},e=>$e(ct(e??{}),e=>Jt(w,e)));const h=et(w);if(!d&&c&&g==v&&We(h)&&Ke(l,t))return await e("DROP "+Cs+xs(t)),void Ot(l,t);const y=Dt(l,t),f=Ft(et(y));if(We(h)||(Ke(l,t)?await Le($e([a,...h],async(s,o)=>{st(f,s)||(await e(Is+xs(t)+"ADD"+xs(s)+n),0==o&&await e("CREATE UNIQUE INDEX pk ON "+xs(t)+`(${xs(a)})`),Jt(y,s))})):(await e(Ps+xs(t)+`(${xs(a)}${n} PRIMARY KEY${Ve($e(h,e=>u+xs(e)+n))});`),Ot(l,t,Ft([a,...h])))),await Le([...!d&&i?$e(et(f),async s=>{s!=a&&(await e(Is+xs(t)+"DROP"+xs(s)),st(y,s))}):[]]),d)ue(s)?await e(Ls+xs(t)+Js(t,g)):await Le(bt(s,async(s,n)=>{ue(s)?await e(Ls+xs(t)+Js(t,g)+`AND(${xs(a)}=$1)`,[n]):We(h)||await o(e,t,a,ct(s),{[n]:r?$e(St(s),r):St(s)},y)}));else if(We(h))Ke(l,t)&&await e(Ls+xs(t)+Js(t,g));else{const n=Fe(et(Dt(l,t)),e=>e!=a),i={},c=[];vt(s??{},(e,t)=>{i[t]=$e(n,t=>r?r(e?.[t]):e?.[t]),Ue(c,t)}),await o(e,t,a,n,i),await e(Ls+xs(t)+Js(t,g)+`AND${xs(a)}NOT IN(${Fs(c)})`,c)}},async t=>{let a;return await e("BEGIN"),await Ne(async()=>a=await t(),s),await e("END"),a}]},ln=async(e,t,a,s,n)=>{const o=[1];await e(ps+" INTO"+xs(t)+"("+Hs(a,...s)+")VALUES"+Ve(bt(n,e=>"($"+o[0]+++","+Fs(e,o)+")"),u)+"ON CONFLICT("+xs(a)+`)DO ${Rs} SET`+Ve($e(s,e=>xs(e)+"=excluded."+xs(e)),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},cn=(e,t,a,s,n,o,r,[i,l,c],d,u,g,w,h,y)=>{const[f,b,v,S]=rn(t,d,u,n,h,y),C=ys(e,()=>S(async()=>(await f(),ra((await b(i,l))[fs]?.[c]??"null"))),e=>S(async()=>{await f(),await v(i,l,{[fs]:{[c]:oa(e()??null)}},!0,!0)}),a,s,n,r,{[w]:()=>g,destroy:async()=>(await C.stopAutoPersisting(),o(),C)},0,g);return C},dn=(e,t,a,s,n,o,r,[i,l,[c,d,u]],g,w,h,y,f,b,v,S)=>{const[C,p,m,R]=rn(t,g,w,n,f,b,v,S),I=(e,t)=>Le(Mt(l,async([a,s,n,o,r],i)=>{t&&!ht(e,i)||await m(a,s,e[i],n,o,t,r)})),T=async(e,t)=>d?await m(u,bs,{[fs]:e},!0,!0,t):null,L=ys(e,()=>R(async()=>{await C();const e=await(async()=>ut(Fe(await Le(Mt(i,async([e,t,a],s)=>[e,await p(s,t,a)])),e=>!pt(e[1]))))(),t=await(async()=>c?(await p(u,bs))[fs]:{})();return pt(e)&&ue(t)?void 0:[e,t]}),(e,t)=>R(async()=>{if(await C(),ue(t)){const[t,a]=e();await I(t),await T(a)}else await I(t[0],!0),await T(t[1],!0)}),a,s,n,r,{[y]:()=>h,destroy:async()=>(await L.stopAutoPersisting(),o(),L)},0,h);return L},un=/^([cd]:)(.+)/,gn=(e,t,a,s,n,o,r,i,l,u,g="getDb")=>{const w=$s(a,o),[h,,y,f]=on(t),b=d+ca(oa(y)),S=c+"_"+b,C=async(e,t,a="",s="")=>{const n=Ws(c,e,b);return await w(As+ks+_s+n+`()RETURNS ${a}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),n},p=async(e,t,a,s)=>(await w(As+e+"TRIGGER"+t+a+"EXECUTE "+_s+s+"()"),t),m=e=>`PERFORM pg_notify('${S}',${e});`,R=(e,t)=>h?v:2===t?R(e,0)+" OR "+R(e,1):Q(Dt(y[0],e)?.[2]??v,Vs,0==t?"NEW":"OLD"),I=(e,t)=>Le($e([ps,ms,Rs],(a,s)=>p(ks,Ws(c,"d",b,e,a),`AFTER ${a} ON${xs(e)}FOR EACH ROW WHEN(${R(e,s)})`,t)));return(h?cn:dn)(e,w,async e=>{const t=await C("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ss} command_tag='${Ps}' LOOP ${m("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await p("EVENT ",Ws(c,"c",b),`ON ddl_command_end WHEN TAG IN('${Ps}')`,t);const a=await C("d",m("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Le($e(et(f),async e=>(await w(Ps+` IF NOT EXISTS${xs(e)}("_id"text PRIMARY KEY)`),await I(e,a)))),[await s(S,t=>fe(B(t,un),async([,t,s])=>{Ke(f,s)&&("c:"==t&&await I(s,a),e())})),[t,a]]},async([e,t])=>{n(e),await w(`DROP FUNCTION IF EXISTS${Ve(t,",")}CASCADE`)},r,i,l,y,et(f),async(e,t)=>await e(vs+` table_name tn,column_name cn FROM information_schema.columns ${Ss} table_schema='public'AND table_name IN(${Fs(t)})`,t),u,g,"text",void 0,e=>aa(e),e=>sa(e))},wn=(e,t,a,s,n,o,r,i,l,c,u="getDb",g)=>{let w,h,y;const f=$s(a,o),[b,v,S,C]=on(t);return(b?cn:dn)(e,f,e=>{let t;const a=()=>t=ae(()=>Ne(async()=>{const[{d:t,s:a,c:s}]=await f(vs+` ${Ns} d,${Ms} s,TOTAL_CHANGES() c FROM ${Ds}${Ns} JOIN ${Ds}${Ms}`);t==w&&a==h&&s==y||(de(w)||e(),w=t,h=a,y=s)}),v),o=()=>{w=h=y=null,se(t)},r=s(t=>{C.has(t)&&(o(),e(),a())});return a(),()=>{o(),n(r)}},e=>e(),r,i,l,S,et(C),async(e,t)=>await e(vs+` t.name tn,c.name cn FROM ${Os}list()t,${Os}info(t.name)c ${Ss} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Fs(t)})ORDER BY t.name,c.name`,t),c,u,d,g,e=>we(e)?1:he(e)?0:e,void 0)},hn=(e,t)=>[e[t].t,e[t].v],yn=(e,t,a,s)=>{const n=ue(t)?e:Rt(e,t,()=>({}));let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),vt(n,(e,t)=>{ht(a,t)||(yt(n,t),o=1)}),!ue(t)&&pt(n)&&yt(e,t),o},fn=(e,t,a=c,s)=>(t.change(e=>Rt(e,a,ut)),ys(e,async()=>{const e=t.doc();return 2==Ct(e?.[a])?hn(e,a):void 0},async(e,s)=>t.change(t=>((e,t,a,s)=>{((e,t)=>{pt(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[n,o]=hn(e,t),r=()=>{i=1};let i=1;if(fe(s,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?yt(n,t):fe(n[t],t=>vt(e,(e,a)=>i?0:ue(e)?yt(t,a):fe(wt(t,a),t=>vt(e,(e,a)=>ue(e)?yt(t,a):t[a]=e),r)),r)),vt(t,(e,t)=>i?0:ue(e)?yt(o,t):o[t]=e)}),i){const[e,t]=a();yn(n,void 0,e,(e,t,a)=>yn(n,t,a,(e,t,a)=>yn(e,t,a,(e,t,a)=>{if(wt(e,t)!==a)return e[t]=a,1}))),yn(o,void 0,t,(e,t,a)=>{wt(o,t)!==a&&(o[t]=a)})}})(t,a,e,s)),e=>{const s=({doc:t})=>e(hn(t,a));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),bn="storage",vn=(e,t,a,s)=>ys(e,async()=>ra(a.getItem(t)),async e=>a.setItem(t,oa(e())),e=>{const s=s=>{s.storageArea===a&&s.key===t&&Ne(()=>e(ra(s.newValue)),e)};return ee.addEventListener(bn,s),s},e=>ee.removeEventListener(bn,e),s,3,{getStorageName:()=>t}),Sn=(e,t,a)=>vn(e,t,localStorage,a),Cn=(e,t,a)=>vn(e,t,sessionStorage,a),pn=(e,t,a)=>ys(e,async()=>ra(await(await t.getFile()).text()),async e=>{const a=await t.createWritable();await a.write(oa(e())),await a.close()},async e=>{const a=new FileSystemObserver(()=>e());return await a.observe(t),a},e=>e?.disconnect(),a,3,{getHandle:()=>t}),mn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.execO(e,a),e=>t.onUpdate((t,a,s)=>e(s)),e=>e(),s,n,Ie,1,t),Rn=()=>xa({},d,0),In=(e,t,a=d,s)=>{const n=(e,...t)=>a+e+pe(oa(t),1,-1);return ys(e,async()=>{const e=Rn(),s=Rn();return(await t.list({prefix:a})).forEach(async([t,n,o],r)=>fe((e=>{if(G(e,a)){const t=pe(e,me(a),me(a)+1);return t==J||t==U?[t,...JSON.parse("["+pe(e,me(a)+1)+"]")]:void 0}})(r),([a,...r])=>a==J?fe(r[0],a=>{const s=Rt(e[0],a,Rn);fe(r[1],e=>{const a=Rt(s[0],e,Rn);fe(r[2],e=>a[0][e]=[t,n,o],()=>Ja(a,n,o))},()=>Ja(s,n,o))},()=>Ja(e,n,o)):a==U?fe(r[0],e=>s[0][e]=[t,n,o],()=>Ja(s,n,o)):0)),pt(e[0])&&pt(s[0])?void 0:[e,s]},async(e,[[a,s,o],[r,i,l]]=e())=>{const c=Lt();Ot(c,n(J),[0,s,o]),ft(a,([e,t,a],s)=>{Ot(c,n(J,s),[0,t,a]),ft(e,([e,t,a],o)=>{Ot(c,n(J,s,o),[0,t,a]),ft(e,(e,t)=>Ot(c,n(J,s,o,t),e))})}),Ot(c,n(U),[0,i,l]),ft(r,(e,t)=>Ot(c,n(U,t),e)),await t.put(kt(c))},Ie,Ie,s,2,{getStorage:()=>t})},Tn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.db.raw({sql:e,args:a}),e=>t.notifier.subscribeToDataChanges(a=>_e(t.notifier.alias(a),({tablename:t})=>e(t))),e=>e(),s,n,Ie,1,t,"getElectricClient"),Ln=(t,a,s,n,o)=>wn(t,s,async(e,t=[])=>await a.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),n,o,Ie,3,a),En=(e,r,i)=>ys(e,async()=>ra(await o(r,m)),async e=>await n(r,oa(e()),m),e=>(t(r)||a(r,d,m),s(r,()=>e())),e=>e?.close(),i,3,{getFilePath:()=>r}),Dn=[J,U],Nn={keyPath:"k"},Mn=async(e,t)=>{const a=bt(t,(t,a)=>On(e,"put",{k:a,v:t}));$e(await On(e,"getAllKeys"),s=>ht(t,s)?0:Ue(a,On(e,"delete",s))),await Le(a)},On=async(e,t,a)=>Te((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}),An=(e,t,a=1,s)=>{const n=async(e,a=[],s=0)=>Te((n,o)=>{const r=(ee?ee.indexedDB:indexedDB).open(t,s?2:void 0);r.onupgradeneeded=()=>s&&$e(Dn,e=>Ne(()=>r.result.createObjectStore(e,Nn))),r.onsuccess=()=>Ne(async()=>{const t=r.result.transaction(Dn,"readwrite"),s=await Le($e(Dn,(s,n)=>e(t.objectStore(s),a[n])));r.result.close(),n(s)},e=>{r.result.close(),o(e)}),r.onerror=()=>o("indexedDB.open error")});return ys(e,async()=>await n(async e=>ut($e(await On(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>n((e,t)=>Mn(e,t),e(),1),e=>ae(e,a),e=>se(e),s,1,{getDbName:()=>t})},Pn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.execute({sql:e,args:a})).rows,()=>Ie,e=>e(),s,n,Ie,1,t,"getClient"),kn="s",_n="/store",Vn=(e,t,a)=>e+t+(ve(a)?a:oa(a)),$n=(e,t,a)=>{const s=me(e);return G(t,e)?[t[s],(a?ra:te)(pe(t,s+1))]:void 0},xn=(e,t,a,s)=>{const{host:n,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:i=_n,messagePrefix:l=d}={...ve(a)?{storeProtocol:a}:a},c=r+"://"+n+"/parties/"+t.name+"/"+o+i,u=async e=>await(await fetch(c,{...e?{method:"PUT",body:na(e)}:{},mode:"cors",cache:"no-store"})).json();return ys(e,u,async(e,a)=>{a?t.send(Vn(l,kn,a)):await u(e())},e=>{const a=t=>fe($n(l,t.data,1),([t,a])=>{t==kn&&e(void 0,a)});return t.addEventListener(H,a),a},e=>{t.removeEventListener(H,e)},s,1,{getConnection:()=>t})},Wn="hasStore",Hn=ut($e(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),Fn=async(e,t=d)=>!!await e.get(t+Wn),Jn=async(e,t=d)=>{const a={},s={};return Nt(await e.list(),(e,n)=>fe($n(t,e),([e,t])=>{if(e==J){const[e,s,o]=sa("["+t+"]");Rt(Rt(a,e,ut),s,ut)[o]=n}else e==U&&(s[t]=n)})),[a,s]},Un=async(e,t,a)=>e.party.broadcast(Vn(e.config.messagePrefix??d,kn,t),a),jn=async(e,t,a,s)=>{const n=e.party.storage,o=e.config.storagePrefix??d,r={[o+Wn]:1},i=[],l=[];await Le(bt(t[0],async(t,c)=>ue(t)?!a&&await e.canDelTable(c,s)&&Ge(l,Gn(o,J,c)):await e.canSetTable(c,a,s)&&await Le(bt(t,async(t,d)=>ue(t)?!a&&await e.canDelRow(c,d,s)&&Ue(l,Gn(o,J,c,d)):await e.canSetRow(c,d,a,s)&&await Le(bt(t,async(t,l)=>{const u=[c,d,l],g=Gn(o,J,...u);ue(t)?!a&&await e.canDelCell(...u,s)&&Ue(i,g):await e.canSetCell(...u,t,a,s,await n.get(g))&&(r[g]=t)})))))),await Le(bt(t[1],async(t,l)=>{const c=o+U+l;ue(t)?!a&&await e.canDelValue(l,s)&&Ue(i,c):await e.canSetValue(l,t,a,s,await n.get(c))&&(r[c]=t)})),We(l)||Nt(await n.list(),e=>Oe(l,t=>!G(e,t)||Ue(i,e)&&0)),await n.delete(i),await n.put(r)},Gn=(e,t,...a)=>Vn(e,t,pe(na(a),1,-1)),qn=async(e,t,a=null)=>new Response(a,{status:t,headers:e.config.responseHeaders});class Bn{constructor(e){this.party=e,this.config.storePath??=_n,this.config.messagePrefix??=d,this.config.storagePrefix??=d,this.config.responseHeaders??=Hn}party;config={};async onRequest(e){const{party:{storage:t},config:{storePath:a=_n,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(a)){const a=await Fn(t,s),n=await e.text();return"PUT"==e.method?a?qn(this,205):(await jn(this,sa(n),!0,e),qn(this,201)):qn(this,200,a?na(await Jn(t,s)):d)}return qn(this,404)}async onMessage(e,t){const{config:{messagePrefix:a=d,storagePrefix:s}}=this;await fe($n(a,e,1),async([e,a])=>{e==kn&&await Fn(this.party.storage,s)&&(await jn(this,a,!1,t),Un(this,a,[t.id]))})}async canSetTable(e,t,a){return!0}async canDelTable(e,t){return!0}async canSetRow(e,t,a,s){return!0}async canDelRow(e,t,a){return!0}async canSetCell(e,t,a,s,n,o,r){return!0}async canDelCell(e,t,a,s){return!0}async canSetValue(e,t,a,s,n){return!0}async canDelValue(e,t){return!0}}const zn=async(e,t,a,s,n)=>gn(e,a,async(e,a=[])=>(await t.query(e,a)).rows,(e,a)=>t.listen(e,a),e=>Ne(e,n),s,n,Ie,3,t,"getPglite"),Qn=async(e,t,a,s,n)=>{const o=await(t.reserve?.());return gn(e,a,o?.unsafe,async(e,a)=>t.listen(e,a),e=>Ne(e.unlisten,n),s,n,()=>o?.release?.(),3,t,"getSql")},Yn=(e,t,a,s,n)=>{let o;return wn(e,a,async(e,a=[])=>t.execute(e,a).then(e=>e.rows?._array??[]),e=>{const a=new AbortController,s=t.onChange({rawTableNames:!0,signal:a.signal});return(async()=>{for await(const e of s)o&&$e(e.changedTables,o)})(),o=e,a},e=>{o=void 0,e.abort()},s,n,Ie,1,t,"getPowerSync",Xn)},Xn=async(e,t,a,s,n,o)=>{const r=[1],i=Ft(s),l=o?Fe([...o],e=>e!=a&&!Ke(i,e)):[];if(!We(l)){const s=ct(n),o=ut($e(await e(vs+Hs(a,...l)+Ts+xs(t)+Ss+xs(a)+"IN("+Fs(s)+")",s),e=>[e[a],e]));_e(s,e=>Ue(n[e],...$e(l,t=>o?.[e]?.[t]??null)))}await e(ps+" "+ks+"INTO"+xs(t)+"("+Hs(a,...s,...l)+")VALUES"+Ve(bt(n,e=>"($"+r[0]+++","+Fs(e,r)+")"),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},Kn=(e,t,a="storage",s)=>ys(e,async()=>{const e=t.getString(a),s=ue(e)?void 0:JSON.parse(e);return Promise.resolve(s)},async e=>{const s=e();ue(s)||t.set(a,JSON.stringify(s))},e=>t.addOnValueChangedListener(s=>{if(s===a){const s=t.getString(a);s&&e(JSON.parse(s))}}),e=>{e.remove()},s,3,{getStorageName:()=>a}),Zn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.executeSql(e,a))[0].rows.raw(),Ie,Ie,s,n,Ie,3,t),eo=e=>e.headers.get("ETag")??d,to=e=>e==d?void 0:{"If-None-Match":e},ao=(e,t,a,s=5,n)=>{let o=d;return ys(e,async()=>{const e=await fetch(t,{headers:to(o)});return o=eo(e),sa(await e.text())},async e=>await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:na(e())}),e=>ae(async()=>{const a=await fetch(t,{method:"HEAD",headers:to(o)}),s=eo(a);s!=o&&(o=s,e())},s),e=>se(e),n,1,{getUrls:()=>[t,a]})},so=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>t.query(e).all(...a),()=>Ie,e=>e(),s,n,Ie,3,t),no=(e,t,a,s,n,o)=>wn(e,s,async(e,t=[])=>a.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(e=>({...e})),e=>t.capi.sqlite3_update_hook(a,(t,a,s,n)=>e(n),0),()=>t.capi.sqlite3_update_hook(a,Ie,0),n,o,Ie,3,a),oo="change",ro=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await Te((s,n)=>t.all(e,a,(e,t)=>e?n(e):s(t))),e=>{const a=(t,a,s)=>e(s);return t.on(oo,a),a},e=>t.off(oo,e),s,n,Ie,3,t),io="delete",lo=e=>[e.get(J),e.get(U)],co=(e,t,a,s)=>{const n=ue(t)?e:e.get(t)??e.set(t,new r);let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),n.forEach((e,t)=>{ht(a,t)||(n.delete(t),o=1)}),ue(t)||n.size||e.delete(t),o},uo=(e,t,a=c,s)=>{const n=t.getMap(a);return ys(e,async()=>n.size?[n.get(J).toJSON(),n.get(U).toJSON()]:void 0,async(e,a)=>t.transact(()=>((e,t,a)=>{e.size||(e.set(J,new r),e.set(U,new r));const[s,n]=lo(e),o=()=>{i=1};let i=1;if(fe(a,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?s.delete(t):fe(s.get(t),t=>vt(e,(e,a)=>i?0:ue(e)?t.delete(a):fe(t.get(a),t=>vt(e,(e,a)=>ue(e)?t.delete(a):t.set(a,e)),o)),o)),vt(t,(e,t)=>i?0:ue(e)?n.delete(t):n.set(t,e))}),i){const[e,a]=t();co(s,void 0,e,(e,t,a)=>co(s,t,a,(e,t,a)=>co(e,t,a,(e,t,a)=>{if(e.get(t)!==a)return e.set(t,a),1}))),co(n,void 0,a,(e,t,a)=>{n.get(t)!==a&&n.set(t,a)})}})(n,e,a)),e=>{const t=t=>e(void 0,((e,t)=>{if(1==me(t)&&We(t[0].path))return[e.get(J).toJSON(),e.get(U).toJSON(),1];const[a,s]=lo(e),n={},o={};return _e(t,({path:e,changes:{keys:t}})=>qe(e)==J?fe(qe(e),s=>{const o=Rt(n,s,ut),r=a.get(s);fe(qe(e),e=>{const a=Rt(o,e,ut),s=r.get(e);Nt(t,(e,{action:t})=>a[e]=t==io?void 0:s.get(e))},()=>Nt(t,(e,{action:t})=>o[e]=t==io?void 0:r.get(e)?.toJSON()))},()=>Nt(t,(e,{action:t})=>n[e]=t==io?void 0:a.get(e)?.toJSON())):Nt(t,(e,{action:t})=>o[e]=t==io?void 0:s.get(e))),[n,o,1]})(n,t));return n.observeDeep(t),t},e=>{n.unobserveDeep(e)},s,1,{getYDoc:()=>t})},go="_",wo=Gt(e=>{const t=e._[0],a=t(),s=t(),n=t(),o=Lt(),r=Ft(),i=Lt(),l=Lt(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},u=Lt(),g=Lt(),{_:[,w,h],delListener:y}=n,[f,b,v,S,C,p,m,L,,E,N,M]=Ut(e,()=>[],Re,w,h),$=e=>At(o,e,t),x=(e,t,...a)=>_e(a,a=>Jt(At(At(u,t,Lt),e,Ft),a)),W=e=>{fe(Dt(u,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),_e([$(e),a],t=>t.delTable(e))},H=(e,t,a,...s)=>{const n=At(At(g,t,Lt),e,Ft);return _e(s,t=>{Jt(n,t),a&&e.callListener(t)}),s},F=(e,t,a)=>fe(Dt(Dt(g,e),t),s=>{t.delListener(a),st(s,a),Ze(s)&&Ot(Dt(g,e),t)}),J=e=>fe(Dt(g,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),U=(e,t,a)=>x(t,e,t.addStartTransactionListener(a.startTransaction),t.addDidFinishTransactionListener(()=>a.finishTransaction())),j=(e,t)=>(pt(t)?s.delRow:s.setRow)(go,e,{...t}),G=t=>$(t).transaction(()=>fe(p(t),([s,,n])=>{const o=C(t),i=n?$(o):e,l=$(t),c=B(t);Jt(r,t),W(t),J(t);const u=[],g=[[void 0,[o,void 0,void 0,[],Lt(),i]]],w=[],h=[],y=[];s({select:(e,t,a)=>{const s=we(e)?t:e,n=we(e)?a:t,o=Se(e)?[me(u)+d,e]:ue(n)?[e,t=>t(e)]:[n,t=>we(e)?t(!0,s,n):t(s,n)];return Ue(u,o),{as:e=>o[0]=e}},join:(t,a,s,n)=>{const o=we(t)?a:t,[r,i]=we(t)?ue(n)||Se(s)?[void 0,s]:[s,n]:ue(s)||Se(a)?[void 0,a]:[a,s],l=[o,[o,r,Se(i)?i:e=>e(i),[],Lt(),we(t)?$(o):e]];return Ue(g,l),{as:e=>l[0]=e}},where:(e,t,a,s)=>Ue(w,Se(e)?e:we(e)?e=>e(!0,t,a)===s:ue(a)?a=>a(e)===t:s=>s(e,t)===a),group:(e,t,a,s,n)=>{const o=[e,[e,Se(t)?[t,a,s,n]:Dt(os,t)??[(e,t)=>t]]];return Ue(h,o),{as:e=>o[0]=e}},having:(e,t)=>Ue(y,Se(e)?e:a=>a(e)===t),param:e=>wt(c,e)});const f=Lt(u);if(Ze(f))return st(r,t),z;const b=Lt(g);Nt(b,(e,[,t])=>fe(Dt(b,t),({3:t})=>ue(e)?0:Ue(t,e)));const v=Lt(h);let S=a;if(Ze(v)&&We(y))S=l;else{U(t,S,l);const e=Lt();Nt(v,(t,[a,s])=>Jt(At(e,a,Ft),[t,s]));const a=Ft();Nt(f,t=>Ke(e,t)?0:Jt(a,t));const s=Lt(),n=(a,s,n,o)=>fe(a,([r,i,c,d])=>{Nt(s,(t,[a])=>{const s=At(r,t,Lt),i=Dt(s,n),l=o?void 0:a;if(i!==l){const a=Ft([[i,l]]),o=ze(s);Ot(s,n,l),at(Dt(e,t),([e,t])=>{const n=rs(d[e],o,s,a,t);d[e]=ue(Ma(n))?void 0:n})}}),Ze(i)||!Oe(y,e=>e(e=>d[e]))?l.delRow(t,c):ue(c)?a[2]=l.addRow(t,d):l.setRow(t,c,d)});x(S,t,S.addRowListener(t,null,(o,r,i,l)=>{const c=[],d=[],u=Lt(),g=S.hasRow(t,i);let w=!g;at(a,e=>{const[a,s,n]=l(t,i,e);Ue(c,s),Ue(d,n),w||=a}),Nt(e,e=>{const[a,,s]=l(t,i,e);(w||a)&&Ot(u,e,[s])}),w&&n(Ht(s,c,void 0,([,e])=>(st(e,i),Ze(e))),u,i,1),g&&n(Ht(s,d,()=>{const e={};return at(a,a=>e[a]=S.getCell(t,i,a)),[Lt(),Ft(),void 0,e]},([,e])=>{Jt(e,i)}),u,i)}))}U(t,i,S);const p=(e,a,s,n,r)=>{const l=e=>a.getCell(s,n,e);_e(r,a=>{const[s,,n,o,r,i]=Dt(b,a),c=n?.(l,e),d=Dt(r,e),u=d?.[0];c!=u&&(fe(d,([,e,a])=>F(t,e,a)),Ot(r,e,ue(c)?void 0:[c,i,...H(i,t,1,i.addRowListener(s,c,()=>p(e,i,s,c,o)))]))}),(e=>{const a=(t,a,s)=>{const n=we(t)?a:t,r=we(t)?s:a;if(ue(r))return i.getCell(o,e,t);if(n===o&&!we(t))return i.getCell(o,e,r);const l=Dt(b,n);return ue(l)?void 0:l[5].getCell(l[0],Dt(l[4],e)?.[0],r)};S.transaction(()=>Oe(w,e=>e(a))?Nt(f,(s,n)=>S._[5](t,e,s,n(a,e))):S.delRow(t,e))})(e)},{3:m}=Dt(b,void 0),R=(e,a,s)=>{i.hasRow(o,s)?p(s,i,o,s,m):(S.delRow(t,s),at(b,({4:e})=>fe(Dt(e,s),([,a,n])=>{F(t,a,n),Ot(e,s)})))};return S.transaction(()=>{_e(i.getRowIds(o),e=>R(0,0,e)),H(i,t,0,i.addRowListener(o,null,R))}),st(r,t),z})),q=e=>(fe(p(e),([,e])=>s.delListener(e)),s.delRow(go,e),W(e),J(e),E(e),z),B=e=>s.getRow(go,e),z={setQueryDefinition:(e,t,a,n,o={})=>{const[r,i,l,c]=we(t)?[a,n,1,o]:[t,a,0,n??{}];return fe(p(e),([,e])=>s.delListener(e)),L(e,r),m(e,[i,s.addRowListener(go,e,()=>G(e)),l]),j(e,c),G(e),z},delQueryDefinition:q,getParamValues:B,getParamValue:(e,t)=>s.getCell(go,e,t),setParamValues:(e,t)=>(S(e)&&j(e,t),z),setParamValue:(e,t,a)=>(S(e)&&s.setCell(go,e,t,a),z),getStore:f,getQueryIds:b,forEachQuery:v,hasQuery:S,getTableId:C,forEachResultTable:e=>v(t=>$(t).hasTable(t)?e(t,e=>z.forEachResultRow(t,e)):0),addQueryIdsListener:e=>N(()=>e(z)),addParamValuesListener:(e,t)=>"p"+s.addRowListener(go,e,(e,a,s)=>t(z,s,B(s))),addParamValueListener:(e,t,a)=>"p"+s.addCellListener(go,e,t,(e,t,s,n,o)=>a(z,s,n,o)),delListener:e=>{const t=Dt(i,e);if("p"==e[0])s.delListener(pe(e,1));else if(ue(t))y(e);else{const[a,s,n]=t;Nt(s,(e,[t,a])=>t.delListener(a)),fe(n,y),Ot(i,e),y(e),c[a]--}return z},destroy:()=>{_e(b(),q),M()},getListenerStats:()=>({...c,paramValues:s.getListenerStats().row-me(b()),paramValue:s.getListenerStats().cell})};return vt({[D]:[2,1],[D+V]:[1,1],[A]:[1,1],[P]:[1,1],[k]:[1,5],[O]:[3,2],[V]:[1,2],[_]:[3,3]},([e,t],a)=>{_e(pe(["get","has","forEach"],0,e),e=>z[e+I+a]=(...t)=>$(t[0])[e+a](...t)),z[T+I+a+R]=(...e)=>((s,n)=>{const o=w(Re,l),r=Lt(),d=()=>{const s=null==n?b():[n];_e(s,s=>{return Ke(r,s)?0:Ot(r,s,[$(s),(n=$(s),n[T+a+R](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:pe(e,0,t))(e,t),(a,...s)=>e[t](z,...s),!0))]);var n}),Nt(r,(e,[t,a])=>null==n&&S(e)||e==n?0:(t.delListener(a),void Ot(r,e)))};return d(),Ot(i,o,[s,r,null==n?N(d):void 0]),c[s]++,o})((e=>e[0].toLowerCase()+pe(e,1))(a),e[0])}),dt(z)}),ho=Gt(e=>{const t=Lt(),a=Lt(),s=Lt(),n=Lt(),[o,r,i]=zt(()=>m),[l,c,u,g,w,h,,,y,f,b,v]=Ut(e,()=>[Lt(),Lt(),Lt(),Lt()],e=>ue(e)?void 0:e+d,o,r),S=(e,t,a)=>fe(h(e),([s,,n])=>{if(!Ke(n,t)){const o=Ft();if(w(e)!=p(e))Jt(o,t);else{let e=t;for(;!ue(e)&&!Ke(o,e);)Jt(o,e),e=Dt(s,e)}if(a)return o;Ot(n,t,o)}return Dt(n,t)}),C=(e,t)=>fe(h(e),([,,e])=>Ot(e,t)),p=e=>Dt(t,e),m={setRelationshipDefinition:(e,o,i,l)=>(Ot(t,e,i),y(e,o,(t,o)=>{const i=Ft(),l=Ft(),c=Ft(),[d,u]=h(e);at(o,([t,a],s)=>{ue(t)||(Jt(l,t),fe(Dt(u,t),e=>{st(e,s),Ze(e)&&Ot(u,t)})),ue(a)||(Jt(l,a),Ke(u,a)||Ot(u,a,Ft()),Jt(Dt(u,a),s)),Jt(i,s),Ot(d,s,a),Nt(Dt(n,e),t=>{Ke(S(e,t),s)&&Jt(c,t)})}),t(),at(i,t=>r(a,[e,t])),at(l,t=>r(s,[e,t])),at(c,t=>{C(e,t),r(n,[e,t])})},jt(l)),m),delRelationshipDefinition:e=>(Ot(t,e),f(e),m),getStore:l,getRelationshipIds:c,forEachRelationship:t=>u(a=>t(a,t=>e.forEachRow(w(a),t))),hasRelationship:g,getLocalTableId:w,getRemoteTableId:p,getRemoteRowId:(e,t)=>Dt(h(e)?.[0],t),getLocalRowIds:(e,t)=>et(Dt(h(e)?.[1],t)),getLinkedRowIds:(e,t)=>ue(h(e))?[t]:et(S(e,t,!0)),addRelationshipIdsListener:b,addRemoteRowIdListener:(e,t,s)=>o(s,a,[e,t]),addLocalRowIdsListener:(e,t,a)=>o(a,s,[e,t]),addLinkedRowIdsListener:(e,t,a)=>(S(e,t),o(a,n,[e,t])),delListener:e=>(C(...i(e)??[]),m),destroy:v,getListenerStats:()=>({remoteRowId:Ye(a),localRowIds:Ye(s),linkedRowIds:Ye(n)})};return dt(m)}),yo={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},fo=(e,t,a,s,n,o,r,i,l={})=>{let c,u=0,g=0,w=0;const h=Lt(),y=()=>ta(11),f=(e,a,s,n)=>{g++,o?.(e,a,s,n),t(e,a,s,n)},b=async(e,t,a,s)=>Te((o,r)=>{const i=s+"."+ta(4),l=ne(()=>{st(h,i),r(`No response from ${e??"anyone"} to ${i}, `+t)},n);Ot(h,i,[e,(e,t)=>{clearTimeout(l),st(h,i),o([e,t,s])}]),f(e,i,t,a)}),v=(e,[t,a])=>{ft(t,([t,a],s)=>{const n=Rt(e[0],s,Ua);ft(t,([e,t],a)=>{const s=Rt(n[0],a,Ua);ft(e,([e,t],a)=>s[0][a]=$a(e,t)),s[1]=Fa(s[1],t)}),n[1]=Fa(n[1],a)}),e[1]=Fa(e[1],a)},S=(t=null,a,s=y())=>Ne(async()=>{ue(a)&&([a,t,s]=await b(null,1,d,s));const[n,o]=a,[r,i]=e.getMergeableContentHashes();let l=Ua();if(r!=n){const[a,n]=(await b(t,4,e.getMergeableTableHashes(),s))[0];if(l=a,!pt(n)){const[a,o]=(await b(t,5,e.getMergeableRowHashes(n),s))[0];if(v(l,a),!pt(o)){const a=(await b(t,6,e.getMergeableCellHashes(o),s))[0];v(l,a)}}}return[l,i==o?Ua():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},i),C=ys(e,async()=>{const e=await S();return!e||pt(e[0][0])&&pt(e[1][0])?void 0:e},async(t,a)=>a?f(null,y(),3,a):f(null,y(),2,e.getMergeableContentHashes()),e=>c=e,()=>c=void 0,i,2,{startSync:async e=>(u=1,await C.startAutoPersisting(e)),stopSync:async()=>(u=0,await C.stopAutoPersisting(),C),destroy:async()=>(await C.stopSync(),s(),C),getSynchronizerStats:()=>({sends:g,receives:w}),...l},1);return a((t,a,s,n)=>{const o=u||C.isAutoLoading();w++,r?.(t,a,s,n),0==s?fe(Dt(h,a),([e,a])=>ge(e)||e==t?a(n,t):0):2==s&&o?S(t,n,a??void 0).then(e=>{c?.(void 0,e)}).catch(i):3==s&&o?c?.(void 0,n):fe(1==s&&(u||C.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{f(t,a,0,e)})}),C},bo=(e,t,a,s,n)=>{const o=ta(),r=new BroadcastChannel(t);return fo(e,(e,t,a,s)=>r.postMessage([o,e,t,a,s]),e=>{r.onmessage=({data:[t,a,s,n,r]})=>ge(a)||a==o?e(t,s,n,r):0},()=>{r.close()},.01,a,s,n,{getChannelName:()=>t})},vo=Lt(),So=(e,t,a,s)=>{const n=ta();return fo(e,(e,t,a,s)=>ne(()=>ge(e)?Nt(vo,(e,o)=>e!=n?o(n,t,a,s):0):Dt(vo,e)?.(n,t,a,s)),e=>{Ot(vo,n,e)},()=>{st(vo,n)},.01,t,a,s)},Co=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(pe(e,0,a),pe(e,a+1))},po=(e,t)=>Co(e,(e,a)=>t(e,...ra(a))),mo=(e,...t)=>Ro(e??d,oa(t)),Ro=(e,t)=>e+"\n"+t,Io=async(e,t,a=1,s,n,o)=>{const r=(e,a)=>(t.addEventListener(e,a),()=>t.removeEventListener(e,a)),i=fo(e,(e,...a)=>t.send(mo(e,...a)),e=>r(H,({data:t})=>po(t.toString(m),e)),()=>{t.close()},a,s,n,o,{getWebSocket:()=>t});return Te(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&o?.(t),a(),s(),e(i)},a=r("open",()=>t()),s=r(F,t)}else e(i)})},To=/\/([^?]*)/,Lo="S",Eo=e=>B(new URL(e.url).pathname,To)?.[1]??d,Do=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,No=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),Mo=()=>No(426,null,"Upgrade required");class Oo extends i{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await fe(await this.createPersister(),async e=>{const t=fo(e.getStore(),(e,t,a,s)=>this.#t(Lo,mo(e,t,a,s)),e=>this.#e=t=>po(t,e),Ie,1);await e.load(),await e.startAutoSave(),ne(t.startSync)}))}fetch(e){const t=Eo(e);return fe(Do(e),e=>{const[a,s]=St(new WebSocketPair);return We(this.#a())&&this.onPathId(t,1),this.ctx.acceptWebSocket(s,[e,t]),this.onClientId(t,e,1),s.send(mo(Lo,null,1,d)),No(101,a)},Mo)}webSocketMessage(e,t){fe(this.ctx.getTags(e)[0],a=>this.#t(a,t.toString(),e))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==me(this.#a())&&this.onPathId(a,-1)}#t(e,t,a){Co(t.toString(),(t,s)=>{const n=Ro(e,s);this.onMessage(e,t,s),t==d?(e!=Lo&&this.#e?.(n),_e(this.#a(),e=>{e!=a&&e.send(n)})):t==Lo?this.#e?.(n):t!=e&&this.#a(t)[0]?.send(n)})}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return $e(this.#a(),e=>this.ctx.getTags(e)[0])}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const Ao=e=>(t,a)=>Do(t)?a[e].get(a[e].idFromName(Eo(t))).fetch(t):Mo(),Po=/\/([^?]*)/,ko=e=>{const t=Lt();return e.on("connection",(e,a)=>fe(B(a.url,Po),([,s])=>fe(a.headers["sec-websocket-key"],async a=>{const n=At(t,s,Lt);Ot(n,a,e),e.on(H,e=>Co(e.toString(m),(e,t)=>{const s=Ro(a,t);e===d?Nt(n,(e,t)=>e!==a?t.send(s):0):Dt(n,e)?.send(s)})),e.on("close",()=>{st(n,a),Ze(n)&&st(t,s)})}))),dt({getWebSocketServer:()=>e,destroy:async()=>{tt(t),e.close()}})},_o=/\/([^?]*)/,Vo=(e,t,a)=>{const s=Lt(),n=Lt(),o=Lt(),r=Lt(),[i,l,c]=zt(()=>w),u=async e=>{await(e[1]?.destroy()),await(e[2]?.destroy())},g=(e,t,a)=>s=>Co(s,(s,n)=>{const o=Ro(e,n);s===d?("S"!==e&&a[3]?.(o),Nt(t,(t,a)=>t!==e?a.send(o):0)):"S"===s?a[3]?.(o):Dt(t,s)?.send(o)});e.on("connection",(e,i)=>fe(B(i.url,_o),([,c])=>fe(i.headers["sec-websocket-key"],async i=>{const d=At(o,c,Lt),w=At(r,c,()=>[0]),h=g(i,d,w);Ze(d)&&(l(s,void 0,c,1),await(async(e,s,n)=>fe(await(t?.(s)),t=>{e[0]=1,e[1]=Ce(t)?t[0]:t;const s=g("S",n,e);e[2]=fo(e[1].getStore(),(e,t,a,n)=>s(mo(e,t,a,n)),t=>e[3]=e=>po(e,t),Ie,1,void 0,void 0,a),e[4]=[],e[5]=Ce(t)?t[1]:e=>0}))(w,c,d)),Ot(d,i,e),l(n,[c],i,1),e.on(H,e=>{const t=e.toString(m);0==w[0]?h(t):Ue(w[4],t)}),1==w[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(w),_e(w[4],h),w[4]=[]),e.on("close",async()=>{st(d,i),l(n,[c],i,-1),Ze(d)&&(await u(w),st(r,c),st(o,c),l(s,void 0,c,-1))}),a&&e.on(F,a)}))),a&&e.on(F,a);const w={getWebSocketServer:()=>e,getPathIds:()=>Et(o),getClientIds:e=>Et(Dt(o,e)),addPathIdsListener:e=>i(e,s),addClientIdsListener:(e,t)=>i(t,n,[e]),delListener:e=>(c(e),w),getStats:()=>({paths:ze(o),clients:Qe(o)}),destroy:async()=>{tt(o),await Le(Mt(r,u)),e.close()}};return dt(w)};export{yo as Message,gs as Persists,us as Status,Bn as TinyBasePartyKitServer,Oo as WsServerDurableObject,da as addOrRemoveHash,Un as broadcastChanges,fn as createAutomergePersister,bo as createBroadcastChannelSynchronizer,Qt as createCheckpoints,mn as createCrSqliteWasmPersister,ys as createCustomPersister,gn as createCustomPostgreSqlPersister,wn as createCustomSqlitePersister,fo as createCustomSynchronizer,In as createDurableObjectStoragePersister,Tn as createElectricSqlPersister,Ln as createExpoSqlitePersister,En as createFilePersister,An as createIndexedDbPersister,Na as createIndexes,Pn as createLibSqlPersister,Sn as createLocalPersister,So as createLocalSynchronizer,ns as createMergeableStore,is as createMetrics,ds as createMiddleware,pn as createOpfsPersister,xn as createPartyKitPersister,zn as createPglitePersister,Qn as createPostgresPersister,Yn as createPowerSyncPersister,wo as createQueries,Kn as createReactNativeMmkvPersister,Zn as createReactNativeSqlitePersister,ho as createRelationships,ao as createRemotePersister,Cn as createSessionPersister,ro as createSqlite3Persister,so as createSqliteBunPersister,no as createSqliteWasmPersister,ts as createStore,Vo as createWsServer,ko as createWsServerSimple,Io as createWsSynchronizer,uo as createYjsPersister,Da as defaultSorter,ha as getCellHash,ya as getCellInRowHash,ca as getHash,Ea as getHlcFunctions,fa as getRowHash,ba as getRowInTableHash,va as getTableHash,Sa as getTableInTablesHash,Ca as getTablesHash,ta as getUniqueId,wa as getValueHash,ga as getValueInValuesHash,ua as getValuesHash,Ao as getWsServerDurableObjectFetch,Fn as hasStoreInStorage,Jn as loadStoreFromStorage,Mn as objectStoreMatch};
|
|
Binary file
|
package/min/persisters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,y=a=>null==a,d=a=>void 0===a,u=a=>null===a,E=c(y),N=c(d),$=t=>a(t)==s,A=a=>Array.isArray(a),O=(a,t,e)=>a.slice(t,e),m=a=>a.length,_=async a=>o.all(a),g=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},T=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),I=a=>0==m(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,C=a=>d(a)||0==(a=>a?.size??0)(a),f=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!y(a)&&E(M(a),a=>a==F.prototype||y(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>v(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>F.values(a),k=a=>m(j(a)),z=a=>G(a)&&0==k(a),K=Map,V=a=>new K(a),q=(a,t)=>a?.get(t),Q=(a,t)=>v([...a?.entries()??[]],([a,e])=>t(e,a)),Z=(a,t,e)=>d(e)?(P(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(D(a,t)?n?.(q(a,t)):Z(a,t,e()),q(a,t)),ta=(a,t,e,n,s=0)=>N((e?aa:q)(a,t[s],s>m(t)-2?e:V),i=>{if(s>m(t)-2)return n?.(i)&&Z(a,t[s]),i;const r=ta(i,t,e,n,s+1);return C(i)&&Z(a,t[s]),r}),ea=/^\d+$/,na=a=>new Set(A(a)||d(a)?a:[a]),sa=(a,t)=>a?.add(t),ia={Idle:0,Loading:1,Saving:2},ra={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},oa=V(),ca=V(),la=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let y,E,$,O=0,_=0,p=0;aa(oa,w,()=>0),aa(ca,w,()=>[]);const v=V(),[I,S,D,f,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ea.test(t)&&m(a)<1e3&&L(a,t)}]})(),s=V();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Z(s,l,[n,i,r,o,c]),sa(ta(i,r??[e],na),l),l},(t,n,...i)=>T(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):T([t[e],null],t=>s(q(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>q(s,t)[0](a,...n??[],...i))),a=>N(q(s,a),([,t,i])=>(ta(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Z(s,a),n(a),i)),t=>N(q(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=m(r);o==m(e)?t(a,...r,...s(r)):u(e[o])?T(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=O&&(O=a,U(v,void 0,O))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{Q()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=O&&(j(1),_++,await ra(async()=>{await R(async()=>{const e=await t();A(e)?B(e):a?F(a):g("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await R(async()=>E=await s(async(a,t)=>{t||a?2!=O&&(j(1),_++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await R(()=>i(E),r),E=void 0),la),J=async a=>(1!=O&&(j(2),p++,await ra(async()=>{await R(()=>n(S,a),r),j(0)})),la),k=async()=>(K(),await J(),$=a.addDidFinishTransactionListener(()=>{const a=D();f(a)&&J(a)}),la),K=async()=>($&&(a.delListener($),$=void 0),la),Q=()=>!d($),ia=async(a=!1)=>{const[t,e]=a?[K,X]:[X,K];return await t(),await e(),la},ra=async(...a)=>(L(q(ca,w),...a),await(async()=>{if(!q(oa,w)){for(Z(oa,w,1);!d(y=b(q(ca,w)));)await R(y,r);Z(oa,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!d(E),save:J,startAutoSave:k,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[k,Y]:[Y,k];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>O,addStatusListener:a=>M(a,v),delListener:t=>(G(t),a),schedule:ra,getStore:()=>a,destroy:()=>(q(ca,w).splice(0,void 0),ia()),getStats:()=>({loads:_,saves:p}),...c};return x(la)},wa=JSON.stringify,ya=JSON.parse,da=a=>wa(a,(a,t)=>d(t)?"":t),ua=a=>""===a?void 0:A(a)?v(a,ua):G(a)?X(a,ua):a,Ea=new l.TextEncoder,Na="_",$a="_id",Aa="SELECT",Oa="WHERE",ma="TABLE",_a="INSERT",ga="DELETE",Ra="UPDATE",Ta="ALTER "+ma,pa="FROM",va=ga+" "+pa,Ia=Aa+"*"+pa,Sa="pragma_",La="data_version",ba="schema_version",Da="pragma_table_",Ca="CREATE ",fa=Ca+ma,ha="OR REPLACE ",Pa="FUNCTION",Fa="$tableName",Ma=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ua=a=>p(v(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ga=(...a)=>Ua(p(a,"_")),ja=(a,t=[1])=>p(v(a,()=>"$"+t[0]++),n),xa=(a,t=i)=>Oa+`(${r(t,Fa,Ua(a))})`,Ba="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",Xa=Ha+"Id"+Ba,Ja=Ha+Ba,ka="autoLoadIntervalSeconds",za="rowId"+Ba,Ka="tableId",Va="tableName",qa="deleteEmptyColumns",Qa="deleteEmptyTable",Za="condition",at={mode:Wa,[ka]:1},tt={load:0,save:0,[Va]:t+"_values"},et=(a,t,e,n,s)=>{const i=V();return X(a,(a,r)=>{const o=O(J(H(t,$(a)?{[e]:a}:a)),0,k(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Z(i,r,o))}),i},nt=a=>{const e=(a=>H(at,$(a)?{[Ya]:a}:a??{}))(a),n=e[ka];if(e.mode==Wa){const a=e[Ya]??t;return[1,n,[a,e[Xa]??$a,e[Ja]??Ha],na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=O(J(H(tt,o)),0,k(tt)),l=c[2],w=na(l),y=na(l),d=et(s,{[Ka]:null,[za]:$a,[Za]:i},Ka,a=>D(y,a),a=>sa(w,a)),u=et(r,{[Va]:null,[za]:$a,[qa]:0,[Qa]:0,[Za]:null},Va,(a,t)=>D(y,t),(a,t)=>sa(w,t));var E;return E=(a,t)=>t[4]??=q(d,t[0])?.[2]??i,h(u,(a,t)=>E(0,a)),[0,n,[d,u,c],w]},st=(a,t,e,s,r,o=it,c,l)=>{const w=V();return[async()=>{w.clear(),v(await e(a,t),({tn:a,cn:t})=>sa(aa(w,a,na),t))},async(t,e,n)=>((a,t)=>D(q(w,a),t))(t,e)?B(S(v(await a(Ia+Ua(t)+xa(t,n)),a=>[a[e],l?X(W(a,e),l):W(a,e)]),([a,t])=>!d(a)&&!z(t))):{},async(t,e,s,l,y,u=!1,E=i)=>{const N=na();X(s??{},a=>v(j(a??{}),a=>sa(N,a)));const $=f(N);if(!u&&y&&E==i&&I($)&&D(w,t))return await a("DROP "+ma+Ua(t)),void Z(w,t);const A=q(w,t),O=na(f(A));if(I($)||(D(w,t)?await _(v([e,...$],async(n,s)=>{P(O,n)||(await a(Ta+Ua(t)+"ADD"+Ua(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ua(t)+`(${Ua(e)})`),sa(A,n))})):(await a(fa+Ua(t)+`(${Ua(e)}${r} PRIMARY KEY${p(v($,a=>n+Ua(a)+r))});`),Z(w,t,na([e,...$])))),await _([...!u&&l?v(f(O),async n=>{n!=e&&(await a(Ta+Ua(t)+"DROP"+Ua(n)),P(A,n))}):[]]),u)d(s)?await a(va+Ua(t)+xa(t,E)):await _(Y(s,async(n,s)=>{d(n)?await a(va+Ua(t)+xa(t,E)+`AND(${Ua(e)}=$1)`,[s]):I($)||await o(a,t,e,j(n),{[s]:c?v(J(n),c):J(n)},A)}));else if(I($))D(w,t)&&await a(va+Ua(t)+xa(t,E));else{const n=S(f(q(w,t)),a=>a!=e),i={},r=[];X(s??{},(a,t)=>{i[t]=v(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i),await a(va+Ua(t)+xa(t,E)+`AND${Ua(e)}NOT IN(${ja(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},it=async(a,t,e,s,i)=>{const r=[1];await a(_a+" INTO"+Ua(t)+"("+((...a)=>p(v(a,Ua),n))(e,...s)+")VALUES"+p(Y(i,a=>"($"+r[0]+++","+ja(a,r)+")"),n)+"ON CONFLICT("+Ua(e)+`)DO ${Ra} SET`+p(v(s,a=>Ua(a)+"=excluded."+Ua(a)),n),Y(i,(a,t)=>[t,...v(a,a=>a??null)]).flat())},rt=(a,t,e,n,s,i,r,[o,c,l],w,y,d,u,E,N)=>{const[$,A,O,m]=st(t,w,y,s,E,N),_=la(a,()=>m(async()=>{return await $(),a=(await A(o,c))[Na]?.[l]??"null",ua(ya(a));var a}),a=>m(async()=>{await $(),await O(o,c,{[Na]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>d,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,d);return _},ot=(a,t,e,n,s,i,r,[o,c,[l,w,y]],u,E,N,$,A,O,m,g)=>{const[R,T,p,v]=st(t,u,E,s,A,O,m,g),I=(a,t)=>_(Q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await p(e,n,a[o],s,i,t,r)})),L=async(a,t)=>w?await p(y,$a,{[Na]:a},!0,!0,t):null,b=la(a,()=>v(async()=>{await R();const a=await(async()=>B(S(await _(Q(o,async([a,t,e],n)=>[a,await T(n,t,e)])),a=>!z(a[1]))))(),t=await(async()=>l?(await T(y,$a))[Na]:{})();return z(a)&&d(t)?void 0:[a,t]}),(a,t)=>v(async()=>{if(await R(),d(t)){const[t,e]=a();await I(t),await L(e)}else await I(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[$]:()=>N,destroy:async()=>(await b.stopAutoPersisting(),i(),b)},0,N);return b},ct=/^([cd]:)(.+)/,lt=(a,n,s,o,c,l,w,y,d,u,E="getDb")=>{const $=Ma(s,l),[A,,O,m]=nt(n),g=e+(a=>{let t=2166136261;return T(Ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(O)),R=t+"_"+g,I=async(a,e,n="",s="")=>{const i=Ga(t,a,g);return await $(Ca+ha+Pa+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await $(Ca+a+"TRIGGER"+t+e+"EXECUTE "+Pa+n+"()"),t),L=a=>`PERFORM pg_notify('${R}',${a});`,b=(a,t)=>A?i:2===t?b(a,0)+" OR "+b(a,1):r(q(O[0],a)?.[2]??i,Fa,0==t?"NEW":"OLD"),C=(a,e)=>_(v([_a,ga,Ra],(n,s)=>S(ha,Ga(t,"d",g,a,n),`AFTER ${n} ON${Ua(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(A?rt:ot)(a,$,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Oa} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ga(t,"c",g),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await _(v(f(m),async a=>(await $(fa+` IF NOT EXISTS${Ua(a)}("_id"text PRIMARY KEY)`),await C(a,n)))),[await o(R,t=>{return N((e=t,s=ct,e?.match(s)),async([,t,e])=>{D(m,e)&&("c:"==t&&await C(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await $(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)},w,y,d,O,f(m),async(a,t)=>await a(Aa+` table_name tn,column_name cn FROM information_schema.columns ${Oa} table_schema='public'AND table_name IN(${ja(t)})`,t),u,E,"text",void 0,a=>wa(a),a=>ya(a))},wt=(a,t,n,s,i,r,o,c,l,d,u="getDb",E)=>{let N,$,A;const O=Ma(n,r),[m,_,g,T]=nt(t);return(m?rt:ot)(a,O,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await O(Aa+` ${La} d,${ba} s,TOTAL_CHANGES() c FROM ${Sa}${La} JOIN ${Sa}${ba}`);t==N&&e==$&&n==A||(y(N)||a(),N=t,$=e,A=n)}),1e3*_),n=()=>{N=$=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,g,f(T),async(a,t)=>await a(Aa+` t.name tn,c.name cn FROM ${Da}list()t,${Da}info(t.name)c ${Oa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),d,u,e,E,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ra as Persists,ia as Status,la as createCustomPersister,lt as createCustomPostgreSqlPersister,wt as createCustomSqlitePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,y=a=>null==a,d=a=>void 0===a,u=a=>null===a,E=c(y),N=c(d),$=t=>a(t)==s,A=a=>Array.isArray(a),O=(a,t,e)=>a.slice(t,e),m=a=>a.length,_=async a=>o.all(a),g=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},T=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),I=a=>0==m(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,C=a=>d(a)||0==(a=>a?.size??0)(a),f=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!y(a)&&E(M(a),a=>a==F.prototype||y(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>v(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>F.values(a),k=a=>m(j(a)),z=a=>G(a)&&0==k(a),K=Map,V=a=>new K(a),q=(a,t)=>a?.get(t),Q=(a,t)=>v([...a?.entries()??[]],([a,e])=>t(e,a)),Z=(a,t,e)=>d(e)?(P(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(D(a,t)?n?.(q(a,t)):Z(a,t,e()),q(a,t)),ta=(a,t,e,n,s=0)=>N((e?aa:q)(a,t[s],s>m(t)-2?e:V),i=>{if(s>m(t)-2)return n?.(i)&&Z(a,t[s]),i;const r=ta(i,t,e,n,s+1);return C(i)&&Z(a,t[s]),r}),ea=/^\d+$/,na=a=>new Set(A(a)||d(a)?a:[a]),sa=(a,t)=>a?.add(t),ia={Idle:0,Loading:1,Saving:2},ra={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},oa=V(),ca=V(),la=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let y,E,$,O=0,_=0,p=0;aa(oa,w,()=>0),aa(ca,w,()=>[]);const v=V(),[I,S,D,f,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ea.test(t)&&m(a)<1e3&&L(a,t)}]})(),s=V();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Z(s,l,[n,i,r,o,c]),sa(ta(i,r??[e],na),l),l},(t,n,...i)=>T(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):T([t[e],null],t=>s(q(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>q(s,t)[0](a,...n??[],...i))),a=>N(q(s,a),([,t,i])=>(ta(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Z(s,a),n(a),i)),t=>N(q(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=m(r);o==m(e)?t(a,...r,...s(r)):u(e[o])?T(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=O&&(O=a,U(v,void 0,O))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{Q()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=O&&(j(1),_++,await ra(async()=>{await R(async()=>{const e=await t();A(e)?B(e):a?F(a):g("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await R(async()=>E=await s(async(a,t)=>{t||a?2!=O&&(j(1),_++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await R(()=>i(E),r),E=void 0),la),J=async a=>(1!=O&&(j(2),p++,await ra(async()=>{await R(()=>n(S,a),r),j(0)})),la),k=async()=>(K(),await J(),$=a.addDidFinishTransactionListener(()=>{const a=D();f(a)&&J(a)}),la),K=async()=>($&&(a.delListener($),$=void 0),la),Q=()=>!d($),ia=async(a=!1)=>{const[t,e]=a?[K,X]:[X,K];return await t(),await e(),la},ra=async(...a)=>(L(q(ca,w),...a),await(async()=>{if(!q(oa,w)){for(Z(oa,w,1);!d(y=b(q(ca,w)));)await R(y,r);Z(oa,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!d(E),save:J,startAutoSave:k,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[k,Y]:[Y,k];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>O,addStatusListener:a=>M(a,v),delListener:t=>(G(t),a),schedule:ra,getStore:()=>a,destroy:()=>(q(ca,w).splice(0,void 0),ia()),getStats:()=>({loads:_,saves:p}),...c};return x(la)},wa=JSON.stringify,ya=JSON.parse,da=a=>wa(a,(a,t)=>d(t)?"":t),ua=a=>""===a?void 0:A(a)?v(a,ua):G(a)?X(a,ua):a,Ea=new l.TextEncoder,Na="_",$a="_id",Aa="SELECT",Oa="WHERE",ma="TABLE",_a="INSERT",ga="DELETE",Ra="UPDATE",Ta="ALTER "+ma,pa="FROM",va=ga+" "+pa,Ia=Aa+"*"+pa,Sa="pragma_",La="data_version",ba="schema_version",Da="pragma_table_",Ca="CREATE ",fa=Ca+ma,ha="OR REPLACE ",Pa="FUNCTION",Fa="$tableName",Ma=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ua=a=>p(v(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ga=(...a)=>Ua(p(a,"_")),ja=(a,t=[1])=>p(v(a,()=>"$"+t[0]++),n),xa=(a,t=i)=>Oa+`(${r(t,Fa,Ua(a))})`,Ba="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",Xa=Ha+"Id"+Ba,Ja=Ha+Ba,ka="autoLoadIntervalSeconds",za="rowId"+Ba,Ka="tableId",Va="tableName",qa="deleteEmptyColumns",Qa="deleteEmptyTable",Za="condition",at={mode:Wa,[ka]:1},tt={load:0,save:0,[Va]:t+"_values"},et=(a,t,e,n,s)=>{const i=V();return X(a,(a,r)=>{const o=O(J(H(t,$(a)?{[e]:a}:a)),0,k(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Z(i,r,o))}),i},nt=a=>{const e=(a=>H(at,$(a)?{[Ya]:a}:a??{}))(a),n=e[ka];if(e.mode==Wa){const a=e[Ya]??t;return[1,n,[a,e[Xa]??$a,e[Ja]??Ha],na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=O(J(H(tt,o)),0,k(tt)),l=c[2],w=na(l),y=na(l),d=et(s,{[Ka]:null,[za]:$a,[Za]:i},Ka,a=>D(y,a),a=>sa(w,a)),u=et(r,{[Va]:null,[za]:$a,[qa]:0,[Qa]:0,[Za]:null},Va,(a,t)=>D(y,t),(a,t)=>sa(w,t));var E;return E=(a,t)=>t[4]??=q(d,t[0])?.[2]??i,h(u,(a,t)=>E(0,a)),[0,n,[d,u,c],w]},st=(a,t,e,s,r,o=it,c,l)=>{const w=V();return[async()=>{w.clear(),v(await e(a,t),({tn:a,cn:t})=>sa(aa(w,a,na),t))},async(t,e,n)=>((a,t)=>D(q(w,a),t))(t,e)?B(S(v(await a(Ia+Ua(t)+xa(t,n)),a=>[a[e],l?X(W(a,e),l):W(a,e)]),a=>!d(a[0])&&!z(a[1]))):{},async(t,e,s,l,y,u=!1,E=i)=>{const N=na();X(s??{},a=>v(j(a??{}),a=>sa(N,a)));const $=f(N);if(!u&&y&&E==i&&I($)&&D(w,t))return await a("DROP "+ma+Ua(t)),void Z(w,t);const A=q(w,t),O=na(f(A));if(I($)||(D(w,t)?await _(v([e,...$],async(n,s)=>{P(O,n)||(await a(Ta+Ua(t)+"ADD"+Ua(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ua(t)+`(${Ua(e)})`),sa(A,n))})):(await a(fa+Ua(t)+`(${Ua(e)}${r} PRIMARY KEY${p(v($,a=>n+Ua(a)+r))});`),Z(w,t,na([e,...$])))),await _([...!u&&l?v(f(O),async n=>{n!=e&&(await a(Ta+Ua(t)+"DROP"+Ua(n)),P(A,n))}):[]]),u)d(s)?await a(va+Ua(t)+xa(t,E)):await _(Y(s,async(n,s)=>{d(n)?await a(va+Ua(t)+xa(t,E)+`AND(${Ua(e)}=$1)`,[s]):I($)||await o(a,t,e,j(n),{[s]:c?v(J(n),c):J(n)},A)}));else if(I($))D(w,t)&&await a(va+Ua(t)+xa(t,E));else{const n=S(f(q(w,t)),a=>a!=e),i={},r=[];X(s??{},(a,t)=>{i[t]=v(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i),await a(va+Ua(t)+xa(t,E)+`AND${Ua(e)}NOT IN(${ja(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},it=async(a,t,e,s,i)=>{const r=[1];await a(_a+" INTO"+Ua(t)+"("+((...a)=>p(v(a,Ua),n))(e,...s)+")VALUES"+p(Y(i,a=>"($"+r[0]+++","+ja(a,r)+")"),n)+"ON CONFLICT("+Ua(e)+`)DO ${Ra} SET`+p(v(s,a=>Ua(a)+"=excluded."+Ua(a)),n),Y(i,(a,t)=>[t,...v(a,a=>a??null)]).flat())},rt=(a,t,e,n,s,i,r,[o,c,l],w,y,d,u,E,N)=>{const[$,A,O,m]=st(t,w,y,s,E,N),_=la(a,()=>m(async()=>{return await $(),a=(await A(o,c))[Na]?.[l]??"null",ua(ya(a));var a}),a=>m(async()=>{await $(),await O(o,c,{[Na]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>d,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,d);return _},ot=(a,t,e,n,s,i,r,[o,c,[l,w,y]],u,E,N,$,A,O,m,g)=>{const[R,T,p,v]=st(t,u,E,s,A,O,m,g),I=(a,t)=>_(Q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await p(e,n,a[o],s,i,t,r)})),L=async(a,t)=>w?await p(y,$a,{[Na]:a},!0,!0,t):null,b=la(a,()=>v(async()=>{await R();const a=await(async()=>B(S(await _(Q(o,async([a,t,e],n)=>[a,await T(n,t,e)])),a=>!z(a[1]))))(),t=await(async()=>l?(await T(y,$a))[Na]:{})();return z(a)&&d(t)?void 0:[a,t]}),(a,t)=>v(async()=>{if(await R(),d(t)){const[t,e]=a();await I(t),await L(e)}else await I(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[$]:()=>N,destroy:async()=>(await b.stopAutoPersisting(),i(),b)},0,N);return b},ct=/^([cd]:)(.+)/,lt=(a,n,s,o,c,l,w,y,d,u,E="getDb")=>{const $=Ma(s,l),[A,,O,m]=nt(n),g=e+(a=>{let t=2166136261;return T(Ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(O)),R=t+"_"+g,I=async(a,e,n="",s="")=>{const i=Ga(t,a,g);return await $(Ca+ha+Pa+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await $(Ca+a+"TRIGGER"+t+e+"EXECUTE "+Pa+n+"()"),t),L=a=>`PERFORM pg_notify('${R}',${a});`,b=(a,t)=>A?i:2===t?b(a,0)+" OR "+b(a,1):r(q(O[0],a)?.[2]??i,Fa,0==t?"NEW":"OLD"),C=(a,e)=>_(v([_a,ga,Ra],(n,s)=>S(ha,Ga(t,"d",g,a,n),`AFTER ${n} ON${Ua(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(A?rt:ot)(a,$,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Oa} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ga(t,"c",g),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await _(v(f(m),async a=>(await $(fa+` IF NOT EXISTS${Ua(a)}("_id"text PRIMARY KEY)`),await C(a,n)))),[await o(R,t=>{return N((e=t,s=ct,e?.match(s)),async([,t,e])=>{D(m,e)&&("c:"==t&&await C(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await $(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)},w,y,d,O,f(m),async(a,t)=>await a(Aa+` table_name tn,column_name cn FROM information_schema.columns ${Oa} table_schema='public'AND table_name IN(${ja(t)})`,t),u,E,"text",void 0,a=>wa(a),a=>ya(a))},wt=(a,t,n,s,i,r,o,c,l,d,u="getDb",E)=>{let N,$,A;const O=Ma(n,r),[m,_,g,T]=nt(t);return(m?rt:ot)(a,O,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await O(Aa+` ${La} d,${ba} s,TOTAL_CHANGES() c FROM ${Sa}${La} JOIN ${Sa}${ba}`);t==N&&e==$&&n==A||(y(N)||a(),N=t,$=e,A=n)}),1e3*_),n=()=>{N=$=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,g,f(T),async(a,t)=>await a(Aa+` t.name tn,c.name cn FROM ${Da}list()t,${Da}info(t.name)c ${Oa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),d,u,e,E,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ra as Persists,ia as Status,la as createCustomPersister,lt as createCustomPostgreSqlPersister,wt as createCustomSqlitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+x+V(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),$a(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(E,a=>n+V(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(Y+V(t)+X(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(Y+V(t)+X(t,p)+`AND(${V(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(Y+V(t)+X(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(Y+V(t)+X(t,p)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=ka(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",xa(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=ka(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Qa=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Va as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+x+V(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),$a(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(E,a=>n+V(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(Y+V(t)+X(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(Y+V(t)+X(t,p)+`AND(${V(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(Y+V(t)+X(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(Y+V(t)+X(t,p)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=ka(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",xa(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=ka(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Qa=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Va as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",l="t",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),d=Number,u=String,y=clearInterval,E=a=>null==a,w=a=>void 0===a,N=a=>null===a,T=c(E),_=c(w),p=t=>a(t)==s,O=a=>Array.isArray(a),S=(a,t,e)=>a.slice(t,e),m=a=>a.length,A=()=>{},v=async a=>o.all(a),L=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},g=(a,t)=>a.forEach(t),f=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),h=a=>0==m(a),$=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),C=a=>a.shift(),P=Object,D=a=>P.getPrototypeOf(a),U=P.entries,x=a=>!E(a)&&T(D(a),a=>a==P.prototype||E(D(a)),()=>!0),X=P.keys,J=P.freeze,M=(a=[])=>P.fromEntries(a),F=(...a)=>P.assign({},...a),V=(a,t)=>t in a,B=(a,t)=>(delete a[t],a),G=(a,t)=>g(U(a),([a,e])=>t(e,a)),Y=(a,t)=>I(U(a),([a,e])=>t(e,a)),j=(a,t)=>M(Y(a,(a,e)=>[e,t(a,e)])),z=a=>P.values(a),k=a=>m(X(a)),q=a=>x(a)&&0==k(a),H=(a,t,e)=>(V(a,t)||(a[t]=e()),a[t]),K=JSON.stringify,Q=JSON.parse,W=a=>""===a?void 0:O(a)?I(a,W):x(a)?j(a,W):a,Z=(a,t)=>a?.has(t)??!1,aa=a=>w(a)||0==(a=>a?.size??0)(a),ta=a=>[...a?.values()??[]],ea=(a,t)=>a?.forEach(t),na=(a,t)=>a?.delete(t),sa=Map,ia=a=>new sa(a),la=(a,t)=>a?.get(t),ra=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),oa=(a,t,e)=>w(e)?(na(a,t),a):a?.set(t,e),ca=(a,t,e,n)=>(Z(a,t)?n?.(la(a,t)):oa(a,t,e()),la(a,t)),da=(a,t,e,n,s=0)=>_((e?ca:la)(a,t[s],s>m(t)-2?e:ia),i=>{if(s>m(t)-2)return n?.(i)&&oa(a,t[s]),i;const l=da(i,t,e,n,s+1);return aa(i)&&oa(a,t[s]),l}),ua=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},ya=/^\d+$/,Ea=a=>new Set(O(a)||w(a)?a:[a]),wa=(a,t)=>a?.add(t),Na=ia(),Ta=ia(),_a=(a,t,n,s,i,l,r,o={},c=0,d=[])=>{let u,y,E,T=0,p=0,S=0;ca(Na,d,()=>0),ca(Ta,d,()=>[]);const A=ia(),[v,f,I,h,$]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!q(a)||!q(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!q(a)||!q(t),t.setContent]:L("Store type not supported by this Persister"))(r,a,c),[P,D,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?C(a):null)??e+t++,t=>{ya.test(t)&&m(a)<1e3&&b(a,t)}]})(),s=ia();return[(n,i,l,r=[],o=()=>[])=>{a??=K;const c=t(1);return oa(s,c,[n,i,l,r,o]),wa(da(i,l??[e],Ea),c),c},(t,n,...i)=>g(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?b(n,a):N(t[e])?ea(a,a=>s(a,e+1)):g([t[e],null],t=>s(la(a,t),e+1));return s(a,0),n})(t,n),t=>ea(t,t=>la(s,t)[0](a,...n??[],...i))),a=>_(la(s,a),([,t,i])=>(da(t,i??[e],void 0,t=>(na(t,a),aa(t)?1:0)),oa(s,a),n(a),i)),t=>_(la(s,t),([t,,e=[],n,s])=>{const i=(...l)=>{const r=m(l);r==m(e)?t(a,...l,...s(l)):N(e[r])?g(n[r]?.(...l)??[],a=>i(...l,a)):i(...l,e[r])};i()})]})(),x=a=>{a!=T&&(T=a,D(A,void 0,T))},X=t=>{(v&&O(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},M=async()=>{z()&&a.__?.[0]?.()&&await G()},F=async a=>(2!=T&&(x(1),p++,await H(async()=>{await R(async()=>{const e=await t();O(e)?X(e):a?$(a):L("Content is not an array: "+e)},()=>{a&&$(a)}),x(0),await M()})),K),V=async a=>(B(),await F(a),await R(async()=>y=await s(async(a,t)=>{t||a?2!=T&&(x(1),p++,X(t??a),x(0),await M()):await F()}),l),K),B=async()=>(y&&(await R(()=>i(y),l),y=void 0),K),G=async a=>(1!=T&&(x(2),S++,await H(async()=>{await R(()=>n(f,a),l),x(0)})),K),Y=async()=>(j(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=I();h(a)&&G(a)}),K),j=async()=>(E&&(a.delListener(E),E=void 0),K),z=()=>!w(E),k=async(a=!1)=>{const[t,e]=a?[j,B]:[B,j];return await t(),await e(),K},H=async(...a)=>(b(la(Ta,d),...a),await(async()=>{if(!la(Na,d)){for(oa(Na,d,1);!w(u=C(la(Ta,d)));)await R(u,l);oa(Na,d,0)}})(),K),K={load:F,startAutoLoad:V,stopAutoLoad:B,isAutoLoading:()=>!w(y),save:G,startAutoSave:Y,stopAutoSave:j,isAutoSaving:z,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[Y,V]:[V,Y];return await e(a),await n(a),K},stopAutoPersisting:k,getStatus:()=>T,addStatusListener:a=>P(a,A),delListener:t=>(U(t),a),schedule:H,getStore:()=>a,destroy:()=>(la(Ta,d).splice(0,void 0),k()),getStats:()=>({loads:p,saves:S}),...o};return J(K)},pa="_",Oa="_id",Sa="SELECT",ma="WHERE",Aa="TABLE",va="ALTER "+Aa,La="FROM",Ra="DELETE "+La,ga=Sa+"*"+La,fa="pragma_",Ia="data_version",ha="schema_version",$a="pragma_table_",ba="CREATE "+Aa,Ca=a=>f(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Pa=(a,t=[1])=>f(I(a,()=>"$"+t[0]++),n),Da=(a,t=i)=>ma+`(${r(t,"$tableName",Ca(a))})`,Ua="ColumnName",xa="store",Xa="json",Ja=xa+"TableName",Ma=xa+"Id"+Ua,Fa=xa+Ua,Va="autoLoadIntervalSeconds",Ba="rowId"+Ua,Ga="tableId",Ya="tableName",ja="deleteEmptyColumns",za="deleteEmptyTable",ka="condition",qa={mode:Xa,[Va]:1},Ha={load:0,save:0,[Ya]:t+"_values"},Ka=(a,t,e,n,s)=>{const i=ia();return j(a,(a,l)=>{const r=S(z(F(t,p(a)?{[e]:a}:a)),0,k(t));N(r[0])||n(l,r[0])||(s(l,r[0]),oa(i,l,r))}),i},Qa=(a,t,e,s,l,r=Wa,o,c)=>{const d=ia();return[async()=>{d.clear(),I(await e(a,t),({tn:a,cn:t})=>wa(ca(d,a,Ea),t))},async(t,e,n)=>((a,t)=>Z(la(d,a),t))(t,e)?M($(I(await a(ga+Ca(t)+Da(t,n)),a=>[a[e],c?j(B(a,e),c):B(a,e)]),([a,t])=>!w(a)&&!q(t))):{},async(t,e,s,c,u,y=!1,E=i)=>{const N=Ea();j(s??{},a=>I(X(a??{}),a=>wa(N,a)));const T=ta(N);if(!y&&u&&E==i&&h(T)&&Z(d,t))return await a("DROP "+Aa+Ca(t)),void oa(d,t);const _=la(d,t),p=Ea(ta(_));if(h(T)||(Z(d,t)?await v(I([e,...T],async(n,s)=>{na(p,n)||(await a(va+Ca(t)+"ADD"+Ca(n)+l),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ca(t)+`(${Ca(e)})`),wa(_,n))})):(await a(ba+Ca(t)+`(${Ca(e)}${l} PRIMARY KEY${f(I(T,a=>n+Ca(a)+l))});`),oa(d,t,Ea([e,...T])))),await v([...!y&&c?I(ta(p),async n=>{n!=e&&(await a(va+Ca(t)+"DROP"+Ca(n)),na(_,n))}):[]]),y)w(s)?await a(Ra+Ca(t)+Da(t,E)):await v(Y(s,async(n,s)=>{w(n)?await a(Ra+Ca(t)+Da(t,E)+`AND(${Ca(e)}=$1)`,[s]):h(T)||await r(a,t,e,X(n),{[s]:o?I(z(n),o):z(n)},_)}));else if(h(T))Z(d,t)&&await a(Ra+Ca(t)+Da(t,E));else{const n=$(ta(la(d,t)),a=>a!=e),i={},l=[];j(s??{},(a,t)=>{i[t]=I(n,t=>o?o(a?.[t]):a?.[t]),b(l,t)}),await r(a,t,e,n,i),await a(Ra+Ca(t)+Da(t,E)+`AND${Ca(e)}NOT IN(${Pa(l)})`,l)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},Wa=async(a,t,e,s,i)=>{const l=[1];await a("INSERT INTO"+Ca(t)+"("+((...a)=>f(I(a,Ca),n))(e,...s)+")VALUES"+f(Y(i,a=>"($"+l[0]+++","+Pa(a,l)+")"),n)+"ON CONFLICT("+Ca(e)+")DO UPDATE SET"+f(I(s,a=>Ca(a)+"=excluded."+Ca(a)),n),Y(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Za=(a,t,e,n,s,i,l,[r,o,c],d,u,y,E,N,T)=>{const[_,p,O,S]=Qa(t,d,u,s,N,T),m=_a(a,()=>S(async()=>{return await _(),a=(await p(r,o))[pa]?.[c]??"null",W(Q(a));var a}),a=>S(async()=>{var t;await _(),await O(r,o,{[pa]:{[c]:(t=a()??null,K(t,(a,t)=>w(t)?"":t))}},!0,!0)}),e,n,s,l,{[E]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},at=(a,t,e,n,s,i,l,[r,o,[c,d,u]],y,E,N,T,_,p,O,S)=>{const[m,A,L,R]=Qa(t,y,E,s,_,p,O,S),g=(a,t)=>v(ra(o,async([e,n,s,i,l],r)=>{t&&!V(a,r)||await L(e,n,a[r],s,i,t,l)})),f=async(a,t)=>d?await L(u,Oa,{[pa]:a},!0,!0,t):null,I=_a(a,()=>R(async()=>{await m();const a=await(async()=>M($(await v(ra(r,async([a,t,e],n)=>[a,await A(n,t,e)])),a=>!q(a[1]))))(),t=await(async()=>c?(await A(u,Oa))[pa]:{})();return q(a)&&w(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await m(),w(t)){const[t,e]=a();await g(t),await f(e)}else await g(t[0],!0),await f(t[1],!0)}),e,n,s,l,{[T]:()=>N,destroy:async()=>(await I.stopAutoPersisting(),i(),I)},0,N);return I},tt=(a,n,s,l,r,o,c,d,u,w,N="getDb",T)=>{let _,O,m;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,o),[v,L,g,f]=(a=>{const e=(a=>F(qa,p(a)?{[Ja]:a}:a??{}))(a),n=e[Va];if(e.mode==Xa){const a=e[Ja]??t;return[1,n,[a,e[Ma]??Oa,e[Fa]??xa],Ea(a)]}const{tables:{load:s={},save:l={}}={},values:r={}}=e,o=S(z(F(Ha,r)),0,k(Ha)),c=o[2],d=Ea(c),u=Ea(c),y=Ka(s,{[Ga]:null,[Ba]:Oa,[ka]:i},Ga,a=>Z(u,a),a=>wa(d,a)),E=Ka(l,{[Ya]:null,[Ba]:Oa,[ja]:0,[za]:0,[ka]:null},Ya,(a,t)=>Z(u,t),(a,t)=>wa(d,t));var w;return w=(a,t)=>t[4]??=la(y,t[0])?.[2]??i,ea(E,(a,t)=>w(0,a)),[0,n,[y,E,o],d]})(n);return(v?Za:at)(a,A,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await A(Sa+` ${Ia} d,${ha} s,TOTAL_CHANGES() c FROM ${fa}${Ia} JOIN ${fa}${ha}`);t==_&&e==O&&n==m||(E(_)||a(),_=t,O=e,m=n)}),1e3*L),n=()=>{_=O=m=null,y(t)},s=l(t=>{f.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),c,d,u,g,ta(f),async(a,t)=>await a(Sa+` t.name tn,c.name cn FROM ${$a}list()t,${$a}info(t.name)c ${ma} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Pa(t)})ORDER BY t.name,c.name`,t),w,N,e,T,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},et=(a,t,n,s,i)=>"object"==typeof n&&"fragmented"===n.mode?st(a,t,n?.storagePrefix??e,i):tt(a,n,async(a,e=[])=>["BEGIN","END"].includes(a)?[]:(a=a.replace(/\$\d+/g,"?"),t.exec(a,...e).toArray()),()=>A,a=>a(),s,i,A,2,t,"getSqlStorage"),nt=()=>[{},e,0],st=(a,t,e="",n)=>{const s=e.replace(/[^a-zA-Z0-9_]/g,"_"),i=s+"tinybase_tables",r=s+"tinybase_values";return t.exec(`\n CREATE TABLE IF NOT EXISTS ${i} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `),_a(a,async()=>{const a=nt(),e=nt(),n=t.exec("SELECT * FROM "+i);for(const t of n.toArray()){const e=u(t.type),n=t.table_id?u(t.table_id):null,s=t.row_id?u(t.row_id):null,i=t.cell_id?u(t.cell_id):null,r=u(t.value_data),o=u(t.timestamp),c=d(t.hash),[y]=JSON.parse(r);if(e===l)if(n&&s&&i){const t=H(a[0],n,nt);H(t[0],s,nt)[0][i]=[y,o,c]}else if(n&&s){const t=H(a[0],n,nt),e=H(t[0],s,nt);ua(e,o,c)}else if(n){const t=H(a[0],n,nt);ua(t,o,c)}else ua(a,o,c)}const s=t.exec("SELECT * FROM "+r);for(const a of s.toArray()){const t=a.value_id?u(a.value_id):null,n=u(a.value_data),s=u(a.timestamp),i=d(a.hash),[l]=JSON.parse(n);t?e[0][t]=[l,s,i]:ua(e,s,i)}return[a,e]},async(a,[[e,n,s],[o,c,d]]=a())=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,null,null,null,JSON.stringify([0]),n,s),G(e,([a,e,n],s)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,null,null,JSON.stringify([0]),e,n),G(a,([a,e,n],r)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,null,JSON.stringify([0]),e,n),G(a,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,e,JSON.stringify([a[0]]),a[1],a[2])})})}),t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,null,JSON.stringify([0]),c,d),G(o,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,e,JSON.stringify([a[0]]),a[1],a[2])})},A,A,n,2,{getSqlStorage:()=>t})};export{et as createDurableObjectSqlStoragePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",l="t",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),d=Number,u=String,y=clearInterval,E=a=>null==a,w=a=>void 0===a,N=a=>null===a,T=c(E),_=c(w),p=t=>a(t)==s,O=a=>Array.isArray(a),S=(a,t,e)=>a.slice(t,e),m=a=>a.length,A=()=>{},v=async a=>o.all(a),L=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},g=(a,t)=>a.forEach(t),f=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),h=a=>0==m(a),$=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),C=a=>a.shift(),P=Object,D=a=>P.getPrototypeOf(a),U=P.entries,x=a=>!E(a)&&T(D(a),a=>a==P.prototype||E(D(a)),()=>!0),X=P.keys,J=P.freeze,M=(a=[])=>P.fromEntries(a),F=(...a)=>P.assign({},...a),V=(a,t)=>t in a,B=(a,t)=>(delete a[t],a),G=(a,t)=>g(U(a),([a,e])=>t(e,a)),Y=(a,t)=>I(U(a),([a,e])=>t(e,a)),j=(a,t)=>M(Y(a,(a,e)=>[e,t(a,e)])),z=a=>P.values(a),k=a=>m(X(a)),q=a=>x(a)&&0==k(a),H=(a,t,e)=>(V(a,t)||(a[t]=e()),a[t]),K=JSON.stringify,Q=JSON.parse,W=a=>""===a?void 0:O(a)?I(a,W):x(a)?j(a,W):a,Z=(a,t)=>a?.has(t)??!1,aa=a=>w(a)||0==(a=>a?.size??0)(a),ta=a=>[...a?.values()??[]],ea=(a,t)=>a?.forEach(t),na=(a,t)=>a?.delete(t),sa=Map,ia=a=>new sa(a),la=(a,t)=>a?.get(t),ra=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),oa=(a,t,e)=>w(e)?(na(a,t),a):a?.set(t,e),ca=(a,t,e,n)=>(Z(a,t)?n?.(la(a,t)):oa(a,t,e()),la(a,t)),da=(a,t,e,n,s=0)=>_((e?ca:la)(a,t[s],s>m(t)-2?e:ia),i=>{if(s>m(t)-2)return n?.(i)&&oa(a,t[s]),i;const l=da(i,t,e,n,s+1);return aa(i)&&oa(a,t[s]),l}),ua=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},ya=/^\d+$/,Ea=a=>new Set(O(a)||w(a)?a:[a]),wa=(a,t)=>a?.add(t),Na=ia(),Ta=ia(),_a=(a,t,n,s,i,l,r,o={},c=0,d=[])=>{let u,y,E,T=0,p=0,S=0;ca(Na,d,()=>0),ca(Ta,d,()=>[]);const A=ia(),[v,f,I,h,$]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!q(a)||!q(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!q(a)||!q(t),t.setContent]:L("Store type not supported by this Persister"))(r,a,c),[P,D,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?C(a):null)??e+t++,t=>{ya.test(t)&&m(a)<1e3&&b(a,t)}]})(),s=ia();return[(n,i,l,r=[],o=()=>[])=>{a??=K;const c=t(1);return oa(s,c,[n,i,l,r,o]),wa(da(i,l??[e],Ea),c),c},(t,n,...i)=>g(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?b(n,a):N(t[e])?ea(a,a=>s(a,e+1)):g([t[e],null],t=>s(la(a,t),e+1));return s(a,0),n})(t,n),t=>ea(t,t=>la(s,t)[0](a,...n??[],...i))),a=>_(la(s,a),([,t,i])=>(da(t,i??[e],void 0,t=>(na(t,a),aa(t)?1:0)),oa(s,a),n(a),i)),t=>_(la(s,t),([t,,e=[],n,s])=>{const i=(...l)=>{const r=m(l);r==m(e)?t(a,...l,...s(l)):N(e[r])?g(n[r]?.(...l)??[],a=>i(...l,a)):i(...l,e[r])};i()})]})(),x=a=>{a!=T&&(T=a,D(A,void 0,T))},X=t=>{(v&&O(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},M=async()=>{z()&&a.__?.[0]?.()&&await G()},F=async a=>(2!=T&&(x(1),p++,await H(async()=>{await R(async()=>{const e=await t();O(e)?X(e):a?$(a):L("Content is not an array: "+e)},()=>{a&&$(a)}),x(0),await M()})),K),V=async a=>(B(),await F(a),await R(async()=>y=await s(async(a,t)=>{t||a?2!=T&&(x(1),p++,X(t??a),x(0),await M()):await F()}),l),K),B=async()=>(y&&(await R(()=>i(y),l),y=void 0),K),G=async a=>(1!=T&&(x(2),S++,await H(async()=>{await R(()=>n(f,a),l),x(0)})),K),Y=async()=>(j(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=I();h(a)&&G(a)}),K),j=async()=>(E&&(a.delListener(E),E=void 0),K),z=()=>!w(E),k=async(a=!1)=>{const[t,e]=a?[j,B]:[B,j];return await t(),await e(),K},H=async(...a)=>(b(la(Ta,d),...a),await(async()=>{if(!la(Na,d)){for(oa(Na,d,1);!w(u=C(la(Ta,d)));)await R(u,l);oa(Na,d,0)}})(),K),K={load:F,startAutoLoad:V,stopAutoLoad:B,isAutoLoading:()=>!w(y),save:G,startAutoSave:Y,stopAutoSave:j,isAutoSaving:z,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[Y,V]:[V,Y];return await e(a),await n(a),K},stopAutoPersisting:k,getStatus:()=>T,addStatusListener:a=>P(a,A),delListener:t=>(U(t),a),schedule:H,getStore:()=>a,destroy:()=>(la(Ta,d).splice(0,void 0),k()),getStats:()=>({loads:p,saves:S}),...o};return J(K)},pa="_",Oa="_id",Sa="SELECT",ma="WHERE",Aa="TABLE",va="ALTER "+Aa,La="FROM",Ra="DELETE "+La,ga=Sa+"*"+La,fa="pragma_",Ia="data_version",ha="schema_version",$a="pragma_table_",ba="CREATE "+Aa,Ca=a=>f(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Pa=(a,t=[1])=>f(I(a,()=>"$"+t[0]++),n),Da=(a,t=i)=>ma+`(${r(t,"$tableName",Ca(a))})`,Ua="ColumnName",xa="store",Xa="json",Ja=xa+"TableName",Ma=xa+"Id"+Ua,Fa=xa+Ua,Va="autoLoadIntervalSeconds",Ba="rowId"+Ua,Ga="tableId",Ya="tableName",ja="deleteEmptyColumns",za="deleteEmptyTable",ka="condition",qa={mode:Xa,[Va]:1},Ha={load:0,save:0,[Ya]:t+"_values"},Ka=(a,t,e,n,s)=>{const i=ia();return j(a,(a,l)=>{const r=S(z(F(t,p(a)?{[e]:a}:a)),0,k(t));N(r[0])||n(l,r[0])||(s(l,r[0]),oa(i,l,r))}),i},Qa=(a,t,e,s,l,r=Wa,o,c)=>{const d=ia();return[async()=>{d.clear(),I(await e(a,t),({tn:a,cn:t})=>wa(ca(d,a,Ea),t))},async(t,e,n)=>((a,t)=>Z(la(d,a),t))(t,e)?M($(I(await a(ga+Ca(t)+Da(t,n)),a=>[a[e],c?j(B(a,e),c):B(a,e)]),a=>!w(a[0])&&!q(a[1]))):{},async(t,e,s,c,u,y=!1,E=i)=>{const N=Ea();j(s??{},a=>I(X(a??{}),a=>wa(N,a)));const T=ta(N);if(!y&&u&&E==i&&h(T)&&Z(d,t))return await a("DROP "+Aa+Ca(t)),void oa(d,t);const _=la(d,t),p=Ea(ta(_));if(h(T)||(Z(d,t)?await v(I([e,...T],async(n,s)=>{na(p,n)||(await a(va+Ca(t)+"ADD"+Ca(n)+l),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ca(t)+`(${Ca(e)})`),wa(_,n))})):(await a(ba+Ca(t)+`(${Ca(e)}${l} PRIMARY KEY${f(I(T,a=>n+Ca(a)+l))});`),oa(d,t,Ea([e,...T])))),await v([...!y&&c?I(ta(p),async n=>{n!=e&&(await a(va+Ca(t)+"DROP"+Ca(n)),na(_,n))}):[]]),y)w(s)?await a(Ra+Ca(t)+Da(t,E)):await v(Y(s,async(n,s)=>{w(n)?await a(Ra+Ca(t)+Da(t,E)+`AND(${Ca(e)}=$1)`,[s]):h(T)||await r(a,t,e,X(n),{[s]:o?I(z(n),o):z(n)},_)}));else if(h(T))Z(d,t)&&await a(Ra+Ca(t)+Da(t,E));else{const n=$(ta(la(d,t)),a=>a!=e),i={},l=[];j(s??{},(a,t)=>{i[t]=I(n,t=>o?o(a?.[t]):a?.[t]),b(l,t)}),await r(a,t,e,n,i),await a(Ra+Ca(t)+Da(t,E)+`AND${Ca(e)}NOT IN(${Pa(l)})`,l)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},Wa=async(a,t,e,s,i)=>{const l=[1];await a("INSERT INTO"+Ca(t)+"("+((...a)=>f(I(a,Ca),n))(e,...s)+")VALUES"+f(Y(i,a=>"($"+l[0]+++","+Pa(a,l)+")"),n)+"ON CONFLICT("+Ca(e)+")DO UPDATE SET"+f(I(s,a=>Ca(a)+"=excluded."+Ca(a)),n),Y(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Za=(a,t,e,n,s,i,l,[r,o,c],d,u,y,E,N,T)=>{const[_,p,O,S]=Qa(t,d,u,s,N,T),m=_a(a,()=>S(async()=>{return await _(),a=(await p(r,o))[pa]?.[c]??"null",W(Q(a));var a}),a=>S(async()=>{var t;await _(),await O(r,o,{[pa]:{[c]:(t=a()??null,K(t,(a,t)=>w(t)?"":t))}},!0,!0)}),e,n,s,l,{[E]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},at=(a,t,e,n,s,i,l,[r,o,[c,d,u]],y,E,N,T,_,p,O,S)=>{const[m,A,L,R]=Qa(t,y,E,s,_,p,O,S),g=(a,t)=>v(ra(o,async([e,n,s,i,l],r)=>{t&&!V(a,r)||await L(e,n,a[r],s,i,t,l)})),f=async(a,t)=>d?await L(u,Oa,{[pa]:a},!0,!0,t):null,I=_a(a,()=>R(async()=>{await m();const a=await(async()=>M($(await v(ra(r,async([a,t,e],n)=>[a,await A(n,t,e)])),a=>!q(a[1]))))(),t=await(async()=>c?(await A(u,Oa))[pa]:{})();return q(a)&&w(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await m(),w(t)){const[t,e]=a();await g(t),await f(e)}else await g(t[0],!0),await f(t[1],!0)}),e,n,s,l,{[T]:()=>N,destroy:async()=>(await I.stopAutoPersisting(),i(),I)},0,N);return I},tt=(a,n,s,l,r,o,c,d,u,w,N="getDb",T)=>{let _,O,m;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,o),[v,L,g,f]=(a=>{const e=(a=>F(qa,p(a)?{[Ja]:a}:a??{}))(a),n=e[Va];if(e.mode==Xa){const a=e[Ja]??t;return[1,n,[a,e[Ma]??Oa,e[Fa]??xa],Ea(a)]}const{tables:{load:s={},save:l={}}={},values:r={}}=e,o=S(z(F(Ha,r)),0,k(Ha)),c=o[2],d=Ea(c),u=Ea(c),y=Ka(s,{[Ga]:null,[Ba]:Oa,[ka]:i},Ga,a=>Z(u,a),a=>wa(d,a)),E=Ka(l,{[Ya]:null,[Ba]:Oa,[ja]:0,[za]:0,[ka]:null},Ya,(a,t)=>Z(u,t),(a,t)=>wa(d,t));var w;return w=(a,t)=>t[4]??=la(y,t[0])?.[2]??i,ea(E,(a,t)=>w(0,a)),[0,n,[y,E,o],d]})(n);return(v?Za:at)(a,A,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await A(Sa+` ${Ia} d,${ha} s,TOTAL_CHANGES() c FROM ${fa}${Ia} JOIN ${fa}${ha}`);t==_&&e==O&&n==m||(E(_)||a(),_=t,O=e,m=n)}),1e3*L),n=()=>{_=O=m=null,y(t)},s=l(t=>{f.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),c,d,u,g,ta(f),async(a,t)=>await a(Sa+` t.name tn,c.name cn FROM ${$a}list()t,${$a}info(t.name)c ${ma} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Pa(t)})ORDER BY t.name,c.name`,t),w,N,e,T,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},et=(a,t,n,s,i)=>"object"==typeof n&&"fragmented"===n.mode?st(a,t,n?.storagePrefix??e,i):tt(a,n,async(a,e=[])=>["BEGIN","END"].includes(a)?[]:(a=a.replace(/\$\d+/g,"?"),t.exec(a,...e).toArray()),()=>A,a=>a(),s,i,A,2,t,"getSqlStorage"),nt=()=>[{},e,0],st=(a,t,e="",n)=>{const s=e.replace(/[^a-zA-Z0-9_]/g,"_"),i=s+"tinybase_tables",r=s+"tinybase_values";return t.exec(`\n CREATE TABLE IF NOT EXISTS ${i} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `),_a(a,async()=>{const a=nt(),e=nt(),n=t.exec("SELECT * FROM "+i);for(const t of n.toArray()){const e=u(t.type),n=t.table_id?u(t.table_id):null,s=t.row_id?u(t.row_id):null,i=t.cell_id?u(t.cell_id):null,r=u(t.value_data),o=u(t.timestamp),c=d(t.hash),[y]=JSON.parse(r);if(e===l)if(n&&s&&i){const t=H(a[0],n,nt);H(t[0],s,nt)[0][i]=[y,o,c]}else if(n&&s){const t=H(a[0],n,nt),e=H(t[0],s,nt);ua(e,o,c)}else if(n){const t=H(a[0],n,nt);ua(t,o,c)}else ua(a,o,c)}const s=t.exec("SELECT * FROM "+r);for(const a of s.toArray()){const t=a.value_id?u(a.value_id):null,n=u(a.value_data),s=u(a.timestamp),i=d(a.hash),[l]=JSON.parse(n);t?e[0][t]=[l,s,i]:ua(e,s,i)}return[a,e]},async(a,[[e,n,s],[o,c,d]]=a())=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,null,null,null,JSON.stringify([0]),n,s),G(e,([a,e,n],s)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,null,null,JSON.stringify([0]),e,n),G(a,([a,e,n],r)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,null,JSON.stringify([0]),e,n),G(a,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,e,JSON.stringify([a[0]]),a[1],a[2])})})}),t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,null,JSON.stringify([0]),c,d),G(o,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,e,JSON.stringify([a[0]]),a[1],a[2])})},A,A,n,2,{getSqlStorage:()=>t})};export{et as createDurableObjectSqlStoragePersister};
|
|
Binary file
|