tinybase 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common.d.ts +56 -0
- package/lib/common.js +1 -0
- package/lib/common.js.gz +0 -0
- package/lib/debug/common.d.ts +56 -0
- package/lib/debug/common.js +3 -0
- package/lib/debug/indexes.d.ts +3 -58
- package/lib/debug/indexes.js +17 -9
- package/lib/debug/metrics.d.ts +2 -2
- package/lib/debug/persisters.d.ts +11 -8
- package/lib/debug/relationships.d.ts +1 -1
- package/lib/debug/store.d.ts +8 -10
- package/lib/debug/tinybase.js +16 -8
- package/lib/debug/ui-react.d.ts +21 -2
- package/lib/debug/ui-react.js +8 -2
- package/lib/indexes.d.ts +3 -58
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.d.ts +2 -2
- package/lib/persisters.d.ts +11 -8
- package/lib/relationships.d.ts +1 -1
- package/lib/store.d.ts +8 -10
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/ui-react.d.ts +21 -2
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/common.js +1 -0
- package/lib/umd/common.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/package.json +9 -9
- package/readme.md +2 -2
package/lib/indexes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),s=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),n=(e,t)=>e.sort(t),o=(e,t)=>e.forEach(t),r=e=>e.length,d=e=>0==r(e),c=e=>e.slice(1),
|
|
1
|
+
const e=e=>typeof e,t=e(""),s=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),n=(e,t)=>e.sort(t),o=(e,t)=>e.forEach(t),r=e=>e.length,d=e=>0==r(e),c=e=>e.slice(1),l=e=>null==e,i=(e,t,s)=>l(e)?s?.():t(e),a=(e,t)=>e?.has(t)??!1,u=e=>l(e)||0==(e=>e.size)(e),g=e=>e.clear(),I=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),h=e=>new Map(e),w=e=>[...e?.keys()??[]],p=(e,t)=>e?.get(t),L=(e,t)=>I(e,((e,s)=>t(s,e))),S=(e,t,s)=>l(s)?(f(e,t),e):e?.set(t,s),v=(e,t,s,n)=>(a(e,t)||(n?.(s),e.set(t,s)),p(e,t)),R=e=>new Set(e),b=(e,t)=>e?.add(t),x=(s,n)=>e(s)==t?e=>e(s):s??(()=>n??""),y=(e,t)=>e<t?-1:1,T=(e,t,s)=>r(s)<2?b(d(s)?e:v(e,s[0],R()),t):T(v(e,s[0],h()),t,c(s)),k=e=>{const t=(s,n,...r)=>i(s,(s=>d(r)?e(s,n):o([r[0],null],(e=>t(p(s,e),n,...c(r))))));return t},z=Object.freeze,D=(e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))})((e=>{const t=h(),d=h(),[c,v,D,E,M,j,C,O]=((e,t,s)=>{const n=e.hasRow,r=h(),d=h(),c=h(),u=h(),f=h(),v=t=>i(p(f,t),(s=>{I(s,e.delListener),S(f,t)})),b=e=>{S(r,e),S(d,e),S(c,e),S(u,e),v(e)};return[()=>e,()=>w(r),e=>p(r,e),e=>p(d,e),(e,t)=>S(d,e,t),(i,w,b,x,y)=>{const T=h(),k=h();S(r,i,w),a(d,i)||(S(d,i,t()),S(c,i,h()),S(u,i,h()));const z=p(c,i),D=p(u,i),E=t=>{const o=s=>e.getCell(w,t,s),r=p(z,t),d=n(w,t)?s(x(o,t)):void 0;if(r!=d&&S(T,t,[r,d]),!l(y)){const e=p(D,t),s=n(w,t)?y(o,t):void 0;e!=s&&S(k,t,s)}},M=e=>{b((()=>{I(T,(([,e],t)=>S(z,t,e))),I(k,((e,t)=>S(D,t,e)))}),T,k,z,D,e),g(T),g(k)};L(z,E),e.hasTable(w)&&o(e.getRowIds(w),(e=>{a(z,e)||E(e)})),M(!0),v(i),S(f,i,R([e.addRowListener(w,null,((e,t,s)=>E(s))),e.addTableListener(w,(()=>M()))]))},b,()=>L(f,b)]})(e,h,(e=>l(e)?"":e+"")),[W,m,q]=(e=>{let t,s=0;const n=[],d=h();return[(o,r,c=[])=>{t??=e();const l=n.pop()??""+s++;return S(d,l,[o,r,c]),T(r,l,c),l},(e,s=[],...n)=>k(I)(e,(e=>i(p(d,e),(([e])=>e(t,...s,...n)))),...s),e=>i(p(d,e),(([,t,s])=>(k(f)(t,e,...s),S(d,e),r(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>i(p(d,e),(([e,,d])=>{const c=(...i)=>{const a=r(i);a==r(d)?e(t,...i,...n(i)):l(d[a])?o(s[a](...i),(e=>c(...i,e))):c(...i,d[a])};c()}))]})((()=>A)),A={setIndexDefinition:(e,o,r,c,g,w=y)=>{const v=l(g)?void 0:([e],[t])=>g(e,t);return j(e,o,((o,r,g,x,y,T)=>{let k=0;const z=R(),D=R(),j=E(e);if(I(r,(([e,t],s)=>{l(e)||(b(z,e),i(p(j,e),(t=>{f(t,s),u(t)&&(S(j,e),k=1)}))),l(t)||(b(z,t),a(j,t)||(S(j,t,R()),k=1),b(p(j,t),s),l(c)||b(D,t))})),o(),u(y)||(T?L(j,(e=>b(D,e))):L(g,(e=>i(p(x,e),(e=>b(D,e))))),I(D,(e=>{const t=(t,s)=>w(p(y,t),p(y,s),e),o=[...p(j,e)];s(o,t)||(S(j,e,R(n(o,t))),b(z,e))}))),(k||T)&&!l(v)){const t=[...j];s(t,v)||(M(e,h(n(t,v))),k=1)}k&&m(t,[e]),I(z,(t=>m(d,[e,t])))}),x(r),i(c,x)),A},delIndexDefinition:e=>(C(e),A),getStore:c,getIndexIds:v,getTableId:D,getSliceIds:e=>w(E(e)),getSliceRowIds:(e,t)=>[...p(E(e),t)?.values()??[]],addSliceIdsListener:(e,s)=>W(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>W(s,d,[e,t]),delListener:e=>(q(e),A),destroy:O,getListenerStats:()=>({})};return z(A)}));export{D as createIndexes};
|
package/lib/indexes.js.gz
CHANGED
|
Binary file
|
package/lib/metrics.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* and track metrics and aggregates of the data in Store objects.
|
|
4
4
|
*
|
|
5
5
|
* The main entry point to this module is the createMetrics function, which
|
|
6
|
-
* returns a new Metrics object. From there, you can create new
|
|
7
|
-
* definitions, access the values of those
|
|
6
|
+
* returns a new Metrics object. From there, you can create new Metric
|
|
7
|
+
* definitions, access the values of those Metrics directly, and register
|
|
8
8
|
* listeners for when they change.
|
|
9
9
|
*
|
|
10
10
|
* @packageDocumentation
|
package/lib/persisters.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The persisters module of the TinyBase project provides a simple framework
|
|
3
|
-
*
|
|
2
|
+
* The persisters module of the TinyBase project provides a simple framework for
|
|
3
|
+
* saving and loading Store data, to and from different destinations, or
|
|
4
4
|
* underlying storage types.
|
|
5
5
|
*
|
|
6
6
|
* Several entry points are provided, each of which returns a new Persister
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
import {Store, Tables} from './store.d';
|
|
27
|
-
import {Callback} from './common';
|
|
27
|
+
import {Callback} from './common.d';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* The PersisterStats type describes the number of times a Persister object has
|
|
@@ -243,6 +243,7 @@ export interface Persister {
|
|
|
243
243
|
* console.log(store.getTables());
|
|
244
244
|
* // -> {pets: {toto: {species: 'dog'}}}
|
|
245
245
|
*
|
|
246
|
+
* persister.destroy();
|
|
246
247
|
* sessionStorage.clear();
|
|
247
248
|
* ```
|
|
248
249
|
* @category Load
|
|
@@ -284,6 +285,7 @@ export interface Persister {
|
|
|
284
285
|
* // -> {pets: {toto: {species: 'dog'}}}
|
|
285
286
|
* // Storage change has not been automatically loaded.
|
|
286
287
|
*
|
|
288
|
+
* persister.destroy();
|
|
287
289
|
* sessionStorage.clear();
|
|
288
290
|
* ```
|
|
289
291
|
* @category Load
|
|
@@ -650,8 +652,9 @@ export function createFilePersister(store: Store, filePath: string): Persister;
|
|
|
650
652
|
* layer.
|
|
651
653
|
*
|
|
652
654
|
* The other creation functions (such as the createSessionPersister function and
|
|
653
|
-
* createFilePersister function, for example) all use this under the
|
|
654
|
-
* those implementations for ideas on how to implement your own
|
|
655
|
+
* createFilePersister function, for example) all use this function under the
|
|
656
|
+
* covers. See those implementations for ideas on how to implement your own
|
|
657
|
+
* Persister types.
|
|
655
658
|
*
|
|
656
659
|
* @param store The Store to persist.
|
|
657
660
|
* @param getPersisted An asynchronous function which will fetch JSON from the
|
|
@@ -664,9 +667,9 @@ export function createFilePersister(store: Store, filePath: string): Persister;
|
|
|
664
667
|
* from the underlying changes to the persistence layer.
|
|
665
668
|
* @returns A reference to the new Persister object.
|
|
666
669
|
* @example
|
|
667
|
-
* This example creates a Persister object and persists the Store to a
|
|
668
|
-
* string called `storeJson` and would automatically load by polling
|
|
669
|
-
* every second.
|
|
670
|
+
* This example creates a custom Persister object and persists the Store to a
|
|
671
|
+
* local string called `storeJson` and which would automatically load by polling
|
|
672
|
+
* for changes every second.
|
|
670
673
|
*
|
|
671
674
|
* ```js
|
|
672
675
|
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
package/lib/relationships.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The main entry point to this module is the createRelationships function,
|
|
6
6
|
* which returns a new Relationships object. From there, you can create new
|
|
7
|
-
*
|
|
7
|
+
* Relationship definitions, access the associations within those Relationships
|
|
8
8
|
* directly, and register listeners for when they change.
|
|
9
9
|
*
|
|
10
10
|
* @packageDocumentation
|
package/lib/store.d.ts
CHANGED
|
@@ -17,11 +17,10 @@ import {Id, IdOrNull, Ids, Json} from './common.d';
|
|
|
17
17
|
* The Tables type is the data structure representing all of the data in a
|
|
18
18
|
* Store.
|
|
19
19
|
*
|
|
20
|
-
* A Tables object
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* individual Table objects, keyed by their Id.
|
|
20
|
+
* A Tables object is used when setting all of the tables together with the
|
|
21
|
+
* setTables method, and when getting them back out again with the getTables
|
|
22
|
+
* method. A Tables object is a regular JavaScript object containing individual
|
|
23
|
+
* Table objects, keyed by their Id.
|
|
25
24
|
*
|
|
26
25
|
* @example
|
|
27
26
|
* ```js
|
|
@@ -371,8 +370,8 @@ export type CellChange = [
|
|
|
371
370
|
* Ids and the types of Cell that can exist within them.
|
|
372
371
|
*
|
|
373
372
|
* A Schema comprises a JavaScript object describing each Table, in turn a
|
|
374
|
-
* nested JavaScript object containing
|
|
375
|
-
*
|
|
373
|
+
* nested JavaScript object containing information about each Cell and its
|
|
374
|
+
* CellSchema. It is provided to the setSchema method.
|
|
376
375
|
*
|
|
377
376
|
* @example
|
|
378
377
|
* When applied to a Store, this Schema only allows one Table called `pets`, in
|
|
@@ -1339,9 +1338,8 @@ export interface Store {
|
|
|
1339
1338
|
* applied or as invalid Table, Row, or Cell objects are removed. These
|
|
1340
1339
|
* changes will fire any listeners to that data, as expected.
|
|
1341
1340
|
*
|
|
1342
|
-
*
|
|
1343
|
-
*
|
|
1344
|
-
* completely remove an existing Schema with the delSchema method.
|
|
1341
|
+
* When no longer needed, you can also completely remove an existing Schema
|
|
1342
|
+
* with the delSchema method.
|
|
1345
1343
|
*
|
|
1346
1344
|
* @param schema The Schema to be set for the Store.
|
|
1347
1345
|
* @returns A reference to the Store.
|
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),r=s(0),a=s(s),i=(e,t)=>e.includes(t),d=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),l=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),u=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,f=e=>0==g(e),L=(e,t,s)=>e.reduce(t,s),h=e=>e.slice(1),p=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),w=JSON.parse,v=Math.max,I=Math.min,y=isFinite,S=(e,t)=>e instanceof t,R=e=>null==e,T=(e,t,s)=>R(e)?s?.():t(e),b=e=>e==n||e==o,m=e=>s(e)==a,C=()=>{},k=e=>e.size,A=(e,t)=>e?.has(t)??!1,M=e=>R(e)||0==k(e),E=e=>[...e?.values()??[]],x=e=>e.clear(),D=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),F=e=>new Map(e),z=(e=F)=>[e(),e()],N=e=>[...e?.keys()??[]],O=(e,t)=>e?.get(t),j=(e,t)=>D(e,((e,s)=>t(s,e))),P=(e,t,s)=>R(s)?(J(e,t),e):e?.set(t,s),B=(e,t,s,n)=>(A(e,t)||(n?.(s),e.set(t,s)),O(e,t)),H=(e,t)=>{const s={},n=t??(e=>e);return D(e,((e,t)=>s[t]=n(e))),s},W=(e,t)=>{const s=F(),n=t??(e=>e);return D(e,((e,t)=>s.set(t,n(e)))),s},q=e=>new Set(e),G=(e,t)=>e?.add(t),K=(e,t,s)=>{const n=e.hasRow,o=F(),r=F(),a=F(),i=F(),d=F(),l=t=>T(O(d,t),(s=>{D(s,e.delListener),P(d,t)})),u=e=>{P(o,e),P(r,e),P(a,e),P(i,e),l(e)};return[()=>e,()=>N(o),e=>O(o,e),e=>O(r,e),(e,t)=>P(r,e,t),(u,g,f,L,h)=>{const p=F(),w=F();P(o,u,g),A(r,u)||(P(r,u,t()),P(a,u,F()),P(i,u,F()));const v=O(a,u),I=O(i,u),y=t=>{const o=s=>e.getCell(g,t,s),r=O(v,t),a=n(g,t)?s(L(o,t)):void 0;if(r!=a&&P(p,t,[r,a]),!R(h)){const e=O(I,t),s=n(g,t)?h(o,t):void 0;e!=s&&P(w,t,s)}},S=e=>{f((()=>{D(p,(([,e],t)=>P(v,t,e))),D(w,((e,t)=>P(I,t,e)))}),p,w,v,I,e),x(p),x(w)};j(v,y),e.hasTable(g)&&c(e.getRowIds(g),(e=>{A(v,e)||y(e)})),S(!0),l(u),P(d,u,q([e.addRowListener(g,null,((e,t,s)=>y(s))),e.addTableListener(g,(()=>S()))]))},u,()=>j(d,u)]},Q=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),U=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},V=(e,t,s)=>g(s)<2?G(f(s)?e:B(e,s[0],q()),t):V(B(e,s[0],F()),t,h(s)),X=e=>{const t=(s,n,...o)=>T(s,(s=>f(o)?e(s,n):c([o[0],null],(e=>t(O(s,e),n,...h(o))))));return t},Y=e=>{let t,s=0;const n=[],o=F();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return P(o,d,[r,a,i]),V(a,d,i),d},(e,s=[],...n)=>X(D)(e,(e=>T(O(o,e),(([e])=>e(t,...s,...n)))),...s),e=>T(O(o,e),(([,t,s])=>(X(J)(t,e,...s),P(o,e),g(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>T(O(o,e),(([e,,o])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...n(a)):R(o[i])?c(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},Z=Object,$=Z.keys,_=Z.isFrozen,ee=Z.freeze,te=(e,t)=>!R(((e,t)=>T(e,(e=>e[t])))(e,t)),se=(e,t)=>delete e[t],ne=(e,t)=>c(Z.entries(e),(([e,s])=>t(s,e))),oe=U((e=>{let t,s,n,o=100,r=F(),a=1;const d=q(),l=F(),[u,L,h]=Y((()=>j)),p=F(),w=F(),v=[],I=[],y=(t,s)=>{a=0,e.transaction((()=>D(O(p,s),((s,n)=>D(s,((s,o)=>D(s,((s,r)=>R(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{P(p,e),P(w,e),L(l,[e])},b=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??g(e)),S),m=()=>b(v,g(v)-o),C=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){T(t,(()=>{v.push(t),m(),b(I),t=void 0,n=1}));const e=B(r,s,F()),a=B(e,o,F()),c=B(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&M(P(a,i))&&M(P(e,o))&&M(P(r,s))&&(t=v.pop(),n=1),J()}})),k=(e="")=>(R(t)&&(t=""+s++,P(p,t,r),N(t,e),r=F(),n=1),t),E=()=>{f(v)||(I.unshift(k()),y(0,t),t=v.pop(),n=1)},x=()=>{f(I)||(v.push(t),t=I.shift(),y(1,t),n=1)},J=()=>{n&&(L(d),n=0)},z=e=>{const t=k(e);return J(),t},N=(e,t)=>(A(p,e)&&O(w,e)!==t&&(P(w,e,t),L(l,[e])),j),j={setSize:e=>(o=e,m(),j),addCheckpoint:z,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],getCheckpoint:e=>O(w,e),goBackward:()=>(E(),J(),j),goForward:()=>(x(),J(),j),goTo:e=>{const s=i(v,e)?E:i(I,e)?x:null;for(;!R(s)&&e!=t;)s();return J(),j},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,l,[e]),delListener:e=>(h(e),j),clear:()=>(b(v),b(I),R(t)||S(t),t=void 0,s=0,z(),j),destroy:()=>{e.delListener(C)},getListenerStats:()=>({})};return ee(j.clear())})),re=U((e=>{const t=F(),s=F(),[n,o,r,a,i,c,u,g]=K(e,F,(e=>R(e)?"":e+"")),[f,L,h]=Y((()=>p)),p={setIndexDefinition:(e,n,o,r,u,g=ae)=>{const f=R(u)?void 0:([e],[t])=>u(e,t);return c(e,n,((n,o,c,u,h)=>{let p=0;const w=q(),v=q(),I=a(e);if(D(o,(([e,t],s)=>{R(e)||(G(w,e),T(O(I,e),(t=>{J(t,s),M(t)&&(P(I,e),p=1)}))),R(t)||(G(w,t),A(I,t)||(P(I,t,q()),p=1),G(O(I,t),s),R(r)||G(v,t))})),n(),j(c,(e=>T(O(u,e),(e=>G(v,e))))),M(h)||D(v,(e=>{const t=(t,s)=>g(O(h,t),O(h,s),e),s=[...O(I,e)];d(s,t)||(P(I,e,q(l(s,t))),G(w,e))})),p){if(!R(f)){const t=[...I];d(t,f)||i(e,F(l(t,f)))}L(t,[e])}D(w,(t=>L(s,[e,t])))}),Q(o),T(r,Q)),p},delIndexDefinition:e=>(u(e),p),getStore:n,getIndexIds:o,getTableId:r,getSliceIds:e=>N(a(e)),getSliceRowIds:(e,t)=>E(O(a(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(h(e),p),destroy:g,getListenerStats:()=>({})};return ee(p)})),ae=(e,t)=>e<t?-1:1,ie=F([["avg",[(e,t)=>u(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>v(...e),(e,t)=>v(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:v(t,e)]],["min",[e=>I(...e),(e,t)=>I(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:I(t,e)]],["sum",[e=>u(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),de=U((e=>{const t=F(),[s,n,o,r,a,i,d,l]=K(e,C,(e=>isNaN(e)||R(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,g]=Y((()=>f)),f={setMetricDefinition:(e,s,n,o,d,l,c)=>{const g=m(n)?[n,d,l,c]:O(ie,n)??O(ie,"sum");return i(e,s,((s,n,o,i,d,l)=>{let c=r(e),f=k(i);const[L,h,p,w]=g;l=l||R(c),D(n,(([e,t])=>{l||(c=R(e)?h?.(c,t,f++):R(t)?p?.(c,e,f--):w?.(c,t,e,f)),l=l||R(c)})),s(),M(i)?c=void 0:l&&(c=L(E(i),k(i))),y(c)||(c=void 0);const v=r(e);c!=v&&(a(e,c),u(t,[e],c,v))}),Q(o,1)),f},delMetricDefinition:e=>(d(e),f),getStore:s,getMetricIds:n,getTableId:o,getMetric:r,addMetricListener:(e,s)=>c(s,t,[e]),delListener:e=>(g(e),f),destroy:l,getListenerStats:()=>({})};return ee(f)})),le=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();R(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(T(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(i)},ce=globalThis.window,ue=(e,t,s)=>{let n;return le(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},ce.addEventListener("storage",n)}),(()=>{ce.removeEventListener("storage",n),n=void 0}))},ge=(e,t)=>ue(e,t,localStorage),fe=(e,t)=>ue(e,t,sessionStorage),Le=(s,n)=>{let o;return le(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},he=e=>e.headers.get("ETag"),pe=(e,t,s,n)=>{let o,r;return le(e,(async()=>{const e=await fetch(t);return r=he(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=he(s);R(r)||R(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{T(o,clearInterval),o=void 0}))},we=U((e=>{const t=F(),s=F(),n=F(),o=F(),[r,a,i,d,l,c,u,g]=K(e,(()=>[F(),F(),F(),F()]),(e=>R(e)?void 0:e+"")),[f,L,h]=Y((()=>I)),p=(e,t,s)=>T(d(e),(([n,,o])=>{if(!A(o,t)){const r=q();if(i(e)!=v(e))G(r,t);else{let e=t;for(;!R(e)&&!A(r,e);)G(r,e),e=O(n,e)}if(s)return r;P(o,t,r)}return O(o,t)})),w=(e,t)=>T(d(e),(([,,e])=>P(e,t))),v=e=>O(t,e),I={setRelationshipDefinition:(e,r,a,i)=>(P(t,e,a),c(e,r,((t,r)=>{const a=q(),i=q(),l=q(),[c,u]=d(e);D(r,(([t,s],n)=>{R(t)||(G(i,t),T(O(u,t),(e=>{J(e,n),M(e)&&P(u,t)}))),R(s)||(G(i,s),A(u,s)||P(u,s,q()),G(O(u,s),n)),G(a,n),P(c,n,s),j(O(o,e),(t=>{A(p(e,t),n)&&G(l,t)}))})),t(),D(a,(t=>L(s,[e,t]))),D(i,(t=>L(n,[e,t]))),D(l,(t=>{w(e,t),L(o,[e,t])}))}),Q(i)),I),delRelationshipDefinition:e=>(P(t,e),u(e),I),getStore:r,getRelationshipIds:a,getLocalTableId:i,getRemoteTableId:v,getRemoteRowId:(e,t)=>O(d(e)?.[0],t),getLocalRowIds:(e,t)=>E(O(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>R(d(e))?[t]:E(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>f(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>f(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),f(s,o,[e,t])),delListener:e=>(w(...h(e)),I),destroy:g,getListenerStats:()=>({})};return ee(I)})),ve=(e,t,s,n=P)=>{const o=(r=N(e),a=e=>!te(t,e),r.filter(a));var r,a;return c($(t),(n=>s(e,n,t[n]))),c(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return b(t)||t==r&&y(e)?t:void 0},ye=(e,t)=>!(R(e)||!(e=>S(e,Z)&&e.constructor==Z)(e)||_(e))&&(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!(e=>f($(e)))(e)),Se=(e,t,s)=>P(e,t,O(e,t)==-s?void 0:s),Re=()=>{let e,t=0,s=0;const n=F(),o=F(),a=F(),d=F(),l=F(),u=F(),g=F(),f=z(q),L=z(q),h=z(),v=z(),I=z(),y=z(),S=z(),[C,k,E,J]=Y((()=>Me)),G=(t,s)=>(!e||A(l,s))&&ye(t,(e=>K(s,e))),K=(e,t,s)=>ye(s?t:U(t,e),((s,n)=>T(Q(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),Q=(t,s,n)=>e?T(O(O(l,t),s),(e=>Ie(n)!=e.type?e.default:n)):R(Ie(n))?void 0:n,U=(e,t)=>(T(O(u,t),(t=>ne(t,((t,s)=>{te(e,s)||(e[s]=t)})))),e),V=e=>ve(l,e,((e,t,s)=>{const n={};ve(B(l,t,F()),s,((e,t,s)=>{P(e,t,s),T(s.default,(e=>n[t]=e))})),P(u,t,n)}),((e,t)=>{P(l,t),P(u,t)})),X=e=>ve(g,e,((e,t,s)=>Z(t,s)),((e,t)=>de(t))),Z=(e,t)=>ve(B(g,e,F(),(()=>ue(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>le(e,t,s))),$=(e,t,s,n,o)=>ve(B(t,s,F(),(()=>ge(e,s,1))),n,((t,n,o)=>_(e,s,t,n,o)),((n,r)=>ce(e,t,s,n,r,o))),_=(e,t,s,n,o)=>{A(s,n)||fe(e,t,n,1);const r=O(s,n);o!==r&&(Le(e,t,n,r),P(s,n,o))},oe=(e,t,s)=>Ae((()=>$(e,ie(e),t,s))),re=(e,t,s,n,o)=>T(O(t,s),(t=>_(e,s,t,n,o)),(()=>$(e,t,s,U({[n]:o},e)))),ae=e=>{const s=""+t++;return A(e,s)?ae(e):s},ie=e=>O(g,e)??Z(e,{}),de=e=>Z(e,{}),le=(e,t,s)=>$(e,t,s,{},!0),ce=(e,t,s,n,o,r)=>{const a=O(u,e)?.[o];if(!R(a)&&!r)return _(e,s,n,o,a);const i=t=>{Le(e,s,t,O(n,t)),fe(e,s,t,-1),P(n,t)};R(a)?i(o):j(n,i),M(n)&&(ge(e,s,-1),M(P(t,s))&&(ue(e,-1),P(g,e)))},ue=(e,t)=>Se(n,e,t),ge=(e,t,s)=>Se(B(o,e,F()),t,s),fe=(e,t,s,n)=>Se(B(B(a,e,F()),t,F()),s,n),Le=(e,t,s,n)=>B(B(B(d,e,F()),t,F()),s,n),he=(e,t,s)=>{const n=O(O(d,e),t),o=me(e,t,s);return A(n,s)?[!0,O(n,s),o]:[!1,o,o]},pe=e=>{const t=M(y[e])&&M(v[e])&&M(L[e]),s=M(S[e])&&M(I[e])&&M(h[e])&&M(f[e]);if(t&&s)return;const r=e?[W(n),W(o,W),W(a,(e=>W(e,W))),W(d,(e=>W(e,W)))]:[n,o,a,d];if(t||(D(r[2],((t,s)=>D(t,((t,n)=>{M(t)||k(y[e],[s,n])})))),D(r[1],((t,s)=>{M(t)||k(v[e],[s])})),M(r[0])||k(L[e])),!s){let t;D(r[3],((s,n)=>{let o;D(s,((s,r)=>{let a;D(s,((s,i)=>{const d=me(n,r,i);d!==s&&(k(S[e],[n,r,i],d,s,he),t=o=a=1)})),a&&k(I[e],[n,r],he)})),o&&k(h[e],[n],he)})),t&&k(f[e],[],he)}},we=()=>H(g,(e=>H(e,H))),Re=()=>N(g),Te=e=>N(O(g,e)),be=(e,t)=>N(O(O(g,e),t)),me=(e,t,s)=>O(O(O(g,e),t),s),Ce=e=>((e=>ye(e,G))(e)&&Ae((()=>X(e))),Me),ke=()=>(Ae((()=>X({}))),Me),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,pe(1),s=-1,pe(0),s=0,c([d,n,o,a],x)),t},Me={getTables:we,getTableIds:Re,getTable:e=>H(O(g,e),H),getRowIds:Te,getRow:(e,t)=>H(O(O(g,e),t)),getCellIds:be,getCell:me,hasTable:e=>A(g,e),hasRow:(e,t)=>A(O(g,e),t),hasCell:(e,t,s)=>A(O(O(g,e),t),s),getJson:()=>p(g),getSchemaJson:()=>p(l),setTables:Ce,setTable:(e,t)=>(G(t,e)&&Ae((()=>Z(e,t))),Me),setRow:(e,t,s)=>(K(e,s)&&oe(e,t,s),Me),addRow:(e,t)=>{let s;return K(e,t)&&(s=ae(O(g,e)),oe(e,s,t)),s},setPartialRow:(e,t,s)=>(K(e,s,1)&&Ae((()=>{const n=ie(e);ne(s,((s,o)=>re(e,n,t,o,s)))})),Me),setCell:(e,t,s,n)=>(T(Q(e,s,m(n)?n(me(e,t,s)):n),(n=>Ae((()=>re(e,ie(e),t,s,n))))),Me),setJson:e=>{try{"{}"===e?ke():Ce(w(e))}catch{}return Me},setSchema:t=>{if((e=(e=>ye(e,(e=>ye(e,(e=>{if(!ye(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!b(t)&&t!=r||(Ie(e.default)!=t&&se(e,"default"),0))})))))(t))&&(V(t),!M(g))){const e=we();ke(),Ce(e)}return Me},delTables:ke,delTable:e=>(A(g,e)&&Ae((()=>de(e))),Me),delRow:(e,t)=>(T(O(g,e),(s=>{A(s,t)&&Ae((()=>le(e,s,t)))})),Me),delCell:(e,t,s,n)=>(T(O(g,e),(o=>T(O(o,t),(r=>{A(r,s)&&Ae((()=>ce(e,o,t,r,s,n)))})))),Me),delSchema:()=>(V({}),e=!1,Me),transaction:Ae,forEachTable:e=>D(g,((t,s)=>e(s,(e=>D(t,((t,s)=>e(s,(e=>j(t,e))))))))),forEachRow:(e,t)=>D(O(g,e),((e,s)=>t(s,(t=>j(e,t))))),forEachCell:(e,t,s)=>j(O(O(g,e),t),s),addTablesListener:(e,t)=>C(e,f[t?1:0]),addTableIdsListener:(e,t)=>C(e,L[t?1:0]),addTableListener:(e,t,s)=>C(t,h[s?1:0],[e]),addRowIdsListener:(e,t,s)=>C(t,v[s?1:0],[e]),addRowListener:(e,t,s,n)=>C(s,I[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>C(s,y[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>C(n,S[o?1:0],[e,t,s]),callListener:e=>(J(e,[Re,Te,be],(e=>R(e[2])?[]:[,,].fill(me(...e)))),Me),delListener:e=>(E(e),Me),getListenerStats:()=>({})};return ee(Me)};export{oe as createCheckpoints,le as createCustomPersister,Le as createFilePersister,re as createIndexes,ge as createLocalPersister,de as createMetrics,we as createRelationships,pe as createRemotePersister,fe as createSessionPersister,Re as createStore,ae as defaultSorter};
|
|
1
|
+
import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),r=s(0),a=s(s),i=(e,t)=>e.includes(t),d=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),l=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),u=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,f=e=>0==g(e),L=(e,t,s)=>e.reduce(t,s),h=e=>e.slice(1),p=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),w=JSON.parse,v=Math.max,I=Math.min,y=isFinite,S=(e,t)=>e instanceof t,R=e=>null==e,T=(e,t,s)=>R(e)?s?.():t(e),b=e=>e==n||e==o,m=e=>s(e)==a,C=()=>{},k=e=>e.size,A=(e,t)=>e?.has(t)??!1,M=e=>R(e)||0==k(e),E=e=>[...e?.values()??[]],x=e=>e.clear(),D=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),F=e=>new Map(e),z=(e=F)=>[e(),e()],N=e=>[...e?.keys()??[]],O=(e,t)=>e?.get(t),j=(e,t)=>D(e,((e,s)=>t(s,e))),P=(e,t,s)=>R(s)?(J(e,t),e):e?.set(t,s),B=(e,t,s,n)=>(A(e,t)||(n?.(s),e.set(t,s)),O(e,t)),H=(e,t)=>{const s={},n=t??(e=>e);return D(e,((e,t)=>s[t]=n(e))),s},W=(e,t)=>{const s=F(),n=t??(e=>e);return D(e,((e,t)=>s.set(t,n(e)))),s},q=e=>new Set(e),G=(e,t)=>e?.add(t),K=(e,t,s)=>{const n=e.hasRow,o=F(),r=F(),a=F(),i=F(),d=F(),l=t=>T(O(d,t),(s=>{D(s,e.delListener),P(d,t)})),u=e=>{P(o,e),P(r,e),P(a,e),P(i,e),l(e)};return[()=>e,()=>N(o),e=>O(o,e),e=>O(r,e),(e,t)=>P(r,e,t),(u,g,f,L,h)=>{const p=F(),w=F();P(o,u,g),A(r,u)||(P(r,u,t()),P(a,u,F()),P(i,u,F()));const v=O(a,u),I=O(i,u),y=t=>{const o=s=>e.getCell(g,t,s),r=O(v,t),a=n(g,t)?s(L(o,t)):void 0;if(r!=a&&P(p,t,[r,a]),!R(h)){const e=O(I,t),s=n(g,t)?h(o,t):void 0;e!=s&&P(w,t,s)}},S=e=>{f((()=>{D(p,(([,e],t)=>P(v,t,e))),D(w,((e,t)=>P(I,t,e)))}),p,w,v,I,e),x(p),x(w)};j(v,y),e.hasTable(g)&&c(e.getRowIds(g),(e=>{A(v,e)||y(e)})),S(!0),l(u),P(d,u,q([e.addRowListener(g,null,((e,t,s)=>y(s))),e.addTableListener(g,(()=>S()))]))},u,()=>j(d,u)]},Q=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),U=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},V=(e,t,s)=>g(s)<2?G(f(s)?e:B(e,s[0],q()),t):V(B(e,s[0],F()),t,h(s)),X=e=>{const t=(s,n,...o)=>T(s,(s=>f(o)?e(s,n):c([o[0],null],(e=>t(O(s,e),n,...h(o))))));return t},Y=e=>{let t,s=0;const n=[],o=F();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return P(o,d,[r,a,i]),V(a,d,i),d},(e,s=[],...n)=>X(D)(e,(e=>T(O(o,e),(([e])=>e(t,...s,...n)))),...s),e=>T(O(o,e),(([,t,s])=>(X(J)(t,e,...s),P(o,e),g(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>T(O(o,e),(([e,,o])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...n(a)):R(o[i])?c(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},Z=Object,$=Z.keys,_=Z.isFrozen,ee=Z.freeze,te=(e,t)=>!R(((e,t)=>T(e,(e=>e[t])))(e,t)),se=(e,t)=>delete e[t],ne=(e,t)=>c(Z.entries(e),(([e,s])=>t(s,e))),oe=U((e=>{let t,s,n,o=100,r=F(),a=1;const d=q(),l=F(),[u,L,h]=Y((()=>j)),p=F(),w=F(),v=[],I=[],y=(t,s)=>{a=0,e.transaction((()=>D(O(p,s),((s,n)=>D(s,((s,o)=>D(s,((s,r)=>R(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{P(p,e),P(w,e),L(l,[e])},b=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??g(e)),S),m=()=>b(v,g(v)-o),C=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){T(t,(()=>{v.push(t),m(),b(I),t=void 0,n=1}));const e=B(r,s,F()),a=B(e,o,F()),c=B(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&M(P(a,i))&&M(P(e,o))&&M(P(r,s))&&(t=v.pop(),n=1),J()}})),k=(e="")=>(R(t)&&(t=""+s++,P(p,t,r),N(t,e),r=F(),n=1),t),E=()=>{f(v)||(I.unshift(k()),y(0,t),t=v.pop(),n=1)},x=()=>{f(I)||(v.push(t),t=I.shift(),y(1,t),n=1)},J=()=>{n&&(L(d),n=0)},z=e=>{const t=k(e);return J(),t},N=(e,t)=>(A(p,e)&&O(w,e)!==t&&(P(w,e,t),L(l,[e])),j),j={setSize:e=>(o=e,m(),j),addCheckpoint:z,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],getCheckpoint:e=>O(w,e),goBackward:()=>(E(),J(),j),goForward:()=>(x(),J(),j),goTo:e=>{const s=i(v,e)?E:i(I,e)?x:null;for(;!R(s)&&e!=t;)s();return J(),j},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,l,[e]),delListener:e=>(h(e),j),clear:()=>(b(v),b(I),R(t)||S(t),t=void 0,s=0,z(),j),destroy:()=>{e.delListener(C)},getListenerStats:()=>({})};return ee(j.clear())})),re=(e,t)=>e<t?-1:1,ae=U((e=>{const t=F(),s=F(),[n,o,r,a,i,c,u,g]=K(e,F,(e=>R(e)?"":e+"")),[f,L,h]=Y((()=>p)),p={setIndexDefinition:(e,n,o,r,u,g=re)=>{const f=R(u)?void 0:([e],[t])=>u(e,t);return c(e,n,((n,o,c,u,h,p)=>{let w=0;const v=q(),I=q(),y=a(e);if(D(o,(([e,t],s)=>{R(e)||(G(v,e),T(O(y,e),(t=>{J(t,s),M(t)&&(P(y,e),w=1)}))),R(t)||(G(v,t),A(y,t)||(P(y,t,q()),w=1),G(O(y,t),s),R(r)||G(I,t))})),n(),M(h)||(p?j(y,(e=>G(I,e))):j(c,(e=>T(O(u,e),(e=>G(I,e))))),D(I,(e=>{const t=(t,s)=>g(O(h,t),O(h,s),e),s=[...O(y,e)];d(s,t)||(P(y,e,q(l(s,t))),G(v,e))}))),(w||p)&&!R(f)){const t=[...y];d(t,f)||(i(e,F(l(t,f))),w=1)}w&&L(t,[e]),D(v,(t=>L(s,[e,t])))}),Q(o),T(r,Q)),p},delIndexDefinition:e=>(u(e),p),getStore:n,getIndexIds:o,getTableId:r,getSliceIds:e=>N(a(e)),getSliceRowIds:(e,t)=>E(O(a(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(h(e),p),destroy:g,getListenerStats:()=>({})};return ee(p)})),ie=F([["avg",[(e,t)=>u(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>v(...e),(e,t)=>v(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:v(t,e)]],["min",[e=>I(...e),(e,t)=>I(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:I(t,e)]],["sum",[e=>u(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),de=U((e=>{const t=F(),[s,n,o,r,a,i,d,l]=K(e,C,(e=>isNaN(e)||R(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,g]=Y((()=>f)),f={setMetricDefinition:(e,s,n,o,d,l,c)=>{const g=m(n)?[n,d,l,c]:O(ie,n)??O(ie,"sum");return i(e,s,((s,n,o,i,d,l)=>{let c=r(e),f=k(i);const[L,h,p,w]=g;l=l||R(c),D(n,(([e,t])=>{l||(c=R(e)?h?.(c,t,f++):R(t)?p?.(c,e,f--):w?.(c,t,e,f)),l=l||R(c)})),s(),M(i)?c=void 0:l&&(c=L(E(i),k(i))),y(c)||(c=void 0);const v=r(e);c!=v&&(a(e,c),u(t,[e],c,v))}),Q(o,1)),f},delMetricDefinition:e=>(d(e),f),getStore:s,getMetricIds:n,getTableId:o,getMetric:r,addMetricListener:(e,s)=>c(s,t,[e]),delListener:e=>(g(e),f),destroy:l,getListenerStats:()=>({})};return ee(f)})),le=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();R(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(T(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(i)},ce=globalThis.window,ue=(e,t,s)=>{let n;return le(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},ce.addEventListener("storage",n)}),(()=>{ce.removeEventListener("storage",n),n=void 0}))},ge=(e,t)=>ue(e,t,localStorage),fe=(e,t)=>ue(e,t,sessionStorage),Le=(s,n)=>{let o;return le(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},he=e=>e.headers.get("ETag"),pe=(e,t,s,n)=>{let o,r;return le(e,(async()=>{const e=await fetch(t);return r=he(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=he(s);R(r)||R(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{T(o,clearInterval),o=void 0}))},we=U((e=>{const t=F(),s=F(),n=F(),o=F(),[r,a,i,d,l,c,u,g]=K(e,(()=>[F(),F(),F(),F()]),(e=>R(e)?void 0:e+"")),[f,L,h]=Y((()=>I)),p=(e,t,s)=>T(d(e),(([n,,o])=>{if(!A(o,t)){const r=q();if(i(e)!=v(e))G(r,t);else{let e=t;for(;!R(e)&&!A(r,e);)G(r,e),e=O(n,e)}if(s)return r;P(o,t,r)}return O(o,t)})),w=(e,t)=>T(d(e),(([,,e])=>P(e,t))),v=e=>O(t,e),I={setRelationshipDefinition:(e,r,a,i)=>(P(t,e,a),c(e,r,((t,r)=>{const a=q(),i=q(),l=q(),[c,u]=d(e);D(r,(([t,s],n)=>{R(t)||(G(i,t),T(O(u,t),(e=>{J(e,n),M(e)&&P(u,t)}))),R(s)||(G(i,s),A(u,s)||P(u,s,q()),G(O(u,s),n)),G(a,n),P(c,n,s),j(O(o,e),(t=>{A(p(e,t),n)&&G(l,t)}))})),t(),D(a,(t=>L(s,[e,t]))),D(i,(t=>L(n,[e,t]))),D(l,(t=>{w(e,t),L(o,[e,t])}))}),Q(i)),I),delRelationshipDefinition:e=>(P(t,e),u(e),I),getStore:r,getRelationshipIds:a,getLocalTableId:i,getRemoteTableId:v,getRemoteRowId:(e,t)=>O(d(e)?.[0],t),getLocalRowIds:(e,t)=>E(O(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>R(d(e))?[t]:E(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>f(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>f(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),f(s,o,[e,t])),delListener:e=>(w(...h(e)),I),destroy:g,getListenerStats:()=>({})};return ee(I)})),ve=(e,t,s,n=P)=>{const o=(r=N(e),a=e=>!te(t,e),r.filter(a));var r,a;return c($(t),(n=>s(e,n,t[n]))),c(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return b(t)||t==r&&y(e)?t:void 0},ye=(e,t)=>!(R(e)||!(e=>S(e,Z)&&e.constructor==Z)(e)||_(e))&&(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!(e=>f($(e)))(e)),Se=(e,t,s)=>P(e,t,O(e,t)==-s?void 0:s),Re=()=>{let e,t=0,s=0;const n=F(),o=F(),a=F(),d=F(),l=F(),u=F(),g=F(),f=z(q),L=z(q),h=z(),v=z(),I=z(),y=z(),S=z(),[C,k,E,J]=Y((()=>Me)),G=(t,s)=>(!e||A(l,s))&&ye(t,(e=>K(s,e))),K=(e,t,s)=>ye(s?t:U(t,e),((s,n)=>T(Q(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),Q=(t,s,n)=>e?T(O(O(l,t),s),(e=>Ie(n)!=e.type?e.default:n)):R(Ie(n))?void 0:n,U=(e,t)=>(T(O(u,t),(t=>ne(t,((t,s)=>{te(e,s)||(e[s]=t)})))),e),V=e=>ve(l,e,((e,t,s)=>{const n={};ve(B(l,t,F()),s,((e,t,s)=>{P(e,t,s),T(s.default,(e=>n[t]=e))})),P(u,t,n)}),((e,t)=>{P(l,t),P(u,t)})),X=e=>ve(g,e,((e,t,s)=>Z(t,s)),((e,t)=>de(t))),Z=(e,t)=>ve(B(g,e,F(),(()=>ue(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>le(e,t,s))),$=(e,t,s,n,o)=>ve(B(t,s,F(),(()=>ge(e,s,1))),n,((t,n,o)=>_(e,s,t,n,o)),((n,r)=>ce(e,t,s,n,r,o))),_=(e,t,s,n,o)=>{A(s,n)||fe(e,t,n,1);const r=O(s,n);o!==r&&(Le(e,t,n,r),P(s,n,o))},oe=(e,t,s)=>Ae((()=>$(e,ie(e),t,s))),re=(e,t,s,n,o)=>T(O(t,s),(t=>_(e,s,t,n,o)),(()=>$(e,t,s,U({[n]:o},e)))),ae=e=>{const s=""+t++;return A(e,s)?ae(e):s},ie=e=>O(g,e)??Z(e,{}),de=e=>Z(e,{}),le=(e,t,s)=>$(e,t,s,{},!0),ce=(e,t,s,n,o,r)=>{const a=O(u,e)?.[o];if(!R(a)&&!r)return _(e,s,n,o,a);const i=t=>{Le(e,s,t,O(n,t)),fe(e,s,t,-1),P(n,t)};R(a)?i(o):j(n,i),M(n)&&(ge(e,s,-1),M(P(t,s))&&(ue(e,-1),P(g,e)))},ue=(e,t)=>Se(n,e,t),ge=(e,t,s)=>Se(B(o,e,F()),t,s),fe=(e,t,s,n)=>Se(B(B(a,e,F()),t,F()),s,n),Le=(e,t,s,n)=>B(B(B(d,e,F()),t,F()),s,n),he=(e,t,s)=>{const n=O(O(d,e),t),o=me(e,t,s);return A(n,s)?[!0,O(n,s),o]:[!1,o,o]},pe=e=>{const t=M(y[e])&&M(v[e])&&M(L[e]),s=M(S[e])&&M(I[e])&&M(h[e])&&M(f[e]);if(t&&s)return;const r=e?[W(n),W(o,W),W(a,(e=>W(e,W))),W(d,(e=>W(e,W)))]:[n,o,a,d];if(t||(D(r[2],((t,s)=>D(t,((t,n)=>{M(t)||k(y[e],[s,n])})))),D(r[1],((t,s)=>{M(t)||k(v[e],[s])})),M(r[0])||k(L[e])),!s){let t;D(r[3],((s,n)=>{let o;D(s,((s,r)=>{let a;D(s,((s,i)=>{const d=me(n,r,i);d!==s&&(k(S[e],[n,r,i],d,s,he),t=o=a=1)})),a&&k(I[e],[n,r],he)})),o&&k(h[e],[n],he)})),t&&k(f[e],[],he)}},we=()=>H(g,(e=>H(e,H))),Re=()=>N(g),Te=e=>N(O(g,e)),be=(e,t)=>N(O(O(g,e),t)),me=(e,t,s)=>O(O(O(g,e),t),s),Ce=e=>((e=>ye(e,G))(e)&&Ae((()=>X(e))),Me),ke=()=>(Ae((()=>X({}))),Me),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,pe(1),s=-1,pe(0),s=0,c([d,n,o,a],x)),t},Me={getTables:we,getTableIds:Re,getTable:e=>H(O(g,e),H),getRowIds:Te,getRow:(e,t)=>H(O(O(g,e),t)),getCellIds:be,getCell:me,hasTable:e=>A(g,e),hasRow:(e,t)=>A(O(g,e),t),hasCell:(e,t,s)=>A(O(O(g,e),t),s),getJson:()=>p(g),getSchemaJson:()=>p(l),setTables:Ce,setTable:(e,t)=>(G(t,e)&&Ae((()=>Z(e,t))),Me),setRow:(e,t,s)=>(K(e,s)&&oe(e,t,s),Me),addRow:(e,t)=>{let s;return K(e,t)&&(s=ae(O(g,e)),oe(e,s,t)),s},setPartialRow:(e,t,s)=>(K(e,s,1)&&Ae((()=>{const n=ie(e);ne(s,((s,o)=>re(e,n,t,o,s)))})),Me),setCell:(e,t,s,n)=>(T(Q(e,s,m(n)?n(me(e,t,s)):n),(n=>Ae((()=>re(e,ie(e),t,s,n))))),Me),setJson:e=>{try{"{}"===e?ke():Ce(w(e))}catch{}return Me},setSchema:t=>{if((e=(e=>ye(e,(e=>ye(e,(e=>{if(!ye(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!b(t)&&t!=r||(Ie(e.default)!=t&&se(e,"default"),0))})))))(t))&&(V(t),!M(g))){const e=we();ke(),Ce(e)}return Me},delTables:ke,delTable:e=>(A(g,e)&&Ae((()=>de(e))),Me),delRow:(e,t)=>(T(O(g,e),(s=>{A(s,t)&&Ae((()=>le(e,s,t)))})),Me),delCell:(e,t,s,n)=>(T(O(g,e),(o=>T(O(o,t),(r=>{A(r,s)&&Ae((()=>ce(e,o,t,r,s,n)))})))),Me),delSchema:()=>(V({}),e=!1,Me),transaction:Ae,forEachTable:e=>D(g,((t,s)=>e(s,(e=>D(t,((t,s)=>e(s,(e=>j(t,e))))))))),forEachRow:(e,t)=>D(O(g,e),((e,s)=>t(s,(t=>j(e,t))))),forEachCell:(e,t,s)=>j(O(O(g,e),t),s),addTablesListener:(e,t)=>C(e,f[t?1:0]),addTableIdsListener:(e,t)=>C(e,L[t?1:0]),addTableListener:(e,t,s)=>C(t,h[s?1:0],[e]),addRowIdsListener:(e,t,s)=>C(t,v[s?1:0],[e]),addRowListener:(e,t,s,n)=>C(s,I[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>C(s,y[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>C(n,S[o?1:0],[e,t,s]),callListener:e=>(J(e,[Re,Te,be],(e=>R(e[2])?[]:[,,].fill(me(...e)))),Me),delListener:e=>(E(e),Me),getListenerStats:()=>({})};return ee(Me)};export{oe as createCheckpoints,le as createCustomPersister,Le as createFilePersister,ae as createIndexes,ge as createLocalPersister,de as createMetrics,we as createRelationships,pe as createRemotePersister,fe as createSessionPersister,Re as createStore,re as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/ui-react.d.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @module ui-react
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {Callback, Id, IdOrNull, Ids, ParameterizedCallback} from './common';
|
|
17
|
+
import {Callback, Id, IdOrNull, Ids, ParameterizedCallback} from './common.d';
|
|
18
18
|
import {
|
|
19
19
|
Cell,
|
|
20
20
|
CellIdsListener,
|
|
@@ -2213,6 +2213,9 @@ export function useCellListener(
|
|
|
2213
2213
|
* an array in the optional second parameter, just as you would for any React
|
|
2214
2214
|
* hook with dependencies.
|
|
2215
2215
|
*
|
|
2216
|
+
* This hook ensures the Metrics object is destroyed whenever a new one is
|
|
2217
|
+
* created or the component is unmounted.
|
|
2218
|
+
*
|
|
2216
2219
|
* @param store A reference to the Store for which to create a new Metrics
|
|
2217
2220
|
* object.
|
|
2218
2221
|
* @param create A function for performing the creation steps of the Metrics
|
|
@@ -2554,6 +2557,9 @@ export function useMetricListener(
|
|
|
2554
2557
|
* an array in the optional second parameter, just as you would for any React
|
|
2555
2558
|
* hook with dependencies.
|
|
2556
2559
|
*
|
|
2560
|
+
* This hook ensures the Indexes object is destroyed whenever a new one is
|
|
2561
|
+
* created or the component is unmounted.
|
|
2562
|
+
*
|
|
2557
2563
|
* @param store A reference to the Store for which to create a new Indexes
|
|
2558
2564
|
* object.
|
|
2559
2565
|
* @param create A function for performing the creation steps of the Indexes
|
|
@@ -3104,6 +3110,9 @@ export function useSliceRowIdsListener(
|
|
|
3104
3110
|
* them in an array in the optional second parameter, just as you would for any
|
|
3105
3111
|
* React hook with dependencies.
|
|
3106
3112
|
*
|
|
3113
|
+
* This hook ensures the Relationships object is destroyed whenever a new one is
|
|
3114
|
+
* created or the component is unmounted.
|
|
3115
|
+
*
|
|
3107
3116
|
* @param store A reference to the Store for which to create a new Relationships
|
|
3108
3117
|
* object.
|
|
3109
3118
|
* @param create An optional callback for performing post-creation steps on the
|
|
@@ -3900,6 +3909,9 @@ export function useLinkedRowIdsListener(
|
|
|
3900
3909
|
* them in an array in the optional second parameter, just as you would for any
|
|
3901
3910
|
* React hook with dependencies.
|
|
3902
3911
|
*
|
|
3912
|
+
* This hook ensures the Checkpoints object is destroyed whenever a new one is
|
|
3913
|
+
* created or the component is unmounted.
|
|
3914
|
+
*
|
|
3903
3915
|
* @param store A reference to the Store for which to create a new Checkpoints
|
|
3904
3916
|
* object.
|
|
3905
3917
|
* @param create A function for performing the creation steps of the Checkpoints
|
|
@@ -4751,6 +4763,9 @@ export function useCheckpointListener(
|
|
|
4751
4763
|
* an array in the fifth parameter. The Persister itself is used as a dependency
|
|
4752
4764
|
* by default.
|
|
4753
4765
|
*
|
|
4766
|
+
* This hook ensures the Persister object is destroyed whenever a new one is
|
|
4767
|
+
* created or the component is unmounted.
|
|
4768
|
+
*
|
|
4754
4769
|
* @param store A reference to the Store for which to create a new Persister
|
|
4755
4770
|
* object.
|
|
4756
4771
|
* @param create A function for performing the creation steps of the Persister
|
|
@@ -4795,10 +4810,12 @@ export function useCheckpointListener(
|
|
|
4795
4810
|
*
|
|
4796
4811
|
* // ... // !act
|
|
4797
4812
|
* ReactDOM.render(<App />, app); // !act
|
|
4798
|
-
* // No second
|
|
4813
|
+
* // No second Persister creation
|
|
4799
4814
|
*
|
|
4800
4815
|
* console.log(app.innerHTML);
|
|
4801
4816
|
* // -> '<span>{\"pets\":{\"fido\":{\"species\":\"dog\"}}}</span>'
|
|
4817
|
+
*
|
|
4818
|
+
* ReactDOM.unmountComponentAtNode(app); // !act
|
|
4802
4819
|
* ```
|
|
4803
4820
|
* @example
|
|
4804
4821
|
* This example creates a Persister at the top level of a React application. The
|
|
@@ -4841,6 +4858,8 @@ export function useCheckpointListener(
|
|
|
4841
4858
|
* // ... // !act
|
|
4842
4859
|
* console.log(app.innerHTML);
|
|
4843
4860
|
* // -> '<span>{\"pets\":{\"cujo\":{\"species\":\"dog\"}}}</span>'
|
|
4861
|
+
*
|
|
4862
|
+
* ReactDOM.unmountComponentAtNode(app); // !act
|
|
4844
4863
|
* ```
|
|
4845
4864
|
* @category Persister hooks
|
|
4846
4865
|
*/
|
package/lib/ui-react.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useContext as o}from"react";const t=e=>typeof e,d=t(""),s=(e,o)=>e.map(o),r=e=>null==e,n=(e,o,t)=>r(e)?t?.():o(e),i=()=>{},{createContext:
|
|
1
|
+
import e,{useContext as o}from"react";const t=e=>typeof e,d=t(""),s=(e,o)=>e.map(o),r=e=>null==e,n=(e,o,t)=>r(e)?t?.():o(e),i=()=>{},{createContext:c,useContext:l}=e,I=c([]),a=(e,o)=>{const t=l(I);return r(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},p=(e,o)=>{const s=a(e,o);return r(e)||(e=>t(e)==d)(e)?s:e},u=e=>a(e,0),b=e=>a(e,2),g=e=>a(e,4),w=e=>a(e,6),C=e=>a(e,8),m=e=>p(e,0),k=e=>p(e,2),R=e=>p(e,4),h=e=>p(e,6),v=e=>p(e,8),{useCallback:y,useEffect:T,useMemo:x,useState:P}=e,L=(e,o,t=[])=>{const d=x((()=>o(e)),[e,...t]);return T((()=>()=>d.destroy()),[d]),d},S=(e,o,t,...d)=>{const s=o?.["get"+e]??(()=>t),r=s(...d),[,n]=P(r);return T((()=>{const t=o?.[`add${e}Listener`]?.(...d,(()=>n(s(...d))),!1);return()=>o?.delListener(t)}),[o,e,n,s,...d]),r},B=(e,o,t,d=[],s,...r)=>{T((()=>{const d=o?.[`add${e}Listener`]?.(...r,t,s);return()=>o?.delListener(d)}),[o,e,...d,s,...r])},f=(e,o,t,d=[],s=i,r=[],...c)=>{const l=m(e);return y((e=>n(l,(d=>n(t(e,d),(e=>s(d["set"+o](...c,e),e)))))),[l,o,...d,...r,...c])},M=(e,o,t=i,d=[],...s)=>{const r=m(e);return y((()=>t(r?.["del"+o](...s))),[r,o,...d,...s])},A=(e,o,t)=>{const d=v(e);return y((()=>d?.[o](t)),[d,o,t])},E=(e,o=[])=>x(e,o),$=e=>S("Tables",m(e),{}),F=e=>S("TableIds",m(e),[]),j=(e,o)=>S("Table",m(o),{},e),q=(e,o)=>S("RowIds",m(o),[],e),z=(e,o,t)=>S("Row",m(t),{},e,o),D=(e,o,t)=>S("CellIds",m(t),[],e,o),G=(e,o,t,d)=>S("Cell",m(d),void 0,e,o,t),H=(e,o,t,d,s)=>f(t,"Tables",e,o,d,s),J=(e,o,t,d,s,r)=>f(d,"Table",o,t,s,r,e),K=(e,o,t,d,s,r,n)=>f(s,"Row",t,d,r,n,e,o),N=(e,o,t=[],d,s=i,r=[])=>{const c=m(d);return y((t=>n(c,(d=>n(o(t,d),(o=>s(d.addRow(e,o),d,o)))))),[c,e,...t,...r])},O=(e,o,t,d,s,r,n)=>f(s,"PartialRow",t,d,r,n,e,o),Q=(e,o,t,d,s,r,n,i)=>f(r,"Cell",d,s,n,i,e,o,t),U=(e,o,t)=>M(e,"Tables",o,t),V=(e,o,t,d)=>M(o,"Table",t,d,e),W=(e,o,t,d,s)=>M(t,"Row",d,s,e,o),X=(e,o,t,d,s,r,n)=>M(s,"Cell",r,n,e,o,t,d),Y=(e,o,t,d)=>B("Tables",m(d),e,o,t),Z=(e,o,t,d)=>B("TableIds",m(d),e,o,t),_=(e,o,t,d,s)=>B("Table",m(s),o,t,d,e),ee=(e,o,t,d,s)=>B("RowIds",m(s),o,t,d,e),oe=(e,o,t,d,s,r)=>B("Row",m(r),t,d,s,e,o),te=(e,o,t,d,s,r)=>B("CellIds",m(r),t,d,s,e,o),de=(e,o,t,d,s,r,n)=>B("Cell",m(n),d,s,r,e,o,t),se=(e,o,t)=>L(e,o,t),re=(e,o)=>S("Metric",k(o),void 0,e),ne=(e,o,t,d)=>B("Metric",k(d),o,t,void 0,e),ie=(e,o,t)=>L(e,o,t),ce=(e,o)=>S("SliceIds",R(o),[],e),le=(e,o,t)=>S("SliceRowIds",R(t),[],e,o),Ie=(e,o,t,d)=>B("SliceIds",R(d),o,t,void 0,e),ae=(e,o,t,d,s)=>B("SliceRowIds",R(s),t,d,void 0,e,o),pe=(e,o,t)=>L(e,o,t),ue=(e,o,t)=>S("RemoteRowId",h(t),void 0,e,o),be=(e,o,t)=>S("LocalRowIds",h(t),[],e,o),ge=(e,o,t)=>S("LinkedRowIds",h(t),[],e,o),we=(e,o,t,d,s)=>B("RemoteRowId",h(s),t,d,void 0,e,o),Ce=(e,o,t,d,s)=>B("LocalRowIds",h(s),t,d,void 0,e,o),me=(e,o,t,d,s)=>B("LinkedRowIds",h(s),t,d,void 0,e,o),ke=(e,o,t)=>L(e,o,t),Re=e=>S("CheckpointIds",v(e),[[],void 0,[]]),he=(e,o)=>S("Checkpoint",v(o),void 0,e),ve=(e=i,o=[],t,d=i,s=[])=>{const r=v(t);return y((o=>n(r,(t=>{const s=e(o);d(t.addCheckpoint(s),t,s)}))),[r,...o,...s])},ye=e=>A(e,"goBackward"),Te=e=>A(e,"goForward"),xe=(e,o=[],t,d=i,s=[])=>{const r=v(t);return y((o=>n(r,(t=>n(e(o),(e=>d(t.goTo(e),e)))))),[r,...o,...s])},Pe=e=>{const o=v(e),[t,d]=Re(o);return[(s=t,!(0==(e=>e.length)(s))),ye(o),d,n(d,(e=>o?.getCheckpoint(e)))??""];var s},Le=e=>{const o=v(e),[,,[t]]=Re(o);return[!r(t),Te(o),t,n(t,(e=>o?.getCheckpoint(e)))??""]},Se=(e,o,t)=>B("CheckpointIds",v(t),e,o),Be=(e,o,t,d)=>B("Checkpoint",v(d),o,t,void 0,e),fe=(e,o,t=[],d,s=[])=>{const[,r]=P(),n=x((()=>o(e)),[e,...t]);return T((()=>((async()=>{await(d?.(n)),r(1)})(),()=>{n.destroy()})),[n,...s]),n},{createElement:Me,useMemo:Ae}=e,Ee=e=>{const o=h(e);return[o,o?.getStore()]},$e=({relationshipId:e,relationships:o,rowComponent:t=Ge,getRowComponentProps:d,separator:r,debugIds:n},i,c)=>{const[l,I]=Ee(o),a=l?.getLocalTableId(e),p=i(e,c,l);return ze(s(p,(e=>Me(t,{...je(d,e),key:e,tableId:a,rowId:e,store:I,debugIds:n}))),r,n,c)},Fe=e=>({checkpoints:o,checkpointComponent:t=We,getCheckpointComponentProps:d,separator:r,debugIds:n})=>{const i=v(o);return ze(s(e(Re(i)),(e=>Me(t,{...je(d,e),key:e,checkpoints:i,checkpointId:e,debugIds:n}))),r)},je=(e,o)=>r(e)?{}:e(o),qe=({store:e,storesById:t,metrics:d,metricsById:s,indexes:r,indexesById:n,relationships:i,relationshipsById:c,checkpoints:l,checkpointsById:a,children:p})=>{const u=o(I);return Me(I.Provider,{value:Ae((()=>[e??u[0],{...u[1],...t},d??u[2],{...u[3],...s},r??u[4],{...u[5],...n},i??u[6],{...u[7],...c},l??u[8],{...u[9],...a}]),[e,t,d,s,r,n,i,c,l,a,u])},p)},ze=(e,o,t,d)=>{const n=r(o)||!Array.isArray(e)?e:s(e,((e,t)=>t>0?[o,e]:e));return t?[d,":{",n,"}"]:n},De=({tableId:e,rowId:o,cellId:t,store:d,debugIds:s})=>ze(""+(G(e,o,t,d)??""),void 0,s,t),Ge=({tableId:e,rowId:o,store:t,cellComponent:d=De,getCellComponentProps:r,separator:n,debugIds:i})=>ze(s(D(e,o,t),(s=>Me(d,{...je(r,s),key:s,tableId:e,rowId:o,cellId:s,store:t,debugIds:i}))),n,i,o),He=({tableId:e,store:o,rowComponent:t=Ge,getRowComponentProps:d,separator:r,debugIds:n})=>ze(s(q(e,o),(s=>Me(t,{...je(d,s),key:s,tableId:e,rowId:s,store:o,debugIds:n}))),r,n,e),Je=({store:e,tableComponent:o=He,getTableComponentProps:t,separator:d,debugIds:r})=>ze(s(F(e),(d=>Me(o,{...je(t,d),key:d,tableId:d,store:e,debugIds:r}))),d),Ke=({metricId:e,metrics:o,debugIds:t})=>ze(re(e,o)??"",void 0,t,e),Ne=({indexId:e,sliceId:o,indexes:t,rowComponent:d=Ge,getRowComponentProps:r,separator:n,debugIds:i})=>{const c=R(t),l=c?.getStore(),I=c?.getTableId(e),a=le(e,o,c);return ze(s(a,(e=>Me(d,{...je(r,e),key:e,tableId:I,rowId:e,store:l,debugIds:i}))),n,i,o)},Oe=({indexId:e,indexes:o,sliceComponent:t=Ne,getSliceComponentProps:d,separator:r,debugIds:n})=>ze(s(ce(e,o),(s=>Me(t,{...je(d,s),key:s,indexId:e,sliceId:s,indexes:o,debugIds:n}))),r,n,e),Qe=({relationshipId:e,localRowId:o,relationships:t,rowComponent:d=Ge,getRowComponentProps:s,debugIds:n})=>{const[i,c]=Ee(t),l=i?.getRemoteTableId(e),I=ue(e,o,i);return ze(r(l)||r(I)?null:Me(d,{...je(s,I),key:I,tableId:l,rowId:I,store:c,debugIds:n}),void 0,n,o)},Ue=e=>$e(e,be,e.remoteRowId),Ve=e=>$e(e,ge,e.firstRowId),We=({checkpoints:e,checkpointId:o,debugIds:t})=>ze(he(o,e)??"",void 0,t,o),Xe=Fe((e=>e[0])),Ye=Fe((e=>r(e[1])?[]:[e[1]])),Ze=Fe((e=>e[2]));export{Xe as BackwardCheckpointsView,De as CellView,We as CheckpointView,Ye as CurrentCheckpointView,Ze as ForwardCheckpointsView,Oe as IndexView,Ve as LinkedRowsView,Ue as LocalRowsView,Ke as MetricView,qe as Provider,Qe as RemoteRowView,Ge as RowView,Ne as SliceView,He as TableView,Je as TablesView,N as useAddRowCallback,G as useCell,D as useCellIds,te as useCellIdsListener,de as useCellListener,he as useCheckpoint,Re as useCheckpointIds,Se as useCheckpointIdsListener,Be as useCheckpointListener,C as useCheckpoints,ke as useCreateCheckpoints,ie as useCreateIndexes,se as useCreateMetrics,fe as useCreatePersister,pe as useCreateRelationships,E as useCreateStore,X as useDelCellCallback,W as useDelRowCallback,V as useDelTableCallback,U as useDelTablesCallback,ye as useGoBackwardCallback,Te as useGoForwardCallback,xe as useGoToCallback,g as useIndexes,ge as useLinkedRowIds,me as useLinkedRowIdsListener,be as useLocalRowIds,Ce as useLocalRowIdsListener,re as useMetric,ne as useMetricListener,b as useMetrics,Le as useRedoInformation,w as useRelationships,ue as useRemoteRowId,we as useRemoteRowIdListener,z as useRow,q as useRowIds,ee as useRowIdsListener,oe as useRowListener,Q as useSetCellCallback,ve as useSetCheckpointCallback,O as useSetPartialRowCallback,K as useSetRowCallback,J as useSetTableCallback,H as useSetTablesCallback,ce as useSliceIds,Ie as useSliceIdsListener,le as useSliceRowIds,ae as useSliceRowIdsListener,u as useStore,j as useTable,F as useTableIds,Z as useTableIdsListener,_ as useTableListener,$ as useTables,Y as useTablesListener,Pe as useUndoInformation};
|
package/lib/ui-react.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e,o;e=this,o=function(e){"use strict";e.defaultSorter=(e,o)=>e<o?-1:1,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCommon={});
|
|
Binary file
|
package/lib/umd/indexes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=(e,t)=>e.every(((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),d=(e,t)=>e.forEach(t),
|
|
1
|
+
var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=(e,t)=>e.every(((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),d=(e,t)=>e.forEach(t),i=e=>e.length,r=e=>0==i(e),l=e=>e.slice(1),c=e=>null==e,a=(e,t,n)=>c(e)?n?.():t(e),f=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),p=e=>e.clear(),g=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),h=e=>new Map(e),y=e=>[...e?.keys()??[]],b=(e,t)=>e?.get(t),w=(e,t)=>g(e,((e,n)=>t(n,e))),x=(e,t,n)=>c(n)?(I(e,t),e):e?.set(t,n),v=(e,t,n,s)=>(f(e,t)||(s?.(n),e.set(t,n)),b(e,t)),L=e=>new Set(e),S=(e,t)=>e?.add(t),T=(e,s)=>t(e)==n?t=>t(e):e??(()=>s??""),R=(e,t)=>e<t?-1:1,j=(e,t,n)=>i(n)<2?S(r(n)?e:v(e,n[0],L()),t):j(v(e,n[0],h()),t,l(n)),M=e=>{const t=(n,s,...o)=>a(n,(n=>r(o)?e(n,s):d([o[0],null],(e=>t(b(n,e),s,...l(o))))));return t},k=Object.freeze,m=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=h(),n=h(),[r,l,v,m,z,D,E,O]=((e,t,n)=>{const s=e.hasRow,o=h(),i=h(),r=h(),l=h(),u=h(),I=t=>a(b(u,t),(n=>{g(n,e.delListener),x(u,t)})),v=e=>{x(o,e),x(i,e),x(r,e),x(l,e),I(e)};return[()=>e,()=>y(o),e=>b(o,e),e=>b(i,e),(e,t)=>x(i,e,t),(a,y,v,S,T)=>{const R=h(),j=h();x(o,a,y),f(i,a)||(x(i,a,t()),x(r,a,h()),x(l,a,h()));const M=b(r,a),k=b(l,a),m=t=>{const o=n=>e.getCell(y,t,n),d=b(M,t),i=s(y,t)?n(S(o,t)):void 0;if(d!=i&&x(R,t,[d,i]),!c(T)){const e=b(k,t),n=s(y,t)?T(o,t):void 0;e!=n&&x(j,t,n)}},z=e=>{v((()=>{g(R,(([,e],t)=>x(M,t,e))),g(j,((e,t)=>x(k,t,e)))}),R,j,M,k,e),p(R),p(j)};w(M,m),e.hasTable(y)&&d(e.getRowIds(y),(e=>{f(M,e)||m(e)})),z(!0),I(a),x(u,a,L([e.addRowListener(y,null,((e,t,n)=>m(n))),e.addTableListener(y,(()=>z()))]))},v,()=>w(u,v)]})(e,h,(e=>c(e)?"":e+"")),[_,B,C]=(e=>{let t,n=0;const s=[],o=h();return[(d,i,r=[])=>{t??=e();const l=s.pop()??""+n++;return x(o,l,[d,i,r]),j(i,l,r),l},(e,n=[],...s)=>M(g)(e,(e=>a(b(o,e),(([e])=>e(t,...n,...s)))),...n),e=>a(b(o,e),(([,t,n])=>(M(I)(t,e,...n),x(o,e),i(s)<1e3&&s.push(e),n)),(()=>[])),(e,n,s)=>a(b(o,e),(([e,,o])=>{const r=(...l)=>{const a=i(l);a==i(o)?e(t,...l,...s(l)):c(o[a])?d(n[a](...l),(e=>r(...l,e))):r(...l,o[a])};r()}))]})((()=>P)),P={setIndexDefinition:(e,d,i,r,l,p=R)=>{const y=c(l)?void 0:([e],[t])=>l(e,t);return D(e,d,((d,i,l,v,T,R)=>{let j=0;const M=L(),k=L(),D=m(e);if(g(i,(([e,t],n)=>{c(e)||(S(M,e),a(b(D,e),(t=>{I(t,n),u(t)&&(x(D,e),j=1)}))),c(t)||(S(M,t),f(D,t)||(x(D,t,L()),j=1),S(b(D,t),n),c(r)||S(k,t))})),d(),u(T)||(R?w(D,(e=>S(k,e))):w(l,(e=>a(b(v,e),(e=>S(k,e))))),g(k,(e=>{const t=(t,n)=>p(b(T,t),b(T,n),e),n=[...b(D,e)];s(n,t)||(x(D,e,L(o(n,t))),S(M,e))}))),(j||R)&&!c(y)){const t=[...D];s(t,y)||(z(e,h(o(t,y))),j=1)}j&&B(t,[e]),g(M,(t=>B(n,[e,t])))}),T(i),a(r,T)),P},delIndexDefinition:e=>(E(e),P),getStore:r,getIndexIds:l,getTableId:v,getSliceIds:e=>y(m(e)),getSliceRowIds:(e,t)=>[...b(m(e),t)?.values()??[]],addSliceIdsListener:(e,n)=>_(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>_(s,n,[e,t]),delListener:e=>(C(e),P),destroy:O,getListenerStats:()=>({})};return k(P)}));e.createIndexes=m,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
|
package/lib/umd/indexes.js.gz
CHANGED
|
Binary file
|
package/lib/umd/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),d="type",l="default",c="utf8",u=(e,t)=>e.includes(t),f=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),g=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),p=e=>w(e,((e,t)=>e+t),0),L=e=>e.length,v=e=>0==L(e),w=(e,t,s)=>e.reduce(t,s),y=e=>e.slice(1),I=e=>JSON.stringify(e,((e,t)=>m(t,Map)?w([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),S=JSON.parse,R=Math.max,T=Math.min,b=isFinite,m=(e,t)=>e instanceof t,C=e=>null==e,k=(e,t,s)=>C(e)?s?.():t(e),M=e=>e==o||e==r,x=e=>s(e)==i,A=()=>{},E=e=>e.size,P=(e,t)=>e?.has(t)??!1,D=e=>C(e)||0==E(e),J=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),j=(e,t)=>e?.delete(t),z=e=>new Map(e),N=(e=z)=>[e(),e()],B=e=>[...e?.keys()??[]],_=(e,t)=>e?.get(t),q=(e,t)=>O(e,((e,s)=>t(s,e))),H=(e,t,s)=>C(s)?(j(e,t),e):e?.set(t,s),W=(e,t,s,n)=>(P(e,t)||(n?.(s),e.set(t,s)),_(e,t)),G=(e,t)=>{const s={},n=t??(e=>e);return O(e,((e,t)=>s[t]=n(e))),s},K=(e,t)=>{const s=z(),n=t??(e=>e);return O(e,((e,t)=>s.set(t,n(e)))),s},Q=e=>new Set(e),U=(e,t)=>e?.add(t),V=(e,t,s)=>{const n=e.hasRow,o=z(),r=z(),a=z(),i=z(),d=z(),l=t=>k(_(d,t),(s=>{O(s,e.delListener),H(d,t)})),c=e=>{H(o,e),H(r,e),H(a,e),H(i,e),l(e)};return[()=>e,()=>B(o),e=>_(o,e),e=>_(r,e),(e,t)=>H(r,e,t),(c,u,f,g,p)=>{const L=z(),v=z();H(o,c,u),P(r,c)||(H(r,c,t()),H(a,c,z()),H(i,c,z()));const w=_(a,c),y=_(i,c),I=t=>{const o=s=>e.getCell(u,t,s),r=_(w,t),a=n(u,t)?s(g(o,t)):void 0;if(r!=a&&H(L,t,[r,a]),!C(p)){const e=_(y,t),s=n(u,t)?p(o,t):void 0;e!=s&&H(v,t,s)}},S=e=>{f((()=>{O(L,(([,e],t)=>H(w,t,e))),O(v,((e,t)=>H(y,t,e)))}),L,v,w,y,e),F(L),F(v)};q(w,I),e.hasTable(u)&&h(e.getRowIds(u),(e=>{P(w,e)||I(e)})),S(!0),l(c),H(d,c,Q([e.addRowListener(u,null,((e,t,s)=>I(s))),e.addTableListener(u,(()=>S()))]))},c,()=>q(d,c)]},X=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),Y=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Z=(e,t,s)=>L(s)<2?U(v(s)?e:W(e,s[0],Q()),t):Z(W(e,s[0],z()),t,y(s)),$=e=>{const t=(s,n,...o)=>k(s,(s=>v(o)?e(s,n):h([o[0],null],(e=>t(_(s,e),n,...y(o))))));return t},ee=e=>{let t,s=0;const n=[],o=z();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return H(o,d,[r,a,i]),Z(a,d,i),d},(e,s=[],...n)=>$(O)(e,(e=>k(_(o,e),(([e])=>e(t,...s,...n)))),...s),e=>k(_(o,e),(([,t,s])=>($(j)(t,e,...s),H(o,e),L(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>k(_(o,e),(([e,,o])=>{const r=(...a)=>{const i=L(a);i==L(o)?e(t,...a,...n(a)):C(o[i])?h(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},te=Object,se=te.keys,ne=te.isFrozen,oe=te.freeze,re=(e,t)=>!C(((e,t)=>k(e,(e=>e[t])))(e,t)),ae=(e,t)=>delete e[t],ie=(e,t)=>h(te.entries(e),(([e,s])=>t(s,e))),de=Y((e=>{let t,s,n,o=100,r=z(),a=1;const i=Q(),d=z(),[l,c,f]=ee((()=>F)),g=z(),p=z(),w=[],y=[],I=(t,s)=>{a=0,e.transaction((()=>O(_(g,s),((s,n)=>O(s,((s,o)=>O(s,((s,r)=>C(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{H(g,e),H(p,e),c(d,[e])},R=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??L(e)),S),T=()=>R(w,L(w)-o),b=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){k(t,(()=>{w.push(t),T(),R(y),t=void 0,n=1}));const e=W(r,s,z()),a=W(e,o,z()),c=W(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&D(H(a,i))&&D(H(e,o))&&D(H(r,s))&&(t=w.pop(),n=1),A()}})),m=(e="")=>(C(t)&&(t=""+s++,H(g,t,r),J(t,e),r=z(),n=1),t),M=()=>{v(w)||(y.unshift(m()),I(0,t),t=w.pop(),n=1)},x=()=>{v(y)||(w.push(t),t=y.shift(),I(1,t),n=1)},A=()=>{n&&(c(i),n=0)},E=e=>{const t=m(e);return A(),t},J=(e,t)=>(P(g,e)&&_(p,e)!==t&&(H(p,e,t),c(d,[e])),F),F={setSize:e=>(o=e,T(),F),addCheckpoint:E,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...y]],getCheckpoint:e=>_(p,e),goBackward:()=>(M(),A(),F),goForward:()=>(x(),A(),F),goTo:e=>{const s=u(w,e)?M:u(y,e)?x:null;for(;!C(s)&&e!=t;)s();return A(),F},addCheckpointIdsListener:e=>l(e,i),addCheckpointListener:(e,t)=>l(t,d,[e]),delListener:e=>(f(e),F),clear:()=>(R(w),R(y),C(t)||S(t),t=void 0,s=0,E(),F),destroy:()=>{e.delListener(b)},getListenerStats:()=>({})};return oe(F.clear())})),le=Y((e=>{const t=z(),s=z(),[o,r,a,i,d,l,c,u]=V(e,z,(e=>C(e)?n:e+n)),[h,p,L]=ee((()=>v)),v={setIndexDefinition:(e,n,o,r,a,c=ce)=>{const u=C(a)?void 0:([e],[t])=>a(e,t);return l(e,n,((n,o,a,l,h)=>{let L=0;const v=Q(),w=Q(),y=i(e);if(O(o,(([e,t],s)=>{C(e)||(U(v,e),k(_(y,e),(t=>{j(t,s),D(t)&&(H(y,e),L=1)}))),C(t)||(U(v,t),P(y,t)||(H(y,t,Q()),L=1),U(_(y,t),s),C(r)||U(w,t))})),n(),q(a,(e=>k(_(l,e),(e=>U(w,e))))),D(h)||O(w,(e=>{const t=(t,s)=>c(_(h,t),_(h,s),e),s=[..._(y,e)];f(s,t)||(H(y,e,Q(g(s,t))),U(v,e))})),L){if(!C(u)){const t=[...y];f(t,u)||d(e,z(g(t,u)))}p(t,[e])}O(v,(t=>p(s,[e,t])))}),X(o),k(r,X)),v},delIndexDefinition:e=>(c(e),v),getStore:o,getIndexIds:r,getTableId:a,getSliceIds:e=>B(i(e)),getSliceRowIds:(e,t)=>J(_(i(e),t)),addSliceIdsListener:(e,s)=>h(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>h(n,s,[e,t]),delListener:e=>(L(e),v),destroy:u,getListenerStats:()=>({})};return oe(v)})),ce=(e,t)=>e<t?-1:1,ue=z([["avg",[(e,t)=>p(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:R(t,e)]],["min",[e=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:T(t,e)]],["sum",[e=>p(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),fe=Y((e=>{const t=z(),[s,o,r,a,i,d,l,c]=V(e,A,(e=>isNaN(e)||C(e)||!0===e||!1===e||e===n?void 0:1*e)),[u,f,g]=ee((()=>h)),h={setMetricDefinition:(e,s,n,o,r,l,c)=>{const u=x(n)?[n,r,l,c]:_(ue,n)??_(ue,"sum");return d(e,s,((s,n,o,r,d,l)=>{let c=a(e),g=E(r);const[h,p,L,v]=u;l=l||C(c),O(n,(([e,t])=>{l||(c=C(e)?p?.(c,t,g++):C(t)?L?.(c,e,g--):v?.(c,t,e,g)),l=l||C(c)})),s(),D(r)?c=void 0:l&&(c=h(J(r),E(r))),b(c)||(c=void 0);const w=a(e);c!=w&&(i(e,c),f(t,[e],c,w))}),X(o,1)),h},delMetricDefinition:e=>(l(e),h),getStore:s,getMetricIds:o,getTableId:r,getMetric:a,addMetricListener:(e,s)=>u(s,t,[e]),delListener:e=>(g(e),h),destroy:c,getListenerStats:()=>({})};return oe(h)})),ge=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();C(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(k(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return oe(i)},he="storage",pe=globalThis.window,Le=(e,t,s)=>{let n;return ge(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},pe.addEventListener(he,n)}),(()=>{pe.removeEventListener(he,n),n=void 0}))},ve=e=>e.headers.get("ETag"),we=Y((e=>{const t=z(),s=z(),o=z(),r=z(),[a,i,d,l,c,u,f,g]=V(e,(()=>[z(),z(),z(),z()]),(e=>C(e)?void 0:e+n)),[h,p,L]=ee((()=>I)),v=(e,t,s)=>k(l(e),(([n,,o])=>{if(!P(o,t)){const r=Q();if(d(e)!=y(e))U(r,t);else{let e=t;for(;!C(e)&&!P(r,e);)U(r,e),e=_(n,e)}if(s)return r;H(o,t,r)}return _(o,t)})),w=(e,t)=>k(l(e),(([,,e])=>H(e,t))),y=e=>_(t,e),I={setRelationshipDefinition:(e,n,a,i)=>(H(t,e,a),u(e,n,((t,n)=>{const a=Q(),i=Q(),d=Q(),[c,u]=l(e);O(n,(([t,s],n)=>{C(t)||(U(i,t),k(_(u,t),(e=>{j(e,n),D(e)&&H(u,t)}))),C(s)||(U(i,s),P(u,s)||H(u,s,Q()),U(_(u,s),n)),U(a,n),H(c,n,s),q(_(r,e),(t=>{P(v(e,t),n)&&U(d,t)}))})),t(),O(a,(t=>p(s,[e,t]))),O(i,(t=>p(o,[e,t]))),O(d,(t=>{w(e,t),p(r,[e,t])}))}),X(i)),I),delRelationshipDefinition:e=>(H(t,e),f(e),I),getStore:a,getRelationshipIds:i,getLocalTableId:d,getRemoteTableId:y,getRemoteRowId:(e,t)=>_(l(e)?.[0],t),getLocalRowIds:(e,t)=>J(_(l(e)?.[1],t)),getLinkedRowIds:(e,t)=>C(l(e))?[t]:J(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>h(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>h(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),h(s,r,[e,t])),delListener:e=>(w(...L(e)),I),destroy:g,getListenerStats:()=>({})};return oe(I)})),ye=(e,t,s,n=H)=>{const o=(r=B(e),a=e=>!re(t,e),r.filter(a));var r,a;return h(se(t),(n=>s(e,n,t[n]))),h(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return M(t)||t==a&&b(e)?t:void 0},Se=(e,t)=>!(C(e)||!(e=>m(e,te)&&e.constructor==te)(e)||ne(e)||(ie(e,((s,n)=>{t(s,n)||ae(e,n)})),(e=>v(se(e)))(e))),Re=(e,t,s)=>H(e,t,_(e,t)==-s?void 0:s);e.createCheckpoints=de,e.createCustomPersister=ge,e.createFilePersister=(e,s)=>{let n;return ge(e,(async()=>{try{return await t.promises.readFile(s,c)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,c)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=le,e.createLocalPersister=(e,t)=>Le(e,t,localStorage),e.createMetrics=fe,e.createRelationships=we,e.createRemotePersister=(e,t,s,n)=>{let o,r;return ge(e,(async()=>{const e=await fetch(t);return r=ve(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=ve(s);C(r)||C(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{k(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Le(e,t,sessionStorage),e.createStore=()=>{let e,t=0,s=0;const n=z(),o=z(),r=z(),i=z(),c=z(),f=z(),g=z(),p=N(Q),L=N(Q),v=N(),w=N(),y=N(),R=N(),T=N(),[b,m,A,E]=ee((()=>Ee)),J=(t,s)=>(!e||P(c,s))&&Se(t,(e=>j(s,e))),j=(e,t,s)=>Se(s?t:V(t,e),((s,n)=>k(U(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),U=(t,s,n)=>e?k(_(_(c,t),s),(e=>Ie(n)!=e.type?e.default:n)):C(Ie(n))?void 0:n,V=(e,t)=>(k(_(f,t),(t=>ie(t,((t,s)=>{re(e,s)||(e[s]=t)})))),e),X=e=>ye(c,e,((e,t,s)=>{const n={};ye(W(c,t,z()),s,((e,t,s)=>{H(e,t,s),k(s.default,(e=>n[t]=e))})),H(f,t,n)}),((e,t)=>{H(c,t),H(f,t)})),Y=e=>ye(g,e,((e,t,s)=>Z(t,s)),((e,t)=>ce(t))),Z=(e,t)=>ye(W(g,e,z(),(()=>ge(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>ue(e,t,s))),$=(e,t,s,n,o)=>ye(W(t,s,z(),(()=>he(e,s,1))),n,((t,n,o)=>te(e,s,t,n,o)),((n,r)=>fe(e,t,s,n,r,o))),te=(e,t,s,n,o)=>{P(s,n)||pe(e,t,n,1);const r=_(s,n);o!==r&&(Le(e,t,n,r),H(s,n,o))},se=(e,t,s)=>Ae((()=>$(e,le(e),t,s))),ne=(e,t,s,n,o)=>k(_(t,s),(t=>te(e,s,t,n,o)),(()=>$(e,t,s,V({[n]:o},e)))),de=e=>{const s=""+t++;return P(e,s)?de(e):s},le=e=>_(g,e)??Z(e,{}),ce=e=>Z(e,{}),ue=(e,t,s)=>$(e,t,s,{},!0),fe=(e,t,s,n,o,r)=>{const a=_(f,e)?.[o];if(!C(a)&&!r)return te(e,s,n,o,a);const i=t=>{Le(e,s,t,_(n,t)),pe(e,s,t,-1),H(n,t)};C(a)?i(o):q(n,i),D(n)&&(he(e,s,-1),D(H(t,s))&&(ge(e,-1),H(g,e)))},ge=(e,t)=>Re(n,e,t),he=(e,t,s)=>Re(W(o,e,z()),t,s),pe=(e,t,s,n)=>Re(W(W(r,e,z()),t,z()),s,n),Le=(e,t,s,n)=>W(W(W(i,e,z()),t,z()),s,n),ve=(e,t,s)=>{const n=_(_(i,e),t),o=ke(e,t,s);return P(n,s)?[!0,_(n,s),o]:[!1,o,o]},we=e=>{const t=D(R[e])&&D(w[e])&&D(L[e]),s=D(T[e])&&D(y[e])&&D(v[e])&&D(p[e]);if(t&&s)return;const a=e?[K(n),K(o,K),K(r,(e=>K(e,K))),K(i,(e=>K(e,K)))]:[n,o,r,i];if(t||(O(a[2],((t,s)=>O(t,((t,n)=>{D(t)||m(R[e],[s,n])})))),O(a[1],((t,s)=>{D(t)||m(w[e],[s])})),D(a[0])||m(L[e])),!s){let t;O(a[3],((s,n)=>{let o;O(s,((s,r)=>{let a;O(s,((s,i)=>{const d=ke(n,r,i);d!==s&&(m(T[e],[n,r,i],d,s,ve),t=o=a=1)})),a&&m(y[e],[n,r],ve)})),o&&m(v[e],[n],ve)})),t&&m(p[e],[],ve)}},Te=()=>G(g,(e=>G(e,G))),be=()=>B(g),me=e=>B(_(g,e)),Ce=(e,t)=>B(_(_(g,e),t)),ke=(e,t,s)=>_(_(_(g,e),t),s),Me=e=>((e=>Se(e,J))(e)&&Ae((()=>Y(e))),Ee),xe=()=>(Ae((()=>Y({}))),Ee),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,we(1),s=-1,we(0),s=0,h([i,n,o,r],F)),t},Ee={getTables:Te,getTableIds:be,getTable:e=>G(_(g,e),G),getRowIds:me,getRow:(e,t)=>G(_(_(g,e),t)),getCellIds:Ce,getCell:ke,hasTable:e=>P(g,e),hasRow:(e,t)=>P(_(g,e),t),hasCell:(e,t,s)=>P(_(_(g,e),t),s),getJson:()=>I(g),getSchemaJson:()=>I(c),setTables:Me,setTable:(e,t)=>(J(t,e)&&Ae((()=>Z(e,t))),Ee),setRow:(e,t,s)=>(j(e,s)&&se(e,t,s),Ee),addRow:(e,t)=>{let s;return j(e,t)&&(s=de(_(g,e)),se(e,s,t)),s},setPartialRow:(e,t,s)=>(j(e,s,1)&&Ae((()=>{const n=le(e);ie(s,((s,o)=>ne(e,n,t,o,s)))})),Ee),setCell:(e,t,s,n)=>(k(U(e,s,x(n)?n(ke(e,t,s)):n),(n=>Ae((()=>ne(e,le(e),t,s,n))))),Ee),setJson:e=>{try{"{}"===e?xe():Me(S(e))}catch{}return Ee},setSchema:t=>{if((e=(e=>Se(e,(e=>Se(e,(e=>{if(!Se(e,((e,t)=>u([d,l],t))))return!1;const t=e.type;return!(!M(t)&&t!=a||(Ie(e.default)!=t&&ae(e,l),0))})))))(t))&&(X(t),!D(g))){const e=Te();xe(),Me(e)}return Ee},delTables:xe,delTable:e=>(P(g,e)&&Ae((()=>ce(e))),Ee),delRow:(e,t)=>(k(_(g,e),(s=>{P(s,t)&&Ae((()=>ue(e,s,t)))})),Ee),delCell:(e,t,s,n)=>(k(_(g,e),(o=>k(_(o,t),(r=>{P(r,s)&&Ae((()=>fe(e,o,t,r,s,n)))})))),Ee),delSchema:()=>(X({}),e=!1,Ee),transaction:Ae,forEachTable:e=>O(g,((t,s)=>e(s,(e=>O(t,((t,s)=>e(s,(e=>q(t,e))))))))),forEachRow:(e,t)=>O(_(g,e),((e,s)=>t(s,(t=>q(e,t))))),forEachCell:(e,t,s)=>q(_(_(g,e),t),s),addTablesListener:(e,t)=>b(e,p[t?1:0]),addTableIdsListener:(e,t)=>b(e,L[t?1:0]),addTableListener:(e,t,s)=>b(t,v[s?1:0],[e]),addRowIdsListener:(e,t,s)=>b(t,w[s?1:0],[e]),addRowListener:(e,t,s,n)=>b(s,y[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>b(s,R[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>b(n,T[o?1:0],[e,t,s]),callListener:e=>(E(e,[be,me,Ce],(e=>C(e[2])?[]:[,,].fill(ke(...e)))),Ee),delListener:e=>(A(e),Ee),getListenerStats:()=>({})};return oe(Ee)},e.defaultSorter=ce,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
|
|
1
|
+
var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),d="type",l="default",c="utf8",u=(e,t)=>e.includes(t),f=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),g=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),p=e=>w(e,((e,t)=>e+t),0),L=e=>e.length,v=e=>0==L(e),w=(e,t,s)=>e.reduce(t,s),y=e=>e.slice(1),I=e=>JSON.stringify(e,((e,t)=>m(t,Map)?w([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),S=JSON.parse,R=Math.max,T=Math.min,b=isFinite,m=(e,t)=>e instanceof t,C=e=>null==e,k=(e,t,s)=>C(e)?s?.():t(e),M=e=>e==o||e==r,x=e=>s(e)==i,A=()=>{},E=e=>e.size,P=(e,t)=>e?.has(t)??!1,D=e=>C(e)||0==E(e),J=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),j=(e,t)=>e?.delete(t),z=e=>new Map(e),N=(e=z)=>[e(),e()],B=e=>[...e?.keys()??[]],_=(e,t)=>e?.get(t),q=(e,t)=>O(e,((e,s)=>t(s,e))),H=(e,t,s)=>C(s)?(j(e,t),e):e?.set(t,s),W=(e,t,s,n)=>(P(e,t)||(n?.(s),e.set(t,s)),_(e,t)),G=(e,t)=>{const s={},n=t??(e=>e);return O(e,((e,t)=>s[t]=n(e))),s},K=(e,t)=>{const s=z(),n=t??(e=>e);return O(e,((e,t)=>s.set(t,n(e)))),s},Q=e=>new Set(e),U=(e,t)=>e?.add(t),V=(e,t,s)=>{const n=e.hasRow,o=z(),r=z(),a=z(),i=z(),d=z(),l=t=>k(_(d,t),(s=>{O(s,e.delListener),H(d,t)})),c=e=>{H(o,e),H(r,e),H(a,e),H(i,e),l(e)};return[()=>e,()=>B(o),e=>_(o,e),e=>_(r,e),(e,t)=>H(r,e,t),(c,u,f,g,p)=>{const L=z(),v=z();H(o,c,u),P(r,c)||(H(r,c,t()),H(a,c,z()),H(i,c,z()));const w=_(a,c),y=_(i,c),I=t=>{const o=s=>e.getCell(u,t,s),r=_(w,t),a=n(u,t)?s(g(o,t)):void 0;if(r!=a&&H(L,t,[r,a]),!C(p)){const e=_(y,t),s=n(u,t)?p(o,t):void 0;e!=s&&H(v,t,s)}},S=e=>{f((()=>{O(L,(([,e],t)=>H(w,t,e))),O(v,((e,t)=>H(y,t,e)))}),L,v,w,y,e),F(L),F(v)};q(w,I),e.hasTable(u)&&h(e.getRowIds(u),(e=>{P(w,e)||I(e)})),S(!0),l(c),H(d,c,Q([e.addRowListener(u,null,((e,t,s)=>I(s))),e.addTableListener(u,(()=>S()))]))},c,()=>q(d,c)]},X=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),Y=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Z=(e,t,s)=>L(s)<2?U(v(s)?e:W(e,s[0],Q()),t):Z(W(e,s[0],z()),t,y(s)),$=e=>{const t=(s,n,...o)=>k(s,(s=>v(o)?e(s,n):h([o[0],null],(e=>t(_(s,e),n,...y(o))))));return t},ee=e=>{let t,s=0;const n=[],o=z();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return H(o,d,[r,a,i]),Z(a,d,i),d},(e,s=[],...n)=>$(O)(e,(e=>k(_(o,e),(([e])=>e(t,...s,...n)))),...s),e=>k(_(o,e),(([,t,s])=>($(j)(t,e,...s),H(o,e),L(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>k(_(o,e),(([e,,o])=>{const r=(...a)=>{const i=L(a);i==L(o)?e(t,...a,...n(a)):C(o[i])?h(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},te=Object,se=te.keys,ne=te.isFrozen,oe=te.freeze,re=(e,t)=>!C(((e,t)=>k(e,(e=>e[t])))(e,t)),ae=(e,t)=>delete e[t],ie=(e,t)=>h(te.entries(e),(([e,s])=>t(s,e))),de=Y((e=>{let t,s,n,o=100,r=z(),a=1;const i=Q(),d=z(),[l,c,f]=ee((()=>F)),g=z(),p=z(),w=[],y=[],I=(t,s)=>{a=0,e.transaction((()=>O(_(g,s),((s,n)=>O(s,((s,o)=>O(s,((s,r)=>C(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{H(g,e),H(p,e),c(d,[e])},R=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??L(e)),S),T=()=>R(w,L(w)-o),b=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){k(t,(()=>{w.push(t),T(),R(y),t=void 0,n=1}));const e=W(r,s,z()),a=W(e,o,z()),c=W(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&D(H(a,i))&&D(H(e,o))&&D(H(r,s))&&(t=w.pop(),n=1),A()}})),m=(e="")=>(C(t)&&(t=""+s++,H(g,t,r),J(t,e),r=z(),n=1),t),M=()=>{v(w)||(y.unshift(m()),I(0,t),t=w.pop(),n=1)},x=()=>{v(y)||(w.push(t),t=y.shift(),I(1,t),n=1)},A=()=>{n&&(c(i),n=0)},E=e=>{const t=m(e);return A(),t},J=(e,t)=>(P(g,e)&&_(p,e)!==t&&(H(p,e,t),c(d,[e])),F),F={setSize:e=>(o=e,T(),F),addCheckpoint:E,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...y]],getCheckpoint:e=>_(p,e),goBackward:()=>(M(),A(),F),goForward:()=>(x(),A(),F),goTo:e=>{const s=u(w,e)?M:u(y,e)?x:null;for(;!C(s)&&e!=t;)s();return A(),F},addCheckpointIdsListener:e=>l(e,i),addCheckpointListener:(e,t)=>l(t,d,[e]),delListener:e=>(f(e),F),clear:()=>(R(w),R(y),C(t)||S(t),t=void 0,s=0,E(),F),destroy:()=>{e.delListener(b)},getListenerStats:()=>({})};return oe(F.clear())})),le=(e,t)=>e<t?-1:1,ce=Y((e=>{const t=z(),s=z(),[o,r,a,i,d,l,c,u]=V(e,z,(e=>C(e)?n:e+n)),[h,p,L]=ee((()=>v)),v={setIndexDefinition:(e,n,o,r,a,c=le)=>{const u=C(a)?void 0:([e],[t])=>a(e,t);return l(e,n,((n,o,a,l,h,L)=>{let v=0;const w=Q(),y=Q(),I=i(e);if(O(o,(([e,t],s)=>{C(e)||(U(w,e),k(_(I,e),(t=>{j(t,s),D(t)&&(H(I,e),v=1)}))),C(t)||(U(w,t),P(I,t)||(H(I,t,Q()),v=1),U(_(I,t),s),C(r)||U(y,t))})),n(),D(h)||(L?q(I,(e=>U(y,e))):q(a,(e=>k(_(l,e),(e=>U(y,e))))),O(y,(e=>{const t=(t,s)=>c(_(h,t),_(h,s),e),s=[..._(I,e)];f(s,t)||(H(I,e,Q(g(s,t))),U(w,e))}))),(v||L)&&!C(u)){const t=[...I];f(t,u)||(d(e,z(g(t,u))),v=1)}v&&p(t,[e]),O(w,(t=>p(s,[e,t])))}),X(o),k(r,X)),v},delIndexDefinition:e=>(c(e),v),getStore:o,getIndexIds:r,getTableId:a,getSliceIds:e=>B(i(e)),getSliceRowIds:(e,t)=>J(_(i(e),t)),addSliceIdsListener:(e,s)=>h(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>h(n,s,[e,t]),delListener:e=>(L(e),v),destroy:u,getListenerStats:()=>({})};return oe(v)})),ue=z([["avg",[(e,t)=>p(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:R(t,e)]],["min",[e=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:T(t,e)]],["sum",[e=>p(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),fe=Y((e=>{const t=z(),[s,o,r,a,i,d,l,c]=V(e,A,(e=>isNaN(e)||C(e)||!0===e||!1===e||e===n?void 0:1*e)),[u,f,g]=ee((()=>h)),h={setMetricDefinition:(e,s,n,o,r,l,c)=>{const u=x(n)?[n,r,l,c]:_(ue,n)??_(ue,"sum");return d(e,s,((s,n,o,r,d,l)=>{let c=a(e),g=E(r);const[h,p,L,v]=u;l=l||C(c),O(n,(([e,t])=>{l||(c=C(e)?p?.(c,t,g++):C(t)?L?.(c,e,g--):v?.(c,t,e,g)),l=l||C(c)})),s(),D(r)?c=void 0:l&&(c=h(J(r),E(r))),b(c)||(c=void 0);const w=a(e);c!=w&&(i(e,c),f(t,[e],c,w))}),X(o,1)),h},delMetricDefinition:e=>(l(e),h),getStore:s,getMetricIds:o,getTableId:r,getMetric:a,addMetricListener:(e,s)=>u(s,t,[e]),delListener:e=>(g(e),h),destroy:c,getListenerStats:()=>({})};return oe(h)})),ge=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();C(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(k(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return oe(i)},he="storage",pe=globalThis.window,Le=(e,t,s)=>{let n;return ge(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},pe.addEventListener(he,n)}),(()=>{pe.removeEventListener(he,n),n=void 0}))},ve=e=>e.headers.get("ETag"),we=Y((e=>{const t=z(),s=z(),o=z(),r=z(),[a,i,d,l,c,u,f,g]=V(e,(()=>[z(),z(),z(),z()]),(e=>C(e)?void 0:e+n)),[h,p,L]=ee((()=>I)),v=(e,t,s)=>k(l(e),(([n,,o])=>{if(!P(o,t)){const r=Q();if(d(e)!=y(e))U(r,t);else{let e=t;for(;!C(e)&&!P(r,e);)U(r,e),e=_(n,e)}if(s)return r;H(o,t,r)}return _(o,t)})),w=(e,t)=>k(l(e),(([,,e])=>H(e,t))),y=e=>_(t,e),I={setRelationshipDefinition:(e,n,a,i)=>(H(t,e,a),u(e,n,((t,n)=>{const a=Q(),i=Q(),d=Q(),[c,u]=l(e);O(n,(([t,s],n)=>{C(t)||(U(i,t),k(_(u,t),(e=>{j(e,n),D(e)&&H(u,t)}))),C(s)||(U(i,s),P(u,s)||H(u,s,Q()),U(_(u,s),n)),U(a,n),H(c,n,s),q(_(r,e),(t=>{P(v(e,t),n)&&U(d,t)}))})),t(),O(a,(t=>p(s,[e,t]))),O(i,(t=>p(o,[e,t]))),O(d,(t=>{w(e,t),p(r,[e,t])}))}),X(i)),I),delRelationshipDefinition:e=>(H(t,e),f(e),I),getStore:a,getRelationshipIds:i,getLocalTableId:d,getRemoteTableId:y,getRemoteRowId:(e,t)=>_(l(e)?.[0],t),getLocalRowIds:(e,t)=>J(_(l(e)?.[1],t)),getLinkedRowIds:(e,t)=>C(l(e))?[t]:J(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>h(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>h(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),h(s,r,[e,t])),delListener:e=>(w(...L(e)),I),destroy:g,getListenerStats:()=>({})};return oe(I)})),ye=(e,t,s,n=H)=>{const o=(r=B(e),a=e=>!re(t,e),r.filter(a));var r,a;return h(se(t),(n=>s(e,n,t[n]))),h(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return M(t)||t==a&&b(e)?t:void 0},Se=(e,t)=>!(C(e)||!(e=>m(e,te)&&e.constructor==te)(e)||ne(e)||(ie(e,((s,n)=>{t(s,n)||ae(e,n)})),(e=>v(se(e)))(e))),Re=(e,t,s)=>H(e,t,_(e,t)==-s?void 0:s);e.createCheckpoints=de,e.createCustomPersister=ge,e.createFilePersister=(e,s)=>{let n;return ge(e,(async()=>{try{return await t.promises.readFile(s,c)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,c)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=ce,e.createLocalPersister=(e,t)=>Le(e,t,localStorage),e.createMetrics=fe,e.createRelationships=we,e.createRemotePersister=(e,t,s,n)=>{let o,r;return ge(e,(async()=>{const e=await fetch(t);return r=ve(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=ve(s);C(r)||C(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{k(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Le(e,t,sessionStorage),e.createStore=()=>{let e,t=0,s=0;const n=z(),o=z(),r=z(),i=z(),c=z(),f=z(),g=z(),p=N(Q),L=N(Q),v=N(),w=N(),y=N(),R=N(),T=N(),[b,m,A,E]=ee((()=>Ee)),J=(t,s)=>(!e||P(c,s))&&Se(t,(e=>j(s,e))),j=(e,t,s)=>Se(s?t:V(t,e),((s,n)=>k(U(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),U=(t,s,n)=>e?k(_(_(c,t),s),(e=>Ie(n)!=e.type?e.default:n)):C(Ie(n))?void 0:n,V=(e,t)=>(k(_(f,t),(t=>ie(t,((t,s)=>{re(e,s)||(e[s]=t)})))),e),X=e=>ye(c,e,((e,t,s)=>{const n={};ye(W(c,t,z()),s,((e,t,s)=>{H(e,t,s),k(s.default,(e=>n[t]=e))})),H(f,t,n)}),((e,t)=>{H(c,t),H(f,t)})),Y=e=>ye(g,e,((e,t,s)=>Z(t,s)),((e,t)=>ce(t))),Z=(e,t)=>ye(W(g,e,z(),(()=>ge(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>ue(e,t,s))),$=(e,t,s,n,o)=>ye(W(t,s,z(),(()=>he(e,s,1))),n,((t,n,o)=>te(e,s,t,n,o)),((n,r)=>fe(e,t,s,n,r,o))),te=(e,t,s,n,o)=>{P(s,n)||pe(e,t,n,1);const r=_(s,n);o!==r&&(Le(e,t,n,r),H(s,n,o))},se=(e,t,s)=>Ae((()=>$(e,le(e),t,s))),ne=(e,t,s,n,o)=>k(_(t,s),(t=>te(e,s,t,n,o)),(()=>$(e,t,s,V({[n]:o},e)))),de=e=>{const s=""+t++;return P(e,s)?de(e):s},le=e=>_(g,e)??Z(e,{}),ce=e=>Z(e,{}),ue=(e,t,s)=>$(e,t,s,{},!0),fe=(e,t,s,n,o,r)=>{const a=_(f,e)?.[o];if(!C(a)&&!r)return te(e,s,n,o,a);const i=t=>{Le(e,s,t,_(n,t)),pe(e,s,t,-1),H(n,t)};C(a)?i(o):q(n,i),D(n)&&(he(e,s,-1),D(H(t,s))&&(ge(e,-1),H(g,e)))},ge=(e,t)=>Re(n,e,t),he=(e,t,s)=>Re(W(o,e,z()),t,s),pe=(e,t,s,n)=>Re(W(W(r,e,z()),t,z()),s,n),Le=(e,t,s,n)=>W(W(W(i,e,z()),t,z()),s,n),ve=(e,t,s)=>{const n=_(_(i,e),t),o=ke(e,t,s);return P(n,s)?[!0,_(n,s),o]:[!1,o,o]},we=e=>{const t=D(R[e])&&D(w[e])&&D(L[e]),s=D(T[e])&&D(y[e])&&D(v[e])&&D(p[e]);if(t&&s)return;const a=e?[K(n),K(o,K),K(r,(e=>K(e,K))),K(i,(e=>K(e,K)))]:[n,o,r,i];if(t||(O(a[2],((t,s)=>O(t,((t,n)=>{D(t)||m(R[e],[s,n])})))),O(a[1],((t,s)=>{D(t)||m(w[e],[s])})),D(a[0])||m(L[e])),!s){let t;O(a[3],((s,n)=>{let o;O(s,((s,r)=>{let a;O(s,((s,i)=>{const d=ke(n,r,i);d!==s&&(m(T[e],[n,r,i],d,s,ve),t=o=a=1)})),a&&m(y[e],[n,r],ve)})),o&&m(v[e],[n],ve)})),t&&m(p[e],[],ve)}},Te=()=>G(g,(e=>G(e,G))),be=()=>B(g),me=e=>B(_(g,e)),Ce=(e,t)=>B(_(_(g,e),t)),ke=(e,t,s)=>_(_(_(g,e),t),s),Me=e=>((e=>Se(e,J))(e)&&Ae((()=>Y(e))),Ee),xe=()=>(Ae((()=>Y({}))),Ee),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,we(1),s=-1,we(0),s=0,h([i,n,o,r],F)),t},Ee={getTables:Te,getTableIds:be,getTable:e=>G(_(g,e),G),getRowIds:me,getRow:(e,t)=>G(_(_(g,e),t)),getCellIds:Ce,getCell:ke,hasTable:e=>P(g,e),hasRow:(e,t)=>P(_(g,e),t),hasCell:(e,t,s)=>P(_(_(g,e),t),s),getJson:()=>I(g),getSchemaJson:()=>I(c),setTables:Me,setTable:(e,t)=>(J(t,e)&&Ae((()=>Z(e,t))),Ee),setRow:(e,t,s)=>(j(e,s)&&se(e,t,s),Ee),addRow:(e,t)=>{let s;return j(e,t)&&(s=de(_(g,e)),se(e,s,t)),s},setPartialRow:(e,t,s)=>(j(e,s,1)&&Ae((()=>{const n=le(e);ie(s,((s,o)=>ne(e,n,t,o,s)))})),Ee),setCell:(e,t,s,n)=>(k(U(e,s,x(n)?n(ke(e,t,s)):n),(n=>Ae((()=>ne(e,le(e),t,s,n))))),Ee),setJson:e=>{try{"{}"===e?xe():Me(S(e))}catch{}return Ee},setSchema:t=>{if((e=(e=>Se(e,(e=>Se(e,(e=>{if(!Se(e,((e,t)=>u([d,l],t))))return!1;const t=e.type;return!(!M(t)&&t!=a||(Ie(e.default)!=t&&ae(e,l),0))})))))(t))&&(X(t),!D(g))){const e=Te();xe(),Me(e)}return Ee},delTables:xe,delTable:e=>(P(g,e)&&Ae((()=>ce(e))),Ee),delRow:(e,t)=>(k(_(g,e),(s=>{P(s,t)&&Ae((()=>ue(e,s,t)))})),Ee),delCell:(e,t,s,n)=>(k(_(g,e),(o=>k(_(o,t),(r=>{P(r,s)&&Ae((()=>fe(e,o,t,r,s,n)))})))),Ee),delSchema:()=>(X({}),e=!1,Ee),transaction:Ae,forEachTable:e=>O(g,((t,s)=>e(s,(e=>O(t,((t,s)=>e(s,(e=>q(t,e))))))))),forEachRow:(e,t)=>O(_(g,e),((e,s)=>t(s,(t=>q(e,t))))),forEachCell:(e,t,s)=>q(_(_(g,e),t),s),addTablesListener:(e,t)=>b(e,p[t?1:0]),addTableIdsListener:(e,t)=>b(e,L[t?1:0]),addTableListener:(e,t,s)=>b(t,v[s?1:0],[e]),addRowIdsListener:(e,t,s)=>b(t,w[s?1:0],[e]),addRowListener:(e,t,s,n)=>b(s,y[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>b(s,R[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>b(n,T[o?1:0],[e,t,s]),callListener:e=>(E(e,[be,me,Ce],(e=>C(e[2])?[]:[,,].fill(ke(...e)))),Ee),delListener:e=>(A(e),Ee),getListenerStats:()=>({})};return oe(Ee)},e.defaultSorter=le,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
|
package/lib/umd/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/umd/ui-react.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,s;e=this,s=function(e,s){"use strict";const o=e=>typeof e,t=o(""),d=(e,s)=>e.map(s),r=e=>null==e,n=(e,s,o)=>r(e)?o?.():s(e),i=()=>{},{createContext:l,useContext:a}=s,c=l([]),u=(e,s)=>{const o=a(c);return r(e)?o[s]:((e,s)=>n(e,(e=>e[s])))(o[s+1],e)},I=(e,s)=>{const d=u(e,s);return r(e)||(e=>o(e)==t)(e)?d:e},p=e=>I(e,0),w=e=>I(e,2),b=e=>I(e,4),C=e=>I(e,6),k=e=>I(e,8),{useCallback:R,useEffect:g,useMemo:h,useState:m}=s,T=(e,s,o=[])=>h((()=>s(e)),[e,...o]),L=(e,s,o,...t)=>{const d=s?.["get"+e]??(()=>o),r=d(...t),[,n]=m(r);return g((()=>{const o=s?.[`add${e}Listener`]?.(...t,(()=>n(d(...t))),!1);return()=>s?.delListener(o)}),[s,e,n,d,...t]),r},y=(e,s,o,t=[],d,...r)=>{g((()=>{const t=s?.[`add${e}Listener`]?.(...r,o,d);return()=>s?.delListener(t)}),[s,e,...t,d,...r])},v=(e,s,o,t=[],d=i,r=[],...l)=>{const a=p(e);return R((e=>n(a,(t=>n(o(e,t),(e=>d(t["set"+s](...l,e),e)))))),[a,s,...t,...r,...l])},S=(e,s,o=i,t=[],...d)=>{const r=p(e);return R((()=>o(r?.["del"+s](...d))),[r,s,...t,...d])},f=(e,s,o)=>{const t=k(e);return R((()=>t?.[s](o)),[t,s,o])},x=e=>L("TableIds",p(e),[]),P=(e,s)=>L("RowIds",p(s),[],e),V=(e,s,o)=>L("CellIds",p(o),[],e,s),M=(e,s,o,t)=>L("Cell",p(t),void 0,e,s,o),B=(e,s)=>L("Metric",w(s),void 0,e),D=(e,s)=>L("SliceIds",b(s),[],e),A=(e,s,o)=>L("SliceRowIds",b(o),[],e,s),F=(e,s,o)=>L("RemoteRowId",C(o),void 0,e,s),G=(e,s,o)=>L("LocalRowIds",C(o),[],e,s),j=(e,s,o)=>L("LinkedRowIds",C(o),[],e,s),E=e=>L("CheckpointIds",k(e),[[],void 0,[]]),U=(e,s)=>L("Checkpoint",k(s),void 0,e),$=e=>f(e,"goBackward"),_=e=>f(e,"goForward"),{createElement:q,useMemo:O}=s,z=e=>{const s=C(e);return[s,s?.getStore()]},H=({relationshipId:e,relationships:s,rowComponent:o=W,getRowComponentProps:t,separator:r,debugIds:n},i,l)=>{const[a,c]=z(s),u=a?.getLocalTableId(e),I=i(e,l,a);return N(d(I,(e=>q(o,{...K(t,e),key:e,tableId:u,rowId:e,store:c,debugIds:n}))),r,n,l)},J=e=>({checkpoints:s,checkpointComponent:o=Z,getCheckpointComponentProps:t,separator:r,debugIds:n})=>{const i=k(s);return N(d(e(E(i)),(e=>q(o,{...K(t,e),key:e,checkpoints:i,checkpointId:e,debugIds:n}))),r)},K=(e,s)=>r(e)?{}:e(s),N=(e,s,o,t)=>{const n=r(s)||!Array.isArray(e)?e:d(e,((e,o)=>o>0?[s,e]:e));return o?[t,":{",n,"}"]:n},Q=({tableId:e,rowId:s,cellId:o,store:t,debugIds:d})=>N(""+(M(e,s,o,t)??""),void 0,d,o),W=({tableId:e,rowId:s,store:o,cellComponent:t=Q,getCellComponentProps:r,separator:n,debugIds:i})=>N(d(V(e,s,o),(d=>q(t,{...K(r,d),key:d,tableId:e,rowId:s,cellId:d,store:o,debugIds:i}))),n,i,s),X=({tableId:e,store:s,rowComponent:o=W,getRowComponentProps:t,separator:r,debugIds:n})=>N(d(P(e,s),(d=>q(o,{...K(t,d),key:d,tableId:e,rowId:d,store:s,debugIds:n}))),r,n,e),Y=({indexId:e,sliceId:s,indexes:o,rowComponent:t=W,getRowComponentProps:r,separator:n,debugIds:i})=>{const l=b(o),a=l?.getStore(),c=l?.getTableId(e),u=A(e,s,l);return N(d(u,(e=>q(t,{...K(r,e),key:e,tableId:c,rowId:e,store:a,debugIds:i}))),n,i,s)},Z=({checkpoints:e,checkpointId:s,debugIds:o})=>N(U(s,e)??"",void 0,o,s),ee=J((e=>e[0])),se=J((e=>r(e[1])?[]:[e[1]])),oe=J((e=>e[2]));e.BackwardCheckpointsView=ee,e.CellView=Q,e.CheckpointView=Z,e.CurrentCheckpointView=se,e.ForwardCheckpointsView=oe,e.IndexView=({indexId:e,indexes:s,sliceComponent:o=Y,getSliceComponentProps:t,separator:r,debugIds:n})=>N(d(D(e,s),(d=>q(o,{...K(t,d),key:d,indexId:e,sliceId:d,indexes:s,debugIds:n}))),r,n,e),e.LinkedRowsView=e=>H(e,j,e.firstRowId),e.LocalRowsView=e=>H(e,G,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:o})=>N(B(e,s)??"",void 0,o,e),e.Provider=({store:e,storesById:o,metrics:t,metricsById:d,indexes:r,indexesById:n,relationships:i,relationshipsById:l,checkpoints:a,checkpointsById:u,children:I})=>{const p=s.useContext(c);return q(c.Provider,{value:O((()=>[e??p[0],{...p[1],...o},t??p[2],{...p[3],...d},r??p[4],{...p[5],...n},i??p[6],{...p[7],...l},a??p[8],{...p[9],...u}]),[e,o,t,d,r,n,i,l,a,u,p])},I)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:o,rowComponent:t=W,getRowComponentProps:d,debugIds:n})=>{const[i,l]=z(o),a=i?.getRemoteTableId(e),c=F(e,s,i);return N(r(a)||r(c)?null:q(t,{...K(d,c),key:c,tableId:a,rowId:c,store:l,debugIds:n}),void 0,n,s)},e.RowView=W,e.SliceView=Y,e.TableView=X,e.TablesView=({store:e,tableComponent:s=X,getTableComponentProps:o,separator:t,debugIds:r})=>N(d(x(e),(t=>q(s,{...K(o,t),key:t,tableId:t,store:e,debugIds:r}))),t),e.useAddRowCallback=(e,s,o=[],t,d=i,r=[])=>{const l=p(t);return R((o=>n(l,(t=>n(s(o,t),(s=>d(t.addRow(e,s),t,s)))))),[l,e,...o,...r])},e.useCell=M,e.useCellIds=V,e.useCellIdsListener=(e,s,o,t,d,r)=>y("CellIds",p(r),o,t,d,e,s),e.useCellListener=(e,s,o,t,d,r,n)=>y("Cell",p(n),t,d,r,e,s,o),e.useCheckpoint=U,e.useCheckpointIds=E,e.useCheckpointIdsListener=(e,s,o)=>y("CheckpointIds",k(o),e,s),e.useCheckpointListener=(e,s,o,t)=>y("Checkpoint",k(t),s,o,void 0,e),e.useCheckpoints=e=>u(e,8),e.useCreateCheckpoints=(e,s,o)=>T(e,s,o),e.useCreateIndexes=(e,s,o)=>T(e,s,o),e.useCreateMetrics=(e,s,o)=>T(e,s,o),e.useCreatePersister=(e,s,o=[],t,d=[])=>{const[,r]=m(),n=h((()=>s(e)),[e,...o]);return g((()=>
|
|
1
|
+
var e,s;e=this,s=function(e,s){"use strict";const o=e=>typeof e,t=o(""),d=(e,s)=>e.map(s),r=e=>null==e,n=(e,s,o)=>r(e)?o?.():s(e),i=()=>{},{createContext:l,useContext:a}=s,c=l([]),u=(e,s)=>{const o=a(c);return r(e)?o[s]:((e,s)=>n(e,(e=>e[s])))(o[s+1],e)},I=(e,s)=>{const d=u(e,s);return r(e)||(e=>o(e)==t)(e)?d:e},p=e=>I(e,0),w=e=>I(e,2),b=e=>I(e,4),C=e=>I(e,6),k=e=>I(e,8),{useCallback:R,useEffect:g,useMemo:h,useState:m}=s,T=(e,s,o=[])=>{const t=h((()=>s(e)),[e,...o]);return g((()=>()=>t.destroy()),[t]),t},L=(e,s,o,...t)=>{const d=s?.["get"+e]??(()=>o),r=d(...t),[,n]=m(r);return g((()=>{const o=s?.[`add${e}Listener`]?.(...t,(()=>n(d(...t))),!1);return()=>s?.delListener(o)}),[s,e,n,d,...t]),r},y=(e,s,o,t=[],d,...r)=>{g((()=>{const t=s?.[`add${e}Listener`]?.(...r,o,d);return()=>s?.delListener(t)}),[s,e,...t,d,...r])},v=(e,s,o,t=[],d=i,r=[],...l)=>{const a=p(e);return R((e=>n(a,(t=>n(o(e,t),(e=>d(t["set"+s](...l,e),e)))))),[a,s,...t,...r,...l])},S=(e,s,o=i,t=[],...d)=>{const r=p(e);return R((()=>o(r?.["del"+s](...d))),[r,s,...t,...d])},f=(e,s,o)=>{const t=k(e);return R((()=>t?.[s](o)),[t,s,o])},x=e=>L("TableIds",p(e),[]),P=(e,s)=>L("RowIds",p(s),[],e),V=(e,s,o)=>L("CellIds",p(o),[],e,s),M=(e,s,o,t)=>L("Cell",p(t),void 0,e,s,o),B=(e,s)=>L("Metric",w(s),void 0,e),D=(e,s)=>L("SliceIds",b(s),[],e),A=(e,s,o)=>L("SliceRowIds",b(o),[],e,s),F=(e,s,o)=>L("RemoteRowId",C(o),void 0,e,s),G=(e,s,o)=>L("LocalRowIds",C(o),[],e,s),j=(e,s,o)=>L("LinkedRowIds",C(o),[],e,s),E=e=>L("CheckpointIds",k(e),[[],void 0,[]]),U=(e,s)=>L("Checkpoint",k(s),void 0,e),$=e=>f(e,"goBackward"),_=e=>f(e,"goForward"),{createElement:q,useMemo:O}=s,z=e=>{const s=C(e);return[s,s?.getStore()]},H=({relationshipId:e,relationships:s,rowComponent:o=W,getRowComponentProps:t,separator:r,debugIds:n},i,l)=>{const[a,c]=z(s),u=a?.getLocalTableId(e),I=i(e,l,a);return N(d(I,(e=>q(o,{...K(t,e),key:e,tableId:u,rowId:e,store:c,debugIds:n}))),r,n,l)},J=e=>({checkpoints:s,checkpointComponent:o=Z,getCheckpointComponentProps:t,separator:r,debugIds:n})=>{const i=k(s);return N(d(e(E(i)),(e=>q(o,{...K(t,e),key:e,checkpoints:i,checkpointId:e,debugIds:n}))),r)},K=(e,s)=>r(e)?{}:e(s),N=(e,s,o,t)=>{const n=r(s)||!Array.isArray(e)?e:d(e,((e,o)=>o>0?[s,e]:e));return o?[t,":{",n,"}"]:n},Q=({tableId:e,rowId:s,cellId:o,store:t,debugIds:d})=>N(""+(M(e,s,o,t)??""),void 0,d,o),W=({tableId:e,rowId:s,store:o,cellComponent:t=Q,getCellComponentProps:r,separator:n,debugIds:i})=>N(d(V(e,s,o),(d=>q(t,{...K(r,d),key:d,tableId:e,rowId:s,cellId:d,store:o,debugIds:i}))),n,i,s),X=({tableId:e,store:s,rowComponent:o=W,getRowComponentProps:t,separator:r,debugIds:n})=>N(d(P(e,s),(d=>q(o,{...K(t,d),key:d,tableId:e,rowId:d,store:s,debugIds:n}))),r,n,e),Y=({indexId:e,sliceId:s,indexes:o,rowComponent:t=W,getRowComponentProps:r,separator:n,debugIds:i})=>{const l=b(o),a=l?.getStore(),c=l?.getTableId(e),u=A(e,s,l);return N(d(u,(e=>q(t,{...K(r,e),key:e,tableId:c,rowId:e,store:a,debugIds:i}))),n,i,s)},Z=({checkpoints:e,checkpointId:s,debugIds:o})=>N(U(s,e)??"",void 0,o,s),ee=J((e=>e[0])),se=J((e=>r(e[1])?[]:[e[1]])),oe=J((e=>e[2]));e.BackwardCheckpointsView=ee,e.CellView=Q,e.CheckpointView=Z,e.CurrentCheckpointView=se,e.ForwardCheckpointsView=oe,e.IndexView=({indexId:e,indexes:s,sliceComponent:o=Y,getSliceComponentProps:t,separator:r,debugIds:n})=>N(d(D(e,s),(d=>q(o,{...K(t,d),key:d,indexId:e,sliceId:d,indexes:s,debugIds:n}))),r,n,e),e.LinkedRowsView=e=>H(e,j,e.firstRowId),e.LocalRowsView=e=>H(e,G,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:o})=>N(B(e,s)??"",void 0,o,e),e.Provider=({store:e,storesById:o,metrics:t,metricsById:d,indexes:r,indexesById:n,relationships:i,relationshipsById:l,checkpoints:a,checkpointsById:u,children:I})=>{const p=s.useContext(c);return q(c.Provider,{value:O((()=>[e??p[0],{...p[1],...o},t??p[2],{...p[3],...d},r??p[4],{...p[5],...n},i??p[6],{...p[7],...l},a??p[8],{...p[9],...u}]),[e,o,t,d,r,n,i,l,a,u,p])},I)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:o,rowComponent:t=W,getRowComponentProps:d,debugIds:n})=>{const[i,l]=z(o),a=i?.getRemoteTableId(e),c=F(e,s,i);return N(r(a)||r(c)?null:q(t,{...K(d,c),key:c,tableId:a,rowId:c,store:l,debugIds:n}),void 0,n,s)},e.RowView=W,e.SliceView=Y,e.TableView=X,e.TablesView=({store:e,tableComponent:s=X,getTableComponentProps:o,separator:t,debugIds:r})=>N(d(x(e),(t=>q(s,{...K(o,t),key:t,tableId:t,store:e,debugIds:r}))),t),e.useAddRowCallback=(e,s,o=[],t,d=i,r=[])=>{const l=p(t);return R((o=>n(l,(t=>n(s(o,t),(s=>d(t.addRow(e,s),t,s)))))),[l,e,...o,...r])},e.useCell=M,e.useCellIds=V,e.useCellIdsListener=(e,s,o,t,d,r)=>y("CellIds",p(r),o,t,d,e,s),e.useCellListener=(e,s,o,t,d,r,n)=>y("Cell",p(n),t,d,r,e,s,o),e.useCheckpoint=U,e.useCheckpointIds=E,e.useCheckpointIdsListener=(e,s,o)=>y("CheckpointIds",k(o),e,s),e.useCheckpointListener=(e,s,o,t)=>y("Checkpoint",k(t),s,o,void 0,e),e.useCheckpoints=e=>u(e,8),e.useCreateCheckpoints=(e,s,o)=>T(e,s,o),e.useCreateIndexes=(e,s,o)=>T(e,s,o),e.useCreateMetrics=(e,s,o)=>T(e,s,o),e.useCreatePersister=(e,s,o=[],t,d=[])=>{const[,r]=m(),n=h((()=>s(e)),[e,...o]);return g((()=>((async()=>{await(t?.(n)),r(1)})(),()=>{n.destroy()})),[n,...d]),n},e.useCreateRelationships=(e,s,o)=>T(e,s,o),e.useCreateStore=(e,s=[])=>h(e,s),e.useDelCellCallback=(e,s,o,t,d,r,n)=>S(d,"Cell",r,n,e,s,o,t),e.useDelRowCallback=(e,s,o,t,d)=>S(o,"Row",t,d,e,s),e.useDelTableCallback=(e,s,o,t)=>S(s,"Table",o,t,e),e.useDelTablesCallback=(e,s,o)=>S(e,"Tables",s,o),e.useGoBackwardCallback=$,e.useGoForwardCallback=_,e.useGoToCallback=(e,s=[],o,t=i,d=[])=>{const r=k(o);return R((s=>n(r,(o=>n(e(s),(e=>t(o.goTo(e),e)))))),[r,...s,...d])},e.useIndexes=e=>u(e,4),e.useLinkedRowIds=j,e.useLinkedRowIdsListener=(e,s,o,t,d)=>y("LinkedRowIds",C(d),o,t,void 0,e,s),e.useLocalRowIds=G,e.useLocalRowIdsListener=(e,s,o,t,d)=>y("LocalRowIds",C(d),o,t,void 0,e,s),e.useMetric=B,e.useMetricListener=(e,s,o,t)=>y("Metric",w(t),s,o,void 0,e),e.useMetrics=e=>u(e,2),e.useRedoInformation=e=>{const s=k(e),[,,[o]]=E(s);return[!r(o),_(s),o,n(o,(e=>s?.getCheckpoint(e)))??""]},e.useRelationships=e=>u(e,6),e.useRemoteRowId=F,e.useRemoteRowIdListener=(e,s,o,t,d)=>y("RemoteRowId",C(d),o,t,void 0,e,s),e.useRow=(e,s,o)=>L("Row",p(o),{},e,s),e.useRowIds=P,e.useRowIdsListener=(e,s,o,t,d)=>y("RowIds",p(d),s,o,t,e),e.useRowListener=(e,s,o,t,d,r)=>y("Row",p(r),o,t,d,e,s),e.useSetCellCallback=(e,s,o,t,d,r,n,i)=>v(r,"Cell",t,d,n,i,e,s,o),e.useSetCheckpointCallback=(e=i,s=[],o,t=i,d=[])=>{const r=k(o);return R((s=>n(r,(o=>{const d=e(s);t(o.addCheckpoint(d),o,d)}))),[r,...s,...d])},e.useSetPartialRowCallback=(e,s,o,t,d,r,n)=>v(d,"PartialRow",o,t,r,n,e,s),e.useSetRowCallback=(e,s,o,t,d,r,n)=>v(d,"Row",o,t,r,n,e,s),e.useSetTableCallback=(e,s,o,t,d,r)=>v(t,"Table",s,o,d,r,e),e.useSetTablesCallback=(e,s,o,t,d)=>v(o,"Tables",e,s,t,d),e.useSliceIds=D,e.useSliceIdsListener=(e,s,o,t)=>y("SliceIds",b(t),s,o,void 0,e),e.useSliceRowIds=A,e.useSliceRowIdsListener=(e,s,o,t,d)=>y("SliceRowIds",b(d),o,t,void 0,e,s),e.useStore=e=>u(e,0),e.useTable=(e,s)=>L("Table",p(s),{},e),e.useTableIds=x,e.useTableIdsListener=(e,s,o,t)=>y("TableIds",p(t),e,s,o),e.useTableListener=(e,s,o,t,d)=>y("Table",p(d),s,o,t,e),e.useTables=e=>L("Tables",p(e),{}),e.useTablesListener=(e,s,o,t)=>y("Tables",p(t),e,s,o),e.useUndoInformation=e=>{const s=k(e),[o,t]=E(s);return[(d=o,!(0==(e=>e.length)(d))),$(s),t,n(t,(e=>s?.getCheckpoint(e)))??""];var d},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReact={},e.React);
|
package/lib/umd/ui-react.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinybase",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"author": "jamesgpearce",
|
|
5
5
|
"repository": "github:tinyplex/tinybase",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"publishPackage": "gulp publishPackage"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@babel/cli": "^7.16.
|
|
42
|
+
"@babel/cli": "^7.16.8",
|
|
43
43
|
"@babel/core": "^7.16.7",
|
|
44
|
-
"@babel/preset-env": "^7.16.
|
|
44
|
+
"@babel/preset-env": "^7.16.8",
|
|
45
45
|
"@babel/preset-react": "^7.16.7",
|
|
46
46
|
"@babel/preset-typescript": "^7.16.7",
|
|
47
47
|
"@rollup/plugin-replace": "^3.0.1",
|
|
@@ -56,24 +56,24 @@
|
|
|
56
56
|
"@types/react-dom": "^17.0.11",
|
|
57
57
|
"@types/react-test-renderer": "^17.0.1",
|
|
58
58
|
"@types/tmp": "^0.2.3",
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "^5.9.
|
|
60
|
-
"@typescript-eslint/parser": "^5.9.
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^5.9.1",
|
|
60
|
+
"@typescript-eslint/parser": "^5.9.1",
|
|
61
61
|
"asciichart": "^1.5.25",
|
|
62
62
|
"babel-eslint": "^10.1.0",
|
|
63
63
|
"babel-jest": "^27.4.6",
|
|
64
64
|
"babel-preset-minify": "^0.5.1",
|
|
65
65
|
"country-flag-emoji-json": "^2.0.0",
|
|
66
|
-
"cspell": "^5.
|
|
67
|
-
"esbuild": "^0.14.
|
|
66
|
+
"cspell": "^5.15.2",
|
|
67
|
+
"esbuild": "^0.14.11",
|
|
68
68
|
"eslint": "^8.6.0",
|
|
69
69
|
"eslint-config-prettier": "^8.3.0",
|
|
70
70
|
"eslint-plugin-jest": "^25.3.4",
|
|
71
|
-
"eslint-plugin-jsdoc": "^37.
|
|
71
|
+
"eslint-plugin-jsdoc": "^37.6.1",
|
|
72
72
|
"eslint-plugin-react": "^7.28.0",
|
|
73
73
|
"eslint-plugin-react-hooks": "^4.3.0",
|
|
74
74
|
"gulp": "^4.0.2",
|
|
75
75
|
"gulp-gzip": "^1.4.2",
|
|
76
|
-
"http-server": "^14.
|
|
76
|
+
"http-server": "^14.1.0",
|
|
77
77
|
"jest": "^27.4.7",
|
|
78
78
|
"jest-fetch-mock": "^3.0.3",
|
|
79
79
|
"jest-puppeteer": "^6.0.3",
|