tinybase 0.9.2 → 1.0.1
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/LICENSE +1 -1
- package/lib/checkpoints.d.ts +38 -20
- package/lib/common.d.ts +56 -0
- package/lib/common.js +1 -0
- package/lib/common.js.gz +0 -0
- package/lib/debug/checkpoints.d.ts +38 -20
- package/lib/debug/common.d.ts +56 -0
- package/lib/debug/common.js +3 -0
- package/lib/debug/indexes.d.ts +39 -76
- package/lib/debug/indexes.js +17 -9
- package/lib/debug/metrics.d.ts +49 -20
- package/lib/debug/persisters.d.ts +207 -17
- package/lib/debug/relationships.d.ts +48 -23
- package/lib/debug/store.d.ts +184 -102
- package/lib/debug/tinybase.d.ts +1 -2
- package/lib/debug/tinybase.js +16 -8
- package/lib/debug/ui-react.d.ts +271 -163
- package/lib/debug/ui-react.js +24 -15
- package/lib/indexes.d.ts +39 -76
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.d.ts +49 -20
- package/lib/persisters.d.ts +207 -17
- package/lib/relationships.d.ts +48 -23
- package/lib/store.d.ts +184 -102
- package/lib/tinybase.d.ts +1 -2
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/ui-react.d.ts +271 -163
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/common.js +1 -0
- package/lib/umd/common.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.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 +24 -15
- package/readme.md +13 -13
package/lib/tinybase.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This everything.
|
|
2
|
+
* This is everything.
|
|
3
3
|
*
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
@@ -9,6 +9,5 @@ export * from './common';
|
|
|
9
9
|
export * from './indexes';
|
|
10
10
|
export * from './metrics';
|
|
11
11
|
export * from './persisters';
|
|
12
|
-
export * from './react';
|
|
13
12
|
export * from './relationships';
|
|
14
13
|
export * from './store';
|
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),r=s(0),a=s(s),i=(e,t)=>e.includes(t),d=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),l=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),u=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),h=e=>e.slice(1),p=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),w=JSON.parse,v=Math.max,I=Math.min,y=isFinite,S=(e,t)=>e instanceof t,R=e=>null==e,T=(e,t,s)=>R(e)?s?.():t(e),b=e=>e==n||e==o,m=e=>s(e)==a,C=()=>{},k=e=>e.size,A=(e,t)=>e?.has(t)??!1,M=e=>R(e)||0==k(e),E=e=>[...e?.values()??[]],x=e=>e.clear(),D=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),F=e=>new Map(e),z=(e=F)=>[e(),e()],N=e=>[...e?.keys()??[]],O=(e,t)=>e?.get(t),j=(e,t)=>D(e,((e,s)=>t(s,e))),P=(e,t,s)=>R(s)?(J(e,t),e):e?.set(t,s),B=(e,t,s,n)=>(A(e,t)||(n?.(s),e.set(t,s)),O(e,t)),H=(e,t)=>{const s={},n=t??(e=>e);return D(e,((e,t)=>s[t]=n(e))),s},W=(e,t)=>{const s=F(),n=t??(e=>e);return D(e,((e,t)=>s.set(t,n(e)))),s},q=e=>new Set(e),G=(e,t)=>e?.add(t),K=(e,t,s)=>{const n=e.hasRow,o=F(),r=F(),a=F(),i=F(),d=F(),l=t=>T(O(d,t),(s=>{D(s,e.delListener),P(d,t)})),u=e=>{P(o,e),P(r,e),P(a,e),P(i,e),l(e)};return[()=>e,()=>N(o),e=>O(o,e),e=>O(r,e),(e,t)=>P(r,e,t),(u,g,f,L,h)=>{const p=F(),w=F();P(o,u,g),A(r,u)||(P(r,u,t()),P(a,u,F()),P(i,u,F()));const v=O(a,u),I=O(i,u),y=t=>{const o=s=>e.getCell(g,t,s),r=O(v,t),a=n(g,t)?s(L(o,t)):void 0;if(r!=a&&P(p,t,[r,a]),!R(h)){const e=O(I,t),s=n(g,t)?h(o,t):void 0;e!=s&&P(w,t,s)}},S=e=>{f((()=>{D(p,(([,e],t)=>P(v,t,e))),D(w,((e,t)=>P(I,t,e)))}),p,w,v,I,e),x(p),x(w)};j(v,y),e.hasTable(g)&&c(e.getRowIds(g),(e=>{A(v,e)||y(e)})),S(!0),l(u),P(d,u,q([e.addRowListener(g,null,((e,t,s)=>y(s))),e.addTableListener(g,(()=>S()))]))},u,()=>j(d,u)]},Q=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),U=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},V=(e,t,s)=>g(s)<2?G(f(s)?e:B(e,s[0],q()),t):V(B(e,s[0],F()),t,h(s)),X=e=>{const t=(s,n,...o)=>T(s,(s=>f(o)?e(s,n):c([o[0],null],(e=>t(O(s,e),n,...h(o))))));return t},Y=e=>{let t,s=0;const n=[],o=F();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return P(o,d,[r,a,i]),V(a,d,i),d},(e,s=[],...n)=>X(D)(e,(e=>T(O(o,e),(([e])=>e(t,...s,...n)))),...s),e=>T(O(o,e),(([,t,s])=>(X(J)(t,e,...s),P(o,e),g(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>T(O(o,e),(([e,,o])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...n(a)):R(o[i])?c(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},Z=Object,$=Z.keys,_=Z.isFrozen,ee=Z.freeze,te=(e,t)=>!R(((e,t)=>T(e,(e=>e[t])))(e,t)),se=(e,t)=>delete e[t],ne=(e,t)=>c(Z.entries(e),(([e,s])=>t(s,e))),oe=U((e=>{let t,s,n,o=100,r=F(),a=1;const d=q(),l=F(),[u,L,h]=Y((()=>j)),p=F(),w=F(),v=[],I=[],y=(t,s)=>{a=0,e.transaction((()=>D(O(p,s),((s,n)=>D(s,((s,o)=>D(s,((s,r)=>R(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{P(p,e),P(w,e),L(l,[e])},b=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??g(e)),S),m=()=>b(v,g(v)-o),C=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){T(t,(()=>{v.push(t),m(),b(I),t=void 0,n=1}));const e=B(r,s,F()),a=B(e,o,F()),c=B(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&M(P(a,i))&&M(P(e,o))&&M(P(r,s))&&(t=v.pop(),n=1),J()}})),k=(e="")=>(R(t)&&(t=""+s++,P(p,t,r),N(t,e),r=F(),n=1),t),E=()=>{f(v)||(I.unshift(k()),y(0,t),t=v.pop(),n=1)},x=()=>{f(I)||(v.push(t),t=I.shift(),y(1,t),n=1)},J=()=>{n&&(L(d),n=0)},z=e=>{const t=k(e);return J(),t},N=(e,t)=>(A(p,e)&&O(w,e)!==t&&(P(w,e,t),L(l,[e])),j),j={setSize:e=>(o=e,m(),j),addCheckpoint:z,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],getCheckpoint:e=>O(w,e),goBackward:()=>(E(),J(),j),goForward:()=>(x(),J(),j),goTo:e=>{const s=i(v,e)?E:i(I,e)?x:null;for(;!R(s)&&e!=t;)s();return J(),j},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,l,[e]),delListener:e=>(h(e),j),clear:()=>(b(v),b(I),R(t)||S(t),t=void 0,s=0,z(),j),destroy:()=>{e.delListener(C)},getListenerStats:()=>({})};return ee(j.clear())})),re=U((e=>{const t=F(),s=F(),[n,o,r,a,i,c,u,g]=K(e,F,(e=>R(e)?"":e+"")),[f,L,h]=Y((()=>p)),p={setIndexDefinition:(e,n,o,r,u,g=ae)=>{const f=R(u)?void 0:([e],[t])=>u(e,t);return c(e,n,((n,o,c,u,h)=>{let p=0;const w=q(),v=q(),I=a(e);if(D(o,(([e,t],s)=>{R(e)||(G(w,e),T(O(I,e),(t=>{J(t,s),M(t)&&(P(I,e),p=1)}))),R(t)||(G(w,t),A(I,t)||(P(I,t,q()),p=1),G(O(I,t),s),R(r)||G(v,t))})),n(),j(c,(e=>T(O(u,e),(e=>G(v,e))))),M(h)||D(v,(e=>{const t=(t,s)=>g(O(h,t),O(h,s),e),s=[...O(I,e)];d(s,t)||(P(I,e,q(l(s,t))),G(w,e))})),p){if(!R(f)){const t=[...I];d(t,f)||i(e,F(l(t,f)))}L(t,[e])}D(w,(t=>L(s,[e,t])))}),Q(o),T(r,Q)),p},delIndexDefinition:e=>(u(e),p),getStore:n,getIndexIds:o,getTableId:r,getSliceIds:e=>N(a(e)),getSliceRowIds:(e,t)=>E(O(a(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(h(e),p),destroy:g,getListenerStats:()=>({})};return ee(p)})),ae=(e,t)=>e<t?-1:1,ie=F([["avg",[(e,t)=>u(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=>v(...e),(e,t)=>v(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:v(t,e)]],["min",[e=>I(...e),(e,t)=>I(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:I(t,e)]],["sum",[e=>u(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),de=U((e=>{const t=F(),[s,n,o,r,a,i,d,l]=K(e,C,(e=>isNaN(e)||R(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,g]=Y((()=>f)),f={setMetricDefinition:(e,s,n,o,d,l,c)=>{const g=m(n)?[n,d,l,c]:O(ie,n)??O(ie,"sum");return i(e,s,((s,n,o,i,d,l)=>{let c=r(e),f=k(i);const[L,h,p,w]=g;l=l||R(c),D(n,(([e,t])=>{l||(c=R(e)?h?.(c,t,f++):R(t)?p?.(c,e,f--):w?.(c,t,e,f)),l=l||R(c)})),s(),M(i)?c=void 0:l&&(c=L(E(i),k(i))),y(c)||(c=void 0);const v=r(e);c!=v&&(a(e,c),u(t,[e],c,v))}),Q(o,1)),f},delMetricDefinition:e=>(d(e),f),getStore:s,getMetricIds:n,getTableId:o,getMetric:r,addMetricListener:(e,s)=>c(s,t,[e]),delListener:e=>(g(e),f),destroy:l,getListenerStats:()=>({})};return ee(f)})),le=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();R(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(T(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(i)},ce=globalThis.window,ue=(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()},ce.addEventListener("storage",n)}),(()=>{ce.removeEventListener("storage",n),n=void 0}))},ge=(e,t)=>ue(e,t,localStorage),fe=(e,t)=>ue(e,t,sessionStorage),Le=(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}))},he=e=>e.headers.get("ETag"),pe=(e,t,s,n)=>{let o,r;return le(e,(async()=>{const e=await fetch(t);return r=he(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=he(s);R(r)||R(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{T(o,clearInterval),o=void 0}))},we=U((e=>{const t=F(),s=F(),n=F(),o=F(),[r,a,i,d,l,c,u,g]=K(e,(()=>[F(),F(),F(),F()]),(e=>R(e)?void 0:e+"")),[f,L,h]=Y((()=>I)),p=(e,t,s)=>T(d(e),(([n,,o])=>{if(!A(o,t)){const r=q();if(i(e)!=v(e))G(r,t);else{let e=t;for(;!R(e)&&!A(r,e);)G(r,e),e=O(n,e)}if(s)return r;P(o,t,r)}return O(o,t)})),w=(e,t)=>T(d(e),(([,,e])=>P(e,t))),v=e=>O(t,e),I={setRelationshipDefinition:(e,r,a,i)=>(P(t,e,a),c(e,r,((t,r)=>{const a=q(),i=q(),l=q(),[c,u]=d(e);D(r,(([t,s],n)=>{R(t)||(G(i,t),T(O(u,t),(e=>{J(e,n),M(e)&&P(u,t)}))),R(s)||(G(i,s),A(u,s)||P(u,s,q()),G(O(u,s),n)),G(a,n),P(c,n,s),j(O(o,e),(t=>{A(p(e,t),n)&&G(l,t)}))})),t(),D(a,(t=>L(s,[e,t]))),D(i,(t=>L(n,[e,t]))),D(l,(t=>{w(e,t),L(o,[e,t])}))}),Q(i)),I),delRelationshipDefinition:e=>(P(t,e),u(e),I),getStore:r,getRelationshipIds:a,getLocalTableId:i,getRemoteTableId:v,getRemoteRowId:(e,t)=>O(d(e)?.[0],t),getLocalRowIds:(e,t)=>E(O(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>R(d(e))?[t]:E(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=>(w(...h(e)),I),destroy:g,getListenerStats:()=>({})};return ee(I)})),ve=(e,t,s,n=P)=>{const o=(r=N(e),a=e=>!te(t,e),r.filter(a));var r,a;return c($(t),(n=>s(e,n,t[n]))),c(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return b(t)||t==r&&y(e)?t:void 0},ye=(e,t)=>!(R(e)||!(e=>S(e,Z)&&e.constructor==Z)(e)||_(e))&&(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!(e=>f($(e)))(e)),Se=(e,t,s)=>P(e,t,O(e,t)==-s?void 0:s),Re=()=>{let e,t=0,s=0;const n=F(),o=F(),a=F(),d=F(),l=F(),u=F(),g=F(),f=z(q),L=z(q),h=z(),v=z(),I=z(),y=z(),S=z(),[C,k,E,J]=Y((()=>Me)),G=(t,s)=>(!e||A(l,s))&&ye(t,(e=>K(s,e))),K=(e,t,s)=>ye(s?t:U(t,e),((s,n)=>T(Q(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),Q=(t,s,n)=>e?T(O(O(l,t),s),(e=>Ie(n)!=e.type?e.default:n)):R(Ie(n))?void 0:n,U=(e,t)=>(T(O(u,t),(t=>ne(t,((t,s)=>{te(e,s)||(e[s]=t)})))),e),V=e=>ve(l,e,((e,t,s)=>{const n={};ve(B(l,t,F()),s,((e,t,s)=>{P(e,t,s),T(s.default,(e=>n[t]=e))})),P(u,t,n)}),((e,t)=>{P(l,t),P(u,t)})),X=e=>ve(g,e,((e,t,s)=>Z(t,s)),((e,t)=>de(t))),Z=(e,t)=>ve(B(g,e,F(),(()=>ue(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>le(e,t,s))),$=(e,t,s,n,o)=>ve(B(t,s,F(),(()=>ge(e,s,1))),n,((t,n,o)=>_(e,s,t,n,o)),((n,r)=>ce(e,t,s,n,r,o))),_=(e,t,s,n,o)=>{A(s,n)||fe(e,t,n,1);const r=O(s,n);o!==r&&(Le(e,t,n,r),P(s,n,o))},oe=(e,t,s)=>Ae((()=>$(e,ie(e),t,s))),re=(e,t,s,n,o)=>T(O(t,s),(t=>_(e,s,t,n,o)),(()=>$(e,t,s,U({[n]:o},e)))),ae=e=>{const s=""+t++;return A(e,s)?ae(e):s},ie=e=>O(g,e)??Z(e,{}),de=e=>Z(e,{}),le=(e,t,s)=>$(e,t,s,{},!0),ce=(e,t,s,n,o,r)=>{const a=O(u,e)?.[o];if(!R(a)&&!r)return _(e,s,n,o,a);const i=t=>{Le(e,s,t,O(n,t)),fe(e,s,t,-1),P(n,t)};R(a)?i(o):j(n,i),M(n)&&(ge(e,s,-1),M(P(t,s))&&(ue(e,-1),P(g,e)))},ue=(e,t)=>Se(n,e,t),ge=(e,t,s)=>Se(B(o,e,F()),t,s),fe=(e,t,s,n)=>Se(B(B(a,e,F()),t,F()),s,n),Le=(e,t,s,n)=>B(B(B(d,e,F()),t,F()),s,n),he=(e,t,s)=>{const n=O(O(d,e),t),o=me(e,t,s);return A(n,s)?[!0,O(n,s),o]:[!1,o,o]},pe=e=>{const t=M(y[e])&&M(v[e])&&M(L[e]),s=M(S[e])&&M(I[e])&&M(h[e])&&M(f[e]);if(t&&s)return;const r=e?[W(n),W(o,W),W(a,(e=>W(e,W))),W(d,(e=>W(e,W)))]:[n,o,a,d];if(t||(D(r[2],((t,s)=>D(t,((t,n)=>{M(t)||k(y[e],[s,n])})))),D(r[1],((t,s)=>{M(t)||k(v[e],[s])})),M(r[0])||k(L[e])),!s){let t;D(r[3],((s,n)=>{let o;D(s,((s,r)=>{let a;D(s,((s,i)=>{const d=me(n,r,i);d!==s&&(k(S[e],[n,r,i],d,s,he),t=o=a=1)})),a&&k(I[e],[n,r],he)})),o&&k(h[e],[n],he)})),t&&k(f[e],[],he)}},we=()=>H(g,(e=>H(e,H))),Re=()=>N(g),Te=e=>N(O(g,e)),be=(e,t)=>N(O(O(g,e),t)),me=(e,t,s)=>O(O(O(g,e),t),s),Ce=e=>((e=>ye(e,G))(e)&&Ae((()=>X(e))),Me),ke=()=>(Ae((()=>X({}))),Me),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,pe(1),s=-1,pe(0),s=0,c([d,n,o,a],x)),t},Me={getTables:we,getTableIds:Re,getTable:e=>H(O(g,e),H),getRowIds:Te,getRow:(e,t)=>H(O(O(g,e),t)),getCellIds:be,getCell:me,hasTable:e=>A(g,e),hasRow:(e,t)=>A(O(g,e),t),hasCell:(e,t,s)=>A(O(O(g,e),t),s),getJson:()=>p(g),getSchemaJson:()=>p(l),setTables:Ce,setTable:(e,t)=>(G(t,e)&&Ae((()=>Z(e,t))),Me),setRow:(e,t,s)=>(K(e,s)&&oe(e,t,s),Me),addRow:(e,t)=>{let s;return K(e,t)&&(s=ae(O(g,e)),oe(e,s,t)),s},setPartialRow:(e,t,s)=>(K(e,s,1)&&Ae((()=>{const n=ie(e);ne(s,((s,o)=>re(e,n,t,o,s)))})),Me),setCell:(e,t,s,n)=>(T(Q(e,s,m(n)?n(me(e,t,s)):n),(n=>Ae((()=>re(e,ie(e),t,s,n))))),Me),setJson:e=>{try{"{}"===e?ke():Ce(w(e))}catch{}return Me},setSchema:t=>{if((e=(e=>ye(e,(e=>ye(e,(e=>{if(!ye(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!b(t)&&t!=r||(Ie(e.default)!=t&&se(e,"default"),0))})))))(t))&&(V(t),!M(g))){const e=we();ke(),Ce(e)}return Me},delTables:ke,delTable:e=>(A(g,e)&&Ae((()=>de(e))),Me),delRow:(e,t)=>(T(O(g,e),(s=>{A(s,t)&&Ae((()=>le(e,s,t)))})),Me),delCell:(e,t,s,n)=>(T(O(g,e),(o=>T(O(o,t),(r=>{A(r,s)&&Ae((()=>ce(e,o,t,r,s,n)))})))),Me),delSchema:()=>(V({}),e=!1,Me),transaction:Ae,forEachTable:e=>D(g,((t,s)=>e(s,(e=>D(t,((t,s)=>e(s,(e=>j(t,e))))))))),forEachRow:(e,t)=>D(O(g,e),((e,s)=>t(s,(t=>j(e,t))))),forEachCell:(e,t,s)=>j(O(O(g,e),t),s),addTablesListener:(e,t)=>C(e,f[t?1:0]),addTableIdsListener:(e,t)=>C(e,L[t?1:0]),addTableListener:(e,t,s)=>C(t,h[s?1:0],[e]),addRowIdsListener:(e,t,s)=>C(t,v[s?1:0],[e]),addRowListener:(e,t,s,n)=>C(s,I[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>C(s,y[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>C(n,S[o?1:0],[e,t,s]),callListener:e=>(J(e,[Re,Te,be],(e=>R(e[2])?[]:[,,].fill(me(...e)))),Me),delListener:e=>(E(e),Me),getListenerStats:()=>({})};return ee(Me)};export{oe as createCheckpoints,le as createCustomPersister,Le as createFilePersister,re as createIndexes,ge as createLocalPersister,de as createMetrics,we as createRelationships,pe as createRemotePersister,fe as createSessionPersister,Re as createStore,ae as defaultSorter};
|
|
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),i=(e,t)=>e.includes(t),d=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),l=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),u=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),h=e=>e.slice(1),p=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),w=JSON.parse,v=Math.max,I=Math.min,y=isFinite,S=(e,t)=>e instanceof t,R=e=>null==e,T=(e,t,s)=>R(e)?s?.():t(e),b=e=>e==n||e==o,m=e=>s(e)==a,C=()=>{},k=e=>e.size,A=(e,t)=>e?.has(t)??!1,M=e=>R(e)||0==k(e),E=e=>[...e?.values()??[]],x=e=>e.clear(),D=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),F=e=>new Map(e),z=(e=F)=>[e(),e()],N=e=>[...e?.keys()??[]],O=(e,t)=>e?.get(t),j=(e,t)=>D(e,((e,s)=>t(s,e))),P=(e,t,s)=>R(s)?(J(e,t),e):e?.set(t,s),B=(e,t,s,n)=>(A(e,t)||(n?.(s),e.set(t,s)),O(e,t)),H=(e,t)=>{const s={},n=t??(e=>e);return D(e,((e,t)=>s[t]=n(e))),s},W=(e,t)=>{const s=F(),n=t??(e=>e);return D(e,((e,t)=>s.set(t,n(e)))),s},q=e=>new Set(e),G=(e,t)=>e?.add(t),K=(e,t,s)=>{const n=e.hasRow,o=F(),r=F(),a=F(),i=F(),d=F(),l=t=>T(O(d,t),(s=>{D(s,e.delListener),P(d,t)})),u=e=>{P(o,e),P(r,e),P(a,e),P(i,e),l(e)};return[()=>e,()=>N(o),e=>O(o,e),e=>O(r,e),(e,t)=>P(r,e,t),(u,g,f,L,h)=>{const p=F(),w=F();P(o,u,g),A(r,u)||(P(r,u,t()),P(a,u,F()),P(i,u,F()));const v=O(a,u),I=O(i,u),y=t=>{const o=s=>e.getCell(g,t,s),r=O(v,t),a=n(g,t)?s(L(o,t)):void 0;if(r!=a&&P(p,t,[r,a]),!R(h)){const e=O(I,t),s=n(g,t)?h(o,t):void 0;e!=s&&P(w,t,s)}},S=e=>{f((()=>{D(p,(([,e],t)=>P(v,t,e))),D(w,((e,t)=>P(I,t,e)))}),p,w,v,I,e),x(p),x(w)};j(v,y),e.hasTable(g)&&c(e.getRowIds(g),(e=>{A(v,e)||y(e)})),S(!0),l(u),P(d,u,q([e.addRowListener(g,null,((e,t,s)=>y(s))),e.addTableListener(g,(()=>S()))]))},u,()=>j(d,u)]},Q=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),U=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},V=(e,t,s)=>g(s)<2?G(f(s)?e:B(e,s[0],q()),t):V(B(e,s[0],F()),t,h(s)),X=e=>{const t=(s,n,...o)=>T(s,(s=>f(o)?e(s,n):c([o[0],null],(e=>t(O(s,e),n,...h(o))))));return t},Y=e=>{let t,s=0;const n=[],o=F();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return P(o,d,[r,a,i]),V(a,d,i),d},(e,s=[],...n)=>X(D)(e,(e=>T(O(o,e),(([e])=>e(t,...s,...n)))),...s),e=>T(O(o,e),(([,t,s])=>(X(J)(t,e,...s),P(o,e),g(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>T(O(o,e),(([e,,o])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...n(a)):R(o[i])?c(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},Z=Object,$=Z.keys,_=Z.isFrozen,ee=Z.freeze,te=(e,t)=>!R(((e,t)=>T(e,(e=>e[t])))(e,t)),se=(e,t)=>delete e[t],ne=(e,t)=>c(Z.entries(e),(([e,s])=>t(s,e))),oe=U((e=>{let t,s,n,o=100,r=F(),a=1;const d=q(),l=F(),[u,L,h]=Y((()=>j)),p=F(),w=F(),v=[],I=[],y=(t,s)=>{a=0,e.transaction((()=>D(O(p,s),((s,n)=>D(s,((s,o)=>D(s,((s,r)=>R(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{P(p,e),P(w,e),L(l,[e])},b=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??g(e)),S),m=()=>b(v,g(v)-o),C=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){T(t,(()=>{v.push(t),m(),b(I),t=void 0,n=1}));const e=B(r,s,F()),a=B(e,o,F()),c=B(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&M(P(a,i))&&M(P(e,o))&&M(P(r,s))&&(t=v.pop(),n=1),J()}})),k=(e="")=>(R(t)&&(t=""+s++,P(p,t,r),N(t,e),r=F(),n=1),t),E=()=>{f(v)||(I.unshift(k()),y(0,t),t=v.pop(),n=1)},x=()=>{f(I)||(v.push(t),t=I.shift(),y(1,t),n=1)},J=()=>{n&&(L(d),n=0)},z=e=>{const t=k(e);return J(),t},N=(e,t)=>(A(p,e)&&O(w,e)!==t&&(P(w,e,t),L(l,[e])),j),j={setSize:e=>(o=e,m(),j),addCheckpoint:z,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],getCheckpoint:e=>O(w,e),goBackward:()=>(E(),J(),j),goForward:()=>(x(),J(),j),goTo:e=>{const s=i(v,e)?E:i(I,e)?x:null;for(;!R(s)&&e!=t;)s();return J(),j},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,l,[e]),delListener:e=>(h(e),j),clear:()=>(b(v),b(I),R(t)||S(t),t=void 0,s=0,z(),j),destroy:()=>{e.delListener(C)},getListenerStats:()=>({})};return ee(j.clear())})),re=(e,t)=>e<t?-1:1,ae=U((e=>{const t=F(),s=F(),[n,o,r,a,i,c,u,g]=K(e,F,(e=>R(e)?"":e+"")),[f,L,h]=Y((()=>p)),p={setIndexDefinition:(e,n,o,r,u,g=re)=>{const f=R(u)?void 0:([e],[t])=>u(e,t);return c(e,n,((n,o,c,u,h,p)=>{let w=0;const v=q(),I=q(),y=a(e);if(D(o,(([e,t],s)=>{R(e)||(G(v,e),T(O(y,e),(t=>{J(t,s),M(t)&&(P(y,e),w=1)}))),R(t)||(G(v,t),A(y,t)||(P(y,t,q()),w=1),G(O(y,t),s),R(r)||G(I,t))})),n(),M(h)||(p?j(y,(e=>G(I,e))):j(c,(e=>T(O(u,e),(e=>G(I,e))))),D(I,(e=>{const t=(t,s)=>g(O(h,t),O(h,s),e),s=[...O(y,e)];d(s,t)||(P(y,e,q(l(s,t))),G(v,e))}))),(w||p)&&!R(f)){const t=[...y];d(t,f)||(i(e,F(l(t,f))),w=1)}w&&L(t,[e]),D(v,(t=>L(s,[e,t])))}),Q(o),T(r,Q)),p},delIndexDefinition:e=>(u(e),p),getStore:n,getIndexIds:o,getTableId:r,getSliceIds:e=>N(a(e)),getSliceRowIds:(e,t)=>E(O(a(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(h(e),p),destroy:g,getListenerStats:()=>({})};return ee(p)})),ie=F([["avg",[(e,t)=>u(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=>v(...e),(e,t)=>v(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:v(t,e)]],["min",[e=>I(...e),(e,t)=>I(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:I(t,e)]],["sum",[e=>u(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),de=U((e=>{const t=F(),[s,n,o,r,a,i,d,l]=K(e,C,(e=>isNaN(e)||R(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,g]=Y((()=>f)),f={setMetricDefinition:(e,s,n,o,d,l,c)=>{const g=m(n)?[n,d,l,c]:O(ie,n)??O(ie,"sum");return i(e,s,((s,n,o,i,d,l)=>{let c=r(e),f=k(i);const[L,h,p,w]=g;l=l||R(c),D(n,(([e,t])=>{l||(c=R(e)?h?.(c,t,f++):R(t)?p?.(c,e,f--):w?.(c,t,e,f)),l=l||R(c)})),s(),M(i)?c=void 0:l&&(c=L(E(i),k(i))),y(c)||(c=void 0);const v=r(e);c!=v&&(a(e,c),u(t,[e],c,v))}),Q(o,1)),f},delMetricDefinition:e=>(d(e),f),getStore:s,getMetricIds:n,getTableId:o,getMetric:r,addMetricListener:(e,s)=>c(s,t,[e]),delListener:e=>(g(e),f),destroy:l,getListenerStats:()=>({})};return ee(f)})),le=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();R(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(T(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(i)},ce=globalThis.window,ue=(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()},ce.addEventListener("storage",n)}),(()=>{ce.removeEventListener("storage",n),n=void 0}))},ge=(e,t)=>ue(e,t,localStorage),fe=(e,t)=>ue(e,t,sessionStorage),Le=(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}))},he=e=>e.headers.get("ETag"),pe=(e,t,s,n)=>{let o,r;return le(e,(async()=>{const e=await fetch(t);return r=he(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=he(s);R(r)||R(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{T(o,clearInterval),o=void 0}))},we=U((e=>{const t=F(),s=F(),n=F(),o=F(),[r,a,i,d,l,c,u,g]=K(e,(()=>[F(),F(),F(),F()]),(e=>R(e)?void 0:e+"")),[f,L,h]=Y((()=>I)),p=(e,t,s)=>T(d(e),(([n,,o])=>{if(!A(o,t)){const r=q();if(i(e)!=v(e))G(r,t);else{let e=t;for(;!R(e)&&!A(r,e);)G(r,e),e=O(n,e)}if(s)return r;P(o,t,r)}return O(o,t)})),w=(e,t)=>T(d(e),(([,,e])=>P(e,t))),v=e=>O(t,e),I={setRelationshipDefinition:(e,r,a,i)=>(P(t,e,a),c(e,r,((t,r)=>{const a=q(),i=q(),l=q(),[c,u]=d(e);D(r,(([t,s],n)=>{R(t)||(G(i,t),T(O(u,t),(e=>{J(e,n),M(e)&&P(u,t)}))),R(s)||(G(i,s),A(u,s)||P(u,s,q()),G(O(u,s),n)),G(a,n),P(c,n,s),j(O(o,e),(t=>{A(p(e,t),n)&&G(l,t)}))})),t(),D(a,(t=>L(s,[e,t]))),D(i,(t=>L(n,[e,t]))),D(l,(t=>{w(e,t),L(o,[e,t])}))}),Q(i)),I),delRelationshipDefinition:e=>(P(t,e),u(e),I),getStore:r,getRelationshipIds:a,getLocalTableId:i,getRemoteTableId:v,getRemoteRowId:(e,t)=>O(d(e)?.[0],t),getLocalRowIds:(e,t)=>E(O(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>R(d(e))?[t]:E(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=>(w(...h(e)),I),destroy:g,getListenerStats:()=>({})};return ee(I)})),ve=(e,t,s,n=P)=>{const o=(r=N(e),a=e=>!te(t,e),r.filter(a));var r,a;return c($(t),(n=>s(e,n,t[n]))),c(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return b(t)||t==r&&y(e)?t:void 0},ye=(e,t)=>!(R(e)||!(e=>S(e,Z)&&e.constructor==Z)(e)||_(e))&&(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!(e=>f($(e)))(e)),Se=(e,t,s)=>P(e,t,O(e,t)==-s?void 0:s),Re=()=>{let e,t=0,s=0;const n=F(),o=F(),a=F(),d=F(),l=F(),u=F(),g=F(),f=z(q),L=z(q),h=z(),v=z(),I=z(),y=z(),S=z(),[C,k,E,J]=Y((()=>Me)),G=(t,s)=>(!e||A(l,s))&&ye(t,(e=>K(s,e))),K=(e,t,s)=>ye(s?t:U(t,e),((s,n)=>T(Q(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),Q=(t,s,n)=>e?T(O(O(l,t),s),(e=>Ie(n)!=e.type?e.default:n)):R(Ie(n))?void 0:n,U=(e,t)=>(T(O(u,t),(t=>ne(t,((t,s)=>{te(e,s)||(e[s]=t)})))),e),V=e=>ve(l,e,((e,t,s)=>{const n={};ve(B(l,t,F()),s,((e,t,s)=>{P(e,t,s),T(s.default,(e=>n[t]=e))})),P(u,t,n)}),((e,t)=>{P(l,t),P(u,t)})),X=e=>ve(g,e,((e,t,s)=>Z(t,s)),((e,t)=>de(t))),Z=(e,t)=>ve(B(g,e,F(),(()=>ue(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>le(e,t,s))),$=(e,t,s,n,o)=>ve(B(t,s,F(),(()=>ge(e,s,1))),n,((t,n,o)=>_(e,s,t,n,o)),((n,r)=>ce(e,t,s,n,r,o))),_=(e,t,s,n,o)=>{A(s,n)||fe(e,t,n,1);const r=O(s,n);o!==r&&(Le(e,t,n,r),P(s,n,o))},oe=(e,t,s)=>Ae((()=>$(e,ie(e),t,s))),re=(e,t,s,n,o)=>T(O(t,s),(t=>_(e,s,t,n,o)),(()=>$(e,t,s,U({[n]:o},e)))),ae=e=>{const s=""+t++;return A(e,s)?ae(e):s},ie=e=>O(g,e)??Z(e,{}),de=e=>Z(e,{}),le=(e,t,s)=>$(e,t,s,{},!0),ce=(e,t,s,n,o,r)=>{const a=O(u,e)?.[o];if(!R(a)&&!r)return _(e,s,n,o,a);const i=t=>{Le(e,s,t,O(n,t)),fe(e,s,t,-1),P(n,t)};R(a)?i(o):j(n,i),M(n)&&(ge(e,s,-1),M(P(t,s))&&(ue(e,-1),P(g,e)))},ue=(e,t)=>Se(n,e,t),ge=(e,t,s)=>Se(B(o,e,F()),t,s),fe=(e,t,s,n)=>Se(B(B(a,e,F()),t,F()),s,n),Le=(e,t,s,n)=>B(B(B(d,e,F()),t,F()),s,n),he=(e,t,s)=>{const n=O(O(d,e),t),o=me(e,t,s);return A(n,s)?[!0,O(n,s),o]:[!1,o,o]},pe=e=>{const t=M(y[e])&&M(v[e])&&M(L[e]),s=M(S[e])&&M(I[e])&&M(h[e])&&M(f[e]);if(t&&s)return;const r=e?[W(n),W(o,W),W(a,(e=>W(e,W))),W(d,(e=>W(e,W)))]:[n,o,a,d];if(t||(D(r[2],((t,s)=>D(t,((t,n)=>{M(t)||k(y[e],[s,n])})))),D(r[1],((t,s)=>{M(t)||k(v[e],[s])})),M(r[0])||k(L[e])),!s){let t;D(r[3],((s,n)=>{let o;D(s,((s,r)=>{let a;D(s,((s,i)=>{const d=me(n,r,i);d!==s&&(k(S[e],[n,r,i],d,s,he),t=o=a=1)})),a&&k(I[e],[n,r],he)})),o&&k(h[e],[n],he)})),t&&k(f[e],[],he)}},we=()=>H(g,(e=>H(e,H))),Re=()=>N(g),Te=e=>N(O(g,e)),be=(e,t)=>N(O(O(g,e),t)),me=(e,t,s)=>O(O(O(g,e),t),s),Ce=e=>((e=>ye(e,G))(e)&&Ae((()=>X(e))),Me),ke=()=>(Ae((()=>X({}))),Me),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,pe(1),s=-1,pe(0),s=0,c([d,n,o,a],x)),t},Me={getTables:we,getTableIds:Re,getTable:e=>H(O(g,e),H),getRowIds:Te,getRow:(e,t)=>H(O(O(g,e),t)),getCellIds:be,getCell:me,hasTable:e=>A(g,e),hasRow:(e,t)=>A(O(g,e),t),hasCell:(e,t,s)=>A(O(O(g,e),t),s),getJson:()=>p(g),getSchemaJson:()=>p(l),setTables:Ce,setTable:(e,t)=>(G(t,e)&&Ae((()=>Z(e,t))),Me),setRow:(e,t,s)=>(K(e,s)&&oe(e,t,s),Me),addRow:(e,t)=>{let s;return K(e,t)&&(s=ae(O(g,e)),oe(e,s,t)),s},setPartialRow:(e,t,s)=>(K(e,s,1)&&Ae((()=>{const n=ie(e);ne(s,((s,o)=>re(e,n,t,o,s)))})),Me),setCell:(e,t,s,n)=>(T(Q(e,s,m(n)?n(me(e,t,s)):n),(n=>Ae((()=>re(e,ie(e),t,s,n))))),Me),setJson:e=>{try{"{}"===e?ke():Ce(w(e))}catch{}return Me},setSchema:t=>{if((e=(e=>ye(e,(e=>ye(e,(e=>{if(!ye(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!b(t)&&t!=r||(Ie(e.default)!=t&&se(e,"default"),0))})))))(t))&&(V(t),!M(g))){const e=we();ke(),Ce(e)}return Me},delTables:ke,delTable:e=>(A(g,e)&&Ae((()=>de(e))),Me),delRow:(e,t)=>(T(O(g,e),(s=>{A(s,t)&&Ae((()=>le(e,s,t)))})),Me),delCell:(e,t,s,n)=>(T(O(g,e),(o=>T(O(o,t),(r=>{A(r,s)&&Ae((()=>ce(e,o,t,r,s,n)))})))),Me),delSchema:()=>(V({}),e=!1,Me),transaction:Ae,forEachTable:e=>D(g,((t,s)=>e(s,(e=>D(t,((t,s)=>e(s,(e=>j(t,e))))))))),forEachRow:(e,t)=>D(O(g,e),((e,s)=>t(s,(t=>j(e,t))))),forEachCell:(e,t,s)=>j(O(O(g,e),t),s),addTablesListener:(e,t)=>C(e,f[t?1:0]),addTableIdsListener:(e,t)=>C(e,L[t?1:0]),addTableListener:(e,t,s)=>C(t,h[s?1:0],[e]),addRowIdsListener:(e,t,s)=>C(t,v[s?1:0],[e]),addRowListener:(e,t,s,n)=>C(s,I[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>C(s,y[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>C(n,S[o?1:0],[e,t,s]),callListener:e=>(J(e,[Re,Te,be],(e=>R(e[2])?[]:[,,].fill(me(...e)))),Me),delListener:e=>(E(e),Me),getListenerStats:()=>({})};return ee(Me)};export{oe as createCheckpoints,le as createCustomPersister,Le as createFilePersister,ae as createIndexes,ge as createLocalPersister,de as createMetrics,we as createRelationships,pe as createRemotePersister,fe as createSessionPersister,Re as createStore,re as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|