tinybase 3.0.0-beta.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.d.ts +18 -3
  3. package/lib/checkpoints.js +1 -1
  4. package/lib/checkpoints.js.gz +0 -0
  5. package/lib/debug/checkpoints.d.ts +18 -3
  6. package/lib/debug/checkpoints.js +97 -49
  7. package/lib/debug/indexes.js +31 -16
  8. package/lib/debug/metrics.js +31 -16
  9. package/lib/debug/persisters.d.ts +33 -23
  10. package/lib/debug/persisters.js +10 -5
  11. package/lib/debug/queries.js +2 -2
  12. package/lib/debug/relationships.js +31 -16
  13. package/lib/debug/store.d.ts +2053 -381
  14. package/lib/debug/store.js +444 -106
  15. package/lib/debug/tinybase.js +512 -138
  16. package/lib/debug/tools.d.ts +109 -38
  17. package/lib/debug/tools.js +759 -453
  18. package/lib/debug/ui-react.d.ts +1218 -138
  19. package/lib/debug/ui-react.js +163 -12
  20. package/lib/es6/checkpoints.d.ts +18 -3
  21. package/lib/es6/checkpoints.js +1 -1
  22. package/lib/es6/checkpoints.js.gz +0 -0
  23. package/lib/es6/indexes.js +1 -1
  24. package/lib/es6/indexes.js.gz +0 -0
  25. package/lib/es6/metrics.js +1 -1
  26. package/lib/es6/metrics.js.gz +0 -0
  27. package/lib/es6/persisters.d.ts +33 -23
  28. package/lib/es6/persisters.js +1 -1
  29. package/lib/es6/persisters.js.gz +0 -0
  30. package/lib/es6/relationships.js +1 -1
  31. package/lib/es6/relationships.js.gz +0 -0
  32. package/lib/es6/store.d.ts +2053 -381
  33. package/lib/es6/store.js +1 -1
  34. package/lib/es6/store.js.gz +0 -0
  35. package/lib/es6/tinybase.js +1 -1
  36. package/lib/es6/tinybase.js.gz +0 -0
  37. package/lib/es6/tools.d.ts +109 -38
  38. package/lib/es6/tools.js +1 -1
  39. package/lib/es6/tools.js.gz +0 -0
  40. package/lib/es6/ui-react.d.ts +1218 -138
  41. package/lib/es6/ui-react.js +1 -1
  42. package/lib/es6/ui-react.js.gz +0 -0
  43. package/lib/indexes.js +1 -1
  44. package/lib/indexes.js.gz +0 -0
  45. package/lib/metrics.js +1 -1
  46. package/lib/metrics.js.gz +0 -0
  47. package/lib/persisters.d.ts +33 -23
  48. package/lib/persisters.js +1 -1
  49. package/lib/persisters.js.gz +0 -0
  50. package/lib/relationships.js +1 -1
  51. package/lib/relationships.js.gz +0 -0
  52. package/lib/store.d.ts +2053 -381
  53. package/lib/store.js +1 -1
  54. package/lib/store.js.gz +0 -0
  55. package/lib/tinybase.js +1 -1
  56. package/lib/tinybase.js.gz +0 -0
  57. package/lib/tools.d.ts +109 -38
  58. package/lib/tools.js +1 -1
  59. package/lib/tools.js.gz +0 -0
  60. package/lib/ui-react.d.ts +1218 -138
  61. package/lib/ui-react.js +1 -1
  62. package/lib/ui-react.js.gz +0 -0
  63. package/lib/umd/checkpoints.d.ts +18 -3
  64. package/lib/umd/checkpoints.js +1 -1
  65. package/lib/umd/checkpoints.js.gz +0 -0
  66. package/lib/umd/indexes.js +1 -1
  67. package/lib/umd/indexes.js.gz +0 -0
  68. package/lib/umd/metrics.js +1 -1
  69. package/lib/umd/metrics.js.gz +0 -0
  70. package/lib/umd/persisters.d.ts +33 -23
  71. package/lib/umd/persisters.js +1 -1
  72. package/lib/umd/persisters.js.gz +0 -0
  73. package/lib/umd/relationships.js +1 -1
  74. package/lib/umd/relationships.js.gz +0 -0
  75. package/lib/umd/store.d.ts +2053 -381
  76. package/lib/umd/store.js +1 -1
  77. package/lib/umd/store.js.gz +0 -0
  78. package/lib/umd/tinybase.js +1 -1
  79. package/lib/umd/tinybase.js.gz +0 -0
  80. package/lib/umd/tools.d.ts +109 -38
  81. package/lib/umd/tools.js +1 -1
  82. package/lib/umd/tools.js.gz +0 -0
  83. package/lib/umd/ui-react.d.ts +1218 -138
  84. package/lib/umd/ui-react.js +1 -1
  85. package/lib/umd/ui-react.js.gz +0 -0
  86. package/lib/umd-es6/checkpoints.d.ts +18 -3
  87. package/lib/umd-es6/checkpoints.js +1 -1
  88. package/lib/umd-es6/checkpoints.js.gz +0 -0
  89. package/lib/umd-es6/indexes.js +1 -1
  90. package/lib/umd-es6/indexes.js.gz +0 -0
  91. package/lib/umd-es6/metrics.js +1 -1
  92. package/lib/umd-es6/metrics.js.gz +0 -0
  93. package/lib/umd-es6/persisters.d.ts +33 -23
  94. package/lib/umd-es6/persisters.js +1 -1
  95. package/lib/umd-es6/persisters.js.gz +0 -0
  96. package/lib/umd-es6/relationships.js +1 -1
  97. package/lib/umd-es6/relationships.js.gz +0 -0
  98. package/lib/umd-es6/store.d.ts +2053 -381
  99. package/lib/umd-es6/store.js +1 -1
  100. package/lib/umd-es6/store.js.gz +0 -0
  101. package/lib/umd-es6/tinybase.js +1 -1
  102. package/lib/umd-es6/tinybase.js.gz +0 -0
  103. package/lib/umd-es6/tools.d.ts +109 -38
  104. package/lib/umd-es6/tools.js +1 -1
  105. package/lib/umd-es6/tools.js.gz +0 -0
  106. package/lib/umd-es6/ui-react.d.ts +1218 -138
  107. package/lib/umd-es6/ui-react.js +1 -1
  108. package/lib/umd-es6/ui-react.js.gz +0 -0
  109. package/package.json +20 -20
  110. package/readme.md +27 -16
