tinybase 2.1.1 → 2.2.0-beta.0
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/bin/cli.js +2 -0
- package/lib/checkpoints.d.ts +0 -2
- package/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/debug/checkpoints.d.ts +0 -2
- package/lib/debug/checkpoints.js +4 -2
- package/lib/debug/indexes.d.ts +0 -2
- package/lib/debug/indexes.js +2 -1
- package/lib/debug/metrics.d.ts +0 -2
- package/lib/debug/metrics.js +2 -1
- package/lib/debug/queries.d.ts +0 -2
- package/lib/debug/relationships.d.ts +0 -2
- package/lib/debug/relationships.js +2 -1
- package/lib/debug/store.d.ts +1 -1
- package/lib/debug/store.js +10 -12
- package/lib/debug/tinybase.js +12 -13
- package/lib/debug/tools.d.ts +290 -0
- package/lib/debug/tools.js +955 -0
- package/lib/es6/checkpoints.d.ts +0 -2
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/indexes.d.ts +0 -2
- package/lib/es6/metrics.d.ts +0 -2
- package/lib/es6/queries.d.ts +0 -2
- package/lib/es6/relationships.d.ts +0 -2
- package/lib/es6/store.d.ts +1 -1
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.d.ts +290 -0
- package/lib/es6/tools.js +1 -0
- package/lib/es6/tools.js.gz +0 -0
- package/lib/indexes.d.ts +0 -2
- package/lib/metrics.d.ts +0 -2
- package/lib/queries.d.ts +0 -2
- package/lib/relationships.d.ts +0 -2
- package/lib/store.d.ts +1 -1
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.d.ts +290 -0
- package/lib/tools.js +1 -0
- package/lib/tools.js.gz +0 -0
- package/lib/umd/checkpoints.d.ts +0 -2
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.d.ts +0 -2
- package/lib/umd/metrics.d.ts +0 -2
- package/lib/umd/queries.d.ts +0 -2
- package/lib/umd/relationships.d.ts +0 -2
- package/lib/umd/store.d.ts +1 -1
- 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/tools.d.ts +290 -0
- package/lib/umd/tools.js +1 -0
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd-es6/checkpoints.d.ts +0 -2
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/indexes.d.ts +0 -2
- package/lib/umd-es6/metrics.d.ts +0 -2
- package/lib/umd-es6/queries.d.ts +0 -2
- package/lib/umd-es6/relationships.d.ts +0 -2
- package/lib/umd-es6/store.d.ts +1 -1
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.d.ts +290 -0
- package/lib/umd-es6/tools.js +1 -0
- package/lib/umd-es6/tools.js.gz +0 -0
- package/package.json +24 -15
- package/readme.md +12 -12
package/lib/es6/checkpoints.d.ts
CHANGED
|
@@ -913,8 +913,6 @@ export interface Checkpoints {
|
|
|
913
913
|
* The createCheckpoints function creates a Checkpoints object, and is the main
|
|
914
914
|
* entry point into the checkpoints module.
|
|
915
915
|
*
|
|
916
|
-
* It is trivially simple.
|
|
917
|
-
*
|
|
918
916
|
* A given Store can only have one Checkpoints object associated with it. If you
|
|
919
917
|
* call this function twice on the same Store, your second call will return a
|
|
920
918
|
* reference to the Checkpoints object created by the first.
|
package/lib/es6/checkpoints.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=(e,n)=>e.includes(n),n=(e,n)=>e.forEach(n),t=e=>e.length,l=e=>0==t(e),r=(e,...n)=>e.push(...n),o=e=>e.pop(),s=e=>e.shift(),u=e=>null==e,i=(e,n,t)=>u(e)?null==t?void 0:t():n(e),d=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},c=e=>u(e)||0==(e=>e.size)(e),a=(e,n)=>null==e?void 0:e.forEach(n),h=(e,n)=>null==e?void 0:e.delete(n),p=e=>new Map(e),v=(e,n)=>null==e?void 0:e.get(n),C=(e,n,t)=>u(t)?(h(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(d(e,n)||C(e,n,t()),v(e,n)),k=(e,n,l,r,o=0)=>i((l?g:v)(e,n[o],o>t(n)-2?l:p),(s=>{if(o>t(n)-2)return(null==r?void 0:r(s))&&C(e,n[o]),s;const u=k(s,n,l,r,o+1);return c(s)&&C(e,n[o]),u})),f=e=>new Set(Array.isArray(e)||u(e)?e:[e]),L=/^\d+$/,w=e=>{let l;const[o,d]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=s(e))?t:""+n++},n=>{L.test(n)&&t(e)<1e3&&r(e,n)}]})(),g=p();return[(n,t,r)=>{null!=l||(l=e());const s=o();var u,i;return C(g,s,[n,t,r]),u=k(t,null!=r?r:[""],f),i=s,null==u||u.add(i),s},(e,o,...s)=>n(((e,l=[""])=>{const o=[],s=(e,u)=>u==t(l)?r(o,e):null===l[u]?a(e,(e=>s(e,u+1))):n([l[u],null],(n=>s(v(e,n),u+1)));return s(e,0),o})(e,o),(e=>a(e,(e=>v(g,e)[0](l,...null!=o?o:[],...s))))),e=>i(v(g,e),(([,n,t])=>(k(n,null!=t?t:[""],void 0,(n=>(h(n,e),c(n)?1:0))),C(g,e),d(e),t))),(e,r,o)=>i(v(g,e),(([e,,s=[]])=>{const i=(...d)=>{const c=t(d);c==t(s)?e(l,...d,...o(d)):u(s[c])?n(r[c](...d),(e=>i(...d,e))):i(...d,s[c])};i()}))]},S=Object.freeze,y=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((h=>{let k,f,L,y=100,z=p(),E=1;const A=p(),I=p(),[M,b,j]=w((()=>Q)),x=p(),B=p(),F=[],O=[],T=(e,n)=>{E=0,h.transaction((()=>a(v(x,n),((n,t)=>a(n,((n,l)=>a(n,((n,r)=>((e,n,t,l,r)=>u(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(h,t,l,r,n[e]))))))))),E=1},W=e=>{C(x,e),C(B,e),b(I,[e])},$=(e,l)=>n(((e,n)=>e.splice(0,n))(e,null!=l?l:t(e)),W),m=()=>$(F,t(F)-y),q=h.addCellListener(null,null,null,((e,n,t,l,s,u)=>{if(E){i(k,(()=>{r(F,k),m(),$(O),k=void 0,L=1}));const e=g(z,n,p),d=g(e,t,p),a=g(d,l,(()=>[u,void 0]));a[1]=s,a[0]===s&&c(C(d,l))&&c(C(e,t))&&c(C(z,n))&&(k=o(F),L=1),J()}})),D=(e="")=>(u(k)&&(k=""+f++,C(x,k,z),N(k,e),z=p(),L=1),k),G=()=>{l(F)||(
|
|
1
|
+
const e=(e,n)=>e.includes(n),n=(e,n)=>e.forEach(n),t=e=>e.length,l=e=>0==t(e),r=(e,...n)=>e.push(...n),o=e=>e.pop(),s=e=>e.shift(),u=e=>null==e,i=(e,n,t)=>u(e)?null==t?void 0:t():n(e),d=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},c=e=>u(e)||0==(e=>e.size)(e),a=(e,n)=>null==e?void 0:e.forEach(n),h=(e,n)=>null==e?void 0:e.delete(n),p=e=>new Map(e),v=(e,n)=>null==e?void 0:e.get(n),C=(e,n,t)=>u(t)?(h(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(d(e,n)||C(e,n,t()),v(e,n)),k=(e,n,l,r,o=0)=>i((l?g:v)(e,n[o],o>t(n)-2?l:p),(s=>{if(o>t(n)-2)return(null==r?void 0:r(s))&&C(e,n[o]),s;const u=k(s,n,l,r,o+1);return c(s)&&C(e,n[o]),u})),f=e=>new Set(Array.isArray(e)||u(e)?e:[e]),L=/^\d+$/,w=e=>{let l;const[o,d]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=s(e))?t:""+n++},n=>{L.test(n)&&t(e)<1e3&&r(e,n)}]})(),g=p();return[(n,t,r)=>{null!=l||(l=e());const s=o();var u,i;return C(g,s,[n,t,r]),u=k(t,null!=r?r:[""],f),i=s,null==u||u.add(i),s},(e,o,...s)=>n(((e,l=[""])=>{const o=[],s=(e,u)=>u==t(l)?r(o,e):null===l[u]?a(e,(e=>s(e,u+1))):n([l[u],null],(n=>s(v(e,n),u+1)));return s(e,0),o})(e,o),(e=>a(e,(e=>v(g,e)[0](l,...null!=o?o:[],...s))))),e=>i(v(g,e),(([,n,t])=>(k(n,null!=t?t:[""],void 0,(n=>(h(n,e),c(n)?1:0))),C(g,e),d(e),t))),(e,r,o)=>i(v(g,e),(([e,,s=[]])=>{const i=(...d)=>{const c=t(d);c==t(s)?e(l,...d,...o(d)):u(s[c])?n(r[c](...d),(e=>i(...d,e))):i(...d,s[c])};i()}))]},S=Object.freeze,y=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((h=>{let k,f,L,y=100,z=p(),E=1;const A=p(),I=p(),[M,b,j]=w((()=>Q)),x=p(),B=p(),F=[],O=[],T=(e,n)=>{E=0,h.transaction((()=>a(v(x,n),((n,t)=>a(n,((n,l)=>a(n,((n,r)=>((e,n,t,l,r)=>u(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(h,t,l,r,n[e]))))))))),E=1},W=e=>{C(x,e),C(B,e),b(I,[e])},$=(e,l)=>n(((e,n)=>e.splice(0,n))(e,null!=l?l:t(e)),W),m=()=>$(F,t(F)-y),q=h.addCellListener(null,null,null,((e,n,t,l,s,u)=>{if(E){i(k,(()=>{r(F,k),m(),$(O),k=void 0,L=1}));const e=g(z,n,p),d=g(e,t,p),a=g(d,l,(()=>[u,void 0]));a[1]=s,a[0]===s&&c(C(d,l))&&c(C(e,t))&&c(C(z,n))&&(k=o(F),L=1),J()}})),D=(e="")=>(u(k)&&(k=""+f++,C(x,k,z),N(k,e),z=p(),L=1),k),G=()=>{l(F)||(((e,...n)=>{e.unshift(...n)})(O,D()),T(0,k),k=o(F),L=1)},H=()=>{l(O)||(r(F,k),k=s(O),T(1,k),L=1)},J=()=>{L&&(b(A),L=0)},K=e=>{const n=D(e);return J(),n},N=(e,n)=>(P(e)&&v(B,e)!==n&&(C(B,e,n),b(I,[e])),Q),P=e=>d(x,e),Q={setSize:e=>(y=e,m(),Q),addCheckpoint:K,setCheckpoint:N,getStore:()=>h,getCheckpointIds:()=>[[...F],k,[...O]],forEachCheckpoint:e=>{return n=e,a(B,((e,t)=>n(t,e)));var n},hasCheckpoint:P,getCheckpoint:e=>v(B,e),goBackward:()=>(G(),J(),Q),goForward:()=>(H(),J(),Q),goTo:n=>{const t=e(F,n)?G:e(O,n)?H:null;for(;!u(t)&&n!=k;)t();return J(),Q},addCheckpointIdsListener:e=>M(e,A),addCheckpointListener:(e,n)=>M(n,I,[e]),delListener:e=>(j(e),Q),clear:()=>($(F),$(O),u(k)||W(k),k=void 0,f=0,K(),Q),destroy:()=>{h.delListener(q)},getListenerStats:()=>({})};return S(Q.clear())}));export{y as createCheckpoints};
|
|
Binary file
|
package/lib/es6/indexes.d.ts
CHANGED
|
@@ -935,8 +935,6 @@ export interface Indexes {
|
|
|
935
935
|
* The createIndexes function creates an Indexes object, and is the main entry
|
|
936
936
|
* point into the indexes module.
|
|
937
937
|
*
|
|
938
|
-
* It is trivially simple.
|
|
939
|
-
*
|
|
940
938
|
* A given Store can only have one Indexes object associated with it. If you
|
|
941
939
|
* call this function twice on the same Store, your second call will return a
|
|
942
940
|
* reference to the Indexes object created by the first.
|
package/lib/es6/metrics.d.ts
CHANGED
|
@@ -796,8 +796,6 @@ export interface Metrics {
|
|
|
796
796
|
* The createMetrics function creates a Metrics object, and is the main entry
|
|
797
797
|
* point into the metrics module.
|
|
798
798
|
*
|
|
799
|
-
* It is trivially simple.
|
|
800
|
-
*
|
|
801
799
|
* A given Store can only have one Metrics object associated with it. If you
|
|
802
800
|
* call this function twice on the same Store, your second call will return a
|
|
803
801
|
* reference to the Metrics object created by the first.
|
package/lib/es6/queries.d.ts
CHANGED
|
@@ -2992,8 +2992,6 @@ export interface Queries {
|
|
|
2992
2992
|
* The createQueries function creates a Queries object, and is the main entry
|
|
2993
2993
|
* point into the queries module.
|
|
2994
2994
|
*
|
|
2995
|
-
* It is trivially simple.
|
|
2996
|
-
*
|
|
2997
2995
|
* A given Store can only have one Queries object associated with it. If you
|
|
2998
2996
|
* call this function twice on the same Store, your second call will return a
|
|
2999
2997
|
* reference to the Queries object created by the first.
|
|
@@ -1170,8 +1170,6 @@ export interface Relationships {
|
|
|
1170
1170
|
* The createRelationships function creates a Relationships object, and is the
|
|
1171
1171
|
* main entry point into the relationships module.
|
|
1172
1172
|
*
|
|
1173
|
-
* It is trivially simple.
|
|
1174
|
-
*
|
|
1175
1173
|
* A given Store can only have one Relationships object associated with it. If
|
|
1176
1174
|
* you call this function twice on the same Store, your second call will return
|
|
1177
1175
|
* a reference to the Relationships object created by the first.
|
package/lib/es6/store.d.ts
CHANGED
package/lib/es6/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),l=e(!0),n=e(0),r=e(e),s=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,u=(e,t,l)=>e.slice(t,l),d=(e,...t)=>e.push(...t),c=e=>JSON.stringify(e,((e,t)=>{return h(t,Map)?(l=[...t],n=(e,[t,l])=>(e[t]=l,e),r={},l.reduce(n,r)):t;var l,n,r})),v=JSON.parse,f=isFinite,h=(e,t)=>e instanceof t,T=e=>null==e,b=(e,t,l)=>T(e)?null==l?void 0:l():t(e),g=e=>e==t||e==l,w=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},R=e=>T(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>null==e?void 0:e.forEach(t),p=(e,t)=>null==e?void 0:e.delete(t),S=e=>new Map(e),I=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},L=(e,t)=>null==e?void 0:e.get(t),E=(e,t)=>C(e,((e,l)=>t(l,e))),J=(e,t,l)=>T(l)?(p(e,t),e):null==e?void 0:e.set(t,l),m=(e,t,l)=>(w(e,t)||J(e,t,l()),L(e,t)),F=(e,t,l)=>{const n={},r=null!=t?t:e=>e;return C(e,((e,t)=>b(r(e),(e=>(null==l?void 0:l(e))?0:n[t]=e)))),n},z=(e,t)=>{const l=S(),n=null!=t?t:e=>e;return C(e,((e,t)=>l.set(t,n(e)))),l},O=e=>z(e,z),k=(e,t,l,n,r=0)=>b((l?m:L)(e,t[r],r>i(t)-2?l:S),(s=>{if(r>i(t)-2)return(null==n?void 0:n(s))&&J(e,t[r]),s;const o=k(s,t,l,n,r+1);return R(s)&&J(e,t[r]),o})),A=Object,M=A.keys,N=A.isFrozen,j=A.freeze,x=(e,t)=>!T(((e,t)=>b(e,(e=>e[t])))(e,t)),D=(e,t)=>delete e[t],P=(e,t)=>o(A.entries(e),(([e,l])=>t(l,e))),W=e=>{return t=M(e),0==i(t);var t},$=e=>new Set(Array.isArray(e)||T(e)?e:[e]),q=(e,t)=>null==e?void 0:e.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:""+t++},t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>{let t;const[l,n]=G(),r=S();return[(n,s,o)=>{null!=t||(t=e());const a=l();return J(r,a,[n,s,o]),q(k(s,null!=o?o:[""],$),a),a},(e,l,...n)=>o(((e,t=[""])=>{const l=[],n=(e,r)=>r==i(t)?d(l,e):null===t[r]?C(e,(e=>n(e,r+1))):o([t[r],null],(t=>n(L(e,t),r+1)));return n(e,0),l})(e,l),(e=>C(e,(e=>L(r,e)[0](t,...null!=l?l:[],...n))))),e=>b(L(r,e),(([,t,l])=>(k(t,null!=l?l:[""],void 0,(t=>(p(t,e),R(t)?1:0))),J(r,e),n(e),l))),(e,l,n)=>b(L(r,e),(([e,,r=[]])=>{const s=(...a)=>{const u=i(a);u==i(r)?e(t,...a,...n(a)):T(r[u])?o(l[u](...a),(e=>s(...a,e))):s(...a,r[u])};s()}))]},K=e=>[e,e],Q=()=>[S(),S()],U=t=>{const l=e(t);return g(l)||l==n&&f(t)?l:void 0},V=(e,t,l,n=J)=>{const r=(s=I(e),a=e=>!x(t,e),s.filter(a));var s,a;return o(M(t),(n=>l(e,n,t[n]))),o(r,(t=>n(e,t))),e},X=(e,t,l)=>T(e)||!(e=>h(e,A)&&e.constructor==A)(e)||W(e)||N(e)?(null==l||l(),!1):(P(e,((l,n)=>{t(l,n)||D(e,n)})),!W(e)),Y=(e,t,l)=>J(e,t,L(e,t)==-l?void 0:l),Z=()=>{let t,l,f=0;const h=S(),k=S(),A=S(),M=S(),N=S(),B=S(),_=S(),ee=S(),te=S(),le=Q(),ne=Q(),re=Q(),se=Q(),oe=Q(),ae=Q(),ie=Q(),ue=Q(),de=Q(),ce=Q(),[ve,fe,he,Te]=H((()=>Ze)),be=(e,l)=>(!t||w(B,l)||Ne(l))&&X(e,((e,t)=>ge(l,t,e)),(()=>Ne(l))),ge=(e,t,l,n)=>X(n?l:Re(l,e,t),((n,r)=>b(we(e,t,r,n),(e=>(l[r]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(e,l,n,r)=>t?b(L(L(B,e),n),(t=>U(r)!=t.type?Ne(e,l,n,r,t.default):r),(()=>Ne(e,l,n,r))):T(U(r))?Ne(e,l,n,r):r,Re=(e,t,l)=>(b(L(_,t),(([n,r])=>{C(n,((t,l)=>{x(e,l)||(e[l]=t)})),C(r,(n=>{x(e,n)||Ne(t,l,n)}))})),e),ye=e=>V(B,e,((e,t,l)=>{const n=S(),r=$();V(m(B,t,S),l,((e,t,l)=>{J(e,t,l),b(l.default,(e=>J(n,t,e)),(()=>q(r,t)))})),J(_,t,[n,r])}),((e,t)=>{J(B,t),J(_,t)})),Ce=e=>V(te,e,((e,t,l)=>pe(t,l)),((e,t)=>me(t))),pe=(e,t)=>V(m(te,e,(()=>(Oe(e,1),S()))),t,((t,l,n)=>Se(e,t,l,n)),((t,l)=>Fe(e,t,l))),Se=(e,t,l,n,r)=>V(m(t,l,(()=>(ke(e,l,1),S()))),n,((t,n,r)=>Ie(e,l,t,n,r)),((n,s)=>ze(e,t,l,n,s,r))),Ie=(e,t,l,n,r)=>{w(l,n)||Ae(e,t,n,1);const s=L(l,n);r!==s&&(Me(e,t,n,s,r),J(l,n,r))},Le=(e,t,l,n,r)=>b(L(t,l),(t=>Ie(e,l,t,n,r)),(()=>Se(e,t,l,Re({[n]:r},e,l)))),Ee=e=>{const[t]=m(ee,e,G),l=t();return w(L(te,e),l)?Ee(e):l},Je=e=>{var t;return null!=(t=L(te,e))?t:pe(e,{})},me=e=>pe(e,{}),Fe=(e,t,l)=>{const[,n]=m(ee,e,G);n(l),Se(e,t,l,{},!0)},ze=(e,t,l,n,r,s)=>{var o;const a=L(null==(o=L(_,e))?void 0:o[0],r);if(!T(a)&&!s)return Ie(e,l,n,r,a);const i=t=>{Me(e,l,t,L(n,t)),Ae(e,l,t,-1),J(n,t)};T(a)?i(r):E(n,i),R(n)&&(ke(e,l,-1),R(J(t,l))&&(Oe(e,-1),J(te,e),J(ee,e)))},Oe=(e,t)=>Y(h,e,t),ke=(e,t,l)=>Y(m(k,e,S),t,l),Ae=(e,t,l,n)=>Y(m(m(A,e,S),t,S),l,n),Me=(e,t,l,n,r)=>m(m(m(M,e,S),t,S),l,(()=>[n,0]))[1]=r,Ne=(e,t,l,n,r)=>(d(m(m(m(N,e,S),t,S),l,(()=>[])),n),r),je=(e,t,l)=>b(L(L(L(M,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Ke(e,t,l))])),xe=e=>R(N)||R(de[e])?0:C(e?z(N,O):N,((t,l)=>C(t,((t,n)=>C(t,((t,r)=>fe(de[e],[l,n,r],t))))))),De=(e,t,l)=>{if(!R(t))return fe(e,l),1},Pe=e=>{const t=R(oe[e]),l=R(ie[e])&&R(se[e])&&t&&R(ne[e]),n=R(ue[e])&&R(ae[e])&&R(re[e])&&R(le[e]);if(!l||!n){const r=e?[z(h),O(k),z(A,O),z(M,O)]:[h,k,A,M];if(!l){C(r[2],((t,l)=>C(t,((t,n)=>De(ie[e],t,[l,n])))));const l=$();C(r[1],((n,r)=>{De(se[e],n,[r])&&!t&&(fe(oe[e],[r,null]),q(l,r))})),t||C(r[3],((t,n)=>{if(!w(l,n)){const l=$();C(t,(e=>C(e,(([t,n],r)=>n!==t?q(l,r):p(e,r))))),C(l,(t=>fe(oe[e],[n,t])))}})),De(ne[e],r[0])}if(!n){let t;C(r[3],((l,n)=>{let r;C(l,((l,s)=>{let o;C(l,(([l,a],i)=>{a!==l&&(fe(ue[e],[n,s,i],a,l,je),t=r=o=1)})),o&&fe(ae[e],[n,s],je)})),r&&fe(re[e],[n],je)})),t&&fe(le[e],void 0,je)}}},We=(e,...t)=>(Ve((()=>e(...a(t,s)))),Ze),$e=()=>F(te,(e=>F(e,F))),qe=()=>I(te),Be=e=>I(L(te,s(e))),Ge=(e,t,l,n=0,r)=>{
|
|
1
|
+
const e=e=>typeof e,t=e(""),l=e(!0),n=e(0),r=e(e),s=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,u=(e,t,l)=>e.slice(t,l),d=(e,...t)=>e.push(...t),c=e=>JSON.stringify(e,((e,t)=>{return h(t,Map)?(l=[...t],n=(e,[t,l])=>(e[t]=l,e),r={},l.reduce(n,r)):t;var l,n,r})),v=JSON.parse,f=isFinite,h=(e,t)=>e instanceof t,T=e=>null==e,b=(e,t,l)=>T(e)?null==l?void 0:l():t(e),g=e=>e==t||e==l,w=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},R=e=>T(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>null==e?void 0:e.forEach(t),p=(e,t)=>null==e?void 0:e.delete(t),S=e=>new Map(e),I=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},L=(e,t)=>null==e?void 0:e.get(t),E=(e,t)=>C(e,((e,l)=>t(l,e))),J=(e,t,l)=>T(l)?(p(e,t),e):null==e?void 0:e.set(t,l),m=(e,t,l)=>(w(e,t)||J(e,t,l()),L(e,t)),F=(e,t,l)=>{const n={},r=null!=t?t:e=>e;return C(e,((e,t)=>b(r(e),(e=>(null==l?void 0:l(e))?0:n[t]=e)))),n},z=(e,t)=>{const l=S(),n=null!=t?t:e=>e;return C(e,((e,t)=>l.set(t,n(e)))),l},O=e=>z(e,z),k=(e,t,l,n,r=0)=>b((l?m:L)(e,t[r],r>i(t)-2?l:S),(s=>{if(r>i(t)-2)return(null==n?void 0:n(s))&&J(e,t[r]),s;const o=k(s,t,l,n,r+1);return R(s)&&J(e,t[r]),o})),A=Object,M=A.keys,N=A.isFrozen,j=A.freeze,x=(e,t)=>!T(((e,t)=>b(e,(e=>e[t])))(e,t)),D=(e,t)=>delete e[t],P=(e,t)=>o(A.entries(e),(([e,l])=>t(l,e))),W=e=>{return t=M(e),0==i(t);var t},$=e=>new Set(Array.isArray(e)||T(e)?e:[e]),q=(e,t)=>null==e?void 0:e.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:""+t++},t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>{let t;const[l,n]=G(),r=S();return[(n,s,o)=>{null!=t||(t=e());const a=l();return J(r,a,[n,s,o]),q(k(s,null!=o?o:[""],$),a),a},(e,l,...n)=>o(((e,t=[""])=>{const l=[],n=(e,r)=>r==i(t)?d(l,e):null===t[r]?C(e,(e=>n(e,r+1))):o([t[r],null],(t=>n(L(e,t),r+1)));return n(e,0),l})(e,l),(e=>C(e,(e=>L(r,e)[0](t,...null!=l?l:[],...n))))),e=>b(L(r,e),(([,t,l])=>(k(t,null!=l?l:[""],void 0,(t=>(p(t,e),R(t)?1:0))),J(r,e),n(e),l))),(e,l,n)=>b(L(r,e),(([e,,r=[]])=>{const s=(...a)=>{const u=i(a);u==i(r)?e(t,...a,...n(a)):T(r[u])?o(l[u](...a),(e=>s(...a,e))):s(...a,r[u])};s()}))]},K=e=>[e,e],Q=()=>[S(),S()],U=t=>{const l=e(t);return g(l)||l==n&&f(t)?l:void 0},V=(e,t,l,n=J)=>{const r=(s=I(e),a=e=>!x(t,e),s.filter(a));var s,a;return o(M(t),(n=>l(e,n,t[n]))),o(r,(t=>n(e,t))),e},X=(e,t,l)=>T(e)||!(e=>h(e,A)&&e.constructor==A)(e)||W(e)||N(e)?(null==l||l(),!1):(P(e,((l,n)=>{t(l,n)||D(e,n)})),!W(e)),Y=(e,t,l)=>J(e,t,L(e,t)==-l?void 0:l),Z=()=>{let t,l,f=0;const h=S(),k=S(),A=S(),M=S(),N=S(),B=S(),_=S(),ee=S(),te=S(),le=Q(),ne=Q(),re=Q(),se=Q(),oe=Q(),ae=Q(),ie=Q(),ue=Q(),de=Q(),ce=Q(),[ve,fe,he,Te]=H((()=>Ze)),be=(e,l)=>(!t||w(B,l)||Ne(l))&&X(e,((e,t)=>ge(l,t,e)),(()=>Ne(l))),ge=(e,t,l,n)=>X(n?l:Re(l,e,t),((n,r)=>b(we(e,t,r,n),(e=>(l[r]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(e,l,n,r)=>t?b(L(L(B,e),n),(t=>U(r)!=t.type?Ne(e,l,n,r,t.default):r),(()=>Ne(e,l,n,r))):T(U(r))?Ne(e,l,n,r):r,Re=(e,t,l)=>(b(L(_,t),(([n,r])=>{C(n,((t,l)=>{x(e,l)||(e[l]=t)})),C(r,(n=>{x(e,n)||Ne(t,l,n)}))})),e),ye=e=>V(B,e,((e,t,l)=>{const n=S(),r=$();V(m(B,t,S),l,((e,t,l)=>{J(e,t,l),b(l.default,(e=>J(n,t,e)),(()=>q(r,t)))})),J(_,t,[n,r])}),((e,t)=>{J(B,t),J(_,t)})),Ce=e=>V(te,e,((e,t,l)=>pe(t,l)),((e,t)=>me(t))),pe=(e,t)=>V(m(te,e,(()=>(Oe(e,1),S()))),t,((t,l,n)=>Se(e,t,l,n)),((t,l)=>Fe(e,t,l))),Se=(e,t,l,n,r)=>V(m(t,l,(()=>(ke(e,l,1),S()))),n,((t,n,r)=>Ie(e,l,t,n,r)),((n,s)=>ze(e,t,l,n,s,r))),Ie=(e,t,l,n,r)=>{w(l,n)||Ae(e,t,n,1);const s=L(l,n);r!==s&&(Me(e,t,n,s,r),J(l,n,r))},Le=(e,t,l,n,r)=>b(L(t,l),(t=>Ie(e,l,t,n,r)),(()=>Se(e,t,l,Re({[n]:r},e,l)))),Ee=e=>{const[t]=m(ee,e,G),l=t();return w(L(te,e),l)?Ee(e):l},Je=e=>{var t;return null!=(t=L(te,e))?t:pe(e,{})},me=e=>pe(e,{}),Fe=(e,t,l)=>{const[,n]=m(ee,e,G);n(l),Se(e,t,l,{},!0)},ze=(e,t,l,n,r,s)=>{var o;const a=L(null==(o=L(_,e))?void 0:o[0],r);if(!T(a)&&!s)return Ie(e,l,n,r,a);const i=t=>{Me(e,l,t,L(n,t)),Ae(e,l,t,-1),J(n,t)};T(a)?i(r):E(n,i),R(n)&&(ke(e,l,-1),R(J(t,l))&&(Oe(e,-1),J(te,e),J(ee,e)))},Oe=(e,t)=>Y(h,e,t),ke=(e,t,l)=>Y(m(k,e,S),t,l),Ae=(e,t,l,n)=>Y(m(m(A,e,S),t,S),l,n),Me=(e,t,l,n,r)=>m(m(m(M,e,S),t,S),l,(()=>[n,0]))[1]=r,Ne=(e,t,l,n,r)=>(d(m(m(m(N,e,S),t,S),l,(()=>[])),n),r),je=(e,t,l)=>b(L(L(L(M,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Ke(e,t,l))])),xe=e=>R(N)||R(de[e])?0:C(e?z(N,O):N,((t,l)=>C(t,((t,n)=>C(t,((t,r)=>fe(de[e],[l,n,r],t))))))),De=(e,t,l)=>{if(!R(t))return fe(e,l),1},Pe=e=>{const t=R(oe[e]),l=R(ie[e])&&R(se[e])&&t&&R(ne[e]),n=R(ue[e])&&R(ae[e])&&R(re[e])&&R(le[e]);if(!l||!n){const r=e?[z(h),O(k),z(A,O),z(M,O)]:[h,k,A,M];if(!l){C(r[2],((t,l)=>C(t,((t,n)=>De(ie[e],t,[l,n])))));const l=$();C(r[1],((n,r)=>{De(se[e],n,[r])&&!t&&(fe(oe[e],[r,null]),q(l,r))})),t||C(r[3],((t,n)=>{if(!w(l,n)){const l=$();C(t,(e=>C(e,(([t,n],r)=>n!==t?q(l,r):p(e,r))))),C(l,(t=>fe(oe[e],[n,t])))}})),De(ne[e],r[0])}if(!n){let t;C(r[3],((l,n)=>{let r;C(l,((l,s)=>{let o;C(l,(([l,a],i)=>{a!==l&&(fe(ue[e],[n,s,i],a,l,je),t=r=o=1)})),o&&fe(ae[e],[n,s],je)})),r&&fe(re[e],[n],je)})),t&&fe(le[e],void 0,je)}}},We=(e,...t)=>(Ve((()=>e(...a(t,s)))),Ze),$e=()=>F(te,(e=>F(e,F))),qe=()=>I(te),Be=e=>I(L(te,s(e))),Ge=(e,t,l,n=0,r)=>{return a(u((d=L(te,s(e)),c=(e,l)=>[T(t)?l:L(e,s(t)),l],o=a([...null!=(v=null==d?void 0:d.entries())?v:[]],(([e,t])=>c(t,e))),i=([e],[t])=>(e<t?-1:1)*(l?-1:1),o.sort(i)),n,T(r)?r:n+r),(([,e])=>e));var o,i,d,c,v},He=(e,t)=>I(L(L(te,s(e)),s(t))),Ke=(e,t,l)=>L(L(L(te,s(e)),s(t)),s(l)),Qe=e=>We((()=>(e=>X(e,be,Ne))(e)?Ce(e):0)),Ue=()=>We((()=>Ce({}))),Ve=(e,t)=>{if(-1==f)return;Xe();const l=e();return Ye(t),l},Xe=()=>(f++,Ze),Ye=e=>(f>0&&(f--,0==f&&(l=!R(M),f=1,xe(1),l&&Pe(1),f=-1,(null==e?void 0:e(F(M,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),W)),W),F(N,(e=>F(e,F)))))&&(f=1,C(M,((e,t)=>C(e,((e,l)=>C(e,(([e],n)=>((e,t,l,n,r)=>T(r)?e.delCell(t,l,n,!0):e.setCell(t,l,n,r))(Ze,t,l,n,e))))))),f=-1,l=!1),fe(ce[0],void 0,l),xe(0),l&&Pe(0),fe(ce[1],void 0,l),f=0,o([M,N,h,k,A],y))),Ze),Ze={getTables:$e,getTableIds:qe,getTable:e=>F(L(te,s(e)),F),getRowIds:Be,getSortedRowIds:Ge,getRow:(e,t)=>F(L(L(te,s(e)),s(t))),getCellIds:He,getCell:Ke,hasTables:()=>!R(te),hasTable:e=>w(te,s(e)),hasRow:(e,t)=>w(L(te,s(e)),s(t)),hasCell:(e,t,l)=>w(L(L(te,s(e)),s(t)),s(l)),getJson:()=>c(te),getSchemaJson:()=>c(B),setTables:Qe,setTable:(e,t)=>We((e=>be(t,e)?pe(e,t):0),e),setRow:(e,t,l)=>We(((e,t)=>ge(s(e),s(t),l)?Se(s(e),Je(s(e)),s(t),l):0),e,t),addRow:(e,t)=>Ve((()=>{let l;return ge(e,l,t)&&(e=s(e),Se(e,Je(e),l=Ee(e),t)),l})),setPartialRow:(e,t,l)=>We(((e,t)=>{if(ge(e,t,l,1)){const n=Je(e);P(l,((l,r)=>Le(e,n,t,r,l)))}}),e,t),setCell:(t,l,n,s)=>We(((t,l,n)=>b(we(t,l,n,e(s)==r?s(Ke(t,l,n)):s),(e=>Le(t,Je(t),l,n,e)))),t,l,n),setJson:e=>{try{"{}"===e?Ue():Qe(v(e))}catch(e){}return Ze},setSchema:e=>We((()=>{if((t=(e=>X(e,(e=>X(e,(e=>{if(!X(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!g(t)&&t!=n||(U(e.default)!=t&&D(e,"default"),0))})))))(e))&&(ye(e),!R(te))){const e=$e();Ue(),Qe(e)}})),delTables:Ue,delTable:e=>We((e=>w(te,e)?me(e):0),e),delRow:(e,t)=>We(((e,t)=>b(L(te,e),(l=>w(l,t)?Fe(e,l,t):0))),e,t),delCell:(e,t,l,n)=>We(((e,t,l)=>b(L(te,e),(r=>b(L(r,t),(s=>w(s,l)?ze(e,r,t,s,l,n):0))))),e,t,l),delSchema:()=>We((()=>{ye({}),t=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>C(te,((t,l)=>e(l,(e=>C(t,((t,l)=>e(l,(e=>E(t,e))))))))),forEachRow:(e,t)=>C(L(te,s(e)),((e,l)=>t(l,(t=>E(e,t))))),forEachCell:(e,t,l)=>E(L(L(te,s(e)),s(t)),l),addSortedRowIdsListener:(e,t,l,n,r,s,o)=>{let a=Ge(e,t,l,n,r);return ve((()=>{const o=Ge(e,t,l,n,r);var u,d,c;d=a,i(u=o)===i(d)&&(c=(e,t)=>d[t]===e,u.every(c))||(a=o,s(Ze,e,t,l,n,r,a))}),oe[o?1:0],[e,t])},addWillFinishTransactionListener:e=>ve(e,ce[0]),addDidFinishTransactionListener:e=>ve(e,ce[1]),callListener:e=>(Te(e,[qe,Be,He],(e=>T(e[2])?[]:K(Ke(...e)))),Ze),delListener:e=>(he(e),Ze),getListenerStats:()=>({}),createStore:Z};return P({Tables:[0,le],TableIds:[0,ne],Table:[1,re],RowIds:[1,se],Row:[2,ae],CellIds:[2,ie],Cell:[3,ue],InvalidCell:[3,de]},(([e,t],l)=>{Ze["add"+l+"Listener"]=(...l)=>ve(l[e],t[l[e+1]?1:0],e>0?u(l,0,e):void 0)})),j(Ze)};export{Z as createStore};
|
package/lib/es6/store.js.gz
CHANGED
|
Binary file
|
package/lib/es6/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{watch as e,promises as t}from"fs";const n=e=>typeof e,o=n(""),r=n(!0),l=n(0),s=n(n),i=e=>""+e,a=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,n)=>t[n]===e)),u=(e,t)=>d(e,((n,o)=>0==o||t(e[o-1],n)<=0)),v=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),g=e=>y(e,((e,t)=>e+t),0),w=e=>e.length,p=e=>0==w(e),y=(e,t,n)=>e.reduce(t,n),L=(e,t,n)=>e.slice(t,n),R=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>E(t,Map)?y([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),b=JSON.parse,m=Math.max,C=Math.min,x=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,A=(e,t,n)=>k(e)?null==n?void 0:n():t(e),M=e=>e==o||e==r,P=e=>n(e)==s,D=e=>Array.isArray(e),O=()=>{},F=e=>e.size,J=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},j=e=>k(e)||0==F(e),Q=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},z=e=>e.clear(),N=(e,t)=>null==e?void 0:e.forEach(t),W=(e,t)=>null==e?void 0:e.delete(t),B=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},$=(e,t)=>null==e?void 0:e.get(t),q=(e,t)=>N(e,((e,n)=>t(n,e))),G=(e,t,n)=>k(n)?(W(e,t),e):null==e?void 0:e.set(t,n),K=(e,t,n)=>(J(e,t)||G(e,t,n()),$(e,t)),U=(e,t,n)=>{const o={},r=null!=t?t:e=>e;return N(e,((e,t)=>A(r(e),(e=>(null==n?void 0:n(e))?0:o[t]=e)))),o},V=(e,t)=>{const n=B(),o=null!=t?t:e=>e;return N(e,((e,t)=>n.set(t,o(e)))),n},X=e=>V(e,V),Y=(e,t,n,o,r=0)=>A((n?K:$)(e,t[r],r>w(t)-2?n:B),(l=>{if(r>w(t)-2)return(null==o?void 0:o(l))&&G(e,t[r]),l;const s=Y(l,t,n,o,r+1);return j(l)&&G(e,t[r]),s})),Z=e=>new Set(D(e)||k(e)?e:[e]),_=(e,t)=>null==e?void 0:e.add(t),ee=(e,t,n)=>{const o=e.hasRow,r=B(),l=B(),s=B(),i=B(),a=B(),d=(t,n,...o)=>{const r=K(a,t,Z);return h(o,(t=>_(r,t)&&n&&e.callListener(t))),o},u=(t,...n)=>A($(a,t),(o=>{h(p(n)?Q(o):n,(t=>{e.delListener(t),W(o,t)})),j(o)&&G(a,t)})),v=(e,n)=>{G(r,e,n),J(l,e)||(G(l,e,t()),G(s,e,B()),G(i,e,B()))},f=e=>{G(r,e),G(l,e),G(s,e),G(i,e),u(e)};return[()=>e,()=>H(r),e=>q(l,e),e=>J(l,e),e=>$(r,e),e=>$(l,e),(e,t)=>G(l,e,t),v,(t,r,l,a,f)=>{v(t,r);const g=B(),w=B(),p=$(s,t),y=$(i,t),L=t=>{const l=n=>e.getCell(r,t,n),s=$(p,t),i=o(r,t)?n(a(l,t)):void 0;if(s===i||D(s)&&D(i)&&c(s,i)||G(g,t,[s,i]),!k(f)){const e=$(y,t),n=o(r,t)?f(l,t):void 0;e!=n&&G(w,t,n)}},R=e=>{l((()=>{N(g,(([,e],t)=>G(p,t,e))),N(w,((e,t)=>G(y,t,e)))}),g,w,p,y,e),z(g),z(w)};q(p,L),e.hasTable(r)&&h(e.getRowIds(r),(e=>{J(p,e)||L(e)})),R(!0),u(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>L(n))),e.addTableListener(r,(()=>R())))},f,()=>q(a,f),d,u]},te=(e,t)=>n(e)==o?t=>t(e):null!=e?e:()=>null!=t?t:"",ne=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},oe=/^\d+$/,re=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=S(e))?n:""+t++},t=>{oe.test(t)&&w(e)<1e3&&R(e,t)}]},le=e=>{let t;const[n,o]=re(),r=B();return[(o,l,s)=>{null!=t||(t=e());const i=n();return G(r,i,[o,l,s]),_(Y(l,null!=s?s:[""],Z),i),i},(e,n,...o)=>h(((e,t=[""])=>{const n=[],o=(e,r)=>r==w(t)?R(n,e):null===t[r]?N(e,(e=>o(e,r+1))):h([t[r],null],(t=>o($(e,t),r+1)));return o(e,0),n})(e,n),(e=>N(e,(e=>$(r,e)[0](t,...null!=n?n:[],...o))))),e=>A($(r,e),(([,t,n])=>(Y(t,null!=n?n:[""],void 0,(t=>(W(t,e),j(t)?1:0))),G(r,e),o(e),n))),(e,n,o)=>A($(r,e),(([e,,r=[]])=>{const l=(...s)=>{const i=w(s);i==w(r)?e(t,...s,...o(s)):k(r[i])?h(n[i](...s),(e=>l(...s,e))):l(...s,r[i])};l()}))]},se=Object,ie=se.keys,ae=se.isFrozen,de=se.freeze,ce=(e,t)=>!k(((e,t)=>A(e,(e=>e[t])))(e,t)),ue=(e,t)=>delete e[t],ve=(e,t)=>h(se.entries(e),(([e,n])=>t(n,e))),he=e=>p(ie(e)),fe=e=>{const t=n(e);return M(t)||t==l&&x(e)?t:void 0},ge=(e,t,n,o,r)=>k(r)?e.delCell(t,n,o,!0):e.setCell(t,n,o,r),we=ne((e=>{let t,n,o,r=100,l=B(),s=1;const i=B(),d=B(),[c,u,v]=le((()=>z)),f=B(),g=B(),y=[],L=[],T=(t,n)=>{s=0,e.transaction((()=>N($(f,n),((n,o)=>N(n,((n,r)=>N(n,((n,l)=>ge(e,o,r,l,n[t]))))))))),s=1},b=e=>{G(f,e),G(g,e),u(d,[e])},m=(e,t)=>h(((e,t)=>e.splice(0,t))(e,null!=t?t:w(e)),b),C=()=>m(y,w(y)-r),x=e.addCellListener(null,null,null,((e,n,r,i,a,d)=>{if(s){A(t,(()=>{R(y,t),C(),m(L),t=void 0,o=1}));const e=K(l,n,B),s=K(e,r,B),c=K(s,i,(()=>[d,void 0]));c[1]=a,c[0]===a&&j(G(s,i))&&j(G(e,r))&&j(G(l,n))&&(t=I(y),o=1),D()}})),E=(e="")=>(k(t)&&(t=""+n++,G(f,t,l),F(t,e),l=B(),o=1),t),M=()=>{p(y)||(L.unshift(E()),T(0,t),t=I(y),o=1)},P=()=>{p(L)||(R(y,t),t=S(L),T(1,t),o=1)},D=()=>{o&&(u(i),o=0)},O=e=>{const t=E(e);return D(),t},F=(e,t)=>(Q(e)&&$(g,e)!==t&&(G(g,e,t),u(d,[e])),z),Q=e=>J(f,e),z={setSize:e=>(r=e,C(),z),addCheckpoint:O,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...y],t,[...L]],forEachCheckpoint:e=>q(g,e),hasCheckpoint:Q,getCheckpoint:e=>$(g,e),goBackward:()=>(M(),D(),z),goForward:()=>(P(),D(),z),goTo:e=>{const n=a(y,e)?M:a(L,e)?P:null;for(;!k(n)&&e!=t;)n();return D(),z},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(v(e),z),clear:()=>(m(y),m(L),k(t)||b(t),t=void 0,n=0,O(),z),destroy:()=>{e.delListener(x)},getListenerStats:()=>({})};return de(z.clear())})),pe=(e,t)=>e<t?-1:1,ye=ne((e=>{const t=B(),n=B(),[o,r,l,s,a,d,c,,h,g,w]=ee(e,B,(e=>k(e)?"":D(e)?f(e,i):i(e))),[p,y,L]=le((()=>I)),R=(t,n,o)=>{const r=a(t);N(o,((t,o)=>n(o,(n=>N(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},I={setIndexDefinition:(e,o,r,l,s,i=pe)=>{const a=k(s)?void 0:([e],[t])=>s(e,t);return h(e,o,((o,r,s,h,f,g)=>{let w=0;const p=Z(),L=Z(),R=d(e);if(N(r,(([e,t],n)=>{const o=Z(e),r=Z(t);N(o,(e=>W(r,e)?W(o,e):0)),N(o,(e=>{_(p,e),A($(R,e),(t=>{W(t,n),j(t)&&(G(R,e),w=1)}))})),N(r,(e=>{_(p,e),J(R,e)||(G(R,e,Z()),w=1),_($(R,e),n),k(l)||_(L,e)}))})),o(),j(f)||(g?q(R,(e=>_(L,e))):q(s,(e=>A($(h,e),(e=>_(L,e))))),N(L,(e=>{const t=(t,n)=>i($(f,t),$(f,n),e),n=[...$(R,e)];u(n,t)||(G(R,e,Z(v(n,t))),_(p,e))}))),(w||g)&&!k(a)){const t=[...R];u(t,a)||(c(e,B(v(t,a))),w=1)}w&&y(t,[e]),N(p,(t=>y(n,[e,t])))}),te(r),A(l,te)),I},delIndexDefinition:e=>(g(e),I),getStore:o,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>R(t,e,n))))),forEachSlice:(e,t)=>R(e,t,d(e)),hasIndex:s,hasSlice:(e,t)=>J(d(e),t),getTableId:a,getSliceIds:e=>H(d(e)),getSliceRowIds:(e,t)=>Q($(d(e),t)),addSliceIdsListener:(e,n)=>p(n,t,[e]),addSliceRowIdsListener:(e,t,o)=>p(o,n,[e,t]),delListener:e=>(L(e),I),destroy:w,getListenerStats:()=>({})};return de(I)})),Le=B([["avg",[(e,t)=>g(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,o)=>e+(t-n)/o]],["max",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Re=(e,t,n,o,r,l=!1)=>{if(j(n))return;const[s,i,a,d]=r;return l||(l=k(e)),N(o,(([n,o])=>{l||(e=k(n)?null==i?void 0:i(e,o,t++):k(o)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,o,n,t),l||(l=k(e)))})),l?s(Q(n),F(n)):e},Ie=ne((e=>{const t=B(),[n,o,r,l,s,i,a,,d,c,u]=ee(e,O,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=le((()=>g)),g={setMetricDefinition:(e,n,o,r,l,s,c)=>{var u;const v=P(o)?[o,l,s,c]:null!=(u=$(Le,o))?u:$(Le,"sum");return d(e,n,((n,o,r,l,s,d)=>{const c=i(e),u=F(l);d||(d=k(c)),n();let f=Re(c,u,l,o,v,d);x(f)||(f=void 0),f!=c&&(a(e,f),h(t,[e],f,c))}),te(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:o,forEachMetric:r,hasMetric:l,getTableId:s,getMetric:i,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return de(g)}));var Se=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Te=(e,t,n,o,r)=>{let l,s=0;const i={load:n=>Se(void 0,null,(function*(){if(2!=s){s=1;const o=yield t();k(o)||""==o?e.setTables(n):e.setJson(o),s=0}return i})),startAutoLoad:e=>Se(void 0,null,(function*(){return i.stopAutoLoad(),yield i.load(e),o(i.load),i})),stopAutoLoad:()=>(r(),i),save:()=>Se(void 0,null,(function*(){return 1!=s&&(s=2,yield n(e.getJson()),s=0),i})),startAutoSave:()=>Se(void 0,null,(function*(){return yield i.stopAutoSave().save(),l=e.addTablesListener((()=>i.save())),i})),stopAutoSave:()=>(A(l,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return de(i)};var be=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const me=globalThis.window,Ce=(e,t,n)=>{let o;return Te(e,(()=>be(void 0,null,(function*(){return n.getItem(t)}))),(e=>be(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{o=o=>{o.storageArea===n&&o.key===t&&e()},me.addEventListener("storage",o)}),(()=>{me.removeEventListener("storage",o),o=void 0}))},xe=(e,t)=>Ce(e,t,localStorage),Ee=(e,t)=>Ce(e,t,sessionStorage);var ke=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ae=(n,o)=>{let r;return Te(n,(()=>ke(void 0,null,(function*(){try{return yield t.readFile(o,"utf8")}catch(e){}}))),(e=>ke(void 0,null,(function*(){try{yield t.writeFile(o,e,"utf8")}catch(e){}}))),(t=>{r=e(o,t)}),(()=>{null==r||r.close(),r=void 0}))};var Me=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Pe=e=>e.headers.get("ETag"),De=(e,t,n,o)=>{let r,l;return Te(e,(()=>Me(void 0,null,(function*(){const e=yield fetch(t);return l=Pe(e),e.text()}))),(e=>Me(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{r=setInterval((()=>Me(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),o=Pe(n);k(l)||k(o)||o==l||(l=o,e())}))),1e3*o)}),(()=>{A(r,clearInterval),r=void 0}))};var Oe=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;const je=ne((e=>{const t=e.createStore,[n,o,r,l,s,,,i,,a,c,u,v]=ee(e,(()=>!0),O),f=t(),g=t(),y=B(),I=(e,t,...n)=>h(n,(n=>_(K(K(y,t,B),e,Z),n))),S=e=>{A($(y,e),(e=>{q(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),h([g,f],(t=>t.delTable(e)))},T=(e,t,n)=>I(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,o)=>{i(t,n),S(t);const r=[],l=[[null,[n,null,null,[],B()]]],s=[],a=[],c=[];o({select:(e,t)=>{const n=P(e)?[w(r)+"",e]:[k(t)?e:t,n=>n(e,t)];return R(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const o=k(n)||P(t)?null:t,r=k(o)?t:n,s=[e,[e,o,P(r)?r:e=>e(r),[],B()]];return R(l,s),{as:e=>s[0]=e}},where:(e,t,n)=>R(s,P(e)?e:k(n)?n=>n(e)===t:o=>o(e,t)===n),group:(e,t,n,o,r)=>{var l;const s=[e,[e,P(t)?[t,n,o,r]:null!=(l=$(Le,t))?l:[(e,t)=>t]]];return R(a,s),{as:e=>s[0]=e}},having:(e,t)=>R(c,P(e)?e:n=>n(e)===t)});const y=B(r);if(j(y))return b;const L=B(l);q(L,((e,[,t])=>A($(L,t),(({3:t})=>k(e)?0:R(t,e)))));const m=B(a);let C=f;if(j(m)&&p(c))C=g;else{T(t,C,g);const e=B();q(m,((t,[n,o])=>_(K(e,n,Z),[t,o])));const n=Z();q(y,(t=>J(e,t)?0:_(n,t)));const o=B(),r=(n,o,r,l)=>A(n,(([s,i,a,u])=>{q(o,((t,[n])=>{const o=K(s,t,B),i=$(o,r),a=l?void 0:n;if(i!==a){const n=Z([[i,a]]),l=F(o);G(o,r,a),N($(e,t),(([e,t])=>{const r=Re(u[e],l,o,n,t);u[e]=k(fe(r))?null:r}))}})),j(i)||!d(c,(e=>e((e=>u[e]))))?g.delRow(t,a):k(a)?n[2]=g.addRow(t,u):g.setRow(t,a,u)}));I(C,t,C.addRowListener(t,null,((l,s,i,a)=>{const d=[],c=[],u=B(),v=C.hasRow(t,i);let h=!v;N(n,(e=>{const[n,o,r]=a(t,i,e);R(d,o),R(c,r),h||(h=n)})),q(e,(e=>{const[n,,o]=a(t,i,e);(h||n)&&G(u,e,[o])})),h&&r(Y(o,d,void 0,(([,e])=>(W(e,i),j(e)))),u,i,1),v&&r(Y(o,c,(()=>{const e={};return N(n,(n=>e[n]=C.getCell(t,i,n))),[B(),Z(),void 0,e]}),(([,e])=>{_(e,i)})),u,i)})))}T(t,e,C);const x=(o,r,l,i)=>{const a=t=>e.getCell(r,l,t);h(i,(n=>{var r;const[l,,s,i,d]=$(L,n),c=null==s?void 0:s(a,o),[h,f]=null!=(r=$(d,o))?r:[];c!=h&&(k(f)||v(t,f),G(d,o,k(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>x(o,l,c,i))))]))})),(o=>{const r=(t,r)=>{var l,s,i;return e.getCell(...k(r)?[n,o,t]:t===n?[n,o,r]:[null==(l=$(L,t))?void 0:l[0],null==(i=$(null==(s=$(L,t))?void 0:s[4],o))?void 0:i[0],r])};C.transaction((()=>d(s,(e=>e(r)))?q(y,((e,n)=>ge(C,t,o,e,n(r,o)))):C.delRow(t,o)))})(o)},{3:E}=$(L,null);return C.transaction((()=>u(t,1,e.addRowListener(n,null,((o,r,l)=>{e.hasRow(n,l)?x(l,n,l,E):(C.delRow(t,l),N(L,(({4:e})=>A($(e,l),(([,n])=>{v(t,n),G(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),a(e),b),getStore:n,getQueryIds:o,forEachQuery:r,hasQuery:l,getTableId:s,delListener:e=>(g.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var o in e)Fe.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Oe)for(var o of Oe(e))t.indexOf(o)<0&&Je.call(e,o)&&(n[o]=e[o]);return n})(g.getListenerStats(),["tables","tableIds","transaction"])};return ve({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{h(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>g[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>g["add"+n+"Listener"](...L(e,0,t),((n,...o)=>e[t](b,...o)))})),de(b)})),Qe=ne((e=>{const t=B(),n=B(),o=B(),r=B(),[l,s,i,a,d,c,,,u,v,h]=ee(e,(()=>[B(),B(),B(),B()]),(e=>k(e)?void 0:e+"")),[f,g,w]=le((()=>R)),p=(e,t,n)=>A(c(e),(([o,,r])=>{if(!J(r,t)){const l=Z();if(d(e)!=L(e))_(l,t);else{let e=t;for(;!k(e)&&!J(l,e);)_(l,e),e=$(o,e)}if(n)return l;G(r,t,l)}return $(r,t)})),y=(e,t)=>A(c(e),(([,,e])=>G(e,t))),L=e=>$(t,e),R={setRelationshipDefinition:(e,l,s,i)=>(G(t,e,s),u(e,l,((t,l)=>{const s=Z(),i=Z(),a=Z(),[d,u]=c(e);N(l,(([t,n],o)=>{k(t)||(_(i,t),A($(u,t),(e=>{W(e,o),j(e)&&G(u,t)}))),k(n)||(_(i,n),J(u,n)||G(u,n,Z()),_($(u,n),o)),_(s,o),G(d,o,n),q($(r,e),(t=>{J(p(e,t),o)&&_(a,t)}))})),t(),N(s,(t=>g(n,[e,t]))),N(i,(t=>g(o,[e,t]))),N(a,(t=>{y(e,t),g(r,[e,t])}))}),te(i)),R),delRelationshipDefinition:e=>(G(t,e),v(e),R),getStore:l,getRelationshipIds:s,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:a,getLocalTableId:d,getRemoteTableId:L,getRemoteRowId:(e,t)=>{var n;return $(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return Q($(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(c(e))?[t]:Q(p(e,t,!0)),addRemoteRowIdListener:(e,t,o)=>f(o,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(p(e,t),f(n,r,[e,t])),delListener:e=>(y(...w(e)),R),destroy:h,getListenerStats:()=>({})};return de(R)})),ze=e=>[e,e],Ne=()=>[B(),B()],We=(e,t,n,o=G)=>{const r=(l=H(e),s=e=>!ce(t,e),l.filter(s));var l,s;return h(ie(t),(o=>n(e,o,t[o]))),h(r,(t=>o(e,t))),e},Be=(e,t,n)=>k(e)||!(e=>E(e,se)&&e.constructor==se)(e)||he(e)||ae(e)?(null==n||n(),!1):(ve(e,((n,o)=>{t(n,o)||ue(e,o)})),!he(e)),He=(e,t,n)=>G(e,t,$(e,t)==-n?void 0:n),$e=()=>{let e,t,n=0;const o=B(),r=B(),s=B(),d=B(),u=B(),g=B(),w=B(),p=B(),y=B(),I=Ne(),S=Ne(),m=Ne(),C=Ne(),x=Ne(),E=Ne(),D=Ne(),O=Ne(),F=Ne(),Q=Ne(),[Y,ee,te,ne]=le((()=>tt)),oe=(t,n)=>(!e||J(g,n)||Pe(n))&&Be(t,((e,t)=>se(n,t,e)),(()=>Pe(n))),se=(e,t,n,o)=>Be(o?n:ae(n,e,t),((o,r)=>A(ie(e,t,r,o),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Pe(e,t))),ie=(t,n,o,r)=>e?A($($(g,t),o),(e=>fe(r)!=e.type?Pe(t,n,o,r,e.default):r),(()=>Pe(t,n,o,r))):k(fe(r))?Pe(t,n,o,r):r,ae=(e,t,n)=>(A($(w,t),(([o,r])=>{N(o,((t,n)=>{ce(e,n)||(e[n]=t)})),N(r,(o=>{ce(e,o)||Pe(t,n,o)}))})),e),we=e=>We(g,e,((e,t,n)=>{const o=B(),r=Z();We(K(g,t,B),n,((e,t,n)=>{G(e,t,n),A(n.default,(e=>G(o,t,e)),(()=>_(r,t)))})),G(w,t,[o,r])}),((e,t)=>{G(g,t),G(w,t)})),ye=e=>We(y,e,((e,t,n)=>Le(t,n)),((e,t)=>me(t))),Le=(e,t)=>We(K(y,e,(()=>(Ee(e,1),B()))),t,((t,n,o)=>Re(e,t,n,o)),((t,n)=>Ce(e,t,n))),Re=(e,t,n,o,r)=>We(K(t,n,(()=>(ke(e,n,1),B()))),o,((t,o,r)=>Ie(e,n,t,o,r)),((o,l)=>xe(e,t,n,o,l,r))),Ie=(e,t,n,o,r)=>{J(n,o)||Ae(e,t,o,1);const l=$(n,o);r!==l&&(Me(e,t,o,l,r),G(n,o,r))},Se=(e,t,n,o,r)=>A($(t,n),(t=>Ie(e,n,t,o,r)),(()=>Re(e,t,n,ae({[o]:r},e,n)))),Te=e=>{const[t]=K(p,e,re),n=t();return J($(y,e),n)?Te(e):n},be=e=>{var t;return null!=(t=$(y,e))?t:Le(e,{})},me=e=>Le(e,{}),Ce=(e,t,n)=>{const[,o]=K(p,e,re);o(n),Re(e,t,n,{},!0)},xe=(e,t,n,o,r,l)=>{var s;const i=$(null==(s=$(w,e))?void 0:s[0],r);if(!k(i)&&!l)return Ie(e,n,o,r,i);const a=t=>{Me(e,n,t,$(o,t)),Ae(e,n,t,-1),G(o,t)};k(i)?a(r):q(o,a),j(o)&&(ke(e,n,-1),j(G(t,n))&&(Ee(e,-1),G(y,e),G(p,e)))},Ee=(e,t)=>He(o,e,t),ke=(e,t,n)=>He(K(r,e,B),t,n),Ae=(e,t,n,o)=>He(K(K(s,e,B),t,B),n,o),Me=(e,t,n,o,r)=>K(K(K(d,e,B),t,B),n,(()=>[o,0]))[1]=r,Pe=(e,t,n,o,r)=>(R(K(K(K(u,e,B),t,B),n,(()=>[])),o),r),De=(e,t,n)=>A($($($(d,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...ze(Ve(e,t,n))])),Oe=e=>j(u)||j(F[e])?0:N(e?V(u,X):u,((t,n)=>N(t,((t,o)=>N(t,((t,r)=>ee(F[e],[n,o,r],t))))))),Fe=(e,t,n)=>{if(!j(t))return ee(e,n),1},Je=e=>{const t=j(x[e]),n=j(D[e])&&j(C[e])&&t&&j(S[e]),l=j(O[e])&&j(E[e])&&j(m[e])&&j(I[e]);if(!n||!l){const i=e?[V(o),X(r),V(s,X),V(d,X)]:[o,r,s,d];if(!n){N(i[2],((t,n)=>N(t,((t,o)=>Fe(D[e],t,[n,o])))));const n=Z();N(i[1],((o,r)=>{Fe(C[e],o,[r])&&!t&&(ee(x[e],[r,null]),_(n,r))})),t||N(i[3],((t,o)=>{if(!J(n,o)){const n=Z();N(t,(e=>N(e,(([t,o],r)=>o!==t?_(n,r):W(e,r))))),N(n,(t=>ee(x[e],[o,t])))}})),Fe(S[e],i[0])}if(!l){let t;N(i[3],((n,o)=>{let r;N(n,((n,l)=>{let s;N(n,(([n,i],a)=>{i!==n&&(ee(O[e],[o,l,a],i,n,De),t=r=s=1)})),s&&ee(E[e],[o,l],De)})),r&&ee(m[e],[o],De)})),t&&ee(I[e],void 0,De)}}},je=(e,...t)=>(Ze((()=>e(...f(t,i)))),tt),Qe=()=>U(y,(e=>U(e,U))),qe=()=>H(y),Ge=e=>H($(y,i(e))),Ke=(e,t,n,o=0,r)=>{const l=[];return q($(y,i(e)),((e,n)=>R(l,[k(t)?e:$(n,i(t)),e]))),f(L(v(l,(([e],[t])=>pe(e,t)*(n?-1:1))),o,k(r)?r:o+r),(([,e])=>e))},Ue=(e,t)=>H($($(y,i(e)),i(t))),Ve=(e,t,n)=>$($($(y,i(e)),i(t)),i(n)),Xe=e=>je((()=>(e=>Be(e,oe,Pe))(e)?ye(e):0)),Ye=()=>je((()=>ye({}))),Ze=(e,t)=>{if(-1==n)return;_e();const o=e();return et(t),o},_e=()=>(n++,tt),et=e=>(n>0&&(n--,0==n&&(t=!j(d),n=1,Oe(1),t&&Je(1),n=-1,(null==e?void 0:e(U(d,(e=>U(e,(e=>U(e,(e=>[...e]),(([e,t])=>e===t))),he)),he),U(u,(e=>U(e,U)))))&&(n=1,N(d,((e,t)=>N(e,((e,n)=>N(e,(([e],o)=>ge(tt,t,n,o,e))))))),n=-1,t=!1),ee(Q[0],void 0,t),Oe(0),t&&Je(0),ee(Q[1],void 0,t),n=0,h([d,u,o,r,s],z))),tt),tt={getTables:Qe,getTableIds:qe,getTable:e=>U($(y,i(e)),U),getRowIds:Ge,getSortedRowIds:Ke,getRow:(e,t)=>U($($(y,i(e)),i(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!j(y),hasTable:e=>J(y,i(e)),hasRow:(e,t)=>J($(y,i(e)),i(t)),hasCell:(e,t,n)=>J($($(y,i(e)),i(t)),i(n)),getJson:()=>T(y),getSchemaJson:()=>T(g),setTables:Xe,setTable:(e,t)=>je((e=>oe(t,e)?Le(e,t):0),e),setRow:(e,t,n)=>je(((e,t)=>se(i(e),i(t),n)?Re(i(e),be(i(e)),i(t),n):0),e,t),addRow:(e,t)=>Ze((()=>{let n;return se(e,n,t)&&(e=i(e),Re(e,be(e),n=Te(e),t)),n})),setPartialRow:(e,t,n)=>je(((e,t)=>{if(se(e,t,n,1)){const o=be(e);ve(n,((n,r)=>Se(e,o,t,r,n)))}}),e,t),setCell:(e,t,n,o)=>je(((e,t,n)=>A(ie(e,t,n,P(o)?o(Ve(e,t,n)):o),(o=>Se(e,be(e),t,n,o)))),e,t,n),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch(e){}return tt},setSchema:t=>je((()=>{if((e=(e=>Be(e,(e=>Be(e,(e=>{if(!Be(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!M(t)&&t!=l||(fe(e.default)!=t&&ue(e,"default"),0))})))))(t))&&(we(t),!j(y))){const e=Qe();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>je((e=>J(y,e)?me(e):0),e),delRow:(e,t)=>je(((e,t)=>A($(y,e),(n=>J(n,t)?Ce(e,n,t):0))),e,t),delCell:(e,t,n,o)=>je(((e,t,n)=>A($(y,e),(r=>A($(r,t),(l=>J(l,n)?xe(e,r,t,l,n,o):0))))),e,t,n),delSchema:()=>je((()=>{we({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>N(y,((t,n)=>e(n,(e=>N(t,((t,n)=>e(n,(e=>q(t,e))))))))),forEachRow:(e,t)=>N($(y,i(e)),((e,n)=>t(n,(t=>q(e,t))))),forEachCell:(e,t,n)=>q($($(y,i(e)),i(t)),n),addSortedRowIdsListener:(e,t,n,o,r,l,s)=>{let i=Ke(e,t,n,o,r);return Y((()=>{const s=Ke(e,t,n,o,r);c(s,i)||(i=s,l(tt,e,t,n,o,r,i))}),x[s?1:0],[e,t])},addWillFinishTransactionListener:e=>Y(e,Q[0]),addDidFinishTransactionListener:e=>Y(e,Q[1]),callListener:e=>(ne(e,[qe,Ge,Ue],(e=>k(e[2])?[]:ze(Ve(...e)))),tt),delListener:e=>(te(e),tt),getListenerStats:()=>({}),createStore:$e};return ve({Tables:[0,I],TableIds:[0,S],Table:[1,m],RowIds:[1,C],Row:[2,E],CellIds:[2,D],Cell:[3,O],InvalidCell:[3,F]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>Y(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0)})),de(tt)};export{we as createCheckpoints,Te as createCustomPersister,Ae as createFilePersister,ye as createIndexes,xe as createLocalPersister,Ie as createMetrics,je as createQueries,Qe as createRelationships,De as createRemotePersister,Ee as createSessionPersister,$e as createStore,pe as defaultSorter};
|
|
1
|
+
import{watch as e,promises as t}from"fs";const n=e=>typeof e,o=n(""),r=n(!0),l=n(0),s=n(n),i=e=>""+e,a=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,n)=>t[n]===e)),u=(e,t)=>d(e,((n,o)=>0==o||t(e[o-1],n)<=0)),v=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),g=e=>y(e,((e,t)=>e+t),0),w=e=>e.length,p=e=>0==w(e),y=(e,t,n)=>e.reduce(t,n),L=(e,t,n)=>e.slice(t,n),R=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>E(t,Map)?y([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),b=JSON.parse,m=Math.max,C=Math.min,x=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,A=(e,t,n)=>k(e)?null==n?void 0:n():t(e),M=e=>e==o||e==r,P=e=>n(e)==s,D=e=>Array.isArray(e),O=()=>{},F=e=>e.size,J=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},j=e=>k(e)||0==F(e),Q=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},z=e=>e.clear(),N=(e,t)=>null==e?void 0:e.forEach(t),W=(e,t)=>null==e?void 0:e.delete(t),B=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},$=(e,t)=>null==e?void 0:e.get(t),q=(e,t)=>N(e,((e,n)=>t(n,e))),G=(e,t,n)=>k(n)?(W(e,t),e):null==e?void 0:e.set(t,n),K=(e,t,n)=>(J(e,t)||G(e,t,n()),$(e,t)),U=(e,t,n)=>{const o={},r=null!=t?t:e=>e;return N(e,((e,t)=>A(r(e),(e=>(null==n?void 0:n(e))?0:o[t]=e)))),o},V=(e,t)=>{const n=B(),o=null!=t?t:e=>e;return N(e,((e,t)=>n.set(t,o(e)))),n},X=e=>V(e,V),Y=(e,t,n,o,r=0)=>A((n?K:$)(e,t[r],r>w(t)-2?n:B),(l=>{if(r>w(t)-2)return(null==o?void 0:o(l))&&G(e,t[r]),l;const s=Y(l,t,n,o,r+1);return j(l)&&G(e,t[r]),s})),Z=e=>new Set(D(e)||k(e)?e:[e]),_=(e,t)=>null==e?void 0:e.add(t),ee=(e,t,n)=>{const o=e.hasRow,r=B(),l=B(),s=B(),i=B(),a=B(),d=(t,n,...o)=>{const r=K(a,t,Z);return h(o,(t=>_(r,t)&&n&&e.callListener(t))),o},u=(t,...n)=>A($(a,t),(o=>{h(p(n)?Q(o):n,(t=>{e.delListener(t),W(o,t)})),j(o)&&G(a,t)})),v=(e,n)=>{G(r,e,n),J(l,e)||(G(l,e,t()),G(s,e,B()),G(i,e,B()))},f=e=>{G(r,e),G(l,e),G(s,e),G(i,e),u(e)};return[()=>e,()=>H(r),e=>q(l,e),e=>J(l,e),e=>$(r,e),e=>$(l,e),(e,t)=>G(l,e,t),v,(t,r,l,a,f)=>{v(t,r);const g=B(),w=B(),p=$(s,t),y=$(i,t),L=t=>{const l=n=>e.getCell(r,t,n),s=$(p,t),i=o(r,t)?n(a(l,t)):void 0;if(s===i||D(s)&&D(i)&&c(s,i)||G(g,t,[s,i]),!k(f)){const e=$(y,t),n=o(r,t)?f(l,t):void 0;e!=n&&G(w,t,n)}},R=e=>{l((()=>{N(g,(([,e],t)=>G(p,t,e))),N(w,((e,t)=>G(y,t,e)))}),g,w,p,y,e),z(g),z(w)};q(p,L),e.hasTable(r)&&h(e.getRowIds(r),(e=>{J(p,e)||L(e)})),R(!0),u(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>L(n))),e.addTableListener(r,(()=>R())))},f,()=>q(a,f),d,u]},te=(e,t)=>n(e)==o?t=>t(e):null!=e?e:()=>null!=t?t:"",ne=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},oe=/^\d+$/,re=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=S(e))?n:""+t++},t=>{oe.test(t)&&w(e)<1e3&&R(e,t)}]},le=e=>{let t;const[n,o]=re(),r=B();return[(o,l,s)=>{null!=t||(t=e());const i=n();return G(r,i,[o,l,s]),_(Y(l,null!=s?s:[""],Z),i),i},(e,n,...o)=>h(((e,t=[""])=>{const n=[],o=(e,r)=>r==w(t)?R(n,e):null===t[r]?N(e,(e=>o(e,r+1))):h([t[r],null],(t=>o($(e,t),r+1)));return o(e,0),n})(e,n),(e=>N(e,(e=>$(r,e)[0](t,...null!=n?n:[],...o))))),e=>A($(r,e),(([,t,n])=>(Y(t,null!=n?n:[""],void 0,(t=>(W(t,e),j(t)?1:0))),G(r,e),o(e),n))),(e,n,o)=>A($(r,e),(([e,,r=[]])=>{const l=(...s)=>{const i=w(s);i==w(r)?e(t,...s,...o(s)):k(r[i])?h(n[i](...s),(e=>l(...s,e))):l(...s,r[i])};l()}))]},se=Object,ie=se.keys,ae=se.isFrozen,de=se.freeze,ce=(e,t)=>!k(((e,t)=>A(e,(e=>e[t])))(e,t)),ue=(e,t)=>delete e[t],ve=(e,t)=>h(se.entries(e),(([e,n])=>t(n,e))),he=e=>p(ie(e)),fe=e=>{const t=n(e);return M(t)||t==l&&x(e)?t:void 0},ge=(e,t,n,o,r)=>k(r)?e.delCell(t,n,o,!0):e.setCell(t,n,o,r),we=ne((e=>{let t,n,o,r=100,l=B(),s=1;const i=B(),d=B(),[c,u,v]=le((()=>z)),f=B(),g=B(),y=[],L=[],T=(t,n)=>{s=0,e.transaction((()=>N($(f,n),((n,o)=>N(n,((n,r)=>N(n,((n,l)=>ge(e,o,r,l,n[t]))))))))),s=1},b=e=>{G(f,e),G(g,e),u(d,[e])},m=(e,t)=>h(((e,t)=>e.splice(0,t))(e,null!=t?t:w(e)),b),C=()=>m(y,w(y)-r),x=e.addCellListener(null,null,null,((e,n,r,i,a,d)=>{if(s){A(t,(()=>{R(y,t),C(),m(L),t=void 0,o=1}));const e=K(l,n,B),s=K(e,r,B),c=K(s,i,(()=>[d,void 0]));c[1]=a,c[0]===a&&j(G(s,i))&&j(G(e,r))&&j(G(l,n))&&(t=I(y),o=1),D()}})),E=(e="")=>(k(t)&&(t=""+n++,G(f,t,l),F(t,e),l=B(),o=1),t),M=()=>{p(y)||(((e,...t)=>{e.unshift(...t)})(L,E()),T(0,t),t=I(y),o=1)},P=()=>{p(L)||(R(y,t),t=S(L),T(1,t),o=1)},D=()=>{o&&(u(i),o=0)},O=e=>{const t=E(e);return D(),t},F=(e,t)=>(Q(e)&&$(g,e)!==t&&(G(g,e,t),u(d,[e])),z),Q=e=>J(f,e),z={setSize:e=>(r=e,C(),z),addCheckpoint:O,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...y],t,[...L]],forEachCheckpoint:e=>q(g,e),hasCheckpoint:Q,getCheckpoint:e=>$(g,e),goBackward:()=>(M(),D(),z),goForward:()=>(P(),D(),z),goTo:e=>{const n=a(y,e)?M:a(L,e)?P:null;for(;!k(n)&&e!=t;)n();return D(),z},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(v(e),z),clear:()=>(m(y),m(L),k(t)||b(t),t=void 0,n=0,O(),z),destroy:()=>{e.delListener(x)},getListenerStats:()=>({})};return de(z.clear())})),pe=(e,t)=>e<t?-1:1,ye=ne((e=>{const t=B(),n=B(),[o,r,l,s,a,d,c,,h,g,w]=ee(e,B,(e=>k(e)?"":D(e)?f(e,i):i(e))),[p,y,L]=le((()=>I)),R=(t,n,o)=>{const r=a(t);N(o,((t,o)=>n(o,(n=>N(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},I={setIndexDefinition:(e,o,r,l,s,i=pe)=>{const a=k(s)?void 0:([e],[t])=>s(e,t);return h(e,o,((o,r,s,h,f,g)=>{let w=0;const p=Z(),L=Z(),R=d(e);if(N(r,(([e,t],n)=>{const o=Z(e),r=Z(t);N(o,(e=>W(r,e)?W(o,e):0)),N(o,(e=>{_(p,e),A($(R,e),(t=>{W(t,n),j(t)&&(G(R,e),w=1)}))})),N(r,(e=>{_(p,e),J(R,e)||(G(R,e,Z()),w=1),_($(R,e),n),k(l)||_(L,e)}))})),o(),j(f)||(g?q(R,(e=>_(L,e))):q(s,(e=>A($(h,e),(e=>_(L,e))))),N(L,(e=>{const t=(t,n)=>i($(f,t),$(f,n),e),n=[...$(R,e)];u(n,t)||(G(R,e,Z(v(n,t))),_(p,e))}))),(w||g)&&!k(a)){const t=[...R];u(t,a)||(c(e,B(v(t,a))),w=1)}w&&y(t,[e]),N(p,(t=>y(n,[e,t])))}),te(r),A(l,te)),I},delIndexDefinition:e=>(g(e),I),getStore:o,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>R(t,e,n))))),forEachSlice:(e,t)=>R(e,t,d(e)),hasIndex:s,hasSlice:(e,t)=>J(d(e),t),getTableId:a,getSliceIds:e=>H(d(e)),getSliceRowIds:(e,t)=>Q($(d(e),t)),addSliceIdsListener:(e,n)=>p(n,t,[e]),addSliceRowIdsListener:(e,t,o)=>p(o,n,[e,t]),delListener:e=>(L(e),I),destroy:w,getListenerStats:()=>({})};return de(I)})),Le=B([["avg",[(e,t)=>g(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,o)=>e+(t-n)/o]],["max",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Re=(e,t,n,o,r,l=!1)=>{if(j(n))return;const[s,i,a,d]=r;return l||(l=k(e)),N(o,(([n,o])=>{l||(e=k(n)?null==i?void 0:i(e,o,t++):k(o)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,o,n,t),l||(l=k(e)))})),l?s(Q(n),F(n)):e},Ie=ne((e=>{const t=B(),[n,o,r,l,s,i,a,,d,c,u]=ee(e,O,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=le((()=>g)),g={setMetricDefinition:(e,n,o,r,l,s,c)=>{var u;const v=P(o)?[o,l,s,c]:null!=(u=$(Le,o))?u:$(Le,"sum");return d(e,n,((n,o,r,l,s,d)=>{const c=i(e),u=F(l);d||(d=k(c)),n();let f=Re(c,u,l,o,v,d);x(f)||(f=void 0),f!=c&&(a(e,f),h(t,[e],f,c))}),te(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:o,forEachMetric:r,hasMetric:l,getTableId:s,getMetric:i,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return de(g)}));var Se=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Te=(e,t,n,o,r)=>{let l,s=0;const i={load:n=>Se(void 0,null,(function*(){if(2!=s){s=1;const o=yield t();k(o)||""==o?e.setTables(n):e.setJson(o),s=0}return i})),startAutoLoad:e=>Se(void 0,null,(function*(){return i.stopAutoLoad(),yield i.load(e),o(i.load),i})),stopAutoLoad:()=>(r(),i),save:()=>Se(void 0,null,(function*(){return 1!=s&&(s=2,yield n(e.getJson()),s=0),i})),startAutoSave:()=>Se(void 0,null,(function*(){return yield i.stopAutoSave().save(),l=e.addTablesListener((()=>i.save())),i})),stopAutoSave:()=>(A(l,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return de(i)};var be=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const me=globalThis.window,Ce=(e,t,n)=>{let o;return Te(e,(()=>be(void 0,null,(function*(){return n.getItem(t)}))),(e=>be(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{o=o=>{o.storageArea===n&&o.key===t&&e()},me.addEventListener("storage",o)}),(()=>{me.removeEventListener("storage",o),o=void 0}))},xe=(e,t)=>Ce(e,t,localStorage),Ee=(e,t)=>Ce(e,t,sessionStorage);var ke=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ae=(n,o)=>{let r;return Te(n,(()=>ke(void 0,null,(function*(){try{return yield t.readFile(o,"utf8")}catch(e){}}))),(e=>ke(void 0,null,(function*(){try{yield t.writeFile(o,e,"utf8")}catch(e){}}))),(t=>{r=e(o,t)}),(()=>{null==r||r.close(),r=void 0}))};var Me=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Pe=e=>e.headers.get("ETag"),De=(e,t,n,o)=>{let r,l;return Te(e,(()=>Me(void 0,null,(function*(){const e=yield fetch(t);return l=Pe(e),e.text()}))),(e=>Me(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{r=setInterval((()=>Me(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),o=Pe(n);k(l)||k(o)||o==l||(l=o,e())}))),1e3*o)}),(()=>{A(r,clearInterval),r=void 0}))};var Oe=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;const je=ne((e=>{const t=e.createStore,[n,o,r,l,s,,,i,,a,c,u,v]=ee(e,(()=>!0),O),f=t(),g=t(),y=B(),I=(e,t,...n)=>h(n,(n=>_(K(K(y,t,B),e,Z),n))),S=e=>{A($(y,e),(e=>{q(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),h([g,f],(t=>t.delTable(e)))},T=(e,t,n)=>I(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,o)=>{i(t,n),S(t);const r=[],l=[[null,[n,null,null,[],B()]]],s=[],a=[],c=[];o({select:(e,t)=>{const n=P(e)?[w(r)+"",e]:[k(t)?e:t,n=>n(e,t)];return R(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const o=k(n)||P(t)?null:t,r=k(o)?t:n,s=[e,[e,o,P(r)?r:e=>e(r),[],B()]];return R(l,s),{as:e=>s[0]=e}},where:(e,t,n)=>R(s,P(e)?e:k(n)?n=>n(e)===t:o=>o(e,t)===n),group:(e,t,n,o,r)=>{var l;const s=[e,[e,P(t)?[t,n,o,r]:null!=(l=$(Le,t))?l:[(e,t)=>t]]];return R(a,s),{as:e=>s[0]=e}},having:(e,t)=>R(c,P(e)?e:n=>n(e)===t)});const y=B(r);if(j(y))return b;const L=B(l);q(L,((e,[,t])=>A($(L,t),(({3:t})=>k(e)?0:R(t,e)))));const m=B(a);let C=f;if(j(m)&&p(c))C=g;else{T(t,C,g);const e=B();q(m,((t,[n,o])=>_(K(e,n,Z),[t,o])));const n=Z();q(y,(t=>J(e,t)?0:_(n,t)));const o=B(),r=(n,o,r,l)=>A(n,(([s,i,a,u])=>{q(o,((t,[n])=>{const o=K(s,t,B),i=$(o,r),a=l?void 0:n;if(i!==a){const n=Z([[i,a]]),l=F(o);G(o,r,a),N($(e,t),(([e,t])=>{const r=Re(u[e],l,o,n,t);u[e]=k(fe(r))?null:r}))}})),j(i)||!d(c,(e=>e((e=>u[e]))))?g.delRow(t,a):k(a)?n[2]=g.addRow(t,u):g.setRow(t,a,u)}));I(C,t,C.addRowListener(t,null,((l,s,i,a)=>{const d=[],c=[],u=B(),v=C.hasRow(t,i);let h=!v;N(n,(e=>{const[n,o,r]=a(t,i,e);R(d,o),R(c,r),h||(h=n)})),q(e,(e=>{const[n,,o]=a(t,i,e);(h||n)&&G(u,e,[o])})),h&&r(Y(o,d,void 0,(([,e])=>(W(e,i),j(e)))),u,i,1),v&&r(Y(o,c,(()=>{const e={};return N(n,(n=>e[n]=C.getCell(t,i,n))),[B(),Z(),void 0,e]}),(([,e])=>{_(e,i)})),u,i)})))}T(t,e,C);const x=(o,r,l,i)=>{const a=t=>e.getCell(r,l,t);h(i,(n=>{var r;const[l,,s,i,d]=$(L,n),c=null==s?void 0:s(a,o),[h,f]=null!=(r=$(d,o))?r:[];c!=h&&(k(f)||v(t,f),G(d,o,k(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>x(o,l,c,i))))]))})),(o=>{const r=(t,r)=>{var l,s,i;return e.getCell(...k(r)?[n,o,t]:t===n?[n,o,r]:[null==(l=$(L,t))?void 0:l[0],null==(i=$(null==(s=$(L,t))?void 0:s[4],o))?void 0:i[0],r])};C.transaction((()=>d(s,(e=>e(r)))?q(y,((e,n)=>ge(C,t,o,e,n(r,o)))):C.delRow(t,o)))})(o)},{3:E}=$(L,null);return C.transaction((()=>u(t,1,e.addRowListener(n,null,((o,r,l)=>{e.hasRow(n,l)?x(l,n,l,E):(C.delRow(t,l),N(L,(({4:e})=>A($(e,l),(([,n])=>{v(t,n),G(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),a(e),b),getStore:n,getQueryIds:o,forEachQuery:r,hasQuery:l,getTableId:s,delListener:e=>(g.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var o in e)Fe.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Oe)for(var o of Oe(e))t.indexOf(o)<0&&Je.call(e,o)&&(n[o]=e[o]);return n})(g.getListenerStats(),["tables","tableIds","transaction"])};return ve({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{h(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>g[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>g["add"+n+"Listener"](...L(e,0,t),((n,...o)=>e[t](b,...o)))})),de(b)})),Qe=ne((e=>{const t=B(),n=B(),o=B(),r=B(),[l,s,i,a,d,c,,,u,v,h]=ee(e,(()=>[B(),B(),B(),B()]),(e=>k(e)?void 0:e+"")),[f,g,w]=le((()=>R)),p=(e,t,n)=>A(c(e),(([o,,r])=>{if(!J(r,t)){const l=Z();if(d(e)!=L(e))_(l,t);else{let e=t;for(;!k(e)&&!J(l,e);)_(l,e),e=$(o,e)}if(n)return l;G(r,t,l)}return $(r,t)})),y=(e,t)=>A(c(e),(([,,e])=>G(e,t))),L=e=>$(t,e),R={setRelationshipDefinition:(e,l,s,i)=>(G(t,e,s),u(e,l,((t,l)=>{const s=Z(),i=Z(),a=Z(),[d,u]=c(e);N(l,(([t,n],o)=>{k(t)||(_(i,t),A($(u,t),(e=>{W(e,o),j(e)&&G(u,t)}))),k(n)||(_(i,n),J(u,n)||G(u,n,Z()),_($(u,n),o)),_(s,o),G(d,o,n),q($(r,e),(t=>{J(p(e,t),o)&&_(a,t)}))})),t(),N(s,(t=>g(n,[e,t]))),N(i,(t=>g(o,[e,t]))),N(a,(t=>{y(e,t),g(r,[e,t])}))}),te(i)),R),delRelationshipDefinition:e=>(G(t,e),v(e),R),getStore:l,getRelationshipIds:s,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:a,getLocalTableId:d,getRemoteTableId:L,getRemoteRowId:(e,t)=>{var n;return $(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return Q($(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(c(e))?[t]:Q(p(e,t,!0)),addRemoteRowIdListener:(e,t,o)=>f(o,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(p(e,t),f(n,r,[e,t])),delListener:e=>(y(...w(e)),R),destroy:h,getListenerStats:()=>({})};return de(R)})),ze=e=>[e,e],Ne=()=>[B(),B()],We=(e,t,n,o=G)=>{const r=(l=H(e),s=e=>!ce(t,e),l.filter(s));var l,s;return h(ie(t),(o=>n(e,o,t[o]))),h(r,(t=>o(e,t))),e},Be=(e,t,n)=>k(e)||!(e=>E(e,se)&&e.constructor==se)(e)||he(e)||ae(e)?(null==n||n(),!1):(ve(e,((n,o)=>{t(n,o)||ue(e,o)})),!he(e)),He=(e,t,n)=>G(e,t,$(e,t)==-n?void 0:n),$e=()=>{let e,t,n=0;const o=B(),r=B(),s=B(),d=B(),u=B(),g=B(),w=B(),p=B(),y=B(),I=Ne(),S=Ne(),m=Ne(),C=Ne(),x=Ne(),E=Ne(),D=Ne(),O=Ne(),F=Ne(),Q=Ne(),[Y,ee,te,ne]=le((()=>tt)),oe=(t,n)=>(!e||J(g,n)||Pe(n))&&Be(t,((e,t)=>se(n,t,e)),(()=>Pe(n))),se=(e,t,n,o)=>Be(o?n:ae(n,e,t),((o,r)=>A(ie(e,t,r,o),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Pe(e,t))),ie=(t,n,o,r)=>e?A($($(g,t),o),(e=>fe(r)!=e.type?Pe(t,n,o,r,e.default):r),(()=>Pe(t,n,o,r))):k(fe(r))?Pe(t,n,o,r):r,ae=(e,t,n)=>(A($(w,t),(([o,r])=>{N(o,((t,n)=>{ce(e,n)||(e[n]=t)})),N(r,(o=>{ce(e,o)||Pe(t,n,o)}))})),e),we=e=>We(g,e,((e,t,n)=>{const o=B(),r=Z();We(K(g,t,B),n,((e,t,n)=>{G(e,t,n),A(n.default,(e=>G(o,t,e)),(()=>_(r,t)))})),G(w,t,[o,r])}),((e,t)=>{G(g,t),G(w,t)})),ye=e=>We(y,e,((e,t,n)=>Le(t,n)),((e,t)=>me(t))),Le=(e,t)=>We(K(y,e,(()=>(Ee(e,1),B()))),t,((t,n,o)=>Re(e,t,n,o)),((t,n)=>Ce(e,t,n))),Re=(e,t,n,o,r)=>We(K(t,n,(()=>(ke(e,n,1),B()))),o,((t,o,r)=>Ie(e,n,t,o,r)),((o,l)=>xe(e,t,n,o,l,r))),Ie=(e,t,n,o,r)=>{J(n,o)||Ae(e,t,o,1);const l=$(n,o);r!==l&&(Me(e,t,o,l,r),G(n,o,r))},Se=(e,t,n,o,r)=>A($(t,n),(t=>Ie(e,n,t,o,r)),(()=>Re(e,t,n,ae({[o]:r},e,n)))),Te=e=>{const[t]=K(p,e,re),n=t();return J($(y,e),n)?Te(e):n},be=e=>{var t;return null!=(t=$(y,e))?t:Le(e,{})},me=e=>Le(e,{}),Ce=(e,t,n)=>{const[,o]=K(p,e,re);o(n),Re(e,t,n,{},!0)},xe=(e,t,n,o,r,l)=>{var s;const i=$(null==(s=$(w,e))?void 0:s[0],r);if(!k(i)&&!l)return Ie(e,n,o,r,i);const a=t=>{Me(e,n,t,$(o,t)),Ae(e,n,t,-1),G(o,t)};k(i)?a(r):q(o,a),j(o)&&(ke(e,n,-1),j(G(t,n))&&(Ee(e,-1),G(y,e),G(p,e)))},Ee=(e,t)=>He(o,e,t),ke=(e,t,n)=>He(K(r,e,B),t,n),Ae=(e,t,n,o)=>He(K(K(s,e,B),t,B),n,o),Me=(e,t,n,o,r)=>K(K(K(d,e,B),t,B),n,(()=>[o,0]))[1]=r,Pe=(e,t,n,o,r)=>(R(K(K(K(u,e,B),t,B),n,(()=>[])),o),r),De=(e,t,n)=>A($($($(d,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...ze(Ve(e,t,n))])),Oe=e=>j(u)||j(F[e])?0:N(e?V(u,X):u,((t,n)=>N(t,((t,o)=>N(t,((t,r)=>ee(F[e],[n,o,r],t))))))),Fe=(e,t,n)=>{if(!j(t))return ee(e,n),1},Je=e=>{const t=j(x[e]),n=j(D[e])&&j(C[e])&&t&&j(S[e]),l=j(O[e])&&j(E[e])&&j(m[e])&&j(I[e]);if(!n||!l){const i=e?[V(o),X(r),V(s,X),V(d,X)]:[o,r,s,d];if(!n){N(i[2],((t,n)=>N(t,((t,o)=>Fe(D[e],t,[n,o])))));const n=Z();N(i[1],((o,r)=>{Fe(C[e],o,[r])&&!t&&(ee(x[e],[r,null]),_(n,r))})),t||N(i[3],((t,o)=>{if(!J(n,o)){const n=Z();N(t,(e=>N(e,(([t,o],r)=>o!==t?_(n,r):W(e,r))))),N(n,(t=>ee(x[e],[o,t])))}})),Fe(S[e],i[0])}if(!l){let t;N(i[3],((n,o)=>{let r;N(n,((n,l)=>{let s;N(n,(([n,i],a)=>{i!==n&&(ee(O[e],[o,l,a],i,n,De),t=r=s=1)})),s&&ee(E[e],[o,l],De)})),r&&ee(m[e],[o],De)})),t&&ee(I[e],void 0,De)}}},je=(e,...t)=>(Ze((()=>e(...f(t,i)))),tt),Qe=()=>U(y,(e=>U(e,U))),qe=()=>H(y),Ge=e=>H($(y,i(e))),Ke=(e,t,n,o=0,r)=>{return f(L(v((l=$(y,i(e)),s=(e,n)=>[k(t)?n:$(e,i(t)),n],f([...null!=(a=null==l?void 0:l.entries())?a:[]],(([e,t])=>s(t,e)))),(([e],[t])=>pe(e,t)*(n?-1:1))),o,k(r)?r:o+r),(([,e])=>e));var l,s,a},Ue=(e,t)=>H($($(y,i(e)),i(t))),Ve=(e,t,n)=>$($($(y,i(e)),i(t)),i(n)),Xe=e=>je((()=>(e=>Be(e,oe,Pe))(e)?ye(e):0)),Ye=()=>je((()=>ye({}))),Ze=(e,t)=>{if(-1==n)return;_e();const o=e();return et(t),o},_e=()=>(n++,tt),et=e=>(n>0&&(n--,0==n&&(t=!j(d),n=1,Oe(1),t&&Je(1),n=-1,(null==e?void 0:e(U(d,(e=>U(e,(e=>U(e,(e=>[...e]),(([e,t])=>e===t))),he)),he),U(u,(e=>U(e,U)))))&&(n=1,N(d,((e,t)=>N(e,((e,n)=>N(e,(([e],o)=>ge(tt,t,n,o,e))))))),n=-1,t=!1),ee(Q[0],void 0,t),Oe(0),t&&Je(0),ee(Q[1],void 0,t),n=0,h([d,u,o,r,s],z))),tt),tt={getTables:Qe,getTableIds:qe,getTable:e=>U($(y,i(e)),U),getRowIds:Ge,getSortedRowIds:Ke,getRow:(e,t)=>U($($(y,i(e)),i(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!j(y),hasTable:e=>J(y,i(e)),hasRow:(e,t)=>J($(y,i(e)),i(t)),hasCell:(e,t,n)=>J($($(y,i(e)),i(t)),i(n)),getJson:()=>T(y),getSchemaJson:()=>T(g),setTables:Xe,setTable:(e,t)=>je((e=>oe(t,e)?Le(e,t):0),e),setRow:(e,t,n)=>je(((e,t)=>se(i(e),i(t),n)?Re(i(e),be(i(e)),i(t),n):0),e,t),addRow:(e,t)=>Ze((()=>{let n;return se(e,n,t)&&(e=i(e),Re(e,be(e),n=Te(e),t)),n})),setPartialRow:(e,t,n)=>je(((e,t)=>{if(se(e,t,n,1)){const o=be(e);ve(n,((n,r)=>Se(e,o,t,r,n)))}}),e,t),setCell:(e,t,n,o)=>je(((e,t,n)=>A(ie(e,t,n,P(o)?o(Ve(e,t,n)):o),(o=>Se(e,be(e),t,n,o)))),e,t,n),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch(e){}return tt},setSchema:t=>je((()=>{if((e=(e=>Be(e,(e=>Be(e,(e=>{if(!Be(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!M(t)&&t!=l||(fe(e.default)!=t&&ue(e,"default"),0))})))))(t))&&(we(t),!j(y))){const e=Qe();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>je((e=>J(y,e)?me(e):0),e),delRow:(e,t)=>je(((e,t)=>A($(y,e),(n=>J(n,t)?Ce(e,n,t):0))),e,t),delCell:(e,t,n,o)=>je(((e,t,n)=>A($(y,e),(r=>A($(r,t),(l=>J(l,n)?xe(e,r,t,l,n,o):0))))),e,t,n),delSchema:()=>je((()=>{we({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>N(y,((t,n)=>e(n,(e=>N(t,((t,n)=>e(n,(e=>q(t,e))))))))),forEachRow:(e,t)=>N($(y,i(e)),((e,n)=>t(n,(t=>q(e,t))))),forEachCell:(e,t,n)=>q($($(y,i(e)),i(t)),n),addSortedRowIdsListener:(e,t,n,o,r,l,s)=>{let i=Ke(e,t,n,o,r);return Y((()=>{const s=Ke(e,t,n,o,r);c(s,i)||(i=s,l(tt,e,t,n,o,r,i))}),x[s?1:0],[e,t])},addWillFinishTransactionListener:e=>Y(e,Q[0]),addDidFinishTransactionListener:e=>Y(e,Q[1]),callListener:e=>(ne(e,[qe,Ge,Ue],(e=>k(e[2])?[]:ze(Ve(...e)))),tt),delListener:e=>(te(e),tt),getListenerStats:()=>({}),createStore:$e};return ve({Tables:[0,I],TableIds:[0,S],Table:[1,m],RowIds:[1,C],Row:[2,E],CellIds:[2,D],Cell:[3,O],InvalidCell:[3,F]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>Y(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0)})),de(tt)};export{we as createCheckpoints,Te as createCustomPersister,Ae as createFilePersister,ye as createIndexes,xe as createLocalPersister,Ie as createMetrics,je as createQueries,Qe as createRelationships,De as createRemotePersister,Ee as createSessionPersister,$e as createStore,pe as defaultSorter};
|
package/lib/es6/tinybase.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tools module of the TinyBase project provides utilities for working with
|
|
3
|
+
* TinyBase during development.
|
|
4
|
+
*
|
|
5
|
+
* This module is not intended to be directly used at runtime in a production
|
|
6
|
+
* environment.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
* @module tools
|
|
10
|
+
* @since v2.2.0
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {Schema, Store} from './store.d';
|
|
14
|
+
import {Id} from './common.d';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The StoreStats type describes a set of statistics about the Store, and
|
|
18
|
+
* is used for debugging purposes.
|
|
19
|
+
*
|
|
20
|
+
* A StoreStats object is returned from the getStoreStats method.
|
|
21
|
+
*
|
|
22
|
+
* @category Statistics
|
|
23
|
+
* @since v2.2.0
|
|
24
|
+
*/
|
|
25
|
+
export type StoreStats = {
|
|
26
|
+
/**
|
|
27
|
+
* The number of Table objects in the Store.
|
|
28
|
+
*/
|
|
29
|
+
totalTables: number;
|
|
30
|
+
/**
|
|
31
|
+
* The number of Row objects in the Store, across all Table objects.
|
|
32
|
+
*/
|
|
33
|
+
totalRows: number;
|
|
34
|
+
/**
|
|
35
|
+
* The number of Cell objects in the Store, across all Row objects, across all
|
|
36
|
+
* Table objects.
|
|
37
|
+
*/
|
|
38
|
+
totalCells: number;
|
|
39
|
+
/**
|
|
40
|
+
* The string length of the Store when serialized to JSON.
|
|
41
|
+
*/
|
|
42
|
+
jsonLength: number;
|
|
43
|
+
/**
|
|
44
|
+
* Additional detailed statistics about the Store if the `detail` flag is
|
|
45
|
+
* specified in the getStoreStats method.
|
|
46
|
+
*/
|
|
47
|
+
detail?: StoreStatsDetail;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The StoreStatsDetail type describes a more detailed set of statistics about
|
|
52
|
+
* the Store, and is used for debugging purposes.
|
|
53
|
+
*
|
|
54
|
+
* A StoreStatsDetail object is added to the StoreStats object (returned from
|
|
55
|
+
* the getStoreStats method) when the `detail` flag is specified.
|
|
56
|
+
*
|
|
57
|
+
* @category Statistics
|
|
58
|
+
* @since v2.2.0
|
|
59
|
+
*/
|
|
60
|
+
export type StoreStatsDetail = {
|
|
61
|
+
/**
|
|
62
|
+
* Information about each Table in the Store.
|
|
63
|
+
*/
|
|
64
|
+
tables: {[tableId: Id]: StoreStatsTableDetail};
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The StoreStatsTableDetail type describes a detailed set of statistics about a
|
|
69
|
+
* single Table in the Store, and is used for debugging purposes.
|
|
70
|
+
*
|
|
71
|
+
* @category Statistics
|
|
72
|
+
* @since v2.2.0
|
|
73
|
+
*/
|
|
74
|
+
export type StoreStatsTableDetail = {
|
|
75
|
+
/**
|
|
76
|
+
* The number of Row objects in the Table.
|
|
77
|
+
*/
|
|
78
|
+
tableRows: number;
|
|
79
|
+
/**
|
|
80
|
+
* The number of Cell objects in the Table, across all Row objects.
|
|
81
|
+
*/
|
|
82
|
+
tableCells: number;
|
|
83
|
+
rows: {[rowId: Id]: StoreStatsRowDetail};
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The StoreStatsRowDetail type describes statistics about a single Row in the
|
|
88
|
+
* Store, and is used for debugging purposes.
|
|
89
|
+
*
|
|
90
|
+
* @category Statistics
|
|
91
|
+
* @since v2.2.0
|
|
92
|
+
*/
|
|
93
|
+
export type StoreStatsRowDetail = {
|
|
94
|
+
/**
|
|
95
|
+
* The number of Cell objects in the Row.
|
|
96
|
+
*/
|
|
97
|
+
rowCells: number;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* A Tools object lets you run various utilities on, and get certain information
|
|
102
|
+
* about, Store objects in development.
|
|
103
|
+
*
|
|
104
|
+
* @category Tools
|
|
105
|
+
* @since v2.2.0
|
|
106
|
+
*/
|
|
107
|
+
export interface Tools {
|
|
108
|
+
/**
|
|
109
|
+
* The getStoreStats method provides a set of statistics about the Store, and
|
|
110
|
+
* is used for debugging purposes.
|
|
111
|
+
*
|
|
112
|
+
* @param detail An optional boolean that indicates more detailed stats about
|
|
113
|
+
* the inner structure of the Store should be returned.
|
|
114
|
+
* @returns A StoreStats object containing statistics about the Store.
|
|
115
|
+
* @example
|
|
116
|
+
* This example creates a Tools object and gets basic statistics about it.
|
|
117
|
+
* ```js
|
|
118
|
+
* const store = createStore()
|
|
119
|
+
* .setTable('pets', {
|
|
120
|
+
* fido: {species: 'dog', color: 'brown'},
|
|
121
|
+
* felix: {species: 'cat', color: 'black'},
|
|
122
|
+
* cujo: {species: 'dog', color: 'black'},
|
|
123
|
+
* })
|
|
124
|
+
* .setTable('species', {
|
|
125
|
+
* dog: {price: 5},
|
|
126
|
+
* cat: {price: 4},
|
|
127
|
+
* });
|
|
128
|
+
* const tools = createTools(store);
|
|
129
|
+
* console.log(tools.getStoreStats());
|
|
130
|
+
* // -> {totalTables: 2, totalRows: 5, totalCells: 8, jsonLength: 182}
|
|
131
|
+
* ```
|
|
132
|
+
* @example
|
|
133
|
+
* This example creates a Tools object and gets detailed statistics about it.
|
|
134
|
+
* ```js
|
|
135
|
+
* const store = createStore()
|
|
136
|
+
* .setTable('pets', {
|
|
137
|
+
* fido: {species: 'dog', color: 'brown'},
|
|
138
|
+
* felix: {species: 'cat', color: 'black'},
|
|
139
|
+
* cujo: {species: 'dog', color: 'black'},
|
|
140
|
+
* })
|
|
141
|
+
* .setTable('species', {
|
|
142
|
+
* dog: {price: 5},
|
|
143
|
+
* cat: {price: 4},
|
|
144
|
+
* });
|
|
145
|
+
* const stats = createTools(store).getStoreStats(true);
|
|
146
|
+
*
|
|
147
|
+
* console.log(stats.totalTables);
|
|
148
|
+
* // -> 2
|
|
149
|
+
* console.log(stats.totalRows);
|
|
150
|
+
* // -> 5
|
|
151
|
+
* console.log(stats.totalCells);
|
|
152
|
+
* // -> 8
|
|
153
|
+
* console.log(stats.detail.tables.pets.tableRows);
|
|
154
|
+
* // -> 3
|
|
155
|
+
* console.log(stats.detail.tables.pets.tableCells);
|
|
156
|
+
* // -> 6
|
|
157
|
+
* console.log(stats.detail.tables.pets.rows);
|
|
158
|
+
* // -> {fido: {rowCells: 2}, felix: {rowCells: 2}, cujo: {rowCells: 2}}
|
|
159
|
+
* ```
|
|
160
|
+
* @category Statistics
|
|
161
|
+
* @since v2.2.0
|
|
162
|
+
*/
|
|
163
|
+
getStoreStats(detail?: boolean): StoreStats;
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* The getStoreSchema method returns the Schema of the Store as an object.
|
|
167
|
+
*
|
|
168
|
+
* If the Store does not already have an explicit Schema associated with it,
|
|
169
|
+
* the data in the Store will be scanned to attempt to infer a new Schema.
|
|
170
|
+
*
|
|
171
|
+
* To be successful, this requires all the values of a given Cell across a
|
|
172
|
+
* Table object's Row objects to have a consistent type. If a given Cell Id
|
|
173
|
+
* appears in every Row, then a `default` for that Cell is specified in the
|
|
174
|
+
* Schema, based on the most common value found.
|
|
175
|
+
*
|
|
176
|
+
* @returns A Schema object for the Store.
|
|
177
|
+
* @example
|
|
178
|
+
* This example creates a Tools object and gets basic statistics about a Store
|
|
179
|
+
* that already has a Schema.
|
|
180
|
+
* ```js
|
|
181
|
+
* const store = createStore().setSchema({
|
|
182
|
+
* pets: {
|
|
183
|
+
* species: {type: 'string'},
|
|
184
|
+
* color: {type: 'string'},
|
|
185
|
+
* },
|
|
186
|
+
* species: {
|
|
187
|
+
* price: {type: 'number'},
|
|
188
|
+
* },
|
|
189
|
+
* });
|
|
190
|
+
* const schema = createTools(store).getStoreSchema();
|
|
191
|
+
* console.log(schema.pets);
|
|
192
|
+
* // -> {species: {type: 'string'}, color: {type: 'string'}}
|
|
193
|
+
* ```
|
|
194
|
+
* @example
|
|
195
|
+
* This example creates a Tools object and gets basic statistics about a Store
|
|
196
|
+
* that doesn't already have a Schema.
|
|
197
|
+
* ```js
|
|
198
|
+
* const store = createStore()
|
|
199
|
+
* .setTable('pets', {
|
|
200
|
+
* fido: {species: 'dog', color: 'brown'},
|
|
201
|
+
* felix: {species: 'cat', color: 'black'},
|
|
202
|
+
* cujo: {species: 'dog', color: 'black'},
|
|
203
|
+
* })
|
|
204
|
+
* .setTable('species', {
|
|
205
|
+
* dog: {price: 5, barks: true},
|
|
206
|
+
* cat: {price: 4, purrs: true},
|
|
207
|
+
* });
|
|
208
|
+
* const schema = createTools(store).getStoreSchema();
|
|
209
|
+
* console.log(schema.pets.species);
|
|
210
|
+
* // -> {type: 'string', default: 'dog'}
|
|
211
|
+
* console.log(schema.pets.color);
|
|
212
|
+
* // -> {type: 'string', default: 'black'}
|
|
213
|
+
* console.log(schema.species.price);
|
|
214
|
+
* // -> {type: 'number', default: 5}
|
|
215
|
+
* console.log(schema.species.barks);
|
|
216
|
+
* // -> {type: 'boolean'}
|
|
217
|
+
* console.log(schema.species.purrs);
|
|
218
|
+
* // -> {type: 'boolean'}
|
|
219
|
+
* ```
|
|
220
|
+
* @category Modelling
|
|
221
|
+
* @since v2.2.0
|
|
222
|
+
*/
|
|
223
|
+
getStoreSchema(): Schema;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* The getStoreApi method returns a code-generated .d.ts file and a .ts file
|
|
227
|
+
* that wraps the schema of a Store.
|
|
228
|
+
*
|
|
229
|
+
* This is currently in development, and further documentation is to come.
|
|
230
|
+
*
|
|
231
|
+
* @category Modelling
|
|
232
|
+
* @since v2.2.0
|
|
233
|
+
*/
|
|
234
|
+
getStoreApi(storeName: string): [string, string];
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* The getStoreApi method attempts to return a prettified code-generated .d.ts
|
|
238
|
+
* file and a .ts file that wraps the schema of a Store.
|
|
239
|
+
*
|
|
240
|
+
* This is currently in development, and further documentation is to come.
|
|
241
|
+
*
|
|
242
|
+
* @category Modelling
|
|
243
|
+
* @since v2.2.0
|
|
244
|
+
*/
|
|
245
|
+
getPrettyStoreApi(storeName: string): Promise<[string, string]>;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* The createTools function creates a Tools object, and is the main entry point
|
|
250
|
+
* into the tools module.
|
|
251
|
+
*
|
|
252
|
+
* A given Store can only have one Tools object associated with it. If you call
|
|
253
|
+
* this function twice on the same Store, your second call will return a
|
|
254
|
+
* reference to the Tools object created by the first.
|
|
255
|
+
*
|
|
256
|
+
* @param store The Store for which to register tools.
|
|
257
|
+
* @returns A reference to the new Tools object.
|
|
258
|
+
* @example
|
|
259
|
+
* This example creates a Tools object.
|
|
260
|
+
*
|
|
261
|
+
* ```js
|
|
262
|
+
* const store = createStore()
|
|
263
|
+
* .setTable('pets', {
|
|
264
|
+
* fido: {species: 'dog', color: 'brown'},
|
|
265
|
+
* felix: {species: 'cat', color: 'black'},
|
|
266
|
+
* cujo: {species: 'dog', color: 'black'},
|
|
267
|
+
* })
|
|
268
|
+
* .setTable('species', {
|
|
269
|
+
* dog: {price: 5},
|
|
270
|
+
* cat: {price: 4},
|
|
271
|
+
* });
|
|
272
|
+
* const tools = createTools(store);
|
|
273
|
+
* console.log(tools.getStoreStats());
|
|
274
|
+
* // -> {totalTables: 2, totalRows: 5, totalCells: 8, jsonLength: 182}
|
|
275
|
+
* ```
|
|
276
|
+
* @example
|
|
277
|
+
* This example creates a Tools object, and calls the method a second time
|
|
278
|
+
* for the same Store to return the same object.
|
|
279
|
+
*
|
|
280
|
+
* ```js
|
|
281
|
+
* const store = createStore();
|
|
282
|
+
* const tools1 = createTools(store);
|
|
283
|
+
* const tools2 = createTools(store);
|
|
284
|
+
* console.log(tools1 === tools2);
|
|
285
|
+
* // -> true
|
|
286
|
+
* ```
|
|
287
|
+
* @category Creation
|
|
288
|
+
* @since v2.2.0
|
|
289
|
+
*/
|
|
290
|
+
export function createTools(store: Store): Tools;
|
package/lib/es6/tools.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t=e(""),l=e(!0),a=e(0),n=(e,t)=>e.every(t),o=(e,t)=>e.sort(t),r=(e,t)=>e.forEach(t),s=(e,t)=>e.map(t),d=e=>e.length,i=(e,...t)=>e.push(...t),$=e=>e.shift(),c=JSON.parse,I=isFinite,b=e=>null==e,u=e=>Array.isArray(e),h=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},w=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},f=(e,t)=>null==e?void 0:e.forEach(t),C=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),v=(e,t)=>{var l;return s([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>t(l,e)))},p=(e,t,l)=>{return b(l)?(n=t,null==(a=e)||a.delete(n),e):null==e?void 0:e.set(t,l);var a,n},R=(e,t,l)=>(h(e,t)||p(e,t,l()),g(e,t)),T=e=>new Set(u(e)||b(e)?e:[e]),m=/[^A-Za-z0-9]+/,y=/^( *)\/\*\* *(.*?) *\*\/$/gm,S=(e,t,l)=>e.substring(t,l),L=e=>e.toUpperCase(),k=e=>e.toLowerCase(),A=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return h(e,n)?A(e,t,l,a+1):(p(e,n,l),n)},O=e=>e.length,j=(e,t="")=>e.join(t),E=(e,t=0)=>j(s(e.split(m),((e,l)=>(l>0||t?L:k)(S(e,0,1))+S(e,1)))),x=e=>L(j(e.split(m),"_")),J=e=>`/** ${e}. */`,N=()=>{const e=[C(),C()],t=C(),l=C(),a=C();return[(...e)=>{const t=[],l=e=>u(e)?r(e,l):i(t,e);return r(e,l),t.join("\n")},(t,l,...a)=>r(a,(a=>{return n=R(e[t],l,T),o=a,null==n?void 0:n.add(o);var n,o})),(e,l="",a="")=>A(t,e,[l,a]),(e,l,a)=>p(t,e,[l,a]),(e,t,a,n,o,r="")=>A(l,e,[t,a,n,o,r]),(e,t,l)=>A(a,e,u(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>g(a,e)===t?e:A(a,e,t),t=>[...o(v(e[t],((e,t)=>`import {${j(o(w(e)),", ")}} from '${t}';`))),""],()=>v(t,(([e,t],l)=>[J(t),`export type ${l} = ${e};`,""])),e=>v(l,(([t,l,a,n,o],r)=>{const s=e?[`${r}: ${o}(${t}): ${l} => ${a},`]:[`${r}${o}(${t}): ${l};`];return e||((e,...t)=>{e.unshift(...t)})(s,J(n)),i(s,""),s})),()=>v(a,((e,t)=>(e=u(e)?e:[e],i(e,e.pop()+";"),[`const ${t} = ${$(e)}`,e,""])))]},P=Object,G=P.keys,z=P.freeze,D=(e,t)=>{return a=e=>e[t],b(l=e)?null==n?void 0:n():a(l);var l,a,n},F=(e,t)=>r(P.entries(e),(([e,l])=>t(l,e))),M=e=>{return t=G(e),0==d(t);var t},W=n=>{const o=e(n);return(e=>e==t||e==l)(o)||o==a&&I(n)?o:void 0},_="the Store",Q="Registers a listener that will be called",U=(e,t="",l="")=>`store.${e}(${t})${l?" as "+l:""}`,Z=(e,t="")=>`fluent(() => ${U(e,t)})`,q=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${t}`,B=(e,t)=>`Calls a function for each ${e} in ${t}`,H=(e,t=_)=>`Gets whether ${e} exists in ${t}`,K=e=>"A function that takes "+e,V=(e,t,l=0)=>`${Q} whenever ${e} in ${t} change`+(l?"":"s"),X=(e=0)=>1==e?"Sets":2==e?"Sets part of":3==e?"Deletes":"Gets",Y=(a,n)=>{if(M(a))return[o="// store has no inferable schema",o];var o;const r=E(n),s=E(n,1),d=E(s),$=`return ${d};`,c=[],I=[],u=[],h=[],g=[],v=[],R=[],T=(e,t="",l="")=>`store.${e}(${t?t+", ":""}proxy(listener)${l?", "+l:""})`,[m,y,S,L,k,A,O,P,G,z,W]=N();y(0,"tinybase","CellChange","ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store"),y(1,"tinybase","ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store","createStore"),A("fluent","actions: () => Store",["actions();",$]),A("proxy","listener: any",`(_: Store, ...args: any[]) => listener(${d}, ...args)`);const Y=O(x("type"),"'type'"),ee=O(x("default"),"'default'"),te=S("Tables"),le=S("TableId"),ae=S("TableCallback"),ne=S("GetCellChange"),oe=S("TablesListener",`(${d}: ${s}, getCellChange: ${ne} | undefined) => void`,"A function for listening to changes to the content of the Store"),re=S("TableIdsListener",`(${d}: ${s}) => void`,"A function for listening to changes to Table Ids in the Store"),se=S("TableListener",`(${d}: ${s}, tableId: ${le}, getCellChange: ${ne} | undefined) => void`,"A function for listening to changes to a Table in the Store"),de=S("RowIdsListener",`(${d}: ${s}, tableId: ${le}) => void`,"A function for listening to changes to Row Ids in the Store"),ie=S("RowListener",`(${d}: ${s}, tableId: ${le}, rowId: Id, getCellChange: ${ne} | undefined) => void`,"A function for listening to changes to a Row in the Store"),$e=S("CellIdsListener",`(${d}: ${s}, tableId: ${le}, rowId: Id) => void`,"A function for listening to changes to Cell Ids in the Store"),ce=S("CellListener"),Ie=S("InvalidCellListener",`(${d}: ${s}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[]) => void;`,"A function for listening to invalid Cell changes"),be=S("TransactionListener",`(${d}: ${s}, cellsTouched: boolean) => void;`,"A function for listening to the completion of a transaction");y(1,`./${r}.d`,s,`create${s} as create${s}Decl`,te,le,ae,oe,re,se,de,ie,$e,ce,Ie,be);const ue=(e=0)=>X(e)+" the content of the Store";k("hasTables","",l,U("hasTables"),H("any Table")),k("getTables","",te,U("getTables"),ue()),k("setTables","tables: "+te,s,Z("setTables","tables"),ue(1)),k("delTables","",s,Z("delTables"),ue(3)),k("getTableIds","",le+"[]",U("getTableIds","",le+"[]"),q("Table",_)),k("forEachTable","tableCallback: "+ae,"void",U("forEachTable","tableCallback as any"),B("Table",_));const he=C();var we;return F(a,((a,n)=>{const o=E(n,1),$=O(x(n),`'${n}'`),w=[],f=[],C=[],T=[],m=`the '${n}' Table`,A="the specified Row in "+m,J="the content of "+m,N=(e=0)=>`${X(e)} the content of ${m}`,P=(e=0)=>`${X(e)} the content of ${A}`,G=(e=0)=>`Represents a Row when ${e?"s":"g"}etting ${J}`,z=S(o+"Table",`{[rowId: Id]: ${o}Row}`,"Represents "+m),M=S(o+"Row"),W=S(o+"RowWhenSet"),_=S(o+"CellId"),Q=S(o+"CellCallback"),V=S(o+"RowCallback");y(1,`./${r}.d`,z,M,W,_,Q,V),k(`has${o}Table`,"",l,U("hasTable",$),H(m)),k(`get${o}Table`,"",z,U("getTable",$,z),N()),k(`set${o}Table`,"table: "+z,s,Z("setTable",$+", table"),N(1)),k(`del${o}Table`,"",s,Z("delTable",$),N(3)),k(`get${o}RowIds`,"","Ids",U("getRowIds",$),q("Row",m)),k(`get${o}SortedRowIds`,`cellId?: ${_}, descending?: boolean, offset?: number, limit?: number`,"Ids",U("getSortedRowIds",$+", cellId, descending, offset, limit"),q("Row",m,1)),k(`forEach${o}Row`,"rowCallback: "+V,"void",U("forEachRow",$+", rowCallback as any"),B("Row",m)),k(`has${o}Row`,"rowId: Id",l,U("hasRow",$+", rowId"),H("the specified Row",m)),k(`get${o}Row`,"rowId: Id",M,U("getRow",$+", rowId",M),P()),k(`set${o}Row`,"rowId: Id, row: "+W,s,Z("setRow",$+", rowId, row"),P(1)),k(`add${o}Row`,"row: "+W,"Id | undefined",U("addRow",$+", row"),"Adds a new Row to "+m),k(`set${o}PartialRow`,"rowId: Id, partialRow: "+W,s,Z("setPartialRow",$+", rowId, partialRow"),P(2)),k(`del${o}Row`,"rowId: Id",s,Z("delRow",$+", rowId"),P(3)),k(`get${o}CellIds`,"rowId: Id",_+"[]",U("getCellIds",$+", rowId",_+"[]"),q("Cell",A)),k(`forEach${o}Cell`,"rowId: Id, cellCallback: "+Q,"void",U("forEachCell",$+", rowId, cellCallback as any"),B("Cell",A)),i(R,`[${$}]: {`),F(a,((a,r)=>{const c=E(r,1),I=O(x(r),`'${r}'`),u=a.type,h=!b(D(a,"default"));const v=a.default,m=`the '${r}' Cell`,y=(e=0)=>`${X(e)} ${m} for ${A}`;var S;i(R,`[${I}]: {[${Y}]: ${O(x(u),`'${u}'`)}${h?`, [${ee}]: ${S=v,e(S)==t?O(x(v),`'${v}'`):v}`:""}},`),i(w,`'${r}'${h?"":"?"}: ${u};`),i(f,`'${r}'?: ${u};`),i(C,`'${r}'`),i(T,`[cellId: '${r}', cell: ${u}]`),i(g,`[${d}: ${s}, tableId: '${n}', rowId: Id, cellId: '${r}', newCell: ${u} | undefined, oldCell: ${u} | undefined, getCellChange: ${ne} | undefined]`);const L="Map"+E(u,1);p(he,u,L),k(`has${o}${c}Cell`,"rowId: Id",l,U("hasCell",`${$}, rowId, ${I}`),H(m,A));const j=`${u}${h?"":" | undefined"}`;k(`get${o}${c}Cell`,"rowId: Id",j,U("getCell",`${$}, rowId, ${I}`,j),y()),k(`set${o}${c}Cell`,`rowId: Id, cell: ${u} | ${L}`,s,Z("setCell",`${$}, rowId, ${I}, cell as any`),y(1)),k(`del${o}${c}Cell`,"rowId: Id",s,Z("delCell",`${$}, rowId, ${I}`),y(3))})),i(R,"},"),i(c,`'${n}'?: ${z};`),i(I,`'${n}'`),i(u,`[tableId: '${n}', forEachRow: (rowCallback: ${V}) => void]`),i(h,`[tableId: '${n}', rowId: Id, cellId: ${_}]`),i(v,_),L(M,`{${j(w," ")}}`,G()),L(W,`{${j(f," ")}}`,G(1)),L(_,j(C," | "),"A Cell Id for "+m),L(Q,`(...[cellId, cell]: ${j(T," | ")}) => void`,K("a Cell Id and value from a Row in "+m)),L(V,`(rowId: Id, forEachCell: (cellCallback: ${Q}) => void) => void`,K(`a Row Id from ${m}, and a Cell iterator`))})),k("getJson","","Json",U("getJson"),"Gets a a string serialization the content of the Store"),k("setJson","json: Json",s,Z("setJson","json"),"Sets the content of the Store from a serialized string"),k("transaction","actions: () => Return, doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean","Return",U("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),k("startTransaction","",s,Z("startTransaction"),"Explicitly starts a transaction"),k("finishTransaction","doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean,",s,Z("finishTransaction","doRollback"),"Explicitly finishes a transaction"),k("addTablesListener",`listener: ${oe}, mutator?: boolean`,"Id",T("addTablesListener","","mutator"),Q+" whenever the content of the Store changes"),k("addTableIdsListener",`listener: ${re}, mutator?: boolean`,"Id",T("addTableIdsListener","","mutator"),V("the Table Ids",_,1)),k("addTableListener",`tableId: ${le} | null, listener: ${se}, mutator?: boolean`,"Id",T("addTableListener","tableId","mutator"),V("a Table",_)),k("addRowIdsListener",`tableId: ${le} | null, listener: ${de}, mutator?: boolean`,"Id",T("addRowIdsListener","tableId","mutator"),V("the Row Ids","a Table",1)),k("addRowListener",`tableId: ${le} | null, rowId: IdOrNull, listener: ${ie}, mutator?: boolean`,"Id",T("addRowListener","tableId, rowId","mutator"),V("a Row","a Table")),k("addCellIdsListener",`tableId: ${le} | null, rowId: IdOrNull, listener: ${$e}, mutator?: boolean`,"Id",T("addCellIdsListener","tableId, rowId","mutator"),V("the Cell Ids","a Row",1)),k("addCellListener",`tableId: ${le} | null, rowId: IdOrNull, cellId: ${j(v," | ")} | null, listener: ${ce}, mutator?: boolean`,"Id",T("addCellListener","tableId, rowId, cellId","mutator"),V("a Cell","a Row")),k("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, listener: ${Ie}, mutator?: boolean`,"Id",T("addCellListener","tableId, rowId, cellId","mutator"),Q+" whenever an invalid Cell change was attempted"),k("addWillFinishTransactionListener","listener: "+be,"Id",T("addWillFinishTransactionListener"),Q+" just before the end of the transaction"),k("addDidFinishTransactionListener","listener: "+be,"Id",T("addDidFinishTransactionListener"),Q+" just after the end of the transaction"),k("callListener","listenerId: Id",s,Z("callListener","listenerId"),"Manually provoke a listener to be called"),k("delListener","listenerId: Id",s,Z("delListener","listenerId"),"Remove a listener that was previously added to the Store"),k("getStore","","Store","store","Gets the underlying Store object"),L(te,`{${j(c," ")}}`,"Represents the content of the Store"),L(le,j(I," | "),"A Table Id in the Store"),L(ae,`(...[tableId, rowCallback]: ${j(u," | ")}) => void`,K("a Table Id, and a Row iterator")),L(ne,`(...[tableId, rowId, cellId]: ${j(h," | ")}) => CellChange`,"A function that returns information about any Cell's changes during a transaction"),L(ce,`(...[${d}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${j(g," | ")}) => void`,"A function for listening to changes to a Cell in the Store"),we=(e,t)=>S(t,`(cell: ${e} | undefined) => ${e}`,`Takes a ${e} Cell value and returns another`),f(he,((e,t)=>we(t,e))),y(1,`./${r}.d`,...w(he)),O("store",["createStore().setSchema({",...R,"})"]),O(d,["{",...z(1),"}"]),[m(...P(0),...G(),`export interface ${s} {`,...z(0),"}","",J(`Creates a ${s} object`),`export function create${s}(): ${s};`),m(...P(1),`export const create${s}: typeof create${s}Decl = () => {`,...W(),`return Object.freeze(${d});`,"};")]};var ee=Object.defineProperty,te=Object.getOwnPropertySymbols,le=Object.prototype.hasOwnProperty,ae=Object.prototype.propertyIsEnumerable,ne=(e,t,l)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,oe=(e,t)=>{for(var l in t||(t={}))le.call(t,l)&&ne(e,l,t[l]);if(te)for(var l of te(t))ae.call(t,l)&&ne(e,l,t[l]);return e};const re={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},se=(e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))})((e=>{const t=()=>{const t=c(e.getSchemaJson());return!M(t)||n(e.getTableIds(),(l=>{const a=e.getRowIds(l),o=C();if(n(a,(t=>n(e.getCellIds(l,t),(a=>{const n=e.getCell(l,t,a),r=R(o,a,(()=>[W(n),C(),[0],0])),[s,d,[i]]=r,$=R(d,n,(()=>0))+1;return $>i&&(r[2]=[$,n]),p(d,n,$),r[3]++,s==W(n)})))))return t[l]={},f(o,(([e,,[,n],o],r)=>{t[l][r]=oe({type:e},o==d(a)?{default:n}:{})})),1}))?t:{}},l=e=>Y(t(),e);return z({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,r)=>{l++;let s=0,d=0;const i={};r(((e,l)=>{s++;let a=0;l((()=>a++)),d+=a,t&&(i[e]={rowCells:a})})),a+=s,n+=d,t&&(o[e]={tableRows:s,tableCells:d,rows:i})})),oe({totalTables:l,totalRows:a,totalCells:n,jsonLength:O(e.getJson())},t?{detail:{tables:o}}:{})},getStoreSchema:t,getStoreApi:l,getPrettyStoreApi:e=>{return t=void 0,a=null,n=function*(){const t=l(e);try{const{format:e}=yield import("prettier");return s(t,(t=>(e=>e.replace(y,((e,t,l)=>{const a=77-O(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})))(e(t,re))))}catch(e){}return t},new Promise(((e,l)=>{var o=e=>{try{s(n.next(e))}catch(e){l(e)}},r=e=>{try{s(n.throw(e))}catch(e){l(e)}},s=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,r);s((n=n.apply(t,a)).next())}));var t,a,n}})}));export{se as createTools};
|
|
Binary file
|
package/lib/indexes.d.ts
CHANGED
|
@@ -935,8 +935,6 @@ export interface Indexes {
|
|
|
935
935
|
* The createIndexes function creates an Indexes object, and is the main entry
|
|
936
936
|
* point into the indexes module.
|
|
937
937
|
*
|
|
938
|
-
* It is trivially simple.
|
|
939
|
-
*
|
|
940
938
|
* A given Store can only have one Indexes object associated with it. If you
|
|
941
939
|
* call this function twice on the same Store, your second call will return a
|
|
942
940
|
* reference to the Indexes object created by the first.
|
package/lib/metrics.d.ts
CHANGED
|
@@ -796,8 +796,6 @@ export interface Metrics {
|
|
|
796
796
|
* The createMetrics function creates a Metrics object, and is the main entry
|
|
797
797
|
* point into the metrics module.
|
|
798
798
|
*
|
|
799
|
-
* It is trivially simple.
|
|
800
|
-
*
|
|
801
799
|
* A given Store can only have one Metrics object associated with it. If you
|
|
802
800
|
* call this function twice on the same Store, your second call will return a
|
|
803
801
|
* reference to the Metrics object created by the first.
|
package/lib/queries.d.ts
CHANGED
|
@@ -2992,8 +2992,6 @@ export interface Queries {
|
|
|
2992
2992
|
* The createQueries function creates a Queries object, and is the main entry
|
|
2993
2993
|
* point into the queries module.
|
|
2994
2994
|
*
|
|
2995
|
-
* It is trivially simple.
|
|
2996
|
-
*
|
|
2997
2995
|
* A given Store can only have one Queries object associated with it. If you
|
|
2998
2996
|
* call this function twice on the same Store, your second call will return a
|
|
2999
2997
|
* reference to the Queries object created by the first.
|
package/lib/relationships.d.ts
CHANGED
|
@@ -1170,8 +1170,6 @@ export interface Relationships {
|
|
|
1170
1170
|
* The createRelationships function creates a Relationships object, and is the
|
|
1171
1171
|
* main entry point into the relationships module.
|
|
1172
1172
|
*
|
|
1173
|
-
* It is trivially simple.
|
|
1174
|
-
*
|
|
1175
1173
|
* A given Store can only have one Relationships object associated with it. If
|
|
1176
1174
|
* you call this function twice on the same Store, your second call will return
|
|
1177
1175
|
* a reference to the Relationships object created by the first.
|
package/lib/store.d.ts
CHANGED