UNPKG

tinybase

Version:

A reactive data store and sync engine.

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