@@ -1 +1 @@
1
- var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,o="",r=t(o),d="Tables",l="TableIds",n="Table",u="RowIds",i="SortedRowIds",a="Row",I="CellIds",c="Cell",w=(e,s)=>e.map(s),R=e=>null==e,C=(e,s,t)=>R(e)?t?.():s(e),p=()=>{},{createContext:b,useContext:k}=s,g=b([]),m=(e,s)=>{const t=k(g);return R(e)?t[s]:((e,s)=>C(e,(e=>e[s])))(t[s+1],e)},h=(e,s)=>{const o=m(e,s);return R(e)||(e=>t(e)==r)(e)?o:e},L=e=>h(e,0),y=e=>h(e,2),T=e=>h(e,4),S=e=>h(e,6),f=e=>h(e,8),V=e=>h(e,10),{useCallback:q,useEffect:x,useMemo:v,useRef:P,useState:B}=s,M=(e,s,t=[])=>{const o=v((()=>s(e)),[e,...t]);return x((()=>()=>o.destroy()),[o]),o},D=(e,s,t,o=[],r)=>{const[,d]=B(),l=q((()=>s?.["get"+e]?.(...o)??t),[s,...o]),[n]=B(l),u=P(n);return v((()=>u.current=l()),[l]),A(e,s,((...e)=>{u.current=R(r)?l():e[r],d([])}),[],o),u.current},A=(e,s,t,o=[],r=[],...d)=>x((()=>{const o=s?.["add"+e+"Listener"]?.(...r,t,...d);return()=>s?.delListener(o)}),[s,...r,...o,...d]),F=(e,s,t,o=[],r=p,d=[],...l)=>{const n=L(e);return q((e=>C(n,(o=>C(t(e,o),(e=>r(o["set"+s](...l,e),e)))))),[n,s,...o,...d,...l])},G=(e,s,t=p,o=[],...r)=>{const d=L(e);return q((()=>t(d?.["del"+s](...r))),[d,s,...o,...r])},E=(e,s,t)=>{const o=V(e);return q((()=>o?.[s](t)),[o,s,t])},Q=e=>D(l,L(e),[],[]),U=(e,s)=>D(u,L(s),[],[e]),j=(e,s,t,o=0,r,d)=>D(i,L(d),[],[e,s,t,o,r],6),z=(e,s,t)=>D(I,L(t),[],[e,s]),H=(e,s,t,o)=>D(c,L(o),void 0,[e,s,t],4),J=(e,s)=>D("Metric",y(s),void 0,[e]),K=(e,s)=>D("SliceIds",T(s),[],[e]),N=(e,s,t)=>D("SliceRowIds",T(t),[],[e,s]),O=(e,s,t)=>D("RemoteRowId",S(t),void 0,[e,s]),W=(e,s,t)=>D("LocalRowIds",S(t),[],[e,s]),X=(e,s,t)=>D("LinkedRowIds",S(t),[],[e,s]),Y=(e,s)=>D("ResultRowIds",f(s),[],[e]),Z=(e,s,t,o=0,r,d)=>D("ResultSortedRowIds",f(d),[],[e,s,t,o,r],6),$=(e,s,t)=>D("ResultCellIds",f(t),[],[e,s]),_=(e,s,t,o)=>D("ResultCell",f(o),void 0,[e,s,t]),ee=e=>D("CheckpointIds",V(e),[[],void 0,[]]),se=(e,s)=>D("Checkpoint",V(s),void 0,[e]),te=e=>E(e,"goBackward"),oe=e=>E(e,"goForward"),{createElement:re,useMemo:de}=s,le=({tableId:e,store:s,rowComponent:t=Re,getRowComponentProps:o,separator:r,debugIds:d},l)=>ce(w(l,(r=>re(t,{...Ie(o,r),key:r,tableId:e,rowId:r,store:s,debugIds:d}))),r,d,e),ne=({queryId:e,queries:s,resultRowComponent:t=ke,getResultRowComponentProps:o,separator:r,debugIds:d},l)=>ce(w(l,(r=>re(t,{...Ie(o,r),key:r,queryId:e,rowId:r,queries:s,debugIds:d}))),r,d,e),ue=e=>{const s=S(e);return[s,s?.getStore()]},ie=({relationshipId:e,relationships:s,rowComponent:t=Re,getRowComponentProps:o,separator:r,debugIds:d},l,n)=>{const[u,i]=ue(s),a=u?.getLocalTableId(e),I=l(e,n,u);return ce(w(I,(e=>re(t,{...Ie(o,e),key:e,tableId:a,rowId:e,store:i,debugIds:d}))),r,d,n)},ae=e=>({checkpoints:s,checkpointComponent:t=ge,getCheckpointComponentProps:o,separator:r,debugIds:d})=>{const l=V(s);return ce(w(e(ee(l)),(e=>re(t,{...Ie(o,e),key:e,checkpoints:l,checkpointId:e,debugIds:d}))),r)},Ie=(e,s)=>R(e)?{}:e(s),ce=(e,s,t,o)=>{const r=R(s)||!Array.isArray(e)?e:w(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",r,"}"]:r},we=({tableId:e,rowId:s,cellId:t,store:r,debugIds:d})=>ce(o+(H(e,s,t,r)??o),void 0,d,t),Re=({tableId:e,rowId:s,store:t,cellComponent:o=we,getCellComponentProps:r,separator:d,debugIds:l})=>ce(w(z(e,s,t),(d=>re(o,{...Ie(r,d),key:d,tableId:e,rowId:s,cellId:d,store:t,debugIds:l}))),d,l,s),Ce=e=>le(e,U(e.tableId,e.store)),pe=({indexId:e,sliceId:s,indexes:t,rowComponent:o=Re,getRowComponentProps:r,separator:d,debugIds:l})=>{const n=T(t),u=n?.getStore(),i=n?.getTableId(e),a=N(e,s,n);return ce(w(a,(e=>re(o,{...Ie(r,e),key:e,tableId:i,rowId:e,store:u,debugIds:l}))),d,l,s)},be=({queryId:e,rowId:s,cellId:t,queries:r,debugIds:d})=>ce(o+(_(e,s,t,r)??o),void 0,d,t),ke=({queryId:e,rowId:s,queries:t,resultCellComponent:o=be,getResultCellComponentProps:r,separator:d,debugIds:l})=>ce(w($(e,s,t),(d=>re(o,{...Ie(r,d),key:d,queryId:e,rowId:s,cellId:d,queries:t,debugIds:l}))),d,l,s),ge=({checkpoints:e,checkpointId:s,debugIds:t})=>ce(se(s,e)??o,void 0,t,s),me=ae((e=>e[0])),he=ae((e=>R(e[1])?[]:[e[1]])),Le=ae((e=>e[2]));e.BackwardCheckpointsView=me,e.CellView=we,e.CheckpointView=ge,e.CurrentCheckpointView=he,e.ForwardCheckpointsView=Le,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=pe,getSliceComponentProps:o,separator:r,debugIds:d})=>ce(w(K(e,s),(r=>re(t,{...Ie(o,r),key:r,indexId:e,sliceId:r,indexes:s,debugIds:d}))),r,d,e),e.LinkedRowsView=e=>ie(e,X,e.firstRowId),e.LocalRowsView=e=>ie(e,W,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>ce(J(e,s)??o,void 0,t,e),e.Provider=({store:e,storesById:t,metrics:o,metricsById:r,indexes:d,indexesById:l,relationships:n,relationshipsById:u,queries:i,queriesById:a,checkpoints:I,checkpointsById:c,children:w})=>{const R=s.useContext(g);return re(g.Provider,{value:de((()=>[e??R[0],{...R[1],...t},o??R[2],{...R[3],...r},d??R[4],{...R[5],...l},n??R[6],{...R[7],...u},i??R[8],{...R[9],...a},I??R[10],{...R[11],...c}]),[e,t,o,r,d,l,n,u,i,a,I,c,R])},w)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=Re,getRowComponentProps:r,debugIds:d})=>{const[l,n]=ue(t),u=l?.getRemoteTableId(e),i=O(e,s,l);return ce(R(u)||R(i)?null:re(o,{...Ie(r,i),key:i,tableId:u,rowId:i,store:n,debugIds:d}),void 0,d,s)},e.ResultCellView=be,e.ResultRowView=ke,e.ResultSortedTableView=({cellId:e,descending:s,offset:t,limit:o,...r})=>ne(r,Z(r.queryId,e,s,t,o,r.queries)),e.ResultTableView=e=>ne(e,Y(e.queryId,e.queries)),e.RowView=Re,e.SliceView=pe,e.SortedTableView=({cellId:e,descending:s,offset:t,limit:o,...r})=>le(r,j(r.tableId,e,s,t,o,r.store)),e.TableView=Ce,e.TablesView=({store:e,tableComponent:s=Ce,getTableComponentProps:t,separator:o,debugIds:r})=>ce(w(Q(e),(o=>re(s,{...Ie(t,o),key:o,tableId:o,store:e,debugIds:r}))),o),e.tableView=le,e.useAddRowCallback=(e,s,t=[],o,r=p,d=[])=>{const l=L(o);return q((t=>C(l,(o=>C(s(t,o),(s=>r(o.addRow(e,s),o,s)))))),[l,e,...t,...d])},e.useCell=H,e.useCellIds=z,e.useCellIdsListener=(e,s,t,o,r,d)=>A(I,L(d),t,o,[e,s],r),e.useCellListener=(e,s,t,o,r,d,l)=>A(c,L(l),o,r,[e,s,t],d),e.useCheckpoint=se,e.useCheckpointIds=ee,e.useCheckpointIdsListener=(e,s,t)=>A("CheckpointIds",V(t),e,s),e.useCheckpointListener=(e,s,t,o)=>A("Checkpoint",V(o),s,t,[e]),e.useCheckpoints=e=>m(e,10),e.useCreateCheckpoints=(e,s,t)=>M(e,s,t),e.useCreateIndexes=(e,s,t)=>M(e,s,t),e.useCreateMetrics=(e,s,t)=>M(e,s,t),e.useCreatePersister=(e,s,t=[],o,r=[])=>{const[,d]=B(),l=v((()=>s(e)),[e,...t]);return x((()=>((async()=>{await(o?.(l)),d(1)})(),()=>{l.destroy()})),[l,...r]),l},e.useCreateQueries=(e,s,t)=>M(e,s,t),e.useCreateRelationships=(e,s,t)=>M(e,s,t),e.useCreateStore=(e,s=[])=>v(e,s),e.useDelCellCallback=(e,s,t,o,r,d,l)=>G(r,c,d,l,e,s,t,o),e.useDelRowCallback=(e,s,t,o,r)=>G(t,a,o,r,e,s),e.useDelTableCallback=(e,s,t,o)=>G(s,n,t,o,e),e.useDelTablesCallback=(e,s,t)=>G(e,d,s,t),e.useGoBackwardCallback=te,e.useGoForwardCallback=oe,e.useGoToCallback=(e,s=[],t,o=p,r=[])=>{const d=V(t);return q((s=>C(d,(t=>C(e(s),(e=>o(t.goTo(e),e)))))),[d,...s,...r])},e.useIndexes=e=>m(e,4),e.useLinkedRowIds=X,e.useLinkedRowIdsListener=(e,s,t,o,r)=>A("LinkedRowIds",S(r),t,o,[e,s]),e.useLocalRowIds=W,e.useLocalRowIdsListener=(e,s,t,o,r)=>A("LocalRowIds",S(r),t,o,[e,s]),e.useMetric=J,e.useMetricListener=(e,s,t,o)=>A("Metric",y(o),s,t,[e]),e.useMetrics=e=>m(e,2),e.useQueries=e=>m(e,8),e.useRedoInformation=e=>{const s=V(e),[,,[t]]=ee(s);return[!R(t),oe(s),t,C(t,(e=>s?.getCheckpoint(e)))??o]},e.useRelationships=e=>m(e,6),e.useRemoteRowId=O,e.useRemoteRowIdListener=(e,s,t,o,r)=>A("RemoteRowId",S(r),t,o,[e,s]),e.useResultCell=_,e.useResultCellIds=$,e.useResultCellIdsListener=(e,s,t,o,r)=>A("ResultCellIds",f(r),t,o,[e,s]),e.useResultCellListener=(e,s,t,o,r,d)=>A("ResultCell",f(d),o,r,[e,s,t]),e.useResultRow=(e,s,t)=>D("ResultRow",f(t),{},[e,s]),e.useResultRowIds=Y,e.useResultRowIdsListener=(e,s,t,o)=>A("ResultRowIds",f(o),s,t,[e]),e.useResultRowListener=(e,s,t,o,r)=>A("ResultRow",f(r),t,o,[e,s]),e.useResultSortedRowIds=Z,e.useResultSortedRowIdsListener=(e,s,t,o,r,d,l,n)=>A("ResultSortedRowIds",f(n),d,l,[e,s,t,o,r]),e.useResultTable=(e,s)=>D("ResultTable",f(s),{},[e]),e.useResultTableListener=(e,s,t,o)=>A("ResultTable",f(o),s,t,[e]),e.useRow=(e,s,t)=>D(a,L(t),{},[e,s]),e.useRowIds=U,e.useRowIdsListener=(e,s,t,o,r)=>A(u,L(r),s,t,[e],o),e.useRowListener=(e,s,t,o,r,d)=>A(a,L(d),t,o,[e,s],r),e.useSetCellCallback=(e,s,t,o,r,d,l,n)=>F(d,c,o,r,l,n,e,s,t),e.useSetCheckpointCallback=(e=p,s=[],t,o=p,r=[])=>{const d=V(t);return q((s=>C(d,(t=>{const r=e(s);o(t.addCheckpoint(r),t,r)}))),[d,...s,...r])},e.useSetPartialRowCallback=(e,s,t,o,r,d,l)=>F(r,"PartialRow",t,o,d,l,e,s),e.useSetRowCallback=(e,s,t,o,r,d,l)=>F(r,a,t,o,d,l,e,s),e.useSetTableCallback=(e,s,t,o,r,d)=>F(o,n,s,t,r,d,e),e.useSetTablesCallback=(e,s,t,o,r)=>F(t,d,e,s,o,r),e.useSliceIds=K,e.useSliceIdsListener=(e,s,t,o)=>A("SliceIds",T(o),s,t,[e]),e.useSliceRowIds=N,e.useSliceRowIdsListener=(e,s,t,o,r)=>A("SliceRowIds",T(r),t,o,[e,s]),e.useSortedRowIds=j,e.useSortedRowIdsListener=(e,s,t,o,r,d,l,n,u)=>A(i,L(u),d,l,[e,s,t,o,r],n),e.useStore=e=>m(e,0),e.useTable=(e,s)=>D(n,L(s),{},[e]),e.useTableIds=Q,e.useTableIdsListener=(e,s,t,o)=>A(l,L(o),e,s,[],t),e.useTableListener=(e,s,t,o,r)=>A(n,L(r),s,t,[e],o),e.useTables=e=>D(d,L(e),{}),e.useTablesListener=(e,s,t,o)=>A(d,L(o),e,s,[],t),e.useUndoInformation=e=>{const s=V(e),[t,r]=ee(s);return[(d=t,!(0==(e=>e.length)(d))),te(s),r,C(r,(e=>s?.getCheckpoint(e)))??o];var d}},"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);
1
+ var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,o="",l=t(o),r="Tables",d="TableIds",u="Table",n="RowIds",i="SortedRowIds",a="Row",I="CellIds",c="Cell",w="Values",R="ValueIds",C="Value",b=(e,s)=>e.map(s),p=e=>null==e,k=(e,s,t)=>p(e)?t?.():s(e),g=()=>{},{createContext:m,useContext:h}=s,V=m([]),L=(e,s)=>{const t=h(V);return p(e)?t[s]:((e,s)=>k(e,(e=>e[s])))(t[s+1],e)},y=(e,s)=>{const o=L(e,s);return p(e)||(e=>t(e)==l)(e)?o:e},S=e=>y(e,0),T=e=>y(e,2),f=e=>y(e,4),v=e=>y(e,6),P=e=>y(e,8),q=e=>y(e,10),{useCallback:x,useEffect:B,useMemo:M,useRef:D,useState:A}=s,F=(e,s,t=[])=>{const o=M((()=>s(e)),[e,...t]);return B((()=>()=>o.destroy()),[o]),o},G=(e,s,t,o=[],l)=>{const[,r]=A(),d=x((()=>s?.["get"+e]?.(...o)??t),[s,...o]),[u]=A(d),n=D(u);return M((()=>n.current=d()),[d]),E(e,s,((...e)=>{n.current=p(l)?d():e[l],r([])}),[],o),n.current},E=(e,s,t,o=[],l=[],...r)=>B((()=>{const o=s?.["add"+e+"Listener"]?.(...l,t,...r);return()=>s?.delListener(o)}),[s,...l,...o,...r]),Q=(e,s,t,o=[],l=g,r=[],...d)=>{const u=S(e);return x((e=>k(u,(o=>k(t(e,o),(e=>l(o["set"+s](...d,e),e)))))),[u,s,...o,...r,...d])},U=(e,s,t=g,o=[],...l)=>{const r=S(e);return x((()=>t(r?.["del"+s](...l))),[r,s,...o,...l])},j=(e,s,t)=>{const o=q(e);return x((()=>o?.[s](t)),[o,s,t])},z=e=>G(d,S(e),[],[]),H=(e,s)=>G(n,S(s),[],[e]),J=(e,s,t,o=0,l,r)=>G(i,S(r),[],[e,s,t,o,l],6),K=(e,s,t)=>G(I,S(t),[],[e,s]),N=(e,s,t,o)=>G(c,S(o),void 0,[e,s,t],4),O=e=>G(R,S(e),[],[]),W=(e,s)=>G(C,S(s),void 0,[e]),X=(e,s)=>G("Metric",T(s),void 0,[e]),Y=(e,s)=>G("SliceIds",f(s),[],[e]),Z=(e,s,t)=>G("SliceRowIds",f(t),[],[e,s]),$=(e,s,t)=>G("RemoteRowId",v(t),void 0,[e,s]),_=(e,s,t)=>G("LocalRowIds",v(t),[],[e,s]),ee=(e,s,t)=>G("LinkedRowIds",v(t),[],[e,s]),se=(e,s)=>G("ResultRowIds",P(s),[],[e]),te=(e,s,t,o=0,l,r)=>G("ResultSortedRowIds",P(r),[],[e,s,t,o,l],6),oe=(e,s,t)=>G("ResultCellIds",P(t),[],[e,s]),le=(e,s,t,o)=>G("ResultCell",P(o),void 0,[e,s,t]),re=e=>G("CheckpointIds",q(e),[[],void 0,[]]),de=(e,s)=>G("Checkpoint",q(s),void 0,[e]),ue=e=>j(e,"goBackward"),ne=e=>j(e,"goForward"),{createElement:ie,useMemo:ae}=s,Ie=({tableId:e,store:s,rowComponent:t=ge,getRowComponentProps:o,separator:l,debugIds:r},d)=>pe(b(d,(l=>ie(t,{...be(o,l),key:l,tableId:e,rowId:l,store:s,debugIds:r}))),l,r,e),ce=({queryId:e,queries:s,resultRowComponent:t=ye,getResultRowComponentProps:o,separator:l,debugIds:r},d)=>pe(b(d,(l=>ie(t,{...be(o,l),key:l,queryId:e,rowId:l,queries:s,debugIds:r}))),l,r,e),we=e=>{const s=v(e);return[s,s?.getStore()]},Re=({relationshipId:e,relationships:s,rowComponent:t=ge,getRowComponentProps:o,separator:l,debugIds:r},d,u)=>{const[n,i]=we(s),a=n?.getLocalTableId(e),I=d(e,u,n);return pe(b(I,(e=>ie(t,{...be(o,e),key:e,tableId:a,rowId:e,store:i,debugIds:r}))),l,r,u)},Ce=e=>({checkpoints:s,checkpointComponent:t=Se,getCheckpointComponentProps:o,separator:l,debugIds:r})=>{const d=q(s);return pe(b(e(re(d)),(e=>ie(t,{...be(o,e),key:e,checkpoints:d,checkpointId:e,debugIds:r}))),l)},be=(e,s)=>p(e)?{}:e(s),pe=(e,s,t,o)=>{const l=p(s)||!Array.isArray(e)?e:b(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",l,"}"]:l},ke=({tableId:e,rowId:s,cellId:t,store:l,debugIds:r})=>pe(o+(N(e,s,t,l)??o),void 0,r,t),ge=({tableId:e,rowId:s,store:t,cellComponent:o=ke,getCellComponentProps:l,separator:r,debugIds:d})=>pe(b(K(e,s,t),(r=>ie(o,{...be(l,r),key:r,tableId:e,rowId:s,cellId:r,store:t,debugIds:d}))),r,d,s),me=e=>Ie(e,H(e.tableId,e.store)),he=({valueId:e,store:s,debugIds:t})=>pe(o+(W(e,s)??o),void 0,t,e),Ve=({indexId:e,sliceId:s,indexes:t,rowComponent:o=ge,getRowComponentProps:l,separator:r,debugIds:d})=>{const u=f(t),n=u?.getStore(),i=u?.getTableId(e),a=Z(e,s,u);return pe(b(a,(e=>ie(o,{...be(l,e),key:e,tableId:i,rowId:e,store:n,debugIds:d}))),r,d,s)},Le=({queryId:e,rowId:s,cellId:t,queries:l,debugIds:r})=>pe(o+(le(e,s,t,l)??o),void 0,r,t),ye=({queryId:e,rowId:s,queries:t,resultCellComponent:o=Le,getResultCellComponentProps:l,separator:r,debugIds:d})=>pe(b(oe(e,s,t),(r=>ie(o,{...be(l,r),key:r,queryId:e,rowId:s,cellId:r,queries:t,debugIds:d}))),r,d,s),Se=({checkpoints:e,checkpointId:s,debugIds:t})=>pe(de(s,e)??o,void 0,t,s),Te=Ce((e=>e[0])),fe=Ce((e=>p(e[1])?[]:[e[1]])),ve=Ce((e=>e[2]));e.BackwardCheckpointsView=Te,e.CellView=ke,e.CheckpointView=Se,e.CurrentCheckpointView=fe,e.ForwardCheckpointsView=ve,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=Ve,getSliceComponentProps:o,separator:l,debugIds:r})=>pe(b(Y(e,s),(l=>ie(t,{...be(o,l),key:l,indexId:e,sliceId:l,indexes:s,debugIds:r}))),l,r,e),e.LinkedRowsView=e=>Re(e,ee,e.firstRowId),e.LocalRowsView=e=>Re(e,_,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>pe(X(e,s)??o,void 0,t,e),e.Provider=({store:e,storesById:t,metrics:o,metricsById:l,indexes:r,indexesById:d,relationships:u,relationshipsById:n,queries:i,queriesById:a,checkpoints:I,checkpointsById:c,children:w})=>{const R=s.useContext(V);return ie(V.Provider,{value:ae((()=>[e??R[0],{...R[1],...t},o??R[2],{...R[3],...l},r??R[4],{...R[5],...d},u??R[6],{...R[7],...n},i??R[8],{...R[9],...a},I??R[10],{...R[11],...c}]),[e,t,o,l,r,d,u,n,i,a,I,c,R])},w)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=ge,getRowComponentProps:l,debugIds:r})=>{const[d,u]=we(t),n=d?.getRemoteTableId(e),i=$(e,s,d);return pe(p(n)||p(i)?null:ie(o,{...be(l,i),key:i,tableId:n,rowId:i,store:u,debugIds:r}),void 0,r,s)},e.ResultCellView=Le,e.ResultRowView=ye,e.ResultSortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>ce(l,te(l.queryId,e,s,t,o,l.queries)),e.ResultTableView=e=>ce(e,se(e.queryId,e.queries)),e.RowView=ge,e.SliceView=Ve,e.SortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>Ie(l,J(l.tableId,e,s,t,o,l.store)),e.TableView=me,e.TablesView=({store:e,tableComponent:s=me,getTableComponentProps:t,separator:o,debugIds:l})=>pe(b(z(e),(o=>ie(s,{...be(t,o),key:o,tableId:o,store:e,debugIds:l}))),o),e.ValueView=he,e.ValuesView=({store:e,valueComponent:s=he,getValueComponentProps:t,separator:o,debugIds:l})=>pe(b(O(e),(o=>ie(s,{...be(t,o),key:o,valueId:o,store:e,debugIds:l}))),o),e.tableView=Ie,e.useAddRowCallback=(e,s,t=[],o,l=g,r=[])=>{const d=S(o);return x((t=>k(d,(o=>k(s(t,o),(s=>l(o.addRow(e,s),o,s)))))),[d,e,...t,...r])},e.useCell=N,e.useCellIds=K,e.useCellIdsListener=(e,s,t,o,l,r)=>E(I,S(r),t,o,[e,s],l),e.useCellListener=(e,s,t,o,l,r,d)=>E(c,S(d),o,l,[e,s,t],r),e.useCheckpoint=de,e.useCheckpointIds=re,e.useCheckpointIdsListener=(e,s,t)=>E("CheckpointIds",q(t),e,s),e.useCheckpointListener=(e,s,t,o)=>E("Checkpoint",q(o),s,t,[e]),e.useCheckpoints=e=>L(e,10),e.useCreateCheckpoints=(e,s,t)=>F(e,s,t),e.useCreateIndexes=(e,s,t)=>F(e,s,t),e.useCreateMetrics=(e,s,t)=>F(e,s,t),e.useCreatePersister=(e,s,t=[],o,l=[])=>{const[,r]=A(),d=M((()=>s(e)),[e,...t]);return B((()=>((async()=>{await(o?.(d)),r(1)})(),()=>{d.destroy()})),[d,...l]),d},e.useCreateQueries=(e,s,t)=>F(e,s,t),e.useCreateRelationships=(e,s,t)=>F(e,s,t),e.useCreateStore=(e,s=[])=>M(e,s),e.useDelCellCallback=(e,s,t,o,l,r,d)=>U(l,c,r,d,e,s,t,o),e.useDelRowCallback=(e,s,t,o,l)=>U(t,a,o,l,e,s),e.useDelTableCallback=(e,s,t,o)=>U(s,u,t,o,e),e.useDelTablesCallback=(e,s,t)=>U(e,r,s,t),e.useDelValueCallback=(e,s,t,o)=>U(s,C,t,o,e),e.useDelValuesCallback=(e,s,t)=>U(e,w,s,t),e.useGoBackwardCallback=ue,e.useGoForwardCallback=ne,e.useGoToCallback=(e,s=[],t,o=g,l=[])=>{const r=q(t);return x((s=>k(r,(t=>k(e(s),(e=>o(t.goTo(e),e)))))),[r,...s,...l])},e.useIndexes=e=>L(e,4),e.useLinkedRowIds=ee,e.useLinkedRowIdsListener=(e,s,t,o,l)=>E("LinkedRowIds",v(l),t,o,[e,s]),e.useLocalRowIds=_,e.useLocalRowIdsListener=(e,s,t,o,l)=>E("LocalRowIds",v(l),t,o,[e,s]),e.useMetric=X,e.useMetricListener=(e,s,t,o)=>E("Metric",T(o),s,t,[e]),e.useMetrics=e=>L(e,2),e.useQueries=e=>L(e,8),e.useRedoInformation=e=>{const s=q(e),[,,[t]]=re(s);return[!p(t),ne(s),t,k(t,(e=>s?.getCheckpoint(e)))??o]},e.useRelationships=e=>L(e,6),e.useRemoteRowId=$,e.useRemoteRowIdListener=(e,s,t,o,l)=>E("RemoteRowId",v(l),t,o,[e,s]),e.useResultCell=le,e.useResultCellIds=oe,e.useResultCellIdsListener=(e,s,t,o,l)=>E("ResultCellIds",P(l),t,o,[e,s]),e.useResultCellListener=(e,s,t,o,l,r)=>E("ResultCell",P(r),o,l,[e,s,t]),e.useResultRow=(e,s,t)=>G("ResultRow",P(t),{},[e,s]),e.useResultRowIds=se,e.useResultRowIdsListener=(e,s,t,o)=>E("ResultRowIds",P(o),s,t,[e]),e.useResultRowListener=(e,s,t,o,l)=>E("ResultRow",P(l),t,o,[e,s]),e.useResultSortedRowIds=te,e.useResultSortedRowIdsListener=(e,s,t,o,l,r,d,u)=>E("ResultSortedRowIds",P(u),r,d,[e,s,t,o,l]),e.useResultTable=(e,s)=>G("ResultTable",P(s),{},[e]),e.useResultTableListener=(e,s,t,o)=>E("ResultTable",P(o),s,t,[e]),e.useRow=(e,s,t)=>G(a,S(t),{},[e,s]),e.useRowIds=H,e.useRowIdsListener=(e,s,t,o,l)=>E(n,S(l),s,t,[e],o),e.useRowListener=(e,s,t,o,l,r)=>E(a,S(r),t,o,[e,s],l),e.useSetCellCallback=(e,s,t,o,l,r,d,u)=>Q(r,c,o,l,d,u,e,s,t),e.useSetCheckpointCallback=(e=g,s=[],t,o=g,l=[])=>{const r=q(t);return x((s=>k(r,(t=>{const l=e(s);o(t.addCheckpoint(l),t,l)}))),[r,...s,...l])},e.useSetPartialRowCallback=(e,s,t,o,l,r,d)=>Q(l,"PartialRow",t,o,r,d,e,s),e.useSetPartialValuesCallback=(e,s,t,o,l)=>Q(t,"PartialValues",e,s,o,l),e.useSetRowCallback=(e,s,t,o,l,r,d)=>Q(l,a,t,o,r,d,e,s),e.useSetTableCallback=(e,s,t,o,l,r)=>Q(o,u,s,t,l,r,e),e.useSetTablesCallback=(e,s,t,o,l)=>Q(t,r,e,s,o,l),e.useSetValueCallback=(e,s,t,o,l,r)=>Q(o,C,s,t,l,r,e),e.useSetValuesCallback=(e,s,t,o,l)=>Q(t,w,e,s,o,l),e.useSliceIds=Y,e.useSliceIdsListener=(e,s,t,o)=>E("SliceIds",f(o),s,t,[e]),e.useSliceRowIds=Z,e.useSliceRowIdsListener=(e,s,t,o,l)=>E("SliceRowIds",f(l),t,o,[e,s]),e.useSortedRowIds=J,e.useSortedRowIdsListener=(e,s,t,o,l,r,d,u,n)=>E(i,S(n),r,d,[e,s,t,o,l],u),e.useStore=e=>L(e,0),e.useTable=(e,s)=>G(u,S(s),{},[e]),e.useTableIds=z,e.useTableIdsListener=(e,s,t,o)=>E(d,S(o),e,s,[],t),e.useTableListener=(e,s,t,o,l)=>E(u,S(l),s,t,[e],o),e.useTables=e=>G(r,S(e),{}),e.useTablesListener=(e,s,t,o)=>E(r,S(o),e,s,[],t),e.useUndoInformation=e=>{const s=q(e),[t,l]=re(s);return[(r=t,!(0==(e=>e.length)(r))),ue(s),l,k(l,(e=>s?.getCheckpoint(e)))??o];var r},e.useValue=W,e.useValueIds=O,e.useValueIdsListener=(e,s,t,o)=>E(R,S(o),e,s,[],t),e.useValueListener=(e,s,t,o,l)=>E(C,S(l),s,t,[e],o),e.useValues=e=>G(w,S(e),{}),e.useValuesListener=(e,s,t,o)=>E(w,S(o),e,s,[],t)},"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);
Binary file
@@ -115,6 +115,8 @@ export type CheckpointsListenerStats = {
115
115
  * method), and add listeners for when the list checkpoints changes (with the
116
116
  * addCheckpointIdsListener method).
