tinybase 3.0.2 → 3.1.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 (42) hide show
  1. package/lib/cjs/tools.cjs +1 -1
  2. package/lib/cjs/tools.cjs.gz +0 -0
  3. package/lib/cjs/tools.d.ts +59 -35
  4. package/lib/cjs/ui-react.cjs +1 -1
  5. package/lib/cjs/ui-react.cjs.gz +0 -0
  6. package/lib/cjs-es6/tools.cjs +1 -1
  7. package/lib/cjs-es6/tools.cjs.gz +0 -0
  8. package/lib/cjs-es6/tools.d.ts +59 -35
  9. package/lib/cjs-es6/ui-react.cjs +1 -1
  10. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  11. package/lib/debug/queries.js +4 -3
  12. package/lib/debug/store.js +7 -6
  13. package/lib/debug/tinybase.js +8 -7
  14. package/lib/debug/tools.d.ts +59 -35
  15. package/lib/debug/tools.js +1637 -727
  16. package/lib/debug/ui-react.js +30 -28
  17. package/lib/es6/tools.d.ts +59 -35
  18. package/lib/es6/tools.js +1 -1
  19. package/lib/es6/tools.js.gz +0 -0
  20. package/lib/es6/ui-react.js +1 -1
  21. package/lib/es6/ui-react.js.gz +0 -0
  22. package/lib/tools.d.ts +59 -35
  23. package/lib/tools.js +1 -1
  24. package/lib/tools.js.gz +0 -0
  25. package/lib/ui-react.js +1 -1
  26. package/lib/ui-react.js.gz +0 -0
  27. package/lib/umd/tinybase.js +1 -1
  28. package/lib/umd/tinybase.js.gz +0 -0
  29. package/lib/umd/tools.d.ts +59 -35
  30. package/lib/umd/tools.js +1 -1
  31. package/lib/umd/tools.js.gz +0 -0
  32. package/lib/umd/ui-react.js +1 -1
  33. package/lib/umd/ui-react.js.gz +0 -0
  34. package/lib/umd-es6/tinybase.js +1 -1
  35. package/lib/umd-es6/tinybase.js.gz +0 -0
  36. package/lib/umd-es6/tools.d.ts +59 -35
  37. package/lib/umd-es6/tools.js +1 -1
  38. package/lib/umd-es6/tools.js.gz +0 -0
  39. package/lib/umd-es6/ui-react.js +1 -1
  40. package/lib/umd-es6/ui-react.js.gz +0 -0
  41. package/package.json +10 -10
  42. package/readme.md +14 -14
