tinybase 7.3.3 → 7.3.4
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/checkpoints/index.js +12 -11
- package/checkpoints/with-schemas/index.js +12 -11
- package/common/index.js +3 -2
- package/common/with-schemas/index.js +3 -2
- package/index.js +92 -64
- package/indexes/index.js +13 -12
- package/indexes/with-schemas/index.js +13 -12
- package/mergeable-store/index.js +92 -64
- package/mergeable-store/with-schemas/index.js +92 -64
- package/metrics/index.js +13 -12
- package/metrics/with-schemas/index.js +13 -12
- 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/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-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 +99 -64
- package/omni/with-schemas/index.js +99 -64
- package/package.json +3 -3
- package/persisters/index.js +19 -11
- package/persisters/persister-automerge/index.js +17 -9
- package/persisters/persister-automerge/with-schemas/index.js +17 -9
- package/persisters/persister-browser/index.js +17 -9
- package/persisters/persister-browser/with-schemas/index.js +17 -9
- package/persisters/persister-cr-sqlite-wasm/index.js +19 -11
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +19 -11
- package/persisters/persister-durable-object-sql-storage/index.js +19 -11
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +19 -11
- package/persisters/persister-durable-object-storage/index.js +19 -11
- package/persisters/persister-durable-object-storage/with-schemas/index.js +19 -11
- package/persisters/persister-electric-sql/index.js +19 -11
- package/persisters/persister-electric-sql/with-schemas/index.js +19 -11
- package/persisters/persister-expo-sqlite/index.js +19 -11
- package/persisters/persister-expo-sqlite/with-schemas/index.js +19 -11
- package/persisters/persister-file/index.js +17 -9
- package/persisters/persister-file/with-schemas/index.js +17 -9
- 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 +19 -11
- package/persisters/persister-libsql/with-schemas/index.js +19 -11
- package/persisters/persister-partykit-client/index.js +17 -9
- package/persisters/persister-partykit-client/with-schemas/index.js +17 -9
- package/persisters/persister-partykit-server/index.js +2 -2
- package/persisters/persister-partykit-server/with-schemas/index.js +2 -2
- package/persisters/persister-pglite/index.js +19 -11
- package/persisters/persister-pglite/with-schemas/index.js +19 -11
- package/persisters/persister-postgres/index.js +19 -11
- package/persisters/persister-postgres/with-schemas/index.js +19 -11
- package/persisters/persister-powersync/index.js +19 -11
- package/persisters/persister-powersync/with-schemas/index.js +19 -11
- 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 +19 -11
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +19 -11
- 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 +19 -11
- package/persisters/persister-sqlite-bun/with-schemas/index.js +19 -11
- package/persisters/persister-sqlite-wasm/index.js +19 -11
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +19 -11
- package/persisters/persister-sqlite3/index.js +19 -11
- package/persisters/persister-sqlite3/with-schemas/index.js +19 -11
- package/persisters/persister-yjs/index.js +19 -11
- package/persisters/persister-yjs/with-schemas/index.js +19 -11
- package/persisters/with-schemas/index.js +19 -11
- package/queries/index.js +15 -14
- package/queries/with-schemas/index.js +15 -14
- package/readme.md +2 -2
- package/relationships/index.js +13 -12
- package/relationships/with-schemas/index.js +13 -12
- package/store/index.js +74 -60
- package/store/with-schemas/index.js +74 -60
- 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 +17 -9
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +17 -9
- package/synchronizers/synchronizer-ws-server/index.js +20 -12
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +20 -12
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +17 -9
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +17 -9
- 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 +81 -60
- package/ui-react-inspector/with-schemas/index.js +81 -60
- package/with-schemas/index.js +92 -64
package/checkpoints/index.js
CHANGED
|
@@ -39,19 +39,20 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
39
39
|
const object = Object;
|
|
40
40
|
const objFreeze = object.freeze;
|
|
41
41
|
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
const map = Map;
|
|
43
|
+
const mapNew = (entries) => new map(entries);
|
|
44
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
45
|
+
const mapForEach = (map2, cb) =>
|
|
46
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
47
|
+
const mapSet = (map2, key, value) =>
|
|
48
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
49
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
50
|
+
if (!collHas(map2, key)) {
|
|
51
|
+
mapSet(map2, key, getDefaultValue());
|
|
51
52
|
} else {
|
|
52
|
-
hadExistingValue?.(mapGet(
|
|
53
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
53
54
|
}
|
|
54
|
-
return mapGet(
|
|
55
|
+
return mapGet(map2, key);
|
|
55
56
|
};
|
|
56
57
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
57
58
|
ifNotUndefined(
|
|
@@ -39,19 +39,20 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
39
39
|
const object = Object;
|
|
40
40
|
const objFreeze = object.freeze;
|
|
41
41
|
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
const map = Map;
|
|
43
|
+
const mapNew = (entries) => new map(entries);
|
|
44
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
45
|
+
const mapForEach = (map2, cb) =>
|
|
46
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
47
|
+
const mapSet = (map2, key, value) =>
|
|
48
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
49
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
50
|
+
if (!collHas(map2, key)) {
|
|
51
|
+
mapSet(map2, key, getDefaultValue());
|
|
51
52
|
} else {
|
|
52
|
-
hadExistingValue?.(mapGet(
|
|
53
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
53
54
|
}
|
|
54
|
-
return mapGet(
|
|
55
|
+
return mapGet(map2, key);
|
|
55
56
|
};
|
|
56
57
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
57
58
|
ifNotUndefined(
|
package/common/index.js
CHANGED
|
@@ -19,8 +19,9 @@ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
|
19
19
|
const object = Object;
|
|
20
20
|
const objEntries = object.entries;
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
const
|
|
22
|
+
const map = Map;
|
|
23
|
+
const mapNew = (entries) => new map(entries);
|
|
24
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
24
25
|
|
|
25
26
|
const MASK6 = 63;
|
|
26
27
|
const ENCODE = /* @__PURE__ */ strSplit(
|
|
@@ -19,8 +19,9 @@ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
|
19
19
|
const object = Object;
|
|
20
20
|
const objEntries = object.entries;
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
const
|
|
22
|
+
const map = Map;
|
|
23
|
+
const mapNew = (entries) => new map(entries);
|
|
24
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
24
25
|
|
|
25
26
|
const MASK6 = 63;
|
|
26
27
|
const ENCODE = /* @__PURE__ */ strSplit(
|
package/index.js
CHANGED
|
@@ -208,31 +208,32 @@ const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
|
|
|
208
208
|
return emptyIsValid ? true : !objIsEmpty(obj);
|
|
209
209
|
};
|
|
210
210
|
|
|
211
|
-
const
|
|
212
|
-
const
|
|
213
|
-
const
|
|
214
|
-
const
|
|
215
|
-
|
|
211
|
+
const map = Map;
|
|
212
|
+
const mapNew = (entries) => new map(entries);
|
|
213
|
+
const mapKeys = (map2) => [...(map2?.keys() ?? [])];
|
|
214
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
215
|
+
const mapForEach = (map2, cb) =>
|
|
216
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
216
217
|
const mapMap = (coll, cb) =>
|
|
217
218
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
218
|
-
const mapSet = (
|
|
219
|
-
isUndefined(value) ? (collDel(
|
|
220
|
-
const mapEnsure = (
|
|
221
|
-
if (!collHas(
|
|
222
|
-
mapSet(
|
|
219
|
+
const mapSet = (map2, key, value) =>
|
|
220
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
221
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
222
|
+
if (!collHas(map2, key)) {
|
|
223
|
+
mapSet(map2, key, getDefaultValue());
|
|
223
224
|
} else {
|
|
224
|
-
hadExistingValue?.(mapGet(
|
|
225
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
225
226
|
}
|
|
226
|
-
return mapGet(
|
|
227
|
+
return mapGet(map2, key);
|
|
227
228
|
};
|
|
228
|
-
const mapMatch = (
|
|
229
|
-
objMap(obj, (value, id) => set(
|
|
230
|
-
mapForEach(
|
|
231
|
-
return
|
|
229
|
+
const mapMatch = (map2, obj, set, del = mapSet) => {
|
|
230
|
+
objMap(obj, (value, id) => set(map2, id, value));
|
|
231
|
+
mapForEach(map2, (id) => (objHas(obj, id) ? 0 : del(map2, id)));
|
|
232
|
+
return map2;
|
|
232
233
|
};
|
|
233
|
-
const mapToObj = (
|
|
234
|
+
const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
|
|
234
235
|
const obj = {};
|
|
235
|
-
collForEach(
|
|
236
|
+
collForEach(map2, (mapValue, id) => {
|
|
236
237
|
if (!excludeMapValue?.(mapValue, id)) {
|
|
237
238
|
const objValue = valueMapper ? valueMapper(mapValue, id) : mapValue;
|
|
238
239
|
if (!excludeObjValue?.(objValue)) {
|
|
@@ -242,27 +243,27 @@ const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
|
|
|
242
243
|
});
|
|
243
244
|
return obj;
|
|
244
245
|
};
|
|
245
|
-
const mapToObj2 = (
|
|
246
|
+
const mapToObj2 = (map2, valueMapper, excludeMapValue) =>
|
|
246
247
|
mapToObj(
|
|
247
|
-
|
|
248
|
+
map2,
|
|
248
249
|
(childMap) => mapToObj(childMap, valueMapper, excludeMapValue),
|
|
249
250
|
collIsEmpty,
|
|
250
251
|
objIsEmpty,
|
|
251
252
|
);
|
|
252
|
-
const mapToObj3 = (
|
|
253
|
+
const mapToObj3 = (map2, valueMapper, excludeMapValue) =>
|
|
253
254
|
mapToObj(
|
|
254
|
-
|
|
255
|
+
map2,
|
|
255
256
|
(childMap) => mapToObj2(childMap, valueMapper, excludeMapValue),
|
|
256
257
|
collIsEmpty,
|
|
257
258
|
objIsEmpty,
|
|
258
259
|
);
|
|
259
|
-
const mapClone = (
|
|
260
|
-
const
|
|
261
|
-
collForEach(
|
|
262
|
-
return
|
|
260
|
+
const mapClone = (map2, mapValue) => {
|
|
261
|
+
const map22 = mapNew();
|
|
262
|
+
collForEach(map2, (value, key) => map22.set(key, mapValue?.(value) ?? value));
|
|
263
|
+
return map22;
|
|
263
264
|
};
|
|
264
|
-
const mapClone2 = (
|
|
265
|
-
const mapClone3 = (
|
|
265
|
+
const mapClone2 = (map2) => mapClone(map2, mapClone);
|
|
266
|
+
const mapClone3 = (map2) => mapClone(map2, mapClone2);
|
|
266
267
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
267
268
|
ifNotUndefined(
|
|
268
269
|
(ensureLeaf ? mapEnsure : mapGet)(
|
|
@@ -1218,6 +1219,7 @@ const createStore = () => {
|
|
|
1218
1219
|
let hadValues = false;
|
|
1219
1220
|
let transactions = 0;
|
|
1220
1221
|
let internalListeners = [];
|
|
1222
|
+
let mutating = 0;
|
|
1221
1223
|
const changedTableIds = mapNew();
|
|
1222
1224
|
const changedTableCellIds = mapNew();
|
|
1223
1225
|
const changedRowCount = mapNew();
|
|
@@ -1622,13 +1624,13 @@ const createStore = () => {
|
|
|
1622
1624
|
cellId,
|
|
1623
1625
|
() => [oldCell, 0],
|
|
1624
1626
|
)[1] = newCell;
|
|
1625
|
-
internalListeners[3]?.(tableId, rowId, cellId, newCell);
|
|
1627
|
+
internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
|
|
1626
1628
|
};
|
|
1627
1629
|
const valueIdsChanged = (valueId, addedOrRemoved) =>
|
|
1628
1630
|
idsChanged(changedValueIds, valueId, addedOrRemoved);
|
|
1629
1631
|
const valueChanged = (valueId, oldValue, newValue) => {
|
|
1630
1632
|
mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
|
|
1631
|
-
internalListeners[4]?.(valueId, newValue);
|
|
1633
|
+
internalListeners[4]?.(valueId, newValue, mutating);
|
|
1632
1634
|
};
|
|
1633
1635
|
const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
|
|
1634
1636
|
arrayPush(
|
|
@@ -1703,14 +1705,11 @@ const createStore = () => {
|
|
|
1703
1705
|
}
|
|
1704
1706
|
};
|
|
1705
1707
|
const callTabularListenersForChanges = (mutator) => {
|
|
1706
|
-
const
|
|
1707
|
-
|
|
1708
|
-
callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
|
|
1709
|
-
}
|
|
1710
|
-
const emptySortedRowIdListeners = collIsEmpty(
|
|
1708
|
+
const hasHasTablesListeners = !collIsEmpty(hasTablesListeners[mutator]);
|
|
1709
|
+
const hasSortedRowIdListeners = !collIsEmpty(
|
|
1711
1710
|
sortedRowIdsListeners[mutator],
|
|
1712
1711
|
);
|
|
1713
|
-
const
|
|
1712
|
+
const hasIdOrHasListeners = !(
|
|
1714
1713
|
collIsEmpty(cellIdsListeners[mutator]) &&
|
|
1715
1714
|
collIsEmpty(hasCellListeners[mutator]) &&
|
|
1716
1715
|
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
@@ -1718,15 +1717,17 @@ const createStore = () => {
|
|
|
1718
1717
|
collIsEmpty(tableCellIdsListeners[mutator]) &&
|
|
1719
1718
|
collIsEmpty(hasTableCellListeners[mutator]) &&
|
|
1720
1719
|
collIsEmpty(rowCountListeners[mutator]) &&
|
|
1721
|
-
|
|
1720
|
+
!hasSortedRowIdListeners &&
|
|
1722
1721
|
collIsEmpty(tableIdsListeners[mutator]) &&
|
|
1723
|
-
collIsEmpty(hasTableListeners[mutator])
|
|
1724
|
-
|
|
1722
|
+
collIsEmpty(hasTableListeners[mutator])
|
|
1723
|
+
);
|
|
1724
|
+
const hasOtherListeners = !(
|
|
1725
1725
|
collIsEmpty(cellListeners[mutator]) &&
|
|
1726
1726
|
collIsEmpty(rowListeners[mutator]) &&
|
|
1727
1727
|
collIsEmpty(tableListeners[mutator]) &&
|
|
1728
|
-
collIsEmpty(tablesListeners[mutator])
|
|
1729
|
-
|
|
1728
|
+
collIsEmpty(tablesListeners[mutator])
|
|
1729
|
+
);
|
|
1730
|
+
if (hasHasTablesListeners || hasIdOrHasListeners || hasOtherListeners) {
|
|
1730
1731
|
const changes = mutator
|
|
1731
1732
|
? [
|
|
1732
1733
|
mapClone(changedTableIds),
|
|
@@ -1734,7 +1735,9 @@ const createStore = () => {
|
|
|
1734
1735
|
mapClone(changedRowCount),
|
|
1735
1736
|
mapClone2(changedRowIds),
|
|
1736
1737
|
mapClone3(changedCellIds),
|
|
1737
|
-
|
|
1738
|
+
mapClone(changedCells, (map) =>
|
|
1739
|
+
mapClone(map, (map2) => mapClone(map2, pairClone)),
|
|
1740
|
+
),
|
|
1738
1741
|
]
|
|
1739
1742
|
: [
|
|
1740
1743
|
changedTableIds,
|
|
@@ -1744,7 +1747,13 @@ const createStore = () => {
|
|
|
1744
1747
|
changedCellIds,
|
|
1745
1748
|
changedCells,
|
|
1746
1749
|
];
|
|
1747
|
-
if (
|
|
1750
|
+
if (hasHasTablesListeners) {
|
|
1751
|
+
const hasTablesNow = hasTables();
|
|
1752
|
+
if (hasTablesNow != hadTables) {
|
|
1753
|
+
callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1756
|
+
if (hasIdOrHasListeners) {
|
|
1748
1757
|
callIdsAndHasListenersIfChanged(
|
|
1749
1758
|
changes[0],
|
|
1750
1759
|
tableIdsListeners[mutator],
|
|
@@ -1776,13 +1785,13 @@ const createStore = () => {
|
|
|
1776
1785
|
hasRowListeners[mutator],
|
|
1777
1786
|
[tableId],
|
|
1778
1787
|
) &&
|
|
1779
|
-
|
|
1788
|
+
hasSortedRowIdListeners
|
|
1780
1789
|
) {
|
|
1781
1790
|
callListeners(sortedRowIdsListeners[mutator], [tableId, null]);
|
|
1782
1791
|
setAdd(calledSortableTableIds, tableId);
|
|
1783
1792
|
}
|
|
1784
1793
|
});
|
|
1785
|
-
if (
|
|
1794
|
+
if (hasSortedRowIdListeners) {
|
|
1786
1795
|
collForEach(changes[5], (rows, tableId) => {
|
|
1787
1796
|
if (!collHas(calledSortableTableIds, tableId)) {
|
|
1788
1797
|
const sortableCellIds = setNew();
|
|
@@ -1813,7 +1822,7 @@ const createStore = () => {
|
|
|
1813
1822
|
),
|
|
1814
1823
|
);
|
|
1815
1824
|
}
|
|
1816
|
-
if (
|
|
1825
|
+
if (hasOtherListeners) {
|
|
1817
1826
|
let tablesChanged;
|
|
1818
1827
|
collForEach(changes[5], (rows, tableId) => {
|
|
1819
1828
|
let tableChanged;
|
|
@@ -1850,28 +1859,31 @@ const createStore = () => {
|
|
|
1850
1859
|
}
|
|
1851
1860
|
};
|
|
1852
1861
|
const callValuesListenersForChanges = (mutator) => {
|
|
1853
|
-
const
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
const
|
|
1858
|
-
collIsEmpty(
|
|
1859
|
-
collIsEmpty(
|
|
1860
|
-
|
|
1861
|
-
collIsEmpty(valueListeners[mutator]) &&
|
|
1862
|
-
collIsEmpty(valuesListeners[mutator]);
|
|
1863
|
-
if (!emptyIdAndHasListeners || !emptyOtherListeners) {
|
|
1862
|
+
const hasHasValuesListeners = !collIsEmpty(hasValuesListeners[mutator]);
|
|
1863
|
+
const hasIdOrHasListeners =
|
|
1864
|
+
!collIsEmpty(valueIdsListeners[mutator]) ||
|
|
1865
|
+
!collIsEmpty(hasValueListeners[mutator]);
|
|
1866
|
+
const hasOtherListeners =
|
|
1867
|
+
!collIsEmpty(valueListeners[mutator]) ||
|
|
1868
|
+
!collIsEmpty(valuesListeners[mutator]);
|
|
1869
|
+
if (hasHasValuesListeners || hasIdOrHasListeners || hasOtherListeners) {
|
|
1864
1870
|
const changes = mutator
|
|
1865
|
-
? [mapClone(changedValueIds), mapClone(changedValues)]
|
|
1871
|
+
? [mapClone(changedValueIds), mapClone(changedValues, pairClone)]
|
|
1866
1872
|
: [changedValueIds, changedValues];
|
|
1867
|
-
if (
|
|
1873
|
+
if (hasHasValuesListeners) {
|
|
1874
|
+
const hasValuesNow = hasValues();
|
|
1875
|
+
if (hasValuesNow != hadValues) {
|
|
1876
|
+
callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
|
|
1877
|
+
}
|
|
1878
|
+
}
|
|
1879
|
+
if (hasIdOrHasListeners) {
|
|
1868
1880
|
callIdsAndHasListenersIfChanged(
|
|
1869
1881
|
changes[0],
|
|
1870
1882
|
valueIdsListeners[mutator],
|
|
1871
1883
|
hasValueListeners[mutator],
|
|
1872
1884
|
);
|
|
1873
1885
|
}
|
|
1874
|
-
if (
|
|
1886
|
+
if (hasOtherListeners) {
|
|
1875
1887
|
let valuesChanged;
|
|
1876
1888
|
collForEach(changes[1], ([oldValue, newValue], valueId) => {
|
|
1877
1889
|
if (newValue !== oldValue) {
|
|
@@ -2268,6 +2280,7 @@ const createStore = () => {
|
|
|
2268
2280
|
transactions--;
|
|
2269
2281
|
if (transactions == 0) {
|
|
2270
2282
|
transactions = 1;
|
|
2283
|
+
mutating = 1;
|
|
2271
2284
|
callInvalidCellListeners(1);
|
|
2272
2285
|
if (!collIsEmpty(changedCells)) {
|
|
2273
2286
|
callTabularListenersForChanges(1);
|
|
@@ -2276,6 +2289,7 @@ const createStore = () => {
|
|
|
2276
2289
|
if (!collIsEmpty(changedValues)) {
|
|
2277
2290
|
callValuesListenersForChanges(1);
|
|
2278
2291
|
}
|
|
2292
|
+
mutating = 0;
|
|
2279
2293
|
if (doRollback?.(store)) {
|
|
2280
2294
|
collForEach(changedCells, (table, tableId) =>
|
|
2281
2295
|
collForEach(table, (row, rowId) =>
|
|
@@ -2642,6 +2656,7 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
2642
2656
|
let listeningToRawStoreChanges = 1;
|
|
2643
2657
|
let contentStampMap = newContentStampMap();
|
|
2644
2658
|
let defaultingContent = 0;
|
|
2659
|
+
let mutated = 0;
|
|
2645
2660
|
const touchedCells = mapNew();
|
|
2646
2661
|
const touchedValues = setNew();
|
|
2647
2662
|
const [getNextHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
|
|
@@ -2768,12 +2783,15 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
2768
2783
|
collClear(touchedCells);
|
|
2769
2784
|
collClear(touchedValues);
|
|
2770
2785
|
};
|
|
2771
|
-
const cellChanged = (tableId, rowId, cellId, newCell) => {
|
|
2786
|
+
const cellChanged = (tableId, rowId, cellId, newCell, mutating) => {
|
|
2772
2787
|
setAdd(
|
|
2773
2788
|
mapEnsure(mapEnsure(touchedCells, tableId, mapNew), rowId, setNew),
|
|
2774
2789
|
cellId,
|
|
2775
2790
|
);
|
|
2776
|
-
if (listeningToRawStoreChanges) {
|
|
2791
|
+
if (listeningToRawStoreChanges || mutating) {
|
|
2792
|
+
if (mutating) {
|
|
2793
|
+
mutated = 1;
|
|
2794
|
+
}
|
|
2777
2795
|
mergeContentOrChanges([
|
|
2778
2796
|
[
|
|
2779
2797
|
{
|
|
@@ -2796,9 +2814,12 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
2796
2814
|
]);
|
|
2797
2815
|
}
|
|
2798
2816
|
};
|
|
2799
|
-
const valueChanged = (valueId, newValue) => {
|
|
2817
|
+
const valueChanged = (valueId, newValue, mutating) => {
|
|
2800
2818
|
setAdd(touchedValues, valueId);
|
|
2801
|
-
if (listeningToRawStoreChanges) {
|
|
2819
|
+
if (listeningToRawStoreChanges || mutating) {
|
|
2820
|
+
if (mutating) {
|
|
2821
|
+
mutated = 1;
|
|
2822
|
+
}
|
|
2802
2823
|
mergeContentOrChanges([
|
|
2803
2824
|
[{}],
|
|
2804
2825
|
[
|
|
@@ -3016,6 +3037,11 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3016
3037
|
mergeableStore2.applyMergeableChanges(mergeableChanges);
|
|
3017
3038
|
return applyMergeableChanges(mergeableChanges2);
|
|
3018
3039
|
};
|
|
3040
|
+
const hadMutated = () => {
|
|
3041
|
+
const result = mutated;
|
|
3042
|
+
mutated = 0;
|
|
3043
|
+
return result;
|
|
3044
|
+
};
|
|
3019
3045
|
const mergeableStore = {
|
|
3020
3046
|
getMergeableContent,
|
|
3021
3047
|
getMergeableContentHashes,
|
|
@@ -3032,6 +3058,8 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3032
3058
|
getTransactionMergeableChanges,
|
|
3033
3059
|
applyMergeableChanges,
|
|
3034
3060
|
merge,
|
|
3061
|
+
// only used internally by other modules
|
|
3062
|
+
hadMutated,
|
|
3035
3063
|
};
|
|
3036
3064
|
store.setInternalListeners(
|
|
3037
3065
|
preStartTransaction,
|
package/indexes/index.js
CHANGED
|
@@ -45,20 +45,21 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
45
45
|
const object = Object;
|
|
46
46
|
const objFreeze = object.freeze;
|
|
47
47
|
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
const map = Map;
|
|
49
|
+
const mapNew = (entries) => new map(entries);
|
|
50
|
+
const mapKeys = (map2) => [...(map2?.keys() ?? [])];
|
|
51
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
52
|
+
const mapForEach = (map2, cb) =>
|
|
53
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
54
|
+
const mapSet = (map2, key, value) =>
|
|
55
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
56
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
57
|
+
if (!collHas(map2, key)) {
|
|
58
|
+
mapSet(map2, key, getDefaultValue());
|
|
58
59
|
} else {
|
|
59
|
-
hadExistingValue?.(mapGet(
|
|
60
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
60
61
|
}
|
|
61
|
-
return mapGet(
|
|
62
|
+
return mapGet(map2, key);
|
|
62
63
|
};
|
|
63
64
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
64
65
|
ifNotUndefined(
|
|
@@ -45,20 +45,21 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
45
45
|
const object = Object;
|
|
46
46
|
const objFreeze = object.freeze;
|
|
47
47
|
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
const map = Map;
|
|
49
|
+
const mapNew = (entries) => new map(entries);
|
|
50
|
+
const mapKeys = (map2) => [...(map2?.keys() ?? [])];
|
|
51
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
52
|
+
const mapForEach = (map2, cb) =>
|
|
53
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
54
|
+
const mapSet = (map2, key, value) =>
|
|
55
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
56
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
57
|
+
if (!collHas(map2, key)) {
|
|
58
|
+
mapSet(map2, key, getDefaultValue());
|
|
58
59
|
} else {
|
|
59
|
-
hadExistingValue?.(mapGet(
|
|
60
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
60
61
|
}
|
|
61
|
-
return mapGet(
|
|
62
|
+
return mapGet(map2, key);
|
|
62
63
|
};
|
|
63
64
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
64
65
|
ifNotUndefined(
|