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
package/lib/tools.d.ts CHANGED
@@ -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/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,a="",l=e(a),t=e(!0),s=e(0),o="type",n="default",d=(e,a)=>e.every(a),r=(e,a)=>e.sort(a),$=(e,a)=>e.forEach(a),i=(e,a)=>e.map(a),u=e=>e.length,I=e=>0==u(e),c=(e,...a)=>e.push(...a),b=e=>e.pop(),w=(e,...a)=>e.unshift(...a),h=e=>e.shift(),g=JSON.parse,C=isFinite,V=(e,a)=>e instanceof a,T=e=>null==e,f=e=>e==l||e==t,R=a=>e(a)==l,m=e=>Array.isArray(e),v=a=>{const l=e(a);return f(l)||l==s&&C(a)?l:void 0},p=(e,a)=>e?.has(a)??!1,L=e=>[...e?.values()??[]],y=(e,a)=>e?.forEach(a),S=(e,a)=>e?.delete(a),k=e=>new Map(e),J=(e,a)=>e?.get(a),E=(e,a)=>y(e,((e,l)=>a(l,e))),A=(e,a)=>i([...e?.entries()??[]],(([e,l])=>a(l,e))),j=(e,a,l)=>T(l)?(S(e,a),e):e?.set(a,l),O=(e,a,l)=>(p(e,a)||j(e,a,l()),J(e,a)),x=e=>new Set(m(e)||T(e)?e:[e]),D=(e,a)=>e?.add(a),N=e=>[e,e],G=()=>[k(),k()],z=/[^A-Za-z]+/,F=/[^A-Za-z0-9]+/,P=/^( *)\/\*\* *(.*?) *\*\/$/gm,W=(e,a,l)=>e.substring(a,l),M=e=>e.toUpperCase(),Z=e=>e.toLowerCase(),_=(e,a,l,t=1)=>{const s=`${a}${1==t?"":t}`;return p(e,s)?_(e,a,l,t+1):(j(e,s,l),s)},Q=e=>e.replace(P,((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,l=a)=>e.join(l),B=e=>e.flat(1e3),H=(e,a=0)=>q(i(e.split(F),((e,l)=>(l>0||a?M:Z)(W(e,0,1))+W(e,1)))),K=e=>M(q((e&&!z.test(e[0])?e:" "+e).split(F),"_")),X=e=>`/** ${e}. */`,Y=()=>{const e=G(),l=k(),t=k(),s=k();return[(...e)=>q(B(e),"\n"),(a,l,...t)=>$(t,(t=>D(O(e[a],l,x),t))),(e,a,t)=>_(l,e,[a,t]),(e,a,l,s,o,n="")=>_(t,e,[a,l,s,o,n]),(e,a,l)=>_(s,e,m(l)?[`(${a}) => {`,l,"}"]:[`(${a}) => ${l}`]),(e,a)=>J(s,e)===a?e:_(s,e,a),l=>[...r(A(e[l],((e,a)=>`import {${q(r(L(e)),", ")}} from '${a}';`))),a],()=>A(l,(([e,l],t)=>[X(l),`export type ${t} = ${e};`,a])),e=>A(t,(([l,t,s,o,n],d)=>{const r=e?[`${d}: ${n}(${l}): ${t} => ${s},`]:[`${d}${n}(${l}): ${t};`];return e||w(r,X(o)),c(r,a),r})),()=>A(s,((e,l)=>(e=m(e)?e:[e],c(e,b(e)+";"),[`const ${l} = ${h(e)}`,e,a])))]},ee=Object,ae=ee.keys,le=ee.freeze,te=e=>V(e,ee)&&e.constructor==ee,se=(e,a)=>i(ee.entries(e),(([e,l])=>a(l,e))),oe=e=>te(e)&&I(ae(e)),ne="the Store",de="A function for",re="export",$e="listener",ie=" | undefined",ue=`Registers a ${$e} that will be called`,Ie="Represents",ce=" => void",be="the end of the transaction",we="the specified Row",he="a string serialization of",ge=(e=0,a=0)=>`the ${De[e]}content of${a?" "+ne:""}`,Ce=(e,a=0,l=0)=>`${Oe[e]} ${ge(a,1)}${l?" when set":""}`,Ve=(e,a=0)=>`${Ie} a Row when ${a?"s":"g"}etting ${ge()} the '${e}' Table`,Te=(e,a,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${a}`,fe=(e,a)=>`Calls a function for each ${e} in ${a}`,Re=(e,a=ne)=>`Gets whether ${e} exists in ${a}`,me=e=>"A function that takes "+e,ve=(e,a=0)=>`${de} listening to changes to ${xe[e]} in ${xe[a]}`,pe=(e,l,t=0)=>`${ue} whenever ${e} in ${l} change`+(t?a:"s"),Le=e=>`the '${e}' Table`,ye=e=>`${we} in ${Le(e)}`,Se=e=>`the '${e}' Cell`,ke=e=>`the '${e}' Value`,Je=(e,a=0)=>`${Oe[a]} ${ge()} ${Le(e)}`,Ee=(e,a=0)=>`${Oe[a]} ${ge()} ${ye(e)}`,Ae=(e,a,l=0)=>`${Oe[l]} ${Se(a)} for ${ye(e)}`,je=(e,a=0)=>`${Oe[a]} ${ke(e)}`,Oe=["Gets","Sets","Sets part of","Deletes",Ie,"Gets "+he,"Sets "+he,ue+" whenever"],xe=[ne,"Tables","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes","Values","Value Ids","a Value","invalid Value changes"],De=["","tabular ","keyed value "],Ne=["DoRollback","Id","IdOrNull","Ids","Json","Store"],Ge=(e,l=a,t=a)=>`store.${e}(${l})${t?" as "+t:a}`,ze=(e,l=a)=>`fluent(() => ${Ge(e,l)})`,Fe=(e,l=a,t=a)=>`store.${e}(${l?l+", ":a}proxy(${$e})${t?", "+t:a})`,Pe=(e,l,s)=>{if(oe(e)&&oe(l))return N(a);const[d,r,$,i,u,I,b,w,h,g]=Y(),C=`./${H(s)}.d`,V=H(s,1),f=H(V),m=[],v=k(),p=l=>se(e,((e,t)=>l(t,O(v,t,(()=>{const e=H(t,1);return[$(e+"Table",`{[rowId: Id]: ${e}Row}`,`${Ie} the '${t}' Table`),$(e+"Row",`{${q(y(t,((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ve(t)),$(e+"RowWhenSet",`{${q(y(t,((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ve(t,1)),$(e+"CellId",q(y(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' Table`),$(e+"CellCallback",`(...[cellId, cell]: ${q(y(t,((e,a)=>`[cellId: '${e}', cell: ${a}]`))," | ")})${ce}`,me(`a Cell Id and value from a Row in the '${t}' Table`)),$(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${ce})${ce}`,me(`a Row Id from the '${t}' Table, and a Cell iterator`))]})),H(t,1),I(K(t),`'${t}'`)))),y=(a,l)=>se(e[a],((e,a)=>l(a,e[o],e[n],I(K(a),`'${a}'`),H(a,1)))),S=e=>se(l,((a,l)=>e(l,a[o],a[n],I(K(l),`'${l}'`),H(l,1))));if(r(1,C,V,`create${V} as create${V}Decl`),!oe(e)){const e=$("Tables",`{${q(p(((e,a)=>`'${e}'?: ${a[0]};`))," ")}}`,Ce(4,1)),l=$("TableId",q(p((e=>`'${e}'`))," | "),"A Table Id in "+ne),s=$("TableCallback",`(...[tableId, rowCallback]: ${q(p(((e,a)=>`[tableId: '${e}', forEachRow: (rowCallback: ${a[5]})${ce}]`))," | ")})${ce}`,me("a Table Id, and a Row iterator")),d=$("GetCellChange",`(...[tableId, rowId, cellId]: ${q(p(((e,a)=>`[tableId: '${e}', rowId: Id, cellId: ${a[3]}]`))," | ")}) => CellChange`,de+" returning information about any Cell's changes during a transaction"),u=$("TablesListener",`(${f}: ${V}, getCellChange: ${d}${ie})${ce}`,ve(1)),b=$("TableIdsListener",`(${f}: ${V})${ce}`,ve(2)),w=$("TableListener",`(${f}: ${V}, tableId: ${l}, getCellChange: ${d}${ie})${ce}`,ve(3)),h=$("RowIdsListener",`(${f}: ${V}, tableId: ${l})`+ce,ve(4,3)),g=$("RowListener",`(${f}: ${V}, tableId: ${l}, rowId: Id, getCellChange: ${d}${ie})${ce}`,ve(5,3)),v=$("CellIdsListener",`(${f}: ${V}, tableId: ${l}, rowId: Id)`+ce,ve(6,5)),S=$("CellListener",`(...[${f}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${q(B(p((e=>y(e,((a,l)=>`[${f}: ${V}, tableId: '${e}', rowId: Id, cellId: '${a}', newCell: ${l}${ie}, oldCell: ${l}${ie}, getCellChange: ${d} | undefined]`)))))," | ")})${ce}`,ve(7,5)),J=$("InvalidCellListener",`(${f}: ${V}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${ce}`,ve(8));i("hasTables",a,t,Ge("hasTables"),Re("any Table")),i("getTables",a,e,Ge("getTables"),Ce(0,1)),i("setTables","tables: "+e,V,ze("setTables","tables"),Ce(1,1)),i("delTables",a,V,ze("delTables"),Ce(3,1)),i("getTableIds",a,l+"[]",Ge("getTableIds",a,l+"[]"),Te("Table",ne)),i("forEachTable","tableCallback: "+s,"void",Ge("forEachTable","tableCallback as any"),fe("Table",ne));const A=k();p(((e,[l,s,o,n,d,$],u,I)=>{r(1,C,l,s,o,n,d,$),i(`has${u}Table`,a,t,Ge("hasTable",I),Re(Le(e))),i(`get${u}Table`,a,l,Ge("getTable",I,l),Je(e)),i(`set${u}Table`,"table: "+l,V,ze("setTable",I+", table"),Je(e,1)),i(`del${u}Table`,a,V,ze("delTable",I),Je(e,3)),i(`get${u}RowIds`,a,"Ids",Ge("getRowIds",I),Te("Row",Le(e))),i(`get${u}SortedRowIds`,`cellId?: ${n}, descending?: boolean, offset?: number, limit?: number`,"Ids",Ge("getSortedRowIds",I+", cellId, descending, offset, limit"),Te("Row",Le(e),1)),i(`forEach${u}Row`,"rowCallback: "+$,"void",Ge("forEachRow",I+", rowCallback as any"),fe("Row",Le(e))),i(`has${u}Row`,"rowId: Id",t,Ge("hasRow",I+", rowId"),Re(we,Le(e))),i(`get${u}Row`,"rowId: Id",s,Ge("getRow",I+", rowId",s),Ee(e)),i(`set${u}Row`,"rowId: Id, row: "+o,V,ze("setRow",I+", rowId, row"),Ee(e,1)),i(`add${u}Row`,"row: "+o,"Id"+ie,Ge("addRow",I+", row"),"Adds a new Row to "+Le(e)),i(`set${u}PartialRow`,"rowId: Id, partialRow: "+o,V,ze("setPartialRow",I+", rowId, partialRow"),Ee(e,2)),i(`del${u}Row`,"rowId: Id",V,ze("delRow",I+", rowId"),Ee(e,3)),i(`get${u}CellIds`,"rowId: Id",n+"[]",Ge("getCellIds",I+", rowId",n+"[]"),Te("Cell",ye(e))),i(`forEach${u}Cell`,"rowId: Id, cellCallback: "+d,"void",Ge("forEachCell",I+", rowId, cellCallback as any"),fe("Cell",ye(e))),y(e,((l,s,o,n,d)=>{const r="Map"+H(s,1);j(A,s,r),i(`has${u}${d}Cell`,"rowId: Id",t,Ge("hasCell",`${I}, rowId, ${n}`),Re(Se(l),ye(e)));const $=`${s}${T(o)?ie:a}`;i(`get${u}${d}Cell`,"rowId: Id",$,Ge("getCell",`${I}, rowId, ${n}`,$),Ae(e,l)),i(`set${u}${d}Cell`,`rowId: Id, cell: ${s} | ${r}`,V,ze("setCell",`${I}, rowId, ${n}, cell as any`),Ae(e,l,1)),i(`del${u}${d}Cell`,"rowId: Id",V,ze("delCell",`${I}, rowId, ${n}`),Ae(e,l,3))}))})),i("getTablesJson",a,"Json",Ge("getTablesJson"),Ce(5,1)),i("setTablesJson","tablesJson: Json",V,ze("setTablesJson","tablesJson"),Ce(6,1)),i("addTablesListener",`${$e}: ${u}, mutator?: boolean`,"Id",Fe("addTablesListener",a,"mutator"),Ce(7,1)+" changes"),i("addTableIdsListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addTableIdsListener",a,"mutator"),pe("the Table Ids",ne,1)),i("addTableListener",`tableId: ${l} | null, ${$e}: ${w}, mutator?: boolean`,"Id",Fe("addTableListener","tableId","mutator"),pe("a Table",ne)),i("addRowIdsListener",`tableId: ${l} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addRowIdsListener","tableId","mutator"),pe("the Row Ids","a Table",1)),i("addRowListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addRowListener","tableId, rowId","mutator"),pe("a Row","a Table")),i("addCellIdsListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${v}, mutator?: boolean`,"Id",Fe("addCellIdsListener","tableId, rowId","mutator"),pe("the Cell Ids","a Row",1)),i("addCellListener",`tableId: ${l} | null, rowId: IdOrNull, cellId: ${q(p(((e,a)=>a[3]))," | ")} | null, ${$e}: ${S}, mutator?: boolean`,"Id",Fe("addCellListener","tableId, rowId, cellId","mutator"),pe("a Cell","a Row")),i("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${$e}: ${J}, mutator?: boolean`,"Id",Fe("addInvalidCellListener","tableId, rowId, cellId","mutator"),ue+" whenever an invalid Cell change was attempted"),E(A,((e,a)=>$(a,`(cell: ${e}${ie}) => ${e}`,`Takes a ${e} Cell value and returns another`))),r(1,C,e,l,s,u,b,w,h,g,v,S,J,...L(A)),r(0,"tinybase","CellChange"),c(m,".setTablesSchema({",B(p(((e,l,t,s)=>[`[${s}]: {`,...y(e,((e,l,t,s)=>`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`)),"},"]))),"})")}if(!oe(l)){const e=$("Values",`{${q(S(((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ce(4,2)),l=$("ValuesWhenSet",`{${q(S(((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ce(4,2,1)),s=$("ValueId",q(S((e=>`'${e}'`))," | "),"A Value Id in "+ne),d=$("ValueCallback",`(...[valueId, rowCallback]: ${q(S(((e,a)=>`[valueId: '${e}', value: ${a}]`))," | ")})${ce}`,me("a Value Id, and value")),u=$("GetValueChange",`(valueId: ${s}) => ValueChange`,de+" returning information about any Value's changes during a transaction"),b=$("ValuesListener",`(${f}: ${V}, getValueChange: ${u}${ie})`+ce,ve(9)),w=$("ValueIdsListener",`(${f}: ${V})${ce}`,ve(10)),h=$("ValueListener",`(...[${f}, valueId, newValue, oldValue, getValueChange]: ${q(S(((e,a)=>`[${f}: ${V}, valueId: '${e}', newValue: ${a}${ie}, oldValue: ${a}${ie}, getValueChange: ${u} | undefined]`))," | ")})${ce}`,ve(11)),g=$("InvalidValueListener",`(${f}: ${V}, valueId: Id, invalidValues: any[])${ce}`,ve(12));i("hasValues",a,t,Ge("hasValues"),Re("any Value")),i("getValues",a,e,Ge("getValues",a,e),Ce(0,2)),i("setValues","values: "+l,V,ze("setValues","values"),Ce(1,2)),i("setPartialValues","partialValues: "+l,V,ze("setPartialValues","partialValues"),Ce(2,2)),i("delValues",a,V,ze("delValues"),Ce(3,2)),i("getValueIds",a,s+"[]",Ge("getValueIds",a,s+"[]"),Te("Value",ne)),i("forEachValue","valueCallback: "+d,"void",Ge("forEachValue","valueCallback as any"),fe("Value",ne)),S(((e,l,s,o,n)=>{i(`has${n}Value`,a,t,Ge("hasValue",o),Re(ke(e))),i(`get${n}Value`,a,l,Ge("getValue",o,l),je(e)),i(`set${n}Value`,"value: "+l,V,ze("setValue",o+", value"),je(e,1)),i(`del${n}Value`,a,V,ze("delValue",o),je(e,3))})),i("getValuesJson",a,"Json",Ge("getValuesJson"),Ce(5,2)),i("setValuesJson","valuesJson: Json",V,ze("setValuesJson","valuesJson"),Ce(6,2)),i("addValuesListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addValuesListener",a,"mutator"),Ce(7,2)+" changes"),i("addValueIdsListener",`${$e}: ${w}, mutator?: boolean`,"Id",Fe("addValueIdsListener",a,"mutator"),pe("the Value Ids",ne,1)),i("addValueListener",`valueId: ${s} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addValueListener","valueId","mutator"),pe("a Value",ne)),i("addInvalidValueListener",`valueId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addInvalidValueListener","valueId","mutator"),ue+" whenever an invalid Cell change was attempted"),r(1,C,e,l,s,d,b,w,h,g),r(0,"tinybase","ValueChange"),c(m,".setValuesSchema({",S(((e,l,t,s)=>[`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`])),"})")}r(0,"tinybase",...Ne);const J=$("TransactionListener",`(${f}: ${V}, cellsTouched: boolean, valuesTouched: boolean)${ce}`,de+" listening to the completion of a transaction");return i("getJson",a,"Json",Ge("getJson"),Ce(5)),i("setJson","json: Json",V,ze("setJson","json"),Ce(6)),i("transaction","actions: () => Return, doRollback?: DoRollback","Return",Ge("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),i("startTransaction",a,V,ze("startTransaction"),"Explicitly starts a transaction"),i("finishTransaction","doRollback?: DoRollback,",V,ze("finishTransaction","doRollback"),"Explicitly finishes a transaction"),i("addWillFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addWillFinishTransactionListener"),`${ue} just before ${be}`),i("addDidFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addDidFinishTransactionListener"),`${ue} just after ${be}`),i("callListener",$e+"Id: Id",V,ze("callListener",$e+"Id"),`Manually provoke a ${$e} to be called`),i("delListener",$e+"Id: Id",V,ze("delListener",$e+"Id"),`Remove a ${$e} that was previously added to ${ne}`),i("getStore",a,"Store","store",Oe[0]+" the underlying Store object"),r(1,"tinybase","createStore",...Ne),r(1,C,V,`create${V} as create${V}Decl`,J),I("store",["createStore()",...m]),u("fluent","actions: () => Store",["actions();",`return ${f};`]),u("proxy",$e+": any",`(_: Store, ...args: any[]) => ${$e}(${f}, ...args)`),I(f,["{",...h(1),"}"]),[d(...b(0),...w(),`${re} interface ${V} {`,...h(0),"}",a,X(`Creates a ${V} object`),`${re} function create${V}(): ${V};`),d(...b(1),`${re} const create${V}: typeof create${V}Decl = () => {`,...g(),`return Object.freeze(${f});`,"};")]},We={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Me=(e=>{const a=new WeakMap;return l=>(a.has(l)||a.set(l,e(l)),a.get(l))})((e=>{const a=()=>{const a=g(e.getTablesSchemaJson());return!oe(a)||d(e.getTableIds(),(l=>{const t=e.getRowIds(l),s=k();if(d(t,(a=>d(e.getCellIds(l,a),(t=>{const o=e.getCell(l,a,t),n=O(s,t,(()=>[v(o),k(),[0],0])),[d,r,[$]]=n,i=O(r,o,(()=>0))+1;return i>$&&(n[2]=[i,o]),j(r,o,i),n[3]++,d==v(o)})))))return a[l]={},y(s,(([e,,[,s],d],r)=>{a[l][r]={[o]:e,...d==u(t)?{[n]:s}:{}}})),1}))?a:{}},l=()=>{const a=g(e.getValuesSchemaJson());return oe(a)&&e.forEachValue(((e,l)=>{a[e]={[o]:v(l)}})),a},t=e=>Pe(a(),l(),e),s=async e=>{let a;try{a=(await import("prettier")).format}catch{a=e=>e}return i(t(e),(e=>Q(a(e,We))))};return le({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:u(e.getValueIds()),jsonLength:U(e.getJson()),...a?{detail:{tables:o}}:{}}},getStoreTablesSchema:a,getStoreValuesSchema:l,getStoreApi:t,getPrettyStoreApi:s,getStore:()=>e})}));export{Me as createTools};
1
+ const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",r="default",s="Listener",d="get",$="add",c="Ids",i="Table",u=i+"s",I=i+c,b="Row",h=b+c,p="Sorted"+b+c,g="Cell",f=g+c,w="Value",C=w+"s",m=w+c,v=(e,t)=>e.every(t),y=(e,t)=>e.sort(t),R=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),k=e=>e.length,V=e=>0==k(e),x=(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,T=isFinite,j=(e,t)=>e instanceof t,E=e=>null==e,M=e=>e==l||e==a,z=t=>e(t)==l,G=e=>Array.isArray(e),J=t=>{const l=e(t);return M(l)||l==n&&T(t)?l:void 0},L=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],B=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),U=e=>new Map(e),_=(e,t)=>e?.get(t),Z=(e,t)=>B(e,((e,l)=>t(l,e))),H=(e,t)=>S([...e?.entries()??[]],(([e,l])=>t(l,e))),Q=(e,t,l)=>E(l)?(F(e,t),e):e?.set(t,l),q=(e,t,l)=>(L(e,t)||Q(e,t,l()),_(e,t)),K=e=>e.toUpperCase(),X=e=>e.toLowerCase(),Y="a ",ee="A function for",te="Callback",le="Del",ae="export",ne="Id",oe="Invalid",re="Json",se=X(s),de=" | undefined",$e="Partial",ce=`Registers a ${se} that will be called`,ie="Represents",ue="Set",Ie="[]",be="the Store",he="Transaction",pe=X(he),ge="the end of the "+pe,fe="void",we=" => "+fe,Ce=Y+"string serialization of",me=" ",ve="Gets a callback that can ",ye="the ",Re=(e=0,l=0)=>`the ${Je[e]}content of`+(l?me+be:t),Se=(e=0,l,a=0)=>ze[l]+me+Re(e,1)+(a?" when set":t),ke=(e,t=0)=>ie+` a Row when ${t?"s":"g"}etting ${Re()} the '${e}' `+i,Ve=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,xe=(e,t)=>`Calls a function for each ${e} in `+t,Oe=e=>"A function that takes "+e,De=(e,t=0)=>ee+" listening to changes to "+Ge[e]+" in "+Ge[t],Ae=(e,l,a=0)=>ce+" whenever "+Ge[e]+" in "+Ge[l]+" change"+(a?t:"s"),Ne=e=>`the '${e}' `+i,Pe=e=>"the specified Row in "+Ne(e),Te=(e,t=0)=>ze[t]+` ${Re()} `+Ne(e),je=(e,t=0)=>ze[t]+` ${Re()} `+Pe(e),Ee=(e,t,l=0)=>ze[l]+` the '${t}' Cell for `+Pe(e),Me=(e,t=0)=>ze[t]+` the '${e}' Value`,ze=["Gets","Checks existence of","Sets","Deletes","Sets part of",ie,"Gets "+Ce,"Sets "+Ce,ce+" whenever",ve+"set",ve+"add",ve+"set part of",ve+"delete"],Ge=[be,u,ye+i+me+c,Y+i,ye+b+me+c,Y+b,ye+g+me+c,Y+g,"invalid Cell changes",C,ye+w+me+c,Y+w,"invalid Value changes",ye+"sorted "+b+me+c],Je=[t,"tabular ","keyed value "],Le=e=>new Set(G(e)||E(e)?e:[e]),We=(e,t)=>e?.add(t),Be=/[^A-Za-z]+/,Fe=/[^A-Za-z0-9]+/,Ue=/^( *)\/\*\* *(.*?) *\*\/$/gm,_e=(e,t,l)=>e.substring(t,l),Ze=e=>e.includes(","),He=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return L(e,n)?He(e,t,l,a+1):(Q(e,n,l),n)},Qe=e=>e.replace(Ue,((e,t,l)=>{const a=77-qe(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),qe=e=>e.length,Ke=(e,l=t)=>e.join(l),Xe=e=>e.flat(1e3),Ye=(e,t=0)=>Ke(S(e.split(Fe),((e,l)=>(l>0||t?K:X)(_e(e,0,1))+_e(e,1)))),et=e=>K(Ke((e&&!Be.test(e[0])?e:" "+e).split(Fe),"_")),tt=e=>`/** ${e}. */`,lt=(...e)=>Ke(x(e,(e=>e)),", "),at=()=>{const e=[U(),U(),U(),U()],l=U(),a=U();return[(...e)=>Ke(Xe(e),"\n"),(t,l,...a)=>R(a,(a=>R([0,1],(n=>(t??n)==n?We(q(e[n],l,Le),a):0)))),(e,t,a)=>He(l,e,[t,a]),(e,t,l)=>He(a,e,G(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>_(a,e)===t?e:He(a,e,t),(l=0)=>S([...y(H(e[l],((e,t)=>`import {${Ke(y(W(e)),", ")}} from '${t}';`)),((e,t)=>Ze(e)!=Ze(t)?Ze(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>H(l,(([e,l],a)=>[tt(l),`${ae} type ${a} = ${e};`,t])),()=>H(a,((e,l)=>(e=G(e)?e:[e],O(e,D(e)+";"),[`const ${l} = ${N(e)}`,e,t])))]},nt=Object,ot=nt.keys,rt=nt.freeze,st=e=>j(e,nt)&&e.constructor==nt,dt=(e,t)=>S(nt.entries(e),(([e,l])=>t(l,e))),$t=e=>st(e)&&V(ot(e)),ct=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},it=(e,t,l)=>[t=>dt(e,((e,a)=>t(a,Ye(a,1),l(et(a),`'${a}'`)))),(t,a)=>dt(e[t],((e,t)=>a(t,e[o],e[r],l(et(t),`'${t}'`),Ye(t,1)))),e=>dt(t,((t,a)=>e(a,t[o],t[r],l(et(a),`'${a}'`),Ye(a,1))))],ut=[d,"has","set","del","set","forEach",$,t],It=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),bt=(e,l=t)=>`fluent(() => ${It(e,l)})`,ht=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,pt=(e,l,n)=>{const[d,v,y,S,k,V,x,D]=at(),[N,P,T]=it(e,l,k),j=U(),M=(e=0)=>H(j,(([l,a,n,o,r],s)=>{const d=e?[s+`: ${r}(${l}): ${a} => ${n},`]:[s+r+`(${l}): ${a};`];return e||A(d,tt(o)),O(d,t),d})),G=(e,l,a,n,o,r=t)=>He(j,e,[l,a,n,o,r]),J=(e,l,a,n,o,r=t,s=t,d=t)=>G(ut[e]+l+(4==e?$e:t)+a,r,n,(n==F?bt:It)(ut[e]+(4==e?$e:t)+a,s,e?void 0:n),o,d),L=(e,l,a,n=t,o=t,r=1)=>G($+e+s,(n?n+", ":t)+se+": "+l+(r?", mutator?: boolean":t),ne,ht($+e+s,o,r?"mutator":t),a),B=`./${Ye(n)}.d`,F=Ye(n,1),q=Ye(F),K=[],X=U();let le=[],ue=[];if(v(1,B,F,`create${F} as create${F}Decl`),!$t(e)){const e=U();N(((l,a)=>{const n=[y(a+i,`{[rowId: Id]: ${a}Row}`,ie+` the '${l}' `+i),y(a+b,`{${Ke(P(l,((e,l,a)=>`'${e}'${E(a)?"?":t}: ${l};`))," ")}}`,ke(l)),y(a+b+"WhenSet",`{${Ke(P(l,((e,t)=>`'${e}'?: ${t};`))," ")}}`,ke(l,1)),y(a+g+ne,Ke(P(l,(e=>`'${e}'`))," | "),`A Cell Id for the '${l}' `+i),y(a+g+te,`(...[cellId, cell]: ${Ke(P(l,((e,t)=>`[cellId: '${e}', cell: ${t}]`))," | ")})`+we,Oe(`a Cell Id and value from a Row in the '${l}' `+i)),y(a+b+te,`(rowId: Id, forEachCell: (cellCallback: ${a}CellCallback)`+we+")"+we,Oe(`a Row Id from the '${l}' Table, and a Cell iterator`))];Q(e,l,n),v(1,B,...n)}));const l=y(u,`{${Ke(N((t=>`'${t}'?: ${_(e,t)?.[0]};`))," ")}}`,Se(1,5)),n=y(i+ne,Ke(N((e=>`'${e}'`))," | "),"A "+i+" Id in "+be),d=y(i+te,`(...[tableId, rowCallback]: ${Ke(N((t=>`[tableId: '${t}', forEachRow: (rowCallback: ${_(e,t)?.[5]})${we}]`))," | ")})`+we,Oe(Y+i+" Id, and a Row iterator")),$=y("GetCellChange",`(...[tableId, rowId, cellId]: ${Ke(N((t=>`[tableId: '${t}', rowId: Id, cellId: ${_(e,t)?.[3]}]`))," | ")}) => CellChange`,ee+" returning information about any Cell's changes during a "+pe),w=y(u+s,`(${q}: ${F}, getCellChange: ${$}${de})`+we,De(1)),C=y(I+s,`(${q}: ${F})`+we,De(2)),m=y(i+s,`(${q}: ${F}, tableId: ${n}, getCellChange: ${$}${de})`+we,De(3)),S=y(h+s,`(${q}: ${F}, tableId: ${n})`+we,De(4,3)),V=y(p+s,"("+lt(q+": "+F,"tableId: "+n,"cellId: Id"+de,"descending: boolean","offset: number","limit: number"+de,"sortedRowIds: Ids")+")"+we,De(13,3)),x=y(b+s,`(${q}: ${F}, tableId: ${n}, rowId: Id, getCellChange: ${$}${de})`+we,De(5,3)),D=y(f+s,`(${q}: ${F}, tableId: ${n}, rowId: Id)`+we,De(6,5)),A=y(g+s,`(...[${q}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${Ke(Xe(N((e=>P(e,((t,l)=>`[${q}: ${F}, tableId: '${e}', rowId: Id, cellId: '${t}', newCell: ${l}${de}, oldCell: ${l}${de}, getCellChange: ${$} | undefined]`)))))," | ")})`+we,De(7,5)),T=y(oe+g+s,`(${q}: ${F}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])`+we,De(8));le=[l,n,w,C,m,S,V,x,D,A,e],R([[l],[a],[F,"tables: "+l,"tables"],[F]],(([e,l,a],n)=>J(n,t,u,e,Se(1,n),l,a))),J(0,t,I,n+Ie,Ve(i,be)),J(5,t,i,fe,xe(i,be),"tableCallback: "+d,"tableCallback as any"),N(((l,n,o)=>{const[r,s,d,$,u,I]=_(e,l);R([[r],[a],[F,"table: "+r,", table"],[F]],(([e,a,r=t],s)=>J(s,n,i,e,Te(l,s),a,o+r))),J(0,n,h,c,Ve(b,Ne(l)),t,o),J(0,n,p,c,Ve(b,Ne(l),1),"cellId?: "+$+", descending?: boolean, offset?: number, limit?: number",o+", cellId, descending, offset, limit"),J(5,n,b,fe,xe(b,Ne(l)),"rowCallback: "+I,o+", rowCallback as any"),R([[s],[a],[F,", row: "+d,", row"],[F],[F,", partialRow: "+d,", partialRow"]],(([e,a=t,r=t],s)=>J(s,n,b,e,je(l,s),"rowId: Id"+a,o+", rowId"+r))),J(6,n,b,ne+de,"Adds a new Row to "+Ne(l),"row: "+d,o+", row"),J(0,n,f,$+Ie,Ve(g,Pe(l)),"rowId: "+ne,o+", rowId"),J(5,n,g,fe,xe(g,Pe(l)),"rowId: Id, cellCallback: "+u,o+", rowId, cellCallback as any"),P(l,((e,r,s,d,$)=>{const c="Map"+Ye(r,1);Q(X,r,c);const i=r+(E(s)?de:t);R([[i],[a],[F,`, cell: ${r} | `+c,", cell as any"],[F]],(([a,r=t,s=t],c)=>J(c,n+$,g,a,Ee(l,e,c),"rowId: Id"+r,o+", rowId, "+d+s)))}))})),J(0,t,u+re,re,Se(1,6)),J(2,t,u+re,F,Se(1,7),"tablesJson: "+re,"tables"+re),L(u,w,Se(1,8)+" changes"),L(I,C,Ae(2,0,1)),L(i,m,Ae(3,0),`tableId: ${n} | null`,"tableId"),L(h,S,Ae(4,3,1),`tableId: ${n} | null`,"tableId"),L(p,V,Ae(13,3,1),lt("tableId: "+n,"cellId: Id"+de,"descending: boolean","offset: number","limit: number"+de),lt("tableId","cellId","descending","offset","limit")),L(b,x,Ae(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),L(f,D,Ae(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),L(g,A,Ae(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${Ke(N((l=>_(e,l)?.[3]??t))," | ")} | null`,"tableId, rowId, cellId"),L(oe+g,T,ce+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),v(1,B,l,n,d,w,C,m,S,V,x,D,A,T,...W(X)),v(0,"tinybase","CellChange"),O(K,".setTablesSchema({",Xe(N(((e,l,a)=>[`[${a}]: {`,...P(e,((e,l,a,n)=>`[${n}]: {[${k(et(o),`'${o}'`)}]: ${k(et(l),`'${l}'`)}${E(a)?t:`, [${k(et(r),`'${r}'`)}]: `+(z(a)?k(et(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!$t(l)){const e=y(C,"{"+Ke(T(((e,l,a)=>`'${e}'${E(a)?"?":t}: ${l};`))," ")+"}",Se(2,5)),l=y(C+"WhenSet","{"+Ke(T(((e,t)=>`'${e}'?: ${t};`))," ")+"}",Se(2,5,1)),n=y(w+ne,Ke(T((e=>`'${e}'`))," | "),"A Value Id in "+be),d=y(w+te,`(...[valueId, rowCallback]: ${Ke(T(((e,t)=>`[valueId: '${e}', value: ${t}]`))," | ")})`+we,Oe("a Value Id, and value")),$=y("GetValueChange",`(valueId: ${n}) => ValueChange`,ee+" returning information about any Value's changes during a "+pe),c=y(C+s,`(${q}: ${F}, getValueChange: ${$}${de})`+we,De(9)),i=y(m+s,`(${q}: ${F})`+we,De(10)),u=y(w+s,`(...[${q}, valueId, newValue, oldValue, getValueChange]: ${Ke(T(((e,t)=>`[${q}: ${F}, valueId: '${e}', newValue: ${t}${de}, oldValue: ${t}${de}, getValueChange: ${$} | undefined]`))," | ")})`+we,De(11)),I=y(oe+w+s,`(${q}: ${F}, valueId: Id, invalidValues: any[])`+we,De(12));ue=[e,l,n,c,i,u],R([[e],[a],[F,"values: "+l,"values"],[F],[F,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>J(n,t,C,e,Se(2,n),l,a))),J(0,t,m,n+Ie,Ve(w,be)),J(5,t,w,"void",xe(w,be),"valueCallback: "+d,"valueCallback as any"),T(((e,l,n,o,r)=>{const s="Map"+Ye(l,1);Q(X,l,s),R([[l],[a],[F,`value: ${l} | `+s,", value as any"],[F]],(([l,a,n=t],s)=>J(s,r,w,l,Me(e,s),a,o+n)))})),J(0,t,C+re,re,Se(2,6)),J(2,t,C+re,F,Se(2,7),"valuesJson: "+re,"values"+re),L(C,c,Se(2,8)+" changes"),L(m,i,Ae(10,0,1)),L(w,u,Ae(11,0),`valueId: ${n} | null`,"valueId"),L(oe+w,I,ce+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),v(1,B,e,l,n,d,c,i,u,I),v(0,"tinybase","ValueChange"),O(K,".setValuesSchema({",T(((e,l,a,n)=>[`[${n}]: {[${k(et(o),`'${o}'`)}]: ${k(et(l),`'${l}'`)}${E(a)?t:`, [${k(et(r),`'${r}'`)}]: `+(z(a)?k(et(a),`'${a}'`):a)}},`])),"})")}Z(X,((e,t)=>y(t,`(cell: ${e}${de}) => `+e,`Takes a ${e} Cell value and returns another`))),v(null,"tinybase","DoRollback",ne,"IdOrNull",c,re,"Store");const Ce=y(he+s,`(${q}: ${F}, cellsTouched: boolean, valuesTouched: boolean)`+we,ee+" listening to the completion of a "+pe);return J(0,t,re,re,Se(0,6)),J(2,t,re,F,Se(0,7),"json: "+re,"json"),J(7,t,pe,"Return","Execute a "+pe+" to make multiple mutations","actions: () => Return, doRollback?: DoRollback","actions, doRollback","<Return>"),J(7,t,"start"+he,F,"Explicitly starts a "+pe),J(7,t,"finish"+he,F,"Explicitly finishes a "+pe,"doRollback?: DoRollback,","doRollback"),L("WillFinish"+he,Ce,ce+" just before "+ge,t,t,0),L("DidFinish"+he,Ce,ce+" just after "+ge,t,t,0),J(7,t,"call"+s,F,"Manually provoke a listener to be called","listenerId: Id","listenerId"),J(3,t,s,F,"Remove a listener that was previously added to "+be,"listenerId: Id","listenerId"),G("getStore",t,"Store","store",ze[0]+" the underlying Store object"),v(1,"tinybase","createStore"),v(1,B,F,`create${F} as create${F}Decl`,Ce),k("store",["createStore()",...K]),S("fluent","actions: () => Store",["actions();",`return ${q};`]),S("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),k(q,["{",...M(1),"}"]),[d(...V(0),...x(),ae+" interface "+F+" {",...M(0),"}",t,tt(`Creates a ${F} object`),ae+" function create"+F+"(): "+F+";"),d(...V(1),ae+" const create"+F+": typeof create"+F+"Decl = () => {",...D(),`return Object.freeze(${q});`,"};"),le,ue]},gt="Deps",ft=e=>d+e,wt=e=>lt(ft(e),ft(e)+gt),Ct="Parameter",mt=": (parameter: "+Ct+", store: Store) => ",vt="const contextValue = useContext(Context);",yt=", and registers a listener so that any changes to that result will cause a re-render",Rt=", based on a parameter",St=": ",kt=Ct+"ized"+te+"<"+Ct+">",Vt="<"+Ct+",>",xt=gt+"?: React.DependencyList",Ot="then"+xt,Dt="then?: (store: Store",At=lt(Dt+")"+we,Ot),Nt="then, then"+gt,Pt="rowId",Tt=Pt+St+ne,jt=(e,...t)=>lt(...t,se+": "+e,se+xt,"mutator?: boolean"),Et=(...e)=>lt(...e,se,se+gt,"mutator"),Mt=(e,l,a,n,o)=>{const[r,d,$,v,y,R,S,k]=at(),[V,x,D]=it(e,l,y),N=`./${Ye(a)}.d`,P=`./${Ye(a)}-ui-react.d`,T="tinybase/ui-react",j=Ye(a,1),M=Ye(j),z=j+"Or"+j+ne,J=M+"Or"+j+ne,L=U(),W=(e,l,a,n,o,r=t)=>(d(1,P,e+" as "+e+"Decl"),He(L,e,[l,a,G(n)?["{",n,"}"]:n,o,r])),B=(e,l,a,n,o,r=t)=>W("use"+e,l,a,n,o,r),F=(e,l,a,n,o=t,r=t,s=t,$=t,c=t)=>{d(1,T,`use${l} as use${l}Core`),B(e,lt(o,X,$),a,ee+`(${J}, use${l}Core, [`+(r||t)+(c?"], ["+c:t)+"])",n,s)},Z=(e,t,l,a)=>W(e,t,1,l,a),Q=(e=0)=>H(L,(([l,a,n,o,r],s)=>{const d=e?[ae+` const ${s}: typeof ${s}Decl = ${r}(${l}): ${1==a?"any":a} =>`,n]:[ae+` function ${s}${r}(${l}): ${1==a?"ComponentReturnType":a};`];return e||A(d,tt(o)),O(d,t),d}));d(null,"tinybase",ne,c,"IdOrNull","Store",te,Ct+"ized"+te),d(0,T,"ComponentReturnType"),d(0,N,j);const q=$(z,j+" | "+ne,`Used when you need to refer to a ${j} in a React hook or component`),K=$("ProviderProps",`{readonly ${M}?: ${j}; readonly ${M}ById?: {[${M}Id: Id]: ${j}}}`,`Used with the Provider component, so that a ${j} can be passed into the context of an application`);d(1,"react","React"),d(1,P,q,K);const X=J+"?: "+q;y("{createContext, useContext, useMemo}","React"),y("Context",`createContext<[${j}?, {[${M}Id: Id]: ${j}}?]>([])`),B("Create"+j,`create: () => ${j}, create`+xt,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=B(j,"id?: Id",j+de,[vt,"return id == null ? contextValue[0] : contextValue[1]?.[id];"],`Get a reference to a ${j} from within a Provider component context`),ee=v("useHook",J+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${Y}(${J} as Id);`,`return hook(...preParams, ((${J} == null || typeof ${J} == 'string')`,`? ${M} : ${J})?.getStore(), ...postParams)`]);if(!$t(e)){const[e,l,a,o,r,$,w,C,m,v,y]=n;d(null,N,e,l,a,o,r,$,w,C,m,v),d(1,T),d(1,N,j),F(u,u,e,Se(1,0)+yt),F(I,I,l+Ie,Ve(i,be)+yt),F(ue+u+te,ue+u+te,kt,Se(1,9)+Rt,lt(ft(u)+mt+e,ft(u)+xt),wt(u),Vt,lt(Dt,`tables: ${e})`+we,Ot),Nt),F(le+u+te,le+u+te,te,Se(1,12),t,t,t,At,Nt),V(((e,l,a)=>{const[n,o,r,s]=_(y,e);d(0,N,n,o,r,s),d(1,N,n,o,r,s),F(l+i,i,n,Te(e)+yt,t,a),F(l+h,h,c,Ve(b,Ne(e))+yt,t,a),F(l+p,p,c,Ve(b,Ne(e),1)+yt,"cellId?: "+s+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit"),F(l+b,b,o,je(e)+yt,Tt,lt(a,Pt)),F(l+f,f,s+Ie,Ve(g,Pe(e))+yt,Tt,lt(a,Pt)),F(ue+l+i+te,ue+i+te,kt,Te(e,9)+Rt,lt(ft(i)+mt+n,ft(i)+xt),lt(a,wt(i)),Vt,lt(Dt,`table: ${n})`+we,Ot),Nt),F(le+l+i+te,le+i+te,te,Te(e,12),t,a,t,At,Nt),F(ue+l+b+te,ue+b+te,kt,je(e,9)+Rt,lt(Tt,ft(b)+mt+r,ft(b)+xt),lt(a,Pt,wt(b)),Vt,lt(Dt,`row: ${r})`+we,Ot),Nt),F("Add"+l+b+te,"Add"+b+te,kt,je(e,10)+Rt,lt(ft(b)+mt+r,ft(b)+xt),lt(a,wt(b)),Vt,"then?: ("+lt(Tt+de,"store: Store","row: "+r+")"+we,"then"+xt),Nt),F(ue+l+$e+b+te,ue+$e+b+te,kt,je(e,11)+Rt,lt(Tt,ft($e+b)+mt+r,ft($e+b)+xt),lt(a,Pt,wt($e+b)),Vt,lt(Dt,`partialRow: ${r})`+we,Ot),Nt),F(le+l+b+te,le+b+te,te,je(e,12),Tt,lt(a,Pt),t,At,Nt),x(e,((n,o,r,s,$)=>{const c="Map"+Ye(o,1);d(0,N,c),d(1,N,c),F(l+$+g,g,o+(E(r)?de:t),Ee(e,n)+yt,Tt,lt(a,Pt,s)),F(ue+l+$+g+te,ue+g+te,kt,Ee(e,n,9)+Rt,lt(Tt,ft(g)+mt+o+" | "+c,ft(g)+xt),lt(a,Pt,s,wt(g)),Vt,lt(Dt,`cell: ${o} | ${c})`+we,Ot),Nt),F(le+l+$+g+te,le+g+te,te,Ee(e,n,12),lt(Tt,"forceDel?: boolean"),lt(a,Pt,s,"forceDel"),t,At,Nt)}))}));const R=Ke(V((e=>_(y,e)?.[3]??t))," | ");F(u+s,u+s,fe,Se(1,8)+" changes",jt(a),Et()),F(I+s,I+s,fe,Ae(2,0,1),jt(o),Et()),F(i+s,i+s,fe,Ae(3,0),jt(r,`tableId: ${l} | null`),Et("tableId")),F(h+s,h+s,fe,Ae(4,3,1),jt($,`tableId: ${l} | null`),Et("tableId")),F(p+s,p+s,fe,Ae(13,3,1),jt(w,`tableId: ${l} | null`,"cellId: "+R+de,"descending: boolean","offset: number","limit: number"+de),Et("tableId","cellId","descending","offset","limit")),F(b+s,b+s,fe,Ae(5,3),jt(C,`tableId: ${l} | null`,Pt+": IdOrNull"),Et("tableId",Pt)),F(f+s,f+s,fe,Ae(6,5,1),jt(m,`tableId: ${l} | null`,Pt+": IdOrNull"),Et("tableId",Pt)),F(g+s,g+s,fe,Ae(7,5),jt(v,`tableId: ${l} | null`,Pt+": IdOrNull",`cellId: ${R} | null`),Et("tableId",Pt,"cellId"))}if(!$t(l)){const[e,l,a,n,r,$]=o;d(null,N,...o),F(C,C,e,Se(2,0)+yt),F(m,m,a+Ie,Ve(w,be)+yt),F(ue+C+te,ue+C+te,kt,Se(2,9)+Rt,lt(ft(C)+mt+l,ft(C)+xt),wt(C),Vt,lt(Dt,`values: ${l})`+we,Ot),Nt),F(ue+$e+C+te,ue+$e+C+te,kt,Se(2,11)+Rt,lt(ft($e+C)+mt+l,ft($e+C)+xt),wt($e+C),Vt,lt(Dt,`partialValues: ${l})`+we,Ot),Nt),F(le+C+te,le+C+te,te,Se(2,12),t,t,t,At,Nt),D(((e,l,a,n,o)=>{const r="Map"+Ye(l,1);d(0,N,r),d(1,N,r),F(o+w,w,l,Me(e)+yt,t,n),F(ue+o+w+te,ue+w+te,kt,Me(e,9)+Rt,lt(ft(w)+mt+l+" | "+r,ft(w)+xt),lt(n,wt(w)),Vt,lt(Dt,`value: ${l} | ${r})`+we,Ot),Nt),F(le+o+w+te,le+w+te,te,Me(e,12),t,n,t,At,Nt)})),F(C+s,C+s,fe,Se(2,8)+" changes",jt(n),Et()),F(m+s,m+s,fe,Ae(10,0,1),jt(r),Et()),F(w+s,w+s,fe,Ae(11,0),jt($,`valueId: ${a} | null`),Et("valueId"))}return Z("Provider",`{${M}, ${M}ById, children}: `+K+" & {children: React.ReactNode}",[vt,"return (","<Context.Provider","value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}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(),...Q(0)),r(...R(1),...k(),...Q(1))]},zt=(e,l,a)=>{if($t(e)&&$t(l))return[t,t,t,t];const[n,o,r,s]=pt(e,l,a);return[n,o,...Mt(e,l,a,r,s)]},Gt={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Jt=ct((e=>{const t=()=>{const t=P(e.getTablesSchemaJson());return!$t(t)||v(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=U();if(v(a,(t=>v(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),r=q(n,a,(()=>[J(o),U(),[0],0])),[s,d,[$]]=r,c=q(d,o,(()=>0))+1;return c>$&&(r[2]=[c,o]),Q(d,o,c),r[3]++,s==J(o)})))))return t[l]={},B(n,(([e,,[,n],s],d)=>{t[l][d]={[o]:e,...s==k(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=P(e.getValuesSchemaJson());return $t(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>zt(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 S(a(e),((e,a)=>Qe(l(e,{...Gt,filepath:"_."+t[a]}))))};return rt({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,r)=>{l++;let s=0,d=0;const $={};r(((e,l)=>{s++;let a=0;l((()=>a++)),d+=a,t&&($[e]={rowCells:a})})),a+=s,n+=d,t&&(o[e]={tableRows:s,tableCells:d,rows:$})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:k(e.getValueIds()),jsonLength:qe(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{Jt as createTools};
package/lib/tools.js.gz CHANGED
Binary file
package/lib/ui-react.js CHANGED
@@ -1 +1 @@
1
- import e,{useContext as o}from"react";const t=e=>typeof e,s=t(""),d=(e,o)=>e.map(o),r=e=>null==e,n=(e,o,t)=>r(e)?t?.():o(e),l=()=>{},{createContext:I,useContext:u}=e,a=I([]),i=(e,o)=>{const t=u(a);return r(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},c=(e,o)=>{const d=i(e,o);return r(e)||(e=>t(e)==s)(e)?d:e},p=e=>i(e,0),b=e=>i(e,2),g=e=>i(e,4),w=e=>i(e,6),R=e=>i(e,8),C=e=>i(e,10),m=e=>c(e,0),k=e=>c(e,2),y=e=>c(e,4),h=e=>c(e,6),v=e=>c(e,8),T=e=>c(e,10),{useCallback:q,useEffect:P,useMemo:x,useRef:S,useState:V}=e,f=(e,o,t=[])=>{const s=x((()=>o(e)),[e,...t]);return P((()=>()=>s.destroy()),[s]),s},B=(e,o,t,s=[],d)=>{const[,n]=V(),l=q((()=>o?.["get"+e]?.(...s)??t),[o,...s]),[I]=V(l),u=S(I);return x((()=>u.current=l()),[l]),L(e,o,((...e)=>{u.current=r(d)?l():e[d],n([])}),[],s),u.current},L=(e,o,t,s=[],d=[],...r)=>P((()=>{const s=o?.["add"+e+"Listener"]?.(...d,t,...r);return()=>o?.delListener(s)}),[o,...d,...s,...r]),M=(e,o,t,s=[],d=l,r=[],...I)=>{const u=m(e);return q((e=>n(u,(s=>n(t(e,s),(e=>d(s["set"+o](...I,e),e)))))),[u,o,...s,...r,...I])},A=(e,o,t=l,s=[],...d)=>{const r=m(e);return q((()=>t(r?.["del"+o](...d))),[r,o,...s,...d])},E=(e,o,t)=>{const s=T(e);return q((()=>s?.[o](t)),[s,o,t])},F=(e,o=[])=>x(e,o),j=e=>B("Tables",m(e),{}),z=e=>B("TableIds",m(e),[],[]),D=(e,o)=>B("Table",m(o),{},[e]),G=(e,o)=>B("RowIds",m(o),[],[e]),H=(e,o,t,s=0,d,r)=>B("SortedRowIds",m(r),[],[e,o,t,s,d],6),J=(e,o,t)=>B("Row",m(t),{},[e,o]),K=(e,o,t)=>B("CellIds",m(t),[],[e,o]),N=(e,o,t,s)=>B("Cell",m(s),void 0,[e,o,t],4),O=e=>B("Values",m(e),{}),Q=e=>B("ValueIds",m(e),[],[]),U=(e,o)=>B("Value",m(o),void 0,[e]),W=(e,o,t,s,d)=>M(t,"Tables",e,o,s,d),X=(e,o,t,s,d,r)=>M(s,"Table",o,t,d,r,e),Y=(e,o,t,s,d,r,n)=>M(d,"Row",t,s,r,n,e,o),Z=(e,o,t=[],s,d=l,r=[])=>{const I=m(s);return q((t=>n(I,(s=>n(o(t,s),(o=>d(s.addRow(e,o),s,o)))))),[I,e,...t,...r])},$=(e,o,t,s,d,r,n)=>M(d,"PartialRow",t,s,r,n,e,o),_=(e,o,t,s,d,r,n,l)=>M(r,"Cell",s,d,n,l,e,o,t),ee=(e,o,t,s,d)=>M(t,"Values",e,o,s,d),oe=(e,o,t,s,d)=>M(t,"PartialValues",e,o,s,d),te=(e,o,t,s,d,r)=>M(s,"Value",o,t,d,r,e),se=(e,o,t)=>A(e,"Tables",o,t),de=(e,o,t,s)=>A(o,"Table",t,s,e),re=(e,o,t,s,d)=>A(t,"Row",s,d,e,o),ne=(e,o,t,s,d,r,n)=>A(d,"Cell",r,n,e,o,t,s),le=(e,o,t)=>A(e,"Values",o,t),Ie=(e,o,t,s)=>A(o,"Value",t,s,e),ue=(e,o,t,s)=>L("Tables",m(s),e,o,[],t),ae=(e,o,t,s)=>L("TableIds",m(s),e,o,[],t),ie=(e,o,t,s,d)=>L("Table",m(d),o,t,[e],s),ce=(e,o,t,s,d)=>L("RowIds",m(d),o,t,[e],s),pe=(e,o,t,s,d,r,n,l,I)=>L("SortedRowIds",m(I),r,n,[e,o,t,s,d],l),be=(e,o,t,s,d,r)=>L("Row",m(r),t,s,[e,o],d),ge=(e,o,t,s,d,r)=>L("CellIds",m(r),t,s,[e,o],d),we=(e,o,t,s,d,r,n)=>L("Cell",m(n),s,d,[e,o,t],r),Re=(e,o,t,s)=>L("Values",m(s),e,o,[],t),Ce=(e,o,t,s)=>L("ValueIds",m(s),e,o,[],t),me=(e,o,t,s,d)=>L("Value",m(d),o,t,[e],s),ke=(e,o,t)=>f(e,o,t),ye=(e,o)=>B("Metric",k(o),void 0,[e]),he=(e,o,t,s)=>L("Metric",k(s),o,t,[e]),ve=(e,o,t)=>f(e,o,t),Te=(e,o)=>B("SliceIds",y(o),[],[e]),qe=(e,o,t)=>B("SliceRowIds",y(t),[],[e,o]),Pe=(e,o,t,s)=>L("SliceIds",y(s),o,t,[e]),xe=(e,o,t,s,d)=>L("SliceRowIds",y(d),t,s,[e,o]),Se=(e,o,t)=>f(e,o,t),Ve=(e,o,t)=>B("RemoteRowId",h(t),void 0,[e,o]),fe=(e,o,t)=>B("LocalRowIds",h(t),[],[e,o]),Be=(e,o,t)=>B("LinkedRowIds",h(t),[],[e,o]),Le=(e,o,t,s,d)=>L("RemoteRowId",h(d),t,s,[e,o]),Me=(e,o,t,s,d)=>L("LocalRowIds",h(d),t,s,[e,o]),Ae=(e,o,t,s,d)=>L("LinkedRowIds",h(d),t,s,[e,o]),Ee=(e,o,t)=>f(e,o,t),Fe=(e,o)=>B("ResultTable",v(o),{},[e]),je=(e,o)=>B("ResultRowIds",v(o),[],[e]),ze=(e,o,t,s=0,d,r)=>B("ResultSortedRowIds",v(r),[],[e,o,t,s,d],6),De=(e,o,t)=>B("ResultRow",v(t),{},[e,o]),Ge=(e,o,t)=>B("ResultCellIds",v(t),[],[e,o]),He=(e,o,t,s)=>B("ResultCell",v(s),void 0,[e,o,t]),Je=(e,o,t,s)=>L("ResultTable",v(s),o,t,[e]),Ke=(e,o,t,s)=>L("ResultRowIds",v(s),o,t,[e]),Ne=(e,o,t,s,d,r,n,l)=>L("ResultSortedRowIds",v(l),r,n,[e,o,t,s,d]),Oe=(e,o,t,s,d)=>L("ResultRow",v(d),t,s,[e,o]),Qe=(e,o,t,s,d)=>L("ResultCellIds",v(d),t,s,[e,o]),Ue=(e,o,t,s,d,r)=>L("ResultCell",v(r),s,d,[e,o,t]),We=(e,o,t)=>f(e,o,t),Xe=e=>B("CheckpointIds",T(e),[[],void 0,[]]),Ye=(e,o)=>B("Checkpoint",T(o),void 0,[e]),Ze=(e=l,o=[],t,s=l,d=[])=>{const r=T(t);return q((o=>n(r,(t=>{const d=e(o);s(t.addCheckpoint(d),t,d)}))),[r,...o,...d])},$e=e=>E(e,"goBackward"),_e=e=>E(e,"goForward"),eo=(e,o=[],t,s=l,d=[])=>{const r=T(t);return q((o=>n(r,(t=>n(e(o),(e=>s(t.goTo(e),e)))))),[r,...o,...d])},oo=e=>{const o=T(e),[t,s]=Xe(o);return[(d=t,!(0==(e=>e.length)(d))),$e(o),s,n(s,(e=>o?.getCheckpoint(e)))??""];var d},to=e=>{const o=T(e),[,,[t]]=Xe(o);return[!r(t),_e(o),t,n(t,(e=>o?.getCheckpoint(e)))??""]},so=(e,o,t)=>L("CheckpointIds",T(t),e,o),ro=(e,o,t,s)=>L("Checkpoint",T(s),o,t,[e]),no=(e,o,t=[],s,d=[])=>{const[,r]=V(),n=x((()=>o(e)),[e,...t]);return P((()=>((async()=>{await(s?.(n)),r(1)})(),()=>{n.destroy()})),[n,...d]),n},{createElement:lo,useMemo:Io}=e,uo=({tableId:e,store:o,rowComponent:t=Co,getRowComponentProps:s,separator:r,debugIds:n},l)=>wo(d(l,(d=>lo(t,{...bo(s,d),key:d,tableId:e,rowId:d,store:o,debugIds:n}))),r,n,e),ao=({queryId:e,queries:o,resultRowComponent:t=Bo,getResultRowComponentProps:s,separator:r,debugIds:n},l)=>wo(d(l,(d=>lo(t,{...bo(s,d),key:d,queryId:e,rowId:d,queries:o,debugIds:n}))),r,n,e),io=e=>{const o=h(e);return[o,o?.getStore()]},co=({relationshipId:e,relationships:o,rowComponent:t=Co,getRowComponentProps:s,separator:r,debugIds:n},l,I)=>{const[u,a]=io(o),i=u?.getLocalTableId(e),c=l(e,I,u);return wo(d(c,(e=>lo(t,{...bo(s,e),key:e,tableId:i,rowId:e,store:a,debugIds:n}))),r,n,I)},po=e=>({checkpoints:o,checkpointComponent:t=Ao,getCheckpointComponentProps:s,separator:r,debugIds:n})=>{const l=T(o);return wo(d(e(Xe(l)),(e=>lo(t,{...bo(s,e),key:e,checkpoints:l,checkpointId:e,debugIds:n}))),r)},bo=(e,o)=>r(e)?{}:e(o),go=({store:e,storesById:t,metrics:s,metricsById:d,indexes:r,indexesById:n,relationships:l,relationshipsById:I,queries:u,queriesById:i,checkpoints:c,checkpointsById:p,children:b})=>{const g=o(a);return lo(a.Provider,{value:Io((()=>[e??g[0],{...g[1],...t},s??g[2],{...g[3],...d},r??g[4],{...g[5],...n},l??g[6],{...g[7],...I},u??g[8],{...g[9],...i},c??g[10],{...g[11],...p}]),[e,t,s,d,r,n,l,I,u,i,c,p,g])},b)},wo=(e,o,t,s)=>{const n=r(o)||!Array.isArray(e)?e:d(e,((e,t)=>t>0?[o,e]:e));return t?[s,":{",n,"}"]:n},Ro=({tableId:e,rowId:o,cellId:t,store:s,debugIds:d})=>wo(""+(N(e,o,t,s)??""),void 0,d,t),Co=({tableId:e,rowId:o,store:t,cellComponent:s=Ro,getCellComponentProps:r,separator:n,debugIds:l})=>wo(d(K(e,o,t),(d=>lo(s,{...bo(r,d),key:d,tableId:e,rowId:o,cellId:d,store:t,debugIds:l}))),n,l,o),mo=e=>uo(e,G(e.tableId,e.store)),ko=({cellId:e,descending:o,offset:t,limit:s,...d})=>uo(d,H(d.tableId,e,o,t,s,d.store)),yo=({store:e,tableComponent:o=mo,getTableComponentProps:t,separator:s,debugIds:r})=>wo(d(z(e),(s=>lo(o,{...bo(t,s),key:s,tableId:s,store:e,debugIds:r}))),s),ho=({valueId:e,store:o,debugIds:t})=>wo(""+(U(e,o)??""),void 0,t,e),vo=({store:e,valueComponent:o=ho,getValueComponentProps:t,separator:s,debugIds:r})=>wo(d(Q(e),(s=>lo(o,{...bo(t,s),key:s,valueId:s,store:e,debugIds:r}))),s),To=({metricId:e,metrics:o,debugIds:t})=>wo(ye(e,o)??"",void 0,t,e),qo=({indexId:e,sliceId:o,indexes:t,rowComponent:s=Co,getRowComponentProps:r,separator:n,debugIds:l})=>{const I=y(t),u=I?.getStore(),a=I?.getTableId(e),i=qe(e,o,I);return wo(d(i,(e=>lo(s,{...bo(r,e),key:e,tableId:a,rowId:e,store:u,debugIds:l}))),n,l,o)},Po=({indexId:e,indexes:o,sliceComponent:t=qo,getSliceComponentProps:s,separator:r,debugIds:n})=>wo(d(Te(e,o),(d=>lo(t,{...bo(s,d),key:d,indexId:e,sliceId:d,indexes:o,debugIds:n}))),r,n,e),xo=({relationshipId:e,localRowId:o,relationships:t,rowComponent:s=Co,getRowComponentProps:d,debugIds:n})=>{const[l,I]=io(t),u=l?.getRemoteTableId(e),a=Ve(e,o,l);return wo(r(u)||r(a)?null:lo(s,{...bo(d,a),key:a,tableId:u,rowId:a,store:I,debugIds:n}),void 0,n,o)},So=e=>co(e,fe,e.remoteRowId),Vo=e=>co(e,Be,e.firstRowId),fo=({queryId:e,rowId:o,cellId:t,queries:s,debugIds:d})=>wo(""+(He(e,o,t,s)??""),void 0,d,t),Bo=({queryId:e,rowId:o,queries:t,resultCellComponent:s=fo,getResultCellComponentProps:r,separator:n,debugIds:l})=>wo(d(Ge(e,o,t),(d=>lo(s,{...bo(r,d),key:d,queryId:e,rowId:o,cellId:d,queries:t,debugIds:l}))),n,l,o),Lo=e=>ao(e,je(e.queryId,e.queries)),Mo=({cellId:e,descending:o,offset:t,limit:s,...d})=>ao(d,ze(d.queryId,e,o,t,s,d.queries)),Ao=({checkpoints:e,checkpointId:o,debugIds:t})=>wo(Ye(o,e)??"",void 0,t,o),Eo=po((e=>e[0])),Fo=po((e=>r(e[1])?[]:[e[1]])),jo=po((e=>e[2]));export{Eo as BackwardCheckpointsView,Ro as CellView,Ao as CheckpointView,Fo as CurrentCheckpointView,jo as ForwardCheckpointsView,Po as IndexView,Vo as LinkedRowsView,So as LocalRowsView,To as MetricView,go as Provider,xo as RemoteRowView,fo as ResultCellView,Bo as ResultRowView,Mo as ResultSortedTableView,Lo as ResultTableView,Co as RowView,qo as SliceView,ko as SortedTableView,mo as TableView,yo as TablesView,ho as ValueView,vo as ValuesView,uo as tableView,Z as useAddRowCallback,N as useCell,K as useCellIds,ge as useCellIdsListener,we as useCellListener,Ye as useCheckpoint,Xe as useCheckpointIds,so as useCheckpointIdsListener,ro as useCheckpointListener,C as useCheckpoints,We as useCreateCheckpoints,ve as useCreateIndexes,ke as useCreateMetrics,no as useCreatePersister,Ee as useCreateQueries,Se as useCreateRelationships,F as useCreateStore,ne as useDelCellCallback,re as useDelRowCallback,de as useDelTableCallback,se as useDelTablesCallback,Ie as useDelValueCallback,le as useDelValuesCallback,$e as useGoBackwardCallback,_e as useGoForwardCallback,eo as useGoToCallback,g as useIndexes,Be as useLinkedRowIds,Ae as useLinkedRowIdsListener,fe as useLocalRowIds,Me as useLocalRowIdsListener,ye as useMetric,he as useMetricListener,b as useMetrics,R as useQueries,to as useRedoInformation,w as useRelationships,Ve as useRemoteRowId,Le as useRemoteRowIdListener,He as useResultCell,Ge as useResultCellIds,Qe as useResultCellIdsListener,Ue as useResultCellListener,De as useResultRow,je as useResultRowIds,Ke as useResultRowIdsListener,Oe as useResultRowListener,ze as useResultSortedRowIds,Ne as useResultSortedRowIdsListener,Fe as useResultTable,Je as useResultTableListener,J as useRow,G as useRowIds,ce as useRowIdsListener,be as useRowListener,_ as useSetCellCallback,Ze as useSetCheckpointCallback,$ as useSetPartialRowCallback,oe as useSetPartialValuesCallback,Y as useSetRowCallback,X as useSetTableCallback,W as useSetTablesCallback,te as useSetValueCallback,ee as useSetValuesCallback,Te as useSliceIds,Pe as useSliceIdsListener,qe as useSliceRowIds,xe as useSliceRowIdsListener,H as useSortedRowIds,pe as useSortedRowIdsListener,p as useStore,D as useTable,z as useTableIds,ae as useTableIdsListener,ie as useTableListener,j as useTables,ue as useTablesListener,oo as useUndoInformation,U as useValue,Q as useValueIds,Ce as useValueIdsListener,me as useValueListener,O as useValues,Re as useValuesListener};
1
+ import e,{useContext as o}from"react";const t=e=>typeof e,s=t(""),d=(e,o)=>e.map(o),r=e=>null==e,n=(e,o,t)=>r(e)?t?.():o(e),l=e=>t(e)==s,I=()=>{},{createContext:u,useContext:a}=e,i=u([]),c=(e,o)=>{const t=a(i);return r(e)?t[o]:l(e)?((e,o)=>n(e,(e=>e[o])))(t[o+1],e):e},p=(e,o)=>{const t=c(e,o);return r(e)||l(e)?t:e},b=e=>c(e,0),g=e=>c(e,2),w=e=>c(e,4),R=e=>c(e,6),C=e=>c(e,8),m=e=>c(e,10),k=e=>p(e,0),y=e=>p(e,2),h=e=>p(e,4),v=e=>p(e,6),T=e=>p(e,8),q=e=>p(e,10),{useCallback:P,useEffect:x,useMemo:S,useRef:V,useState:f}=e,B=(e,o,t=[])=>{const s=S((()=>o(e)),[e,...t]);return x((()=>()=>s.destroy()),[s]),s},L=(e,o,t,s=[],d)=>{const[,n]=f(),l=P((()=>o?.["get"+e]?.(...s)??t),[o,...s]),[I]=f(l),u=V(I);return S((()=>u.current=l()),[l]),M(e,o,((...e)=>{u.current=r(d)?l():e[d],n([])}),[],s),u.current},M=(e,o,t,s=[],d=[],...r)=>x((()=>{const s=o?.["add"+e+"Listener"]?.(...d,t,...r);return()=>o?.delListener(s)}),[o,...d,...s,...r]),A=(e,o,t,s=[],d=I,r=[],...l)=>{const u=k(e);return P((e=>n(u,(s=>n(t(e,s),(e=>d(s["set"+o](...l,e),e)))))),[u,o,...s,...r,...l])},E=(e,o,t=I,s=[],...d)=>{const r=k(e);return P((()=>t(r?.["del"+o](...d))),[r,o,...s,...d])},F=(e,o,t)=>{const s=q(e);return P((()=>s?.[o](t)),[s,o,t])},j=(e,o=[])=>S(e,o),z=e=>L("Tables",k(e),{}),D=e=>L("TableIds",k(e),[],[]),G=(e,o)=>L("Table",k(o),{},[e]),H=(e,o)=>L("RowIds",k(o),[],[e]),J=(e,o,t,s=0,d,r)=>L("SortedRowIds",k(r),[],[e,o,t,s,d],6),K=(e,o,t)=>L("Row",k(t),{},[e,o]),N=(e,o,t)=>L("CellIds",k(t),[],[e,o]),O=(e,o,t,s)=>L("Cell",k(s),void 0,[e,o,t],4),Q=e=>L("Values",k(e),{}),U=e=>L("ValueIds",k(e),[],[]),W=(e,o)=>L("Value",k(o),void 0,[e]),X=(e,o,t,s,d)=>A(t,"Tables",e,o,s,d),Y=(e,o,t,s,d,r)=>A(s,"Table",o,t,d,r,e),Z=(e,o,t,s,d,r,n)=>A(d,"Row",t,s,r,n,e,o),$=(e,o,t=[],s,d=I,r=[])=>{const l=k(s);return P((t=>n(l,(s=>n(o(t,s),(o=>d(s.addRow(e,o),s,o)))))),[l,e,...t,...r])},_=(e,o,t,s,d,r,n)=>A(d,"PartialRow",t,s,r,n,e,o),ee=(e,o,t,s,d,r,n,l)=>A(r,"Cell",s,d,n,l,e,o,t),oe=(e,o,t,s,d)=>A(t,"Values",e,o,s,d),te=(e,o,t,s,d)=>A(t,"PartialValues",e,o,s,d),se=(e,o,t,s,d,r)=>A(s,"Value",o,t,d,r,e),de=(e,o,t)=>E(e,"Tables",o,t),re=(e,o,t,s)=>E(o,"Table",t,s,e),ne=(e,o,t,s,d)=>E(t,"Row",s,d,e,o),le=(e,o,t,s,d,r,n)=>E(d,"Cell",r,n,e,o,t,s),Ie=(e,o,t)=>E(e,"Values",o,t),ue=(e,o,t,s)=>E(o,"Value",t,s,e),ae=(e,o,t,s)=>M("Tables",k(s),e,o,[],t),ie=(e,o,t,s)=>M("TableIds",k(s),e,o,[],t),ce=(e,o,t,s,d)=>M("Table",k(d),o,t,[e],s),pe=(e,o,t,s,d)=>M("RowIds",k(d),o,t,[e],s),be=(e,o,t,s,d,r,n,l,I)=>M("SortedRowIds",k(I),r,n,[e,o,t,s,d],l),ge=(e,o,t,s,d,r)=>M("Row",k(r),t,s,[e,o],d),we=(e,o,t,s,d,r)=>M("CellIds",k(r),t,s,[e,o],d),Re=(e,o,t,s,d,r,n)=>M("Cell",k(n),s,d,[e,o,t],r),Ce=(e,o,t,s)=>M("Values",k(s),e,o,[],t),me=(e,o,t,s)=>M("ValueIds",k(s),e,o,[],t),ke=(e,o,t,s,d)=>M("Value",k(d),o,t,[e],s),ye=(e,o,t)=>B(e,o,t),he=(e,o)=>L("Metric",y(o),void 0,[e]),ve=(e,o,t,s)=>M("Metric",y(s),o,t,[e]),Te=(e,o,t)=>B(e,o,t),qe=(e,o)=>L("SliceIds",h(o),[],[e]),Pe=(e,o,t)=>L("SliceRowIds",h(t),[],[e,o]),xe=(e,o,t,s)=>M("SliceIds",h(s),o,t,[e]),Se=(e,o,t,s,d)=>M("SliceRowIds",h(d),t,s,[e,o]),Ve=(e,o,t)=>B(e,o,t),fe=(e,o,t)=>L("RemoteRowId",v(t),void 0,[e,o]),Be=(e,o,t)=>L("LocalRowIds",v(t),[],[e,o]),Le=(e,o,t)=>L("LinkedRowIds",v(t),[],[e,o]),Me=(e,o,t,s,d)=>M("RemoteRowId",v(d),t,s,[e,o]),Ae=(e,o,t,s,d)=>M("LocalRowIds",v(d),t,s,[e,o]),Ee=(e,o,t,s,d)=>M("LinkedRowIds",v(d),t,s,[e,o]),Fe=(e,o,t)=>B(e,o,t),je=(e,o)=>L("ResultTable",T(o),{},[e]),ze=(e,o)=>L("ResultRowIds",T(o),[],[e]),De=(e,o,t,s=0,d,r)=>L("ResultSortedRowIds",T(r),[],[e,o,t,s,d],6),Ge=(e,o,t)=>L("ResultRow",T(t),{},[e,o]),He=(e,o,t)=>L("ResultCellIds",T(t),[],[e,o]),Je=(e,o,t,s)=>L("ResultCell",T(s),void 0,[e,o,t]),Ke=(e,o,t,s)=>M("ResultTable",T(s),o,t,[e]),Ne=(e,o,t,s)=>M("ResultRowIds",T(s),o,t,[e]),Oe=(e,o,t,s,d,r,n,l)=>M("ResultSortedRowIds",T(l),r,n,[e,o,t,s,d]),Qe=(e,o,t,s,d)=>M("ResultRow",T(d),t,s,[e,o]),Ue=(e,o,t,s,d)=>M("ResultCellIds",T(d),t,s,[e,o]),We=(e,o,t,s,d,r)=>M("ResultCell",T(r),s,d,[e,o,t]),Xe=(e,o,t)=>B(e,o,t),Ye=e=>L("CheckpointIds",q(e),[[],void 0,[]]),Ze=(e,o)=>L("Checkpoint",q(o),void 0,[e]),$e=(e=I,o=[],t,s=I,d=[])=>{const r=q(t);return P((o=>n(r,(t=>{const d=e(o);s(t.addCheckpoint(d),t,d)}))),[r,...o,...d])},_e=e=>F(e,"goBackward"),eo=e=>F(e,"goForward"),oo=(e,o=[],t,s=I,d=[])=>{const r=q(t);return P((o=>n(r,(t=>n(e(o),(e=>s(t.goTo(e),e)))))),[r,...o,...d])},to=e=>{const o=q(e),[t,s]=Ye(o);return[(d=t,!(0==(e=>e.length)(d))),_e(o),s,n(s,(e=>o?.getCheckpoint(e)))??""];var d},so=e=>{const o=q(e),[,,[t]]=Ye(o);return[!r(t),eo(o),t,n(t,(e=>o?.getCheckpoint(e)))??""]},ro=(e,o,t)=>M("CheckpointIds",q(t),e,o),no=(e,o,t,s)=>M("Checkpoint",q(s),o,t,[e]),lo=(e,o,t=[],s,d=[])=>{const[,r]=f(),n=S((()=>o(e)),[e,...t]);return x((()=>((async()=>{await(s?.(n)),r(1)})(),()=>{n.destroy()})),[n,...d]),n},{createElement:Io,useMemo:uo}=e,ao=({tableId:e,store:o,rowComponent:t=mo,getRowComponentProps:s,separator:r,debugIds:n},l)=>Ro(d(l,(d=>Io(t,{...go(s,d),key:d,tableId:e,rowId:d,store:o,debugIds:n}))),r,n,e),io=({queryId:e,queries:o,resultRowComponent:t=Lo,getResultRowComponentProps:s,separator:r,debugIds:n},l)=>Ro(d(l,(d=>Io(t,{...go(s,d),key:d,queryId:e,rowId:d,queries:o,debugIds:n}))),r,n,e),co=e=>{const o=v(e);return[o,o?.getStore()]},po=({relationshipId:e,relationships:o,rowComponent:t=mo,getRowComponentProps:s,separator:r,debugIds:n},l,I)=>{const[u,a]=co(o),i=u?.getLocalTableId(e),c=l(e,I,u);return Ro(d(c,(e=>Io(t,{...go(s,e),key:e,tableId:i,rowId:e,store:a,debugIds:n}))),r,n,I)},bo=e=>({checkpoints:o,checkpointComponent:t=Eo,getCheckpointComponentProps:s,separator:r,debugIds:n})=>{const l=q(o);return Ro(d(e(Ye(l)),(e=>Io(t,{...go(s,e),key:e,checkpoints:l,checkpointId:e,debugIds:n}))),r)},go=(e,o)=>r(e)?{}:e(o),wo=({store:e,storesById:t,metrics:s,metricsById:d,indexes:r,indexesById:n,relationships:l,relationshipsById:I,queries:u,queriesById:a,checkpoints:c,checkpointsById:p,children:b})=>{const g=o(i);return Io(i.Provider,{value:uo((()=>[e??g[0],{...g[1],...t},s??g[2],{...g[3],...d},r??g[4],{...g[5],...n},l??g[6],{...g[7],...I},u??g[8],{...g[9],...a},c??g[10],{...g[11],...p}]),[e,t,s,d,r,n,l,I,u,a,c,p,g])},b)},Ro=(e,o,t,s)=>{const n=r(o)||!Array.isArray(e)?e:d(e,((e,t)=>t>0?[o,e]:e));return t?[s,":{",n,"}"]:n},Co=({tableId:e,rowId:o,cellId:t,store:s,debugIds:d})=>Ro(""+(O(e,o,t,s)??""),void 0,d,t),mo=({tableId:e,rowId:o,store:t,cellComponent:s=Co,getCellComponentProps:r,separator:n,debugIds:l})=>Ro(d(N(e,o,t),(d=>Io(s,{...go(r,d),key:d,tableId:e,rowId:o,cellId:d,store:t,debugIds:l}))),n,l,o),ko=e=>ao(e,H(e.tableId,e.store)),yo=({cellId:e,descending:o,offset:t,limit:s,...d})=>ao(d,J(d.tableId,e,o,t,s,d.store)),ho=({store:e,tableComponent:o=ko,getTableComponentProps:t,separator:s,debugIds:r})=>Ro(d(D(e),(s=>Io(o,{...go(t,s),key:s,tableId:s,store:e,debugIds:r}))),s),vo=({valueId:e,store:o,debugIds:t})=>Ro(""+(W(e,o)??""),void 0,t,e),To=({store:e,valueComponent:o=vo,getValueComponentProps:t,separator:s,debugIds:r})=>Ro(d(U(e),(s=>Io(o,{...go(t,s),key:s,valueId:s,store:e,debugIds:r}))),s),qo=({metricId:e,metrics:o,debugIds:t})=>Ro(he(e,o)??"",void 0,t,e),Po=({indexId:e,sliceId:o,indexes:t,rowComponent:s=mo,getRowComponentProps:r,separator:n,debugIds:l})=>{const I=h(t),u=I?.getStore(),a=I?.getTableId(e),i=Pe(e,o,I);return Ro(d(i,(e=>Io(s,{...go(r,e),key:e,tableId:a,rowId:e,store:u,debugIds:l}))),n,l,o)},xo=({indexId:e,indexes:o,sliceComponent:t=Po,getSliceComponentProps:s,separator:r,debugIds:n})=>Ro(d(qe(e,o),(d=>Io(t,{...go(s,d),key:d,indexId:e,sliceId:d,indexes:o,debugIds:n}))),r,n,e),So=({relationshipId:e,localRowId:o,relationships:t,rowComponent:s=mo,getRowComponentProps:d,debugIds:n})=>{const[l,I]=co(t),u=l?.getRemoteTableId(e),a=fe(e,o,l);return Ro(r(u)||r(a)?null:Io(s,{...go(d,a),key:a,tableId:u,rowId:a,store:I,debugIds:n}),void 0,n,o)},Vo=e=>po(e,Be,e.remoteRowId),fo=e=>po(e,Le,e.firstRowId),Bo=({queryId:e,rowId:o,cellId:t,queries:s,debugIds:d})=>Ro(""+(Je(e,o,t,s)??""),void 0,d,t),Lo=({queryId:e,rowId:o,queries:t,resultCellComponent:s=Bo,getResultCellComponentProps:r,separator:n,debugIds:l})=>Ro(d(He(e,o,t),(d=>Io(s,{...go(r,d),key:d,queryId:e,rowId:o,cellId:d,queries:t,debugIds:l}))),n,l,o),Mo=e=>io(e,ze(e.queryId,e.queries)),Ao=({cellId:e,descending:o,offset:t,limit:s,...d})=>io(d,De(d.queryId,e,o,t,s,d.queries)),Eo=({checkpoints:e,checkpointId:o,debugIds:t})=>Ro(Ze(o,e)??"",void 0,t,o),Fo=bo((e=>e[0])),jo=bo((e=>r(e[1])?[]:[e[1]])),zo=bo((e=>e[2]));export{Fo as BackwardCheckpointsView,Co as CellView,Eo as CheckpointView,jo as CurrentCheckpointView,zo as ForwardCheckpointsView,xo as IndexView,fo as LinkedRowsView,Vo as LocalRowsView,qo as MetricView,wo as Provider,So as RemoteRowView,Bo as ResultCellView,Lo as ResultRowView,Ao as ResultSortedTableView,Mo as ResultTableView,mo as RowView,Po as SliceView,yo as SortedTableView,ko as TableView,ho as TablesView,vo as ValueView,To as ValuesView,ao as tableView,$ as useAddRowCallback,O as useCell,N as useCellIds,we as useCellIdsListener,Re as useCellListener,Ze as useCheckpoint,Ye as useCheckpointIds,ro as useCheckpointIdsListener,no as useCheckpointListener,m as useCheckpoints,Xe as useCreateCheckpoints,Te as useCreateIndexes,ye as useCreateMetrics,lo as useCreatePersister,Fe as useCreateQueries,Ve as useCreateRelationships,j as useCreateStore,le as useDelCellCallback,ne as useDelRowCallback,re as useDelTableCallback,de as useDelTablesCallback,ue as useDelValueCallback,Ie as useDelValuesCallback,_e as useGoBackwardCallback,eo as useGoForwardCallback,oo as useGoToCallback,w as useIndexes,Le as useLinkedRowIds,Ee as useLinkedRowIdsListener,Be as useLocalRowIds,Ae as useLocalRowIdsListener,he as useMetric,ve as useMetricListener,g as useMetrics,C as useQueries,so as useRedoInformation,R as useRelationships,fe as useRemoteRowId,Me as useRemoteRowIdListener,Je as useResultCell,He as useResultCellIds,Ue as useResultCellIdsListener,We as useResultCellListener,Ge as useResultRow,ze as useResultRowIds,Ne as useResultRowIdsListener,Qe as useResultRowListener,De as useResultSortedRowIds,Oe as useResultSortedRowIdsListener,je as useResultTable,Ke as useResultTableListener,K as useRow,H as useRowIds,pe as useRowIdsListener,ge as useRowListener,ee as useSetCellCallback,$e as useSetCheckpointCallback,_ as useSetPartialRowCallback,te as useSetPartialValuesCallback,Z as useSetRowCallback,Y as useSetTableCallback,X as useSetTablesCallback,se as useSetValueCallback,oe as useSetValuesCallback,qe as useSliceIds,xe as useSliceIdsListener,Pe as useSliceRowIds,Se as useSliceRowIdsListener,J as useSortedRowIds,be as useSortedRowIdsListener,b as useStore,G as useTable,D as useTableIds,ie as useTableIdsListener,ce as useTableListener,z as useTables,ae as useTablesListener,to as useUndoInformation,W as useValue,U as useValueIds,me as useValueIdsListener,ke as useValueListener,Q as useValues,Ce as useValuesListener};
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="default",c="utf8",d="Listener",u="Result",h="add",f="Table",g="RowIds",L="CellIds",w="Cell",v=e=>n+e,p=(e,t)=>e.includes(t),S=(e,t)=>e.every(t),R=(e,t)=>C(e)===C(t)&&S(e,((e,s)=>t[s]===e)),y=(e,t)=>S(e,((s,n)=>0==n||t(e[n-1],s)<=0)),I=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>E(e,((e,t)=>e+t),0),C=e=>e.length,V=e=>0==C(e),E=(e,t,s)=>e.reduce(t,s),k=(e,t,s)=>e.slice(t,s),J=(e,...t)=>e.push(...t),M=e=>e.pop(),x=e=>e.shift(),A=e=>JSON.stringify(e,((e,t)=>j(t,Map)?E([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),D=JSON.parse,F=Math.max,P=Math.min,Q=isFinite,j=(e,t)=>e instanceof t,z=e=>null==e,N=(e,t,s)=>z(e)?s?.():t(e),O=e=>e==o||e==r,W=e=>s(e)==i,B=e=>Array.isArray(e),q=()=>{},H=e=>e.size,$=(e,t)=>e?.has(t)??!1,G=e=>z(e)||0==H(e),K=e=>[...e?.values()??[]],U=e=>e.clear(),X=(e,t)=>e?.forEach(t),Y=(e,t)=>e?.delete(t),Z=e=>new Map(e),_=e=>[...e?.keys()??[]],ee=(e,t)=>e?.get(t),te=(e,t)=>X(e,((e,s)=>t(s,e))),se=(e,t,s)=>z(s)?(Y(e,t),e):e?.set(t,s),ne=(e,t,s)=>($(e,t)||se(e,t,s()),ee(e,t)),oe=(e,t,s)=>{const n={},o=t??(e=>e);return X(e,((e,t)=>N(o(e),(e=>s?.(e)?0:n[t]=e)))),n},re=(e,t)=>{const s=Z(),n=t??(e=>e);return X(e,((e,t)=>s.set(t,n(e)))),s},ae=e=>re(e,re),ie=(e,t,s,n,o=0)=>N((s?ne:ee)(e,t[o],o>C(t)-2?s:Z),(r=>{if(o>C(t)-2)return n?.(r)&&se(e,t[o]),r;const a=ie(r,t,s,n,o+1);return G(r)&&se(e,t[o]),a})),le=e=>{const t=s(e);return O(t)||t==a&&Q(e)?t:void 0},ce=(e,t,s,n,o)=>z(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),de=(e,t,s)=>z(s)?e.delValue(t):e.setValue(t,s),ue=e=>new Set(B(e)||z(e)?e:[e]),he=(e,t)=>e?.add(t),fe=(e,t,s)=>{const n=e.hasRow,o=Z(),r=Z(),a=Z(),i=Z(),l=Z(),c=(t,s,...n)=>{const o=ne(l,t,ue);return T(n,(t=>he(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>N(ee(l,t),(n=>{T(V(s)?K(n):s,(t=>{e.delListener(t),Y(n,t)})),G(n)&&se(l,t)})),u=(e,s)=>{se(o,e,s),$(r,e)||(se(r,e,t()),se(a,e,Z()),se(i,e,Z()))},h=e=>{se(o,e),se(r,e),se(a,e),se(i,e),d(e)};return[()=>e,()=>_(o),e=>te(r,e),e=>$(r,e),e=>ee(o,e),e=>ee(r,e),(e,t)=>se(r,e,t),u,(t,o,r,l,h)=>{u(t,o);const f=Z(),g=Z(),L=ee(a,t),w=ee(i,t),v=t=>{const r=s=>e.getCell(o,t,s),a=ee(L,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||B(a)&&B(i)&&R(a,i)||se(f,t,[a,i]),!z(h)){const e=ee(w,t),s=n(o,t)?h(r,t):void 0;e!=s&&se(g,t,s)}},p=e=>{r((()=>{X(f,(([,e],t)=>se(L,t,e))),X(g,((e,t)=>se(w,t,e)))}),f,g,L,w,e),U(f),U(g)};te(L,v),e.hasTable(o)&&T(e.getRowIds(o),(e=>{$(L,e)||v(e)})),p(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>p())))},h,()=>te(l,h),c,d]},ge=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),Le=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},we=/^\d+$/,ve=()=>{const e=[];let t=0;return[()=>x(e)??n+t++,t=>{we.test(t)&&C(e)<1e3&&J(e,t)}]},pe=e=>{let t;const[s,o]=ve(),r=Z();return[(o,a,i,l=[],c=(()=>[]))=>{t??=e();const d=s();return se(r,d,[o,a,i,l,c]),he(ie(a,i??[n],ue),d),d},(e,s,...o)=>T(((e,t=[n])=>{const s=[],o=(e,n)=>n==C(t)?J(s,e):null===t[n]?X(e,(e=>o(e,n+1))):T([t[n],null],(t=>o(ee(e,t),n+1)));return o(e,0),s})(e,s),(e=>X(e,(e=>ee(r,e)[0](t,...s??[],...o))))),e=>N(ee(r,e),(([,t,s])=>(ie(t,s??[n],void 0,(t=>(Y(t,e),G(t)?1:0))),se(r,e),o(e),s))),e=>N(ee(r,e),(([e,,s=[],n,o])=>{const r=(...a)=>{const i=C(a);i==C(s)?e(t,...a,...o(a)):z(s[i])?T(n[i]?.(...a)??[],(e=>r(...a,e))):r(...a,s[i])};r()}))]},Se=Object,Re=Se.keys,ye=Se.isFrozen,Ie=Se.freeze,Te=e=>j(e,Se)&&e.constructor==Se,be=(e,t)=>!z(((e,t)=>N(e,(e=>e[t])))(e,t)),me=(e,t)=>delete e[t],Ce=(e,t)=>b(Se.entries(e),(([e,s])=>t(s,e))),Ve=e=>Te(e)&&V(Re(e)),Ee=Le((e=>{let t,s,o,r=100,a=Z(),i=Z(),l=1;const c=Z(),d=Z(),[u,h,f]=pe((()=>W)),g=Z(),L=Z(),w=[],v=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=ee(g,s);X(n,((s,n)=>X(s,((s,o)=>X(s,((s,r)=>ce(e,n,o,r,s[t]))))))),X(o,((s,n)=>de(e,n,s[t])))})),l=1},R=e=>{se(g,e),se(L,e),h(d,[e])},y=(e,t)=>T(((e,t)=>e.splice(0,t))(e,t??C(e)),R),I=()=>y(w,C(w)-r),b=()=>N(t,(()=>{J(w,t),I(),y(v),t=void 0,o=1})),m=()=>{t=M(w),o=1},E=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){b();const e=ne(a,t,Z),i=ne(e,s,Z),l=ne(i,n,(()=>[r,void 0]));l[1]=o,l[0]===o&&G(se(i,n))&&G(se(e,s))&&G(se(a,t))&&m(),P()}})),k=e.addValueListener(null,((e,t,s,n)=>{if(l){b();const e=ne(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&G(se(i,t))&&m(),P()}})),A=(e="")=>(z(t)&&(t=n+s++,se(g,t,[a,i]),j(t,e),a=Z(),i=Z(),o=1),t),D=()=>{V(w)||(((e,...t)=>{e.unshift(...t)})(v,A()),S(0,t),t=M(w),o=1)},F=()=>{V(v)||(J(w,t),t=x(v),S(1,t),o=1)},P=()=>{o&&(h(c),o=0)},Q=e=>{const t=A(e);return P(),t},j=(e,t)=>(O(e)&&ee(L,e)!==t&&(se(L,e,t),h(d,[e])),W),O=e=>$(g,e),W={setSize:e=>(r=e,I(),W),addCheckpoint:Q,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...v]],forEachCheckpoint:e=>te(L,e),hasCheckpoint:O,getCheckpoint:e=>ee(L,e),goBackward:()=>(D(),P(),W),goForward:()=>(F(),P(),W),goTo:e=>{const s=p(w,e)?D:p(v,e)?F:null;for(;!z(s)&&e!=t;)s();return P(),W},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(f(e),W),clear:()=>(y(w),y(v),z(t)||R(t),t=void 0,s=0,Q(),W),destroy:()=>{e.delListener(E),e.delListener(k)},getListenerStats:()=>({})};return Ie(W.clear())})),ke=(e,t)=>e<t?-1:1,Je=Le((e=>{const t=Z(),s=Z(),[o,r,a,i,l,c,d,,u,h,f]=fe(e,Z,(e=>z(e)?n:B(e)?b(e,v):v(e))),[g,L,w]=pe((()=>S)),p=(t,s,n)=>{const o=l(t);X(n,((t,n)=>s(n,(s=>X(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,n,o,r,a,i=ke)=>{const l=z(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,h,f)=>{let g=0;const w=ue(),v=ue(),p=c(e);if(X(o,(([e,t],s)=>{const n=ue(e),o=ue(t);X(n,(e=>Y(o,e)?Y(n,e):0)),X(n,(e=>{he(w,e),N(ee(p,e),(t=>{Y(t,s),G(t)&&(se(p,e),g=1)}))})),X(o,(e=>{he(w,e),$(p,e)||(se(p,e,ue()),g=1),he(ee(p,e),s),z(r)||he(v,e)}))})),n(),G(h)||(f?te(p,(e=>he(v,e))):te(a,(e=>N(ee(u,e),(e=>he(v,e))))),X(v,(e=>{const t=(t,s)=>i(ee(h,t),ee(h,s),e),s=[...ee(p,e)];y(s,t)||(se(p,e,ue(I(s,t))),he(w,e))}))),(g||f)&&!z(l)){const t=[...p];y(t,l)||(d(e,Z(I(t,l))),g=1)}g&&L(t,[e]),X(w,(t=>L(s,[e,t])))}),ge(o),N(r,ge)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>p(t,e,s))))),forEachSlice:(e,t)=>p(e,t,c(e)),hasIndex:i,hasSlice:(e,t)=>$(c(e),t),getTableId:l,getSliceIds:e=>_(c(e)),getSliceRowIds:(e,t)=>K(ee(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(w(e),S),destroy:f,getListenerStats:()=>({})};return Ie(S)})),Me=Z([["avg",[(e,t)=>m(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>F(...e),(e,t)=>F(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:F(t,e)]],["min",[e=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),xe=(e,t,s,n,o,r=!1)=>{if(G(s))return;const[a,i,l,c]=o;return r||=z(e),X(n,(([s,n])=>{r||(e=z(s)?i?.(e,n,t++):z(n)?l?.(e,s,t--):c?.(e,n,s,t),r||=z(e))})),r?a(K(s),H(s)):e},Ae=Le((e=>{const t=Z(),[s,o,r,a,i,l,c,,d,u,h]=fe(e,q,(e=>isNaN(e)||z(e)||!0===e||!1===e||e===n?void 0:1*e)),[f,g,L]=pe((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=W(n)?[n,r,a,i]:ee(Me,n)??ee(Me,"sum");return d(e,s,((s,n,o,r,a,i)=>{const d=l(e),h=H(r);i||=z(d),s();let f=xe(d,h,r,n,u,i);Q(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,d))}),ge(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>f(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return Ie(w)})),De=(e,t,s,o,r)=>{let a,i,l=0;const c={load:async(s,o)=>{if(2!=l){l=1;const r=await t();z(r)||r==n?e.transaction((()=>e.setTables(s).setValues(o))):e.setJson(r),l=0}return c},startAutoLoad:async(e,t)=>(c.stopAutoLoad(),await c.load(e,t),o(c.load),c),stopAutoLoad:()=>(r(),c),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),c),startAutoSave:async()=>(await c.stopAutoSave().save(),a=e.addTablesListener(c.save),i=e.addValuesListener(c.save),c),stopAutoSave:()=>(N(a,e.delListener),N(i,e.delListener),c),getStore:()=>e,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Ie(c)},Fe="storage",Pe=globalThis.window,Qe=(e,t,s)=>{let n;return De(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Pe.addEventListener(Fe,n)}),(()=>{Pe.removeEventListener(Fe,n),n=void 0}))},je=e=>e.headers.get("ETag"),ze=Le((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,c,v,p,R]=fe(e,(()=>!0),q),y=t(),I=t(),b=Z(),m=(e,t,...s)=>T(s,(s=>he(ne(ne(b,t,Z),e,ue),s))),E=e=>{N(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),U(e)})),T([I,y],(t=>t.delTable(e)))},M=(e,t,s)=>m(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),x={setQueryDefinition:(t,s,o)=>{l(t,s),E(t);const r=[],a=[[null,[s,null,null,[],Z()]]],i=[],c=[],d=[];o({select:(e,t)=>{const s=W(e)?[C(r)+n,e]:[z(t)?e:t,s=>s(e,t)];return J(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=z(s)||W(t)?null:t,o=z(n)?t:s,r=[e,[e,n,W(o)?o:e=>e(o),[],Z()]];return J(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>J(i,W(e)?e:z(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,W(t)?[t,s,n,o]:ee(Me,t)??[(e,t)=>t]]];return J(c,r),{as:e=>r[0]=e}},having:(e,t)=>J(d,W(e)?e:s=>s(e)===t)});const u=Z(r);if(G(u))return x;const h=Z(a);te(h,((e,[,t])=>N(ee(h,t),(({3:t})=>z(e)?0:J(t,e)))));const f=Z(c);let g=y;if(G(f)&&V(d))g=I;else{M(t,g,I);const e=Z();te(f,((t,[s,n])=>he(ne(e,s,ue),[t,n])));const s=ue();te(u,(t=>$(e,t)?0:he(s,t)));const n=Z(),o=(s,n,o,r)=>N(s,(([a,i,l,c])=>{te(n,((t,[s])=>{const n=ne(a,t,Z),i=ee(n,o),l=r?void 0:s;if(i!==l){const s=ue([[i,l]]),r=H(n);se(n,o,l),X(ee(e,t),(([e,t])=>{const o=xe(c[e],r,n,s,t);c[e]=z(le(o))?null:o}))}})),G(i)||!S(d,(e=>e((e=>c[e]))))?I.delRow(t,l):z(l)?s[2]=I.addRow(t,c):I.setRow(t,l,c)}));m(g,t,g.addRowListener(t,null,((r,a,i,l)=>{const c=[],d=[],u=Z(),h=g.hasRow(t,i);let f=!h;X(s,(e=>{const[s,n,o]=l(t,i,e);J(c,n),J(d,o),f||=s})),te(e,(e=>{const[s,,n]=l(t,i,e);(f||s)&&se(u,e,[n])})),f&&o(ie(n,c,void 0,(([,e])=>(Y(e,i),G(e)))),u,i,1),h&&o(ie(n,d,(()=>{const e={};return X(s,(s=>e[s]=g.getCell(t,i,s))),[Z(),ue(),void 0,e]}),(([,e])=>{he(e,i)})),u,i)})))}M(t,e,g);const L=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);T(a,(s=>{const[o,,r,a,i]=ee(h,s),c=r?.(l,n),[d,u]=ee(i,n)??[];c!=d&&(z(u)||R(t,u),se(i,n,z(c)?null:[c,...p(t,1,e.addRowListener(o,c,(()=>L(n,o,c,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...z(o)?[s,n,t]:t===s?[s,n,o]:[ee(h,t)?.[0],ee(ee(h,t)?.[4],n)?.[0],o]);g.transaction((()=>S(i,(e=>e(o)))?te(u,((e,s)=>ce(g,t,n,e,s(o,n)))):g.delRow(t,n)))})(n)},{3:w}=ee(h,null);return g.transaction((()=>p(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?L(r,s,r,w):(g.delRow(t,r),X(h,(({4:e})=>N(ee(e,r),(([,s])=>{R(t,s),se(e,r)})))))}))))),x},delQueryDefinition:e=>(E(e),c(e),x),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(I.delListener(e),x),destroy:v,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=I.getListenerStats();return n}};return Ce({[f]:[1,1],[g]:[0,1],SortedRowIds:[0,5],Row:[1,2],[L]:[0,2],[w]:[1,3]},(([e,t],s)=>{T(e?["get","has","forEach"]:["get"],(e=>x[e+u+s]=(...t)=>I[e+s](...t))),x[h+u+s+d]=(...e)=>I[h+s+d](...k(e,0,t),((s,...n)=>e[t](x,...n)))})),Ie(x)})),Ne=Le((e=>{const t=Z(),s=Z(),o=Z(),r=Z(),[a,i,l,c,d,u,,,h,f,g]=fe(e,(()=>[Z(),Z(),Z(),Z()]),(e=>z(e)?void 0:e+n)),[L,w,v]=pe((()=>y)),p=(e,t,s)=>N(u(e),(([n,,o])=>{if(!$(o,t)){const r=ue();if(d(e)!=R(e))he(r,t);else{let e=t;for(;!z(e)&&!$(r,e);)he(r,e),e=ee(n,e)}if(s)return r;se(o,t,r)}return ee(o,t)})),S=(e,t)=>N(u(e),(([,,e])=>se(e,t))),R=e=>ee(t,e),y={setRelationshipDefinition:(e,n,a,i)=>(se(t,e,a),h(e,n,((t,n)=>{const a=ue(),i=ue(),l=ue(),[c,d]=u(e);X(n,(([t,s],n)=>{z(t)||(he(i,t),N(ee(d,t),(e=>{Y(e,n),G(e)&&se(d,t)}))),z(s)||(he(i,s),$(d,s)||se(d,s,ue()),he(ee(d,s),n)),he(a,n),se(c,n,s),te(ee(r,e),(t=>{$(p(e,t),n)&&he(l,t)}))})),t(),X(a,(t=>w(s,[e,t]))),X(i,(t=>w(o,[e,t]))),X(l,(t=>{S(e,t),w(r,[e,t])}))}),ge(i)),y),delRelationshipDefinition:e=>(se(t,e),f(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>ee(u(e)?.[0],t),getLocalRowIds:(e,t)=>K(ee(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>z(u(e))?[t]:K(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>L(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),L(s,r,[e,t])),delListener:e=>(S(...v(e)),y),destroy:g,getListenerStats:()=>({})};return Ie(y)})),Oe=e=>[e,e],We=()=>[Z(),Z()],Be=(e,t,s,n=se)=>{const o=(r=e=>!be(t,e),_(e).filter(r));var r;return T(Re(t),(n=>s(e,n,t[n]))),T(o,(t=>n(e,t))),e},qe=(e,t,s)=>z(e)||!Te(e)||Ve(e)||ye(e)?(s?.(),!1):(Ce(e,((s,n)=>{t(s,n)||me(e,n)})),!Ve(e)),He=(e,t,s)=>se(e,t,ee(e,t)==-s?void 0:s),$e=()=>{let e,t,s,n,o=0;const r=Z(),i=Z(),c=Z(),u=Z(),S=Z(),y=Z(),m=Z(),C=Z(),V=Z(),E=Z(),M=Z(),x=Z(),F=ue(),P=Z(),Q=Z(),j=Z(),B=We(),q=We(),H=We(),K=We(),ie=We(),fe=We(),ge=We(),Le=We(),we=We(),Se=We(),Re=We(),ye=We(),Te=We(),Ee=We(),[Je,Me,xe,Ae]=pe((()=>Kt)),De=e=>{if(!qe(e,((e,t)=>p(["type",l],t))))return!1;const t=e.type;return!(!O(t)&&t!=a||(le(e.default)!=t&&me(e,l),0))},Fe=(t,s)=>(!e||$(V,s)||vt(s))&&qe(t,((e,t)=>Pe(s,t,e)),(()=>vt(s))),Pe=(e,t,s,n)=>qe(n?s:Ne(s,e,t),((n,o)=>N(Qe(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>vt(e,t))),Qe=(t,s,n,o)=>e?N(ee(ee(V,t),n),(e=>le(o)!=e.type?vt(t,s,n,o,e.default):o),(()=>vt(t,s,n,o))):z(le(o))?vt(t,s,n,o):o,je=(e,t)=>qe(t?e:Ge(e),((t,s)=>N(ze(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>pt())),ze=(e,s)=>t?N(ee(M,e),(t=>le(s)!=t.type?pt(e,s,t.default):s),(()=>pt(e,s))):z(le(s))?pt(e,s):s,Ne=(e,t,s)=>(N(ee(E,t),(([n,o])=>{X(n,((t,s)=>{be(e,s)||(e[s]=t)})),X(o,(n=>{be(e,n)||vt(t,s,n)}))})),e),Ge=e=>(t&&(X(x,((t,s)=>{be(e,s)||(e[s]=t)})),X(F,(t=>{be(e,t)||pt(t)}))),e),Ke=e=>Be(V,e,((e,t,s)=>{const n=Z(),o=ue();Be(ne(V,t,Z),s,((e,t,s)=>{se(e,t,s),N(s.default,(e=>se(n,t,e)),(()=>he(o,t)))})),se(E,t,[n,o])}),((e,t)=>{se(V,t),se(E,t)})),Ue=e=>Be(M,e,((e,t,s)=>{se(M,t,s),N(s.default,(e=>se(x,t,e)),(()=>he(F,t)))}),((e,t)=>{se(M,t),se(x,t),Y(F,t)})),Xe=e=>Ve(e)?Ot():Pt(e),Ye=e=>Be(Q,e,((e,t,s)=>Ze(t,s)),((e,t)=>it(t))),Ze=(e,t)=>Be(ne(Q,e,(()=>(ut(e,1),Z()))),t,((t,s,n)=>_e(e,t,s,n)),((t,s)=>lt(e,t,s))),_e=(e,t,s,n,o)=>Be(ne(t,s,(()=>(ht(e,s,1),Z()))),n,((t,n,o)=>et(e,s,t,n,o)),((n,r)=>ct(e,t,s,n,r,o))),et=(e,t,s,n,o)=>{$(s,n)||ft(e,t,n,1);const r=ee(s,n);o!==r&&(gt(e,t,n,r,o),se(s,n,o))},tt=(e,t,s,n,o)=>N(ee(t,s),(t=>et(e,s,t,n,o)),(()=>_e(e,t,s,Ne({[n]:o},e,s)))),st=e=>Ve(e)?Wt():Qt(e),nt=e=>Be(j,e,((e,t,s)=>ot(t,s)),((e,t)=>dt(t))),ot=(e,t)=>{$(j,e)||Lt(e,1);const s=ee(j,e);t!==s&&(wt(e,s,t),se(j,e,t))},rt=e=>{const[t]=ne(P,e,ve),s=t();return $(ee(Q,e),s)?rt(e):s},at=e=>ee(Q,e)??Ze(e,{}),it=e=>Ze(e,{}),lt=(e,t,s)=>{const[,n]=ne(P,e,ve);n(s),_e(e,t,s,{},!0)},ct=(e,t,s,n,o,r)=>{const a=ee(ee(E,e)?.[0],o);if(!z(a)&&!r)return et(e,s,n,o,a);const i=t=>{gt(e,s,t,ee(n,t)),ft(e,s,t,-1),se(n,t)};z(a)?i(o):te(n,i),G(n)&&(ht(e,s,-1),G(se(t,s))&&(ut(e,-1),se(Q,e),se(P,e)))},dt=e=>{const t=ee(x,e);if(!z(t))return ot(e,t);wt(e,ee(j,e)),Lt(e,-1),se(j,e)},ut=(e,t)=>He(r,e,t),ht=(e,t,s)=>He(ne(i,e,Z),t,s),ft=(e,t,s,n)=>He(ne(ne(c,e,Z),t,Z),s,n),gt=(e,t,s,n,o)=>ne(ne(ne(u,e,Z),t,Z),s,(()=>[n,0]))[1]=o,Lt=(e,t)=>He(S,e,t),wt=(e,t,s)=>ne(y,e,(()=>[t,0]))[1]=s,vt=(e,t,s,n,o)=>(J(ne(ne(ne(m,e,Z),t,Z),s,(()=>[])),n),o),pt=(e,t,s)=>(J(ne(C,e,(()=>[])),t),s),St=(e,t,s)=>N(ee(ee(ee(u,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(xt(e,t,s))])),Rt=e=>N(ee(y,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(Ft(e))])),yt=e=>G(m)||G(we[e])?0:X(e?re(m,ae):m,((t,s)=>X(t,((t,n)=>X(t,((t,o)=>Me(we[e],[s,n,o],t))))))),It=e=>G(C)||G(Se[e])?0:X(e?re(C):C,((t,s)=>Me(Se[e],[s],t))),Tt=(e,t,s)=>{if(!G(t))return Me(e,s),1},bt=e=>{const t=G(ie[e]),s=G(ge[e])&&G(K[e])&&t&&G(q[e]),n=G(Le[e])&&G(fe[e])&&G(H[e])&&G(B[e]);if(!s||!n){const o=e?[re(r),ae(i),re(c,ae),re(u,ae)]:[r,i,c,u];if(!s){X(o[2],((t,s)=>X(t,((t,n)=>Tt(ge[e],t,[s,n])))));const s=ue();X(o[1],((n,o)=>{Tt(K[e],n,[o])&&!t&&(Me(ie[e],[o,null]),he(s,o))})),t||X(o[3],((t,n)=>{if(!$(s,n)){const s=ue();X(t,(e=>X(e,(([t,n],o)=>n!==t?he(s,o):Y(e,o))))),X(s,(t=>Me(ie[e],[n,t])))}})),Tt(q[e],o[0])}if(!n){let t;X(o[3],((s,n)=>{let o;X(s,((s,r)=>{let a;X(s,(([s,i],l)=>{i!==s&&(Me(Le[e],[n,r,l],i,s,St),t=o=a=1)})),a&&Me(fe[e],[n,r],St)})),o&&Me(H[e],[n],St)})),t&&Me(B[e],void 0,St)}}},mt=e=>{const t=G(ye[e]),s=G(Te[e])&&G(Re[e]);if(!t||!s){const n=e?[re(S),re(y)]:[S,y];if(t||Tt(ye[e],n[0]),!s){let t;X(n[1],(([s,n],o)=>{n!==s&&(Me(Te[e],[o],n,s,Rt),t=1)})),t&&Me(Re[e],void 0,Rt)}}},Ct=(e,...t)=>(Ht((()=>e(...b(t,v)))),Kt),Vt=()=>oe(Q,(e=>oe(e,oe))),Et=()=>_(Q),kt=e=>_(ee(Q,v(e))),Jt=(e,t,s,n=0,o)=>{return b(k(I((r=ee(Q,v(e)),a=(e,s)=>[z(t)?s:ee(e,v(t)),s],b([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>ke(e,t)*(s?-1:1))),n,z(o)?o:n+o),(([,e])=>e));var r,a},Mt=(e,t)=>_(ee(ee(Q,v(e)),v(t))),xt=(e,t,s)=>ee(ee(ee(Q,v(e)),v(t)),v(s)),At=()=>oe(j),Dt=()=>_(j),Ft=e=>ee(j,v(e)),Pt=e=>Ct((()=>(e=>qe(e,Fe,vt))(e)?Ye(e):0)),Qt=e=>Ct((()=>je(e)?nt(e):0)),jt=e=>{try{Xe(D(e))}catch{}return Kt},zt=t=>Ct((()=>{if((e=qe(t,(e=>qe(e,De))))&&(Ke(t),!G(Q))){const e=Vt();Ot(),Pt(e)}})),Nt=e=>Ct((()=>{if(t=(e=>qe(e,De))(e)){const s=At();qt(),Wt(),t=!0,Ue(e),Qt(s)}})),Ot=()=>Ct((()=>Ye({}))),Wt=()=>Ct((()=>nt({}))),Bt=()=>Ct((()=>{Ke({}),e=!1})),qt=()=>Ct((()=>{Ue({}),t=!1})),Ht=(e,t)=>{if(-1==o)return;$t();const s=e();return Gt(t),s},$t=()=>(o++,Kt),Gt=e=>(o>0&&(o--,0==o&&(s=!G(u),n=!G(y),o=1,yt(1),s&&bt(1),It(1),n&&mt(1),o=-1,e?.(oe(u,(e=>oe(e,(e=>oe(e,(e=>[...e]),(([e,t])=>e===t))),Ve)),Ve),oe(m,(e=>oe(e,oe))),oe(y,(e=>[...e]),(([e,t])=>e===t)),oe(C))&&(o=1,X(u,((e,t)=>X(e,((e,s)=>X(e,(([e],n)=>ce(Kt,t,s,n,e))))))),X(y,(([e],t)=>de(Kt,t,e))),o=-1,s=n=!1),Me(Ee[0],void 0,s,n),yt(0),s&&bt(0),It(0),n&&mt(0),Me(Ee[1],void 0,s,n),o=0,T([r,i,c,u,m,S,y,C],U))),Kt),Kt={getTables:Vt,getTableIds:Et,getTable:e=>oe(ee(Q,v(e)),oe),getRowIds:kt,getSortedRowIds:Jt,getRow:(e,t)=>oe(ee(ee(Q,v(e)),v(t))),getCellIds:Mt,getCell:xt,getValues:At,getValueIds:Dt,getValue:Ft,hasTables:()=>!G(Q),hasTable:e=>$(Q,v(e)),hasRow:(e,t)=>$(ee(Q,v(e)),v(t)),hasCell:(e,t,s)=>$(ee(ee(Q,v(e)),v(t)),v(s)),hasValues:()=>!G(j),hasValue:e=>$(j,v(e)),getTablesJson:()=>A(Q),getValuesJson:()=>A(j),getJson:()=>A([Q,j]),getTablesSchemaJson:()=>A(V),getValuesSchemaJson:()=>A(M),getSchemaJson:()=>A([V,M]),setTables:Pt,setTable:(e,t)=>Ct((e=>Fe(t,e)?Ze(e,t):0),e),setRow:(e,t,s)=>Ct(((e,t)=>Pe(e,t,s)?_e(e,at(e),t,s):0),e,t),addRow:(e,t)=>Ht((()=>{let s;return Pe(e,s,t)&&(e=v(e),_e(e,at(e),s=rt(e),t)),s})),setPartialRow:(e,t,s)=>Ct(((e,t)=>{if(Pe(e,t,s,1)){const n=at(e);Ce(s,((s,o)=>tt(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ct(((e,t,s)=>N(Qe(e,t,s,W(n)?n(xt(e,t,s)):n),(n=>tt(e,at(e),t,s,n)))),e,t,s),setValues:Qt,setPartialValues:e=>Ct((()=>je(e,1)?Ce(e,((e,t)=>ot(t,e))):0)),setValue:(e,t)=>Ct((e=>N(ze(e,W(t)?t(Ft(e)):t),(t=>ot(e,t)))),e),setTablesJson:jt,setValuesJson:e=>{try{st(D(e))}catch{}return Kt},setJson:e=>{try{const[t,s]=D(e);Xe(t),st(s)}catch{jt(e)}return Kt},setTablesSchema:zt,setValuesSchema:Nt,setSchema:(e,t)=>Ct((()=>{zt(e),Nt(t)})),delTables:Ot,delTable:e=>Ct((e=>$(Q,e)?it(e):0),e),delRow:(e,t)=>Ct(((e,t)=>N(ee(Q,e),(s=>$(s,t)?lt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ct(((e,t,s)=>N(ee(Q,e),(o=>N(ee(o,t),(r=>$(r,s)?ct(e,o,t,r,s,n):0))))),e,t,s),delValues:Wt,delValue:e=>Ct((e=>$(j,e)?dt(e):0),e),delTablesSchema:Bt,delValuesSchema:qt,delSchema:()=>Ct((()=>{Bt(),qt()})),transaction:Ht,startTransaction:$t,finishTransaction:Gt,forEachTable:e=>X(Q,((t,s)=>e(s,(e=>X(t,((t,s)=>e(s,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(Q,v(e)),((e,s)=>t(s,(t=>te(e,t))))),forEachCell:(e,t,s)=>te(ee(ee(Q,v(e)),v(t)),s),forEachValue:e=>te(j,e),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Jt(e,t,s,n,o);return Je((()=>{const a=Jt(e,t,s,n,o);R(a,i)||(i=a,r(Kt,e,t,s,n,o,i))}),ie[a?1:0],[e,t],[Et])},addWillFinishTransactionListener:e=>Je(e,Ee[0]),addDidFinishTransactionListener:e=>Je(e,Ee[1]),callListener:e=>(Ae(e),Kt),delListener:e=>(xe(e),Kt),getListenerStats:()=>({}),createStore:$e};return Ce({Tables:[0,B],TableIds:[0,q],[f]:[1,H,[Et]],[g]:[1,K,[Et]],Row:[2,fe,[Et,kt]],[L]:[2,ge,[Et,kt]],[w]:[3,Le,[Et,kt,Mt],e=>Oe(xt(...e))],InvalidCell:[3,we],Values:[0,Re],ValueIds:[0,ye],Value:[1,Te,[Dt],e=>Oe(Ft(e[0]))],InvalidValue:[1,Se]},(([e,t,s,n],o)=>{Kt[h+o+d]=(...o)=>Je(o[e],t[o[e+1]?1:0],e>0?k(o,0,e):void 0,s,n)})),Ie(Kt)};e.createCheckpoints=Ee,e.createCustomPersister=De,e.createFilePersister=(e,s)=>{let n;return De(e,(async()=>{try{return await t.promises.readFile(s,c)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,c)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=Je,e.createLocalPersister=(e,t)=>Qe(e,t,localStorage),e.createMetrics=Ae,e.createQueries=ze,e.createRelationships=Ne,e.createRemotePersister=(e,t,s,n)=>{let o,r;return De(e,(async()=>{const e=await fetch(t);return r=je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=je(s);z(r)||z(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{N(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Qe(e,t,sessionStorage),e.createStore=$e,e.defaultSorter=ke},"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 s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="default",c="utf8",d="Listener",u="Result",h="add",f="Table",g="RowIds",L="Cell",w="CellIds",v=e=>n+e,p=(e,t)=>e.includes(t),S=(e,t)=>e.every(t),R=(e,t)=>C(e)===C(t)&&S(e,((e,s)=>t[s]===e)),y=(e,t)=>S(e,((s,n)=>0==n||t(e[n-1],s)<=0)),I=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>E(e,((e,t)=>e+t),0),C=e=>e.length,V=e=>0==C(e),E=(e,t,s)=>e.reduce(t,s),k=(e,t,s)=>e.slice(t,s),J=(e,...t)=>e.push(...t),M=e=>e.pop(),x=e=>e.shift(),A=e=>JSON.stringify(e,((e,t)=>j(t,Map)?E([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),D=JSON.parse,F=Math.max,P=Math.min,Q=isFinite,j=(e,t)=>e instanceof t,z=e=>null==e,N=(e,t,s)=>z(e)?s?.():t(e),O=e=>e==o||e==r,W=e=>s(e)==i,B=e=>Array.isArray(e),q=()=>{},H=e=>e.size,$=(e,t)=>e?.has(t)??!1,G=e=>z(e)||0==H(e),K=e=>[...e?.values()??[]],U=e=>e.clear(),X=(e,t)=>e?.forEach(t),Y=(e,t)=>e?.delete(t),Z=e=>new Map(e),_=e=>[...e?.keys()??[]],ee=(e,t)=>e?.get(t),te=(e,t)=>X(e,((e,s)=>t(s,e))),se=(e,t,s)=>z(s)?(Y(e,t),e):e?.set(t,s),ne=(e,t,s)=>($(e,t)||se(e,t,s()),ee(e,t)),oe=(e,t,s)=>{const n={},o=t??(e=>e);return X(e,((e,t)=>N(o(e),(e=>s?.(e)?0:n[t]=e)))),n},re=(e,t)=>{const s=Z(),n=t??(e=>e);return X(e,((e,t)=>s.set(t,n(e)))),s},ae=e=>re(e,re),ie=(e,t,s,n,o=0)=>N((s?ne:ee)(e,t[o],o>C(t)-2?s:Z),(r=>{if(o>C(t)-2)return n?.(r)&&se(e,t[o]),r;const a=ie(r,t,s,n,o+1);return G(r)&&se(e,t[o]),a})),le=e=>{const t=s(e);return O(t)||t==a&&Q(e)?t:void 0},ce=(e,t,s,n,o)=>z(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),de=(e,t,s)=>z(s)?e.delValue(t):e.setValue(t,s),ue=e=>new Set(B(e)||z(e)?e:[e]),he=(e,t)=>e?.add(t),fe=(e,t,s)=>{const n=e.hasRow,o=Z(),r=Z(),a=Z(),i=Z(),l=Z(),c=(t,s,...n)=>{const o=ne(l,t,ue);return T(n,(t=>he(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>N(ee(l,t),(n=>{T(V(s)?K(n):s,(t=>{e.delListener(t),Y(n,t)})),G(n)&&se(l,t)})),u=(e,s)=>{se(o,e,s),$(r,e)||(se(r,e,t()),se(a,e,Z()),se(i,e,Z()))},h=e=>{se(o,e),se(r,e),se(a,e),se(i,e),d(e)};return[()=>e,()=>_(o),e=>te(r,e),e=>$(r,e),e=>ee(o,e),e=>ee(r,e),(e,t)=>se(r,e,t),u,(t,o,r,l,h)=>{u(t,o);const f=Z(),g=Z(),L=ee(a,t),w=ee(i,t),v=t=>{const r=s=>e.getCell(o,t,s),a=ee(L,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||B(a)&&B(i)&&R(a,i)||se(f,t,[a,i]),!z(h)){const e=ee(w,t),s=n(o,t)?h(r,t):void 0;e!=s&&se(g,t,s)}},p=e=>{r((()=>{X(f,(([,e],t)=>se(L,t,e))),X(g,((e,t)=>se(w,t,e)))}),f,g,L,w,e),U(f),U(g)};te(L,v),e.hasTable(o)&&T(e.getRowIds(o),(e=>{$(L,e)||v(e)})),p(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>p())))},h,()=>te(l,h),c,d]},ge=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),Le=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},we=/^\d+$/,ve=()=>{const e=[];let t=0;return[()=>x(e)??n+t++,t=>{we.test(t)&&C(e)<1e3&&J(e,t)}]},pe=e=>{let t;const[s,o]=ve(),r=Z();return[(o,a,i,l=[],c=(()=>[]))=>{t??=e();const d=s();return se(r,d,[o,a,i,l,c]),he(ie(a,i??[n],ue),d),d},(e,s,...o)=>T(((e,t=[n])=>{const s=[],o=(e,n)=>n==C(t)?J(s,e):null===t[n]?X(e,(e=>o(e,n+1))):T([t[n],null],(t=>o(ee(e,t),n+1)));return o(e,0),s})(e,s),(e=>X(e,(e=>ee(r,e)[0](t,...s??[],...o))))),e=>N(ee(r,e),(([,t,s])=>(ie(t,s??[n],void 0,(t=>(Y(t,e),G(t)?1:0))),se(r,e),o(e),s))),e=>N(ee(r,e),(([e,,s=[],n,o])=>{const r=(...a)=>{const i=C(a);i==C(s)?e(t,...a,...o(a)):z(s[i])?T(n[i]?.(...a)??[],(e=>r(...a,e))):r(...a,s[i])};r()}))]},Se=Object,Re=Se.keys,ye=Se.isFrozen,Ie=Se.freeze,Te=e=>j(e,Se)&&e.constructor==Se,be=(e,t)=>!z(((e,t)=>N(e,(e=>e[t])))(e,t)),me=(e,t)=>delete e[t],Ce=(e,t)=>b(Se.entries(e),(([e,s])=>t(s,e))),Ve=e=>Te(e)&&V(Re(e)),Ee=Le((e=>{let t,s,o,r=100,a=Z(),i=Z(),l=1;const c=Z(),d=Z(),[u,h,f]=pe((()=>W)),g=Z(),L=Z(),w=[],v=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=ee(g,s);X(n,((s,n)=>X(s,((s,o)=>X(s,((s,r)=>ce(e,n,o,r,s[t]))))))),X(o,((s,n)=>de(e,n,s[t])))})),l=1},R=e=>{se(g,e),se(L,e),h(d,[e])},y=(e,t)=>T(((e,t)=>e.splice(0,t))(e,t??C(e)),R),I=()=>y(w,C(w)-r),b=()=>N(t,(()=>{J(w,t),I(),y(v),t=void 0,o=1})),m=()=>{t=M(w),o=1},E=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){b();const e=ne(a,t,Z),i=ne(e,s,Z),l=ne(i,n,(()=>[r,void 0]));l[1]=o,l[0]===o&&G(se(i,n))&&G(se(e,s))&&G(se(a,t))&&m(),P()}})),k=e.addValueListener(null,((e,t,s,n)=>{if(l){b();const e=ne(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&G(se(i,t))&&m(),P()}})),A=(e="")=>(z(t)&&(t=n+s++,se(g,t,[a,i]),j(t,e),a=Z(),i=Z(),o=1),t),D=()=>{V(w)||(((e,...t)=>{e.unshift(...t)})(v,A()),S(0,t),t=M(w),o=1)},F=()=>{V(v)||(J(w,t),t=x(v),S(1,t),o=1)},P=()=>{o&&(h(c),o=0)},Q=e=>{const t=A(e);return P(),t},j=(e,t)=>(O(e)&&ee(L,e)!==t&&(se(L,e,t),h(d,[e])),W),O=e=>$(g,e),W={setSize:e=>(r=e,I(),W),addCheckpoint:Q,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...v]],forEachCheckpoint:e=>te(L,e),hasCheckpoint:O,getCheckpoint:e=>ee(L,e),goBackward:()=>(D(),P(),W),goForward:()=>(F(),P(),W),goTo:e=>{const s=p(w,e)?D:p(v,e)?F:null;for(;!z(s)&&e!=t;)s();return P(),W},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(f(e),W),clear:()=>(y(w),y(v),z(t)||R(t),t=void 0,s=0,Q(),W),destroy:()=>{e.delListener(E),e.delListener(k)},getListenerStats:()=>({})};return Ie(W.clear())})),ke=(e,t)=>e<t?-1:1,Je=Le((e=>{const t=Z(),s=Z(),[o,r,a,i,l,c,d,,u,h,f]=fe(e,Z,(e=>z(e)?n:B(e)?b(e,v):v(e))),[g,L,w]=pe((()=>S)),p=(t,s,n)=>{const o=l(t);X(n,((t,n)=>s(n,(s=>X(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,n,o,r,a,i=ke)=>{const l=z(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,h,f)=>{let g=0;const w=ue(),v=ue(),p=c(e);if(X(o,(([e,t],s)=>{const n=ue(e),o=ue(t);X(n,(e=>Y(o,e)?Y(n,e):0)),X(n,(e=>{he(w,e),N(ee(p,e),(t=>{Y(t,s),G(t)&&(se(p,e),g=1)}))})),X(o,(e=>{he(w,e),$(p,e)||(se(p,e,ue()),g=1),he(ee(p,e),s),z(r)||he(v,e)}))})),n(),G(h)||(f?te(p,(e=>he(v,e))):te(a,(e=>N(ee(u,e),(e=>he(v,e))))),X(v,(e=>{const t=(t,s)=>i(ee(h,t),ee(h,s),e),s=[...ee(p,e)];y(s,t)||(se(p,e,ue(I(s,t))),he(w,e))}))),(g||f)&&!z(l)){const t=[...p];y(t,l)||(d(e,Z(I(t,l))),g=1)}g&&L(t,[e]),X(w,(t=>L(s,[e,t])))}),ge(o),N(r,ge)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>p(t,e,s))))),forEachSlice:(e,t)=>p(e,t,c(e)),hasIndex:i,hasSlice:(e,t)=>$(c(e),t),getTableId:l,getSliceIds:e=>_(c(e)),getSliceRowIds:(e,t)=>K(ee(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(w(e),S),destroy:f,getListenerStats:()=>({})};return Ie(S)})),Me=Z([["avg",[(e,t)=>m(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>F(...e),(e,t)=>F(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:F(t,e)]],["min",[e=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),xe=(e,t,s,n,o,r=!1)=>{if(G(s))return;const[a,i,l,c]=o;return r||=z(e),X(n,(([s,n])=>{r||(e=z(s)?i?.(e,n,t++):z(n)?l?.(e,s,t--):c?.(e,n,s,t),r||=z(e))})),r?a(K(s),H(s)):e},Ae=Le((e=>{const t=Z(),[s,o,r,a,i,l,c,,d,u,h]=fe(e,q,(e=>isNaN(e)||z(e)||!0===e||!1===e||e===n?void 0:1*e)),[f,g,L]=pe((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=W(n)?[n,r,a,i]:ee(Me,n)??ee(Me,"sum");return d(e,s,((s,n,o,r,a,i)=>{const d=l(e),h=H(r);i||=z(d),s();let f=xe(d,h,r,n,u,i);Q(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,d))}),ge(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>f(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return Ie(w)})),De=(e,t,s,o,r)=>{let a,i,l=0;const c={load:async(s,o)=>{if(2!=l){l=1;const r=await t();z(r)||r==n?e.transaction((()=>e.setTables(s).setValues(o))):e.setJson(r),l=0}return c},startAutoLoad:async(e,t)=>(c.stopAutoLoad(),await c.load(e,t),o(c.load),c),stopAutoLoad:()=>(r(),c),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),c),startAutoSave:async()=>(await c.stopAutoSave().save(),a=e.addTablesListener(c.save),i=e.addValuesListener(c.save),c),stopAutoSave:()=>(N(a,e.delListener),N(i,e.delListener),c),getStore:()=>e,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Ie(c)},Fe="storage",Pe=globalThis.window,Qe=(e,t,s)=>{let n;return De(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Pe.addEventListener(Fe,n)}),(()=>{Pe.removeEventListener(Fe,n),n=void 0}))},je=e=>e.headers.get("ETag"),ze=Le((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,c,v,p,R]=fe(e,(()=>!0),q),y=t(),I=t(),b=Z(),m=(e,t,...s)=>T(s,(s=>he(ne(ne(b,t,Z),e,ue),s))),E=e=>{N(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),U(e)})),T([I,y],(t=>t.delTable(e)))},M=(e,t,s)=>m(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),x={setQueryDefinition:(t,s,o)=>{l(t,s),E(t);const r=[],a=[[null,[s,null,null,[],Z()]]],i=[],c=[],d=[];o({select:(e,t)=>{const s=W(e)?[C(r)+n,e]:[z(t)?e:t,s=>s(e,t)];return J(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=z(s)||W(t)?null:t,o=z(n)?t:s,r=[e,[e,n,W(o)?o:e=>e(o),[],Z()]];return J(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>J(i,W(e)?e:z(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,W(t)?[t,s,n,o]:ee(Me,t)??[(e,t)=>t]]];return J(c,r),{as:e=>r[0]=e}},having:(e,t)=>J(d,W(e)?e:s=>s(e)===t)});const u=Z(r);if(G(u))return x;const h=Z(a);te(h,((e,[,t])=>N(ee(h,t),(({3:t})=>z(e)?0:J(t,e)))));const f=Z(c);let g=y;if(G(f)&&V(d))g=I;else{M(t,g,I);const e=Z();te(f,((t,[s,n])=>he(ne(e,s,ue),[t,n])));const s=ue();te(u,(t=>$(e,t)?0:he(s,t)));const n=Z(),o=(s,n,o,r)=>N(s,(([a,i,l,c])=>{te(n,((t,[s])=>{const n=ne(a,t,Z),i=ee(n,o),l=r?void 0:s;if(i!==l){const s=ue([[i,l]]),r=H(n);se(n,o,l),X(ee(e,t),(([e,t])=>{const o=xe(c[e],r,n,s,t);c[e]=z(le(o))?null:o}))}})),G(i)||!S(d,(e=>e((e=>c[e]))))?I.delRow(t,l):z(l)?s[2]=I.addRow(t,c):I.setRow(t,l,c)}));m(g,t,g.addRowListener(t,null,((r,a,i,l)=>{const c=[],d=[],u=Z(),h=g.hasRow(t,i);let f=!h;X(s,(e=>{const[s,n,o]=l(t,i,e);J(c,n),J(d,o),f||=s})),te(e,(e=>{const[s,,n]=l(t,i,e);(f||s)&&se(u,e,[n])})),f&&o(ie(n,c,void 0,(([,e])=>(Y(e,i),G(e)))),u,i,1),h&&o(ie(n,d,(()=>{const e={};return X(s,(s=>e[s]=g.getCell(t,i,s))),[Z(),ue(),void 0,e]}),(([,e])=>{he(e,i)})),u,i)})))}M(t,e,g);const L=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);T(a,(s=>{const[o,,r,a,i]=ee(h,s),c=r?.(l,n),[d,u]=ee(i,n)??[];c!=d&&(z(u)||R(t,u),se(i,n,z(c)?null:[c,...p(t,1,e.addRowListener(o,c,(()=>L(n,o,c,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...z(o)?[s,n,t]:t===s?[s,n,o]:[ee(h,t)?.[0],ee(ee(h,t)?.[4],n)?.[0],o]);g.transaction((()=>S(i,(e=>e(o)))?te(u,((e,s)=>ce(g,t,n,e,s(o,n)))):g.delRow(t,n)))})(n)},{3:w}=ee(h,null);return g.transaction((()=>p(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?L(r,s,r,w):(g.delRow(t,r),X(h,(({4:e})=>N(ee(e,r),(([,s])=>{R(t,s),se(e,r)})))))}))))),x},delQueryDefinition:e=>(E(e),c(e),x),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(I.delListener(e),x),destroy:v,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=I.getListenerStats();return n}};return Ce({[f]:[1,1],[g]:[0,1],SortedRowIds:[0,5],Row:[1,2],[w]:[0,2],[L]:[1,3]},(([e,t],s)=>{T(e?["get","has","forEach"]:["get"],(e=>x[e+u+s]=(...t)=>I[e+s](...t))),x[h+u+s+d]=(...e)=>I[h+s+d](...k(e,0,t),((s,...n)=>e[t](x,...n)))})),Ie(x)})),Ne=Le((e=>{const t=Z(),s=Z(),o=Z(),r=Z(),[a,i,l,c,d,u,,,h,f,g]=fe(e,(()=>[Z(),Z(),Z(),Z()]),(e=>z(e)?void 0:e+n)),[L,w,v]=pe((()=>y)),p=(e,t,s)=>N(u(e),(([n,,o])=>{if(!$(o,t)){const r=ue();if(d(e)!=R(e))he(r,t);else{let e=t;for(;!z(e)&&!$(r,e);)he(r,e),e=ee(n,e)}if(s)return r;se(o,t,r)}return ee(o,t)})),S=(e,t)=>N(u(e),(([,,e])=>se(e,t))),R=e=>ee(t,e),y={setRelationshipDefinition:(e,n,a,i)=>(se(t,e,a),h(e,n,((t,n)=>{const a=ue(),i=ue(),l=ue(),[c,d]=u(e);X(n,(([t,s],n)=>{z(t)||(he(i,t),N(ee(d,t),(e=>{Y(e,n),G(e)&&se(d,t)}))),z(s)||(he(i,s),$(d,s)||se(d,s,ue()),he(ee(d,s),n)),he(a,n),se(c,n,s),te(ee(r,e),(t=>{$(p(e,t),n)&&he(l,t)}))})),t(),X(a,(t=>w(s,[e,t]))),X(i,(t=>w(o,[e,t]))),X(l,(t=>{S(e,t),w(r,[e,t])}))}),ge(i)),y),delRelationshipDefinition:e=>(se(t,e),f(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>ee(u(e)?.[0],t),getLocalRowIds:(e,t)=>K(ee(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>z(u(e))?[t]:K(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>L(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),L(s,r,[e,t])),delListener:e=>(S(...v(e)),y),destroy:g,getListenerStats:()=>({})};return Ie(y)})),Oe=e=>[e,e],We=()=>[Z(),Z()],Be=(e,t,s,n=se)=>{const o=(r=e=>!be(t,e),_(e).filter(r));var r;return T(Re(t),(n=>s(e,n,t[n]))),T(o,(t=>n(e,t))),e},qe=(e,t,s)=>z(e)||!Te(e)||Ve(e)||ye(e)?(s?.(),!1):(Ce(e,((s,n)=>{t(s,n)||me(e,n)})),!Ve(e)),He=(e,t,s)=>se(e,t,ee(e,t)==-s?void 0:s),$e=()=>{let e,t,s,n,o=0;const r=Z(),i=Z(),c=Z(),u=Z(),S=Z(),y=Z(),m=Z(),C=Z(),V=Z(),E=Z(),M=Z(),x=Z(),F=ue(),P=Z(),Q=Z(),j=Z(),B=We(),q=We(),H=We(),K=We(),ie=We(),fe=We(),ge=We(),Le=We(),we=We(),Se=We(),Re=We(),ye=We(),Te=We(),Ee=We(),[Je,Me,xe,Ae]=pe((()=>Kt)),De=e=>{if(!qe(e,((e,t)=>p(["type",l],t))))return!1;const t=e.type;return!(!O(t)&&t!=a||(le(e.default)!=t&&me(e,l),0))},Fe=(t,s)=>(!e||$(V,s)||vt(s))&&qe(t,((e,t)=>Pe(s,t,e)),(()=>vt(s))),Pe=(e,t,s,n)=>qe(n?s:Ne(s,e,t),((n,o)=>N(Qe(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>vt(e,t))),Qe=(t,s,n,o)=>e?N(ee(ee(V,t),n),(e=>le(o)!=e.type?vt(t,s,n,o,e.default):o),(()=>vt(t,s,n,o))):z(le(o))?vt(t,s,n,o):o,je=(e,t)=>qe(t?e:Ge(e),((t,s)=>N(ze(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>pt())),ze=(e,s)=>t?N(ee(M,e),(t=>le(s)!=t.type?pt(e,s,t.default):s),(()=>pt(e,s))):z(le(s))?pt(e,s):s,Ne=(e,t,s)=>(N(ee(E,t),(([n,o])=>{X(n,((t,s)=>{be(e,s)||(e[s]=t)})),X(o,(n=>{be(e,n)||vt(t,s,n)}))})),e),Ge=e=>(t&&(X(x,((t,s)=>{be(e,s)||(e[s]=t)})),X(F,(t=>{be(e,t)||pt(t)}))),e),Ke=e=>Be(V,e,((e,t,s)=>{const n=Z(),o=ue();Be(ne(V,t,Z),s,((e,t,s)=>{se(e,t,s),N(s.default,(e=>se(n,t,e)),(()=>he(o,t)))})),se(E,t,[n,o])}),((e,t)=>{se(V,t),se(E,t)})),Ue=e=>Be(M,e,((e,t,s)=>{se(M,t,s),N(s.default,(e=>se(x,t,e)),(()=>he(F,t)))}),((e,t)=>{se(M,t),se(x,t),Y(F,t)})),Xe=e=>Ve(e)?Ot():Pt(e),Ye=e=>Be(Q,e,((e,t,s)=>Ze(t,s)),((e,t)=>it(t))),Ze=(e,t)=>Be(ne(Q,e,(()=>(ut(e,1),Z()))),t,((t,s,n)=>_e(e,t,s,n)),((t,s)=>lt(e,t,s))),_e=(e,t,s,n,o)=>Be(ne(t,s,(()=>(ht(e,s,1),Z()))),n,((t,n,o)=>et(e,s,t,n,o)),((n,r)=>ct(e,t,s,n,r,o))),et=(e,t,s,n,o)=>{$(s,n)||ft(e,t,n,1);const r=ee(s,n);o!==r&&(gt(e,t,n,r,o),se(s,n,o))},tt=(e,t,s,n,o)=>N(ee(t,s),(t=>et(e,s,t,n,o)),(()=>_e(e,t,s,Ne({[n]:o},e,s)))),st=e=>Ve(e)?Wt():Qt(e),nt=e=>Be(j,e,((e,t,s)=>ot(t,s)),((e,t)=>dt(t))),ot=(e,t)=>{$(j,e)||Lt(e,1);const s=ee(j,e);t!==s&&(wt(e,s,t),se(j,e,t))},rt=e=>{const[t]=ne(P,e,ve),s=t();return $(ee(Q,e),s)?rt(e):s},at=e=>ee(Q,e)??Ze(e,{}),it=e=>Ze(e,{}),lt=(e,t,s)=>{const[,n]=ne(P,e,ve);n(s),_e(e,t,s,{},!0)},ct=(e,t,s,n,o,r)=>{const a=ee(ee(E,e)?.[0],o);if(!z(a)&&!r)return et(e,s,n,o,a);const i=t=>{gt(e,s,t,ee(n,t)),ft(e,s,t,-1),se(n,t)};z(a)?i(o):te(n,i),G(n)&&(ht(e,s,-1),G(se(t,s))&&(ut(e,-1),se(Q,e),se(P,e)))},dt=e=>{const t=ee(x,e);if(!z(t))return ot(e,t);wt(e,ee(j,e)),Lt(e,-1),se(j,e)},ut=(e,t)=>He(r,e,t),ht=(e,t,s)=>He(ne(i,e,Z),t,s),ft=(e,t,s,n)=>He(ne(ne(c,e,Z),t,Z),s,n),gt=(e,t,s,n,o)=>ne(ne(ne(u,e,Z),t,Z),s,(()=>[n,0]))[1]=o,Lt=(e,t)=>He(S,e,t),wt=(e,t,s)=>ne(y,e,(()=>[t,0]))[1]=s,vt=(e,t,s,n,o)=>(J(ne(ne(ne(m,e,Z),t,Z),s,(()=>[])),n),o),pt=(e,t,s)=>(J(ne(C,e,(()=>[])),t),s),St=(e,t,s)=>N(ee(ee(ee(u,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(xt(e,t,s))])),Rt=e=>N(ee(y,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(Ft(e))])),yt=e=>G(m)||G(we[e])?0:X(e?re(m,ae):m,((t,s)=>X(t,((t,n)=>X(t,((t,o)=>Me(we[e],[s,n,o],t))))))),It=e=>G(C)||G(Se[e])?0:X(e?re(C):C,((t,s)=>Me(Se[e],[s],t))),Tt=(e,t,s)=>{if(!G(t))return Me(e,s),1},bt=e=>{const t=G(ie[e]),s=G(ge[e])&&G(K[e])&&t&&G(q[e]),n=G(Le[e])&&G(fe[e])&&G(H[e])&&G(B[e]);if(!s||!n){const o=e?[re(r),ae(i),re(c,ae),re(u,ae)]:[r,i,c,u];if(!s){X(o[2],((t,s)=>X(t,((t,n)=>Tt(ge[e],t,[s,n])))));const s=ue();X(o[1],((n,o)=>{Tt(K[e],n,[o])&&!t&&(Me(ie[e],[o,null]),he(s,o))})),t||X(o[3],((t,n)=>{if(!$(s,n)){const s=ue();X(t,(e=>X(e,(([t,n],o)=>n!==t?he(s,o):Y(e,o))))),X(s,(t=>Me(ie[e],[n,t])))}})),Tt(q[e],o[0])}if(!n){let t;X(o[3],((s,n)=>{let o;X(s,((s,r)=>{let a;X(s,(([s,i],l)=>{i!==s&&(Me(Le[e],[n,r,l],i,s,St),t=o=a=1)})),a&&Me(fe[e],[n,r],St)})),o&&Me(H[e],[n],St)})),t&&Me(B[e],void 0,St)}}},mt=e=>{const t=G(ye[e]),s=G(Te[e])&&G(Re[e]);if(!t||!s){const n=e?[re(S),re(y)]:[S,y];if(t||Tt(ye[e],n[0]),!s){let t;X(n[1],(([s,n],o)=>{n!==s&&(Me(Te[e],[o],n,s,Rt),t=1)})),t&&Me(Re[e],void 0,Rt)}}},Ct=(e,...t)=>(Ht((()=>e(...b(t,v)))),Kt),Vt=()=>oe(Q,(e=>oe(e,oe))),Et=()=>_(Q),kt=e=>_(ee(Q,v(e))),Jt=(e,t,s,n=0,o)=>{return b(k(I((r=ee(Q,v(e)),a=(e,s)=>[z(t)?s:ee(e,v(t)),s],b([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>ke(e,t)*(s?-1:1))),n,z(o)?o:n+o),(([,e])=>e));var r,a},Mt=(e,t)=>_(ee(ee(Q,v(e)),v(t))),xt=(e,t,s)=>ee(ee(ee(Q,v(e)),v(t)),v(s)),At=()=>oe(j),Dt=()=>_(j),Ft=e=>ee(j,v(e)),Pt=e=>Ct((()=>(e=>qe(e,Fe,vt))(e)?Ye(e):0)),Qt=e=>Ct((()=>je(e)?nt(e):0)),jt=e=>{try{Xe(D(e))}catch{}return Kt},zt=t=>Ct((()=>{if((e=qe(t,(e=>qe(e,De))))&&(Ke(t),!G(Q))){const e=Vt();Ot(),Pt(e)}})),Nt=e=>Ct((()=>{if(t=(e=>qe(e,De))(e)){const s=At();qt(),Wt(),t=!0,Ue(e),Qt(s)}})),Ot=()=>Ct((()=>Ye({}))),Wt=()=>Ct((()=>nt({}))),Bt=()=>Ct((()=>{Ke({}),e=!1})),qt=()=>Ct((()=>{Ue({}),t=!1})),Ht=(e,t)=>{if(-1==o)return;$t();const s=e();return Gt(t),s},$t=()=>(o++,Kt),Gt=e=>(o>0&&(o--,0==o&&(s=!G(u),n=!G(y),o=1,yt(1),s&&bt(1),It(1),n&&mt(1),o=-1,e?.(oe(u,(e=>oe(e,(e=>oe(e,(e=>[...e]),(([e,t])=>e===t))),Ve)),Ve),oe(m,(e=>oe(e,oe))),oe(y,(e=>[...e]),(([e,t])=>e===t)),oe(C))&&(o=1,X(u,((e,t)=>X(e,((e,s)=>X(e,(([e],n)=>ce(Kt,t,s,n,e))))))),X(y,(([e],t)=>de(Kt,t,e))),o=-1,s=n=!1),Me(Ee[0],void 0,s,n),yt(0),s&&bt(0),It(0),n&&mt(0),Me(Ee[1],void 0,s,n),o=0,T([r,i,c,u,m,S,y,C],U))),Kt),Kt={getTables:Vt,getTableIds:Et,getTable:e=>oe(ee(Q,v(e)),oe),getRowIds:kt,getSortedRowIds:Jt,getRow:(e,t)=>oe(ee(ee(Q,v(e)),v(t))),getCellIds:Mt,getCell:xt,getValues:At,getValueIds:Dt,getValue:Ft,hasTables:()=>!G(Q),hasTable:e=>$(Q,v(e)),hasRow:(e,t)=>$(ee(Q,v(e)),v(t)),hasCell:(e,t,s)=>$(ee(ee(Q,v(e)),v(t)),v(s)),hasValues:()=>!G(j),hasValue:e=>$(j,v(e)),getTablesJson:()=>A(Q),getValuesJson:()=>A(j),getJson:()=>A([Q,j]),getTablesSchemaJson:()=>A(V),getValuesSchemaJson:()=>A(M),getSchemaJson:()=>A([V,M]),setTables:Pt,setTable:(e,t)=>Ct((e=>Fe(t,e)?Ze(e,t):0),e),setRow:(e,t,s)=>Ct(((e,t)=>Pe(e,t,s)?_e(e,at(e),t,s):0),e,t),addRow:(e,t)=>Ht((()=>{let s;return Pe(e,s,t)&&(e=v(e),_e(e,at(e),s=rt(e),t)),s})),setPartialRow:(e,t,s)=>Ct(((e,t)=>{if(Pe(e,t,s,1)){const n=at(e);Ce(s,((s,o)=>tt(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ct(((e,t,s)=>N(Qe(e,t,s,W(n)?n(xt(e,t,s)):n),(n=>tt(e,at(e),t,s,n)))),e,t,s),setValues:Qt,setPartialValues:e=>Ct((()=>je(e,1)?Ce(e,((e,t)=>ot(t,e))):0)),setValue:(e,t)=>Ct((e=>N(ze(e,W(t)?t(Ft(e)):t),(t=>ot(e,t)))),e),setTablesJson:jt,setValuesJson:e=>{try{st(D(e))}catch{}return Kt},setJson:e=>{try{const[t,s]=D(e);Xe(t),st(s)}catch{jt(e)}return Kt},setTablesSchema:zt,setValuesSchema:Nt,setSchema:(e,t)=>Ct((()=>{zt(e),Nt(t)})),delTables:Ot,delTable:e=>Ct((e=>$(Q,e)?it(e):0),e),delRow:(e,t)=>Ct(((e,t)=>N(ee(Q,e),(s=>$(s,t)?lt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ct(((e,t,s)=>N(ee(Q,e),(o=>N(ee(o,t),(r=>$(r,s)?ct(e,o,t,r,s,n):0))))),e,t,s),delValues:Wt,delValue:e=>Ct((e=>$(j,e)?dt(e):0),e),delTablesSchema:Bt,delValuesSchema:qt,delSchema:()=>Ct((()=>{Bt(),qt()})),transaction:Ht,startTransaction:$t,finishTransaction:Gt,forEachTable:e=>X(Q,((t,s)=>e(s,(e=>X(t,((t,s)=>e(s,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(Q,v(e)),((e,s)=>t(s,(t=>te(e,t))))),forEachCell:(e,t,s)=>te(ee(ee(Q,v(e)),v(t)),s),forEachValue:e=>te(j,e),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Jt(e,t,s,n,o);return Je((()=>{const a=Jt(e,t,s,n,o);R(a,i)||(i=a,r(Kt,e,t,s,n,o,i))}),ie[a?1:0],[e,t],[Et])},addWillFinishTransactionListener:e=>Je(e,Ee[0]),addDidFinishTransactionListener:e=>Je(e,Ee[1]),callListener:e=>(Ae(e),Kt),delListener:e=>(xe(e),Kt),getListenerStats:()=>({}),createStore:$e};return Ce({Tables:[0,B],TableIds:[0,q],[f]:[1,H,[Et]],[g]:[1,K,[Et]],Row:[2,fe,[Et,kt]],[w]:[2,ge,[Et,kt]],[L]:[3,Le,[Et,kt,Mt],e=>Oe(xt(...e))],InvalidCell:[3,we],Values:[0,Re],ValueIds:[0,ye],Value:[1,Te,[Dt],e=>Oe(Ft(e[0]))],InvalidValue:[1,Se]},(([e,t,s,n],o)=>{Kt[h+o+d]=(...o)=>Je(o[e],t[o[e+1]?1:0],e>0?k(o,0,e):void 0,s,n)})),Ie(Kt)};e.createCheckpoints=Ee,e.createCustomPersister=De,e.createFilePersister=(e,s)=>{let n;return De(e,(async()=>{try{return await t.promises.readFile(s,c)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,c)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=Je,e.createLocalPersister=(e,t)=>Qe(e,t,localStorage),e.createMetrics=Ae,e.createQueries=ze,e.createRelationships=Ne,e.createRemotePersister=(e,t,s,n)=>{let o,r;return De(e,(async()=>{const e=await fetch(t);return r=je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=je(s);z(r)||z(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{N(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Qe(e,t,sessionStorage),e.createStore=$e,e.defaultSorter=ke},"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