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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/debug/queries.js +4 -3
  5. package/lib/debug/store.js +5 -5
  6. package/lib/debug/tinybase.js +6 -6
  7. package/lib/debug/tools.d.ts +155 -5
  8. package/lib/debug/tools.js +488 -431
  9. package/lib/es6/checkpoints.js +1 -1
  10. package/lib/es6/checkpoints.js.gz +0 -0
  11. package/lib/es6/indexes.js +1 -1
  12. package/lib/es6/indexes.js.gz +0 -0
  13. package/lib/es6/metrics.js +1 -1
  14. package/lib/es6/metrics.js.gz +0 -0
  15. package/lib/es6/queries.js +1 -1
  16. package/lib/es6/queries.js.gz +0 -0
  17. package/lib/es6/relationships.js +1 -1
  18. package/lib/es6/relationships.js.gz +0 -0
  19. package/lib/es6/store.js +1 -1
  20. package/lib/es6/store.js.gz +0 -0
  21. package/lib/es6/tinybase.js +1 -1
  22. package/lib/es6/tinybase.js.gz +0 -0
  23. package/lib/es6/tools.d.ts +155 -5
  24. package/lib/es6/tools.js +1 -1
  25. package/lib/es6/tools.js.gz +0 -0
  26. package/lib/es6/ui-react.js +1 -1
  27. package/lib/es6/ui-react.js.gz +0 -0
  28. package/lib/indexes.js +1 -1
  29. package/lib/indexes.js.gz +0 -0
  30. package/lib/metrics.js +1 -1
  31. package/lib/metrics.js.gz +0 -0
  32. package/lib/queries.js +1 -1
  33. package/lib/queries.js.gz +0 -0
  34. package/lib/relationships.js +1 -1
  35. package/lib/relationships.js.gz +0 -0
  36. package/lib/store.js +1 -1
  37. package/lib/store.js.gz +0 -0
  38. package/lib/tinybase.js +1 -1
  39. package/lib/tinybase.js.gz +0 -0
  40. package/lib/tools.d.ts +155 -5
  41. package/lib/tools.js +1 -1
  42. package/lib/tools.js.gz +0 -0
  43. package/lib/umd/checkpoints.js +1 -1
  44. package/lib/umd/checkpoints.js.gz +0 -0
  45. package/lib/umd/indexes.js +1 -1
  46. package/lib/umd/indexes.js.gz +0 -0
  47. package/lib/umd/metrics.js +1 -1
  48. package/lib/umd/metrics.js.gz +0 -0
  49. package/lib/umd/queries.js +1 -1
  50. package/lib/umd/queries.js.gz +0 -0
  51. package/lib/umd/relationships.js +1 -1
  52. package/lib/umd/relationships.js.gz +0 -0
  53. package/lib/umd/store.js +1 -1
  54. package/lib/umd/store.js.gz +0 -0
  55. package/lib/umd/tinybase.js +1 -1
  56. package/lib/umd/tinybase.js.gz +0 -0
  57. package/lib/umd/tools.d.ts +155 -5
  58. package/lib/umd/tools.js +1 -1
  59. package/lib/umd/tools.js.gz +0 -0
  60. package/lib/umd-es6/checkpoints.js +1 -1
  61. package/lib/umd-es6/checkpoints.js.gz +0 -0
  62. package/lib/umd-es6/indexes.js +1 -1
  63. package/lib/umd-es6/indexes.js.gz +0 -0
  64. package/lib/umd-es6/metrics.js +1 -1
  65. package/lib/umd-es6/metrics.js.gz +0 -0
  66. package/lib/umd-es6/queries.js +1 -1
  67. package/lib/umd-es6/queries.js.gz +0 -0
  68. package/lib/umd-es6/relationships.js +1 -1
  69. package/lib/umd-es6/relationships.js.gz +0 -0
  70. package/lib/umd-es6/store.js +1 -1
  71. package/lib/umd-es6/store.js.gz +0 -0
  72. package/lib/umd-es6/tinybase.js +1 -1
  73. package/lib/umd-es6/tinybase.js.gz +0 -0
  74. package/lib/umd-es6/tools.d.ts +155 -5
  75. package/lib/umd-es6/tools.js +1 -1
  76. package/lib/umd-es6/tools.js.gz +0 -0
  77. package/lib/umd-es6/ui-react.js +1 -1
  78. package/lib/umd-es6/ui-react.js.gz +0 -0
  79. package/package.json +6 -5
  80. package/readme.md +21 -2