@@ -272,26 +272,35 @@ export interface Tools {
272
272
  getStoreValuesSchema(): ValuesSchema;
273
273
 
274
274
  /**
275
- * The getStoreApi method returns a code-generated .d.ts file and a .ts file
276
- * that describe the schema of a Store in an ORM style.
275
+ * The getStoreApi method returns code-generated .d.ts and .ts(x) files that
276
+ * describe the schema of a Store and React bindings (since v3.1.0) in an ORM
277
+ * style.
277
278
  *
278
- * If the Store does not already have an explicit TablesSchema associated with
279
- * it, the data in the Store will be scanned to attempt to infer a new
280
- * TablesSchema. The method returns two strings (which should be saved as
281
- * files) though if no schema can be inferred, the strings will be empty.
279
+ * If the Store does not already have an explicit TablesSchema or ValuesSchema
280
+ * associated with it, the data in the Store will be scanned to attempt to
281
+ * infer new schemas. The method returns four strings (which should be saved
282
+ * as files) though if no schema can be inferred, the strings will be empty.
282
283
  *
283
284
  * The method takes a single argument which represents the name you want the
284
- * generated store object to have in code. You are expected to save the files
285
- * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
286
- * that the latter can import types from the former.
285
+ * generated store object to have in code. You are expected to save the four
286
+ * files yourself, as, respectively:
287
+ *
288
+ * - `[storeName].d.ts`
289
+ * - `[storeName].ts`
290
+ * - `[storeName]-ui-react.d.ts`
291
+ * - `[storeName]-ui-react.tsx`
292
+ *
293
+ * Also you should save these alongside each other so that the .ts(x) files
294
+ * can import types from the .d.ts files.
287
295
  *
288
- * The .d.ts and .ts files that are generated are designed to resemble the
289
- * main TinyBase `store.d.ts` and `store.ts` files, but provide named types
290
- * and methods that describe the domain of the schema in the store.
296
+ * The .d.ts and .ts(x) files that are generated are designed to resemble the
297
+ * main TinyBase Store and React binding files, but provide named types and
298
+ * methods that describe the domain of the schema in the store.
291
299
  *
292
300
  * For example, from a Store that has a `pets` Table, you will get methods
293
- * like `getPetsTable`, and types like `PetsRow`, that are more specific
294
- * versions of the underlying getTable method or the Row type. For example:
301
+ * like `getPetsTable`, types like `PetsRow`, and hooks and components that
302
+ * are more specific versions of the underlying getTable method or the Row
303
+ * type, and so on. For example:
295
304
  *
296
305
  * |Store type|Equivalent generated type|
297
306
  * |-|-|
@@ -321,9 +330,9 @@ export interface Tools {
321
330
  * directly.
322
331
  *
323
332
  * @param storeName The name you want to provide to the generated Store, which
324
- * should also be used to save the `.d.ts` and `.ts` files.
325
- * @returns A pair of strings representing the contents of the `.d.ts` and
326
- * `.ts` files.
333
+ * should also be used to save the `.d.ts`, `.ts`, and `.tsx` files.
334
+ * @returns A set of four strings representing the contents of the `.d.ts`,
335
+ * `.ts`, and `.tsx` files for the generated Store and React modules.
327
336
  * @example
328
337
  * This example creates a Tools object and generates code for a Store that
329
338
  * already has a TablesSchema.
@@ -333,7 +342,8 @@ export interface Tools {
333
342
  * price: {type: 'number'},
334
343
  * },
335
344
  * });
336
- * const [dTs, ts] = createTools(store).getStoreApi('shop');
345
+ * const [dTs, ts, dTsUiReact, tsUiReact] =
346
+ * createTools(store).getStoreApi('shop');
337
347
  *
338
348
  * const dTsLines = dTs.split('\n');
339
349
  * console.log(dTsLines[3]);
@@ -342,7 +352,7 @@ export interface Tools {
342
352
  * // -> 'export type PetsRow = {\'price\'?: number;};'
343
353
  *
344
354
  * const tsLines = ts.split('\n');
345
- * console.log(tsLines[41]);
355
+ * console.log(tsLines[39]);
346
356
  * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
347
357
  * ```
348
358
  * @example
@@ -353,7 +363,8 @@ export interface Tools {
353
363
  * fido: {price: 5},
354
364
  * felix: {price: 4},
355
365
  * });
356
- * const [dTs, ts] = createTools(store).getStoreApi('shop');
366
+ * const [dTs, ts, dTsUiReact, tsUiReact] =
367
+ * createTools(store).getStoreApi('shop');
357
368
  *
358
369
  * const dTsLines = dTs.split('\n');
359
370
  * console.log(dTsLines[3]);
@@ -362,18 +373,18 @@ export interface Tools {
362
373
  * // -> 'export type PetsRow = {\'price\': number;};'
363
374
  *
364
375
  * const tsLines = ts.split('\n');
365
- * console.log(tsLines[43]);
376
+ * console.log(tsLines[41]);
366
377
  * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
367
378
  * ```
368
379
  * @category Modelling
369
380
  * @since v2.2.0
370
381
  */
371
- getStoreApi(storeName: string): [string, string];
382
+ getStoreApi(storeName: string): [string, string, string, string];
372
383
 
373
384
  /**
374
385
  * The getPrettyStoreApi method attempts to returns a prettified
375
- * code-generated .d.ts file and a .ts file that describe the schema of a
376
- * Store in an ORM style.
386
+ * code-generated .d.ts and .ts(x) files that describe the schema of a Store
387
+ * and React bindings (since v3.1.0) in an ORM style.
377
388
  *
378
389
  * This is simply a wrapper around the getStoreApi method that attempts to
379
390
  * invoke the `prettier` module (which it hopes you have installed) to format
@@ -384,17 +395,24 @@ export interface Tools {
384
395
  * the results as a promise.
385
396
  *
386
397
  * The method takes a single argument which represents the name you want the
387
- * generated store object to have in code. You are expected to save the files
388
- * as `[storeName].d.ts` and `[storeName].ts`, and alongside each other so
389
- * that the latter can import types from the former.
398
+ * generated store object to have in code. You are expected to save the four
399
+ * files yourself, as, respectively:
400
+ *
401
+ * - `[storeName].d.ts`
402
+ * - `[storeName].ts`
403
+ * - `[storeName]-ui-react.d.ts`
404
+ * - `[storeName]-ui-react.tsx`
405
+ *
406
+ * Also you should save these alongside each other so that the .ts(x) files
407
+ * can import types from the .d.ts files.
390
408
  *
391
409
  * See the documentation for the getStoreApi method for details of the content
392
410
  * of the generated files.
393
411
  *
394
412
  * @param storeName The name you want to provide to the generated Store, which
395
- * should also be used to save the `.d.ts` and `.ts` files.
396
- * @returns A pair of strings representing the contents of the `.d.ts` and
397
- * `.ts` files.
413
+ * should also be used to save the `.d.ts`, `.ts`, and `.tsx` files.
414
+ * @returns A set of four strings representing the contents of the `.d.ts`,
415
+ * `.ts`, and `.tsx` files for the generated Store and React modules.
398
416
  * @example
399
417
  * This example creates a Tools object and generates code for a Store that
400
418
  * already has a TablesSchema.
@@ -405,7 +423,9 @@ export interface Tools {
405
423
  * },
406
424
  * });
407
425
  * const tools = createTools(store);
408
- * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
426
+ * const [dTs, ts, dTsUiReact, tsUiReact] = await createTools(
427
+ * store,
428
+ * ).getPrettyStoreApi('shop');
409
429
  *
410
430
  * const dTsLines = dTs.split('\n');
411
431
  * console.log(dTsLines[5]);
@@ -414,7 +434,7 @@ export interface Tools {
414
434
  * // -> 'export type PetsRow = {price?: number};'
415
435
  *
416
436
  * const tsLines = ts.split('\n');
417
- * console.log(tsLines[72]);
437
+ * console.log(tsLines[75]);
418
438
  * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
419
439
  * ```
420
440
  * @example
@@ -426,7 +446,9 @@ export interface Tools {
426
446
  * felix: {price: 4},
427
447
  * });
428
448
  * const tools = createTools(store);
429
- * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
449
+ * const [dTs, ts, dTsUiReact, tsUiReact] = await createTools(
450
+ * store,
451
+ * ).getPrettyStoreApi('shop');
430
452
  *
431
453
  * const dTsLines = dTs.split('\n');
432
454
  * console.log(dTsLines[5]);
@@ -435,13 +457,15 @@ export interface Tools {
435
457
  * // -> 'export type PetsRow = {price: number};'
436
458
  *
437
459
  * const tsLines = ts.split('\n');
438
- * console.log(tsLines[74]);
460
+ * console.log(tsLines[77]);
439
461
  * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
440
462
  * ```
441
463
  * @category Modelling
442
464
  * @since v2.2.0
443
465
  */
444
- getPrettyStoreApi(storeName: string): Promise<[string, string]>;
466
+ getPrettyStoreApi(
467
+ storeName: string,
468
+ ): Promise<[string, string, string, string]>;
445
469
 
446
470
  /**
447
471
  * The getStore method returns a reference to the underlying Store that is
package/lib/umd/tools.js CHANGED
@@ -1 +1 @@
1
- var e,a;e=this,a=function(e){"use strict";const a=e=>typeof e,l="",t=a(l),s=a(!0),o=a(0),n="type",d="default",r=(e,a)=>e.every(a),$=(e,a)=>e.sort(a),i=(e,a)=>e.forEach(a),u=(e,a)=>e.map(a),I=e=>e.length,c=e=>0==I(e),b=(e,...a)=>e.push(...a),w=e=>e.pop(),h=(e,...a)=>e.unshift(...a),g=e=>e.shift(),C=JSON.parse,T=isFinite,f=(e,a)=>e instanceof a,V=e=>null==e,R=e=>e==t||e==s,m=e=>a(e)==t,p=e=>Array.isArray(e),v=e=>{const l=a(e);return R(l)||l==o&&T(e)?l:void 0},L=(e,a)=>e?.has(a)??!1,y=e=>[...e?.values()??[]],S=(e,a)=>e?.forEach(a),k=(e,a)=>e?.delete(a),J=e=>new Map(e),E=(e,a)=>e?.get(a),j=(e,a)=>S(e,((e,l)=>a(l,e))),x=(e,a)=>u([...e?.entries()??[]],(([e,l])=>a(l,e))),A=(e,a,l)=>V(l)?(k(e,a),e):e?.set(a,l),O=(e,a,l)=>(L(e,a)||A(e,a,l()),E(e,a)),D=e=>new Set(p(e)||V(e)?e:[e]),N=(e,a)=>e?.add(a),G=e=>[e,e],z=()=>[J(),J()],F=/[^A-Za-z]+/,P=/[^A-Za-z0-9]+/,W=/^( *)\/\*\* *(.*?) *\*\/$/gm,M=(e,a,l)=>e.substring(a,l),Z=e=>e.toUpperCase(),_=e=>e.toLowerCase(),B=(e,a,l,t=1)=>{const s=`${a}${1==t?"":t}`;return L(e,s)?B(e,a,l,t+1):(A(e,s,l),s)},Q=e=>e.replace(W,((e,a,l)=>{const t=77-U(a);return`${a}/**\n${l.replace(RegExp(`([^\\n]{1,${t}})(\\s|$)`,"g"),a+" * $1\n")}${a} */`})),U=e=>e.length,q=(e,a=l)=>e.join(a),H=e=>e.flat(1e3),K=(e,a=0)=>q(u(e.split(P),((e,l)=>(l>0||a?Z:_)(M(e,0,1))+M(e,1)))),X=e=>Z(q((e&&!F.test(e[0])?e:" "+e).split(P),"_")),Y=e=>`/** ${e}. */`,ee=()=>{const e=z(),a=J(),t=J(),s=J();return[(...e)=>q(H(e),"\n"),(a,l,...t)=>i(t,(t=>N(O(e[a],l,D),t))),(e,l,t)=>B(a,e,[l,t]),(e,a,l,s,o,n="")=>B(t,e,[a,l,s,o,n]),(e,a,l)=>B(s,e,p(l)?[`(${a}) => {`,l,"}"]:[`(${a}) => ${l}`]),(e,a)=>E(s,e)===a?e:B(s,e,a),a=>[...$(x(e[a],((e,a)=>`import {${q($(y(e)),", ")}} from '${a}';`))),l],()=>x(a,(([e,a],t)=>[Y(a),`export type ${t} = ${e};`,l])),e=>x(t,(([a,t,s,o,n],d)=>{const r=e?[`${d}: ${n}(${a}): ${t} => ${s},`]:[`${d}${n}(${a}): ${t};`];return e||h(r,Y(o)),b(r,l),r})),()=>x(s,((e,a)=>(e=p(e)?e:[e],b(e,w(e)+";"),[`const ${a} = ${g(e)}`,e,l])))]},ae=Object,le=ae.keys,te=ae.freeze,se=e=>f(e,ae)&&e.constructor==ae,oe=(e,a)=>u(ae.entries(e),(([e,l])=>a(l,e))),ne=e=>se(e)&&c(le(e)),de="the Store",re="A function for",$e="export",ie="listener",ue=" | undefined",Ie=`Registers a ${ie} that will be called`,ce="Represents",be=" => void",we="the end of the transaction",he="the specified Row",ge="a string serialization of",Ce=(e=0,a=0)=>`the ${Ne[e]}content of${a?" "+de:""}`,Te=(e,a=0,l=0)=>`${Oe[e]} ${Ce(a,1)}${l?" when set":""}`,fe=(e,a=0)=>`${ce} a Row when ${a?"s":"g"}etting ${Ce()} the '${e}' Table`,Ve=(e,a,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${a}`,Re=(e,a)=>`Calls a function for each ${e} in ${a}`,me=(e,a=de)=>`Gets whether ${e} exists in ${a}`,pe=e=>"A function that takes "+e,ve=(e,a=0)=>`${re} listening to changes to ${De[e]} in ${De[a]}`,Le=(e,a,t=0)=>`${Ie} whenever ${e} in ${a} change`+(t?l:"s"),ye=e=>`the '${e}' Table`,Se=e=>`${he} in ${ye(e)}`,ke=e=>`the '${e}' Cell`,Je=e=>`the '${e}' Value`,Ee=(e,a=0)=>`${Oe[a]} ${Ce()} ${ye(e)}`,je=(e,a=0)=>`${Oe[a]} ${Ce()} ${Se(e)}`,xe=(e,a,l=0)=>`${Oe[l]} ${ke(a)} for ${Se(e)}`,Ae=(e,a=0)=>`${Oe[a]} ${Je(e)}`,Oe=["Gets","Sets","Sets part of","Deletes",ce,"Gets "+ge,"Sets "+ge,Ie+" whenever"],De=[de,"Tables","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes","Values","Value Ids","a Value","invalid Value changes"],Ne=["","tabular ","keyed value "],Ge=["DoRollback","Id","IdOrNull","Ids","Json","Store"],ze=(e,a=l,t=l)=>`store.${e}(${a})${t?" as "+t:l}`,Fe=(e,a=l)=>`fluent(() => ${ze(e,a)})`,Pe=(e,a=l,t=l)=>`store.${e}(${a?a+", ":l}proxy(${ie})${t?", "+t:l})`,We=(e,a,t)=>{if(ne(e)&&ne(a))return G(l);const[o,r,$,i,u,I,c,w,h,g]=ee(),C=`./${K(t)}.d`,T=K(t,1),f=K(T),R=[],p=J(),v=a=>oe(e,((e,t)=>a(t,O(p,t,(()=>{const e=K(t,1);return[$(e+"Table",`{[rowId: Id]: ${e}Row}`,`${ce} the '${t}' Table`),$(e+"Row",`{${q(L(t,((e,a,t)=>`'${e}'${V(t)?"?":l}: ${a};`))," ")}}`,fe(t)),$(e+"RowWhenSet",`{${q(L(t,((e,a)=>`'${e}'?: ${a};`))," ")}}`,fe(t,1)),$(e+"CellId",q(L(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' Table`),$(e+"CellCallback",`(...[cellId, cell]: ${q(L(t,((e,a)=>`[cellId: '${e}', cell: ${a}]`))," | ")})${be}`,pe(`a Cell Id and value from a Row in the '${t}' Table`)),$(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${be})${be}`,pe(`a Row Id from the '${t}' Table, and a Cell iterator`))]})),K(t,1),I(X(t),`'${t}'`)))),L=(a,l)=>oe(e[a],((e,a)=>l(a,e[n],e[d],I(X(a),`'${a}'`),K(a,1)))),S=e=>oe(a,((a,l)=>e(l,a[n],a[d],I(X(l),`'${l}'`),K(l,1))));if(r(1,C,T,`create${T} as create${T}Decl`),!ne(e)){const e=$("Tables",`{${q(v(((e,a)=>`'${e}'?: ${a[0]};`))," ")}}`,Te(4,1)),a=$("TableId",q(v((e=>`'${e}'`))," | "),"A Table Id in "+de),t=$("TableCallback",`(...[tableId, rowCallback]: ${q(v(((e,a)=>`[tableId: '${e}', forEachRow: (rowCallback: ${a[5]})${be}]`))," | ")})${be}`,pe("a Table Id, and a Row iterator")),o=$("GetCellChange",`(...[tableId, rowId, cellId]: ${q(v(((e,a)=>`[tableId: '${e}', rowId: Id, cellId: ${a[3]}]`))," | ")}) => CellChange`,re+" returning information about any Cell's changes during a transaction"),u=$("TablesListener",`(${f}: ${T}, getCellChange: ${o}${ue})${be}`,ve(1)),c=$("TableIdsListener",`(${f}: ${T})${be}`,ve(2)),w=$("TableListener",`(${f}: ${T}, tableId: ${a}, getCellChange: ${o}${ue})${be}`,ve(3)),h=$("RowIdsListener",`(${f}: ${T}, tableId: ${a})`+be,ve(4,3)),g=$("RowListener",`(${f}: ${T}, tableId: ${a}, rowId: Id, getCellChange: ${o}${ue})${be}`,ve(5,3)),p=$("CellIdsListener",`(${f}: ${T}, tableId: ${a}, rowId: Id)`+be,ve(6,5)),S=$("CellListener",`(...[${f}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${q(H(v((e=>L(e,((a,l)=>`[${f}: ${T}, tableId: '${e}', rowId: Id, cellId: '${a}', newCell: ${l}${ue}, oldCell: ${l}${ue}, getCellChange: ${o} | undefined]`)))))," | ")})${be}`,ve(7,5)),k=$("InvalidCellListener",`(${f}: ${T}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${be}`,ve(8));i("hasTables",l,s,ze("hasTables"),me("any Table")),i("getTables",l,e,ze("getTables"),Te(0,1)),i("setTables","tables: "+e,T,Fe("setTables","tables"),Te(1,1)),i("delTables",l,T,Fe("delTables"),Te(3,1)),i("getTableIds",l,a+"[]",ze("getTableIds",l,a+"[]"),Ve("Table",de)),i("forEachTable","tableCallback: "+t,"void",ze("forEachTable","tableCallback as any"),Re("Table",de));const E=J();v(((e,[a,t,o,n,d,$],u,I)=>{r(1,C,a,t,o,n,d,$),i(`has${u}Table`,l,s,ze("hasTable",I),me(ye(e))),i(`get${u}Table`,l,a,ze("getTable",I,a),Ee(e)),i(`set${u}Table`,"table: "+a,T,Fe("setTable",I+", table"),Ee(e,1)),i(`del${u}Table`,l,T,Fe("delTable",I),Ee(e,3)),i(`get${u}RowIds`,l,"Ids",ze("getRowIds",I),Ve("Row",ye(e))),i(`get${u}SortedRowIds`,`cellId?: ${n}, descending?: boolean, offset?: number, limit?: number`,"Ids",ze("getSortedRowIds",I+", cellId, descending, offset, limit"),Ve("Row",ye(e),1)),i(`forEach${u}Row`,"rowCallback: "+$,"void",ze("forEachRow",I+", rowCallback as any"),Re("Row",ye(e))),i(`has${u}Row`,"rowId: Id",s,ze("hasRow",I+", rowId"),me(he,ye(e))),i(`get${u}Row`,"rowId: Id",t,ze("getRow",I+", rowId",t),je(e)),i(`set${u}Row`,"rowId: Id, row: "+o,T,Fe("setRow",I+", rowId, row"),je(e,1)),i(`add${u}Row`,"row: "+o,"Id"+ue,ze("addRow",I+", row"),"Adds a new Row to "+ye(e)),i(`set${u}PartialRow`,"rowId: Id, partialRow: "+o,T,Fe("setPartialRow",I+", rowId, partialRow"),je(e,2)),i(`del${u}Row`,"rowId: Id",T,Fe("delRow",I+", rowId"),je(e,3)),i(`get${u}CellIds`,"rowId: Id",n+"[]",ze("getCellIds",I+", rowId",n+"[]"),Ve("Cell",Se(e))),i(`forEach${u}Cell`,"rowId: Id, cellCallback: "+d,"void",ze("forEachCell",I+", rowId, cellCallback as any"),Re("Cell",Se(e))),L(e,((a,t,o,n,d)=>{const r="Map"+K(t,1);A(E,t,r),i(`has${u}${d}Cell`,"rowId: Id",s,ze("hasCell",`${I}, rowId, ${n}`),me(ke(a),Se(e)));const $=`${t}${V(o)?ue:l}`;i(`get${u}${d}Cell`,"rowId: Id",$,ze("getCell",`${I}, rowId, ${n}`,$),xe(e,a)),i(`set${u}${d}Cell`,`rowId: Id, cell: ${t} | ${r}`,T,Fe("setCell",`${I}, rowId, ${n}, cell as any`),xe(e,a,1)),i(`del${u}${d}Cell`,"rowId: Id",T,Fe("delCell",`${I}, rowId, ${n}`),xe(e,a,3))}))})),i("getTablesJson",l,"Json",ze("getTablesJson"),Te(5,1)),i("setTablesJson","tablesJson: Json",T,Fe("setTablesJson","tablesJson"),Te(6,1)),i("addTablesListener",`${ie}: ${u}, mutator?: boolean`,"Id",Pe("addTablesListener",l,"mutator"),Te(7,1)+" changes"),i("addTableIdsListener",`${ie}: ${c}, mutator?: boolean`,"Id",Pe("addTableIdsListener",l,"mutator"),Le("the Table Ids",de,1)),i("addTableListener",`tableId: ${a} | null, ${ie}: ${w}, mutator?: boolean`,"Id",Pe("addTableListener","tableId","mutator"),Le("a Table",de)),i("addRowIdsListener",`tableId: ${a} | null, ${ie}: ${h}, mutator?: boolean`,"Id",Pe("addRowIdsListener","tableId","mutator"),Le("the Row Ids","a Table",1)),i("addRowListener",`tableId: ${a} | null, rowId: IdOrNull, ${ie}: ${g}, mutator?: boolean`,"Id",Pe("addRowListener","tableId, rowId","mutator"),Le("a Row","a Table")),i("addCellIdsListener",`tableId: ${a} | null, rowId: IdOrNull, ${ie}: ${p}, mutator?: boolean`,"Id",Pe("addCellIdsListener","tableId, rowId","mutator"),Le("the Cell Ids","a Row",1)),i("addCellListener",`tableId: ${a} | null, rowId: IdOrNull, cellId: ${q(v(((e,a)=>a[3]))," | ")} | null, ${ie}: ${S}, mutator?: boolean`,"Id",Pe("addCellListener","tableId, rowId, cellId","mutator"),Le("a Cell","a Row")),i("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${ie}: ${k}, mutator?: boolean`,"Id",Pe("addInvalidCellListener","tableId, rowId, cellId","mutator"),Ie+" whenever an invalid Cell change was attempted"),j(E,((e,a)=>$(a,`(cell: ${e}${ue}) => ${e}`,`Takes a ${e} Cell value and returns another`))),r(1,C,e,a,t,u,c,w,h,g,p,S,k,...y(E)),r(0,"tinybase","CellChange"),b(R,".setTablesSchema({",H(v(((e,a,t,s)=>[`[${s}]: {`,...L(e,((e,a,t,s)=>`[${s}]: {[${I(X(n),`'${n}'`)}]: ${I(X(a),`'${a}'`)}${V(t)?l:`, [${I(X(d),`'${d}'`)}]: ${m(t)?I(X(t),`'${t}'`):t}`}},`)),"},"]))),"})")}if(!ne(a)){const e=$("Values",`{${q(S(((e,a,t)=>`'${e}'${V(t)?"?":l}: ${a};`))," ")}}`,Te(4,2)),a=$("ValuesWhenSet",`{${q(S(((e,a)=>`'${e}'?: ${a};`))," ")}}`,Te(4,2,1)),t=$("ValueId",q(S((e=>`'${e}'`))," | "),"A Value Id in "+de),o=$("ValueCallback",`(...[valueId, rowCallback]: ${q(S(((e,a)=>`[valueId: '${e}', value: ${a}]`))," | ")})${be}`,pe("a Value Id, and value")),u=$("GetValueChange",`(valueId: ${t}) => ValueChange`,re+" returning information about any Value's changes during a transaction"),c=$("ValuesListener",`(${f}: ${T}, getValueChange: ${u}${ue})`+be,ve(9)),w=$("ValueIdsListener",`(${f}: ${T})${be}`,ve(10)),h=$("ValueListener",`(...[${f}, valueId, newValue, oldValue, getValueChange]: ${q(S(((e,a)=>`[${f}: ${T}, valueId: '${e}', newValue: ${a}${ue}, oldValue: ${a}${ue}, getValueChange: ${u} | undefined]`))," | ")})${be}`,ve(11)),g=$("InvalidValueListener",`(${f}: ${T}, valueId: Id, invalidValues: any[])${be}`,ve(12));i("hasValues",l,s,ze("hasValues"),me("any Value")),i("getValues",l,e,ze("getValues",l,e),Te(0,2)),i("setValues","values: "+a,T,Fe("setValues","values"),Te(1,2)),i("setPartialValues","partialValues: "+a,T,Fe("setPartialValues","partialValues"),Te(2,2)),i("delValues",l,T,Fe("delValues"),Te(3,2)),i("getValueIds",l,t+"[]",ze("getValueIds",l,t+"[]"),Ve("Value",de)),i("forEachValue","valueCallback: "+o,"void",ze("forEachValue","valueCallback as any"),Re("Value",de)),S(((e,a,t,o,n)=>{i(`has${n}Value`,l,s,ze("hasValue",o),me(Je(e))),i(`get${n}Value`,l,a,ze("getValue",o,a),Ae(e)),i(`set${n}Value`,"value: "+a,T,Fe("setValue",o+", value"),Ae(e,1)),i(`del${n}Value`,l,T,Fe("delValue",o),Ae(e,3))})),i("getValuesJson",l,"Json",ze("getValuesJson"),Te(5,2)),i("setValuesJson","valuesJson: Json",T,Fe("setValuesJson","valuesJson"),Te(6,2)),i("addValuesListener",`${ie}: ${c}, mutator?: boolean`,"Id",Pe("addValuesListener",l,"mutator"),Te(7,2)+" changes"),i("addValueIdsListener",`${ie}: ${w}, mutator?: boolean`,"Id",Pe("addValueIdsListener",l,"mutator"),Le("the Value Ids",de,1)),i("addValueListener",`valueId: ${t} | null, ${ie}: ${h}, mutator?: boolean`,"Id",Pe("addValueListener","valueId","mutator"),Le("a Value",de)),i("addInvalidValueListener",`valueId: IdOrNull, ${ie}: ${g}, mutator?: boolean`,"Id",Pe("addInvalidValueListener","valueId","mutator"),Ie+" whenever an invalid Cell change was attempted"),r(1,C,e,a,t,o,c,w,h,g),r(0,"tinybase","ValueChange"),b(R,".setValuesSchema({",S(((e,a,t,s)=>[`[${s}]: {[${I(X(n),`'${n}'`)}]: ${I(X(a),`'${a}'`)}${V(t)?l:`, [${I(X(d),`'${d}'`)}]: ${m(t)?I(X(t),`'${t}'`):t}`}},`])),"})")}r(0,"tinybase",...Ge);const k=$("TransactionListener",`(${f}: ${T}, cellsTouched: boolean, valuesTouched: boolean)${be}`,re+" listening to the completion of a transaction");return i("getJson",l,"Json",ze("getJson"),Te(5)),i("setJson","json: Json",T,Fe("setJson","json"),Te(6)),i("transaction","actions: () => Return, doRollback?: DoRollback","Return",ze("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),i("startTransaction",l,T,Fe("startTransaction"),"Explicitly starts a transaction"),i("finishTransaction","doRollback?: DoRollback,",T,Fe("finishTransaction","doRollback"),"Explicitly finishes a transaction"),i("addWillFinishTransactionListener",`${ie}: ${k}`,"Id",Pe("addWillFinishTransactionListener"),`${Ie} just before ${we}`),i("addDidFinishTransactionListener",`${ie}: ${k}`,"Id",Pe("addDidFinishTransactionListener"),`${Ie} just after ${we}`),i("callListener",ie+"Id: Id",T,Fe("callListener",ie+"Id"),`Manually provoke a ${ie} to be called`),i("delListener",ie+"Id: Id",T,Fe("delListener",ie+"Id"),`Remove a ${ie} that was previously added to ${de}`),i("getStore",l,"Store","store",Oe[0]+" the underlying Store object"),r(1,"tinybase","createStore",...Ge),r(1,C,T,`create${T} as create${T}Decl`,k),I("store",["createStore()",...R]),u("fluent","actions: () => Store",["actions();",`return ${f};`]),u("proxy",ie+": any",`(_: Store, ...args: any[]) => ${ie}(${f}, ...args)`),I(f,["{",...h(1),"}"]),[o(...c(0),...w(),`${$e} interface ${T} {`,...h(0),"}",l,Y(`Creates a ${T} object`),`${$e} function create${T}(): ${T};`),o(...c(1),`${$e} const create${T}: typeof create${T}Decl = () => {`,...g(),`return Object.freeze(${f});`,"};")]},Me={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Ze=(e=>{const a=new WeakMap;return l=>(a.has(l)||a.set(l,e(l)),a.get(l))})((e=>{const a=()=>{const a=C(e.getTablesSchemaJson());return!ne(a)||r(e.getTableIds(),(l=>{const t=e.getRowIds(l),s=J();if(r(t,(a=>r(e.getCellIds(l,a),(t=>{const o=e.getCell(l,a,t),n=O(s,t,(()=>[v(o),J(),[0],0])),[d,r,[$]]=n,i=O(r,o,(()=>0))+1;return i>$&&(n[2]=[i,o]),A(r,o,i),n[3]++,d==v(o)})))))return a[l]={},S(s,(([e,,[,s],o],r)=>{a[l][r]={[n]:e,...o==I(t)?{[d]:s}:{}}})),1}))?a:{}},l=()=>{const a=C(e.getValuesSchemaJson());return ne(a)&&e.forEachValue(((e,l)=>{a[e]={[n]:v(l)}})),a},t=e=>We(a(),l(),e),s=async e=>{let a;try{a=(await import("prettier")).format}catch{a=e=>e}return u(t(e),(e=>Q(a(e,Me))))};return te({getStoreStats:a=>{let l=0,t=0,s=0;const o={};return e.forEachTable(((e,n)=>{l++;let d=0,r=0;const $={};n(((e,l)=>{d++;let t=0;l((()=>t++)),r+=t,a&&($[e]={rowCells:t})})),t+=d,s+=r,a&&(o[e]={tableRows:d,tableCells:r,rows:$})})),{totalTables:l,totalRows:t,totalCells:s,totalValues:I(e.getValueIds()),jsonLength:U(e.getJson()),...a?{detail:{tables:o}}:{}}},getStoreTablesSchema:a,getStoreValuesSchema:l,getStoreApi:t,getPrettyStoreApi:s,getStore:()=>e})}));e.createTools=Ze},"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseTools={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,l="",a=t(l),n=t(!0),o=t(0),r="type",s="default",d="Listener",c="get",$="add",i="Ids",u="Table",I=u+"s",b=u+i,h="Row",f=h+i,p="Sorted"+h+i,g="Cell",w=g+i,C="Value",m=C+"s",y=C+i,v=(e,t)=>e.every(t),R=(e,t)=>e.sort(t),S=(e,t)=>e.forEach(t),k=(e,t)=>e.map(t),V=e=>e.length,x=e=>0==V(e),T=(e,t)=>e.filter(t),O=(e,...t)=>e.push(...t),D=e=>e.pop(),A=(e,...t)=>e.unshift(...t),N=e=>e.shift(),P=JSON.parse,j=isFinite,E=(e,t)=>e instanceof t,M=e=>null==e,z=e=>e==a||e==n,G=e=>t(e)==a,J=e=>Array.isArray(e),B=e=>{const l=t(e);return z(l)||l==o&&j(e)?l:void 0},L=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],F=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),_=e=>new Map(e),Z=(e,t)=>e?.get(t),H=(e,t)=>F(e,((e,l)=>t(l,e))),Q=(e,t)=>k([...e?.entries()??[]],(([e,l])=>t(l,e))),q=(e,t,l)=>M(l)?(U(e,t),e):e?.set(t,l),K=(e,t,l)=>(L(e,t)||q(e,t,l()),Z(e,t)),X=e=>e.toUpperCase(),Y=e=>e.toLowerCase(),ee="a ",te="A function for",le="Callback",ae="Del",ne="export",oe="Id",re="Invalid",se="Json",de=Y(d),ce=" | undefined",$e="Partial",ie=`Registers a ${de} that will be called`,ue="Represents",Ie="Set",be="[]",he="the Store",fe="Transaction",pe=Y(fe),ge="the end of the "+pe,we="void",Ce=" => "+we,me=ee+"string serialization of",ye=" ",ve="Gets a callback that can ",Re="the ",Se=(e=0,t=0)=>`the ${Be[e]}content of`+(t?ye+he:l),ke=(e=0,t,a=0)=>Ge[t]+ye+Se(e,1)+(a?" when set":l),Ve=(e,t=0)=>ue+` a Row when ${t?"s":"g"}etting ${Se()} the '${e}' `+u,xe=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,Te=(e,t)=>`Calls a function for each ${e} in `+t,Oe=e=>"A function that takes "+e,De=(e,t=0)=>te+" listening to changes to "+Je[e]+" in "+Je[t],Ae=(e,t,a=0)=>ie+" whenever "+Je[e]+" in "+Je[t]+" change"+(a?l:"s"),Ne=e=>`the '${e}' `+u,Pe=e=>"the specified Row in "+Ne(e),je=(e,t=0)=>Ge[t]+` ${Se()} `+Ne(e),Ee=(e,t=0)=>Ge[t]+` ${Se()} `+Pe(e),Me=(e,t,l=0)=>Ge[l]+` the '${t}' Cell for `+Pe(e),ze=(e,t=0)=>Ge[t]+` the '${e}' Value`,Ge=["Gets","Checks existence of","Sets","Deletes","Sets part of",ue,"Gets "+me,"Sets "+me,ie+" whenever",ve+"set",ve+"add",ve+"set part of",ve+"delete"],Je=[he,I,Re+u+ye+i,ee+u,Re+h+ye+i,ee+h,Re+g+ye+i,ee+g,"invalid Cell changes",m,Re+C+ye+i,ee+C,"invalid Value changes",Re+"sorted "+h+ye+i],Be=[l,"tabular ","keyed value "],Le=e=>new Set(J(e)||M(e)?e:[e]),We=(e,t)=>e?.add(t),Fe=/[^A-Za-z]+/,Ue=/[^A-Za-z0-9]+/,_e=/^( *)\/\*\* *(.*?) *\*\/$/gm,Ze=(e,t,l)=>e.substring(t,l),He=e=>e.includes(","),Qe=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return L(e,n)?Qe(e,t,l,a+1):(q(e,n,l),n)},qe=e=>e.replace(_e,((e,t,l)=>{const a=77-Ke(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Ke=e=>e.length,Xe=(e,t=l)=>e.join(t),Ye=e=>e.flat(1e3),et=(e,t=0)=>Xe(k(e.split(Ue),((e,l)=>(l>0||t?X:Y)(Ze(e,0,1))+Ze(e,1)))),tt=e=>X(Xe((e&&!Fe.test(e[0])?e:" "+e).split(Ue),"_")),lt=e=>`/** ${e}. */`,at=(...e)=>Xe(T(e,(e=>e)),", "),nt=()=>{const e=[_(),_(),_(),_()],t=_(),a=_();return[(...e)=>Xe(Ye(e),"\n"),(t,l,...a)=>S(a,(a=>S([0,1],(n=>(t??n)==n?We(K(e[n],l,Le),a):0)))),(e,l,a)=>Qe(t,e,[l,a]),(e,t,l)=>Qe(a,e,J(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>Z(a,e)===t?e:Qe(a,e,t),(t=0)=>k([...R(Q(e[t],((e,t)=>`import {${Xe(R(W(e)),", ")}} from '${t}';`)),((e,t)=>He(e)!=He(t)?He(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>Q(t,(([e,t],a)=>[lt(t),`${ne} type ${a} = ${e};`,l])),()=>Q(a,((e,t)=>(e=J(e)?e:[e],O(e,D(e)+";"),[`const ${t} = ${N(e)}`,e,l])))]},ot=Object,rt=ot.keys,st=ot.freeze,dt=e=>E(e,ot)&&e.constructor==ot,ct=(e,t)=>k(ot.entries(e),(([e,l])=>t(l,e))),$t=e=>dt(e)&&x(rt(e)),it=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},ut=(e,t,l)=>[t=>ct(e,((e,a)=>t(a,et(a,1),l(tt(a),`'${a}'`)))),(t,a)=>ct(e[t],((e,t)=>a(t,e[r],e[s],l(tt(t),`'${t}'`),et(t,1)))),e=>ct(t,((t,a)=>e(a,t[r],t[s],l(tt(a),`'${a}'`),et(a,1))))],It=[c,"has","set","del","set","forEach",$,l],bt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),ht=(e,t=l)=>`fluent(() => ${bt(e,t)})`,ft=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,pt=(e,t,a)=>{const[o,c,v,R,k,V,x,T]=nt(),[D,N,P]=ut(e,t,k),j=_(),E=(e=0)=>Q(j,(([t,a,n,o,r],s)=>{const d=e?[s+`: ${r}(${t}): ${a} => ${n},`]:[s+r+`(${t}): ${a};`];return e||A(d,lt(o)),O(d,l),d})),z=(e,t,a,n,o,r=l)=>Qe(j,e,[t,a,n,o,r]),J=(e,t,a,n,o,r=l,s=l,d=l)=>z(It[e]+t+(4==e?$e:l)+a,r,n,(n==F?ht:bt)(It[e]+(4==e?$e:l)+a,s,e?void 0:n),o,d),B=(e,t,a,n=l,o=l,r=1)=>z($+e+d,(n?n+", ":l)+de+": "+t+(r?", mutator?: boolean":l),oe,ft($+e+d,o,r?"mutator":l),a),L=`./${et(a)}.d`,F=et(a,1),U=et(F),K=[],X=_();let Y=[],ae=[];if(c(1,L,F,`create${F} as create${F}Decl`),!$t(e)){const e=_();D(((t,a)=>{const n=[v(a+u,`{[rowId: Id]: ${a}Row}`,ue+` the '${t}' `+u),v(a+h,`{${Xe(N(t,((e,t,a)=>`'${e}'${M(a)?"?":l}: ${t};`))," ")}}`,Ve(t)),v(a+h+"WhenSet",`{${Xe(N(t,((e,t)=>`'${e}'?: ${t};`))," ")}}`,Ve(t,1)),v(a+g+oe,Xe(N(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' `+u),v(a+g+le,`(...[cellId, cell]: ${Xe(N(t,((e,t)=>`[cellId: '${e}', cell: ${t}]`))," | ")})`+Ce,Oe(`a Cell Id and value from a Row in the '${t}' `+u)),v(a+h+le,`(rowId: Id, forEachCell: (cellCallback: ${a}CellCallback)`+Ce+")"+Ce,Oe(`a Row Id from the '${t}' Table, and a Cell iterator`))];q(e,t,n),c(1,L,...n)}));const t=v(I,`{${Xe(D((t=>`'${t}'?: ${Z(e,t)?.[0]};`))," ")}}`,ke(1,5)),a=v(u+oe,Xe(D((e=>`'${e}'`))," | "),"A "+u+" Id in "+he),o=v(u+le,`(...[tableId, rowCallback]: ${Xe(D((t=>`[tableId: '${t}', forEachRow: (rowCallback: ${Z(e,t)?.[5]})${Ce}]`))," | ")})`+Ce,Oe(ee+u+" Id, and a Row iterator")),$=v("GetCellChange",`(...[tableId, rowId, cellId]: ${Xe(D((t=>`[tableId: '${t}', rowId: Id, cellId: ${Z(e,t)?.[3]}]`))," | ")}) => CellChange`,te+" returning information about any Cell's changes during a "+pe),C=v(I+d,`(${U}: ${F}, getCellChange: ${$}${ce})`+Ce,De(1)),m=v(b+d,`(${U}: ${F})`+Ce,De(2)),y=v(u+d,`(${U}: ${F}, tableId: ${a}, getCellChange: ${$}${ce})`+Ce,De(3)),R=v(f+d,`(${U}: ${F}, tableId: ${a})`+Ce,De(4,3)),V=v(p+d,"("+at(U+": "+F,"tableId: "+a,"cellId: Id"+ce,"descending: boolean","offset: number","limit: number"+ce,"sortedRowIds: Ids")+")"+Ce,De(13,3)),x=v(h+d,`(${U}: ${F}, tableId: ${a}, rowId: Id, getCellChange: ${$}${ce})`+Ce,De(5,3)),T=v(w+d,`(${U}: ${F}, tableId: ${a}, rowId: Id)`+Ce,De(6,5)),A=v(g+d,`(...[${U}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${Xe(Ye(D((e=>N(e,((t,l)=>`[${U}: ${F}, tableId: '${e}', rowId: Id, cellId: '${t}', newCell: ${l}${ce}, oldCell: ${l}${ce}, getCellChange: ${$} | undefined]`)))))," | ")})`+Ce,De(7,5)),P=v(re+g+d,`(${U}: ${F}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])`+Ce,De(8));Y=[t,a,C,m,y,R,V,x,T,A,e],S([[t],[n],[F,"tables: "+t,"tables"],[F]],(([e,t,a],n)=>J(n,l,I,e,ke(1,n),t,a))),J(0,l,b,a+be,xe(u,he)),J(5,l,u,we,Te(u,he),"tableCallback: "+o,"tableCallback as any"),D(((t,a,o)=>{const[r,s,d,c,$,I]=Z(e,t);S([[r],[n],[F,"table: "+r,", table"],[F]],(([e,n,r=l],s)=>J(s,a,u,e,je(t,s),n,o+r))),J(0,a,f,i,xe(h,Ne(t)),l,o),J(0,a,p,i,xe(h,Ne(t),1),"cellId?: "+c+", descending?: boolean, offset?: number, limit?: number",o+", cellId, descending, offset, limit"),J(5,a,h,we,Te(h,Ne(t)),"rowCallback: "+I,o+", rowCallback as any"),S([[s],[n],[F,", row: "+d,", row"],[F],[F,", partialRow: "+d,", partialRow"]],(([e,n=l,r=l],s)=>J(s,a,h,e,Ee(t,s),"rowId: Id"+n,o+", rowId"+r))),J(6,a,h,oe+ce,"Adds a new Row to "+Ne(t),"row: "+d,o+", row"),J(0,a,w,c+be,xe(g,Pe(t)),"rowId: "+oe,o+", rowId"),J(5,a,g,we,Te(g,Pe(t)),"rowId: Id, cellCallback: "+$,o+", rowId, cellCallback as any"),N(t,((e,r,s,d,c)=>{const $="Map"+et(r,1);q(X,r,$);const i=r+(M(s)?ce:l);S([[i],[n],[F,`, cell: ${r} | `+$,", cell as any"],[F]],(([n,r=l,s=l],$)=>J($,a+c,g,n,Me(t,e,$),"rowId: Id"+r,o+", rowId, "+d+s)))}))})),J(0,l,I+se,se,ke(1,6)),J(2,l,I+se,F,ke(1,7),"tablesJson: "+se,"tables"+se),B(I,C,ke(1,8)+" changes"),B(b,m,Ae(2,0,1)),B(u,y,Ae(3,0),`tableId: ${a} | null`,"tableId"),B(f,R,Ae(4,3,1),`tableId: ${a} | null`,"tableId"),B(p,V,Ae(13,3,1),at("tableId: "+a,"cellId: Id"+ce,"descending: boolean","offset: number","limit: number"+ce),at("tableId","cellId","descending","offset","limit")),B(h,x,Ae(5,3),`tableId: ${a} | null, rowId: IdOrNull`,"tableId, rowId"),B(w,T,Ae(6,5,1),`tableId: ${a} | null, rowId: IdOrNull`,"tableId, rowId"),B(g,A,Ae(7,5),`tableId: ${a} | null, rowId: IdOrNull, cellId: ${Xe(D((t=>Z(e,t)?.[3]??l))," | ")} | null`,"tableId, rowId, cellId"),B(re+g,P,ie+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,L,t,a,o,C,m,y,R,V,x,T,A,P,...W(X)),c(0,"tinybase","CellChange"),O(K,".setTablesSchema({",Ye(D(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${k(tt(r),`'${r}'`)}]: ${k(tt(t),`'${t}'`)}${M(a)?l:`, [${k(tt(s),`'${s}'`)}]: `+(G(a)?k(tt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!$t(t)){const e=v(m,"{"+Xe(P(((e,t,a)=>`'${e}'${M(a)?"?":l}: ${t};`))," ")+"}",ke(2,5)),t=v(m+"WhenSet","{"+Xe(P(((e,t)=>`'${e}'?: ${t};`))," ")+"}",ke(2,5,1)),a=v(C+oe,Xe(P((e=>`'${e}'`))," | "),"A Value Id in "+he),o=v(C+le,`(...[valueId, rowCallback]: ${Xe(P(((e,t)=>`[valueId: '${e}', value: ${t}]`))," | ")})`+Ce,Oe("a Value Id, and value")),$=v("GetValueChange",`(valueId: ${a}) => ValueChange`,te+" returning information about any Value's changes during a "+pe),i=v(m+d,`(${U}: ${F}, getValueChange: ${$}${ce})`+Ce,De(9)),u=v(y+d,`(${U}: ${F})`+Ce,De(10)),I=v(C+d,`(...[${U}, valueId, newValue, oldValue, getValueChange]: ${Xe(P(((e,t)=>`[${U}: ${F}, valueId: '${e}', newValue: ${t}${ce}, oldValue: ${t}${ce}, getValueChange: ${$} | undefined]`))," | ")})`+Ce,De(11)),b=v(re+C+d,`(${U}: ${F}, valueId: Id, invalidValues: any[])`+Ce,De(12));ae=[e,t,a,i,u,I],S([[e],[n],[F,"values: "+t,"values"],[F],[F,"partialValues: "+t,"partialValues"]],(([e,t,a],n)=>J(n,l,m,e,ke(2,n),t,a))),J(0,l,y,a+be,xe(C,he)),J(5,l,C,"void",Te(C,he),"valueCallback: "+o,"valueCallback as any"),P(((e,t,a,o,r)=>{const s="Map"+et(t,1);q(X,t,s),S([[t],[n],[F,`value: ${t} | `+s,", value as any"],[F]],(([t,a,n=l],s)=>J(s,r,C,t,ze(e,s),a,o+n)))})),J(0,l,m+se,se,ke(2,6)),J(2,l,m+se,F,ke(2,7),"valuesJson: "+se,"values"+se),B(m,i,ke(2,8)+" changes"),B(y,u,Ae(10,0,1)),B(C,I,Ae(11,0),`valueId: ${a} | null`,"valueId"),B(re+C,b,ie+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,L,e,t,a,o,i,u,I,b),c(0,"tinybase","ValueChange"),O(K,".setValuesSchema({",P(((e,t,a,n)=>[`[${n}]: {[${k(tt(r),`'${r}'`)}]: ${k(tt(t),`'${t}'`)}${M(a)?l:`, [${k(tt(s),`'${s}'`)}]: `+(G(a)?k(tt(a),`'${a}'`):a)}},`])),"})")}H(X,((e,t)=>v(t,`(cell: ${e}${ce}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,"tinybase","DoRollback",oe,"IdOrNull",i,se,"Store");const Ie=v(fe+d,`(${U}: ${F}, cellsTouched: boolean, valuesTouched: boolean)`+Ce,te+" listening to the completion of a "+pe);return J(0,l,se,se,ke(0,6)),J(2,l,se,F,ke(0,7),"json: "+se,"json"),J(7,l,pe,"Return","Execute a "+pe+" to make multiple mutations","actions: () => Return, doRollback?: DoRollback","actions, doRollback","<Return>"),J(7,l,"start"+fe,F,"Explicitly starts a "+pe),J(7,l,"finish"+fe,F,"Explicitly finishes a "+pe,"doRollback?: DoRollback,","doRollback"),B("WillFinish"+fe,Ie,ie+" just before "+ge,l,l,0),B("DidFinish"+fe,Ie,ie+" just after "+ge,l,l,0),J(7,l,"call"+d,F,"Manually provoke a listener to be called","listenerId: Id","listenerId"),J(3,l,d,F,"Remove a listener that was previously added to "+he,"listenerId: Id","listenerId"),z("getStore",l,"Store","store",Ge[0]+" the underlying Store object"),c(1,"tinybase","createStore"),c(1,L,F,`create${F} as create${F}Decl`,Ie),k("store",["createStore()",...K]),R("fluent","actions: () => Store",["actions();",`return ${U};`]),R("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${U}, ...params)`),k(U,["{",...E(1),"}"]),[o(...V(0),...x(),ne+" interface "+F+" {",...E(0),"}",l,lt(`Creates a ${F} object`),ne+" function create"+F+"(): "+F+";"),o(...V(1),ne+" const create"+F+": typeof create"+F+"Decl = () => {",...T(),`return Object.freeze(${U});`,"};"),Y,ae]},gt="Deps",wt=e=>c+e,Ct=e=>at(wt(e),wt(e)+gt),mt="Parameter",yt=": (parameter: "+mt+", store: Store) => ",vt="const contextValue = useContext(Context);",Rt=", and registers a listener so that any changes to that result will cause a re-render",St=", based on a parameter",kt=": ",Vt=mt+"ized"+le+"<"+mt+">",xt="<"+mt+",>",Tt=gt+"?: React.DependencyList",Ot="then"+Tt,Dt="then?: (store: Store",At=at(Dt+")"+Ce,Ot),Nt="then, then"+gt,Pt="rowId",jt=Pt+kt+oe,Et=(e,...t)=>at(...t,de+": "+e,de+Tt,"mutator?: boolean"),Mt=(...e)=>at(...e,de,de+gt,"mutator"),zt=(e,t,a,n,o)=>{const[r,s,c,$,v,R,S,k]=nt(),[V,x,T]=ut(e,t,v),D=`./${et(a)}.d`,N=`./${et(a)}-ui-react.d`,P="tinybase/ui-react",j=et(a,1),E=et(j),z=j+"Or"+j+oe,G=E+"Or"+j+oe,B=_(),L=(e,t,a,n,o,r=l)=>(s(1,N,e+" as "+e+"Decl"),Qe(B,e,[t,a,J(n)?["{",n,"}"]:n,o,r])),W=(e,t,a,n,o,r=l)=>L("use"+e,t,a,n,o,r),F=(e,t,a,n,o=l,r=l,d=l,c=l,$=l)=>{s(1,P,`use${t} as use${t}Core`),W(e,at(o,X,c),a,ee+`(${G}, use${t}Core, [`+(r||l)+($?"], ["+$:l)+"])",n,d)},U=(e,t,l,a)=>L(e,t,1,l,a),H=(e=0)=>Q(B,(([t,a,n,o,r],s)=>{const d=e?[ne+` const ${s}: typeof ${s}Decl = ${r}(${t}): ${1==a?"any":a} =>`,n]:[ne+` function ${s}${r}(${t}): ${1==a?"ComponentReturnType":a};`];return e||A(d,lt(o)),O(d,l),d}));s(null,"tinybase",oe,i,"IdOrNull","Store",le,mt+"ized"+le),s(0,P,"ComponentReturnType"),s(0,D,j);const q=c(z,j+" | "+oe,`Used when you need to refer to a ${j} in a React hook or component`),K=c("ProviderProps",`{readonly ${E}?: ${j}; readonly ${E}ById?: {[${E}Id: Id]: ${j}}}`,`Used with the Provider component, so that a ${j} can be passed into the context of an application`);s(1,"react","React"),s(1,N,q,K);const X=G+"?: "+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${j}?, {[${E}Id: Id]: ${j}}?]>([])`),W("Create"+j,`create: () => ${j}, create`+Tt,j,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${j} within a React application with convenient memoization`);const Y=W(j,"id?: Id",j+ce,[vt,"return id == null ? contextValue[0] : contextValue[1]?.[id];"],`Get a reference to a ${j} from within a Provider component context`),ee=$("useHook",G+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${E} = ${Y}(${G} as Id);`,`return hook(...preParams, ((${G} == null || typeof ${G} == 'string')`,`? ${E} : ${G})?.getStore(), ...postParams)`]);if(!$t(e)){const[e,t,a,o,r,c,$,C,m,y,v]=n;s(null,D,e,t,a,o,r,c,$,C,m,y),s(1,P),s(1,D,j),F(I,I,e,ke(1,0)+Rt),F(b,b,t+be,xe(u,he)+Rt),F(Ie+I+le,Ie+I+le,Vt,ke(1,9)+St,at(wt(I)+yt+e,wt(I)+Tt),Ct(I),xt,at(Dt,`tables: ${e})`+Ce,Ot),Nt),F(ae+I+le,ae+I+le,le,ke(1,12),l,l,l,At,Nt),V(((e,t,a)=>{const[n,o,r,d]=Z(v,e);s(0,D,n,o,r,d),s(1,D,n,o,r,d),F(t+u,u,n,je(e)+Rt,l,a),F(t+f,f,i,xe(h,Ne(e))+Rt,l,a),F(t+p,p,i,xe(h,Ne(e),1)+Rt,"cellId?: "+d+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit"),F(t+h,h,o,Ee(e)+Rt,jt,at(a,Pt)),F(t+w,w,d+be,xe(g,Pe(e))+Rt,jt,at(a,Pt)),F(Ie+t+u+le,Ie+u+le,Vt,je(e,9)+St,at(wt(u)+yt+n,wt(u)+Tt),at(a,Ct(u)),xt,at(Dt,`table: ${n})`+Ce,Ot),Nt),F(ae+t+u+le,ae+u+le,le,je(e,12),l,a,l,At,Nt),F(Ie+t+h+le,Ie+h+le,Vt,Ee(e,9)+St,at(jt,wt(h)+yt+r,wt(h)+Tt),at(a,Pt,Ct(h)),xt,at(Dt,`row: ${r})`+Ce,Ot),Nt),F("Add"+t+h+le,"Add"+h+le,Vt,Ee(e,10)+St,at(wt(h)+yt+r,wt(h)+Tt),at(a,Ct(h)),xt,"then?: ("+at(jt+ce,"store: Store","row: "+r+")"+Ce,"then"+Tt),Nt),F(Ie+t+$e+h+le,Ie+$e+h+le,Vt,Ee(e,11)+St,at(jt,wt($e+h)+yt+r,wt($e+h)+Tt),at(a,Pt,Ct($e+h)),xt,at(Dt,`partialRow: ${r})`+Ce,Ot),Nt),F(ae+t+h+le,ae+h+le,le,Ee(e,12),jt,at(a,Pt),l,At,Nt),x(e,((n,o,r,d,c)=>{const $="Map"+et(o,1);s(0,D,$),s(1,D,$),F(t+c+g,g,o+(M(r)?ce:l),Me(e,n)+Rt,jt,at(a,Pt,d)),F(Ie+t+c+g+le,Ie+g+le,Vt,Me(e,n,9)+St,at(jt,wt(g)+yt+o+" | "+$,wt(g)+Tt),at(a,Pt,d,Ct(g)),xt,at(Dt,`cell: ${o} | ${$})`+Ce,Ot),Nt),F(ae+t+c+g+le,ae+g+le,le,Me(e,n,12),at(jt,"forceDel?: boolean"),at(a,Pt,d,"forceDel"),l,At,Nt)}))}));const R=Xe(V((e=>Z(v,e)?.[3]??l))," | ");F(I+d,I+d,we,ke(1,8)+" changes",Et(a),Mt()),F(b+d,b+d,we,Ae(2,0,1),Et(o),Mt()),F(u+d,u+d,we,Ae(3,0),Et(r,`tableId: ${t} | null`),Mt("tableId")),F(f+d,f+d,we,Ae(4,3,1),Et(c,`tableId: ${t} | null`),Mt("tableId")),F(p+d,p+d,we,Ae(13,3,1),Et($,`tableId: ${t} | null`,"cellId: "+R+ce,"descending: boolean","offset: number","limit: number"+ce),Mt("tableId","cellId","descending","offset","limit")),F(h+d,h+d,we,Ae(5,3),Et(C,`tableId: ${t} | null`,Pt+": IdOrNull"),Mt("tableId",Pt)),F(w+d,w+d,we,Ae(6,5,1),Et(m,`tableId: ${t} | null`,Pt+": IdOrNull"),Mt("tableId",Pt)),F(g+d,g+d,we,Ae(7,5),Et(y,`tableId: ${t} | null`,Pt+": IdOrNull",`cellId: ${R} | null`),Mt("tableId",Pt,"cellId"))}if(!$t(t)){const[e,t,a,n,r,c]=o;s(null,D,...o),F(m,m,e,ke(2,0)+Rt),F(y,y,a+be,xe(C,he)+Rt),F(Ie+m+le,Ie+m+le,Vt,ke(2,9)+St,at(wt(m)+yt+t,wt(m)+Tt),Ct(m),xt,at(Dt,`values: ${t})`+Ce,Ot),Nt),F(Ie+$e+m+le,Ie+$e+m+le,Vt,ke(2,11)+St,at(wt($e+m)+yt+t,wt($e+m)+Tt),Ct($e+m),xt,at(Dt,`partialValues: ${t})`+Ce,Ot),Nt),F(ae+m+le,ae+m+le,le,ke(2,12),l,l,l,At,Nt),T(((e,t,a,n,o)=>{const r="Map"+et(t,1);s(0,D,r),s(1,D,r),F(o+C,C,t,ze(e)+Rt,l,n),F(Ie+o+C+le,Ie+C+le,Vt,ze(e,9)+St,at(wt(C)+yt+t+" | "+r,wt(C)+Tt),at(n,Ct(C)),xt,at(Dt,`value: ${t} | ${r})`+Ce,Ot),Nt),F(ae+o+C+le,ae+C+le,le,ze(e,12),l,n,l,At,Nt)})),F(m+d,m+d,we,ke(2,8)+" changes",Et(n),Mt()),F(y+d,y+d,we,Ae(10,0,1),Et(r),Mt()),F(C+d,C+d,we,Ae(11,0),Et(c,`valueId: ${a} | null`),Mt("valueId"))}return U("Provider",`{${E}, ${E}ById, children}: `+K+" & {children: React.ReactNode}",[vt,"return (","<Context.Provider","value={useMemo(",`() => [${E} ?? contextValue[0], {...contextValue[1], ...${E}ById}],`,`[${E}, ${E}ById, contextValue],`,")}>","{children}","</Context.Provider>",");"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...R(0),...S(),...H(0)),r(...R(1),...k(),...H(1))]},Gt=(e,t,a)=>{if($t(e)&&$t(t))return[l,l,l,l];const[n,o,r,s]=pt(e,t,a);return[n,o,...zt(e,t,a,r,s)]},Jt={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Bt=it((e=>{const t=()=>{const t=P(e.getTablesSchemaJson());return!$t(t)||v(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=_();if(v(a,(t=>v(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),r=K(n,a,(()=>[B(o),_(),[0],0])),[s,d,[c]]=r,$=K(d,o,(()=>0))+1;return $>c&&(r[2]=[$,o]),q(d,o,$),r[3]++,s==B(o)})))))return t[l]={},F(n,(([e,,[,n],o],d)=>{t[l][d]={[r]:e,...o==V(a)?{[s]:n}:{}}})),1}))?t:{}},l=()=>{const t=P(e.getValuesSchemaJson());return $t(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:B(l)}})),t},a=e=>Gt(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return k(a(e),((e,a)=>qe(l(e,{...Jt,filepath:"_."+t[a]}))))};return st({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,r)=>{l++;let s=0,d=0;const c={};r(((e,l)=>{s++;let a=0;l((()=>a++)),d+=a,t&&(c[e]={rowCells:a})})),a+=s,n+=d,t&&(o[e]={tableRows:s,tableCells:d,rows:c})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:V(e.getValueIds()),jsonLength:Ke(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));e.createTools=Bt},"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={});
Binary file
@@ -1 +1 @@
1
- var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,o="",l=t(o),r="Tables",d="TableIds",u="Table",n="RowIds",i="SortedRowIds",a="Row",I="CellIds",c="Cell",w="Values",R="ValueIds",C="Value",b=(e,s)=>e.map(s),p=e=>null==e,k=(e,s,t)=>p(e)?t?.():s(e),g=()=>{},{createContext:m,useContext:h}=s,V=m([]),L=(e,s)=>{const t=h(V);return p(e)?t[s]:((e,s)=>k(e,(e=>e[s])))(t[s+1],e)},y=(e,s)=>{const o=L(e,s);return p(e)||(e=>t(e)==l)(e)?o:e},S=e=>y(e,0),T=e=>y(e,2),f=e=>y(e,4),v=e=>y(e,6),P=e=>y(e,8),q=e=>y(e,10),{useCallback:x,useEffect:B,useMemo:M,useRef:D,useState:A}=s,F=(e,s,t=[])=>{const o=M((()=>s(e)),[e,...t]);return B((()=>()=>o.destroy()),[o]),o},G=(e,s,t,o=[],l)=>{const[,r]=A(),d=x((()=>s?.["get"+e]?.(...o)??t),[s,...o]),[u]=A(d),n=D(u);return M((()=>n.current=d()),[d]),E(e,s,((...e)=>{n.current=p(l)?d():e[l],r([])}),[],o),n.current},E=(e,s,t,o=[],l=[],...r)=>B((()=>{const o=s?.["add"+e+"Listener"]?.(...l,t,...r);return()=>s?.delListener(o)}),[s,...l,...o,...r]),Q=(e,s,t,o=[],l=g,r=[],...d)=>{const u=S(e);return x((e=>k(u,(o=>k(t(e,o),(e=>l(o["set"+s](...d,e),e)))))),[u,s,...o,...r,...d])},U=(e,s,t=g,o=[],...l)=>{const r=S(e);return x((()=>t(r?.["del"+s](...l))),[r,s,...o,...l])},j=(e,s,t)=>{const o=q(e);return x((()=>o?.[s](t)),[o,s,t])},z=e=>G(d,S(e),[],[]),H=(e,s)=>G(n,S(s),[],[e]),J=(e,s,t,o=0,l,r)=>G(i,S(r),[],[e,s,t,o,l],6),K=(e,s,t)=>G(I,S(t),[],[e,s]),N=(e,s,t,o)=>G(c,S(o),void 0,[e,s,t],4),O=e=>G(R,S(e),[],[]),W=(e,s)=>G(C,S(s),void 0,[e]),X=(e,s)=>G("Metric",T(s),void 0,[e]),Y=(e,s)=>G("SliceIds",f(s),[],[e]),Z=(e,s,t)=>G("SliceRowIds",f(t),[],[e,s]),$=(e,s,t)=>G("RemoteRowId",v(t),void 0,[e,s]),_=(e,s,t)=>G("LocalRowIds",v(t),[],[e,s]),ee=(e,s,t)=>G("LinkedRowIds",v(t),[],[e,s]),se=(e,s)=>G("ResultRowIds",P(s),[],[e]),te=(e,s,t,o=0,l,r)=>G("ResultSortedRowIds",P(r),[],[e,s,t,o,l],6),oe=(e,s,t)=>G("ResultCellIds",P(t),[],[e,s]),le=(e,s,t,o)=>G("ResultCell",P(o),void 0,[e,s,t]),re=e=>G("CheckpointIds",q(e),[[],void 0,[]]),de=(e,s)=>G("Checkpoint",q(s),void 0,[e]),ue=e=>j(e,"goBackward"),ne=e=>j(e,"goForward"),{createElement:ie,useMemo:ae}=s,Ie=({tableId:e,store:s,rowComponent:t=ge,getRowComponentProps:o,separator:l,debugIds:r},d)=>pe(b(d,(l=>ie(t,{...be(o,l),key:l,tableId:e,rowId:l,store:s,debugIds:r}))),l,r,e),ce=({queryId:e,queries:s,resultRowComponent:t=ye,getResultRowComponentProps:o,separator:l,debugIds:r},d)=>pe(b(d,(l=>ie(t,{...be(o,l),key:l,queryId:e,rowId:l,queries:s,debugIds:r}))),l,r,e),we=e=>{const s=v(e);return[s,s?.getStore()]},Re=({relationshipId:e,relationships:s,rowComponent:t=ge,getRowComponentProps:o,separator:l,debugIds:r},d,u)=>{const[n,i]=we(s),a=n?.getLocalTableId(e),I=d(e,u,n);return pe(b(I,(e=>ie(t,{...be(o,e),key:e,tableId:a,rowId:e,store:i,debugIds:r}))),l,r,u)},Ce=e=>({checkpoints:s,checkpointComponent:t=Se,getCheckpointComponentProps:o,separator:l,debugIds:r})=>{const d=q(s);return pe(b(e(re(d)),(e=>ie(t,{...be(o,e),key:e,checkpoints:d,checkpointId:e,debugIds:r}))),l)},be=(e,s)=>p(e)?{}:e(s),pe=(e,s,t,o)=>{const l=p(s)||!Array.isArray(e)?e:b(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",l,"}"]:l},ke=({tableId:e,rowId:s,cellId:t,store:l,debugIds:r})=>pe(o+(N(e,s,t,l)??o),void 0,r,t),ge=({tableId:e,rowId:s,store:t,cellComponent:o=ke,getCellComponentProps:l,separator:r,debugIds:d})=>pe(b(K(e,s,t),(r=>ie(o,{...be(l,r),key:r,tableId:e,rowId:s,cellId:r,store:t,debugIds:d}))),r,d,s),me=e=>Ie(e,H(e.tableId,e.store)),he=({valueId:e,store:s,debugIds:t})=>pe(o+(W(e,s)??o),void 0,t,e),Ve=({indexId:e,sliceId:s,indexes:t,rowComponent:o=ge,getRowComponentProps:l,separator:r,debugIds:d})=>{const u=f(t),n=u?.getStore(),i=u?.getTableId(e),a=Z(e,s,u);return pe(b(a,(e=>ie(o,{...be(l,e),key:e,tableId:i,rowId:e,store:n,debugIds:d}))),r,d,s)},Le=({queryId:e,rowId:s,cellId:t,queries:l,debugIds:r})=>pe(o+(le(e,s,t,l)??o),void 0,r,t),ye=({queryId:e,rowId:s,queries:t,resultCellComponent:o=Le,getResultCellComponentProps:l,separator:r,debugIds:d})=>pe(b(oe(e,s,t),(r=>ie(o,{...be(l,r),key:r,queryId:e,rowId:s,cellId:r,queries:t,debugIds:d}))),r,d,s),Se=({checkpoints:e,checkpointId:s,debugIds:t})=>pe(de(s,e)??o,void 0,t,s),Te=Ce((e=>e[0])),fe=Ce((e=>p(e[1])?[]:[e[1]])),ve=Ce((e=>e[2]));e.BackwardCheckpointsView=Te,e.CellView=ke,e.CheckpointView=Se,e.CurrentCheckpointView=fe,e.ForwardCheckpointsView=ve,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=Ve,getSliceComponentProps:o,separator:l,debugIds:r})=>pe(b(Y(e,s),(l=>ie(t,{...be(o,l),key:l,indexId:e,sliceId:l,indexes:s,debugIds:r}))),l,r,e),e.LinkedRowsView=e=>Re(e,ee,e.firstRowId),e.LocalRowsView=e=>Re(e,_,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>pe(X(e,s)??o,void 0,t,e),e.Provider=({store:e,storesById:t,metrics:o,metricsById:l,indexes:r,indexesById:d,relationships:u,relationshipsById:n,queries:i,queriesById:a,checkpoints:I,checkpointsById:c,children:w})=>{const R=s.useContext(V);return ie(V.Provider,{value:ae((()=>[e??R[0],{...R[1],...t},o??R[2],{...R[3],...l},r??R[4],{...R[5],...d},u??R[6],{...R[7],...n},i??R[8],{...R[9],...a},I??R[10],{...R[11],...c}]),[e,t,o,l,r,d,u,n,i,a,I,c,R])},w)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=ge,getRowComponentProps:l,debugIds:r})=>{const[d,u]=we(t),n=d?.getRemoteTableId(e),i=$(e,s,d);return pe(p(n)||p(i)?null:ie(o,{...be(l,i),key:i,tableId:n,rowId:i,store:u,debugIds:r}),void 0,r,s)},e.ResultCellView=Le,e.ResultRowView=ye,e.ResultSortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>ce(l,te(l.queryId,e,s,t,o,l.queries)),e.ResultTableView=e=>ce(e,se(e.queryId,e.queries)),e.RowView=ge,e.SliceView=Ve,e.SortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>Ie(l,J(l.tableId,e,s,t,o,l.store)),e.TableView=me,e.TablesView=({store:e,tableComponent:s=me,getTableComponentProps:t,separator:o,debugIds:l})=>pe(b(z(e),(o=>ie(s,{...be(t,o),key:o,tableId:o,store:e,debugIds:l}))),o),e.ValueView=he,e.ValuesView=({store:e,valueComponent:s=he,getValueComponentProps:t,separator:o,debugIds:l})=>pe(b(O(e),(o=>ie(s,{...be(t,o),key:o,valueId:o,store:e,debugIds:l}))),o),e.tableView=Ie,e.useAddRowCallback=(e,s,t=[],o,l=g,r=[])=>{const d=S(o);return x((t=>k(d,(o=>k(s(t,o),(s=>l(o.addRow(e,s),o,s)))))),[d,e,...t,...r])},e.useCell=N,e.useCellIds=K,e.useCellIdsListener=(e,s,t,o,l,r)=>E(I,S(r),t,o,[e,s],l),e.useCellListener=(e,s,t,o,l,r,d)=>E(c,S(d),o,l,[e,s,t],r),e.useCheckpoint=de,e.useCheckpointIds=re,e.useCheckpointIdsListener=(e,s,t)=>E("CheckpointIds",q(t),e,s),e.useCheckpointListener=(e,s,t,o)=>E("Checkpoint",q(o),s,t,[e]),e.useCheckpoints=e=>L(e,10),e.useCreateCheckpoints=(e,s,t)=>F(e,s,t),e.useCreateIndexes=(e,s,t)=>F(e,s,t),e.useCreateMetrics=(e,s,t)=>F(e,s,t),e.useCreatePersister=(e,s,t=[],o,l=[])=>{const[,r]=A(),d=M((()=>s(e)),[e,...t]);return B((()=>((async()=>{await(o?.(d)),r(1)})(),()=>{d.destroy()})),[d,...l]),d},e.useCreateQueries=(e,s,t)=>F(e,s,t),e.useCreateRelationships=(e,s,t)=>F(e,s,t),e.useCreateStore=(e,s=[])=>M(e,s),e.useDelCellCallback=(e,s,t,o,l,r,d)=>U(l,c,r,d,e,s,t,o),e.useDelRowCallback=(e,s,t,o,l)=>U(t,a,o,l,e,s),e.useDelTableCallback=(e,s,t,o)=>U(s,u,t,o,e),e.useDelTablesCallback=(e,s,t)=>U(e,r,s,t),e.useDelValueCallback=(e,s,t,o)=>U(s,C,t,o,e),e.useDelValuesCallback=(e,s,t)=>U(e,w,s,t),e.useGoBackwardCallback=ue,e.useGoForwardCallback=ne,e.useGoToCallback=(e,s=[],t,o=g,l=[])=>{const r=q(t);return x((s=>k(r,(t=>k(e(s),(e=>o(t.goTo(e),e)))))),[r,...s,...l])},e.useIndexes=e=>L(e,4),e.useLinkedRowIds=ee,e.useLinkedRowIdsListener=(e,s,t,o,l)=>E("LinkedRowIds",v(l),t,o,[e,s]),e.useLocalRowIds=_,e.useLocalRowIdsListener=(e,s,t,o,l)=>E("LocalRowIds",v(l),t,o,[e,s]),e.useMetric=X,e.useMetricListener=(e,s,t,o)=>E("Metric",T(o),s,t,[e]),e.useMetrics=e=>L(e,2),e.useQueries=e=>L(e,8),e.useRedoInformation=e=>{const s=q(e),[,,[t]]=re(s);return[!p(t),ne(s),t,k(t,(e=>s?.getCheckpoint(e)))??o]},e.useRelationships=e=>L(e,6),e.useRemoteRowId=$,e.useRemoteRowIdListener=(e,s,t,o,l)=>E("RemoteRowId",v(l),t,o,[e,s]),e.useResultCell=le,e.useResultCellIds=oe,e.useResultCellIdsListener=(e,s,t,o,l)=>E("ResultCellIds",P(l),t,o,[e,s]),e.useResultCellListener=(e,s,t,o,l,r)=>E("ResultCell",P(r),o,l,[e,s,t]),e.useResultRow=(e,s,t)=>G("ResultRow",P(t),{},[e,s]),e.useResultRowIds=se,e.useResultRowIdsListener=(e,s,t,o)=>E("ResultRowIds",P(o),s,t,[e]),e.useResultRowListener=(e,s,t,o,l)=>E("ResultRow",P(l),t,o,[e,s]),e.useResultSortedRowIds=te,e.useResultSortedRowIdsListener=(e,s,t,o,l,r,d,u)=>E("ResultSortedRowIds",P(u),r,d,[e,s,t,o,l]),e.useResultTable=(e,s)=>G("ResultTable",P(s),{},[e]),e.useResultTableListener=(e,s,t,o)=>E("ResultTable",P(o),s,t,[e]),e.useRow=(e,s,t)=>G(a,S(t),{},[e,s]),e.useRowIds=H,e.useRowIdsListener=(e,s,t,o,l)=>E(n,S(l),s,t,[e],o),e.useRowListener=(e,s,t,o,l,r)=>E(a,S(r),t,o,[e,s],l),e.useSetCellCallback=(e,s,t,o,l,r,d,u)=>Q(r,c,o,l,d,u,e,s,t),e.useSetCheckpointCallback=(e=g,s=[],t,o=g,l=[])=>{const r=q(t);return x((s=>k(r,(t=>{const l=e(s);o(t.addCheckpoint(l),t,l)}))),[r,...s,...l])},e.useSetPartialRowCallback=(e,s,t,o,l,r,d)=>Q(l,"PartialRow",t,o,r,d,e,s),e.useSetPartialValuesCallback=(e,s,t,o,l)=>Q(t,"PartialValues",e,s,o,l),e.useSetRowCallback=(e,s,t,o,l,r,d)=>Q(l,a,t,o,r,d,e,s),e.useSetTableCallback=(e,s,t,o,l,r)=>Q(o,u,s,t,l,r,e),e.useSetTablesCallback=(e,s,t,o,l)=>Q(t,r,e,s,o,l),e.useSetValueCallback=(e,s,t,o,l,r)=>Q(o,C,s,t,l,r,e),e.useSetValuesCallback=(e,s,t,o,l)=>Q(t,w,e,s,o,l),e.useSliceIds=Y,e.useSliceIdsListener=(e,s,t,o)=>E("SliceIds",f(o),s,t,[e]),e.useSliceRowIds=Z,e.useSliceRowIdsListener=(e,s,t,o,l)=>E("SliceRowIds",f(l),t,o,[e,s]),e.useSortedRowIds=J,e.useSortedRowIdsListener=(e,s,t,o,l,r,d,u,n)=>E(i,S(n),r,d,[e,s,t,o,l],u),e.useStore=e=>L(e,0),e.useTable=(e,s)=>G(u,S(s),{},[e]),e.useTableIds=z,e.useTableIdsListener=(e,s,t,o)=>E(d,S(o),e,s,[],t),e.useTableListener=(e,s,t,o,l)=>E(u,S(l),s,t,[e],o),e.useTables=e=>G(r,S(e),{}),e.useTablesListener=(e,s,t,o)=>E(r,S(o),e,s,[],t),e.useUndoInformation=e=>{const s=q(e),[t,l]=re(s);return[(r=t,!(0==(e=>e.length)(r))),ue(s),l,k(l,(e=>s?.getCheckpoint(e)))??o];var r},e.useValue=W,e.useValueIds=O,e.useValueIdsListener=(e,s,t,o)=>E(R,S(o),e,s,[],t),e.useValueListener=(e,s,t,o,l)=>E(C,S(l),s,t,[e],o),e.useValues=e=>G(w,S(e),{}),e.useValuesListener=(e,s,t,o)=>E(w,S(o),e,s,[],t)},"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReact={},e.React);
1
+ var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,o="",l=t(o),r="Ids",d="Table",u="Tables",n=d+r,i="Row",a=i+r,I="SortedRowIds",c="Cell",w=c+r,R="Value",C="Values",b=R+r,p=(e,s)=>e.map(s),k=e=>null==e,g=(e,s,t)=>k(e)?t?.():s(e),m=e=>t(e)==l,h=()=>{},{createContext:V,useContext:L}=s,y=V([]),S=(e,s)=>{const t=L(y);return k(e)?t[s]:m(e)?((e,s)=>g(e,(e=>e[s])))(t[s+1],e):e},T=(e,s)=>{const t=S(e,s);return k(e)||m(e)?t:e},f=e=>T(e,0),v=e=>T(e,2),P=e=>T(e,4),q=e=>T(e,6),x=e=>T(e,8),B=e=>T(e,10),{useCallback:M,useEffect:D,useMemo:A,useRef:F,useState:G}=s,E=(e,s,t=[])=>{const o=A((()=>s(e)),[e,...t]);return D((()=>()=>o.destroy()),[o]),o},Q=(e,s,t,o=[],l)=>{const[,r]=G(),d=M((()=>s?.["get"+e]?.(...o)??t),[s,...o]),[u]=G(d),n=F(u);return A((()=>n.current=d()),[d]),U(e,s,((...e)=>{n.current=k(l)?d():e[l],r([])}),[],o),n.current},U=(e,s,t,o=[],l=[],...r)=>D((()=>{const o=s?.["add"+e+"Listener"]?.(...l,t,...r);return()=>s?.delListener(o)}),[s,...l,...o,...r]),j=(e,s,t,o=[],l=h,r=[],...d)=>{const u=f(e);return M((e=>g(u,(o=>g(t(e,o),(e=>l(o["set"+s](...d,e),e)))))),[u,s,...o,...r,...d])},z=(e,s,t=h,o=[],...l)=>{const r=f(e);return M((()=>t(r?.["del"+s](...l))),[r,s,...o,...l])},H=(e,s,t)=>{const o=B(e);return M((()=>o?.[s](t)),[o,s,t])},J=e=>Q(n,f(e),[],[]),K=(e,s)=>Q(a,f(s),[],[e]),N=(e,s,t,o=0,l,r)=>Q(I,f(r),[],[e,s,t,o,l],6),O=(e,s,t)=>Q(w,f(t),[],[e,s]),W=(e,s,t,o)=>Q(c,f(o),void 0,[e,s,t],4),X=e=>Q(b,f(e),[],[]),Y=(e,s)=>Q(R,f(s),void 0,[e]),Z=(e,s)=>Q("Metric",v(s),void 0,[e]),$=(e,s)=>Q("SliceIds",P(s),[],[e]),_=(e,s,t)=>Q("SliceRowIds",P(t),[],[e,s]),ee=(e,s,t)=>Q("RemoteRowId",q(t),void 0,[e,s]),se=(e,s,t)=>Q("LocalRowIds",q(t),[],[e,s]),te=(e,s,t)=>Q("LinkedRowIds",q(t),[],[e,s]),oe=(e,s)=>Q("ResultRowIds",x(s),[],[e]),le=(e,s,t,o=0,l,r)=>Q("ResultSortedRowIds",x(r),[],[e,s,t,o,l],6),re=(e,s,t)=>Q("ResultCellIds",x(t),[],[e,s]),de=(e,s,t,o)=>Q("ResultCell",x(o),void 0,[e,s,t]),ue=e=>Q("CheckpointIds",B(e),[[],void 0,[]]),ne=(e,s)=>Q("Checkpoint",B(s),void 0,[e]),ie=e=>H(e,"goBackward"),ae=e=>H(e,"goForward"),{createElement:Ie,useMemo:ce}=s,we=({tableId:e,store:s,rowComponent:t=he,getRowComponentProps:o,separator:l,debugIds:r},d)=>ge(p(d,(l=>Ie(t,{...ke(o,l),key:l,tableId:e,rowId:l,store:s,debugIds:r}))),l,r,e),Re=({queryId:e,queries:s,resultRowComponent:t=Te,getResultRowComponentProps:o,separator:l,debugIds:r},d)=>ge(p(d,(l=>Ie(t,{...ke(o,l),key:l,queryId:e,rowId:l,queries:s,debugIds:r}))),l,r,e),Ce=e=>{const s=q(e);return[s,s?.getStore()]},be=({relationshipId:e,relationships:s,rowComponent:t=he,getRowComponentProps:o,separator:l,debugIds:r},d,u)=>{const[n,i]=Ce(s),a=n?.getLocalTableId(e),I=d(e,u,n);return ge(p(I,(e=>Ie(t,{...ke(o,e),key:e,tableId:a,rowId:e,store:i,debugIds:r}))),l,r,u)},pe=e=>({checkpoints:s,checkpointComponent:t=fe,getCheckpointComponentProps:o,separator:l,debugIds:r})=>{const d=B(s);return ge(p(e(ue(d)),(e=>Ie(t,{...ke(o,e),key:e,checkpoints:d,checkpointId:e,debugIds:r}))),l)},ke=(e,s)=>k(e)?{}:e(s),ge=(e,s,t,o)=>{const l=k(s)||!Array.isArray(e)?e:p(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",l,"}"]:l},me=({tableId:e,rowId:s,cellId:t,store:l,debugIds:r})=>ge(o+(W(e,s,t,l)??o),void 0,r,t),he=({tableId:e,rowId:s,store:t,cellComponent:o=me,getCellComponentProps:l,separator:r,debugIds:d})=>ge(p(O(e,s,t),(r=>Ie(o,{...ke(l,r),key:r,tableId:e,rowId:s,cellId:r,store:t,debugIds:d}))),r,d,s),Ve=e=>we(e,K(e.tableId,e.store)),Le=({valueId:e,store:s,debugIds:t})=>ge(o+(Y(e,s)??o),void 0,t,e),ye=({indexId:e,sliceId:s,indexes:t,rowComponent:o=he,getRowComponentProps:l,separator:r,debugIds:d})=>{const u=P(t),n=u?.getStore(),i=u?.getTableId(e),a=_(e,s,u);return ge(p(a,(e=>Ie(o,{...ke(l,e),key:e,tableId:i,rowId:e,store:n,debugIds:d}))),r,d,s)},Se=({queryId:e,rowId:s,cellId:t,queries:l,debugIds:r})=>ge(o+(de(e,s,t,l)??o),void 0,r,t),Te=({queryId:e,rowId:s,queries:t,resultCellComponent:o=Se,getResultCellComponentProps:l,separator:r,debugIds:d})=>ge(p(re(e,s,t),(r=>Ie(o,{...ke(l,r),key:r,queryId:e,rowId:s,cellId:r,queries:t,debugIds:d}))),r,d,s),fe=({checkpoints:e,checkpointId:s,debugIds:t})=>ge(ne(s,e)??o,void 0,t,s),ve=pe((e=>e[0])),Pe=pe((e=>k(e[1])?[]:[e[1]])),qe=pe((e=>e[2]));e.BackwardCheckpointsView=ve,e.CellView=me,e.CheckpointView=fe,e.CurrentCheckpointView=Pe,e.ForwardCheckpointsView=qe,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=ye,getSliceComponentProps:o,separator:l,debugIds:r})=>ge(p($(e,s),(l=>Ie(t,{...ke(o,l),key:l,indexId:e,sliceId:l,indexes:s,debugIds:r}))),l,r,e),e.LinkedRowsView=e=>be(e,te,e.firstRowId),e.LocalRowsView=e=>be(e,se,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>ge(Z(e,s)??o,void 0,t,e),e.Provider=({store:e,storesById:t,metrics:o,metricsById:l,indexes:r,indexesById:d,relationships:u,relationshipsById:n,queries:i,queriesById:a,checkpoints:I,checkpointsById:c,children:w})=>{const R=s.useContext(y);return Ie(y.Provider,{value:ce((()=>[e??R[0],{...R[1],...t},o??R[2],{...R[3],...l},r??R[4],{...R[5],...d},u??R[6],{...R[7],...n},i??R[8],{...R[9],...a},I??R[10],{...R[11],...c}]),[e,t,o,l,r,d,u,n,i,a,I,c,R])},w)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=he,getRowComponentProps:l,debugIds:r})=>{const[d,u]=Ce(t),n=d?.getRemoteTableId(e),i=ee(e,s,d);return ge(k(n)||k(i)?null:Ie(o,{...ke(l,i),key:i,tableId:n,rowId:i,store:u,debugIds:r}),void 0,r,s)},e.ResultCellView=Se,e.ResultRowView=Te,e.ResultSortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>Re(l,le(l.queryId,e,s,t,o,l.queries)),e.ResultTableView=e=>Re(e,oe(e.queryId,e.queries)),e.RowView=he,e.SliceView=ye,e.SortedTableView=({cellId:e,descending:s,offset:t,limit:o,...l})=>we(l,N(l.tableId,e,s,t,o,l.store)),e.TableView=Ve,e.TablesView=({store:e,tableComponent:s=Ve,getTableComponentProps:t,separator:o,debugIds:l})=>ge(p(J(e),(o=>Ie(s,{...ke(t,o),key:o,tableId:o,store:e,debugIds:l}))),o),e.ValueView=Le,e.ValuesView=({store:e,valueComponent:s=Le,getValueComponentProps:t,separator:o,debugIds:l})=>ge(p(X(e),(o=>Ie(s,{...ke(t,o),key:o,valueId:o,store:e,debugIds:l}))),o),e.tableView=we,e.useAddRowCallback=(e,s,t=[],o,l=h,r=[])=>{const d=f(o);return M((t=>g(d,(o=>g(s(t,o),(s=>l(o.addRow(e,s),o,s)))))),[d,e,...t,...r])},e.useCell=W,e.useCellIds=O,e.useCellIdsListener=(e,s,t,o,l,r)=>U(w,f(r),t,o,[e,s],l),e.useCellListener=(e,s,t,o,l,r,d)=>U(c,f(d),o,l,[e,s,t],r),e.useCheckpoint=ne,e.useCheckpointIds=ue,e.useCheckpointIdsListener=(e,s,t)=>U("CheckpointIds",B(t),e,s),e.useCheckpointListener=(e,s,t,o)=>U("Checkpoint",B(o),s,t,[e]),e.useCheckpoints=e=>S(e,10),e.useCreateCheckpoints=(e,s,t)=>E(e,s,t),e.useCreateIndexes=(e,s,t)=>E(e,s,t),e.useCreateMetrics=(e,s,t)=>E(e,s,t),e.useCreatePersister=(e,s,t=[],o,l=[])=>{const[,r]=G(),d=A((()=>s(e)),[e,...t]);return D((()=>((async()=>{await(o?.(d)),r(1)})(),()=>{d.destroy()})),[d,...l]),d},e.useCreateQueries=(e,s,t)=>E(e,s,t),e.useCreateRelationships=(e,s,t)=>E(e,s,t),e.useCreateStore=(e,s=[])=>A(e,s),e.useDelCellCallback=(e,s,t,o,l,r,d)=>z(l,c,r,d,e,s,t,o),e.useDelRowCallback=(e,s,t,o,l)=>z(t,i,o,l,e,s),e.useDelTableCallback=(e,s,t,o)=>z(s,d,t,o,e),e.useDelTablesCallback=(e,s,t)=>z(e,u,s,t),e.useDelValueCallback=(e,s,t,o)=>z(s,R,t,o,e),e.useDelValuesCallback=(e,s,t)=>z(e,C,s,t),e.useGoBackwardCallback=ie,e.useGoForwardCallback=ae,e.useGoToCallback=(e,s=[],t,o=h,l=[])=>{const r=B(t);return M((s=>g(r,(t=>g(e(s),(e=>o(t.goTo(e),e)))))),[r,...s,...l])},e.useIndexes=e=>S(e,4),e.useLinkedRowIds=te,e.useLinkedRowIdsListener=(e,s,t,o,l)=>U("LinkedRowIds",q(l),t,o,[e,s]),e.useLocalRowIds=se,e.useLocalRowIdsListener=(e,s,t,o,l)=>U("LocalRowIds",q(l),t,o,[e,s]),e.useMetric=Z,e.useMetricListener=(e,s,t,o)=>U("Metric",v(o),s,t,[e]),e.useMetrics=e=>S(e,2),e.useQueries=e=>S(e,8),e.useRedoInformation=e=>{const s=B(e),[,,[t]]=ue(s);return[!k(t),ae(s),t,g(t,(e=>s?.getCheckpoint(e)))??o]},e.useRelationships=e=>S(e,6),e.useRemoteRowId=ee,e.useRemoteRowIdListener=(e,s,t,o,l)=>U("RemoteRowId",q(l),t,o,[e,s]),e.useResultCell=de,e.useResultCellIds=re,e.useResultCellIdsListener=(e,s,t,o,l)=>U("ResultCellIds",x(l),t,o,[e,s]),e.useResultCellListener=(e,s,t,o,l,r)=>U("ResultCell",x(r),o,l,[e,s,t]),e.useResultRow=(e,s,t)=>Q("ResultRow",x(t),{},[e,s]),e.useResultRowIds=oe,e.useResultRowIdsListener=(e,s,t,o)=>U("ResultRowIds",x(o),s,t,[e]),e.useResultRowListener=(e,s,t,o,l)=>U("ResultRow",x(l),t,o,[e,s]),e.useResultSortedRowIds=le,e.useResultSortedRowIdsListener=(e,s,t,o,l,r,d,u)=>U("ResultSortedRowIds",x(u),r,d,[e,s,t,o,l]),e.useResultTable=(e,s)=>Q("ResultTable",x(s),{},[e]),e.useResultTableListener=(e,s,t,o)=>U("ResultTable",x(o),s,t,[e]),e.useRow=(e,s,t)=>Q(i,f(t),{},[e,s]),e.useRowIds=K,e.useRowIdsListener=(e,s,t,o,l)=>U(a,f(l),s,t,[e],o),e.useRowListener=(e,s,t,o,l,r)=>U(i,f(r),t,o,[e,s],l),e.useSetCellCallback=(e,s,t,o,l,r,d,u)=>j(r,c,o,l,d,u,e,s,t),e.useSetCheckpointCallback=(e=h,s=[],t,o=h,l=[])=>{const r=B(t);return M((s=>g(r,(t=>{const l=e(s);o(t.addCheckpoint(l),t,l)}))),[r,...s,...l])},e.useSetPartialRowCallback=(e,s,t,o,l,r,d)=>j(l,"PartialRow",t,o,r,d,e,s),e.useSetPartialValuesCallback=(e,s,t,o,l)=>j(t,"PartialValues",e,s,o,l),e.useSetRowCallback=(e,s,t,o,l,r,d)=>j(l,i,t,o,r,d,e,s),e.useSetTableCallback=(e,s,t,o,l,r)=>j(o,d,s,t,l,r,e),e.useSetTablesCallback=(e,s,t,o,l)=>j(t,u,e,s,o,l),e.useSetValueCallback=(e,s,t,o,l,r)=>j(o,R,s,t,l,r,e),e.useSetValuesCallback=(e,s,t,o,l)=>j(t,C,e,s,o,l),e.useSliceIds=$,e.useSliceIdsListener=(e,s,t,o)=>U("SliceIds",P(o),s,t,[e]),e.useSliceRowIds=_,e.useSliceRowIdsListener=(e,s,t,o,l)=>U("SliceRowIds",P(l),t,o,[e,s]),e.useSortedRowIds=N,e.useSortedRowIdsListener=(e,s,t,o,l,r,d,u,n)=>U(I,f(n),r,d,[e,s,t,o,l],u),e.useStore=e=>S(e,0),e.useTable=(e,s)=>Q(d,f(s),{},[e]),e.useTableIds=J,e.useTableIdsListener=(e,s,t,o)=>U(n,f(o),e,s,[],t),e.useTableListener=(e,s,t,o,l)=>U(d,f(l),s,t,[e],o),e.useTables=e=>Q(u,f(e),{}),e.useTablesListener=(e,s,t,o)=>U(u,f(o),e,s,[],t),e.useUndoInformation=e=>{const s=B(e),[t,l]=ue(s);return[(r=t,!(0==(e=>e.length)(r))),ie(s),l,g(l,(e=>s?.getCheckpoint(e)))??o];var r},e.useValue=Y,e.useValueIds=X,e.useValueIdsListener=(e,s,t,o)=>U(b,f(o),e,s,[],t),e.useValueListener=(e,s,t,o,l)=>U(R,f(l),s,t,[e],o),e.useValues=e=>Q(C,f(e),{}),e.useValuesListener=(e,s,t,o)=>U(C,f(o),e,s,[],t)},"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReact={},e.React);
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const n=e=>typeof e,l="",s=n(l),o=n(!0),r=n(0),a=n(n),i="default",d="utf8",c="Listener",u="Result",v="add",h="Table",f="RowIds",g="CellIds",p="Cell",y=e=>l+e,L=(e,t)=>e.includes(t),w=(e,t)=>e.every(t),S=(e,t)=>C(e)===C(t)&&w(e,((e,n)=>t[n]===e)),I=(e,t)=>w(e,((n,l)=>0==l||t(e[l-1],n)<=0)),R=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>x(e,((e,t)=>e+t),0),C=e=>e.length,V=e=>0==C(e),x=(e,t,n)=>e.reduce(t,n),E=(e,t,n)=>e.slice(t,n),P=(e,...t)=>e.push(...t),k=e=>e.pop(),J=e=>e.shift(),M=e=>JSON.stringify(e,((e,t)=>j(t,Map)?x([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),A=JSON.parse,D=Math.max,O=Math.min,F=isFinite,j=(e,t)=>e instanceof t,Q=e=>null==e,z=(e,t,n)=>Q(e)?null==n?void 0:n():t(e),N=e=>e==s||e==o,W=e=>n(e)==a,B=e=>Array.isArray(e),q=()=>{},H=e=>e.size,$=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},G=e=>Q(e)||0==H(e),K=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},U=e=>e.clear(),X=(e,t)=>null==e?void 0:e.forEach(t),Y=(e,t)=>null==e?void 0:e.delete(t),Z=e=>new Map(e),_=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ee=(e,t)=>null==e?void 0:e.get(t),te=(e,t)=>X(e,((e,n)=>t(n,e))),ne=(e,t,n)=>Q(n)?(Y(e,t),e):null==e?void 0:e.set(t,n),le=(e,t,n)=>($(e,t)||ne(e,t,n()),ee(e,t)),se=(e,t,n)=>{const l={},s=null!=t?t:e=>e;return X(e,((e,t)=>z(s(e),(e=>(null==n?void 0:n(e))?0:l[t]=e)))),l},oe=(e,t)=>{const n=Z(),l=null!=t?t:e=>e;return X(e,((e,t)=>n.set(t,l(e)))),n},re=e=>oe(e,oe),ae=(e,t,n,l,s=0)=>z((n?le:ee)(e,t[s],s>C(t)-2?n:Z),(o=>{if(s>C(t)-2)return(null==l?void 0:l(o))&&ne(e,t[s]),o;const r=ae(o,t,n,l,s+1);return G(o)&&ne(e,t[s]),r})),ie=e=>{const t=n(e);return N(t)||t==r&&F(e)?t:void 0},de=(e,t,n,l,s)=>Q(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),ce=(e,t,n)=>Q(n)?e.delValue(t):e.setValue(t,n),ue=e=>new Set(B(e)||Q(e)?e:[e]),ve=(e,t)=>null==e?void 0:e.add(t),he=(e,t,n)=>{const l=e.hasRow,s=Z(),o=Z(),r=Z(),a=Z(),i=Z(),d=(t,n,...l)=>{const s=le(i,t,ue);return T(l,(t=>ve(s,t)&&n&&e.callListener(t))),l},c=(t,...n)=>z(ee(i,t),(l=>{T(V(n)?K(l):n,(t=>{e.delListener(t),Y(l,t)})),G(l)&&ne(i,t)})),u=(e,n)=>{ne(s,e,n),$(o,e)||(ne(o,e,t()),ne(r,e,Z()),ne(a,e,Z()))},v=e=>{ne(s,e),ne(o,e),ne(r,e),ne(a,e),c(e)};return[()=>e,()=>_(s),e=>te(o,e),e=>$(o,e),e=>ee(s,e),e=>ee(o,e),(e,t)=>ne(o,e,t),u,(t,s,o,i,v)=>{u(t,s);const h=Z(),f=Z(),g=ee(r,t),p=ee(a,t),y=t=>{const o=n=>e.getCell(s,t,n),r=ee(g,t),a=l(s,t)?n(i(o,t)):void 0;if(r===a||B(r)&&B(a)&&S(r,a)||ne(h,t,[r,a]),!Q(v)){const e=ee(p,t),n=l(s,t)?v(o,t):void 0;e!=n&&ne(f,t,n)}},L=e=>{o((()=>{X(h,(([,e],t)=>ne(g,t,e))),X(f,((e,t)=>ne(p,t,e)))}),h,f,g,p,e),U(h),U(f)};te(g,y),e.hasTable(s)&&T(e.getRowIds(s),(e=>{$(g,e)||y(e)})),L(!0),c(t),d(t,0,e.addRowListener(s,null,((e,t,n)=>y(n))),e.addTableListener(s,(()=>L())))},v,()=>te(i,v),d,c]},fe=(e,t)=>n(e)==s?t=>t(e):null!=e?e:()=>null!=t?t:l,ge=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},pe=/^\d+$/,ye=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=J(e))?n:l+t++},t=>{pe.test(t)&&C(e)<1e3&&P(e,t)}]},Le=e=>{let t;const[n,s]=ye(),o=Z();return[(s,r,a,i=[],d=(()=>[]))=>{null!=t||(t=e());const c=n();return ne(o,c,[s,r,a,i,d]),ve(ae(r,null!=a?a:[l],ue),c),c},(e,n,...s)=>T(((e,t=[l])=>{const n=[],s=(e,l)=>l==C(t)?P(n,e):null===t[l]?X(e,(e=>s(e,l+1))):T([t[l],null],(t=>s(ee(e,t),l+1)));return s(e,0),n})(e,n),(e=>X(e,(e=>ee(o,e)[0](t,...null!=n?n:[],...s))))),e=>z(ee(o,e),(([,t,n])=>(ae(t,null!=n?n:[l],void 0,(t=>(Y(t,e),G(t)?1:0))),ne(o,e),s(e),n))),e=>z(ee(o,e),(([e,,n=[],l,s])=>{const o=(...r)=>{var a,i;const d=C(r);d==C(n)?e(t,...r,...s(r)):Q(n[d])?T(null!=(i=null==(a=l[d])?void 0:a.call(l,...r))?i:[],(e=>o(...r,e))):o(...r,n[d])};o()}))]},we=Object,Se=we.keys,Ie=we.isFrozen,Re=we.freeze,Te=e=>j(e,we)&&e.constructor==we,be=(e,t)=>!Q(((e,t)=>z(e,(e=>e[t])))(e,t)),me=(e,t)=>delete e[t],Ce=(e,t)=>b(we.entries(e),(([e,n])=>t(n,e))),Ve=e=>Te(e)&&V(Se(e)),xe=ge((e=>{let t,n,s,o=100,r=Z(),a=Z(),i=1;const d=Z(),c=Z(),[u,v,h]=Le((()=>W)),f=Z(),g=Z(),p=[],y=[],w=(t,n)=>{i=0,e.transaction((()=>{const[l,s]=ee(f,n);X(l,((n,l)=>X(n,((n,s)=>X(n,((n,o)=>de(e,l,s,o,n[t]))))))),X(s,((n,l)=>ce(e,l,n[t])))})),i=1},S=e=>{ne(f,e),ne(g,e),v(c,[e])},I=(e,t)=>T(((e,t)=>e.splice(0,t))(e,null!=t?t:C(e)),S),R=()=>I(p,C(p)-o),b=()=>z(t,(()=>{P(p,t),R(),I(y),t=void 0,s=1})),m=()=>{t=k(p),s=1},x=e.addCellListener(null,null,null,((e,t,n,l,s,o)=>{if(i){b();const e=le(r,t,Z),a=le(e,n,Z),i=le(a,l,(()=>[o,void 0]));i[1]=s,i[0]===s&&G(ne(a,l))&&G(ne(e,n))&&G(ne(r,t))&&m(),O()}})),E=e.addValueListener(null,((e,t,n,l)=>{if(i){b();const e=le(a,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&G(ne(a,t))&&m(),O()}})),M=(e="")=>(Q(t)&&(t=l+n++,ne(f,t,[r,a]),j(t,e),r=Z(),a=Z(),s=1),t),A=()=>{V(p)||(((e,...t)=>{e.unshift(...t)})(y,M()),w(0,t),t=k(p),s=1)},D=()=>{V(y)||(P(p,t),t=J(y),w(1,t),s=1)},O=()=>{s&&(v(d),s=0)},F=e=>{const t=M(e);return O(),t},j=(e,t)=>(N(e)&&ee(g,e)!==t&&(ne(g,e,t),v(c,[e])),W),N=e=>$(f,e),W={setSize:e=>(o=e,R(),W),addCheckpoint:F,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...p],t,[...y]],forEachCheckpoint:e=>te(g,e),hasCheckpoint:N,getCheckpoint:e=>ee(g,e),goBackward:()=>(A(),O(),W),goForward:()=>(D(),O(),W),goTo:e=>{const n=L(p,e)?A:L(y,e)?D:null;for(;!Q(n)&&e!=t;)n();return O(),W},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),W),clear:()=>(I(p),I(y),Q(t)||S(t),t=void 0,n=0,F(),W),destroy:()=>{e.delListener(x),e.delListener(E)},getListenerStats:()=>({})};return Re(W.clear())})),Ee=(e,t)=>e<t?-1:1,Pe=ge((e=>{const t=Z(),n=Z(),[s,o,r,a,i,d,c,,u,v,h]=he(e,Z,(e=>Q(e)?l:B(e)?b(e,y):y(e))),[f,g,p]=Le((()=>w)),L=(t,n,l)=>{const s=i(t);X(l,((t,l)=>n(l,(n=>X(t,(t=>n(t,(n=>e.forEachCell(s,t,n)))))))))},w={setIndexDefinition:(e,l,s,o,r,a=Ee)=>{const i=Q(r)?void 0:([e],[t])=>r(e,t);return u(e,l,((l,s,r,u,v,h)=>{let f=0;const p=ue(),y=ue(),L=d(e);if(X(s,(([e,t],n)=>{const l=ue(e),s=ue(t);X(l,(e=>Y(s,e)?Y(l,e):0)),X(l,(e=>{ve(p,e),z(ee(L,e),(t=>{Y(t,n),G(t)&&(ne(L,e),f=1)}))})),X(s,(e=>{ve(p,e),$(L,e)||(ne(L,e,ue()),f=1),ve(ee(L,e),n),Q(o)||ve(y,e)}))})),l(),G(v)||(h?te(L,(e=>ve(y,e))):te(r,(e=>z(ee(u,e),(e=>ve(y,e))))),X(y,(e=>{const t=(t,n)=>a(ee(v,t),ee(v,n),e),n=[...ee(L,e)];I(n,t)||(ne(L,e,ue(R(n,t))),ve(p,e))}))),(f||h)&&!Q(i)){const t=[...L];I(t,i)||(c(e,Z(R(t,i))),f=1)}f&&g(t,[e]),X(p,(t=>g(n,[e,t])))}),fe(s),z(o,fe)),w},delIndexDefinition:e=>(v(e),w),getStore:s,getIndexIds:o,forEachIndex:e=>r(((t,n)=>e(t,(e=>L(t,e,n))))),forEachSlice:(e,t)=>L(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>$(d(e),t),getTableId:i,getSliceIds:e=>_(d(e)),getSliceRowIds:(e,t)=>K(ee(d(e),t)),addSliceIdsListener:(e,n)=>f(n,t,[e]),addSliceRowIdsListener:(e,t,l)=>f(l,n,[e,t]),delListener:e=>(p(e),w),destroy:h,getListenerStats:()=>({})};return Re(w)})),ke=Z([["avg",[(e,t)=>m(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:D(t,e)]],["min",[e=>O(...e),(e,t)=>O(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:O(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Je=(e,t,n,l,s,o=!1)=>{if(G(n))return;const[r,a,i,d]=s;return o||(o=Q(e)),X(l,(([n,l])=>{o||(e=Q(n)?null==a?void 0:a(e,l,t++):Q(l)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,l,n,t),o||(o=Q(e)))})),o?r(K(n),H(n)):e},Me=ge((e=>{const t=Z(),[n,s,o,r,a,i,d,,c,u,v]=he(e,q,(e=>isNaN(e)||Q(e)||!0===e||!1===e||e===l?void 0:1*e)),[h,f,g]=Le((()=>p)),p={setMetricDefinition:(e,n,l,s,o,r,a)=>{var u;const v=W(l)?[l,o,r,a]:null!=(u=ee(ke,l))?u:ee(ke,"sum");return c(e,n,((n,l,s,o,r,a)=>{const c=i(e),u=H(o);a||(a=Q(c)),n();let h=Je(c,u,o,l,v,a);F(h)||(h=void 0),h!=c&&(d(e,h),f(t,[e],h,c))}),fe(s,1)),p},delMetricDefinition:e=>(u(e),p),getStore:n,getMetricIds:s,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,n)=>h(n,t,[e]),delListener:e=>(g(e),p),destroy:v,getListenerStats:()=>({})};return Re(p)}));var Ae=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const De=(e,t,n,s,o)=>{let r,a,i=0;const d={load:(n,s)=>Ae(void 0,null,(function*(){if(2!=i){i=1;const o=yield t();Q(o)||o==l?e.transaction((()=>e.setTables(n).setValues(s))):e.setJson(o),i=0}return d})),startAutoLoad:(e,t)=>Ae(void 0,null,(function*(){return d.stopAutoLoad(),yield d.load(e,t),s(d.load),d})),stopAutoLoad:()=>(o(),d),save:()=>Ae(void 0,null,(function*(){return 1!=i&&(i=2,yield n(e.getJson()),i=0),d})),startAutoSave:()=>Ae(void 0,null,(function*(){return yield d.stopAutoSave().save(),r=e.addTablesListener(d.save),a=e.addValuesListener(d.save),d})),stopAutoSave:()=>(z(r,e.delListener),z(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Re(d)};var Oe=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const Fe="storage",je=globalThis.window,Qe=(e,t,n)=>{let l;return De(e,(()=>Oe(void 0,null,(function*(){return n.getItem(t)}))),(e=>Oe(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{l=l=>{l.storageArea===n&&l.key===t&&e()},je.addEventListener(Fe,l)}),(()=>{je.removeEventListener(Fe,l),l=void 0}))};var ze=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())})),Ne=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const We=e=>e.headers.get("ETag");var Be=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;const $e=ge((e=>{const t=e.createStore,[n,s,o,r,a,,,i,,d,y,L,S]=he(e,(()=>!0),q),I=t(),R=t(),b=Z(),m=(e,t,...n)=>T(n,(n=>ve(le(le(b,t,Z),e,ue),n))),x=e=>{z(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),U(e)})),T([R,I],(t=>t.delTable(e)))},k=(e,t,n)=>m(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),J={setQueryDefinition:(t,n,s)=>{i(t,n),x(t);const o=[],r=[[null,[n,null,null,[],Z()]]],a=[],d=[],c=[];s({select:(e,t)=>{const n=W(e)?[C(o)+l,e]:[Q(t)?e:t,n=>n(e,t)];return P(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const l=Q(n)||W(t)?null:t,s=Q(l)?t:n,o=[e,[e,l,W(s)?s:e=>e(s),[],Z()]];return P(r,o),{as:e=>o[0]=e}},where:(e,t,n)=>P(a,W(e)?e:Q(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,s)=>{var o;const r=[e,[e,W(t)?[t,n,l,s]:null!=(o=ee(ke,t))?o:[(e,t)=>t]]];return P(d,r),{as:e=>r[0]=e}},having:(e,t)=>P(c,W(e)?e:n=>n(e)===t)});const u=Z(o);if(G(u))return J;const v=Z(r);te(v,((e,[,t])=>z(ee(v,t),(({3:t})=>Q(e)?0:P(t,e)))));const h=Z(d);let f=I;if(G(h)&&V(c))f=R;else{k(t,f,R);const e=Z();te(h,((t,[n,l])=>ve(le(e,n,ue),[t,l])));const n=ue();te(u,(t=>$(e,t)?0:ve(n,t)));const l=Z(),s=(n,l,s,o)=>z(n,(([r,a,i,d])=>{te(l,((t,[n])=>{const l=le(r,t,Z),a=ee(l,s),i=o?void 0:n;if(a!==i){const n=ue([[a,i]]),o=H(l);ne(l,s,i),X(ee(e,t),(([e,t])=>{const s=Je(d[e],o,l,n,t);d[e]=Q(ie(s))?null:s}))}})),G(a)||!w(c,(e=>e((e=>d[e]))))?R.delRow(t,i):Q(i)?n[2]=R.addRow(t,d):R.setRow(t,i,d)}));m(f,t,f.addRowListener(t,null,((o,r,a,i)=>{const d=[],c=[],u=Z(),v=f.hasRow(t,a);let h=!v;X(n,(e=>{const[n,l,s]=i(t,a,e);P(d,l),P(c,s),h||(h=n)})),te(e,(e=>{const[n,,l]=i(t,a,e);(h||n)&&ne(u,e,[l])})),h&&s(ae(l,d,void 0,(([,e])=>(Y(e,a),G(e)))),u,a,1),v&&s(ae(l,c,(()=>{const e={};return X(n,(n=>e[n]=f.getCell(t,a,n))),[Z(),ue(),void 0,e]}),(([,e])=>{ve(e,a)})),u,a)})))}k(t,e,f);const g=(l,s,o,r)=>{const i=t=>e.getCell(s,o,t);T(r,(n=>{var s;const[o,,r,a,d]=ee(v,n),c=null==r?void 0:r(i,l),[u,h]=null!=(s=ee(d,l))?s:[];c!=u&&(Q(h)||S(t,h),ne(d,l,Q(c)?null:[c,...L(t,1,e.addRowListener(o,c,(()=>g(l,o,c,a))))]))})),(l=>{const s=(t,s)=>{var o,r,a;return e.getCell(...Q(s)?[n,l,t]:t===n?[n,l,s]:[null==(o=ee(v,t))?void 0:o[0],null==(a=ee(null==(r=ee(v,t))?void 0:r[4],l))?void 0:a[0],s])};f.transaction((()=>w(a,(e=>e(s)))?te(u,((e,n)=>de(f,t,l,e,n(s,l)))):f.delRow(t,l)))})(l)},{3:p}=ee(v,null);return f.transaction((()=>L(t,1,e.addRowListener(n,null,((l,s,o)=>{e.hasRow(n,o)?g(o,n,o,p):(f.delRow(t,o),X(v,(({4:e})=>z(ee(e,o),(([,n])=>{S(t,n),ne(e,o)})))))}))))),J},delQueryDefinition:e=>(x(e),d(e),J),getStore:n,getQueryIds:s,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(R.delListener(e),J),destroy:y,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)qe.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&Be)for(var l of Be(e))t.indexOf(l)<0&&He.call(e,l)&&(n[l]=e[l]);return n})(R.getListenerStats(),["tables","tableIds","transaction"])};return Ce({[h]:[1,1],[f]:[0,1],SortedRowIds:[0,5],Row:[1,2],[g]:[0,2],[p]:[1,3]},(([e,t],n)=>{T(e?["get","has","forEach"]:["get"],(e=>J[e+u+n]=(...t)=>R[e+n](...t))),J[v+u+n+c]=(...e)=>R[v+n+c](...E(e,0,t),((n,...l)=>e[t](J,...l)))})),Re(J)})),Ge=ge((e=>{const t=Z(),n=Z(),s=Z(),o=Z(),[r,a,i,d,c,u,,,v,h,f]=he(e,(()=>[Z(),Z(),Z(),Z()]),(e=>Q(e)?void 0:e+l)),[g,p,y]=Le((()=>I)),L=(e,t,n)=>z(u(e),(([l,,s])=>{if(!$(s,t)){const o=ue();if(c(e)!=S(e))ve(o,t);else{let e=t;for(;!Q(e)&&!$(o,e);)ve(o,e),e=ee(l,e)}if(n)return o;ne(s,t,o)}return ee(s,t)})),w=(e,t)=>z(u(e),(([,,e])=>ne(e,t))),S=e=>ee(t,e),I={setRelationshipDefinition:(e,l,r,a)=>(ne(t,e,r),v(e,l,((t,l)=>{const r=ue(),a=ue(),i=ue(),[d,c]=u(e);X(l,(([t,n],l)=>{Q(t)||(ve(a,t),z(ee(c,t),(e=>{Y(e,l),G(e)&&ne(c,t)}))),Q(n)||(ve(a,n),$(c,n)||ne(c,n,ue()),ve(ee(c,n),l)),ve(r,l),ne(d,l,n),te(ee(o,e),(t=>{$(L(e,t),l)&&ve(i,t)}))})),t(),X(r,(t=>p(n,[e,t]))),X(a,(t=>p(s,[e,t]))),X(i,(t=>{w(e,t),p(o,[e,t])}))}),fe(a)),I),delRelationshipDefinition:e=>(ne(t,e),h(e),I),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(c(n),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:S,getRemoteRowId:(e,t)=>{var n;return ee(null==(n=u(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return K(ee(null==(n=u(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>Q(u(e))?[t]:K(L(e,t,!0)),addRemoteRowIdListener:(e,t,l)=>g(l,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),g(n,o,[e,t])),delListener:e=>(w(...y(e)),I),destroy:f,getListenerStats:()=>({})};return Re(I)})),Ke=e=>[e,e],Ue=()=>[Z(),Z()],Xe=(e,t,n,l=ne)=>{const s=(o=e=>!be(t,e),_(e).filter(o));var o;return T(Se(t),(l=>n(e,l,t[l]))),T(s,(t=>l(e,t))),e},Ye=(e,t,n)=>Q(e)||!Te(e)||Ve(e)||Ie(e)?(null==n||n(),!1):(Ce(e,((n,l)=>{t(n,l)||me(e,l)})),!Ve(e)),Ze=(e,t,n)=>ne(e,t,ee(e,t)==-n?void 0:n),_e=()=>{let e,t,n,l,s=0;const o=Z(),a=Z(),d=Z(),u=Z(),w=Z(),I=Z(),m=Z(),C=Z(),V=Z(),x=Z(),k=Z(),J=Z(),D=ue(),O=Z(),F=Z(),j=Z(),B=Ue(),q=Ue(),H=Ue(),K=Ue(),ae=Ue(),he=Ue(),fe=Ue(),ge=Ue(),pe=Ue(),we=Ue(),Se=Ue(),Ie=Ue(),Te=Ue(),xe=Ue(),[Pe,ke,Je,Me]=Le((()=>Kt)),Ae=e=>{if(!Ye(e,((e,t)=>L(["type",i],t))))return!1;const t=e.type;return!(!N(t)&&t!=r||(ie(e.default)!=t&&me(e,i),0))},De=(t,n)=>(!e||$(V,n)||yt(n))&&Ye(t,((e,t)=>Oe(n,t,e)),(()=>yt(n))),Oe=(e,t,n,l)=>Ye(l?n:ze(n,e,t),((l,s)=>z(Fe(e,t,s,l),(e=>(n[s]=e,!0)),(()=>!1))),(()=>yt(e,t))),Fe=(t,n,l,s)=>e?z(ee(ee(V,t),l),(e=>ie(s)!=e.type?yt(t,n,l,s,e.default):s),(()=>yt(t,n,l,s))):Q(ie(s))?yt(t,n,l,s):s,je=(e,t)=>Ye(t?e:Ne(e),((t,n)=>z(Qe(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>Lt())),Qe=(e,n)=>t?z(ee(k,e),(t=>ie(n)!=t.type?Lt(e,n,t.default):n),(()=>Lt(e,n))):Q(ie(n))?Lt(e,n):n,ze=(e,t,n)=>(z(ee(x,t),(([l,s])=>{X(l,((t,n)=>{be(e,n)||(e[n]=t)})),X(s,(l=>{be(e,l)||yt(t,n,l)}))})),e),Ne=e=>(t&&(X(J,((t,n)=>{be(e,n)||(e[n]=t)})),X(D,(t=>{be(e,t)||Lt(t)}))),e),We=e=>Xe(V,e,((e,t,n)=>{const l=Z(),s=ue();Xe(le(V,t,Z),n,((e,t,n)=>{ne(e,t,n),z(n.default,(e=>ne(l,t,e)),(()=>ve(s,t)))})),ne(x,t,[l,s])}),((e,t)=>{ne(V,t),ne(x,t)})),Be=e=>Xe(k,e,((e,t,n)=>{ne(k,t,n),z(n.default,(e=>ne(J,t,e)),(()=>ve(D,t)))}),((e,t)=>{ne(k,t),ne(J,t),Y(D,t)})),qe=e=>Ve(e)?Nt():Ot(e),He=e=>Xe(F,e,((e,t,n)=>$e(t,n)),((e,t)=>at(t))),$e=(e,t)=>Xe(le(F,e,(()=>(ut(e,1),Z()))),t,((t,n,l)=>Ge(e,t,n,l)),((t,n)=>it(e,t,n))),Ge=(e,t,n,l,s)=>Xe(le(t,n,(()=>(vt(e,n,1),Z()))),l,((t,l,s)=>et(e,n,t,l,s)),((l,o)=>dt(e,t,n,l,o,s))),et=(e,t,n,l,s)=>{$(n,l)||ht(e,t,l,1);const o=ee(n,l);s!==o&&(ft(e,t,l,o,s),ne(n,l,s))},tt=(e,t,n,l,s)=>z(ee(t,n),(t=>et(e,n,t,l,s)),(()=>Ge(e,t,n,ze({[l]:s},e,n)))),nt=e=>Ve(e)?Wt():Ft(e),lt=e=>Xe(j,e,((e,t,n)=>st(t,n)),((e,t)=>ct(t))),st=(e,t)=>{$(j,e)||gt(e,1);const n=ee(j,e);t!==n&&(pt(e,n,t),ne(j,e,t))},ot=e=>{const[t]=le(O,e,ye),n=t();return $(ee(F,e),n)?ot(e):n},rt=e=>{var t;return null!=(t=ee(F,e))?t:$e(e,{})},at=e=>$e(e,{}),it=(e,t,n)=>{const[,l]=le(O,e,ye);l(n),Ge(e,t,n,{},!0)},dt=(e,t,n,l,s,o)=>{var r;const a=ee(null==(r=ee(x,e))?void 0:r[0],s);if(!Q(a)&&!o)return et(e,n,l,s,a);const i=t=>{ft(e,n,t,ee(l,t)),ht(e,n,t,-1),ne(l,t)};Q(a)?i(s):te(l,i),G(l)&&(vt(e,n,-1),G(ne(t,n))&&(ut(e,-1),ne(F,e),ne(O,e)))},ct=e=>{const t=ee(J,e);if(!Q(t))return st(e,t);pt(e,ee(j,e)),gt(e,-1),ne(j,e)},ut=(e,t)=>Ze(o,e,t),vt=(e,t,n)=>Ze(le(a,e,Z),t,n),ht=(e,t,n,l)=>Ze(le(le(d,e,Z),t,Z),n,l),ft=(e,t,n,l,s)=>le(le(le(u,e,Z),t,Z),n,(()=>[l,0]))[1]=s,gt=(e,t)=>Ze(w,e,t),pt=(e,t,n)=>le(I,e,(()=>[t,0]))[1]=n,yt=(e,t,n,l,s)=>(P(le(le(le(m,e,Z),t,Z),n,(()=>[])),l),s),Lt=(e,t,n)=>(P(le(C,e,(()=>[])),t),n),wt=(e,t,n)=>z(ee(ee(ee(u,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Jt(e,t,n))])),St=e=>z(ee(I,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Dt(e))])),It=e=>G(m)||G(pe[e])?0:X(e?oe(m,re):m,((t,n)=>X(t,((t,l)=>X(t,((t,s)=>ke(pe[e],[n,l,s],t))))))),Rt=e=>G(C)||G(we[e])?0:X(e?oe(C):C,((t,n)=>ke(we[e],[n],t))),Tt=(e,t,n)=>{if(!G(t))return ke(e,n),1},bt=e=>{const t=G(ae[e]),n=G(fe[e])&&G(K[e])&&t&&G(q[e]),l=G(ge[e])&&G(he[e])&&G(H[e])&&G(B[e]);if(!n||!l){const s=e?[oe(o),re(a),oe(d,re),oe(u,re)]:[o,a,d,u];if(!n){X(s[2],((t,n)=>X(t,((t,l)=>Tt(fe[e],t,[n,l])))));const n=ue();X(s[1],((l,s)=>{Tt(K[e],l,[s])&&!t&&(ke(ae[e],[s,null]),ve(n,s))})),t||X(s[3],((t,l)=>{if(!$(n,l)){const n=ue();X(t,(e=>X(e,(([t,l],s)=>l!==t?ve(n,s):Y(e,s))))),X(n,(t=>ke(ae[e],[l,t])))}})),Tt(q[e],s[0])}if(!l){let t;X(s[3],((n,l)=>{let s;X(n,((n,o)=>{let r;X(n,(([n,a],i)=>{a!==n&&(ke(ge[e],[l,o,i],a,n,wt),t=s=r=1)})),r&&ke(he[e],[l,o],wt)})),s&&ke(H[e],[l],wt)})),t&&ke(B[e],void 0,wt)}}},mt=e=>{const t=G(Ie[e]),n=G(Te[e])&&G(Se[e]);if(!t||!n){const l=e?[oe(w),oe(I)]:[w,I];if(t||Tt(Ie[e],l[0]),!n){let t;X(l[1],(([n,l],s)=>{l!==n&&(ke(Te[e],[s],l,n,St),t=1)})),t&&ke(Se[e],void 0,St)}}},Ct=(e,...t)=>(Ht((()=>e(...b(t,y)))),Kt),Vt=()=>se(F,(e=>se(e,se))),xt=()=>_(F),Et=e=>_(ee(F,y(e))),Pt=(e,t,n,l=0,s)=>{return b(E(R((o=ee(F,y(e)),r=(e,n)=>[Q(t)?n:ee(e,y(t)),n],b([...null!=(a=null==o?void 0:o.entries())?a:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ee(e,t)*(n?-1:1))),l,Q(s)?s:l+s),(([,e])=>e));var o,r,a},kt=(e,t)=>_(ee(ee(F,y(e)),y(t))),Jt=(e,t,n)=>ee(ee(ee(F,y(e)),y(t)),y(n)),Mt=()=>se(j),At=()=>_(j),Dt=e=>ee(j,y(e)),Ot=e=>Ct((()=>(e=>Ye(e,De,yt))(e)?He(e):0)),Ft=e=>Ct((()=>je(e)?lt(e):0)),jt=e=>{try{qe(A(e))}catch(e){}return Kt},Qt=t=>Ct((()=>{if((e=Ye(t,(e=>Ye(e,Ae))))&&(We(t),!G(F))){const e=Vt();Nt(),Ot(e)}})),zt=e=>Ct((()=>{if(t=(e=>Ye(e,Ae))(e)){const n=Mt();qt(),Wt(),t=!0,Be(e),Ft(n)}})),Nt=()=>Ct((()=>He({}))),Wt=()=>Ct((()=>lt({}))),Bt=()=>Ct((()=>{We({}),e=!1})),qt=()=>Ct((()=>{Be({}),t=!1})),Ht=(e,t)=>{if(-1==s)return;$t();const n=e();return Gt(t),n},$t=()=>(s++,Kt),Gt=e=>(s>0&&(s--,0==s&&(n=!G(u),l=!G(I),s=1,It(1),n&&bt(1),Rt(1),l&&mt(1),s=-1,(null==e?void 0:e(se(u,(e=>se(e,(e=>se(e,(e=>[...e]),(([e,t])=>e===t))),Ve)),Ve),se(m,(e=>se(e,se))),se(I,(e=>[...e]),(([e,t])=>e===t)),se(C)))&&(s=1,X(u,((e,t)=>X(e,((e,n)=>X(e,(([e],l)=>de(Kt,t,n,l,e))))))),X(I,(([e],t)=>ce(Kt,t,e))),s=-1,n=l=!1),ke(xe[0],void 0,n,l),It(0),n&&bt(0),Rt(0),l&&mt(0),ke(xe[1],void 0,n,l),s=0,T([o,a,d,u,m,w,I,C],U))),Kt),Kt={getTables:Vt,getTableIds:xt,getTable:e=>se(ee(F,y(e)),se),getRowIds:Et,getSortedRowIds:Pt,getRow:(e,t)=>se(ee(ee(F,y(e)),y(t))),getCellIds:kt,getCell:Jt,getValues:Mt,getValueIds:At,getValue:Dt,hasTables:()=>!G(F),hasTable:e=>$(F,y(e)),hasRow:(e,t)=>$(ee(F,y(e)),y(t)),hasCell:(e,t,n)=>$(ee(ee(F,y(e)),y(t)),y(n)),hasValues:()=>!G(j),hasValue:e=>$(j,y(e)),getTablesJson:()=>M(F),getValuesJson:()=>M(j),getJson:()=>M([F,j]),getTablesSchemaJson:()=>M(V),getValuesSchemaJson:()=>M(k),getSchemaJson:()=>M([V,k]),setTables:Ot,setTable:(e,t)=>Ct((e=>De(t,e)?$e(e,t):0),e),setRow:(e,t,n)=>Ct(((e,t)=>Oe(e,t,n)?Ge(e,rt(e),t,n):0),e,t),addRow:(e,t)=>Ht((()=>{let n;return Oe(e,n,t)&&(e=y(e),Ge(e,rt(e),n=ot(e),t)),n})),setPartialRow:(e,t,n)=>Ct(((e,t)=>{if(Oe(e,t,n,1)){const l=rt(e);Ce(n,((n,s)=>tt(e,l,t,s,n)))}}),e,t),setCell:(e,t,n,l)=>Ct(((e,t,n)=>z(Fe(e,t,n,W(l)?l(Jt(e,t,n)):l),(l=>tt(e,rt(e),t,n,l)))),e,t,n),setValues:Ft,setPartialValues:e=>Ct((()=>je(e,1)?Ce(e,((e,t)=>st(t,e))):0)),setValue:(e,t)=>Ct((e=>z(Qe(e,W(t)?t(Dt(e)):t),(t=>st(e,t)))),e),setTablesJson:jt,setValuesJson:e=>{try{nt(A(e))}catch(e){}return Kt},setJson:e=>{try{const[t,n]=A(e);qe(t),nt(n)}catch(t){jt(e)}return Kt},setTablesSchema:Qt,setValuesSchema:zt,setSchema:(e,t)=>Ct((()=>{Qt(e),zt(t)})),delTables:Nt,delTable:e=>Ct((e=>$(F,e)?at(e):0),e),delRow:(e,t)=>Ct(((e,t)=>z(ee(F,e),(n=>$(n,t)?it(e,n,t):0))),e,t),delCell:(e,t,n,l)=>Ct(((e,t,n)=>z(ee(F,e),(s=>z(ee(s,t),(o=>$(o,n)?dt(e,s,t,o,n,l):0))))),e,t,n),delValues:Wt,delValue:e=>Ct((e=>$(j,e)?ct(e):0),e),delTablesSchema:Bt,delValuesSchema:qt,delSchema:()=>Ct((()=>{Bt(),qt()})),transaction:Ht,startTransaction:$t,finishTransaction:Gt,forEachTable:e=>X(F,((t,n)=>e(n,(e=>X(t,((t,n)=>e(n,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(F,y(e)),((e,n)=>t(n,(t=>te(e,t))))),forEachCell:(e,t,n)=>te(ee(ee(F,y(e)),y(t)),n),forEachValue:e=>te(j,e),addSortedRowIdsListener:(e,t,n,l,s,o,r)=>{let a=Pt(e,t,n,l,s);return Pe((()=>{const r=Pt(e,t,n,l,s);S(r,a)||(a=r,o(Kt,e,t,n,l,s,a))}),ae[r?1:0],[e,t],[xt])},addWillFinishTransactionListener:e=>Pe(e,xe[0]),addDidFinishTransactionListener:e=>Pe(e,xe[1]),callListener:e=>(Me(e),Kt),delListener:e=>(Je(e),Kt),getListenerStats:()=>({}),createStore:_e};return Ce({Tables:[0,B],TableIds:[0,q],[h]:[1,H,[xt]],[f]:[1,K,[xt]],Row:[2,he,[xt,Et]],[g]:[2,fe,[xt,Et]],[p]:[3,ge,[xt,Et,kt],e=>Ke(Jt(...e))],InvalidCell:[3,pe],Values:[0,Se],ValueIds:[0,Ie],Value:[1,Te,[At],e=>Ke(Dt(e[0]))],InvalidValue:[1,we]},(([e,t,n,l],s)=>{Kt[v+s+c]=(...s)=>Pe(s[e],t[s[e+1]?1:0],e>0?E(s,0,e):void 0,n,l)})),Re(Kt)};e.createCheckpoints=xe,e.createCustomPersister=De,e.createFilePersister=(e,n)=>{let l;return De(e,(()=>ze(void 0,null,(function*(){try{return yield t.promises.readFile(n,d)}catch(e){}}))),(e=>ze(void 0,null,(function*(){try{yield t.promises.writeFile(n,e,d)}catch(e){}}))),(e=>{l=t.watch(n,e)}),(()=>{null==l||l.close(),l=void 0}))},e.createIndexes=Pe,e.createLocalPersister=(e,t)=>Qe(e,t,localStorage),e.createMetrics=Me,e.createQueries=$e,e.createRelationships=Ge,e.createRemotePersister=(e,t,n,l)=>{let s,o;return De(e,(()=>Ne(void 0,null,(function*(){const e=yield fetch(t);return o=We(e),e.text()}))),(e=>Ne(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{s=setInterval((()=>Ne(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),l=We(n);Q(o)||Q(l)||l==o||(o=l,e())}))),1e3*l)}),(()=>{z(s,clearInterval),s=void 0}))},e.createSessionPersister=(e,t)=>Qe(e,t,sessionStorage),e.createStore=_e,e.defaultSorter=Ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const n=e=>typeof e,l="",s=n(l),o=n(!0),r=n(0),a=n(n),i="default",d="utf8",c="Listener",u="Result",v="add",h="Table",f="RowIds",g="Cell",p="CellIds",y=e=>l+e,L=(e,t)=>e.includes(t),w=(e,t)=>e.every(t),S=(e,t)=>C(e)===C(t)&&w(e,((e,n)=>t[n]===e)),I=(e,t)=>w(e,((n,l)=>0==l||t(e[l-1],n)<=0)),R=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>x(e,((e,t)=>e+t),0),C=e=>e.length,V=e=>0==C(e),x=(e,t,n)=>e.reduce(t,n),E=(e,t,n)=>e.slice(t,n),P=(e,...t)=>e.push(...t),k=e=>e.pop(),J=e=>e.shift(),M=e=>JSON.stringify(e,((e,t)=>j(t,Map)?x([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),A=JSON.parse,D=Math.max,O=Math.min,F=isFinite,j=(e,t)=>e instanceof t,Q=e=>null==e,z=(e,t,n)=>Q(e)?null==n?void 0:n():t(e),N=e=>e==s||e==o,W=e=>n(e)==a,B=e=>Array.isArray(e),q=()=>{},H=e=>e.size,$=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},G=e=>Q(e)||0==H(e),K=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},U=e=>e.clear(),X=(e,t)=>null==e?void 0:e.forEach(t),Y=(e,t)=>null==e?void 0:e.delete(t),Z=e=>new Map(e),_=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ee=(e,t)=>null==e?void 0:e.get(t),te=(e,t)=>X(e,((e,n)=>t(n,e))),ne=(e,t,n)=>Q(n)?(Y(e,t),e):null==e?void 0:e.set(t,n),le=(e,t,n)=>($(e,t)||ne(e,t,n()),ee(e,t)),se=(e,t,n)=>{const l={},s=null!=t?t:e=>e;return X(e,((e,t)=>z(s(e),(e=>(null==n?void 0:n(e))?0:l[t]=e)))),l},oe=(e,t)=>{const n=Z(),l=null!=t?t:e=>e;return X(e,((e,t)=>n.set(t,l(e)))),n},re=e=>oe(e,oe),ae=(e,t,n,l,s=0)=>z((n?le:ee)(e,t[s],s>C(t)-2?n:Z),(o=>{if(s>C(t)-2)return(null==l?void 0:l(o))&&ne(e,t[s]),o;const r=ae(o,t,n,l,s+1);return G(o)&&ne(e,t[s]),r})),ie=e=>{const t=n(e);return N(t)||t==r&&F(e)?t:void 0},de=(e,t,n,l,s)=>Q(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),ce=(e,t,n)=>Q(n)?e.delValue(t):e.setValue(t,n),ue=e=>new Set(B(e)||Q(e)?e:[e]),ve=(e,t)=>null==e?void 0:e.add(t),he=(e,t,n)=>{const l=e.hasRow,s=Z(),o=Z(),r=Z(),a=Z(),i=Z(),d=(t,n,...l)=>{const s=le(i,t,ue);return T(l,(t=>ve(s,t)&&n&&e.callListener(t))),l},c=(t,...n)=>z(ee(i,t),(l=>{T(V(n)?K(l):n,(t=>{e.delListener(t),Y(l,t)})),G(l)&&ne(i,t)})),u=(e,n)=>{ne(s,e,n),$(o,e)||(ne(o,e,t()),ne(r,e,Z()),ne(a,e,Z()))},v=e=>{ne(s,e),ne(o,e),ne(r,e),ne(a,e),c(e)};return[()=>e,()=>_(s),e=>te(o,e),e=>$(o,e),e=>ee(s,e),e=>ee(o,e),(e,t)=>ne(o,e,t),u,(t,s,o,i,v)=>{u(t,s);const h=Z(),f=Z(),g=ee(r,t),p=ee(a,t),y=t=>{const o=n=>e.getCell(s,t,n),r=ee(g,t),a=l(s,t)?n(i(o,t)):void 0;if(r===a||B(r)&&B(a)&&S(r,a)||ne(h,t,[r,a]),!Q(v)){const e=ee(p,t),n=l(s,t)?v(o,t):void 0;e!=n&&ne(f,t,n)}},L=e=>{o((()=>{X(h,(([,e],t)=>ne(g,t,e))),X(f,((e,t)=>ne(p,t,e)))}),h,f,g,p,e),U(h),U(f)};te(g,y),e.hasTable(s)&&T(e.getRowIds(s),(e=>{$(g,e)||y(e)})),L(!0),c(t),d(t,0,e.addRowListener(s,null,((e,t,n)=>y(n))),e.addTableListener(s,(()=>L())))},v,()=>te(i,v),d,c]},fe=(e,t)=>n(e)==s?t=>t(e):null!=e?e:()=>null!=t?t:l,ge=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},pe=/^\d+$/,ye=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=J(e))?n:l+t++},t=>{pe.test(t)&&C(e)<1e3&&P(e,t)}]},Le=e=>{let t;const[n,s]=ye(),o=Z();return[(s,r,a,i=[],d=(()=>[]))=>{null!=t||(t=e());const c=n();return ne(o,c,[s,r,a,i,d]),ve(ae(r,null!=a?a:[l],ue),c),c},(e,n,...s)=>T(((e,t=[l])=>{const n=[],s=(e,l)=>l==C(t)?P(n,e):null===t[l]?X(e,(e=>s(e,l+1))):T([t[l],null],(t=>s(ee(e,t),l+1)));return s(e,0),n})(e,n),(e=>X(e,(e=>ee(o,e)[0](t,...null!=n?n:[],...s))))),e=>z(ee(o,e),(([,t,n])=>(ae(t,null!=n?n:[l],void 0,(t=>(Y(t,e),G(t)?1:0))),ne(o,e),s(e),n))),e=>z(ee(o,e),(([e,,n=[],l,s])=>{const o=(...r)=>{var a,i;const d=C(r);d==C(n)?e(t,...r,...s(r)):Q(n[d])?T(null!=(i=null==(a=l[d])?void 0:a.call(l,...r))?i:[],(e=>o(...r,e))):o(...r,n[d])};o()}))]},we=Object,Se=we.keys,Ie=we.isFrozen,Re=we.freeze,Te=e=>j(e,we)&&e.constructor==we,be=(e,t)=>!Q(((e,t)=>z(e,(e=>e[t])))(e,t)),me=(e,t)=>delete e[t],Ce=(e,t)=>b(we.entries(e),(([e,n])=>t(n,e))),Ve=e=>Te(e)&&V(Se(e)),xe=ge((e=>{let t,n,s,o=100,r=Z(),a=Z(),i=1;const d=Z(),c=Z(),[u,v,h]=Le((()=>W)),f=Z(),g=Z(),p=[],y=[],w=(t,n)=>{i=0,e.transaction((()=>{const[l,s]=ee(f,n);X(l,((n,l)=>X(n,((n,s)=>X(n,((n,o)=>de(e,l,s,o,n[t]))))))),X(s,((n,l)=>ce(e,l,n[t])))})),i=1},S=e=>{ne(f,e),ne(g,e),v(c,[e])},I=(e,t)=>T(((e,t)=>e.splice(0,t))(e,null!=t?t:C(e)),S),R=()=>I(p,C(p)-o),b=()=>z(t,(()=>{P(p,t),R(),I(y),t=void 0,s=1})),m=()=>{t=k(p),s=1},x=e.addCellListener(null,null,null,((e,t,n,l,s,o)=>{if(i){b();const e=le(r,t,Z),a=le(e,n,Z),i=le(a,l,(()=>[o,void 0]));i[1]=s,i[0]===s&&G(ne(a,l))&&G(ne(e,n))&&G(ne(r,t))&&m(),O()}})),E=e.addValueListener(null,((e,t,n,l)=>{if(i){b();const e=le(a,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&G(ne(a,t))&&m(),O()}})),M=(e="")=>(Q(t)&&(t=l+n++,ne(f,t,[r,a]),j(t,e),r=Z(),a=Z(),s=1),t),A=()=>{V(p)||(((e,...t)=>{e.unshift(...t)})(y,M()),w(0,t),t=k(p),s=1)},D=()=>{V(y)||(P(p,t),t=J(y),w(1,t),s=1)},O=()=>{s&&(v(d),s=0)},F=e=>{const t=M(e);return O(),t},j=(e,t)=>(N(e)&&ee(g,e)!==t&&(ne(g,e,t),v(c,[e])),W),N=e=>$(f,e),W={setSize:e=>(o=e,R(),W),addCheckpoint:F,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...p],t,[...y]],forEachCheckpoint:e=>te(g,e),hasCheckpoint:N,getCheckpoint:e=>ee(g,e),goBackward:()=>(A(),O(),W),goForward:()=>(D(),O(),W),goTo:e=>{const n=L(p,e)?A:L(y,e)?D:null;for(;!Q(n)&&e!=t;)n();return O(),W},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),W),clear:()=>(I(p),I(y),Q(t)||S(t),t=void 0,n=0,F(),W),destroy:()=>{e.delListener(x),e.delListener(E)},getListenerStats:()=>({})};return Re(W.clear())})),Ee=(e,t)=>e<t?-1:1,Pe=ge((e=>{const t=Z(),n=Z(),[s,o,r,a,i,d,c,,u,v,h]=he(e,Z,(e=>Q(e)?l:B(e)?b(e,y):y(e))),[f,g,p]=Le((()=>w)),L=(t,n,l)=>{const s=i(t);X(l,((t,l)=>n(l,(n=>X(t,(t=>n(t,(n=>e.forEachCell(s,t,n)))))))))},w={setIndexDefinition:(e,l,s,o,r,a=Ee)=>{const i=Q(r)?void 0:([e],[t])=>r(e,t);return u(e,l,((l,s,r,u,v,h)=>{let f=0;const p=ue(),y=ue(),L=d(e);if(X(s,(([e,t],n)=>{const l=ue(e),s=ue(t);X(l,(e=>Y(s,e)?Y(l,e):0)),X(l,(e=>{ve(p,e),z(ee(L,e),(t=>{Y(t,n),G(t)&&(ne(L,e),f=1)}))})),X(s,(e=>{ve(p,e),$(L,e)||(ne(L,e,ue()),f=1),ve(ee(L,e),n),Q(o)||ve(y,e)}))})),l(),G(v)||(h?te(L,(e=>ve(y,e))):te(r,(e=>z(ee(u,e),(e=>ve(y,e))))),X(y,(e=>{const t=(t,n)=>a(ee(v,t),ee(v,n),e),n=[...ee(L,e)];I(n,t)||(ne(L,e,ue(R(n,t))),ve(p,e))}))),(f||h)&&!Q(i)){const t=[...L];I(t,i)||(c(e,Z(R(t,i))),f=1)}f&&g(t,[e]),X(p,(t=>g(n,[e,t])))}),fe(s),z(o,fe)),w},delIndexDefinition:e=>(v(e),w),getStore:s,getIndexIds:o,forEachIndex:e=>r(((t,n)=>e(t,(e=>L(t,e,n))))),forEachSlice:(e,t)=>L(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>$(d(e),t),getTableId:i,getSliceIds:e=>_(d(e)),getSliceRowIds:(e,t)=>K(ee(d(e),t)),addSliceIdsListener:(e,n)=>f(n,t,[e]),addSliceRowIdsListener:(e,t,l)=>f(l,n,[e,t]),delListener:e=>(p(e),w),destroy:h,getListenerStats:()=>({})};return Re(w)})),ke=Z([["avg",[(e,t)=>m(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:D(t,e)]],["min",[e=>O(...e),(e,t)=>O(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:O(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Je=(e,t,n,l,s,o=!1)=>{if(G(n))return;const[r,a,i,d]=s;return o||(o=Q(e)),X(l,(([n,l])=>{o||(e=Q(n)?null==a?void 0:a(e,l,t++):Q(l)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,l,n,t),o||(o=Q(e)))})),o?r(K(n),H(n)):e},Me=ge((e=>{const t=Z(),[n,s,o,r,a,i,d,,c,u,v]=he(e,q,(e=>isNaN(e)||Q(e)||!0===e||!1===e||e===l?void 0:1*e)),[h,f,g]=Le((()=>p)),p={setMetricDefinition:(e,n,l,s,o,r,a)=>{var u;const v=W(l)?[l,o,r,a]:null!=(u=ee(ke,l))?u:ee(ke,"sum");return c(e,n,((n,l,s,o,r,a)=>{const c=i(e),u=H(o);a||(a=Q(c)),n();let h=Je(c,u,o,l,v,a);F(h)||(h=void 0),h!=c&&(d(e,h),f(t,[e],h,c))}),fe(s,1)),p},delMetricDefinition:e=>(u(e),p),getStore:n,getMetricIds:s,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,n)=>h(n,t,[e]),delListener:e=>(g(e),p),destroy:v,getListenerStats:()=>({})};return Re(p)}));var Ae=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const De=(e,t,n,s,o)=>{let r,a,i=0;const d={load:(n,s)=>Ae(void 0,null,(function*(){if(2!=i){i=1;const o=yield t();Q(o)||o==l?e.transaction((()=>e.setTables(n).setValues(s))):e.setJson(o),i=0}return d})),startAutoLoad:(e,t)=>Ae(void 0,null,(function*(){return d.stopAutoLoad(),yield d.load(e,t),s(d.load),d})),stopAutoLoad:()=>(o(),d),save:()=>Ae(void 0,null,(function*(){return 1!=i&&(i=2,yield n(e.getJson()),i=0),d})),startAutoSave:()=>Ae(void 0,null,(function*(){return yield d.stopAutoSave().save(),r=e.addTablesListener(d.save),a=e.addValuesListener(d.save),d})),stopAutoSave:()=>(z(r,e.delListener),z(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Re(d)};var Oe=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const Fe="storage",je=globalThis.window,Qe=(e,t,n)=>{let l;return De(e,(()=>Oe(void 0,null,(function*(){return n.getItem(t)}))),(e=>Oe(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{l=l=>{l.storageArea===n&&l.key===t&&e()},je.addEventListener(Fe,l)}),(()=>{je.removeEventListener(Fe,l),l=void 0}))};var ze=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())})),Ne=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{a(n.next(e))}catch(e){s(e)}},r=e=>{try{a(n.throw(e))}catch(e){s(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const We=e=>e.headers.get("ETag");var Be=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;const $e=ge((e=>{const t=e.createStore,[n,s,o,r,a,,,i,,d,y,L,S]=he(e,(()=>!0),q),I=t(),R=t(),b=Z(),m=(e,t,...n)=>T(n,(n=>ve(le(le(b,t,Z),e,ue),n))),x=e=>{z(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),U(e)})),T([R,I],(t=>t.delTable(e)))},k=(e,t,n)=>m(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),J={setQueryDefinition:(t,n,s)=>{i(t,n),x(t);const o=[],r=[[null,[n,null,null,[],Z()]]],a=[],d=[],c=[];s({select:(e,t)=>{const n=W(e)?[C(o)+l,e]:[Q(t)?e:t,n=>n(e,t)];return P(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const l=Q(n)||W(t)?null:t,s=Q(l)?t:n,o=[e,[e,l,W(s)?s:e=>e(s),[],Z()]];return P(r,o),{as:e=>o[0]=e}},where:(e,t,n)=>P(a,W(e)?e:Q(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,s)=>{var o;const r=[e,[e,W(t)?[t,n,l,s]:null!=(o=ee(ke,t))?o:[(e,t)=>t]]];return P(d,r),{as:e=>r[0]=e}},having:(e,t)=>P(c,W(e)?e:n=>n(e)===t)});const u=Z(o);if(G(u))return J;const v=Z(r);te(v,((e,[,t])=>z(ee(v,t),(({3:t})=>Q(e)?0:P(t,e)))));const h=Z(d);let f=I;if(G(h)&&V(c))f=R;else{k(t,f,R);const e=Z();te(h,((t,[n,l])=>ve(le(e,n,ue),[t,l])));const n=ue();te(u,(t=>$(e,t)?0:ve(n,t)));const l=Z(),s=(n,l,s,o)=>z(n,(([r,a,i,d])=>{te(l,((t,[n])=>{const l=le(r,t,Z),a=ee(l,s),i=o?void 0:n;if(a!==i){const n=ue([[a,i]]),o=H(l);ne(l,s,i),X(ee(e,t),(([e,t])=>{const s=Je(d[e],o,l,n,t);d[e]=Q(ie(s))?null:s}))}})),G(a)||!w(c,(e=>e((e=>d[e]))))?R.delRow(t,i):Q(i)?n[2]=R.addRow(t,d):R.setRow(t,i,d)}));m(f,t,f.addRowListener(t,null,((o,r,a,i)=>{const d=[],c=[],u=Z(),v=f.hasRow(t,a);let h=!v;X(n,(e=>{const[n,l,s]=i(t,a,e);P(d,l),P(c,s),h||(h=n)})),te(e,(e=>{const[n,,l]=i(t,a,e);(h||n)&&ne(u,e,[l])})),h&&s(ae(l,d,void 0,(([,e])=>(Y(e,a),G(e)))),u,a,1),v&&s(ae(l,c,(()=>{const e={};return X(n,(n=>e[n]=f.getCell(t,a,n))),[Z(),ue(),void 0,e]}),(([,e])=>{ve(e,a)})),u,a)})))}k(t,e,f);const g=(l,s,o,r)=>{const i=t=>e.getCell(s,o,t);T(r,(n=>{var s;const[o,,r,a,d]=ee(v,n),c=null==r?void 0:r(i,l),[u,h]=null!=(s=ee(d,l))?s:[];c!=u&&(Q(h)||S(t,h),ne(d,l,Q(c)?null:[c,...L(t,1,e.addRowListener(o,c,(()=>g(l,o,c,a))))]))})),(l=>{const s=(t,s)=>{var o,r,a;return e.getCell(...Q(s)?[n,l,t]:t===n?[n,l,s]:[null==(o=ee(v,t))?void 0:o[0],null==(a=ee(null==(r=ee(v,t))?void 0:r[4],l))?void 0:a[0],s])};f.transaction((()=>w(a,(e=>e(s)))?te(u,((e,n)=>de(f,t,l,e,n(s,l)))):f.delRow(t,l)))})(l)},{3:p}=ee(v,null);return f.transaction((()=>L(t,1,e.addRowListener(n,null,((l,s,o)=>{e.hasRow(n,o)?g(o,n,o,p):(f.delRow(t,o),X(v,(({4:e})=>z(ee(e,o),(([,n])=>{S(t,n),ne(e,o)})))))}))))),J},delQueryDefinition:e=>(x(e),d(e),J),getStore:n,getQueryIds:s,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(R.delListener(e),J),destroy:y,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)qe.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&Be)for(var l of Be(e))t.indexOf(l)<0&&He.call(e,l)&&(n[l]=e[l]);return n})(R.getListenerStats(),["tables","tableIds","transaction"])};return Ce({[h]:[1,1],[f]:[0,1],SortedRowIds:[0,5],Row:[1,2],[p]:[0,2],[g]:[1,3]},(([e,t],n)=>{T(e?["get","has","forEach"]:["get"],(e=>J[e+u+n]=(...t)=>R[e+n](...t))),J[v+u+n+c]=(...e)=>R[v+n+c](...E(e,0,t),((n,...l)=>e[t](J,...l)))})),Re(J)})),Ge=ge((e=>{const t=Z(),n=Z(),s=Z(),o=Z(),[r,a,i,d,c,u,,,v,h,f]=he(e,(()=>[Z(),Z(),Z(),Z()]),(e=>Q(e)?void 0:e+l)),[g,p,y]=Le((()=>I)),L=(e,t,n)=>z(u(e),(([l,,s])=>{if(!$(s,t)){const o=ue();if(c(e)!=S(e))ve(o,t);else{let e=t;for(;!Q(e)&&!$(o,e);)ve(o,e),e=ee(l,e)}if(n)return o;ne(s,t,o)}return ee(s,t)})),w=(e,t)=>z(u(e),(([,,e])=>ne(e,t))),S=e=>ee(t,e),I={setRelationshipDefinition:(e,l,r,a)=>(ne(t,e,r),v(e,l,((t,l)=>{const r=ue(),a=ue(),i=ue(),[d,c]=u(e);X(l,(([t,n],l)=>{Q(t)||(ve(a,t),z(ee(c,t),(e=>{Y(e,l),G(e)&&ne(c,t)}))),Q(n)||(ve(a,n),$(c,n)||ne(c,n,ue()),ve(ee(c,n),l)),ve(r,l),ne(d,l,n),te(ee(o,e),(t=>{$(L(e,t),l)&&ve(i,t)}))})),t(),X(r,(t=>p(n,[e,t]))),X(a,(t=>p(s,[e,t]))),X(i,(t=>{w(e,t),p(o,[e,t])}))}),fe(a)),I),delRelationshipDefinition:e=>(ne(t,e),h(e),I),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(c(n),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:S,getRemoteRowId:(e,t)=>{var n;return ee(null==(n=u(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return K(ee(null==(n=u(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>Q(u(e))?[t]:K(L(e,t,!0)),addRemoteRowIdListener:(e,t,l)=>g(l,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),g(n,o,[e,t])),delListener:e=>(w(...y(e)),I),destroy:f,getListenerStats:()=>({})};return Re(I)})),Ke=e=>[e,e],Ue=()=>[Z(),Z()],Xe=(e,t,n,l=ne)=>{const s=(o=e=>!be(t,e),_(e).filter(o));var o;return T(Se(t),(l=>n(e,l,t[l]))),T(s,(t=>l(e,t))),e},Ye=(e,t,n)=>Q(e)||!Te(e)||Ve(e)||Ie(e)?(null==n||n(),!1):(Ce(e,((n,l)=>{t(n,l)||me(e,l)})),!Ve(e)),Ze=(e,t,n)=>ne(e,t,ee(e,t)==-n?void 0:n),_e=()=>{let e,t,n,l,s=0;const o=Z(),a=Z(),d=Z(),u=Z(),w=Z(),I=Z(),m=Z(),C=Z(),V=Z(),x=Z(),k=Z(),J=Z(),D=ue(),O=Z(),F=Z(),j=Z(),B=Ue(),q=Ue(),H=Ue(),K=Ue(),ae=Ue(),he=Ue(),fe=Ue(),ge=Ue(),pe=Ue(),we=Ue(),Se=Ue(),Ie=Ue(),Te=Ue(),xe=Ue(),[Pe,ke,Je,Me]=Le((()=>Kt)),Ae=e=>{if(!Ye(e,((e,t)=>L(["type",i],t))))return!1;const t=e.type;return!(!N(t)&&t!=r||(ie(e.default)!=t&&me(e,i),0))},De=(t,n)=>(!e||$(V,n)||yt(n))&&Ye(t,((e,t)=>Oe(n,t,e)),(()=>yt(n))),Oe=(e,t,n,l)=>Ye(l?n:ze(n,e,t),((l,s)=>z(Fe(e,t,s,l),(e=>(n[s]=e,!0)),(()=>!1))),(()=>yt(e,t))),Fe=(t,n,l,s)=>e?z(ee(ee(V,t),l),(e=>ie(s)!=e.type?yt(t,n,l,s,e.default):s),(()=>yt(t,n,l,s))):Q(ie(s))?yt(t,n,l,s):s,je=(e,t)=>Ye(t?e:Ne(e),((t,n)=>z(Qe(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>Lt())),Qe=(e,n)=>t?z(ee(k,e),(t=>ie(n)!=t.type?Lt(e,n,t.default):n),(()=>Lt(e,n))):Q(ie(n))?Lt(e,n):n,ze=(e,t,n)=>(z(ee(x,t),(([l,s])=>{X(l,((t,n)=>{be(e,n)||(e[n]=t)})),X(s,(l=>{be(e,l)||yt(t,n,l)}))})),e),Ne=e=>(t&&(X(J,((t,n)=>{be(e,n)||(e[n]=t)})),X(D,(t=>{be(e,t)||Lt(t)}))),e),We=e=>Xe(V,e,((e,t,n)=>{const l=Z(),s=ue();Xe(le(V,t,Z),n,((e,t,n)=>{ne(e,t,n),z(n.default,(e=>ne(l,t,e)),(()=>ve(s,t)))})),ne(x,t,[l,s])}),((e,t)=>{ne(V,t),ne(x,t)})),Be=e=>Xe(k,e,((e,t,n)=>{ne(k,t,n),z(n.default,(e=>ne(J,t,e)),(()=>ve(D,t)))}),((e,t)=>{ne(k,t),ne(J,t),Y(D,t)})),qe=e=>Ve(e)?Nt():Ot(e),He=e=>Xe(F,e,((e,t,n)=>$e(t,n)),((e,t)=>at(t))),$e=(e,t)=>Xe(le(F,e,(()=>(ut(e,1),Z()))),t,((t,n,l)=>Ge(e,t,n,l)),((t,n)=>it(e,t,n))),Ge=(e,t,n,l,s)=>Xe(le(t,n,(()=>(vt(e,n,1),Z()))),l,((t,l,s)=>et(e,n,t,l,s)),((l,o)=>dt(e,t,n,l,o,s))),et=(e,t,n,l,s)=>{$(n,l)||ht(e,t,l,1);const o=ee(n,l);s!==o&&(ft(e,t,l,o,s),ne(n,l,s))},tt=(e,t,n,l,s)=>z(ee(t,n),(t=>et(e,n,t,l,s)),(()=>Ge(e,t,n,ze({[l]:s},e,n)))),nt=e=>Ve(e)?Wt():Ft(e),lt=e=>Xe(j,e,((e,t,n)=>st(t,n)),((e,t)=>ct(t))),st=(e,t)=>{$(j,e)||gt(e,1);const n=ee(j,e);t!==n&&(pt(e,n,t),ne(j,e,t))},ot=e=>{const[t]=le(O,e,ye),n=t();return $(ee(F,e),n)?ot(e):n},rt=e=>{var t;return null!=(t=ee(F,e))?t:$e(e,{})},at=e=>$e(e,{}),it=(e,t,n)=>{const[,l]=le(O,e,ye);l(n),Ge(e,t,n,{},!0)},dt=(e,t,n,l,s,o)=>{var r;const a=ee(null==(r=ee(x,e))?void 0:r[0],s);if(!Q(a)&&!o)return et(e,n,l,s,a);const i=t=>{ft(e,n,t,ee(l,t)),ht(e,n,t,-1),ne(l,t)};Q(a)?i(s):te(l,i),G(l)&&(vt(e,n,-1),G(ne(t,n))&&(ut(e,-1),ne(F,e),ne(O,e)))},ct=e=>{const t=ee(J,e);if(!Q(t))return st(e,t);pt(e,ee(j,e)),gt(e,-1),ne(j,e)},ut=(e,t)=>Ze(o,e,t),vt=(e,t,n)=>Ze(le(a,e,Z),t,n),ht=(e,t,n,l)=>Ze(le(le(d,e,Z),t,Z),n,l),ft=(e,t,n,l,s)=>le(le(le(u,e,Z),t,Z),n,(()=>[l,0]))[1]=s,gt=(e,t)=>Ze(w,e,t),pt=(e,t,n)=>le(I,e,(()=>[t,0]))[1]=n,yt=(e,t,n,l,s)=>(P(le(le(le(m,e,Z),t,Z),n,(()=>[])),l),s),Lt=(e,t,n)=>(P(le(C,e,(()=>[])),t),n),wt=(e,t,n)=>z(ee(ee(ee(u,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Jt(e,t,n))])),St=e=>z(ee(I,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Dt(e))])),It=e=>G(m)||G(pe[e])?0:X(e?oe(m,re):m,((t,n)=>X(t,((t,l)=>X(t,((t,s)=>ke(pe[e],[n,l,s],t))))))),Rt=e=>G(C)||G(we[e])?0:X(e?oe(C):C,((t,n)=>ke(we[e],[n],t))),Tt=(e,t,n)=>{if(!G(t))return ke(e,n),1},bt=e=>{const t=G(ae[e]),n=G(fe[e])&&G(K[e])&&t&&G(q[e]),l=G(ge[e])&&G(he[e])&&G(H[e])&&G(B[e]);if(!n||!l){const s=e?[oe(o),re(a),oe(d,re),oe(u,re)]:[o,a,d,u];if(!n){X(s[2],((t,n)=>X(t,((t,l)=>Tt(fe[e],t,[n,l])))));const n=ue();X(s[1],((l,s)=>{Tt(K[e],l,[s])&&!t&&(ke(ae[e],[s,null]),ve(n,s))})),t||X(s[3],((t,l)=>{if(!$(n,l)){const n=ue();X(t,(e=>X(e,(([t,l],s)=>l!==t?ve(n,s):Y(e,s))))),X(n,(t=>ke(ae[e],[l,t])))}})),Tt(q[e],s[0])}if(!l){let t;X(s[3],((n,l)=>{let s;X(n,((n,o)=>{let r;X(n,(([n,a],i)=>{a!==n&&(ke(ge[e],[l,o,i],a,n,wt),t=s=r=1)})),r&&ke(he[e],[l,o],wt)})),s&&ke(H[e],[l],wt)})),t&&ke(B[e],void 0,wt)}}},mt=e=>{const t=G(Ie[e]),n=G(Te[e])&&G(Se[e]);if(!t||!n){const l=e?[oe(w),oe(I)]:[w,I];if(t||Tt(Ie[e],l[0]),!n){let t;X(l[1],(([n,l],s)=>{l!==n&&(ke(Te[e],[s],l,n,St),t=1)})),t&&ke(Se[e],void 0,St)}}},Ct=(e,...t)=>(Ht((()=>e(...b(t,y)))),Kt),Vt=()=>se(F,(e=>se(e,se))),xt=()=>_(F),Et=e=>_(ee(F,y(e))),Pt=(e,t,n,l=0,s)=>{return b(E(R((o=ee(F,y(e)),r=(e,n)=>[Q(t)?n:ee(e,y(t)),n],b([...null!=(a=null==o?void 0:o.entries())?a:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ee(e,t)*(n?-1:1))),l,Q(s)?s:l+s),(([,e])=>e));var o,r,a},kt=(e,t)=>_(ee(ee(F,y(e)),y(t))),Jt=(e,t,n)=>ee(ee(ee(F,y(e)),y(t)),y(n)),Mt=()=>se(j),At=()=>_(j),Dt=e=>ee(j,y(e)),Ot=e=>Ct((()=>(e=>Ye(e,De,yt))(e)?He(e):0)),Ft=e=>Ct((()=>je(e)?lt(e):0)),jt=e=>{try{qe(A(e))}catch(e){}return Kt},Qt=t=>Ct((()=>{if((e=Ye(t,(e=>Ye(e,Ae))))&&(We(t),!G(F))){const e=Vt();Nt(),Ot(e)}})),zt=e=>Ct((()=>{if(t=(e=>Ye(e,Ae))(e)){const n=Mt();qt(),Wt(),t=!0,Be(e),Ft(n)}})),Nt=()=>Ct((()=>He({}))),Wt=()=>Ct((()=>lt({}))),Bt=()=>Ct((()=>{We({}),e=!1})),qt=()=>Ct((()=>{Be({}),t=!1})),Ht=(e,t)=>{if(-1==s)return;$t();const n=e();return Gt(t),n},$t=()=>(s++,Kt),Gt=e=>(s>0&&(s--,0==s&&(n=!G(u),l=!G(I),s=1,It(1),n&&bt(1),Rt(1),l&&mt(1),s=-1,(null==e?void 0:e(se(u,(e=>se(e,(e=>se(e,(e=>[...e]),(([e,t])=>e===t))),Ve)),Ve),se(m,(e=>se(e,se))),se(I,(e=>[...e]),(([e,t])=>e===t)),se(C)))&&(s=1,X(u,((e,t)=>X(e,((e,n)=>X(e,(([e],l)=>de(Kt,t,n,l,e))))))),X(I,(([e],t)=>ce(Kt,t,e))),s=-1,n=l=!1),ke(xe[0],void 0,n,l),It(0),n&&bt(0),Rt(0),l&&mt(0),ke(xe[1],void 0,n,l),s=0,T([o,a,d,u,m,w,I,C],U))),Kt),Kt={getTables:Vt,getTableIds:xt,getTable:e=>se(ee(F,y(e)),se),getRowIds:Et,getSortedRowIds:Pt,getRow:(e,t)=>se(ee(ee(F,y(e)),y(t))),getCellIds:kt,getCell:Jt,getValues:Mt,getValueIds:At,getValue:Dt,hasTables:()=>!G(F),hasTable:e=>$(F,y(e)),hasRow:(e,t)=>$(ee(F,y(e)),y(t)),hasCell:(e,t,n)=>$(ee(ee(F,y(e)),y(t)),y(n)),hasValues:()=>!G(j),hasValue:e=>$(j,y(e)),getTablesJson:()=>M(F),getValuesJson:()=>M(j),getJson:()=>M([F,j]),getTablesSchemaJson:()=>M(V),getValuesSchemaJson:()=>M(k),getSchemaJson:()=>M([V,k]),setTables:Ot,setTable:(e,t)=>Ct((e=>De(t,e)?$e(e,t):0),e),setRow:(e,t,n)=>Ct(((e,t)=>Oe(e,t,n)?Ge(e,rt(e),t,n):0),e,t),addRow:(e,t)=>Ht((()=>{let n;return Oe(e,n,t)&&(e=y(e),Ge(e,rt(e),n=ot(e),t)),n})),setPartialRow:(e,t,n)=>Ct(((e,t)=>{if(Oe(e,t,n,1)){const l=rt(e);Ce(n,((n,s)=>tt(e,l,t,s,n)))}}),e,t),setCell:(e,t,n,l)=>Ct(((e,t,n)=>z(Fe(e,t,n,W(l)?l(Jt(e,t,n)):l),(l=>tt(e,rt(e),t,n,l)))),e,t,n),setValues:Ft,setPartialValues:e=>Ct((()=>je(e,1)?Ce(e,((e,t)=>st(t,e))):0)),setValue:(e,t)=>Ct((e=>z(Qe(e,W(t)?t(Dt(e)):t),(t=>st(e,t)))),e),setTablesJson:jt,setValuesJson:e=>{try{nt(A(e))}catch(e){}return Kt},setJson:e=>{try{const[t,n]=A(e);qe(t),nt(n)}catch(t){jt(e)}return Kt},setTablesSchema:Qt,setValuesSchema:zt,setSchema:(e,t)=>Ct((()=>{Qt(e),zt(t)})),delTables:Nt,delTable:e=>Ct((e=>$(F,e)?at(e):0),e),delRow:(e,t)=>Ct(((e,t)=>z(ee(F,e),(n=>$(n,t)?it(e,n,t):0))),e,t),delCell:(e,t,n,l)=>Ct(((e,t,n)=>z(ee(F,e),(s=>z(ee(s,t),(o=>$(o,n)?dt(e,s,t,o,n,l):0))))),e,t,n),delValues:Wt,delValue:e=>Ct((e=>$(j,e)?ct(e):0),e),delTablesSchema:Bt,delValuesSchema:qt,delSchema:()=>Ct((()=>{Bt(),qt()})),transaction:Ht,startTransaction:$t,finishTransaction:Gt,forEachTable:e=>X(F,((t,n)=>e(n,(e=>X(t,((t,n)=>e(n,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(F,y(e)),((e,n)=>t(n,(t=>te(e,t))))),forEachCell:(e,t,n)=>te(ee(ee(F,y(e)),y(t)),n),forEachValue:e=>te(j,e),addSortedRowIdsListener:(e,t,n,l,s,o,r)=>{let a=Pt(e,t,n,l,s);return Pe((()=>{const r=Pt(e,t,n,l,s);S(r,a)||(a=r,o(Kt,e,t,n,l,s,a))}),ae[r?1:0],[e,t],[xt])},addWillFinishTransactionListener:e=>Pe(e,xe[0]),addDidFinishTransactionListener:e=>Pe(e,xe[1]),callListener:e=>(Me(e),Kt),delListener:e=>(Je(e),Kt),getListenerStats:()=>({}),createStore:_e};return Ce({Tables:[0,B],TableIds:[0,q],[h]:[1,H,[xt]],[f]:[1,K,[xt]],Row:[2,he,[xt,Et]],[p]:[2,fe,[xt,Et]],[g]:[3,ge,[xt,Et,kt],e=>Ke(Jt(...e))],InvalidCell:[3,pe],Values:[0,Se],ValueIds:[0,Ie],Value:[1,Te,[At],e=>Ke(Dt(e[0]))],InvalidValue:[1,we]},(([e,t,n,l],s)=>{Kt[v+s+c]=(...s)=>Pe(s[e],t[s[e+1]?1:0],e>0?E(s,0,e):void 0,n,l)})),Re(Kt)};e.createCheckpoints=xe,e.createCustomPersister=De,e.createFilePersister=(e,n)=>{let l;return De(e,(()=>ze(void 0,null,(function*(){try{return yield t.promises.readFile(n,d)}catch(e){}}))),(e=>ze(void 0,null,(function*(){try{yield t.promises.writeFile(n,e,d)}catch(e){}}))),(e=>{l=t.watch(n,e)}),(()=>{null==l||l.close(),l=void 0}))},e.createIndexes=Pe,e.createLocalPersister=(e,t)=>Qe(e,t,localStorage),e.createMetrics=Me,e.createQueries=$e,e.createRelationships=Ge,e.createRemotePersister=(e,t,n,l)=>{let s,o;return De(e,(()=>Ne(void 0,null,(function*(){const e=yield fetch(t);return o=We(e),e.text()}))),(e=>Ne(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{s=setInterval((()=>Ne(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),l=We(n);Q(o)||Q(l)||l==o||(o=l,e())}))),1e3*l)}),(()=>{z(s,clearInterval),s=void 0}))},e.createSessionPersister=(e,t)=>Qe(e,t,sessionStorage),e.createStore=_e,e.defaultSorter=Ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
Binary file