tinybase 7.0.0-beta.2 → 7.0.0
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/common/index.d.ts +1 -1
- package/@types/mergeable-store/index.d.ts +1 -1
- package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -0
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-pglite/index.d.ts +5 -1
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +5 -1
- package/@types/persisters/persister-postgres/index.d.ts +4 -0
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-react-native-sqlite/index.d.ts +4 -0
- package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-bun/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite3/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +1 -1
- package/@types/store/index.d.ts +21 -19
- package/@types/store/with-schemas/index.d.ts +15 -13
- package/agents.md +62 -0
- package/checkpoints/index.js +8 -6
- package/checkpoints/with-schemas/index.js +8 -6
- package/common/index.js +4 -3
- package/common/with-schemas/index.js +4 -3
- package/index.js +60 -30
- package/indexes/index.js +7 -5
- package/indexes/with-schemas/index.js +7 -5
- package/mergeable-store/index.js +51 -21
- package/mergeable-store/with-schemas/index.js +51 -21
- package/metrics/index.js +7 -5
- package/metrics/with-schemas/index.js +7 -5
- 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-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/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/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 +78 -46
- package/omni/with-schemas/index.js +78 -46
- package/package.json +3 -3
- package/persisters/index.js +14 -10
- package/persisters/persister-automerge/index.js +12 -8
- package/persisters/persister-automerge/with-schemas/index.js +12 -8
- package/persisters/persister-browser/index.js +12 -8
- package/persisters/persister-browser/with-schemas/index.js +12 -8
- package/persisters/persister-cr-sqlite-wasm/index.js +14 -10
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +14 -10
- package/persisters/persister-durable-object-sql-storage/index.js +14 -10
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +14 -10
- package/persisters/persister-durable-object-storage/index.js +12 -8
- package/persisters/persister-durable-object-storage/with-schemas/index.js +12 -8
- package/persisters/persister-electric-sql/index.js +14 -10
- package/persisters/persister-electric-sql/with-schemas/index.js +14 -10
- package/persisters/persister-expo-sqlite/index.js +14 -10
- package/persisters/persister-expo-sqlite/with-schemas/index.js +14 -10
- package/persisters/persister-file/index.js +12 -8
- package/persisters/persister-file/with-schemas/index.js +12 -8
- package/persisters/persister-indexed-db/index.js +12 -8
- package/persisters/persister-indexed-db/with-schemas/index.js +12 -8
- package/persisters/persister-libsql/index.js +14 -10
- package/persisters/persister-libsql/with-schemas/index.js +14 -10
- package/persisters/persister-partykit-client/index.js +12 -8
- package/persisters/persister-partykit-client/with-schemas/index.js +12 -8
- package/persisters/persister-partykit-server/index.js +4 -3
- package/persisters/persister-partykit-server/with-schemas/index.js +4 -3
- package/persisters/persister-pglite/index.js +13 -9
- package/persisters/persister-pglite/with-schemas/index.js +13 -9
- package/persisters/persister-postgres/index.js +13 -9
- package/persisters/persister-postgres/with-schemas/index.js +13 -9
- package/persisters/persister-powersync/index.js +14 -10
- package/persisters/persister-powersync/with-schemas/index.js +14 -10
- package/persisters/persister-react-native-mmkv/index.js +12 -8
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +12 -8
- package/persisters/persister-react-native-sqlite/index.js +14 -10
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +14 -10
- package/persisters/persister-remote/index.js +14 -10
- package/persisters/persister-remote/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite-bun/index.js +14 -10
- package/persisters/persister-sqlite-bun/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite-wasm/index.js +14 -10
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite3/index.js +14 -10
- package/persisters/persister-sqlite3/with-schemas/index.js +14 -10
- package/persisters/persister-yjs/index.js +18 -12
- package/persisters/persister-yjs/with-schemas/index.js +18 -12
- package/persisters/with-schemas/index.js +14 -10
- package/queries/index.js +17 -12
- package/queries/with-schemas/index.js +17 -12
- package/readme.md +2 -2
- package/relationships/index.js +7 -5
- package/relationships/with-schemas/index.js +7 -5
- package/releases.md +100 -12
- package/store/index.js +48 -18
- package/store/with-schemas/index.js +48 -18
- package/synchronizers/index.js +13 -9
- package/synchronizers/synchronizer-broadcast-channel/index.js +14 -10
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +14 -10
- package/synchronizers/synchronizer-local/index.js +14 -10
- package/synchronizers/synchronizer-local/with-schemas/index.js +14 -10
- package/synchronizers/synchronizer-ws-client/index.js +13 -9
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server/index.js +13 -9
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-simple/index.js +5 -4
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +5 -4
- package/synchronizers/with-schemas/index.js +13 -9
- package/ui-react/index.js +9 -6
- package/ui-react/with-schemas/index.js +9 -6
- package/ui-react-dom/index.js +14 -7
- package/ui-react-dom/with-schemas/index.js +14 -7
- package/ui-react-inspector/index.js +53 -23
- package/ui-react-inspector/with-schemas/index.js +53 -23
- package/with-schemas/index.js +60 -30
package/with-schemas/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const NUMBER = getTypeOf(0);
|
|
|
6
6
|
const FUNCTION = getTypeOf(getTypeOf);
|
|
7
7
|
const TYPE = 'type';
|
|
8
8
|
const DEFAULT = 'default';
|
|
9
|
+
const ALLOW_NULL = 'allowNull';
|
|
9
10
|
const SUM = 'sum';
|
|
10
11
|
const AVG = 'avg';
|
|
11
12
|
const MIN = 'min';
|
|
@@ -37,6 +38,8 @@ const strEndsWith = (str, suffix) => str.endsWith(suffix);
|
|
|
37
38
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
38
39
|
str.split(separator, limit);
|
|
39
40
|
|
|
41
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
42
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
40
43
|
const GLOBAL = globalThis;
|
|
41
44
|
const math = Math;
|
|
42
45
|
const mathMax = math.max;
|
|
@@ -44,9 +47,11 @@ const mathMin = math.min;
|
|
|
44
47
|
const mathFloor = math.floor;
|
|
45
48
|
const isFiniteNumber = isFinite;
|
|
46
49
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
+
const isNullish = (thing) => thing == null;
|
|
51
|
+
const isUndefined = (thing) => thing === void 0;
|
|
52
|
+
const isNull = (thing) => thing === null;
|
|
53
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
54
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
50
55
|
const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
|
|
51
56
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
52
57
|
const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
|
|
@@ -88,13 +93,16 @@ const arrayUnshift = (array, ...values) => array.unshift(...values);
|
|
|
88
93
|
const arrayShift = (array) => array.shift();
|
|
89
94
|
|
|
90
95
|
const getCellOrValueType = (cellOrValue) => {
|
|
96
|
+
if (isNull(cellOrValue)) {
|
|
97
|
+
return 'null';
|
|
98
|
+
}
|
|
91
99
|
const type = getTypeOf(cellOrValue);
|
|
92
100
|
return isTypeStringOrBoolean(type) ||
|
|
93
101
|
(type == NUMBER && isFiniteNumber(cellOrValue))
|
|
94
102
|
? type
|
|
95
103
|
: void 0;
|
|
96
104
|
};
|
|
97
|
-
const
|
|
105
|
+
const isCellOrValueOrUndefined = (cellOrValue) =>
|
|
98
106
|
isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
|
|
99
107
|
const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
|
|
100
108
|
isUndefined(cell)
|
|
@@ -121,12 +129,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
|
121
129
|
const objFrozen = object.isFrozen;
|
|
122
130
|
const objEntries = object.entries;
|
|
123
131
|
const isObject = (obj) =>
|
|
124
|
-
!
|
|
125
|
-
|
|
132
|
+
!isNullish(obj) &&
|
|
133
|
+
ifNotNullish(
|
|
126
134
|
getPrototypeOf(obj),
|
|
127
135
|
(objPrototype) =>
|
|
128
136
|
objPrototype == object.prototype ||
|
|
129
|
-
|
|
137
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
130
138
|
|
|
131
139
|
/* istanbul ignore next */
|
|
132
140
|
() => true,
|
|
@@ -155,7 +163,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
155
163
|
};
|
|
156
164
|
const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
|
|
157
165
|
if (
|
|
158
|
-
|
|
166
|
+
isNullish(obj) ||
|
|
159
167
|
!isObject(obj) ||
|
|
160
168
|
(!emptyIsValid && objIsEmpty(obj)) ||
|
|
161
169
|
objFrozen(obj)
|
|
@@ -179,7 +187,7 @@ const mapForEach = (map, cb) =>
|
|
|
179
187
|
const mapMap = (coll, cb) =>
|
|
180
188
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
181
189
|
const mapSet = (map, key, value) =>
|
|
182
|
-
|
|
190
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
183
191
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
184
192
|
if (!collHas(map, key)) {
|
|
185
193
|
mapSet(map, key, getDefaultValue());
|
|
@@ -500,7 +508,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
500
508
|
const index = size(ids);
|
|
501
509
|
if (index == size(path)) {
|
|
502
510
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
503
|
-
} else if (
|
|
511
|
+
} else if (isNull(path[index])) {
|
|
504
512
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
505
513
|
callWithIds(...ids, id2),
|
|
506
514
|
);
|
|
@@ -653,7 +661,7 @@ const createCheckpoints = getCreateFunction(
|
|
|
653
661
|
? goBackwardImpl
|
|
654
662
|
: arrayHas(forwardIds, checkpointId)
|
|
655
663
|
? goForwardImpl
|
|
656
|
-
:
|
|
664
|
+
: void 0;
|
|
657
665
|
while (!isUndefined(action) && checkpointId != currentId) {
|
|
658
666
|
action();
|
|
659
667
|
}
|
|
@@ -1233,14 +1241,22 @@ const createStore = () => {
|
|
|
1233
1241
|
const validateValuesSchema = (valuesSchema) =>
|
|
1234
1242
|
objValidate(valuesSchema, validateCellOrValueSchema);
|
|
1235
1243
|
const validateCellOrValueSchema = (schema) => {
|
|
1236
|
-
if (
|
|
1244
|
+
if (
|
|
1245
|
+
!objValidate(schema, (_child, id2) =>
|
|
1246
|
+
arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
|
|
1247
|
+
)
|
|
1248
|
+
) {
|
|
1237
1249
|
return false;
|
|
1238
1250
|
}
|
|
1239
1251
|
const type = schema[TYPE];
|
|
1240
1252
|
if (!isTypeStringOrBoolean(type) && type != NUMBER) {
|
|
1241
1253
|
return false;
|
|
1242
1254
|
}
|
|
1243
|
-
|
|
1255
|
+
const defaultValue = schema[DEFAULT];
|
|
1256
|
+
if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
|
|
1257
|
+
return false;
|
|
1258
|
+
}
|
|
1259
|
+
if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
|
|
1244
1260
|
objDel(schema, DEFAULT);
|
|
1245
1261
|
}
|
|
1246
1262
|
return true;
|
|
@@ -1277,9 +1293,19 @@ const createStore = () => {
|
|
|
1277
1293
|
? ifNotUndefined(
|
|
1278
1294
|
mapGet(mapGet(tablesSchemaMap, tableId), cellId),
|
|
1279
1295
|
(cellSchema) =>
|
|
1280
|
-
|
|
1281
|
-
?
|
|
1282
|
-
|
|
1296
|
+
isNull(cell)
|
|
1297
|
+
? cellSchema[ALLOW_NULL]
|
|
1298
|
+
? cell
|
|
1299
|
+
: cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
|
|
1300
|
+
: getCellOrValueType(cell) == cellSchema[TYPE]
|
|
1301
|
+
? cell
|
|
1302
|
+
: cellInvalid(
|
|
1303
|
+
tableId,
|
|
1304
|
+
rowId,
|
|
1305
|
+
cellId,
|
|
1306
|
+
cell,
|
|
1307
|
+
cellSchema[DEFAULT],
|
|
1308
|
+
),
|
|
1283
1309
|
() => cellInvalid(tableId, rowId, cellId, cell),
|
|
1284
1310
|
)
|
|
1285
1311
|
: isUndefined(getCellOrValueType(cell))
|
|
@@ -1304,9 +1330,13 @@ const createStore = () => {
|
|
|
1304
1330
|
? ifNotUndefined(
|
|
1305
1331
|
mapGet(valuesSchemaMap, valueId),
|
|
1306
1332
|
(valueSchema) =>
|
|
1307
|
-
|
|
1308
|
-
?
|
|
1309
|
-
|
|
1333
|
+
isNull(value)
|
|
1334
|
+
? valueSchema[ALLOW_NULL]
|
|
1335
|
+
? value
|
|
1336
|
+
: valueInvalid(valueId, value, valueSchema[DEFAULT])
|
|
1337
|
+
: getCellOrValueType(value) == valueSchema[TYPE]
|
|
1338
|
+
? value
|
|
1339
|
+
: valueInvalid(valueId, value, valueSchema[DEFAULT]),
|
|
1310
1340
|
() => valueInvalid(valueId, value),
|
|
1311
1341
|
)
|
|
1312
1342
|
: isUndefined(getCellOrValueType(value))
|
|
@@ -1549,7 +1579,7 @@ const createStore = () => {
|
|
|
1549
1579
|
mapSet(
|
|
1550
1580
|
cellIds,
|
|
1551
1581
|
cellId,
|
|
1552
|
-
count != -addedOrRemoved ? count + addedOrRemoved :
|
|
1582
|
+
count != -addedOrRemoved ? count + addedOrRemoved : void 0,
|
|
1553
1583
|
);
|
|
1554
1584
|
idsChanged(
|
|
1555
1585
|
mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
|
|
@@ -2558,7 +2588,7 @@ const validateMergeableContent = (mergeableContent) =>
|
|
|
2558
2588
|
objValidate(
|
|
2559
2589
|
cellStamps,
|
|
2560
2590
|
(cellStamp) =>
|
|
2561
|
-
stampValidate(cellStamp,
|
|
2591
|
+
stampValidate(cellStamp, isCellOrValueOrUndefined),
|
|
2562
2592
|
void 0,
|
|
2563
2593
|
1,
|
|
2564
2594
|
),
|
|
@@ -2574,7 +2604,7 @@ const validateMergeableContent = (mergeableContent) =>
|
|
|
2574
2604
|
stampValidate(mergeableContent[1], (values) =>
|
|
2575
2605
|
objValidate(
|
|
2576
2606
|
values,
|
|
2577
|
-
(value) => stampValidate(value,
|
|
2607
|
+
(value) => stampValidate(value, isCellOrValueOrUndefined),
|
|
2578
2608
|
void 0,
|
|
2579
2609
|
1,
|
|
2580
2610
|
),
|
|
@@ -3252,7 +3282,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3252
3282
|
setDefinition(queryId, tableId);
|
|
3253
3283
|
resetPreStores(queryId);
|
|
3254
3284
|
const selectEntries = [];
|
|
3255
|
-
const joinEntries = [[
|
|
3285
|
+
const joinEntries = [[void 0, [tableId, void 0, void 0, [], mapNew()]]];
|
|
3256
3286
|
const wheres = [];
|
|
3257
3287
|
const groupEntries = [];
|
|
3258
3288
|
const havings = [];
|
|
@@ -3268,7 +3298,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3268
3298
|
};
|
|
3269
3299
|
const join = (joinedTableId, arg1, arg2) => {
|
|
3270
3300
|
const fromIntermediateJoinedTableId =
|
|
3271
|
-
isUndefined(arg2) || isFunction(arg1) ?
|
|
3301
|
+
isUndefined(arg2) || isFunction(arg1) ? void 0 : arg1;
|
|
3272
3302
|
const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
|
|
3273
3303
|
const joinEntry = [
|
|
3274
3304
|
joinedTableId,
|
|
@@ -3388,7 +3418,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3388
3418
|
groupRow[groupedCellId] = isUndefined(
|
|
3389
3419
|
getCellOrValueType(aggregateValue),
|
|
3390
3420
|
)
|
|
3391
|
-
?
|
|
3421
|
+
? void 0
|
|
3392
3422
|
: aggregateValue;
|
|
3393
3423
|
},
|
|
3394
3424
|
);
|
|
@@ -3517,20 +3547,20 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3517
3547
|
const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
|
|
3518
3548
|
const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
|
|
3519
3549
|
arrayForEach(joinedTableIds2, (remoteAsTableId) => {
|
|
3520
|
-
const [realJoinedTableId, , on, nextJoinedTableIds,
|
|
3550
|
+
const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPairs] =
|
|
3521
3551
|
mapGet(joins, remoteAsTableId);
|
|
3522
3552
|
const remoteRowId = on?.(getCell, rootRowId);
|
|
3523
3553
|
const [previousRemoteRowId, previousRemoteListenerId] =
|
|
3524
|
-
mapGet(
|
|
3554
|
+
mapGet(remoteIdPairs, rootRowId) ?? [];
|
|
3525
3555
|
if (remoteRowId != previousRemoteRowId) {
|
|
3526
3556
|
if (!isUndefined(previousRemoteListenerId)) {
|
|
3527
3557
|
delStoreListeners(queryId, previousRemoteListenerId);
|
|
3528
3558
|
}
|
|
3529
3559
|
mapSet(
|
|
3530
|
-
|
|
3560
|
+
remoteIdPairs,
|
|
3531
3561
|
rootRowId,
|
|
3532
3562
|
isUndefined(remoteRowId)
|
|
3533
|
-
?
|
|
3563
|
+
? void 0
|
|
3534
3564
|
: [
|
|
3535
3565
|
remoteRowId,
|
|
3536
3566
|
...addStoreListeners(
|
|
@@ -3551,7 +3581,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3551
3581
|
});
|
|
3552
3582
|
writeSelectRow(rootRowId);
|
|
3553
3583
|
};
|
|
3554
|
-
const {3: joinedTableIds} = mapGet(joins,
|
|
3584
|
+
const {3: joinedTableIds} = mapGet(joins, void 0);
|
|
3555
3585
|
selectJoinWhereStore.transaction(() =>
|
|
3556
3586
|
addStoreListeners(
|
|
3557
3587
|
queryId,
|