@@ -224,21 +224,171 @@ export interface Tools {
224
224
 
225
225
  /**
226
226
  * The getStoreApi method returns a code-generated .d.ts file and a .ts file
227
- * that wraps the schema of a Store.
227
+ * that describe the schema of a Store in an ORM style.
228
228
  *
229
- * This is currently in development, and further documentation is to come.
229
+ * If the Store does not already have an explicit Schema associated with it,
230
+ * the data in the Store will be scanned to attempt to infer a new Schema. The
231
+ * method returns two strings (which should be saved as files) though if no
232
+ * schema can be inferred, the strings will be empty.
233
+ *
234
+ * The method takes a single argument which represents the name you want the
235
+ * generated store object to have in code. You are expected to save the files
236
+ * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
237
+ * that the latter can import types from the former.
238
+ *
239
+ * The .d.ts and .ts files that are generated are designed to resemble the
240
+ * main TinyBase `store.d.ts` and `store.ts` files, but provide named types
241
+ * and methods that describe the domain of the schema in the store.
242
+ *
243
+ * For example, from a Store that has a `pets` Table, you will get methods
244
+ * like `getPetsTable`, and types like `PetsRow`, that are more specific
245
+ * versions of the underlying getTable method or the Row type. For example:
246
+ *
247
+ * |Store type|Equivalent generated type|
248
+ * |-|-|
249
+ * |Table|[Table]Table|
250
+ * |Row|[Table]Row|
251
+ * |(Cell) Id|[Table]CellId|
252
+ * |CellCallback|[Table]CellCallback|
253
+ * |...|...|
254
+ *
255
+ * |Store method|Equivalent generated method|
256
+ * |-|-|
257
+ * |setTable|set[Table]Table|
258
+ * |hasRow|has[Table]Row|
259
+ * |getCell|get[Table][Cell]Cell|
260
+ * |...|...|
261
+ *
262
+ * Equivalent to the TinyBase createStore function, a `create[StoreName]`
263
+ * function will also be created. This acts as the main entry point to the
264
+ * generated implementation.
265
+ *
266
+ * Each method is refined correctly to take, or return, the types specified by
267
+ * the schema. For example, if the `pets` Table has a numeric `price` Cell in
268
+ * the schema, the `getPetsPriceCell` method will be typed to return a number.
269
+ *
270
+ * The tables above include just a sample of the generated output. For the
271
+ * full set of methods and types generated by this method, inspect the output
272
+ * directly.
273
+ *
274
+ * @param storeName The name you want to provide to the generated Store, which
275
+ * should also be used to save the `.d.ts` and `.ts` files.
276
+ * @returns A pair of strings representing the contents of the `.d.ts` and
277
+ * `.ts` files.
278
+ * @example
279
+ * This example creates a Tools object and generates code for a Store that
280
+ * already has a Schema.
281
+ * ```js
282
+ * const store = createStore().setSchema({
283
+ * pets: {
284
+ * price: {type: 'number'},
285
+ * },
286
+ * });
287
+ * const [dTs, ts] = createTools(store).getStoreApi('shop');
288
+ *
289
+ * const dTsLines = dTs.split('\n');
290
+ * console.log(dTsLines[3]);
291
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
292
+ * console.log(dTsLines[6]);
293
+ * // -> 'export type PetsRow = {\'price\'?: number;};'
294
+ *
295
+ * const tsLines = ts.split('\n');
296
+ * console.log(tsLines[40]);
297
+ * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
298
+ * ```
299
+ * @example
300
+ * This example creates a Tools object and generates code for a Store that
301
+ * doesn't already have a Schema.
302
+ * ```js
303
+ * const store = createStore().setTable('pets', {
304
+ * fido: {price: 5},
305
+ * felix: {price: 4},
306
+ * });
307
+ * const [dTs, ts] = createTools(store).getStoreApi('shop');
230
308
  *
309
+ * const dTsLines = dTs.split('\n');
310
+ * console.log(dTsLines[3]);
311
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
312
+ * console.log(dTsLines[6]);
313
+ * // -> 'export type PetsRow = {\'price\': number;};'
314
+ *
315
+ * const tsLines = ts.split('\n');
316
+ * console.log(tsLines[42]);
317
+ * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
318
+ * ```
231
319
  * @category Modelling
232
320
  * @since v2.2.0
233
321
  */
234
322
  getStoreApi(storeName: string): [string, string];
235
323
 
236
324
  /**
237
- * The getStoreApi method attempts to return a prettified code-generated .d.ts
238
- * file and a .ts file that wraps the schema of a Store.
325
+ * The getPrettyStoreApi method attempts to returns a prettified
326
+ * code-generated .d.ts file and a .ts file that describe the schema of a
327
+ * Store in an ORM style.
328
+ *
329
+ * This is simply a wrapper around the getStoreApi method that attempts to
330
+ * invoke the `prettier` module (which it hopes you have installed) to format
331
+ * the generated code. If `prettier` is not present, the output will resemble
332
+ * that of the underlying getStoreApi method.
239
333
  *
240
- * This is currently in development, and further documentation is to come.
334
+ * The method is asynchronous, so you should use the `await` keyword or handle
335
+ * the results as a promise.
241
336
  *
337
+ * The method takes a single argument which represents the name you want the
338
+ * generated store object to have in code. You are expected to save the files
339
+ * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
340
+ * that the latter can import types from the former.
341
+ *
342
+ * See the documentation for the getStoreApi method for details of the content
343
+ * of the generated files.
344
+ *
345
+ * @param storeName The name you want to provide to the generated Store, which
346
+ * should also be used to save the `.d.ts` and `.ts` files.
347
+ * @returns A pair of strings representing the contents of the `.d.ts` and
348
+ * `.ts` files.
349
+ * @example
350
+ * This example creates a Tools object and generates code for a Store that
351
+ * already has a Schema.
352
+ * ```js
353
+ * const store = createStore().setSchema({
354
+ * pets: {
355
+ * price: {type: 'number'},
356
+ * },
357
+ * });
358
+ * const tools = createTools(store);
359
+ * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
360
+ *
361
+ * const dTsLines = dTs.split('\n');
362
+ * console.log(dTsLines[14]);
363
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
364
+ * console.log(dTsLines[19]);
365
+ * // -> 'export type PetsRow = {price?: number};'
366
+ *
367
+ * const tsLines = ts.split('\n');
368
+ * console.log(tsLines[73]);
369
+ * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
370
+ * ```
371
+ * @example
372
+ * This example creates a Tools object and generates code for a Store that
373
+ * doesn't already have a Schema.
374
+ * ```js
375
+ * const store = createStore().setTable('pets', {
376
+ * fido: {price: 5},
377
+ * felix: {price: 4},
378
+ * });
379
+ * const tools = createTools(store);
380
+ * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
381
+ *
382
+ * const dTsLines = dTs.split('\n');
383
+ * console.log(dTsLines[14]);
384
+ * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
385
+ * console.log(dTsLines[19]);
386
+ * // -> 'export type PetsRow = {price: number};'
387
+ *
388
+ * const tsLines = ts.split('\n');
389
+ * console.log(tsLines[75]);
390
+ * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
391
+ * ```
242
392
  * @category Modelling
243
393
  * @since v2.2.0
244
394
  */
package/lib/umd/tools.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,l="",a=t(l),o=t(!0),n=t(0),r="type",s="default",d=(e,t)=>e.every(t),i=(e,t)=>e.sort(t),$=(e,t)=>e.forEach(t),c=(e,t)=>e.map(t),I=e=>e.length,b=(e,...t)=>e.push(...t),h=e=>e.shift(),w=JSON.parse,u=isFinite,f=e=>null==e,C=e=>Array.isArray(e),g=(e,t)=>e?.has(t)??!1,T=e=>[...e?.values()??[]],R=(e,t)=>e?.forEach(t),p=e=>new Map(e),v=(e,t)=>e?.get(t),m=(e,t)=>c([...e?.entries()??[]],(([e,l])=>t(l,e))),S=(e,t,l)=>{return f(l)?(a=t,e?.delete(a),e):e?.set(t,l);var a},y=(e,t,l)=>(g(e,t)||S(e,t,l()),v(e,t)),L=e=>new Set(C(e)||f(e)?e:[e]),k=/[^A-Za-z0-9]+/,A=/^( *)\/\*\* *(.*?) *\*\/$/gm,E=(e,t,l)=>e.substring(t,l),x=e=>e.toUpperCase(),j=e=>e.toLowerCase(),J=(e,t,l,a=1)=>{const o=`${t}${1==a?"":a}`;return g(e,o)?J(e,t,l,a+1):(S(e,o,l),o)},O=e=>e.length,N=(e,t="")=>e.join(t),G=(e,t=0)=>N(c(e.split(k),((e,l)=>(l>0||t?x:j)(E(e,0,1))+E(e,1)))),z=e=>x(N(e.split(k),"_")),D=e=>`/** ${e}. */`,F=()=>{const e=[p(),p()],t=p(),a=p(),o=p();return[(...e)=>{const t=[],l=e=>C(e)?$(e,l):b(t,e);return $(e,l),t.join("\n")},(t,l,...a)=>$(a,(a=>{return o=y(e[t],l,L),n=a,o?.add(n);var o,n})),(e,l="",a="")=>J(t,e,[l,a]),(e,l,a)=>S(t,e,[l,a]),(e,t,l,o,n,r="")=>J(a,e,[t,l,o,n,r]),(e,t,l)=>J(o,e,C(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>v(o,e)===t?e:J(o,e,t),t=>[...i(m(e[t],((e,t)=>`import {${N(i(T(e)),", ")}} from '${t}';`))),l],()=>m(t,(([e,t],a)=>[D(t),`export type ${a} = ${e};`,l])),e=>m(a,(([t,a,o,n,r],s)=>{const d=e?[`${s}: ${r}(${t}): ${a} => ${o},`]:[`${s}${r}(${t}): ${a};`];return e||((e,...t)=>{e.unshift(...t)})(d,D(n)),b(d,l),d})),()=>m(o,((e,t)=>(e=C(e)?e:[e],b(e,e.pop()+";"),[`const ${t} = ${h(e)}`,e,l])))]},M=Object,W=M.keys,P=M.freeze,_=(e,t)=>{return a=e=>e[t],f(l=e)?o?.():a(l);var l,a,o},B=(e,t)=>$(M.entries(e),(([e,l])=>t(l,e))),Q=e=>{return t=W(e),0==I(t);var t},U=e=>{const l=t(e);return(e=>e==a||e==o)(l)||l==n&&u(e)?l:void 0},Z="the Store",q="the specified Row",H="Registers a listener that will be called",K=(e,t="",l="")=>`store.${e}(${t})${l?" as "+l:""}`,V=(e,t="")=>`fluent(() => ${K(e,t)})`,X=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${t}`,Y=(e,t)=>`Calls a function for each ${e} in ${t}`,ee=(e,t=Z)=>`Gets whether ${e} exists in ${t}`,te=e=>"A function that takes "+e,le=(e,t,l=0)=>`${H} whenever ${e} in ${t} change`+(l?"":"s"),ae=(e=0)=>1==e?"Sets":2==e?"Sets part of":3==e?"Deletes":"Gets",oe=(e,l)=>{if(Q(e))return[n="// store has no inferable schema",n];var n;const d=G(l),i=G(l,1),$=G(i),c=`return ${$};`,I=[],h=[],w=[],u=[],C=[],g=[],v=[],m=(e,t="",l="")=>`store.${e}(${t?t+", ":""}proxy(listener)${l?", "+l:""})`,[y,L,k,A,E,x,j,J,O,M,W]=F();L(0,"tinybase","CellChange","ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store"),L(1,"tinybase","ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store","createStore"),x("fluent","actions: () => Store",["actions();",c]),x("proxy","listener: any",`(_: Store, ...args: any[]) => listener(${$}, ...args)`);const P=j(z(r),"'type'"),U=j(z(s),"'default'"),oe=k("Tables"),ne=k("TableId"),re=k("TableCallback"),se=k("GetCellChange"),de=k("TablesListener",`(${$}: ${i}, getCellChange: ${se} | undefined) => void`,"A function for listening to changes to the content of the Store"),ie=k("TableIdsListener",`(${$}: ${i}) => void`,"A function for listening to changes to Table Ids in the Store"),$e=k("TableListener",`(${$}: ${i}, tableId: ${ne}, getCellChange: ${se} | undefined) => void`,"A function for listening to changes to a Table in the Store"),ce=k("RowIdsListener",`(${$}: ${i}, tableId: ${ne}) => void`,"A function for listening to changes to Row Ids in the Store"),Ie=k("RowListener",`(${$}: ${i}, tableId: ${ne}, rowId: Id, getCellChange: ${se} | undefined) => void`,"A function for listening to changes to a Row in the Store"),be=k("CellIdsListener",`(${$}: ${i}, tableId: ${ne}, rowId: Id) => void`,"A function for listening to changes to Cell Ids in the Store"),he=k("CellListener"),we=k("InvalidCellListener",`(${$}: ${i}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[]) => void;`,"A function for listening to invalid Cell changes"),ue=k("TransactionListener",`(${$}: ${i}, cellsTouched: boolean) => void;`,"A function for listening to the completion of a transaction");L(1,`./${d}.d`,i,`create${i} as create${i}Decl`,oe,ne,re,de,ie,$e,ce,Ie,be,he,we,ue);const fe=(e=0)=>ae(e)+" the content of the Store";E("hasTables","",o,K("hasTables"),ee("any Table")),E("getTables","",oe,K("getTables"),fe()),E("setTables","tables: "+oe,i,V("setTables","tables"),fe(1)),E("delTables","",i,V("delTables"),fe(3)),E("getTableIds","",ne+"[]",K("getTableIds","",ne+"[]"),X("Table",Z)),E("forEachTable","tableCallback: "+re,"void",K("forEachTable","tableCallback as any"),Y("Table",Z));const Ce=p();var ge;return B(e,((e,l)=>{const n=G(l,1),r=j(z(l),`'${l}'`),c=[],T=[],R=[],p=[],m=`the '${l}' Table`,y="the specified Row in "+m,x="the content of "+m,J=(e=0)=>`${ae(e)} the content of ${m}`,O=(e=0)=>`${ae(e)} the content of ${y}`,D=(e=0)=>`Represents a Row when ${e?"s":"g"}etting ${x}`,F=k(n+"Table",`{[rowId: Id]: ${n}Row}`,"Represents "+m),M=k(n+"Row"),W=k(n+"RowWhenSet"),Q=k(n+"CellId"),Z=k(n+"CellCallback"),H=k(n+"RowCallback");L(1,`./${d}.d`,F,M,W,Q,Z,H),E(`has${n}Table`,"",o,K("hasTable",r),ee(m)),E(`get${n}Table`,"",F,K("getTable",r,F),J()),E(`set${n}Table`,"table: "+F,i,V("setTable",r+", table"),J(1)),E(`del${n}Table`,"",i,V("delTable",r),J(3)),E(`get${n}RowIds`,"","Ids",K("getRowIds",r),X("Row",m)),E(`get${n}SortedRowIds`,`cellId?: ${Q}, descending?: boolean, offset?: number, limit?: number`,"Ids",K("getSortedRowIds",r+", cellId, descending, offset, limit"),X("Row",m,1)),E(`forEach${n}Row`,"rowCallback: "+H,"void",K("forEachRow",r+", rowCallback as any"),Y("Row",m)),E(`has${n}Row`,"rowId: Id",o,K("hasRow",r+", rowId"),ee(q,m)),E(`get${n}Row`,"rowId: Id",M,K("getRow",r+", rowId",M),O()),E(`set${n}Row`,"rowId: Id, row: "+W,i,V("setRow",r+", rowId, row"),O(1)),E(`add${n}Row`,"row: "+W,"Id | undefined",K("addRow",r+", row"),"Adds a new Row to "+m),E(`set${n}PartialRow`,"rowId: Id, partialRow: "+W,i,V("setPartialRow",r+", rowId, partialRow"),O(2)),E(`del${n}Row`,"rowId: Id",i,V("delRow",r+", rowId"),O(3)),E(`get${n}CellIds`,"rowId: Id",Q+"[]",K("getCellIds",r+", rowId",Q+"[]"),X("Cell",y)),E(`forEach${n}Cell`,"rowId: Id, cellCallback: "+Z,"void",K("forEachCell",r+", rowId, cellCallback as any"),Y("Cell",y)),b(v,`[${r}]: {`),B(e,((e,d)=>{const I=G(d,1),h=j(z(d),`'${d}'`),w=e.type,u=!f(_(e,s)),g=e.default,m=`the '${d}' Cell`,L=(e=0)=>`${ae(e)} ${m} for ${y}`;var k;b(v,`[${h}]: {[${P}]: ${j(z(w),`'${w}'`)}${u?`, [${U}]: ${k=g,t(k)==a?j(z(g),`'${g}'`):g}`:""}},`),b(c,`'${d}'${u?"":"?"}: ${w};`),b(T,`'${d}'?: ${w};`),b(R,`'${d}'`),b(p,`[cellId: '${d}', cell: ${w}]`),b(C,`[${$}: ${i}, tableId: '${l}', rowId: Id, cellId: '${d}', newCell: ${w} | undefined, oldCell: ${w} | undefined, getCellChange: ${se} | undefined]`);const A="Map"+G(w,1);S(Ce,w,A),E(`has${n}${I}Cell`,"rowId: Id",o,K("hasCell",`${r}, rowId, ${h}`),ee(m,y));const x=`${w}${u?"":" | undefined"}`;E(`get${n}${I}Cell`,"rowId: Id",x,K("getCell",`${r}, rowId, ${h}`,x),L()),E(`set${n}${I}Cell`,`rowId: Id, cell: ${w} | ${A}`,i,V("setCell",`${r}, rowId, ${h}, cell as any`),L(1)),E(`del${n}${I}Cell`,"rowId: Id",i,V("delCell",`${r}, rowId, ${h}`),L(3))})),b(v,"},"),b(I,`'${l}'?: ${F};`),b(h,`'${l}'`),b(w,`[tableId: '${l}', forEachRow: (rowCallback: ${H}) => void]`),b(u,`[tableId: '${l}', rowId: Id, cellId: ${Q}]`),b(g,Q),A(M,`{${N(c," ")}}`,D()),A(W,`{${N(T," ")}}`,D(1)),A(Q,N(R," | "),"A Cell Id for "+m),A(Z,`(...[cellId, cell]: ${N(p," | ")}) => void`,te("a Cell Id and value from a Row in "+m)),A(H,`(rowId: Id, forEachCell: (cellCallback: ${Z}) => void) => void`,te(`a Row Id from ${m}, and a Cell iterator`))})),E("getJson","","Json",K("getJson"),"Gets a a string serialization the content of the Store"),E("setJson","json: Json",i,V("setJson","json"),"Sets the content of the Store from a serialized string"),E("transaction","actions: () => Return, doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean","Return",K("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),E("startTransaction","",i,V("startTransaction"),"Explicitly starts a transaction"),E("finishTransaction","doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean,",i,V("finishTransaction","doRollback"),"Explicitly finishes a transaction"),E("addTablesListener",`listener: ${de}, mutator?: boolean`,"Id",m("addTablesListener","","mutator"),H+" whenever the content of the Store changes"),E("addTableIdsListener",`listener: ${ie}, mutator?: boolean`,"Id",m("addTableIdsListener","","mutator"),le("the Table Ids",Z,1)),E("addTableListener",`tableId: ${ne} | null, listener: ${$e}, mutator?: boolean`,"Id",m("addTableListener","tableId","mutator"),le("a Table",Z)),E("addRowIdsListener",`tableId: ${ne} | null, listener: ${ce}, mutator?: boolean`,"Id",m("addRowIdsListener","tableId","mutator"),le("the Row Ids","a Table",1)),E("addRowListener",`tableId: ${ne} | null, rowId: IdOrNull, listener: ${Ie}, mutator?: boolean`,"Id",m("addRowListener","tableId, rowId","mutator"),le("a Row","a Table")),E("addCellIdsListener",`tableId: ${ne} | null, rowId: IdOrNull, listener: ${be}, mutator?: boolean`,"Id",m("addCellIdsListener","tableId, rowId","mutator"),le("the Cell Ids","a Row",1)),E("addCellListener",`tableId: ${ne} | null, rowId: IdOrNull, cellId: ${N(g," | ")} | null, listener: ${he}, mutator?: boolean`,"Id",m("addCellListener","tableId, rowId, cellId","mutator"),le("a Cell","a Row")),E("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, listener: ${we}, mutator?: boolean`,"Id",m("addCellListener","tableId, rowId, cellId","mutator"),H+" whenever an invalid Cell change was attempted"),E("addWillFinishTransactionListener","listener: "+ue,"Id",m("addWillFinishTransactionListener"),H+" just before the end of the transaction"),E("addDidFinishTransactionListener","listener: "+ue,"Id",m("addDidFinishTransactionListener"),H+" just after the end of the transaction"),E("callListener","listenerId: Id",i,V("callListener","listenerId"),"Manually provoke a listener to be called"),E("delListener","listenerId: Id",i,V("delListener","listenerId"),"Remove a listener that was previously added to the Store"),E("getStore","","Store","store","Gets the underlying Store object"),A(oe,`{${N(I," ")}}`,"Represents the content of the Store"),A(ne,N(h," | "),"A Table Id in the Store"),A(re,`(...[tableId, rowCallback]: ${N(w," | ")}) => void`,te("a Table Id, and a Row iterator")),A(se,`(...[tableId, rowId, cellId]: ${N(u," | ")}) => CellChange`,"A function that returns information about any Cell's changes during a transaction"),A(he,`(...[${$}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${N(C," | ")}) => void`,"A function for listening to changes to a Cell in the Store"),ge=(e,t)=>k(t,`(cell: ${e} | undefined) => ${e}`,`Takes a ${e} Cell value and returns another`),R(Ce,((e,t)=>ge(t,e))),L(1,`./${d}.d`,...T(Ce)),j("store",["createStore().setSchema({",...v,"})"]),j($,["{",...M(1),"}"]),[y(...J(0),...O(),`export interface ${i} {`,...M(0),"}","",D(`Creates a ${i} object`),`export function create${i}(): ${i};`),y(...J(1),`export const create${i}: typeof create${i}Decl = () => {`,...W(),`return Object.freeze(${$});`,"};")]},ne={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},re=(e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))})((e=>{const t=()=>{const t=w(e.getSchemaJson());return!Q(t)||d(e.getTableIds(),(l=>{const a=e.getRowIds(l),o=p();if(d(a,(t=>d(e.getCellIds(l,t),(a=>{const n=e.getCell(l,t,a),r=y(o,a,(()=>[U(n),p(),[0],0])),[s,d,[i]]=r,$=y(d,n,(()=>0))+1;return $>i&&(r[2]=[$,n]),S(d,n,$),r[3]++,s==U(n)})))))return t[l]={},R(o,(([e,,[,o],n],d)=>{t[l][d]={[r]:e,...n==I(a)?{[s]:o}:{}}})),1}))?t:{}},l=e=>oe(t(),e);return P({getStoreStats:t=>{let l=0,a=0,o=0;const n={};return e.forEachTable(((e,r)=>{l++;let s=0,d=0;const i={};r(((e,l)=>{s++;let a=0;l((()=>a++)),d+=a,t&&(i[e]={rowCells:a})})),a+=s,o+=d,t&&(n[e]={tableRows:s,tableCells:d,rows:i})})),{totalTables:l,totalRows:a,totalCells:o,jsonLength:O(e.getJson()),...t?{detail:{tables:n}}:{}}},getStoreSchema:t,getStoreApi:l,getPrettyStoreApi:async e=>{const t=l(e);try{const{format:e}=await import("prettier");return c(t,(t=>(e=>e.replace(A,((e,t,l)=>{const a=77-O(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})))(e(t,ne))))}catch{}return t}})}));e.createTools=re},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseTools={});
1
+ var e,l;e=this,l=function(e){"use strict";const l=e=>typeof e,t="",a=l(t),o=l(!0),n=l(0),d="type",r="default",s=(e,l)=>e.every(l),$=(e,l)=>e.sort(l),i=(e,l)=>e.forEach(l),I=(e,l)=>e.map(l),c=e=>e.length,b=e=>0==c(e),w=(e,...l)=>e.push(...l),C=e=>e.pop(),h=(e,...l)=>e.unshift(...l),u=e=>e.shift(),g=JSON.parse,T=isFinite,f=e=>null==e,R=e=>e==a||e==o,p=e=>l(e)==a,m=e=>Array.isArray(e),y=(e,l)=>e?.has(l)??!1,L=e=>[...e?.values()??[]],v=(e,l)=>e?.forEach(l),S=(e,l)=>e?.delete(l),k=e=>new Map(e),E=(e,l)=>e?.get(l),j=(e,l)=>v(e,((e,t)=>l(t,e))),x=(e,l)=>I([...e?.entries()??[]],(([e,t])=>l(t,e))),A=(e,l,t)=>f(t)?(S(e,l),e):e?.set(l,t),J=(e,l,t)=>(y(e,l)||A(e,l,t()),E(e,l)),O=e=>new Set(m(e)||f(e)?e:[e]),N=(e,l)=>e?.add(l),z=e=>[e,e],D=()=>[k(),k()],F=/[^A-Za-z0-9]+/,G=/^( *)\/\*\* *(.*?) *\*\/$/gm,M=(e,l,t)=>e.substring(l,t),W=e=>e.toUpperCase(),P=e=>e.toLowerCase(),_=(e,l,t,a=1)=>{const o=`${l}${1==a?"":a}`;return y(e,o)?_(e,l,t,a+1):(A(e,o,t),o)},B=e=>e.replace(G,((e,l,t)=>{const a=77-Q(l);return`${l}/**\n${t.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),l+" * $1\n")}${l} */`})),Q=e=>e.length,U=(e,l=t)=>e.join(l),Z=e=>e.flat(1e3),q=(e,l=0)=>U(I(e.split(F),((e,t)=>(t>0||l?W:P)(M(e,0,1))+M(e,1)))),H=e=>W(U(e.split(F),"_")),K=e=>`/** ${e}. */`,V=()=>{const e=D(),l=k(),a=k(),o=k();return[(...e)=>U(Z(e),"\n"),(l,t,...a)=>i(a,(a=>N(J(e[l],t,O),a))),(e,t="",a="")=>_(l,e,[t,a]),(e,l,t,o,n,d="")=>_(a,e,[l,t,o,n,d]),(e,l,t)=>_(o,e,m(t)?[`(${l}) => {`,t,"}"]:[`(${l}) => ${t}`]),(e,l)=>E(o,e)===l?e:_(o,e,l),l=>[...$(x(e[l],((e,l)=>`import {${U($(L(e)),", ")}} from '${l}';`))),t],()=>x(l,(([e,l],a)=>[K(l),`export type ${a} = ${e};`,t])),e=>x(a,(([l,a,o,n,d],r)=>{const s=e?[`${r}: ${d}(${l}): ${a} => ${o},`]:[`${r}${d}(${l}): ${a};`];return e||h(s,K(n)),w(s,t),s})),()=>x(o,((e,l)=>(e=m(e)?e:[e],w(e,C(e)+";"),[`const ${l} = ${u(e)}`,e,t])))]},X=Object,Y=X.keys,ee=X.freeze,le=(e,l)=>I(X.entries(e),(([e,t])=>l(t,e))),te=e=>b(Y(e)),ae=e=>{const t=l(e);return R(t)||t==n&&T(e)?t:void 0},oe="the content of",ne="the Store",de="A function for",re="export",se="listener",$e=" | undefined",ie=`Registers a ${se} that will be called`,Ie="Represents",ce=" => void",be=`${oe} ${ne}`,we="the end of the transaction",Ce="the specified Row",he=(e,l=0)=>`${Ie} a Row when ${l?"s":"g"}etting ${oe} the '${e}' Table`,ue=(e,l,t=0)=>`Gets ${t?"sorted, paginated":"the"} Ids of the ${e}s in ${l}`,ge=(e,l)=>`Calls a function for each ${e} in ${l}`,Te=(e,l=ne)=>`Gets whether ${e} exists in ${l}`,fe=e=>"A function that takes "+e,Re=(e=0,l=0)=>`${de} listening to changes to ${xe[e]} in ${xe[l]}`,pe=(e,l,t=0)=>`${ie} whenever ${e} in ${l} change`+(t?"":"s"),me=(e=0)=>`${je[e]} ${be}`,ye=e=>`the '${e}' Table`,Le=e=>`${Ce} in ${ye(e)}`,ve=e=>`the '${e}' Cell`,Se=(e,l=0)=>`${je[l]} ${oe} ${ye(e)}`,ke=(e,l=0)=>`${je[l]} ${oe} ${Le(e)}`,Ee=(e,l,t=0)=>`${je[t]} ${ve(l)} for ${Le(e)}`,je=["Gets","Sets","Sets part of","Deletes"],xe=[ne,"anything","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes"],Ae=["ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store"],Je=(e,l=t,a=t)=>`store.${e}(${l})${a?" as "+a:t}`,Oe=(e,l=t)=>`fluent(() => ${Je(e,l)})`,Ne=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(${se})${a?", "+a:t})`,ze=(e,l)=>{if(te(e))return z(t);const[a,n,s,$,i,I,c,b,w,C]=V(),h=`./${q(l)}.d`,u=q(l,1),g=q(u),T=k(),R=l=>le(e,((e,a)=>l(a,J(T,a,(()=>{const e=q(a,1);return[s(e+"Table",`{[rowId: Id]: ${e}Row}`,`${Ie} the '${a}' Table`),s(e+"Row",`{${U(m(a,((e,l,a)=>`'${e}'${f(a)?"?":t}: ${l};`))," ")}}`,he(a)),s(e+"RowWhenSet",`{${U(m(a,((e,l)=>`'${e}'?: ${l};`))," ")}}`,he(a,1)),s(e+"CellId",U(m(a,(e=>`'${e}'`))," | "),`A Cell Id for the '${a}' Table`),s(e+"CellCallback",`(...[cellId, cell]: ${U(m(a,((e,l)=>`[cellId: '${e}', cell: ${l}]`))," | ")})${ce}`,fe(`a Cell Id and value from a Row in the '${a}' Table`)),s(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${ce})${ce}`,fe(`a Row Id from the '${a}' Table, and a Cell iterator`))]})),q(a,1),I(H(a),`'${a}'`)))),m=(l,t)=>le(e[l],((e,l)=>t(l,e[d],e[r],I(H(l),`'${l}'`),q(l,1)))),y=s("Tables",`{${U(R(((e,l)=>`'${e}'?: ${l[0]};`))," ")}}`,`${Ie} ${be}`),v=s("TableId",U(R((e=>`'${e}'`))," | "),"A Table Id in "+ne),S=s("TableCallback",`(...[tableId, rowCallback]: ${U(R(((e,l)=>`[tableId: '${e}', forEachRow: (rowCallback: ${l[5]})${ce}]`))," | ")})${ce}`,fe("a Table Id, and a Row iterator")),E=s("GetCellChange",`(...[tableId, rowId, cellId]: ${U(R(((e,l)=>`[tableId: '${e}', rowId: Id, cellId: ${l[3]}]`))," | ")}) => CellChange`,de+" returning information about any Cell's changes during a transaction"),x=s("TablesListener",`(${g}: ${u}, getCellChange: ${E}${$e})${ce}`,Re(1)),O=s("TableIdsListener",`(${g}: ${u})${ce}`,Re(2)),N=s("TableListener",`(${g}: ${u}, tableId: ${v}, getCellChange: ${E}${$e})${ce}`,Re(3)),D=s("RowIdsListener",`(${g}: ${u}, tableId: ${v})${ce}`,Re(4,3)),F=s("RowListener",`(${g}: ${u}, tableId: ${v}, rowId: Id, getCellChange: ${E}${$e})${ce}`,Re(5,3)),G=s("CellIdsListener",`(${g}: ${u}, tableId: ${v}, rowId: Id)`+ce,Re(6,5)),M=s("CellListener",`(...[${g}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U(Z(R((e=>m(e,((l,t)=>`[${g}: ${u}, tableId: '${e}', rowId: Id, cellId: '${l}', newCell: ${t}${$e}, oldCell: ${t}${$e}, getCellChange: ${E} | undefined]`)))))," | ")})${ce}`,Re(7,5)),W=s("InvalidCellListener",`(${g}: ${u}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${ce};`,Re(8)),P=s("TransactionListener",`(${g}: ${u}, cellsTouched: boolean)${ce};`,de+" listening to the completion of a transaction");$("hasTables",t,o,Je("hasTables"),Te("any Table")),$("getTables",t,y,Je("getTables"),me()),$("setTables","tables: "+y,u,Oe("setTables","tables"),me(1)),$("delTables",t,u,Oe("delTables"),me(3)),$("getTableIds",t,v+"[]",Je("getTableIds",t,v+"[]"),ue("Table",ne)),$("forEachTable","tableCallback: "+S,"void",Je("forEachTable","tableCallback as any"),ge("Table",ne));const _=k();return R(((e,[l,a,d,r,s,i],I,c)=>{n(1,h,l,a,d,r,s,i),$(`has${I}Table`,t,o,Je("hasTable",c),Te(ye(e))),$(`get${I}Table`,t,l,Je("getTable",c,l),Se(e)),$(`set${I}Table`,"table: "+l,u,Oe("setTable",c+", table"),Se(e,1)),$(`del${I}Table`,t,u,Oe("delTable",c),Se(e,3)),$(`get${I}RowIds`,t,"Ids",Je("getRowIds",c),ue("Row",ye(e))),$(`get${I}SortedRowIds`,`cellId?: ${r}, descending?: boolean, offset?: number, limit?: number`,"Ids",Je("getSortedRowIds",c+", cellId, descending, offset, limit"),ue("Row",ye(e),1)),$(`forEach${I}Row`,"rowCallback: "+i,"void",Je("forEachRow",c+", rowCallback as any"),ge("Row",ye(e))),$(`has${I}Row`,"rowId: Id",o,Je("hasRow",c+", rowId"),Te(Ce,ye(e))),$(`get${I}Row`,"rowId: Id",a,Je("getRow",c+", rowId",a),ke(e)),$(`set${I}Row`,"rowId: Id, row: "+d,u,Oe("setRow",c+", rowId, row"),ke(e,1)),$(`add${I}Row`,"row: "+d,"Id"+$e,Je("addRow",c+", row"),"Adds a new Row to "+ye(e)),$(`set${I}PartialRow`,"rowId: Id, partialRow: "+d,u,Oe("setPartialRow",c+", rowId, partialRow"),ke(e,2)),$(`del${I}Row`,"rowId: Id",u,Oe("delRow",c+", rowId"),ke(e,3)),$(`get${I}CellIds`,"rowId: Id",r+"[]",Je("getCellIds",c+", rowId",r+"[]"),ue("Cell",Le(e))),$(`forEach${I}Cell`,"rowId: Id, cellCallback: "+s,"void",Je("forEachCell",c+", rowId, cellCallback as any"),ge("Cell",Le(e))),m(e,((l,a,n,d,r)=>{const s="Map"+q(a,1);A(_,a,s),$(`has${I}${r}Cell`,"rowId: Id",o,Je("hasCell",`${c}, rowId, ${d}`),Te(ve(l),Le(e)));const i=`${a}${f(n)?$e:t}`;$(`get${I}${r}Cell`,"rowId: Id",i,Je("getCell",`${c}, rowId, ${d}`,i),Ee(e,l)),$(`set${I}${r}Cell`,`rowId: Id, cell: ${a} | ${s}`,u,Oe("setCell",`${c}, rowId, ${d}, cell as any`),Ee(e,l,1)),$(`del${I}${r}Cell`,"rowId: Id",u,Oe("delCell",`${c}, rowId, ${d}`),Ee(e,l,3))}))})),$("getJson",t,"Json",Je("getJson"),`${je[0]} a string serialization ${be}`),$("setJson","json: Json",u,Oe("setJson","json"),`${je[1]} ${be} from a serialized string`),$("transaction","actions: () => Return, doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean","Return",Je("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),$("startTransaction",t,u,Oe("startTransaction"),"Explicitly starts a transaction"),$("finishTransaction","doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean,",u,Oe("finishTransaction","doRollback"),"Explicitly finishes a transaction"),$("addTablesListener",`${se}: ${x}, mutator?: boolean`,"Id",Ne("addTablesListener",t,"mutator"),`${ie} whenever ${be} changes`),$("addTableIdsListener",`${se}: ${O}, mutator?: boolean`,"Id",Ne("addTableIdsListener",t,"mutator"),pe("the Table Ids",ne,1)),$("addTableListener",`tableId: ${v} | null, ${se}: ${N}, mutator?: boolean`,"Id",Ne("addTableListener","tableId","mutator"),pe("a Table",ne)),$("addRowIdsListener",`tableId: ${v} | null, ${se}: ${D}, mutator?: boolean`,"Id",Ne("addRowIdsListener","tableId","mutator"),pe("the Row Ids","a Table",1)),$("addRowListener",`tableId: ${v} | null, rowId: IdOrNull, ${se}: ${F}, mutator?: boolean`,"Id",Ne("addRowListener","tableId, rowId","mutator"),pe("a Row","a Table")),$("addCellIdsListener",`tableId: ${v} | null, rowId: IdOrNull, ${se}: ${G}, mutator?: boolean`,"Id",Ne("addCellIdsListener","tableId, rowId","mutator"),pe("the Cell Ids","a Row",1)),$("addCellListener",`tableId: ${v} | null, rowId: IdOrNull, cellId: ${U(R(((e,l)=>l[3]))," | ")} | null, ${se}: ${M}, mutator?: boolean`,"Id",Ne("addCellListener","tableId, rowId, cellId","mutator"),pe("a Cell","a Row")),$("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${se}: ${W}, mutator?: boolean`,"Id",Ne("addCellListener","tableId, rowId, cellId","mutator"),ie+" whenever an invalid Cell change was attempted"),$("addWillFinishTransactionListener",`${se}: ${P}`,"Id",Ne("addWillFinishTransactionListener"),`${ie} just before ${we}`),$("addDidFinishTransactionListener",`${se}: ${P}`,"Id",Ne("addDidFinishTransactionListener"),`${ie} just after ${we}`),$("callListener",se+"Id: Id",u,Oe("callListener",se+"Id"),`Manually provoke a ${se} to be called`),$("delListener",se+"Id: Id",u,Oe("delListener",se+"Id"),`Remove a ${se} that was previously added to ${ne}`),$("getStore",t,"Store","store",je[0]+" the underlying Store object"),j(_,((e,l)=>s(l,`(cell: ${e}${$e}) => ${e}`,`Takes a ${e} Cell value and returns another`))),n(0,"tinybase","CellChange",...Ae),n(1,"tinybase","createStore",...Ae),n(1,h,u,`create${u} as create${u}Decl`,y,v,S,x,O,N,D,F,G,M,W,P,...L(_)),I("store",["createStore().setSchema({",Z(R(((e,l,a,o)=>[`[${o}]: {`,...m(e,((e,l,a,o)=>`[${o}]: {[${I(H(d),`'${d}'`)}]: ${I(H(l),`'${l}'`)}${f(a)?t:`, [${I(H(r),`'${r}'`)}]: ${p(a)?I(H(a),`'${a}'`):a}`}},`)),"},"]))),"})"]),i("fluent","actions: () => Store",["actions();",`return ${g};`]),i("proxy",se+": any",`(_: Store, ...args: any[]) => ${se}(${g}, ...args)`),I(g,["{",...w(1),"}"]),[a(...c(0),...b(),`${re} interface ${u} {`,...w(0),"}",t,K(`Creates a ${u} object`),`${re} function create${u}(): ${u};`),a(...c(1),`${re} const create${u}: typeof create${u}Decl = () => {`,...C(),`return Object.freeze(${g});`,"};")]},De={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Fe=(e=>{const l=new WeakMap;return t=>(l.has(t)||l.set(t,e(t)),l.get(t))})((e=>{const l=()=>{const l=g(e.getSchemaJson());return!te(l)||s(e.getTableIds(),(t=>{const a=e.getRowIds(t),o=k();if(s(a,(l=>s(e.getCellIds(t,l),(a=>{const n=e.getCell(t,l,a),d=J(o,a,(()=>[ae(n),k(),[0],0])),[r,s,[$]]=d,i=J(s,n,(()=>0))+1;return i>$&&(d[2]=[i,n]),A(s,n,i),d[3]++,r==ae(n)})))))return l[t]={},v(o,(([e,,[,o],n],s)=>{l[t][s]={[d]:e,...n==c(a)?{[r]:o}:{}}})),1}))?l:{}},t=e=>ze(l(),e),a=async e=>{let l;try{l=(await import("prettier")).format}catch{l=e=>e}return I(t(e),(e=>B(l(e,De))))};return ee({getStoreStats:l=>{let t=0,a=0,o=0;const n={};return e.forEachTable(((e,d)=>{t++;let r=0,s=0;const $={};d(((e,t)=>{r++;let a=0;t((()=>a++)),s+=a,l&&($[e]={rowCells:a})})),a+=r,o+=s,l&&(n[e]={tableRows:r,tableCells:s,rows:$})})),{totalTables:t,totalRows:a,totalCells:o,jsonLength:Q(e.getJson()),...l?{detail:{tables:n}}:{}}},getStoreSchema:l,getStoreApi:t,getPrettyStoreApi:a})}));e.createTools=Fe},"object"==typeof exports&&"undefined"!=typeof module?l(exports):"function"==typeof define&&define.amd?define(["exports"],l):l((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseTools={});
Binary file
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n="",t=(e,n)=>e.includes(n),l=(e,n)=>e.forEach(n),o=e=>e.length,r=e=>0==o(e),s=(e,...n)=>e.push(...n),i=e=>e.pop(),u=e=>e.shift(),d=e=>null==e,c=(e,n,t)=>d(e)?null==t?void 0:t():n(e),a=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},h=e=>d(e)||0==(e=>e.size)(e),p=(e,n)=>null==e?void 0:e.forEach(n),f=(e,n)=>null==e?void 0:e.delete(n),v=e=>new Map(e),C=(e,n)=>null==e?void 0:e.get(n),g=(e,n,t)=>d(t)?(f(e,n),e):null==e?void 0:e.set(n,t),k=(e,n,t)=>(a(e,n)||g(e,n,t()),C(e,n)),y=(e,n,t,l,r=0)=>c((t?k:C)(e,n[r],r>o(n)-2?t:v),(s=>{if(r>o(n)-2)return(null==l?void 0:l(s))&&g(e,n[r]),s;const i=y(s,n,t,l,r+1);return h(s)&&g(e,n[r]),i})),L=e=>new Set(Array.isArray(e)||d(e)?e:[e]),w=/^\d+$/,b=e=>{let t;const[r,i]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=u(e))?l:n+t++},n=>{w.test(n)&&o(e)<1e3&&s(e,n)}]})(),a=v();return[(l,o,s)=>{null!=t||(t=e());const i=r();var u,d;return g(a,i,[l,o,s]),u=y(o,null!=s?s:[n],L),d=i,null==u||u.add(d),i},(e,r,...i)=>l(((e,t=[n])=>{const r=[],i=(e,n)=>n==o(t)?s(r,e):null===t[n]?p(e,(e=>i(e,n+1))):l([t[n],null],(t=>i(C(e,t),n+1)));return i(e,0),r})(e,r),(e=>p(e,(e=>C(a,e)[0](t,...null!=r?r:[],...i))))),e=>c(C(a,e),(([,t,l])=>(y(t,null!=l?l:[n],void 0,(n=>(f(n,e),h(n)?1:0))),g(a,e),i(e),l))),(e,n,r)=>c(C(a,e),(([e,,s=[]])=>{const i=(...u)=>{const c=o(u);c==o(s)?e(t,...u,...r(u)):d(s[c])?l(n[c](...u),(e=>i(...u,e))):i(...u,s[c])};i()}))]},S=Object.freeze,T=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{let f,y,L,w=100,T=v(),x=1;const z=v(),E=v(),[j,m,A]=b((()=>R)),B=v(),I=v(),M=[],F=[],O=(n,t)=>{x=0,e.transaction((()=>p(C(B,t),((t,l)=>p(t,((t,o)=>p(t,((t,r)=>((e,n,t,l,o)=>d(o)?e.delCell(n,t,l,!0):e.setCell(n,t,l,o))(e,l,o,r,t[n]))))))))),x=1},W=e=>{g(B,e),g(I,e),m(E,[e])},$=(e,n)=>l(((e,n)=>e.splice(0,n))(e,null!=n?n:o(e)),W),q=()=>$(M,o(M)-w),D=e.addCellListener(null,null,null,((e,n,t,l,o,r)=>{if(x){c(f,(()=>{s(M,f),q(),$(F),f=void 0,L=1}));const e=k(T,n,v),u=k(e,t,v),d=k(u,l,(()=>[r,void 0]));d[1]=o,d[0]===o&&h(g(u,l))&&h(g(e,t))&&h(g(T,n))&&(f=i(M),L=1),K()}})),G=(e="")=>(d(f)&&(f=n+y++,g(B,f,T),P(f,e),T=v(),L=1),f),H=()=>{r(M)||(((e,...n)=>{e.unshift(...n)})(F,G()),O(0,f),f=i(M),L=1)},J=()=>{r(F)||(s(M,f),f=u(F),O(1,f),L=1)},K=()=>{L&&(m(z),L=0)},N=e=>{const n=G(e);return K(),n},P=(e,n)=>(Q(e)&&C(I,e)!==n&&(g(I,e,n),m(E,[e])),R),Q=e=>a(B,e),R={setSize:e=>(w=e,q(),R),addCheckpoint:N,setCheckpoint:P,getStore:()=>e,getCheckpointIds:()=>[[...M],f,[...F]],forEachCheckpoint:e=>{return n=e,p(I,((e,t)=>n(t,e)));var n},hasCheckpoint:Q,getCheckpoint:e=>C(I,e),goBackward:()=>(H(),K(),R),goForward:()=>(J(),K(),R),goTo:e=>{const n=t(M,e)?H:t(F,e)?J:null;for(;!d(n)&&e!=f;)n();return K(),R},addCheckpointIdsListener:e=>j(e,z),addCheckpointListener:(e,n)=>j(n,E,[e]),delListener:e=>(A(e),R),clear:()=>($(M),$(F),d(f)||W(f),f=void 0,y=0,N(),R),destroy:()=>{e.delListener(D)},getListenerStats:()=>({})};return S(R.clear())}));e.createCheckpoints=T},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=(e,n)=>e.includes(n),t=(e,n)=>e.forEach(n),l=e=>e.length,o=e=>0==l(e),r=(e,...n)=>e.push(...n),s=e=>e.pop(),i=e=>e.shift(),u=e=>null==e,d=(e,n,t)=>u(e)?null==t?void 0:t():n(e),c=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},a=e=>u(e)||0==(e=>e.size)(e),h=(e,n)=>null==e?void 0:e.forEach(n),p=(e,n)=>null==e?void 0:e.delete(n),f=e=>new Map(e),v=(e,n)=>null==e?void 0:e.get(n),C=(e,n,t)=>u(t)?(p(e,n),e):null==e?void 0:e.set(n,t),g=(e,n,t)=>(c(e,n)||C(e,n,t()),v(e,n)),k=(e,n,t,o,r=0)=>d((t?g:v)(e,n[r],r>l(n)-2?t:f),(s=>{if(r>l(n)-2)return(null==o?void 0:o(s))&&C(e,n[r]),s;const i=k(s,n,t,o,r+1);return a(s)&&C(e,n[r]),i})),y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),L=/^\d+$/,w=Object.freeze,b=(e=>{const b=new WeakMap;return e=>(b.has(e)||b.set(e,(e=>{let b,S,T,x=100,z=f(),E=1;const j=f(),m=f(),[A,B,I]=(e=>{let n;const[o,s]=(()=>{const e=[];let n=0;return[()=>{var t;return null!=(t=i(e))?t:""+n++},n=>{L.test(n)&&l(e)<1e3&&r(e,n)}]})(),c=f();return[(e,t,l)=>{null!=n||(n=V);const r=o();var s,i;return C(c,r,[e,t,l]),i=r,null==(s=k(t,null!=l?l:[""],y))||s.add(i),r},(e,o,...s)=>t(((e,n=[""])=>{const o=[],s=(e,i)=>i==l(n)?r(o,e):null===n[i]?h(e,(e=>s(e,i+1))):t([n[i],null],(n=>s(v(e,n),i+1)));return s(e,0),o})(e,o),(e=>h(e,(e=>v(c,e)[0](n,...null!=o?o:[],...s))))),e=>d(v(c,e),(([,n,t])=>(k(n,null!=t?t:[""],void 0,(n=>(p(n,e),a(n)?1:0))),C(c,e),s(e),t))),(e,o,r)=>d(v(c,e),(([e,,s=[]])=>{const i=(...d)=>{const c=l(d);c==l(s)?e(n,...d,...r(d)):u(s[c])?t(o[c](...d),(e=>i(...d,e))):i(...d,s[c])};i()}))]})(),M=f(),F=f(),O=[],W=[],$=(n,t)=>{E=0,e.transaction((()=>h(v(M,t),((t,l)=>h(t,((t,o)=>h(t,((t,r)=>((e,n,t,l,o)=>u(o)?e.delCell(n,t,l,!0):e.setCell(n,t,l,o))(e,l,o,r,t[n]))))))))),E=1},q=e=>{C(M,e),C(F,e),B(m,[e])},D=(e,n)=>t(((e,n)=>e.splice(0,n))(e,null!=n?n:l(e)),q),G=()=>D(O,l(O)-x),H=e.addCellListener(null,null,null,((e,n,t,l,o,i)=>{if(E){d(b,(()=>{r(O,b),G(),D(W),b=void 0,T=1}));const e=g(z,n,f),u=g(e,t,f),c=g(u,l,(()=>[i,void 0]));c[1]=o,c[0]===o&&a(C(u,l))&&a(C(e,t))&&a(C(z,n))&&(b=s(O),T=1),P()}})),J=(e="")=>(u(b)&&(b=""+S++,C(M,b,z),R(b,e),z=f(),T=1),b),K=()=>{o(O)||(((e,...n)=>{e.unshift(...n)})(W,J()),$(0,b),b=s(O),T=1)},N=()=>{o(W)||(r(O,b),b=i(W),$(1,b),T=1)},P=()=>{T&&(B(j),T=0)},Q=e=>{const n=J(e);return P(),n},R=(e,n)=>(U(e)&&v(F,e)!==n&&(C(F,e,n),B(m,[e])),V),U=e=>c(M,e),V={setSize:e=>(x=e,G(),V),addCheckpoint:Q,setCheckpoint:R,getStore:()=>e,getCheckpointIds:()=>[[...O],b,[...W]],forEachCheckpoint:e=>{return n=e,h(F,((e,t)=>n(t,e)));var n},hasCheckpoint:U,getCheckpoint:e=>v(F,e),goBackward:()=>(K(),P(),V),goForward:()=>(N(),P(),V),goTo:e=>{const t=n(O,e)?K:n(W,e)?N:null;for(;!u(t)&&e!=b;)t();return P(),V},addCheckpointIdsListener:e=>A(e,j),addCheckpointListener:(e,n)=>A(n,m,[e]),delListener:e=>(I(e),V),clear:()=>(D(O),D(W),u(b)||q(b),b=void 0,S=0,Q(),V),destroy:()=>{e.delListener(H)},getListenerStats:()=>({})};return w(V.clear())})(e)),b.get(e))})();e.createCheckpoints=b},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
Binary file
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="",l=n(t),r=e=>t+e,s=(e,n)=>e.every(n),o=(e,n)=>s(e,((t,l)=>0==l||n(e[l-1],t)<=0)),d=(e,n)=>e.sort(n),i=(e,n)=>e.forEach(n),u=e=>e.length,a=(e,...n)=>e.push(...n),c=e=>null==e,f=(e,n,t)=>c(e)?null==t?void 0:t():n(e),v=e=>Array.isArray(e),h=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},I=e=>c(e)||0==(e=>e.size)(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),y=(e,n)=>null==e?void 0:e.forEach(n),x=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),w=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},L=(e,n)=>null==e?void 0:e.get(n),b=(e,n)=>y(e,((e,t)=>n(t,e))),T=(e,n,t)=>c(t)?(x(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(h(e,n)||T(e,n,t()),L(e,n)),R=(e,n,t,l,r=0)=>f((t?E:L)(e,n[r],r>u(n)-2?t:S),(s=>{if(r>u(n)-2)return(null==l?void 0:l(s))&&T(e,n[r]),s;const o=R(s,n,t,l,r+1);return I(s)&&T(e,n[r]),o})),m=e=>new Set(v(e)||c(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),k=(e,n,t)=>{const l=e.hasRow,r=S(),o=S(),d=S(),a=S(),R=S(),k=(n,t,...l)=>{const r=E(R,n,m);return i(l,(n=>j(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>f(L(R,n),(l=>{i(0==u(t)?g(l):t,(n=>{e.delListener(n),x(l,n)})),I(l)&&T(R,n)})),A=(e,t)=>{T(r,e,t),h(o,e)||(T(o,e,n()),T(d,e,S()),T(a,e,S()))},C=e=>{T(r,e),T(o,e),T(d,e),T(a,e),z(e)};return[()=>e,()=>w(r),e=>b(o,e),e=>h(o,e),e=>L(r,e),e=>L(o,e),(e,n)=>T(o,e,n),A,(n,r,o,f,I)=>{A(n,r);const g=S(),x=S(),w=L(d,n),E=L(a,n),R=n=>{const o=t=>e.getCell(r,n,t),d=L(w,n),i=l(r,n)?t(f(o,n)):void 0;var a,h;if(d===i||v(d)&&v(i)&&(h=i,u(a=d)===u(h)&&s(a,((e,n)=>h[n]===e)))||T(g,n,[d,i]),!c(I)){const e=L(E,n),t=l(r,n)?I(o,n):void 0;e!=t&&T(x,n,t)}},m=e=>{o((()=>{y(g,(([,e],n)=>T(w,n,e))),y(x,((e,n)=>T(E,n,e)))}),g,x,w,E,e),p(g),p(x)};b(w,R),e.hasTable(r)&&i(e.getRowIds(r),(e=>{h(w,e)||R(e)})),m(!0),z(n),k(n,0,e.addRowListener(r,null,((e,n,t)=>R(t))),e.addTableListener(r,(()=>m())))},C,()=>b(R,C),k,z]},z=(e,r)=>n(e)==l?n=>n(e):null!=e?e:()=>null!=r?r:t,A=(e,n)=>e<n?-1:1,C=/^\d+$/,D=e=>{let n;const[l,r]=(()=>{const e=[];let n=0;return[()=>{var l;return null!=(l=e.shift())?l:t+n++},n=>{C.test(n)&&u(e)<1e3&&a(e,n)}]})(),s=S();return[(r,o,d)=>{null!=n||(n=e());const i=l();return T(s,i,[r,o,d]),j(R(o,null!=d?d:[t],m),i),i},(e,l,...r)=>i(((e,n=[t])=>{const l=[],r=(e,t)=>t==u(n)?a(l,e):null===n[t]?y(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(L(e,n),t+1)));return r(e,0),l})(e,l),(e=>y(e,(e=>L(s,e)[0](n,...null!=l?l:[],...r))))),e=>f(L(s,e),(([,n,l])=>(R(n,null!=l?l:[t],void 0,(n=>(x(n,e),I(n)?1:0))),T(s,e),r(e),l))),(e,t,l)=>f(L(s,e),(([e,,r=[]])=>{const s=(...o)=>{const d=u(o);d==u(r)?e(n,...o,...l(o)):c(r[d])?i(t[d](...o),(e=>s(...o,e))):s(...o,r[d])};s()}))]},M=Object.freeze,B=(e=>{const n=new WeakMap;return t=>(n.has(t)||n.set(t,e(t)),n.get(t))})((e=>{const n=S(),l=S(),[s,i,u,a,p,E,R,,C,B,O]=k(e,S,(e=>{return c(e)?t:v(e)?(n=r,e.map(n)):r(e);var n})),[W,$,q]=D((()=>G)),F=(n,t,l)=>{const r=p(n);y(l,((n,l)=>t(l,(t=>y(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},G={setIndexDefinition:(e,t,r,s,i,u=A)=>{const a=c(i)?void 0:([e],[n])=>i(e,n);return C(e,t,((t,r,i,v,g,p)=>{let w=0;const k=m(),z=m(),A=E(e);if(y(r,(([e,n],t)=>{const l=m(e),r=m(n);y(l,(e=>x(r,e)?x(l,e):0)),y(l,(e=>{j(k,e),f(L(A,e),(n=>{x(n,t),I(n)&&(T(A,e),w=1)}))})),y(r,(e=>{j(k,e),h(A,e)||(T(A,e,m()),w=1),j(L(A,e),t),c(s)||j(z,e)}))})),t(),I(g)||(p?b(A,(e=>j(z,e))):b(i,(e=>f(L(v,e),(e=>j(z,e))))),y(z,(e=>{const n=(n,t)=>u(L(g,n),L(g,t),e),t=[...L(A,e)];o(t,n)||(T(A,e,m(d(t,n))),j(k,e))}))),(w||p)&&!c(a)){const n=[...A];o(n,a)||(R(e,S(d(n,a))),w=1)}w&&$(n,[e]),y(k,(n=>$(l,[e,n])))}),z(r),f(s,z)),G},delIndexDefinition:e=>(B(e),G),getStore:s,getIndexIds:i,forEachIndex:e=>u(((n,t)=>e(n,(e=>F(n,e,t))))),forEachSlice:(e,n)=>F(e,n,E(e)),hasIndex:a,hasSlice:(e,n)=>h(E(e),n),getTableId:p,getSliceIds:e=>w(E(e)),getSliceRowIds:(e,n)=>g(L(E(e),n)),addSliceIdsListener:(e,t)=>W(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>W(t,l,[e,n]),delListener:e=>(q(e),G),destroy:O,getListenerStats:()=>({})};return M(G)}));e.createIndexes=B},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="",l=n(t),r=e=>t+e,s=(e,n)=>e.every(n),o=(e,n)=>s(e,((t,l)=>0==l||n(e[l-1],t)<=0)),d=(e,n)=>e.sort(n),i=(e,n)=>e.forEach(n),u=e=>e.length,a=(e,...n)=>e.push(...n),c=e=>null==e,f=(e,n,t)=>c(e)?null==t?void 0:t():n(e),v=e=>Array.isArray(e),h=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},I=e=>c(e)||0==(e=>e.size)(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),y=(e,n)=>null==e?void 0:e.forEach(n),x=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),w=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},L=(e,n)=>null==e?void 0:e.get(n),b=(e,n)=>y(e,((e,t)=>n(t,e))),T=(e,n,t)=>c(t)?(x(e,n),e):null==e?void 0:e.set(n,t),E=(e,n,t)=>(h(e,n)||T(e,n,t()),L(e,n)),R=(e,n,t,l,r=0)=>f((t?E:L)(e,n[r],r>u(n)-2?t:S),(s=>{if(r>u(n)-2)return(null==l?void 0:l(s))&&T(e,n[r]),s;const o=R(s,n,t,l,r+1);return I(s)&&T(e,n[r]),o})),m=e=>new Set(v(e)||c(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),k=(e,r)=>n(e)==l?n=>n(e):null!=e?e:()=>null!=r?r:t,z=(e,n)=>e<n?-1:1,A=/^\d+$/,C=Object.freeze,D=(e=>{const n=new WeakMap;return e=>(n.has(e)||n.set(e,(e=>{const n=S(),l=S(),[D,M,B,O,W,$,q,,F,G,H]=((e,n,t)=>{const l=e.hasRow,r=S(),o=S(),d=S(),a=S(),R=S(),k=(n,t,...l)=>{const r=E(R,n,m);return i(l,(n=>j(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>f(L(R,n),(l=>{i(0==u(t)?g(l):t,(n=>{e.delListener(n),x(l,n)})),I(l)&&T(R,n)})),A=(e,t)=>{T(r,e,t),h(o,e)||(T(o,e,n()),T(d,e,S()),T(a,e,S()))},C=e=>{T(r,e),T(o,e),T(d,e),T(a,e),z(e)};return[()=>e,()=>w(r),e=>b(o,e),e=>h(o,e),e=>L(r,e),e=>L(o,e),(e,n)=>T(o,e,n),A,(n,r,o,f,I)=>{A(n,r);const g=S(),x=S(),w=L(d,n),E=L(a,n),R=n=>{const o=t=>e.getCell(r,n,t),d=L(w,n),i=l(r,n)?t(f(o,n)):void 0;var a,h;if(d===i||v(d)&&v(i)&&(h=i,u(a=d)===u(h)&&s(a,((e,n)=>h[n]===e)))||T(g,n,[d,i]),!c(I)){const e=L(E,n),t=l(r,n)?I(o,n):void 0;e!=t&&T(x,n,t)}},m=e=>{o((()=>{y(g,(([,e],n)=>T(w,n,e))),y(x,((e,n)=>T(E,n,e)))}),g,x,w,E,e),p(g),p(x)};b(w,R),e.hasTable(r)&&i(e.getRowIds(r),(e=>{h(w,e)||R(e)})),m(!0),z(n),k(n,0,e.addRowListener(r,null,((e,n,t)=>R(t))),e.addTableListener(r,(()=>m())))},C,()=>b(R,C),k,z]})(e,S,(e=>{return c(e)?t:v(e)?(n=r,e.map(n)):r(e);var n})),[J,K,N]=(e=>{let n;const[l,r]=(()=>{const e=[];let n=0;return[()=>{var l;return null!=(l=e.shift())?l:t+n++},n=>{A.test(n)&&u(e)<1e3&&a(e,n)}]})(),s=S();return[(e,r,o)=>{null!=n||(n=Q);const d=l();return T(s,d,[e,r,o]),j(R(r,null!=o?o:[t],m),d),d},(e,l,...r)=>i(((e,n=[t])=>{const l=[],r=(e,t)=>t==u(n)?a(l,e):null===n[t]?y(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(L(e,n),t+1)));return r(e,0),l})(e,l),(e=>y(e,(e=>L(s,e)[0](n,...null!=l?l:[],...r))))),e=>f(L(s,e),(([,n,l])=>(R(n,null!=l?l:[t],void 0,(n=>(x(n,e),I(n)?1:0))),T(s,e),r(e),l))),(e,t,l)=>f(L(s,e),(([e,,r=[]])=>{const s=(...o)=>{const d=u(o);d==u(r)?e(n,...o,...l(o)):c(r[d])?i(t[d](...o),(e=>s(...o,e))):s(...o,r[d])};s()}))]})(),P=(n,t,l)=>{const r=W(n);y(l,((n,l)=>t(l,(t=>y(n,(n=>t(n,(t=>e.forEachCell(r,n,t)))))))))},Q={setIndexDefinition:(e,t,r,s,i,u=z)=>{const a=c(i)?void 0:([e],[n])=>i(e,n);return F(e,t,((t,r,i,v,g,p)=>{let w=0;const E=m(),R=m(),k=$(e);if(y(r,(([e,n],t)=>{const l=m(e),r=m(n);y(l,(e=>x(r,e)?x(l,e):0)),y(l,(e=>{j(E,e),f(L(k,e),(n=>{x(n,t),I(n)&&(T(k,e),w=1)}))})),y(r,(e=>{j(E,e),h(k,e)||(T(k,e,m()),w=1),j(L(k,e),t),c(s)||j(R,e)}))})),t(),I(g)||(p?b(k,(e=>j(R,e))):b(i,(e=>f(L(v,e),(e=>j(R,e))))),y(R,(e=>{const n=(n,t)=>u(L(g,n),L(g,t),e),t=[...L(k,e)];o(t,n)||(T(k,e,m(d(t,n))),j(E,e))}))),(w||p)&&!c(a)){const n=[...k];o(n,a)||(q(e,S(d(n,a))),w=1)}w&&K(n,[e]),y(E,(n=>K(l,[e,n])))}),k(r),f(s,k)),Q},delIndexDefinition:e=>(G(e),Q),getStore:D,getIndexIds:M,forEachIndex:e=>B(((n,t)=>e(n,(e=>P(n,e,t))))),forEachSlice:(e,n)=>P(e,n,$(e)),hasIndex:O,hasSlice:(e,n)=>h($(e),n),getTableId:W,getSliceIds:e=>w($(e)),getSliceRowIds:(e,n)=>g(L($(e),n)),addSliceIdsListener:(e,t)=>J(t,n,[e]),addSliceRowIdsListener:(e,n,t)=>J(t,l,[e,n]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return C(Q)})(e)),n.get(e))})();e.createIndexes=D},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>u(e,((e,t)=>e+t),0),s=e=>e.length,u=(e,t,n)=>e.reduce(t,n),d=(e,...t)=>e.push(...t),a=Math.max,c=Math.min,v=isFinite,f=e=>null==e,h=(e,t,n)=>f(e)?null==n?void 0:n():t(e),g=e=>Array.isArray(e),M=()=>{},p=e=>e.size,y=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},m=e=>f(e)||0==p(e),b=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},L=e=>e.clear(),w=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),x=e=>new Map(e),E=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>f(n)?(T(e,t),e):null==e?void 0:e.set(t,n),S=(e,t,n)=>(y(e,t)||R(e,t,n()),E(e,t)),j=(e,t,n,l,r=0)=>h((n?S:E)(e,t[r],r>s(t)-2?n:x),(i=>{if(r>s(t)-2)return(null==l?void 0:l(i))&&R(e,t[r]),i;const o=j(i,t,n,l,r+1);return m(i)&&R(e,t[r]),o})),k=x([["avg",[(e,t)=>o(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>c(...e),(e,t)=>c(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:c(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),z=e=>new Set(g(e)||f(e)?e:[e]),A=(e,t)=>null==e?void 0:e.add(t),D=(e,t,n)=>{const l=e.hasRow,r=x(),o=x(),u=x(),d=x(),a=x(),c=(t,n,...l)=>{const r=S(a,t,z);return i(l,(t=>A(r,t)&&n&&e.callListener(t))),l},v=(t,...n)=>h(E(a,t),(l=>{i(0==s(n)?b(l):n,(t=>{e.delListener(t),T(l,t)})),m(l)&&R(a,t)})),M=(e,n)=>{R(r,e,n),y(o,e)||(R(o,e,t()),R(u,e,x()),R(d,e,x()))},p=e=>{R(r,e),R(o,e),R(u,e),R(d,e),v(e)};return[()=>e,()=>{return[...null!=(t=null==(e=r)?void 0:e.keys())?t:[]];var e,t},e=>I(o,e),e=>y(o,e),e=>E(r,e),e=>E(o,e),(e,t)=>R(o,e,t),M,(t,r,o,a,h)=>{M(t,r);const p=x(),m=x(),b=E(u,t),T=E(d,t),S=t=>{const i=n=>e.getCell(r,t,n),o=E(b,t),u=l(r,t)?n(a(i,t)):void 0;var d,c,v;if(o===u||g(o)&&g(u)&&(c=u,s(d=o)===s(c)&&(v=(e,t)=>c[t]===e,d.every(v)))||R(p,t,[o,u]),!f(h)){const e=E(T,t),n=l(r,t)?h(i,t):void 0;e!=n&&R(m,t,n)}},j=e=>{o((()=>{w(p,(([,e],t)=>R(b,t,e))),w(m,((e,t)=>R(T,t,e)))}),p,m,b,T,e),L(p),L(m)};I(b,S),e.hasTable(r)&&i(e.getRowIds(r),(e=>{y(b,e)||S(e)})),j(!0),v(t),c(t,0,e.addRowListener(r,null,((e,t,n)=>S(n))),e.addTableListener(r,(()=>j())))},p,()=>I(a,p),c,v]},N=(e,r)=>t(e)==l?t=>t(e):null!=e?e:()=>null!=r?r:n,B=/^\d+$/,C=e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{B.test(t)&&s(e)<1e3&&d(e,t)}]})(),o=x();return[(r,i,s)=>{null!=t||(t=e());const u=l();return R(o,u,[r,i,s]),A(j(i,null!=s?s:[n],z),u),u},(e,l,...r)=>i(((e,t=[n])=>{const l=[],r=(e,n)=>n==s(t)?d(l,e):null===t[n]?w(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>w(e,(e=>E(o,e)[0](t,...null!=l?l:[],...r))))),e=>h(E(o,e),(([,t,l])=>(j(t,null!=l?l:[n],void 0,(t=>(T(t,e),m(t)?1:0))),R(o,e),r(e),l))),(e,n,l)=>h(E(o,e),(([e,,r=[]])=>{const o=(...u)=>{const d=s(u);d==s(r)?e(t,...u,...l(u)):f(r[d])?i(n[d](...u),(e=>o(...u,e))):o(...u,r[d])};o()}))]},F=Object.freeze,O=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const l=x(),[i,o,s,u,d,a,c,,h,g,y]=D(e,M,(e=>isNaN(e)||f(e)||!0===e||!1===e||e===n?void 0:1*e)),[L,T,I]=C((()=>R)),R={setMetricDefinition:(e,n,i,o,s,u,d)=>{var g;const M=t(i)==r?[i,s,u,d]:null!=(g=E(k,i))?g:E(k,"sum");return h(e,n,((t,n,r,i,o,s)=>{const u=a(e),d=p(i);s||(s=f(u)),t();let h=((e,t,n,l,r,i=!1)=>{if(m(n))return;const[o,s,u,d]=r;return i||(i=f(e)),w(l,(([n,l])=>{i||(e=f(n)?null==s?void 0:s(e,l,t++):f(l)?null==u?void 0:u(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=f(e)))})),i?o(b(n),p(n)):e})(u,d,i,n,M,s);v(h)||(h=void 0),h!=u&&(c(e,h),T(l,[e],h,u))}),N(o,1)),R},delMetricDefinition:e=>(g(e),R),getStore:i,getMetricIds:o,forEachMetric:s,hasMetric:u,getTableId:d,getMetric:a,addMetricListener:(e,t)=>L(t,l,[e]),delListener:e=>(I(e),R),destroy:y,getListenerStats:()=>({})};return F(R)}));e.createMetrics=O},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>u(e,((e,t)=>e+t),0),s=e=>e.length,u=(e,t,n)=>e.reduce(t,n),d=(e,...t)=>e.push(...t),a=Math.max,c=Math.min,v=isFinite,f=e=>null==e,h=(e,t,n)=>f(e)?null==n?void 0:n():t(e),g=e=>Array.isArray(e),M=()=>{},p=e=>e.size,y=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},m=e=>f(e)||0==p(e),b=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},L=e=>e.clear(),w=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),x=e=>new Map(e),E=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>f(n)?(T(e,t),e):null==e?void 0:e.set(t,n),S=(e,t,n)=>(y(e,t)||R(e,t,n()),E(e,t)),j=(e,t,n,l,r=0)=>h((n?S:E)(e,t[r],r>s(t)-2?n:x),(i=>{if(r>s(t)-2)return(null==l?void 0:l(i))&&R(e,t[r]),i;const o=j(i,t,n,l,r+1);return m(i)&&R(e,t[r]),o})),k=x([["avg",[(e,t)=>o(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>c(...e),(e,t)=>c(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:c(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),z=e=>new Set(g(e)||f(e)?e:[e]),A=(e,t)=>null==e?void 0:e.add(t),D=/^\d+$/,N=Object.freeze,B=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=x(),[u,a,c,B,C,F,O,,W,$,q]=((e,t,l)=>{const r=e.hasRow,o=x(),u=x(),d=x(),a=x(),c=x(),v=(t,n,...l)=>{const r=S(c,t,z);return i(l,(t=>A(r,t)&&n&&e.callListener(t))),l},M=(t,...n)=>h(E(c,t),(l=>{i(0==s(n)?b(l):n,(t=>{e.delListener(t),T(l,t)})),m(l)&&R(c,t)})),p=(e,n)=>{R(o,e,n),y(u,e)||(R(u,e,t()),R(d,e,x()),R(a,e,x()))},j=e=>{R(o,e),R(u,e),R(d,e),R(a,e),M(e)};return[()=>e,()=>{return[...null!=(t=null==(e=o)?void 0:e.keys())?t:[]];var e,t},e=>I(u,e),e=>y(u,e),e=>E(o,e),e=>E(u,e),(e,t)=>R(u,e,t),p,(t,l,o,u,c)=>{p(t,l);const h=x(),m=x(),b=E(d,t),T=E(a,t),S=t=>{const i=n=>e.getCell(l,t,n),o=E(b,t),d=r(l,t)?(a=u(i,t),isNaN(a)||f(a)||!0===a||!1===a||a===n?void 0:1*a):void 0;var a,v,M,p;if(o===d||g(o)&&g(d)&&(M=d,s(v=o)===s(M)&&(p=(e,t)=>M[t]===e,v.every(p)))||R(h,t,[o,d]),!f(c)){const e=E(T,t),n=r(l,t)?c(i,t):void 0;e!=n&&R(m,t,n)}},j=e=>{o((()=>{w(h,(([,e],t)=>R(b,t,e))),w(m,((e,t)=>R(T,t,e)))}),h,m,b,T,e),L(h),L(m)};I(b,S),e.hasTable(l)&&i(e.getRowIds(l),(e=>{y(b,e)||S(e)})),j(!0),M(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>S(n))),e.addTableListener(l,(()=>j())))},j,()=>I(c,j),v,M]})(e,M),[G,H,J]=(e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{D.test(t)&&s(e)<1e3&&d(e,t)}]})(),o=x();return[(e,r,i)=>{null!=t||(t=K);const s=l();return R(o,s,[e,r,i]),A(j(r,null!=i?i:[n],z),s),s},(e,l,...r)=>i(((e,t=[n])=>{const l=[],r=(e,n)=>n==s(t)?d(l,e):null===t[n]?w(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>w(e,(e=>E(o,e)[0](t,...null!=l?l:[],...r))))),e=>h(E(o,e),(([,t,l])=>(j(t,null!=l?l:[n],void 0,(t=>(T(t,e),m(t)?1:0))),R(o,e),r(e),l))),(e,n,l)=>h(E(o,e),(([e,,r=[]])=>{const o=(...u)=>{const d=s(u);d==s(r)?e(t,...u,...l(u)):f(r[d])?i(n[d](...u),(e=>o(...u,e))):o(...u,r[d])};o()}))]})(),K={setMetricDefinition:(e,n,i,s,u,d,a)=>{var c;const h=t(i)==r?[i,u,d,a]:null!=(c=E(k,i))?c:E(k,"sum");return W(e,n,((t,n,l,r,i,s)=>{const u=F(e),d=p(r);s||(s=f(u)),t();let a=((e,t,n,l,r,i=!1)=>{if(m(n))return;const[o,s,u,d]=r;return i||(i=f(e)),w(l,(([n,l])=>{i||(e=f(n)?null==s?void 0:s(e,l,t++):f(l)?null==u?void 0:u(e,n,t--):null==d?void 0:d(e,l,n,t),i||(i=f(e)))})),i?o(b(n),p(n)):e})(u,d,r,n,h,s);v(a)||(a=void 0),a!=u&&(O(e,a),H(o,[e],a,u))}),(1,t(g=s)==l?e=>e(g):null!=g?g:()=>1)),K;var g},delMetricDefinition:e=>($(e),K),getStore:u,getMetricIds:a,forEachMetric:c,hasMetric:B,getTableId:C,getMetric:F,addMetricListener:(e,t)=>G(t,o,[e]),delListener:e=>(J(e),K),destroy:q,getListenerStats:()=>({})};return N(K)})(e)),o.get(e))})();e.createMetrics=B},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
Binary file
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t=n(""),l=n(!0),r=n(0),o=n(n),s="Listener",i="Result",a=(e,n)=>e.every(n),d=(e,n)=>e.forEach(n),u=e=>f(e,((e,n)=>e+n),0),c=e=>e.length,v=e=>0==c(e),f=(e,n,t)=>e.reduce(n,t),h=(e,...n)=>e.push(...n),w=Math.max,y=Math.min,g=isFinite,p=e=>null==e,R=(e,n,t)=>p(e)?null==t?void 0:t():n(e),b=e=>n(e)==o,L=e=>Array.isArray(e),T=()=>{},m=e=>e.size,C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},I=e=>p(e)||0==m(e),O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},x=e=>e.clear(),Q=(e,n)=>null==e?void 0:e.forEach(n),S=(e,n)=>null==e?void 0:e.delete(n),j=e=>new Map(e),E=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>Q(e,((e,t)=>n(t,e))),D=(e,n,t)=>p(t)?(S(e,n),e):null==e?void 0:e.set(n,t),F=(e,n,t)=>(C(e,n)||D(e,n,t()),E(e,n)),k=(e,n,t,l,r=0)=>R((t?F:E)(e,n[r],r>c(n)-2?t:j),(o=>{if(r>c(n)-2)return(null==l?void 0:l(o))&&D(e,n[r]),o;const s=k(o,n,t,l,r+1);return I(o)&&D(e,n[r]),s})),z=e=>new Set(L(e)||p(e)?e:[e]),A=(e,n)=>null==e?void 0:e.add(n),P=j([["avg",[(e,n)=>u(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=>w(...e),(e,n)=>w(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:w(n,e)]],["min",[e=>y(...e),(e,n)=>y(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:y(n,e)]],["sum",[e=>u(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),W=e=>{const o=n(e);return(e=>e==t||e==l)(o)||o==r&&g(e)?o:void 0},B=(e,n,t)=>{const l=e.hasRow,r=j(),o=j(),s=j(),i=j(),u=j(),f=(n,t,...l)=>{const r=F(u,n,z);return d(l,(n=>A(r,n)&&t&&e.callListener(n))),l},h=(n,...t)=>R(E(u,n),(l=>{d(v(t)?O(l):t,(n=>{e.delListener(n),S(l,n)})),I(l)&&D(u,n)})),w=(e,t)=>{D(r,e,t),C(o,e)||(D(o,e,n()),D(s,e,j()),D(i,e,j()))},y=e=>{D(r,e),D(o,e),D(s,e),D(i,e),h(e)};return[()=>e,()=>{return[...null!=(n=null==(e=r)?void 0:e.keys())?n:[]];var e,n},e=>M(o,e),e=>C(o,e),e=>E(r,e),e=>E(o,e),(e,n)=>D(o,e,n),w,(n,r,o,u,v)=>{w(n,r);const y=j(),g=j(),R=E(s,n),b=E(i,n),T=n=>{const o=t=>e.getCell(r,n,t),s=E(R,n),i=l(r,n)?t(u(o,n)):void 0;var d,f;if(s===i||L(s)&&L(i)&&(f=i,c(d=s)===c(f)&&a(d,((e,n)=>f[n]===e)))||D(y,n,[s,i]),!p(v)){const e=E(b,n),t=l(r,n)?v(o,n):void 0;e!=t&&D(g,n,t)}},m=e=>{o((()=>{Q(y,(([,e],n)=>D(R,n,e))),Q(g,((e,n)=>D(b,n,e)))}),y,g,R,b,e),x(y),x(g)};M(R,T),e.hasTable(r)&&d(e.getRowIds(r),(e=>{C(R,e)||T(e)})),m(!0),h(n),f(n,0,e.addRowListener(r,null,((e,n,t)=>T(t))),e.addTableListener(r,(()=>m())))},y,()=>M(u,y),f,h]},q=Object,G=q.freeze;var H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;const N=(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,o,u,,,f,,w,y,g,L]=B(e,(()=>!0),T),N=n(),U=n(),V=j(),X=(e,n,...t)=>d(t,(t=>A(F(F(V,n,j),e,z),t))),Y=e=>{R(E(V,e),(e=>{M(e,((e,n)=>Q(n,(n=>e.delListener(n))))),x(e)})),d([U,N],(n=>n.delTable(e)))},Z=(e,n,t)=>X(n,e,n.addWillFinishTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),$={setQueryDefinition:(n,t,l)=>{f(n,t),Y(n);const r=[],o=[[null,[t,null,null,[],j()]]],s=[],i=[],u=[];l({select:(e,n)=>{const t=b(e)?[c(r)+"",e]:[p(n)?e:n,t=>t(e,n)];return h(r,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const l=p(t)||b(n)?null:n,r=p(l)?n:t,s=[e,[e,l,b(r)?r:e=>e(r),[],j()]];return h(o,s),{as:e=>s[0]=e}},where:(e,n,t)=>h(s,b(e)?e:p(t)?t=>t(e)===n:l=>l(e,n)===t),group:(e,n,t,l,r)=>{var o;const s=[e,[e,b(n)?[n,t,l,r]:null!=(o=E(P,n))?o:[(e,n)=>n]]];return h(i,s),{as:e=>s[0]=e}},having:(e,n)=>h(u,b(e)?e:t=>t(e)===n)});const w=j(r);if(I(w))return $;const y=j(o);M(y,((e,[,n])=>R(E(y,n),(({3:n})=>p(e)?0:h(n,e)))));const T=j(i);let x=N;if(I(T)&&v(u))x=U;else{Z(n,x,U);const e=j();M(T,((n,[t,l])=>A(F(e,t,z),[n,l])));const t=z();M(w,(n=>C(e,n)?0:A(t,n)));const l=j(),r=(t,l,r,o)=>R(t,(([s,i,d,c])=>{M(l,((n,[t])=>{const l=F(s,n,j),i=E(l,r),a=o?void 0:t;if(i!==a){const t=z([[i,a]]),o=m(l);D(l,r,a),Q(E(e,n),(([e,n])=>{const r=((e,n,t,l,r,o=!1)=>{if(I(t))return;const[s,i,a,d]=r;return o||(o=p(e)),Q(l,(([t,l])=>{o||(e=p(t)?null==i?void 0:i(e,l,n++):p(l)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,l,t,n),o||(o=p(e)))})),o?s(O(t),m(t)):e})(c[e],o,l,t,n);c[e]=p(W(r))?null:r}))}})),I(i)||!a(u,(e=>e((e=>c[e]))))?U.delRow(n,d):p(d)?t[2]=U.addRow(n,c):U.setRow(n,d,c)}));X(x,n,x.addRowListener(n,null,((o,s,i,a)=>{const d=[],u=[],c=j(),v=x.hasRow(n,i);let f=!v;Q(t,(e=>{const[t,l,r]=a(n,i,e);h(d,l),h(u,r),f||(f=t)})),M(e,(e=>{const[t,,l]=a(n,i,e);(f||t)&&D(c,e,[l])})),f&&r(k(l,d,void 0,(([,e])=>(S(e,i),I(e)))),c,i,1),v&&r(k(l,u,(()=>{const e={};return Q(t,(t=>e[t]=x.getCell(n,i,t))),[j(),z(),void 0,e]}),(([,e])=>{A(e,i)})),c,i)})))}Z(n,e,x);const B=l=>{const r=(n,r)=>{var o,s,i;return e.getCell(...p(r)?[t,l,n]:n===t?[t,l,r]:[null==(o=E(y,n))?void 0:o[0],null==(i=E(null==(s=E(y,n))?void 0:s[4],l))?void 0:i[0],r])};x.transaction((()=>a(s,(e=>e(r)))?M(w,((e,t)=>((e,n,t,l,r)=>p(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(x,n,l,e,t(r,l)))):x.delRow(n,l)))},q=(t,l,r,o)=>{const s=n=>e.getCell(l,r,n);d(o,(l=>{var r;const[o,,i,a,d]=E(y,l),u=null==i?void 0:i(s,t),[c,v]=null!=(r=E(d,t))?r:[];u!=c&&(p(v)||L(n,v),D(d,t,p(u)?null:[u,...g(n,1,e.addRowListener(o,u,(()=>q(t,o,u,a))))]))})),B(t)},{3:G}=E(y,null);return x.transaction((()=>g(n,1,e.addRowListener(t,null,((l,r,o)=>{e.hasRow(t,o)?q(o,t,o,G):(x.delRow(n,o),Q(y,(({4:e})=>R(E(e,o),(([,t])=>{L(n,t),D(e,o)})))))}))))),$},delQueryDefinition:e=>(Y(e),w(e),$),getStore:t,getQueryIds:l,forEachQuery:r,hasQuery:o,getTableId:u,delListener:e=>(U.delListener(e),$),destroy:y,getListenerStats:()=>((e,n)=>{var t={};for(var l in e)J.call(e,l)&&n.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&H)for(var l of H(e))n.indexOf(l)<0&&K.call(e,l)&&(t[l]=e[l]);return t})(U.getListenerStats(),["tables","tableIds","transaction"])};var _,ee;return _={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},ee=([e,n],t)=>{d(e?["get","has","forEach"]:["get"],(e=>$[e+i+t]=(...n)=>U[e+t](...n))),$["addResult"+t+s]=(...e)=>{return U["add"+t+s](...(l=e,r=0,o=n,l.slice(r,o)),((t,...l)=>e[n]($,...l)));var l,r,o}},d(q.entries(_),(([e,n])=>ee(n,e))),G($)}));e.createQueries=N},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t=n(""),l=n(!0),r=n(0),o=n(n),s="Listener",i=(e,n)=>e.every(n),a=(e,n)=>e.forEach(n),d=e=>v(e,((e,n)=>e+n),0),u=e=>e.length,c=e=>0==u(e),v=(e,n,t)=>e.reduce(n,t),f=(e,...n)=>e.push(...n),h=Math.max,w=Math.min,y=isFinite,g=e=>null==e,p=(e,n,t)=>g(e)?null==t?void 0:t():n(e),R=e=>n(e)==o,b=e=>Array.isArray(e),L=()=>{},T=e=>e.size,m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},C=e=>g(e)||0==T(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=e=>e.clear(),x=(e,n)=>null==e?void 0:e.forEach(n),Q=(e,n)=>null==e?void 0:e.delete(n),S=e=>new Map(e),j=(e,n)=>null==e?void 0:e.get(n),E=(e,n)=>x(e,((e,t)=>n(t,e))),M=(e,n,t)=>g(t)?(Q(e,n),e):null==e?void 0:e.set(n,t),D=(e,n,t)=>(m(e,n)||M(e,n,t()),j(e,n)),F=(e,n,t,l,r=0)=>p((t?D:j)(e,n[r],r>u(n)-2?t:S),(o=>{if(r>u(n)-2)return(null==l?void 0:l(o))&&M(e,n[r]),o;const s=F(o,n,t,l,r+1);return C(o)&&M(e,n[r]),s})),k=e=>new Set(b(e)||g(e)?e:[e]),z=(e,n)=>null==e?void 0:e.add(n),A=S([["avg",[(e,n)=>d(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=>h(...e),(e,n)=>h(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:h(n,e)]],["min",[e=>w(...e),(e,n)=>w(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:w(n,e)]],["sum",[e=>d(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),P=Object,W=P.freeze;var B=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;const H=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,[d,v,h,w,H,,,J,,K,N,U,V]=((e,n,t)=>{const l=e.hasRow,r=S(),o=S(),s=S(),d=S(),v=S(),f=(n,t,...l)=>{const r=D(v,n,k);return a(l,(n=>z(r,n)&&t&&e.callListener(n))),l},h=(n,...t)=>p(j(v,n),(l=>{a(c(t)?I(l):t,(n=>{e.delListener(n),Q(l,n)})),C(l)&&M(v,n)})),w=(e,n)=>{M(r,e,n),m(o,e)||(M(o,e,!0),M(s,e,S()),M(d,e,S()))},y=e=>{M(r,e),M(o,e),M(s,e),M(d,e),h(e)};return[()=>e,()=>{return[...null!=(n=null==(e=r)?void 0:e.keys())?n:[]];var e,n},e=>E(o,e),e=>m(o,e),e=>j(r,e),e=>j(o,e),(e,n)=>M(o,e,n),w,(n,r,o,c,v)=>{w(n,r);const y=S(),p=S(),R=j(s,n),L=j(d,n),T=n=>{const o=t=>e.getCell(r,n,t),s=j(R,n),a=l(r,n)?t(c(o,n)):void 0;var d,f;if(s===a||b(s)&&b(a)&&(f=a,u(d=s)===u(f)&&i(d,((e,n)=>f[n]===e)))||M(y,n,[s,a]),!g(v)){const e=j(L,n),t=l(r,n)?v(o,n):void 0;e!=t&&M(p,n,t)}},C=e=>{o((()=>{x(y,(([,e],n)=>M(R,n,e))),x(p,((e,n)=>M(L,n,e)))}),y,p,R,L,e),O(y),O(p)};E(R,T),e.hasTable(r)&&a(e.getRowIds(r),(e=>{m(R,e)||T(e)})),C(!0),h(n),f(n,0,e.addRowListener(r,null,((e,n,t)=>T(t))),e.addTableListener(r,(()=>C())))},y,()=>E(v,y),f,h]})(e,0,L),X=o(),Y=o(),Z=S(),$=(e,n,...t)=>a(t,(t=>z(D(D(Z,n,S),e,k),t))),_=e=>{p(j(Z,e),(e=>{E(e,((e,n)=>x(n,(n=>e.delListener(n))))),O(e)})),a([Y,X],(n=>n.delTable(e)))},ee=(e,n,t)=>$(n,e,n.addWillFinishTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),ne={setQueryDefinition:(o,s,d)=>{J(o,s),_(o);const v=[],h=[[null,[s,null,null,[],S()]]],w=[],b=[],L=[];d({select:(e,n)=>{const t=R(e)?[u(v)+"",e]:[g(n)?e:n,t=>t(e,n)];return f(v,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const l=g(t)||R(n)?null:n,r=g(l)?n:t,o=[e,[e,l,R(r)?r:e=>e(r),[],S()]];return f(h,o),{as:e=>o[0]=e}},where:(e,n,t)=>f(w,R(e)?e:g(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(A,n))?o:[(e,n)=>n]]];return f(b,s),{as:e=>s[0]=e}},having:(e,n)=>f(L,R(e)?e:t=>t(e)===n)});const O=S(v);if(C(O))return ne;const P=S(h);E(P,((e,[,n])=>p(j(P,n),(({3:n})=>g(e)?0:f(n,e)))));const W=S(b);let B=X;if(C(W)&&c(L))B=Y;else{ee(o,B,Y);const e=S();E(W,((n,[t,l])=>z(D(e,t,k),[n,l])));const s=k();E(O,(n=>m(e,n)?0:z(s,n)));const a=S(),d=(s,a,d,u)=>p(s,(([c,v,f,h])=>{E(a,((o,[s])=>{const i=D(c,o,S),a=j(i,d),v=u?void 0:s;if(a!==v){const s=k([[a,v]]),u=T(i);M(i,d,v),x(j(e,o),(([e,o])=>{const a=((e,n,t,l,r,o=!1)=>{if(C(t))return;const[s,i,a,d]=r;return o||(o=g(e)),x(l,(([t,l])=>{o||(e=g(t)?null==i?void 0:i(e,l,n++):g(l)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,l,t,n),o||(o=g(e)))})),o?s(I(t),T(t)):e})(h[e],u,i,s,o);h[e]=g((e=>{const o=n(e);return(e=>e==t||e==l)(o)||o==r&&y(e)?o:void 0})(a))?null:a}))}})),C(v)||!i(L,(e=>e((e=>h[e]))))?Y.delRow(o,f):g(f)?s[2]=Y.addRow(o,h):Y.setRow(o,f,h)}));$(B,o,B.addRowListener(o,null,((n,t,l,r)=>{const i=[],u=[],c=S(),v=B.hasRow(o,l);let h=!v;x(s,(e=>{const[n,t,s]=r(o,l,e);f(i,t),f(u,s),h||(h=n)})),E(e,(e=>{const[n,,t]=r(o,l,e);(h||n)&&M(c,e,[t])})),h&&d(F(a,i,void 0,(([,e])=>(Q(e,l),C(e)))),c,l,1),v&&d(F(a,u,(()=>{const e={};return x(s,(n=>e[n]=B.getCell(o,l,n))),[S(),k(),void 0,e]}),(([,e])=>{z(e,l)})),c,l)})))}ee(o,e,B);const q=(n,t,l,r)=>{const d=n=>e.getCell(t,l,n);a(r,(t=>{var l;const[r,,s,i,a]=j(P,t),u=null==s?void 0:s(d,n),[c,v]=null!=(l=j(a,n))?l:[];u!=c&&(g(v)||V(o,v),M(a,n,g(u)?null:[u,...U(o,1,e.addRowListener(r,u,(()=>q(n,r,u,i))))]))})),(n=>{const t=(t,l)=>{var r,o,i;return e.getCell(...g(l)?[s,n,t]:t===s?[s,n,l]:[null==(r=j(P,t))?void 0:r[0],null==(i=j(null==(o=j(P,t))?void 0:o[4],n))?void 0:i[0],l])};B.transaction((()=>i(w,(e=>e(t)))?E(O,((e,l)=>((e,n,t,l,r)=>g(r)?e.delCell(n,t,l,!0):e.setCell(n,t,l,r))(B,o,n,e,l(t,n)))):B.delRow(o,n)))})(n)},{3:G}=j(P,null);return B.transaction((()=>U(o,1,e.addRowListener(s,null,((n,t,l)=>{e.hasRow(s,l)?q(l,s,l,G):(B.delRow(o,l),x(P,(({4:e})=>p(j(e,l),(([,n])=>{V(o,n),M(e,l)})))))}))))),ne},delQueryDefinition:e=>(_(e),K(e),ne),getStore:d,getQueryIds:v,forEachQuery:h,hasQuery:w,getTableId:H,delListener:e=>(Y.delListener(e),ne),destroy:N,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&&B)for(var l of B(e))n.indexOf(l)<0&&G.call(e,l)&&(t[l]=e[l]);return t})(Y.getListenerStats(),["tables","tableIds","transaction"])};var te,le;return te={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},le=([e,n],t)=>{a(e?["get","has","forEach"]:["get"],(e=>ne[e+"Result"+t]=(...n)=>Y[e+t](...n))),ne["addResult"+t+s]=(...e)=>{return Y["add"+t+s](...(l=e,0,r=n,l.slice(0,r)),((t,...l)=>e[n](ne,...l)));var l,r}},((e,n)=>{e.map(n)})(P.entries(te),(([e,n])=>le(n,e))),W(ne)})(e)),o.get(e))})();e.createQueries=H},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),o=(e,t)=>e.forEach(t),r=e=>e.length,s=(e,...t)=>e.push(...t),i=e=>null==e,d=(e,t,n)=>i(e)?null==n?void 0:n():t(e),u=e=>Array.isArray(e),a=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},c=e=>i(e)||0==(e=>e.size)(e),f=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},v=e=>e.clear(),h=(e,t)=>null==e?void 0:e.forEach(t),R=(e,t)=>null==e?void 0:e.delete(t),p=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),L=(e,t)=>h(e,((e,n)=>t(n,e))),w=(e,t,n)=>i(n)?(R(e,t),e):null==e?void 0:e.set(t,n),y=(e,t,n)=>(a(e,t)||w(e,t,n()),g(e,t)),I=(e,t,n,l,o=0)=>d((n?y:g)(e,t[o],o>r(t)-2?n:p),(s=>{if(o>r(t)-2)return(null==l?void 0:l(s))&&w(e,t[o]),s;const i=I(s,t,n,l,o+1);return c(s)&&w(e,t[o]),i})),b=e=>new Set(u(e)||i(e)?e:[e]),T=(e,t)=>null==e?void 0:e.add(t),m=(e,t,n)=>{const l=e.hasRow,s=p(),I=p(),m=p(),k=p(),E=p(),x=(t,n,...l)=>{const r=y(E,t,b);return o(l,(t=>T(r,t)&&n&&e.callListener(t))),l},S=(t,...n)=>d(g(E,t),(l=>{o(0==r(n)?f(l):n,(t=>{e.delListener(t),R(l,t)})),c(l)&&w(E,t)})),j=(e,n)=>{w(s,e,n),a(I,e)||(w(I,e,t()),w(m,e,p()),w(k,e,p()))},z=e=>{w(s,e),w(I,e),w(m,e),w(k,e),S(e)};return[()=>e,()=>{return[...null!=(t=null==(e=s)?void 0:e.keys())?t:[]];var e,t},e=>L(I,e),e=>a(I,e),e=>g(s,e),e=>g(I,e),(e,t)=>w(I,e,t),j,(t,s,d,c,f)=>{j(t,s);const R=p(),y=p(),I=g(m,t),b=g(k,t),T=t=>{const o=n=>e.getCell(s,t,n),d=g(I,t),a=l(s,t)?n(c(o,t)):void 0;var v,h,p;if(d===a||u(d)&&u(a)&&(h=a,r(v=d)===r(h)&&(p=(e,t)=>h[t]===e,v.every(p)))||w(R,t,[d,a]),!i(f)){const e=g(b,t),n=l(s,t)?f(o,t):void 0;e!=n&&w(y,t,n)}},E=e=>{d((()=>{h(R,(([,e],t)=>w(I,t,e))),h(y,((e,t)=>w(b,t,e)))}),R,y,I,b,e),v(R),v(y)};L(I,T),e.hasTable(s)&&o(e.getRowIds(s),(e=>{a(I,e)||T(e)})),E(!0),S(t),x(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>E())))},z,()=>L(E,z),x,S]},k=(e,o)=>t(e)==l?t=>t(e):null!=e?e:()=>null!=o?o:n,E=/^\d+$/,x=e=>{let t;const[l,u]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{E.test(t)&&r(e)<1e3&&s(e,t)}]})(),a=p();return[(o,r,s)=>{null!=t||(t=e());const i=l();return w(a,i,[o,r,s]),T(I(r,null!=s?s:[n],b),i),i},(e,l,...i)=>o(((e,t=[n])=>{const l=[],i=(e,n)=>n==r(t)?s(l,e):null===t[n]?h(e,(e=>i(e,n+1))):o([t[n],null],(t=>i(g(e,t),n+1)));return i(e,0),l})(e,l),(e=>h(e,(e=>g(a,e)[0](t,...null!=l?l:[],...i))))),e=>d(g(a,e),(([,t,l])=>(I(t,null!=l?l:[n],void 0,(t=>(R(t,e),c(t)?1:0))),w(a,e),u(e),l))),(e,n,l)=>d(g(a,e),(([e,,s=[]])=>{const d=(...u)=>{const a=r(u);a==r(s)?e(t,...u,...l(u)):i(s[a])?o(n[a](...u),(e=>d(...u,e))):d(...u,s[a])};d()}))]},S=Object.freeze,j=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=p(),l=p(),o=p(),r=p(),[s,u,v,y,I,E,,,j,z,A]=m(e,(()=>[p(),p(),p(),p()]),(e=>i(e)?void 0:e+n)),[D,M,B]=x((()=>$)),C=(e,t,n)=>d(E(e),(([l,,o])=>{if(!a(o,t)){const r=b();if(I(e)!=W(e))T(r,t);else{let e=t;for(;!i(e)&&!a(r,e);)T(r,e),e=g(l,e)}if(n)return r;w(o,t,r)}return g(o,t)})),O=(e,t)=>d(E(e),(([,,e])=>w(e,t))),W=e=>g(t,e),$={setRelationshipDefinition:(e,n,s,u)=>(w(t,e,s),j(e,n,((t,n)=>{const s=b(),u=b(),f=b(),[v,p]=E(e);h(n,(([t,n],l)=>{i(t)||(T(u,t),d(g(p,t),(e=>{R(e,l),c(e)&&w(p,t)}))),i(n)||(T(u,n),a(p,n)||w(p,n,b()),T(g(p,n),l)),T(s,l),w(v,l,n),L(g(r,e),(t=>{a(C(e,t),l)&&T(f,t)}))})),t(),h(s,(t=>M(l,[e,t]))),h(u,(t=>M(o,[e,t]))),h(f,(t=>{O(e,t),M(r,[e,t])}))}),k(u)),$),delRelationshipDefinition:e=>(w(t,e),z(e),$),getStore:s,getRelationshipIds:u,forEachRelationship:t=>v((n=>t(n,(t=>e.forEachRow(I(n),t))))),hasRelationship:y,getLocalTableId:I,getRemoteTableId:W,getRemoteRowId:(e,t)=>{var n;return g(null==(n=E(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return f(g(null==(n=E(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>i(E(e))?[t]:f(C(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>D(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(C(e,t),D(n,r,[e,t])),delListener:e=>(O(...B(e)),$),destroy:A,getListenerStats:()=>({})};return S($)}));e.createRelationships=j},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),o=(e,t)=>e.forEach(t),r=e=>e.length,s=(e,...t)=>e.push(...t),i=e=>null==e,d=(e,t,n)=>i(e)?null==n?void 0:n():t(e),a=e=>Array.isArray(e),u=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},c=e=>i(e)||0==(e=>e.size)(e),f=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},v=e=>e.clear(),h=(e,t)=>null==e?void 0:e.forEach(t),R=(e,t)=>null==e?void 0:e.delete(t),p=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),L=(e,t)=>h(e,((e,n)=>t(n,e))),w=(e,t,n)=>i(n)?(R(e,t),e):null==e?void 0:e.set(t,n),y=(e,t,n)=>(u(e,t)||w(e,t,n()),g(e,t)),I=(e,t,n,l,o=0)=>d((n?y:g)(e,t[o],o>r(t)-2?n:p),(s=>{if(o>r(t)-2)return(null==l?void 0:l(s))&&w(e,t[o]),s;const i=I(s,t,n,l,o+1);return c(s)&&w(e,t[o]),i})),b=e=>new Set(a(e)||i(e)?e:[e]),T=(e,t)=>null==e?void 0:e.add(t),m=/^\d+$/,k=Object.freeze,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=p(),x=p(),S=p(),j=p(),[z,A,D,M,B,C,,,O,W,$]=((e,t,l)=>{const s=e.hasRow,I=p(),m=p(),k=p(),E=p(),x=p(),S=(t,n,...l)=>{const r=y(x,t,b);return o(l,(t=>T(r,t)&&n&&e.callListener(t))),l},j=(t,...n)=>d(g(x,t),(l=>{o(0==r(n)?f(l):n,(t=>{e.delListener(t),R(l,t)})),c(l)&&w(x,t)})),z=(e,t)=>{w(I,e,t),u(m,e)||(w(m,e,[p(),p(),p(),p()]),w(k,e,p()),w(E,e,p()))},A=e=>{w(I,e),w(m,e),w(k,e),w(E,e),j(e)};return[()=>e,()=>{return[...null!=(t=null==(e=I)?void 0:e.keys())?t:[]];var e,t},e=>L(m,e),e=>u(m,e),e=>g(I,e),e=>g(m,e),(e,t)=>w(m,e,t),z,(t,l,d,c,f)=>{z(t,l);const R=p(),y=p(),I=g(k,t),b=g(E,t),T=t=>{const o=n=>e.getCell(l,t,n),d=g(I,t),u=s(l,t)?(v=c(o,t),i(v)?void 0:v+n):void 0;var v,h,p,L;if(d===u||a(d)&&a(u)&&(p=u,r(h=d)===r(p)&&(L=(e,t)=>p[t]===e,h.every(L)))||w(R,t,[d,u]),!i(f)){const e=g(b,t),n=s(l,t)?f(o,t):void 0;e!=n&&w(y,t,n)}},m=e=>{d((()=>{h(R,(([,e],t)=>w(I,t,e))),h(y,((e,t)=>w(b,t,e)))}),R,y,I,b,e),v(R),v(y)};L(I,T),e.hasTable(l)&&o(e.getRowIds(l),(e=>{u(I,e)||T(e)})),m(!0),j(t),S(t,0,e.addRowListener(l,null,((e,t,n)=>T(n))),e.addTableListener(l,(()=>m())))},A,()=>L(x,A),S,j]})(e),[q,F,G]=(e=>{let t;const[l,a]=(()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{m.test(t)&&r(e)<1e3&&s(e,t)}]})(),u=p();return[(e,o,r)=>{null!=t||(t=N);const s=l();return w(u,s,[e,o,r]),T(I(o,null!=r?r:[n],b),s),s},(e,l,...i)=>o(((e,t=[n])=>{const l=[],i=(e,n)=>n==r(t)?s(l,e):null===t[n]?h(e,(e=>i(e,n+1))):o([t[n],null],(t=>i(g(e,t),n+1)));return i(e,0),l})(e,l),(e=>h(e,(e=>g(u,e)[0](t,...null!=l?l:[],...i))))),e=>d(g(u,e),(([,t,l])=>(I(t,null!=l?l:[n],void 0,(t=>(R(t,e),c(t)?1:0))),w(u,e),a(e),l))),(e,n,l)=>d(g(u,e),(([e,,s=[]])=>{const d=(...a)=>{const u=r(a);u==r(s)?e(t,...a,...l(a)):i(s[u])?o(n[u](...a),(e=>d(...a,e))):d(...a,s[u])};d()}))]})(),H=(e,t,n)=>d(C(e),(([l,,o])=>{if(!u(o,t)){const r=b();if(B(e)!=K(e))T(r,t);else{let e=t;for(;!i(e)&&!u(r,e);)T(r,e),e=g(l,e)}if(n)return r;w(o,t,r)}return g(o,t)})),J=(e,t)=>d(C(e),(([,,e])=>w(e,t))),K=e=>g(E,e),N={setRelationshipDefinition:(e,o,r,s)=>{return w(E,e,r),O(e,o,((t,n)=>{const l=b(),o=b(),r=b(),[s,a]=C(e);h(n,(([t,n],f)=>{i(t)||(T(o,t),d(g(a,t),(e=>{R(e,f),c(e)&&w(a,t)}))),i(n)||(T(o,n),u(a,n)||w(a,n,b()),T(g(a,n),f)),T(l,f),w(s,f,n),L(g(j,e),(t=>{u(H(e,t),f)&&T(r,t)}))})),t(),h(l,(t=>F(x,[e,t]))),h(o,(t=>F(S,[e,t]))),h(r,(t=>{J(e,t),F(j,[e,t])}))}),t(a=s)==l?e=>e(a):null!=a?a:()=>n),N;var a},delRelationshipDefinition:e=>(w(E,e),W(e),N),getStore:z,getRelationshipIds:A,forEachRelationship:t=>D((n=>t(n,(t=>e.forEachRow(B(n),t))))),hasRelationship:M,getLocalTableId:B,getRemoteTableId:K,getRemoteRowId:(e,t)=>{var n;return g(null==(n=C(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return f(g(null==(n=C(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>i(C(e))?[t]:f(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>q(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>q(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),q(n,j,[e,t])),delListener:e=>(J(...G(e)),N),destroy:$,getListenerStats:()=>({})};return k(N)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(!0),s=t(0),o=t(t),i="type",a="default",u=e=>n+e,d=(e,t)=>e.forEach(t),c=(e,t)=>e.map(t),f=e=>e.length,v=(e,t,n)=>e.slice(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(n=[...t],l=(e,[t,n])=>(e[t]=n,e),r={},n.reduce(l,r)):t;var n,l,r})),b=JSON.parse,g=isFinite,p=(e,t)=>e instanceof t,y=e=>null==e,w=(e,t,n)=>y(e)?null==n?void 0:n():t(e),R=e=>e==l||e==r,S=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>y(e)||0==(e=>e.size)(e),I=e=>e.clear(),L=(e,t)=>null==e?void 0:e.forEach(t),m=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),J=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},F=(e,t)=>null==e?void 0:e.get(t),x=(e,t)=>L(e,((e,n)=>t(n,e))),z=(e,t,n)=>y(n)?(m(e,t),e):null==e?void 0:e.set(t,n),O=(e,t,n)=>(S(e,t)||z(e,t,n()),F(e,t)),j=(e,t,n)=>{const l={},r=null!=t?t:e=>e;return L(e,((e,t)=>w(r(e),(e=>(null==n?void 0:n(e))?0:l[t]=e)))),l},k=(e,t)=>{const n=E(),l=null!=t?t:e=>e;return L(e,((e,t)=>n.set(t,l(e)))),n},A=e=>k(e,k),M=(e,t,n,l,r=0)=>w((n?O:F)(e,t[r],r>f(t)-2?n:E),(s=>{if(r>f(t)-2)return(null==l?void 0:l(s))&&z(e,t[r]),s;const o=M(s,t,n,l,r+1);return C(s)&&z(e,t[r]),o})),N=Object,B=N.keys,D=N.isFrozen,P=N.freeze,W=(e,t)=>!y(((e,t)=>w(e,(e=>e[t])))(e,t)),$=(e,t)=>delete e[t],q=(e,t)=>d(N.entries(e),(([e,n])=>t(n,e))),G=e=>{return t=B(e),0==f(t);var t},H=e=>new Set(Array.isArray(e)||y(e)?e:[e]),K=(e,t)=>null==e?void 0:e.add(t),Q=/^\d+$/,U=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{Q.test(t)&&f(e)<1e3&&h(e,t)}]},V=e=>{let t;const[l,r]=U(),s=E();return[(r,o,i)=>{null!=t||(t=e());const a=l();return z(s,a,[r,o,i]),K(M(o,null!=i?i:[n],H),a),a},(e,l,...r)=>d(((e,t=[n])=>{const l=[],r=(e,n)=>n==f(t)?h(l,e):null===t[n]?L(e,(e=>r(e,n+1))):d([t[n],null],(t=>r(F(e,t),n+1)));return r(e,0),l})(e,l),(e=>L(e,(e=>F(s,e)[0](t,...null!=l?l:[],...r))))),e=>w(F(s,e),(([,t,l])=>(M(t,null!=l?l:[n],void 0,(t=>(m(t,e),C(t)?1:0))),z(s,e),r(e),l))),(e,n,l)=>w(F(s,e),(([e,,r=[]])=>{const s=(...o)=>{const i=f(o);i==f(r)?e(t,...o,...l(o)):y(r[i])?d(n[i](...o),(e=>s(...o,e))):s(...o,r[i])};s()}))]},X=e=>[e,e],Y=()=>[E(),E()],Z=e=>{const n=t(e);return R(n)||n==s&&g(e)?n:void 0},_=(e,t,n,l=z)=>{const r=(s=J(e),o=e=>!W(t,e),s.filter(o));var s,o;return d(B(t),(l=>n(e,l,t[l]))),d(r,(t=>l(e,t))),e},ee=(e,t,n)=>y(e)||!(e=>p(e,N)&&e.constructor==N)(e)||G(e)||D(e)?(null==n||n(),!1):(q(e,((n,l)=>{t(n,l)||$(e,l)})),!G(e)),te=(e,t,n)=>z(e,t,F(e,t)==-n?void 0:n),ne=()=>{let e,n,l=0;const r=E(),g=E(),p=E(),M=E(),N=E(),B=E(),D=E(),Q=E(),le=E(),re=Y(),se=Y(),oe=Y(),ie=Y(),ae=Y(),ue=Y(),de=Y(),ce=Y(),fe=Y(),ve=Y(),[he,Te,be,ge]=V((()=>et)),pe=(t,n)=>(!e||S(B,n)||Ne(n))&&ee(t,((e,t)=>ye(n,t,e)),(()=>Ne(n))),ye=(e,t,n,l)=>ee(l?n:Re(n,e,t),((l,r)=>w(we(e,t,r,l),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Ne(e,t))),we=(t,n,l,r)=>e?w(F(F(B,t),l),(e=>Z(r)!=e.type?Ne(t,n,l,r,e.default):r),(()=>Ne(t,n,l,r))):y(Z(r))?Ne(t,n,l,r):r,Re=(e,t,n)=>(w(F(D,t),(([l,r])=>{L(l,((t,n)=>{W(e,n)||(e[n]=t)})),L(r,(l=>{W(e,l)||Ne(t,n,l)}))})),e),Se=e=>_(B,e,((e,t,n)=>{const l=E(),r=H();_(O(B,t,E),n,((e,t,n)=>{z(e,t,n),w(n.default,(e=>z(l,t,e)),(()=>K(r,t)))})),z(D,t,[l,r])}),((e,t)=>{z(B,t),z(D,t)})),Ce=e=>_(le,e,((e,t,n)=>Ie(t,n)),((e,t)=>xe(t))),Ie=(e,t)=>_(O(le,e,(()=>(je(e,1),E()))),t,((t,n,l)=>Le(e,t,n,l)),((t,n)=>ze(e,t,n))),Le=(e,t,n,l,r)=>_(O(t,n,(()=>(ke(e,n,1),E()))),l,((t,l,r)=>me(e,n,t,l,r)),((l,s)=>Oe(e,t,n,l,s,r))),me=(e,t,n,l,r)=>{S(n,l)||Ae(e,t,l,1);const s=F(n,l);r!==s&&(Me(e,t,l,s,r),z(n,l,r))},Ee=(e,t,n,l,r)=>w(F(t,n),(t=>me(e,n,t,l,r)),(()=>Le(e,t,n,Re({[l]:r},e,n)))),Je=e=>{const[t]=O(Q,e,U),n=t();return S(F(le,e),n)?Je(e):n},Fe=e=>{var t;return null!=(t=F(le,e))?t:Ie(e,{})},xe=e=>Ie(e,{}),ze=(e,t,n)=>{const[,l]=O(Q,e,U);l(n),Le(e,t,n,{},!0)},Oe=(e,t,n,l,r,s)=>{var o;const i=F(null==(o=F(D,e))?void 0:o[0],r);if(!y(i)&&!s)return me(e,n,l,r,i);const a=t=>{Me(e,n,t,F(l,t)),Ae(e,n,t,-1),z(l,t)};y(i)?a(r):x(l,a),C(l)&&(ke(e,n,-1),C(z(t,n))&&(je(e,-1),z(le,e),z(Q,e)))},je=(e,t)=>te(r,e,t),ke=(e,t,n)=>te(O(g,e,E),t,n),Ae=(e,t,n,l)=>te(O(O(p,e,E),t,E),n,l),Me=(e,t,n,l,r)=>O(O(O(M,e,E),t,E),n,(()=>[l,0]))[1]=r,Ne=(e,t,n,l,r)=>(h(O(O(O(N,e,E),t,E),n,(()=>[])),l),r),Be=(e,t,n)=>w(F(F(F(M,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...X(Ue(e,t,n))])),De=e=>C(N)||C(fe[e])?0:L(e?k(N,A):N,((t,n)=>L(t,((t,l)=>L(t,((t,r)=>Te(fe[e],[n,l,r],t))))))),Pe=(e,t,n)=>{if(!C(t))return Te(e,n),1},We=e=>{const t=C(ae[e]),n=C(de[e])&&C(ie[e])&&t&&C(se[e]),l=C(ce[e])&&C(ue[e])&&C(oe[e])&&C(re[e]);if(!n||!l){const s=e?[k(r),A(g),k(p,A),k(M,A)]:[r,g,p,M];if(!n){L(s[2],((t,n)=>L(t,((t,l)=>Pe(de[e],t,[n,l])))));const n=H();L(s[1],((l,r)=>{Pe(ie[e],l,[r])&&!t&&(Te(ae[e],[r,null]),K(n,r))})),t||L(s[3],((t,l)=>{if(!S(n,l)){const n=H();L(t,(e=>L(e,(([t,l],r)=>l!==t?K(n,r):m(e,r))))),L(n,(t=>Te(ae[e],[l,t])))}})),Pe(se[e],s[0])}if(!l){let t;L(s[3],((n,l)=>{let r;L(n,((n,s)=>{let o;L(n,(([n,i],a)=>{i!==n&&(Te(ce[e],[l,s,a],i,n,Be),t=r=o=1)})),o&&Te(ue[e],[l,s],Be)})),r&&Te(oe[e],[l],Be)})),t&&Te(re[e],void 0,Be)}}},$e=(e,...t)=>(Ye((()=>e(...c(t,u)))),et),qe=()=>j(le,(e=>j(e,j))),Ge=()=>J(le),He=e=>J(F(le,u(e))),Ke=(e,t,n,l=0,r)=>{return c(v((i=F(le,u(e)),a=(e,n)=>[y(t)?n:F(e,u(t)),n],s=c([...null!=(d=null==i?void 0:i.entries())?d:[]],(([e,t])=>a(t,e))),o=([e],[t])=>(e<t?-1:1)*(n?-1:1),s.sort(o)),l,y(r)?r:l+r),(([,e])=>e));var s,o,i,a,d},Qe=(e,t)=>J(F(F(le,u(e)),u(t))),Ue=(e,t,n)=>F(F(F(le,u(e)),u(t)),u(n)),Ve=e=>$e((()=>(e=>ee(e,pe,Ne))(e)?Ce(e):0)),Xe=()=>$e((()=>Ce({}))),Ye=(e,t)=>{if(-1==l)return;Ze();const n=e();return _e(t),n},Ze=()=>(l++,et),_e=e=>(l>0&&(l--,0==l&&(n=!C(M),l=1,De(1),n&&We(1),l=-1,(null==e?void 0:e(j(M,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),G)),G),j(N,(e=>j(e,j)))))&&(l=1,L(M,((e,t)=>L(e,((e,n)=>L(e,(([e],l)=>((e,t,n,l,r)=>y(r)?e.delCell(t,n,l,!0):e.setCell(t,n,l,r))(et,t,n,l,e))))))),l=-1,n=!1),Te(ve[0],void 0,n),De(0),n&&We(0),Te(ve[1],void 0,n),l=0,d([M,N,r,g,p],I))),et),et={getTables:qe,getTableIds:Ge,getTable:e=>j(F(le,u(e)),j),getRowIds:He,getSortedRowIds:Ke,getRow:(e,t)=>j(F(F(le,u(e)),u(t))),getCellIds:Qe,getCell:Ue,hasTables:()=>!C(le),hasTable:e=>S(le,u(e)),hasRow:(e,t)=>S(F(le,u(e)),u(t)),hasCell:(e,t,n)=>S(F(F(le,u(e)),u(t)),u(n)),getJson:()=>T(le),getSchemaJson:()=>T(B),setTables:Ve,setTable:(e,t)=>$e((e=>pe(t,e)?Ie(e,t):0),e),setRow:(e,t,n)=>$e(((e,t)=>ye(u(e),u(t),n)?Le(u(e),Fe(u(e)),u(t),n):0),e,t),addRow:(e,t)=>Ye((()=>{let n;return ye(e,n,t)&&(e=u(e),Le(e,Fe(e),n=Je(e),t)),n})),setPartialRow:(e,t,n)=>$e(((e,t)=>{if(ye(e,t,n,1)){const l=Fe(e);q(n,((n,r)=>Ee(e,l,t,r,n)))}}),e,t),setCell:(e,n,l,r)=>$e(((e,n,l)=>w(we(e,n,l,t(r)==o?r(Ue(e,n,l)):r),(t=>Ee(e,Fe(e),n,l,t)))),e,n,l),setJson:e=>{try{"{}"===e?Xe():Ve(b(e))}catch(e){}return et},setSchema:t=>$e((()=>{if((e=(e=>ee(e,(e=>ee(e,(e=>{if(!ee(e,((e,t)=>[i,a].includes(t))))return!1;const t=e.type;return!(!R(t)&&t!=s||(Z(e.default)!=t&&$(e,a),0))})))))(t))&&(Se(t),!C(le))){const e=qe();Xe(),Ve(e)}})),delTables:Xe,delTable:e=>$e((e=>S(le,e)?xe(e):0),e),delRow:(e,t)=>$e(((e,t)=>w(F(le,e),(n=>S(n,t)?ze(e,n,t):0))),e,t),delCell:(e,t,n,l)=>$e(((e,t,n)=>w(F(le,e),(r=>w(F(r,t),(s=>S(s,n)?Oe(e,r,t,s,n,l):0))))),e,t,n),delSchema:()=>$e((()=>{Se({}),e=!1})),transaction:Ye,startTransaction:Ze,finishTransaction:_e,forEachTable:e=>L(le,((t,n)=>e(n,(e=>L(t,((t,n)=>e(n,(e=>x(t,e))))))))),forEachRow:(e,t)=>L(F(le,u(e)),((e,n)=>t(n,(t=>x(e,t))))),forEachCell:(e,t,n)=>x(F(F(le,u(e)),u(t)),n),addSortedRowIdsListener:(e,t,n,l,r,s,o)=>{let i=Ke(e,t,n,l,r);return he((()=>{const o=Ke(e,t,n,l,r);var a,u,d;u=i,f(a=o)===f(u)&&(d=(e,t)=>u[t]===e,a.every(d))||(i=o,s(et,e,t,n,l,r,i))}),ae[o?1:0],[e,t])},addWillFinishTransactionListener:e=>he(e,ve[0]),addDidFinishTransactionListener:e=>he(e,ve[1]),callListener:e=>(ge(e,[Ge,He,Qe],(e=>y(e[2])?[]:X(Ue(...e)))),et),delListener:e=>(be(e),et),getListenerStats:()=>({}),createStore:ne};return q({Tables:[0,re],TableIds:[0,se],Table:[1,oe],RowIds:[1,ie],Row:[2,ue],CellIds:[2,de],Cell:[3,ce],InvalidCell:[3,fe]},(([e,t],n)=>{et["add"+n+"Listener"]=(...n)=>he(n[e],t[n[e+1]?1:0],e>0?v(n,0,e):void 0)})),P(et)};e.createStore=ne},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(!0),s=t(0),o=t(t),i="type",a="default",u=e=>n+e,d=(e,t)=>e.forEach(t),c=(e,t)=>e.map(t),f=e=>e.length,v=(e,t,n)=>e.slice(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})),b=JSON.parse,g=isFinite,p=(e,t)=>e instanceof t,y=e=>null==e,w=(e,t,n)=>y(e)?null==n?void 0:n():t(e),R=e=>e==l||e==r,S=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>y(e)||0==(e=>e.size)(e),I=e=>e.clear(),L=(e,t)=>null==e?void 0:e.forEach(t),m=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),J=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},F=(e,t)=>null==e?void 0:e.get(t),x=(e,t)=>L(e,((e,n)=>t(n,e))),z=(e,t,n)=>y(n)?(m(e,t),e):null==e?void 0:e.set(t,n),O=(e,t,n)=>(S(e,t)||z(e,t,n()),F(e,t)),j=(e,t,n)=>{const l={},r=null!=t?t:e=>e;return L(e,((e,t)=>w(r(e),(e=>(null==n?void 0:n(e))?0:l[t]=e)))),l},k=(e,t)=>{const n=E(),l=null!=t?t:e=>e;return L(e,((e,t)=>n.set(t,l(e)))),n},A=e=>k(e,k),M=(e,t,n,l,r=0)=>w((n?O:F)(e,t[r],r>f(t)-2?n:E),(s=>{if(r>f(t)-2)return(null==l?void 0:l(s))&&z(e,t[r]),s;const o=M(s,t,n,l,r+1);return C(s)&&z(e,t[r]),o})),N=Object,B=N.keys,D=N.isFrozen,P=N.freeze,W=(e,t)=>!y(((e,t)=>w(e,(e=>e[t])))(e,t)),$=(e,t)=>delete e[t],q=(e,t)=>c(N.entries(e),(([e,n])=>t(n,e))),G=e=>{return t=B(e),0==f(t);var t},H=e=>new Set(Array.isArray(e)||y(e)?e:[e]),K=(e,t)=>null==e?void 0:e.add(t),Q=/^\d+$/,U=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{Q.test(t)&&f(e)<1e3&&h(e,t)}]},V=e=>[e,e],X=()=>[E(),E()],Y=e=>{const n=t(e);return R(n)||n==s&&g(e)?n:void 0},Z=(e,t,n,l=z)=>{const r=(s=e=>!W(t,e),J(e).filter(s));var s;return d(B(t),(l=>n(e,l,t[l]))),d(r,(t=>l(e,t))),e},_=(e,t,n)=>y(e)||!(e=>p(e,N)&&e.constructor==N)(e)||G(e)||D(e)?(null==n||n(),!1):(q(e,((n,l)=>{t(n,l)||$(e,l)})),!G(e)),ee=(e,t,n)=>z(e,t,F(e,t)==-n?void 0:n),te=()=>{let e,l,r=0;const g=E(),p=E(),N=E(),B=E(),D=E(),Q=E(),ne=E(),le=E(),re=E(),se=X(),oe=X(),ie=X(),ae=X(),ue=X(),de=X(),ce=X(),fe=X(),ve=X(),he=X(),[Te,be,ge,pe]=(e=>{let t;const[l,r]=U(),s=E();return[(e,r,o)=>{null!=t||(t=tt);const i=l();return z(s,i,[e,r,o]),K(M(r,null!=o?o:[n],H),i),i},(e,l,...r)=>d(((e,t=[n])=>{const l=[],r=(e,n)=>n==f(t)?h(l,e):null===t[n]?L(e,(e=>r(e,n+1))):d([t[n],null],(t=>r(F(e,t),n+1)));return r(e,0),l})(e,l),(e=>L(e,(e=>F(s,e)[0](t,...null!=l?l:[],...r))))),e=>w(F(s,e),(([,t,l])=>(M(t,null!=l?l:[n],void 0,(t=>(m(t,e),C(t)?1:0))),z(s,e),r(e),l))),(e,n,l)=>w(F(s,e),(([e,,r=[]])=>{const s=(...o)=>{const i=f(o);i==f(r)?e(t,...o,...l(o)):y(r[i])?d(n[i](...o),(e=>s(...o,e))):s(...o,r[i])};s()}))]})(),ye=(t,n)=>(!e||S(Q,n)||Be(n))&&_(t,((e,t)=>we(n,t,e)),(()=>Be(n))),we=(e,t,n,l)=>_(l?n:Se(n,e,t),((l,r)=>w(Re(e,t,r,l),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Be(e,t))),Re=(t,n,l,r)=>e?w(F(F(Q,t),l),(e=>Y(r)!=e.type?Be(t,n,l,r,e.default):r),(()=>Be(t,n,l,r))):y(Y(r))?Be(t,n,l,r):r,Se=(e,t,n)=>(w(F(ne,t),(([l,r])=>{L(l,((t,n)=>{W(e,n)||(e[n]=t)})),L(r,(l=>{W(e,l)||Be(t,n,l)}))})),e),Ce=e=>Z(Q,e,((e,t,n)=>{const l=E(),r=H();Z(O(Q,t,E),n,((e,t,n)=>{z(e,t,n),w(n.default,(e=>z(l,t,e)),(()=>K(r,t)))})),z(ne,t,[l,r])}),((e,t)=>{z(Q,t),z(ne,t)})),Ie=e=>Z(re,e,((e,t,n)=>Le(t,n)),((e,t)=>ze(t))),Le=(e,t)=>Z(O(re,e,(()=>(ke(e,1),E()))),t,((t,n,l)=>me(e,t,n,l)),((t,n)=>Oe(e,t,n))),me=(e,t,n,l,r)=>Z(O(t,n,(()=>(Ae(e,n,1),E()))),l,((t,l,r)=>Ee(e,n,t,l,r)),((l,s)=>je(e,t,n,l,s,r))),Ee=(e,t,n,l,r)=>{S(n,l)||Me(e,t,l,1);const s=F(n,l);r!==s&&(Ne(e,t,l,s,r),z(n,l,r))},Je=(e,t,n,l,r)=>w(F(t,n),(t=>Ee(e,n,t,l,r)),(()=>me(e,t,n,Se({[l]:r},e,n)))),Fe=e=>{const[t]=O(le,e,U),n=t();return S(F(re,e),n)?Fe(e):n},xe=e=>{var t;return null!=(t=F(re,e))?t:Le(e,{})},ze=e=>Le(e,{}),Oe=(e,t,n)=>{const[,l]=O(le,e,U);l(n),me(e,t,n,{},!0)},je=(e,t,n,l,r,s)=>{var o;const i=F(null==(o=F(ne,e))?void 0:o[0],r);if(!y(i)&&!s)return Ee(e,n,l,r,i);const a=t=>{Ne(e,n,t,F(l,t)),Me(e,n,t,-1),z(l,t)};y(i)?a(r):x(l,a),C(l)&&(Ae(e,n,-1),C(z(t,n))&&(ke(e,-1),z(re,e),z(le,e)))},ke=(e,t)=>ee(g,e,t),Ae=(e,t,n)=>ee(O(p,e,E),t,n),Me=(e,t,n,l)=>ee(O(O(N,e,E),t,E),n,l),Ne=(e,t,n,l,r)=>O(O(O(B,e,E),t,E),n,(()=>[l,0]))[1]=r,Be=(e,t,n,l,r)=>(h(O(O(O(D,e,E),t,E),n,(()=>[])),l),r),De=(e,t,n)=>w(F(F(F(B,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...V(Ve(e,t,n))])),Pe=e=>C(D)||C(ve[e])?0:L(e?k(D,A):D,((t,n)=>L(t,((t,l)=>L(t,((t,r)=>be(ve[e],[n,l,r],t))))))),We=(e,t,n)=>{if(!C(t))return be(e,n),1},$e=e=>{const t=C(ue[e]),n=C(ce[e])&&C(ae[e])&&t&&C(oe[e]),l=C(fe[e])&&C(de[e])&&C(ie[e])&&C(se[e]);if(!n||!l){const r=e?[k(g),A(p),k(N,A),k(B,A)]:[g,p,N,B];if(!n){L(r[2],((t,n)=>L(t,((t,l)=>We(ce[e],t,[n,l])))));const n=H();L(r[1],((l,r)=>{We(ae[e],l,[r])&&!t&&(be(ue[e],[r,null]),K(n,r))})),t||L(r[3],((t,l)=>{if(!S(n,l)){const n=H();L(t,(e=>L(e,(([t,l],r)=>l!==t?K(n,r):m(e,r))))),L(n,(t=>be(ue[e],[l,t])))}})),We(oe[e],r[0])}if(!l){let t;L(r[3],((n,l)=>{let r;L(n,((n,s)=>{let o;L(n,(([n,i],a)=>{i!==n&&(be(fe[e],[l,s,a],i,n,De),t=r=o=1)})),o&&be(de[e],[l,s],De)})),r&&be(ie[e],[l],De)})),t&&be(se[e],void 0,De)}}},qe=(e,...t)=>(Ze((()=>e(...c(t,u)))),tt),Ge=()=>j(re,(e=>j(e,j))),He=()=>J(re),Ke=e=>J(F(re,u(e))),Qe=(e,t,n,l=0,r)=>{return c(v((o=F(re,u(e)),i=(e,n)=>[y(t)?n:F(e,u(t)),n],s=([e],[t])=>(e<t?-1:1)*(n?-1:1),c([...null!=(a=null==o?void 0:o.entries())?a:[]],(([e,t])=>i(t,e))).sort(s)),l,y(r)?r:l+r),(([,e])=>e));var s,o,i,a},Ue=(e,t)=>J(F(F(re,u(e)),u(t))),Ve=(e,t,n)=>F(F(F(re,u(e)),u(t)),u(n)),Xe=e=>qe((()=>(e=>_(e,ye,Be))(e)?Ie(e):0)),Ye=()=>qe((()=>Ie({}))),Ze=(e,t)=>{if(-1==r)return;_e();const n=e();return et(t),n},_e=()=>(r++,tt),et=e=>(r>0&&(r--,0==r&&(l=!C(B),r=1,Pe(1),l&&$e(1),r=-1,(null==e?void 0:e(j(B,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),G)),G),j(D,(e=>j(e,j)))))&&(r=1,L(B,((e,t)=>L(e,((e,n)=>L(e,(([e],l)=>((e,t,n,l,r)=>y(r)?e.delCell(t,n,l,!0):e.setCell(t,n,l,r))(tt,t,n,l,e))))))),r=-1,l=!1),be(he[0],void 0,l),Pe(0),l&&$e(0),be(he[1],void 0,l),r=0,d([B,D,g,p,N],I))),tt),tt={getTables:Ge,getTableIds:He,getTable:e=>j(F(re,u(e)),j),getRowIds:Ke,getSortedRowIds:Qe,getRow:(e,t)=>j(F(F(re,u(e)),u(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!C(re),hasTable:e=>S(re,u(e)),hasRow:(e,t)=>S(F(re,u(e)),u(t)),hasCell:(e,t,n)=>S(F(F(re,u(e)),u(t)),u(n)),getJson:()=>T(re),getSchemaJson:()=>T(Q),setTables:Xe,setTable:(e,t)=>qe((e=>ye(t,e)?Le(e,t):0),e),setRow:(e,t,n)=>qe(((e,t)=>we(u(e),u(t),n)?me(u(e),xe(u(e)),u(t),n):0),e,t),addRow:(e,t)=>Ze((()=>{let n;return we(e,n,t)&&(e=u(e),me(e,xe(e),n=Fe(e),t)),n})),setPartialRow:(e,t,n)=>qe(((e,t)=>{if(we(e,t,n,1)){const l=xe(e);q(n,((n,r)=>Je(e,l,t,r,n)))}}),e,t),setCell:(e,n,l,r)=>qe(((e,n,l)=>w(Re(e,n,l,t(r)==o?r(Ve(e,n,l)):r),(t=>Je(e,xe(e),n,l,t)))),e,n,l),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch(e){}return tt},setSchema:t=>qe((()=>{if((e=(e=>_(e,(e=>_(e,(e=>{if(!_(e,((e,t)=>[i,a].includes(t))))return!1;const t=e.type;return!(!R(t)&&t!=s||(Y(e.default)!=t&&$(e,a),0))})))))(t))&&(Ce(t),!C(re))){const e=Ge();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>qe((e=>S(re,e)?ze(e):0),e),delRow:(e,t)=>qe(((e,t)=>w(F(re,e),(n=>S(n,t)?Oe(e,n,t):0))),e,t),delCell:(e,t,n,l)=>qe(((e,t,n)=>w(F(re,e),(r=>w(F(r,t),(s=>S(s,n)?je(e,r,t,s,n,l):0))))),e,t,n),delSchema:()=>qe((()=>{Ce({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>L(re,((t,n)=>e(n,(e=>L(t,((t,n)=>e(n,(e=>x(t,e))))))))),forEachRow:(e,t)=>L(F(re,u(e)),((e,n)=>t(n,(t=>x(e,t))))),forEachCell:(e,t,n)=>x(F(F(re,u(e)),u(t)),n),addSortedRowIdsListener:(e,t,n,l,r,s,o)=>{let i=Qe(e,t,n,l,r);return Te((()=>{const o=Qe(e,t,n,l,r);var a,u,d;u=i,f(a=o)===f(u)&&(d=(e,t)=>u[t]===e,a.every(d))||(i=o,s(tt,e,t,n,l,r,i))}),ue[o?1:0],[e,t])},addWillFinishTransactionListener:e=>Te(e,he[0]),addDidFinishTransactionListener:e=>Te(e,he[1]),callListener:e=>(pe(e,[He,Ke,Ue],(e=>y(e[2])?[]:V(Ve(...e)))),tt),delListener:e=>(ge(e),tt),getListenerStats:()=>({}),createStore:te};return q({Tables:[0,se],TableIds:[0,oe],Table:[1,ie],RowIds:[1,ae],Row:[2,de],CellIds:[2,ce],Cell:[3,fe],InvalidCell:[3,ve]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>Te(n[e],t[n[e+1]?1:0],e>0?v(n,0,e):void 0)})),P(tt)};e.createStore=te},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file