tinybase 2.2.0-beta.0 → 2.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/debug/queries.js +4 -3
  5. package/lib/debug/store.js +5 -5
  6. package/lib/debug/tinybase.js +6 -6
  7. package/lib/debug/tools.d.ts +155 -5
  8. package/lib/debug/tools.js +488 -431
  9. package/lib/es6/checkpoints.js +1 -1
  10. package/lib/es6/checkpoints.js.gz +0 -0
  11. package/lib/es6/indexes.js +1 -1
  12. package/lib/es6/indexes.js.gz +0 -0
  13. package/lib/es6/metrics.js +1 -1
  14. package/lib/es6/metrics.js.gz +0 -0
  15. package/lib/es6/queries.js +1 -1
  16. package/lib/es6/queries.js.gz +0 -0
  17. package/lib/es6/relationships.js +1 -1
  18. package/lib/es6/relationships.js.gz +0 -0
  19. package/lib/es6/store.js +1 -1
  20. package/lib/es6/store.js.gz +0 -0
  21. package/lib/es6/tinybase.js +1 -1
  22. package/lib/es6/tinybase.js.gz +0 -0
  23. package/lib/es6/tools.d.ts +155 -5
  24. package/lib/es6/tools.js +1 -1
  25. package/lib/es6/tools.js.gz +0 -0
  26. package/lib/es6/ui-react.js +1 -1
  27. package/lib/es6/ui-react.js.gz +0 -0
  28. package/lib/indexes.js +1 -1
  29. package/lib/indexes.js.gz +0 -0
  30. package/lib/metrics.js +1 -1
  31. package/lib/metrics.js.gz +0 -0
  32. package/lib/queries.js +1 -1
  33. package/lib/queries.js.gz +0 -0
  34. package/lib/relationships.js +1 -1
  35. package/lib/relationships.js.gz +0 -0
  36. package/lib/store.js +1 -1
  37. package/lib/store.js.gz +0 -0
  38. package/lib/tinybase.js +1 -1
  39. package/lib/tinybase.js.gz +0 -0
  40. package/lib/tools.d.ts +155 -5
  41. package/lib/tools.js +1 -1
  42. package/lib/tools.js.gz +0 -0
  43. package/lib/umd/checkpoints.js +1 -1
  44. package/lib/umd/checkpoints.js.gz +0 -0
  45. package/lib/umd/indexes.js +1 -1
  46. package/lib/umd/indexes.js.gz +0 -0
  47. package/lib/umd/metrics.js +1 -1
  48. package/lib/umd/metrics.js.gz +0 -0
  49. package/lib/umd/queries.js +1 -1
  50. package/lib/umd/queries.js.gz +0 -0
  51. package/lib/umd/relationships.js +1 -1
  52. package/lib/umd/relationships.js.gz +0 -0
  53. package/lib/umd/store.js +1 -1
  54. package/lib/umd/store.js.gz +0 -0
  55. package/lib/umd/tinybase.js +1 -1
  56. package/lib/umd/tinybase.js.gz +0 -0
  57. package/lib/umd/tools.d.ts +155 -5
  58. package/lib/umd/tools.js +1 -1
  59. package/lib/umd/tools.js.gz +0 -0
  60. package/lib/umd-es6/checkpoints.js +1 -1
  61. package/lib/umd-es6/checkpoints.js.gz +0 -0
  62. package/lib/umd-es6/indexes.js +1 -1
  63. package/lib/umd-es6/indexes.js.gz +0 -0
  64. package/lib/umd-es6/metrics.js +1 -1
  65. package/lib/umd-es6/metrics.js.gz +0 -0
  66. package/lib/umd-es6/queries.js +1 -1
  67. package/lib/umd-es6/queries.js.gz +0 -0
  68. package/lib/umd-es6/relationships.js +1 -1
  69. package/lib/umd-es6/relationships.js.gz +0 -0
  70. package/lib/umd-es6/store.js +1 -1
  71. package/lib/umd-es6/store.js.gz +0 -0
  72. package/lib/umd-es6/tinybase.js +1 -1
  73. package/lib/umd-es6/tinybase.js.gz +0 -0
  74. package/lib/umd-es6/tools.d.ts +155 -5
  75. package/lib/umd-es6/tools.js +1 -1
  76. package/lib/umd-es6/tools.js.gz +0 -0
  77. package/lib/umd-es6/ui-react.js +1 -1
  78. package/lib/umd-es6/ui-react.js.gz +0 -0
  79. package/package.json +6 -5
  80. package/readme.md +21 -2
