tinybase 2.0.1 → 2.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/debug/checkpoints.js +7 -1
  4. package/lib/debug/indexes.d.ts +36 -10
  5. package/lib/debug/indexes.js +57 -25
  6. package/lib/debug/metrics.js +19 -2
  7. package/lib/debug/queries.js +18 -2
  8. package/lib/debug/relationships.js +19 -2
  9. package/lib/debug/store.js +7 -1
  10. package/lib/debug/tinybase.js +52 -25
  11. package/lib/debug/ui-react.js +2 -1
  12. package/lib/es6/checkpoints.js +1 -1
  13. package/lib/es6/checkpoints.js.gz +0 -0
  14. package/lib/es6/indexes.d.ts +36 -10
  15. package/lib/es6/indexes.js +1 -1
  16. package/lib/es6/indexes.js.gz +0 -0
  17. package/lib/es6/metrics.js +1 -1
  18. package/lib/es6/metrics.js.gz +0 -0
  19. package/lib/es6/queries.js +1 -1
  20. package/lib/es6/queries.js.gz +0 -0
  21. package/lib/es6/relationships.js +1 -1
  22. package/lib/es6/relationships.js.gz +0 -0
  23. package/lib/es6/store.js +1 -1
  24. package/lib/es6/store.js.gz +0 -0
  25. package/lib/es6/tinybase.js +1 -1
  26. package/lib/es6/tinybase.js.gz +0 -0
  27. package/lib/indexes.d.ts +36 -10
  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/umd/checkpoints.js +1 -1
  41. package/lib/umd/checkpoints.js.gz +0 -0
  42. package/lib/umd/indexes.d.ts +36 -10
  43. package/lib/umd/indexes.js +1 -1
  44. package/lib/umd/indexes.js.gz +0 -0
  45. package/lib/umd/metrics.js +1 -1
  46. package/lib/umd/metrics.js.gz +0 -0
  47. package/lib/umd/queries.js +1 -1
  48. package/lib/umd/queries.js.gz +0 -0
  49. package/lib/umd/relationships.js +1 -1
  50. package/lib/umd/relationships.js.gz +0 -0
  51. package/lib/umd/store.js +1 -1
  52. package/lib/umd/store.js.gz +0 -0
  53. package/lib/umd/tinybase.js +1 -1
  54. package/lib/umd/tinybase.js.gz +0 -0
  55. package/lib/umd-es6/checkpoints.js +1 -1
  56. package/lib/umd-es6/checkpoints.js.gz +0 -0
  57. package/lib/umd-es6/indexes.d.ts +36 -10
  58. package/lib/umd-es6/indexes.js +1 -1
  59. package/lib/umd-es6/indexes.js.gz +0 -0
  60. package/lib/umd-es6/metrics.js +1 -1
  61. package/lib/umd-es6/metrics.js.gz +0 -0
  62. package/lib/umd-es6/queries.js +1 -1
  63. package/lib/umd-es6/queries.js.gz +0 -0
  64. package/lib/umd-es6/relationships.js +1 -1
  65. package/lib/umd-es6/relationships.js.gz +0 -0
  66. package/lib/umd-es6/store.js +1 -1
  67. package/lib/umd-es6/store.js.gz +0 -0
  68. package/lib/umd-es6/tinybase.js +1 -1
  69. package/lib/umd-es6/tinybase.js.gz +0 -0
  70. package/package.json +2 -1
  71. package/readme.md +12 -12
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The indexes module of the TinyBase project provides the ability to create
3
- * and track indexes of the data in Store objects.
2
+ * The indexes module of the TinyBase project provides the ability to create and
3
+ * track indexes of the data in Store objects.
4
4
  *
5
5
  * The main entry point to this module is the createIndexes function, which
6
6
  * returns a new Indexes object. From there, you can create new Index