117
117
  *
118
+ * Checkpoints work for both changes to tabular data and to keyed value data.
119
+ *
118
120
  * Every checkpoint can be given a label which can be used to describe the
119
121
  * actions that changed the Store before this checkpoint. This can be useful for
120
122
  * interfaces that let users 'Undo [last action]'.
@@ -127,7 +129,9 @@ export type CheckpointsListenerStats = {
127
129
  * registering and removing a listener for them.
128
130
  *
129
131
  * ```js
130
- * const store = createStore().setTables({pets: {fido: {sold: false}}});
132
+ * const store = createStore()
133
+ * .setTables({pets: {fido: {sold: false}}})
134
+ * .setValue('open', true);
131
135
  *
132
136
  * const checkpoints = createCheckpoints(store);
133
137
  * checkpoints.setSize(200);
@@ -145,14 +149,25 @@ export type CheckpointsListenerStats = {
145
149
  * console.log(checkpoints.getCheckpointIds());
146
150
  * // -> [[], '0', ['1']]
147
151
  *
152
+ * store.setValue('open', false);
153
+ * checkpoints.addCheckpoint('closed');
154
+ * console.log(checkpoints.getCheckpointIds());
155
+ * // -> [['0'], '2', []]
156
+ *
157
+ * checkpoints.goBackward();
158
+ * console.log(store.getValue('open'));
159
+ * // -> true
160
+ * console.log(checkpoints.getCheckpointIds());
161
+ * // -> [[], '0', ['2']]
162
+ *
148
163
  * const listenerId = checkpoints.addCheckpointIdsListener(() => {
149
164
  * console.log(checkpoints.getCheckpointIds());
150
165
  * });
151
166
  * store.setCell('pets', 'fido', 'species', 'dog');
152
167
  * // -> [['0'], undefined, []]
153
168
  * checkpoints.addCheckpoint();
154
- * // -> [['0'], '2', []]
155
- * // Previous redo of checkpoint '1' is now not possible.
169
+ * // -> [['0'], '3', []]
170
+ * // Previous redo of checkpoints '1' and '2' are now not possible.
156
171
  *
157
172
  * checkpoints.delListener(listenerId);
158
173
  * checkpoints.destroy();
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=(e,n)=>e.includes(n),t=(e,n)=>e.forEach(n),l=e=>e.length,o=e=>0==l(e),r=(e,...n)=>e.push(...n),s=e=>e.pop(),i=e=>e.shift(),u=e=>null==e,d=(e,n,t)=>u(e)?null==t?void 0:t():n(e),c=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},a=e=>u(e)||0==(e=>e.size)(e),h=(e,n)=>null==e?void 0:e.forEach(n),p=(e,n)=>null==e?void 0:e.delete(n),f=e=>new Map(e),v=(e,n)=>null==e?void 0:e.get(n),C=(e,n,t)=>u(t)?(p(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(c(e,n)||C(e,n,t()),v(e,n)),k=(e,n,t,o,r=0)=>d((t?g:v)(e,n[r],r>l(n)-2?t:f),(s=>{if(r>l(n)-2)return(null==o?void 0:o(s))&&C(e,n[r]),s;const i=k(s,n,t,o,r+1);return a(s)&&C(e,n[r]),i})),y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),L=/^\d+$/,w=Object.freeze,b=(e=>{const b=new WeakMap;return e=>(b.has(e)||b.set(e,(e=>{let b,S,T,x=100,z=f(),E=1;const j=f(),m=f(),[A,B,I]=(e=>{let n;const[o,s]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=i(e))?t:""+n++},n=>{L.test(n)&&l(e)<1e3&&r(e,n)}]})(),c=f();return[(e,t,l)=>{null!=n||(n=V);const r=o();var s,i;return C(c,r,[e,t,l]),i=r,null==(s=k(t,null!=l?l:[""],y))||s.add(i),r},(e,o,...s)=>t(((e,n=[""])=>{const o=[],s=(e,i)=>i==l(n)?r(o,e):null===n[i]?h(e,(e=>s(e,i+1))):t([n[i],null],(n=>s(v(e,n),i+1)));return s(e,0),o})(e,o),(e=>h(e,(e=>v(c,e)[0](n,...null!=o?o:[],...s))))),e=>d(v(c,e),(([,n,t])=>(k(n,null!=t?t:[""],void 0,(n=>(p(n,e),a(n)?1:0))),C(c,e),s(e),t))),(e,o,r)=>d(v(c,e),(([e,,s=[]])=>{const i=(...d)=>{const c=l(d);c==l(s)?e(n,...d,...r(d)):u(s[c])?t(o[c](...d),(e=>i(...d,e))):i(...d,s[c])};i()}))]})(),M=f(),F=f(),O=[],W=[],$=(n,t)=>{E=0,e.transaction((()=>h(v(M,t),((t,l)=>h(t,((t,o)=>h(t,((t,r)=>((e,n,t,l,o)=>u(o)?e.delCell(n,t,l,!0):e.setCell(n,t,l,o))(e,l,o,r,t[n]))))))))),E=1},q=e=>{C(M,e),C(F,e),B(m,[e])},D=(e,n)=>t(((e,n)=>e.splice(0,n))(e,null!=n?n:l(e)),q),G=()=>D(O,l(O)-x),H=e.addCellListener(null,null,null,((e,n,t,l,o,i)=>{if(E){d(b,(()=>{r(O,b),G(),D(W),b=void 0,T=1}));const e=g(z,n,f),u=g(e,t,f),c=g(u,l,(()=>[i,void 0]));c[1]=o,c[0]===o&&a(C(u,l))&&a(C(e,t))&&a(C(z,n))&&(b=s(O),T=1),P()}})),J=(e="")=>(u(b)&&(b=""+S++,C(M,b,z),R(b,e),z=f(),T=1),b),K=()=>{o(O)||(((e,...n)=>{e.unshift(...n)})(W,J()),$(0,b),b=s(O),T=1)},N=()=>{o(W)||(r(O,b),b=i(W),$(1,b),T=1)},P=()=>{T&&(B(j),T=0)},Q=e=>{const n=J(e);return P(),n},R=(e,n)=>(U(e)&&v(F,e)!==n&&(C(F,e,n),B(m,[e])),V),U=e=>c(M,e),V={setSize:e=>(x=e,G(),V),addCheckpoint:Q,setCheckpoint:R,getStore:()=>e,getCheckpointIds:()=>[[...O],b,[...W]],forEachCheckpoint:e=>{return n=e,h(F,((e,t)=>n(t,e)));var n},hasCheckpoint:U,getCheckpoint:e=>v(F,e),goBackward:()=>(K(),P(),V),goForward:()=>(N(),P(),V),goTo:e=>{const t=n(O,e)?K:n(W,e)?N:null;for(;!u(t)&&e!=b;)t();return P(),V},addCheckpointIdsListener:e=>A(e,j),addCheckpointListener:(e,n)=>A(n,m,[e]),delListener:e=>(I(e),V),clear:()=>(D(O),D(W),u(b)||q(b),b=void 0,S=0,Q(),V),destroy:()=>{e.delListener(H)},getListenerStats:()=>({})};return w(V.clear())})(e)),b.get(e))})();e.createCheckpoints=b},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=(e,n)=>e.includes(n),t=(e,n)=>e.forEach(n),l=e=>e.length,o=e=>0==l(e),r=(e,...n)=>e.push(...n),s=e=>e.pop(),i=e=>e.shift(),u=e=>null==e,d=(e,n,t)=>u(e)?null==t?void 0:t():n(e),c=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},a=e=>u(e)||0==(e=>e.size)(e),h=(e,n)=>null==e?void 0:e.forEach(n),p=(e,n)=>null==e?void 0:e.delete(n),f=e=>new Map(e),v=(e,n)=>null==e?void 0:e.get(n),C=(e,n,t)=>u(t)?(p(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(c(e,n)||C(e,n,t()),v(e,n)),k=(e,n,t,o,r=0)=>d((t?g:v)(e,n[r],r>l(n)-2?t:f),(s=>{if(r>l(n)-2)return(null==o?void 0:o(s))&&C(e,n[r]),s;const i=k(s,n,t,o,r+1);return a(s)&&C(e,n[r]),i})),y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),L=/^\d+$/,w=Object.freeze,b=(e=>{const b=new WeakMap;return e=>(b.has(e)||b.set(e,(e=>{let b,S,T,x=100,z=f(),E=f(),V=1;const j=f(),m=f(),[A,B,I]=(e=>{let n;const[o,s]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=i(e))?t:""+n++},n=>{L.test(n)&&l(e)<1e3&&r(e,n)}]})(),c=f();return[(e,t,l,r=[],s=(()=>[]))=>{null!=n||(n=_);const i=o();var u,d;return C(c,i,[e,t,l,r,s]),d=i,null==(u=k(t,null!=l?l:[""],y))||u.add(d),i},(e,o,...s)=>t(((e,n=[""])=>{const o=[],s=(e,i)=>i==l(n)?r(o,e):null===n[i]?h(e,(e=>s(e,i+1))):t([n[i],null],(n=>s(v(e,n),i+1)));return s(e,0),o})(e,o),(e=>h(e,(e=>v(c,e)[0](n,...null!=o?o:[],...s))))),e=>d(v(c,e),(([,n,t])=>(k(n,null!=t?t:[""],void 0,(n=>(p(n,e),a(n)?1:0))),C(c,e),s(e),t))),e=>d(v(c,e),(([e,,o=[],r,s])=>{const i=(...d)=>{var c,a;const h=l(d);h==l(o)?e(n,...d,...s(d)):u(o[h])?t(null!=(a=null==(c=r[h])?void 0:c.call(r,...d))?a:[],(e=>i(...d,e))):i(...d,o[h])};i()}))]})(),M=f(),F=f(),O=[],W=[],$=(n,t)=>{V=0,e.transaction((()=>{const[l,o]=v(M,t);h(l,((t,l)=>h(t,((t,o)=>h(t,((t,r)=>((e,n,t,l,o)=>u(o)?e.delCell(n,t,l,!0):e.setCell(n,t,l,o))(e,l,o,r,t[n]))))))),h(o,((t,l)=>((e,n,t)=>u(t)?e.delValue(n):e.setValue(n,t))(e,l,t[n])))})),V=1},q=e=>{C(M,e),C(F,e),B(m,[e])},D=(e,n)=>t(((e,n)=>e.splice(0,n))(e,null!=n?n:l(e)),q),G=()=>D(O,l(O)-x),H=()=>d(b,(()=>{r(O,b),G(),D(W),b=void 0,T=1})),J=()=>{b=s(O),T=1},K=e.addCellListener(null,null,null,((e,n,t,l,o,r)=>{if(V){H();const e=g(z,n,f),s=g(e,t,f),i=g(s,l,(()=>[r,void 0]));i[1]=o,i[0]===o&&a(C(s,l))&&a(C(e,t))&&a(C(z,n))&&J(),U()}})),N=e.addValueListener(null,((e,n,t,l)=>{if(V){H();const e=g(E,n,(()=>[l,void 0]));e[1]=t,e[0]===t&&a(C(E,n))&&J(),U()}})),P=(e="")=>(u(b)&&(b=""+S++,C(M,b,[z,E]),Y(b,e),z=f(),E=f(),T=1),b),Q=()=>{o(O)||(((e,...n)=>{e.unshift(...n)})(W,P()),$(0,b),b=s(O),T=1)},R=()=>{o(W)||(r(O,b),b=i(W),$(1,b),T=1)},U=()=>{T&&(B(j),T=0)},X=e=>{const n=P(e);return U(),n},Y=(e,n)=>(Z(e)&&v(F,e)!==n&&(C(F,e,n),B(m,[e])),_),Z=e=>c(M,e),_={setSize:e=>(x=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>e,getCheckpointIds:()=>[[...O],b,[...W]],forEachCheckpoint:e=>{return n=e,h(F,((e,t)=>n(t,e)));var n},hasCheckpoint:Z,getCheckpoint:e=>v(F,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:e=>{const t=n(O,e)?Q:n(W,e)?R:null;for(;!u(t)&&e!=b;)t();return U(),_},addCheckpointIdsListener:e=>A(e,j),addCheckpointListener:(e,n)=>A(n,m,[e]),delListener:e=>(I(e),_),clear:()=>(D(O),D(W),u(b)||q(b),b=void 0,S=0,X(),_),destroy:()=>{e.delListener(K),e.delListener(N)},getListenerStats:()=>({})};return w(_.clear())})(e)),b.get(e))})();e.createCheckpoints=b},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
Binary file
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="",l=n(t),r=e=>t+e,s=(e,n)=>e.every(n),o=(e,n)=>s(e,((t,l)=>0==l||n(e[l-1],t)<=0)),d=(e,n)=>e.sort(n),i=(e,n)=>e.forEach(n),u=e=>e.length,a=(e,...n)=>e.push(...n),c=e=>null==e,f=(e,n,t)=>c(e)?null==t?void 0:t():n(e),v=e=>Array.isArray(e),h=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},I=e=>c(e)||0==(e=>e.size)(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),y=(e,n)=>null==e?void 0:e.forEach(n),x=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),w=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},L=(e,n)=>null==e?void 0:e.get(n),b=(e,n)=>y(e,((e,t)=>n(t,e))),T=(e,n,t)=>c(t)?(x(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(h(e,n)||T(e,n,t()),L(e,n)),R=(e,n,t,l,r=0)=>f((t?E:L)(e,n[r],r>u(n)-2?t:S),(s=>{if(r>u(n)-2)return(null==l?void 0:l(s))&&T(e,n[r]),s;const o=R(s,n,t,l,r+1);return I(s)&&T(e,n[r]),o})),m=e=>new Set(v(e)||c(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),k=(e,r)=>n(e)==l?n=>n(e):null!=e?e:()=>null!=r?r:t,z=(e,n)=>e<n?-1:1,A=/^\d+$/,C=Object.freeze,D=(e=>{const n=new WeakMap;return e=>(n.has(e)||n.set(e,(e=>{const n=S(),l=S(),[D,M,B,O,W,$,q,,F,G,H]=((e,n,t)=>{const l=e.hasRow,r=S(),o=S(),d=S(),a=S(),R=S(),k=(n,t,...l)=>{const r=E(R,n,m);return i(l,(n=>j(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>f(L(R,n),(l=>{i(0==u(t)?g(l):t,(n=>{e.delListener(n),x(l,n)})),I(l)&&T(R,n)})),A=(e,t)=>{T(r,e,t),h(o,e)||(T(o,e,n()),T(d,e,S()),T(a,e,S()))},C=e=>{T(r,e),T(o,e),T(d,e),T(a,e),z(e)};return[()=>e,()=>w(r),e=>b(o,e),e=>h(o,e),e=>L(r,e),e=>L(o,e),(e,n)=>T(o,e,n),A,(n,r,o,f,I)=>{A(n,r);const g=S(),x=S(),w=L(d,n),E=L(a,n),R=n=>{const o=t=>e.getCell(r,n,t),d=L(w,n),i=l(r,n)?t(f(o,n)):void 0;var a,h;if(d===i||v(d)&&v(i)&&(h=i,u(a=d)===u(h)&&s(a,((e,n)=>h[n]===e)))||T(g,n,[d,i]),!c(I)){const e=L(E,n),t=l(r,n)?I(o,n):void 0;e!=t&&T(x,n,t)}},m=e=>{o((()=>{y(g,(([,e],n)=>T(w,n,e))),y(x,((e,n)=>T(E,n,e)))}),g,x,w,E,e),p(g),p(x)};b(w,R),e.hasTable(r)&&i(e.getRowIds(r),(e=>{h(w,e)||R(e)})),m(!0),z(n),k(n,0,e.addRowListener(r,null,((e,n,t)=>R(t))),e.addTableListener(r,(()=>m())))},C,()=>b(R,C),k,z]})(e,S,(e=>{return c(e)?t:v(e)?(n=r,e.map(n)):r(e);var n})),[J,K,N]=(e=>{let n;const[l,r]=(()=>{const e=[];let n=0;return[()=>{var l;return null!=(l=e.shift())?l:t+n++},n=>{A.test(n)&&u(e)<1e3&&a(e,n)}]})(),s=S();return[(e,r,o)=>{null!=n||(n=Q);const d=l();return T(s,d,[e,r,o]),j(R(r,null!=o?o:[t],m),d),d},(e,l,...r)=>i(((e,n=[t])=>{const l=[],r=(e,t)=>t==u(n)?a(l,e):null===n[t]?y(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(L(e,n),t+1)));return r(e,0),l})(e,l),(e=>y(e,(e=>L(s,e)[0](n,...null!=l?l:[],...r))))),e=>f(L(s,e),(([,n,l])=>(R(n,null!=l?l:[t],void 0,(n=>(x(n,e),I(n)?1:0))),T(s,e),r(e),l))),(e,t,l)=>f(L(s,e),(([e,,r=[]])=>{const s=(...o)=>{const d=u(o);d==u(r)?e(n,...o,...l(o)):c(r[d])?i(t[d](...o),(e=>s(...o,e))):s(...o,r[d])};s()}))]})(),P=(n,t,l)=>{const r=W(n);y(l,((n,l)=>t(l,(t=>y(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},Q={setIndexDefinition:(e,t,r,s,i,u=z)=>{const a=c(i)?void 0:([e],[n])=>i(e,n);return F(e,t,((t,r,i,v,g,p)=>{let w=0;const E=m(),R=m(),k=$(e);if(y(r,(([e,n],t)=>{const l=m(e),r=m(n);y(l,(e=>x(r,e)?x(l,e):0)),y(l,(e=>{j(E,e),f(L(k,e),(n=>{x(n,t),I(n)&&(T(k,e),w=1)}))})),y(r,(e=>{j(E,e),h(k,e)||(T(k,e,m()),w=1),j(L(k,e),t),c(s)||j(R,e)}))})),t(),I(g)||(p?b(k,(e=>j(R,e))):b(i,(e=>f(L(v,e),(e=>j(R,e))))),y(R,(e=>{const n=(n,t)=>u(L(g,n),L(g,t),e),t=[...L(k,e)];o(t,n)||(T(k,e,m(d(t,n))),j(E,e))}))),(w||p)&&!c(a)){const n=[...k];o(n,a)||(q(e,S(d(n,a))),w=1)}w&&K(n,[e]),y(E,(n=>K(l,[e,n])))}),k(r),f(s,k)),Q},delIndexDefinition:e=>(G(e),Q),getStore:D,getIndexIds:M,forEachIndex:e=>B(((n,t)=>e(n,(e=>P(n,e,t))))),forEachSlice:(e,n)=>P(e,n,$(e)),hasIndex:O,hasSlice:(e,n)=>h($(e),n),getTableId:W,getSliceIds:e=>w($(e)),getSliceRowIds:(e,n)=>g(L($(e),n)),addSliceIdsListener:(e,t)=>J(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>J(t,l,[e,n]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return C(Q)})(e)),n.get(e))})();e.createIndexes=D},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="",l=n(t),r=e=>t+e,s=(e,n)=>e.every(n),o=(e,n)=>s(e,((t,l)=>0==l||n(e[l-1],t)<=0)),d=(e,n)=>e.sort(n),i=(e,n)=>e.forEach(n),u=e=>e.length,a=(e,...n)=>e.push(...n),c=e=>null==e,f=(e,n,t)=>c(e)?null==t?void 0:t():n(e),v=e=>Array.isArray(e),h=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},I=e=>c(e)||0==(e=>e.size)(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),y=(e,n)=>null==e?void 0:e.forEach(n),x=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),w=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},L=(e,n)=>null==e?void 0:e.get(n),b=(e,n)=>y(e,((e,t)=>n(t,e))),T=(e,n,t)=>c(t)?(x(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(h(e,n)||T(e,n,t()),L(e,n)),R=(e,n,t,l,r=0)=>f((t?E:L)(e,n[r],r>u(n)-2?t:S),(s=>{if(r>u(n)-2)return(null==l?void 0:l(s))&&T(e,n[r]),s;const o=R(s,n,t,l,r+1);return I(s)&&T(e,n[r]),o})),m=e=>new Set(v(e)||c(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),k=(e,r)=>n(e)==l?n=>n(e):null!=e?e:()=>null!=r?r:t,z=(e,n)=>e<n?-1:1,A=/^\d+$/,C=Object.freeze,D=(e=>{const n=new WeakMap;return e=>(n.has(e)||n.set(e,(e=>{const n=S(),l=S(),[D,M,B,O,W,$,q,,F,G,H]=((e,n,t)=>{const l=e.hasRow,r=S(),o=S(),d=S(),a=S(),R=S(),k=(n,t,...l)=>{const r=E(R,n,m);return i(l,(n=>j(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>f(L(R,n),(l=>{i(0==u(t)?g(l):t,(n=>{e.delListener(n),x(l,n)})),I(l)&&T(R,n)})),A=(e,t)=>{T(r,e,t),h(o,e)||(T(o,e,n()),T(d,e,S()),T(a,e,S()))},C=e=>{T(r,e),T(o,e),T(d,e),T(a,e),z(e)};return[()=>e,()=>w(r),e=>b(o,e),e=>h(o,e),e=>L(r,e),e=>L(o,e),(e,n)=>T(o,e,n),A,(n,r,o,f,I)=>{A(n,r);const g=S(),x=S(),w=L(d,n),E=L(a,n),R=n=>{const o=t=>e.getCell(r,n,t),d=L(w,n),i=l(r,n)?t(f(o,n)):void 0;var a,h;if(d===i||v(d)&&v(i)&&(h=i,u(a=d)===u(h)&&s(a,((e,n)=>h[n]===e)))||T(g,n,[d,i]),!c(I)){const e=L(E,n),t=l(r,n)?I(o,n):void 0;e!=t&&T(x,n,t)}},m=e=>{o((()=>{y(g,(([,e],n)=>T(w,n,e))),y(x,((e,n)=>T(E,n,e)))}),g,x,w,E,e),p(g),p(x)};b(w,R),e.hasTable(r)&&i(e.getRowIds(r),(e=>{h(w,e)||R(e)})),m(!0),z(n),k(n,0,e.addRowListener(r,null,((e,n,t)=>R(t))),e.addTableListener(r,(()=>m())))},C,()=>b(R,C),k,z]})(e,S,(e=>{return c(e)?t:v(e)?(n=r,e.map(n)):r(e);var n})),[J,K,N]=(e=>{let n;const[l,r]=(()=>{const e=[];let n=0;return[()=>{var l;return null!=(l=e.shift())?l:t+n++},n=>{A.test(n)&&u(e)<1e3&&a(e,n)}]})(),s=S();return[(e,r,o,d=[],i=(()=>[]))=>{null!=n||(n=Q);const u=l();return T(s,u,[e,r,o,d,i]),j(R(r,null!=o?o:[t],m),u),u},(e,l,...r)=>i(((e,n=[t])=>{const l=[],r=(e,t)=>t==u(n)?a(l,e):null===n[t]?y(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(L(e,n),t+1)));return r(e,0),l})(e,l),(e=>y(e,(e=>L(s,e)[0](n,...null!=l?l:[],...r))))),e=>f(L(s,e),(([,n,l])=>(R(n,null!=l?l:[t],void 0,(n=>(x(n,e),I(n)?1:0))),T(s,e),r(e),l))),e=>f(L(s,e),(([e,,t=[],l,r])=>{const s=(...o)=>{var d,a;const f=u(o);f==u(t)?e(n,...o,...r(o)):c(t[f])?i(null!=(a=null==(d=l[f])?void 0:d.call(l,...o))?a:[],(e=>s(...o,e))):s(...o,t[f])};s()}))]})(),P=(n,t,l)=>{const r=W(n);y(l,((n,l)=>t(l,(t=>y(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},Q={setIndexDefinition:(e,t,r,s,i,u=z)=>{const a=c(i)?void 0:([e],[n])=>i(e,n);return F(e,t,((t,r,i,v,g,p)=>{let w=0;const E=m(),R=m(),k=$(e);if(y(r,(([e,n],t)=>{const l=m(e),r=m(n);y(l,(e=>x(r,e)?x(l,e):0)),y(l,(e=>{j(E,e),f(L(k,e),(n=>{x(n,t),I(n)&&(T(k,e),w=1)}))})),y(r,(e=>{j(E,e),h(k,e)||(T(k,e,m()),w=1),j(L(k,e),t),c(s)||j(R,e)}))})),t(),I(g)||(p?b(k,(e=>j(R,e))):b(i,(e=>f(L(v,e),(e=>j(R,e))))),y(R,(e=>{const n=(n,t)=>u(L(g,n),L(g,t),e),t=[...L(k,e)];o(t,n)||(T(k,e,m(d(t,n))),j(E,e))}))),(w||p)&&!c(a)){const n=[...k];o(n,a)||(q(e,S(d(n,a))),w=1)}w&&K(n,[e]),y(E,(n=>K(l,[e,n])))}),k(r),f(s,k)),Q},delIndexDefinition:e=>(G(e),Q),getStore:D,getIndexIds:M,forEachIndex:e=>B(((n,t)=>e(n,(e=>P(n,e,t))))),forEachSlice:(e,n)=>P(e,n,$(e)),hasIndex:O,hasSlice:(e,n)=>h($(e),n),getTableId:W,getSliceIds:e=>w($(e)),getSliceRowIds:(e,n)=>g(L($(e),n)),addSliceIdsListener:(e,t)=>J(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>J(t,l,[e,n]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return C(Q)})(e)),n.get(e))})();e.createIndexes=D},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>u(e,((e,t)=>e+t),0),s=e=>e.length,u=(e,t,n)=>e.reduce(t,n),d=(e,...t)=>e.push(...t),a=Math.max,c=Math.min,v=isFinite,f=e=>null==e,h=(e,t,n)=>f(e)?null==n?void 0:n():t(e),g=e=>Array.isArray(e),M=()=>{},p=e=>e.size,y=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},m=e=>f(e)||0==p(e),b=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},L=e=>e.clear(),w=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),x=e=>new Map(e),E=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>f(n)?(T(e,t),e):null==e?void 0:e.set(t,n),S=(e,t,n)=>(y(e,t)||R(e,t,n()),E(e,t)),j=(e,t,n,l,r=0)=>h((n?S:E)(e,t[r],r>s(t)-2?n:x),(i=>{if(r>s(t)-2)return(null==l?void 0:l(i))&&R(e,t[r]),i;const o=j(i,t,n,l,r+1);return m(i)&&R(e,t[r]),o})),k=x([["avg",[(e,t)=>o(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>c(...e),(e,t)=>c(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:c(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),z=e=>new Set(g(e)||f(e)?e:[e]),A=(e,t)=>null==e?void 0:e.add(t),D=/^\d+$/,N=Object.freeze,B=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=x(),[u,a,c,B,C,F,O,,W,$,q]=((e,t,l)=>{const r=e.hasRow,o=x(),u=x(),d=x(),a=x(),c=x(),v=(t,n,...l)=>{const r=S(c,t,z);return i(l,(t=>A(r,t)&&n&&e.callListener(t))),l},M=(t,...n)=>h(E(c,t),(l=>{i(0==s(n)?b(l):n,(t=>{e.delListener(t),T(l,t)})),m(l)&&R(c,t)})),p=(e,n)=>{R(o,e,n),y(u,e)||(R(u,e,t()),R(d,e,x()),R(a,e,x()))},j=e=>{R(o,e),R(u,e),R(d,e),R(a,e),M(e)};return[()=>e,()=>{return[...null!=(t=null==(e=o)?void 0:e.keys())?t:[]];var e,t},e=>I(u,e),e=>y(u,e),e=>E(o,e),e=>E(u,e),(e,t)=>R(u,e,t),p,(t,l,o,u,c)=>{p(t,l);const h=x(),m=x(),b=E(d,t),T=E(a,t),S=t=>{const i=n=>e.getCell(l,t,n),o=E(b,t),d=r(l,t)?(a=u(i,t),isNaN(a)||f(a)||!0===a||!1===a||a===n?void 0:1*a):void 0;var a,v,M,p;if(o===d||g(o)&&g(d)&&(M=d,s(v=o)===s(M)&&(p=(e,t)=>M[t]===e,v.every(p)))||R(h,t,[o,d]),!f(c)){const e=E(T,t),n=r(l,t)?c(i,t):void 0;e!=n&&R(m,t,n)}},j=e=>{o((()=>{w(h,(([,e],t)=>R(b,t,e))),w(m,((e,t)=>R(T,t,e)))}),h,m,b,T,e),L(h),L(m)};I(b,S),e.hasTable(l)&&i(e.getRowIds(l),(e=>{y(b,e)||S(e)})),j(!0),M(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>S(n))),e.addTableListener(l,(()=>j())))},j,()=>I(c,j),v,M]})(e,M),[G,H,J]=(e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{D.test(t)&&s(e)<1e3&&d(e,t)}]})(),o=x();return[(e,r,i)=>{null!=t||(t=K);const s=l();return R(o,s,[e,r,i]),A(j(r,null!=i?i:[n],z),s),s},(e,l,...r)=>i(((e,t=[n])=>{const l=[],r=(e,n)=>n==s(t)?d(l,e):null===t[n]?w(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>w(e,(e=>E(o,e)[0](t,...null!=l?l:[],...r))))),e=>h(E(o,e),(([,t,l])=>(j(t,null!=l?l:[n],void 0,(t=>(T(t,e),m(t)?1:0))),R(o,e),r(e),l))),(e,n,l)=>h(E(o,e),(([e,,r=[]])=>{const o=(...u)=>{const d=s(u);d==s(r)?e(t,...u,...l(u)):f(r[d])?i(n[d](...u),(e=>o(...u,e))):o(...u,r[d])};o()}))]})(),K={setMetricDefinition:(e,n,i,s,u,d,a)=>{var c;const h=t(i)==r?[i,u,d,a]:null!=(c=E(k,i))?c:E(k,"sum");return W(e,n,((t,n,l,r,i,s)=>{const u=F(e),d=p(r);s||(s=f(u)),t();let a=((e,t,n,l,r,i=!1)=>{if(m(n))return;const[o,s,u,d]=r;return i||(i=f(e)),w(l,(([n,l])=>{i||(e=f(n)?null==s?void 0:s(e,l,t++):f(l)?null==u?void 0:u(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=f(e)))})),i?o(b(n),p(n)):e})(u,d,r,n,h,s);v(a)||(a=void 0),a!=u&&(O(e,a),H(o,[e],a,u))}),(1,t(g=s)==l?e=>e(g):null!=g?g:()=>1)),K;var g},delMetricDefinition:e=>($(e),K),getStore:u,getMetricIds:a,forEachMetric:c,hasMetric:B,getTableId:C,getMetric:F,addMetricListener:(e,t)=>G(t,o,[e]),delListener:e=>(J(e),K),destroy:q,getListenerStats:()=>({})};return N(K)})(e)),o.get(e))})();e.createMetrics=B},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>u(e,((e,t)=>e+t),0),s=e=>e.length,u=(e,t,n)=>e.reduce(t,n),d=(e,...t)=>e.push(...t),a=Math.max,c=Math.min,v=isFinite,f=e=>null==e,h=(e,t,n)=>f(e)?null==n?void 0:n():t(e),g=e=>Array.isArray(e),M=()=>{},p=e=>e.size,y=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},m=e=>f(e)||0==p(e),b=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},L=e=>e.clear(),w=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),x=e=>new Map(e),E=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>f(n)?(T(e,t),e):null==e?void 0:e.set(t,n),S=(e,t,n)=>(y(e,t)||R(e,t,n()),E(e,t)),j=(e,t,n,l,r=0)=>h((n?S:E)(e,t[r],r>s(t)-2?n:x),(i=>{if(r>s(t)-2)return(null==l?void 0:l(i))&&R(e,t[r]),i;const o=j(i,t,n,l,r+1);return m(i)&&R(e,t[r]),o})),k=x([["avg",[(e,t)=>o(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>c(...e),(e,t)=>c(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:c(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),z=e=>new Set(g(e)||f(e)?e:[e]),A=(e,t)=>null==e?void 0:e.add(t),D=/^\d+$/,N=Object.freeze,B=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=x(),[u,a,c,B,C,F,O,,W,$,q]=((e,t,l)=>{const r=e.hasRow,o=x(),u=x(),d=x(),a=x(),c=x(),v=(t,n,...l)=>{const r=S(c,t,z);return i(l,(t=>A(r,t)&&n&&e.callListener(t))),l},M=(t,...n)=>h(E(c,t),(l=>{i(0==s(n)?b(l):n,(t=>{e.delListener(t),T(l,t)})),m(l)&&R(c,t)})),p=(e,n)=>{R(o,e,n),y(u,e)||(R(u,e,t()),R(d,e,x()),R(a,e,x()))},j=e=>{R(o,e),R(u,e),R(d,e),R(a,e),M(e)};return[()=>e,()=>{return[...null!=(t=null==(e=o)?void 0:e.keys())?t:[]];var e,t},e=>I(u,e),e=>y(u,e),e=>E(o,e),e=>E(u,e),(e,t)=>R(u,e,t),p,(t,l,o,u,c)=>{p(t,l);const h=x(),m=x(),b=E(d,t),T=E(a,t),S=t=>{const i=n=>e.getCell(l,t,n),o=E(b,t),d=r(l,t)?(a=u(i,t),isNaN(a)||f(a)||!0===a||!1===a||a===n?void 0:1*a):void 0;var a,v,M,p;if(o===d||g(o)&&g(d)&&(M=d,s(v=o)===s(M)&&(p=(e,t)=>M[t]===e,v.every(p)))||R(h,t,[o,d]),!f(c)){const e=E(T,t),n=r(l,t)?c(i,t):void 0;e!=n&&R(m,t,n)}},j=e=>{o((()=>{w(h,(([,e],t)=>R(b,t,e))),w(m,((e,t)=>R(T,t,e)))}),h,m,b,T,e),L(h),L(m)};I(b,S),e.hasTable(l)&&i(e.getRowIds(l),(e=>{y(b,e)||S(e)})),j(!0),M(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>S(n))),e.addTableListener(l,(()=>j())))},j,()=>I(c,j),v,M]})(e,M),[G,H,J]=(e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{D.test(t)&&s(e)<1e3&&d(e,t)}]})(),o=x();return[(e,r,i,s=[],u=(()=>[]))=>{null!=t||(t=K);const d=l();return R(o,d,[e,r,i,s,u]),A(j(r,null!=i?i:[n],z),d),d},(e,l,...r)=>i(((e,t=[n])=>{const l=[],r=(e,n)=>n==s(t)?d(l,e):null===t[n]?w(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>w(e,(e=>E(o,e)[0](t,...null!=l?l:[],...r))))),e=>h(E(o,e),(([,t,l])=>(j(t,null!=l?l:[n],void 0,(t=>(T(t,e),m(t)?1:0))),R(o,e),r(e),l))),e=>h(E(o,e),(([e,,n=[],l,r])=>{const o=(...u)=>{var d,a;const c=s(u);c==s(n)?e(t,...u,...r(u)):f(n[c])?i(null!=(a=null==(d=l[c])?void 0:d.call(l,...u))?a:[],(e=>o(...u,e))):o(...u,n[c])};o()}))]})(),K={setMetricDefinition:(e,n,i,s,u,d,a)=>{var c;const h=t(i)==r?[i,u,d,a]:null!=(c=E(k,i))?c:E(k,"sum");return W(e,n,((t,n,l,r,i,s)=>{const u=F(e),d=p(r);s||(s=f(u)),t();let a=((e,t,n,l,r,i=!1)=>{if(m(n))return;const[o,s,u,d]=r;return i||(i=f(e)),w(l,(([n,l])=>{i||(e=f(n)?null==s?void 0:s(e,l,t++):f(l)?null==u?void 0:u(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=f(e)))})),i?o(b(n),p(n)):e})(u,d,r,n,h,s);v(a)||(a=void 0),a!=u&&(O(e,a),H(o,[e],a,u))}),(1,t(g=s)==l?e=>e(g):null!=g?g:()=>1)),K;var g},delMetricDefinition:e=>($(e),K),getStore:u,getMetricIds:a,forEachMetric:c,hasMetric:B,getTableId:C,getMetric:F,addMetricListener:(e,t)=>G(t,o,[e]),delListener:e=>(J(e),K),destroy:q,getListenerStats:()=>({})};return N(K)})(e)),o.get(e))})();e.createMetrics=B},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
Binary file
@@ -27,7 +27,7 @@
27
27
  * @module persisters
28
28
  */
29
29
 
30
- import {Store, Tables} from './store.d';
30
+ import {Store, Tables, Values} from './store.d';
31
31
  import {Callback} from './common.d';
32
32
 
33
33
  /**
@@ -105,9 +105,9 @@ export type PersisterStats = {
105
105
  *
106
106
  * await persister.save();
107
107
  * console.log(sessionStorage.getItem('pets'));
108
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
108
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
109
109
  *
110
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
110
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
111
111
  * await persister.load();
112
112
  * console.log(store.getTables());
113
113
  * // -> {pets: {toto: {species: 'dog'}}}
@@ -130,10 +130,10 @@ export type PersisterStats = {
130
130
  * store.setTables({pets: {felix: {species: 'cat'}}});
131
131
  * // ...
132
132
  * console.log(sessionStorage.getItem('pets'));
133
- * // -> '{"pets":{"felix":{"species":"cat"}}}'
133
+ * // -> '[{"pets":{"felix":{"species":"cat"}}},{}]'
134
134
  *
135
135
  * // In another browser tab:
136
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
136
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
137
137
  * // -> StorageEvent('storage', {storageArea: sessionStorage, key: 'pets'})
138
138
  *
139
139
  * // ...
@@ -163,6 +163,8 @@ export interface Persister {
163
163
  *
164
164
  * @param initialTables An optional Tables object used when the underlying
165
165
  * storage has not previously been populated.
166
+ * @param initialValues An optional Values object used when the underlying
167
+ * storage has not previously been populated, since v3.0.0.
166
168
  * @returns A Promise containing a reference to the Persister object.
167
169
  * @example
168
170
  * This example creates an empty Store, and loads data into it from the
@@ -170,7 +172,7 @@ export interface Persister {
170
172
  * previously populated.
171
173
  *
172
174
  * ```js
173
- * sessionStorage.setItem('pets', '{"pets":{"fido":{"species":"dog"}}}');
175
+ * sessionStorage.setItem('pets', '[{"pets":{"fido":{"species":"dog"}}},{}]');
174
176
  *
175
177
  * const store = createStore();
176
178
  * const persister = createSessionPersister(store, 'pets');
@@ -195,7 +197,7 @@ export interface Persister {
195
197
  * console.log(store.getTables());
196
198
  * // -> {pets: {fido: {species: 'dog'}}}
197
199
  *
198
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
200
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
199
201
  * await persister.load({pets: {fido: {species: 'dog'}}});
200
202
  * console.log(store.getTables());
201
203
  * // -> {pets: {toto: {species: 'dog'}}}
@@ -204,7 +206,7 @@ export interface Persister {
204
206
  * ```
205
207
  * @category Load
206
208
  */
207
- load(initialTables?: Tables): Promise<Persister>;
209
+ load(initialTables?: Tables, initialValues?: Values): Promise<Persister>;
208
210
 
209
211
  /**
210
212
  * The startAutoLoad method gets persisted data from storage, and loads it
@@ -229,6 +231,8 @@ export interface Persister {
229
231
  *
230
232
  * @param initialTables An optional Tables object used when the underlying
231
233
  * storage has not previously been populated.
234
+ * @param initialValues An optional Values object used when the underlying
235
+ * storage has not previously been populated, since v3.0.0.
232
236
  * @returns A Promise containing a reference to the Persister object.
233
237
  * @example
234
238
  * This example creates an empty Store, and loads data into it from the
@@ -246,7 +250,7 @@ export interface Persister {
246
250
  * // -> {pets: {fido: {species: 'dog'}}}
247
251
  *
248
252
  * // In another browser tab:
249
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
253
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
250
254
  * // -> StorageEvent('storage', {storageArea: sessionStorage, key: 'pets'})
251
255
  *
252
256
  * // ...
@@ -258,7 +262,10 @@ export interface Persister {
258
262
  * ```
259
263
  * @category Load
260
264
  */
261
- startAutoLoad(initialTables?: Tables): Promise<Persister>;
265
+ startAutoLoad(
266
+ initialTables?: Tables,
267
+ initialValues?: Values,
268
+ ): Promise<Persister>;
262
269
 
263
270
  /**
264
271
  * The stopAutoLoad method stops the automatic loading of data from storage
@@ -279,7 +286,7 @@ export interface Persister {
279
286
  * await persister.startAutoLoad();
280
287
  *
281
288
  * // In another browser tab:
282
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
289
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
283
290
  * // -> StorageEvent('storage', {storageArea: sessionStorage, key: 'pets'})
284
291
  * // ...
285
292
  * console.log(store.getTables());
@@ -288,7 +295,10 @@ export interface Persister {
288
295
  * persister.stopAutoLoad();
289
296
  *
290
297
  * // In another browser tab:
291
- * sessionStorage.setItem('pets', '{"pets":{"felix":{"species":"cat"}}}');
298
+ * sessionStorage.setItem(
299
+ * 'pets',
300
+ * '[{"pets":{"felix":{"species":"cat"}}},{}]',
301
+ * );
292
302
  * // -> StorageEvent('storage', {storageArea: sessionStorage, key: 'pets'})
293
303
  * // ...
294
304
  * console.log(store.getTables());
@@ -322,7 +332,7 @@ export interface Persister {
322
332
  *
323
333
  * await persister.save();
324
334
  * console.log(sessionStorage.getItem('pets'));
325
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
335
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
326
336
  *
327
337
  * persister.destroy();
328
338
  * sessionStorage.clear();
@@ -356,12 +366,12 @@ export interface Persister {
356
366
  *
357
367
  * await persister.startAutoSave();
358
368
  * console.log(sessionStorage.getItem('pets'));
359
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
369
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
360
370
  *
361
371
  * store.setTables({pets: {toto: {species: 'dog'}}});
362
372
  * // ...
363
373
  * console.log(sessionStorage.getItem('pets'));
364
- * // -> '{"pets":{"toto":{"species":"dog"}}}'
374
+ * // -> '[{"pets":{"toto":{"species":"dog"}}},{}]'
365
375
  *
366
376
  * sessionStorage.clear();
367
377
  * ```
@@ -391,14 +401,14 @@ export interface Persister {
391
401
  * store.setTables({pets: {toto: {species: 'dog'}}});
392
402
  * // ...
393
403
  * console.log(sessionStorage.getItem('pets'));
394
- * // -> '{"pets":{"toto":{"species":"dog"}}}'
404
+ * // -> '[{"pets":{"toto":{"species":"dog"}}},{}]'
395
405
  *
396
406
  * persister.stopAutoSave();
397
407
  *
398
408
  * store.setTables({pets: {felix: {species: 'cat'}}});
399
409
  * // ...
400
410
  * console.log(sessionStorage.getItem('pets'));
401
- * // -> '{"pets":{"toto":{"species":"dog"}}}'
411
+ * // -> '[{"pets":{"toto":{"species":"dog"}}},{}]'
402
412
  * // Store change has not been automatically saved.
403
413
  *
404
414
  * sessionStorage.clear();
@@ -423,7 +433,7 @@ export interface Persister {
423
433
  * persister.getStore().setTables({pets: {fido: {species: 'dog'}}});
424
434
  * // ...
425
435
  * console.log(sessionStorage.getItem('pets'));
426
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
436
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
427
437
  *
428
438
  * sessionStorage.clear();
429
439
  * ```
@@ -493,7 +503,7 @@ export interface Persister {
493
503
  * store.setTables({pets: {felix: {species: 'cat'}}});
494
504
  * // ...
495
505
  *
496
- * sessionStorage.setItem('pets', '{"pets":{"toto":{"species":"dog"}}}');
506
+ * sessionStorage.setItem('pets', '[{"pets":{"toto":{"species":"dog"}}},{}]');
497
507
  * // -> StorageEvent('storage', {storageArea: sessionStorage, key: 'pets'})
498
508
  * // ...
499
509
  *
@@ -529,7 +539,7 @@ export interface Persister {
529
539
  *
530
540
  * await persister.save();
531
541
  * console.log(sessionStorage.getItem('pets'));
532
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
542
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
533
543
  *
534
544
  * persister.destroy();
535
545
  * sessionStorage.clear();
@@ -562,7 +572,7 @@ export function createSessionPersister(
562
572
  *
563
573
  * await persister.save();
564
574
  * console.log(localStorage.getItem('pets'));
565
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
575
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
566
576
  *
567
577
  * persister.destroy();
568
578
  * localStorage.clear();
@@ -696,9 +706,9 @@ export function createFilePersister(store: Store, filePath: string): Persister;
696
706
  *
697
707
  * await persister.save();
698
708
  * console.log(storeJson);
699
- * // -> '{"pets":{"fido":{"species":"dog"}}}'
709
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
700
710
  *
701
- * storeJson = '{"pets":{"fido":{"species":"dog","color":"brown"}}}';
711
+ * storeJson = '[{"pets":{"fido":{"species":"dog","color":"brown"}}},{}]';
702
712
  * await persister.load();
703
713
  *
704
714
  * console.log(store.getTables());
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const o="utf8",r=e=>null==e,n=(e,t,o)=>r(e)?null==o?void 0:o():t(e),s=Object.freeze;var l=(e,t,o)=>new Promise(((r,n)=>{var s=e=>{try{i(o.next(e))}catch(e){n(e)}},l=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,l);i((o=o.apply(e,t)).next())}));const i=(e,t,o,i,a)=>{let u,c=0;const d={load:o=>l(void 0,null,(function*(){if(2!=c){c=1;const n=yield t();r(n)||""==n?e.setTables(o):e.setJson(n),c=0}return d})),startAutoLoad:e=>l(void 0,null,(function*(){return d.stopAutoLoad(),yield d.load(e),i(d.load),d})),stopAutoLoad:()=>(a(),d),save:()=>l(void 0,null,(function*(){return 1!=c&&(c=2,yield o(e.getJson()),c=0),d})),startAutoSave:()=>l(void 0,null,(function*(){return yield d.stopAutoSave().save(),u=e.addTablesListener((()=>d.save())),d})),stopAutoSave:()=>(n(u,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(d)};var a=(e,t,o)=>new Promise(((r,n)=>{var s=e=>{try{i(o.next(e))}catch(e){n(e)}},l=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,l);i((o=o.apply(e,t)).next())}));const u="storage",c=globalThis.window,d=(e,t,o)=>{let r;return i(e,(()=>a(void 0,null,(function*(){return o.getItem(t)}))),(e=>a(void 0,null,(function*(){return o.setItem(t,e)}))),(e=>{r=r=>{r.storageArea===o&&r.key===t&&e()},c.addEventListener(u,r)}),(()=>{c.removeEventListener(u,r),r=void 0}))};var v=(e,t,o)=>new Promise(((r,n)=>{var s=e=>{try{i(o.next(e))}catch(e){n(e)}},l=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,l);i((o=o.apply(e,t)).next())})),f=(e,t,o)=>new Promise(((r,n)=>{var s=e=>{try{i(o.next(e))}catch(e){n(e)}},l=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,l);i((o=o.apply(e,t)).next())}));const y=e=>e.headers.get("ETag");e.createCustomPersister=i,e.createFilePersister=(e,r)=>{let n;return i(e,(()=>v(void 0,null,(function*(){try{return yield t.promises.readFile(r,o)}catch(e){}}))),(e=>v(void 0,null,(function*(){try{yield t.promises.writeFile(r,e,o)}catch(e){}}))),(e=>{n=t.watch(r,e)}),(()=>{null==n||n.close(),n=void 0}))},e.createLocalPersister=(e,t)=>d(e,t,localStorage),e.createRemotePersister=(e,t,o,s)=>{let l,a;return i(e,(()=>f(void 0,null,(function*(){const e=yield fetch(t);return a=y(e),e.text()}))),(e=>f(void 0,null,(function*(){return yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{l=setInterval((()=>f(void 0,null,(function*(){const o=yield fetch(t,{method:"HEAD"}),n=y(o);r(a)||r(n)||n==a||(a=n,e())}))),1e3*s)}),(()=>{n(l,clearInterval),l=void 0}))},e.createSessionPersister=(e,t)=>d(e,t,sessionStorage)},"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).TinyBasePersisters={},e.fs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const o="utf8",n=e=>null==e,r=(e,t,o)=>n(e)?null==o?void 0:o():t(e),s=Object.freeze;var l=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{a(o.next(e))}catch(e){r(e)}},l=e=>{try{a(o.throw(e))}catch(e){r(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,l);a((o=o.apply(e,t)).next())}));const a=(e,t,o,a,i)=>{let u,d,c=0;const v={load:(o,r)=>l(void 0,null,(function*(){if(2!=c){c=1;const s=yield t();n(s)||""==s?e.transaction((()=>e.setTables(o).setValues(r))):e.setJson(s),c=0}return v})),startAutoLoad:(e,t)=>l(void 0,null,(function*(){return v.stopAutoLoad(),yield v.load(e,t),a(v.load),v})),stopAutoLoad:()=>(i(),v),save:()=>l(void 0,null,(function*(){return 1!=c&&(c=2,yield o(e.getJson()),c=0),v})),startAutoSave:()=>l(void 0,null,(function*(){return yield v.stopAutoSave().save(),u=e.addTablesListener(v.save),d=e.addValuesListener(v.save),v})),stopAutoSave:()=>(r(u,e.delListener),r(d,e.delListener),v),getStore:()=>e,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(v)};var i=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{a(o.next(e))}catch(e){r(e)}},l=e=>{try{a(o.throw(e))}catch(e){r(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,l);a((o=o.apply(e,t)).next())}));const u="storage",d=globalThis.window,c=(e,t,o)=>{let n;return a(e,(()=>i(void 0,null,(function*(){return o.getItem(t)}))),(e=>i(void 0,null,(function*(){return o.setItem(t,e)}))),(e=>{n=n=>{n.storageArea===o&&n.key===t&&e()},d.addEventListener(u,n)}),(()=>{d.removeEventListener(u,n),n=void 0}))};var v=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{a(o.next(e))}catch(e){r(e)}},l=e=>{try{a(o.throw(e))}catch(e){r(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,l);a((o=o.apply(e,t)).next())})),f=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{a(o.next(e))}catch(e){r(e)}},l=e=>{try{a(o.throw(e))}catch(e){r(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,l);a((o=o.apply(e,t)).next())}));const y=e=>e.headers.get("ETag");e.createCustomPersister=a,e.createFilePersister=(e,n)=>{let r;return a(e,(()=>v(void 0,null,(function*(){try{return yield t.promises.readFile(n,o)}catch(e){}}))),(e=>v(void 0,null,(function*(){try{yield t.promises.writeFile(n,e,o)}catch(e){}}))),(e=>{r=t.watch(n,e)}),(()=>{null==r||r.close(),r=void 0}))},e.createLocalPersister=(e,t)=>c(e,t,localStorage),e.createRemotePersister=(e,t,o,s)=>{let l,i;return a(e,(()=>f(void 0,null,(function*(){const e=yield fetch(t);return i=y(e),e.text()}))),(e=>f(void 0,null,(function*(){return yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{l=setInterval((()=>f(void 0,null,(function*(){const o=yield fetch(t,{method:"HEAD"}),r=y(o);n(i)||n(r)||r==i||(i=r,e())}))),1e3*s)}),(()=>{r(l,clearInterval),l=void 0}))},e.createSessionPersister=(e,t)=>c(e,t,sessionStorage)},"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).TinyBasePersisters={},e.fs);
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),o=(e,t)=>e.forEach(t),r=e=>e.length,s=(e,...t)=>e.push(...t),i=e=>null==e,d=(e,t,n)=>i(e)?null==n?void 0:n():t(e),a=e=>Array.isArray(e),u=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},c=e=>i(e)||0==(e=>e.size)(e),f=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},v=e=>e.clear(),h=(e,t)=>null==e?void 0:e.forEach(t),R=(e,t)=>null==e?void 0:e.delete(t),p=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),L=(e,t)=>h(e,((e,n)=>t(n,e))),w=(e,t,n)=>i(n)?(R(e,t),e):null==e?void 0:e.set(t,n),y=(e,t,n)=>(u(e,t)||w(e,t,n()),g(e,t)),I=(e,t,n,l,o=0)=>d((n?y:g)(e,t[o],o>r(t)-2?n:p),(s=>{if(o>r(t)-2)return(null==l?void 0:l(s))&&w(e,t[o]),s;const i=I(s,t,n,l,o+1);return c(s)&&w(e,t[o]),i})),b=e=>new Set(a(e)||i(e)?e:[e]),T=(e,t)=>null==e?void 0:e.add(t),m=/^\d+$/,k=Object.freeze,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=p(),x=p(),S=p(),j=p(),[z,A,D,M,B,C,,,O,W,$]=((e,t,l)=>{const s=e.hasRow,I=p(),m=p(),k=p(),E=p(),x=p(),S=(t,n,...l)=>{const r=y(x,t,b);return o(l,(t=>T(r,t)&&n&&e.callListener(t))),l},j=(t,...n)=>d(g(x,t),(l=>{o(0==r(n)?f(l):n,(t=>{e.delListener(t),R(l,t)})),c(l)&&w(x,t)})),z=(e,t)=>{w(I,e,t),u(m,e)||(w(m,e,[p(),p(),p(),p()]),w(k,e,p()),w(E,e,p()))},A=e=>{w(I,e),w(m,e),w(k,e),w(E,e),j(e)};return[()=>e,()=>{return[...null!=(t=null==(e=I)?void 0:e.keys())?t:[]];var e,t},e=>L(m,e),e=>u(m,e),e=>g(I,e),e=>g(m,e),(e,t)=>w(m,e,t),z,(t,l,d,c,f)=>{z(t,l);const R=p(),y=p(),I=g(k,t),b=g(E,t),T=t=>{const o=n=>e.getCell(l,t,n),d=g(I,t),u=s(l,t)?(v=c(o,t),i(v)?void 0:v+n):void 0;var v,h,p,L;if(d===u||a(d)&&a(u)&&(p=u,r(h=d)===r(p)&&(L=(e,t)=>p[t]===e,h.every(L)))||w(R,t,[d,u]),!i(f)){const e=g(b,t),n=s(l,t)?f(o,t):void 0;e!=n&&w(y,t,n)}},m=e=>{d((()=>{h(R,(([,e],t)=>w(I,t,e))),h(y,((e,t)=>w(b,t,e)))}),R,y,I,b,e),v(R),v(y)};L(I,T),e.hasTable(l)&&o(e.getRowIds(l),(e=>{u(I,e)||T(e)})),m(!0),j(t),S(t,0,e.addRowListener(l,null,((e,t,n)=>T(n))),e.addTableListener(l,(()=>m())))},A,()=>L(x,A),S,j]})(e),[q,F,G]=(e=>{let t;const[l,a]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{m.test(t)&&r(e)<1e3&&s(e,t)}]})(),u=p();return[(e,o,r)=>{null!=t||(t=N);const s=l();return w(u,s,[e,o,r]),T(I(o,null!=r?r:[n],b),s),s},(e,l,...i)=>o(((e,t=[n])=>{const l=[],i=(e,n)=>n==r(t)?s(l,e):null===t[n]?h(e,(e=>i(e,n+1))):o([t[n],null],(t=>i(g(e,t),n+1)));return i(e,0),l})(e,l),(e=>h(e,(e=>g(u,e)[0](t,...null!=l?l:[],...i))))),e=>d(g(u,e),(([,t,l])=>(I(t,null!=l?l:[n],void 0,(t=>(R(t,e),c(t)?1:0))),w(u,e),a(e),l))),(e,n,l)=>d(g(u,e),(([e,,s=[]])=>{const d=(...a)=>{const u=r(a);u==r(s)?e(t,...a,...l(a)):i(s[u])?o(n[u](...a),(e=>d(...a,e))):d(...a,s[u])};d()}))]})(),H=(e,t,n)=>d(C(e),(([l,,o])=>{if(!u(o,t)){const r=b();if(B(e)!=K(e))T(r,t);else{let e=t;for(;!i(e)&&!u(r,e);)T(r,e),e=g(l,e)}if(n)return r;w(o,t,r)}return g(o,t)})),J=(e,t)=>d(C(e),(([,,e])=>w(e,t))),K=e=>g(E,e),N={setRelationshipDefinition:(e,o,r,s)=>{return w(E,e,r),O(e,o,((t,n)=>{const l=b(),o=b(),r=b(),[s,a]=C(e);h(n,(([t,n],f)=>{i(t)||(T(o,t),d(g(a,t),(e=>{R(e,f),c(e)&&w(a,t)}))),i(n)||(T(o,n),u(a,n)||w(a,n,b()),T(g(a,n),f)),T(l,f),w(s,f,n),L(g(j,e),(t=>{u(H(e,t),f)&&T(r,t)}))})),t(),h(l,(t=>F(x,[e,t]))),h(o,(t=>F(S,[e,t]))),h(r,(t=>{J(e,t),F(j,[e,t])}))}),t(a=s)==l?e=>e(a):null!=a?a:()=>n),N;var a},delRelationshipDefinition:e=>(w(E,e),W(e),N),getStore:z,getRelationshipIds:A,forEachRelationship:t=>D((n=>t(n,(t=>e.forEachRow(B(n),t))))),hasRelationship:M,getLocalTableId:B,getRemoteTableId:K,getRemoteRowId:(e,t)=>{var n;return g(null==(n=C(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return f(g(null==(n=C(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>i(C(e))?[t]:f(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>q(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>q(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),q(n,j,[e,t])),delListener:e=>(J(...G(e)),N),destroy:$,getListenerStats:()=>({})};return k(N)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="",l=n(t),o=(e,n)=>e.forEach(n),r=e=>e.length,s=(e,...n)=>e.push(...n),i=e=>null==e,d=(e,n,t)=>i(e)?null==t?void 0:t():n(e),a=e=>Array.isArray(e),u=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},c=e=>i(e)||0==(e=>e.size)(e),v=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},f=e=>e.clear(),h=(e,n)=>null==e?void 0:e.forEach(n),R=(e,n)=>null==e?void 0:e.delete(n),p=e=>new Map(e),g=(e,n)=>null==e?void 0:e.get(n),L=(e,n)=>h(e,((e,t)=>n(t,e))),w=(e,n,t)=>i(t)?(R(e,n),e):null==e?void 0:e.set(n,t),y=(e,n,t)=>(u(e,n)||w(e,n,t()),g(e,n)),I=(e,n,t,l,o=0)=>d((t?y:g)(e,n[o],o>r(n)-2?t:p),(s=>{if(o>r(n)-2)return(null==l?void 0:l(s))&&w(e,n[o]),s;const i=I(s,n,t,l,o+1);return c(s)&&w(e,n[o]),i})),b=e=>new Set(a(e)||i(e)?e:[e]),T=(e,n)=>null==e?void 0:e.add(n),m=/^\d+$/,k=Object.freeze,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=p(),x=p(),S=p(),j=p(),[z,A,D,M,B,C,,,O,W,$]=((e,n,l)=>{const s=e.hasRow,I=p(),m=p(),k=p(),E=p(),x=p(),S=(n,t,...l)=>{const r=y(x,n,b);return o(l,(n=>T(r,n)&&t&&e.callListener(n))),l},j=(n,...t)=>d(g(x,n),(l=>{o(0==r(t)?v(l):t,(n=>{e.delListener(n),R(l,n)})),c(l)&&w(x,n)})),z=(e,n)=>{w(I,e,n),u(m,e)||(w(m,e,[p(),p(),p(),p()]),w(k,e,p()),w(E,e,p()))},A=e=>{w(I,e),w(m,e),w(k,e),w(E,e),j(e)};return[()=>e,()=>{return[...null!=(n=null==(e=I)?void 0:e.keys())?n:[]];var e,n},e=>L(m,e),e=>u(m,e),e=>g(I,e),e=>g(m,e),(e,n)=>w(m,e,n),z,(n,l,d,c,v)=>{z(n,l);const R=p(),y=p(),I=g(k,n),b=g(E,n),T=n=>{const o=t=>e.getCell(l,n,t),d=g(I,n),u=s(l,n)?(f=c(o,n),i(f)?void 0:f+t):void 0;var f,h,p,L;if(d===u||a(d)&&a(u)&&(p=u,r(h=d)===r(p)&&(L=(e,n)=>p[n]===e,h.every(L)))||w(R,n,[d,u]),!i(v)){const e=g(b,n),t=s(l,n)?v(o,n):void 0;e!=t&&w(y,n,t)}},m=e=>{d((()=>{h(R,(([,e],n)=>w(I,n,e))),h(y,((e,n)=>w(b,n,e)))}),R,y,I,b,e),f(R),f(y)};L(I,T),e.hasTable(l)&&o(e.getRowIds(l),(e=>{u(I,e)||T(e)})),m(!0),j(n),S(n,0,e.addRowListener(l,null,((e,n,t)=>T(t))),e.addTableListener(l,(()=>m())))},A,()=>L(x,A),S,j]})(e),[q,F,G]=(e=>{let n;const[l,a]=(()=>{const e=[];let n=0;return[()=>{var l;return null!=(l=e.shift())?l:t+n++},n=>{m.test(n)&&r(e)<1e3&&s(e,n)}]})(),u=p();return[(e,o,r,s=[],i=(()=>[]))=>{null!=n||(n=N);const d=l();return w(u,d,[e,o,r,s,i]),T(I(o,null!=r?r:[t],b),d),d},(e,l,...i)=>o(((e,n=[t])=>{const l=[],i=(e,t)=>t==r(n)?s(l,e):null===n[t]?h(e,(e=>i(e,t+1))):o([n[t],null],(n=>i(g(e,n),t+1)));return i(e,0),l})(e,l),(e=>h(e,(e=>g(u,e)[0](n,...null!=l?l:[],...i))))),e=>d(g(u,e),(([,n,l])=>(I(n,null!=l?l:[t],void 0,(n=>(R(n,e),c(n)?1:0))),w(u,e),a(e),l))),e=>d(g(u,e),(([e,,t=[],l,s])=>{const d=(...a)=>{var u,c;const v=r(a);v==r(t)?e(n,...a,...s(a)):i(t[v])?o(null!=(c=null==(u=l[v])?void 0:u.call(l,...a))?c:[],(e=>d(...a,e))):d(...a,t[v])};d()}))]})(),H=(e,n,t)=>d(C(e),(([l,,o])=>{if(!u(o,n)){const r=b();if(B(e)!=K(e))T(r,n);else{let e=n;for(;!i(e)&&!u(r,e);)T(r,e),e=g(l,e)}if(t)return r;w(o,n,r)}return g(o,n)})),J=(e,n)=>d(C(e),(([,,e])=>w(e,n))),K=e=>g(E,e),N={setRelationshipDefinition:(e,o,r,s)=>{return w(E,e,r),O(e,o,((n,t)=>{const l=b(),o=b(),r=b(),[s,a]=C(e);h(t,(([n,t],v)=>{i(n)||(T(o,n),d(g(a,n),(e=>{R(e,v),c(e)&&w(a,n)}))),i(t)||(T(o,t),u(a,t)||w(a,t,b()),T(g(a,t),v)),T(l,v),w(s,v,t),L(g(j,e),(n=>{u(H(e,n),v)&&T(r,n)}))})),n(),h(l,(n=>F(x,[e,n]))),h(o,(n=>F(S,[e,n]))),h(r,(n=>{J(e,n),F(j,[e,n])}))}),n(a=s)==l?e=>e(a):null!=a?a:()=>t),N;var a},delRelationshipDefinition:e=>(w(E,e),W(e),N),getStore:z,getRelationshipIds:A,forEachRelationship:n=>D((t=>n(t,(n=>e.forEachRow(B(t),n))))),hasRelationship:M,getLocalTableId:B,getRemoteTableId:K,getRemoteRowId:(e,n)=>{var t;return g(null==(t=C(e))?void 0:t[0],n)},getLocalRowIds:(e,n)=>{var t;return v(g(null==(t=C(e))?void 0:t[1],n))},getLinkedRowIds:(e,n)=>i(C(e))?[n]:v(H(e,n,!0)),addRemoteRowIdListener:(e,n,t)=>q(t,x,[e,n]),addLocalRowIdsListener:(e,n,t)=>q(t,S,[e,n]),addLinkedRowIdsListener:(e,n,t)=>(H(e,n),q(t,j,[e,n])),delListener:e=>(J(...G(e)),N),destroy:$,getListenerStats:()=>({})};return k(N)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
Binary file