tinybase 1.3.6 → 2.0.0-beta.2
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/lib/checkpoints.d.ts +4 -3
- package/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/debug/checkpoints.d.ts +4 -3
- package/lib/debug/checkpoints.js +69 -56
- package/lib/debug/indexes.d.ts +4 -2
- package/lib/debug/indexes.js +106 -69
- package/lib/debug/metrics.d.ts +1 -1
- package/lib/debug/metrics.js +187 -131
- package/lib/debug/persisters.d.ts +6 -0
- package/lib/debug/persisters.js +2 -1
- package/lib/debug/queries.d.ts +3251 -0
- package/lib/debug/queries.js +900 -0
- package/lib/debug/relationships.d.ts +12 -10
- package/lib/debug/relationships.js +104 -68
- package/lib/debug/store.d.ts +415 -74
- package/lib/debug/store.js +295 -120
- package/lib/debug/tinybase.d.ts +1 -0
- package/lib/debug/tinybase.js +985 -176
- package/lib/debug/ui-react.d.ts +4325 -1754
- package/lib/debug/ui-react.js +413 -85
- package/lib/indexes.d.ts +4 -2
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.d.ts +1 -1
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters.d.ts +6 -0
- package/lib/queries.d.ts +3251 -0
- package/lib/queries.js +1 -0
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.d.ts +12 -10
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.d.ts +415 -74
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.d.ts +1 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/ui-react.d.ts +4325 -1754
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/queries.js +1 -0
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/package.json +4 -4
- package/readme.md +2 -2
package/lib/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),
|
|
1
|
+
const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),l=(e,t)=>e.every(t),o=(e,t)=>i(e)===i(t)&&l(e,((e,n)=>t[n]===e)),a=(e,t)=>e.forEach(t),d=(e,t)=>e.map(t),i=e=>e.length,c=(e,t,n)=>e.reduce(t,n),u=(e,...t)=>e.push(...t),f=e=>JSON.stringify(e,((e,t)=>v(t,Map)?c([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),h=JSON.parse,T=isFinite,v=(e,t)=>e instanceof t,b=e=>null==e,g=(e,t,n)=>b(e)?n?.():t(e),w=e=>e==t||e==n,L=e=>e.size,p=(R=L,e=>c(y(e),((e,t)=>e+R(t)),0));var R;const C=(e,t)=>e?.has(t)??!1,S=e=>b(e)||0==L(e),y=e=>[...e?.values()??[]],I=e=>e.clear(),E=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),m=e=>new Map(e),F=e=>[...e?.keys()??[]],z=(e,t)=>e?.get(t),O=(e,t)=>E(e,((e,n)=>t(n,e))),k=(e,t,n)=>b(n)?(J(e,t),e):e?.set(t,n),M=(e,t,n)=>(C(e,t)||k(e,t,n()),z(e,t)),N=(e,t,n)=>{const s={},r=t??(e=>e);return E(e,((e,t)=>g(r(e),(e=>n?.(e)?0:s[t]=e)))),s},j=(e,t)=>{const n=m(),s=t??(e=>e);return E(e,((e,t)=>n.set(t,s(e)))),n},x=e=>j(e,j),D=(e,t,n,s,r=0)=>g((n?M:z)(e,t[r],r>i(t)-2?n:m),(l=>{if(r>i(t)-2)return s?.(l)&&k(e,t[r]),l;const o=D(l,t,n,s,r+1);return S(l)&&k(e,t[r]),o})),P=Object,W=P.keys,q=P.isFrozen,A=P.freeze,B=(e,t)=>!b(((e,t)=>g(e,(e=>e[t])))(e,t)),G=(e,t)=>delete e[t],H=(e,t)=>a(P.entries(e),(([e,n])=>t(n,e))),K=e=>{return t=W(e),0==i(t);var t},Q=e=>new Set(e),U=(e,t)=>e?.add(t),V=(e,t=[""])=>{const n=[],s=(e,r)=>r==i(t)?u(n,e):null===t[r]?E(e,(e=>s(e,r+1))):a([t[r],null],(t=>s(z(e,t),r+1)));return s(e,0),n},X=e=>[e,e],Y=e=>0==((e,t=p)=>t(e[0])+t(e[1]))(e),Z=()=>[m(),m()],$=()=>[Z(),Z()],_=t=>{const n=e(t);return w(n)||n==s&&T(t)?n:void 0},ee=e=>""+e,te=(e,t,n,s=k)=>{const r=(l=F(e),o=e=>!B(t,e),l.filter(o));var l,o;return a(W(t),(s=>n(e,s,t[s]))),a(r,(t=>s(e,t))),e},ne=(e,t,n)=>b(e)||!(e=>v(e,P)&&e.constructor==P)(e)||K(e)||q(e)?(n?.(),!1):(H(e,((n,s)=>{t(n,s)||G(e,s)})),!K(e)),se=(e,t,n)=>k(e,t,z(e,t)==-n?void 0:n),re=()=>{let t,n,c=0,T=0;const v=m(),p=m(),R=m(),y=m(),P=m(),W=m(),q=m(),le=m(),oe=Z(),ae=$(),de=Z(),ie=$(),ce=Z(),ue=Z(),fe=$(),he=Z(),Te=Z(),ve=Z(),[be,ge,we,Le,pe]=(e=>{let t,n=0;const s=[],r=m();return[(l,o,a)=>{t??=e();const d=s.pop()??""+n++;return k(r,d,[l,o,a]),U(D(o,a??[""],Q),d),d},(e,n,...s)=>a(V(e,n),(e=>E(e,(e=>z(r,e)[0](t,...n??[],...s))))),e=>g(z(r,e),(([,t,n])=>(D(t,n??[""],void 0,(t=>(J(t,e),S(t)?1:0))),k(r,e),i(s)<1e3&&u(s,e),n))),(e,t)=>!l(V(e,t),b),(e,n,s)=>g(z(r,e),(([e,,r=[]])=>{const l=(...o)=>{const d=i(o);d==i(r)?e(t,...o,...s(o)):b(r[d])?a(n[d](...o),(e=>l(...o,e))):l(...o,r[d])};l()}))]})((()=>st)),Re=(e,n)=>(!t||C(W,n)||qe(n))&&ne(e,((e,t)=>Ce(n,t,e)),(()=>qe(n))),Ce=(e,t,n,s)=>ne(s?n:ye(n,e,t),((s,r)=>g(Se(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>qe(e,t))),Se=(e,n,s,r)=>t?g(z(z(W,e),s),(t=>_(r)!=t.type?qe(e,n,s,r,t.default):r),(()=>qe(e,n,s,r))):b(_(r))?qe(e,n,s,r):r,ye=(e,t,n)=>(g(z(q,t),(([s,r])=>{E(s,((t,n)=>{B(e,n)||(e[n]=t)})),E(r,(s=>{B(e,s)||qe(t,n,s)}))})),e),Ie=e=>te(W,e,((e,t,n)=>{const s=m(),r=Q();te(M(W,t,m),n,((e,t,n)=>{k(e,t,n),g(n.default,(e=>k(s,t,e)),(()=>U(r,t)))})),k(q,t,[s,r])}),((e,t)=>{k(W,t),k(q,t)})),Ee=e=>te(le,e,((e,t,n)=>Je(t,n)),((e,t)=>Me(t))),Je=(e,t)=>te(M(le,e,(()=>(xe(e,1),m()))),t,((t,n,s)=>me(e,t,n,s)),((t,n)=>Ne(e,t,n))),me=(e,t,n,s,r)=>te(M(t,n,(()=>(De(e,n,1),m()))),s,((t,s,r)=>Fe(e,n,t,s,r)),((s,l)=>je(e,t,n,s,l,r))),Fe=(e,t,n,s,r)=>{C(n,s)||Pe(e,t,s,1);const l=z(n,s);r!==l&&(We(e,t,s,l,r),k(n,s,r))},ze=(e,t,n,s,r)=>g(z(t,n),(t=>Fe(e,n,t,s,r)),(()=>me(e,t,n,ye({[s]:r},e,n)))),Oe=e=>{const t=""+c++;return C(e,t)?Oe(e):t},ke=e=>z(le,e)??Je(e,{}),Me=e=>Je(e,{}),Ne=(e,t,n)=>me(e,t,n,{},!0),je=(e,t,n,s,r,l)=>{const o=z(z(q,e)?.[0],r);if(!b(o)&&!l)return Fe(e,n,s,r,o);const a=t=>{We(e,n,t,z(s,t)),Pe(e,n,t,-1),k(s,t)};b(o)?a(r):O(s,a),S(s)&&(De(e,n,-1),S(k(t,n))&&(xe(e,-1),k(le,e)))},xe=(e,t)=>se(S(v)?k(v,null,Le(ae[0][1])||Le(ae[1][1])?Ue():0):v,e,t),De=(e,t,n)=>se(M(p,e,(()=>m([[null,Le(ie[0][1],[e])||Le(ie[1][1],[e])?Ve(e):0]]))),t,n),Pe=(e,t,n,s)=>se(M(M(R,e,m),t,(()=>m([[null,Le(fe[0][1],[e,t])||Le(fe[1][1],[e,t])?Ye(e,t):0]]))),n,s),We=(e,t,n,s,r)=>M(M(M(y,e,m),t,m),n,(()=>[s,0]))[1]=r,qe=(e,t,n,s,r)=>(u(M(M(M(P,e,m),t,m),n,(()=>[])),s),r),Ae=(e,t,n)=>g(z(z(z(y,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...X(Ze(e,t,n))])),Be=e=>S(P)||S(Te[e])?0:E(e?j(P,x):P,((t,n)=>E(t,((t,s)=>E(t,((t,r)=>ge(Te[e],[n,s,r],t))))))),Ge=(e,t,n,s)=>L(t)>1?(ge(e[0],s),ge(e[1],s),1):S(t)||0==z(t,null)||o(z(t,null),n(...s??[]))?void 0:(ge(e[1],s),1),He=e=>{const t=S(ce[e]),n=Y(fe[e])&&Y(ie[e])&&t&&Y(ae[e]),s=S(he[e])&&S(ue[e])&&S(de[e])&&S(oe[e]);if(!n||!s){const r=e?[j(v),x(p),j(R,x),j(y,x)]:[v,p,R,y];if(!n){E(r[2],((t,n)=>E(t,((t,s)=>Ge(fe[e],t,Ye,[n,s])))));const n=Q();E(r[1],((s,r)=>{Ge(ie[e],s,Ve,[r])&&!t&&(ge(ce[e],[r,null]),U(n,r))})),t||E(r[3],((t,s)=>{if(!C(n,s)){const n=Q();E(t,(e=>E(e,(([t,s],r)=>s!==t?U(n,r):J(e,r))))),E(n,(t=>ge(ce[e],[s,t])))}})),Ge(ae[e],r[0],Ue)}if(!s){let t;E(r[3],((n,s)=>{let r;E(n,((n,l)=>{let o;E(n,(([n,a],d)=>{a!==n&&(ge(he[e],[s,l,d],a,n,Ae),t=r=o=1)})),o&&ge(ue[e],[s,l],Ae)})),r&&ge(de[e],[s],Ae)})),t&&ge(oe[e],void 0,Ae)}}},Ke=(e,...t)=>(et((()=>e(...d(t,ee)))),st),Qe=()=>N(le,(e=>N(e,N))),Ue=()=>F(le),Ve=e=>F(z(le,ee(e))),Xe=(e,t,n)=>{const s=[];return O(z(le,ee(e)),((e,n)=>u(s,[b(t)?e:z(n,ee(t)),e]))),d(s.sort((([e],[t])=>(e<t?-1:1)*(n?-1:1))),(([,e])=>e))},Ye=(e,t)=>F(z(z(le,ee(e)),ee(t))),Ze=(e,t,n)=>z(z(z(le,ee(e)),ee(t)),ee(n)),$e=e=>Ke((()=>(e=>ne(e,Re,qe))(e)?Ee(e):0)),_e=()=>Ke((()=>Ee({}))),et=(e,t)=>{if(-1==T)return;tt();const n=e?.();return nt(t),n},tt=()=>(T++,st),nt=e=>(T>0&&(T--,0==T&&(n=!S(y),T=1,Be(1),n&&He(1),T=-1,e?.(N(y,(e=>N(e,(e=>N(e,(e=>[...e]),(([e,t])=>e===t))),K)),K),N(P,(e=>N(e,N))))&&(T=1,E(y,((e,t)=>E(e,((e,n)=>E(e,(([e],s)=>((e,t,n,s,r)=>b(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(st,t,n,s,e))))))),T=-1,n=!1),ge(ve[0],void 0,n),Be(0),n&&He(0),ge(ve[1],void 0,n),T=0,a([y,P,v,p,R],I))),st),st={getTables:Qe,getTableIds:Ue,getTable:e=>N(z(le,ee(e)),N),getRowIds:Ve,getSortedRowIds:Xe,getRow:(e,t)=>N(z(z(le,ee(e)),ee(t))),getCellIds:Ye,getCell:Ze,hasTables:()=>!S(le),hasTable:e=>C(le,ee(e)),hasRow:(e,t)=>C(z(le,ee(e)),ee(t)),hasCell:(e,t,n)=>C(z(z(le,ee(e)),ee(t)),ee(n)),getJson:()=>f(le),getSchemaJson:()=>f(W),setTables:$e,setTable:(e,t)=>Ke((e=>Re(t,e)?Je(e,t):0),e),setRow:(e,t,n)=>Ke(((e,t)=>Ce(ee(e),ee(t),n)?me(ee(e),ke(ee(e)),ee(t),n):0),e,t),addRow:(e,t,n)=>et((()=>{e=ee(e);const s=Ce(e,void 0,t),r=s||n?Oe(z(le,e)):void 0;return s&&me(e,ke(e),r,t),r})),setPartialRow:(e,t,n)=>Ke(((e,t)=>{if(Ce(e,t,n,1)){const s=ke(e);H(n,((n,r)=>ze(e,s,t,r,n)))}}),e,t),setCell:(t,n,s,l)=>Ke(((t,n,s)=>g(Se(t,n,s,e(l)==r?l(Ze(t,n,s)):l),(e=>ze(t,ke(t),n,s,e)))),t,n,s),setJson:e=>{try{"{}"===e?_e():$e(h(e))}catch{}return st},setSchema:e=>Ke((()=>{if((t=(e=>ne(e,(e=>ne(e,(e=>{if(!ne(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!w(t)&&t!=s||(_(e.default)!=t&&G(e,"default"),0))})))))(e))&&(Ie(e),!S(le))){const e=Qe();_e(),$e(e)}})),delTables:_e,delTable:e=>Ke((e=>C(le,e)?Me(e):0),e),delRow:(e,t)=>Ke(((e,t)=>g(z(le,e),(n=>C(n,t)?Ne(e,n,t):0))),e,t),delCell:(e,t,n,s)=>Ke(((e,t,n)=>g(z(le,e),(r=>g(z(r,t),(l=>C(l,n)?je(e,r,t,l,n,s):0))))),e,t,n),delSchema:()=>Ke((()=>{Ie({}),t=!1})),transaction:et,startTransaction:tt,finishTransaction:nt,forEachTable:e=>E(le,((t,n)=>e(n,(e=>E(t,((t,n)=>e(n,(e=>O(t,e))))))))),forEachRow:(e,t)=>E(z(le,ee(e)),((e,n)=>t(n,(t=>O(e,t))))),forEachCell:(e,t,n)=>O(z(z(le,ee(e)),ee(t)),n),addTablesListener:(e,t)=>be(e,oe[t?1:0]),addTableIdsListener:(e,t,n)=>be(e,ae[n?1:0][t?1:0]),addTableListener:(e,t,n)=>be(t,de[n?1:0],[e]),addRowIdsListener:(e,t,n,s)=>be(t,ie[s?1:0][n?1:0],[e]),addSortedRowIdsListener:(e,t,n,s,r)=>{let l=Xe(e,t,n);return be((()=>{const r=Xe(e,t,n);o(r,l)||(l=r,s(st,e,t,n,l))}),ce[r?1:0],[e,t])},addRowListener:(e,t,n,s)=>be(n,ue[s?1:0],[e,t]),addCellIdsListener:(e,t,n,s,r)=>be(n,fe[r?1:0][s?1:0],[e,t]),addCellListener:(e,t,n,s,r)=>be(s,he[r?1:0],[e,t,n]),addInvalidCellListener:(e,t,n,s,r)=>be(s,Te[r?1:0],[e,t,n]),addWillFinishTransactionListener:e=>be(e,ve[0]),addDidFinishTransactionListener:e=>be(e,ve[1]),callListener:e=>(pe(e,[Ue,Ve,Ye],(e=>b(e[2])?[]:X(Ze(...e)))),st),delListener:e=>(we(e),st),getListenerStats:()=>({}),createStore:re};return A(st)};export{re as createStore};
|
package/lib/store.js.gz
CHANGED
|
Binary file
|
package/lib/tinybase.d.ts
CHANGED
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),a=s(0),r=s(s),i=e=>[e,e],d=(e,t)=>e.includes(t),l=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),h=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,f=e=>0==g(e),L=(e,t,s)=>e.reduce(t,s),w=e=>e.slice(1),p=(e,t)=>e.push(t),v=e=>e.pop(),I=e=>JSON.stringify(e,((e,t)=>b(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),S=JSON.parse,y=Math.max,R=Math.min,T=isFinite,b=(e,t)=>e instanceof t,C=e=>null==e,m=(e,t,s)=>C(e)?s?.():t(e),E=e=>e==n||e==o,k=e=>s(e)==r,M=()=>{},A=e=>e.size,x=(e,t)=>e?.has(t)??!1,D=e=>C(e)||0==A(e),F=e=>[...e?.values()??[]],J=e=>e.clear(),z=(e,t)=>e?.forEach(t),N=(e,t)=>e?.delete(t),O=e=>new Map(e),j=(e=O)=>[e(),e()],P=e=>[...e?.keys()??[]],W=(e,t)=>e?.get(t),B=(e,t)=>z(e,((e,s)=>t(s,e))),H=(e,t,s)=>C(s)?(N(e,t),e):e?.set(t,s),q=(e,t,s)=>(x(e,t)||H(e,t,s()),W(e,t)),G=(e,t,s)=>{const n={},o=t??(e=>e);return z(e,((e,t)=>m(o(e),(e=>s?.(e)?0:n[t]=e)))),n},K=(e,t)=>{const s=O(),n=t??(e=>e);return z(e,((e,t)=>s.set(t,n(e)))),s},Q=e=>K(e,K),U=e=>new Set(e),V=(e,t)=>e?.add(t),X=(e,t,s)=>{const n=e.hasRow,o=O(),a=O(),r=O(),i=O(),d=O(),l=t=>m(W(d,t),(s=>{z(s,e.delListener),H(d,t)})),c=e=>{H(o,e),H(a,e),H(r,e),H(i,e),l(e)};return[()=>e,()=>P(o),e=>B(a,e),e=>x(a,e),e=>W(o,e),e=>W(a,e),(e,t)=>H(a,e,t),(c,h,g,f,L)=>{const w=O(),p=O();H(o,c,h),x(a,c)||(H(a,c,t()),H(r,c,O()),H(i,c,O()));const v=W(r,c),I=W(i,c),S=t=>{const o=s=>e.getCell(h,t,s),a=W(v,t),r=n(h,t)?s(f(o,t)):void 0;if(a!=r&&H(w,t,[a,r]),!C(L)){const e=W(I,t),s=n(h,t)?L(o,t):void 0;e!=s&&H(p,t,s)}},y=e=>{g((()=>{z(w,(([,e],t)=>H(v,t,e))),z(p,((e,t)=>H(I,t,e)))}),w,p,v,I,e),J(w),J(p)};B(v,S),e.hasTable(h)&&u(e.getRowIds(h),(e=>{x(v,e)||S(e)})),y(!0),l(c),H(d,c,U([e.addRowListener(h,null,((e,t,s)=>S(s))),e.addTableListener(h,(()=>y()))]))},c,()=>B(d,c)]},Y=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),Z=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},$=(e,t,s)=>g(s)<2?V(f(s)?e:q(e,s[0],U),t):$(q(e,s[0],O),t,w(s)),_=e=>{const t=(s,n,...o)=>m(s,(s=>f(o)?e(s,n):u([o[0],null],(e=>t(W(s,e),n,...w(o))))));return t},ee=e=>{let t,s=0;const n=[],o=O();return[(a,r,i=[])=>{t??=e();const d=v(n)??""+s++;return H(o,d,[a,r,i]),$(r,d,i),d},(e,s=[],...n)=>_(z)(e,(e=>m(W(o,e),(([e])=>e(t,...s,...n)))),...s),e=>m(W(o,e),(([,t,s])=>(_(N)(t,e,...s),H(o,e),g(n)<1e3&&p(n,e),s)),(()=>[])),(e,s,n)=>m(W(o,e),(([e,,o])=>{const a=(...r)=>{const i=g(r);i==g(o)?e(t,...r,...n(r)):C(o[i])?u(s[i](...r),(e=>a(...r,e))):a(...r,o[i])};a()}))]},te=Object,se=te.keys,ne=te.isFrozen,oe=te.freeze,ae=(e,t)=>!C(((e,t)=>m(e,(e=>e[t])))(e,t)),re=(e,t)=>delete e[t],ie=(e,t)=>u(te.entries(e),(([e,s])=>t(s,e))),de=e=>f(se(e)),le=Z((e=>{let t,s,n,o=100,a=O(),r=1;const i=U(),l=O(),[c,h,L]=ee((()=>G)),w=O(),I=O(),S=[],y=[],R=(t,s)=>{r=0,e.transaction((()=>z(W(w,s),((s,n)=>z(s,((s,o)=>z(s,((s,a)=>C(s[t])?e.delCell(n,o,a,!0):e.setCell(n,o,a,s[t]))))))))),r=1},T=e=>{H(w,e),H(I,e),h(l,[e])},b=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??g(e)),T),E=()=>b(S,g(S)-o),k=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(r){m(t,(()=>{p(S,t),E(),b(y),t=void 0,n=1}));const e=q(a,s,O),r=q(e,o,O),c=q(r,i,(()=>[l,void 0]));c[1]=d,c[0]===d&&D(H(r,i))&&D(H(e,o))&&D(H(a,s))&&(t=v(S),n=1),J()}})),M=(e="")=>(C(t)&&(t=""+s++,H(w,t,a),j(t,e),a=O(),n=1),t),A=()=>{f(S)||(y.unshift(M()),R(0,t),t=v(S),n=1)},F=()=>{f(y)||(p(S,t),t=y.shift(),R(1,t),n=1)},J=()=>{n&&(h(i),n=0)},N=e=>{const t=M(e);return J(),t},j=(e,t)=>(P(e)&&W(I,e)!==t&&(H(I,e,t),h(l,[e])),G),P=e=>x(w,e),G={setSize:e=>(o=e,E(),G),addCheckpoint:N,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...S],t,[...y]],forEachCheckpoint:e=>B(I,e),hasCheckpoint:P,getCheckpoint:e=>W(I,e),goBackward:()=>(A(),J(),G),goForward:()=>(F(),J(),G),goTo:e=>{const s=d(S,e)?A:d(y,e)?F:null;for(;!C(s)&&e!=t;)s();return J(),G},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,l,[e]),delListener:e=>(L(e),G),clear:()=>(b(S),b(y),C(t)||T(t),t=void 0,s=0,N(),G),destroy:()=>{e.delListener(k)},getListenerStats:()=>({})};return oe(G.clear())})),ce=(e,t)=>e<t?-1:1,ue=e=>""+e,he=Z((e=>{const t=O(),s=O(),[n,o,a,r,i,d,u,h,g,f]=X(e,O,(e=>C(e)?"":e+"")),[L,w,p]=ee((()=>I)),v=(t,s,n)=>{const o=i(t);z(n,((t,n)=>s(n,(s=>z(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},I={setIndexDefinition:(e,n,o,a,r,i=ce)=>{const g=C(r)?void 0:([e],[t])=>r(e,t);return h(e,n,((n,o,r,h,f,L)=>{let p=0;const v=U(),I=U(),S=d(e);if(z(o,(([e,t],s)=>{C(e)||(V(v,e),m(W(S,e),(t=>{N(t,s),D(t)&&(H(S,e),p=1)}))),C(t)||(V(v,t),x(S,t)||(H(S,t,U()),p=1),V(W(S,t),s),C(a)||V(I,t))})),n(),D(f)||(L?B(S,(e=>V(I,e))):B(r,(e=>m(W(h,e),(e=>V(I,e))))),z(I,(e=>{const t=(t,s)=>i(W(f,t),W(f,s),e),s=[...W(S,e)];l(s,t)||(H(S,e,U(c(s,t))),V(v,e))}))),(p||L)&&!C(g)){const t=[...S];l(t,g)||(u(e,O(c(t,g))),p=1)}p&&w(t,[e]),z(v,(t=>w(s,[e,t])))}),Y(o),m(a,Y)),I},delIndexDefinition:e=>(g(e),I),getStore:n,getIndexIds:o,forEachIndex:e=>a(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,d(e)),hasIndex:r,hasSlice:(e,t)=>x(d(e),t),getTableId:i,getSliceIds:e=>P(d(e)),getSliceRowIds:(e,t)=>F(W(d(e),t)),addSliceIdsListener:(e,s)=>L(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>L(n,s,[e,t]),delListener:e=>(p(e),I),destroy:f,getListenerStats:()=>({})};return oe(I)})),ge=O([["avg",[(e,t)=>h(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>y(...e),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:y(t,e)]],["min",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:R(t,e)]],["sum",[e=>h(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),fe=Z((e=>{const t=O(),[s,n,o,a,r,i,d,l,c,u]=X(e,M,(e=>isNaN(e)||C(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=ee((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=k(n)?[n,a,r,c]:W(ge,n)??W(ge,"sum");return l(e,s,((s,n,o,a,r,l)=>{let c=i(e),h=A(a);const[f,L,w,p]=u;l=l||C(c),z(n,(([e,t])=>{l||(c=C(e)?L?.(c,t,h++):C(t)?w?.(c,e,h--):p?.(c,t,e,h)),l=l||C(c)})),s(),D(a)?c=void 0:l&&(c=f(F(a),A(a))),T(c)||(c=void 0);const v=i(e);c!=v&&(d(e,c),g(t,[e],c,v))}),Y(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:i,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),L),destroy:u,getListenerStats:()=>({})};return oe(L)})),Le=(e,t,s,n,o)=>{let a,r=0;const i={load:async s=>{if(2!=r){r=1;const n=await t();C(n)||""==n?e.setTables(s):e.setJson(n),r=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=r&&(r=2,await s(e.getJson()),r=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),a=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(m(a,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return oe(i)},we=globalThis.window,pe=(e,t,s)=>{let n;return Le(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},we.addEventListener("storage",n)}),(()=>{we.removeEventListener("storage",n),n=void 0}))},ve=(e,t)=>pe(e,t,localStorage),Ie=(e,t)=>pe(e,t,sessionStorage),Se=(s,n)=>{let o;return Le(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},ye=e=>e.headers.get("ETag"),Re=(e,t,s,n)=>{let o,a;return Le(e,(async()=>{const e=await fetch(t);return a=ye(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=ye(s);C(a)||C(n)||n==a||(a=n,e())}),1e3*n)}),(()=>{m(o,clearInterval),o=void 0}))},Te=Z((e=>{const t=O(),s=O(),n=O(),o=O(),[a,r,i,d,l,c,,u,h,g]=X(e,(()=>[O(),O(),O(),O()]),(e=>C(e)?void 0:e+"")),[f,L,w]=ee((()=>S)),p=(e,t,s)=>m(c(e),(([n,,o])=>{if(!x(o,t)){const a=U();if(l(e)!=I(e))V(a,t);else{let e=t;for(;!C(e)&&!x(a,e);)V(a,e),e=W(n,e)}if(s)return a;H(o,t,a)}return W(o,t)})),v=(e,t)=>m(c(e),(([,,e])=>H(e,t))),I=e=>W(t,e),S={setRelationshipDefinition:(e,a,r,i)=>(H(t,e,r),u(e,a,((t,a)=>{const r=U(),i=U(),d=U(),[l,u]=c(e);z(a,(([t,s],n)=>{C(t)||(V(i,t),m(W(u,t),(e=>{N(e,n),D(e)&&H(u,t)}))),C(s)||(V(i,s),x(u,s)||H(u,s,U()),V(W(u,s),n)),V(r,n),H(l,n,s),B(W(o,e),(t=>{x(p(e,t),n)&&V(d,t)}))})),t(),z(r,(t=>L(s,[e,t]))),z(i,(t=>L(n,[e,t]))),z(d,(t=>{v(e,t),L(o,[e,t])}))}),Y(i)),S),delRelationshipDefinition:e=>(H(t,e),h(e),S),getStore:a,getRelationshipIds:r,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(l(s),t))))),hasRelationship:d,getLocalTableId:l,getRemoteTableId:I,getRemoteRowId:(e,t)=>W(c(e)?.[0],t),getLocalRowIds:(e,t)=>F(W(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>C(c(e))?[t]:F(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>f(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>f(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),f(s,o,[e,t])),delListener:e=>(v(...w(e)),S),destroy:g,getListenerStats:()=>({})};return oe(S)})),be=(e,t,s,n=H)=>{const o=(a=P(e),r=e=>!ae(t,e),a.filter(r));var a,r;return u(se(t),(n=>s(e,n,t[n]))),u(o,(t=>n(e,t))),e},Ce=e=>{const t=s(e);return E(t)||t==a&&T(e)?t:void 0},me=(e,t,s)=>C(e)||!(e=>b(e,te)&&e.constructor==te)(e)||de(e)||ne(e)?(s?.(),!1):(ie(e,((s,n)=>{t(s,n)||re(e,n)})),!de(e)),Ee=(e,t,s)=>H(e,t,W(e,t)==-s?void 0:s),ke=()=>{let e,t,s=0,n=0;const o=O(),r=O(),l=O(),c=O(),h=O(),g=O(),f=O(),L=O(),w=j(U),v=j(U),y=j(),R=j(),T=j(),b=j(),M=j(),A=j(),F=j(U),[N,X,Y,Z]=ee((()=>Ke)),$=(t,s)=>(!e||x(g,s)||ke(s))&&me(t,((e,t)=>_(s,t,e)),(()=>ke(s))),_=(e,t,s,n)=>me(n?s:se(s,e,t),((n,o)=>m(te(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ke(e,t))),te=(t,s,n,o)=>e?m(W(W(g,t),n),(e=>Ce(o)!=e.type?ke(t,s,n,o,e.default):o),(()=>ke(t,s,n,o))):C(Ce(o))?ke(t,s,n,o):o,se=(e,t,s)=>(m(W(f,t),(([n,o])=>{z(n,((t,s)=>{ae(e,s)||(e[s]=t)})),z(o,(n=>{ae(e,n)||ke(t,s,n)}))})),e),ne=e=>be(g,e,((e,t,s)=>{const n=O(),o=U();be(q(g,t,O),s,((e,t,s)=>{H(e,t,s),m(s.default,(e=>H(n,t,e)),(()=>V(o,t)))})),H(f,t,[n,o])}),((e,t)=>{H(g,t),H(f,t)})),le=e=>be(L,e,((e,t,s)=>ce(t,s)),((e,t)=>pe(t))),ce=(e,t)=>be(q(L,e,(()=>(Se(e,1),O()))),t,((t,s,n)=>he(e,t,s,n)),((t,s)=>ve(e,t,s))),he=(e,t,s,n,o)=>be(q(t,s,(()=>(ye(e,s,1),O()))),n,((t,n,o)=>ge(e,s,t,n,o)),((n,a)=>Ie(e,t,s,n,a,o))),ge=(e,t,s,n,o)=>{x(s,n)||Re(e,t,n,1);const a=W(s,n);o!==a&&(Te(e,t,n,a,o),H(s,n,o))},fe=(e,t,s,n,o)=>m(W(t,s),(t=>ge(e,s,t,n,o)),(()=>he(e,t,s,se({[n]:o},e,s)))),Le=e=>{const t=""+s++;return x(e,t)?Le(e):t},we=e=>W(L,e)??ce(e,{}),pe=e=>ce(e,{}),ve=(e,t,s)=>he(e,t,s,{},!0),Ie=(e,t,s,n,o,a)=>{const r=W(W(f,e)?.[0],o);if(!C(r)&&!a)return ge(e,s,n,o,r);const i=t=>{Te(e,s,t,W(n,t)),Re(e,s,t,-1),H(n,t)};C(r)?i(o):B(n,i),D(n)&&(ye(e,s,-1),D(H(t,s))&&(Se(e,-1),H(L,e)))},Se=(e,t)=>Ee(o,e,t),ye=(e,t,s)=>Ee(q(r,e,O),t,s),Re=(e,t,s,n)=>Ee(q(q(l,e,O),t,O),s,n),Te=(e,t,s,n,o)=>q(q(q(c,e,O),t,O),s,(()=>[n,0]))[1]=o,ke=(e,t,s,n,o)=>(p(q(q(q(h,e,O),t,O),s,(()=>[])),n),o),Me=(e,t,s)=>m(W(W(W(c,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...i(Oe(e,t,s))])),Ae=e=>D(h)||D(A[e])?0:z(e?K(h,Q):h,((t,s)=>z(t,((t,n)=>z(t,((t,o)=>X(A[e],[s,n,o],t))))))),xe=e=>{const t=D(b[e])&&D(R[e])&&D(v[e]),s=D(M[e])&&D(T[e])&&D(y[e])&&D(w[e]);if(!t||!s){const n=e?[K(o),Q(r),K(l,Q),K(c,Q)]:[o,r,l,c];if(t||(z(n[2],((t,s)=>z(t,((t,n)=>{D(t)||X(b[e],[s,n])})))),z(n[1],((t,s)=>{D(t)||X(R[e],[s])})),D(n[0])||X(v[e])),!s){let t;z(n[3],((s,n)=>{let o;z(s,((s,a)=>{let r;z(s,(([s,i],d)=>{i!==s&&(X(M[e],[n,a,d],i,s,Me),t=o=r=1)})),r&&X(T[e],[n,a],Me)})),o&&X(y[e],[n],Me)})),t&&X(w[e],[],Me)}}},De=(e,...t)=>(He((()=>{return e(...(s=t,n=ue,s.map(n)));var s,n})),Ke),Fe=()=>G(L,(e=>G(e,G))),Je=()=>P(L),ze=e=>P(W(L,ue(e))),Ne=(e,t)=>P(W(W(L,ue(e)),ue(t))),Oe=(e,t,s)=>W(W(W(L,ue(e)),ue(t)),ue(s)),je=e=>De((()=>(e=>me(e,$,ke))(e)?le(e):0)),Pe=(e,t,s,n)=>De(((e,t,s)=>m(te(e,t,s,k(n)?n(Oe(e,t,s)):n),(n=>fe(e,we(e),t,s,n)))),e,t,s),We=()=>De((()=>le({}))),Be=(e,t,s,n)=>De(((e,t,s)=>m(W(L,e),(o=>m(W(o,t),(a=>x(a,s)?Ie(e,o,t,a,s,n):0))))),e,t,s),He=(e,t)=>{if(-1==n)return;qe();const s=e?.();return Ge(t),s},qe=()=>(n++,Ke),Ge=e=>(n>0&&(n--,0==n&&(t=!D(c),n=1,Ae(1),t&&xe(1),n=-1,e?.(G(c,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),de)),de),G(h,(e=>G(e,G))))&&(n=1,z(c,((e,t)=>z(e,((e,s)=>z(e,(([e],n)=>C(e)?Be(t,s,n,!0):Pe(t,s,n,e))))))),n=-1,t=!1),X(F[0],[],t),Ae(0),t&&xe(0),X(F[1],[],t),n=0,u([c,h,o,r,l],J))),Ke),Ke={getTables:Fe,getTableIds:Je,getTable:e=>G(W(L,ue(e)),G),getRowIds:ze,getRow:(e,t)=>G(W(W(L,ue(e)),ue(t))),getCellIds:Ne,getCell:Oe,hasTables:()=>!D(L),hasTable:e=>x(L,ue(e)),hasRow:(e,t)=>x(W(L,ue(e)),ue(t)),hasCell:(e,t,s)=>x(W(W(L,ue(e)),ue(t)),ue(s)),getJson:()=>I(L),getSchemaJson:()=>I(g),setTables:je,setTable:(e,t)=>De((e=>$(t,e)?ce(e,t):0),e),setRow:(e,t,s)=>De(((e,t)=>_(ue(e),ue(t),s)?he(ue(e),we(ue(e)),ue(t),s):0),e,t),addRow:(e,t)=>He((()=>{let s;return _(e,s,t)&&(e=ue(e),he(e,we(e),s=Le(W(L,e)),t)),s})),setPartialRow:(e,t,s)=>De(((e,t)=>{if(_(e,t,s,1)){const n=we(e);ie(s,((s,o)=>fe(e,n,t,o,s)))}}),e,t),setCell:Pe,setJson:e=>{try{"{}"===e?We():je(S(e))}catch{}return Ke},setSchema:t=>De((()=>{if((e=(e=>me(e,(e=>me(e,(e=>{if(!me(e,((e,t)=>d(["type","default"],t))))return!1;const t=e.type;return!(!E(t)&&t!=a||(Ce(e.default)!=t&&re(e,"default"),0))})))))(t))&&(ne(t),!D(L))){const e=Fe();We(),je(e)}})),delTables:We,delTable:e=>De((e=>x(L,e)?pe(e):0),e),delRow:(e,t)=>De(((e,t)=>m(W(L,e),(s=>x(s,t)?ve(e,s,t):0))),e,t),delCell:Be,delSchema:()=>De((()=>{ne({}),e=!1})),transaction:He,startTransaction:qe,finishTransaction:Ge,forEachTable:e=>z(L,((t,s)=>e(s,(e=>z(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>z(W(L,ue(e)),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(W(W(L,ue(e)),ue(t)),s),addTablesListener:(e,t)=>N(e,w[t?1:0]),addTableIdsListener:(e,t)=>N(e,v[t?1:0]),addTableListener:(e,t,s)=>N(t,y[s?1:0],[e]),addRowIdsListener:(e,t,s)=>N(t,R[s?1:0],[e]),addRowListener:(e,t,s,n)=>N(s,T[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>N(s,b[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>N(n,M[o?1:0],[e,t,s]),addInvalidCellListener:(e,t,s,n,o)=>N(n,A[o?1:0],[e,t,s]),addWillFinishTransactionListener:e=>N(e,F[0]),addDidFinishTransactionListener:e=>N(e,F[1]),callListener:e=>(Z(e,[Je,ze,Ne],(e=>C(e[2])?[]:i(Oe(...e)))),Ke),delListener:e=>(Y(e),Ke),getListenerStats:()=>({})};return oe(Ke)};export{le as createCheckpoints,Le as createCustomPersister,Se as createFilePersister,he as createIndexes,ve as createLocalPersister,fe as createMetrics,Te as createRelationships,Re as createRemotePersister,Ie as createSessionPersister,ke as createStore,ce as defaultSorter,ue as id};
|
|
1
|
+
import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),r=s(0),a=s(s),l=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),d=(e,t)=>f(e)===f(t)&&i(e,((e,s)=>t[s]===e)),c=(e,t)=>i(e,((s,n)=>0==n||t(e[n-1],s)<=0)),u=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),R=(e,t)=>e.map(t),g=e=>L(e,((e,t)=>e+t),0),f=e=>e.length,w=e=>0==f(e),L=(e,t,s)=>e.reduce(t,s),I=(e,...t)=>e.push(...t),v=e=>e.pop(),T=e=>JSON.stringify(e,((e,t)=>y(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),S=JSON.parse,b=Math.max,p=Math.min,C=isFinite,y=(e,t)=>e instanceof t,E=e=>null==e,m=(e,t,s)=>E(e)?s?.():t(e),k=e=>e==n||e==o,M=e=>s(e)==a,D=()=>{},x=e=>e.size,A=(F=x,e=>L(z(e),((e,t)=>e+F(t)),0));var F;const J=(e,t)=>e?.has(t)??!1,Q=e=>E(e)||0==x(e),z=e=>[...e?.values()??[]],N=e=>e.clear(),O=(e,t)=>e?.forEach(t),j=(e,t)=>e?.delete(t),W=e=>new Map(e),P=e=>[...e?.keys()??[]],B=(e,t)=>e?.get(t),H=(e,t)=>O(e,((e,s)=>t(s,e))),q=(e,t,s)=>E(s)?(j(e,t),e):e?.set(t,s),G=(e,t,s)=>(J(e,t)||q(e,t,s()),B(e,t)),K=(e,t,s)=>{const n={},o=t??(e=>e);return O(e,((e,t)=>m(o(e),(e=>s?.(e)?0:n[t]=e)))),n},U=(e,t)=>{const s=W(),n=t??(e=>e);return O(e,((e,t)=>s.set(t,n(e)))),s},V=e=>U(e,U),X=(e,t,s,n,o=0)=>m((s?G:B)(e,t[o],o>f(t)-2?s:W),(r=>{if(o>f(t)-2)return n?.(r)&&q(e,t[o]),r;const a=X(r,t,s,n,o+1);return Q(r)&&q(e,t[o]),a})),Y=e=>new Set(e),Z=(e,t)=>e?.add(t),$=(e,t,s)=>{const n=e.hasRow,o=W(),r=W(),a=W(),l=W(),i=W(),d=(t,s,...n)=>{const o=G(i,t,Y);return h(n,(t=>Z(o,t)&&s&&e.callListener(t))),n},c=(t,...s)=>m(B(i,t),(n=>{h(w(s)?z(n):s,(t=>{e.delListener(t),j(n,t)})),Q(n)&&q(i,t)})),u=(e,s)=>{q(o,e,s),J(r,e)||(q(r,e,t()),q(a,e,W()),q(l,e,W()))},R=e=>{q(o,e),q(r,e),q(a,e),q(l,e),c(e)};return[()=>e,()=>P(o),e=>H(r,e),e=>J(r,e),e=>B(o,e),e=>B(r,e),(e,t)=>q(r,e,t),u,(t,o,r,i,R)=>{u(t,o);const g=W(),f=W(),w=B(a,t),L=B(l,t),I=t=>{const r=s=>e.getCell(o,t,s),a=B(w,t),l=n(o,t)?s(i(r,t)):void 0;if(a!=l&&q(g,t,[a,l]),!E(R)){const e=B(L,t),s=n(o,t)?R(r,t):void 0;e!=s&&q(f,t,s)}},v=e=>{r((()=>{O(g,(([,e],t)=>q(w,t,e))),O(f,((e,t)=>q(L,t,e)))}),g,f,w,L,e),N(g),N(f)};H(w,I),e.hasTable(o)&&h(e.getRowIds(o),(e=>{J(w,e)||I(e)})),v(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>I(s))),e.addTableListener(o,(()=>v())))},R,()=>H(i,R),d,c]},_=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),ee=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},te=(e,t=[""])=>{const s=[],n=(e,o)=>o==f(t)?I(s,e):null===t[o]?O(e,(e=>n(e,o+1))):h([t[o],null],(t=>n(B(e,t),o+1)));return n(e,0),s},se=e=>{let t,s=0;const n=[],o=W();return[(r,a,l)=>{t??=e();const i=v(n)??""+s++;return q(o,i,[r,a,l]),Z(X(a,l??[""],Y),i),i},(e,s,...n)=>h(te(e,s),(e=>O(e,(e=>B(o,e)[0](t,...s??[],...n))))),e=>m(B(o,e),(([,t,s])=>(X(t,s??[""],void 0,(t=>(j(t,e),Q(t)?1:0))),q(o,e),f(n)<1e3&&I(n,e),s))),(e,t)=>!i(te(e,t),E),(e,s,n)=>m(B(o,e),(([e,,o=[]])=>{const r=(...a)=>{const l=f(a);l==f(o)?e(t,...a,...n(a)):E(o[l])?h(s[l](...a),(e=>r(...a,e))):r(...a,o[l])};r()}))]},ne=Object,oe=ne.keys,re=ne.isFrozen,ae=ne.freeze,le=(e,t)=>!E(((e,t)=>m(e,(e=>e[t])))(e,t)),ie=(e,t)=>delete e[t],de=(e,t)=>h(ne.entries(e),(([e,s])=>t(s,e))),ce=e=>w(oe(e)),ue=e=>{const t=s(e);return k(t)||t==r&&C(e)?t:void 0},he=(e,t,s,n,o)=>E(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Re=ee((e=>{let t,s,n,o=100,r=W(),a=1;const i=W(),d=W(),[c,u,R]=se((()=>j)),g=W(),L=W(),T=[],S=[],b=(t,s)=>{a=0,e.transaction((()=>O(B(g,s),((s,n)=>O(s,((s,o)=>O(s,((s,r)=>he(e,n,o,r,s[t]))))))))),a=1},p=e=>{q(g,e),q(L,e),u(d,[e])},C=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??f(e)),p),y=()=>C(T,f(T)-o),k=e.addCellListener(null,null,null,((e,s,o,l,i,d)=>{if(a){m(t,(()=>{I(T,t),y(),C(S),t=void 0,n=1}));const e=G(r,s,W),a=G(e,o,W),c=G(a,l,(()=>[d,void 0]));c[1]=i,c[0]===i&&Q(q(a,l))&&Q(q(e,o))&&Q(q(r,s))&&(t=v(T),n=1),A()}})),M=(e="")=>(E(t)&&(t=""+s++,q(g,t,r),z(t,e),r=W(),n=1),t),D=()=>{w(T)||(S.unshift(M()),b(0,t),t=v(T),n=1)},x=()=>{w(S)||(I(T,t),t=S.shift(),b(1,t),n=1)},A=()=>{n&&(u(i),n=0)},F=e=>{const t=M(e);return A(),t},z=(e,t)=>(N(e)&&B(L,e)!==t&&(q(L,e,t),u(d,[e])),j),N=e=>J(g,e),j={setSize:e=>(o=e,y(),j),addCheckpoint:F,setCheckpoint:z,getStore:()=>e,getCheckpointIds:()=>[[...T],t,[...S]],forEachCheckpoint:e=>H(L,e),hasCheckpoint:N,getCheckpoint:e=>B(L,e),goBackward:()=>(D(),A(),j),goForward:()=>(x(),A(),j),goTo:e=>{const s=l(T,e)?D:l(S,e)?x:null;for(;!E(s)&&e!=t;)s();return A(),j},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(R(e),j),clear:()=>(C(T),C(S),E(t)||p(t),t=void 0,s=0,F(),j),destroy:()=>{e.delListener(k)},getListenerStats:()=>({})};return ae(j.clear())})),ge=(e,t)=>e<t?-1:1,fe=e=>""+e,we=ee((e=>{const t=W(),s=W(),[n,o,r,a,l,i,d,,h,R,g]=$(e,W,(e=>E(e)?"":e+"")),[f,w,L]=se((()=>v)),I=(t,s,n)=>{const o=l(t);O(n,((t,n)=>s(n,(s=>O(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},v={setIndexDefinition:(e,n,o,r,a,l=ge)=>{const R=E(a)?void 0:([e],[t])=>a(e,t);return h(e,n,((n,o,a,h,g,f)=>{let L=0;const I=Y(),v=Y(),T=i(e);if(O(o,(([e,t],s)=>{E(e)||(Z(I,e),m(B(T,e),(t=>{j(t,s),Q(t)&&(q(T,e),L=1)}))),E(t)||(Z(I,t),J(T,t)||(q(T,t,Y()),L=1),Z(B(T,t),s),E(r)||Z(v,t))})),n(),Q(g)||(f?H(T,(e=>Z(v,e))):H(a,(e=>m(B(h,e),(e=>Z(v,e))))),O(v,(e=>{const t=(t,s)=>l(B(g,t),B(g,s),e),s=[...B(T,e)];c(s,t)||(q(T,e,Y(u(s,t))),Z(I,e))}))),(L||f)&&!E(R)){const t=[...T];c(t,R)||(d(e,W(u(t,R))),L=1)}L&&w(t,[e]),O(I,(t=>w(s,[e,t])))}),_(o),m(r,_)),v},delIndexDefinition:e=>(R(e),v),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,i(e)),hasIndex:a,hasSlice:(e,t)=>J(i(e),t),getTableId:l,getSliceIds:e=>P(i(e)),getSliceRowIds:(e,t)=>z(B(i(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(L(e),v),destroy:g,getListenerStats:()=>({})};return ae(v)})),Le=W([["avg",[(e,t)=>g(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>p(...e),(e,t)=>p(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:p(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Ie=(e,t,s,n,o,r=!1)=>{if(Q(s))return;const[a,l,i,d]=o;return r||=E(e),O(n,(([s,n])=>{r||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):d?.(e,n,s,t),r||=E(e))})),r?a(z(s),x(s)):e},ve=ee((e=>{const t=W(),[s,n,o,r,a,l,i,,d,c,u]=$(e,D,(e=>isNaN(e)||E(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,R,g]=se((()=>f)),f={setMetricDefinition:(e,s,n,o,r,a,c)=>{const u=M(n)?[n,r,a,c]:B(Le,n)??B(Le,"sum");return d(e,s,((s,n,o,r,a,d)=>{const c=l(e),h=x(r);d||=E(c),s();let g=Ie(c,h,r,n,u,d);C(g)||(g=void 0),g!=c&&(i(e,g),R(t,[e],g,c))}),_(o,1)),f},delMetricDefinition:e=>(c(e),f),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),f),destroy:u,getListenerStats:()=>({})};return ae(f)})),Te=(e,t,s,n,o)=>{let r,a=0;const l={load:async s=>{if(2!=a){a=1;const n=await t();E(n)||""==n?e.setTables(s):e.setJson(n),a=0}return l},startAutoLoad:async e=>(l.stopAutoLoad(),await l.load(e),n(l.load),l),stopAutoLoad:()=>(o(),l),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),l),startAutoSave:async()=>(await l.stopAutoSave().save(),r=e.addTablesListener((()=>l.save())),l),stopAutoSave:()=>(m(r,e.delListener),l),getStore:()=>e,destroy:()=>l.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ae(l)},Se=globalThis.window,be=(e,t,s)=>{let n;return Te(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Se.addEventListener("storage",n)}),(()=>{Se.removeEventListener("storage",n),n=void 0}))},pe=(e,t)=>be(e,t,localStorage),Ce=(e,t)=>be(e,t,sessionStorage),ye=(s,n)=>{let o;return Te(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},Ee=e=>e.headers.get("ETag"),me=(e,t,s,n)=>{let o,r;return Te(e,(async()=>{const e=await fetch(t);return r=Ee(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Ee(s);E(r)||E(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{m(o,clearInterval),o=void 0}))},ke=ee((e=>{const t=e.createStore,[s,n,o,r,a,,,l,,c,g,L,v]=$(e,(()=>!0),D),T=t(),S=t(),b=t(),p=W(),C=(e,t,...s)=>h(s,(s=>Z(G(G(p,t,W),e,Y),s))),y=e=>h([b,S,T],(t=>t.delTable(e))),k=(e,t,s)=>C(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),A={setQueryDefinition:(t,s,n)=>{let o;l(t,s),y(t);const r=[],a=[[null,[s,null,null,[],W()]]],c=[],g=[],p=[],D=[];n({select:(e,t)=>{const s=M(e)?[f(r)+"",e]:[E(t)?e:t,s=>s(e,t)];return I(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=E(s)||M(t)?null:t,o=E(n)?t:s,r=[e,[e,n,M(o)?o:e=>e(o),[],W()]];return I(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>I(c,M(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,M(t)?[t,s,n,o]:B(Le,t)??[(e,t)=>t]]];return I(g,r),{as:e=>r[0]=e}},having:(e,t)=>I(p,M(e)?e:s=>s(e)===t),order:(e,t)=>I(D,[M(e)?e:t=>t(e)??0,t]),limit:(e,t)=>{o=E(t)?[0,e]:[e,t]}});const F=W(r);if(Q(F))return A;const z=W(a);H(z,((e,[,t])=>m(B(z,t),(({3:t})=>E(e)?0:I(t,e)))));const K=W(g);let U=T,V=S;if(w(D)&&E(o))V=b;else{k(t,V,b);const e=(e,t)=>{const n=B(s,e)??[],o=B(s,t)??[],r=D.findIndex(((e,t)=>n[t]!==o[t]));return r<0?0:ge(n[r],o[r])*(D[r][1]?-1:1)},s=W(),n=W();C(V,t,w(D)?V.addRowIdsListener(t,(()=>N(n))):V.addRowListener(t,null,((e,o,r)=>{let a=null;if(V.hasRow(t,r)){const e=B(s,r)??[],o=V.getRow(t,r),l=e=>o[e];if(a=R(D,(([e])=>e(l,r))),d(e,a))return void(B(n,r)&&b.setRow(t,r,o))}q(s,r,a),N(n)})),V.addTableListener(t,(()=>{if(Q(n)&&(b.delTable(t),V.hasTable(t))){const s=V.getTable(t);h(u(oe(s),e),(e=>q(n,e,0))),h(m(o,(([e,t])=>{return s=P(n),o=e,r=e+t,s.slice(o,r);var s,o,r}),(()=>P(n))),(e=>{b.setRow(t,e,s[e]),q(n,e,1)}))}})))}if(Q(K)&&w(p))U=V;else{k(t,U,V);const e=W();H(K,((t,[s,n])=>Z(G(e,s,Y),[t,n])));const s=Y();H(F,(t=>J(e,t)?0:Z(s,t)));const n=W(),o=(s,n,o,r)=>m(s,(([s,a,l,d])=>{H(n,((t,[n])=>{const a=G(s,t,W),l=B(a,o),i=r?void 0:n;if(l!==i){const s=Y([[l,i]]),n=x(a);q(a,o,i),O(B(e,t),(([e,t])=>{const o=Ie(d[e],n,a,s,t);d[e]=E(ue(o))?null:o}))}})),(Q(a)||!i(p,(e=>e((e=>d[e]))))?V.delRow:V.setRow)(t,l,d)}));C(U,t,U.addRowListener(t,null,((r,a,l,i)=>{const d=[],c=[],u=W(),h=U.hasRow(t,l);let R=!h;O(s,(e=>{const[s,n,o]=i(t,l,e);I(d,n),I(c,o),R||=s})),H(e,(e=>{const[s,,n]=i(t,l,e);(R||s)&&q(u,e,[n])})),R&&o(X(n,d,void 0,(([,e,s])=>{if(j(e,l),Q(e))return V.delRow(t,s),1})),u,l,1),h&&o(X(n,c,(()=>{const e={};return O(s,(s=>e[s]=U.getCell(t,l,s))),[W(),Y(),V.addRow(t,e,1),e]}),(([,e])=>{Z(e,l)})),u,l)})))}k(t,e,U);const $=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);h(a,(s=>{const[o,,r,a,i]=B(z,s),d=r?.(l,n),[c,u]=B(i,n)??[];d!=c&&(E(u)||v(t,u),q(i,n,E(d)?null:[d,...L(t,1,e.addRowListener(o,d,(()=>$(n,o,d,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...E(o)?[s,n,t]:t===s?[s,n,o]:[B(z,t)?.[0],B(B(z,t)?.[4],n)?.[0],o]);U.transaction((()=>i(c,(e=>e(o)))?H(F,((e,s)=>he(U,t,n,e,s(o,n)))):U.delRow(t,n)))})(n)},{3:_}=B(z,null);return U.transaction((()=>L(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?$(r,s,r,_):(U.delRow(t,r),O(z,(({4:e})=>m(B(e,r),(([,s])=>{v(t,s),q(e,r)})))))}))))),A},delQueryDefinition:e=>(H(B(p,e),((e,t)=>O(t,(t=>e.delListener(t))))),y(e),c(e),A),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:r,getTableId:a,getResultTable:e=>b.getTable(e),getResultRowIds:e=>b.getRowIds(e),getResultSortedRowIds:(e,t,s)=>b.getSortedRowIds(e,t,s),getResultRow:(e,t)=>b.getRow(e,t),getResultCellIds:(e,t)=>b.getCellIds(e,t),getResultCell:(e,t,s)=>b.getCell(e,t,s),hasResultTable:e=>b.hasTable(e),hasResultRow:(e,t)=>b.hasRow(e,t),hasResultCell:(e,t,s)=>b.hasCell(e,t,s),forEachResultTable:e=>b.forEachTable(e),forEachResultRow:(e,t)=>b.forEachRow(e,t),forEachResultCell:(e,t,s)=>b.forEachCell(e,t,s),addResultTableListener:(e,t)=>b.addTableListener(e,((e,...s)=>t(A,...s))),addResultRowIdsListener:(e,t,s)=>b.addRowIdsListener(e,((e,...s)=>t(A,...s)),s),addResultSortedRowIdsListener:(e,t,s,n)=>b.addSortedRowIdsListener(e,t,s,((e,...t)=>n(A,...t))),addResultRowListener:(e,t,s)=>b.addRowListener(e,t,((e,...t)=>s(A,...t))),addResultCellIdsListener:(e,t,s)=>b.addCellIdsListener(e,t,((e,...t)=>s(A,...t))),addResultCellListener:(e,t,s,n)=>b.addCellListener(e,t,s,((e,...t)=>n(A,...t))),delListener:e=>(b.delListener(e),A),destroy:g,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=b.getListenerStats();return n}};return ae(A)})),Me=ee((e=>{const t=W(),s=W(),n=W(),o=W(),[r,a,l,i,d,c,,,u,h,R]=$(e,(()=>[W(),W(),W(),W()]),(e=>E(e)?void 0:e+"")),[g,f,w]=se((()=>T)),L=(e,t,s)=>m(c(e),(([n,,o])=>{if(!J(o,t)){const r=Y();if(d(e)!=v(e))Z(r,t);else{let e=t;for(;!E(e)&&!J(r,e);)Z(r,e),e=B(n,e)}if(s)return r;q(o,t,r)}return B(o,t)})),I=(e,t)=>m(c(e),(([,,e])=>q(e,t))),v=e=>B(t,e),T={setRelationshipDefinition:(e,r,a,l)=>(q(t,e,a),u(e,r,((t,r)=>{const a=Y(),l=Y(),i=Y(),[d,u]=c(e);O(r,(([t,s],n)=>{E(t)||(Z(l,t),m(B(u,t),(e=>{j(e,n),Q(e)&&q(u,t)}))),E(s)||(Z(l,s),J(u,s)||q(u,s,Y()),Z(B(u,s),n)),Z(a,n),q(d,n,s),H(B(o,e),(t=>{J(L(e,t),n)&&Z(i,t)}))})),t(),O(a,(t=>f(s,[e,t]))),O(l,(t=>f(n,[e,t]))),O(i,(t=>{I(e,t),f(o,[e,t])}))}),_(l)),T),delRelationshipDefinition:e=>(q(t,e),h(e),T),getStore:r,getRelationshipIds:a,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:v,getRemoteRowId:(e,t)=>B(c(e)?.[0],t),getLocalRowIds:(e,t)=>z(B(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(c(e))?[t]:z(L(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(L(e,t),g(s,o,[e,t])),delListener:e=>(I(...w(e)),T),destroy:R,getListenerStats:()=>({})};return ae(T)})),De=e=>[e,e],xe=e=>0==((e,t=A)=>t(e[0])+t(e[1]))(e),Ae=()=>[W(),W()],Fe=()=>[Ae(),Ae()],Je=(e,t,s,n=q)=>{const o=(r=P(e),a=e=>!le(t,e),r.filter(a));var r,a;return h(oe(t),(n=>s(e,n,t[n]))),h(o,(t=>n(e,t))),e},Qe=(e,t,s)=>E(e)||!(e=>y(e,ne)&&e.constructor==ne)(e)||ce(e)||re(e)?(s?.(),!1):(de(e,((s,n)=>{t(s,n)||ie(e,n)})),!ce(e)),ze=(e,t,s)=>q(e,t,B(e,t)==-s?void 0:s),Ne=()=>{let e,t,s=0,n=0;const o=W(),a=W(),i=W(),c=W(),g=W(),f=W(),w=W(),L=W(),v=Ae(),b=Fe(),p=Ae(),C=Fe(),y=Ae(),D=Ae(),A=Fe(),F=Ae(),z=Ae(),X=Ae(),[$,_,ee,te,ne]=se((()=>nt)),oe=(t,s)=>(!e||J(f,s)||We(s))&&Qe(t,((e,t)=>re(s,t,e)),(()=>We(s))),re=(e,t,s,n)=>Qe(n?s:we(s,e,t),((n,o)=>m(Re(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>We(e,t))),Re=(t,s,n,o)=>e?m(B(B(f,t),n),(e=>ue(o)!=e.type?We(t,s,n,o,e.default):o),(()=>We(t,s,n,o))):E(ue(o))?We(t,s,n,o):o,we=(e,t,s)=>(m(B(w,t),(([n,o])=>{O(n,((t,s)=>{le(e,s)||(e[s]=t)})),O(o,(n=>{le(e,n)||We(t,s,n)}))})),e),Le=e=>Je(f,e,((e,t,s)=>{const n=W(),o=Y();Je(G(f,t,W),s,((e,t,s)=>{q(e,t,s),m(s.default,(e=>q(n,t,e)),(()=>Z(o,t)))})),q(w,t,[n,o])}),((e,t)=>{q(f,t),q(w,t)})),Ie=e=>Je(L,e,((e,t,s)=>ve(t,s)),((e,t)=>ye(t))),ve=(e,t)=>Je(G(L,e,(()=>(ke(e,1),W()))),t,((t,s,n)=>Te(e,t,s,n)),((t,s)=>Ee(e,t,s))),Te=(e,t,s,n,o)=>Je(G(t,s,(()=>(Me(e,s,1),W()))),n,((t,n,o)=>Se(e,s,t,n,o)),((n,r)=>me(e,t,s,n,r,o))),Se=(e,t,s,n,o)=>{J(s,n)||Oe(e,t,n,1);const r=B(s,n);o!==r&&(je(e,t,n,r,o),q(s,n,o))},be=(e,t,s,n,o)=>m(B(t,s),(t=>Se(e,s,t,n,o)),(()=>Te(e,t,s,we({[n]:o},e,s)))),pe=e=>{const t=""+s++;return J(e,t)?pe(e):t},Ce=e=>B(L,e)??ve(e,{}),ye=e=>ve(e,{}),Ee=(e,t,s)=>Te(e,t,s,{},!0),me=(e,t,s,n,o,r)=>{const a=B(B(w,e)?.[0],o);if(!E(a)&&!r)return Se(e,s,n,o,a);const l=t=>{je(e,s,t,B(n,t)),Oe(e,s,t,-1),q(n,t)};E(a)?l(o):H(n,l),Q(n)&&(Me(e,s,-1),Q(q(t,s))&&(ke(e,-1),q(L,e)))},ke=(e,t)=>ze(Q(o)?q(o,null,te(b[0][1])||te(b[1][1])?Ue():0):o,e,t),Me=(e,t,s)=>ze(G(a,e,(()=>W([[null,te(C[0][1],[e])||te(C[1][1],[e])?Ve(e):0]]))),t,s),Oe=(e,t,s,n)=>ze(G(G(i,e,W),t,(()=>W([[null,te(A[0][1],[e,t])||te(A[1][1],[e,t])?Ye(e,t):0]]))),s,n),je=(e,t,s,n,o)=>G(G(G(c,e,W),t,W),s,(()=>[n,0]))[1]=o,We=(e,t,s,n,o)=>(I(G(G(G(g,e,W),t,W),s,(()=>[])),n),o),Pe=(e,t,s)=>m(B(B(B(c,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...De(Ze(e,t,s))])),Be=e=>Q(g)||Q(z[e])?0:O(e?U(g,V):g,((t,s)=>O(t,((t,n)=>O(t,((t,o)=>_(z[e],[s,n,o],t))))))),He=(e,t,s,n)=>x(t)>1?(_(e[0],n),_(e[1],n),1):Q(t)||0==B(t,null)||d(B(t,null),s(...n??[]))?void 0:(_(e[1],n),1),qe=e=>{const t=Q(y[e]),s=xe(A[e])&&xe(C[e])&&t&&xe(b[e]),n=Q(F[e])&&Q(D[e])&&Q(p[e])&&Q(v[e]);if(!s||!n){const r=e?[U(o),V(a),U(i,V),U(c,V)]:[o,a,i,c];if(!s){O(r[2],((t,s)=>O(t,((t,n)=>He(A[e],t,Ye,[s,n])))));const s=Y();O(r[1],((n,o)=>{He(C[e],n,Ve,[o])&&!t&&(_(y[e],[o,null]),Z(s,o))})),t||O(r[3],((t,n)=>{if(!J(s,n)){const s=Y();O(t,(e=>O(e,(([t,n],o)=>n!==t?Z(s,o):j(e,o))))),O(s,(t=>_(y[e],[n,t])))}})),He(b[e],r[0],Ue)}if(!n){let t;O(r[3],((s,n)=>{let o;O(s,((s,r)=>{let a;O(s,(([s,l],i)=>{l!==s&&(_(F[e],[n,r,i],l,s,Pe),t=o=a=1)})),a&&_(D[e],[n,r],Pe)})),o&&_(p[e],[n],Pe)})),t&&_(v[e],void 0,Pe)}}},Ge=(e,...t)=>(et((()=>e(...R(t,fe)))),nt),Ke=()=>K(L,(e=>K(e,K))),Ue=()=>P(L),Ve=e=>P(B(L,fe(e))),Xe=(e,t,s)=>{const n=[];return H(B(L,fe(e)),((e,s)=>I(n,[E(t)?e:B(s,fe(t)),e]))),R(u(n,(([e],[t])=>ge(e,t)*(s?-1:1))),(([,e])=>e))},Ye=(e,t)=>P(B(B(L,fe(e)),fe(t))),Ze=(e,t,s)=>B(B(B(L,fe(e)),fe(t)),fe(s)),$e=e=>Ge((()=>(e=>Qe(e,oe,We))(e)?Ie(e):0)),_e=()=>Ge((()=>Ie({}))),et=(e,t)=>{if(-1==n)return;tt();const s=e?.();return st(t),s},tt=()=>(n++,nt),st=e=>(n>0&&(n--,0==n&&(t=!Q(c),n=1,Be(1),t&&qe(1),n=-1,e?.(K(c,(e=>K(e,(e=>K(e,(e=>[...e]),(([e,t])=>e===t))),ce)),ce),K(g,(e=>K(e,K))))&&(n=1,O(c,((e,t)=>O(e,((e,s)=>O(e,(([e],n)=>he(nt,t,s,n,e))))))),n=-1,t=!1),_(X[0],void 0,t),Be(0),t&&qe(0),_(X[1],void 0,t),n=0,h([c,g,o,a,i],N))),nt),nt={getTables:Ke,getTableIds:Ue,getTable:e=>K(B(L,fe(e)),K),getRowIds:Ve,getSortedRowIds:Xe,getRow:(e,t)=>K(B(B(L,fe(e)),fe(t))),getCellIds:Ye,getCell:Ze,hasTables:()=>!Q(L),hasTable:e=>J(L,fe(e)),hasRow:(e,t)=>J(B(L,fe(e)),fe(t)),hasCell:(e,t,s)=>J(B(B(L,fe(e)),fe(t)),fe(s)),getJson:()=>T(L),getSchemaJson:()=>T(f),setTables:$e,setTable:(e,t)=>Ge((e=>oe(t,e)?ve(e,t):0),e),setRow:(e,t,s)=>Ge(((e,t)=>re(fe(e),fe(t),s)?Te(fe(e),Ce(fe(e)),fe(t),s):0),e,t),addRow:(e,t,s)=>et((()=>{e=fe(e);const n=re(e,void 0,t),o=n||s?pe(B(L,e)):void 0;return n&&Te(e,Ce(e),o,t),o})),setPartialRow:(e,t,s)=>Ge(((e,t)=>{if(re(e,t,s,1)){const n=Ce(e);de(s,((s,o)=>be(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ge(((e,t,s)=>m(Re(e,t,s,M(n)?n(Ze(e,t,s)):n),(n=>be(e,Ce(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?_e():$e(S(e))}catch{}return nt},setSchema:t=>Ge((()=>{if((e=(e=>Qe(e,(e=>Qe(e,(e=>{if(!Qe(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!k(t)&&t!=r||(ue(e.default)!=t&&ie(e,"default"),0))})))))(t))&&(Le(t),!Q(L))){const e=Ke();_e(),$e(e)}})),delTables:_e,delTable:e=>Ge((e=>J(L,e)?ye(e):0),e),delRow:(e,t)=>Ge(((e,t)=>m(B(L,e),(s=>J(s,t)?Ee(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ge(((e,t,s)=>m(B(L,e),(o=>m(B(o,t),(r=>J(r,s)?me(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>Ge((()=>{Le({}),e=!1})),transaction:et,startTransaction:tt,finishTransaction:st,forEachTable:e=>O(L,((t,s)=>e(s,(e=>O(t,((t,s)=>e(s,(e=>H(t,e))))))))),forEachRow:(e,t)=>O(B(L,fe(e)),((e,s)=>t(s,(t=>H(e,t))))),forEachCell:(e,t,s)=>H(B(B(L,fe(e)),fe(t)),s),addTablesListener:(e,t)=>$(e,v[t?1:0]),addTableIdsListener:(e,t,s)=>$(e,b[s?1:0][t?1:0]),addTableListener:(e,t,s)=>$(t,p[s?1:0],[e]),addRowIdsListener:(e,t,s,n)=>$(t,C[n?1:0][s?1:0],[e]),addSortedRowIdsListener:(e,t,s,n,o)=>{let r=Xe(e,t,s);return $((()=>{const o=Xe(e,t,s);d(o,r)||(r=o,n(nt,e,t,s,r))}),y[o?1:0],[e,t])},addRowListener:(e,t,s,n)=>$(s,D[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n,o)=>$(s,A[o?1:0][n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>$(n,F[o?1:0],[e,t,s]),addInvalidCellListener:(e,t,s,n,o)=>$(n,z[o?1:0],[e,t,s]),addWillFinishTransactionListener:e=>$(e,X[0]),addDidFinishTransactionListener:e=>$(e,X[1]),callListener:e=>(ne(e,[Ue,Ve,Ye],(e=>E(e[2])?[]:De(Ze(...e)))),nt),delListener:e=>(ee(e),nt),getListenerStats:()=>({}),createStore:Ne};return ae(nt)};export{Re as createCheckpoints,Te as createCustomPersister,ye as createFilePersister,we as createIndexes,pe as createLocalPersister,ve as createMetrics,ke as createQueries,Me as createRelationships,me as createRemotePersister,Ce as createSessionPersister,Ne as createStore,ge as defaultSorter,fe as id};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|