UNPKG

tinybase

Version:

A reactive data store and sync engine.

2 lines (1 loc) 17.8 kB
const e=e=>typeof e,t="",s=e(t),a=e(!0),l=e(0),n=e(e),r="type",o="default",c="Listener",i="Has",d="Ids",u="Table",g=u+"s",h=u+d,b="Row",C=b+"Count",f=b+d,T="Cell",v=T+d,V="Value",w=V+"s",p=V+d,I=e=>t+e,y=(e,t)=>e.startsWith(t),R=(e,t)=>e.endsWith(t),M=(e,s=t,a)=>e.split(s,a),S=globalThis,m=Math,L=m.max,H=m.floor,E=isFinite,J=e=>null==e,D=(e,t,s)=>J(e)?s?.():t(e),F=e=>e==s||e==a,O=t=>e(t)==n,x=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),A=e=>e.length,P=t=>{const s=e(t);return F(s)||s==l&&E(t)?s:void 0},W=e=>J(e)||!J(P(e)),k=(e,t,s,a,l)=>J(l)?e.delCell(t,s,a,!0):e.setCell(t,s,a,l),N=(e,t,s)=>J(s)?e.delValue(t):e.setValue(t,s),j=(e,t)=>e.forEach(t),U=(e,t)=>e.map(t),_=(e,t,s)=>e.reduce(t,s),q=(e,...t)=>e.push(...t),B=e=>t=>_($(t),((t,s)=>t+e(s)),0),G=e=>e?.size??0,K=B(G),Q=B(K),X=B(Q),Y=(e,t)=>e?.has(t)??!1,Z=e=>J(e)||0==G(e),$=e=>[...e?.values()??[]],ee=e=>e.clear(),te=(e,t)=>e?.forEach(t),se=(e,t)=>e?.delete(t),ae=new S.TextEncoder,le=e=>{let t=2166136261;return j(ae.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},ne=Object,re=e=>ne.getPrototypeOf(e),oe=ne.entries,ce=ne.isFrozen,ie=e=>!J(e)&&D(re(e),(e=>e==ne.prototype||J(re(e))),(()=>!0)),de=ne.keys,ue=ne.freeze,ge=(e=[])=>ne.fromEntries(e),he=(e,t)=>t in e,be=(e,t)=>(delete e[t],e),Ce=(e,t)=>j(oe(e),(([e,s])=>t(s,e))),fe=(e,t)=>ge(((e,t)=>U(oe(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),Te=e=>ie(e)&&0==(e=>A(de(e)))(e),ve=(e,t,s)=>(he(e,t)||(e[t]=s()),e[t]),Ve=(e,t,s,a=0)=>J(e)||!ie(e)||!a&&Te(e)||ce(e)?(s?.(),!1):(Ce(e,((s,a)=>{t(s,a)||be(e,a)})),!!a||!Te(e)),we=e=>new Map(e),pe=e=>[...e?.keys()??[]],Ie=(e,t)=>e?.get(t),ye=(e,t)=>te(e,((e,s)=>t(s,e))),Re=(e,t,s)=>J(s)?(se(e,t),e):e?.set(t,s),Me=(e,t,s,a)=>(Y(e,t)?a?.(Ie(e,t)):Re(e,t,s()),Ie(e,t)),Se=(e,t,s,a=Re)=>(fe(t,((t,a)=>s(e,a,t))),ye(e,(s=>he(t,s)?0:a(e,s))),e),me=(e,t,s,a)=>{const l={};return te(e,((e,n)=>{if(!s?.(e,n)){const s=t?t(e,n):e;a?.(s)||(l[n]=s)}})),l},Le=(e,t,s)=>me(e,(e=>me(e,t,s)),Z,Te),He=(e,t,s)=>me(e,(e=>Le(e,t,s)),Z,Te),Ee=(e,t)=>{const s=we();return te(e,((e,a)=>s.set(a,t?.(e)??e))),s},Je=e=>Ee(e,Ee),De=e=>Ee(e,Je),Fe=(e,t,s,a,l=0)=>D((s?Me:Ie)(e,t[l],l>A(t)-2?s:we),(n=>{if(l>A(t)-2)return a?.(n)&&Re(e,t[l]),n;const r=Fe(n,t,s,a,l+1);return Z(n)&&Re(e,t[l]),r})),Oe=M("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),xe=we(U(Oe,((e,t)=>[e,t]))),ze=e=>Oe[63&e],Ae=(e,t)=>Ie(xe,e[t])??0,Pe=S.crypto?e=>S.crypto.getRandomValues(e):e=>U(e,(()=>H(256*m.random()))),We=2**36,ke=2**30,Ne=2**24,je=2**18,Ue=4096,_e=JSON.stringify,qe=JSON.parse,Be=e=>_e(e,((e,t)=>t instanceof Map?ne.fromEntries([...t]):t)),Ge=e=>new Set(x(e)||J(e)?e:[e]),Ke=(e,t)=>e?.add(t),Qe=([e,t])=>Ye(e,t),Xe=([e,t,s])=>[e,t,s],Ye=(e,t)=>t?[e,t]:[e],Ze=(e,t,s)=>[e,t,s],$e=e=>e[2],et=(e,t)=>le(e+":"+t),tt=(e,t)=>t>e?(e?le(e):0)^le(t):0,st=(e,t)=>((e??"")>(t??"")?e:t)??"",at=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},lt=(e=t)=>Ye(ge(),e),nt=(e=t)=>[we(),e,0],rt=([e,t,s],a=Xe)=>[me(e,a),t,s],ot=([e,t],s=Qe)=>Ye(me(e,s),t),ct=(t,a)=>{return x(t)&&3==A(t)&&(n=t[1],e(n)==s)&&e(t[2])==l&&E(t[2])&&a(t[0]);var n},it=/^\d+$/,dt=()=>{const e=[];let s=0;return[a=>(a?e.shift():null)??t+s++,t=>{it.test(t)&&A(e)<1e3&&q(e,t)}]},ut=e=>[e,e],gt=(e,t=K)=>t(e[0])+t(e[1]),ht=()=>[we(),we()],bt=e=>[...e],Ct=([e,t])=>e===t,ft=(e,t,s)=>Re(e,t,Ie(e,t)==-s?void 0:s),Tt=()=>{let e,s,a=!1,n=!1,d=0,y=[];const R=we(),M=we(),S=we(),m=we(),L=we(),H=we(),E=we(),W=we(),_=we(),B=we(),$=we(),ae=we(),le=we(),ne=we(),re=Ge(),oe=we(),ce=we(),ie=we(),de=we(),ge=ht(),Ce=ht(),ve=ht(),Oe=ht(),xe=ht(),ze=ht(),Ae=ht(),Pe=ht(),We=ht(),ke=ht(),Ne=ht(),je=ht(),Ue=ht(),_e=ht(),Qe=ht(),Xe=ht(),Ye=ht(),Ze=ht(),$e=ht(),et=ht(),tt=ht(),st=ht(),at=we(),lt=ht(),[nt,rt,ot,ct]=(()=>{let e;const[s,a]=dt(),l=we();return[(a,n,r,o=[],c=()=>[])=>{e??=zs;const i=s(1);return Re(l,i,[a,n,r,o,c]),Ke(Fe(n,r??[t],Ge),i),i},(s,a,...n)=>j(((e,s=[t])=>{const a=[],l=(e,t)=>t==A(s)?q(a,e):null===s[t]?te(e,(e=>l(e,t+1))):j([s[t],null],(s=>l(Ie(e,s),t+1)));return l(e,0),a})(s,a),(t=>te(t,(t=>Ie(l,t)[0](e,...a??[],...n))))),e=>D(Ie(l,e),(([,s,n])=>(Fe(s,n??[t],void 0,(t=>(se(t,e),Z(t)?1:0))),Re(l,e),a(e),n))),t=>D(Ie(l,t),(([t,,s=[],a,l])=>{const n=(...r)=>{const o=A(r);o==A(s)?t(e,...r,...l(r)):J(s[o])?j(a[o]?.(...r)??[],(e=>n(...r,e))):n(...r,s[o])};n()}))]})(),it=e=>{if(!Ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=l||(P(e[o])!=t&&be(e,o),0))},vt=x,Vt=(t,s)=>(!e||Y($,s)||Kt(s))&&Ve(t,((e,t)=>wt(s,t,e)),(()=>Kt(s))),wt=(e,t,s,a)=>Ve(a?s:Rt(s,e,t),((a,l)=>D(pt(e,t,l,a),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Kt(e,t))),pt=(t,s,a,l)=>e?D(Ie(Ie($,t),a),(e=>P(l)!=e[r]?Kt(t,s,a,l,e[o]):l),(()=>Kt(t,s,a,l))):J(P(l))?Kt(t,s,a,l):l,It=(e,t)=>Ve(t?e:Mt(e),((t,s)=>D(yt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Qt())),yt=(e,t)=>s?D(Ie(le,e),(s=>P(t)!=s[r]?Qt(e,t,s[o]):t),(()=>Qt(e,t))):J(P(t))?Qt(e,t):t,Rt=(e,t,s)=>(D(Ie(ae,t),(([a,l])=>{te(a,((t,s)=>{he(e,s)||(e[s]=t)})),te(l,(a=>{he(e,a)||Kt(t,s,a)}))})),e),Mt=e=>(s&&(te(ne,((t,s)=>{he(e,s)||(e[s]=t)})),te(re,(t=>{he(e,t)||Qt(t)}))),e),St=e=>Se($,e,((e,t,s)=>{const a=we(),l=Ge();Se(Me($,t,we),s,((e,t,s)=>{Re(e,t,s),D(s[o],(e=>Re(a,t,e)),(()=>Ke(l,t)))})),Re(ae,t,[a,l])}),((e,t)=>{Re($,t),Re(ae,t)})),mt=e=>Se(le,e,((e,t,s)=>{Re(le,t,s),D(s[o],(e=>Re(ne,t,e)),(()=>Ke(re,t)))}),((e,t)=>{Re(le,t),Re(ne,t),se(re,t)})),Lt=e=>Te(e)?ms():Is(e),Ht=e=>Se(ie,e,((e,t,s)=>Et(t,s)),((e,t)=>Pt(t))),Et=(e,t)=>Se(Me(ie,e,(()=>(jt(e,1),Re(oe,e,dt()),Re(ce,e,we()),we()))),t,((t,s,a)=>Jt(e,t,s,a)),((t,s)=>Wt(e,t,s))),Jt=(e,t,s,a,l)=>Se(Me(t,s,(()=>(Ut(e,s,1),we()))),a,((t,a,l)=>Dt(e,s,t,a,l)),((a,n)=>kt(e,t,s,a,n,l))),Dt=(e,t,s,a,l)=>{Y(s,a)||_t(e,t,a,1);const n=Ie(s,a);l!==n&&(qt(e,t,a,n,l),Re(s,a,l))},Ft=(e,t,s,a,l)=>D(Ie(t,s),(t=>Dt(e,s,t,a,l)),(()=>Jt(e,t,s,Rt({[a]:l},e,s)))),Ot=e=>Te(e)?Es():ys(e),xt=e=>Se(de,e,((e,t,s)=>zt(t,s)),((e,t)=>Nt(t))),zt=(e,t)=>{Y(de,e)||Bt(e,1);const s=Ie(de,e);t!==s&&(Gt(e,s,t),Re(de,e,t))},At=e=>Ie(ie,e)??Et(e,{}),Pt=e=>Et(e,{}),Wt=(e,t,s)=>{const[,a]=Ie(oe,e);a(s),Jt(e,t,s,{},!0)},kt=(e,t,s,a,l,n)=>{const r=Ie(Ie(ae,e)?.[0],l);if(!J(r)&&!n)return Dt(e,s,a,l,r);const o=t=>{qt(e,s,t,Ie(a,t)),_t(e,s,t,-1),Re(a,t)};J(r)?o(l):ye(a,o),Z(a)&&(Ut(e,s,-1),Z(Re(t,s))&&(jt(e,-1),Re(ie,e),Re(oe,e),Re(ce,e)))},Nt=e=>{const t=Ie(ne,e);if(!J(t))return zt(e,t);Gt(e,Ie(de,e)),Bt(e,-1),Re(de,e)},jt=(e,t)=>ft(R,e,t),Ut=(e,t,s)=>ft(Me(m,e,we),t,s)&&Re(S,e,Me(S,e,(()=>0))+s),_t=(e,t,s,a)=>{const l=Ie(ce,e),n=Ie(l,s)??0;(0==n&&1==a||1==n&&-1==a)&&ft(Me(M,e,we),s,a),Re(l,s,n!=-a?n+a:null),ft(Me(Me(L,e,we),t,we),s,a)},qt=(e,t,s,a,l)=>{Me(Me(Me(H,e,we),t,we),s,(()=>[a,0]))[1]=l,y[3]?.(e,t,s,l)},Bt=(e,t)=>ft(E,e,t),Gt=(e,t,s)=>{Me(W,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Kt=(e,t,s,a,l)=>(q(Me(Me(Me(_,e,we),t,we),s,(()=>[])),a),l),Qt=(e,t,s)=>(q(Me(B,e,(()=>[])),t),s),Xt=(e,t,s)=>D(Ie(Ie(Ie(H,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(us(e,t,s))])),Yt=e=>D(Ie(W,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(bs(e))])),Zt=e=>Z(_)||Z(Xe[e])?0:te(e?De(_):_,((t,s)=>te(t,((t,a)=>te(t,((t,l)=>rt(Xe[e],[s,a,l],t))))))),$t=e=>Z(B)||Z(Ye[e])?0:te(e?Ee(B):B,((t,s)=>rt(Ye[e],[s],t))),es=(e,t,s,a)=>{if(!Z(e))return rt(t,a,(()=>me(e))),ye(e,((e,t)=>rt(s,[...a??[],e],1==t))),1},ts=e=>{const t=Cs();t!=a&&rt(ge[e],void 0,t);const s=Z(ke[e]),l=Z(Ue[e])&&Z(_e[e])&&Z(We[e])&&Z(Ne[e])&&Z(ze[e])&&Z(Ae[e])&&Z(Pe[e])&&s&&Z(ve[e])&&Z(Oe[e]),n=Z(Qe[e])&&Z(je[e])&&Z(xe[e])&&Z(Ce[e]);if(!l||!n){const t=e?[Ee(R),Je(M),Ee(S),Je(m),De(L),De(H)]:[R,M,S,m,L,H];if(!l){es(t[0],ve[e],Oe[e]),te(t[1],((t,s)=>es(t,ze[e],Ae[e],[s]))),te(t[2],((t,s)=>{0!=t&&rt(Pe[e],[s],os(s))}));const a=Ge();te(t[3],((t,l)=>{es(t,We[e],Ne[e],[l])&&!s&&(rt(ke[e],[l,null]),Ke(a,l))})),s||te(t[5],((t,s)=>{if(!Y(a,s)){const a=Ge();te(t,(e=>te(e,(([t,s],l)=>s!==t?Ke(a,l):se(e,l))))),te(a,(t=>rt(ke[e],[s,t])))}})),te(t[4],((t,s)=>te(t,((t,a)=>es(t,Ue[e],_e[e],[s,a])))))}if(!n){let s;te(t[5],((t,a)=>{let l;te(t,((t,n)=>{let r;te(t,(([t,o],c)=>{o!==t&&(rt(Qe[e],[a,n,c],o,t,Xt),s=l=r=1)})),r&&rt(je[e],[a,n],Xt)})),l&&rt(xe[e],[a],Xt)})),s&&rt(Ce[e],void 0,Xt)}}},ss=e=>{const t=ws();t!=n&&rt(Ze[e],void 0,t);const s=Z(et[e])&&Z(tt[e]),a=Z(st[e])&&Z($e[e]);if(!s||!a){const t=e?[Ee(E),Ee(W)]:[E,W];if(s||es(t[0],et[e],tt[e]),!a){let s;te(t[1],(([t,a],l)=>{a!==t&&(rt(st[e],[l],a,t,Yt),s=1)})),s&&rt($e[e],void 0,Yt)}}},as=(e,...t)=>(Fs((()=>e(...U(t,I)))),zs),ls=()=>He(ie),ns=()=>pe(ie),rs=e=>pe(Ie(ce,I(e))),os=e=>G(Ie(ie,I(e))),cs=e=>pe(Ie(ie,I(e))),is=(e,t,s,a=0,l)=>{return U(z((r=Ie(ie,I(e)),o=(e,s)=>[J(t)?s:Ie(e,I(t)),s],n=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),U([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(n)),a,J(l)?l:a+l),(([,e])=>e));var n,r,o},ds=(e,t)=>pe(Ie(Ie(ie,I(e)),I(t))),us=(e,t,s)=>Ie(Ie(Ie(ie,I(e)),I(t)),I(s)),gs=()=>me(de),hs=()=>pe(de),bs=e=>Ie(de,I(e)),Cs=()=>!Z(ie),fs=e=>Y(ie,I(e)),Ts=(e,t)=>Y(Ie(ce,I(e)),I(t)),vs=(e,t)=>Y(Ie(ie,I(e)),I(t)),Vs=(e,t,s)=>Y(Ie(Ie(ie,I(e)),I(t)),I(s)),ws=()=>!Z(de),ps=e=>Y(de,I(e)),Is=e=>as((()=>(e=>Ve(e,Vt,Kt))(e)?Ht(e):0)),ys=e=>as((()=>It(e)?xt(e):0)),Rs=e=>{try{Lt(qe(e))}catch{}return zs},Ms=t=>as((()=>{if((e=Ve(t,(e=>Ve(e,it))))&&(St(t),!Z(ie))){const e=ls();ms(),Is(e)}})),Ss=e=>as((()=>{if(s=(e=>Ve(e,it))(e)){const t=gs();Ds(),Es(),s=!0,mt(e),ys(t)}})),ms=()=>as((()=>Ht({}))),Ls=e=>as((e=>Y(ie,e)?Pt(e):0),e),Hs=(e,t)=>as(((e,t)=>D(Ie(ie,e),(s=>Y(s,t)?Wt(e,s,t):0))),e,t),Es=()=>as((()=>xt({}))),Js=()=>as((()=>{St({}),e=!1})),Ds=()=>as((()=>{mt({}),s=!1})),Fs=(e,t)=>{if(-1!=d){Os();const s=e();return xs(t),s}},Os=()=>(-1!=d&&d++,1==d&&(y[0]?.(),rt(at)),zs),xs=e=>(d>0&&(d--,0==d&&(d=1,Zt(1),Z(H)||ts(1),$t(1),Z(W)||ss(1),e?.(zs)&&(te(H,((e,t)=>te(e,((e,s)=>te(e,(([e],a)=>k(zs,t,s,a,e))))))),ee(H),te(W,(([e],t)=>N(zs,t,e))),ee(W)),rt(lt[0],void 0),d=-1,Zt(0),Z(H)||ts(0),$t(0),Z(W)||ss(0),y[1]?.(),rt(lt[1],void 0),y[2]?.(),d=0,a=Cs(),n=ws(),j([R,M,S,m,L,H,_,E,W,B],ee))),zs),zs={getContent:()=>[ls(),gs()],getTables:ls,getTableIds:ns,getTable:e=>Le(Ie(ie,I(e))),getTableCellIds:rs,getRowCount:os,getRowIds:cs,getSortedRowIds:is,getRow:(e,t)=>me(Ie(Ie(ie,I(e)),I(t))),getCellIds:ds,getCell:us,getValues:gs,getValueIds:hs,getValue:bs,hasTables:Cs,hasTable:fs,hasTableCell:Ts,hasRow:vs,hasCell:Vs,hasValues:ws,hasValue:ps,getTablesJson:()=>Be(ie),getValuesJson:()=>Be(de),getJson:()=>Be([ie,de]),getTablesSchemaJson:()=>Be($),getValuesSchemaJson:()=>Be(le),getSchemaJson:()=>Be([$,le]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:e=>as((()=>{const t=O(e)?e():e;vt(t)&&(([e,t])=>{(Te(e)?ms:Is)(e),(Te(t)?Es:ys)(t)})(t)})),setTables:Is,setTable:(e,t)=>as((e=>Vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>as(((e,t)=>wt(e,t,s)?Jt(e,At(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Fs((()=>{let a;return wt(e,a,t)&&(e=I(e),Jt(e,At(e),a=((e,t)=>{const[s]=Ie(oe,e);let a;do{a=s(t)}while(Y(Ie(ie,e),a));return a})(e,s?1:0),t)),a})),setPartialRow:(e,t,s)=>as(((e,t)=>{if(wt(e,t,s,1)){const a=At(e);fe(s,((s,l)=>Ft(e,a,t,l,s)))}}),e,t),setCell:(e,t,s,a)=>as(((e,t,s)=>D(pt(e,t,s,O(a)?a(us(e,t,s)):a),(a=>Ft(e,At(e),t,s,a)))),e,t,s),setValues:ys,setPartialValues:e=>as((()=>It(e,1)?fe(e,((e,t)=>zt(t,e))):0)),setValue:(e,t)=>as((e=>D(yt(e,O(t)?t(bs(e)):t),(t=>zt(e,t)))),e),applyChanges:e=>as((()=>{fe(e[0],((e,t)=>J(e)?Ls(t):fe(e,((e,s)=>J(e)?Hs(t,s):fe(e,((e,a)=>k(zs,t,s,a,e))))))),fe(e[1],((e,t)=>N(zs,t,e)))})),setTablesJson:Rs,setValuesJson:e=>{try{Ot(qe(e))}catch{}return zs},setJson:e=>as((()=>{try{const[t,s]=qe(e);Lt(t),Ot(s)}catch{Rs(e)}})),setTablesSchema:Ms,setValuesSchema:Ss,setSchema:(e,t)=>as((()=>{Ms(e),Ss(t)})),delTables:ms,delTable:Ls,delRow:Hs,delCell:(e,t,s,a)=>as(((e,t,s)=>D(Ie(ie,e),(l=>D(Ie(l,t),(n=>Y(n,s)?kt(e,l,t,n,s,a):0))))),e,t,s),delValues:Es,delValue:e=>as((e=>Y(de,e)?Nt(e):0),e),delTablesSchema:Js,delValuesSchema:Ds,delSchema:()=>as((()=>{Js(),Ds()})),transaction:Fs,startTransaction:Os,getTransactionChanges:()=>[me(H,((e,t)=>-1===Ie(R,t)?void 0:me(e,((e,s)=>-1===Ie(Ie(m,t),s)?void 0:me(e,(([,e])=>e),(e=>Ct(e)))),Z,Te)),Z,Te),me(W,(([,e])=>e),(e=>Ct(e))),1],getTransactionLog:()=>[!Z(H),!Z(W),He(H,bt,Ct),He(_),me(W,bt,Ct),me(B),me(R),Le(m),He(L),me(E)],finishTransaction:xs,forEachTable:e=>te(ie,((t,s)=>e(s,(e=>te(t,((t,s)=>e(s,(e=>ye(t,e))))))))),forEachTableCell:(e,t)=>ye(Ie(ce,I(e)),t),forEachRow:(e,t)=>te(Ie(ie,I(e)),((e,s)=>t(s,(t=>ye(e,t))))),forEachCell:(e,t,s)=>ye(Ie(Ie(ie,I(e)),I(t)),s),forEachValue:e=>ye(de,e),addSortedRowIdsListener:(e,t,s,a,l,n,r)=>{let o=is(e,t,s,a,l);return nt((()=>{const r=is(e,t,s,a,l);var c,i,d;i=o,A(c=r)===A(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,n(zs,e,t,s,a,l,o))}),ke[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,at),addWillFinishTransactionListener:e=>nt(e,lt[0]),addDidFinishTransactionListener:e=>nt(e,lt[1]),callListener:e=>(ct(e),zs),delListener:e=>(ot(e),zs),getListenerStats:()=>({hasTables:gt(ge),tables:gt(Ce),tableIds:gt(ve),hasTable:gt(Oe),table:gt(xe),tableCellIds:gt(ze),hasTableCell:gt(Ae,Q),rowCount:gt(Pe),rowIds:gt(We),sortedRowIds:gt(ke),hasRow:gt(Ne,Q),row:gt(je,Q),cellIds:gt(Ue,Q),hasCell:gt(_e,X),cell:gt(Qe,X),invalidCell:gt(Xe,X),hasValues:gt(Ze),values:gt($e),valueIds:gt(et),hasValue:gt(tt),value:gt(st),invalidValue:gt(Ye),transaction:K(at)+gt(lt)}),isMergeable:()=>!1,createStore:Tt,addListener:nt,callListeners:rt,setInternalListeners:(e,t,s,a,l)=>y=[e,t,s,a,l]};return fe({[i+g]:[0,ge,[],()=>[Cs()]],[g]:[0,Ce],[h]:[0,ve],[i+u]:[1,Oe,[ns],e=>[fs(...e)]],[u]:[1,xe,[ns]],[u+v]:[1,ze,[ns]],[i+u+T]:[2,Ae,[ns,rs],e=>[Ts(...e)]],[C]:[1,Pe,[ns]],[f]:[1,We,[ns]],[i+b]:[2,Ne,[ns,cs],e=>[vs(...e)]],[b]:[2,je,[ns,cs]],[v]:[2,Ue,[ns,cs]],[i+T]:[3,_e,[ns,cs,ds],e=>[Vs(...e)]],[T]:[3,Qe,[ns,cs,ds],e=>ut(us(...e))],InvalidCell:[3,Xe],[i+w]:[0,Ze,[],()=>[ws()]],[w]:[0,$e],[p]:[0,et],[i+V]:[1,tt,[hs],e=>[ps(...e)]],[V]:[1,st,[hs],e=>ut(bs(e[0]))],InvalidValue:[1,Ye]},(([e,t,s,a],l)=>{zs["add"+l+c]=(...l)=>nt(l[e],t[l[e+1]?1:0],e>0?z(l,0,e):void 0,s,a)})),ue(zs)},vt={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},Vt=(e=t)=>[nt(e),nt(e)],wt=e=>{let s=1,a=Vt(),l=0;const n=we(),r=Ge(),[o,i]=(e=>{let t=0,s=-1;const a=D(e,(e=>{const t=le(e);return ze(t/Ne)+ze(t/je)+ze(t/Ue)+ze(t/64)+ze(t)}),(()=>((e=16)=>_(Pe(new Uint8Array(e)),((e,t)=>e+ze(t)),""))(5))),l=e=>{const a=t,[l,n]=J(e)||""==e?[0,0]:[Ae(r=e,0)*We+Ae(r,1)*ke+Ae(r,2)*Ne+Ae(r,3)*je+Ae(r,4)*Ue+64*Ae(r,5)+Ae(r,6),Ae(r,7)*je+Ae(r,8)*Ue+64*Ae(r,9)+Ae(r,10)];var r;t=L(a,l,S.HLC_TIME??Date.now()),s=t==a?t==l?L(s,n):s:t==l?n:-1};return[()=>{return l(),n=++s,ze((e=t)/We)+ze(e/ke)+ze(e/Ne)+ze(e/je)+ze(e/Ue)+ze(e/64)+ze(e)+ze(n/je)+ze(n/Ue)+ze(n/64)+ze(n)+a;var e,n},l]})(e),d=Tt(),u=e=>{const t=s;return s=0,e(),s=t,f},g=(e,s=0)=>{const l={},n={},[[r,o=t,c=0],d]=e,[u,g]=a,[b,C,f]=u;let T=s?c:f,v=o;Ce(r,(([e,a=t,n=0],r)=>{const o=Me(b,r,nt),[c,i,d]=o;let u=s?n:d,g=a;Ce(e,((e,t)=>{const[a,n,o]=h(e,Me(c,t,nt),ve(ve(l,r,ge),t,ge),s);u^=s?0:(n?et(t,n):0)^et(t,o),g=st(g,a)})),u^=s?0:tt(i,a),at(o,a,u),T^=s?0:(d?et(r,d):0)^et(r,o[2]),v=st(v,g)})),T^=s?0:tt(C,o),at(u,o,T);const[V]=h(d,g,n,s);return i(st(v,V)),[l,n,1]},h=(e,s,a,l)=>{const[n,r=t,o=0]=e,[c,i,d]=s;let u=r,g=l?o:d;return Ce(n,(([e,s=t,n=0],r)=>{const o=Me(c,r,(()=>[void 0,t,0])),[,i,d]=o;(!i||s>i)&&(at(o,s,l?n:le(Be(e??null)+":"+s)),o[0]=e,a[r]=e,g^=l?0:et(r,d)^et(r,o[2]),u=st(u,s))})),g^=l?0:tt(i,r),at(s,r,g),[u,d,s[2]]},b=()=>[rt(a[0],(e=>rt(e,(e=>rt(e))))),rt(a[1])],C=e=>u((()=>d.applyChanges(g(e)))),f={getMergeableContent:b,getMergeableContentHashes:()=>[a[0][2],a[1][2]],getMergeableTableHashes:()=>me(a[0][0],$e),getMergeableTableDiff:e=>{const t=lt(a[0][1]),s={};return ye(a[0][0],((a,[l,n,r])=>he(e,a)?r!=e[a]?s[a]=r:0:t[0][a]=ot([l,n],(e=>ot(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(a[0][0],s),(([a,,l])=>l!=e?ye(a,((e,[,,a])=>ve(t,s,ge)[e]=a)):0)))),t},getMergeableRowDiff:e=>{const t=lt(a[0][1]),s={};return Ce(e,((e,l)=>ye(Ie(a[0][0],l)?.[0],((a,[n,r,o])=>he(e,a)?o!==e[a]?ve(s,l,ge)[a]=o:0:ve(t[0],l,lt)[0][a]=ot([n,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(a[0][0],s),(([a])=>Ce(e,((e,l)=>D(Ie(a,l),(([a,,n])=>n!==e?ye(a,((e,[,,a])=>ve(ve(t,s,ge),l,ge)[e]=a)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=a,l={};return Ce(e,((e,s)=>Ce(e,((e,a)=>D(Ie(t,s),(([t,n])=>D(Ie(t,a),(([t,r])=>ye(t,((t,[o,c,i])=>i!==e[t]?ve(ve(l,s,(()=>lt(n)))[0],a,(()=>lt(r)))[0][t]=[o,c]:0)))))))))),Ye(l,s)},getMergeableValueHashes:()=>me(a[1][0],$e),getMergeableValueDiff:e=>{const[,[t,s]]=a,l=me(t,Qe,(([,,t],s)=>t==e?.[s]));return Ye(l,s)},setMergeableContent:e=>u((()=>(e=>x(e)&&2==A(e)&&ct(e[0],(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,W)),void 0,1)))),void 0,1)))),void 0,1)))&&ct(e[1],(e=>Ve(e,(e=>ct(e,W)),void 0,1))))(e)?d.transaction((()=>{d.delTables().delValues(),a=Vt(),d.applyChanges(g(e,1))})):0)),setDefaultContent:e=>(d.transaction((()=>{l=1,d.setContent(e),l=0})),f),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,l],[o,c,i]]=a,d=e?Ze:Ye,u={};te(n,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const n={};te(e,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const r={};te(e,(e=>{D(Ie(t,e),(([t,s,a])=>r[e]=d(t,s,a)))})),n[s]=d(r,a,l)})))),u[s]=d(n,a,l)}))));const g={};return te(r,(e=>D(Ie(o,e),(([t,s,a])=>g[e]=d(t,s,a))))),[d(u,s,l),d(g,c,i),1]},applyMergeableChanges:C,merge:e=>{const t=b(),s=e.getMergeableContent();return e.applyMergeableChanges(t),C(s)}};return d.setInternalListeners((()=>{}),(()=>{}),(()=>{ee(n),ee(r)}),((e,a,r,c)=>{Ke(Me(Me(n,e,we),a,Ge),r),s&&g([[{[e]:[{[a]:[{[r]:[c,l?t:o()]}]}]}],[{}],1])}),((e,a)=>{Ke(r,e),s&&g([[{}],[{[e]:[a,l?t:o()]}],1])})),fe(d,((e,t)=>f[t]=y(t,"set")||y(t,"del")||y(t,"apply")||R(t,"Transaction")||t=="call"+c?(...t)=>(e(...t),f):y(t,"add")&&R(t,c)?(...s)=>{const a=vt[z(t,3,-8)]??0,l=s[a];return s[a]=(e,...t)=>l(f,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),ue(f)};export{wt as createMergeableStore};