tinybase 8.0.0-beta.0 → 8.0.0-beta.2
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/index.d.ts +1 -0
- package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
- package/@types/middleware/index.d.ts +1181 -0
- package/@types/middleware/with-schemas/index.d.ts +1495 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +0 -1
- package/@types/with-schemas/index.d.ts +1 -0
- package/agents.md +33 -11
- package/checkpoints/index.js +20 -20
- package/checkpoints/with-schemas/index.js +20 -20
- package/common/index.js +3 -2
- package/common/with-schemas/index.js +3 -2
- package/index.js +632 -215
- package/indexes/index.js +13 -12
- package/indexes/with-schemas/index.js +13 -12
- package/mergeable-store/index.js +498 -197
- package/mergeable-store/with-schemas/index.js +498 -197
- package/metrics/index.js +13 -12
- package/metrics/with-schemas/index.js +13 -12
- package/middleware/index.js +169 -0
- package/middleware/with-schemas/index.js +169 -0
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/common/index.js +1 -1
- package/min/common/index.js.gz +0 -0
- package/min/common/with-schemas/index.js +1 -1
- package/min/common/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/indexes/index.js +1 -1
- package/min/indexes/index.js.gz +0 -0
- package/min/indexes/with-schemas/index.js +1 -1
- package/min/indexes/with-schemas/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/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/middleware/index.js +1 -0
- package/min/middleware/index.js.gz +0 -0
- package/min/middleware/with-schemas/index.js +1 -0
- package/min/middleware/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/index.js +1 -1
- package/min/persisters/persister-partykit-server/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/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/omni/index.js +667 -232
- package/omni/with-schemas/index.js +667 -232
- package/package.json +55 -19
- package/persisters/index.js +29 -12
- package/persisters/persister-automerge/index.js +17 -9
- package/persisters/persister-automerge/with-schemas/index.js +17 -9
- package/persisters/persister-browser/index.js +34 -10
- package/persisters/persister-browser/with-schemas/index.js +34 -10
- package/persisters/persister-cr-sqlite-wasm/index.js +29 -12
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -12
- package/persisters/persister-durable-object-sql-storage/index.js +29 -12
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +29 -12
- package/persisters/persister-durable-object-storage/index.js +24 -17
- package/persisters/persister-durable-object-storage/with-schemas/index.js +24 -17
- package/persisters/persister-electric-sql/index.js +29 -12
- package/persisters/persister-electric-sql/with-schemas/index.js +29 -12
- package/persisters/persister-expo-sqlite/index.js +29 -12
- package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -12
- package/persisters/persister-file/index.js +34 -10
- package/persisters/persister-file/with-schemas/index.js +34 -10
- package/persisters/persister-indexed-db/index.js +17 -9
- package/persisters/persister-indexed-db/with-schemas/index.js +17 -9
- package/persisters/persister-libsql/index.js +29 -12
- package/persisters/persister-libsql/with-schemas/index.js +29 -12
- package/persisters/persister-partykit-client/index.js +44 -11
- package/persisters/persister-partykit-client/with-schemas/index.js +44 -11
- package/persisters/persister-partykit-server/index.js +39 -4
- package/persisters/persister-partykit-server/with-schemas/index.js +39 -4
- package/persisters/persister-pglite/index.js +29 -12
- package/persisters/persister-pglite/with-schemas/index.js +29 -12
- package/persisters/persister-postgres/index.js +29 -12
- package/persisters/persister-postgres/with-schemas/index.js +29 -12
- package/persisters/persister-powersync/index.js +29 -12
- package/persisters/persister-powersync/with-schemas/index.js +29 -12
- package/persisters/persister-react-native-mmkv/index.js +17 -9
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +17 -9
- package/persisters/persister-react-native-sqlite/index.js +29 -12
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -12
- package/persisters/persister-remote/index.js +17 -9
- package/persisters/persister-remote/with-schemas/index.js +17 -9
- package/persisters/persister-sqlite-bun/index.js +29 -12
- package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -12
- package/persisters/persister-sqlite-wasm/index.js +29 -12
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -12
- package/persisters/persister-sqlite3/index.js +29 -12
- package/persisters/persister-sqlite3/with-schemas/index.js +29 -12
- package/persisters/persister-yjs/index.js +19 -11
- package/persisters/persister-yjs/with-schemas/index.js +19 -11
- package/persisters/with-schemas/index.js +29 -12
- package/queries/index.js +16 -20
- package/queries/with-schemas/index.js +16 -20
- package/readme.md +21 -13
- package/relationships/index.js +13 -12
- package/relationships/with-schemas/index.js +13 -12
- package/releases.md +59 -43
- package/store/index.js +479 -192
- package/store/with-schemas/index.js +479 -192
- package/synchronizers/index.js +17 -9
- package/synchronizers/synchronizer-broadcast-channel/index.js +17 -9
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -9
- package/synchronizers/synchronizer-local/index.js +19 -11
- package/synchronizers/synchronizer-local/with-schemas/index.js +19 -11
- package/synchronizers/synchronizer-ws-client/index.js +31 -10
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +31 -10
- package/synchronizers/synchronizer-ws-server/index.js +34 -13
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +34 -13
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +31 -10
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +31 -10
- package/synchronizers/synchronizer-ws-server-simple/index.js +11 -10
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +11 -10
- package/synchronizers/with-schemas/index.js +17 -9
- package/ui-react-inspector/index.js +475 -193
- package/ui-react-inspector/with-schemas/index.js +475 -193
- package/with-schemas/index.js +632 -215
package/metrics/index.js
CHANGED
|
@@ -50,20 +50,21 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
50
50
|
const object = Object;
|
|
51
51
|
const objFreeze = object.freeze;
|
|
52
52
|
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
const map = Map;
|
|
54
|
+
const mapNew = (entries) => new map(entries);
|
|
55
|
+
const mapKeys = (map2) => [...(map2?.keys() ?? [])];
|
|
56
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
57
|
+
const mapForEach = (map2, cb) =>
|
|
58
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
59
|
+
const mapSet = (map2, key, value) =>
|
|
60
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
61
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
62
|
+
if (!collHas(map2, key)) {
|
|
63
|
+
mapSet(map2, key, getDefaultValue());
|
|
63
64
|
} else {
|
|
64
|
-
hadExistingValue?.(mapGet(
|
|
65
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
65
66
|
}
|
|
66
|
-
return mapGet(
|
|
67
|
+
return mapGet(map2, key);
|
|
67
68
|
};
|
|
68
69
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
69
70
|
ifNotUndefined(
|
|
@@ -50,20 +50,21 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
50
50
|
const object = Object;
|
|
51
51
|
const objFreeze = object.freeze;
|
|
52
52
|
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
const map = Map;
|
|
54
|
+
const mapNew = (entries) => new map(entries);
|
|
55
|
+
const mapKeys = (map2) => [...(map2?.keys() ?? [])];
|
|
56
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
57
|
+
const mapForEach = (map2, cb) =>
|
|
58
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
59
|
+
const mapSet = (map2, key, value) =>
|
|
60
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
61
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
62
|
+
if (!collHas(map2, key)) {
|
|
63
|
+
mapSet(map2, key, getDefaultValue());
|
|
63
64
|
} else {
|
|
64
|
-
hadExistingValue?.(mapGet(
|
|
65
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
65
66
|
}
|
|
66
|
-
return mapGet(
|
|
67
|
+
return mapGet(map2, key);
|
|
67
68
|
};
|
|
68
69
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
69
70
|
ifNotUndefined(
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
2
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
3
|
+
const isUndefined = (thing) => thing === void 0;
|
|
4
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
5
|
+
|
|
6
|
+
const arrayEvery = (array, cb) => array.every(cb);
|
|
7
|
+
const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
8
|
+
const arrayPush = (array, ...values) => array.push(...values);
|
|
9
|
+
|
|
10
|
+
const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
|
|
11
|
+
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
12
|
+
|
|
13
|
+
const object = Object;
|
|
14
|
+
const objFreeze = object.freeze;
|
|
15
|
+
|
|
16
|
+
const map = Map;
|
|
17
|
+
const mapNew = (entries) => new map(entries);
|
|
18
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
19
|
+
const mapSet = (map2, key, value) =>
|
|
20
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
21
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
22
|
+
if (!collHas(map2, key)) {
|
|
23
|
+
mapSet(map2, key, getDefaultValue());
|
|
24
|
+
}
|
|
25
|
+
return mapGet(map2, key);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const getCreateFunction = (getFunction, initFunction) => {
|
|
29
|
+
const thingsByStore = /* @__PURE__ */ new WeakMap();
|
|
30
|
+
return (store) => {
|
|
31
|
+
if (!thingsByStore.has(store)) {
|
|
32
|
+
thingsByStore.set(store, getFunction(store));
|
|
33
|
+
}
|
|
34
|
+
const thing = thingsByStore.get(store);
|
|
35
|
+
return thing;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const reduceCallbacks = (callbacks, thing, ...ids) =>
|
|
40
|
+
arrayReduce(
|
|
41
|
+
callbacks,
|
|
42
|
+
(current, callback) =>
|
|
43
|
+
isUndefined(current) ? current : callback(...ids, current),
|
|
44
|
+
thing,
|
|
45
|
+
);
|
|
46
|
+
const everyCallback = (callbacks, ...ids) =>
|
|
47
|
+
arrayEvery(callbacks, (callback) => callback(...ids));
|
|
48
|
+
const createMiddleware = getCreateFunction((store) => {
|
|
49
|
+
const fluent = (actions) => {
|
|
50
|
+
actions();
|
|
51
|
+
return middleware;
|
|
52
|
+
};
|
|
53
|
+
const addCallback = (callbacks) => (callback) =>
|
|
54
|
+
fluent(() => arrayPush(callbacks, callback));
|
|
55
|
+
const willSetContentCallbacks = [];
|
|
56
|
+
const willSetTablesCallbacks = [];
|
|
57
|
+
const willSetTableCallbacks = [];
|
|
58
|
+
const willSetRowCallbacks = [];
|
|
59
|
+
const willSetCellCallbacks = [];
|
|
60
|
+
const willSetValuesCallbacks = [];
|
|
61
|
+
const willSetValueCallbacks = [];
|
|
62
|
+
const willDelTablesCallbacks = [];
|
|
63
|
+
const willDelTableCallbacks = [];
|
|
64
|
+
const willDelRowCallbacks = [];
|
|
65
|
+
const willDelCellCallbacks = [];
|
|
66
|
+
const willDelValuesCallbacks = [];
|
|
67
|
+
const willDelValueCallbacks = [];
|
|
68
|
+
const willApplyChangesCallbacks = [];
|
|
69
|
+
const didSetRowCallbacksMap = mapNew();
|
|
70
|
+
const willSetContent = (content) =>
|
|
71
|
+
reduceCallbacks(willSetContentCallbacks, content);
|
|
72
|
+
const willSetTables = (tables) =>
|
|
73
|
+
reduceCallbacks(willSetTablesCallbacks, tables);
|
|
74
|
+
const willSetTable = (tableId, table) =>
|
|
75
|
+
reduceCallbacks(willSetTableCallbacks, table, tableId);
|
|
76
|
+
const willSetRow = (tableId, rowId, row) =>
|
|
77
|
+
reduceCallbacks(willSetRowCallbacks, row, tableId, rowId);
|
|
78
|
+
const willSetCell = (tableId, rowId, cellId, cell) =>
|
|
79
|
+
reduceCallbacks(willSetCellCallbacks, cell, tableId, rowId, cellId);
|
|
80
|
+
const willSetValues = (values) =>
|
|
81
|
+
reduceCallbacks(willSetValuesCallbacks, values);
|
|
82
|
+
const willSetValue = (valueId, value) =>
|
|
83
|
+
reduceCallbacks(willSetValueCallbacks, value, valueId);
|
|
84
|
+
const willDelTables = () => everyCallback(willDelTablesCallbacks);
|
|
85
|
+
const willDelTable = (tableId) =>
|
|
86
|
+
everyCallback(willDelTableCallbacks, tableId);
|
|
87
|
+
const willDelRow = (tableId, rowId) =>
|
|
88
|
+
everyCallback(willDelRowCallbacks, tableId, rowId);
|
|
89
|
+
const willDelCell = (tableId, rowId, cellId) =>
|
|
90
|
+
everyCallback(willDelCellCallbacks, tableId, rowId, cellId);
|
|
91
|
+
const willDelValues = () => everyCallback(willDelValuesCallbacks);
|
|
92
|
+
const willDelValue = (valueId) =>
|
|
93
|
+
everyCallback(willDelValueCallbacks, valueId);
|
|
94
|
+
const willApplyChanges = (changes) =>
|
|
95
|
+
reduceCallbacks(willApplyChangesCallbacks, changes);
|
|
96
|
+
const didSetRow = (tableId, rowId, oldRow, newRow) =>
|
|
97
|
+
ifNotUndefined(
|
|
98
|
+
mapGet(didSetRowCallbacksMap, tableId),
|
|
99
|
+
(callbacks) =>
|
|
100
|
+
arrayReduce(
|
|
101
|
+
callbacks,
|
|
102
|
+
(current, callback) => callback(tableId, rowId, oldRow, current),
|
|
103
|
+
newRow,
|
|
104
|
+
),
|
|
105
|
+
() => newRow,
|
|
106
|
+
);
|
|
107
|
+
const getStore = () => store;
|
|
108
|
+
const addWillSetContentCallback = addCallback(willSetContentCallbacks);
|
|
109
|
+
const addWillSetTablesCallback = addCallback(willSetTablesCallbacks);
|
|
110
|
+
const addWillSetTableCallback = addCallback(willSetTableCallbacks);
|
|
111
|
+
const addWillSetRowCallback = addCallback(willSetRowCallbacks);
|
|
112
|
+
const addWillSetCellCallback = addCallback(willSetCellCallbacks);
|
|
113
|
+
const addWillSetValuesCallback = addCallback(willSetValuesCallbacks);
|
|
114
|
+
const addWillSetValueCallback = addCallback(willSetValueCallbacks);
|
|
115
|
+
const addWillDelTablesCallback = addCallback(willDelTablesCallbacks);
|
|
116
|
+
const addWillDelTableCallback = addCallback(willDelTableCallbacks);
|
|
117
|
+
const addWillDelRowCallback = addCallback(willDelRowCallbacks);
|
|
118
|
+
const addWillDelCellCallback = addCallback(willDelCellCallbacks);
|
|
119
|
+
const addWillDelValuesCallback = addCallback(willDelValuesCallbacks);
|
|
120
|
+
const addWillDelValueCallback = addCallback(willDelValueCallbacks);
|
|
121
|
+
const addWillApplyChangesCallback = addCallback(willApplyChangesCallbacks);
|
|
122
|
+
const addDidSetRowCallback = (tableId, callback) =>
|
|
123
|
+
fluent(() =>
|
|
124
|
+
arrayPush(
|
|
125
|
+
mapEnsure(didSetRowCallbacksMap, tableId, () => []),
|
|
126
|
+
callback,
|
|
127
|
+
),
|
|
128
|
+
);
|
|
129
|
+
const destroy = () => {};
|
|
130
|
+
const middleware = objFreeze({
|
|
131
|
+
getStore,
|
|
132
|
+
addWillSetContentCallback,
|
|
133
|
+
addWillSetTablesCallback,
|
|
134
|
+
addWillSetTableCallback,
|
|
135
|
+
addWillSetRowCallback,
|
|
136
|
+
addWillSetCellCallback,
|
|
137
|
+
addWillSetValuesCallback,
|
|
138
|
+
addWillSetValueCallback,
|
|
139
|
+
addWillDelTablesCallback,
|
|
140
|
+
addWillDelTableCallback,
|
|
141
|
+
addWillDelRowCallback,
|
|
142
|
+
addWillDelCellCallback,
|
|
143
|
+
addWillDelValuesCallback,
|
|
144
|
+
addWillDelValueCallback,
|
|
145
|
+
addWillApplyChangesCallback,
|
|
146
|
+
addDidSetRowCallback,
|
|
147
|
+
destroy,
|
|
148
|
+
});
|
|
149
|
+
store.setMiddleware(
|
|
150
|
+
willSetContent,
|
|
151
|
+
willSetTables,
|
|
152
|
+
willSetTable,
|
|
153
|
+
willSetRow,
|
|
154
|
+
willSetCell,
|
|
155
|
+
willSetValues,
|
|
156
|
+
willSetValue,
|
|
157
|
+
willDelTables,
|
|
158
|
+
willDelTable,
|
|
159
|
+
willDelRow,
|
|
160
|
+
willDelCell,
|
|
161
|
+
willDelValues,
|
|
162
|
+
willDelValue,
|
|
163
|
+
willApplyChanges,
|
|
164
|
+
didSetRow,
|
|
165
|
+
);
|
|
166
|
+
return middleware;
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
export {createMiddleware};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
2
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
3
|
+
const isUndefined = (thing) => thing === void 0;
|
|
4
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
5
|
+
|
|
6
|
+
const arrayEvery = (array, cb) => array.every(cb);
|
|
7
|
+
const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
8
|
+
const arrayPush = (array, ...values) => array.push(...values);
|
|
9
|
+
|
|
10
|
+
const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
|
|
11
|
+
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
12
|
+
|
|
13
|
+
const object = Object;
|
|
14
|
+
const objFreeze = object.freeze;
|
|
15
|
+
|
|
16
|
+
const map = Map;
|
|
17
|
+
const mapNew = (entries) => new map(entries);
|
|
18
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
19
|
+
const mapSet = (map2, key, value) =>
|
|
20
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
21
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
22
|
+
if (!collHas(map2, key)) {
|
|
23
|
+
mapSet(map2, key, getDefaultValue());
|
|
24
|
+
}
|
|
25
|
+
return mapGet(map2, key);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const getCreateFunction = (getFunction, initFunction) => {
|
|
29
|
+
const thingsByStore = /* @__PURE__ */ new WeakMap();
|
|
30
|
+
return (store) => {
|
|
31
|
+
if (!thingsByStore.has(store)) {
|
|
32
|
+
thingsByStore.set(store, getFunction(store));
|
|
33
|
+
}
|
|
34
|
+
const thing = thingsByStore.get(store);
|
|
35
|
+
return thing;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const reduceCallbacks = (callbacks, thing, ...ids) =>
|
|
40
|
+
arrayReduce(
|
|
41
|
+
callbacks,
|
|
42
|
+
(current, callback) =>
|
|
43
|
+
isUndefined(current) ? current : callback(...ids, current),
|
|
44
|
+
thing,
|
|
45
|
+
);
|
|
46
|
+
const everyCallback = (callbacks, ...ids) =>
|
|
47
|
+
arrayEvery(callbacks, (callback) => callback(...ids));
|
|
48
|
+
const createMiddleware = getCreateFunction((store) => {
|
|
49
|
+
const fluent = (actions) => {
|
|
50
|
+
actions();
|
|
51
|
+
return middleware;
|
|
52
|
+
};
|
|
53
|
+
const addCallback = (callbacks) => (callback) =>
|
|
54
|
+
fluent(() => arrayPush(callbacks, callback));
|
|
55
|
+
const willSetContentCallbacks = [];
|
|
56
|
+
const willSetTablesCallbacks = [];
|
|
57
|
+
const willSetTableCallbacks = [];
|
|
58
|
+
const willSetRowCallbacks = [];
|
|
59
|
+
const willSetCellCallbacks = [];
|
|
60
|
+
const willSetValuesCallbacks = [];
|
|
61
|
+
const willSetValueCallbacks = [];
|
|
62
|
+
const willDelTablesCallbacks = [];
|
|
63
|
+
const willDelTableCallbacks = [];
|
|
64
|
+
const willDelRowCallbacks = [];
|
|
65
|
+
const willDelCellCallbacks = [];
|
|
66
|
+
const willDelValuesCallbacks = [];
|
|
67
|
+
const willDelValueCallbacks = [];
|
|
68
|
+
const willApplyChangesCallbacks = [];
|
|
69
|
+
const didSetRowCallbacksMap = mapNew();
|
|
70
|
+
const willSetContent = (content) =>
|
|
71
|
+
reduceCallbacks(willSetContentCallbacks, content);
|
|
72
|
+
const willSetTables = (tables) =>
|
|
73
|
+
reduceCallbacks(willSetTablesCallbacks, tables);
|
|
74
|
+
const willSetTable = (tableId, table) =>
|
|
75
|
+
reduceCallbacks(willSetTableCallbacks, table, tableId);
|
|
76
|
+
const willSetRow = (tableId, rowId, row) =>
|
|
77
|
+
reduceCallbacks(willSetRowCallbacks, row, tableId, rowId);
|
|
78
|
+
const willSetCell = (tableId, rowId, cellId, cell) =>
|
|
79
|
+
reduceCallbacks(willSetCellCallbacks, cell, tableId, rowId, cellId);
|
|
80
|
+
const willSetValues = (values) =>
|
|
81
|
+
reduceCallbacks(willSetValuesCallbacks, values);
|
|
82
|
+
const willSetValue = (valueId, value) =>
|
|
83
|
+
reduceCallbacks(willSetValueCallbacks, value, valueId);
|
|
84
|
+
const willDelTables = () => everyCallback(willDelTablesCallbacks);
|
|
85
|
+
const willDelTable = (tableId) =>
|
|
86
|
+
everyCallback(willDelTableCallbacks, tableId);
|
|
87
|
+
const willDelRow = (tableId, rowId) =>
|
|
88
|
+
everyCallback(willDelRowCallbacks, tableId, rowId);
|
|
89
|
+
const willDelCell = (tableId, rowId, cellId) =>
|
|
90
|
+
everyCallback(willDelCellCallbacks, tableId, rowId, cellId);
|
|
91
|
+
const willDelValues = () => everyCallback(willDelValuesCallbacks);
|
|
92
|
+
const willDelValue = (valueId) =>
|
|
93
|
+
everyCallback(willDelValueCallbacks, valueId);
|
|
94
|
+
const willApplyChanges = (changes) =>
|
|
95
|
+
reduceCallbacks(willApplyChangesCallbacks, changes);
|
|
96
|
+
const didSetRow = (tableId, rowId, oldRow, newRow) =>
|
|
97
|
+
ifNotUndefined(
|
|
98
|
+
mapGet(didSetRowCallbacksMap, tableId),
|
|
99
|
+
(callbacks) =>
|
|
100
|
+
arrayReduce(
|
|
101
|
+
callbacks,
|
|
102
|
+
(current, callback) => callback(tableId, rowId, oldRow, current),
|
|
103
|
+
newRow,
|
|
104
|
+
),
|
|
105
|
+
() => newRow,
|
|
106
|
+
);
|
|
107
|
+
const getStore = () => store;
|
|
108
|
+
const addWillSetContentCallback = addCallback(willSetContentCallbacks);
|
|
109
|
+
const addWillSetTablesCallback = addCallback(willSetTablesCallbacks);
|
|
110
|
+
const addWillSetTableCallback = addCallback(willSetTableCallbacks);
|
|
111
|
+
const addWillSetRowCallback = addCallback(willSetRowCallbacks);
|
|
112
|
+
const addWillSetCellCallback = addCallback(willSetCellCallbacks);
|
|
113
|
+
const addWillSetValuesCallback = addCallback(willSetValuesCallbacks);
|
|
114
|
+
const addWillSetValueCallback = addCallback(willSetValueCallbacks);
|
|
115
|
+
const addWillDelTablesCallback = addCallback(willDelTablesCallbacks);
|
|
116
|
+
const addWillDelTableCallback = addCallback(willDelTableCallbacks);
|
|
117
|
+
const addWillDelRowCallback = addCallback(willDelRowCallbacks);
|
|
118
|
+
const addWillDelCellCallback = addCallback(willDelCellCallbacks);
|
|
119
|
+
const addWillDelValuesCallback = addCallback(willDelValuesCallbacks);
|
|
120
|
+
const addWillDelValueCallback = addCallback(willDelValueCallbacks);
|
|
121
|
+
const addWillApplyChangesCallback = addCallback(willApplyChangesCallbacks);
|
|
122
|
+
const addDidSetRowCallback = (tableId, callback) =>
|
|
123
|
+
fluent(() =>
|
|
124
|
+
arrayPush(
|
|
125
|
+
mapEnsure(didSetRowCallbacksMap, tableId, () => []),
|
|
126
|
+
callback,
|
|
127
|
+
),
|
|
128
|
+
);
|
|
129
|
+
const destroy = () => {};
|
|
130
|
+
const middleware = objFreeze({
|
|
131
|
+
getStore,
|
|
132
|
+
addWillSetContentCallback,
|
|
133
|
+
addWillSetTablesCallback,
|
|
134
|
+
addWillSetTableCallback,
|
|
135
|
+
addWillSetRowCallback,
|
|
136
|
+
addWillSetCellCallback,
|
|
137
|
+
addWillSetValuesCallback,
|
|
138
|
+
addWillSetValueCallback,
|
|
139
|
+
addWillDelTablesCallback,
|
|
140
|
+
addWillDelTableCallback,
|
|
141
|
+
addWillDelRowCallback,
|
|
142
|
+
addWillDelCellCallback,
|
|
143
|
+
addWillDelValuesCallback,
|
|
144
|
+
addWillDelValueCallback,
|
|
145
|
+
addWillApplyChangesCallback,
|
|
146
|
+
addDidSetRowCallback,
|
|
147
|
+
destroy,
|
|
148
|
+
});
|
|
149
|
+
store.setMiddleware(
|
|
150
|
+
willSetContent,
|
|
151
|
+
willSetTables,
|
|
152
|
+
willSetTable,
|
|
153
|
+
willSetRow,
|
|
154
|
+
willSetCell,
|
|
155
|
+
willSetValues,
|
|
156
|
+
willSetValue,
|
|
157
|
+
willDelTables,
|
|
158
|
+
willDelTable,
|
|
159
|
+
willDelRow,
|
|
160
|
+
willDelCell,
|
|
161
|
+
willDelValues,
|
|
162
|
+
willDelValue,
|
|
163
|
+
willApplyChanges,
|
|
164
|
+
didSetRow,
|
|
165
|
+
);
|
|
166
|
+
return middleware;
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
export {createMiddleware};
|
package/min/checkpoints/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>void 0===e,t=e=>null===e,
|
|
1
|
+
const e=e=>void 0===e,t=e=>null===e,r=(n=e,(e,t,r)=>n(e)?r?.():t(e));var n;const s=e=>e.length,o=(e,t)=>e.includes(t),c=(e,t)=>e.forEach(t),i=e=>0==s(e),l=(e,...t)=>e.push(...t),a=e=>e.pop(),d=e=>e.shift(),u=e=>e?.size??0,h=(p=u,e=>{return t=(e,t)=>e+p(t),k(e).reduce(t,0);var t});var p;const v=(e,t)=>e?.has(t)??!1,g=t=>e(t)||0==u(t),k=e=>[...e?.values()??[]],f=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),L=Object.freeze,w=Map,S=e=>new w(e),y=(e,t)=>e?.get(t),z=(t,r,n)=>e(n)?(C(t,r),t):t?.set(r,n),E=(e,t,r,n)=>(v(e,t)?n?.(y(e,t)):z(e,t,r()),y(e,t)),I=(e,t,n,o,c=0)=>r((n?E:y)(e,t[c],c>s(t)-2?n:S),r=>{if(c>s(t)-2)return o?.(r)&&z(e,t[c]),r;const i=I(r,t,n,o,c+1);return g(r)&&z(e,t[c]),i}),O=t=>new Set(Array.isArray(t)||e(t)?t:[t]),A=/^\d+$/,D=(()=>{const n=new WeakMap;return u=>{n.has(u)||n.set(u,(n=>{let u,p,k,w=100,D=S(),F=S(),M=1;const V=S(),_=S(),[b,j,x]=(()=>{let e;const[n,o]=(()=>{const e=[];let t=0;return[r=>(r?d(e):null)??""+t++,t=>{A.test(t)&&s(e)<1e3&&l(e,t)}]})(),i=S();return[(t,r,s,o=[],c=()=>[])=>{e??=te;const l=n(1);var a,d;return z(i,l,[t,r,s,o,c]),a=I(r,s??[""],O),d=l,a?.add(d),l},(r,n,...o)=>c(((e,r=[""])=>{const n=[],o=(e,i)=>i==s(r)?l(n,e):t(r[i])?f(e,e=>o(e,i+1)):c([r[i],null],t=>o(y(e,t),i+1));return o(e,0),n})(r,n),t=>f(t,t=>y(i,t)[0](e,...n??[],...o))),e=>r(y(i,e),([,t,r])=>(I(t,r??[""],void 0,t=>(C(t,e),g(t)?1:0)),z(i,e),o(e),r)),n=>r(y(i,n),([r,,n=[],o,i])=>{const l=(...a)=>{const d=s(a);d==s(n)?r(e,...a,...i(a)):t(n[d])?c(o[d]?.(...a)??[],e=>l(...a,e)):l(...a,n[d])};l()})]})(),B=S(),T=S(),W=[],$=[],m=(e,t)=>{M=0,n.transaction(()=>{const[r,s]=y(B,t);f(r,(t,r)=>f(t,(t,s)=>f(t,(t,o)=>n.setOrDelCell(r,s,o,t[e],!0)))),f(s,(t,r)=>n.setOrDelValue(r,t[e],!0))}),M=1},q=e=>{z(B,e),z(T,e),j(_,[e])},G=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??s(e)),q),H=()=>G(W,s(W)-w),J=()=>r(u,()=>{l(W,u),H(),G($),u=void 0,k=1}),K=()=>{u=a(W),k=1};let N,P;const Q=(t="")=>(e(u)&&(u=""+p++,z(B,u,[D,F]),Z(u,t),D=S(),F=S(),k=1),u),R=()=>{i(W)||(((e,...t)=>{e.unshift(...t)})($,Q()),m(0,u),u=a(W),k=1)},U=()=>{i($)||(l(W,u),u=d($),m(1,u),k=1)},X=()=>{k&&(j(V),k=0)},Y=e=>{const t=Q(e);return X(),t},Z=(e,t)=>(ee(e)&&y(T,e)!==t&&(z(T,e,t),j(_,[e])),te),ee=e=>v(B,e),te={setSize:e=>(w=e,H(),te),addCheckpoint:Y,setCheckpoint:Z,getStore:()=>n,getCheckpointIds:()=>[[...W],u,[...$]],forEachCheckpoint:e=>{return t=e,f(T,(e,r)=>t(r,e));var t},hasCheckpoint:ee,getCheckpoint:e=>y(T,e),goBackward:()=>(R(),X(),te),goForward:()=>(U(),X(),te),goTo:t=>{const r=o(W,t)?R:o($,t)?U:void 0;for(;!e(r)&&t!=u;)r();return X(),te},addCheckpointIdsListener:e=>b(e,V),addCheckpointListener:(e,t)=>b(t,_,[e]),delListener:e=>(x(e),te),clear:()=>(G(W),G($),e(u)||q(u),u=void 0,p=0,Y(),te),clearForward:()=>(i($)||(G($),j(V)),te),destroy:()=>{n.delListener(N),n.delListener(P)},getListenerStats:()=>({checkpointIds:h(V),checkpoint:h(_)}),_registerListeners:()=>{N=n.addCellListener(null,null,null,(e,t,r,n,s,o)=>{if(M){J();const e=E(D,t,S),c=E(e,r,S),i=E(c,n,()=>[o,void 0]);i[1]=s,i[0]===s&&g(z(c,n))&&g(z(e,r))&&g(z(D,t))&&K(),X()}}),P=n.addValueListener(null,(e,t,r,n)=>{if(M){J();const e=E(F,t,()=>[n,void 0]);e[1]=r,e[0]===r&&g(z(F,t))&&K(),X()}})}};return L(te.clear())})(u));const p=n.get(u);return p._registerListeners(),p}})();export{D as createCheckpoints};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>void 0===e,t=e=>null===e,
|
|
1
|
+
const e=e=>void 0===e,t=e=>null===e,r=(n=e,(e,t,r)=>n(e)?r?.():t(e));var n;const s=e=>e.length,o=(e,t)=>e.includes(t),c=(e,t)=>e.forEach(t),i=e=>0==s(e),l=(e,...t)=>e.push(...t),a=e=>e.pop(),d=e=>e.shift(),u=e=>e?.size??0,h=(p=u,e=>{return t=(e,t)=>e+p(t),k(e).reduce(t,0);var t});var p;const v=(e,t)=>e?.has(t)??!1,g=t=>e(t)||0==u(t),k=e=>[...e?.values()??[]],f=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),L=Object.freeze,w=Map,S=e=>new w(e),y=(e,t)=>e?.get(t),z=(t,r,n)=>e(n)?(C(t,r),t):t?.set(r,n),E=(e,t,r,n)=>(v(e,t)?n?.(y(e,t)):z(e,t,r()),y(e,t)),I=(e,t,n,o,c=0)=>r((n?E:y)(e,t[c],c>s(t)-2?n:S),r=>{if(c>s(t)-2)return o?.(r)&&z(e,t[c]),r;const i=I(r,t,n,o,c+1);return g(r)&&z(e,t[c]),i}),O=t=>new Set(Array.isArray(t)||e(t)?t:[t]),A=/^\d+$/,D=(()=>{const n=new WeakMap;return u=>{n.has(u)||n.set(u,(n=>{let u,p,k,w=100,D=S(),F=S(),M=1;const V=S(),_=S(),[b,j,x]=(()=>{let e;const[n,o]=(()=>{const e=[];let t=0;return[r=>(r?d(e):null)??""+t++,t=>{A.test(t)&&s(e)<1e3&&l(e,t)}]})(),i=S();return[(t,r,s,o=[],c=()=>[])=>{e??=te;const l=n(1);var a,d;return z(i,l,[t,r,s,o,c]),a=I(r,s??[""],O),d=l,a?.add(d),l},(r,n,...o)=>c(((e,r=[""])=>{const n=[],o=(e,i)=>i==s(r)?l(n,e):t(r[i])?f(e,e=>o(e,i+1)):c([r[i],null],t=>o(y(e,t),i+1));return o(e,0),n})(r,n),t=>f(t,t=>y(i,t)[0](e,...n??[],...o))),e=>r(y(i,e),([,t,r])=>(I(t,r??[""],void 0,t=>(C(t,e),g(t)?1:0)),z(i,e),o(e),r)),n=>r(y(i,n),([r,,n=[],o,i])=>{const l=(...a)=>{const d=s(a);d==s(n)?r(e,...a,...i(a)):t(n[d])?c(o[d]?.(...a)??[],e=>l(...a,e)):l(...a,n[d])};l()})]})(),B=S(),T=S(),W=[],$=[],m=(e,t)=>{M=0,n.transaction(()=>{const[r,s]=y(B,t);f(r,(t,r)=>f(t,(t,s)=>f(t,(t,o)=>n.setOrDelCell(r,s,o,t[e],!0)))),f(s,(t,r)=>n.setOrDelValue(r,t[e],!0))}),M=1},q=e=>{z(B,e),z(T,e),j(_,[e])},G=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??s(e)),q),H=()=>G(W,s(W)-w),J=()=>r(u,()=>{l(W,u),H(),G($),u=void 0,k=1}),K=()=>{u=a(W),k=1};let N,P;const Q=(t="")=>(e(u)&&(u=""+p++,z(B,u,[D,F]),Z(u,t),D=S(),F=S(),k=1),u),R=()=>{i(W)||(((e,...t)=>{e.unshift(...t)})($,Q()),m(0,u),u=a(W),k=1)},U=()=>{i($)||(l(W,u),u=d($),m(1,u),k=1)},X=()=>{k&&(j(V),k=0)},Y=e=>{const t=Q(e);return X(),t},Z=(e,t)=>(ee(e)&&y(T,e)!==t&&(z(T,e,t),j(_,[e])),te),ee=e=>v(B,e),te={setSize:e=>(w=e,H(),te),addCheckpoint:Y,setCheckpoint:Z,getStore:()=>n,getCheckpointIds:()=>[[...W],u,[...$]],forEachCheckpoint:e=>{return t=e,f(T,(e,r)=>t(r,e));var t},hasCheckpoint:ee,getCheckpoint:e=>y(T,e),goBackward:()=>(R(),X(),te),goForward:()=>(U(),X(),te),goTo:t=>{const r=o(W,t)?R:o($,t)?U:void 0;for(;!e(r)&&t!=u;)r();return X(),te},addCheckpointIdsListener:e=>b(e,V),addCheckpointListener:(e,t)=>b(t,_,[e]),delListener:e=>(x(e),te),clear:()=>(G(W),G($),e(u)||q(u),u=void 0,p=0,Y(),te),clearForward:()=>(i($)||(G($),j(V)),te),destroy:()=>{n.delListener(N),n.delListener(P)},getListenerStats:()=>({checkpointIds:h(V),checkpoint:h(_)}),_registerListeners:()=>{N=n.addCellListener(null,null,null,(e,t,r,n,s,o)=>{if(M){J();const e=E(D,t,S),c=E(e,r,S),i=E(c,n,()=>[o,void 0]);i[1]=s,i[0]===s&&g(z(c,n))&&g(z(e,r))&&g(z(D,t))&&K(),X()}}),P=n.addValueListener(null,(e,t,r,n)=>{if(M){J();const e=E(F,t,()=>[n,void 0]);e[1]=r,e[0]===r&&g(z(F,t))&&K(),X()}})}};return L(te.clear())})(u));const p=n.get(u);return p._registerListeners(),p}})();export{D as createCheckpoints};
|
|
Binary file
|
package/min/common/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=e=>new
|
|
1
|
+
const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=Map,f=e=>new d(e),m=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),g=f(i(m,(e,t)=>[e,t])),v=e=>m[63&e],w=(e,t)=>{return r=g,n=e[t],r?.get(n)??0;var r,n},y=t.crypto?e=>t.crypto.getRandomValues(e):e=>i(e,()=>o(256*r.random())),h=(e=16)=>l(y(new Uint8Array(e)),(e,t)=>e+v(t),""),x=JSON.stringify,E=new t.TextEncoder,M=e=>{let t=2166136261;var r;return r=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},E.encode(e).forEach(r),t>>>0},b=(e,t)=>(e^t)>>>0,O=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)^T(t,0)),0),T=(e,t)=>M(e+":"+t),j=(e,t)=>M(x(e??null,(e,t)=>t instanceof Map?p.fromEntries([...t]):t)+":"+t),A=j,D=T,J=O,N=T,R=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)),0),S=T,U=R,V=2**36,k=2**30,q=2**24,z=2**18,B=4096,C=e=>{const t=M(e);return v(t/q)+v(t/z)+v(t/B)+v(t/64)+v(t)},F=(e,t=Date.now)=>{let r=0,o=-1;const s=c(e,C,()=>h(5)),i=e=>{const c=r,[s,i]=a(e)||""==e?[0,0]:p(e);r=n(c,s,t()),o=r==c?r==s?n(o,i):o:r==s?i:-1},l=(e,t,r)=>v(e/V)+v(e/k)+v(e/q)+v(e/z)+v(e/B)+v(e/64)+v(e)+v(t/z)+v(t/B)+v(t/64)+v(t)+(a(r)?s:C(r)),p=e=>[w(e,0)*V+w(e,1)*k+w(e,2)*q+w(e,3)*z+w(e,4)*B+64*w(e,5)+w(e,6),w(e,7)*z+w(e,8)*B+64*w(e,9)+w(e,10),e.slice(11)];return[()=>(i(),l(r,++o)),i,l,p,()=>r,()=>o,()=>s]},G=(e,t)=>(e??0)<(t??0)?-1:1;export{b as addOrRemoveHash,G as defaultSorter,A as getCellHash,D as getCellInRowHash,M as getHash,F as getHlcFunctions,J as getRowHash,N as getRowInTableHash,R as getTableHash,S as getTableInTablesHash,U as getTablesHash,h as getUniqueId,j as getValueHash,T as getValueInValuesHash,O as getValuesHash};
|
package/min/common/index.js.gz
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=e=>new
|
|
1
|
+
const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=Map,f=e=>new d(e),m=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),g=f(i(m,(e,t)=>[e,t])),v=e=>m[63&e],w=(e,t)=>{return r=g,n=e[t],r?.get(n)??0;var r,n},y=t.crypto?e=>t.crypto.getRandomValues(e):e=>i(e,()=>o(256*r.random())),h=(e=16)=>l(y(new Uint8Array(e)),(e,t)=>e+v(t),""),x=JSON.stringify,E=new t.TextEncoder,M=e=>{let t=2166136261;var r;return r=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},E.encode(e).forEach(r),t>>>0},b=(e,t)=>(e^t)>>>0,O=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)^T(t,0)),0),T=(e,t)=>M(e+":"+t),j=(e,t)=>M(x(e??null,(e,t)=>t instanceof Map?p.fromEntries([...t]):t)+":"+t),A=j,D=T,J=O,N=T,R=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)),0),S=T,U=R,V=2**36,k=2**30,q=2**24,z=2**18,B=4096,C=e=>{const t=M(e);return v(t/q)+v(t/z)+v(t/B)+v(t/64)+v(t)},F=(e,t=Date.now)=>{let r=0,o=-1;const s=c(e,C,()=>h(5)),i=e=>{const c=r,[s,i]=a(e)||""==e?[0,0]:p(e);r=n(c,s,t()),o=r==c?r==s?n(o,i):o:r==s?i:-1},l=(e,t,r)=>v(e/V)+v(e/k)+v(e/q)+v(e/z)+v(e/B)+v(e/64)+v(e)+v(t/z)+v(t/B)+v(t/64)+v(t)+(a(r)?s:C(r)),p=e=>[w(e,0)*V+w(e,1)*k+w(e,2)*q+w(e,3)*z+w(e,4)*B+64*w(e,5)+w(e,6),w(e,7)*z+w(e,8)*B+64*w(e,9)+w(e,10),e.slice(11)];return[()=>(i(),l(r,++o)),i,l,p,()=>r,()=>o,()=>s]},G=(e,t)=>(e??0)<(t??0)?-1:1;export{b as addOrRemoveHash,G as defaultSorter,A as getCellHash,D as getCellInRowHash,M as getHash,F as getHlcFunctions,J as getRowHash,N as getRowInTableHash,R as getTableHash,S as getTableInTablesHash,U as getTablesHash,h as getUniqueId,j as getValueHash,T as getValueInValuesHash,O as getValuesHash};
|
|
Binary file
|