@@ -209,11 +209,12 @@ export interface Indexes {
209
209
  * derived string value in common, as described by this method. Those values
210
210
  * are used as the key for each Slice in the overall Index object.
211
211
  *
212
- * Without the third `getSliceId` parameter, the Index will simply have a
212
+ * Without the third `getSliceIdOrIds` parameter, the Index will simply have a
213
213
  * single Slice, keyed by an empty string. But more often you will specify a
214
214
  * Cell value containing the Slice Id that the Row should belong to.
215
215
  * Alternatively, a custom function can be provided that produces your own
216
- * Slice Id from the local Row as a whole.
216
+ * Slice Id from the local Row as a whole. Since v2.1, the custom function can
217
+ * return an array of Slice Ids, each of which the Row will then belong to.
217
218
  *
218
219
  * The fourth `getSortKey` parameter specifies a Cell Id to get a value (or a
219
220
  * function that processes a whole Row to get a value) that is used to sort
@@ -241,11 +242,13 @@ export interface Indexes {
241
242
  *
242
243
  * @param indexId The Id of the Index to define.
243
244
  * @param tableId The Id of the Table the Index will be generated from.
244
- * @param getSliceId Either the Id of the Cell containing, or a function that
245
- * produces, the Id that is used to indicate which Slice in the Index the Row
246
- * Id should be in. Defaults to a function that returns `''` (meaning that if
247
- * this `getSliceId` parameter is omitted, the Index will simply contain a
248
- * single Slice containing all the Row Ids in the Table).
245
+ * @param getSliceIdOrIds Either the Id of the Cell containing, or a function
246
+ * that produces, the Id that is used to indicate which Slice in the Index the
247
+ * Row Id should be in. Defaults to a function that returns `''` (meaning that
248
+ * if this `getSliceIdOrIds` parameter is omitted, the Index will simply
249
+ * contain a single Slice containing all the Row Ids in the Table). Since
250
+ * v2.1, this can return an array of Slice Ids, each of which the Row will
251
+ * then belong to.
249
252
  * @param getSortKey Either the Id of the Cell containing, or a function that
250
253
  * produces, the value that is used to sort the Row Ids in each Slice.
251
254
  * @param sliceIdSorter A function that takes two Slice Id values and returns
@@ -294,6 +297,29 @@ export interface Indexes {
294
297
  * ```
295
298
  * @example
296
299
  * This example creates a Store, creates an Indexes object, and defines an
300
+ * Index based on each of the letters present in the pets' names.
301
+ *
302
+ * ```js
303
+ * const store = createStore().setTable('pets', {
304
+ * fido: {species: 'dog'},
305
+ * felix: {species: 'cat'},
306
+ * rex: {species: 'dog'},
307
+ * });
308
+ *
309
+ * const indexes = createIndexes(store);
310
+ * indexes.setIndexDefinition('containsLetter', 'pets', (_, rowId) =>
311
+ * rowId.split(''),
312
+ * );
313
+ *
314
+ * console.log(indexes.getSliceIds('containsLetter'));
315
+ * // -> ['f', 'i', 'd', 'o', 'e', 'l', 'x', 'r']
316
+ * console.log(indexes.getSliceRowIds('containsLetter', 'i'));
317
+ * // -> ['fido', 'felix']
318
+ * console.log(indexes.getSliceRowIds('containsLetter', 'x'));
319
+ * // -> ['felix', 'rex']
320
+ * ```
321
+ * @example
322
+ * This example creates a Store, creates an Indexes object, and defines an
297
323
  * Index based on the first letter of the pets' names. The Slice Ids (and Row
298
324
  * Ids within them) are alphabetically sorted.
299
325
  *
@@ -324,7 +350,7 @@ export interface Indexes {
324
350
  setIndexDefinition(
325
351
  indexId: Id,
326
352
  tableId: Id,
327
- getSliceId?: Id | ((getCell: GetCell, rowId: Id) => Id),
353
+ getSliceIdOrIds?: Id | ((getCell: GetCell, rowId: Id) => Id | Ids),
328
354
  getSortKey?: Id | ((getCell: GetCell, rowId: Id) => SortKey),
329
355
  sliceIdSorter?: (sliceId1: Id, sliceId2: Id) => number,
330
356
  rowIdSorter?: (sortKey1: SortKey, sortKey2: SortKey, sliceId: Id) => number,
@@ -1 +1 @@
1
- const e=e=>typeof e,n=e(""),t=(e,n)=>((e,n)=>e.every(n))(e,((t,l)=>0==l||n(e[l-1],t)<=0)),l=(e,n)=>e.sort(n),r=(e,n)=>e.forEach(n),s=e=>e.length,o=(e,...n)=>e.push(...n),d=e=>null==e,u=(e,n,t)=>d(e)?null==t?void 0:t():n(e),i=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},c=e=>d(e)||0==(e=>e.size)(e),a=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},v=e=>e.clear(),h=(e,n)=>null==e?void 0:e.forEach(n),f=(e,n)=>null==e?void 0:e.delete(n),I=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},S=(e,n)=>null==e?void 0:e.get(n),w=(e,n)=>h(e,((e,t)=>n(t,e))),L=(e,n,t)=>d(t)?(f(e,n),e):null==e?void 0:e.set(n,t),x=(e,n,t)=>(i(e,n)||L(e,n,t()),S(e,n)),p=(e,n,t,l,r=0)=>u((t?x:S)(e,n[r],r>s(n)-2?t:I),(o=>{if(r>s(n)-2)return(null==l?void 0:l(o))&&L(e,n[r]),o;const d=p(o,n,t,l,r+1);return c(o)&&L(e,n[r]),d})),E=e=>new Set(e),R=(e,n)=>null==e?void 0:e.add(n),b=(e,n,t)=>{const l=e.hasRow,o=I(),p=I(),b=I(),y=I(),T=I(),k=(n,t,...l)=>{const s=x(T,n,E);return r(l,(n=>R(s,n)&&t&&e.callListener(n))),l},z=(n,...t)=>u(S(T,n),(l=>{r(0==s(t)?a(l):t,(n=>{e.delListener(n),f(l,n)})),c(l)&&L(T,n)})),C=(e,t)=>{L(o,e,t),i(p,e)||(L(p,e,n()),L(b,e,I()),L(y,e,I()))},D=e=>{L(o,e),L(p,e),L(b,e),L(y,e),z(e)};return[()=>e,()=>g(o),e=>w(p,e),e=>i(p,e),e=>S(o,e),e=>S(p,e),(e,n)=>L(p,e,n),C,(n,s,o,u,c)=>{C(n,s);const a=I(),f=I(),g=S(b,n),x=S(y,n),p=n=>{const r=t=>e.getCell(s,n,t),o=S(g,n),i=l(s,n)?t(u(r,n)):void 0;if(o!=i&&L(a,n,[o,i]),!d(c)){const e=S(x,n),t=l(s,n)?c(r,n):void 0;e!=t&&L(f,n,t)}},E=e=>{o((()=>{h(a,(([,e],n)=>L(g,n,e))),h(f,((e,n)=>L(x,n,e)))}),a,f,g,x,e),v(a),v(f)};w(g,p),e.hasTable(s)&&r(e.getRowIds(s),(e=>{i(g,e)||p(e)})),E(!0),z(n),k(n,0,e.addRowListener(s,null,((e,n,t)=>p(t))),e.addTableListener(s,(()=>E())))},D,()=>w(T,D),k,z]},y=(t,l)=>e(t)==n?e=>e(t):null!=t?t:()=>null!=l?l:"",T=(e,n)=>e<n?-1:1,k=/^\d+$/,z=e=>{let n;const[t,l]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=e.shift())?t:""+n++},n=>{k.test(n)&&s(e)<1e3&&o(e,n)}]})(),i=I();return[(l,r,s)=>{null!=n||(n=e());const o=t();return L(i,o,[l,r,s]),R(p(r,null!=s?s:[""],E),o),o},(e,t,...l)=>r(((e,n=[""])=>{const t=[],l=(e,d)=>d==s(n)?o(t,e):null===n[d]?h(e,(e=>l(e,d+1))):r([n[d],null],(n=>l(S(e,n),d+1)));return l(e,0),t})(e,t),(e=>h(e,(e=>S(i,e)[0](n,...null!=t?t:[],...l))))),e=>u(S(i,e),(([,n,t])=>(p(n,null!=t?t:[""],void 0,(n=>(f(n,e),c(n)?1:0))),L(i,e),l(e),t))),(e,t,l)=>u(S(i,e),(([e,,o=[]])=>{const u=(...i)=>{const c=s(i);c==s(o)?e(n,...i,...l(i)):d(o[c])?r(t[c](...i),(e=>u(...i,e))):u(...i,o[c])};u()}))]},C=Object.freeze,D=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=I(),r=I(),[s,o,v,x,p,k,D,,M,j,O]=b(e,I,(e=>d(e)?"":e+"")),[W,$,m]=z((()=>A)),q=(n,t,l)=>{const r=p(n);h(l,((n,l)=>t(l,(t=>h(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},A={setIndexDefinition:(e,s,o,a,v,g=T)=>{const x=d(v)?void 0:([e],[n])=>v(e,n);return M(e,s,((s,o,v,p,b,y)=>{let T=0;const z=E(),C=E(),M=k(e);if(h(o,(([e,n],t)=>{d(e)||(R(z,e),u(S(M,e),(n=>{f(n,t),c(n)&&(L(M,e),T=1)}))),d(n)||(R(z,n),i(M,n)||(L(M,n,E()),T=1),R(S(M,n),t),d(a)||R(C,n))})),s(),c(b)||(y?w(M,(e=>R(C,e))):w(v,(e=>u(S(p,e),(e=>R(C,e))))),h(C,(e=>{const n=(n,t)=>g(S(b,n),S(b,t),e),r=[...S(M,e)];t(r,n)||(L(M,e,E(l(r,n))),R(z,e))}))),(T||y)&&!d(x)){const n=[...M];t(n,x)||(D(e,I(l(n,x))),T=1)}T&&$(n,[e]),h(z,(n=>$(r,[e,n])))}),y(o),u(a,y)),A},delIndexDefinition:e=>(j(e),A),getStore:s,getIndexIds:o,forEachIndex:e=>v(((n,t)=>e(n,(e=>q(n,e,t))))),forEachSlice:(e,n)=>q(e,n,k(e)),hasIndex:x,hasSlice:(e,n)=>i(k(e),n),getTableId:p,getSliceIds:e=>g(k(e)),getSliceRowIds:(e,n)=>a(S(k(e),n)),addSliceIdsListener:(e,t)=>W(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>W(t,r,[e,n]),delListener:e=>(m(e),A),destroy:O,getListenerStats:()=>({})};return C(A)}));export{D as createIndexes};
1
+ const e=e=>typeof e,n=e(""),t=e=>""+e,l=(e,n)=>e.every(n),r=(e,n)=>l(e,((t,l)=>0==l||n(e[l-1],t)<=0)),s=(e,n)=>e.sort(n),o=(e,n)=>e.forEach(n),d=e=>e.length,u=(e,...n)=>e.push(...n),i=e=>null==e,a=(e,n,t)=>i(e)?null==t?void 0:t():n(e),c=e=>Array.isArray(e),v=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},h=e=>i(e)||0==(e=>e.size)(e),f=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},I=e=>e.clear(),g=(e,n)=>null==e?void 0:e.forEach(n),S=(e,n)=>null==e?void 0:e.delete(n),w=e=>new Map(e),L=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},p=(e,n)=>null==e?void 0:e.get(n),x=(e,n)=>g(e,((e,t)=>n(t,e))),y=(e,n,t)=>i(t)?(S(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(v(e,n)||y(e,n,t()),p(e,n)),R=(e,n,t,l,r=0)=>a((t?E:p)(e,n[r],r>d(n)-2?t:w),(s=>{if(r>d(n)-2)return(null==l?void 0:l(s))&&y(e,n[r]),s;const o=R(s,n,t,l,r+1);return h(s)&&y(e,n[r]),o})),b=e=>new Set(c(e)||i(e)?e:[e]),T=(e,n)=>null==e?void 0:e.add(n),k=(e,n,t)=>{const r=e.hasRow,s=w(),u=w(),R=w(),k=w(),z=w(),A=(n,t,...l)=>{const r=E(z,n,b);return o(l,(n=>T(r,n)&&t&&e.callListener(n))),l},C=(n,...t)=>a(p(z,n),(l=>{o(0==d(t)?f(l):t,(n=>{e.delListener(n),S(l,n)})),h(l)&&y(z,n)})),D=(e,t)=>{y(s,e,t),v(u,e)||(y(u,e,n()),y(R,e,w()),y(k,e,w()))},M=e=>{y(s,e),y(u,e),y(R,e),y(k,e),C(e)};return[()=>e,()=>L(s),e=>x(u,e),e=>v(u,e),e=>p(s,e),e=>p(u,e),(e,n)=>y(u,e,n),D,(n,s,u,a,h)=>{D(n,s);const f=w(),S=w(),L=p(R,n),E=p(k,n),b=n=>{const o=t=>e.getCell(s,n,t),u=p(L,n),v=r(s,n)?t(a(o,n)):void 0;var I,g;if(u===v||c(u)&&c(v)&&(g=v,d(I=u)===d(g)&&l(I,((e,n)=>g[n]===e)))||y(f,n,[u,v]),!i(h)){const e=p(E,n),t=r(s,n)?h(o,n):void 0;e!=t&&y(S,n,t)}},T=e=>{u((()=>{g(f,(([,e],n)=>y(L,n,e))),g(S,((e,n)=>y(E,n,e)))}),f,S,L,E,e),I(f),I(S)};x(L,b),e.hasTable(s)&&o(e.getRowIds(s),(e=>{v(L,e)||b(e)})),T(!0),C(n),A(n,0,e.addRowListener(s,null,((e,n,t)=>b(t))),e.addTableListener(s,(()=>T())))},M,()=>x(z,M),A,C]},z=(t,l)=>e(t)==n?e=>e(t):null!=t?t:()=>null!=l?l:"",A=(e,n)=>e<n?-1:1,C=/^\d+$/,D=e=>{let n;const[t,l]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=e.shift())?t:""+n++},n=>{C.test(n)&&d(e)<1e3&&u(e,n)}]})(),r=w();return[(l,s,o)=>{null!=n||(n=e());const d=t();return y(r,d,[l,s,o]),T(R(s,null!=o?o:[""],b),d),d},(e,t,...l)=>o(((e,n=[""])=>{const t=[],l=(e,r)=>r==d(n)?u(t,e):null===n[r]?g(e,(e=>l(e,r+1))):o([n[r],null],(n=>l(p(e,n),r+1)));return l(e,0),t})(e,t),(e=>g(e,(e=>p(r,e)[0](n,...null!=t?t:[],...l))))),e=>a(p(r,e),(([,n,t])=>(R(n,null!=t?t:[""],void 0,(n=>(S(n,e),h(n)?1:0))),y(r,e),l(e),t))),(e,t,l)=>a(p(r,e),(([e,,r=[]])=>{const s=(...u)=>{const a=d(u);a==d(r)?e(n,...u,...l(u)):i(r[a])?o(t[a](...u),(e=>s(...u,e))):s(...u,r[a])};s()}))]},M=Object.freeze,j=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=w(),l=w(),[o,d,u,I,E,R,C,,j,m,O]=k(e,w,(e=>{return i(e)?"":c(e)?(n=t,e.map(n)):t(e);var n})),[W,$,q]=D((()=>F)),B=(n,t,l)=>{const r=E(n);g(l,((n,l)=>t(l,(t=>g(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},F={setIndexDefinition:(e,t,o,d,u,c=A)=>{const f=i(u)?void 0:([e],[n])=>u(e,n);return j(e,t,((t,o,u,I,L,E)=>{let k=0;const z=b(),A=b(),D=R(e);if(g(o,(([e,n],t)=>{const l=b(e),r=b(n);g(l,(e=>S(r,e)?S(l,e):0)),g(l,(e=>{T(z,e),a(p(D,e),(n=>{S(n,t),h(n)&&(y(D,e),k=1)}))})),g(r,(e=>{T(z,e),v(D,e)||(y(D,e,b()),k=1),T(p(D,e),t),i(d)||T(A,e)}))})),t(),h(L)||(E?x(D,(e=>T(A,e))):x(u,(e=>a(p(I,e),(e=>T(A,e))))),g(A,(e=>{const n=(n,t)=>c(p(L,n),p(L,t),e),t=[...p(D,e)];r(t,n)||(y(D,e,b(s(t,n))),T(z,e))}))),(k||E)&&!i(f)){const n=[...D];r(n,f)||(C(e,w(s(n,f))),k=1)}k&&$(n,[e]),g(z,(n=>$(l,[e,n])))}),z(o),a(d,z)),F},delIndexDefinition:e=>(m(e),F),getStore:o,getIndexIds:d,forEachIndex:e=>u(((n,t)=>e(n,(e=>B(n,e,t))))),forEachSlice:(e,n)=>B(e,n,R(e)),hasIndex:I,hasSlice:(e,n)=>v(R(e),n),getTableId:E,getSliceIds:e=>L(R(e)),getSliceRowIds:(e,n)=>f(p(R(e),n)),addSliceIdsListener:(e,t)=>W(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>W(t,l,[e,n]),delListener:e=>(q(e),F),destroy:O,getListenerStats:()=>({})};return M(F)}));export{j as createIndexes};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(e),l=(e,t)=>e.forEach(t),r=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,n)=>e.reduce(t,n),u=(e,...t)=>e.push(...t),s=Math.max,d=Math.min,a=isFinite,c=e=>null==e,v=(e,t,n)=>c(e)?null==n?void 0:n():t(e),h=()=>{},f=e=>e.size,g=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},M=e=>c(e)||0==f(e),L=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},m=e=>e.clear(),w=(e,t)=>null==e?void 0:e.forEach(t),p=(e,t)=>null==e?void 0:e.delete(t),b=e=>new Map(e),x=(e,t)=>null==e?void 0:e.get(t),y=(e,t)=>w(e,((e,n)=>t(n,e))),E=(e,t,n)=>c(n)?(p(e,t),e):null==e?void 0:e.set(t,n),I=(e,t,n)=>(g(e,t)||E(e,t,n()),x(e,t)),R=(e,t,n,l,r=0)=>v((n?I:x)(e,t[r],r>i(t)-2?n:b),(o=>{if(r>i(t)-2)return(null==l?void 0:l(o))&&E(e,t[r]),o;const u=R(o,t,n,l,r+1);return M(o)&&E(e,t[r]),u})),S=b([["avg",[(e,t)=>r(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>s(...e),(e,t)=>s(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:s(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:d(t,e)]],["sum",[e=>r(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),T=e=>new Set(e),k=(e,t)=>null==e?void 0:e.add(t),z=(e,t,n)=>{const r=e.hasRow,o=b(),u=b(),s=b(),d=b(),a=b(),h=(t,n,...r)=>{const i=I(a,t,T);return l(r,(t=>k(i,t)&&n&&e.callListener(t))),r},f=(t,...n)=>v(x(a,t),(r=>{l(0==i(n)?L(r):n,(t=>{e.delListener(t),p(r,t)})),M(r)&&E(a,t)})),R=(e,n)=>{E(o,e,n),g(u,e)||(E(u,e,t()),E(s,e,b()),E(d,e,b()))},S=e=>{E(o,e),E(u,e),E(s,e),E(d,e),f(e)};return[()=>e,()=>{return[...null!=(t=null==(e=o)?void 0:e.keys())?t:[]];var e,t},e=>y(u,e),e=>g(u,e),e=>x(o,e),e=>x(u,e),(e,t)=>E(u,e,t),R,(t,i,o,u,a)=>{R(t,i);const v=b(),M=b(),L=x(s,t),p=x(d,t),I=t=>{const l=n=>e.getCell(i,t,n),o=x(L,t),s=r(i,t)?n(u(l,t)):void 0;if(o!=s&&E(v,t,[o,s]),!c(a)){const e=x(p,t),n=r(i,t)?a(l,t):void 0;e!=n&&E(M,t,n)}},S=e=>{o((()=>{w(v,(([,e],t)=>E(L,t,e))),w(M,((e,t)=>E(p,t,e)))}),v,M,L,p,e),m(v),m(M)};y(L,I),e.hasTable(i)&&l(e.getRowIds(i),(e=>{g(L,e)||I(e)})),S(!0),f(t),h(t,0,e.addRowListener(i,null,((e,t,n)=>I(n))),e.addTableListener(i,(()=>S())))},S,()=>y(a,S),h,f]},D=(n,l)=>e(n)==t?e=>e(n):null!=n?n:()=>null!=l?l:"",N=/^\d+$/,j=e=>{let t;const[n,r]=(()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=e.shift())?n:""+t++},t=>{N.test(t)&&i(e)<1e3&&u(e,t)}]})(),o=b();return[(l,r,i)=>{null!=t||(t=e());const u=n();return E(o,u,[l,r,i]),k(R(r,null!=i?i:[""],T),u),u},(e,n,...r)=>l(((e,t=[""])=>{const n=[],r=(e,o)=>o==i(t)?u(n,e):null===t[o]?w(e,(e=>r(e,o+1))):l([t[o],null],(t=>r(x(e,t),o+1)));return r(e,0),n})(e,n),(e=>w(e,(e=>x(o,e)[0](t,...null!=n?n:[],...r))))),e=>v(x(o,e),(([,t,n])=>(R(t,null!=n?n:[""],void 0,(t=>(p(t,e),M(t)?1:0))),E(o,e),r(e),n))),(e,n,r)=>v(x(o,e),(([e,,o=[]])=>{const u=(...s)=>{const d=i(s);d==i(o)?e(t,...s,...r(s)):c(o[d])?l(n[d](...s),(e=>u(...s,e))):u(...s,o[d])};u()}))]},C=Object.freeze,F=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((t=>{const l=b(),[r,i,o,u,s,d,v,,g,m,p]=z(t,h,(e=>isNaN(e)||c(e)||!0===e||!1===e||""===e?void 0:1*e)),[y,E,I]=j((()=>R)),R={setMetricDefinition:(t,r,i,o,u,s,h)=>{var m;const p=e(i)==n?[i,u,s,h]:null!=(m=x(S,i))?m:x(S,"sum");return g(t,r,((e,n,r,i,o,u)=>{const s=d(t),h=f(i);u||(u=c(s)),e();let g=((e,t,n,l,r,i=!1)=>{if(M(n))return;const[o,u,s,d]=r;return i||(i=c(e)),w(l,(([n,l])=>{i||(e=c(n)?null==u?void 0:u(e,l,t++):c(l)?null==s?void 0:s(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=c(e)))})),i?o(L(n),f(n)):e})(s,h,i,n,p,u);a(g)||(g=void 0),g!=s&&(v(t,g),E(l,[t],g,s))}),D(o,1)),R},delMetricDefinition:e=>(m(e),R),getStore:r,getMetricIds:i,forEachMetric:o,hasMetric:u,getTableId:s,getMetric:d,addMetricListener:(e,t)=>y(t,l,[e]),delListener:e=>(I(e),R),destroy:p,getListenerStats:()=>({})};return C(R)}));export{F as createMetrics};
1
+ const e=e=>typeof e,t=e(""),n=e(e),l=(e,t)=>e.forEach(t),r=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,n)=>e.reduce(t,n),u=(e,...t)=>e.push(...t),s=Math.max,d=Math.min,a=isFinite,c=e=>null==e,v=(e,t,n)=>c(e)?null==n?void 0:n():t(e),h=e=>Array.isArray(e),f=()=>{},g=e=>e.size,M=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},L=e=>c(e)||0==g(e),m=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},w=e=>e.clear(),y=(e,t)=>null==e?void 0:e.forEach(t),p=(e,t)=>null==e?void 0:e.delete(t),b=e=>new Map(e),x=(e,t)=>null==e?void 0:e.get(t),E=(e,t)=>y(e,((e,n)=>t(n,e))),I=(e,t,n)=>c(n)?(p(e,t),e):null==e?void 0:e.set(t,n),R=(e,t,n)=>(M(e,t)||I(e,t,n()),x(e,t)),S=(e,t,n,l,r=0)=>v((n?R:x)(e,t[r],r>i(t)-2?n:b),(o=>{if(r>i(t)-2)return(null==l?void 0:l(o))&&I(e,t[r]),o;const u=S(o,t,n,l,r+1);return L(o)&&I(e,t[r]),u})),T=b([["avg",[(e,t)=>r(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>s(...e),(e,t)=>s(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:s(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:d(t,e)]],["sum",[e=>r(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),k=e=>new Set(h(e)||c(e)?e:[e]),z=(e,t)=>null==e?void 0:e.add(t),A=(e,t,n)=>{const r=e.hasRow,o=b(),u=b(),s=b(),d=b(),a=b(),f=(t,n,...r)=>{const i=R(a,t,k);return l(r,(t=>z(i,t)&&n&&e.callListener(t))),r},g=(t,...n)=>v(x(a,t),(r=>{l(0==i(n)?m(r):n,(t=>{e.delListener(t),p(r,t)})),L(r)&&I(a,t)})),S=(e,n)=>{I(o,e,n),M(u,e)||(I(u,e,t()),I(s,e,b()),I(d,e,b()))},T=e=>{I(o,e),I(u,e),I(s,e),I(d,e),g(e)};return[()=>e,()=>{return[...null!=(t=null==(e=o)?void 0:e.keys())?t:[]];var e,t},e=>E(u,e),e=>M(u,e),e=>x(o,e),e=>x(u,e),(e,t)=>I(u,e,t),S,(t,o,u,a,v)=>{S(t,o);const L=b(),m=b(),p=x(s,t),R=x(d,t),T=t=>{const l=n=>e.getCell(o,t,n),u=x(p,t),s=r(o,t)?n(a(l,t)):void 0;var d,f,g;if(u===s||h(u)&&h(s)&&(f=s,i(d=u)===i(f)&&(g=(e,t)=>f[t]===e,d.every(g)))||I(L,t,[u,s]),!c(v)){const e=x(R,t),n=r(o,t)?v(l,t):void 0;e!=n&&I(m,t,n)}},k=e=>{u((()=>{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)&&l(e.getRowIds(o),(e=>{M(p,e)||T(e)})),k(!0),g(t),f(t,0,e.addRowListener(o,null,((e,t,n)=>T(n))),e.addTableListener(o,(()=>k())))},T,()=>E(a,T),f,g]},D=(n,l)=>e(n)==t?e=>e(n):null!=n?n:()=>null!=l?l:"",N=/^\d+$/,j=e=>{let t;const[n,r]=(()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=e.shift())?n:""+t++},t=>{N.test(t)&&i(e)<1e3&&u(e,t)}]})(),o=b();return[(l,r,i)=>{null!=t||(t=e());const u=n();return I(o,u,[l,r,i]),z(S(r,null!=i?i:[""],k),u),u},(e,n,...r)=>l(((e,t=[""])=>{const n=[],r=(e,o)=>o==i(t)?u(n,e):null===t[o]?y(e,(e=>r(e,o+1))):l([t[o],null],(t=>r(x(e,t),o+1)));return r(e,0),n})(e,n),(e=>y(e,(e=>x(o,e)[0](t,...null!=n?n:[],...r))))),e=>v(x(o,e),(([,t,n])=>(S(t,null!=n?n:[""],void 0,(t=>(p(t,e),L(t)?1:0))),I(o,e),r(e),n))),(e,n,r)=>v(x(o,e),(([e,,o=[]])=>{const u=(...s)=>{const d=i(s);d==i(o)?e(t,...s,...r(s)):c(o[d])?l(n[d](...s),(e=>u(...s,e))):u(...s,o[d])};u()}))]},C=Object.freeze,F=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((t=>{const l=b(),[r,i,o,u,s,d,v,,h,M,w]=A(t,f,(e=>isNaN(e)||c(e)||!0===e||!1===e||""===e?void 0:1*e)),[p,E,I]=j((()=>R)),R={setMetricDefinition:(t,r,i,o,u,s,f)=>{var M;const w=e(i)==n?[i,u,s,f]:null!=(M=x(T,i))?M:x(T,"sum");return h(t,r,((e,n,r,i,o,u)=>{const s=d(t),h=g(i);u||(u=c(s)),e();let f=((e,t,n,l,r,i=!1)=>{if(L(n))return;const[o,u,s,d]=r;return i||(i=c(e)),y(l,(([n,l])=>{i||(e=c(n)?null==u?void 0:u(e,l,t++):c(l)?null==s?void 0:s(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=c(e)))})),i?o(m(n),g(n)):e})(s,h,i,n,w,u);a(f)||(f=void 0),f!=s&&(v(t,f),E(l,[t],f,s))}),D(o,1)),R},delMetricDefinition:e=>(M(e),R),getStore:r,getMetricIds:i,forEachMetric:o,hasMetric:u,getTableId:s,getMetric:d,addMetricListener:(e,t)=>p(t,l,[e]),delListener:e=>(I(e),R),destroy:w,getListenerStats:()=>({})};return C(R)}));export{F as createMetrics};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,n=e(""),t=e(!0),l=e(0),r=e(e),o=(e,n)=>e.every(n),s=(e,n)=>e.forEach(n),i=e=>u(e,((e,n)=>e+n),0),a=e=>e.length,d=e=>0==a(e),u=(e,n,t)=>e.reduce(n,t),c=(e,...n)=>e.push(...n),v=Math.max,h=Math.min,w=isFinite,f=e=>null==e,g=(e,n,t)=>f(e)?null==t?void 0:t():n(e),R=n=>e(n)==r,L=()=>{},y=e=>e.size,p=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},b=e=>f(e)||0==y(e),T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},C=e=>e.clear(),I=(e,n)=>null==e?void 0:e.forEach(n),O=(e,n)=>null==e?void 0:e.delete(n),m=e=>new Map(e),S=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>I(e,((e,t)=>n(t,e))),x=(e,n,t)=>f(t)?(O(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(p(e,n)||x(e,n,t()),S(e,n)),Q=(e,n,t,l,r=0)=>g((t?E:S)(e,n[r],r>a(n)-2?t:m),(o=>{if(r>a(n)-2)return(null==l?void 0:l(o))&&x(e,n[r]),o;const s=Q(o,n,t,l,r+1);return b(o)&&x(e,n[r]),s})),M=e=>new Set(e),D=(e,n)=>null==e?void 0:e.add(n),F=m([["avg",[(e,n)=>i(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,l)=>e+(n-t)/l]],["max",[e=>v(...e),(e,n)=>v(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:v(n,e)]],["min",[e=>h(...e),(e,n)=>h(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:h(n,e)]],["sum",[e=>i(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),k=r=>{const o=e(r);return(e=>e==n||e==t)(o)||o==l&&w(r)?o:void 0},z=Object,P=z.freeze;var W=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;const B=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=e.createStore,[t,l,r,i,u,,,v,,h,w,B,G]=((e,n,t)=>{const l=e.hasRow,r=m(),o=m(),i=m(),a=m(),u=m(),c=(n,t,...l)=>{const r=E(u,n,M);return s(l,(n=>D(r,n)&&t&&e.callListener(n))),l},v=(n,...t)=>g(S(u,n),(l=>{s(d(t)?T(l):t,(n=>{e.delListener(n),O(l,n)})),b(l)&&x(u,n)})),h=(e,t)=>{x(r,e,t),p(o,e)||(x(o,e,n()),x(i,e,m()),x(a,e,m()))},w=e=>{x(r,e),x(o,e),x(i,e),x(a,e),v(e)};return[()=>e,()=>{return[...null!=(n=null==(e=r)?void 0:e.keys())?n:[]];var e,n},e=>j(o,e),e=>p(o,e),e=>S(r,e),e=>S(o,e),(e,n)=>x(o,e,n),h,(n,r,o,d,u)=>{h(n,r);const w=m(),g=m(),R=S(i,n),L=S(a,n),y=n=>{const o=t=>e.getCell(r,n,t),s=S(R,n),i=l(r,n)?t(d(o,n)):void 0;if(s!=i&&x(w,n,[s,i]),!f(u)){const e=S(L,n),t=l(r,n)?u(o,n):void 0;e!=t&&x(g,n,t)}},b=e=>{o((()=>{I(w,(([,e],n)=>x(R,n,e))),I(g,((e,n)=>x(L,n,e)))}),w,g,R,L,e),C(w),C(g)};j(R,y),e.hasTable(r)&&s(e.getRowIds(r),(e=>{p(R,e)||y(e)})),b(!0),v(n),c(n,0,e.addRowListener(r,null,((e,n,t)=>y(t))),e.addTableListener(r,(()=>b())))},w,()=>j(u,w),c,v]})(e,(()=>!0),L),H=n(),J=n(),K=m(),N=(e,n,...t)=>s(t,(t=>D(E(E(K,n,m),e,M),t))),U=e=>{g(S(K,e),(e=>{j(e,((e,n)=>I(n,(n=>e.delListener(n))))),C(e)})),s([J,H],(n=>n.delTable(e)))},V=(e,n,t)=>N(n,e,n.addWillFinishTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),X={setQueryDefinition:(n,t,l)=>{v(n,t),U(n);const r=[],i=[[null,[t,null,null,[],m()]]],u=[],h=[],w=[];l({select:(e,n)=>{const t=R(e)?[a(r)+"",e]:[f(n)?e:n,t=>t(e,n)];return c(r,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const l=f(t)||R(n)?null:n,r=f(l)?n:t,o=[e,[e,l,R(r)?r:e=>e(r),[],m()]];return c(i,o),{as:e=>o[0]=e}},where:(e,n,t)=>c(u,R(e)?e:f(t)?t=>t(e)===n:l=>l(e,n)===t),group:(e,n,t,l,r)=>{var o;const s=[e,[e,R(n)?[n,t,l,r]:null!=(o=S(F,n))?o:[(e,n)=>n]]];return c(h,s),{as:e=>s[0]=e}},having:(e,n)=>c(w,R(e)?e:t=>t(e)===n)});const L=m(r);if(b(L))return X;const C=m(i);j(C,((e,[,n])=>g(S(C,n),(({3:n})=>f(e)?0:c(n,e)))));const z=m(h);let P=H;if(b(z)&&d(w))P=J;else{V(n,P,J);const e=m();j(z,((n,[t,l])=>D(E(e,t,M),[n,l])));const t=M();j(L,(n=>p(e,n)?0:D(t,n)));const l=m(),r=(t,l,r,s)=>g(t,(([i,a,d,u])=>{j(l,((n,[t])=>{const l=E(i,n,m),o=S(l,r),a=s?void 0:t;if(o!==a){const t=M([[o,a]]),s=y(l);x(l,r,a),I(S(e,n),(([e,n])=>{const r=((e,n,t,l,r,o=!1)=>{if(b(t))return;const[s,i,a,d]=r;return o||(o=f(e)),I(l,(([t,l])=>{o||(e=f(t)?null==i?void 0:i(e,l,n++):f(l)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,l,t,n),o||(o=f(e)))})),o?s(T(t),y(t)):e})(u[e],s,l,t,n);u[e]=f(k(r))?null:r}))}})),b(a)||!o(w,(e=>e((e=>u[e]))))?J.delRow(n,d):f(d)?t[2]=J.addRow(n,u):J.setRow(n,d,u)}));N(P,n,P.addRowListener(n,null,((o,s,i,a)=>{const d=[],u=[],v=m(),h=P.hasRow(n,i);let w=!h;I(t,(e=>{const[t,l,r]=a(n,i,e);c(d,l),c(u,r),w||(w=t)})),j(e,(e=>{const[t,,l]=a(n,i,e);(w||t)&&x(v,e,[l])})),w&&r(Q(l,d,void 0,(([,e])=>(O(e,i),b(e)))),v,i,1),h&&r(Q(l,u,(()=>{const e={};return I(t,(t=>e[t]=P.getCell(n,i,t))),[m(),M(),void 0,e]}),(([,e])=>{D(e,i)})),v,i)})))}V(n,e,P);const W=l=>{const r=(n,r)=>{var o,s,i;return e.getCell(...f(r)?[t,l,n]:n===t?[t,l,r]:[null==(o=S(C,n))?void 0:o[0],null==(i=S(null==(s=S(C,n))?void 0:s[4],l))?void 0:i[0],r])};P.transaction((()=>o(u,(e=>e(r)))?j(L,((e,t)=>((e,n,t,l,r)=>f(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(P,n,l,e,t(r,l)))):P.delRow(n,l)))},q=(t,l,r,o)=>{const i=n=>e.getCell(l,r,n);s(o,(l=>{var r;const[o,,s,a,d]=S(C,l),u=null==s?void 0:s(i,t),[c,v]=null!=(r=S(d,t))?r:[];u!=c&&(f(v)||G(n,v),x(d,t,f(u)?null:[u,...B(n,1,e.addRowListener(o,u,(()=>q(t,o,u,a))))]))})),W(t)},{3:A}=S(C,null);return P.transaction((()=>B(n,1,e.addRowListener(t,null,((l,r,o)=>{e.hasRow(t,o)?q(o,t,o,A):(P.delRow(n,o),I(C,(({4:e})=>g(S(e,o),(([,t])=>{G(n,t),x(e,o)})))))}))))),X},delQueryDefinition:e=>(U(e),h(e),X),getStore:t,getQueryIds:l,forEachQuery:r,hasQuery:i,getTableId:u,delListener:e=>(J.delListener(e),X),destroy:w,getListenerStats:()=>((e,n)=>{var t={};for(var l in e)q.call(e,l)&&n.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&W)for(var l of W(e))n.indexOf(l)<0&&A.call(e,l)&&(t[l]=e[l]);return t})(J.getListenerStats(),["tables","tableIds","transaction"])};var Y,Z;return Y={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},Z=([e,n],t)=>{s(e?["get","has","forEach"]:["get"],(e=>X[e+"Result"+t]=(...n)=>J[e+t](...n))),X["addResult"+t+"Listener"]=(...e)=>{return J["add"+t+"Listener"](...(l=e,r=0,o=n,l.slice(r,o)),((t,...l)=>e[n](X,...l)));var l,r,o}},s(z.entries(Y),(([e,n])=>Z(n,e))),P(X)}));export{B as createQueries};
1
+ const e=e=>typeof e,n=e(""),t=e(!0),l=e(0),r=e(e),o=(e,n)=>e.every(n),s=(e,n)=>e.forEach(n),i=e=>u(e,((e,n)=>e+n),0),a=e=>e.length,d=e=>0==a(e),u=(e,n,t)=>e.reduce(n,t),c=(e,...n)=>e.push(...n),v=Math.max,h=Math.min,w=isFinite,f=e=>null==e,g=(e,n,t)=>f(e)?null==t?void 0:t():n(e),R=n=>e(n)==r,y=e=>Array.isArray(e),L=()=>{},p=e=>e.size,b=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>f(e)||0==p(e),C=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},I=e=>e.clear(),O=(e,n)=>null==e?void 0:e.forEach(n),m=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),j=(e,n)=>null==e?void 0:e.get(n),x=(e,n)=>O(e,((e,t)=>n(t,e))),E=(e,n,t)=>f(t)?(m(e,n),e):null==e?void 0:e.set(n,t),Q=(e,n,t)=>(b(e,n)||E(e,n,t()),j(e,n)),M=(e,n,t,l,r=0)=>g((t?Q:j)(e,n[r],r>a(n)-2?t:S),(o=>{if(r>a(n)-2)return(null==l?void 0:l(o))&&E(e,n[r]),o;const s=M(o,n,t,l,r+1);return T(o)&&E(e,n[r]),s})),D=e=>new Set(y(e)||f(e)?e:[e]),F=(e,n)=>null==e?void 0:e.add(n),k=S([["avg",[(e,n)=>i(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,l)=>e+(n-t)/l]],["max",[e=>v(...e),(e,n)=>v(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:v(n,e)]],["min",[e=>h(...e),(e,n)=>h(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:h(n,e)]],["sum",[e=>i(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),z=r=>{const o=e(r);return(e=>e==n||e==t)(o)||o==l&&w(r)?o:void 0},A=(e,n,t)=>{const l=e.hasRow,r=S(),i=S(),u=S(),c=S(),v=S(),h=(n,t,...l)=>{const r=Q(v,n,D);return s(l,(n=>F(r,n)&&t&&e.callListener(n))),l},w=(n,...t)=>g(j(v,n),(l=>{s(d(t)?C(l):t,(n=>{e.delListener(n),m(l,n)})),T(l)&&E(v,n)})),R=(e,t)=>{E(r,e,t),b(i,e)||(E(i,e,n()),E(u,e,S()),E(c,e,S()))},L=e=>{E(r,e),E(i,e),E(u,e),E(c,e),w(e)};return[()=>e,()=>{return[...null!=(n=null==(e=r)?void 0:e.keys())?n:[]];var e,n},e=>x(i,e),e=>b(i,e),e=>j(r,e),e=>j(i,e),(e,n)=>E(i,e,n),R,(n,r,i,d,v)=>{R(n,r);const g=S(),L=S(),p=j(u,n),T=j(c,n),C=n=>{const s=t=>e.getCell(r,n,t),i=j(p,n),u=l(r,n)?t(d(s,n)):void 0;var c,h;if(i===u||y(i)&&y(u)&&(h=u,a(c=i)===a(h)&&o(c,((e,n)=>h[n]===e)))||E(g,n,[i,u]),!f(v)){const e=j(T,n),t=l(r,n)?v(s,n):void 0;e!=t&&E(L,n,t)}},m=e=>{i((()=>{O(g,(([,e],n)=>E(p,n,e))),O(L,((e,n)=>E(T,n,e)))}),g,L,p,T,e),I(g),I(L)};x(p,C),e.hasTable(r)&&s(e.getRowIds(r),(e=>{b(p,e)||C(e)})),m(!0),w(n),h(n,0,e.addRowListener(r,null,((e,n,t)=>C(t))),e.addTableListener(r,(()=>m())))},L,()=>x(v,L),h,w]},P=Object,W=P.freeze;var q=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;const H=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=e.createStore,[t,l,r,i,u,,,v,,h,w,y,H]=A(e,(()=>!0),L),J=n(),K=n(),N=S(),U=(e,n,...t)=>s(t,(t=>F(Q(Q(N,n,S),e,D),t))),V=e=>{g(j(N,e),(e=>{x(e,((e,n)=>O(n,(n=>e.delListener(n))))),I(e)})),s([K,J],(n=>n.delTable(e)))},X=(e,n,t)=>U(n,e,n.addWillFinishTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),Y={setQueryDefinition:(n,t,l)=>{v(n,t),V(n);const r=[],i=[[null,[t,null,null,[],S()]]],u=[],h=[],w=[];l({select:(e,n)=>{const t=R(e)?[a(r)+"",e]:[f(n)?e:n,t=>t(e,n)];return c(r,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const l=f(t)||R(n)?null:n,r=f(l)?n:t,o=[e,[e,l,R(r)?r:e=>e(r),[],S()]];return c(i,o),{as:e=>o[0]=e}},where:(e,n,t)=>c(u,R(e)?e:f(t)?t=>t(e)===n:l=>l(e,n)===t),group:(e,n,t,l,r)=>{var o;const s=[e,[e,R(n)?[n,t,l,r]:null!=(o=j(k,n))?o:[(e,n)=>n]]];return c(h,s),{as:e=>s[0]=e}},having:(e,n)=>c(w,R(e)?e:t=>t(e)===n)});const L=S(r);if(T(L))return Y;const I=S(i);x(I,((e,[,n])=>g(j(I,n),(({3:n})=>f(e)?0:c(n,e)))));const A=S(h);let P=J;if(T(A)&&d(w))P=K;else{X(n,P,K);const e=S();x(A,((n,[t,l])=>F(Q(e,t,D),[n,l])));const t=D();x(L,(n=>b(e,n)?0:F(t,n)));const l=S(),r=(t,l,r,s)=>g(t,(([i,a,d,u])=>{x(l,((n,[t])=>{const l=Q(i,n,S),o=j(l,r),a=s?void 0:t;if(o!==a){const t=D([[o,a]]),s=p(l);E(l,r,a),O(j(e,n),(([e,n])=>{const r=((e,n,t,l,r,o=!1)=>{if(T(t))return;const[s,i,a,d]=r;return o||(o=f(e)),O(l,(([t,l])=>{o||(e=f(t)?null==i?void 0:i(e,l,n++):f(l)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,l,t,n),o||(o=f(e)))})),o?s(C(t),p(t)):e})(u[e],s,l,t,n);u[e]=f(z(r))?null:r}))}})),T(a)||!o(w,(e=>e((e=>u[e]))))?K.delRow(n,d):f(d)?t[2]=K.addRow(n,u):K.setRow(n,d,u)}));U(P,n,P.addRowListener(n,null,((o,s,i,a)=>{const d=[],u=[],v=S(),h=P.hasRow(n,i);let w=!h;O(t,(e=>{const[t,l,r]=a(n,i,e);c(d,l),c(u,r),w||(w=t)})),x(e,(e=>{const[t,,l]=a(n,i,e);(w||t)&&E(v,e,[l])})),w&&r(M(l,d,void 0,(([,e])=>(m(e,i),T(e)))),v,i,1),h&&r(M(l,u,(()=>{const e={};return O(t,(t=>e[t]=P.getCell(n,i,t))),[S(),D(),void 0,e]}),(([,e])=>{F(e,i)})),v,i)})))}X(n,e,P);const W=l=>{const r=(n,r)=>{var o,s,i;return e.getCell(...f(r)?[t,l,n]:n===t?[t,l,r]:[null==(o=j(I,n))?void 0:o[0],null==(i=j(null==(s=j(I,n))?void 0:s[4],l))?void 0:i[0],r])};P.transaction((()=>o(u,(e=>e(r)))?x(L,((e,t)=>((e,n,t,l,r)=>f(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(P,n,l,e,t(r,l)))):P.delRow(n,l)))},q=(t,l,r,o)=>{const i=n=>e.getCell(l,r,n);s(o,(l=>{var r;const[o,,s,a,d]=j(I,l),u=null==s?void 0:s(i,t),[c,v]=null!=(r=j(d,t))?r:[];u!=c&&(f(v)||H(n,v),E(d,t,f(u)?null:[u,...y(n,1,e.addRowListener(o,u,(()=>q(t,o,u,a))))]))})),W(t)},{3:B}=j(I,null);return P.transaction((()=>y(n,1,e.addRowListener(t,null,((l,r,o)=>{e.hasRow(t,o)?q(o,t,o,B):(P.delRow(n,o),O(I,(({4:e})=>g(j(e,o),(([,t])=>{H(n,t),E(e,o)})))))}))))),Y},delQueryDefinition:e=>(V(e),h(e),Y),getStore:t,getQueryIds:l,forEachQuery:r,hasQuery:i,getTableId:u,delListener:e=>(K.delListener(e),Y),destroy:w,getListenerStats:()=>((e,n)=>{var t={};for(var l in e)B.call(e,l)&&n.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&q)for(var l of q(e))n.indexOf(l)<0&&G.call(e,l)&&(t[l]=e[l]);return t})(K.getListenerStats(),["tables","tableIds","transaction"])};var Z,$;return Z={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},$=([e,n],t)=>{s(e?["get","has","forEach"]:["get"],(e=>Y[e+"Result"+t]=(...n)=>K[e+t](...n))),Y["addResult"+t+"Listener"]=(...e)=>{return K["add"+t+"Listener"](...(l=e,r=0,o=n,l.slice(r,o)),((t,...l)=>e[n](Y,...l)));var l,r,o}},s(P.entries(Z),(([e,n])=>$(n,e))),W(Y)}));export{H as createQueries};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,n=e(""),t=(e,n)=>e.forEach(n),l=e=>e.length,o=(e,...n)=>e.push(...n),r=e=>null==e,s=(e,n,t)=>r(e)?null==t?void 0:t():n(e),i=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},d=e=>r(e)||0==(e=>e.size)(e),u=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},a=e=>e.clear(),c=(e,n)=>null==e?void 0:e.forEach(n),v=(e,n)=>null==e?void 0:e.delete(n),R=e=>new Map(e),h=(e,n)=>null==e?void 0:e.get(n),f=(e,n)=>c(e,((e,t)=>n(t,e))),L=(e,n,t)=>r(t)?(v(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(i(e,n)||L(e,n,t()),h(e,n)),w=(e,n,t,o,r=0)=>s((t?g:h)(e,n[r],r>l(n)-2?t:R),(s=>{if(r>l(n)-2)return(null==o?void 0:o(s))&&L(e,n[r]),s;const i=w(s,n,t,o,r+1);return d(s)&&L(e,n[r]),i})),p=e=>new Set(e),I=(e,n)=>null==e?void 0:e.add(n),b=(e,n,o)=>{const w=e.hasRow,b=R(),k=R(),E=R(),T=R(),m=R(),y=(n,l,...o)=>{const r=g(m,n,p);return t(o,(n=>I(r,n)&&l&&e.callListener(n))),o},S=(n,...o)=>s(h(m,n),(r=>{t(0==l(o)?u(r):o,(n=>{e.delListener(n),v(r,n)})),d(r)&&L(m,n)})),z=(e,t)=>{L(b,e,t),i(k,e)||(L(k,e,n()),L(E,e,R()),L(T,e,R()))},D=e=>{L(b,e),L(k,e),L(E,e),L(T,e),S(e)};return[()=>e,()=>{return[...null!=(n=null==(e=b)?void 0:e.keys())?n:[]];var e,n},e=>f(k,e),e=>i(k,e),e=>h(b,e),e=>h(k,e),(e,n)=>L(k,e,n),z,(n,l,s,d,u)=>{z(n,l);const v=R(),g=R(),p=h(E,n),I=h(T,n),b=n=>{const t=t=>e.getCell(l,n,t),s=h(p,n),i=w(l,n)?o(d(t,n)):void 0;if(s!=i&&L(v,n,[s,i]),!r(u)){const e=h(I,n),o=w(l,n)?u(t,n):void 0;e!=o&&L(g,n,o)}},k=e=>{s((()=>{c(v,(([,e],n)=>L(p,n,e))),c(g,((e,n)=>L(I,n,e)))}),v,g,p,I,e),a(v),a(g)};f(p,b),e.hasTable(l)&&t(e.getRowIds(l),(e=>{i(p,e)||b(e)})),k(!0),S(n),y(n,0,e.addRowListener(l,null,((e,n,t)=>b(t))),e.addTableListener(l,(()=>k())))},D,()=>f(m,D),y,S]},k=(t,l)=>e(t)==n?e=>e(t):null!=t?t:()=>null!=l?l:"",E=/^\d+$/,T=e=>{let n;const[i,u]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=e.shift())?t:""+n++},n=>{E.test(n)&&l(e)<1e3&&o(e,n)}]})(),a=R();return[(t,l,o)=>{null!=n||(n=e());const r=i();return L(a,r,[t,l,o]),I(w(l,null!=o?o:[""],p),r),r},(e,r,...s)=>t(((e,n=[""])=>{const r=[],s=(e,i)=>i==l(n)?o(r,e):null===n[i]?c(e,(e=>s(e,i+1))):t([n[i],null],(n=>s(h(e,n),i+1)));return s(e,0),r})(e,r),(e=>c(e,(e=>h(a,e)[0](n,...null!=r?r:[],...s))))),e=>s(h(a,e),(([,n,t])=>(w(n,null!=t?t:[""],void 0,(n=>(v(n,e),d(n)?1:0))),L(a,e),u(e),t))),(e,o,i)=>s(h(a,e),(([e,,s=[]])=>{const d=(...u)=>{const a=l(u);a==l(s)?e(n,...u,...i(u)):r(s[a])?t(o[a](...u),(e=>d(...u,e))):d(...u,s[a])};d()}))]},m=Object.freeze,y=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=R(),t=R(),l=R(),o=R(),[a,g,w,E,y,S,,,z,D,M]=b(e,(()=>[R(),R(),R(),R()]),(e=>r(e)?void 0:e+"")),[j,x,C]=T((()=>q)),O=(e,n,t)=>s(S(e),(([l,,o])=>{if(!i(o,n)){const s=p();if(y(e)!=$(e))I(s,n);else{let e=n;for(;!r(e)&&!i(s,e);)I(s,e),e=h(l,e)}if(t)return s;L(o,n,s)}return h(o,n)})),W=(e,n)=>s(S(e),(([,,e])=>L(e,n))),$=e=>h(n,e),q={setRelationshipDefinition:(e,u,a,R)=>(L(n,e,a),z(e,u,((n,u)=>{const a=p(),R=p(),g=p(),[w,b]=S(e);c(u,(([n,t],l)=>{r(n)||(I(R,n),s(h(b,n),(e=>{v(e,l),d(e)&&L(b,n)}))),r(t)||(I(R,t),i(b,t)||L(b,t,p()),I(h(b,t),l)),I(a,l),L(w,l,t),f(h(o,e),(n=>{i(O(e,n),l)&&I(g,n)}))})),n(),c(a,(n=>x(t,[e,n]))),c(R,(n=>x(l,[e,n]))),c(g,(n=>{W(e,n),x(o,[e,n])}))}),k(R)),q),delRelationshipDefinition:e=>(L(n,e),D(e),q),getStore:a,getRelationshipIds:g,forEachRelationship:n=>w((t=>n(t,(n=>e.forEachRow(y(t),n))))),hasRelationship:E,getLocalTableId:y,getRemoteTableId:$,getRemoteRowId:(e,n)=>{var t;return h(null==(t=S(e))?void 0:t[0],n)},getLocalRowIds:(e,n)=>{var t;return u(h(null==(t=S(e))?void 0:t[1],n))},getLinkedRowIds:(e,n)=>r(S(e))?[n]:u(O(e,n,!0)),addRemoteRowIdListener:(e,n,l)=>j(l,t,[e,n]),addLocalRowIdsListener:(e,n,t)=>j(t,l,[e,n]),addLinkedRowIdsListener:(e,n,t)=>(O(e,n),j(t,o,[e,n])),delListener:e=>(W(...C(e)),q),destroy:M,getListenerStats:()=>({})};return m(q)}));export{y as createRelationships};
1
+ const e=e=>typeof e,n=e(""),t=(e,n)=>e.forEach(n),l=e=>e.length,r=(e,...n)=>e.push(...n),o=e=>null==e,s=(e,n,t)=>o(e)?null==t?void 0:t():n(e),i=e=>Array.isArray(e),d=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},u=e=>o(e)||0==(e=>e.size)(e),a=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},c=e=>e.clear(),v=(e,n)=>null==e?void 0:e.forEach(n),R=(e,n)=>null==e?void 0:e.delete(n),h=e=>new Map(e),f=(e,n)=>null==e?void 0:e.get(n),L=(e,n)=>v(e,((e,t)=>n(t,e))),g=(e,n,t)=>o(t)?(R(e,n),e):null==e?void 0:e.set(n,t),w=(e,n,t)=>(d(e,n)||g(e,n,t()),f(e,n)),p=(e,n,t,r,o=0)=>s((t?w:f)(e,n[o],o>l(n)-2?t:h),(s=>{if(o>l(n)-2)return(null==r?void 0:r(s))&&g(e,n[o]),s;const i=p(s,n,t,r,o+1);return u(s)&&g(e,n[o]),i})),I=e=>new Set(i(e)||o(e)?e:[e]),y=(e,n)=>null==e?void 0:e.add(n),b=(e,n,r)=>{const p=e.hasRow,b=h(),k=h(),E=h(),T=h(),m=h(),S=(n,l,...r)=>{const o=w(m,n,I);return t(r,(n=>y(o,n)&&l&&e.callListener(n))),r},z=(n,...r)=>s(f(m,n),(o=>{t(0==l(r)?a(o):r,(n=>{e.delListener(n),R(o,n)})),u(o)&&g(m,n)})),A=(e,t)=>{g(b,e,t),d(k,e)||(g(k,e,n()),g(E,e,h()),g(T,e,h()))},D=e=>{g(b,e),g(k,e),g(E,e),g(T,e),z(e)};return[()=>e,()=>{return[...null!=(n=null==(e=b)?void 0:e.keys())?n:[]];var e,n},e=>L(k,e),e=>d(k,e),e=>f(b,e),e=>f(k,e),(e,n)=>g(k,e,n),A,(n,s,u,a,R)=>{A(n,s);const w=h(),I=h(),y=f(E,n),b=f(T,n),k=n=>{const t=t=>e.getCell(s,n,t),d=f(y,n),u=p(s,n)?r(a(t,n)):void 0;var c,v,h;if(d===u||i(d)&&i(u)&&(v=u,l(c=d)===l(v)&&(h=(e,n)=>v[n]===e,c.every(h)))||g(w,n,[d,u]),!o(R)){const e=f(b,n),l=p(s,n)?R(t,n):void 0;e!=l&&g(I,n,l)}},m=e=>{u((()=>{v(w,(([,e],n)=>g(y,n,e))),v(I,((e,n)=>g(b,n,e)))}),w,I,y,b,e),c(w),c(I)};L(y,k),e.hasTable(s)&&t(e.getRowIds(s),(e=>{d(y,e)||k(e)})),m(!0),z(n),S(n,0,e.addRowListener(s,null,((e,n,t)=>k(t))),e.addTableListener(s,(()=>m())))},D,()=>L(m,D),S,z]},k=(t,l)=>e(t)==n?e=>e(t):null!=t?t:()=>null!=l?l:"",E=/^\d+$/,T=e=>{let n;const[i,d]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=e.shift())?t:""+n++},n=>{E.test(n)&&l(e)<1e3&&r(e,n)}]})(),a=h();return[(t,l,r)=>{null!=n||(n=e());const o=i();return g(a,o,[t,l,r]),y(p(l,null!=r?r:[""],I),o),o},(e,o,...s)=>t(((e,n=[""])=>{const o=[],s=(e,i)=>i==l(n)?r(o,e):null===n[i]?v(e,(e=>s(e,i+1))):t([n[i],null],(n=>s(f(e,n),i+1)));return s(e,0),o})(e,o),(e=>v(e,(e=>f(a,e)[0](n,...null!=o?o:[],...s))))),e=>s(f(a,e),(([,n,t])=>(p(n,null!=t?t:[""],void 0,(n=>(R(n,e),u(n)?1:0))),g(a,e),d(e),t))),(e,r,i)=>s(f(a,e),(([e,,s=[]])=>{const d=(...u)=>{const a=l(u);a==l(s)?e(n,...u,...i(u)):o(s[a])?t(r[a](...u),(e=>d(...u,e))):d(...u,s[a])};d()}))]},m=Object.freeze,S=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=h(),t=h(),l=h(),r=h(),[i,c,w,p,E,S,,,z,A,D]=b(e,(()=>[h(),h(),h(),h()]),(e=>o(e)?void 0:e+"")),[M,j,x]=T((()=>$)),C=(e,n,t)=>s(S(e),(([l,,r])=>{if(!d(r,n)){const s=I();if(E(e)!=W(e))y(s,n);else{let e=n;for(;!o(e)&&!d(s,e);)y(s,e),e=f(l,e)}if(t)return s;g(r,n,s)}return f(r,n)})),O=(e,n)=>s(S(e),(([,,e])=>g(e,n))),W=e=>f(n,e),$={setRelationshipDefinition:(e,i,a,c)=>(g(n,e,a),z(e,i,((n,i)=>{const a=I(),c=I(),h=I(),[w,p]=S(e);v(i,(([n,t],l)=>{o(n)||(y(c,n),s(f(p,n),(e=>{R(e,l),u(e)&&g(p,n)}))),o(t)||(y(c,t),d(p,t)||g(p,t,I()),y(f(p,t),l)),y(a,l),g(w,l,t),L(f(r,e),(n=>{d(C(e,n),l)&&y(h,n)}))})),n(),v(a,(n=>j(t,[e,n]))),v(c,(n=>j(l,[e,n]))),v(h,(n=>{O(e,n),j(r,[e,n])}))}),k(c)),$),delRelationshipDefinition:e=>(g(n,e),A(e),$),getStore:i,getRelationshipIds:c,forEachRelationship:n=>w((t=>n(t,(n=>e.forEachRow(E(t),n))))),hasRelationship:p,getLocalTableId:E,getRemoteTableId:W,getRemoteRowId:(e,n)=>{var t;return f(null==(t=S(e))?void 0:t[0],n)},getLocalRowIds:(e,n)=>{var t;return a(f(null==(t=S(e))?void 0:t[1],n))},getLinkedRowIds:(e,n)=>o(S(e))?[n]:a(C(e,n,!0)),addRemoteRowIdListener:(e,n,l)=>M(l,t,[e,n]),addLocalRowIdsListener:(e,n,t)=>M(t,l,[e,n]),addLinkedRowIdsListener:(e,n,t)=>(C(e,n),M(t,r,[e,n])),delListener:e=>(O(...x(e)),$),destroy:D,getListenerStats:()=>({})};return m($)}));export{S as createRelationships};
Binary file
package/lib/es6/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),l=e(!0),n=e(0),r=e(e),s=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,u=(e,t,l)=>e.slice(t,l),d=(e,...t)=>e.push(...t),c=e=>JSON.stringify(e,((e,t)=>{return h(t,Map)?(l=[...t],n=(e,[t,l])=>(e[t]=l,e),r={},l.reduce(n,r)):t;var l,n,r})),v=JSON.parse,f=isFinite,h=(e,t)=>e instanceof t,T=e=>null==e,b=(e,t,l)=>T(e)?null==l?void 0:l():t(e),g=e=>e==t||e==l,w=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},R=e=>T(e)||0==(e=>e.size)(e),C=e=>e.clear(),p=(e,t)=>null==e?void 0:e.forEach(t),S=(e,t)=>null==e?void 0:e.delete(t),y=e=>new Map(e),I=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},L=(e,t)=>null==e?void 0:e.get(t),E=(e,t)=>p(e,((e,l)=>t(l,e))),J=(e,t,l)=>T(l)?(S(e,t),e):null==e?void 0:e.set(t,l),m=(e,t,l)=>(w(e,t)||J(e,t,l()),L(e,t)),F=(e,t,l)=>{const n={},r=null!=t?t:e=>e;return p(e,((e,t)=>b(r(e),(e=>(null==l?void 0:l(e))?0:n[t]=e)))),n},z=(e,t)=>{const l=y(),n=null!=t?t:e=>e;return p(e,((e,t)=>l.set(t,n(e)))),l},O=e=>z(e,z),k=(e,t,l,n,r=0)=>b((l?m:L)(e,t[r],r>i(t)-2?l:y),(s=>{if(r>i(t)-2)return(null==n?void 0:n(s))&&J(e,t[r]),s;const o=k(s,t,l,n,r+1);return R(s)&&J(e,t[r]),o})),M=Object,N=M.keys,j=M.isFrozen,x=M.freeze,D=(e,t)=>!T(((e,t)=>b(e,(e=>e[t])))(e,t)),P=(e,t)=>delete e[t],W=(e,t)=>o(M.entries(e),(([e,l])=>t(l,e))),$=e=>{return t=N(e),0==i(t);var t},q=e=>new Set(e),A=(e,t)=>null==e?void 0:e.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:""+t++},t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>{let t;const[l,n]=G(),r=y();return[(n,s,o)=>{null!=t||(t=e());const a=l();return J(r,a,[n,s,o]),A(k(s,null!=o?o:[""],q),a),a},(e,l,...n)=>o(((e,t=[""])=>{const l=[],n=(e,r)=>r==i(t)?d(l,e):null===t[r]?p(e,(e=>n(e,r+1))):o([t[r],null],(t=>n(L(e,t),r+1)));return n(e,0),l})(e,l),(e=>p(e,(e=>L(r,e)[0](t,...null!=l?l:[],...n))))),e=>b(L(r,e),(([,t,l])=>(k(t,null!=l?l:[""],void 0,(t=>(S(t,e),R(t)?1:0))),J(r,e),n(e),l))),(e,l,n)=>b(L(r,e),(([e,,r=[]])=>{const s=(...a)=>{const u=i(a);u==i(r)?e(t,...a,...n(a)):T(r[u])?o(l[u](...a),(e=>s(...a,e))):s(...a,r[u])};s()}))]},K=e=>[e,e],Q=()=>[y(),y()],U=t=>{const l=e(t);return g(l)||l==n&&f(t)?l:void 0},V=(e,t,l,n=J)=>{const r=(s=I(e),a=e=>!D(t,e),s.filter(a));var s,a;return o(N(t),(n=>l(e,n,t[n]))),o(r,(t=>n(e,t))),e},X=(e,t,l)=>T(e)||!(e=>h(e,M)&&e.constructor==M)(e)||$(e)||j(e)?(null==l||l(),!1):(W(e,((l,n)=>{t(l,n)||P(e,n)})),!$(e)),Y=(e,t,l)=>J(e,t,L(e,t)==-l?void 0:l),Z=()=>{let t,l,f=0;const h=y(),k=y(),M=y(),N=y(),j=y(),B=y(),_=y(),ee=y(),te=y(),le=Q(),ne=Q(),re=Q(),se=Q(),oe=Q(),ae=Q(),ie=Q(),ue=Q(),de=Q(),ce=Q(),[ve,fe,he,Te]=H((()=>Ze)),be=(e,l)=>(!t||w(B,l)||je(l))&&X(e,((e,t)=>ge(l,t,e)),(()=>je(l))),ge=(e,t,l,n)=>X(n?l:Re(l,e,t),((n,r)=>b(we(e,t,r,n),(e=>(l[r]=e,!0)),(()=>!1))),(()=>je(e,t))),we=(e,l,n,r)=>t?b(L(L(B,e),n),(t=>U(r)!=t.type?je(e,l,n,r,t.default):r),(()=>je(e,l,n,r))):T(U(r))?je(e,l,n,r):r,Re=(e,t,l)=>(b(L(_,t),(([n,r])=>{p(n,((t,l)=>{D(e,l)||(e[l]=t)})),p(r,(n=>{D(e,n)||je(t,l,n)}))})),e),Ce=e=>V(B,e,((e,t,l)=>{const n=y(),r=q();V(m(B,t,y),l,((e,t,l)=>{J(e,t,l),b(l.default,(e=>J(n,t,e)),(()=>A(r,t)))})),J(_,t,[n,r])}),((e,t)=>{J(B,t),J(_,t)})),pe=e=>V(te,e,((e,t,l)=>Se(t,l)),((e,t)=>me(t))),Se=(e,t)=>V(m(te,e,(()=>(Oe(e,1),y()))),t,((t,l,n)=>ye(e,t,l,n)),((t,l)=>Fe(e,t,l))),ye=(e,t,l,n,r)=>V(m(t,l,(()=>(ke(e,l,1),y()))),n,((t,n,r)=>Ie(e,l,t,n,r)),((n,s)=>ze(e,t,l,n,s,r))),Ie=(e,t,l,n,r)=>{w(l,n)||Me(e,t,n,1);const s=L(l,n);r!==s&&(Ne(e,t,n,s,r),J(l,n,r))},Le=(e,t,l,n,r)=>b(L(t,l),(t=>Ie(e,l,t,n,r)),(()=>ye(e,t,l,Re({[n]:r},e,l)))),Ee=e=>{const[t]=m(ee,e,G),l=t();return w(L(te,e),l)?Ee(e):l},Je=e=>{var t;return null!=(t=L(te,e))?t:Se(e,{})},me=e=>Se(e,{}),Fe=(e,t,l)=>{const[,n]=m(ee,e,G);n(l),ye(e,t,l,{},!0)},ze=(e,t,l,n,r,s)=>{var o;const a=L(null==(o=L(_,e))?void 0:o[0],r);if(!T(a)&&!s)return Ie(e,l,n,r,a);const i=t=>{Ne(e,l,t,L(n,t)),Me(e,l,t,-1),J(n,t)};T(a)?i(r):E(n,i),R(n)&&(ke(e,l,-1),R(J(t,l))&&(Oe(e,-1),J(te,e)))},Oe=(e,t)=>Y(h,e,t),ke=(e,t,l)=>Y(m(k,e,y),t,l),Me=(e,t,l,n)=>Y(m(m(M,e,y),t,y),l,n),Ne=(e,t,l,n,r)=>m(m(m(N,e,y),t,y),l,(()=>[n,0]))[1]=r,je=(e,t,l,n,r)=>(d(m(m(m(j,e,y),t,y),l,(()=>[])),n),r),xe=(e,t,l)=>b(L(L(L(N,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Ke(e,t,l))])),De=e=>R(j)||R(de[e])?0:p(e?z(j,O):j,((t,l)=>p(t,((t,n)=>p(t,((t,r)=>fe(de[e],[l,n,r],t))))))),Pe=(e,t,l)=>{if(!R(t))return fe(e,l),1},We=e=>{const t=R(oe[e]),l=R(ie[e])&&R(se[e])&&t&&R(ne[e]),n=R(ue[e])&&R(ae[e])&&R(re[e])&&R(le[e]);if(!l||!n){const r=e?[z(h),O(k),z(M,O),z(N,O)]:[h,k,M,N];if(!l){p(r[2],((t,l)=>p(t,((t,n)=>Pe(ie[e],t,[l,n])))));const l=q();p(r[1],((n,r)=>{Pe(se[e],n,[r])&&!t&&(fe(oe[e],[r,null]),A(l,r))})),t||p(r[3],((t,n)=>{if(!w(l,n)){const l=q();p(t,(e=>p(e,(([t,n],r)=>n!==t?A(l,r):S(e,r))))),p(l,(t=>fe(oe[e],[n,t])))}})),Pe(ne[e],r[0])}if(!n){let t;p(r[3],((l,n)=>{let r;p(l,((l,s)=>{let o;p(l,(([l,a],i)=>{a!==l&&(fe(ue[e],[n,s,i],a,l,xe),t=r=o=1)})),o&&fe(ae[e],[n,s],xe)})),r&&fe(re[e],[n],xe)})),t&&fe(le[e],void 0,xe)}}},$e=(e,...t)=>(Ve((()=>e(...a(t,s)))),Ze),qe=()=>F(te,(e=>F(e,F))),Ae=()=>I(te),Be=e=>I(L(te,s(e))),Ge=(e,t,l,n=0,r)=>{const o=[];return E(L(te,s(e)),((e,l)=>d(o,[T(t)?e:L(l,s(t)),e]))),a(u(o.sort((([e],[t])=>(e<t?-1:1)*(l?-1:1))),n,T(r)?r:n+r),(([,e])=>e))},He=(e,t)=>I(L(L(te,s(e)),s(t))),Ke=(e,t,l)=>L(L(L(te,s(e)),s(t)),s(l)),Qe=e=>$e((()=>(e=>X(e,be,je))(e)?pe(e):0)),Ue=()=>$e((()=>pe({}))),Ve=(e,t)=>{if(-1==f)return;Xe();const l=null==e?void 0:e();return Ye(t),l},Xe=()=>(f++,Ze),Ye=e=>(f>0&&(f--,0==f&&(l=!R(N),f=1,De(1),l&&We(1),f=-1,(null==e?void 0:e(F(N,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),$)),$),F(j,(e=>F(e,F)))))&&(f=1,p(N,((e,t)=>p(e,((e,l)=>p(e,(([e],n)=>((e,t,l,n,r)=>T(r)?e.delCell(t,l,n,!0):e.setCell(t,l,n,r))(Ze,t,l,n,e))))))),f=-1,l=!1),fe(ce[0],void 0,l),De(0),l&&We(0),fe(ce[1],void 0,l),f=0,o([N,j,h,k,M],C))),Ze),Ze={getTables:qe,getTableIds:Ae,getTable:e=>F(L(te,s(e)),F),getRowIds:Be,getSortedRowIds:Ge,getRow:(e,t)=>F(L(L(te,s(e)),s(t))),getCellIds:He,getCell:Ke,hasTables:()=>!R(te),hasTable:e=>w(te,s(e)),hasRow:(e,t)=>w(L(te,s(e)),s(t)),hasCell:(e,t,l)=>w(L(L(te,s(e)),s(t)),s(l)),getJson:()=>c(te),getSchemaJson:()=>c(B),setTables:Qe,setTable:(e,t)=>$e((e=>be(t,e)?Se(e,t):0),e),setRow:(e,t,l)=>$e(((e,t)=>ge(s(e),s(t),l)?ye(s(e),Je(s(e)),s(t),l):0),e,t),addRow:(e,t)=>Ve((()=>{let l;return ge(e,l,t)&&(e=s(e),ye(e,Je(e),l=Ee(e),t)),l})),setPartialRow:(e,t,l)=>$e(((e,t)=>{if(ge(e,t,l,1)){const n=Je(e);W(l,((l,r)=>Le(e,n,t,r,l)))}}),e,t),setCell:(t,l,n,s)=>$e(((t,l,n)=>b(we(t,l,n,e(s)==r?s(Ke(t,l,n)):s),(e=>Le(t,Je(t),l,n,e)))),t,l,n),setJson:e=>{try{"{}"===e?Ue():Qe(v(e))}catch(e){}return Ze},setSchema:e=>$e((()=>{if((t=(e=>X(e,(e=>X(e,(e=>{if(!X(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!g(t)&&t!=n||(U(e.default)!=t&&P(e,"default"),0))})))))(e))&&(Ce(e),!R(te))){const e=qe();Ue(),Qe(e)}})),delTables:Ue,delTable:e=>$e((e=>w(te,e)?me(e):0),e),delRow:(e,t)=>$e(((e,t)=>b(L(te,e),(l=>w(l,t)?Fe(e,l,t):0))),e,t),delCell:(e,t,l,n)=>$e(((e,t,l)=>b(L(te,e),(r=>b(L(r,t),(s=>w(s,l)?ze(e,r,t,s,l,n):0))))),e,t,l),delSchema:()=>$e((()=>{Ce({}),t=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>p(te,((t,l)=>e(l,(e=>p(t,((t,l)=>e(l,(e=>E(t,e))))))))),forEachRow:(e,t)=>p(L(te,s(e)),((e,l)=>t(l,(t=>E(e,t))))),forEachCell:(e,t,l)=>E(L(L(te,s(e)),s(t)),l),addSortedRowIdsListener:(e,t,l,n,r,s,o)=>{let a=Ge(e,t,l,n,r);return ve((()=>{const o=Ge(e,t,l,n,r);var u,d,c;d=a,i(u=o)===i(d)&&(c=(e,t)=>d[t]===e,u.every(c))||(a=o,s(Ze,e,t,l,n,r,a))}),oe[o?1:0],[e,t])},addWillFinishTransactionListener:e=>ve(e,ce[0]),addDidFinishTransactionListener:e=>ve(e,ce[1]),callListener:e=>(Te(e,[Ae,Be,He],(e=>T(e[2])?[]:K(Ke(...e)))),Ze),delListener:e=>(he(e),Ze),getListenerStats:()=>({}),createStore:Z};return W({Tables:[0,le],TableIds:[0,ne],Table:[1,re],RowIds:[1,se],Row:[2,ae],CellIds:[2,ie],Cell:[3,ue],InvalidCell:[3,de]},(([e,t],l)=>{Ze["add"+l+"Listener"]=(...l)=>ve(l[e],t[l[e+1]?1:0],e>0?u(l,0,e):void 0)})),x(Ze)};export{Z as createStore};
1
+ const e=e=>typeof e,t=e(""),l=e(!0),n=e(0),r=e(e),s=e=>""+e,o=(e,t)=>e.forEach(t),a=(e,t)=>e.map(t),i=e=>e.length,u=(e,t,l)=>e.slice(t,l),d=(e,...t)=>e.push(...t),c=e=>JSON.stringify(e,((e,t)=>{return h(t,Map)?(l=[...t],n=(e,[t,l])=>(e[t]=l,e),r={},l.reduce(n,r)):t;var l,n,r})),v=JSON.parse,f=isFinite,h=(e,t)=>e instanceof t,T=e=>null==e,b=(e,t,l)=>T(e)?null==l?void 0:l():t(e),g=e=>e==t||e==l,w=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},R=e=>T(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>null==e?void 0:e.forEach(t),p=(e,t)=>null==e?void 0:e.delete(t),S=e=>new Map(e),I=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},L=(e,t)=>null==e?void 0:e.get(t),E=(e,t)=>C(e,((e,l)=>t(l,e))),J=(e,t,l)=>T(l)?(p(e,t),e):null==e?void 0:e.set(t,l),m=(e,t,l)=>(w(e,t)||J(e,t,l()),L(e,t)),F=(e,t,l)=>{const n={},r=null!=t?t:e=>e;return C(e,((e,t)=>b(r(e),(e=>(null==l?void 0:l(e))?0:n[t]=e)))),n},z=(e,t)=>{const l=S(),n=null!=t?t:e=>e;return C(e,((e,t)=>l.set(t,n(e)))),l},O=e=>z(e,z),k=(e,t,l,n,r=0)=>b((l?m:L)(e,t[r],r>i(t)-2?l:S),(s=>{if(r>i(t)-2)return(null==n?void 0:n(s))&&J(e,t[r]),s;const o=k(s,t,l,n,r+1);return R(s)&&J(e,t[r]),o})),A=Object,M=A.keys,N=A.isFrozen,j=A.freeze,x=(e,t)=>!T(((e,t)=>b(e,(e=>e[t])))(e,t)),D=(e,t)=>delete e[t],P=(e,t)=>o(A.entries(e),(([e,l])=>t(l,e))),W=e=>{return t=M(e),0==i(t);var t},$=e=>new Set(Array.isArray(e)||T(e)?e:[e]),q=(e,t)=>null==e?void 0:e.add(t),B=/^\d+$/,G=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:""+t++},t=>{B.test(t)&&i(e)<1e3&&d(e,t)}]},H=e=>{let t;const[l,n]=G(),r=S();return[(n,s,o)=>{null!=t||(t=e());const a=l();return J(r,a,[n,s,o]),q(k(s,null!=o?o:[""],$),a),a},(e,l,...n)=>o(((e,t=[""])=>{const l=[],n=(e,r)=>r==i(t)?d(l,e):null===t[r]?C(e,(e=>n(e,r+1))):o([t[r],null],(t=>n(L(e,t),r+1)));return n(e,0),l})(e,l),(e=>C(e,(e=>L(r,e)[0](t,...null!=l?l:[],...n))))),e=>b(L(r,e),(([,t,l])=>(k(t,null!=l?l:[""],void 0,(t=>(p(t,e),R(t)?1:0))),J(r,e),n(e),l))),(e,l,n)=>b(L(r,e),(([e,,r=[]])=>{const s=(...a)=>{const u=i(a);u==i(r)?e(t,...a,...n(a)):T(r[u])?o(l[u](...a),(e=>s(...a,e))):s(...a,r[u])};s()}))]},K=e=>[e,e],Q=()=>[S(),S()],U=t=>{const l=e(t);return g(l)||l==n&&f(t)?l:void 0},V=(e,t,l,n=J)=>{const r=(s=I(e),a=e=>!x(t,e),s.filter(a));var s,a;return o(M(t),(n=>l(e,n,t[n]))),o(r,(t=>n(e,t))),e},X=(e,t,l)=>T(e)||!(e=>h(e,A)&&e.constructor==A)(e)||W(e)||N(e)?(null==l||l(),!1):(P(e,((l,n)=>{t(l,n)||D(e,n)})),!W(e)),Y=(e,t,l)=>J(e,t,L(e,t)==-l?void 0:l),Z=()=>{let t,l,f=0;const h=S(),k=S(),A=S(),M=S(),N=S(),B=S(),_=S(),ee=S(),te=S(),le=Q(),ne=Q(),re=Q(),se=Q(),oe=Q(),ae=Q(),ie=Q(),ue=Q(),de=Q(),ce=Q(),[ve,fe,he,Te]=H((()=>Ze)),be=(e,l)=>(!t||w(B,l)||Ne(l))&&X(e,((e,t)=>ge(l,t,e)),(()=>Ne(l))),ge=(e,t,l,n)=>X(n?l:Re(l,e,t),((n,r)=>b(we(e,t,r,n),(e=>(l[r]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(e,l,n,r)=>t?b(L(L(B,e),n),(t=>U(r)!=t.type?Ne(e,l,n,r,t.default):r),(()=>Ne(e,l,n,r))):T(U(r))?Ne(e,l,n,r):r,Re=(e,t,l)=>(b(L(_,t),(([n,r])=>{C(n,((t,l)=>{x(e,l)||(e[l]=t)})),C(r,(n=>{x(e,n)||Ne(t,l,n)}))})),e),ye=e=>V(B,e,((e,t,l)=>{const n=S(),r=$();V(m(B,t,S),l,((e,t,l)=>{J(e,t,l),b(l.default,(e=>J(n,t,e)),(()=>q(r,t)))})),J(_,t,[n,r])}),((e,t)=>{J(B,t),J(_,t)})),Ce=e=>V(te,e,((e,t,l)=>pe(t,l)),((e,t)=>me(t))),pe=(e,t)=>V(m(te,e,(()=>(Oe(e,1),S()))),t,((t,l,n)=>Se(e,t,l,n)),((t,l)=>Fe(e,t,l))),Se=(e,t,l,n,r)=>V(m(t,l,(()=>(ke(e,l,1),S()))),n,((t,n,r)=>Ie(e,l,t,n,r)),((n,s)=>ze(e,t,l,n,s,r))),Ie=(e,t,l,n,r)=>{w(l,n)||Ae(e,t,n,1);const s=L(l,n);r!==s&&(Me(e,t,n,s,r),J(l,n,r))},Le=(e,t,l,n,r)=>b(L(t,l),(t=>Ie(e,l,t,n,r)),(()=>Se(e,t,l,Re({[n]:r},e,l)))),Ee=e=>{const[t]=m(ee,e,G),l=t();return w(L(te,e),l)?Ee(e):l},Je=e=>{var t;return null!=(t=L(te,e))?t:pe(e,{})},me=e=>pe(e,{}),Fe=(e,t,l)=>{const[,n]=m(ee,e,G);n(l),Se(e,t,l,{},!0)},ze=(e,t,l,n,r,s)=>{var o;const a=L(null==(o=L(_,e))?void 0:o[0],r);if(!T(a)&&!s)return Ie(e,l,n,r,a);const i=t=>{Me(e,l,t,L(n,t)),Ae(e,l,t,-1),J(n,t)};T(a)?i(r):E(n,i),R(n)&&(ke(e,l,-1),R(J(t,l))&&(Oe(e,-1),J(te,e)))},Oe=(e,t)=>Y(h,e,t),ke=(e,t,l)=>Y(m(k,e,S),t,l),Ae=(e,t,l,n)=>Y(m(m(A,e,S),t,S),l,n),Me=(e,t,l,n,r)=>m(m(m(M,e,S),t,S),l,(()=>[n,0]))[1]=r,Ne=(e,t,l,n,r)=>(d(m(m(m(N,e,S),t,S),l,(()=>[])),n),r),je=(e,t,l)=>b(L(L(L(M,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Ke(e,t,l))])),xe=e=>R(N)||R(de[e])?0:C(e?z(N,O):N,((t,l)=>C(t,((t,n)=>C(t,((t,r)=>fe(de[e],[l,n,r],t))))))),De=(e,t,l)=>{if(!R(t))return fe(e,l),1},Pe=e=>{const t=R(oe[e]),l=R(ie[e])&&R(se[e])&&t&&R(ne[e]),n=R(ue[e])&&R(ae[e])&&R(re[e])&&R(le[e]);if(!l||!n){const r=e?[z(h),O(k),z(A,O),z(M,O)]:[h,k,A,M];if(!l){C(r[2],((t,l)=>C(t,((t,n)=>De(ie[e],t,[l,n])))));const l=$();C(r[1],((n,r)=>{De(se[e],n,[r])&&!t&&(fe(oe[e],[r,null]),q(l,r))})),t||C(r[3],((t,n)=>{if(!w(l,n)){const l=$();C(t,(e=>C(e,(([t,n],r)=>n!==t?q(l,r):p(e,r))))),C(l,(t=>fe(oe[e],[n,t])))}})),De(ne[e],r[0])}if(!n){let t;C(r[3],((l,n)=>{let r;C(l,((l,s)=>{let o;C(l,(([l,a],i)=>{a!==l&&(fe(ue[e],[n,s,i],a,l,je),t=r=o=1)})),o&&fe(ae[e],[n,s],je)})),r&&fe(re[e],[n],je)})),t&&fe(le[e],void 0,je)}}},We=(e,...t)=>(Ve((()=>e(...a(t,s)))),Ze),$e=()=>F(te,(e=>F(e,F))),qe=()=>I(te),Be=e=>I(L(te,s(e))),Ge=(e,t,l,n=0,r)=>{const o=[];return E(L(te,s(e)),((e,l)=>d(o,[T(t)?e:L(l,s(t)),e]))),a(u(o.sort((([e],[t])=>(e<t?-1:1)*(l?-1:1))),n,T(r)?r:n+r),(([,e])=>e))},He=(e,t)=>I(L(L(te,s(e)),s(t))),Ke=(e,t,l)=>L(L(L(te,s(e)),s(t)),s(l)),Qe=e=>We((()=>(e=>X(e,be,Ne))(e)?Ce(e):0)),Ue=()=>We((()=>Ce({}))),Ve=(e,t)=>{if(-1==f)return;Xe();const l=null==e?void 0:e();return Ye(t),l},Xe=()=>(f++,Ze),Ye=e=>(f>0&&(f--,0==f&&(l=!R(M),f=1,xe(1),l&&Pe(1),f=-1,(null==e?void 0:e(F(M,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),W)),W),F(N,(e=>F(e,F)))))&&(f=1,C(M,((e,t)=>C(e,((e,l)=>C(e,(([e],n)=>((e,t,l,n,r)=>T(r)?e.delCell(t,l,n,!0):e.setCell(t,l,n,r))(Ze,t,l,n,e))))))),f=-1,l=!1),fe(ce[0],void 0,l),xe(0),l&&Pe(0),fe(ce[1],void 0,l),f=0,o([M,N,h,k,A],y))),Ze),Ze={getTables:$e,getTableIds:qe,getTable:e=>F(L(te,s(e)),F),getRowIds:Be,getSortedRowIds:Ge,getRow:(e,t)=>F(L(L(te,s(e)),s(t))),getCellIds:He,getCell:Ke,hasTables:()=>!R(te),hasTable:e=>w(te,s(e)),hasRow:(e,t)=>w(L(te,s(e)),s(t)),hasCell:(e,t,l)=>w(L(L(te,s(e)),s(t)),s(l)),getJson:()=>c(te),getSchemaJson:()=>c(B),setTables:Qe,setTable:(e,t)=>We((e=>be(t,e)?pe(e,t):0),e),setRow:(e,t,l)=>We(((e,t)=>ge(s(e),s(t),l)?Se(s(e),Je(s(e)),s(t),l):0),e,t),addRow:(e,t)=>Ve((()=>{let l;return ge(e,l,t)&&(e=s(e),Se(e,Je(e),l=Ee(e),t)),l})),setPartialRow:(e,t,l)=>We(((e,t)=>{if(ge(e,t,l,1)){const n=Je(e);P(l,((l,r)=>Le(e,n,t,r,l)))}}),e,t),setCell:(t,l,n,s)=>We(((t,l,n)=>b(we(t,l,n,e(s)==r?s(Ke(t,l,n)):s),(e=>Le(t,Je(t),l,n,e)))),t,l,n),setJson:e=>{try{"{}"===e?Ue():Qe(v(e))}catch(e){}return Ze},setSchema:e=>We((()=>{if((t=(e=>X(e,(e=>X(e,(e=>{if(!X(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!g(t)&&t!=n||(U(e.default)!=t&&D(e,"default"),0))})))))(e))&&(ye(e),!R(te))){const e=$e();Ue(),Qe(e)}})),delTables:Ue,delTable:e=>We((e=>w(te,e)?me(e):0),e),delRow:(e,t)=>We(((e,t)=>b(L(te,e),(l=>w(l,t)?Fe(e,l,t):0))),e,t),delCell:(e,t,l,n)=>We(((e,t,l)=>b(L(te,e),(r=>b(L(r,t),(s=>w(s,l)?ze(e,r,t,s,l,n):0))))),e,t,l),delSchema:()=>We((()=>{ye({}),t=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>C(te,((t,l)=>e(l,(e=>C(t,((t,l)=>e(l,(e=>E(t,e))))))))),forEachRow:(e,t)=>C(L(te,s(e)),((e,l)=>t(l,(t=>E(e,t))))),forEachCell:(e,t,l)=>E(L(L(te,s(e)),s(t)),l),addSortedRowIdsListener:(e,t,l,n,r,s,o)=>{let a=Ge(e,t,l,n,r);return ve((()=>{const o=Ge(e,t,l,n,r);var u,d,c;d=a,i(u=o)===i(d)&&(c=(e,t)=>d[t]===e,u.every(c))||(a=o,s(Ze,e,t,l,n,r,a))}),oe[o?1:0],[e,t])},addWillFinishTransactionListener:e=>ve(e,ce[0]),addDidFinishTransactionListener:e=>ve(e,ce[1]),callListener:e=>(Te(e,[qe,Be,He],(e=>T(e[2])?[]:K(Ke(...e)))),Ze),delListener:e=>(he(e),Ze),getListenerStats:()=>({}),createStore:Z};return P({Tables:[0,le],TableIds:[0,ne],Table:[1,re],RowIds:[1,se],Row:[2,ae],CellIds:[2,ie],Cell:[3,ue],InvalidCell:[3,de]},(([e,t],l)=>{Ze["add"+l+"Listener"]=(...l)=>ve(l[e],t[l[e+1]?1:0],e>0?u(l,0,e):void 0)})),j(Ze)};export{Z as createStore};
Binary file
@@ -1 +1 @@
1
- import{watch as e,promises as t}from"fs";const n=e=>typeof e,o=n(""),r=n(!0),l=n(0),s=n(n),i=e=>""+e,a=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>d(e,((n,o)=>0==o||t(e[o-1],n)<=0)),u=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),f=e=>p(e,((e,t)=>e+t),0),g=e=>e.length,w=e=>0==g(e),p=(e,t,n)=>e.reduce(t,n),L=(e,t,n)=>e.slice(t,n),y=(e,...t)=>e.push(...t),R=e=>e.pop(),I=e=>e.shift(),S=e=>JSON.stringify(e,((e,t)=>x(t,Map)?p([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),T=JSON.parse,b=Math.max,m=Math.min,C=isFinite,x=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,n)=>E(e)?null==n?void 0:n():t(e),M=e=>e==o||e==r,P=e=>n(e)==s,D=()=>{},O=e=>e.size,A=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},F=e=>E(e)||0==O(e),J=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},j=e=>e.clear(),Q=(e,t)=>null==e?void 0:e.forEach(t),z=(e,t)=>null==e?void 0:e.delete(t),N=e=>new Map(e),W=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},B=(e,t)=>null==e?void 0:e.get(t),H=(e,t)=>Q(e,((e,n)=>t(n,e))),$=(e,t,n)=>E(n)?(z(e,t),e):null==e?void 0:e.set(t,n),q=(e,t,n)=>(A(e,t)||$(e,t,n()),B(e,t)),G=(e,t,n)=>{const o={},r=null!=t?t:e=>e;return Q(e,((e,t)=>k(r(e),(e=>(null==n?void 0:n(e))?0:o[t]=e)))),o},K=(e,t)=>{const n=N(),o=null!=t?t:e=>e;return Q(e,((e,t)=>n.set(t,o(e)))),n},U=e=>K(e,K),V=(e,t,n,o,r=0)=>k((n?q:B)(e,t[r],r>g(t)-2?n:N),(l=>{if(r>g(t)-2)return(null==o?void 0:o(l))&&$(e,t[r]),l;const s=V(l,t,n,o,r+1);return F(l)&&$(e,t[r]),s})),X=e=>new Set(e),Y=(e,t)=>null==e?void 0:e.add(t),Z=(e,t,n)=>{const o=e.hasRow,r=N(),l=N(),s=N(),i=N(),a=N(),d=(t,n,...o)=>{const r=q(a,t,X);return v(o,(t=>Y(r,t)&&n&&e.callListener(t))),o},c=(t,...n)=>k(B(a,t),(o=>{v(w(n)?J(o):n,(t=>{e.delListener(t),z(o,t)})),F(o)&&$(a,t)})),u=(e,n)=>{$(r,e,n),A(l,e)||($(l,e,t()),$(s,e,N()),$(i,e,N()))},h=e=>{$(r,e),$(l,e),$(s,e),$(i,e),c(e)};return[()=>e,()=>W(r),e=>H(l,e),e=>A(l,e),e=>B(r,e),e=>B(l,e),(e,t)=>$(l,e,t),u,(t,r,l,a,h)=>{u(t,r);const f=N(),g=N(),w=B(s,t),p=B(i,t),L=t=>{const l=n=>e.getCell(r,t,n),s=B(w,t),i=o(r,t)?n(a(l,t)):void 0;if(s!=i&&$(f,t,[s,i]),!E(h)){const e=B(p,t),n=o(r,t)?h(l,t):void 0;e!=n&&$(g,t,n)}},y=e=>{l((()=>{Q(f,(([,e],t)=>$(w,t,e))),Q(g,((e,t)=>$(p,t,e)))}),f,g,w,p,e),j(f),j(g)};H(w,L),e.hasTable(r)&&v(e.getRowIds(r),(e=>{A(w,e)||L(e)})),y(!0),c(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>L(n))),e.addTableListener(r,(()=>y())))},h,()=>H(a,h),d,c]},_=(e,t)=>n(e)==o?t=>t(e):null!=e?e:()=>null!=t?t:"",ee=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},te=/^\d+$/,ne=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=I(e))?n:""+t++},t=>{te.test(t)&&g(e)<1e3&&y(e,t)}]},oe=e=>{let t;const[n,o]=ne(),r=N();return[(o,l,s)=>{null!=t||(t=e());const i=n();return $(r,i,[o,l,s]),Y(V(l,null!=s?s:[""],X),i),i},(e,n,...o)=>v(((e,t=[""])=>{const n=[],o=(e,r)=>r==g(t)?y(n,e):null===t[r]?Q(e,(e=>o(e,r+1))):v([t[r],null],(t=>o(B(e,t),r+1)));return o(e,0),n})(e,n),(e=>Q(e,(e=>B(r,e)[0](t,...null!=n?n:[],...o))))),e=>k(B(r,e),(([,t,n])=>(V(t,null!=n?n:[""],void 0,(t=>(z(t,e),F(t)?1:0))),$(r,e),o(e),n))),(e,n,o)=>k(B(r,e),(([e,,r=[]])=>{const l=(...s)=>{const i=g(s);i==g(r)?e(t,...s,...o(s)):E(r[i])?v(n[i](...s),(e=>l(...s,e))):l(...s,r[i])};l()}))]},re=Object,le=re.keys,se=re.isFrozen,ie=re.freeze,ae=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),de=(e,t)=>delete e[t],ce=(e,t)=>v(re.entries(e),(([e,n])=>t(n,e))),ue=e=>w(le(e)),ve=e=>{const t=n(e);return M(t)||t==l&&C(e)?t:void 0},he=(e,t,n,o,r)=>E(r)?e.delCell(t,n,o,!0):e.setCell(t,n,o,r),fe=ee((e=>{let t,n,o,r=100,l=N(),s=1;const i=N(),d=N(),[c,u,h]=oe((()=>W)),f=N(),p=N(),L=[],S=[],T=(t,n)=>{s=0,e.transaction((()=>Q(B(f,n),((n,o)=>Q(n,((n,r)=>Q(n,((n,l)=>he(e,o,r,l,n[t]))))))))),s=1},b=e=>{$(f,e),$(p,e),u(d,[e])},m=(e,t)=>v(((e,t)=>e.splice(0,t))(e,null!=t?t:g(e)),b),C=()=>m(L,g(L)-r),x=e.addCellListener(null,null,null,((e,n,r,i,a,d)=>{if(s){k(t,(()=>{y(L,t),C(),m(S),t=void 0,o=1}));const e=q(l,n,N),s=q(e,r,N),c=q(s,i,(()=>[d,void 0]));c[1]=a,c[0]===a&&F($(s,i))&&F($(e,r))&&F($(l,n))&&(t=R(L),o=1),O()}})),M=(e="")=>(E(t)&&(t=""+n++,$(f,t,l),j(t,e),l=N(),o=1),t),P=()=>{w(L)||(S.unshift(M()),T(0,t),t=R(L),o=1)},D=()=>{w(S)||(y(L,t),t=I(S),T(1,t),o=1)},O=()=>{o&&(u(i),o=0)},J=e=>{const t=M(e);return O(),t},j=(e,t)=>(z(e)&&B(p,e)!==t&&($(p,e,t),u(d,[e])),W),z=e=>A(f,e),W={setSize:e=>(r=e,C(),W),addCheckpoint:J,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...L],t,[...S]],forEachCheckpoint:e=>H(p,e),hasCheckpoint:z,getCheckpoint:e=>B(p,e),goBackward:()=>(P(),O(),W),goForward:()=>(D(),O(),W),goTo:e=>{const n=a(L,e)?P:a(S,e)?D:null;for(;!E(n)&&e!=t;)n();return O(),W},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(h(e),W),clear:()=>(m(L),m(S),E(t)||b(t),t=void 0,n=0,J(),W),destroy:()=>{e.delListener(x)},getListenerStats:()=>({})};return ie(W.clear())})),ge=(e,t)=>e<t?-1:1,we=ee((e=>{const t=N(),n=N(),[o,r,l,s,i,a,d,,v,h,f]=Z(e,N,(e=>E(e)?"":e+"")),[g,w,p]=oe((()=>y)),L=(t,n,o)=>{const r=i(t);Q(o,((t,o)=>n(o,(n=>Q(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},y={setIndexDefinition:(e,o,r,l,s,i=ge)=>{const h=E(s)?void 0:([e],[t])=>s(e,t);return v(e,o,((o,r,s,v,f,g)=>{let p=0;const L=X(),y=X(),R=a(e);if(Q(r,(([e,t],n)=>{E(e)||(Y(L,e),k(B(R,e),(t=>{z(t,n),F(t)&&($(R,e),p=1)}))),E(t)||(Y(L,t),A(R,t)||($(R,t,X()),p=1),Y(B(R,t),n),E(l)||Y(y,t))})),o(),F(f)||(g?H(R,(e=>Y(y,e))):H(s,(e=>k(B(v,e),(e=>Y(y,e))))),Q(y,(e=>{const t=(t,n)=>i(B(f,t),B(f,n),e),n=[...B(R,e)];c(n,t)||($(R,e,X(u(n,t))),Y(L,e))}))),(p||g)&&!E(h)){const t=[...R];c(t,h)||(d(e,N(u(t,h))),p=1)}p&&w(t,[e]),Q(L,(t=>w(n,[e,t])))}),_(r),k(l,_)),y},delIndexDefinition:e=>(h(e),y),getStore:o,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>L(t,e,n))))),forEachSlice:(e,t)=>L(e,t,a(e)),hasIndex:s,hasSlice:(e,t)=>A(a(e),t),getTableId:i,getSliceIds:e=>W(a(e)),getSliceRowIds:(e,t)=>J(B(a(e),t)),addSliceIdsListener:(e,n)=>g(n,t,[e]),addSliceRowIdsListener:(e,t,o)=>g(o,n,[e,t]),delListener:e=>(p(e),y),destroy:f,getListenerStats:()=>({})};return ie(y)})),pe=N([["avg",[(e,t)=>f(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,o)=>e+(t-n)/o]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Le=(e,t,n,o,r,l=!1)=>{if(F(n))return;const[s,i,a,d]=r;return l||(l=E(e)),Q(o,(([n,o])=>{l||(e=E(n)?null==i?void 0:i(e,o,t++):E(o)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,o,n,t),l||(l=E(e)))})),l?s(J(n),O(n)):e},ye=ee((e=>{const t=N(),[n,o,r,l,s,i,a,,d,c,u]=Z(e,D,(e=>isNaN(e)||E(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=oe((()=>g)),g={setMetricDefinition:(e,n,o,r,l,s,c)=>{var u;const v=P(o)?[o,l,s,c]:null!=(u=B(pe,o))?u:B(pe,"sum");return d(e,n,((n,o,r,l,s,d)=>{const c=i(e),u=O(l);d||(d=E(c)),n();let f=Le(c,u,l,o,v,d);C(f)||(f=void 0),f!=c&&(a(e,f),h(t,[e],f,c))}),_(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:o,forEachMetric:r,hasMetric:l,getTableId:s,getMetric:i,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return ie(g)}));var Re=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ie=(e,t,n,o,r)=>{let l,s=0;const i={load:n=>Re(void 0,null,(function*(){if(2!=s){s=1;const o=yield t();E(o)||""==o?e.setTables(n):e.setJson(o),s=0}return i})),startAutoLoad:e=>Re(void 0,null,(function*(){return i.stopAutoLoad(),yield i.load(e),o(i.load),i})),stopAutoLoad:()=>(r(),i),save:()=>Re(void 0,null,(function*(){return 1!=s&&(s=2,yield n(e.getJson()),s=0),i})),startAutoSave:()=>Re(void 0,null,(function*(){return yield i.stopAutoSave().save(),l=e.addTablesListener((()=>i.save())),i})),stopAutoSave:()=>(k(l,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ie(i)};var Se=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Te=globalThis.window,be=(e,t,n)=>{let o;return Ie(e,(()=>Se(void 0,null,(function*(){return n.getItem(t)}))),(e=>Se(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{o=o=>{o.storageArea===n&&o.key===t&&e()},Te.addEventListener("storage",o)}),(()=>{Te.removeEventListener("storage",o),o=void 0}))},me=(e,t)=>be(e,t,localStorage),Ce=(e,t)=>be(e,t,sessionStorage);var xe=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ee=(n,o)=>{let r;return Ie(n,(()=>xe(void 0,null,(function*(){try{return yield t.readFile(o,"utf8")}catch(e){}}))),(e=>xe(void 0,null,(function*(){try{yield t.writeFile(o,e,"utf8")}catch(e){}}))),(t=>{r=e(o,t)}),(()=>{null==r||r.close(),r=void 0}))};var ke=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Me=e=>e.headers.get("ETag"),Pe=(e,t,n,o)=>{let r,l;return Ie(e,(()=>ke(void 0,null,(function*(){const e=yield fetch(t);return l=Me(e),e.text()}))),(e=>ke(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{r=setInterval((()=>ke(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),o=Me(n);E(l)||E(o)||o==l||(l=o,e())}))),1e3*o)}),(()=>{k(r,clearInterval),r=void 0}))};var De=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable;const Fe=ee((e=>{const t=e.createStore,[n,o,r,l,s,,,i,,a,c,u,h]=Z(e,(()=>!0),D),f=t(),p=t(),R=N(),I=(e,t,...n)=>v(n,(n=>Y(q(q(R,t,N),e,X),n))),S=e=>{k(B(R,e),(e=>{H(e,((e,t)=>Q(t,(t=>e.delListener(t))))),j(e)})),v([p,f],(t=>t.delTable(e)))},T=(e,t,n)=>I(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,o)=>{i(t,n),S(t);const r=[],l=[[null,[n,null,null,[],N()]]],s=[],a=[],c=[];o({select:(e,t)=>{const n=P(e)?[g(r)+"",e]:[E(t)?e:t,n=>n(e,t)];return y(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const o=E(n)||P(t)?null:t,r=E(o)?t:n,s=[e,[e,o,P(r)?r:e=>e(r),[],N()]];return y(l,s),{as:e=>s[0]=e}},where:(e,t,n)=>y(s,P(e)?e:E(n)?n=>n(e)===t:o=>o(e,t)===n),group:(e,t,n,o,r)=>{var l;const s=[e,[e,P(t)?[t,n,o,r]:null!=(l=B(pe,t))?l:[(e,t)=>t]]];return y(a,s),{as:e=>s[0]=e}},having:(e,t)=>y(c,P(e)?e:n=>n(e)===t)});const L=N(r);if(F(L))return b;const R=N(l);H(R,((e,[,t])=>k(B(R,t),(({3:t})=>E(e)?0:y(t,e)))));const m=N(a);let C=f;if(F(m)&&w(c))C=p;else{T(t,C,p);const e=N();H(m,((t,[n,o])=>Y(q(e,n,X),[t,o])));const n=X();H(L,(t=>A(e,t)?0:Y(n,t)));const o=N(),r=(n,o,r,l)=>k(n,(([s,i,a,u])=>{H(o,((t,[n])=>{const o=q(s,t,N),i=B(o,r),a=l?void 0:n;if(i!==a){const n=X([[i,a]]),l=O(o);$(o,r,a),Q(B(e,t),(([e,t])=>{const r=Le(u[e],l,o,n,t);u[e]=E(ve(r))?null:r}))}})),F(i)||!d(c,(e=>e((e=>u[e]))))?p.delRow(t,a):E(a)?n[2]=p.addRow(t,u):p.setRow(t,a,u)}));I(C,t,C.addRowListener(t,null,((l,s,i,a)=>{const d=[],c=[],u=N(),v=C.hasRow(t,i);let h=!v;Q(n,(e=>{const[n,o,r]=a(t,i,e);y(d,o),y(c,r),h||(h=n)})),H(e,(e=>{const[n,,o]=a(t,i,e);(h||n)&&$(u,e,[o])})),h&&r(V(o,d,void 0,(([,e])=>(z(e,i),F(e)))),u,i,1),v&&r(V(o,c,(()=>{const e={};return Q(n,(n=>e[n]=C.getCell(t,i,n))),[N(),X(),void 0,e]}),(([,e])=>{Y(e,i)})),u,i)})))}T(t,e,C);const x=(o,r,l,i)=>{const a=t=>e.getCell(r,l,t);v(i,(n=>{var r;const[l,,s,i,d]=B(R,n),c=null==s?void 0:s(a,o),[v,f]=null!=(r=B(d,o))?r:[];c!=v&&(E(f)||h(t,f),$(d,o,E(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>x(o,l,c,i))))]))})),(o=>{const r=(t,r)=>{var l,s,i;return e.getCell(...E(r)?[n,o,t]:t===n?[n,o,r]:[null==(l=B(R,t))?void 0:l[0],null==(i=B(null==(s=B(R,t))?void 0:s[4],o))?void 0:i[0],r])};C.transaction((()=>d(s,(e=>e(r)))?H(L,((e,n)=>he(C,t,o,e,n(r,o)))):C.delRow(t,o)))})(o)},{3:M}=B(R,null);return C.transaction((()=>u(t,1,e.addRowListener(n,null,((o,r,l)=>{e.hasRow(n,l)?x(l,n,l,M):(C.delRow(t,l),Q(R,(({4:e})=>k(B(e,l),(([,n])=>{h(t,n),$(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),a(e),b),getStore:n,getQueryIds:o,forEachQuery:r,hasQuery:l,getTableId:s,delListener:e=>(p.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var o in e)Oe.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&De)for(var o of De(e))t.indexOf(o)<0&&Ae.call(e,o)&&(n[o]=e[o]);return n})(p.getListenerStats(),["tables","tableIds","transaction"])};return ce({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>p[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>p["add"+n+"Listener"](...L(e,0,t),((n,...o)=>e[t](b,...o)))})),ie(b)})),Je=ee((e=>{const t=N(),n=N(),o=N(),r=N(),[l,s,i,a,d,c,,,u,v,h]=Z(e,(()=>[N(),N(),N(),N()]),(e=>E(e)?void 0:e+"")),[f,g,w]=oe((()=>R)),p=(e,t,n)=>k(c(e),(([o,,r])=>{if(!A(r,t)){const l=X();if(d(e)!=y(e))Y(l,t);else{let e=t;for(;!E(e)&&!A(l,e);)Y(l,e),e=B(o,e)}if(n)return l;$(r,t,l)}return B(r,t)})),L=(e,t)=>k(c(e),(([,,e])=>$(e,t))),y=e=>B(t,e),R={setRelationshipDefinition:(e,l,s,i)=>($(t,e,s),u(e,l,((t,l)=>{const s=X(),i=X(),a=X(),[d,u]=c(e);Q(l,(([t,n],o)=>{E(t)||(Y(i,t),k(B(u,t),(e=>{z(e,o),F(e)&&$(u,t)}))),E(n)||(Y(i,n),A(u,n)||$(u,n,X()),Y(B(u,n),o)),Y(s,o),$(d,o,n),H(B(r,e),(t=>{A(p(e,t),o)&&Y(a,t)}))})),t(),Q(s,(t=>g(n,[e,t]))),Q(i,(t=>g(o,[e,t]))),Q(a,(t=>{L(e,t),g(r,[e,t])}))}),_(i)),R),delRelationshipDefinition:e=>($(t,e),v(e),R),getStore:l,getRelationshipIds:s,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:a,getLocalTableId:d,getRemoteTableId:y,getRemoteRowId:(e,t)=>{var n;return B(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return J(B(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>E(c(e))?[t]:J(p(e,t,!0)),addRemoteRowIdListener:(e,t,o)=>f(o,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(p(e,t),f(n,r,[e,t])),delListener:e=>(L(...w(e)),R),destroy:h,getListenerStats:()=>({})};return ie(R)})),je=e=>[e,e],Qe=()=>[N(),N()],ze=(e,t,n,o=$)=>{const r=(l=W(e),s=e=>!ae(t,e),l.filter(s));var l,s;return v(le(t),(o=>n(e,o,t[o]))),v(r,(t=>o(e,t))),e},Ne=(e,t,n)=>E(e)||!(e=>x(e,re)&&e.constructor==re)(e)||ue(e)||se(e)?(null==n||n(),!1):(ce(e,((n,o)=>{t(n,o)||de(e,o)})),!ue(e)),We=(e,t,n)=>$(e,t,B(e,t)==-n?void 0:n),Be=()=>{let e,t,n=0;const o=N(),r=N(),s=N(),c=N(),f=N(),w=N(),p=N(),R=N(),I=N(),b=Qe(),m=Qe(),C=Qe(),x=Qe(),D=Qe(),O=Qe(),J=Qe(),V=Qe(),Z=Qe(),_=Qe(),[ee,te,re,le]=oe((()=>nt)),se=(t,n)=>(!e||A(w,n)||Oe(n))&&Ne(t,((e,t)=>fe(n,t,e)),(()=>Oe(n))),fe=(e,t,n,o)=>Ne(o?n:pe(n,e,t),((o,r)=>k(we(e,t,r,o),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Oe(e,t))),we=(t,n,o,r)=>e?k(B(B(w,t),o),(e=>ve(r)!=e.type?Oe(t,n,o,r,e.default):r),(()=>Oe(t,n,o,r))):E(ve(r))?Oe(t,n,o,r):r,pe=(e,t,n)=>(k(B(p,t),(([o,r])=>{Q(o,((t,n)=>{ae(e,n)||(e[n]=t)})),Q(r,(o=>{ae(e,o)||Oe(t,n,o)}))})),e),Le=e=>ze(w,e,((e,t,n)=>{const o=N(),r=X();ze(q(w,t,N),n,((e,t,n)=>{$(e,t,n),k(n.default,(e=>$(o,t,e)),(()=>Y(r,t)))})),$(p,t,[o,r])}),((e,t)=>{$(w,t),$(p,t)})),ye=e=>ze(I,e,((e,t,n)=>Re(t,n)),((e,t)=>Ce(t))),Re=(e,t)=>ze(q(I,e,(()=>(ke(e,1),N()))),t,((t,n,o)=>Ie(e,t,n,o)),((t,n)=>xe(e,t,n))),Ie=(e,t,n,o,r)=>ze(q(t,n,(()=>(Me(e,n,1),N()))),o,((t,o,r)=>Se(e,n,t,o,r)),((o,l)=>Ee(e,t,n,o,l,r))),Se=(e,t,n,o,r)=>{A(n,o)||Pe(e,t,o,1);const l=B(n,o);r!==l&&(De(e,t,o,l,r),$(n,o,r))},Te=(e,t,n,o,r)=>k(B(t,n),(t=>Se(e,n,t,o,r)),(()=>Ie(e,t,n,pe({[o]:r},e,n)))),be=e=>{const[t]=q(R,e,ne),n=t();return A(B(I,e),n)?be(e):n},me=e=>{var t;return null!=(t=B(I,e))?t:Re(e,{})},Ce=e=>Re(e,{}),xe=(e,t,n)=>{const[,o]=q(R,e,ne);o(n),Ie(e,t,n,{},!0)},Ee=(e,t,n,o,r,l)=>{var s;const i=B(null==(s=B(p,e))?void 0:s[0],r);if(!E(i)&&!l)return Se(e,n,o,r,i);const a=t=>{De(e,n,t,B(o,t)),Pe(e,n,t,-1),$(o,t)};E(i)?a(r):H(o,a),F(o)&&(Me(e,n,-1),F($(t,n))&&(ke(e,-1),$(I,e)))},ke=(e,t)=>We(o,e,t),Me=(e,t,n)=>We(q(r,e,N),t,n),Pe=(e,t,n,o)=>We(q(q(s,e,N),t,N),n,o),De=(e,t,n,o,r)=>q(q(q(c,e,N),t,N),n,(()=>[o,0]))[1]=r,Oe=(e,t,n,o,r)=>(y(q(q(q(f,e,N),t,N),n,(()=>[])),o),r),Ae=(e,t,n)=>k(B(B(B(c,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...je(Xe(e,t,n))])),Fe=e=>F(f)||F(Z[e])?0:Q(e?K(f,U):f,((t,n)=>Q(t,((t,o)=>Q(t,((t,r)=>te(Z[e],[n,o,r],t))))))),Je=(e,t,n)=>{if(!F(t))return te(e,n),1},He=e=>{const t=F(D[e]),n=F(J[e])&&F(x[e])&&t&&F(m[e]),l=F(V[e])&&F(O[e])&&F(C[e])&&F(b[e]);if(!n||!l){const i=e?[K(o),U(r),K(s,U),K(c,U)]:[o,r,s,c];if(!n){Q(i[2],((t,n)=>Q(t,((t,o)=>Je(J[e],t,[n,o])))));const n=X();Q(i[1],((o,r)=>{Je(x[e],o,[r])&&!t&&(te(D[e],[r,null]),Y(n,r))})),t||Q(i[3],((t,o)=>{if(!A(n,o)){const n=X();Q(t,(e=>Q(e,(([t,o],r)=>o!==t?Y(n,r):z(e,r))))),Q(n,(t=>te(D[e],[o,t])))}})),Je(m[e],i[0])}if(!l){let t;Q(i[3],((n,o)=>{let r;Q(n,((n,l)=>{let s;Q(n,(([n,i],a)=>{i!==n&&(te(V[e],[o,l,a],i,n,Ae),t=r=s=1)})),s&&te(O[e],[o,l],Ae)})),r&&te(C[e],[o],Ae)})),t&&te(b[e],void 0,Ae)}}},$e=(e,...t)=>(_e((()=>e(...h(t,i)))),nt),qe=()=>G(I,(e=>G(e,G))),Ge=()=>W(I),Ke=e=>W(B(I,i(e))),Ue=(e,t,n,o=0,r)=>{const l=[];return H(B(I,i(e)),((e,n)=>y(l,[E(t)?e:B(n,i(t)),e]))),h(L(u(l,(([e],[t])=>ge(e,t)*(n?-1:1))),o,E(r)?r:o+r),(([,e])=>e))},Ve=(e,t)=>W(B(B(I,i(e)),i(t))),Xe=(e,t,n)=>B(B(B(I,i(e)),i(t)),i(n)),Ye=e=>$e((()=>(e=>Ne(e,se,Oe))(e)?ye(e):0)),Ze=()=>$e((()=>ye({}))),_e=(e,t)=>{if(-1==n)return;et();const o=null==e?void 0:e();return tt(t),o},et=()=>(n++,nt),tt=e=>(n>0&&(n--,0==n&&(t=!F(c),n=1,Fe(1),t&&He(1),n=-1,(null==e?void 0:e(G(c,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),ue)),ue),G(f,(e=>G(e,G)))))&&(n=1,Q(c,((e,t)=>Q(e,((e,n)=>Q(e,(([e],o)=>he(nt,t,n,o,e))))))),n=-1,t=!1),te(_[0],void 0,t),Fe(0),t&&He(0),te(_[1],void 0,t),n=0,v([c,f,o,r,s],j))),nt),nt={getTables:qe,getTableIds:Ge,getTable:e=>G(B(I,i(e)),G),getRowIds:Ke,getSortedRowIds:Ue,getRow:(e,t)=>G(B(B(I,i(e)),i(t))),getCellIds:Ve,getCell:Xe,hasTables:()=>!F(I),hasTable:e=>A(I,i(e)),hasRow:(e,t)=>A(B(I,i(e)),i(t)),hasCell:(e,t,n)=>A(B(B(I,i(e)),i(t)),i(n)),getJson:()=>S(I),getSchemaJson:()=>S(w),setTables:Ye,setTable:(e,t)=>$e((e=>se(t,e)?Re(e,t):0),e),setRow:(e,t,n)=>$e(((e,t)=>fe(i(e),i(t),n)?Ie(i(e),me(i(e)),i(t),n):0),e,t),addRow:(e,t)=>_e((()=>{let n;return fe(e,n,t)&&(e=i(e),Ie(e,me(e),n=be(e),t)),n})),setPartialRow:(e,t,n)=>$e(((e,t)=>{if(fe(e,t,n,1)){const o=me(e);ce(n,((n,r)=>Te(e,o,t,r,n)))}}),e,t),setCell:(e,t,n,o)=>$e(((e,t,n)=>k(we(e,t,n,P(o)?o(Xe(e,t,n)):o),(o=>Te(e,me(e),t,n,o)))),e,t,n),setJson:e=>{try{"{}"===e?Ze():Ye(T(e))}catch(e){}return nt},setSchema:t=>$e((()=>{if((e=(e=>Ne(e,(e=>Ne(e,(e=>{if(!Ne(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!M(t)&&t!=l||(ve(e.default)!=t&&de(e,"default"),0))})))))(t))&&(Le(t),!F(I))){const e=qe();Ze(),Ye(e)}})),delTables:Ze,delTable:e=>$e((e=>A(I,e)?Ce(e):0),e),delRow:(e,t)=>$e(((e,t)=>k(B(I,e),(n=>A(n,t)?xe(e,n,t):0))),e,t),delCell:(e,t,n,o)=>$e(((e,t,n)=>k(B(I,e),(r=>k(B(r,t),(l=>A(l,n)?Ee(e,r,t,l,n,o):0))))),e,t,n),delSchema:()=>$e((()=>{Le({}),e=!1})),transaction:_e,startTransaction:et,finishTransaction:tt,forEachTable:e=>Q(I,((t,n)=>e(n,(e=>Q(t,((t,n)=>e(n,(e=>H(t,e))))))))),forEachRow:(e,t)=>Q(B(I,i(e)),((e,n)=>t(n,(t=>H(e,t))))),forEachCell:(e,t,n)=>H(B(B(I,i(e)),i(t)),n),addSortedRowIdsListener:(e,t,n,o,r,l,s)=>{let i=Ue(e,t,n,o,r);return ee((()=>{const s=Ue(e,t,n,o,r);var a,c;c=i,g(a=s)===g(c)&&d(a,((e,t)=>c[t]===e))||(i=s,l(nt,e,t,n,o,r,i))}),D[s?1:0],[e,t])},addWillFinishTransactionListener:e=>ee(e,_[0]),addDidFinishTransactionListener:e=>ee(e,_[1]),callListener:e=>(le(e,[Ge,Ke,Ve],(e=>E(e[2])?[]:je(Xe(...e)))),nt),delListener:e=>(re(e),nt),getListenerStats:()=>({}),createStore:Be};return ce({Tables:[0,b],TableIds:[0,m],Table:[1,C],RowIds:[1,x],Row:[2,O],CellIds:[2,J],Cell:[3,V],InvalidCell:[3,Z]},(([e,t],n)=>{nt["add"+n+"Listener"]=(...n)=>ee(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0)})),ie(nt)};export{fe as createCheckpoints,Ie as createCustomPersister,Ee as createFilePersister,we as createIndexes,me as createLocalPersister,ye as createMetrics,Fe as createQueries,Je as createRelationships,Pe as createRemotePersister,Ce as createSessionPersister,Be as createStore,ge as defaultSorter};
1
+ import{watch as e,promises as t}from"fs";const n=e=>typeof e,o=n(""),r=n(!0),l=n(0),s=n(n),i=e=>""+e,a=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,n)=>t[n]===e)),u=(e,t)=>d(e,((n,o)=>0==o||t(e[o-1],n)<=0)),v=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),g=e=>y(e,((e,t)=>e+t),0),w=e=>e.length,p=e=>0==w(e),y=(e,t,n)=>e.reduce(t,n),L=(e,t,n)=>e.slice(t,n),R=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>E(t,Map)?y([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),b=JSON.parse,m=Math.max,C=Math.min,x=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,A=(e,t,n)=>k(e)?null==n?void 0:n():t(e),M=e=>e==o||e==r,P=e=>n(e)==s,D=e=>Array.isArray(e),O=()=>{},F=e=>e.size,J=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},j=e=>k(e)||0==F(e),Q=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},z=e=>e.clear(),N=(e,t)=>null==e?void 0:e.forEach(t),W=(e,t)=>null==e?void 0:e.delete(t),B=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},$=(e,t)=>null==e?void 0:e.get(t),q=(e,t)=>N(e,((e,n)=>t(n,e))),G=(e,t,n)=>k(n)?(W(e,t),e):null==e?void 0:e.set(t,n),K=(e,t,n)=>(J(e,t)||G(e,t,n()),$(e,t)),U=(e,t,n)=>{const o={},r=null!=t?t:e=>e;return N(e,((e,t)=>A(r(e),(e=>(null==n?void 0:n(e))?0:o[t]=e)))),o},V=(e,t)=>{const n=B(),o=null!=t?t:e=>e;return N(e,((e,t)=>n.set(t,o(e)))),n},X=e=>V(e,V),Y=(e,t,n,o,r=0)=>A((n?K:$)(e,t[r],r>w(t)-2?n:B),(l=>{if(r>w(t)-2)return(null==o?void 0:o(l))&&G(e,t[r]),l;const s=Y(l,t,n,o,r+1);return j(l)&&G(e,t[r]),s})),Z=e=>new Set(D(e)||k(e)?e:[e]),_=(e,t)=>null==e?void 0:e.add(t),ee=(e,t,n)=>{const o=e.hasRow,r=B(),l=B(),s=B(),i=B(),a=B(),d=(t,n,...o)=>{const r=K(a,t,Z);return h(o,(t=>_(r,t)&&n&&e.callListener(t))),o},u=(t,...n)=>A($(a,t),(o=>{h(p(n)?Q(o):n,(t=>{e.delListener(t),W(o,t)})),j(o)&&G(a,t)})),v=(e,n)=>{G(r,e,n),J(l,e)||(G(l,e,t()),G(s,e,B()),G(i,e,B()))},f=e=>{G(r,e),G(l,e),G(s,e),G(i,e),u(e)};return[()=>e,()=>H(r),e=>q(l,e),e=>J(l,e),e=>$(r,e),e=>$(l,e),(e,t)=>G(l,e,t),v,(t,r,l,a,f)=>{v(t,r);const g=B(),w=B(),p=$(s,t),y=$(i,t),L=t=>{const l=n=>e.getCell(r,t,n),s=$(p,t),i=o(r,t)?n(a(l,t)):void 0;if(s===i||D(s)&&D(i)&&c(s,i)||G(g,t,[s,i]),!k(f)){const e=$(y,t),n=o(r,t)?f(l,t):void 0;e!=n&&G(w,t,n)}},R=e=>{l((()=>{N(g,(([,e],t)=>G(p,t,e))),N(w,((e,t)=>G(y,t,e)))}),g,w,p,y,e),z(g),z(w)};q(p,L),e.hasTable(r)&&h(e.getRowIds(r),(e=>{J(p,e)||L(e)})),R(!0),u(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>L(n))),e.addTableListener(r,(()=>R())))},f,()=>q(a,f),d,u]},te=(e,t)=>n(e)==o?t=>t(e):null!=e?e:()=>null!=t?t:"",ne=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},oe=/^\d+$/,re=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=S(e))?n:""+t++},t=>{oe.test(t)&&w(e)<1e3&&R(e,t)}]},le=e=>{let t;const[n,o]=re(),r=B();return[(o,l,s)=>{null!=t||(t=e());const i=n();return G(r,i,[o,l,s]),_(Y(l,null!=s?s:[""],Z),i),i},(e,n,...o)=>h(((e,t=[""])=>{const n=[],o=(e,r)=>r==w(t)?R(n,e):null===t[r]?N(e,(e=>o(e,r+1))):h([t[r],null],(t=>o($(e,t),r+1)));return o(e,0),n})(e,n),(e=>N(e,(e=>$(r,e)[0](t,...null!=n?n:[],...o))))),e=>A($(r,e),(([,t,n])=>(Y(t,null!=n?n:[""],void 0,(t=>(W(t,e),j(t)?1:0))),G(r,e),o(e),n))),(e,n,o)=>A($(r,e),(([e,,r=[]])=>{const l=(...s)=>{const i=w(s);i==w(r)?e(t,...s,...o(s)):k(r[i])?h(n[i](...s),(e=>l(...s,e))):l(...s,r[i])};l()}))]},se=Object,ie=se.keys,ae=se.isFrozen,de=se.freeze,ce=(e,t)=>!k(((e,t)=>A(e,(e=>e[t])))(e,t)),ue=(e,t)=>delete e[t],ve=(e,t)=>h(se.entries(e),(([e,n])=>t(n,e))),he=e=>p(ie(e)),fe=e=>{const t=n(e);return M(t)||t==l&&x(e)?t:void 0},ge=(e,t,n,o,r)=>k(r)?e.delCell(t,n,o,!0):e.setCell(t,n,o,r),we=ne((e=>{let t,n,o,r=100,l=B(),s=1;const i=B(),d=B(),[c,u,v]=le((()=>z)),f=B(),g=B(),y=[],L=[],T=(t,n)=>{s=0,e.transaction((()=>N($(f,n),((n,o)=>N(n,((n,r)=>N(n,((n,l)=>ge(e,o,r,l,n[t]))))))))),s=1},b=e=>{G(f,e),G(g,e),u(d,[e])},m=(e,t)=>h(((e,t)=>e.splice(0,t))(e,null!=t?t:w(e)),b),C=()=>m(y,w(y)-r),x=e.addCellListener(null,null,null,((e,n,r,i,a,d)=>{if(s){A(t,(()=>{R(y,t),C(),m(L),t=void 0,o=1}));const e=K(l,n,B),s=K(e,r,B),c=K(s,i,(()=>[d,void 0]));c[1]=a,c[0]===a&&j(G(s,i))&&j(G(e,r))&&j(G(l,n))&&(t=I(y),o=1),D()}})),E=(e="")=>(k(t)&&(t=""+n++,G(f,t,l),F(t,e),l=B(),o=1),t),M=()=>{p(y)||(L.unshift(E()),T(0,t),t=I(y),o=1)},P=()=>{p(L)||(R(y,t),t=S(L),T(1,t),o=1)},D=()=>{o&&(u(i),o=0)},O=e=>{const t=E(e);return D(),t},F=(e,t)=>(Q(e)&&$(g,e)!==t&&(G(g,e,t),u(d,[e])),z),Q=e=>J(f,e),z={setSize:e=>(r=e,C(),z),addCheckpoint:O,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...y],t,[...L]],forEachCheckpoint:e=>q(g,e),hasCheckpoint:Q,getCheckpoint:e=>$(g,e),goBackward:()=>(M(),D(),z),goForward:()=>(P(),D(),z),goTo:e=>{const n=a(y,e)?M:a(L,e)?P:null;for(;!k(n)&&e!=t;)n();return D(),z},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(v(e),z),clear:()=>(m(y),m(L),k(t)||b(t),t=void 0,n=0,O(),z),destroy:()=>{e.delListener(x)},getListenerStats:()=>({})};return de(z.clear())})),pe=(e,t)=>e<t?-1:1,ye=ne((e=>{const t=B(),n=B(),[o,r,l,s,a,d,c,,h,g,w]=ee(e,B,(e=>k(e)?"":D(e)?f(e,i):i(e))),[p,y,L]=le((()=>I)),R=(t,n,o)=>{const r=a(t);N(o,((t,o)=>n(o,(n=>N(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},I={setIndexDefinition:(e,o,r,l,s,i=pe)=>{const a=k(s)?void 0:([e],[t])=>s(e,t);return h(e,o,((o,r,s,h,f,g)=>{let w=0;const p=Z(),L=Z(),R=d(e);if(N(r,(([e,t],n)=>{const o=Z(e),r=Z(t);N(o,(e=>W(r,e)?W(o,e):0)),N(o,(e=>{_(p,e),A($(R,e),(t=>{W(t,n),j(t)&&(G(R,e),w=1)}))})),N(r,(e=>{_(p,e),J(R,e)||(G(R,e,Z()),w=1),_($(R,e),n),k(l)||_(L,e)}))})),o(),j(f)||(g?q(R,(e=>_(L,e))):q(s,(e=>A($(h,e),(e=>_(L,e))))),N(L,(e=>{const t=(t,n)=>i($(f,t),$(f,n),e),n=[...$(R,e)];u(n,t)||(G(R,e,Z(v(n,t))),_(p,e))}))),(w||g)&&!k(a)){const t=[...R];u(t,a)||(c(e,B(v(t,a))),w=1)}w&&y(t,[e]),N(p,(t=>y(n,[e,t])))}),te(r),A(l,te)),I},delIndexDefinition:e=>(g(e),I),getStore:o,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>R(t,e,n))))),forEachSlice:(e,t)=>R(e,t,d(e)),hasIndex:s,hasSlice:(e,t)=>J(d(e),t),getTableId:a,getSliceIds:e=>H(d(e)),getSliceRowIds:(e,t)=>Q($(d(e),t)),addSliceIdsListener:(e,n)=>p(n,t,[e]),addSliceRowIdsListener:(e,t,o)=>p(o,n,[e,t]),delListener:e=>(L(e),I),destroy:w,getListenerStats:()=>({})};return de(I)})),Le=B([["avg",[(e,t)=>g(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,o)=>e+(t-n)/o]],["max",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Re=(e,t,n,o,r,l=!1)=>{if(j(n))return;const[s,i,a,d]=r;return l||(l=k(e)),N(o,(([n,o])=>{l||(e=k(n)?null==i?void 0:i(e,o,t++):k(o)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,o,n,t),l||(l=k(e)))})),l?s(Q(n),F(n)):e},Ie=ne((e=>{const t=B(),[n,o,r,l,s,i,a,,d,c,u]=ee(e,O,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=le((()=>g)),g={setMetricDefinition:(e,n,o,r,l,s,c)=>{var u;const v=P(o)?[o,l,s,c]:null!=(u=$(Le,o))?u:$(Le,"sum");return d(e,n,((n,o,r,l,s,d)=>{const c=i(e),u=F(l);d||(d=k(c)),n();let f=Re(c,u,l,o,v,d);x(f)||(f=void 0),f!=c&&(a(e,f),h(t,[e],f,c))}),te(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:o,forEachMetric:r,hasMetric:l,getTableId:s,getMetric:i,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return de(g)}));var Se=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Te=(e,t,n,o,r)=>{let l,s=0;const i={load:n=>Se(void 0,null,(function*(){if(2!=s){s=1;const o=yield t();k(o)||""==o?e.setTables(n):e.setJson(o),s=0}return i})),startAutoLoad:e=>Se(void 0,null,(function*(){return i.stopAutoLoad(),yield i.load(e),o(i.load),i})),stopAutoLoad:()=>(r(),i),save:()=>Se(void 0,null,(function*(){return 1!=s&&(s=2,yield n(e.getJson()),s=0),i})),startAutoSave:()=>Se(void 0,null,(function*(){return yield i.stopAutoSave().save(),l=e.addTablesListener((()=>i.save())),i})),stopAutoSave:()=>(A(l,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return de(i)};var be=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const me=globalThis.window,Ce=(e,t,n)=>{let o;return Te(e,(()=>be(void 0,null,(function*(){return n.getItem(t)}))),(e=>be(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{o=o=>{o.storageArea===n&&o.key===t&&e()},me.addEventListener("storage",o)}),(()=>{me.removeEventListener("storage",o),o=void 0}))},xe=(e,t)=>Ce(e,t,localStorage),Ee=(e,t)=>Ce(e,t,sessionStorage);var ke=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ae=(n,o)=>{let r;return Te(n,(()=>ke(void 0,null,(function*(){try{return yield t.readFile(o,"utf8")}catch(e){}}))),(e=>ke(void 0,null,(function*(){try{yield t.writeFile(o,e,"utf8")}catch(e){}}))),(t=>{r=e(o,t)}),(()=>{null==r||r.close(),r=void 0}))};var Me=(e,t,n)=>new Promise(((o,r)=>{var l=e=>{try{i(n.next(e))}catch(e){r(e)}},s=e=>{try{i(n.throw(e))}catch(e){r(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Pe=e=>e.headers.get("ETag"),De=(e,t,n,o)=>{let r,l;return Te(e,(()=>Me(void 0,null,(function*(){const e=yield fetch(t);return l=Pe(e),e.text()}))),(e=>Me(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{r=setInterval((()=>Me(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),o=Pe(n);k(l)||k(o)||o==l||(l=o,e())}))),1e3*o)}),(()=>{A(r,clearInterval),r=void 0}))};var Oe=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;const je=ne((e=>{const t=e.createStore,[n,o,r,l,s,,,i,,a,c,u,v]=ee(e,(()=>!0),O),f=t(),g=t(),y=B(),I=(e,t,...n)=>h(n,(n=>_(K(K(y,t,B),e,Z),n))),S=e=>{A($(y,e),(e=>{q(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),h([g,f],(t=>t.delTable(e)))},T=(e,t,n)=>I(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,o)=>{i(t,n),S(t);const r=[],l=[[null,[n,null,null,[],B()]]],s=[],a=[],c=[];o({select:(e,t)=>{const n=P(e)?[w(r)+"",e]:[k(t)?e:t,n=>n(e,t)];return R(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const o=k(n)||P(t)?null:t,r=k(o)?t:n,s=[e,[e,o,P(r)?r:e=>e(r),[],B()]];return R(l,s),{as:e=>s[0]=e}},where:(e,t,n)=>R(s,P(e)?e:k(n)?n=>n(e)===t:o=>o(e,t)===n),group:(e,t,n,o,r)=>{var l;const s=[e,[e,P(t)?[t,n,o,r]:null!=(l=$(Le,t))?l:[(e,t)=>t]]];return R(a,s),{as:e=>s[0]=e}},having:(e,t)=>R(c,P(e)?e:n=>n(e)===t)});const y=B(r);if(j(y))return b;const L=B(l);q(L,((e,[,t])=>A($(L,t),(({3:t})=>k(e)?0:R(t,e)))));const m=B(a);let C=f;if(j(m)&&p(c))C=g;else{T(t,C,g);const e=B();q(m,((t,[n,o])=>_(K(e,n,Z),[t,o])));const n=Z();q(y,(t=>J(e,t)?0:_(n,t)));const o=B(),r=(n,o,r,l)=>A(n,(([s,i,a,u])=>{q(o,((t,[n])=>{const o=K(s,t,B),i=$(o,r),a=l?void 0:n;if(i!==a){const n=Z([[i,a]]),l=F(o);G(o,r,a),N($(e,t),(([e,t])=>{const r=Re(u[e],l,o,n,t);u[e]=k(fe(r))?null:r}))}})),j(i)||!d(c,(e=>e((e=>u[e]))))?g.delRow(t,a):k(a)?n[2]=g.addRow(t,u):g.setRow(t,a,u)}));I(C,t,C.addRowListener(t,null,((l,s,i,a)=>{const d=[],c=[],u=B(),v=C.hasRow(t,i);let h=!v;N(n,(e=>{const[n,o,r]=a(t,i,e);R(d,o),R(c,r),h||(h=n)})),q(e,(e=>{const[n,,o]=a(t,i,e);(h||n)&&G(u,e,[o])})),h&&r(Y(o,d,void 0,(([,e])=>(W(e,i),j(e)))),u,i,1),v&&r(Y(o,c,(()=>{const e={};return N(n,(n=>e[n]=C.getCell(t,i,n))),[B(),Z(),void 0,e]}),(([,e])=>{_(e,i)})),u,i)})))}T(t,e,C);const x=(o,r,l,i)=>{const a=t=>e.getCell(r,l,t);h(i,(n=>{var r;const[l,,s,i,d]=$(L,n),c=null==s?void 0:s(a,o),[h,f]=null!=(r=$(d,o))?r:[];c!=h&&(k(f)||v(t,f),G(d,o,k(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>x(o,l,c,i))))]))})),(o=>{const r=(t,r)=>{var l,s,i;return e.getCell(...k(r)?[n,o,t]:t===n?[n,o,r]:[null==(l=$(L,t))?void 0:l[0],null==(i=$(null==(s=$(L,t))?void 0:s[4],o))?void 0:i[0],r])};C.transaction((()=>d(s,(e=>e(r)))?q(y,((e,n)=>ge(C,t,o,e,n(r,o)))):C.delRow(t,o)))})(o)},{3:E}=$(L,null);return C.transaction((()=>u(t,1,e.addRowListener(n,null,((o,r,l)=>{e.hasRow(n,l)?x(l,n,l,E):(C.delRow(t,l),N(L,(({4:e})=>A($(e,l),(([,n])=>{v(t,n),G(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),a(e),b),getStore:n,getQueryIds:o,forEachQuery:r,hasQuery:l,getTableId:s,delListener:e=>(g.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var o in e)Fe.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Oe)for(var o of Oe(e))t.indexOf(o)<0&&Je.call(e,o)&&(n[o]=e[o]);return n})(g.getListenerStats(),["tables","tableIds","transaction"])};return ve({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{h(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>g[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>g["add"+n+"Listener"](...L(e,0,t),((n,...o)=>e[t](b,...o)))})),de(b)})),Qe=ne((e=>{const t=B(),n=B(),o=B(),r=B(),[l,s,i,a,d,c,,,u,v,h]=ee(e,(()=>[B(),B(),B(),B()]),(e=>k(e)?void 0:e+"")),[f,g,w]=le((()=>R)),p=(e,t,n)=>A(c(e),(([o,,r])=>{if(!J(r,t)){const l=Z();if(d(e)!=L(e))_(l,t);else{let e=t;for(;!k(e)&&!J(l,e);)_(l,e),e=$(o,e)}if(n)return l;G(r,t,l)}return $(r,t)})),y=(e,t)=>A(c(e),(([,,e])=>G(e,t))),L=e=>$(t,e),R={setRelationshipDefinition:(e,l,s,i)=>(G(t,e,s),u(e,l,((t,l)=>{const s=Z(),i=Z(),a=Z(),[d,u]=c(e);N(l,(([t,n],o)=>{k(t)||(_(i,t),A($(u,t),(e=>{W(e,o),j(e)&&G(u,t)}))),k(n)||(_(i,n),J(u,n)||G(u,n,Z()),_($(u,n),o)),_(s,o),G(d,o,n),q($(r,e),(t=>{J(p(e,t),o)&&_(a,t)}))})),t(),N(s,(t=>g(n,[e,t]))),N(i,(t=>g(o,[e,t]))),N(a,(t=>{y(e,t),g(r,[e,t])}))}),te(i)),R),delRelationshipDefinition:e=>(G(t,e),v(e),R),getStore:l,getRelationshipIds:s,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:a,getLocalTableId:d,getRemoteTableId:L,getRemoteRowId:(e,t)=>{var n;return $(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return Q($(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(c(e))?[t]:Q(p(e,t,!0)),addRemoteRowIdListener:(e,t,o)=>f(o,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(p(e,t),f(n,r,[e,t])),delListener:e=>(y(...w(e)),R),destroy:h,getListenerStats:()=>({})};return de(R)})),ze=e=>[e,e],Ne=()=>[B(),B()],We=(e,t,n,o=G)=>{const r=(l=H(e),s=e=>!ce(t,e),l.filter(s));var l,s;return h(ie(t),(o=>n(e,o,t[o]))),h(r,(t=>o(e,t))),e},Be=(e,t,n)=>k(e)||!(e=>E(e,se)&&e.constructor==se)(e)||he(e)||ae(e)?(null==n||n(),!1):(ve(e,((n,o)=>{t(n,o)||ue(e,o)})),!he(e)),He=(e,t,n)=>G(e,t,$(e,t)==-n?void 0:n),$e=()=>{let e,t,n=0;const o=B(),r=B(),s=B(),d=B(),u=B(),g=B(),w=B(),p=B(),y=B(),I=Ne(),S=Ne(),m=Ne(),C=Ne(),x=Ne(),E=Ne(),D=Ne(),O=Ne(),F=Ne(),Q=Ne(),[Y,ee,te,ne]=le((()=>tt)),oe=(t,n)=>(!e||J(g,n)||Pe(n))&&Be(t,((e,t)=>se(n,t,e)),(()=>Pe(n))),se=(e,t,n,o)=>Be(o?n:ae(n,e,t),((o,r)=>A(ie(e,t,r,o),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Pe(e,t))),ie=(t,n,o,r)=>e?A($($(g,t),o),(e=>fe(r)!=e.type?Pe(t,n,o,r,e.default):r),(()=>Pe(t,n,o,r))):k(fe(r))?Pe(t,n,o,r):r,ae=(e,t,n)=>(A($(w,t),(([o,r])=>{N(o,((t,n)=>{ce(e,n)||(e[n]=t)})),N(r,(o=>{ce(e,o)||Pe(t,n,o)}))})),e),we=e=>We(g,e,((e,t,n)=>{const o=B(),r=Z();We(K(g,t,B),n,((e,t,n)=>{G(e,t,n),A(n.default,(e=>G(o,t,e)),(()=>_(r,t)))})),G(w,t,[o,r])}),((e,t)=>{G(g,t),G(w,t)})),ye=e=>We(y,e,((e,t,n)=>Le(t,n)),((e,t)=>me(t))),Le=(e,t)=>We(K(y,e,(()=>(Ee(e,1),B()))),t,((t,n,o)=>Re(e,t,n,o)),((t,n)=>Ce(e,t,n))),Re=(e,t,n,o,r)=>We(K(t,n,(()=>(ke(e,n,1),B()))),o,((t,o,r)=>Ie(e,n,t,o,r)),((o,l)=>xe(e,t,n,o,l,r))),Ie=(e,t,n,o,r)=>{J(n,o)||Ae(e,t,o,1);const l=$(n,o);r!==l&&(Me(e,t,o,l,r),G(n,o,r))},Se=(e,t,n,o,r)=>A($(t,n),(t=>Ie(e,n,t,o,r)),(()=>Re(e,t,n,ae({[o]:r},e,n)))),Te=e=>{const[t]=K(p,e,re),n=t();return J($(y,e),n)?Te(e):n},be=e=>{var t;return null!=(t=$(y,e))?t:Le(e,{})},me=e=>Le(e,{}),Ce=(e,t,n)=>{const[,o]=K(p,e,re);o(n),Re(e,t,n,{},!0)},xe=(e,t,n,o,r,l)=>{var s;const i=$(null==(s=$(w,e))?void 0:s[0],r);if(!k(i)&&!l)return Ie(e,n,o,r,i);const a=t=>{Me(e,n,t,$(o,t)),Ae(e,n,t,-1),G(o,t)};k(i)?a(r):q(o,a),j(o)&&(ke(e,n,-1),j(G(t,n))&&(Ee(e,-1),G(y,e)))},Ee=(e,t)=>He(o,e,t),ke=(e,t,n)=>He(K(r,e,B),t,n),Ae=(e,t,n,o)=>He(K(K(s,e,B),t,B),n,o),Me=(e,t,n,o,r)=>K(K(K(d,e,B),t,B),n,(()=>[o,0]))[1]=r,Pe=(e,t,n,o,r)=>(R(K(K(K(u,e,B),t,B),n,(()=>[])),o),r),De=(e,t,n)=>A($($($(d,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...ze(Ve(e,t,n))])),Oe=e=>j(u)||j(F[e])?0:N(e?V(u,X):u,((t,n)=>N(t,((t,o)=>N(t,((t,r)=>ee(F[e],[n,o,r],t))))))),Fe=(e,t,n)=>{if(!j(t))return ee(e,n),1},Je=e=>{const t=j(x[e]),n=j(D[e])&&j(C[e])&&t&&j(S[e]),l=j(O[e])&&j(E[e])&&j(m[e])&&j(I[e]);if(!n||!l){const i=e?[V(o),X(r),V(s,X),V(d,X)]:[o,r,s,d];if(!n){N(i[2],((t,n)=>N(t,((t,o)=>Fe(D[e],t,[n,o])))));const n=Z();N(i[1],((o,r)=>{Fe(C[e],o,[r])&&!t&&(ee(x[e],[r,null]),_(n,r))})),t||N(i[3],((t,o)=>{if(!J(n,o)){const n=Z();N(t,(e=>N(e,(([t,o],r)=>o!==t?_(n,r):W(e,r))))),N(n,(t=>ee(x[e],[o,t])))}})),Fe(S[e],i[0])}if(!l){let t;N(i[3],((n,o)=>{let r;N(n,((n,l)=>{let s;N(n,(([n,i],a)=>{i!==n&&(ee(O[e],[o,l,a],i,n,De),t=r=s=1)})),s&&ee(E[e],[o,l],De)})),r&&ee(m[e],[o],De)})),t&&ee(I[e],void 0,De)}}},je=(e,...t)=>(Ze((()=>e(...f(t,i)))),tt),Qe=()=>U(y,(e=>U(e,U))),qe=()=>H(y),Ge=e=>H($(y,i(e))),Ke=(e,t,n,o=0,r)=>{const l=[];return q($(y,i(e)),((e,n)=>R(l,[k(t)?e:$(n,i(t)),e]))),f(L(v(l,(([e],[t])=>pe(e,t)*(n?-1:1))),o,k(r)?r:o+r),(([,e])=>e))},Ue=(e,t)=>H($($(y,i(e)),i(t))),Ve=(e,t,n)=>$($($(y,i(e)),i(t)),i(n)),Xe=e=>je((()=>(e=>Be(e,oe,Pe))(e)?ye(e):0)),Ye=()=>je((()=>ye({}))),Ze=(e,t)=>{if(-1==n)return;_e();const o=null==e?void 0:e();return et(t),o},_e=()=>(n++,tt),et=e=>(n>0&&(n--,0==n&&(t=!j(d),n=1,Oe(1),t&&Je(1),n=-1,(null==e?void 0:e(U(d,(e=>U(e,(e=>U(e,(e=>[...e]),(([e,t])=>e===t))),he)),he),U(u,(e=>U(e,U)))))&&(n=1,N(d,((e,t)=>N(e,((e,n)=>N(e,(([e],o)=>ge(tt,t,n,o,e))))))),n=-1,t=!1),ee(Q[0],void 0,t),Oe(0),t&&Je(0),ee(Q[1],void 0,t),n=0,h([d,u,o,r,s],z))),tt),tt={getTables:Qe,getTableIds:qe,getTable:e=>U($(y,i(e)),U),getRowIds:Ge,getSortedRowIds:Ke,getRow:(e,t)=>U($($(y,i(e)),i(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!j(y),hasTable:e=>J(y,i(e)),hasRow:(e,t)=>J($(y,i(e)),i(t)),hasCell:(e,t,n)=>J($($(y,i(e)),i(t)),i(n)),getJson:()=>T(y),getSchemaJson:()=>T(g),setTables:Xe,setTable:(e,t)=>je((e=>oe(t,e)?Le(e,t):0),e),setRow:(e,t,n)=>je(((e,t)=>se(i(e),i(t),n)?Re(i(e),be(i(e)),i(t),n):0),e,t),addRow:(e,t)=>Ze((()=>{let n;return se(e,n,t)&&(e=i(e),Re(e,be(e),n=Te(e),t)),n})),setPartialRow:(e,t,n)=>je(((e,t)=>{if(se(e,t,n,1)){const o=be(e);ve(n,((n,r)=>Se(e,o,t,r,n)))}}),e,t),setCell:(e,t,n,o)=>je(((e,t,n)=>A(ie(e,t,n,P(o)?o(Ve(e,t,n)):o),(o=>Se(e,be(e),t,n,o)))),e,t,n),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch(e){}return tt},setSchema:t=>je((()=>{if((e=(e=>Be(e,(e=>Be(e,(e=>{if(!Be(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!M(t)&&t!=l||(fe(e.default)!=t&&ue(e,"default"),0))})))))(t))&&(we(t),!j(y))){const e=Qe();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>je((e=>J(y,e)?me(e):0),e),delRow:(e,t)=>je(((e,t)=>A($(y,e),(n=>J(n,t)?Ce(e,n,t):0))),e,t),delCell:(e,t,n,o)=>je(((e,t,n)=>A($(y,e),(r=>A($(r,t),(l=>J(l,n)?xe(e,r,t,l,n,o):0))))),e,t,n),delSchema:()=>je((()=>{we({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>N(y,((t,n)=>e(n,(e=>N(t,((t,n)=>e(n,(e=>q(t,e))))))))),forEachRow:(e,t)=>N($(y,i(e)),((e,n)=>t(n,(t=>q(e,t))))),forEachCell:(e,t,n)=>q($($(y,i(e)),i(t)),n),addSortedRowIdsListener:(e,t,n,o,r,l,s)=>{let i=Ke(e,t,n,o,r);return Y((()=>{const s=Ke(e,t,n,o,r);c(s,i)||(i=s,l(tt,e,t,n,o,r,i))}),x[s?1:0],[e,t])},addWillFinishTransactionListener:e=>Y(e,Q[0]),addDidFinishTransactionListener:e=>Y(e,Q[1]),callListener:e=>(ne(e,[qe,Ge,Ue],(e=>k(e[2])?[]:ze(Ve(...e)))),tt),delListener:e=>(te(e),tt),getListenerStats:()=>({}),createStore:$e};return ve({Tables:[0,I],TableIds:[0,S],Table:[1,m],RowIds:[1,C],Row:[2,E],CellIds:[2,D],Cell:[3,O],InvalidCell:[3,F]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>Y(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0)})),de(tt)};export{we as createCheckpoints,Te as createCustomPersister,Ae as createFilePersister,ye as createIndexes,xe as createLocalPersister,Ie as createMetrics,je as createQueries,Qe as createRelationships,De as createRemotePersister,Ee as createSessionPersister,$e as createStore,pe as defaultSorter};
Binary file
package/lib/indexes.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The indexes module of the TinyBase project provides the ability to create
3
- * and track indexes of the data in Store objects.
2
+ * The indexes module of the TinyBase project provides the ability to create and
3
+ * track indexes of the data in Store objects.
4
4
  *
5
5
  * The main entry point to this module is the createIndexes function, which
6
6
  * returns a new Indexes object. From there, you can create new Index
@@ -209,11 +209,12 @@ export interface Indexes {
209
209
  * derived string value in common, as described by this method. Those values
210
210
  * are used as the key for each Slice in the overall Index object.
211
211
  *
212
- * Without the third `getSliceId` parameter, the Index will simply have a
212
+ * Without the third `getSliceIdOrIds` parameter, the Index will simply have a
213
213
  * single Slice, keyed by an empty string. But more often you will specify a
214
214
  * Cell value containing the Slice Id that the Row should belong to.
215
215
  * Alternatively, a custom function can be provided that produces your own
216
- * Slice Id from the local Row as a whole.
216
+ * Slice Id from the local Row as a whole. Since v2.1, the custom function can
217
+ * return an array of Slice Ids, each of which the Row will then belong to.
217
218
  *
218
219
  * The fourth `getSortKey` parameter specifies a Cell Id to get a value (or a
219
220
  * function that processes a whole Row to get a value) that is used to sort
@@ -241,11 +242,13 @@ export interface Indexes {
241
242
  *
242
243
  * @param indexId The Id of the Index to define.
243
244
  * @param tableId The Id of the Table the Index will be generated from.
244
- * @param getSliceId Either the Id of the Cell containing, or a function that
245
- * produces, the Id that is used to indicate which Slice in the Index the Row
246
- * Id should be in. Defaults to a function that returns `''` (meaning that if
247
- * this `getSliceId` parameter is omitted, the Index will simply contain a
248
- * single Slice containing all the Row Ids in the Table).
245
+ * @param getSliceIdOrIds Either the Id of the Cell containing, or a function
246
+ * that produces, the Id that is used to indicate which Slice in the Index the
247
+ * Row Id should be in. Defaults to a function that returns `''` (meaning that
248
+ * if this `getSliceIdOrIds` parameter is omitted, the Index will simply
249
+ * contain a single Slice containing all the Row Ids in the Table). Since
250
+ * v2.1, this can return an array of Slice Ids, each of which the Row will
251
+ * then belong to.
249
252
  * @param getSortKey Either the Id of the Cell containing, or a function that
250
253
  * produces, the value that is used to sort the Row Ids in each Slice.
251
254
  * @param sliceIdSorter A function that takes two Slice Id values and returns
@@ -294,6 +297,29 @@ export interface Indexes {
294
297
  * ```
295
298
  * @example
296
299
  * This example creates a Store, creates an Indexes object, and defines an
300
+ * Index based on each of the letters present in the pets' names.
301
+ *
302
+ * ```js
303
+ * const store = createStore().setTable('pets', {
304
+ * fido: {species: 'dog'},
305
+ * felix: {species: 'cat'},
306
+ * rex: {species: 'dog'},
307
+ * });
308
+ *
309
+ * const indexes = createIndexes(store);
310
+ * indexes.setIndexDefinition('containsLetter', 'pets', (_, rowId) =>
311
+ * rowId.split(''),
312
+ * );
313
+ *
314
+ * console.log(indexes.getSliceIds('containsLetter'));
315
+ * // -> ['f', 'i', 'd', 'o', 'e', 'l', 'x', 'r']
316
+ * console.log(indexes.getSliceRowIds('containsLetter', 'i'));
317
+ * // -> ['fido', 'felix']
318
+ * console.log(indexes.getSliceRowIds('containsLetter', 'x'));
319
+ * // -> ['felix', 'rex']
320
+ * ```
321
+ * @example
322
+ * This example creates a Store, creates an Indexes object, and defines an
297
323
  * Index based on the first letter of the pets' names. The Slice Ids (and Row
298
324
  * Ids within them) are alphabetically sorted.
299
325
  *
@@ -324,7 +350,7 @@ export interface Indexes {
324
350
  setIndexDefinition(
325
351
  indexId: Id,
326
352
  tableId: Id,
327
- getSliceId?: Id | ((getCell: GetCell, rowId: Id) => Id),
353
+ getSliceIdOrIds?: Id | ((getCell: GetCell, rowId: Id) => Id | Ids),
328
354
  getSortKey?: Id | ((getCell: GetCell, rowId: Id) => SortKey),
329
355
  sliceIdSorter?: (sliceId1: Id, sliceId2: Id) => number,
330
356
  rowIdSorter?: (sortKey1: SortKey, sortKey2: SortKey, sliceId: Id) => number,
package/lib/indexes.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=(e,t)=>((e,t)=>e.every(t))(e,((n,s)=>0==s||t(e[s-1],n)<=0)),s=(e,t)=>e.sort(t),r=(e,t)=>e.forEach(t),o=e=>e.length,c=(e,...t)=>e.push(...t),l=e=>null==e,d=(e,t,n)=>l(e)?n?.():t(e),i=(e,t)=>e?.has(t)??!1,a=e=>l(e)||0==(e=>e.size)(e),u=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),g=e=>new Map(e),S=e=>[...e?.keys()??[]],w=(e,t)=>e?.get(t),L=(e,t)=>f(e,((e,n)=>t(n,e))),v=(e,t,n)=>l(n)?(I(e,t),e):e?.set(t,n),x=(e,t,n)=>(i(e,t)||v(e,t,n()),w(e,t)),p=(e,t,n,s,r=0)=>d((n?x:w)(e,t[r],r>o(t)-2?n:g),(c=>{if(r>o(t)-2)return s?.(c)&&v(e,t[r]),c;const l=p(c,t,n,s,r+1);return a(c)&&v(e,t[r]),l})),E=e=>new Set(e),R=(e,t)=>e?.add(t),b=(e,t,n)=>{const s=e.hasRow,c=g(),p=g(),b=g(),y=g(),T=g(),k=(t,n,...s)=>{const o=x(T,t,E);return r(s,(t=>R(o,t)&&n&&e.callListener(t))),s},z=(t,...n)=>d(w(T,t),(s=>{r(0==o(n)?u(s):n,(t=>{e.delListener(t),I(s,t)})),a(s)&&v(T,t)})),C=(e,n)=>{v(c,e,n),i(p,e)||(v(p,e,t()),v(b,e,g()),v(y,e,g()))},D=e=>{v(c,e),v(p,e),v(b,e),v(y,e),z(e)};return[()=>e,()=>S(c),e=>L(p,e),e=>i(p,e),e=>w(c,e),e=>w(p,e),(e,t)=>v(p,e,t),C,(t,o,c,d,a)=>{C(t,o);const u=g(),I=g(),S=w(b,t),x=w(y,t),p=t=>{const r=n=>e.getCell(o,t,n),c=w(S,t),i=s(o,t)?n(d(r,t)):void 0;if(c!=i&&v(u,t,[c,i]),!l(a)){const e=w(x,t),n=s(o,t)?a(r,t):void 0;e!=n&&v(I,t,n)}},E=e=>{c((()=>{f(u,(([,e],t)=>v(S,t,e))),f(I,((e,t)=>v(x,t,e)))}),u,I,S,x,e),h(u),h(I)};L(S,p),e.hasTable(o)&&r(e.getRowIds(o),(e=>{i(S,e)||p(e)})),E(!0),z(t),k(t,0,e.addRowListener(o,null,((e,t,n)=>p(n))),e.addTableListener(o,(()=>E())))},D,()=>L(T,D),k,z]},y=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),T=(e,t)=>e<t?-1:1,k=/^\d+$/,z=e=>{let t;const[n,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{k.test(t)&&o(e)<1e3&&c(e,t)}]})(),i=g();return[(s,r,o)=>{t??=e();const c=n();return v(i,c,[s,r,o]),R(p(r,o??[""],E),c),c},(e,n,...s)=>r(((e,t=[""])=>{const n=[],s=(e,l)=>l==o(t)?c(n,e):null===t[l]?f(e,(e=>s(e,l+1))):r([t[l],null],(t=>s(w(e,t),l+1)));return s(e,0),n})(e,n),(e=>f(e,(e=>w(i,e)[0](t,...n??[],...s))))),e=>d(w(i,e),(([,t,n])=>(p(t,n??[""],void 0,(t=>(I(t,e),a(t)?1:0))),v(i,e),s(e),n))),(e,n,s)=>d(w(i,e),(([e,,c=[]])=>{const d=(...i)=>{const a=o(i);a==o(c)?e(t,...i,...s(i)):l(c[a])?r(n[a](...i),(e=>d(...i,e))):d(...i,c[a])};d()}))]},C=Object.freeze,D=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=g(),r=g(),[o,c,h,x,p,k,D,,M,j,O]=b(e,g,(e=>l(e)?"":e+"")),[W,$,m]=z((()=>A)),q=(t,n,s)=>{const r=p(t);f(s,((t,s)=>n(s,(n=>f(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},A={setIndexDefinition:(e,o,c,u,h,S=T)=>{const x=l(h)?void 0:([e],[t])=>h(e,t);return M(e,o,((o,c,h,p,b,y)=>{let T=0;const z=E(),C=E(),M=k(e);if(f(c,(([e,t],n)=>{l(e)||(R(z,e),d(w(M,e),(t=>{I(t,n),a(t)&&(v(M,e),T=1)}))),l(t)||(R(z,t),i(M,t)||(v(M,t,E()),T=1),R(w(M,t),n),l(u)||R(C,t))})),o(),a(b)||(y?L(M,(e=>R(C,e))):L(h,(e=>d(w(p,e),(e=>R(C,e))))),f(C,(e=>{const t=(t,n)=>S(w(b,t),w(b,n),e),r=[...w(M,e)];n(r,t)||(v(M,e,E(s(r,t))),R(z,e))}))),(T||y)&&!l(x)){const t=[...M];n(t,x)||(D(e,g(s(t,x))),T=1)}T&&$(t,[e]),f(z,(t=>$(r,[e,t])))}),y(c),d(u,y)),A},delIndexDefinition:e=>(j(e),A),getStore:o,getIndexIds:c,forEachIndex:e=>h(((t,n)=>e(t,(e=>q(t,e,n))))),forEachSlice:(e,t)=>q(e,t,k(e)),hasIndex:x,hasSlice:(e,t)=>i(k(e),t),getTableId:p,getSliceIds:e=>S(k(e)),getSliceRowIds:(e,t)=>u(w(k(e),t)),addSliceIdsListener:(e,n)=>W(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>W(n,r,[e,t]),delListener:e=>(m(e),A),destroy:O,getListenerStats:()=>({})};return C(A)}));export{D 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=(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};
package/lib/indexes.js.gz CHANGED
Binary file
package/lib/metrics.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(e),r=(e,t)=>e.forEach(t),s=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,n)=>e.reduce(t,n),c=(e,...t)=>e.push(...t),a=Math.max,d=Math.min,l=isFinite,u=e=>null==e,h=(e,t,n)=>u(e)?n?.():t(e),f=()=>{},g=e=>e.size,v=(e,t)=>e?.has(t)??!1,M=e=>u(e)||0==g(e),L=e=>[...e?.values()??[]],m=e=>e.clear(),w=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),b=e=>new Map(e),x=(e,t)=>e?.get(t),y=(e,t)=>w(e,((e,n)=>t(n,e))),E=(e,t,n)=>u(n)?(p(e,t),e):e?.set(t,n),I=(e,t,n)=>(v(e,t)||E(e,t,n()),x(e,t)),R=(e,t,n,r,s=0)=>h((n?I:x)(e,t[s],s>i(t)-2?n:b),(o=>{if(s>i(t)-2)return r?.(o)&&E(e,t[s]),o;const c=R(o,t,n,r,s+1);return M(o)&&E(e,t[s]),c})),S=b([["avg",[(e,t)=>s(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,r)=>e+(t-n)/r]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:d(t,e)]],["sum",[e=>s(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),T=e=>new Set(e),k=(e,t)=>e?.add(t),z=(e,t,n)=>{const s=e.hasRow,o=b(),c=b(),a=b(),d=b(),l=b(),f=(t,n,...s)=>{const i=I(l,t,T);return r(s,(t=>k(i,t)&&n&&e.callListener(t))),s},g=(t,...n)=>h(x(l,t),(s=>{r(0==i(n)?L(s):n,(t=>{e.delListener(t),p(s,t)})),M(s)&&E(l,t)})),R=(e,n)=>{E(o,e,n),v(c,e)||(E(c,e,t()),E(a,e,b()),E(d,e,b()))},S=e=>{E(o,e),E(c,e),E(a,e),E(d,e),g(e)};return[()=>e,()=>[...o?.keys()??[]],e=>y(c,e),e=>v(c,e),e=>x(o,e),e=>x(c,e),(e,t)=>E(c,e,t),R,(t,i,o,c,l)=>{R(t,i);const h=b(),M=b(),L=x(a,t),p=x(d,t),I=t=>{const r=n=>e.getCell(i,t,n),o=x(L,t),a=s(i,t)?n(c(r,t)):void 0;if(o!=a&&E(h,t,[o,a]),!u(l)){const e=x(p,t),n=s(i,t)?l(r,t):void 0;e!=n&&E(M,t,n)}},S=e=>{o((()=>{w(h,(([,e],t)=>E(L,t,e))),w(M,((e,t)=>E(p,t,e)))}),h,M,L,p,e),m(h),m(M)};y(L,I),e.hasTable(i)&&r(e.getRowIds(i),(e=>{v(L,e)||I(e)})),S(!0),g(t),f(t,0,e.addRowListener(i,null,((e,t,n)=>I(n))),e.addTableListener(i,(()=>S())))},S,()=>y(l,S),f,g]},D=(n,r)=>e(n)==t?e=>e(n):n??(()=>r??""),N=/^\d+$/,j=e=>{let t;const[n,s]=(()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{N.test(t)&&i(e)<1e3&&c(e,t)}]})(),o=b();return[(r,s,i)=>{t??=e();const c=n();return E(o,c,[r,s,i]),k(R(s,i??[""],T),c),c},(e,n,...s)=>r(((e,t=[""])=>{const n=[],s=(e,o)=>o==i(t)?c(n,e):null===t[o]?w(e,(e=>s(e,o+1))):r([t[o],null],(t=>s(x(e,t),o+1)));return s(e,0),n})(e,n),(e=>w(e,(e=>x(o,e)[0](t,...n??[],...s))))),e=>h(x(o,e),(([,t,n])=>(R(t,n??[""],void 0,(t=>(p(t,e),M(t)?1:0))),E(o,e),s(e),n))),(e,n,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])?r(n[d](...a),(e=>c(...a,e))):c(...a,o[d])};c()}))]},C=Object.freeze,F=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((t=>{const r=b(),[s,i,o,c,a,d,h,,v,m,p]=z(t,f,(e=>isNaN(e)||u(e)||!0===e||!1===e||""===e?void 0:1*e)),[y,E,I]=j((()=>R)),R={setMetricDefinition:(t,s,i,o,c,a,f)=>{const m=e(i)==n?[i,c,a,f]:x(S,i)??x(S,"sum");return v(t,s,((e,n,s,i,o,c)=>{const a=d(t),f=g(i);c||=u(a),e();let v=((e,t,n,r,s,i=!1)=>{if(M(n))return;const[o,c,a,d]=s;return i||=u(e),w(r,(([n,r])=>{i||(e=u(n)?c?.(e,r,t++):u(r)?a?.(e,n,t--):d?.(e,r,n,t),i||=u(e))})),i?o(L(n),g(n)):e})(a,f,i,n,m,c);l(v)||(v=void 0),v!=a&&(h(t,v),E(r,[t],v,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)=>y(t,r,[e]),delListener:e=>(I(e),R),destroy:p,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),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};
package/lib/metrics.js.gz CHANGED
Binary file