tinybase 6.1.0-beta.2 → 6.1.0-beta.3
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.
- package/@types/mergeable-store/index.d.ts +45 -20
- package/@types/mergeable-store/with-schemas/index.d.ts +49 -21
- package/@types/persisters/index.d.ts +1 -1
- package/@types/persisters/with-schemas/index.d.ts +1 -1
- package/index.js +4 -8
- package/mergeable-store/index.js +4 -8
- package/mergeable-store/with-schemas/index.js +4 -8
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +6 -6
- package/readme.md +2 -2
- package/with-schemas/index.js +4 -8
|
@@ -27,6 +27,18 @@ import type {
|
|
|
27
27
|
ValueOrUndefined,
|
|
28
28
|
} from '../store/index.d.ts';
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* The GetNow type is used to represent a function that returns the current time
|
|
32
|
+
* in milliseconds.
|
|
33
|
+
*
|
|
34
|
+
* This is used internally within the mergeable-store module, but is used for
|
|
35
|
+
* the createMergeableStore function's second optional argument to allow
|
|
36
|
+
* applications to override the clock used to generate timestamps.
|
|
37
|
+
* @category Stamps
|
|
38
|
+
* @since v6.1.0
|
|
39
|
+
*/
|
|
40
|
+
export type GetNow = () => number;
|
|
41
|
+
|
|
30
42
|
/**
|
|
31
43
|
* The Hash type is used within the mergeable-store module to quickly compare
|
|
32
44
|
* the content of two objects.
|
|
@@ -328,7 +340,7 @@ export interface MergeableStore extends Store {
|
|
|
328
340
|
* ```js
|
|
329
341
|
* import {createMergeableStore} from 'tinybase';
|
|
330
342
|
*
|
|
331
|
-
* const store = createMergeableStore('store1'); // !
|
|
343
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
332
344
|
*
|
|
333
345
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
334
346
|
*
|
|
@@ -380,7 +392,7 @@ export interface MergeableStore extends Store {
|
|
|
380
392
|
* ```js
|
|
381
393
|
* import {createMergeableStore} from 'tinybase';
|
|
382
394
|
*
|
|
383
|
-
* const store = createMergeableStore('store1'); // !
|
|
395
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
384
396
|
*
|
|
385
397
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
386
398
|
* console.log(store.getMergeableContentHashes());
|
|
@@ -414,7 +426,7 @@ export interface MergeableStore extends Store {
|
|
|
414
426
|
* ```js
|
|
415
427
|
* import {createMergeableStore} from 'tinybase';
|
|
416
428
|
*
|
|
417
|
-
* const store = createMergeableStore('store1'); // !
|
|
429
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
418
430
|
*
|
|
419
431
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
420
432
|
* console.log(store.getMergeableTableHashes());
|
|
@@ -447,7 +459,7 @@ export interface MergeableStore extends Store {
|
|
|
447
459
|
* ```js
|
|
448
460
|
* import {createMergeableStore} from 'tinybase';
|
|
449
461
|
*
|
|
450
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
462
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
451
463
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
452
464
|
*
|
|
453
465
|
* const store2 = createMergeableStore('store2');
|
|
@@ -500,7 +512,7 @@ export interface MergeableStore extends Store {
|
|
|
500
512
|
* ```js
|
|
501
513
|
* import {createMergeableStore} from 'tinybase';
|
|
502
514
|
*
|
|
503
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
515
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
504
516
|
* store1.setTables({pets: {fido: {color: 'brown'}, felix: {color: 'tan'}}});
|
|
505
517
|
*
|
|
506
518
|
* const store2 = createMergeableStore('store2');
|
|
@@ -536,7 +548,7 @@ export interface MergeableStore extends Store {
|
|
|
536
548
|
* ```js
|
|
537
549
|
* import {createMergeableStore} from 'tinybase';
|
|
538
550
|
*
|
|
539
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
551
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
540
552
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
541
553
|
*
|
|
542
554
|
* const store2 = createMergeableStore('store2');
|
|
@@ -594,7 +606,7 @@ export interface MergeableStore extends Store {
|
|
|
594
606
|
* ```js
|
|
595
607
|
* import {createMergeableStore} from 'tinybase';
|
|
596
608
|
*
|
|
597
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
609
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
598
610
|
* store1.setTables({pets: {fido: {color: 'brown', species: 'dog'}}});
|
|
599
611
|
*
|
|
600
612
|
* const store2 = createMergeableStore('store2');
|
|
@@ -634,7 +646,7 @@ export interface MergeableStore extends Store {
|
|
|
634
646
|
* ```js
|
|
635
647
|
* import {createMergeableStore} from 'tinybase';
|
|
636
648
|
*
|
|
637
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
649
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
638
650
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
639
651
|
*
|
|
640
652
|
* const store2 = createMergeableStore('store2');
|
|
@@ -710,7 +722,7 @@ export interface MergeableStore extends Store {
|
|
|
710
722
|
* ```js
|
|
711
723
|
* import {createMergeableStore} from 'tinybase';
|
|
712
724
|
*
|
|
713
|
-
* const store = createMergeableStore('store1'); // !
|
|
725
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
714
726
|
*
|
|
715
727
|
* store.setValue('employees', 3);
|
|
716
728
|
* console.log(store.getMergeableValueHashes());
|
|
@@ -743,7 +755,7 @@ export interface MergeableStore extends Store {
|
|
|
743
755
|
* ```js
|
|
744
756
|
* import {createMergeableStore} from 'tinybase';
|
|
745
757
|
*
|
|
746
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
758
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
747
759
|
* store1.setValues({employees: 3});
|
|
748
760
|
*
|
|
749
761
|
* const store2 = createMergeableStore('store2');
|
|
@@ -788,7 +800,7 @@ export interface MergeableStore extends Store {
|
|
|
788
800
|
* ```js
|
|
789
801
|
* import {createMergeableStore} from 'tinybase';
|
|
790
802
|
*
|
|
791
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
803
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
792
804
|
* store1.setValues({employees: 3});
|
|
793
805
|
* console.log(store1.getMergeableContent());
|
|
794
806
|
* // ->
|
|
@@ -836,7 +848,7 @@ export interface MergeableStore extends Store {
|
|
|
836
848
|
* ```js
|
|
837
849
|
* import {createMergeableStore} from 'tinybase';
|
|
838
850
|
*
|
|
839
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
851
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
840
852
|
* store1.setValues({employees: 3});
|
|
841
853
|
*
|
|
842
854
|
* const store2 = createMergeableStore('store2');
|
|
@@ -870,7 +882,7 @@ export interface MergeableStore extends Store {
|
|
|
870
882
|
* ```js
|
|
871
883
|
* import {createMergeableStore} from 'tinybase';
|
|
872
884
|
*
|
|
873
|
-
* const store = createMergeableStore('store1'); // !
|
|
885
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
874
886
|
* store.setTables({pets: {fido: {species: 'dog', color: 'brown'}}});
|
|
875
887
|
* store.setValues({open: true});
|
|
876
888
|
*
|
|
@@ -1034,12 +1046,22 @@ export interface MergeableStore extends Store {
|
|
|
1034
1046
|
* The createMergeableStore function creates a MergeableStore, and is the main
|
|
1035
1047
|
* entry point into the mergeable-store module.
|
|
1036
1048
|
*
|
|
1037
|
-
* There
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
*
|
|
1041
|
-
*
|
|
1042
|
-
*
|
|
1049
|
+
* There are two optional parameters which are only for testing and advanced
|
|
1050
|
+
* usage.
|
|
1051
|
+
*
|
|
1052
|
+
* The first is a uniqueId for the MergeableStore, used to distinguish
|
|
1053
|
+
* conflicting changes made in the same millisecond by two different
|
|
1054
|
+
* MergeableStore objects as its hash is added to the end of the HLC timestamps.
|
|
1055
|
+
* Generally this can be omitted unless you have a need for deterministic HLCs,
|
|
1056
|
+
* such as in a testing scenario. Otherwise, TinyBase will assign a unique Id to
|
|
1057
|
+
* the Store at the time of creation.
|
|
1058
|
+
*
|
|
1059
|
+
* Since v6.1.0, the second is a function that can be used to replace the way
|
|
1060
|
+
* the timestamp is generated for HLCs (by default JavaScript's `Date.now()`
|
|
1061
|
+
* method).
|
|
1062
|
+
* @param uniqueId An optional unique Id for the MergeableStore.
|
|
1063
|
+
* @param getNow An optional function that generates millisecond timestamps,
|
|
1064
|
+
* since v6.1.0.
|
|
1043
1065
|
* @returns A reference to the new MergeableStore.
|
|
1044
1066
|
* @example
|
|
1045
1067
|
* This example creates a MergeableStore.
|
|
@@ -1136,4 +1158,7 @@ export interface MergeableStore extends Store {
|
|
|
1136
1158
|
* @category Creation
|
|
1137
1159
|
* @since v5.0.0
|
|
1138
1160
|
*/
|
|
1139
|
-
export function createMergeableStore(
|
|
1161
|
+
export function createMergeableStore(
|
|
1162
|
+
uniqueId?: Id,
|
|
1163
|
+
getNow?: GetNow,
|
|
1164
|
+
): MergeableStore;
|
|
@@ -40,6 +40,18 @@ import type {
|
|
|
40
40
|
ValuesSchema,
|
|
41
41
|
} from '../../store/with-schemas/index.d.ts';
|
|
42
42
|
|
|
43
|
+
/**
|
|
44
|
+
* The GetNow type is used to represent a function that returns the current time
|
|
45
|
+
* in milliseconds.
|
|
46
|
+
*
|
|
47
|
+
* This is used internally within the mergeable-store module, but is used for
|
|
48
|
+
* the createMergeableStore function's second optional argument to allow
|
|
49
|
+
* applications to override the clock used to generate timestamps.
|
|
50
|
+
* @category Stamps
|
|
51
|
+
* @since v6.1.0
|
|
52
|
+
*/
|
|
53
|
+
export type GetNow = () => number;
|
|
54
|
+
|
|
43
55
|
/**
|
|
44
56
|
* The Hash type is used within the mergeable-store module to quickly compare
|
|
45
57
|
* the content of two objects.
|
|
@@ -491,7 +503,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
491
503
|
* ```js
|
|
492
504
|
* import {createMergeableStore} from 'tinybase';
|
|
493
505
|
*
|
|
494
|
-
* const store = createMergeableStore('store1'); // !
|
|
506
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
495
507
|
*
|
|
496
508
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
497
509
|
*
|
|
@@ -543,7 +555,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
543
555
|
* ```js
|
|
544
556
|
* import {createMergeableStore} from 'tinybase';
|
|
545
557
|
*
|
|
546
|
-
* const store = createMergeableStore('store1'); // !
|
|
558
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
547
559
|
*
|
|
548
560
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
549
561
|
* console.log(store.getMergeableContentHashes());
|
|
@@ -583,7 +595,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
583
595
|
* ```js
|
|
584
596
|
* import {createMergeableStore} from 'tinybase';
|
|
585
597
|
*
|
|
586
|
-
* const store = createMergeableStore('store1'); // !
|
|
598
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
587
599
|
*
|
|
588
600
|
* store.setCell('pets', 'fido', 'color', 'brown');
|
|
589
601
|
* console.log(store.getMergeableTableHashes());
|
|
@@ -624,7 +636,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
624
636
|
* ```js
|
|
625
637
|
* import {createMergeableStore} from 'tinybase';
|
|
626
638
|
*
|
|
627
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
639
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
628
640
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
629
641
|
*
|
|
630
642
|
* const store2 = createMergeableStore('store2');
|
|
@@ -686,7 +698,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
686
698
|
* ```js
|
|
687
699
|
* import {createMergeableStore} from 'tinybase';
|
|
688
700
|
*
|
|
689
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
701
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
690
702
|
* store1.setTables({pets: {fido: {color: 'brown'}, felix: {color: 'tan'}}});
|
|
691
703
|
*
|
|
692
704
|
* const store2 = createMergeableStore('store2');
|
|
@@ -732,7 +744,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
732
744
|
* ```js
|
|
733
745
|
* import {createMergeableStore} from 'tinybase';
|
|
734
746
|
*
|
|
735
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
747
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
736
748
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
737
749
|
*
|
|
738
750
|
* const store2 = createMergeableStore('store2');
|
|
@@ -799,7 +811,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
799
811
|
* ```js
|
|
800
812
|
* import {createMergeableStore} from 'tinybase';
|
|
801
813
|
*
|
|
802
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
814
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
803
815
|
* store1.setTables({pets: {fido: {color: 'brown', species: 'dog'}}});
|
|
804
816
|
*
|
|
805
817
|
* const store2 = createMergeableStore('store2');
|
|
@@ -847,7 +859,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
847
859
|
* ```js
|
|
848
860
|
* import {createMergeableStore} from 'tinybase';
|
|
849
861
|
*
|
|
850
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
862
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
851
863
|
* store1.setTables({pets: {fido: {color: 'brown'}}});
|
|
852
864
|
*
|
|
853
865
|
* const store2 = createMergeableStore('store2');
|
|
@@ -931,7 +943,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
931
943
|
* ```js
|
|
932
944
|
* import {createMergeableStore} from 'tinybase';
|
|
933
945
|
*
|
|
934
|
-
* const store = createMergeableStore('store1'); // !
|
|
946
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
935
947
|
*
|
|
936
948
|
* store.setValue('employees', 3);
|
|
937
949
|
* console.log(store.getMergeableValueHashes());
|
|
@@ -970,7 +982,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
970
982
|
* ```js
|
|
971
983
|
* import {createMergeableStore} from 'tinybase';
|
|
972
984
|
*
|
|
973
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
985
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
974
986
|
* store1.setValues({employees: 3});
|
|
975
987
|
*
|
|
976
988
|
* const store2 = createMergeableStore('store2');
|
|
@@ -1023,7 +1035,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
1023
1035
|
* ```js
|
|
1024
1036
|
* import {createMergeableStore} from 'tinybase';
|
|
1025
1037
|
*
|
|
1026
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
1038
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
1027
1039
|
* store1.setValues({employees: 3});
|
|
1028
1040
|
* console.log(store1.getMergeableContent());
|
|
1029
1041
|
* // ->
|
|
@@ -1079,7 +1091,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
1079
1091
|
* ```js
|
|
1080
1092
|
* import {createMergeableStore} from 'tinybase';
|
|
1081
1093
|
*
|
|
1082
|
-
* const store1 = createMergeableStore('store1'); // !
|
|
1094
|
+
* const store1 = createMergeableStore('store1'); // !reset
|
|
1083
1095
|
* store1.setValues({employees: 3});
|
|
1084
1096
|
*
|
|
1085
1097
|
* const store2 = createMergeableStore('store2');
|
|
@@ -1121,7 +1133,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
1121
1133
|
* ```js
|
|
1122
1134
|
* import {createMergeableStore} from 'tinybase';
|
|
1123
1135
|
*
|
|
1124
|
-
* const store = createMergeableStore('store1'); // !
|
|
1136
|
+
* const store = createMergeableStore('store1'); // !reset
|
|
1125
1137
|
* store.setTables({pets: {fido: {species: 'dog', color: 'brown'}}});
|
|
1126
1138
|
* store.setValues({open: true});
|
|
1127
1139
|
*
|
|
@@ -1520,15 +1532,28 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
1520
1532
|
* This has schema-based typing. The following is a simplified representation:
|
|
1521
1533
|
*
|
|
1522
1534
|
* ```ts override
|
|
1523
|
-
* createMergeableStore(
|
|
1535
|
+
* createMergeableStore(
|
|
1536
|
+
* uniqueId?: Id,
|
|
1537
|
+
* getNow?: GetNow,
|
|
1538
|
+
* ): MergeableStore;
|
|
1524
1539
|
* ```
|
|
1525
1540
|
*
|
|
1526
|
-
* There
|
|
1527
|
-
*
|
|
1528
|
-
*
|
|
1529
|
-
*
|
|
1530
|
-
*
|
|
1531
|
-
*
|
|
1541
|
+
* There are two optional parameters which are only for testing and advanced
|
|
1542
|
+
* usage.
|
|
1543
|
+
*
|
|
1544
|
+
* The first is a uniqueId for the MergeableStore, used to distinguish
|
|
1545
|
+
* conflicting changes made in the same millisecond by two different
|
|
1546
|
+
* MergeableStore objects as its hash is added to the end of the HLC timestamps.
|
|
1547
|
+
* Generally this can be omitted unless you have a need for deterministic HLCs,
|
|
1548
|
+
* such as in a testing scenario. Otherwise, TinyBase will assign a unique Id to
|
|
1549
|
+
* the Store at the time of creation.
|
|
1550
|
+
*
|
|
1551
|
+
* Since v6.1.0, the second is a function that can be used to replace the way
|
|
1552
|
+
* the timestamp is generated for HLCs (by default JavaScript's `Date.now()`
|
|
1553
|
+
* method).
|
|
1554
|
+
* @param uniqueId An optional unique Id for the MergeableStore.
|
|
1555
|
+
* @param getNow An optional function that generates millisecond timestamps,
|
|
1556
|
+
* since v6.1.0.
|
|
1532
1557
|
* @returns A reference to the new MergeableStore.
|
|
1533
1558
|
* @example
|
|
1534
1559
|
* This example creates a MergeableStore.
|
|
@@ -1625,4 +1650,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
1625
1650
|
* @category Creation
|
|
1626
1651
|
* @since v5.0.0
|
|
1627
1652
|
*/
|
|
1628
|
-
export function createMergeableStore(
|
|
1653
|
+
export function createMergeableStore(
|
|
1654
|
+
uniqueId?: Id,
|
|
1655
|
+
getNow?: GetNow,
|
|
1656
|
+
): MergeableStore<NoSchemas>;
|
|
@@ -1710,7 +1710,7 @@ export type DatabaseChangeListener = (tableName: string) => void;
|
|
|
1710
1710
|
* // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
|
|
1711
1711
|
* storePersister.destroy();
|
|
1712
1712
|
*
|
|
1713
|
-
* const mergeableStore = createMergeableStore('mergeableStore1'); // !
|
|
1713
|
+
* const mergeableStore = createMergeableStore('mergeableStore1'); // !reset
|
|
1714
1714
|
* mergeableStore.setTables({pets: {fido: {species: 'dog'}}});
|
|
1715
1715
|
* const mergeableStorePersister = createJsonPersister(mergeableStore);
|
|
1716
1716
|
* await mergeableStorePersister.save();
|
|
@@ -1839,7 +1839,7 @@ export type DatabaseChangeListener = (tableName: string) => void;
|
|
|
1839
1839
|
* // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
|
|
1840
1840
|
* storePersister.destroy();
|
|
1841
1841
|
*
|
|
1842
|
-
* const mergeableStore = createMergeableStore('mergeableStore1'); // !
|
|
1842
|
+
* const mergeableStore = createMergeableStore('mergeableStore1'); // !reset
|
|
1843
1843
|
* mergeableStore.setTables({pets: {fido: {species: 'dog'}}});
|
|
1844
1844
|
* const mergeableStorePersister = createJsonPersister(mergeableStore);
|
|
1845
1845
|
* await mergeableStorePersister.save();
|
package/index.js
CHANGED
|
@@ -1031,7 +1031,7 @@ const decodeTimeAndCounter = (hlc16) => [
|
|
|
1031
1031
|
decode(hlc16, 9) * SHIFT6 +
|
|
1032
1032
|
decode(hlc16, 10),
|
|
1033
1033
|
];
|
|
1034
|
-
const getHlcFunctions = (uniqueId) => {
|
|
1034
|
+
const getHlcFunctions = (uniqueId, getNow = Date.now) => {
|
|
1035
1035
|
let logicalTime = 0;
|
|
1036
1036
|
let lastCounter = -1;
|
|
1037
1037
|
const clientPart = ifNotUndefined(
|
|
@@ -1056,11 +1056,7 @@ const getHlcFunctions = (uniqueId) => {
|
|
|
1056
1056
|
const previousLogicalTime = logicalTime;
|
|
1057
1057
|
const [remoteLogicalTime, remoteCounter] =
|
|
1058
1058
|
isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
|
|
1059
|
-
logicalTime = mathMax(
|
|
1060
|
-
previousLogicalTime,
|
|
1061
|
-
remoteLogicalTime,
|
|
1062
|
-
GLOBAL.HLC_TIME ?? Date.now(),
|
|
1063
|
-
);
|
|
1059
|
+
logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
|
|
1064
1060
|
lastCounter =
|
|
1065
1061
|
logicalTime == previousLogicalTime
|
|
1066
1062
|
? logicalTime == remoteLogicalTime
|
|
@@ -2513,13 +2509,13 @@ const validateMergeableContent = (mergeableContent) =>
|
|
|
2513
2509
|
1,
|
|
2514
2510
|
),
|
|
2515
2511
|
);
|
|
2516
|
-
const createMergeableStore = (uniqueId) => {
|
|
2512
|
+
const createMergeableStore = (uniqueId, getNow) => {
|
|
2517
2513
|
let listeningToRawStoreChanges = 1;
|
|
2518
2514
|
let contentStampMap = newContentStampMap();
|
|
2519
2515
|
let defaultingContent = 0;
|
|
2520
2516
|
const touchedCells = mapNew();
|
|
2521
2517
|
const touchedValues = setNew();
|
|
2522
|
-
const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
|
|
2518
|
+
const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
|
|
2523
2519
|
const store = createStore();
|
|
2524
2520
|
const disableListeningToRawStoreChanges = (actions) => {
|
|
2525
2521
|
const wasListening = listeningToRawStoreChanges;
|
package/mergeable-store/index.js
CHANGED
|
@@ -285,7 +285,7 @@ const decodeTimeAndCounter = (hlc16) => [
|
|
|
285
285
|
decode(hlc16, 9) * SHIFT6 +
|
|
286
286
|
decode(hlc16, 10),
|
|
287
287
|
];
|
|
288
|
-
const getHlcFunctions = (uniqueId) => {
|
|
288
|
+
const getHlcFunctions = (uniqueId, getNow = Date.now) => {
|
|
289
289
|
let logicalTime = 0;
|
|
290
290
|
let lastCounter = -1;
|
|
291
291
|
const clientPart = ifNotUndefined(
|
|
@@ -310,11 +310,7 @@ const getHlcFunctions = (uniqueId) => {
|
|
|
310
310
|
const previousLogicalTime = logicalTime;
|
|
311
311
|
const [remoteLogicalTime, remoteCounter] =
|
|
312
312
|
isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
|
|
313
|
-
logicalTime = mathMax(
|
|
314
|
-
previousLogicalTime,
|
|
315
|
-
remoteLogicalTime,
|
|
316
|
-
GLOBAL.HLC_TIME ?? Date.now(),
|
|
317
|
-
);
|
|
313
|
+
logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
|
|
318
314
|
lastCounter =
|
|
319
315
|
logicalTime == previousLogicalTime
|
|
320
316
|
? logicalTime == remoteLogicalTime
|
|
@@ -1861,13 +1857,13 @@ const validateMergeableContent = (mergeableContent) =>
|
|
|
1861
1857
|
1,
|
|
1862
1858
|
),
|
|
1863
1859
|
);
|
|
1864
|
-
const createMergeableStore = (uniqueId) => {
|
|
1860
|
+
const createMergeableStore = (uniqueId, getNow) => {
|
|
1865
1861
|
let listeningToRawStoreChanges = 1;
|
|
1866
1862
|
let contentStampMap = newContentStampMap();
|
|
1867
1863
|
let defaultingContent = 0;
|
|
1868
1864
|
const touchedCells = mapNew();
|
|
1869
1865
|
const touchedValues = setNew();
|
|
1870
|
-
const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
|
|
1866
|
+
const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
|
|
1871
1867
|
const store = createStore();
|
|
1872
1868
|
const disableListeningToRawStoreChanges = (actions) => {
|
|
1873
1869
|
const wasListening = listeningToRawStoreChanges;
|
|
@@ -285,7 +285,7 @@ const decodeTimeAndCounter = (hlc16) => [
|
|
|
285
285
|
decode(hlc16, 9) * SHIFT6 +
|
|
286
286
|
decode(hlc16, 10),
|
|
287
287
|
];
|
|
288
|
-
const getHlcFunctions = (uniqueId) => {
|
|
288
|
+
const getHlcFunctions = (uniqueId, getNow = Date.now) => {
|
|
289
289
|
let logicalTime = 0;
|
|
290
290
|
let lastCounter = -1;
|
|
291
291
|
const clientPart = ifNotUndefined(
|
|
@@ -310,11 +310,7 @@ const getHlcFunctions = (uniqueId) => {
|
|
|
310
310
|
const previousLogicalTime = logicalTime;
|
|
311
311
|
const [remoteLogicalTime, remoteCounter] =
|
|
312
312
|
isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
|
|
313
|
-
logicalTime = mathMax(
|
|
314
|
-
previousLogicalTime,
|
|
315
|
-
remoteLogicalTime,
|
|
316
|
-
GLOBAL.HLC_TIME ?? Date.now(),
|
|
317
|
-
);
|
|
313
|
+
logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
|
|
318
314
|
lastCounter =
|
|
319
315
|
logicalTime == previousLogicalTime
|
|
320
316
|
? logicalTime == remoteLogicalTime
|
|
@@ -1861,13 +1857,13 @@ const validateMergeableContent = (mergeableContent) =>
|
|
|
1861
1857
|
1,
|
|
1862
1858
|
),
|
|
1863
1859
|
);
|
|
1864
|
-
const createMergeableStore = (uniqueId) => {
|
|
1860
|
+
const createMergeableStore = (uniqueId, getNow) => {
|
|
1865
1861
|
let listeningToRawStoreChanges = 1;
|
|
1866
1862
|
let contentStampMap = newContentStampMap();
|
|
1867
1863
|
let defaultingContent = 0;
|
|
1868
1864
|
const touchedCells = mapNew();
|
|
1869
1865
|
const touchedValues = setNew();
|
|
1870
|
-
const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
|
|
1866
|
+
const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
|
|
1871
1867
|
const store = createStore();
|
|
1872
1868
|
const disableListeningToRawStoreChanges = (actions) => {
|
|
1873
1869
|
const wasListening = listeningToRawStoreChanges;
|
package/min/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),l=e(e),r="type",a="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",I=h+g,b="Row",w=b+"Count",L=b+g,C="Sorted"+b+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==l,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,_=()=>{},j=(e,t)=>e.includes(t),B=(e,t)=>e.every(t),U=(e,t)=>P(e)===P(t)&&B(e,((e,s)=>t[s]===e)),q=(e,t)=>B(e,((s,n)=>0==n||t(e[n-1],s)<=0)),G=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>$(e,((e,t)=>e+t),0),Z=e=>0==P(e),$=(e,t,s)=>e.reduce(t,s),ee=(e,...t)=>e.push(...t),te=e=>e.pop(),se=e=>e.shift(),ne=t=>{const s=e(t);return z(s)||s==o&&x(t)?s:void 0},oe=e=>F(e)||!F(ne(e)),le=(e,t,s,n,o)=>F(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),re=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),ae=e=>t=>$(fe(t),((t,s)=>t+e(s)),0),ie=e=>e?.size??0,ce=ae(ie),de=ae(ce),ue=ae(de),ge=(e,t)=>e?.has(t)??!1,he=e=>F(e)||0==ie(e),fe=e=>[...e?.values()??[]],Ie=e=>e.clear(),be=(e,t)=>e?.forEach(t),we=(e,t)=>e?.delete(t),Le=Object,Ce=e=>Le.getPrototypeOf(e),Re=Le.entries,Te=Le.isFrozen,ve=e=>!F(e)&&Q(Ce(e),(e=>e==Le.prototype||F(Ce(e))),(()=>!0)),pe=Le.keys,Se=Le.freeze,ye=(e=[])=>Le.fromEntries(e),Ve=(e,t)=>t in e,Me=(e,t)=>(delete e[t],e),me=(e,t)=>K(Re(e),(([e,s])=>t(s,e))),Ee=(e,t)=>ye(((e,t)=>X(Re(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),ke=e=>ve(e)&&0==(e=>P(pe(e)))(e),De=(e,t,s)=>(Ve(e,t)||(e[t]=s()),e[t]),He=(e,t,s,n=0)=>F(e)||!ve(e)||!n&&ke(e)||Te(e)?(s?.(),!1):(me(e,((s,n)=>{t(s,n)||Me(e,n)})),!!n||!ke(e)),Je=e=>new Map(e),xe=e=>[...e?.keys()??[]],Fe=(e,t)=>e?.get(t),Qe=(e,t)=>be(e,((e,s)=>t(s,e))),ze=(e,t,s)=>F(s)?(we(e,t),e):e?.set(t,s),Ne=(e,t,s,n)=>(ge(e,t)?n?.(Fe(e,t)):ze(e,t,s()),Fe(e,t)),Oe=(e,t,s,n=ze)=>(Ee(t,((t,n)=>s(e,n,t))),Qe(e,(s=>Ve(t,s)?0:n(e,s))),e),We=(e,t,s,n)=>{const o={};return be(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;n?.(s)||(o[l]=s)}})),o},Ae=(e,t,s)=>We(e,(e=>We(e,t,s)),he,ke),Pe=(e,t,s)=>We(e,(e=>Ae(e,t,s)),he,ke),_e=(e,t)=>{const s=Je();return be(e,((e,n)=>s.set(n,t?.(e)??e))),s},je=e=>_e(e,_e),Be=e=>_e(e,je),Ue=(e,t,s,n,o=0)=>Q((s?Ne:Fe)(e,t[o],o>P(t)-2?s:Je),(l=>{if(o>P(t)-2)return n?.(l)&&ze(e,t[o]),l;const r=Ue(l,t,s,n,o+1);return he(l)&&ze(e,t[o]),r})),qe=e=>new Set(W(e)||F(e)?e:[e]),Ge=(e,t)=>e?.add(t),Ke=(e,t,s,n,o)=>{const l=e.hasRow,r=Je(),a=Je(),i=Je(),c=Je(),d=Je(),u=Je(),g=(t,s,...n)=>{const o=Ne(u,t,qe);return K(n,(t=>Ge(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>Q(Fe(u,t),(n=>{K(Z(s)?fe(n):s,(t=>{e.delListener(t),we(n,t)})),he(n)&&ze(u,t)})),f=(e,s)=>{ze(r,e,s),ge(a,e)||(ze(a,e,t()),ze(c,e,Je()),ze(d,e,Je()),o(i))},I=e=>{ze(r,e),ze(a,e),ze(c,e),ze(d,e),h(e),o(i)};return[()=>e,()=>xe(r),e=>Qe(a,e),e=>ge(a,e),e=>Fe(r,e),e=>Fe(a,e),(e,t)=>ze(a,e,t),f,(t,n,o,r,a)=>{f(t,n);const i=Je(),u=Je(),I=Fe(c,t),b=Fe(d,t),w=t=>{const o=s=>e.getCell(n,t,s),c=Fe(I,t),d=l(n,t)?s(r(o,t)):void 0;if(c===d||W(c)&&W(d)&&U(c,d)||ze(i,t,[c,d]),!F(a)){const e=Fe(b,t),s=l(n,t)?a(o,t):void 0;e!=s&&ze(u,t,s)}},L=e=>{o((()=>{be(i,(([,e],t)=>ze(I,t,e))),be(u,((e,t)=>ze(b,t,e)))}),i,u,I,b,e),Ie(i),Ie(u)};Qe(I,w),e.hasTable(n)&&K(e.getRowIds(n),(e=>{ge(I,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},I,e=>n(e,i),()=>Qe(u,I),g,h]},Xe=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),Ye=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ze=/^\d+$/,$e=()=>{const e=[];let s=0;return[n=>(n?se(e):null)??t+s++,t=>{Ze.test(t)&&P(e)<1e3&&ee(e,t)}]},et=e=>{let s;const[n,o]=$e(),l=Je();return[(o,r,a,i=[],c=()=>[])=>{s??=e();const d=n(1);return ze(l,d,[o,r,a,i,c]),Ge(Ue(r,a??[t],qe),d),d},(e,n,...o)=>K(((e,s=[t])=>{const n=[],o=(e,t)=>t==P(s)?ee(n,e):null===s[t]?be(e,(e=>o(e,t+1))):K([s[t],null],(s=>o(Fe(e,s),t+1)));return o(e,0),n})(e,n),(e=>be(e,(e=>Fe(l,e)[0](s,...n??[],...o))))),e=>Q(Fe(l,e),(([,s,n])=>(Ue(s,n??[t],void 0,(t=>(we(t,e),he(t)?1:0))),ze(l,e),o(e),n))),e=>Q(Fe(l,e),(([e,,t=[],n,o])=>{const l=(...r)=>{const a=P(r);a==P(t)?e(s,...r,...o(r)):F(t[a])?K(n[a]?.(...r)??[],(e=>l(...r,e))):l(...r,t[a])};l()}))]},tt=Ye((e=>{let s,n,o,l=100,r=Je(),a=Je(),i=1;const c=Je(),d=Je(),[u,g,h]=et((()=>J)),f=Je(),I=Je(),b=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Fe(f,s);be(n,((s,n)=>be(s,((s,o)=>be(s,((s,l)=>le(e,n,o,l,s[t]))))))),be(o,((s,n)=>re(e,n,s[t])))})),i=1},C=e=>{ze(f,e),ze(I,e),g(d,[e])},R=(e,t)=>K(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(b,P(b)-l),v=()=>Q(s,(()=>{ee(b,s),T(),R(w),s=void 0,o=1})),p=()=>{s=te(b),o=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,ze(f,s,[r,a]),D(s,e),r=Je(),a=Je(),o=1),s),M=()=>{Z(b)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=te(b),o=1)},m=()=>{Z(w)||(ee(b,s),s=se(w),L(1,s),o=1)},E=()=>{o&&(g(c),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Fe(I,e)!==t&&(ze(I,e,t),g(d,[e])),J),H=e=>ge(f,e),J={setSize:e=>(l=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>Qe(I,e),hasCheckpoint:H,getCheckpoint:e=>Fe(I,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=j(b,e)?M:j(w,e)?m:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),J),clear:()=>(R(b),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Z(w)||(R(w),g(c)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ce(c),checkpoint:ce(d)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,l)=>{if(i){v();const e=Ne(r,t,Je),a=Ne(e,s,Je),i=Ne(a,n,(()=>[l,void 0]));i[1]=o,i[0]===o&&he(ze(a,n))&&he(ze(e,s))&&he(ze(r,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Ne(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&he(ze(a,t))&&p(),E()}}))}};return Se(J.clear())}),(e=>e._registerListeners())),st=m("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),nt=Je(X(st,((e,t)=>[e,t]))),ot=e=>st[63&e],lt=(e,t)=>Fe(nt,e[t])??0,rt=E.crypto?e=>E.crypto.getRandomValues(e):e=>X(e,(()=>J(256*k.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,it=(e=16)=>$(rt(new Uint8Array(e)),((e,t)=>e+ot(t)),""),ct=Ye((e=>{const s=Je(),n=Je(),[o,l,r]=et((()=>C)),[a,i,c,d,u,g,h,,f,I,b,w]=Ke(e,Je,(e=>F(e)?t:W(e)?X(e,y):y(e)),o,l),L=(t,s,n)=>{const o=u(t);be(n,((t,n)=>s(n,(s=>be(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,r,a,i=at)=>{const c=F(a)?void 0:([e],[t])=>a(e,t);return f(e,t,((t,o,a,d,u,f)=>{let I=0;const b=qe(),w=qe(),L=g(e);if(be(o,(([e,t],s)=>{const n=qe(e),o=qe(t);be(n,(e=>we(o,e)?we(n,e):0)),be(n,(e=>{Ge(b,e),Q(Fe(L,e),(t=>{we(t,s),he(t)&&(ze(L,e),I=1)}))})),be(o,(e=>{Ge(b,e),ge(L,e)||(ze(L,e,qe()),I=1),Ge(Fe(L,e),s),F(r)||Ge(w,e)}))})),t(),he(u)||(f?Qe(L,(e=>Ge(w,e))):Qe(a,(e=>Q(Fe(d,e),(e=>K(W(e)?e:[e],(e=>Ge(w,e))))))),be(w,(e=>{const t=(t,s)=>i(Fe(u,t),Fe(u,s),e),s=[...Fe(L,e)];q(s,t)||(ze(L,e,qe(G(s,t))),Ge(b,e))}))),(I||f)&&!F(c)){const t=[...L];q(t,c)||(h(e,Je(G(t,c))),I=1)}I&&l(s,[e]),be(b,(t=>l(n,[e,t])))}),Xe(o),Q(r,Xe)),C},delIndexDefinition:e=>(I(e),C),getStore:a,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>ge(g(e),t),getTableId:u,getSliceIds:e=>xe(g(e)),getSliceRowIds:(e,t)=>fe(Fe(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),C),destroy:w,getListenerStats:()=>({sliceIds:ce(s),sliceRowIds:de(n)})};return Se(C)})),dt=new E.TextEncoder,ut=e=>{let t=2166136261;return K(dt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},gt=2**36,ht=2**30,ft=2**24,It=2**18,bt=4096,wt=JSON.stringify,Lt=JSON.parse,Ct=e=>wt(e,((e,t)=>t instanceof Map?Le.fromEntries([...t]):t)),Rt=([e,t])=>vt(e,t),Tt=([e,t,s])=>[e,t,s],vt=(e,t)=>t?[e,t]:[e],pt=(e,t,s)=>[e,t,s],St=e=>e[2],yt=(e,t)=>ut(e+":"+t),Vt=(e,t)=>t>e?(e?ut(e):0)^ut(t):0,Mt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Et=(e=t)=>vt(ye(),e),kt=(e=t)=>[Je(),e,0],Dt=([e,t,s],n=Tt)=>[We(e,n),t,s],Ht=([e,t],s=Rt)=>vt(We(e,s),t),Jt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==o&&x(t[2])&&s(t[0]),xt=e=>[e,e],Ft=(e,t=ce)=>t(e[0])+t(e[1]),Qt=()=>[Je(),Je()],zt=e=>[...e],Nt=([e,t])=>e===t,Ot=(e,t,s)=>ze(e,t,Fe(e,t)==-s?void 0:s),Wt=()=>{let e,t,s=!1,n=!1,l=0,c=[];const g=Je(),C=Je(),V=Je(),M=Je(),m=Je(),E=Je(),k=Je(),D=Je(),H=Je(),J=Je(),x=Je(),N=Je(),P=Je(),_=Je(),B=qe(),q=Je(),Y=Je(),Z=Je(),$=Je(),te=Qt(),se=Qt(),oe=Qt(),ae=Qt(),fe=Qt(),Le=Qt(),Ce=Qt(),Re=Qt(),Te=Qt(),ve=Qt(),pe=Qt(),ye=Qt(),me=Qt(),De=Qt(),Ue=Qt(),Ke=Qt(),Xe=Qt(),Ye=Qt(),Ze=Qt(),tt=Qt(),st=Qt(),nt=Qt(),ot=Je(),lt=Qt(),[rt,it,ct,dt]=et((()=>Os)),ut=e=>{if(!He(e,((e,t)=>j([r,a],t))))return!1;const t=e[r];return!(!z(t)&&t!=o||(ne(e[a])!=t&&Me(e,a),0))},gt=W,ht=(t,s)=>(!e||ge(x,s)||Yt(s))&&He(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>He(n?s:Rt(s,e,t),((n,o)=>Q(It(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Yt(e,t))),It=(t,s,n,o)=>e?Q(Fe(Fe(x,t),n),(e=>ne(o)!=e[r]?Yt(t,s,n,o,e[a]):o),(()=>Yt(t,s,n,o))):F(ne(o))?Yt(t,s,n,o):o,bt=(e,t)=>He(t?e:Tt(e),((t,s)=>Q(wt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),wt=(e,s)=>t?Q(Fe(P,e),(t=>ne(s)!=t[r]?Zt(e,s,t[a]):s),(()=>Zt(e,s))):F(ne(s))?Zt(e,s):s,Rt=(e,t,s)=>(Q(Fe(N,t),(([n,o])=>{be(n,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(o,(n=>{Ve(e,n)||Yt(t,s,n)}))})),e),Tt=e=>(t&&(be(_,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(B,(t=>{Ve(e,t)||Zt(t)}))),e),vt=e=>Oe(x,e,((e,t,s)=>{const n=Je(),o=qe();Oe(Ne(x,t,Je),s,((e,t,s)=>{ze(e,t,s),Q(s[a],(e=>ze(n,t,e)),(()=>Ge(o,t)))})),ze(N,t,[n,o])}),((e,t)=>{ze(x,t),ze(N,t)})),pt=e=>Oe(P,e,((e,t,s)=>{ze(P,t,s),Q(s[a],(e=>ze(_,t,e)),(()=>Ge(B,t)))}),((e,t)=>{ze(P,t),ze(_,t),we(B,t)})),St=e=>ke(e)?ks():ys(e),yt=e=>Oe(Z,e,((e,t,s)=>Vt(t,s)),((e,t)=>At(t))),Vt=(e,t)=>Oe(Ne(Z,e,(()=>(Bt(e,1),ze(q,e,$e()),ze(Y,e,Je()),Je()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>Pt(e,t,s))),Mt=(e,t,s,n,o)=>Oe(Ne(t,s,(()=>(Ut(e,s,1),Je()))),n,((t,n,o)=>mt(e,s,t,n,o)),((n,l)=>_t(e,t,s,n,l,o))),mt=(e,t,s,n,o)=>{ge(s,n)||qt(e,t,n,1);const l=Fe(s,n);o!==l&&(Gt(e,t,n,l,o),ze(s,n,o))},Et=(e,t,s,n,o)=>Q(Fe(t,s),(t=>mt(e,s,t,n,o)),(()=>Mt(e,t,s,Rt({[n]:o},e,s)))),kt=e=>ke(e)?Js():Vs(e),Dt=e=>Oe($,e,((e,t,s)=>Ht(t,s)),((e,t)=>jt(t))),Ht=(e,t)=>{ge($,e)||Kt(e,1);const s=Fe($,e);t!==s&&(Xt(e,s,t),ze($,e,t))},Jt=e=>Fe(Z,e)??Vt(e,{}),At=e=>Vt(e,{}),Pt=(e,t,s)=>{const[,n]=Fe(q,e);n(s),Mt(e,t,s,{},!0)},_t=(e,t,s,n,o,l)=>{const r=Fe(Fe(N,e)?.[0],o);if(!F(r)&&!l)return mt(e,s,n,o,r);const a=t=>{Gt(e,s,t,Fe(n,t)),qt(e,s,t,-1),ze(n,t)};F(r)?a(o):Qe(n,a),he(n)&&(Ut(e,s,-1),he(ze(t,s))&&(Bt(e,-1),ze(Z,e),ze(q,e),ze(Y,e)))},jt=e=>{const t=Fe(_,e);if(!F(t))return Ht(e,t);Xt(e,Fe($,e)),Kt(e,-1),ze($,e)},Bt=(e,t)=>Ot(g,e,t),Ut=(e,t,s)=>Ot(Ne(M,e,Je),t,s)&&ze(V,e,Ne(V,e,(()=>0))+s),qt=(e,t,s,n)=>{const o=Fe(Y,e),l=Fe(o,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ot(Ne(C,e,Je),s,n),ze(o,s,l!=-n?l+n:null),Ot(Ne(Ne(m,e,Je),t,Je),s,n)},Gt=(e,t,s,n,o)=>{Ne(Ne(Ne(E,e,Je),t,Je),s,(()=>[n,0]))[1]=o,c[3]?.(e,t,s,o)},Kt=(e,t)=>Ot(k,e,t),Xt=(e,t,s)=>{Ne(D,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,o)=>(ee(Ne(Ne(Ne(H,e,Je),t,Je),s,(()=>[])),n),o),Zt=(e,t,s)=>(ee(Ne(J,e,(()=>[])),t),s),$t=(e,t,s)=>Q(Fe(Fe(Fe(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(fs(e,t,s))])),es=e=>Q(Fe(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(ws(e))])),ts=e=>he(H)||he(Ke[e])?0:be(e?Be(H):H,((t,s)=>be(t,((t,n)=>be(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ss=e=>he(J)||he(Xe[e])?0:be(e?_e(J):J,((t,s)=>it(Xe[e],[s],t))),ns=(e,t,s,n)=>{if(!he(e))return it(t,n,(()=>We(e))),Qe(e,((e,t)=>it(s,[...n??[],e],1==t))),1},os=e=>{const t=Ls();t!=s&&it(te[e],void 0,t);const n=he(ve[e]),o=he(me[e])&&he(De[e])&&he(Te[e])&&he(pe[e])&&he(Le[e])&&he(Ce[e])&&he(Re[e])&&n&&he(oe[e])&&he(ae[e]),l=he(Ue[e])&&he(ye[e])&&he(fe[e])&&he(se[e]);if(!o||!l){const t=e?[_e(g),je(C),_e(V),je(M),Be(m),Be(E)]:[g,C,V,M,m,E];if(!o){ns(t[0],oe[e],ae[e]),be(t[1],((t,s)=>ns(t,Le[e],Ce[e],[s]))),be(t[2],((t,s)=>{0!=t&&it(Re[e],[s],ds(s))}));const s=qe();be(t[3],((t,o)=>{ns(t,Te[e],pe[e],[o])&&!n&&(it(ve[e],[o,null]),Ge(s,o))})),n||be(t[5],((t,n)=>{if(!ge(s,n)){const s=qe();be(t,(e=>be(e,(([t,n],o)=>n!==t?Ge(s,o):we(e,o))))),be(s,(t=>it(ve[e],[n,t])))}})),be(t[4],((t,s)=>be(t,((t,n)=>ns(t,me[e],De[e],[s,n])))))}if(!l){let s;be(t[5],((t,n)=>{let o;be(t,((t,l)=>{let r;be(t,(([t,a],i)=>{a!==t&&(it(Ue[e],[n,l,i],a,t,$t),s=o=r=1)})),r&&it(ye[e],[n,l],$t)})),o&&it(fe[e],[n],$t)})),s&&it(se[e],void 0,$t)}}},ls=e=>{const t=ps();t!=n&&it(Ye[e],void 0,t);const s=he(tt[e])&&he(st[e]),o=he(nt[e])&&he(Ze[e]);if(!s||!o){const t=e?[_e(k),_e(D)]:[k,D];if(s||ns(t[0],tt[e],st[e]),!o){let s;be(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,es),s=1)})),s&&it(Ze[e],void 0,es)}}},rs=(e,...t)=>(Qs((()=>e(...X(t,y)))),Os),as=()=>Pe(Z),is=()=>xe(Z),cs=e=>xe(Fe(Y,y(e))),ds=e=>ie(Fe(Z,y(e))),us=e=>xe(Fe(Z,y(e))),gs=(e,t,s,n=0,o)=>{return X(A(G((l=Fe(Z,y(e)),r=(e,s)=>[F(t)?s:Fe(e,y(t)),s],X([...l?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,F(o)?o:n+o),(([,e])=>e));var l,r},hs=(e,t)=>xe(Fe(Fe(Z,y(e)),y(t))),fs=(e,t,s)=>Fe(Fe(Fe(Z,y(e)),y(t)),y(s)),Is=()=>We($),bs=()=>xe($),ws=e=>Fe($,y(e)),Ls=()=>!he(Z),Cs=e=>ge(Z,y(e)),Rs=(e,t)=>ge(Fe(Y,y(e)),y(t)),Ts=(e,t)=>ge(Fe(Z,y(e)),y(t)),vs=(e,t,s)=>ge(Fe(Fe(Z,y(e)),y(t)),y(s)),ps=()=>!he($),Ss=e=>ge($,y(e)),ys=e=>rs((()=>(e=>He(e,ht,Yt))(e)?yt(e):0)),Vs=e=>rs((()=>bt(e)?Dt(e):0)),Ms=e=>{try{St(Lt(e))}catch{}return Os},ms=t=>rs((()=>{if((e=He(t,(e=>He(e,ut))))&&(vt(t),!he(Z))){const e=as();ks(),ys(e)}})),Es=e=>rs((()=>{if(t=(e=>He(e,ut))(e)){const s=Is();Fs(),Js(),t=!0,pt(e),Vs(s)}})),ks=()=>rs((()=>yt({}))),Ds=e=>rs((e=>ge(Z,e)?At(e):0),e),Hs=(e,t)=>rs(((e,t)=>Q(Fe(Z,e),(s=>ge(s,t)?Pt(e,s,t):0))),e,t),Js=()=>rs((()=>Dt({}))),xs=()=>rs((()=>{vt({}),e=!1})),Fs=()=>rs((()=>{pt({}),t=!1})),Qs=(e,t)=>{if(-1!=l){zs();const s=e();return Ns(t),s}},zs=()=>(-1!=l&&l++,1==l&&(c[0]?.(),it(ot)),Os),Ns=e=>(l>0&&(l--,0==l&&(l=1,ts(1),he(E)||os(1),ss(1),he(D)||ls(1),e?.(Os)&&(be(E,((e,t)=>be(e,((e,s)=>be(e,(([e],n)=>le(Os,t,s,n,e))))))),Ie(E),be(D,(([e],t)=>re(Os,t,e))),Ie(D)),it(lt[0],void 0),l=-1,ts(0),he(E)||os(0),ss(0),he(D)||ls(0),c[1]?.(),it(lt[1],void 0),c[2]?.(),l=0,s=Ls(),n=ps(),K([g,C,V,M,m,E,H,k,D,J],Ie))),Os),Os={getContent:()=>[as(),Is()],getTables:as,getTableIds:is,getTable:e=>Ae(Fe(Z,y(e))),getTableCellIds:cs,getRowCount:ds,getRowIds:us,getSortedRowIds:gs,getRow:(e,t)=>We(Fe(Fe(Z,y(e)),y(t))),getCellIds:hs,getCell:fs,getValues:Is,getValueIds:bs,getValue:ws,hasTables:Ls,hasTable:Cs,hasTableCell:Rs,hasRow:Ts,hasCell:vs,hasValues:ps,hasValue:Ss,getTablesJson:()=>Ct(Z),getValuesJson:()=>Ct($),getJson:()=>Ct([Z,$]),getTablesSchemaJson:()=>Ct(x),getValuesSchemaJson:()=>Ct(P),getSchemaJson:()=>Ct([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>rs((()=>{const t=O(e)?e():e;gt(t)&&(([e,t])=>{(ke(e)?ks:ys)(e),(ke(t)?Js:Vs)(t)})(t)})),setTables:ys,setTable:(e,t)=>rs((e=>ht(t,e)?Vt(e,t):0),e),setRow:(e,t,s)=>rs(((e,t)=>ft(e,t,s)?Mt(e,Jt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Qs((()=>{let n;return ft(e,n,t)&&(e=y(e),Mt(e,Jt(e),n=((e,t)=>{const[s]=Fe(q,e);let n;do{n=s(t)}while(ge(Fe(Z,e),n));return n})(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>rs(((e,t)=>{if(ft(e,t,s,1)){const n=Jt(e);Ee(s,((s,o)=>Et(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>rs(((e,t,s)=>Q(It(e,t,s,O(n)?n(fs(e,t,s)):n),(n=>Et(e,Jt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>rs((()=>bt(e,1)?Ee(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>rs((e=>Q(wt(e,O(t)?t(ws(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>rs((()=>{Ee(e[0],((e,t)=>F(e)?Ds(t):Ee(e,((e,s)=>F(e)?Hs(t,s):Ee(e,((e,n)=>le(Os,t,s,n,e))))))),Ee(e[1],((e,t)=>re(Os,t,e)))})),setTablesJson:Ms,setValuesJson:e=>{try{kt(Lt(e))}catch{}return Os},setJson:e=>rs((()=>{try{const[t,s]=Lt(e);St(t),kt(s)}catch{Ms(e)}})),setTablesSchema:ms,setValuesSchema:Es,setSchema:(e,t)=>rs((()=>{ms(e),Es(t)})),delTables:ks,delTable:Ds,delRow:Hs,delCell:(e,t,s,n)=>rs(((e,t,s)=>Q(Fe(Z,e),(o=>Q(Fe(o,t),(l=>ge(l,s)?_t(e,o,t,l,s,n):0))))),e,t,s),delValues:Js,delValue:e=>rs((e=>ge($,e)?jt(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>rs((()=>{xs(),Fs()})),transaction:Qs,startTransaction:zs,getTransactionChanges:()=>[We(E,((e,t)=>-1===Fe(g,t)?void 0:We(e,((e,s)=>-1===Fe(Fe(M,t),s)?void 0:We(e,(([,e])=>e),(e=>Nt(e)))),he,ke)),he,ke),We(D,(([,e])=>e),(e=>Nt(e))),1],getTransactionLog:()=>[!he(E),!he(D),Pe(E,zt,Nt),Pe(H),We(D,zt,Nt),We(J),We(g),Ae(M),Pe(m),We(k)],finishTransaction:Ns,forEachTable:e=>be(Z,((t,s)=>e(s,(e=>be(t,((t,s)=>e(s,(e=>Qe(t,e))))))))),forEachTableCell:(e,t)=>Qe(Fe(Y,y(e)),t),forEachRow:(e,t)=>be(Fe(Z,y(e)),((e,s)=>t(s,(t=>Qe(e,t))))),forEachCell:(e,t,s)=>Qe(Fe(Fe(Z,y(e)),y(t)),s),forEachValue:e=>Qe($,e),addSortedRowIdsListener:(e,t,s,n,o,l,r)=>{let a=gs(e,t,s,n,o);return rt((()=>{const r=gs(e,t,s,n,o);U(r,a)||(a=r,l(Os,e,t,s,n,o,a))}),ve[r?1:0],[e,t],[is])},addStartTransactionListener:e=>rt(e,ot),addWillFinishTransactionListener:e=>rt(e,lt[0]),addDidFinishTransactionListener:e=>rt(e,lt[1]),callListener:e=>(dt(e),Os),delListener:e=>(ct(e),Os),getListenerStats:()=>({hasTables:Ft(te),tables:Ft(se),tableIds:Ft(oe),hasTable:Ft(ae),table:Ft(fe),tableCellIds:Ft(Le),hasTableCell:Ft(Ce,de),rowCount:Ft(Re),rowIds:Ft(Te),sortedRowIds:Ft(ve),hasRow:Ft(pe,de),row:Ft(ye,de),cellIds:Ft(me,de),hasCell:Ft(De,ue),cell:Ft(Ue,ue),invalidCell:Ft(Ke,ue),hasValues:Ft(Ye),values:Ft(Ze),valueIds:Ft(tt),hasValue:Ft(st),value:Ft(nt),invalidValue:Ft(Xe),transaction:ce(ot)+Ft(lt)}),isMergeable:()=>!1,createStore:Wt,addListener:rt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Ee({[u+f]:[0,te,[],()=>[Ls()]],[f]:[0,se],[I]:[0,oe],[u+h]:[1,ae,[is],e=>[Cs(...e)]],[h]:[1,fe,[is]],[h+T]:[1,Le,[is]],[u+h+R]:[2,Ce,[is,cs],e=>[Rs(...e)]],[w]:[1,Re,[is]],[L]:[1,Te,[is]],[u+b]:[2,pe,[is,us],e=>[Ts(...e)]],[b]:[2,ye,[is,us]],[T]:[2,me,[is,us]],[u+R]:[3,De,[is,us,hs],e=>[vs(...e)]],[R]:[3,Ue,[is,us,hs],e=>xt(fs(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[ps()]],[p]:[0,Ze],[S]:[0,tt],[u+v]:[1,st,[bs],e=>[Ss(...e)]],[v]:[1,nt,[bs],e=>xt(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Os[d+o+i]=(...o)=>rt(o[e],t[o[e+1]?1:0],e>0?A(o,0,e):void 0,s,n)})),Se(Os)},At={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Pt=(e=t)=>[kt(e),kt(e)],_t=e=>{let s=1,n=Pt(),o=0;const l=Je(),r=qe(),[a,c]=(e=>{let t=0,s=-1;const n=Q(e,(e=>{const t=ut(e);return ot(t/ft)+ot(t/It)+ot(t/bt)+ot(t/64)+ot(t)}),(()=>it(5))),o=e=>{const n=t,[o,l]=F(e)||""==e?[0,0]:[lt(r=e,0)*gt+lt(r,1)*ht+lt(r,2)*ft+lt(r,3)*It+lt(r,4)*bt+64*lt(r,5)+lt(r,6),lt(r,7)*It+lt(r,8)*bt+64*lt(r,9)+lt(r,10)];var r;t=D(n,o,E.HLC_TIME??Date.now()),s=t==n?t==o?D(s,l):s:t==o?l:-1};return[()=>{return o(),l=++s,ot((e=t)/gt)+ot(e/ht)+ot(e/ft)+ot(e/It)+ot(e/bt)+ot(e/64)+ot(e)+ot(l/It)+ot(l/bt)+ot(l/64)+ot(l)+n;var e,l},o]})(e),u=Wt(),g=e=>{const t=s;return s=0,e(),s=t,w},h=(e,s=0)=>{const o={},l={},[[r,a=t,i=0],d]=e,[u,g]=n,[h,I,b]=u;let w=s?i:b,L=a;me(r,(([e,n=t,l=0],r)=>{const a=Ne(h,r,kt),[i,c,d]=a;let u=s?l:d,g=n;me(e,((e,t)=>{const[n,l,a]=f(e,Ne(i,t,kt),De(De(o,r,ye),t,ye),s);u^=s?0:(l?yt(t,l):0)^yt(t,a),g=Mt(g,n)})),u^=s?0:Vt(c,n),mt(a,n,u),w^=s?0:(d?yt(r,d):0)^yt(r,a[2]),L=Mt(L,g)})),w^=s?0:Vt(I,a),mt(u,a,w);const[C]=f(d,g,l,s);return c(Mt(L,C)),[o,l,1]},f=(e,s,n,o)=>{const[l,r=t,a=0]=e,[i,c,d]=s;let u=r,g=o?a:d;return me(l,(([e,s=t,l=0],r)=>{const a=Ne(i,r,(()=>[void 0,t,0])),[,c,d]=a;(!c||s>c)&&(mt(a,s,o?l:ut(Ct(e??null)+":"+s)),a[0]=e,n[r]=e,g^=o?0:yt(r,d)^yt(r,a[2]),u=Mt(u,s))})),g^=o?0:Vt(c,r),mt(s,r,g),[u,d,s[2]]},I=()=>[Dt(n[0],(e=>Dt(e,(e=>Dt(e))))),Dt(n[1])],b=e=>g((()=>u.applyChanges(h(e)))),w={getMergeableContent:I,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>We(n[0][0],St),getMergeableTableDiff:e=>{const t=Et(n[0][1]),s={};return Qe(n[0][0],((n,[o,l,r])=>Ve(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Ht([o,l],(e=>Ht(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n,,o])=>o!=e?Qe(n,((e,[,,n])=>De(t,s,ye)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Et(n[0][1]),s={};return me(e,((e,o)=>Qe(Fe(n[0][0],o)?.[0],((n,[l,r,a])=>Ve(e,n)?a!==e[n]?De(s,o,ye)[n]=a:0:De(t[0],o,Et)[0][n]=Ht([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n])=>me(e,((e,o)=>Q(Fe(n,o),(([n,,l])=>l!==e?Qe(n,((e,[,,n])=>De(De(t,s,ye),o,ye)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,o={};return me(e,((e,s)=>me(e,((e,n)=>Q(Fe(t,s),(([t,l])=>Q(Fe(t,n),(([t,r])=>Qe(t,((t,[a,i,c])=>c!==e[t]?De(De(o,s,(()=>Et(l)))[0],n,(()=>Et(r)))[0][t]=[a,i]:0)))))))))),vt(o,s)},getMergeableValueHashes:()=>We(n[1][0],St),getMergeableValueDiff:e=>{const[,[t,s]]=n,o=We(t,Rt,(([,,t],s)=>t==e?.[s]));return vt(o,s)},setMergeableContent:e=>g((()=>(e=>W(e)&&2==P(e)&&Jt(e[0],(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,oe)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>He(e,(e=>Jt(e,oe)),void 0,1))))(e)?u.transaction((()=>{u.delTables().delValues(),n=Pt(),u.applyChanges(h(e,1))})):0)),setDefaultContent:e=>(u.transaction((()=>{o=1,u.setContent(e),o=0})),w),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,o],[a,i,c]]=n,d=e?pt:vt,u={};be(l,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const l={};be(e,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const r={};be(e,(e=>{Q(Fe(t,e),(([t,s,n])=>r[e]=d(t,s,n)))})),l[s]=d(r,n,o)})))),u[s]=d(l,n,o)}))));const g={};return be(r,(e=>Q(Fe(a,e),(([t,s,n])=>g[e]=d(t,s,n))))),[d(u,s,o),d(g,i,c),1]},applyMergeableChanges:b,merge:e=>{const t=I(),s=e.getMergeableContent();return e.applyMergeableChanges(t),b(s)}};return u.setInternalListeners((()=>{}),(()=>{}),(()=>{Ie(l),Ie(r)}),((e,n,r,i)=>{Ge(Ne(Ne(l,e,Je),n,qe),r),s&&h([[{[e]:[{[n]:[{[r]:[i,o?t:a()]}]}]}],[{}],1])}),((e,n)=>{Ge(r,e),s&&h([[{}],[{[e]:[n,o?t:a()]}],1])})),Ee(u,((e,t)=>w[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),w):V(t,d)&&M(t,i)?(...s)=>{const n=At[A(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(w,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),Se(w)},jt=Je([["avg",[(e,t)=>Y(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Bt=(e,t,s,n,o,l=!1)=>{if(he(s))return;const[r,a,i,c]=o;return l||=F(e),be(n,(([s,n])=>{l||(e=F(s)?a?.(e,n,t++):F(n)?i?.(e,s,t--):c?.(e,n,s,t),l||=F(e))})),l?r(fe(s),ie(s)):e},Ut=Ye((e=>{const s=Je(),[n,o,l]=et((()=>w)),[r,a,i,c,d,u,g,,h,f,I,b]=Ke(e,_,(e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),w={setMetricDefinition:(e,t,n,l,r,a,i)=>{const c=O(n)?[n,r,a,i]:Fe(jt,n)??Fe(jt,"sum");return h(e,t,((t,n,l,r,a,i)=>{const d=u(e),h=ie(r);i||=F(d),t();let f=Bt(d,h,r,n,c,i);x(f)||(f=void 0),f!=d&&(g(e,f),o(s,[e],f,d))}),Xe(l,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(l(e),w),destroy:b,getListenerStats:()=>({metric:ce(s)})};return Se(w)})),qt=Ye((e=>{const s=e.createStore,n=s(),o=s(),l=Je(),{addListener:r,callListeners:a,delListener:u}=o,[g,f,I,v,p,,,S,,y,V,M,m,E]=Ke(e,(()=>!0),_,r,a),k=(e,t,...s)=>K(s,(s=>Ge(Ne(Ne(l,t,Je),e,qe),s))),D=e=>{Q(Fe(l,e),(e=>{Qe(e,((e,t)=>be(t,(t=>e.delListener(t))))),Ie(e)})),K([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,l,r)=>{S(s,l),D(s);const a=[],i=[[null,[l,null,null,[],Je()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=O(e)?[P(a)+t,e]:[F(s)?e:s,t=>t(e,s)];return ee(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,o=F(n)?t:s,l=[e,[e,n,O(o)?o:e=>e(o),[],Je()]];return ee(i,l),{as:e=>l[0]=e}},where:(e,t,s)=>ee(c,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const l=[e,[e,O(t)?[t,s,n,o]:Fe(jt,t)??[(e,t)=>t]]];return ee(d,l),{as:e=>l[0]=e}},having:(e,t)=>ee(u,O(e)?e:s=>s(e)===t)});const g=Je(a);if(he(g))return J;const h=Je(i);Qe(h,((e,[,t])=>Q(Fe(h,t),(({3:t})=>F(e)?0:ee(t,e)))));const f=Je(d);let I=n;if(he(f)&&Z(u))I=o;else{H(s,I,o);const e=Je();Qe(f,((t,[s,n])=>Ge(Ne(e,s,qe),[t,n])));const t=qe();Qe(g,(s=>ge(e,s)?0:Ge(t,s)));const n=Je(),l=(t,n,l,r)=>Q(t,(([a,i,c,d])=>{Qe(n,((t,[s])=>{const n=Ne(a,t,Je),o=Fe(n,l),i=r?void 0:s;if(o!==i){const s=qe([[o,i]]),r=ie(n);ze(n,l,i),be(Fe(e,t),(([e,t])=>{const o=Bt(d[e],r,n,s,t);d[e]=F(ne(o))?null:o}))}})),he(i)||!B(u,(e=>e((e=>d[e]))))?o.delRow(s,c):F(c)?t[2]=o.addRow(s,d):o.setRow(s,c,d)}));k(I,s,I.addRowListener(s,null,((o,r,a,i)=>{const c=[],d=[],u=Je(),g=I.hasRow(s,a);let h=!g;be(t,(e=>{const[t,n,o]=i(s,a,e);ee(c,n),ee(d,o),h||=t})),Qe(e,(e=>{const[t,,n]=i(s,a,e);(h||t)&&ze(u,e,[n])})),h&&l(Ue(n,c,void 0,(([,e])=>(we(e,a),he(e)))),u,a,1),g&&l(Ue(n,d,(()=>{const e={};return be(t,(t=>e[t]=I.getCell(s,a,t))),[Je(),qe(),void 0,e]}),(([,e])=>{Ge(e,a)})),u,a)})))}H(s,e,I);const b=(t,n,o,r)=>{const a=t=>e.getCell(n,o,t);K(r,(n=>{const[o,,l,r,i]=Fe(h,n),c=l?.(a,t),[d,u]=Fe(i,t)??[];c!=d&&(F(u)||E(s,u),ze(i,t,F(c)?null:[c,...m(s,1,e.addRowListener(o,c,(()=>b(t,o,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...F(n)?[l,t,s]:s===l?[l,t,n]:[Fe(h,s)?.[0],Fe(Fe(h,s)?.[4],t)?.[0],n]);I.transaction((()=>B(c,(e=>e(n)))?Qe(g,((e,o)=>le(I,s,t,e,o(n,t)))):I.delRow(s,t)))})(t)},{3:w}=Fe(h,null);return I.transaction((()=>m(s,1,e.addRowListener(l,null,((t,n,o)=>{e.hasRow(l,o)?b(o,l,o,w):(I.delRow(s,o),be(h,(({4:e})=>Q(Fe(e,o),(([,t])=>{E(s,t),ze(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:I,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Ee({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[b]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>J[e+c+s]=(...t)=>o[e+s](...t))),J[d+c+s+i]=(...e)=>o[d+s+i](...A(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),Se(J)})),Gt=Ye((e=>{const s=Je(),n=Je(),o=Je(),l=Je(),[r,a,i]=et((()=>v)),[c,d,u,g,h,f,,,I,b,w,L]=Ke(e,(()=>[Je(),Je(),Je(),Je()]),(e=>F(e)?void 0:e+t),r,a),C=(e,t,s)=>Q(f(e),(([n,,o])=>{if(!ge(o,t)){const l=qe();if(h(e)!=T(e))Ge(l,t);else{let e=t;for(;!F(e)&&!ge(l,e);)Ge(l,e),e=Fe(n,e)}if(s)return l;ze(o,t,l)}return Fe(o,t)})),R=(e,t)=>Q(f(e),(([,,e])=>ze(e,t))),T=e=>Fe(s,e),v={setRelationshipDefinition:(e,t,r,i)=>(ze(s,e,r),I(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);be(s,(([t,s],n)=>{F(t)||(Ge(i,t),Q(Fe(u,t),(e=>{we(e,n),he(e)&&ze(u,t)}))),F(s)||(Ge(i,s),ge(u,s)||ze(u,s,qe()),Ge(Fe(u,s),n)),Ge(r,n),ze(d,n,s),Qe(Fe(l,e),(t=>{ge(C(e,t),n)&&Ge(c,t)}))})),t(),be(r,(t=>a(n,[e,t]))),be(i,(t=>a(o,[e,t]))),be(c,(t=>{R(e,t),a(l,[e,t])}))}),Xe(i)),v),delRelationshipDefinition:e=>(ze(s,e),b(e),v),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>fe(Fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:fe(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),r(s,l,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:de(n),localRowIds:de(o),linkedRowIds:de(l)})};return Se(v)}));export{tt as createCheckpoints,ct as createIndexes,_t as createMergeableStore,Ut as createMetrics,qt as createQueries,Gt as createRelationships,Wt as createStore,at as defaultSorter,it as getUniqueId};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),l=e(e),r="type",a="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",b=h+g,I="Row",w=I+"Count",L=I+g,C="Sorted"+I+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==l,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,j=()=>{},_=(e,t)=>e.includes(t),B=(e,t)=>e.every(t),U=(e,t)=>P(e)===P(t)&&B(e,((e,s)=>t[s]===e)),q=(e,t)=>B(e,((s,n)=>0==n||t(e[n-1],s)<=0)),G=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>$(e,((e,t)=>e+t),0),Z=e=>0==P(e),$=(e,t,s)=>e.reduce(t,s),ee=(e,...t)=>e.push(...t),te=e=>e.pop(),se=e=>e.shift(),ne=t=>{const s=e(t);return z(s)||s==o&&x(t)?s:void 0},oe=e=>F(e)||!F(ne(e)),le=(e,t,s,n,o)=>F(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),re=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),ae=e=>t=>$(fe(t),((t,s)=>t+e(s)),0),ie=e=>e?.size??0,ce=ae(ie),de=ae(ce),ue=ae(de),ge=(e,t)=>e?.has(t)??!1,he=e=>F(e)||0==ie(e),fe=e=>[...e?.values()??[]],be=e=>e.clear(),Ie=(e,t)=>e?.forEach(t),we=(e,t)=>e?.delete(t),Le=Object,Ce=e=>Le.getPrototypeOf(e),Re=Le.entries,Te=Le.isFrozen,ve=e=>!F(e)&&Q(Ce(e),(e=>e==Le.prototype||F(Ce(e))),(()=>!0)),pe=Le.keys,Se=Le.freeze,ye=(e=[])=>Le.fromEntries(e),Ve=(e,t)=>t in e,Me=(e,t)=>(delete e[t],e),me=(e,t)=>K(Re(e),(([e,s])=>t(s,e))),Ee=(e,t)=>ye(((e,t)=>X(Re(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),ke=e=>ve(e)&&0==(e=>P(pe(e)))(e),De=(e,t,s)=>(Ve(e,t)||(e[t]=s()),e[t]),He=(e,t,s,n=0)=>F(e)||!ve(e)||!n&&ke(e)||Te(e)?(s?.(),!1):(me(e,((s,n)=>{t(s,n)||Me(e,n)})),!!n||!ke(e)),Je=e=>new Map(e),xe=e=>[...e?.keys()??[]],Fe=(e,t)=>e?.get(t),Qe=(e,t)=>Ie(e,((e,s)=>t(s,e))),ze=(e,t,s)=>F(s)?(we(e,t),e):e?.set(t,s),Ne=(e,t,s,n)=>(ge(e,t)?n?.(Fe(e,t)):ze(e,t,s()),Fe(e,t)),Oe=(e,t,s,n=ze)=>(Ee(t,((t,n)=>s(e,n,t))),Qe(e,(s=>Ve(t,s)?0:n(e,s))),e),We=(e,t,s,n)=>{const o={};return Ie(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;n?.(s)||(o[l]=s)}})),o},Ae=(e,t,s)=>We(e,(e=>We(e,t,s)),he,ke),Pe=(e,t,s)=>We(e,(e=>Ae(e,t,s)),he,ke),je=(e,t)=>{const s=Je();return Ie(e,((e,n)=>s.set(n,t?.(e)??e))),s},_e=e=>je(e,je),Be=e=>je(e,_e),Ue=(e,t,s,n,o=0)=>Q((s?Ne:Fe)(e,t[o],o>P(t)-2?s:Je),(l=>{if(o>P(t)-2)return n?.(l)&&ze(e,t[o]),l;const r=Ue(l,t,s,n,o+1);return he(l)&&ze(e,t[o]),r})),qe=e=>new Set(W(e)||F(e)?e:[e]),Ge=(e,t)=>e?.add(t),Ke=(e,t,s,n,o)=>{const l=e.hasRow,r=Je(),a=Je(),i=Je(),c=Je(),d=Je(),u=Je(),g=(t,s,...n)=>{const o=Ne(u,t,qe);return K(n,(t=>Ge(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>Q(Fe(u,t),(n=>{K(Z(s)?fe(n):s,(t=>{e.delListener(t),we(n,t)})),he(n)&&ze(u,t)})),f=(e,s)=>{ze(r,e,s),ge(a,e)||(ze(a,e,t()),ze(c,e,Je()),ze(d,e,Je()),o(i))},b=e=>{ze(r,e),ze(a,e),ze(c,e),ze(d,e),h(e),o(i)};return[()=>e,()=>xe(r),e=>Qe(a,e),e=>ge(a,e),e=>Fe(r,e),e=>Fe(a,e),(e,t)=>ze(a,e,t),f,(t,n,o,r,a)=>{f(t,n);const i=Je(),u=Je(),b=Fe(c,t),I=Fe(d,t),w=t=>{const o=s=>e.getCell(n,t,s),c=Fe(b,t),d=l(n,t)?s(r(o,t)):void 0;if(c===d||W(c)&&W(d)&&U(c,d)||ze(i,t,[c,d]),!F(a)){const e=Fe(I,t),s=l(n,t)?a(o,t):void 0;e!=s&&ze(u,t,s)}},L=e=>{o((()=>{Ie(i,(([,e],t)=>ze(b,t,e))),Ie(u,((e,t)=>ze(I,t,e)))}),i,u,b,I,e),be(i),be(u)};Qe(b,w),e.hasTable(n)&&K(e.getRowIds(n),(e=>{ge(b,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},b,e=>n(e,i),()=>Qe(u,b),g,h]},Xe=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),Ye=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ze=/^\d+$/,$e=()=>{const e=[];let s=0;return[n=>(n?se(e):null)??t+s++,t=>{Ze.test(t)&&P(e)<1e3&&ee(e,t)}]},et=e=>{let s;const[n,o]=$e(),l=Je();return[(o,r,a,i=[],c=()=>[])=>{s??=e();const d=n(1);return ze(l,d,[o,r,a,i,c]),Ge(Ue(r,a??[t],qe),d),d},(e,n,...o)=>K(((e,s=[t])=>{const n=[],o=(e,t)=>t==P(s)?ee(n,e):null===s[t]?Ie(e,(e=>o(e,t+1))):K([s[t],null],(s=>o(Fe(e,s),t+1)));return o(e,0),n})(e,n),(e=>Ie(e,(e=>Fe(l,e)[0](s,...n??[],...o))))),e=>Q(Fe(l,e),(([,s,n])=>(Ue(s,n??[t],void 0,(t=>(we(t,e),he(t)?1:0))),ze(l,e),o(e),n))),e=>Q(Fe(l,e),(([e,,t=[],n,o])=>{const l=(...r)=>{const a=P(r);a==P(t)?e(s,...r,...o(r)):F(t[a])?K(n[a]?.(...r)??[],(e=>l(...r,e))):l(...r,t[a])};l()}))]},tt=Ye((e=>{let s,n,o,l=100,r=Je(),a=Je(),i=1;const c=Je(),d=Je(),[u,g,h]=et((()=>J)),f=Je(),b=Je(),I=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Fe(f,s);Ie(n,((s,n)=>Ie(s,((s,o)=>Ie(s,((s,l)=>le(e,n,o,l,s[t]))))))),Ie(o,((s,n)=>re(e,n,s[t])))})),i=1},C=e=>{ze(f,e),ze(b,e),g(d,[e])},R=(e,t)=>K(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(I,P(I)-l),v=()=>Q(s,(()=>{ee(I,s),T(),R(w),s=void 0,o=1})),p=()=>{s=te(I),o=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,ze(f,s,[r,a]),D(s,e),r=Je(),a=Je(),o=1),s),M=()=>{Z(I)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=te(I),o=1)},m=()=>{Z(w)||(ee(I,s),s=se(w),L(1,s),o=1)},E=()=>{o&&(g(c),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Fe(b,e)!==t&&(ze(b,e,t),g(d,[e])),J),H=e=>ge(f,e),J={setSize:e=>(l=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...I],s,[...w]],forEachCheckpoint:e=>Qe(b,e),hasCheckpoint:H,getCheckpoint:e=>Fe(b,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=_(I,e)?M:_(w,e)?m:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),J),clear:()=>(R(I),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Z(w)||(R(w),g(c)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ce(c),checkpoint:ce(d)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,l)=>{if(i){v();const e=Ne(r,t,Je),a=Ne(e,s,Je),i=Ne(a,n,(()=>[l,void 0]));i[1]=o,i[0]===o&&he(ze(a,n))&&he(ze(e,s))&&he(ze(r,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Ne(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&he(ze(a,t))&&p(),E()}}))}};return Se(J.clear())}),(e=>e._registerListeners())),st=m("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),nt=Je(X(st,((e,t)=>[e,t]))),ot=e=>st[63&e],lt=(e,t)=>Fe(nt,e[t])??0,rt=E.crypto?e=>E.crypto.getRandomValues(e):e=>X(e,(()=>J(256*k.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,it=(e=16)=>$(rt(new Uint8Array(e)),((e,t)=>e+ot(t)),""),ct=Ye((e=>{const s=Je(),n=Je(),[o,l,r]=et((()=>C)),[a,i,c,d,u,g,h,,f,b,I,w]=Ke(e,Je,(e=>F(e)?t:W(e)?X(e,y):y(e)),o,l),L=(t,s,n)=>{const o=u(t);Ie(n,((t,n)=>s(n,(s=>Ie(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,r,a,i=at)=>{const c=F(a)?void 0:([e],[t])=>a(e,t);return f(e,t,((t,o,a,d,u,f)=>{let b=0;const I=qe(),w=qe(),L=g(e);if(Ie(o,(([e,t],s)=>{const n=qe(e),o=qe(t);Ie(n,(e=>we(o,e)?we(n,e):0)),Ie(n,(e=>{Ge(I,e),Q(Fe(L,e),(t=>{we(t,s),he(t)&&(ze(L,e),b=1)}))})),Ie(o,(e=>{Ge(I,e),ge(L,e)||(ze(L,e,qe()),b=1),Ge(Fe(L,e),s),F(r)||Ge(w,e)}))})),t(),he(u)||(f?Qe(L,(e=>Ge(w,e))):Qe(a,(e=>Q(Fe(d,e),(e=>K(W(e)?e:[e],(e=>Ge(w,e))))))),Ie(w,(e=>{const t=(t,s)=>i(Fe(u,t),Fe(u,s),e),s=[...Fe(L,e)];q(s,t)||(ze(L,e,qe(G(s,t))),Ge(I,e))}))),(b||f)&&!F(c)){const t=[...L];q(t,c)||(h(e,Je(G(t,c))),b=1)}b&&l(s,[e]),Ie(I,(t=>l(n,[e,t])))}),Xe(o),Q(r,Xe)),C},delIndexDefinition:e=>(b(e),C),getStore:a,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>ge(g(e),t),getTableId:u,getSliceIds:e=>xe(g(e)),getSliceRowIds:(e,t)=>fe(Fe(g(e),t)),addIndexIdsListener:I,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),C),destroy:w,getListenerStats:()=>({sliceIds:ce(s),sliceRowIds:de(n)})};return Se(C)})),dt=new E.TextEncoder,ut=e=>{let t=2166136261;return K(dt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},gt=2**36,ht=2**30,ft=2**24,bt=2**18,It=4096,wt=JSON.stringify,Lt=JSON.parse,Ct=e=>wt(e,((e,t)=>t instanceof Map?Le.fromEntries([...t]):t)),Rt=([e,t])=>vt(e,t),Tt=([e,t,s])=>[e,t,s],vt=(e,t)=>t?[e,t]:[e],pt=(e,t,s)=>[e,t,s],St=e=>e[2],yt=(e,t)=>ut(e+":"+t),Vt=(e,t)=>t>e?(e?ut(e):0)^ut(t):0,Mt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Et=(e=t)=>vt(ye(),e),kt=(e=t)=>[Je(),e,0],Dt=([e,t,s],n=Tt)=>[We(e,n),t,s],Ht=([e,t],s=Rt)=>vt(We(e,s),t),Jt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==o&&x(t[2])&&s(t[0]),xt=e=>[e,e],Ft=(e,t=ce)=>t(e[0])+t(e[1]),Qt=()=>[Je(),Je()],zt=e=>[...e],Nt=([e,t])=>e===t,Ot=(e,t,s)=>ze(e,t,Fe(e,t)==-s?void 0:s),Wt=()=>{let e,t,s=!1,n=!1,l=0,c=[];const g=Je(),C=Je(),V=Je(),M=Je(),m=Je(),E=Je(),k=Je(),D=Je(),H=Je(),J=Je(),x=Je(),N=Je(),P=Je(),j=Je(),B=qe(),q=Je(),Y=Je(),Z=Je(),$=Je(),te=Qt(),se=Qt(),oe=Qt(),ae=Qt(),fe=Qt(),Le=Qt(),Ce=Qt(),Re=Qt(),Te=Qt(),ve=Qt(),pe=Qt(),ye=Qt(),me=Qt(),De=Qt(),Ue=Qt(),Ke=Qt(),Xe=Qt(),Ye=Qt(),Ze=Qt(),tt=Qt(),st=Qt(),nt=Qt(),ot=Je(),lt=Qt(),[rt,it,ct,dt]=et((()=>Os)),ut=e=>{if(!He(e,((e,t)=>_([r,a],t))))return!1;const t=e[r];return!(!z(t)&&t!=o||(ne(e[a])!=t&&Me(e,a),0))},gt=W,ht=(t,s)=>(!e||ge(x,s)||Yt(s))&&He(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>He(n?s:Rt(s,e,t),((n,o)=>Q(bt(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Yt(e,t))),bt=(t,s,n,o)=>e?Q(Fe(Fe(x,t),n),(e=>ne(o)!=e[r]?Yt(t,s,n,o,e[a]):o),(()=>Yt(t,s,n,o))):F(ne(o))?Yt(t,s,n,o):o,It=(e,t)=>He(t?e:Tt(e),((t,s)=>Q(wt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),wt=(e,s)=>t?Q(Fe(P,e),(t=>ne(s)!=t[r]?Zt(e,s,t[a]):s),(()=>Zt(e,s))):F(ne(s))?Zt(e,s):s,Rt=(e,t,s)=>(Q(Fe(N,t),(([n,o])=>{Ie(n,((t,s)=>{Ve(e,s)||(e[s]=t)})),Ie(o,(n=>{Ve(e,n)||Yt(t,s,n)}))})),e),Tt=e=>(t&&(Ie(j,((t,s)=>{Ve(e,s)||(e[s]=t)})),Ie(B,(t=>{Ve(e,t)||Zt(t)}))),e),vt=e=>Oe(x,e,((e,t,s)=>{const n=Je(),o=qe();Oe(Ne(x,t,Je),s,((e,t,s)=>{ze(e,t,s),Q(s[a],(e=>ze(n,t,e)),(()=>Ge(o,t)))})),ze(N,t,[n,o])}),((e,t)=>{ze(x,t),ze(N,t)})),pt=e=>Oe(P,e,((e,t,s)=>{ze(P,t,s),Q(s[a],(e=>ze(j,t,e)),(()=>Ge(B,t)))}),((e,t)=>{ze(P,t),ze(j,t),we(B,t)})),St=e=>ke(e)?ks():ys(e),yt=e=>Oe(Z,e,((e,t,s)=>Vt(t,s)),((e,t)=>At(t))),Vt=(e,t)=>Oe(Ne(Z,e,(()=>(Bt(e,1),ze(q,e,$e()),ze(Y,e,Je()),Je()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>Pt(e,t,s))),Mt=(e,t,s,n,o)=>Oe(Ne(t,s,(()=>(Ut(e,s,1),Je()))),n,((t,n,o)=>mt(e,s,t,n,o)),((n,l)=>jt(e,t,s,n,l,o))),mt=(e,t,s,n,o)=>{ge(s,n)||qt(e,t,n,1);const l=Fe(s,n);o!==l&&(Gt(e,t,n,l,o),ze(s,n,o))},Et=(e,t,s,n,o)=>Q(Fe(t,s),(t=>mt(e,s,t,n,o)),(()=>Mt(e,t,s,Rt({[n]:o},e,s)))),kt=e=>ke(e)?Js():Vs(e),Dt=e=>Oe($,e,((e,t,s)=>Ht(t,s)),((e,t)=>_t(t))),Ht=(e,t)=>{ge($,e)||Kt(e,1);const s=Fe($,e);t!==s&&(Xt(e,s,t),ze($,e,t))},Jt=e=>Fe(Z,e)??Vt(e,{}),At=e=>Vt(e,{}),Pt=(e,t,s)=>{const[,n]=Fe(q,e);n(s),Mt(e,t,s,{},!0)},jt=(e,t,s,n,o,l)=>{const r=Fe(Fe(N,e)?.[0],o);if(!F(r)&&!l)return mt(e,s,n,o,r);const a=t=>{Gt(e,s,t,Fe(n,t)),qt(e,s,t,-1),ze(n,t)};F(r)?a(o):Qe(n,a),he(n)&&(Ut(e,s,-1),he(ze(t,s))&&(Bt(e,-1),ze(Z,e),ze(q,e),ze(Y,e)))},_t=e=>{const t=Fe(j,e);if(!F(t))return Ht(e,t);Xt(e,Fe($,e)),Kt(e,-1),ze($,e)},Bt=(e,t)=>Ot(g,e,t),Ut=(e,t,s)=>Ot(Ne(M,e,Je),t,s)&&ze(V,e,Ne(V,e,(()=>0))+s),qt=(e,t,s,n)=>{const o=Fe(Y,e),l=Fe(o,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ot(Ne(C,e,Je),s,n),ze(o,s,l!=-n?l+n:null),Ot(Ne(Ne(m,e,Je),t,Je),s,n)},Gt=(e,t,s,n,o)=>{Ne(Ne(Ne(E,e,Je),t,Je),s,(()=>[n,0]))[1]=o,c[3]?.(e,t,s,o)},Kt=(e,t)=>Ot(k,e,t),Xt=(e,t,s)=>{Ne(D,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,o)=>(ee(Ne(Ne(Ne(H,e,Je),t,Je),s,(()=>[])),n),o),Zt=(e,t,s)=>(ee(Ne(J,e,(()=>[])),t),s),$t=(e,t,s)=>Q(Fe(Fe(Fe(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(fs(e,t,s))])),es=e=>Q(Fe(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(ws(e))])),ts=e=>he(H)||he(Ke[e])?0:Ie(e?Be(H):H,((t,s)=>Ie(t,((t,n)=>Ie(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ss=e=>he(J)||he(Xe[e])?0:Ie(e?je(J):J,((t,s)=>it(Xe[e],[s],t))),ns=(e,t,s,n)=>{if(!he(e))return it(t,n,(()=>We(e))),Qe(e,((e,t)=>it(s,[...n??[],e],1==t))),1},os=e=>{const t=Ls();t!=s&&it(te[e],void 0,t);const n=he(ve[e]),o=he(me[e])&&he(De[e])&&he(Te[e])&&he(pe[e])&&he(Le[e])&&he(Ce[e])&&he(Re[e])&&n&&he(oe[e])&&he(ae[e]),l=he(Ue[e])&&he(ye[e])&&he(fe[e])&&he(se[e]);if(!o||!l){const t=e?[je(g),_e(C),je(V),_e(M),Be(m),Be(E)]:[g,C,V,M,m,E];if(!o){ns(t[0],oe[e],ae[e]),Ie(t[1],((t,s)=>ns(t,Le[e],Ce[e],[s]))),Ie(t[2],((t,s)=>{0!=t&&it(Re[e],[s],ds(s))}));const s=qe();Ie(t[3],((t,o)=>{ns(t,Te[e],pe[e],[o])&&!n&&(it(ve[e],[o,null]),Ge(s,o))})),n||Ie(t[5],((t,n)=>{if(!ge(s,n)){const s=qe();Ie(t,(e=>Ie(e,(([t,n],o)=>n!==t?Ge(s,o):we(e,o))))),Ie(s,(t=>it(ve[e],[n,t])))}})),Ie(t[4],((t,s)=>Ie(t,((t,n)=>ns(t,me[e],De[e],[s,n])))))}if(!l){let s;Ie(t[5],((t,n)=>{let o;Ie(t,((t,l)=>{let r;Ie(t,(([t,a],i)=>{a!==t&&(it(Ue[e],[n,l,i],a,t,$t),s=o=r=1)})),r&&it(ye[e],[n,l],$t)})),o&&it(fe[e],[n],$t)})),s&&it(se[e],void 0,$t)}}},ls=e=>{const t=ps();t!=n&&it(Ye[e],void 0,t);const s=he(tt[e])&&he(st[e]),o=he(nt[e])&&he(Ze[e]);if(!s||!o){const t=e?[je(k),je(D)]:[k,D];if(s||ns(t[0],tt[e],st[e]),!o){let s;Ie(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,es),s=1)})),s&&it(Ze[e],void 0,es)}}},rs=(e,...t)=>(Qs((()=>e(...X(t,y)))),Os),as=()=>Pe(Z),is=()=>xe(Z),cs=e=>xe(Fe(Y,y(e))),ds=e=>ie(Fe(Z,y(e))),us=e=>xe(Fe(Z,y(e))),gs=(e,t,s,n=0,o)=>{return X(A(G((l=Fe(Z,y(e)),r=(e,s)=>[F(t)?s:Fe(e,y(t)),s],X([...l?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,F(o)?o:n+o),(([,e])=>e));var l,r},hs=(e,t)=>xe(Fe(Fe(Z,y(e)),y(t))),fs=(e,t,s)=>Fe(Fe(Fe(Z,y(e)),y(t)),y(s)),bs=()=>We($),Is=()=>xe($),ws=e=>Fe($,y(e)),Ls=()=>!he(Z),Cs=e=>ge(Z,y(e)),Rs=(e,t)=>ge(Fe(Y,y(e)),y(t)),Ts=(e,t)=>ge(Fe(Z,y(e)),y(t)),vs=(e,t,s)=>ge(Fe(Fe(Z,y(e)),y(t)),y(s)),ps=()=>!he($),Ss=e=>ge($,y(e)),ys=e=>rs((()=>(e=>He(e,ht,Yt))(e)?yt(e):0)),Vs=e=>rs((()=>It(e)?Dt(e):0)),Ms=e=>{try{St(Lt(e))}catch{}return Os},ms=t=>rs((()=>{if((e=He(t,(e=>He(e,ut))))&&(vt(t),!he(Z))){const e=as();ks(),ys(e)}})),Es=e=>rs((()=>{if(t=(e=>He(e,ut))(e)){const s=bs();Fs(),Js(),t=!0,pt(e),Vs(s)}})),ks=()=>rs((()=>yt({}))),Ds=e=>rs((e=>ge(Z,e)?At(e):0),e),Hs=(e,t)=>rs(((e,t)=>Q(Fe(Z,e),(s=>ge(s,t)?Pt(e,s,t):0))),e,t),Js=()=>rs((()=>Dt({}))),xs=()=>rs((()=>{vt({}),e=!1})),Fs=()=>rs((()=>{pt({}),t=!1})),Qs=(e,t)=>{if(-1!=l){zs();const s=e();return Ns(t),s}},zs=()=>(-1!=l&&l++,1==l&&(c[0]?.(),it(ot)),Os),Ns=e=>(l>0&&(l--,0==l&&(l=1,ts(1),he(E)||os(1),ss(1),he(D)||ls(1),e?.(Os)&&(Ie(E,((e,t)=>Ie(e,((e,s)=>Ie(e,(([e],n)=>le(Os,t,s,n,e))))))),be(E),Ie(D,(([e],t)=>re(Os,t,e))),be(D)),it(lt[0],void 0),l=-1,ts(0),he(E)||os(0),ss(0),he(D)||ls(0),c[1]?.(),it(lt[1],void 0),c[2]?.(),l=0,s=Ls(),n=ps(),K([g,C,V,M,m,E,H,k,D,J],be))),Os),Os={getContent:()=>[as(),bs()],getTables:as,getTableIds:is,getTable:e=>Ae(Fe(Z,y(e))),getTableCellIds:cs,getRowCount:ds,getRowIds:us,getSortedRowIds:gs,getRow:(e,t)=>We(Fe(Fe(Z,y(e)),y(t))),getCellIds:hs,getCell:fs,getValues:bs,getValueIds:Is,getValue:ws,hasTables:Ls,hasTable:Cs,hasTableCell:Rs,hasRow:Ts,hasCell:vs,hasValues:ps,hasValue:Ss,getTablesJson:()=>Ct(Z),getValuesJson:()=>Ct($),getJson:()=>Ct([Z,$]),getTablesSchemaJson:()=>Ct(x),getValuesSchemaJson:()=>Ct(P),getSchemaJson:()=>Ct([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>rs((()=>{const t=O(e)?e():e;gt(t)&&(([e,t])=>{(ke(e)?ks:ys)(e),(ke(t)?Js:Vs)(t)})(t)})),setTables:ys,setTable:(e,t)=>rs((e=>ht(t,e)?Vt(e,t):0),e),setRow:(e,t,s)=>rs(((e,t)=>ft(e,t,s)?Mt(e,Jt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Qs((()=>{let n;return ft(e,n,t)&&(e=y(e),Mt(e,Jt(e),n=((e,t)=>{const[s]=Fe(q,e);let n;do{n=s(t)}while(ge(Fe(Z,e),n));return n})(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>rs(((e,t)=>{if(ft(e,t,s,1)){const n=Jt(e);Ee(s,((s,o)=>Et(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>rs(((e,t,s)=>Q(bt(e,t,s,O(n)?n(fs(e,t,s)):n),(n=>Et(e,Jt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>rs((()=>It(e,1)?Ee(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>rs((e=>Q(wt(e,O(t)?t(ws(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>rs((()=>{Ee(e[0],((e,t)=>F(e)?Ds(t):Ee(e,((e,s)=>F(e)?Hs(t,s):Ee(e,((e,n)=>le(Os,t,s,n,e))))))),Ee(e[1],((e,t)=>re(Os,t,e)))})),setTablesJson:Ms,setValuesJson:e=>{try{kt(Lt(e))}catch{}return Os},setJson:e=>rs((()=>{try{const[t,s]=Lt(e);St(t),kt(s)}catch{Ms(e)}})),setTablesSchema:ms,setValuesSchema:Es,setSchema:(e,t)=>rs((()=>{ms(e),Es(t)})),delTables:ks,delTable:Ds,delRow:Hs,delCell:(e,t,s,n)=>rs(((e,t,s)=>Q(Fe(Z,e),(o=>Q(Fe(o,t),(l=>ge(l,s)?jt(e,o,t,l,s,n):0))))),e,t,s),delValues:Js,delValue:e=>rs((e=>ge($,e)?_t(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>rs((()=>{xs(),Fs()})),transaction:Qs,startTransaction:zs,getTransactionChanges:()=>[We(E,((e,t)=>-1===Fe(g,t)?void 0:We(e,((e,s)=>-1===Fe(Fe(M,t),s)?void 0:We(e,(([,e])=>e),(e=>Nt(e)))),he,ke)),he,ke),We(D,(([,e])=>e),(e=>Nt(e))),1],getTransactionLog:()=>[!he(E),!he(D),Pe(E,zt,Nt),Pe(H),We(D,zt,Nt),We(J),We(g),Ae(M),Pe(m),We(k)],finishTransaction:Ns,forEachTable:e=>Ie(Z,((t,s)=>e(s,(e=>Ie(t,((t,s)=>e(s,(e=>Qe(t,e))))))))),forEachTableCell:(e,t)=>Qe(Fe(Y,y(e)),t),forEachRow:(e,t)=>Ie(Fe(Z,y(e)),((e,s)=>t(s,(t=>Qe(e,t))))),forEachCell:(e,t,s)=>Qe(Fe(Fe(Z,y(e)),y(t)),s),forEachValue:e=>Qe($,e),addSortedRowIdsListener:(e,t,s,n,o,l,r)=>{let a=gs(e,t,s,n,o);return rt((()=>{const r=gs(e,t,s,n,o);U(r,a)||(a=r,l(Os,e,t,s,n,o,a))}),ve[r?1:0],[e,t],[is])},addStartTransactionListener:e=>rt(e,ot),addWillFinishTransactionListener:e=>rt(e,lt[0]),addDidFinishTransactionListener:e=>rt(e,lt[1]),callListener:e=>(dt(e),Os),delListener:e=>(ct(e),Os),getListenerStats:()=>({hasTables:Ft(te),tables:Ft(se),tableIds:Ft(oe),hasTable:Ft(ae),table:Ft(fe),tableCellIds:Ft(Le),hasTableCell:Ft(Ce,de),rowCount:Ft(Re),rowIds:Ft(Te),sortedRowIds:Ft(ve),hasRow:Ft(pe,de),row:Ft(ye,de),cellIds:Ft(me,de),hasCell:Ft(De,ue),cell:Ft(Ue,ue),invalidCell:Ft(Ke,ue),hasValues:Ft(Ye),values:Ft(Ze),valueIds:Ft(tt),hasValue:Ft(st),value:Ft(nt),invalidValue:Ft(Xe),transaction:ce(ot)+Ft(lt)}),isMergeable:()=>!1,createStore:Wt,addListener:rt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Ee({[u+f]:[0,te,[],()=>[Ls()]],[f]:[0,se],[b]:[0,oe],[u+h]:[1,ae,[is],e=>[Cs(...e)]],[h]:[1,fe,[is]],[h+T]:[1,Le,[is]],[u+h+R]:[2,Ce,[is,cs],e=>[Rs(...e)]],[w]:[1,Re,[is]],[L]:[1,Te,[is]],[u+I]:[2,pe,[is,us],e=>[Ts(...e)]],[I]:[2,ye,[is,us]],[T]:[2,me,[is,us]],[u+R]:[3,De,[is,us,hs],e=>[vs(...e)]],[R]:[3,Ue,[is,us,hs],e=>xt(fs(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[ps()]],[p]:[0,Ze],[S]:[0,tt],[u+v]:[1,st,[Is],e=>[Ss(...e)]],[v]:[1,nt,[Is],e=>xt(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Os[d+o+i]=(...o)=>rt(o[e],t[o[e+1]?1:0],e>0?A(o,0,e):void 0,s,n)})),Se(Os)},At={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Pt=(e=t)=>[kt(e),kt(e)],jt=(e,s)=>{let n=1,o=Pt(),l=0;const r=Je(),a=qe(),[c,u]=((e,t=Date.now)=>{let s=0,n=-1;const o=Q(e,(e=>{const t=ut(e);return ot(t/ft)+ot(t/bt)+ot(t/It)+ot(t/64)+ot(t)}),(()=>it(5))),l=e=>{const o=s,[l,r]=F(e)||""==e?[0,0]:[lt(a=e,0)*gt+lt(a,1)*ht+lt(a,2)*ft+lt(a,3)*bt+lt(a,4)*It+64*lt(a,5)+lt(a,6),lt(a,7)*bt+lt(a,8)*It+64*lt(a,9)+lt(a,10)];var a;s=D(o,l,t()),n=s==o?s==l?D(n,r):n:s==l?r:-1};return[()=>{return l(),t=++n,ot((e=s)/gt)+ot(e/ht)+ot(e/ft)+ot(e/bt)+ot(e/It)+ot(e/64)+ot(e)+ot(t/bt)+ot(t/It)+ot(t/64)+ot(t)+o;var e,t},l]})(e,s),g=Wt(),h=e=>{const t=n;return n=0,e(),n=t,L},f=(e,s=0)=>{const n={},l={},[[r,a=t,i=0],c]=e,[d,g]=o,[h,f,I]=d;let w=s?i:I,L=a;me(r,(([e,o=t,l=0],r)=>{const a=Ne(h,r,kt),[i,c,d]=a;let u=s?l:d,g=o;me(e,((e,t)=>{const[o,l,a]=b(e,Ne(i,t,kt),De(De(n,r,ye),t,ye),s);u^=s?0:(l?yt(t,l):0)^yt(t,a),g=Mt(g,o)})),u^=s?0:Vt(c,o),mt(a,o,u),w^=s?0:(d?yt(r,d):0)^yt(r,a[2]),L=Mt(L,g)})),w^=s?0:Vt(f,a),mt(d,a,w);const[C]=b(c,g,l,s);return u(Mt(L,C)),[n,l,1]},b=(e,s,n,o)=>{const[l,r=t,a=0]=e,[i,c,d]=s;let u=r,g=o?a:d;return me(l,(([e,s=t,l=0],r)=>{const a=Ne(i,r,(()=>[void 0,t,0])),[,c,d]=a;(!c||s>c)&&(mt(a,s,o?l:ut(Ct(e??null)+":"+s)),a[0]=e,n[r]=e,g^=o?0:yt(r,d)^yt(r,a[2]),u=Mt(u,s))})),g^=o?0:Vt(c,r),mt(s,r,g),[u,d,s[2]]},I=()=>[Dt(o[0],(e=>Dt(e,(e=>Dt(e))))),Dt(o[1])],w=e=>h((()=>g.applyChanges(f(e)))),L={getMergeableContent:I,getMergeableContentHashes:()=>[o[0][2],o[1][2]],getMergeableTableHashes:()=>We(o[0][0],St),getMergeableTableDiff:e=>{const t=Et(o[0][1]),s={};return Qe(o[0][0],((n,[o,l,r])=>Ve(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Ht([o,l],(e=>Ht(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(o[0][0],s),(([n,,o])=>o!=e?Qe(n,((e,[,,n])=>De(t,s,ye)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Et(o[0][1]),s={};return me(e,((e,n)=>Qe(Fe(o[0][0],n)?.[0],((o,[l,r,a])=>Ve(e,o)?a!==e[o]?De(s,n,ye)[o]=a:0:De(t[0],n,Et)[0][o]=Ht([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(o[0][0],s),(([n])=>me(e,((e,o)=>Q(Fe(n,o),(([n,,l])=>l!==e?Qe(n,((e,[,,n])=>De(De(t,s,ye),o,ye)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=o,n={};return me(e,((e,s)=>me(e,((e,o)=>Q(Fe(t,s),(([t,l])=>Q(Fe(t,o),(([t,r])=>Qe(t,((t,[a,i,c])=>c!==e[t]?De(De(n,s,(()=>Et(l)))[0],o,(()=>Et(r)))[0][t]=[a,i]:0)))))))))),vt(n,s)},getMergeableValueHashes:()=>We(o[1][0],St),getMergeableValueDiff:e=>{const[,[t,s]]=o,n=We(t,Rt,(([,,t],s)=>t==e?.[s]));return vt(n,s)},setMergeableContent:e=>h((()=>(e=>W(e)&&2==P(e)&&Jt(e[0],(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,oe)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>He(e,(e=>Jt(e,oe)),void 0,1))))(e)?g.transaction((()=>{g.delTables().delValues(),o=Pt(),g.applyChanges(f(e,1))})):0)),setDefaultContent:e=>(g.transaction((()=>{l=1,g.setContent(e),l=0})),L),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[l,i,c]]=o,d=e?pt:vt,u={};Ie(r,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const l={};Ie(e,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const r={};Ie(e,(e=>{Q(Fe(t,e),(([t,s,n])=>r[e]=d(t,s,n)))})),l[s]=d(r,n,o)})))),u[s]=d(l,n,o)}))));const g={};return Ie(a,(e=>Q(Fe(l,e),(([t,s,n])=>g[e]=d(t,s,n))))),[d(u,s,n),d(g,i,c),1]},applyMergeableChanges:w,merge:e=>{const t=I(),s=e.getMergeableContent();return e.applyMergeableChanges(t),w(s)}};return g.setInternalListeners((()=>{}),(()=>{}),(()=>{be(r),be(a)}),((e,s,o,a)=>{Ge(Ne(Ne(r,e,Je),s,qe),o),n&&f([[{[e]:[{[s]:[{[o]:[a,l?t:c()]}]}]}],[{}],1])}),((e,s)=>{Ge(a,e),n&&f([[{}],[{[e]:[s,l?t:c()]}],1])})),Ee(g,((e,t)=>L[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),L):V(t,d)&&M(t,i)?(...s)=>{const n=At[A(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(L,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),Se(L)},_t=Je([["avg",[(e,t)=>Y(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Bt=(e,t,s,n,o,l=!1)=>{if(he(s))return;const[r,a,i,c]=o;return l||=F(e),Ie(n,(([s,n])=>{l||(e=F(s)?a?.(e,n,t++):F(n)?i?.(e,s,t--):c?.(e,n,s,t),l||=F(e))})),l?r(fe(s),ie(s)):e},Ut=Ye((e=>{const s=Je(),[n,o,l]=et((()=>w)),[r,a,i,c,d,u,g,,h,f,b,I]=Ke(e,j,(e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),w={setMetricDefinition:(e,t,n,l,r,a,i)=>{const c=O(n)?[n,r,a,i]:Fe(_t,n)??Fe(_t,"sum");return h(e,t,((t,n,l,r,a,i)=>{const d=u(e),h=ie(r);i||=F(d),t();let f=Bt(d,h,r,n,c,i);x(f)||(f=void 0),f!=d&&(g(e,f),o(s,[e],f,d))}),Xe(l,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(l(e),w),destroy:I,getListenerStats:()=>({metric:ce(s)})};return Se(w)})),qt=Ye((e=>{const s=e.createStore,n=s(),o=s(),l=Je(),{addListener:r,callListeners:a,delListener:u}=o,[g,f,b,v,p,,,S,,y,V,M,m,E]=Ke(e,(()=>!0),j,r,a),k=(e,t,...s)=>K(s,(s=>Ge(Ne(Ne(l,t,Je),e,qe),s))),D=e=>{Q(Fe(l,e),(e=>{Qe(e,((e,t)=>Ie(t,(t=>e.delListener(t))))),be(e)})),K([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,l,r)=>{S(s,l),D(s);const a=[],i=[[null,[l,null,null,[],Je()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=O(e)?[P(a)+t,e]:[F(s)?e:s,t=>t(e,s)];return ee(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,o=F(n)?t:s,l=[e,[e,n,O(o)?o:e=>e(o),[],Je()]];return ee(i,l),{as:e=>l[0]=e}},where:(e,t,s)=>ee(c,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const l=[e,[e,O(t)?[t,s,n,o]:Fe(_t,t)??[(e,t)=>t]]];return ee(d,l),{as:e=>l[0]=e}},having:(e,t)=>ee(u,O(e)?e:s=>s(e)===t)});const g=Je(a);if(he(g))return J;const h=Je(i);Qe(h,((e,[,t])=>Q(Fe(h,t),(({3:t})=>F(e)?0:ee(t,e)))));const f=Je(d);let b=n;if(he(f)&&Z(u))b=o;else{H(s,b,o);const e=Je();Qe(f,((t,[s,n])=>Ge(Ne(e,s,qe),[t,n])));const t=qe();Qe(g,(s=>ge(e,s)?0:Ge(t,s)));const n=Je(),l=(t,n,l,r)=>Q(t,(([a,i,c,d])=>{Qe(n,((t,[s])=>{const n=Ne(a,t,Je),o=Fe(n,l),i=r?void 0:s;if(o!==i){const s=qe([[o,i]]),r=ie(n);ze(n,l,i),Ie(Fe(e,t),(([e,t])=>{const o=Bt(d[e],r,n,s,t);d[e]=F(ne(o))?null:o}))}})),he(i)||!B(u,(e=>e((e=>d[e]))))?o.delRow(s,c):F(c)?t[2]=o.addRow(s,d):o.setRow(s,c,d)}));k(b,s,b.addRowListener(s,null,((o,r,a,i)=>{const c=[],d=[],u=Je(),g=b.hasRow(s,a);let h=!g;Ie(t,(e=>{const[t,n,o]=i(s,a,e);ee(c,n),ee(d,o),h||=t})),Qe(e,(e=>{const[t,,n]=i(s,a,e);(h||t)&&ze(u,e,[n])})),h&&l(Ue(n,c,void 0,(([,e])=>(we(e,a),he(e)))),u,a,1),g&&l(Ue(n,d,(()=>{const e={};return Ie(t,(t=>e[t]=b.getCell(s,a,t))),[Je(),qe(),void 0,e]}),(([,e])=>{Ge(e,a)})),u,a)})))}H(s,e,b);const I=(t,n,o,r)=>{const a=t=>e.getCell(n,o,t);K(r,(n=>{const[o,,l,r,i]=Fe(h,n),c=l?.(a,t),[d,u]=Fe(i,t)??[];c!=d&&(F(u)||E(s,u),ze(i,t,F(c)?null:[c,...m(s,1,e.addRowListener(o,c,(()=>I(t,o,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...F(n)?[l,t,s]:s===l?[l,t,n]:[Fe(h,s)?.[0],Fe(Fe(h,s)?.[4],t)?.[0],n]);b.transaction((()=>B(c,(e=>e(n)))?Qe(g,((e,o)=>le(b,s,t,e,o(n,t)))):b.delRow(s,t)))})(t)},{3:w}=Fe(h,null);return b.transaction((()=>m(s,1,e.addRowListener(l,null,((t,n,o)=>{e.hasRow(l,o)?I(o,l,o,w):(b.delRow(s,o),Ie(h,(({4:e})=>Q(Fe(e,o),(([,t])=>{E(s,t),ze(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:b,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Ee({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[I]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>J[e+c+s]=(...t)=>o[e+s](...t))),J[d+c+s+i]=(...e)=>o[d+s+i](...A(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),Se(J)})),Gt=Ye((e=>{const s=Je(),n=Je(),o=Je(),l=Je(),[r,a,i]=et((()=>v)),[c,d,u,g,h,f,,,b,I,w,L]=Ke(e,(()=>[Je(),Je(),Je(),Je()]),(e=>F(e)?void 0:e+t),r,a),C=(e,t,s)=>Q(f(e),(([n,,o])=>{if(!ge(o,t)){const l=qe();if(h(e)!=T(e))Ge(l,t);else{let e=t;for(;!F(e)&&!ge(l,e);)Ge(l,e),e=Fe(n,e)}if(s)return l;ze(o,t,l)}return Fe(o,t)})),R=(e,t)=>Q(f(e),(([,,e])=>ze(e,t))),T=e=>Fe(s,e),v={setRelationshipDefinition:(e,t,r,i)=>(ze(s,e,r),b(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);Ie(s,(([t,s],n)=>{F(t)||(Ge(i,t),Q(Fe(u,t),(e=>{we(e,n),he(e)&&ze(u,t)}))),F(s)||(Ge(i,s),ge(u,s)||ze(u,s,qe()),Ge(Fe(u,s),n)),Ge(r,n),ze(d,n,s),Qe(Fe(l,e),(t=>{ge(C(e,t),n)&&Ge(c,t)}))})),t(),Ie(r,(t=>a(n,[e,t]))),Ie(i,(t=>a(o,[e,t]))),Ie(c,(t=>{R(e,t),a(l,[e,t])}))}),Xe(i)),v),delRelationshipDefinition:e=>(ze(s,e),I(e),v),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>fe(Fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:fe(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),r(s,l,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:de(n),localRowIds:de(o),linkedRowIds:de(l)})};return Se(v)}));export{tt as createCheckpoints,ct as createIndexes,jt as createMergeableStore,Ut as createMetrics,qt as createQueries,Gt as createRelationships,Wt as createStore,at as defaultSorter,it as getUniqueId};
|
package/min/index.js.gz
CHANGED
|
Binary file
|