Binary file
@@ -1 +1 @@
1
- import e,{useContext as o}from"react";const t=e=>typeof e,r=t(""),l=(e,o)=>e.map(o),d=e=>null==e,n=(e,o,t)=>d(e)?null==t?void 0:t():o(e),s=()=>{},{createContext:u,useContext:i}=e,a=u([]),I=(e,o)=>{const t=i(a);return d(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},c=(e,o)=>{const l=I(e,o);return d(e)||(e=>t(e)==r)(e)?l:e},p=e=>I(e,0),b=e=>I(e,2),w=e=>I(e,4),g=e=>I(e,6),v=e=>I(e,8),R=e=>I(e,10),C=e=>c(e,0),m=e=>c(e,2),y=e=>c(e,4),k=e=>c(e,6),h=e=>c(e,8),f=e=>c(e,10);const{useCallback:P,useEffect:T,useMemo:q,useRef:x,useState:S}=e,O=(e,o,t=[])=>{const r=q((()=>o(e)),[e,...t]);return T((()=>()=>r.destroy()),[r]),r},B=(e,o,t,r=[],l)=>{const[,n]=S(),s=P((()=>{var l,d;return null!=(d=null==(l=null==o?void 0:o["get"+e])?void 0:l.call(o,...r))?d:t}),[o,...r]),[u]=S(s),i=x(u);return q((()=>i.current=s()),[s]),L(e,o,((...e)=>{i.current=d(l)?s():e[l],n([])}),[],r),i.current},L=(e,o,t,r=[],l=[],...d)=>T((()=>{var r;const n=null==(r=null==o?void 0:o["add"+e+"Listener"])?void 0:r.call(o,...l,t,...d);return()=>null==o?void 0:o.delListener(n)}),[o,...l,...r,...d]),j=(e,o,t,r=[],l=s,d=[],...u)=>{const i=C(e);return P((e=>n(i,(r=>n(t(e,r),(e=>l(r["set"+o](...u,e),e)))))),[i,o,...r,...d,...u])},M=(e,o,t=s,r=[],...l)=>{const d=C(e);return P((()=>t(null==d?void 0:d["del"+o](...l))),[d,o,...r,...l])},E=(e,o,t)=>{const r=f(e);return P((()=>null==r?void 0:r[o](t)),[r,o,t])},A=(e,o=[])=>q(e,o),D=e=>B("Tables",C(e),{}),F=e=>B("TableIds",C(e),[],[]),z=(e,o)=>B("Table",C(o),{},[e]),G=(e,o)=>B("RowIds",C(o),[],[e]),H=(e,o,t,r=0,l,d)=>B("SortedRowIds",C(d),[],[e,o,t,r,l],6),J=(e,o,t)=>B("Row",C(t),{},[e,o]),K=(e,o,t)=>B("CellIds",C(t),[],[e,o]),N=(e,o,t,r)=>B("Cell",C(r),void 0,[e,o,t],4),Q=(e,o,t,r,l)=>j(t,"Tables",e,o,r,l),U=(e,o,t,r,l,d)=>j(r,"Table",o,t,l,d,e),V=(e,o,t,r,l,d,n)=>j(l,"Row",t,r,d,n,e,o),W=(e,o,t=[],r,l=s,d=[])=>{const u=C(r);return P((t=>n(u,(r=>n(o(t,r),(o=>l(r.addRow(e,o),r,o)))))),[u,e,...t,...d])},X=(e,o,t,r,l,d,n)=>j(l,"PartialRow",t,r,d,n,e,o),Y=(e,o,t,r,l,d,n,s)=>j(d,"Cell",r,l,n,s,e,o,t),Z=(e,o,t)=>M(e,"Tables",o,t),$=(e,o,t,r)=>M(o,"Table",t,r,e),_=(e,o,t,r,l)=>M(t,"Row",r,l,e,o),ee=(e,o,t,r,l,d,n)=>M(l,"Cell",d,n,e,o,t,r),oe=(e,o,t,r)=>L("Tables",C(r),e,o,[],t),te=(e,o,t,r)=>L("TableIds",C(r),e,o,[],t),re=(e,o,t,r,l)=>L("Table",C(l),o,t,[e],r),le=(e,o,t,r,l)=>L("RowIds",C(l),o,t,[e],r),de=(e,o,t,r,l,d,n,s,u)=>L("SortedRowIds",C(u),d,n,[e,o,t,r,l],s),ne=(e,o,t,r,l,d)=>L("Row",C(d),t,r,[e,o],l),se=(e,o,t,r,l,d)=>L("CellIds",C(d),t,r,[e,o],l),ue=(e,o,t,r,l,d,n)=>L("Cell",C(n),r,l,[e,o,t],d),ie=(e,o,t)=>O(e,o,t),ae=(e,o)=>B("Metric",m(o),void 0,[e]),Ie=(e,o,t,r)=>L("Metric",m(r),o,t,[e]),ce=(e,o,t)=>O(e,o,t),pe=(e,o)=>B("SliceIds",y(o),[],[e]),be=(e,o,t)=>B("SliceRowIds",y(t),[],[e,o]),we=(e,o,t,r)=>L("SliceIds",y(r),o,t,[e]),ge=(e,o,t,r,l)=>L("SliceRowIds",y(l),t,r,[e,o]),ve=(e,o,t)=>O(e,o,t),Re=(e,o,t)=>B("RemoteRowId",k(t),void 0,[e,o]),Ce=(e,o,t)=>B("LocalRowIds",k(t),[],[e,o]),me=(e,o,t)=>B("LinkedRowIds",k(t),[],[e,o]),ye=(e,o,t,r,l)=>L("RemoteRowId",k(l),t,r,[e,o]),ke=(e,o,t,r,l)=>L("LocalRowIds",k(l),t,r,[e,o]),he=(e,o,t,r,l)=>L("LinkedRowIds",k(l),t,r,[e,o]),fe=(e,o,t)=>O(e,o,t),Pe=(e,o)=>B("ResultTable",h(o),{},[e]),Te=(e,o)=>B("ResultRowIds",h(o),[],[e]),qe=(e,o,t,r=0,l,d)=>B("ResultSortedRowIds",h(d),[],[e,o,t,r,l],6),xe=(e,o,t)=>B("ResultRow",h(t),{},[e,o]),Se=(e,o,t)=>B("ResultCellIds",h(t),[],[e,o]),Oe=(e,o,t,r)=>B("ResultCell",h(r),void 0,[e,o,t]),Be=(e,o,t,r)=>L("ResultTable",h(r),o,t,[e]),Le=(e,o,t,r)=>L("ResultRowIds",h(r),o,t,[e]),je=(e,o,t,r,l,d,n,s)=>L("ResultSortedRowIds",h(s),d,n,[e,o,t,r,l]),Me=(e,o,t,r,l)=>L("ResultRow",h(l),t,r,[e,o]),Ee=(e,o,t,r,l)=>L("ResultCellIds",h(l),t,r,[e,o]),Ae=(e,o,t,r,l,d)=>L("ResultCell",h(d),r,l,[e,o,t]),De=(e,o,t)=>O(e,o,t),Fe=e=>B("CheckpointIds",f(e),[[],void 0,[]]),ze=(e,o)=>B("Checkpoint",f(o),void 0,[e]),Ge=(e=s,o=[],t,r=s,l=[])=>{const d=f(t);return P((o=>n(d,(t=>{const l=e(o);r(t.addCheckpoint(l),t,l)}))),[d,...o,...l])},He=e=>E(e,"goBackward"),Je=e=>E(e,"goForward"),Ke=(e,o=[],t,r=s,l=[])=>{const d=f(t);return P((o=>n(d,(t=>n(e(o),(e=>r(t.goTo(e),e)))))),[d,...o,...l])},Ne=e=>{var o;const t=f(e),[r,l]=Fe(t);return[(d=r,!(0==(e=>e.length)(d))),He(t),l,null!=(o=n(l,(e=>null==t?void 0:t.getCheckpoint(e))))?o:""];var d},Qe=e=>{var o;const t=f(e),[,,[r]]=Fe(t);return[!d(r),Je(t),r,null!=(o=n(r,(e=>null==t?void 0:t.getCheckpoint(e))))?o:""]},Ue=(e,o,t)=>L("CheckpointIds",f(t),e,o),Ve=(e,o,t,r)=>L("Checkpoint",f(r),o,t,[e]),We=(e,o,t=[],r,l=[])=>{const[,d]=S(),n=q((()=>o(e)),[e,...t]);return T((()=>{var e,o,t;return e=void 0,o=null,t=function*(){yield null==r?void 0:r(n),d(1)},new Promise(((r,l)=>{var d=e=>{try{s(t.next(e))}catch(e){l(e)}},n=e=>{try{s(t.throw(e))}catch(e){l(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(d,n);s((t=t.apply(e,o)).next())})),()=>{n.destroy()}}),[n,...l]),n};var Xe=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable,oo=(e,o,t)=>o in e?Xe(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,to=(e,o)=>{for(var t in o||(o={}))_e.call(o,t)&&oo(e,t,o[t]);if($e)for(var t of $e(o))eo.call(o,t)&&oo(e,t,o[t]);return e},ro=(e,o)=>Ye(e,Ze(o)),lo=(e,o)=>{var t={};for(var r in e)_e.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&$e)for(var r of $e(e))o.indexOf(r)<0&&eo.call(e,r)&&(t[r]=e[r]);return t};const{createElement:no,useMemo:so}=e,uo=({tableId:e,store:o,rowComponent:t=vo,getRowComponentProps:r,separator:d,debugIds:n},s)=>wo(l(s,(l=>no(t,ro(to({},po(r,l)),{key:l,tableId:e,rowId:l,store:o,debugIds:n})))),d,n,e),io=({queryId:e,queries:o,resultRowComponent:t=xo,getResultRowComponentProps:r,separator:d,debugIds:n},s)=>wo(l(s,(l=>no(t,ro(to({},po(r,l)),{key:l,queryId:e,rowId:l,queries:o,debugIds:n})))),d,n,e),ao=e=>{const o=k(e);return[o,null==o?void 0:o.getStore()]},Io=({relationshipId:e,relationships:o,rowComponent:t=vo,getRowComponentProps:r,separator:d,debugIds:n},s,u)=>{const[i,a]=ao(o),I=null==i?void 0:i.getLocalTableId(e),c=s(e,u,i);return wo(l(c,(e=>no(t,ro(to({},po(r,e)),{key:e,tableId:I,rowId:e,store:a,debugIds:n})))),d,n,u)},co=e=>({checkpoints:o,checkpointComponent:t=Bo,getCheckpointComponentProps:r,separator:d,debugIds:n})=>{const s=f(o);return wo(l(e(Fe(s)),(e=>no(t,ro(to({},po(r,e)),{key:e,checkpoints:s,checkpointId:e,debugIds:n})))),d)},po=(e,o)=>d(e)?{}:e(o),bo=({store:e,storesById:t,metrics:r,metricsById:l,indexes:d,indexesById:n,relationships:s,relationshipsById:u,queries:i,queriesById:I,checkpoints:c,checkpointsById:p,children:b})=>{const w=o(a);return no(a.Provider,{value:so((()=>[null!=e?e:w[0],to(to({},w[1]),t),null!=r?r:w[2],to(to({},w[3]),l),null!=d?d:w[4],to(to({},w[5]),n),null!=s?s:w[6],to(to({},w[7]),u),null!=i?i:w[8],to(to({},w[9]),I),null!=c?c:w[10],to(to({},w[11]),p)]),[e,t,r,l,d,n,s,u,i,I,c,p,w])},b)},wo=(e,o,t,r)=>{const n=d(o)||!Array.isArray(e)?e:l(e,((e,t)=>t>0?[o,e]:e));return t?[r,":{",n,"}"]:n},go=({tableId:e,rowId:o,cellId:t,store:r,debugIds:l})=>{var d;return wo(""+(null!=(d=N(e,o,t,r))?d:""),void 0,l,t)},vo=({tableId:e,rowId:o,store:t,cellComponent:r=go,getCellComponentProps:d,separator:n,debugIds:s})=>wo(l(K(e,o,t),(l=>no(r,ro(to({},po(d,l)),{key:l,tableId:e,rowId:o,cellId:l,store:t,debugIds:s})))),n,s,o),Ro=e=>uo(e,G(e.tableId,e.store)),Co=e=>{var o=e,{cellId:t,descending:r,offset:l,limit:d}=o,n=lo(o,["cellId","descending","offset","limit"]);return uo(n,H(n.tableId,t,r,l,d,n.store))},mo=({store:e,tableComponent:o=Ro,getTableComponentProps:t,separator:r,debugIds:d})=>wo(l(F(e),(r=>no(o,ro(to({},po(t,r)),{key:r,tableId:r,store:e,debugIds:d})))),r),yo=({metricId:e,metrics:o,debugIds:t})=>{var r;return wo(null!=(r=ae(e,o))?r:"",void 0,t,e)},ko=({indexId:e,sliceId:o,indexes:t,rowComponent:r=vo,getRowComponentProps:d,separator:n,debugIds:s})=>{const u=y(t),i=null==u?void 0:u.getStore(),a=null==u?void 0:u.getTableId(e),I=be(e,o,u);return wo(l(I,(e=>no(r,ro(to({},po(d,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:s})))),n,s,o)},ho=({indexId:e,indexes:o,sliceComponent:t=ko,getSliceComponentProps:r,separator:d,debugIds:n})=>wo(l(pe(e,o),(l=>no(t,ro(to({},po(r,l)),{key:l,indexId:e,sliceId:l,indexes:o,debugIds:n})))),d,n,e),fo=({relationshipId:e,localRowId:o,relationships:t,rowComponent:r=vo,getRowComponentProps:l,debugIds:n})=>{const[s,u]=ao(t),i=null==s?void 0:s.getRemoteTableId(e),a=Re(e,o,s);return wo(d(i)||d(a)?null:no(r,ro(to({},po(l,a)),{key:a,tableId:i,rowId:a,store:u,debugIds:n})),void 0,n,o)},Po=e=>Io(e,Ce,e.remoteRowId),To=e=>Io(e,me,e.firstRowId),qo=({queryId:e,rowId:o,cellId:t,queries:r,debugIds:l})=>{var d;return wo(""+(null!=(d=Oe(e,o,t,r))?d:""),void 0,l,t)},xo=({queryId:e,rowId:o,queries:t,resultCellComponent:r=qo,getResultCellComponentProps:d,separator:n,debugIds:s})=>wo(l(Se(e,o,t),(l=>no(r,ro(to({},po(d,l)),{key:l,queryId:e,rowId:o,cellId:l,queries:t,debugIds:s})))),n,s,o),So=e=>io(e,Te(e.queryId,e.queries)),Oo=e=>{var o=e,{cellId:t,descending:r,offset:l,limit:d}=o,n=lo(o,["cellId","descending","offset","limit"]);return io(n,qe(n.queryId,t,r,l,d,n.queries))},Bo=({checkpoints:e,checkpointId:o,debugIds:t})=>{var r;return wo(null!=(r=ze(o,e))?r:"",void 0,t,o)},Lo=co((e=>e[0])),jo=co((e=>d(e[1])?[]:[e[1]])),Mo=co((e=>e[2]));export{Lo as BackwardCheckpointsView,go as CellView,Bo as CheckpointView,jo as CurrentCheckpointView,Mo as ForwardCheckpointsView,ho as IndexView,To as LinkedRowsView,Po as LocalRowsView,yo as MetricView,bo as Provider,fo as RemoteRowView,qo as ResultCellView,xo as ResultRowView,Oo as ResultSortedTableView,So as ResultTableView,vo as RowView,ko as SliceView,Co as SortedTableView,Ro as TableView,mo as TablesView,uo as tableView,W as useAddRowCallback,N as useCell,K as useCellIds,se as useCellIdsListener,ue as useCellListener,ze as useCheckpoint,Fe as useCheckpointIds,Ue as useCheckpointIdsListener,Ve as useCheckpointListener,R as useCheckpoints,De as useCreateCheckpoints,ce as useCreateIndexes,ie as useCreateMetrics,We as useCreatePersister,fe as useCreateQueries,ve as useCreateRelationships,A as useCreateStore,ee as useDelCellCallback,_ as useDelRowCallback,$ as useDelTableCallback,Z as useDelTablesCallback,He as useGoBackwardCallback,Je as useGoForwardCallback,Ke as useGoToCallback,w as useIndexes,me as useLinkedRowIds,he as useLinkedRowIdsListener,Ce as useLocalRowIds,ke as useLocalRowIdsListener,ae as useMetric,Ie as useMetricListener,b as useMetrics,v as useQueries,Qe as useRedoInformation,g as useRelationships,Re as useRemoteRowId,ye as useRemoteRowIdListener,Oe as useResultCell,Se as useResultCellIds,Ee as useResultCellIdsListener,Ae as useResultCellListener,xe as useResultRow,Te as useResultRowIds,Le as useResultRowIdsListener,Me as useResultRowListener,qe as useResultSortedRowIds,je as useResultSortedRowIdsListener,Pe as useResultTable,Be as useResultTableListener,J as useRow,G as useRowIds,le as useRowIdsListener,ne as useRowListener,Y as useSetCellCallback,Ge as useSetCheckpointCallback,X as useSetPartialRowCallback,V as useSetRowCallback,U as useSetTableCallback,Q as useSetTablesCallback,pe as useSliceIds,we as useSliceIdsListener,be as useSliceRowIds,ge as useSliceRowIdsListener,H as useSortedRowIds,de as useSortedRowIdsListener,p as useStore,z as useTable,F as useTableIds,te as useTableIdsListener,re as useTableListener,D as useTables,oe as useTablesListener,Ne as useUndoInformation};
1
+ import e,{useContext as o}from"react";const t=e=>typeof e,r=t(""),l=(e,o)=>e.map(o),d=e=>null==e,n=(e,o,t)=>d(e)?null==t?void 0:t():o(e),s=()=>{},{createContext:u,useContext:i}=e,a=u([]),I=(e,o)=>{const t=i(a);return d(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},c=(e,o)=>{const l=I(e,o);return d(e)||(e=>t(e)==r)(e)?l:e},p=e=>I(e,0),b=e=>I(e,2),w=e=>I(e,4),g=e=>I(e,6),v=e=>I(e,8),R=e=>I(e,10),C=e=>c(e,0),m=e=>c(e,2),y=e=>c(e,4),k=e=>c(e,6),h=e=>c(e,8),f=e=>c(e,10),{useCallback:P,useEffect:T,useMemo:q,useRef:x,useState:S}=e,O=(e,o,t=[])=>{const r=q((()=>o(e)),[e,...t]);return T((()=>()=>r.destroy()),[r]),r},B=(e,o,t,r=[],l)=>{const[,n]=S(),s=P((()=>{var l,d;return null!=(d=null==(l=null==o?void 0:o["get"+e])?void 0:l.call(o,...r))?d:t}),[o,...r]),[u]=S(s),i=x(u);return q((()=>i.current=s()),[s]),L(e,o,((...e)=>{i.current=d(l)?s():e[l],n([])}),[],r),i.current},L=(e,o,t,r=[],l=[],...d)=>T((()=>{var r;const n=null==(r=null==o?void 0:o["add"+e+"Listener"])?void 0:r.call(o,...l,t,...d);return()=>null==o?void 0:o.delListener(n)}),[o,...l,...r,...d]),j=(e,o,t,r=[],l=s,d=[],...u)=>{const i=C(e);return P((e=>n(i,(r=>n(t(e,r),(e=>l(r["set"+o](...u,e),e)))))),[i,o,...r,...d,...u])},M=(e,o,t=s,r=[],...l)=>{const d=C(e);return P((()=>t(null==d?void 0:d["del"+o](...l))),[d,o,...r,...l])},E=(e,o,t)=>{const r=f(e);return P((()=>null==r?void 0:r[o](t)),[r,o,t])},A=(e,o=[])=>q(e,o),D=e=>B("Tables",C(e),{}),F=e=>B("TableIds",C(e),[],[]),z=(e,o)=>B("Table",C(o),{},[e]),G=(e,o)=>B("RowIds",C(o),[],[e]),H=(e,o,t,r=0,l,d)=>B("SortedRowIds",C(d),[],[e,o,t,r,l],6),J=(e,o,t)=>B("Row",C(t),{},[e,o]),K=(e,o,t)=>B("CellIds",C(t),[],[e,o]),N=(e,o,t,r)=>B("Cell",C(r),void 0,[e,o,t],4),Q=(e,o,t,r,l)=>j(t,"Tables",e,o,r,l),U=(e,o,t,r,l,d)=>j(r,"Table",o,t,l,d,e),V=(e,o,t,r,l,d,n)=>j(l,"Row",t,r,d,n,e,o),W=(e,o,t=[],r,l=s,d=[])=>{const u=C(r);return P((t=>n(u,(r=>n(o(t,r),(o=>l(r.addRow(e,o),r,o)))))),[u,e,...t,...d])},X=(e,o,t,r,l,d,n)=>j(l,"PartialRow",t,r,d,n,e,o),Y=(e,o,t,r,l,d,n,s)=>j(d,"Cell",r,l,n,s,e,o,t),Z=(e,o,t)=>M(e,"Tables",o,t),$=(e,o,t,r)=>M(o,"Table",t,r,e),_=(e,o,t,r,l)=>M(t,"Row",r,l,e,o),ee=(e,o,t,r,l,d,n)=>M(l,"Cell",d,n,e,o,t,r),oe=(e,o,t,r)=>L("Tables",C(r),e,o,[],t),te=(e,o,t,r)=>L("TableIds",C(r),e,o,[],t),re=(e,o,t,r,l)=>L("Table",C(l),o,t,[e],r),le=(e,o,t,r,l)=>L("RowIds",C(l),o,t,[e],r),de=(e,o,t,r,l,d,n,s,u)=>L("SortedRowIds",C(u),d,n,[e,o,t,r,l],s),ne=(e,o,t,r,l,d)=>L("Row",C(d),t,r,[e,o],l),se=(e,o,t,r,l,d)=>L("CellIds",C(d),t,r,[e,o],l),ue=(e,o,t,r,l,d,n)=>L("Cell",C(n),r,l,[e,o,t],d),ie=(e,o,t)=>O(e,o,t),ae=(e,o)=>B("Metric",m(o),void 0,[e]),Ie=(e,o,t,r)=>L("Metric",m(r),o,t,[e]),ce=(e,o,t)=>O(e,o,t),pe=(e,o)=>B("SliceIds",y(o),[],[e]),be=(e,o,t)=>B("SliceRowIds",y(t),[],[e,o]),we=(e,o,t,r)=>L("SliceIds",y(r),o,t,[e]),ge=(e,o,t,r,l)=>L("SliceRowIds",y(l),t,r,[e,o]),ve=(e,o,t)=>O(e,o,t),Re=(e,o,t)=>B("RemoteRowId",k(t),void 0,[e,o]),Ce=(e,o,t)=>B("LocalRowIds",k(t),[],[e,o]),me=(e,o,t)=>B("LinkedRowIds",k(t),[],[e,o]),ye=(e,o,t,r,l)=>L("RemoteRowId",k(l),t,r,[e,o]),ke=(e,o,t,r,l)=>L("LocalRowIds",k(l),t,r,[e,o]),he=(e,o,t,r,l)=>L("LinkedRowIds",k(l),t,r,[e,o]),fe=(e,o,t)=>O(e,o,t),Pe=(e,o)=>B("ResultTable",h(o),{},[e]),Te=(e,o)=>B("ResultRowIds",h(o),[],[e]),qe=(e,o,t,r=0,l,d)=>B("ResultSortedRowIds",h(d),[],[e,o,t,r,l],6),xe=(e,o,t)=>B("ResultRow",h(t),{},[e,o]),Se=(e,o,t)=>B("ResultCellIds",h(t),[],[e,o]),Oe=(e,o,t,r)=>B("ResultCell",h(r),void 0,[e,o,t]),Be=(e,o,t,r)=>L("ResultTable",h(r),o,t,[e]),Le=(e,o,t,r)=>L("ResultRowIds",h(r),o,t,[e]),je=(e,o,t,r,l,d,n,s)=>L("ResultSortedRowIds",h(s),d,n,[e,o,t,r,l]),Me=(e,o,t,r,l)=>L("ResultRow",h(l),t,r,[e,o]),Ee=(e,o,t,r,l)=>L("ResultCellIds",h(l),t,r,[e,o]),Ae=(e,o,t,r,l,d)=>L("ResultCell",h(d),r,l,[e,o,t]),De=(e,o,t)=>O(e,o,t),Fe=e=>B("CheckpointIds",f(e),[[],void 0,[]]),ze=(e,o)=>B("Checkpoint",f(o),void 0,[e]),Ge=(e=s,o=[],t,r=s,l=[])=>{const d=f(t);return P((o=>n(d,(t=>{const l=e(o);r(t.addCheckpoint(l),t,l)}))),[d,...o,...l])},He=e=>E(e,"goBackward"),Je=e=>E(e,"goForward"),Ke=(e,o=[],t,r=s,l=[])=>{const d=f(t);return P((o=>n(d,(t=>n(e(o),(e=>r(t.goTo(e),e)))))),[d,...o,...l])},Ne=e=>{var o;const t=f(e),[r,l]=Fe(t);return[(d=r,!(0==(e=>e.length)(d))),He(t),l,null!=(o=n(l,(e=>null==t?void 0:t.getCheckpoint(e))))?o:""];var d},Qe=e=>{var o;const t=f(e),[,,[r]]=Fe(t);return[!d(r),Je(t),r,null!=(o=n(r,(e=>null==t?void 0:t.getCheckpoint(e))))?o:""]},Ue=(e,o,t)=>L("CheckpointIds",f(t),e,o),Ve=(e,o,t,r)=>L("Checkpoint",f(r),o,t,[e]),We=(e,o,t=[],r,l=[])=>{const[,d]=S(),n=q((()=>o(e)),[e,...t]);return T((()=>{var e;return e=function*(){yield null==r?void 0:r(n),d(1)},new Promise(((o,t)=>{var r=o=>{try{d(e.next(o))}catch(e){t(e)}},l=o=>{try{d(e.throw(o))}catch(e){t(e)}},d=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);d((e=e.apply(void 0,null)).next())})),()=>{n.destroy()}}),[n,...l]),n};var Xe=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable,oo=(e,o,t)=>o in e?Xe(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,to=(e,o)=>{for(var t in o||(o={}))_e.call(o,t)&&oo(e,t,o[t]);if($e)for(var t of $e(o))eo.call(o,t)&&oo(e,t,o[t]);return e},ro=(e,o)=>Ye(e,Ze(o)),lo=(e,o)=>{var t={};for(var r in e)_e.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&$e)for(var r of $e(e))o.indexOf(r)<0&&eo.call(e,r)&&(t[r]=e[r]);return t};const{createElement:no,useMemo:so}=e,uo=({tableId:e,store:o,rowComponent:t=vo,getRowComponentProps:r,separator:d,debugIds:n},s)=>wo(l(s,(l=>no(t,ro(to({},po(r,l)),{key:l,tableId:e,rowId:l,store:o,debugIds:n})))),d,n,e),io=({queryId:e,queries:o,resultRowComponent:t=xo,getResultRowComponentProps:r,separator:d,debugIds:n},s)=>wo(l(s,(l=>no(t,ro(to({},po(r,l)),{key:l,queryId:e,rowId:l,queries:o,debugIds:n})))),d,n,e),ao=e=>{const o=k(e);return[o,null==o?void 0:o.getStore()]},Io=({relationshipId:e,relationships:o,rowComponent:t=vo,getRowComponentProps:r,separator:d,debugIds:n},s,u)=>{const[i,a]=ao(o),I=null==i?void 0:i.getLocalTableId(e),c=s(e,u,i);return wo(l(c,(e=>no(t,ro(to({},po(r,e)),{key:e,tableId:I,rowId:e,store:a,debugIds:n})))),d,n,u)},co=e=>({checkpoints:o,checkpointComponent:t=Bo,getCheckpointComponentProps:r,separator:d,debugIds:n})=>{const s=f(o);return wo(l(e(Fe(s)),(e=>no(t,ro(to({},po(r,e)),{key:e,checkpoints:s,checkpointId:e,debugIds:n})))),d)},po=(e,o)=>d(e)?{}:e(o),bo=({store:e,storesById:t,metrics:r,metricsById:l,indexes:d,indexesById:n,relationships:s,relationshipsById:u,queries:i,queriesById:I,checkpoints:c,checkpointsById:p,children:b})=>{const w=o(a);return no(a.Provider,{value:so((()=>[null!=e?e:w[0],to(to({},w[1]),t),null!=r?r:w[2],to(to({},w[3]),l),null!=d?d:w[4],to(to({},w[5]),n),null!=s?s:w[6],to(to({},w[7]),u),null!=i?i:w[8],to(to({},w[9]),I),null!=c?c:w[10],to(to({},w[11]),p)]),[e,t,r,l,d,n,s,u,i,I,c,p,w])},b)},wo=(e,o,t,r)=>{const n=d(o)||!Array.isArray(e)?e:l(e,((e,t)=>t>0?[o,e]:e));return t?[r,":{",n,"}"]:n},go=({tableId:e,rowId:o,cellId:t,store:r,debugIds:l})=>{var d;return wo(""+(null!=(d=N(e,o,t,r))?d:""),void 0,l,t)},vo=({tableId:e,rowId:o,store:t,cellComponent:r=go,getCellComponentProps:d,separator:n,debugIds:s})=>wo(l(K(e,o,t),(l=>no(r,ro(to({},po(d,l)),{key:l,tableId:e,rowId:o,cellId:l,store:t,debugIds:s})))),n,s,o),Ro=e=>uo(e,G(e.tableId,e.store)),Co=e=>{var o=e,{cellId:t,descending:r,offset:l,limit:d}=o,n=lo(o,["cellId","descending","offset","limit"]);return uo(n,H(n.tableId,t,r,l,d,n.store))},mo=({store:e,tableComponent:o=Ro,getTableComponentProps:t,separator:r,debugIds:d})=>wo(l(F(e),(r=>no(o,ro(to({},po(t,r)),{key:r,tableId:r,store:e,debugIds:d})))),r),yo=({metricId:e,metrics:o,debugIds:t})=>{var r;return wo(null!=(r=ae(e,o))?r:"",void 0,t,e)},ko=({indexId:e,sliceId:o,indexes:t,rowComponent:r=vo,getRowComponentProps:d,separator:n,debugIds:s})=>{const u=y(t),i=null==u?void 0:u.getStore(),a=null==u?void 0:u.getTableId(e),I=be(e,o,u);return wo(l(I,(e=>no(r,ro(to({},po(d,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:s})))),n,s,o)},ho=({indexId:e,indexes:o,sliceComponent:t=ko,getSliceComponentProps:r,separator:d,debugIds:n})=>wo(l(pe(e,o),(l=>no(t,ro(to({},po(r,l)),{key:l,indexId:e,sliceId:l,indexes:o,debugIds:n})))),d,n,e),fo=({relationshipId:e,localRowId:o,relationships:t,rowComponent:r=vo,getRowComponentProps:l,debugIds:n})=>{const[s,u]=ao(t),i=null==s?void 0:s.getRemoteTableId(e),a=Re(e,o,s);return wo(d(i)||d(a)?null:no(r,ro(to({},po(l,a)),{key:a,tableId:i,rowId:a,store:u,debugIds:n})),void 0,n,o)},Po=e=>Io(e,Ce,e.remoteRowId),To=e=>Io(e,me,e.firstRowId),qo=({queryId:e,rowId:o,cellId:t,queries:r,debugIds:l})=>{var d;return wo(""+(null!=(d=Oe(e,o,t,r))?d:""),void 0,l,t)},xo=({queryId:e,rowId:o,queries:t,resultCellComponent:r=qo,getResultCellComponentProps:d,separator:n,debugIds:s})=>wo(l(Se(e,o,t),(l=>no(r,ro(to({},po(d,l)),{key:l,queryId:e,rowId:o,cellId:l,queries:t,debugIds:s})))),n,s,o),So=e=>io(e,Te(e.queryId,e.queries)),Oo=e=>{var o=e,{cellId:t,descending:r,offset:l,limit:d}=o,n=lo(o,["cellId","descending","offset","limit"]);return io(n,qe(n.queryId,t,r,l,d,n.queries))},Bo=({checkpoints:e,checkpointId:o,debugIds:t})=>{var r;return wo(null!=(r=ze(o,e))?r:"",void 0,t,o)},Lo=co((e=>e[0])),jo=co((e=>d(e[1])?[]:[e[1]])),Mo=co((e=>e[2]));export{Lo as BackwardCheckpointsView,go as CellView,Bo as CheckpointView,jo as CurrentCheckpointView,Mo as ForwardCheckpointsView,ho as IndexView,To as LinkedRowsView,Po as LocalRowsView,yo as MetricView,bo as Provider,fo as RemoteRowView,qo as ResultCellView,xo as ResultRowView,Oo as ResultSortedTableView,So as ResultTableView,vo as RowView,ko as SliceView,Co as SortedTableView,Ro as TableView,mo as TablesView,uo as tableView,W as useAddRowCallback,N as useCell,K as useCellIds,se as useCellIdsListener,ue as useCellListener,ze as useCheckpoint,Fe as useCheckpointIds,Ue as useCheckpointIdsListener,Ve as useCheckpointListener,R as useCheckpoints,De as useCreateCheckpoints,ce as useCreateIndexes,ie as useCreateMetrics,We as useCreatePersister,fe as useCreateQueries,ve as useCreateRelationships,A as useCreateStore,ee as useDelCellCallback,_ as useDelRowCallback,$ as useDelTableCallback,Z as useDelTablesCallback,He as useGoBackwardCallback,Je as useGoForwardCallback,Ke as useGoToCallback,w as useIndexes,me as useLinkedRowIds,he as useLinkedRowIdsListener,Ce as useLocalRowIds,ke as useLocalRowIdsListener,ae as useMetric,Ie as useMetricListener,b as useMetrics,v as useQueries,Qe as useRedoInformation,g as useRelationships,Re as useRemoteRowId,ye as useRemoteRowIdListener,Oe as useResultCell,Se as useResultCellIds,Ee as useResultCellIdsListener,Ae as useResultCellListener,xe as useResultRow,Te as useResultRowIds,Le as useResultRowIdsListener,Me as useResultRowListener,qe as useResultSortedRowIds,je as useResultSortedRowIdsListener,Pe as useResultTable,Be as useResultTableListener,J as useRow,G as useRowIds,le as useRowIdsListener,ne as useRowListener,Y as useSetCellCallback,Ge as useSetCheckpointCallback,X as useSetPartialRowCallback,V as useSetRowCallback,U as useSetTableCallback,Q as useSetTablesCallback,pe as useSliceIds,we as useSliceIdsListener,be as useSliceRowIds,ge as useSliceRowIdsListener,H as useSortedRowIds,de as useSortedRowIdsListener,p as useStore,z as useTable,F as useTableIds,te as useTableIdsListener,re as useTableListener,D as useTables,oe as useTablesListener,Ne as useUndoInformation};
Binary file
package/lib/indexes.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e=>""+e,s=(e,t)=>e.every(t),r=(e,t)=>s(e,((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),l=e=>e.length,d=(e,...t)=>e.push(...t),a=e=>null==e,i=(e,t,n)=>a(e)?n?.():t(e),u=e=>Array.isArray(e),h=(e,t)=>e?.has(t)??!1,f=e=>a(e)||0==(e=>e.size)(e),I=e=>[...e?.values()??[]],g=e=>e.clear(),S=(e,t)=>e?.forEach(t),v=(e,t)=>e?.delete(t),w=e=>new Map(e),L=e=>[...e?.keys()??[]],p=(e,t)=>e?.get(t),x=(e,t)=>S(e,((e,n)=>t(n,e))),y=(e,t,n)=>a(n)?(v(e,t),e):e?.set(t,n),E=(e,t,n)=>(h(e,t)||y(e,t,n()),p(e,t)),R=(e,t,n,s,r=0)=>i((n?E:p)(e,t[r],r>l(t)-2?n:w),(o=>{if(r>l(t)-2)return s?.(o)&&y(e,t[r]),o;const c=R(o,t,n,s,r+1);return f(o)&&y(e,t[r]),c})),b=e=>new Set(u(e)||a(e)?e:[e]),T=(e,t)=>e?.add(t),k=(e,t,n)=>{const r=e.hasRow,o=w(),d=w(),R=w(),k=w(),z=w(),A=(t,n,...s)=>{const r=E(z,t,b);return c(s,(t=>T(r,t)&&n&&e.callListener(t))),s},C=(t,...n)=>i(p(z,t),(s=>{c(0==l(n)?I(s):n,(t=>{e.delListener(t),v(s,t)})),f(s)&&y(z,t)})),D=(e,n)=>{y(o,e,n),h(d,e)||(y(d,e,t()),y(R,e,w()),y(k,e,w()))},M=e=>{y(o,e),y(d,e),y(R,e),y(k,e),C(e)};return[()=>e,()=>L(o),e=>x(d,e),e=>h(d,e),e=>p(o,e),e=>p(d,e),(e,t)=>y(d,e,t),D,(t,o,d,i,f)=>{D(t,o);const I=w(),v=w(),L=p(R,t),E=p(k,t),b=t=>{const c=n=>e.getCell(o,t,n),d=p(L,t),h=r(o,t)?n(i(c,t)):void 0;var g,S;if(d===h||u(d)&&u(h)&&(S=h,l(g=d)===l(S)&&s(g,((e,t)=>S[t]===e)))||y(I,t,[d,h]),!a(f)){const e=p(E,t),n=r(o,t)?f(c,t):void 0;e!=n&&y(v,t,n)}},T=e=>{d((()=>{S(I,(([,e],t)=>y(L,t,e))),S(v,((e,t)=>y(E,t,e)))}),I,v,L,E,e),g(I),g(v)};x(L,b),e.hasTable(o)&&c(e.getRowIds(o),(e=>{h(L,e)||b(e)})),T(!0),C(t),A(t,0,e.addRowListener(o,null,((e,t,n)=>b(n))),e.addTableListener(o,(()=>T())))},M,()=>x(z,M),A,C]},z=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),A=(e,t)=>e<t?-1:1,C=/^\d+$/,D=e=>{let t;const[n,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{C.test(t)&&l(e)<1e3&&d(e,t)}]})(),r=w();return[(s,o,c)=>{t??=e();const l=n();return y(r,l,[s,o,c]),T(R(o,c??[""],b),l),l},(e,n,...s)=>c(((e,t=[""])=>{const n=[],s=(e,r)=>r==l(t)?d(n,e):null===t[r]?S(e,(e=>s(e,r+1))):c([t[r],null],(t=>s(p(e,t),r+1)));return s(e,0),n})(e,n),(e=>S(e,(e=>p(r,e)[0](t,...n??[],...s))))),e=>i(p(r,e),(([,t,n])=>(R(t,n??[""],void 0,(t=>(v(t,e),f(t)?1:0))),y(r,e),s(e),n))),(e,n,s)=>i(p(r,e),(([e,,r=[]])=>{const o=(...d)=>{const i=l(d);i==l(r)?e(t,...d,...s(d)):a(r[i])?c(n[i](...d),(e=>o(...d,e))):o(...d,r[i])};o()}))]},M=Object.freeze,j=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=w(),s=w(),[c,l,d,g,E,R,C,,j,m,O]=k(e,w,(e=>{return a(e)?"":u(e)?(t=n,e.map(t)):n(e);var t})),[W,$,q]=D((()=>F)),B=(t,n,s)=>{const r=E(t);S(s,((t,s)=>n(s,(n=>S(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},F={setIndexDefinition:(e,n,c,l,d,u=A)=>{const I=a(d)?void 0:([e],[t])=>d(e,t);return j(e,n,((n,c,d,g,L,E)=>{let k=0;const z=b(),A=b(),D=R(e);if(S(c,(([e,t],n)=>{const s=b(e),r=b(t);S(s,(e=>v(r,e)?v(s,e):0)),S(s,(e=>{T(z,e),i(p(D,e),(t=>{v(t,n),f(t)&&(y(D,e),k=1)}))})),S(r,(e=>{T(z,e),h(D,e)||(y(D,e,b()),k=1),T(p(D,e),n),a(l)||T(A,e)}))})),n(),f(L)||(E?x(D,(e=>T(A,e))):x(d,(e=>i(p(g,e),(e=>T(A,e))))),S(A,(e=>{const t=(t,n)=>u(p(L,t),p(L,n),e),n=[...p(D,e)];r(n,t)||(y(D,e,b(o(n,t))),T(z,e))}))),(k||E)&&!a(I)){const t=[...D];r(t,I)||(C(e,w(o(t,I))),k=1)}k&&$(t,[e]),S(z,(t=>$(s,[e,t])))}),z(c),i(l,z)),F},delIndexDefinition:e=>(m(e),F),getStore:c,getIndexIds:l,forEachIndex:e=>d(((t,n)=>e(t,(e=>B(t,e,n))))),forEachSlice:(e,t)=>B(e,t,R(e)),hasIndex:g,hasSlice:(e,t)=>h(R(e),t),getTableId:E,getSliceIds:e=>L(R(e)),getSliceRowIds:(e,t)=>I(p(R(e),t)),addSliceIdsListener:(e,n)=>W(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>W(n,s,[e,t]),delListener:e=>(q(e),F),destroy:O,getListenerStats:()=>({})};return M(F)}));export{j as createIndexes};
1
+ const e=e=>typeof e,t=e(""),n=e=>""+e,s=(e,t)=>e.every(t),r=(e,t)=>s(e,((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),l=e=>e.length,d=(e,...t)=>e.push(...t),a=e=>null==e,i=(e,t,n)=>a(e)?n?.():t(e),u=e=>Array.isArray(e),h=(e,t)=>e?.has(t)??!1,f=e=>a(e)||0==(e=>e.size)(e),I=e=>[...e?.values()??[]],g=e=>e.clear(),S=(e,t)=>e?.forEach(t),v=(e,t)=>e?.delete(t),w=e=>new Map(e),L=e=>[...e?.keys()??[]],p=(e,t)=>e?.get(t),x=(e,t)=>S(e,((e,n)=>t(n,e))),y=(e,t,n)=>a(n)?(v(e,t),e):e?.set(t,n),E=(e,t,n)=>(h(e,t)||y(e,t,n()),p(e,t)),R=(e,t,n,s,r=0)=>i((n?E:p)(e,t[r],r>l(t)-2?n:w),(o=>{if(r>l(t)-2)return s?.(o)&&y(e,t[r]),o;const c=R(o,t,n,s,r+1);return f(o)&&y(e,t[r]),c})),b=e=>new Set(u(e)||a(e)?e:[e]),T=(e,t)=>e?.add(t),k=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),z=(e,t)=>e<t?-1:1,A=/^\d+$/,C=Object.freeze,D=(e=>{const t=new WeakMap;return e=>(t.has(e)||t.set(e,(e=>{const t=w(),D=w(),[M,j,m,O,W,$,q,,B,F,G]=((e,t,n)=>{const r=e.hasRow,o=w(),d=w(),R=w(),k=w(),z=w(),A=(t,n,...s)=>{const r=E(z,t,b);return c(s,(t=>T(r,t)&&n&&e.callListener(t))),s},C=(t,...n)=>i(p(z,t),(s=>{c(0==l(n)?I(s):n,(t=>{e.delListener(t),v(s,t)})),f(s)&&y(z,t)})),D=(e,n)=>{y(o,e,n),h(d,e)||(y(d,e,t()),y(R,e,w()),y(k,e,w()))},M=e=>{y(o,e),y(d,e),y(R,e),y(k,e),C(e)};return[()=>e,()=>L(o),e=>x(d,e),e=>h(d,e),e=>p(o,e),e=>p(d,e),(e,t)=>y(d,e,t),D,(t,o,d,i,f)=>{D(t,o);const I=w(),v=w(),L=p(R,t),E=p(k,t),b=t=>{const c=n=>e.getCell(o,t,n),d=p(L,t),h=r(o,t)?n(i(c,t)):void 0;var g,S;if(d===h||u(d)&&u(h)&&(S=h,l(g=d)===l(S)&&s(g,((e,t)=>S[t]===e)))||y(I,t,[d,h]),!a(f)){const e=p(E,t),n=r(o,t)?f(c,t):void 0;e!=n&&y(v,t,n)}},T=e=>{d((()=>{S(I,(([,e],t)=>y(L,t,e))),S(v,((e,t)=>y(E,t,e)))}),I,v,L,E,e),g(I),g(v)};x(L,b),e.hasTable(o)&&c(e.getRowIds(o),(e=>{h(L,e)||b(e)})),T(!0),C(t),A(t,0,e.addRowListener(o,null,((e,t,n)=>b(n))),e.addTableListener(o,(()=>T())))},M,()=>x(z,M),A,C]})(e,w,(e=>{return a(e)?"":u(e)?(t=n,e.map(t)):n(e);var t})),[H,J,K]=(e=>{let t;const[n,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{A.test(t)&&l(e)<1e3&&d(e,t)}]})(),r=w();return[(e,s,o)=>{t??=P;const c=n();return y(r,c,[e,s,o]),T(R(s,o??[""],b),c),c},(e,n,...s)=>c(((e,t=[""])=>{const n=[],s=(e,r)=>r==l(t)?d(n,e):null===t[r]?S(e,(e=>s(e,r+1))):c([t[r],null],(t=>s(p(e,t),r+1)));return s(e,0),n})(e,n),(e=>S(e,(e=>p(r,e)[0](t,...n??[],...s))))),e=>i(p(r,e),(([,t,n])=>(R(t,n??[""],void 0,(t=>(v(t,e),f(t)?1:0))),y(r,e),s(e),n))),(e,n,s)=>i(p(r,e),(([e,,r=[]])=>{const o=(...d)=>{const i=l(d);i==l(r)?e(t,...d,...s(d)):a(r[i])?c(n[i](...d),(e=>o(...d,e))):o(...d,r[i])};o()}))]})(),N=(t,n,s)=>{const r=W(t);S(s,((t,s)=>n(s,(n=>S(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},P={setIndexDefinition:(e,n,s,c,l,d=z)=>{const u=a(l)?void 0:([e],[t])=>l(e,t);return B(e,n,((n,s,l,I,g,L)=>{let E=0;const R=b(),k=b(),z=$(e);if(S(s,(([e,t],n)=>{const s=b(e),r=b(t);S(s,(e=>v(r,e)?v(s,e):0)),S(s,(e=>{T(R,e),i(p(z,e),(t=>{v(t,n),f(t)&&(y(z,e),E=1)}))})),S(r,(e=>{T(R,e),h(z,e)||(y(z,e,b()),E=1),T(p(z,e),n),a(c)||T(k,e)}))})),n(),f(g)||(L?x(z,(e=>T(k,e))):x(l,(e=>i(p(I,e),(e=>T(k,e))))),S(k,(e=>{const t=(t,n)=>d(p(g,t),p(g,n),e),n=[...p(z,e)];r(n,t)||(y(z,e,b(o(n,t))),T(R,e))}))),(E||L)&&!a(u)){const t=[...z];r(t,u)||(q(e,w(o(t,u))),E=1)}E&&J(t,[e]),S(R,(t=>J(D,[e,t])))}),k(s),i(c,k)),P},delIndexDefinition:e=>(F(e),P),getStore:M,getIndexIds:j,forEachIndex:e=>m(((t,n)=>e(t,(e=>N(t,e,n))))),forEachSlice:(e,t)=>N(e,t,$(e)),hasIndex:O,hasSlice:(e,t)=>h($(e),t),getTableId:W,getSliceIds:e=>L($(e)),getSliceRowIds:(e,t)=>I(p($(e),t)),addSliceIdsListener:(e,n)=>H(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>H(n,D,[e,t]),delListener:e=>(K(e),P),destroy:G,getListenerStats:()=>({})};return C(P)})(e)),t.get(e))})();export{D as createIndexes};
package/lib/indexes.js.gz CHANGED
Binary file
package/lib/metrics.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),r=e(e),n=(e,t)=>e.forEach(t),s=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,r)=>e.reduce(t,r),c=(e,...t)=>e.push(...t),a=Math.max,d=Math.min,l=isFinite,u=e=>null==e,h=(e,t,r)=>u(e)?r?.():t(e),v=e=>Array.isArray(e),f=()=>{},g=e=>e.size,M=(e,t)=>e?.has(t)??!1,L=e=>u(e)||0==g(e),m=e=>[...e?.values()??[]],w=e=>e.clear(),y=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),b=e=>new Map(e),x=(e,t)=>e?.get(t),E=(e,t)=>y(e,((e,r)=>t(r,e))),I=(e,t,r)=>u(r)?(p(e,t),e):e?.set(t,r),R=(e,t,r)=>(M(e,t)||I(e,t,r()),x(e,t)),S=(e,t,r,n,s=0)=>h((r?R:x)(e,t[s],s>i(t)-2?r:b),(o=>{if(s>i(t)-2)return n?.(o)&&I(e,t[s]),o;const c=S(o,t,r,n,s+1);return L(o)&&I(e,t[s]),c})),T=b([["avg",[(e,t)=>s(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:a(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:d(t,e)]],["sum",[e=>s(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),k=e=>new Set(v(e)||u(e)?e:[e]),z=(e,t)=>e?.add(t),A=(e,t,r)=>{const s=e.hasRow,o=b(),c=b(),a=b(),d=b(),l=b(),f=(t,r,...s)=>{const i=R(l,t,k);return n(s,(t=>z(i,t)&&r&&e.callListener(t))),s},g=(t,...r)=>h(x(l,t),(s=>{n(0==i(r)?m(s):r,(t=>{e.delListener(t),p(s,t)})),L(s)&&I(l,t)})),S=(e,r)=>{I(o,e,r),M(c,e)||(I(c,e,t()),I(a,e,b()),I(d,e,b()))},T=e=>{I(o,e),I(c,e),I(a,e),I(d,e),g(e)};return[()=>e,()=>[...o?.keys()??[]],e=>E(c,e),e=>M(c,e),e=>x(o,e),e=>x(c,e),(e,t)=>I(c,e,t),S,(t,o,c,l,h)=>{S(t,o);const L=b(),m=b(),p=x(a,t),R=x(d,t),T=t=>{const n=r=>e.getCell(o,t,r),c=x(p,t),a=s(o,t)?r(l(n,t)):void 0;var d,f,g;if(c===a||v(c)&&v(a)&&(f=a,i(d=c)===i(f)&&(g=(e,t)=>f[t]===e,d.every(g)))||I(L,t,[c,a]),!u(h)){const e=x(R,t),r=s(o,t)?h(n,t):void 0;e!=r&&I(m,t,r)}},k=e=>{c((()=>{y(L,(([,e],t)=>I(p,t,e))),y(m,((e,t)=>I(R,t,e)))}),L,m,p,R,e),w(L),w(m)};E(p,T),e.hasTable(o)&&n(e.getRowIds(o),(e=>{M(p,e)||T(e)})),k(!0),g(t),f(t,0,e.addRowListener(o,null,((e,t,r)=>T(r))),e.addTableListener(o,(()=>k())))},T,()=>E(l,T),f,g]},D=(r,n)=>e(r)==t?e=>e(r):r??(()=>n??""),N=/^\d+$/,j=e=>{let t;const[r,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{N.test(t)&&i(e)<1e3&&c(e,t)}]})(),o=b();return[(n,s,i)=>{t??=e();const c=r();return I(o,c,[n,s,i]),z(S(s,i??[""],k),c),c},(e,r,...s)=>n(((e,t=[""])=>{const r=[],s=(e,o)=>o==i(t)?c(r,e):null===t[o]?y(e,(e=>s(e,o+1))):n([t[o],null],(t=>s(x(e,t),o+1)));return s(e,0),r})(e,r),(e=>y(e,(e=>x(o,e)[0](t,...r??[],...s))))),e=>h(x(o,e),(([,t,r])=>(S(t,r??[""],void 0,(t=>(p(t,e),L(t)?1:0))),I(o,e),s(e),r))),(e,r,s)=>h(x(o,e),(([e,,o=[]])=>{const c=(...a)=>{const d=i(a);d==i(o)?e(t,...a,...s(a)):u(o[d])?n(r[d](...a),(e=>c(...a,e))):c(...a,o[d])};c()}))]},C=Object.freeze,F=(e=>{const t=new WeakMap;return r=>(t.has(r)||t.set(r,e(r)),t.get(r))})((t=>{const n=b(),[s,i,o,c,a,d,h,,v,M,w]=A(t,f,(e=>isNaN(e)||u(e)||!0===e||!1===e||""===e?void 0:1*e)),[p,E,I]=j((()=>R)),R={setMetricDefinition:(t,s,i,o,c,a,f)=>{const M=e(i)==r?[i,c,a,f]:x(T,i)??x(T,"sum");return v(t,s,((e,r,s,i,o,c)=>{const a=d(t),v=g(i);c||=u(a),e();let f=((e,t,r,n,s,i=!1)=>{if(L(r))return;const[o,c,a,d]=s;return i||=u(e),y(n,(([r,n])=>{i||(e=u(r)?c?.(e,n,t++):u(n)?a?.(e,r,t--):d?.(e,n,r,t),i||=u(e))})),i?o(m(r),g(r)):e})(a,v,i,r,M,c);l(f)||(f=void 0),f!=a&&(h(t,f),E(n,[t],f,a))}),D(o,1)),R},delMetricDefinition:e=>(M(e),R),getStore:s,getMetricIds:i,forEachMetric:o,hasMetric:c,getTableId:a,getMetric:d,addMetricListener:(e,t)=>p(t,n,[e]),delListener:e=>(I(e),R),destroy:w,getListenerStats:()=>({})};return C(R)}));export{F as createMetrics};
1
+ const e=e=>typeof e,t=e(""),r=e(e),n=(e,t)=>e.forEach(t),s=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,r)=>e.reduce(t,r),a=(e,...t)=>e.push(...t),c=Math.max,d=Math.min,l=isFinite,u=e=>null==e,v=(e,t,r)=>u(e)?r?.():t(e),h=e=>Array.isArray(e),f=()=>{},g=e=>e.size,M=(e,t)=>e?.has(t)??!1,L=e=>u(e)||0==g(e),m=e=>[...e?.values()??[]],w=e=>e.clear(),y=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),b=e=>new Map(e),x=(e,t)=>e?.get(t),E=(e,t)=>y(e,((e,r)=>t(r,e))),I=(e,t,r)=>u(r)?(p(e,t),e):e?.set(t,r),R=(e,t,r)=>(M(e,t)||I(e,t,r()),x(e,t)),S=(e,t,r,n,s=0)=>v((r?R:x)(e,t[s],s>i(t)-2?r:b),(o=>{if(s>i(t)-2)return n?.(o)&&I(e,t[s]),o;const a=S(o,t,r,n,s+1);return L(o)&&I(e,t[s]),a})),T=b([["avg",[(e,t)=>s(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>c(...e),(e,t)=>c(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:c(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:d(t,e)]],["sum",[e=>s(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),k=e=>new Set(h(e)||u(e)?e:[e]),z=(e,t)=>e?.add(t),A=/^\d+$/,D=Object.freeze,N=(s=>{const o=new WeakMap;return s=>(o.has(s)||o.set(s,(s=>{const o=b(),[c,d,N,j,C,F,O,,W,$,q]=((e,t,r)=>{const s=e.hasRow,o=b(),a=b(),c=b(),d=b(),l=b(),f=(t,r,...s)=>{const i=R(l,t,k);return n(s,(t=>z(i,t)&&r&&e.callListener(t))),s},g=(t,...r)=>v(x(l,t),(s=>{n(0==i(r)?m(s):r,(t=>{e.delListener(t),p(s,t)})),L(s)&&I(l,t)})),S=(e,r)=>{I(o,e,r),M(a,e)||(I(a,e,t()),I(c,e,b()),I(d,e,b()))},T=e=>{I(o,e),I(a,e),I(c,e),I(d,e),g(e)};return[()=>e,()=>[...o?.keys()??[]],e=>E(a,e),e=>M(a,e),e=>x(o,e),e=>x(a,e),(e,t)=>I(a,e,t),S,(t,r,o,a,l)=>{S(t,r);const v=b(),L=b(),m=x(c,t),p=x(d,t),R=t=>{const n=n=>e.getCell(r,t,n),o=x(m,t),c=s(r,t)?(d=a(n,t),isNaN(d)||u(d)||!0===d||!1===d||""===d?void 0:1*d):void 0;var d,f,g,M;if(o===c||h(o)&&h(c)&&(g=c,i(f=o)===i(g)&&(M=(e,t)=>g[t]===e,f.every(M)))||I(v,t,[o,c]),!u(l)){const e=x(p,t),i=s(r,t)?l(n,t):void 0;e!=i&&I(L,t,i)}},T=e=>{o((()=>{y(v,(([,e],t)=>I(m,t,e))),y(L,((e,t)=>I(p,t,e)))}),v,L,m,p,e),w(v),w(L)};E(m,R),e.hasTable(r)&&n(e.getRowIds(r),(e=>{M(m,e)||R(e)})),T(!0),g(t),f(t,0,e.addRowListener(r,null,((e,t,r)=>R(r))),e.addTableListener(r,(()=>T())))},T,()=>E(l,T),f,g]})(s,f),[B,G,H]=(e=>{let t;const[r,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{A.test(t)&&i(e)<1e3&&a(e,t)}]})(),o=b();return[(e,n,s)=>{t??=J;const i=r();return I(o,i,[e,n,s]),z(S(n,s??[""],k),i),i},(e,r,...s)=>n(((e,t=[""])=>{const r=[],s=(e,o)=>o==i(t)?a(r,e):null===t[o]?y(e,(e=>s(e,o+1))):n([t[o],null],(t=>s(x(e,t),o+1)));return s(e,0),r})(e,r),(e=>y(e,(e=>x(o,e)[0](t,...r??[],...s))))),e=>v(x(o,e),(([,t,r])=>(S(t,r??[""],void 0,(t=>(p(t,e),L(t)?1:0))),I(o,e),s(e),r))),(e,r,s)=>v(x(o,e),(([e,,o=[]])=>{const a=(...c)=>{const d=i(c);d==i(o)?e(t,...c,...s(c)):u(o[d])?n(r[d](...c),(e=>a(...c,e))):a(...c,o[d])};a()}))]})(),J={setMetricDefinition:(n,s,i,a,c,d,v)=>{const h=e(i)==r?[i,c,d,v]:x(T,i)??x(T,"sum");return W(n,s,((e,t,r,s,i,a)=>{const c=F(n),d=g(s);a||=u(c),e();let v=((e,t,r,n,s,i=!1)=>{if(L(r))return;const[o,a,c,d]=s;return i||=u(e),y(n,(([r,n])=>{i||(e=u(r)?a?.(e,n,t++):u(n)?c?.(e,r,t--):d?.(e,n,r,t),i||=u(e))})),i?o(m(r),g(r)):e})(c,d,s,t,h,a);l(v)||(v=void 0),v!=c&&(O(n,v),G(o,[n],v,c))}),(1,e(f=a)==t?e=>e(f):f??(()=>1))),J;var f},delMetricDefinition:e=>($(e),J),getStore:c,getMetricIds:d,forEachMetric:N,hasMetric:j,getTableId:C,getMetric:F,addMetricListener:(e,t)=>B(t,o,[e]),delListener:e=>(H(e),J),destroy:q,getListenerStats:()=>({})};return D(J)})(s)),o.get(s))})();export{N as createMetrics};
package/lib/metrics.js.gz CHANGED
Binary file
package/lib/queries.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o=(e,t)=>e.every(t),l=(e,t)=>e.forEach(t),a=e=>c(e,((e,t)=>e+t),0),i=e=>e.length,d=e=>0==i(e),c=(e,t,n)=>e.reduce(t,n),u=(e,...t)=>e.push(...t),h=Math.max,w=Math.min,g=isFinite,R=e=>null==e,v=(e,t,n)=>R(e)?n?.():t(e),L=t=>e(t)==r,f=e=>Array.isArray(e),y=()=>{},T=e=>e.size,b=(e,t)=>e?.has(t)??!1,C=e=>R(e)||0==T(e),I=e=>[...e?.values()??[]],p=e=>e.clear(),S=(e,t)=>e?.forEach(t),m=(e,t)=>e?.delete(t),Q=e=>new Map(e),E=(e,t)=>e?.get(t),M=(e,t)=>S(e,((e,n)=>t(n,e))),x=(e,t,n)=>R(n)?(m(e,t),e):e?.set(t,n),D=(e,t,n)=>(b(e,t)||x(e,t,n()),E(e,t)),F=(e,t,n,s,r=0)=>v((n?D:E)(e,t[r],r>i(t)-2?n:Q),(o=>{if(r>i(t)-2)return s?.(o)&&x(e,t[r]),o;const l=F(o,t,n,s,r+1);return C(o)&&x(e,t[r]),l})),j=e=>new Set(f(e)||R(e)?e:[e]),k=(e,t)=>e?.add(t),z=Q([["avg",[(e,t)=>a(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:h(t,e)]],["min",[e=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["sum",[e=>a(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),A=r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&g(r)?o:void 0},W=(e,t,n)=>{const s=e.hasRow,r=Q(),a=Q(),c=Q(),u=Q(),h=Q(),w=(t,n,...s)=>{const r=D(h,t,j);return l(s,(t=>k(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>v(E(h,t),(s=>{l(d(n)?I(s):n,(t=>{e.delListener(t),m(s,t)})),C(s)&&x(h,t)})),L=(e,n)=>{x(r,e,n),b(a,e)||(x(a,e,t()),x(c,e,Q()),x(u,e,Q()))},y=e=>{x(r,e),x(a,e),x(c,e),x(u,e),g(e)};return[()=>e,()=>[...r?.keys()??[]],e=>M(a,e),e=>b(a,e),e=>E(r,e),e=>E(a,e),(e,t)=>x(a,e,t),L,(t,r,a,d,h)=>{L(t,r);const v=Q(),y=Q(),T=E(c,t),C=E(u,t),I=t=>{const l=n=>e.getCell(r,t,n),a=E(T,t),c=s(r,t)?n(d(l,t)):void 0;var u,w;if(a===c||f(a)&&f(c)&&(w=c,i(u=a)===i(w)&&o(u,((e,t)=>w[t]===e)))||x(v,t,[a,c]),!R(h)){const e=E(C,t),n=s(r,t)?h(l,t):void 0;e!=n&&x(y,t,n)}},m=e=>{a((()=>{S(v,(([,e],t)=>x(T,t,e))),S(y,((e,t)=>x(C,t,e)))}),v,y,T,C,e),p(v),p(y)};M(T,I),e.hasTable(r)&&l(e.getRowIds(r),(e=>{b(T,e)||I(e)})),m(!0),g(t),w(t,0,e.addRowListener(r,null,((e,t,n)=>I(n))),e.addTableListener(r,(()=>m())))},y,()=>M(h,y),w,g]},O=Object,q=O.freeze,B=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=e.createStore,[n,s,r,a,c,,,h,,w,g,f,B]=W(e,(()=>!0),y),G=t(),H=t(),J=Q(),K=(e,t,...n)=>l(n,(n=>k(D(D(J,t,Q),e,j),n))),N=e=>{v(E(J,e),(e=>{M(e,((e,t)=>S(t,(t=>e.delListener(t))))),p(e)})),l([H,G],(t=>t.delTable(e)))},P=(e,t,n)=>K(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),U={setQueryDefinition:(t,n,s)=>{h(t,n),N(t);const r=[],a=[[null,[n,null,null,[],Q()]]],c=[],w=[],g=[];s({select:(e,t)=>{const n=L(e)?[i(r)+"",e]:[R(t)?e:t,n=>n(e,t)];return u(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||L(t)?null:t,r=R(s)?t:n,o=[e,[e,s,L(r)?r:e=>e(r),[],Q()]];return u(a,o),{as:e=>o[0]=e}},where:(e,t,n)=>u(c,L(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,L(t)?[t,n,s,r]:E(z,t)??[(e,t)=>t]]];return u(w,o),{as:e=>o[0]=e}},having:(e,t)=>u(g,L(e)?e:n=>n(e)===t)});const y=Q(r);if(C(y))return U;const p=Q(a);M(p,((e,[,t])=>v(E(p,t),(({3:t})=>R(e)?0:u(t,e)))));const W=Q(w);let O=G;if(C(W)&&d(g))O=H;else{P(t,O,H);const e=Q();M(W,((t,[n,s])=>k(D(e,n,j),[t,s])));const n=j();M(y,(t=>b(e,t)?0:k(n,t)));const s=Q(),r=(n,s,r,l)=>v(n,(([a,i,d,c])=>{M(s,((t,[n])=>{const s=D(a,t,Q),o=E(s,r),i=l?void 0:n;if(o!==i){const n=j([[o,i]]),l=T(s);x(s,r,i),S(E(e,t),(([e,t])=>{const r=((e,t,n,s,r,o=!1)=>{if(C(n))return;const[l,a,i,d]=r;return o||=R(e),S(s,(([n,s])=>{o||(e=R(n)?a?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?l(I(n),T(n)):e})(c[e],l,s,n,t);c[e]=R(A(r))?null:r}))}})),C(i)||!o(g,(e=>e((e=>c[e]))))?H.delRow(t,d):R(d)?n[2]=H.addRow(t,c):H.setRow(t,d,c)}));K(O,t,O.addRowListener(t,null,((o,l,a,i)=>{const d=[],c=[],h=Q(),w=O.hasRow(t,a);let g=!w;S(n,(e=>{const[n,s,r]=i(t,a,e);u(d,s),u(c,r),g||=n})),M(e,(e=>{const[n,,s]=i(t,a,e);(g||n)&&x(h,e,[s])})),g&&r(F(s,d,void 0,(([,e])=>(m(e,a),C(e)))),h,a,1),w&&r(F(s,c,(()=>{const e={};return S(n,(n=>e[n]=O.getCell(t,a,n))),[Q(),j(),void 0,e]}),(([,e])=>{k(e,a)})),h,a)})))}P(t,e,O);const q=s=>{const r=(t,r)=>e.getCell(...R(r)?[n,s,t]:t===n?[n,s,r]:[E(p,t)?.[0],E(E(p,t)?.[4],s)?.[0],r]);O.transaction((()=>o(c,(e=>e(r)))?M(y,((e,n)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(O,t,s,e,n(r,s)))):O.delRow(t,s)))},J=(n,s,r,o)=>{const a=t=>e.getCell(s,r,t);l(o,(s=>{const[r,,o,l,i]=E(p,s),d=o?.(a,n),[c,u]=E(i,n)??[];d!=c&&(R(u)||B(t,u),x(i,n,R(d)?null:[d,...f(t,1,e.addRowListener(r,d,(()=>J(n,r,d,l))))]))})),q(n)},{3:V}=E(p,null);return O.transaction((()=>f(t,1,e.addRowListener(n,null,((s,r,o)=>{e.hasRow(n,o)?J(o,n,o,V):(O.delRow(t,o),S(p,(({4:e})=>v(E(e,o),(([,n])=>{B(t,n),x(e,o)})))))}))))),U},delQueryDefinition:e=>(N(e),w(e),U),getStore:n,getQueryIds:s,forEachQuery:r,hasQuery:a,getTableId:c,delListener:e=>(H.delListener(e),U),destroy:g,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=H.getListenerStats();return s}};var V,X;return V={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},X=([e,t],n)=>{l(e?["get","has","forEach"]:["get"],(e=>U[e+"Result"+n]=(...t)=>H[e+n](...t))),U["addResult"+n+"Listener"]=(...e)=>{return H["add"+n+"Listener"](...(s=e,r=0,o=t,s.slice(r,o)),((n,...s)=>e[t](U,...s)));var s,r,o}},l(O.entries(V),(([e,t])=>X(t,e))),q(U)}));export{B as createQueries};
1
+ const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o=(e,t)=>e.every(t),l=(e,t)=>e.forEach(t),a=e=>c(e,((e,t)=>e+t),0),i=e=>e.length,d=e=>0==i(e),c=(e,t,n)=>e.reduce(t,n),u=(e,...t)=>e.push(...t),h=Math.max,w=Math.min,g=isFinite,R=e=>null==e,v=(e,t,n)=>R(e)?n?.():t(e),L=t=>e(t)==r,f=e=>Array.isArray(e),y=()=>{},T=e=>e.size,b=(e,t)=>e?.has(t)??!1,C=e=>R(e)||0==T(e),p=e=>[...e?.values()??[]],I=e=>e.clear(),m=(e,t)=>e?.forEach(t),S=(e,t)=>e?.delete(t),Q=e=>new Map(e),E=(e,t)=>e?.get(t),M=(e,t)=>m(e,((e,n)=>t(n,e))),x=(e,t,n)=>R(n)?(S(e,t),e):e?.set(t,n),D=(e,t,n)=>(b(e,t)||x(e,t,n()),E(e,t)),F=(e,t,n,s,r=0)=>v((n?D:E)(e,t[r],r>i(t)-2?n:Q),(o=>{if(r>i(t)-2)return s?.(o)&&x(e,t[r]),o;const l=F(o,t,n,s,r+1);return C(o)&&x(e,t[r]),l})),j=e=>new Set(f(e)||R(e)?e:[e]),k=(e,t)=>e?.add(t),z=Q([["avg",[(e,t)=>a(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:h(t,e)]],["min",[e=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["sum",[e=>a(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),A=Object,W=A.freeze,O=(r=>{const a=new WeakMap;return r=>(a.has(r)||a.set(r,(r=>{const a=r.createStore,[c,h,w,O,q,,,B,,G,H,J,K]=((e,t,n)=>{const s=e.hasRow,r=Q(),a=Q(),c=Q(),u=Q(),h=Q(),w=(t,n,...s)=>{const r=D(h,t,j);return l(s,(t=>k(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>v(E(h,t),(s=>{l(d(n)?p(s):n,(t=>{e.delListener(t),S(s,t)})),C(s)&&x(h,t)})),L=(e,t)=>{x(r,e,t),b(a,e)||(x(a,e,!0),x(c,e,Q()),x(u,e,Q()))},y=e=>{x(r,e),x(a,e),x(c,e),x(u,e),g(e)};return[()=>e,()=>[...r?.keys()??[]],e=>M(a,e),e=>b(a,e),e=>E(r,e),e=>E(a,e),(e,t)=>x(a,e,t),L,(t,r,a,d,h)=>{L(t,r);const v=Q(),y=Q(),T=E(c,t),C=E(u,t),p=t=>{const l=n=>e.getCell(r,t,n),a=E(T,t),c=s(r,t)?n(d(l,t)):void 0;var u,w;if(a===c||f(a)&&f(c)&&(w=c,i(u=a)===i(w)&&o(u,((e,t)=>w[t]===e)))||x(v,t,[a,c]),!R(h)){const e=E(C,t),n=s(r,t)?h(l,t):void 0;e!=n&&x(y,t,n)}},S=e=>{a((()=>{m(v,(([,e],t)=>x(T,t,e))),m(y,((e,t)=>x(C,t,e)))}),v,y,T,C,e),I(v),I(y)};M(T,p),e.hasTable(r)&&l(e.getRowIds(r),(e=>{b(T,e)||p(e)})),S(!0),g(t),w(t,0,e.addRowListener(r,null,((e,t,n)=>p(n))),e.addTableListener(r,(()=>S())))},y,()=>M(h,y),w,g]})(r,0,y),N=a(),P=a(),U=Q(),V=(e,t,...n)=>l(n,(n=>k(D(D(U,t,Q),e,j),n))),X=e=>{v(E(U,e),(e=>{M(e,((e,t)=>m(t,(t=>e.delListener(t))))),I(e)})),l([P,N],(t=>t.delTable(e)))},Y=(e,t,n)=>V(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),Z={setQueryDefinition:(a,c,h)=>{B(a,c),X(a);const w=[],f=[[null,[c,null,null,[],Q()]]],y=[],I=[],A=[];h({select:(e,t)=>{const n=L(e)?[i(w)+"",e]:[R(t)?e:t,n=>n(e,t)];return u(w,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||L(t)?null:t,r=R(s)?t:n,o=[e,[e,s,L(r)?r:e=>e(r),[],Q()]];return u(f,o),{as:e=>o[0]=e}},where:(e,t,n)=>u(y,L(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,L(t)?[t,n,s,r]:E(z,t)??[(e,t)=>t]]];return u(I,o),{as:e=>o[0]=e}},having:(e,t)=>u(A,L(e)?e:n=>n(e)===t)});const W=Q(w);if(C(W))return Z;const O=Q(f);M(O,((e,[,t])=>v(E(O,t),(({3:t})=>R(e)?0:u(t,e)))));const q=Q(I);let G=N;if(C(q)&&d(A))G=P;else{Y(a,G,P);const r=Q();M(q,((e,[t,n])=>k(D(r,t,j),[e,n])));const l=j();M(W,(e=>b(r,e)?0:k(l,e)));const i=Q(),d=(l,i,d,c)=>v(l,(([u,h,w,v])=>{M(i,((o,[l])=>{const a=D(u,o,Q),i=E(a,d),h=c?void 0:l;if(i!==h){const l=j([[i,h]]),c=T(a);x(a,d,h),m(E(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(C(n))return;const[l,a,i,d]=r;return o||=R(e),m(s,(([n,s])=>{o||(e=R(n)?a?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?l(p(n),T(n)):e})(v[r],c,a,l,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&g(r)?o:void 0})(i))?null:i}))}})),C(h)||!o(A,(e=>e((e=>v[e]))))?P.delRow(a,w):R(w)?l[2]=P.addRow(a,v):P.setRow(a,w,v)}));V(G,a,G.addRowListener(a,null,((e,t,n,s)=>{const o=[],c=[],h=Q(),w=G.hasRow(a,n);let g=!w;m(l,(e=>{const[t,r,l]=s(a,n,e);u(o,r),u(c,l),g||=t})),M(r,(e=>{const[t,,r]=s(a,n,e);(g||t)&&x(h,e,[r])})),g&&d(F(i,o,void 0,(([,e])=>(S(e,n),C(e)))),h,n,1),w&&d(F(i,c,(()=>{const e={};return m(l,(t=>e[t]=G.getCell(a,n,t))),[Q(),j(),void 0,e]}),(([,e])=>{k(e,n)})),h,n)})))}Y(a,r,G);const H=(e,t,n,s)=>{const i=e=>r.getCell(t,n,e);l(s,(t=>{const[n,,s,o,l]=E(O,t),d=s?.(i,e),[c,u]=E(l,e)??[];d!=c&&(R(u)||K(a,u),x(l,e,R(d)?null:[d,...J(a,1,r.addRowListener(n,d,(()=>H(e,n,d,o))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[c,e,t]:t===c?[c,e,n]:[E(O,t)?.[0],E(E(O,t)?.[4],e)?.[0],n]);G.transaction((()=>o(y,(e=>e(t)))?M(W,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(G,a,e,n,s(t,e)))):G.delRow(a,e)))})(e)},{3:U}=E(O,null);return G.transaction((()=>J(a,1,r.addRowListener(c,null,((e,t,n)=>{r.hasRow(c,n)?H(n,c,n,U):(G.delRow(a,n),m(O,(({4:e})=>v(E(e,n),(([,t])=>{K(a,t),x(e,n)})))))}))))),Z},delQueryDefinition:e=>(X(e),G(e),Z),getStore:c,getQueryIds:h,forEachQuery:w,hasQuery:O,getTableId:q,delListener:e=>(P.delListener(e),Z),destroy:H,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=P.getListenerStats();return s}};var $,_;return $={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},_=([e,t],n)=>{l(e?["get","has","forEach"]:["get"],(e=>Z[e+"Result"+n]=(...t)=>P[e+n](...t))),Z["addResult"+n+"Listener"]=(...e)=>{return P["add"+n+"Listener"](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](Z,...s)));var s,r}},((e,t)=>{e.map(t)})(A.entries($),(([e,t])=>_(t,e))),W(Z)})(r)),a.get(r))})();export{O as createQueries};
package/lib/queries.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=(e,t)=>e.forEach(t),s=e=>e.length,o=(e,...t)=>e.push(...t),r=e=>null==e,i=(e,t,n)=>r(e)?n?.():t(e),a=e=>Array.isArray(e),l=(e,t)=>e?.has(t)??!1,d=e=>r(e)||0==(e=>e.size)(e),c=e=>[...e?.values()??[]],u=e=>e.clear(),R=(e,t)=>e?.forEach(t),h=(e,t)=>e?.delete(t),f=e=>new Map(e),L=(e,t)=>e?.get(t),g=(e,t)=>R(e,((e,n)=>t(n,e))),w=(e,t,n)=>r(n)?(h(e,t),e):e?.set(t,n),p=(e,t,n)=>(l(e,t)||w(e,t,n()),L(e,t)),I=(e,t,n,o,r=0)=>i((n?p:L)(e,t[r],r>s(t)-2?n:f),(i=>{if(r>s(t)-2)return o?.(i)&&w(e,t[r]),i;const a=I(i,t,n,o,r+1);return d(i)&&w(e,t[r]),a})),v=e=>new Set(a(e)||r(e)?e:[e]),y=(e,t)=>e?.add(t),b=(e,t,o)=>{const I=e.hasRow,b=f(),k=f(),E=f(),T=f(),m=f(),S=(t,s,...o)=>{const r=p(m,t,v);return n(o,(t=>y(r,t)&&s&&e.callListener(t))),o},z=(t,...o)=>i(L(m,t),(r=>{n(0==s(o)?c(r):o,(t=>{e.delListener(t),h(r,t)})),d(r)&&w(m,t)})),A=(e,n)=>{w(b,e,n),l(k,e)||(w(k,e,t()),w(E,e,f()),w(T,e,f()))},D=e=>{w(b,e),w(k,e),w(E,e),w(T,e),z(e)};return[()=>e,()=>[...b?.keys()??[]],e=>g(k,e),e=>l(k,e),e=>L(b,e),e=>L(k,e),(e,t)=>w(k,e,t),A,(t,i,d,c,h)=>{A(t,i);const p=f(),v=f(),y=L(E,t),b=L(T,t),k=t=>{const n=n=>e.getCell(i,t,n),l=L(y,t),d=I(i,t)?o(c(n,t)):void 0;var u,R,f;if(l===d||a(l)&&a(d)&&(R=d,s(u=l)===s(R)&&(f=(e,t)=>R[t]===e,u.every(f)))||w(p,t,[l,d]),!r(h)){const e=L(b,t),s=I(i,t)?h(n,t):void 0;e!=s&&w(v,t,s)}},m=e=>{d((()=>{R(p,(([,e],t)=>w(y,t,e))),R(v,((e,t)=>w(b,t,e)))}),p,v,y,b,e),u(p),u(v)};g(y,k),e.hasTable(i)&&n(e.getRowIds(i),(e=>{l(y,e)||k(e)})),m(!0),z(t),S(t,0,e.addRowListener(i,null,((e,t,n)=>k(n))),e.addTableListener(i,(()=>m())))},D,()=>g(m,D),S,z]},k=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),E=/^\d+$/,T=e=>{let t;const[a,l]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{E.test(t)&&s(e)<1e3&&o(e,t)}]})(),c=f();return[(n,s,o)=>{t??=e();const r=a();return w(c,r,[n,s,o]),y(I(s,o??[""],v),r),r},(e,r,...i)=>n(((e,t=[""])=>{const r=[],i=(e,a)=>a==s(t)?o(r,e):null===t[a]?R(e,(e=>i(e,a+1))):n([t[a],null],(t=>i(L(e,t),a+1)));return i(e,0),r})(e,r),(e=>R(e,(e=>L(c,e)[0](t,...r??[],...i))))),e=>i(L(c,e),(([,t,n])=>(I(t,n??[""],void 0,(t=>(h(t,e),d(t)?1:0))),w(c,e),l(e),n))),(e,o,a)=>i(L(c,e),(([e,,i=[]])=>{const l=(...d)=>{const c=s(d);c==s(i)?e(t,...d,...a(d)):r(i[c])?n(o[c](...d),(e=>l(...d,e))):l(...d,i[c])};l()}))]},m=Object.freeze,S=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=f(),n=f(),s=f(),o=f(),[a,u,p,I,E,S,,,z,A,D]=b(e,(()=>[f(),f(),f(),f()]),(e=>r(e)?void 0:e+"")),[M,j,x]=T((()=>$)),C=(e,t,n)=>i(S(e),(([s,,o])=>{if(!l(o,t)){const i=v();if(E(e)!=W(e))y(i,t);else{let e=t;for(;!r(e)&&!l(i,e);)y(i,e),e=L(s,e)}if(n)return i;w(o,t,i)}return L(o,t)})),O=(e,t)=>i(S(e),(([,,e])=>w(e,t))),W=e=>L(t,e),$={setRelationshipDefinition:(e,a,c,u)=>(w(t,e,c),z(e,a,((t,a)=>{const c=v(),u=v(),f=v(),[p,I]=S(e);R(a,(([t,n],s)=>{r(t)||(y(u,t),i(L(I,t),(e=>{h(e,s),d(e)&&w(I,t)}))),r(n)||(y(u,n),l(I,n)||w(I,n,v()),y(L(I,n),s)),y(c,s),w(p,s,n),g(L(o,e),(t=>{l(C(e,t),s)&&y(f,t)}))})),t(),R(c,(t=>j(n,[e,t]))),R(u,(t=>j(s,[e,t]))),R(f,(t=>{O(e,t),j(o,[e,t])}))}),k(u)),$),delRelationshipDefinition:e=>(w(t,e),A(e),$),getStore:a,getRelationshipIds:u,forEachRelationship:t=>p((n=>t(n,(t=>e.forEachRow(E(n),t))))),hasRelationship:I,getLocalTableId:E,getRemoteTableId:W,getRemoteRowId:(e,t)=>L(S(e)?.[0],t),getLocalRowIds:(e,t)=>c(L(S(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(S(e))?[t]:c(C(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>M(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>M(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(C(e,t),M(n,o,[e,t])),delListener:e=>(O(...x(e)),$),destroy:D,getListenerStats:()=>({})};return m($)}));export{S as createRelationships};
1
+ const e=e=>typeof e,t=e(""),n=(e,t)=>e.forEach(t),s=e=>e.length,o=(e,...t)=>e.push(...t),r=e=>null==e,i=(e,t,n)=>r(e)?n?.():t(e),a=e=>Array.isArray(e),l=(e,t)=>e?.has(t)??!1,d=e=>r(e)||0==(e=>e.size)(e),c=e=>[...e?.values()??[]],u=e=>e.clear(),R=(e,t)=>e?.forEach(t),h=(e,t)=>e?.delete(t),f=e=>new Map(e),L=(e,t)=>e?.get(t),g=(e,t)=>R(e,((e,n)=>t(n,e))),w=(e,t,n)=>r(n)?(h(e,t),e):e?.set(t,n),p=(e,t,n)=>(l(e,t)||w(e,t,n()),L(e,t)),I=(e,t,n,o,r=0)=>i((n?p:L)(e,t[r],r>s(t)-2?n:f),(i=>{if(r>s(t)-2)return o?.(i)&&w(e,t[r]),i;const a=I(i,t,n,o,r+1);return d(i)&&w(e,t[r]),a})),v=e=>new Set(a(e)||r(e)?e:[e]),y=(e,t)=>e?.add(t),b=/^\d+$/,k=Object.freeze,E=(E=>{const T=new WeakMap;return E=>(T.has(E)||T.set(E,(E=>{const T=f(),m=f(),S=f(),z=f(),[A,D,M,j,x,C,,,O,W,$]=((e,t,o)=>{const I=e.hasRow,b=f(),k=f(),E=f(),T=f(),m=f(),S=(t,s,...o)=>{const r=p(m,t,v);return n(o,(t=>y(r,t)&&s&&e.callListener(t))),o},z=(t,...o)=>i(L(m,t),(r=>{n(0==s(o)?c(r):o,(t=>{e.delListener(t),h(r,t)})),d(r)&&w(m,t)})),A=(e,t)=>{w(b,e,t),l(k,e)||(w(k,e,[f(),f(),f(),f()]),w(E,e,f()),w(T,e,f()))},D=e=>{w(b,e),w(k,e),w(E,e),w(T,e),z(e)};return[()=>e,()=>[...b?.keys()??[]],e=>g(k,e),e=>l(k,e),e=>L(b,e),e=>L(k,e),(e,t)=>w(k,e,t),A,(t,o,i,d,c)=>{A(t,o);const h=f(),p=f(),v=L(E,t),y=L(T,t),b=t=>{const n=n=>e.getCell(o,t,n),i=L(v,t),l=I(o,t)?(u=d(n,t),r(u)?void 0:u+""):void 0;var u,R,f,g;if(i===l||a(i)&&a(l)&&(f=l,s(R=i)===s(f)&&(g=(e,t)=>f[t]===e,R.every(g)))||w(h,t,[i,l]),!r(c)){const e=L(y,t),s=I(o,t)?c(n,t):void 0;e!=s&&w(p,t,s)}},k=e=>{i((()=>{R(h,(([,e],t)=>w(v,t,e))),R(p,((e,t)=>w(y,t,e)))}),h,p,v,y,e),u(h),u(p)};g(v,b),e.hasTable(o)&&n(e.getRowIds(o),(e=>{l(v,e)||b(e)})),k(!0),z(t),S(t,0,e.addRowListener(o,null,((e,t,n)=>b(n))),e.addTableListener(o,(()=>k())))},D,()=>g(m,D),S,z]})(E),[q,B,F]=(e=>{let t;const[a,l]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{b.test(t)&&s(e)<1e3&&o(e,t)}]})(),c=f();return[(e,n,s)=>{t??=K;const o=a();return w(c,o,[e,n,s]),y(I(n,s??[""],v),o),o},(e,r,...i)=>n(((e,t=[""])=>{const r=[],i=(e,a)=>a==s(t)?o(r,e):null===t[a]?R(e,(e=>i(e,a+1))):n([t[a],null],(t=>i(L(e,t),a+1)));return i(e,0),r})(e,r),(e=>R(e,(e=>L(c,e)[0](t,...r??[],...i))))),e=>i(L(c,e),(([,t,n])=>(I(t,n??[""],void 0,(t=>(h(t,e),d(t)?1:0))),w(c,e),l(e),n))),(e,o,a)=>i(L(c,e),(([e,,i=[]])=>{const l=(...d)=>{const c=s(d);c==s(i)?e(t,...d,...a(d)):r(i[c])?n(o[c](...d),(e=>l(...d,e))):l(...d,i[c])};l()}))]})(),G=(e,t,n)=>i(C(e),(([s,,o])=>{if(!l(o,t)){const i=v();if(x(e)!=J(e))y(i,t);else{let e=t;for(;!r(e)&&!l(i,e);)y(i,e),e=L(s,e)}if(n)return i;w(o,t,i)}return L(o,t)})),H=(e,t)=>i(C(e),(([,,e])=>w(e,t))),J=e=>L(T,e),K={setRelationshipDefinition:(n,s,o,a)=>{return w(T,n,o),O(n,s,((e,t)=>{const s=v(),o=v(),a=v(),[c,u]=C(n);R(t,(([e,t],R)=>{r(e)||(y(o,e),i(L(u,e),(t=>{h(t,R),d(t)&&w(u,e)}))),r(t)||(y(o,t),l(u,t)||w(u,t,v()),y(L(u,t),R)),y(s,R),w(c,R,t),g(L(z,n),(e=>{l(G(n,e),R)&&y(a,e)}))})),e(),R(s,(e=>B(m,[n,e]))),R(o,(e=>B(S,[n,e]))),R(a,(e=>{H(n,e),B(z,[n,e])}))}),e(c=a)==t?e=>e(c):c??(()=>"")),K;var c},delRelationshipDefinition:e=>(w(T,e),W(e),K),getStore:A,getRelationshipIds:D,forEachRelationship:e=>M((t=>e(t,(e=>E.forEachRow(x(t),e))))),hasRelationship:j,getLocalTableId:x,getRemoteTableId:J,getRemoteRowId:(e,t)=>L(C(e)?.[0],t),getLocalRowIds:(e,t)=>c(L(C(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(C(e))?[t]:c(G(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>q(n,m,[e,t]),addLocalRowIdsListener:(e,t,n)=>q(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(G(e,t),q(n,z,[e,t])),delListener:e=>(H(...F(e)),K),destroy:$,getListenerStats:()=>({})};return k(K)})(E)),T.get(E))})();export{E as createRelationships};
Binary file
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),r=e(!0),s=e(0),n=e(e),l=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,c=(e,t,r)=>e.slice(t,r),d=(e,...t)=>e.push(...t),u=e=>JSON.stringify(e,((e,t)=>{return T(t,Map)?(r=[...t],s=(e,[t,r])=>(e[t]=r,e),n={},r.reduce(s,n)):t;var r,s,n})),f=JSON.parse,h=isFinite,T=(e,t)=>e instanceof t,b=e=>null==e,g=(e,t,r)=>b(e)?r?.():t(e),v=e=>e==t||e==r,w=(e,t)=>e?.has(t)??!1,R=e=>b(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),S=e=>new Map(e),I=e=>[...e?.keys()??[]],L=(e,t)=>e?.get(t),E=(e,t)=>C(e,((e,r)=>t(r,e))),J=(e,t,r)=>b(r)?(p(e,t),e):e?.set(t,r),m=(e,t,r)=>(w(e,t)||J(e,t,r()),L(e,t)),F=(e,t,r)=>{const s={},n=t??(e=>e);return C(e,((e,t)=>g(n(e),(e=>r?.(e)?0:s[t]=e)))),s},z=(e,t)=>{const r=S(),s=t??(e=>e);return C(e,((e,t)=>r.set(t,s(e)))),r},O=e=>z(e,z),k=(e,t,r,s,n=0)=>g((r?m:L)(e,t[n],n>i(t)-2?r:S),(l=>{if(n>i(t)-2)return s?.(l)&&J(e,t[n]),l;const o=k(l,t,r,s,n+1);return R(l)&&J(e,t[n]),o})),A=Object,M=A.keys,N=A.isFrozen,j=A.freeze,x=(e,t)=>!b(((e,t)=>g(e,(e=>e[t])))(e,t)),D=(e,t)=>delete e[t],P=(e,t)=>o(A.entries(e),(([e,r])=>t(r,e))),W=e=>{return t=M(e),0==i(t);var t},$=e=>new Set(Array.isArray(e)||b(e)?e:[e]),q=(e,t)=>e?.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>{let t;const[r,s]=G(),n=S();return[(s,l,o)=>{t??=e();const a=r();return J(n,a,[s,l,o]),q(k(l,o??[""],$),a),a},(e,r,...s)=>o(((e,t=[""])=>{const r=[],s=(e,n)=>n==i(t)?d(r,e):null===t[n]?C(e,(e=>s(e,n+1))):o([t[n],null],(t=>s(L(e,t),n+1)));return s(e,0),r})(e,r),(e=>C(e,(e=>L(n,e)[0](t,...r??[],...s))))),e=>g(L(n,e),(([,t,r])=>(k(t,r??[""],void 0,(t=>(p(t,e),R(t)?1:0))),J(n,e),s(e),r))),(e,r,s)=>g(L(n,e),(([e,,n=[]])=>{const l=(...a)=>{const c=i(a);c==i(n)?e(t,...a,...s(a)):b(n[c])?o(r[c](...a),(e=>l(...a,e))):l(...a,n[c])};l()}))]},K=e=>[e,e],Q=()=>[S(),S()],U=t=>{const r=e(t);return v(r)||r==s&&h(t)?r:void 0},V=(e,t,r,s=J)=>{const n=(l=I(e),a=e=>!x(t,e),l.filter(a));var l,a;return o(M(t),(s=>r(e,s,t[s]))),o(n,(t=>s(e,t))),e},X=(e,t,r)=>b(e)||!(e=>T(e,A)&&e.constructor==A)(e)||W(e)||N(e)?(r?.(),!1):(P(e,((r,s)=>{t(r,s)||D(e,s)})),!W(e)),Y=(e,t,r)=>J(e,t,L(e,t)==-r?void 0:r),Z=()=>{let t,r,h=0;const T=S(),k=S(),A=S(),M=S(),N=S(),B=S(),_=S(),ee=S(),te=S(),re=Q(),se=Q(),ne=Q(),le=Q(),oe=Q(),ae=Q(),ie=Q(),ce=Q(),de=Q(),ue=Q(),[fe,he,Te,be]=H((()=>Ze)),ge=(e,r)=>(!t||w(B,r)||Ne(r))&&X(e,((e,t)=>ve(r,t,e)),(()=>Ne(r))),ve=(e,t,r,s)=>X(s?r:Re(r,e,t),((s,n)=>g(we(e,t,n,s),(e=>(r[n]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(e,r,s,n)=>t?g(L(L(B,e),s),(t=>U(n)!=t.type?Ne(e,r,s,n,t.default):n),(()=>Ne(e,r,s,n))):b(U(n))?Ne(e,r,s,n):n,Re=(e,t,r)=>(g(L(_,t),(([s,n])=>{C(s,((t,r)=>{x(e,r)||(e[r]=t)})),C(n,(s=>{x(e,s)||Ne(t,r,s)}))})),e),ye=e=>V(B,e,((e,t,r)=>{const s=S(),n=$();V(m(B,t,S),r,((e,t,r)=>{J(e,t,r),g(r.default,(e=>J(s,t,e)),(()=>q(n,t)))})),J(_,t,[s,n])}),((e,t)=>{J(B,t),J(_,t)})),Ce=e=>V(te,e,((e,t,r)=>pe(t,r)),((e,t)=>me(t))),pe=(e,t)=>V(m(te,e,(()=>(Oe(e,1),S()))),t,((t,r,s)=>Se(e,t,r,s)),((t,r)=>Fe(e,t,r))),Se=(e,t,r,s,n)=>V(m(t,r,(()=>(ke(e,r,1),S()))),s,((t,s,n)=>Ie(e,r,t,s,n)),((s,l)=>ze(e,t,r,s,l,n))),Ie=(e,t,r,s,n)=>{w(r,s)||Ae(e,t,s,1);const l=L(r,s);n!==l&&(Me(e,t,s,l,n),J(r,s,n))},Le=(e,t,r,s,n)=>g(L(t,r),(t=>Ie(e,r,t,s,n)),(()=>Se(e,t,r,Re({[s]:n},e,r)))),Ee=e=>{const[t]=m(ee,e,G),r=t();return w(L(te,e),r)?Ee(e):r},Je=e=>L(te,e)??pe(e,{}),me=e=>pe(e,{}),Fe=(e,t,r)=>{const[,s]=m(ee,e,G);s(r),Se(e,t,r,{},!0)},ze=(e,t,r,s,n,l)=>{const o=L(L(_,e)?.[0],n);if(!b(o)&&!l)return Ie(e,r,s,n,o);const a=t=>{Me(e,r,t,L(s,t)),Ae(e,r,t,-1),J(s,t)};b(o)?a(n):E(s,a),R(s)&&(ke(e,r,-1),R(J(t,r))&&(Oe(e,-1),J(te,e),J(ee,e)))},Oe=(e,t)=>Y(T,e,t),ke=(e,t,r)=>Y(m(k,e,S),t,r),Ae=(e,t,r,s)=>Y(m(m(A,e,S),t,S),r,s),Me=(e,t,r,s,n)=>m(m(m(M,e,S),t,S),r,(()=>[s,0]))[1]=n,Ne=(e,t,r,s,n)=>(d(m(m(m(N,e,S),t,S),r,(()=>[])),s),n),je=(e,t,r)=>g(L(L(L(M,e),t),r),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Ke(e,t,r))])),xe=e=>R(N)||R(de[e])?0:C(e?z(N,O):N,((t,r)=>C(t,((t,s)=>C(t,((t,n)=>he(de[e],[r,s,n],t))))))),De=(e,t,r)=>{if(!R(t))return he(e,r),1},Pe=e=>{const t=R(oe[e]),r=R(ie[e])&&R(le[e])&&t&&R(se[e]),s=R(ce[e])&&R(ae[e])&&R(ne[e])&&R(re[e]);if(!r||!s){const n=e?[z(T),O(k),z(A,O),z(M,O)]:[T,k,A,M];if(!r){C(n[2],((t,r)=>C(t,((t,s)=>De(ie[e],t,[r,s])))));const r=$();C(n[1],((s,n)=>{De(le[e],s,[n])&&!t&&(he(oe[e],[n,null]),q(r,n))})),t||C(n[3],((t,s)=>{if(!w(r,s)){const r=$();C(t,(e=>C(e,(([t,s],n)=>s!==t?q(r,n):p(e,n))))),C(r,(t=>he(oe[e],[s,t])))}})),De(se[e],n[0])}if(!s){let t;C(n[3],((r,s)=>{let n;C(r,((r,l)=>{let o;C(r,(([r,a],i)=>{a!==r&&(he(ce[e],[s,l,i],a,r,je),t=n=o=1)})),o&&he(ae[e],[s,l],je)})),n&&he(ne[e],[s],je)})),t&&he(re[e],void 0,je)}}},We=(e,...t)=>(Ve((()=>e(...a(t,l)))),Ze),$e=()=>F(te,(e=>F(e,F))),qe=()=>I(te),Be=e=>I(L(te,l(e))),Ge=(e,t,r,s=0,n)=>{return a(c((d=L(te,l(e)),u=(e,r)=>[b(t)?r:L(e,l(t)),r],o=a([...d?.entries()??[]],(([e,t])=>u(t,e))),i=([e],[t])=>(e<t?-1:1)*(r?-1:1),o.sort(i)),s,b(n)?n:s+n),(([,e])=>e));var o,i,d,u},He=(e,t)=>I(L(L(te,l(e)),l(t))),Ke=(e,t,r)=>L(L(L(te,l(e)),l(t)),l(r)),Qe=e=>We((()=>(e=>X(e,ge,Ne))(e)?Ce(e):0)),Ue=()=>We((()=>Ce({}))),Ve=(e,t)=>{if(-1==h)return;Xe();const r=e();return Ye(t),r},Xe=()=>(h++,Ze),Ye=e=>(h>0&&(h--,0==h&&(r=!R(M),h=1,xe(1),r&&Pe(1),h=-1,e?.(F(M,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),W)),W),F(N,(e=>F(e,F))))&&(h=1,C(M,((e,t)=>C(e,((e,r)=>C(e,(([e],s)=>((e,t,r,s,n)=>b(n)?e.delCell(t,r,s,!0):e.setCell(t,r,s,n))(Ze,t,r,s,e))))))),h=-1,r=!1),he(ue[0],void 0,r),xe(0),r&&Pe(0),he(ue[1],void 0,r),h=0,o([M,N,T,k,A],y))),Ze),Ze={getTables:$e,getTableIds:qe,getTable:e=>F(L(te,l(e)),F),getRowIds:Be,getSortedRowIds:Ge,getRow:(e,t)=>F(L(L(te,l(e)),l(t))),getCellIds:He,getCell:Ke,hasTables:()=>!R(te),hasTable:e=>w(te,l(e)),hasRow:(e,t)=>w(L(te,l(e)),l(t)),hasCell:(e,t,r)=>w(L(L(te,l(e)),l(t)),l(r)),getJson:()=>u(te),getSchemaJson:()=>u(B),setTables:Qe,setTable:(e,t)=>We((e=>ge(t,e)?pe(e,t):0),e),setRow:(e,t,r)=>We(((e,t)=>ve(l(e),l(t),r)?Se(l(e),Je(l(e)),l(t),r):0),e,t),addRow:(e,t)=>Ve((()=>{let r;return ve(e,r,t)&&(e=l(e),Se(e,Je(e),r=Ee(e),t)),r})),setPartialRow:(e,t,r)=>We(((e,t)=>{if(ve(e,t,r,1)){const s=Je(e);P(r,((r,n)=>Le(e,s,t,n,r)))}}),e,t),setCell:(t,r,s,l)=>We(((t,r,s)=>g(we(t,r,s,e(l)==n?l(Ke(t,r,s)):l),(e=>Le(t,Je(t),r,s,e)))),t,r,s),setJson:e=>{try{"{}"===e?Ue():Qe(f(e))}catch{}return Ze},setSchema:e=>We((()=>{if((t=(e=>X(e,(e=>X(e,(e=>{if(!X(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!v(t)&&t!=s||(U(e.default)!=t&&D(e,"default"),0))})))))(e))&&(ye(e),!R(te))){const e=$e();Ue(),Qe(e)}})),delTables:Ue,delTable:e=>We((e=>w(te,e)?me(e):0),e),delRow:(e,t)=>We(((e,t)=>g(L(te,e),(r=>w(r,t)?Fe(e,r,t):0))),e,t),delCell:(e,t,r,s)=>We(((e,t,r)=>g(L(te,e),(n=>g(L(n,t),(l=>w(l,r)?ze(e,n,t,l,r,s):0))))),e,t,r),delSchema:()=>We((()=>{ye({}),t=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>C(te,((t,r)=>e(r,(e=>C(t,((t,r)=>e(r,(e=>E(t,e))))))))),forEachRow:(e,t)=>C(L(te,l(e)),((e,r)=>t(r,(t=>E(e,t))))),forEachCell:(e,t,r)=>E(L(L(te,l(e)),l(t)),r),addSortedRowIdsListener:(e,t,r,s,n,l,o)=>{let a=Ge(e,t,r,s,n);return fe((()=>{const o=Ge(e,t,r,s,n);var c,d,u;d=a,i(c=o)===i(d)&&(u=(e,t)=>d[t]===e,c.every(u))||(a=o,l(Ze,e,t,r,s,n,a))}),oe[o?1:0],[e,t])},addWillFinishTransactionListener:e=>fe(e,ue[0]),addDidFinishTransactionListener:e=>fe(e,ue[1]),callListener:e=>(be(e,[qe,Be,He],(e=>b(e[2])?[]:K(Ke(...e)))),Ze),delListener:e=>(Te(e),Ze),getListenerStats:()=>({}),createStore:Z};return P({Tables:[0,re],TableIds:[0,se],Table:[1,ne],RowIds:[1,le],Row:[2,ae],CellIds:[2,ie],Cell:[3,ce],InvalidCell:[3,de]},(([e,t],r)=>{Ze["add"+r+"Listener"]=(...r)=>fe(r[e],t[r[e+1]?1:0],e>0?c(r,0,e):void 0)})),j(Ze)};export{Z as createStore};
1
+ const e=e=>typeof e,t=e(""),r=e(!0),s=e(0),n=e(e),l=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,c=(e,t,r)=>e.slice(t,r),d=(e,...t)=>e.push(...t),u=e=>JSON.stringify(e,((e,t)=>{return T(t,Map)?(r=(e,[t,r])=>(e[t]=r,e),s={},[...t].reduce(r,s)):t;var r,s})),f=JSON.parse,h=isFinite,T=(e,t)=>e instanceof t,b=e=>null==e,g=(e,t,r)=>b(e)?r?.():t(e),v=e=>e==t||e==r,w=(e,t)=>e?.has(t)??!1,R=e=>b(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),S=e=>new Map(e),I=e=>[...e?.keys()??[]],L=(e,t)=>e?.get(t),E=(e,t)=>C(e,((e,r)=>t(r,e))),J=(e,t,r)=>b(r)?(p(e,t),e):e?.set(t,r),m=(e,t,r)=>(w(e,t)||J(e,t,r()),L(e,t)),F=(e,t,r)=>{const s={},n=t??(e=>e);return C(e,((e,t)=>g(n(e),(e=>r?.(e)?0:s[t]=e)))),s},z=(e,t)=>{const r=S(),s=t??(e=>e);return C(e,((e,t)=>r.set(t,s(e)))),r},O=e=>z(e,z),k=(e,t,r,s,n=0)=>g((r?m:L)(e,t[n],n>i(t)-2?r:S),(l=>{if(n>i(t)-2)return s?.(l)&&J(e,t[n]),l;const o=k(l,t,r,s,n+1);return R(l)&&J(e,t[n]),o})),A=Object,M=A.keys,N=A.isFrozen,j=A.freeze,x=(e,t)=>!b(((e,t)=>g(e,(e=>e[t])))(e,t)),D=(e,t)=>delete e[t],P=(e,t)=>a(A.entries(e),(([e,r])=>t(r,e))),W=e=>{return t=M(e),0==i(t);var t},$=e=>new Set(Array.isArray(e)||b(e)?e:[e]),q=(e,t)=>e?.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>[e,e],K=()=>[S(),S()],Q=t=>{const r=e(t);return v(r)||r==s&&h(t)?r:void 0},U=(e,t,r,s=J)=>{const n=(l=e=>!x(t,e),I(e).filter(l));var l;return o(M(t),(s=>r(e,s,t[s]))),o(n,(t=>s(e,t))),e},V=(e,t,r)=>b(e)||!(e=>T(e,A)&&e.constructor==A)(e)||W(e)||N(e)?(r?.(),!1):(P(e,((r,s)=>{t(r,s)||D(e,s)})),!W(e)),X=(e,t,r)=>J(e,t,L(e,t)==-r?void 0:r),Y=()=>{let t,r,h=0;const T=S(),A=S(),M=S(),N=S(),B=S(),Z=S(),_=S(),ee=S(),te=S(),re=K(),se=K(),ne=K(),le=K(),oe=K(),ae=K(),ie=K(),ce=K(),de=K(),ue=K(),[fe,he,Te,be]=(e=>{let t;const[r,s]=G(),n=S();return[(e,s,l)=>{t??=Ze;const o=r();return J(n,o,[e,s,l]),q(k(s,l??[""],$),o),o},(e,r,...s)=>o(((e,t=[""])=>{const r=[],s=(e,n)=>n==i(t)?d(r,e):null===t[n]?C(e,(e=>s(e,n+1))):o([t[n],null],(t=>s(L(e,t),n+1)));return s(e,0),r})(e,r),(e=>C(e,(e=>L(n,e)[0](t,...r??[],...s))))),e=>g(L(n,e),(([,t,r])=>(k(t,r??[""],void 0,(t=>(p(t,e),R(t)?1:0))),J(n,e),s(e),r))),(e,r,s)=>g(L(n,e),(([e,,n=[]])=>{const l=(...a)=>{const c=i(a);c==i(n)?e(t,...a,...s(a)):b(n[c])?o(r[c](...a),(e=>l(...a,e))):l(...a,n[c])};l()}))]})(),ge=(e,r)=>(!t||w(Z,r)||Ne(r))&&V(e,((e,t)=>ve(r,t,e)),(()=>Ne(r))),ve=(e,t,r,s)=>V(s?r:Re(r,e,t),((s,n)=>g(we(e,t,n,s),(e=>(r[n]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(e,r,s,n)=>t?g(L(L(Z,e),s),(t=>Q(n)!=t.type?Ne(e,r,s,n,t.default):n),(()=>Ne(e,r,s,n))):b(Q(n))?Ne(e,r,s,n):n,Re=(e,t,r)=>(g(L(_,t),(([s,n])=>{C(s,((t,r)=>{x(e,r)||(e[r]=t)})),C(n,(s=>{x(e,s)||Ne(t,r,s)}))})),e),ye=e=>U(Z,e,((e,t,r)=>{const s=S(),n=$();U(m(Z,t,S),r,((e,t,r)=>{J(e,t,r),g(r.default,(e=>J(s,t,e)),(()=>q(n,t)))})),J(_,t,[s,n])}),((e,t)=>{J(Z,t),J(_,t)})),Ce=e=>U(te,e,((e,t,r)=>pe(t,r)),((e,t)=>me(t))),pe=(e,t)=>U(m(te,e,(()=>(Oe(e,1),S()))),t,((t,r,s)=>Se(e,t,r,s)),((t,r)=>Fe(e,t,r))),Se=(e,t,r,s,n)=>U(m(t,r,(()=>(ke(e,r,1),S()))),s,((t,s,n)=>Ie(e,r,t,s,n)),((s,l)=>ze(e,t,r,s,l,n))),Ie=(e,t,r,s,n)=>{w(r,s)||Ae(e,t,s,1);const l=L(r,s);n!==l&&(Me(e,t,s,l,n),J(r,s,n))},Le=(e,t,r,s,n)=>g(L(t,r),(t=>Ie(e,r,t,s,n)),(()=>Se(e,t,r,Re({[s]:n},e,r)))),Ee=e=>{const[t]=m(ee,e,G),r=t();return w(L(te,e),r)?Ee(e):r},Je=e=>L(te,e)??pe(e,{}),me=e=>pe(e,{}),Fe=(e,t,r)=>{const[,s]=m(ee,e,G);s(r),Se(e,t,r,{},!0)},ze=(e,t,r,s,n,l)=>{const o=L(L(_,e)?.[0],n);if(!b(o)&&!l)return Ie(e,r,s,n,o);const a=t=>{Me(e,r,t,L(s,t)),Ae(e,r,t,-1),J(s,t)};b(o)?a(n):E(s,a),R(s)&&(ke(e,r,-1),R(J(t,r))&&(Oe(e,-1),J(te,e),J(ee,e)))},Oe=(e,t)=>X(T,e,t),ke=(e,t,r)=>X(m(A,e,S),t,r),Ae=(e,t,r,s)=>X(m(m(M,e,S),t,S),r,s),Me=(e,t,r,s,n)=>m(m(m(N,e,S),t,S),r,(()=>[s,0]))[1]=n,Ne=(e,t,r,s,n)=>(d(m(m(m(B,e,S),t,S),r,(()=>[])),s),n),je=(e,t,r)=>g(L(L(L(N,e),t),r),(([e,t])=>[!0,e,t]),(()=>[!1,...H(Ke(e,t,r))])),xe=e=>R(B)||R(de[e])?0:C(e?z(B,O):B,((t,r)=>C(t,((t,s)=>C(t,((t,n)=>he(de[e],[r,s,n],t))))))),De=(e,t,r)=>{if(!R(t))return he(e,r),1},Pe=e=>{const t=R(oe[e]),r=R(ie[e])&&R(le[e])&&t&&R(se[e]),s=R(ce[e])&&R(ae[e])&&R(ne[e])&&R(re[e]);if(!r||!s){const n=e?[z(T),O(A),z(M,O),z(N,O)]:[T,A,M,N];if(!r){C(n[2],((t,r)=>C(t,((t,s)=>De(ie[e],t,[r,s])))));const r=$();C(n[1],((s,n)=>{De(le[e],s,[n])&&!t&&(he(oe[e],[n,null]),q(r,n))})),t||C(n[3],((t,s)=>{if(!w(r,s)){const r=$();C(t,(e=>C(e,(([t,s],n)=>s!==t?q(r,n):p(e,n))))),C(r,(t=>he(oe[e],[s,t])))}})),De(se[e],n[0])}if(!s){let t;C(n[3],((r,s)=>{let n;C(r,((r,l)=>{let o;C(r,(([r,a],i)=>{a!==r&&(he(ce[e],[s,l,i],a,r,je),t=n=o=1)})),o&&he(ae[e],[s,l],je)})),n&&he(ne[e],[s],je)})),t&&he(re[e],void 0,je)}}},We=(e,...t)=>(Ve((()=>e(...a(t,l)))),Ze),$e=()=>F(te,(e=>F(e,F))),qe=()=>I(te),Be=e=>I(L(te,l(e))),Ge=(e,t,r,s=0,n)=>{return a(c((i=L(te,l(e)),d=(e,r)=>[b(t)?r:L(e,l(t)),r],o=([e],[t])=>(e<t?-1:1)*(r?-1:1),a([...i?.entries()??[]],(([e,t])=>d(t,e))).sort(o)),s,b(n)?n:s+n),(([,e])=>e));var o,i,d},He=(e,t)=>I(L(L(te,l(e)),l(t))),Ke=(e,t,r)=>L(L(L(te,l(e)),l(t)),l(r)),Qe=e=>We((()=>(e=>V(e,ge,Ne))(e)?Ce(e):0)),Ue=()=>We((()=>Ce({}))),Ve=(e,t)=>{if(-1==h)return;Xe();const r=e();return Ye(t),r},Xe=()=>(h++,Ze),Ye=e=>(h>0&&(h--,0==h&&(r=!R(N),h=1,xe(1),r&&Pe(1),h=-1,e?.(F(N,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),W)),W),F(B,(e=>F(e,F))))&&(h=1,C(N,((e,t)=>C(e,((e,r)=>C(e,(([e],s)=>((e,t,r,s,n)=>b(n)?e.delCell(t,r,s,!0):e.setCell(t,r,s,n))(Ze,t,r,s,e))))))),h=-1,r=!1),he(ue[0],void 0,r),xe(0),r&&Pe(0),he(ue[1],void 0,r),h=0,o([N,B,T,A,M],y))),Ze),Ze={getTables:$e,getTableIds:qe,getTable:e=>F(L(te,l(e)),F),getRowIds:Be,getSortedRowIds:Ge,getRow:(e,t)=>F(L(L(te,l(e)),l(t))),getCellIds:He,getCell:Ke,hasTables:()=>!R(te),hasTable:e=>w(te,l(e)),hasRow:(e,t)=>w(L(te,l(e)),l(t)),hasCell:(e,t,r)=>w(L(L(te,l(e)),l(t)),l(r)),getJson:()=>u(te),getSchemaJson:()=>u(Z),setTables:Qe,setTable:(e,t)=>We((e=>ge(t,e)?pe(e,t):0),e),setRow:(e,t,r)=>We(((e,t)=>ve(l(e),l(t),r)?Se(l(e),Je(l(e)),l(t),r):0),e,t),addRow:(e,t)=>Ve((()=>{let r;return ve(e,r,t)&&(e=l(e),Se(e,Je(e),r=Ee(e),t)),r})),setPartialRow:(e,t,r)=>We(((e,t)=>{if(ve(e,t,r,1)){const s=Je(e);P(r,((r,n)=>Le(e,s,t,n,r)))}}),e,t),setCell:(t,r,s,l)=>We(((t,r,s)=>g(we(t,r,s,e(l)==n?l(Ke(t,r,s)):l),(e=>Le(t,Je(t),r,s,e)))),t,r,s),setJson:e=>{try{"{}"===e?Ue():Qe(f(e))}catch{}return Ze},setSchema:e=>We((()=>{if((t=(e=>V(e,(e=>V(e,(e=>{if(!V(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!v(t)&&t!=s||(Q(e.default)!=t&&D(e,"default"),0))})))))(e))&&(ye(e),!R(te))){const e=$e();Ue(),Qe(e)}})),delTables:Ue,delTable:e=>We((e=>w(te,e)?me(e):0),e),delRow:(e,t)=>We(((e,t)=>g(L(te,e),(r=>w(r,t)?Fe(e,r,t):0))),e,t),delCell:(e,t,r,s)=>We(((e,t,r)=>g(L(te,e),(n=>g(L(n,t),(l=>w(l,r)?ze(e,n,t,l,r,s):0))))),e,t,r),delSchema:()=>We((()=>{ye({}),t=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>C(te,((t,r)=>e(r,(e=>C(t,((t,r)=>e(r,(e=>E(t,e))))))))),forEachRow:(e,t)=>C(L(te,l(e)),((e,r)=>t(r,(t=>E(e,t))))),forEachCell:(e,t,r)=>E(L(L(te,l(e)),l(t)),r),addSortedRowIdsListener:(e,t,r,s,n,l,o)=>{let a=Ge(e,t,r,s,n);return fe((()=>{const o=Ge(e,t,r,s,n);var c,d,u;d=a,i(c=o)===i(d)&&(u=(e,t)=>d[t]===e,c.every(u))||(a=o,l(Ze,e,t,r,s,n,a))}),oe[o?1:0],[e,t])},addWillFinishTransactionListener:e=>fe(e,ue[0]),addDidFinishTransactionListener:e=>fe(e,ue[1]),callListener:e=>(be(e,[qe,Be,He],(e=>b(e[2])?[]:H(Ke(...e)))),Ze),delListener:e=>(Te(e),Ze),getListenerStats:()=>({}),createStore:Y};return P({Tables:[0,re],TableIds:[0,se],Table:[1,ne],RowIds:[1,le],Row:[2,ae],CellIds:[2,ie],Cell:[3,ce],InvalidCell:[3,de]},(([e,t],r)=>{Ze["add"+r+"Listener"]=(...r)=>fe(r[e],t[r[e+1]?1:0],e>0?c(r,0,e):void 0)})),j(Ze)};export{Y as createStore};
package/lib/store.js.gz CHANGED
Binary file
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=>""+e,l=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>L(e)===L(t)&&d(e,((e,s)=>t[s]===e)),u=(e,t)=>d(e,((s,n)=>0==n||t(e[n-1],s)<=0)),h=(e,t)=>e.sort(t),g=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),w=e=>v(e,((e,t)=>e+t),0),L=e=>e.length,R=e=>0==L(e),v=(e,t,s)=>e.reduce(t,s),I=(e,t,s)=>e.slice(t,s),S=(e,...t)=>e.push(...t),p=e=>e.pop(),y=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>k(t,Map)?v([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),b=JSON.parse,C=Math.max,m=Math.min,E=isFinite,k=(e,t)=>e instanceof t,A=e=>null==e,M=(e,t,s)=>A(e)?s?.():t(e),D=e=>e==n||e==o,x=e=>s(e)==a,F=e=>Array.isArray(e),J=()=>{},Q=e=>e.size,z=(e,t)=>e?.has(t)??!1,N=e=>A(e)||0==Q(e),O=e=>[...e?.values()??[]],j=e=>e.clear(),W=(e,t)=>e?.forEach(t),P=(e,t)=>e?.delete(t),B=e=>new Map(e),H=e=>[...e?.keys()??[]],$=(e,t)=>e?.get(t),q=(e,t)=>W(e,((e,s)=>t(s,e))),G=(e,t,s)=>A(s)?(P(e,t),e):e?.set(t,s),K=(e,t,s)=>(z(e,t)||G(e,t,s()),$(e,t)),U=(e,t,s)=>{const n={},o=t??(e=>e);return W(e,((e,t)=>M(o(e),(e=>s?.(e)?0:n[t]=e)))),n},V=(e,t)=>{const s=B(),n=t??(e=>e);return W(e,((e,t)=>s.set(t,n(e)))),s},X=e=>V(e,V),Y=(e,t,s,n,o=0)=>M((s?K:$)(e,t[o],o>L(t)-2?s:B),(r=>{if(o>L(t)-2)return n?.(r)&&G(e,t[o]),r;const a=Y(r,t,s,n,o+1);return N(r)&&G(e,t[o]),a})),Z=e=>new Set(F(e)||A(e)?e:[e]),_=(e,t)=>e?.add(t),ee=(e,t,s)=>{const n=e.hasRow,o=B(),r=B(),a=B(),i=B(),l=B(),d=(t,s,...n)=>{const o=K(l,t,Z);return g(n,(t=>_(o,t)&&s&&e.callListener(t))),n},u=(t,...s)=>M($(l,t),(n=>{g(R(s)?O(n):s,(t=>{e.delListener(t),P(n,t)})),N(n)&&G(l,t)})),h=(e,s)=>{G(o,e,s),z(r,e)||(G(r,e,t()),G(a,e,B()),G(i,e,B()))},f=e=>{G(o,e),G(r,e),G(a,e),G(i,e),u(e)};return[()=>e,()=>H(o),e=>q(r,e),e=>z(r,e),e=>$(o,e),e=>$(r,e),(e,t)=>G(r,e,t),h,(t,o,r,l,f)=>{h(t,o);const w=B(),L=B(),R=$(a,t),v=$(i,t),I=t=>{const r=s=>e.getCell(o,t,s),a=$(R,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||F(a)&&F(i)&&c(a,i)||G(w,t,[a,i]),!A(f)){const e=$(v,t),s=n(o,t)?f(r,t):void 0;e!=s&&G(L,t,s)}},S=e=>{r((()=>{W(w,(([,e],t)=>G(R,t,e))),W(L,((e,t)=>G(v,t,e)))}),w,L,R,v,e),j(w),j(L)};q(R,I),e.hasTable(o)&&g(e.getRowIds(o),(e=>{z(R,e)||I(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>I(s))),e.addTableListener(o,(()=>S())))},f,()=>q(l,f),d,u]},te=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),se=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},ne=/^\d+$/,oe=()=>{const e=[];let t=0;return[()=>y(e)??""+t++,t=>{ne.test(t)&&L(e)<1e3&&S(e,t)}]},re=e=>{let t;const[s,n]=oe(),o=B();return[(n,r,a)=>{t??=e();const i=s();return G(o,i,[n,r,a]),_(Y(r,a??[""],Z),i),i},(e,s,...n)=>g(((e,t=[""])=>{const s=[],n=(e,o)=>o==L(t)?S(s,e):null===t[o]?W(e,(e=>n(e,o+1))):g([t[o],null],(t=>n($(e,t),o+1)));return n(e,0),s})(e,s),(e=>W(e,(e=>$(o,e)[0](t,...s??[],...n))))),e=>M($(o,e),(([,t,s])=>(Y(t,s??[""],void 0,(t=>(P(t,e),N(t)?1:0))),G(o,e),n(e),s))),(e,s,n)=>M($(o,e),(([e,,o=[]])=>{const r=(...a)=>{const i=L(a);i==L(o)?e(t,...a,...n(a)):A(o[i])?g(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ae=Object,ie=ae.keys,le=ae.isFrozen,de=ae.freeze,ce=(e,t)=>!A(((e,t)=>M(e,(e=>e[t])))(e,t)),ue=(e,t)=>delete e[t],he=(e,t)=>g(ae.entries(e),(([e,s])=>t(s,e))),ge=e=>R(ie(e)),fe=e=>{const t=s(e);return D(t)||t==r&&E(e)?t:void 0},we=(e,t,s,n,o)=>A(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Le=se((e=>{let t,s,n,o=100,r=B(),a=1;const i=B(),d=B(),[c,u,h]=re((()=>j)),f=B(),w=B(),v=[],I=[],T=(t,s)=>{a=0,e.transaction((()=>W($(f,s),((s,n)=>W(s,((s,o)=>W(s,((s,r)=>we(e,n,o,r,s[t]))))))))),a=1},b=e=>{G(f,e),G(w,e),u(d,[e])},C=(e,t)=>g(((e,t)=>e.splice(0,t))(e,t??L(e)),b),m=()=>C(v,L(v)-o),E=e.addCellListener(null,null,null,((e,s,o,i,l,d)=>{if(a){M(t,(()=>{S(v,t),m(),C(I),t=void 0,n=1}));const e=K(r,s,B),a=K(e,o,B),c=K(a,i,(()=>[d,void 0]));c[1]=l,c[0]===l&&N(G(a,i))&&N(G(e,o))&&N(G(r,s))&&(t=p(v),n=1),F()}})),k=(e="")=>(A(t)&&(t=""+s++,G(f,t,r),Q(t,e),r=B(),n=1),t),D=()=>{R(v)||(((e,...t)=>{e.unshift(...t)})(I,k()),T(0,t),t=p(v),n=1)},x=()=>{R(I)||(S(v,t),t=y(I),T(1,t),n=1)},F=()=>{n&&(u(i),n=0)},J=e=>{const t=k(e);return F(),t},Q=(e,t)=>(O(e)&&$(w,e)!==t&&(G(w,e,t),u(d,[e])),j),O=e=>z(f,e),j={setSize:e=>(o=e,m(),j),addCheckpoint:J,setCheckpoint:Q,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],forEachCheckpoint:e=>q(w,e),hasCheckpoint:O,getCheckpoint:e=>$(w,e),goBackward:()=>(D(),F(),j),goForward:()=>(x(),F(),j),goTo:e=>{const s=l(v,e)?D:l(I,e)?x:null;for(;!A(s)&&e!=t;)s();return F(),j},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(h(e),j),clear:()=>(C(v),C(I),A(t)||b(t),t=void 0,s=0,J(),j),destroy:()=>{e.delListener(E)},getListenerStats:()=>({})};return de(j.clear())})),Re=(e,t)=>e<t?-1:1,ve=se((e=>{const t=B(),s=B(),[n,o,r,a,l,d,c,,g,w,L]=ee(e,B,(e=>A(e)?"":F(e)?f(e,i):i(e))),[R,v,I]=re((()=>p)),S=(t,s,n)=>{const o=l(t);W(n,((t,n)=>s(n,(s=>W(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},p={setIndexDefinition:(e,n,o,r,a,i=Re)=>{const l=A(a)?void 0:([e],[t])=>a(e,t);return g(e,n,((n,o,a,g,f,w)=>{let L=0;const R=Z(),I=Z(),S=d(e);if(W(o,(([e,t],s)=>{const n=Z(e),o=Z(t);W(n,(e=>P(o,e)?P(n,e):0)),W(n,(e=>{_(R,e),M($(S,e),(t=>{P(t,s),N(t)&&(G(S,e),L=1)}))})),W(o,(e=>{_(R,e),z(S,e)||(G(S,e,Z()),L=1),_($(S,e),s),A(r)||_(I,e)}))})),n(),N(f)||(w?q(S,(e=>_(I,e))):q(a,(e=>M($(g,e),(e=>_(I,e))))),W(I,(e=>{const t=(t,s)=>i($(f,t),$(f,s),e),s=[...$(S,e)];u(s,t)||(G(S,e,Z(h(s,t))),_(R,e))}))),(L||w)&&!A(l)){const t=[...S];u(t,l)||(c(e,B(h(t,l))),L=1)}L&&v(t,[e]),W(R,(t=>v(s,[e,t])))}),te(o),M(r,te)),p},delIndexDefinition:e=>(w(e),p),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>z(d(e),t),getTableId:l,getSliceIds:e=>H(d(e)),getSliceRowIds:(e,t)=>O($(d(e),t)),addSliceIdsListener:(e,s)=>R(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>R(n,s,[e,t]),delListener:e=>(I(e),p),destroy:L,getListenerStats:()=>({})};return de(p)})),Ie=B([["avg",[(e,t)=>w(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=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>w(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Se=(e,t,s,n,o,r=!1)=>{if(N(s))return;const[a,i,l,d]=o;return r||=A(e),W(n,(([s,n])=>{r||(e=A(s)?i?.(e,n,t++):A(n)?l?.(e,s,t--):d?.(e,n,s,t),r||=A(e))})),r?a(O(s),Q(s)):e},pe=se((e=>{const t=B(),[s,n,o,r,a,i,l,,d,c,u]=ee(e,J,(e=>isNaN(e)||A(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=re((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,c)=>{const u=x(n)?[n,r,a,c]:$(Ie,n)??$(Ie,"sum");return d(e,s,((s,n,o,r,a,d)=>{const c=i(e),h=Q(r);d||=A(c),s();let f=Se(c,h,r,n,u,d);E(f)||(f=void 0),f!=c&&(l(e,f),g(t,[e],f,c))}),te(o,1)),w},delMetricDefinition:e=>(c(e),w),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),w),destroy:u,getListenerStats:()=>({})};return de(w)})),ye=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();A(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:()=>(M(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return de(i)},Te=globalThis.window,be=(e,t,s)=>{let n;return ye(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Te.addEventListener("storage",n)}),(()=>{Te.removeEventListener("storage",n),n=void 0}))},Ce=(e,t)=>be(e,t,localStorage),me=(e,t)=>be(e,t,sessionStorage),Ee=(s,n)=>{let o;return ye(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}))},ke=e=>e.headers.get("ETag"),Ae=(e,t,s,n)=>{let o,r;return ye(e,(async()=>{const e=await fetch(t);return r=ke(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=ke(s);A(r)||A(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{M(o,clearInterval),o=void 0}))},Me=se((e=>{const t=e.createStore,[s,n,o,r,a,,,i,,l,c,u,h]=ee(e,(()=>!0),J),f=t(),w=t(),v=B(),p=(e,t,...s)=>g(s,(s=>_(K(K(v,t,B),e,Z),s))),y=e=>{M($(v,e),(e=>{q(e,((e,t)=>W(t,(t=>e.delListener(t))))),j(e)})),g([w,f],(t=>t.delTable(e)))},T=(e,t,s)=>p(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{i(t,s),y(t);const o=[],r=[[null,[s,null,null,[],B()]]],a=[],l=[],c=[];n({select:(e,t)=>{const s=x(e)?[L(o)+"",e]:[A(t)?e:t,s=>s(e,t)];return S(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=A(s)||x(t)?null:t,o=A(n)?t:s,a=[e,[e,n,x(o)?o:e=>e(o),[],B()]];return S(r,a),{as:e=>a[0]=e}},where:(e,t,s)=>S(a,x(e)?e:A(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,x(t)?[t,s,n,o]:$(Ie,t)??[(e,t)=>t]]];return S(l,r),{as:e=>r[0]=e}},having:(e,t)=>S(c,x(e)?e:s=>s(e)===t)});const v=B(o);if(N(v))return b;const I=B(r);q(I,((e,[,t])=>M($(I,t),(({3:t})=>A(e)?0:S(t,e)))));const C=B(l);let m=f;if(N(C)&&R(c))m=w;else{T(t,m,w);const e=B();q(C,((t,[s,n])=>_(K(e,s,Z),[t,n])));const s=Z();q(v,(t=>z(e,t)?0:_(s,t)));const n=B(),o=(s,n,o,r)=>M(s,(([a,i,l,u])=>{q(n,((t,[s])=>{const n=K(a,t,B),i=$(n,o),l=r?void 0:s;if(i!==l){const s=Z([[i,l]]),r=Q(n);G(n,o,l),W($(e,t),(([e,t])=>{const o=Se(u[e],r,n,s,t);u[e]=A(fe(o))?null:o}))}})),N(i)||!d(c,(e=>e((e=>u[e]))))?w.delRow(t,l):A(l)?s[2]=w.addRow(t,u):w.setRow(t,l,u)}));p(m,t,m.addRowListener(t,null,((r,a,i,l)=>{const d=[],c=[],u=B(),h=m.hasRow(t,i);let g=!h;W(s,(e=>{const[s,n,o]=l(t,i,e);S(d,n),S(c,o),g||=s})),q(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&G(u,e,[n])})),g&&o(Y(n,d,void 0,(([,e])=>(P(e,i),N(e)))),u,i,1),h&&o(Y(n,c,(()=>{const e={};return W(s,(s=>e[s]=m.getCell(t,i,s))),[B(),Z(),void 0,e]}),(([,e])=>{_(e,i)})),u,i)})))}T(t,e,m);const E=(n,o,r,i)=>{const l=t=>e.getCell(o,r,t);g(i,(s=>{const[o,,r,a,i]=$(I,s),d=r?.(l,n),[c,g]=$(i,n)??[];d!=c&&(A(g)||h(t,g),G(i,n,A(d)?null:[d,...u(t,1,e.addRowListener(o,d,(()=>E(n,o,d,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...A(o)?[s,n,t]:t===s?[s,n,o]:[$(I,t)?.[0],$($(I,t)?.[4],n)?.[0],o]);m.transaction((()=>d(a,(e=>e(o)))?q(v,((e,s)=>we(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:k}=$(I,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?E(r,s,r,k):(m.delRow(t,r),W(I,(({4:e})=>M($(e,r),(([,s])=>{h(t,s),G(e,r)})))))}))))),b},delQueryDefinition:e=>(y(e),l(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(w.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=w.getListenerStats();return n}};return he({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{g(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>w[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>w["add"+s+"Listener"](...I(e,0,t),((s,...n)=>e[t](b,...n)))})),de(b)})),De=se((e=>{const t=B(),s=B(),n=B(),o=B(),[r,a,i,l,d,c,,,u,h,g]=ee(e,(()=>[B(),B(),B(),B()]),(e=>A(e)?void 0:e+"")),[f,w,L]=re((()=>S)),R=(e,t,s)=>M(c(e),(([n,,o])=>{if(!z(o,t)){const r=Z();if(d(e)!=I(e))_(r,t);else{let e=t;for(;!A(e)&&!z(r,e);)_(r,e),e=$(n,e)}if(s)return r;G(o,t,r)}return $(o,t)})),v=(e,t)=>M(c(e),(([,,e])=>G(e,t))),I=e=>$(t,e),S={setRelationshipDefinition:(e,r,a,i)=>(G(t,e,a),u(e,r,((t,r)=>{const a=Z(),i=Z(),l=Z(),[d,u]=c(e);W(r,(([t,s],n)=>{A(t)||(_(i,t),M($(u,t),(e=>{P(e,n),N(e)&&G(u,t)}))),A(s)||(_(i,s),z(u,s)||G(u,s,Z()),_($(u,s),n)),_(a,n),G(d,n,s),q($(o,e),(t=>{z(R(e,t),n)&&_(l,t)}))})),t(),W(a,(t=>w(s,[e,t]))),W(i,(t=>w(n,[e,t]))),W(l,(t=>{v(e,t),w(o,[e,t])}))}),te(i)),S),delRelationshipDefinition:e=>(G(t,e),h(e),S),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:l,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>$(c(e)?.[0],t),getLocalRowIds:(e,t)=>O($(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>A(c(e))?[t]:O(R(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)=>(R(e,t),f(s,o,[e,t])),delListener:e=>(v(...L(e)),S),destroy:g,getListenerStats:()=>({})};return de(S)})),xe=e=>[e,e],Fe=()=>[B(),B()],Je=(e,t,s,n=G)=>{const o=(r=H(e),a=e=>!ce(t,e),r.filter(a));var r,a;return g(ie(t),(n=>s(e,n,t[n]))),g(o,(t=>n(e,t))),e},Qe=(e,t,s)=>A(e)||!(e=>k(e,ae)&&e.constructor==ae)(e)||ge(e)||le(e)?(s?.(),!1):(he(e,((s,n)=>{t(s,n)||ue(e,n)})),!ge(e)),ze=(e,t,s)=>G(e,t,$(e,t)==-s?void 0:s),Ne=()=>{let e,t,s=0;const n=B(),o=B(),a=B(),d=B(),u=B(),w=B(),L=B(),R=B(),v=B(),p=Fe(),y=Fe(),C=Fe(),m=Fe(),E=Fe(),k=Fe(),F=Fe(),J=Fe(),Q=Fe(),O=Fe(),[Y,ee,te,se]=re((()=>tt)),ne=(t,s)=>(!e||z(w,s)||Oe(s))&&Qe(t,((e,t)=>ae(s,t,e)),(()=>Oe(s))),ae=(e,t,s,n)=>Qe(n?s:le(s,e,t),((n,o)=>M(ie(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Oe(e,t))),ie=(t,s,n,o)=>e?M($($(w,t),n),(e=>fe(o)!=e.type?Oe(t,s,n,o,e.default):o),(()=>Oe(t,s,n,o))):A(fe(o))?Oe(t,s,n,o):o,le=(e,t,s)=>(M($(L,t),(([n,o])=>{W(n,((t,s)=>{ce(e,s)||(e[s]=t)})),W(o,(n=>{ce(e,n)||Oe(t,s,n)}))})),e),Le=e=>Je(w,e,((e,t,s)=>{const n=B(),o=Z();Je(K(w,t,B),s,((e,t,s)=>{G(e,t,s),M(s.default,(e=>G(n,t,e)),(()=>_(o,t)))})),G(L,t,[n,o])}),((e,t)=>{G(w,t),G(L,t)})),ve=e=>Je(v,e,((e,t,s)=>Ie(t,s)),((e,t)=>Ce(t))),Ie=(e,t)=>Je(K(v,e,(()=>(ke(e,1),B()))),t,((t,s,n)=>Se(e,t,s,n)),((t,s)=>me(e,t,s))),Se=(e,t,s,n,o)=>Je(K(t,s,(()=>(Ae(e,s,1),B()))),n,((t,n,o)=>pe(e,s,t,n,o)),((n,r)=>Ee(e,t,s,n,r,o))),pe=(e,t,s,n,o)=>{z(s,n)||Me(e,t,n,1);const r=$(s,n);o!==r&&(De(e,t,n,r,o),G(s,n,o))},ye=(e,t,s,n,o)=>M($(t,s),(t=>pe(e,s,t,n,o)),(()=>Se(e,t,s,le({[n]:o},e,s)))),Te=e=>{const[t]=K(R,e,oe),s=t();return z($(v,e),s)?Te(e):s},be=e=>$(v,e)??Ie(e,{}),Ce=e=>Ie(e,{}),me=(e,t,s)=>{const[,n]=K(R,e,oe);n(s),Se(e,t,s,{},!0)},Ee=(e,t,s,n,o,r)=>{const a=$($(L,e)?.[0],o);if(!A(a)&&!r)return pe(e,s,n,o,a);const i=t=>{De(e,s,t,$(n,t)),Me(e,s,t,-1),G(n,t)};A(a)?i(o):q(n,i),N(n)&&(Ae(e,s,-1),N(G(t,s))&&(ke(e,-1),G(v,e),G(R,e)))},ke=(e,t)=>ze(n,e,t),Ae=(e,t,s)=>ze(K(o,e,B),t,s),Me=(e,t,s,n)=>ze(K(K(a,e,B),t,B),s,n),De=(e,t,s,n,o)=>K(K(K(d,e,B),t,B),s,(()=>[n,0]))[1]=o,Oe=(e,t,s,n,o)=>(S(K(K(K(u,e,B),t,B),s,(()=>[])),n),o),je=(e,t,s)=>M($($($(d,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Ve(e,t,s))])),We=e=>N(u)||N(Q[e])?0:W(e?V(u,X):u,((t,s)=>W(t,((t,n)=>W(t,((t,o)=>ee(Q[e],[s,n,o],t))))))),Pe=(e,t,s)=>{if(!N(t))return ee(e,s),1},Be=e=>{const t=N(E[e]),s=N(F[e])&&N(m[e])&&t&&N(y[e]),r=N(J[e])&&N(k[e])&&N(C[e])&&N(p[e]);if(!s||!r){const i=e?[V(n),X(o),V(a,X),V(d,X)]:[n,o,a,d];if(!s){W(i[2],((t,s)=>W(t,((t,n)=>Pe(F[e],t,[s,n])))));const s=Z();W(i[1],((n,o)=>{Pe(m[e],n,[o])&&!t&&(ee(E[e],[o,null]),_(s,o))})),t||W(i[3],((t,n)=>{if(!z(s,n)){const s=Z();W(t,(e=>W(e,(([t,n],o)=>n!==t?_(s,o):P(e,o))))),W(s,(t=>ee(E[e],[n,t])))}})),Pe(y[e],i[0])}if(!r){let t;W(i[3],((s,n)=>{let o;W(s,((s,r)=>{let a;W(s,(([s,i],l)=>{i!==s&&(ee(J[e],[n,r,l],i,s,je),t=o=a=1)})),a&&ee(k[e],[n,r],je)})),o&&ee(C[e],[n],je)})),t&&ee(p[e],void 0,je)}}},He=(e,...t)=>(Ze((()=>e(...f(t,i)))),tt),$e=()=>U(v,(e=>U(e,U))),qe=()=>H(v),Ge=e=>H($(v,i(e))),Ke=(e,t,s,n=0,o)=>{return f(I(h((r=$(v,i(e)),a=(e,s)=>[A(t)?s:$(e,i(t)),s],f([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,A(o)?o:n+o),(([,e])=>e));var r,a},Ue=(e,t)=>H($($(v,i(e)),i(t))),Ve=(e,t,s)=>$($($(v,i(e)),i(t)),i(s)),Xe=e=>He((()=>(e=>Qe(e,ne,Oe))(e)?ve(e):0)),Ye=()=>He((()=>ve({}))),Ze=(e,t)=>{if(-1==s)return;_e();const n=e();return et(t),n},_e=()=>(s++,tt),et=e=>(s>0&&(s--,0==s&&(t=!N(d),s=1,We(1),t&&Be(1),s=-1,e?.(U(d,(e=>U(e,(e=>U(e,(e=>[...e]),(([e,t])=>e===t))),ge)),ge),U(u,(e=>U(e,U))))&&(s=1,W(d,((e,t)=>W(e,((e,s)=>W(e,(([e],n)=>we(tt,t,s,n,e))))))),s=-1,t=!1),ee(O[0],void 0,t),We(0),t&&Be(0),ee(O[1],void 0,t),s=0,g([d,u,n,o,a],j))),tt),tt={getTables:$e,getTableIds:qe,getTable:e=>U($(v,i(e)),U),getRowIds:Ge,getSortedRowIds:Ke,getRow:(e,t)=>U($($(v,i(e)),i(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!N(v),hasTable:e=>z(v,i(e)),hasRow:(e,t)=>z($(v,i(e)),i(t)),hasCell:(e,t,s)=>z($($(v,i(e)),i(t)),i(s)),getJson:()=>T(v),getSchemaJson:()=>T(w),setTables:Xe,setTable:(e,t)=>He((e=>ne(t,e)?Ie(e,t):0),e),setRow:(e,t,s)=>He(((e,t)=>ae(i(e),i(t),s)?Se(i(e),be(i(e)),i(t),s):0),e,t),addRow:(e,t)=>Ze((()=>{let s;return ae(e,s,t)&&(e=i(e),Se(e,be(e),s=Te(e),t)),s})),setPartialRow:(e,t,s)=>He(((e,t)=>{if(ae(e,t,s,1)){const n=be(e);he(s,((s,o)=>ye(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>He(((e,t,s)=>M(ie(e,t,s,x(n)?n(Ve(e,t,s)):n),(n=>ye(e,be(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch{}return tt},setSchema:t=>He((()=>{if((e=(e=>Qe(e,(e=>Qe(e,(e=>{if(!Qe(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!D(t)&&t!=r||(fe(e.default)!=t&&ue(e,"default"),0))})))))(t))&&(Le(t),!N(v))){const e=$e();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>He((e=>z(v,e)?Ce(e):0),e),delRow:(e,t)=>He(((e,t)=>M($(v,e),(s=>z(s,t)?me(e,s,t):0))),e,t),delCell:(e,t,s,n)=>He(((e,t,s)=>M($(v,e),(o=>M($(o,t),(r=>z(r,s)?Ee(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>He((()=>{Le({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>W(v,((t,s)=>e(s,(e=>W(t,((t,s)=>e(s,(e=>q(t,e))))))))),forEachRow:(e,t)=>W($(v,i(e)),((e,s)=>t(s,(t=>q(e,t))))),forEachCell:(e,t,s)=>q($($(v,i(e)),i(t)),s),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Ke(e,t,s,n,o);return Y((()=>{const a=Ke(e,t,s,n,o);c(a,i)||(i=a,r(tt,e,t,s,n,o,i))}),E[a?1:0],[e,t])},addWillFinishTransactionListener:e=>Y(e,O[0]),addDidFinishTransactionListener:e=>Y(e,O[1]),callListener:e=>(se(e,[qe,Ge,Ue],(e=>A(e[2])?[]:xe(Ve(...e)))),tt),delListener:e=>(te(e),tt),getListenerStats:()=>({}),createStore:Ne};return he({Tables:[0,p],TableIds:[0,y],Table:[1,C],RowIds:[1,m],Row:[2,k],CellIds:[2,F],Cell:[3,J],InvalidCell:[3,Q]},(([e,t],s)=>{tt["add"+s+"Listener"]=(...s)=>Y(s[e],t[s[e+1]?1:0],e>0?I(s,0,e):void 0)})),de(tt)};export{Le as createCheckpoints,ye as createCustomPersister,Ee as createFilePersister,ve as createIndexes,Ce as createLocalPersister,pe as createMetrics,Me as createQueries,De as createRelationships,Ae as createRemotePersister,me as createSessionPersister,Ne as createStore,Re 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=>""+e,l=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>L(e)===L(t)&&d(e,((e,s)=>t[s]===e)),u=(e,t)=>d(e,((s,n)=>0==n||t(e[n-1],s)<=0)),h=(e,t)=>e.sort(t),g=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),w=e=>v(e,((e,t)=>e+t),0),L=e=>e.length,R=e=>0==L(e),v=(e,t,s)=>e.reduce(t,s),I=(e,t,s)=>e.slice(t,s),S=(e,...t)=>e.push(...t),p=e=>e.pop(),y=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>k(t,Map)?v([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),b=JSON.parse,C=Math.max,m=Math.min,E=isFinite,k=(e,t)=>e instanceof t,A=e=>null==e,M=(e,t,s)=>A(e)?s?.():t(e),D=e=>e==n||e==o,x=e=>s(e)==a,F=e=>Array.isArray(e),J=()=>{},Q=e=>e.size,z=(e,t)=>e?.has(t)??!1,N=e=>A(e)||0==Q(e),O=e=>[...e?.values()??[]],j=e=>e.clear(),W=(e,t)=>e?.forEach(t),P=(e,t)=>e?.delete(t),B=e=>new Map(e),H=e=>[...e?.keys()??[]],$=(e,t)=>e?.get(t),q=(e,t)=>W(e,((e,s)=>t(s,e))),G=(e,t,s)=>A(s)?(P(e,t),e):e?.set(t,s),K=(e,t,s)=>(z(e,t)||G(e,t,s()),$(e,t)),U=(e,t,s)=>{const n={},o=t??(e=>e);return W(e,((e,t)=>M(o(e),(e=>s?.(e)?0:n[t]=e)))),n},V=(e,t)=>{const s=B(),n=t??(e=>e);return W(e,((e,t)=>s.set(t,n(e)))),s},X=e=>V(e,V),Y=(e,t,s,n,o=0)=>M((s?K:$)(e,t[o],o>L(t)-2?s:B),(r=>{if(o>L(t)-2)return n?.(r)&&G(e,t[o]),r;const a=Y(r,t,s,n,o+1);return N(r)&&G(e,t[o]),a})),Z=e=>new Set(F(e)||A(e)?e:[e]),_=(e,t)=>e?.add(t),ee=(e,t,s)=>{const n=e.hasRow,o=B(),r=B(),a=B(),i=B(),l=B(),d=(t,s,...n)=>{const o=K(l,t,Z);return g(n,(t=>_(o,t)&&s&&e.callListener(t))),n},u=(t,...s)=>M($(l,t),(n=>{g(R(s)?O(n):s,(t=>{e.delListener(t),P(n,t)})),N(n)&&G(l,t)})),h=(e,s)=>{G(o,e,s),z(r,e)||(G(r,e,t()),G(a,e,B()),G(i,e,B()))},f=e=>{G(o,e),G(r,e),G(a,e),G(i,e),u(e)};return[()=>e,()=>H(o),e=>q(r,e),e=>z(r,e),e=>$(o,e),e=>$(r,e),(e,t)=>G(r,e,t),h,(t,o,r,l,f)=>{h(t,o);const w=B(),L=B(),R=$(a,t),v=$(i,t),I=t=>{const r=s=>e.getCell(o,t,s),a=$(R,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||F(a)&&F(i)&&c(a,i)||G(w,t,[a,i]),!A(f)){const e=$(v,t),s=n(o,t)?f(r,t):void 0;e!=s&&G(L,t,s)}},S=e=>{r((()=>{W(w,(([,e],t)=>G(R,t,e))),W(L,((e,t)=>G(v,t,e)))}),w,L,R,v,e),j(w),j(L)};q(R,I),e.hasTable(o)&&g(e.getRowIds(o),(e=>{z(R,e)||I(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>I(s))),e.addTableListener(o,(()=>S())))},f,()=>q(l,f),d,u]},te=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),se=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},ne=/^\d+$/,oe=()=>{const e=[];let t=0;return[()=>y(e)??""+t++,t=>{ne.test(t)&&L(e)<1e3&&S(e,t)}]},re=e=>{let t;const[s,n]=oe(),o=B();return[(n,r,a)=>{t??=e();const i=s();return G(o,i,[n,r,a]),_(Y(r,a??[""],Z),i),i},(e,s,...n)=>g(((e,t=[""])=>{const s=[],n=(e,o)=>o==L(t)?S(s,e):null===t[o]?W(e,(e=>n(e,o+1))):g([t[o],null],(t=>n($(e,t),o+1)));return n(e,0),s})(e,s),(e=>W(e,(e=>$(o,e)[0](t,...s??[],...n))))),e=>M($(o,e),(([,t,s])=>(Y(t,s??[""],void 0,(t=>(P(t,e),N(t)?1:0))),G(o,e),n(e),s))),(e,s,n)=>M($(o,e),(([e,,o=[]])=>{const r=(...a)=>{const i=L(a);i==L(o)?e(t,...a,...n(a)):A(o[i])?g(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ae=Object,ie=ae.keys,le=ae.isFrozen,de=ae.freeze,ce=(e,t)=>!A(((e,t)=>M(e,(e=>e[t])))(e,t)),ue=(e,t)=>delete e[t],he=(e,t)=>f(ae.entries(e),(([e,s])=>t(s,e))),ge=e=>R(ie(e)),fe=e=>{const t=s(e);return D(t)||t==r&&E(e)?t:void 0},we=(e,t,s,n,o)=>A(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Le=se((e=>{let t,s,n,o=100,r=B(),a=1;const i=B(),d=B(),[c,u,h]=re((()=>j)),f=B(),w=B(),v=[],I=[],T=(t,s)=>{a=0,e.transaction((()=>W($(f,s),((s,n)=>W(s,((s,o)=>W(s,((s,r)=>we(e,n,o,r,s[t]))))))))),a=1},b=e=>{G(f,e),G(w,e),u(d,[e])},C=(e,t)=>g(((e,t)=>e.splice(0,t))(e,t??L(e)),b),m=()=>C(v,L(v)-o),E=e.addCellListener(null,null,null,((e,s,o,i,l,d)=>{if(a){M(t,(()=>{S(v,t),m(),C(I),t=void 0,n=1}));const e=K(r,s,B),a=K(e,o,B),c=K(a,i,(()=>[d,void 0]));c[1]=l,c[0]===l&&N(G(a,i))&&N(G(e,o))&&N(G(r,s))&&(t=p(v),n=1),F()}})),k=(e="")=>(A(t)&&(t=""+s++,G(f,t,r),Q(t,e),r=B(),n=1),t),D=()=>{R(v)||(((e,...t)=>{e.unshift(...t)})(I,k()),T(0,t),t=p(v),n=1)},x=()=>{R(I)||(S(v,t),t=y(I),T(1,t),n=1)},F=()=>{n&&(u(i),n=0)},J=e=>{const t=k(e);return F(),t},Q=(e,t)=>(O(e)&&$(w,e)!==t&&(G(w,e,t),u(d,[e])),j),O=e=>z(f,e),j={setSize:e=>(o=e,m(),j),addCheckpoint:J,setCheckpoint:Q,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],forEachCheckpoint:e=>q(w,e),hasCheckpoint:O,getCheckpoint:e=>$(w,e),goBackward:()=>(D(),F(),j),goForward:()=>(x(),F(),j),goTo:e=>{const s=l(v,e)?D:l(I,e)?x:null;for(;!A(s)&&e!=t;)s();return F(),j},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(h(e),j),clear:()=>(C(v),C(I),A(t)||b(t),t=void 0,s=0,J(),j),destroy:()=>{e.delListener(E)},getListenerStats:()=>({})};return de(j.clear())})),Re=(e,t)=>e<t?-1:1,ve=se((e=>{const t=B(),s=B(),[n,o,r,a,l,d,c,,g,w,L]=ee(e,B,(e=>A(e)?"":F(e)?f(e,i):i(e))),[R,v,I]=re((()=>p)),S=(t,s,n)=>{const o=l(t);W(n,((t,n)=>s(n,(s=>W(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},p={setIndexDefinition:(e,n,o,r,a,i=Re)=>{const l=A(a)?void 0:([e],[t])=>a(e,t);return g(e,n,((n,o,a,g,f,w)=>{let L=0;const R=Z(),I=Z(),S=d(e);if(W(o,(([e,t],s)=>{const n=Z(e),o=Z(t);W(n,(e=>P(o,e)?P(n,e):0)),W(n,(e=>{_(R,e),M($(S,e),(t=>{P(t,s),N(t)&&(G(S,e),L=1)}))})),W(o,(e=>{_(R,e),z(S,e)||(G(S,e,Z()),L=1),_($(S,e),s),A(r)||_(I,e)}))})),n(),N(f)||(w?q(S,(e=>_(I,e))):q(a,(e=>M($(g,e),(e=>_(I,e))))),W(I,(e=>{const t=(t,s)=>i($(f,t),$(f,s),e),s=[...$(S,e)];u(s,t)||(G(S,e,Z(h(s,t))),_(R,e))}))),(L||w)&&!A(l)){const t=[...S];u(t,l)||(c(e,B(h(t,l))),L=1)}L&&v(t,[e]),W(R,(t=>v(s,[e,t])))}),te(o),M(r,te)),p},delIndexDefinition:e=>(w(e),p),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>z(d(e),t),getTableId:l,getSliceIds:e=>H(d(e)),getSliceRowIds:(e,t)=>O($(d(e),t)),addSliceIdsListener:(e,s)=>R(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>R(n,s,[e,t]),delListener:e=>(I(e),p),destroy:L,getListenerStats:()=>({})};return de(p)})),Ie=B([["avg",[(e,t)=>w(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=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>w(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Se=(e,t,s,n,o,r=!1)=>{if(N(s))return;const[a,i,l,d]=o;return r||=A(e),W(n,(([s,n])=>{r||(e=A(s)?i?.(e,n,t++):A(n)?l?.(e,s,t--):d?.(e,n,s,t),r||=A(e))})),r?a(O(s),Q(s)):e},pe=se((e=>{const t=B(),[s,n,o,r,a,i,l,,d,c,u]=ee(e,J,(e=>isNaN(e)||A(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=re((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,c)=>{const u=x(n)?[n,r,a,c]:$(Ie,n)??$(Ie,"sum");return d(e,s,((s,n,o,r,a,d)=>{const c=i(e),h=Q(r);d||=A(c),s();let f=Se(c,h,r,n,u,d);E(f)||(f=void 0),f!=c&&(l(e,f),g(t,[e],f,c))}),te(o,1)),w},delMetricDefinition:e=>(c(e),w),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),w),destroy:u,getListenerStats:()=>({})};return de(w)})),ye=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();A(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:()=>(M(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return de(i)},Te=globalThis.window,be=(e,t,s)=>{let n;return ye(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Te.addEventListener("storage",n)}),(()=>{Te.removeEventListener("storage",n),n=void 0}))},Ce=(e,t)=>be(e,t,localStorage),me=(e,t)=>be(e,t,sessionStorage),Ee=(s,n)=>{let o;return ye(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}))},ke=e=>e.headers.get("ETag"),Ae=(e,t,s,n)=>{let o,r;return ye(e,(async()=>{const e=await fetch(t);return r=ke(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=ke(s);A(r)||A(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{M(o,clearInterval),o=void 0}))},Me=se((e=>{const t=e.createStore,[s,n,o,r,a,,,i,,l,c,u,h]=ee(e,(()=>!0),J),f=t(),w=t(),v=B(),p=(e,t,...s)=>g(s,(s=>_(K(K(v,t,B),e,Z),s))),y=e=>{M($(v,e),(e=>{q(e,((e,t)=>W(t,(t=>e.delListener(t))))),j(e)})),g([w,f],(t=>t.delTable(e)))},T=(e,t,s)=>p(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{i(t,s),y(t);const o=[],r=[[null,[s,null,null,[],B()]]],a=[],l=[],c=[];n({select:(e,t)=>{const s=x(e)?[L(o)+"",e]:[A(t)?e:t,s=>s(e,t)];return S(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=A(s)||x(t)?null:t,o=A(n)?t:s,a=[e,[e,n,x(o)?o:e=>e(o),[],B()]];return S(r,a),{as:e=>a[0]=e}},where:(e,t,s)=>S(a,x(e)?e:A(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,x(t)?[t,s,n,o]:$(Ie,t)??[(e,t)=>t]]];return S(l,r),{as:e=>r[0]=e}},having:(e,t)=>S(c,x(e)?e:s=>s(e)===t)});const v=B(o);if(N(v))return b;const I=B(r);q(I,((e,[,t])=>M($(I,t),(({3:t})=>A(e)?0:S(t,e)))));const C=B(l);let m=f;if(N(C)&&R(c))m=w;else{T(t,m,w);const e=B();q(C,((t,[s,n])=>_(K(e,s,Z),[t,n])));const s=Z();q(v,(t=>z(e,t)?0:_(s,t)));const n=B(),o=(s,n,o,r)=>M(s,(([a,i,l,u])=>{q(n,((t,[s])=>{const n=K(a,t,B),i=$(n,o),l=r?void 0:s;if(i!==l){const s=Z([[i,l]]),r=Q(n);G(n,o,l),W($(e,t),(([e,t])=>{const o=Se(u[e],r,n,s,t);u[e]=A(fe(o))?null:o}))}})),N(i)||!d(c,(e=>e((e=>u[e]))))?w.delRow(t,l):A(l)?s[2]=w.addRow(t,u):w.setRow(t,l,u)}));p(m,t,m.addRowListener(t,null,((r,a,i,l)=>{const d=[],c=[],u=B(),h=m.hasRow(t,i);let g=!h;W(s,(e=>{const[s,n,o]=l(t,i,e);S(d,n),S(c,o),g||=s})),q(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&G(u,e,[n])})),g&&o(Y(n,d,void 0,(([,e])=>(P(e,i),N(e)))),u,i,1),h&&o(Y(n,c,(()=>{const e={};return W(s,(s=>e[s]=m.getCell(t,i,s))),[B(),Z(),void 0,e]}),(([,e])=>{_(e,i)})),u,i)})))}T(t,e,m);const E=(n,o,r,i)=>{const l=t=>e.getCell(o,r,t);g(i,(s=>{const[o,,r,a,i]=$(I,s),d=r?.(l,n),[c,g]=$(i,n)??[];d!=c&&(A(g)||h(t,g),G(i,n,A(d)?null:[d,...u(t,1,e.addRowListener(o,d,(()=>E(n,o,d,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...A(o)?[s,n,t]:t===s?[s,n,o]:[$(I,t)?.[0],$($(I,t)?.[4],n)?.[0],o]);m.transaction((()=>d(a,(e=>e(o)))?q(v,((e,s)=>we(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:k}=$(I,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?E(r,s,r,k):(m.delRow(t,r),W(I,(({4:e})=>M($(e,r),(([,s])=>{h(t,s),G(e,r)})))))}))))),b},delQueryDefinition:e=>(y(e),l(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(w.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=w.getListenerStats();return n}};return he({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{g(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>w[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>w["add"+s+"Listener"](...I(e,0,t),((s,...n)=>e[t](b,...n)))})),de(b)})),De=se((e=>{const t=B(),s=B(),n=B(),o=B(),[r,a,i,l,d,c,,,u,h,g]=ee(e,(()=>[B(),B(),B(),B()]),(e=>A(e)?void 0:e+"")),[f,w,L]=re((()=>S)),R=(e,t,s)=>M(c(e),(([n,,o])=>{if(!z(o,t)){const r=Z();if(d(e)!=I(e))_(r,t);else{let e=t;for(;!A(e)&&!z(r,e);)_(r,e),e=$(n,e)}if(s)return r;G(o,t,r)}return $(o,t)})),v=(e,t)=>M(c(e),(([,,e])=>G(e,t))),I=e=>$(t,e),S={setRelationshipDefinition:(e,r,a,i)=>(G(t,e,a),u(e,r,((t,r)=>{const a=Z(),i=Z(),l=Z(),[d,u]=c(e);W(r,(([t,s],n)=>{A(t)||(_(i,t),M($(u,t),(e=>{P(e,n),N(e)&&G(u,t)}))),A(s)||(_(i,s),z(u,s)||G(u,s,Z()),_($(u,s),n)),_(a,n),G(d,n,s),q($(o,e),(t=>{z(R(e,t),n)&&_(l,t)}))})),t(),W(a,(t=>w(s,[e,t]))),W(i,(t=>w(n,[e,t]))),W(l,(t=>{v(e,t),w(o,[e,t])}))}),te(i)),S),delRelationshipDefinition:e=>(G(t,e),h(e),S),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:l,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>$(c(e)?.[0],t),getLocalRowIds:(e,t)=>O($(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>A(c(e))?[t]:O(R(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)=>(R(e,t),f(s,o,[e,t])),delListener:e=>(v(...L(e)),S),destroy:g,getListenerStats:()=>({})};return de(S)})),xe=e=>[e,e],Fe=()=>[B(),B()],Je=(e,t,s,n=G)=>{const o=(r=e=>!ce(t,e),H(e).filter(r));var r;return g(ie(t),(n=>s(e,n,t[n]))),g(o,(t=>n(e,t))),e},Qe=(e,t,s)=>A(e)||!(e=>k(e,ae)&&e.constructor==ae)(e)||ge(e)||le(e)?(s?.(),!1):(he(e,((s,n)=>{t(s,n)||ue(e,n)})),!ge(e)),ze=(e,t,s)=>G(e,t,$(e,t)==-s?void 0:s),Ne=()=>{let e,t,s=0;const n=B(),o=B(),a=B(),d=B(),u=B(),w=B(),L=B(),R=B(),v=B(),p=Fe(),y=Fe(),C=Fe(),m=Fe(),E=Fe(),k=Fe(),F=Fe(),J=Fe(),Q=Fe(),O=Fe(),[Y,ee,te,se]=re((()=>tt)),ne=(t,s)=>(!e||z(w,s)||Oe(s))&&Qe(t,((e,t)=>ae(s,t,e)),(()=>Oe(s))),ae=(e,t,s,n)=>Qe(n?s:le(s,e,t),((n,o)=>M(ie(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Oe(e,t))),ie=(t,s,n,o)=>e?M($($(w,t),n),(e=>fe(o)!=e.type?Oe(t,s,n,o,e.default):o),(()=>Oe(t,s,n,o))):A(fe(o))?Oe(t,s,n,o):o,le=(e,t,s)=>(M($(L,t),(([n,o])=>{W(n,((t,s)=>{ce(e,s)||(e[s]=t)})),W(o,(n=>{ce(e,n)||Oe(t,s,n)}))})),e),Le=e=>Je(w,e,((e,t,s)=>{const n=B(),o=Z();Je(K(w,t,B),s,((e,t,s)=>{G(e,t,s),M(s.default,(e=>G(n,t,e)),(()=>_(o,t)))})),G(L,t,[n,o])}),((e,t)=>{G(w,t),G(L,t)})),ve=e=>Je(v,e,((e,t,s)=>Ie(t,s)),((e,t)=>Ce(t))),Ie=(e,t)=>Je(K(v,e,(()=>(ke(e,1),B()))),t,((t,s,n)=>Se(e,t,s,n)),((t,s)=>me(e,t,s))),Se=(e,t,s,n,o)=>Je(K(t,s,(()=>(Ae(e,s,1),B()))),n,((t,n,o)=>pe(e,s,t,n,o)),((n,r)=>Ee(e,t,s,n,r,o))),pe=(e,t,s,n,o)=>{z(s,n)||Me(e,t,n,1);const r=$(s,n);o!==r&&(De(e,t,n,r,o),G(s,n,o))},ye=(e,t,s,n,o)=>M($(t,s),(t=>pe(e,s,t,n,o)),(()=>Se(e,t,s,le({[n]:o},e,s)))),Te=e=>{const[t]=K(R,e,oe),s=t();return z($(v,e),s)?Te(e):s},be=e=>$(v,e)??Ie(e,{}),Ce=e=>Ie(e,{}),me=(e,t,s)=>{const[,n]=K(R,e,oe);n(s),Se(e,t,s,{},!0)},Ee=(e,t,s,n,o,r)=>{const a=$($(L,e)?.[0],o);if(!A(a)&&!r)return pe(e,s,n,o,a);const i=t=>{De(e,s,t,$(n,t)),Me(e,s,t,-1),G(n,t)};A(a)?i(o):q(n,i),N(n)&&(Ae(e,s,-1),N(G(t,s))&&(ke(e,-1),G(v,e),G(R,e)))},ke=(e,t)=>ze(n,e,t),Ae=(e,t,s)=>ze(K(o,e,B),t,s),Me=(e,t,s,n)=>ze(K(K(a,e,B),t,B),s,n),De=(e,t,s,n,o)=>K(K(K(d,e,B),t,B),s,(()=>[n,0]))[1]=o,Oe=(e,t,s,n,o)=>(S(K(K(K(u,e,B),t,B),s,(()=>[])),n),o),je=(e,t,s)=>M($($($(d,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Ve(e,t,s))])),We=e=>N(u)||N(Q[e])?0:W(e?V(u,X):u,((t,s)=>W(t,((t,n)=>W(t,((t,o)=>ee(Q[e],[s,n,o],t))))))),Pe=(e,t,s)=>{if(!N(t))return ee(e,s),1},Be=e=>{const t=N(E[e]),s=N(F[e])&&N(m[e])&&t&&N(y[e]),r=N(J[e])&&N(k[e])&&N(C[e])&&N(p[e]);if(!s||!r){const i=e?[V(n),X(o),V(a,X),V(d,X)]:[n,o,a,d];if(!s){W(i[2],((t,s)=>W(t,((t,n)=>Pe(F[e],t,[s,n])))));const s=Z();W(i[1],((n,o)=>{Pe(m[e],n,[o])&&!t&&(ee(E[e],[o,null]),_(s,o))})),t||W(i[3],((t,n)=>{if(!z(s,n)){const s=Z();W(t,(e=>W(e,(([t,n],o)=>n!==t?_(s,o):P(e,o))))),W(s,(t=>ee(E[e],[n,t])))}})),Pe(y[e],i[0])}if(!r){let t;W(i[3],((s,n)=>{let o;W(s,((s,r)=>{let a;W(s,(([s,i],l)=>{i!==s&&(ee(J[e],[n,r,l],i,s,je),t=o=a=1)})),a&&ee(k[e],[n,r],je)})),o&&ee(C[e],[n],je)})),t&&ee(p[e],void 0,je)}}},He=(e,...t)=>(Ze((()=>e(...f(t,i)))),tt),$e=()=>U(v,(e=>U(e,U))),qe=()=>H(v),Ge=e=>H($(v,i(e))),Ke=(e,t,s,n=0,o)=>{return f(I(h((r=$(v,i(e)),a=(e,s)=>[A(t)?s:$(e,i(t)),s],f([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,A(o)?o:n+o),(([,e])=>e));var r,a},Ue=(e,t)=>H($($(v,i(e)),i(t))),Ve=(e,t,s)=>$($($(v,i(e)),i(t)),i(s)),Xe=e=>He((()=>(e=>Qe(e,ne,Oe))(e)?ve(e):0)),Ye=()=>He((()=>ve({}))),Ze=(e,t)=>{if(-1==s)return;_e();const n=e();return et(t),n},_e=()=>(s++,tt),et=e=>(s>0&&(s--,0==s&&(t=!N(d),s=1,We(1),t&&Be(1),s=-1,e?.(U(d,(e=>U(e,(e=>U(e,(e=>[...e]),(([e,t])=>e===t))),ge)),ge),U(u,(e=>U(e,U))))&&(s=1,W(d,((e,t)=>W(e,((e,s)=>W(e,(([e],n)=>we(tt,t,s,n,e))))))),s=-1,t=!1),ee(O[0],void 0,t),We(0),t&&Be(0),ee(O[1],void 0,t),s=0,g([d,u,n,o,a],j))),tt),tt={getTables:$e,getTableIds:qe,getTable:e=>U($(v,i(e)),U),getRowIds:Ge,getSortedRowIds:Ke,getRow:(e,t)=>U($($(v,i(e)),i(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!N(v),hasTable:e=>z(v,i(e)),hasRow:(e,t)=>z($(v,i(e)),i(t)),hasCell:(e,t,s)=>z($($(v,i(e)),i(t)),i(s)),getJson:()=>T(v),getSchemaJson:()=>T(w),setTables:Xe,setTable:(e,t)=>He((e=>ne(t,e)?Ie(e,t):0),e),setRow:(e,t,s)=>He(((e,t)=>ae(i(e),i(t),s)?Se(i(e),be(i(e)),i(t),s):0),e,t),addRow:(e,t)=>Ze((()=>{let s;return ae(e,s,t)&&(e=i(e),Se(e,be(e),s=Te(e),t)),s})),setPartialRow:(e,t,s)=>He(((e,t)=>{if(ae(e,t,s,1)){const n=be(e);he(s,((s,o)=>ye(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>He(((e,t,s)=>M(ie(e,t,s,x(n)?n(Ve(e,t,s)):n),(n=>ye(e,be(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch{}return tt},setSchema:t=>He((()=>{if((e=(e=>Qe(e,(e=>Qe(e,(e=>{if(!Qe(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!D(t)&&t!=r||(fe(e.default)!=t&&ue(e,"default"),0))})))))(t))&&(Le(t),!N(v))){const e=$e();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>He((e=>z(v,e)?Ce(e):0),e),delRow:(e,t)=>He(((e,t)=>M($(v,e),(s=>z(s,t)?me(e,s,t):0))),e,t),delCell:(e,t,s,n)=>He(((e,t,s)=>M($(v,e),(o=>M($(o,t),(r=>z(r,s)?Ee(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>He((()=>{Le({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>W(v,((t,s)=>e(s,(e=>W(t,((t,s)=>e(s,(e=>q(t,e))))))))),forEachRow:(e,t)=>W($(v,i(e)),((e,s)=>t(s,(t=>q(e,t))))),forEachCell:(e,t,s)=>q($($(v,i(e)),i(t)),s),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Ke(e,t,s,n,o);return Y((()=>{const a=Ke(e,t,s,n,o);c(a,i)||(i=a,r(tt,e,t,s,n,o,i))}),E[a?1:0],[e,t])},addWillFinishTransactionListener:e=>Y(e,O[0]),addDidFinishTransactionListener:e=>Y(e,O[1]),callListener:e=>(se(e,[qe,Ge,Ue],(e=>A(e[2])?[]:xe(Ve(...e)))),tt),delListener:e=>(te(e),tt),getListenerStats:()=>({}),createStore:Ne};return he({Tables:[0,p],TableIds:[0,y],Table:[1,C],RowIds:[1,m],Row:[2,k],CellIds:[2,F],Cell:[3,J],InvalidCell:[3,Q]},(([e,t],s)=>{tt["add"+s+"Listener"]=(...s)=>Y(s[e],t[s[e+1]?1:0],e>0?I(s,0,e):void 0)})),de(tt)};export{Le as createCheckpoints,ye as createCustomPersister,Ee as createFilePersister,ve as createIndexes,Ce as createLocalPersister,pe as createMetrics,Me as createQueries,De as createRelationships,Ae as createRemotePersister,me as createSessionPersister,Ne as createStore,Re as defaultSorter};
Binary file
package/lib/tools.d.ts CHANGED
@@ -224,21 +224,171 @@ export interface Tools {
224
224
 
225
225
  /**
226
226
  * The getStoreApi method returns a code-generated .d.ts file and a .ts file
227
- * that wraps the schema of a Store.
227
+ * that describe the schema of a Store in an ORM style.
228
228
  *
229
- * This is currently in development, and further documentation is to come.
229
+ * If the Store does not already have an explicit Schema associated with it,
230
+ * the data in the Store will be scanned to attempt to infer a new Schema. The
231
+ * method returns two strings (which should be saved as files) though if no
232
+ * schema can be inferred, the strings will be empty.
233
+ *
234
+ * The method takes a single argument which represents the name you want the
235
+ * generated store object to have in code. You are expected to save the files
236
+ * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
237
+ * that the latter can import types from the former.
238
+ *
239
+ * The .d.ts and .ts files that are generated are designed to resemble the
240
+ * main TinyBase `store.d.ts` and `store.ts` files, but provide named types
241
+ * and methods that describe the domain of the schema in the store.
242
+ *
243
+ * For example, from a Store that has a `pets` Table, you will get methods
244
+ * like `getPetsTable`, and types like `PetsRow`, that are more specific
245
+ * versions of the underlying getTable method or the Row type. For example:
246
+ *
247
+ * |Store type|Equivalent generated type|
248
+ * |-|-|
249
+ * |Table|[Table]Table|
250
+ * |Row|[Table]Row|
251
+ * |(Cell) Id|[Table]CellId|
252
+ * |CellCallback|[Table]CellCallback|
253
+ * |...|...|
254
+ *
255
+ * |Store method|Equivalent generated method|
256
+ * |-|-|
257
+ * |setTable|set[Table]Table|
258
+ * |hasRow|has[Table]Row|
259
+ * |getCell|get[Table][Cell]Cell|
260
+ * |...|...|
261
+ *
262
+ * Equivalent to the TinyBase createStore function, a `create[StoreName]`
263
+ * function will also be created. This acts as the main entry point to the
264
+ * generated implementation.
265
+ *
266
+ * Each method is refined correctly to take, or return, the types specified by
267
+ * the schema. For example, if the `pets` Table has a numeric `price` Cell in
268
+ * the schema, the `getPetsPriceCell` method will be typed to return a number.
269
+ *
270
+ * The tables above include just a sample of the generated output. For the
271
+ * full set of methods and types generated by this method, inspect the output
272
+ * directly.
273
+ *
274
+ * @param storeName The name you want to provide to the generated Store, which
275
+ * should also be used to save the `.d.ts` and `.ts` files.
276
+ * @returns A pair of strings representing the contents of the `.d.ts` and
277
+ * `.ts` files.
278
+ * @example
279
+ * This example creates a Tools object and generates code for a Store that
280
+ * already has a Schema.
281
+ * ```js
282
+ * const store = createStore().setSchema({
283
+ * pets: {
284
+ * price: {type: 'number'},
285
+ * },
286
+ * });
287
+ * const [dTs, ts] = createTools(store).getStoreApi('shop');
288
+ *
289
+ * const dTsLines = dTs.split('\n');
290
+ * console.log(dTsLines[3]);
291
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
292
+ * console.log(dTsLines[6]);
293
+ * // -> 'export type PetsRow = {\'price\'?: number;};'
294
+ *
295
+ * const tsLines = ts.split('\n');
296
+ * console.log(tsLines[40]);
297
+ * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
298
+ * ```
299
+ * @example
300
+ * This example creates a Tools object and generates code for a Store that
301
+ * doesn't already have a Schema.
302
+ * ```js
303
+ * const store = createStore().setTable('pets', {
304
+ * fido: {price: 5},
305
+ * felix: {price: 4},
306
+ * });
307
+ * const [dTs, ts] = createTools(store).getStoreApi('shop');
230
308
  *
309
+ * const dTsLines = dTs.split('\n');
310
+ * console.log(dTsLines[3]);
311
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
312
+ * console.log(dTsLines[6]);
313
+ * // -> 'export type PetsRow = {\'price\': number;};'
314
+ *
315
+ * const tsLines = ts.split('\n');
316
+ * console.log(tsLines[42]);
317
+ * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
318
+ * ```
231
319
  * @category Modelling
232
320
  * @since v2.2.0
233
321
  */
234
322
  getStoreApi(storeName: string): [string, string];
235
323
 
236
324
  /**
237
- * The getStoreApi method attempts to return a prettified code-generated .d.ts
238
- * file and a .ts file that wraps the schema of a Store.
325
+ * The getPrettyStoreApi method attempts to returns a prettified
326
+ * code-generated .d.ts file and a .ts file that describe the schema of a
327
+ * Store in an ORM style.
328
+ *
329
+ * This is simply a wrapper around the getStoreApi method that attempts to
330
+ * invoke the `prettier` module (which it hopes you have installed) to format
331
+ * the generated code. If `prettier` is not present, the output will resemble
332
+ * that of the underlying getStoreApi method.
239
333
  *
240
- * This is currently in development, and further documentation is to come.
334
+ * The method is asynchronous, so you should use the `await` keyword or handle
335
+ * the results as a promise.
241
336
  *
337
+ * The method takes a single argument which represents the name you want the
338
+ * generated store object to have in code. You are expected to save the files
339
+ * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
340
+ * that the latter can import types from the former.
341
+ *
342
+ * See the documentation for the getStoreApi method for details of the content
343
+ * of the generated files.
344
+ *
345
+ * @param storeName The name you want to provide to the generated Store, which
346
+ * should also be used to save the `.d.ts` and `.ts` files.
347
+ * @returns A pair of strings representing the contents of the `.d.ts` and
348
+ * `.ts` files.
349
+ * @example
350
+ * This example creates a Tools object and generates code for a Store that
351
+ * already has a Schema.
352
+ * ```js
353
+ * const store = createStore().setSchema({
354
+ * pets: {
355
+ * price: {type: 'number'},
356
+ * },
357
+ * });
358
+ * const tools = createTools(store);
359
+ * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
360
+ *
361
+ * const dTsLines = dTs.split('\n');
362
+ * console.log(dTsLines[14]);
363
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
364
+ * console.log(dTsLines[19]);
365
+ * // -> 'export type PetsRow = {price?: number};'
366
+ *
367
+ * const tsLines = ts.split('\n');
368
+ * console.log(tsLines[73]);
369
+ * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
370
+ * ```
371
+ * @example
372
+ * This example creates a Tools object and generates code for a Store that
373
+ * doesn't already have a Schema.
374
+ * ```js
375
+ * const store = createStore().setTable('pets', {
376
+ * fido: {price: 5},
377
+ * felix: {price: 4},
378
+ * });
379
+ * const tools = createTools(store);
380
+ * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
381
+ *
382
+ * const dTsLines = dTs.split('\n');
383
+ * console.log(dTsLines[14]);
384
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
385
+ * console.log(dTsLines[19]);
386
+ * // -> 'export type PetsRow = {price: number};'
387
+ *
388
+ * const tsLines = ts.split('\n');
389
+ * console.log(tsLines[75]);
390
+ * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
391
+ * ```
242
392
  * @category Modelling
243
393
  * @since v2.2.0
244
394
  */