tinybase 9.4.0-beta.0 → 9.4.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/persisters/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -2
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +9 -2
- package/@types/persisters/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +145 -7
- package/@types/queries/with-schemas/index.d.ts +157 -7
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +6 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +6 -3
- package/index.js +315 -22
- package/min/index.js +1 -1
- package/min/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/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/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-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 +730 -127
- package/omni/with-schemas/index.js +730 -127
- package/package.json +8 -4
- package/persisters/index.js +49 -10
- package/persisters/persister-automerge/index.js +29 -5
- package/persisters/persister-automerge/with-schemas/index.js +29 -5
- package/persisters/persister-browser/index.js +29 -5
- package/persisters/persister-browser/with-schemas/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-durable-object-sql-storage/index.js +44 -8
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +44 -8
- package/persisters/persister-durable-object-storage/index.js +31 -5
- package/persisters/persister-durable-object-storage/with-schemas/index.js +31 -5
- package/persisters/persister-electric-sql/index.js +29 -5
- package/persisters/persister-electric-sql/with-schemas/index.js +29 -5
- package/persisters/persister-expo-sqlite/index.js +29 -5
- package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-file/index.js +31 -5
- package/persisters/persister-file/with-schemas/index.js +31 -5
- package/persisters/persister-indexed-db/index.js +29 -5
- package/persisters/persister-indexed-db/with-schemas/index.js +29 -5
- package/persisters/persister-libsql/index.js +29 -5
- package/persisters/persister-libsql/with-schemas/index.js +29 -5
- package/persisters/persister-partykit-client/index.js +31 -5
- package/persisters/persister-partykit-client/with-schemas/index.js +31 -5
- package/persisters/persister-pglite/index.js +49 -10
- package/persisters/persister-pglite/with-schemas/index.js +49 -10
- package/persisters/persister-postgres/index.js +49 -10
- package/persisters/persister-postgres/with-schemas/index.js +49 -10
- package/persisters/persister-powersync/index.js +29 -5
- package/persisters/persister-powersync/with-schemas/index.js +29 -5
- package/persisters/persister-react-native-mmkv/index.js +31 -5
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +31 -5
- package/persisters/persister-react-native-sqlite/index.js +29 -5
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-remote/index.js +31 -5
- package/persisters/persister-remote/with-schemas/index.js +31 -5
- package/persisters/persister-sqlite-bun/index.js +29 -5
- package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite-wasm/index.js +29 -5
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite3/index.js +29 -5
- package/persisters/persister-sqlite3/with-schemas/index.js +29 -5
- package/persisters/persister-yjs/index.js +29 -5
- package/persisters/persister-yjs/with-schemas/index.js +29 -5
- package/persisters/with-schemas/index.js +49 -10
- package/queries/index.js +334 -22
- package/queries/with-schemas/index.js +334 -22
- package/readme.md +14 -14
- package/releases.md +84 -67
- package/synchronizers/index.js +31 -5
- package/synchronizers/synchronizer-broadcast-channel/index.js +39 -13
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +39 -13
- package/synchronizers/synchronizer-local/index.js +31 -5
- package/synchronizers/synchronizer-local/with-schemas/index.js +31 -5
- package/synchronizers/synchronizer-ws-client/index.js +220 -61
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +220 -61
- package/synchronizers/synchronizer-ws-server/index.js +253 -73
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +253 -73
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-simple/index.js +184 -60
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +184 -60
- package/synchronizers/with-schemas/index.js +31 -5
- package/ui-react-inspector/index.js +29 -5
- package/ui-react-inspector/with-schemas/index.js +29 -5
- package/ui-solid-inspector/index.js +29 -5
- package/ui-solid-inspector/with-schemas/index.js +29 -5
- package/ui-svelte-inspector/index.js +29 -5
- package/ui-svelte-inspector/with-schemas/index.js +29 -5
- package/with-schemas/index.js +315 -22
package/index.js
CHANGED
|
@@ -261,6 +261,7 @@ const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
|
261
261
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
262
262
|
|
|
263
263
|
const ERROR_HLC = 13;
|
|
264
|
+
const ERROR_QUERY_SELECT_ALL_CYCLE = 16;
|
|
264
265
|
const errorNew = (code, details) =>
|
|
265
266
|
new Error(
|
|
266
267
|
TINYBASE +
|
|
@@ -4476,6 +4477,51 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4476
4477
|
};
|
|
4477
4478
|
const preStoreListenerIds = mapNew();
|
|
4478
4479
|
const sourceStoreListenerIds = mapNew();
|
|
4480
|
+
const selectAllListenerIds = mapNew();
|
|
4481
|
+
const selectAllRetryListenerIds = mapNew();
|
|
4482
|
+
const selectAllQuerySources = mapNew();
|
|
4483
|
+
const referencedQueryIds = mapNew();
|
|
4484
|
+
const assertNoMappedSelectAllCycle = (queryId, nextQuerySources) => {
|
|
4485
|
+
const getQuerySources = (sourceQueryId) =>
|
|
4486
|
+
sourceQueryId === queryId
|
|
4487
|
+
? nextQuerySources
|
|
4488
|
+
: mapGet(selectAllQuerySources, sourceQueryId);
|
|
4489
|
+
const reachesQuery = (
|
|
4490
|
+
sourceQueryId,
|
|
4491
|
+
targetQueryId,
|
|
4492
|
+
visitedQueryIds = setNew(),
|
|
4493
|
+
) => {
|
|
4494
|
+
if (sourceQueryId === targetQueryId) {
|
|
4495
|
+
return true;
|
|
4496
|
+
}
|
|
4497
|
+
if (collHas(visitedQueryIds, sourceQueryId)) {
|
|
4498
|
+
return false;
|
|
4499
|
+
}
|
|
4500
|
+
setAdd(visitedQueryIds, sourceQueryId);
|
|
4501
|
+
return !collEvery(
|
|
4502
|
+
getQuerySources(sourceQueryId),
|
|
4503
|
+
(_changesCellId, nextQueryId) =>
|
|
4504
|
+
!reachesQuery(nextQueryId, targetQueryId, visitedQueryIds),
|
|
4505
|
+
);
|
|
4506
|
+
};
|
|
4507
|
+
const hasMappedCycle = (sourceQueryId, querySources) =>
|
|
4508
|
+
!collEvery(
|
|
4509
|
+
querySources,
|
|
4510
|
+
(changesCellId, nextQueryId) =>
|
|
4511
|
+
!changesCellId || !reachesQuery(nextQueryId, sourceQueryId),
|
|
4512
|
+
);
|
|
4513
|
+
if (
|
|
4514
|
+
hasMappedCycle(queryId, nextQuerySources) ||
|
|
4515
|
+
!collEvery(
|
|
4516
|
+
selectAllQuerySources,
|
|
4517
|
+
(querySources, sourceQueryId) =>
|
|
4518
|
+
sourceQueryId === queryId ||
|
|
4519
|
+
!hasMappedCycle(sourceQueryId, querySources),
|
|
4520
|
+
)
|
|
4521
|
+
) {
|
|
4522
|
+
errorThrow(ERROR_QUERY_SELECT_ALL_CYCLE);
|
|
4523
|
+
}
|
|
4524
|
+
};
|
|
4479
4525
|
const {
|
|
4480
4526
|
_: [, addListener, callListeners],
|
|
4481
4527
|
delListener: delListenerImpl,
|
|
@@ -4549,11 +4595,72 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4549
4595
|
resetStoreListeners(mapGet(sourceStoreListenerIds, queryId));
|
|
4550
4596
|
mapSet(sourceStoreListenerIds, queryId);
|
|
4551
4597
|
};
|
|
4552
|
-
const
|
|
4598
|
+
const clearSelectAllRetryListeners = (queryId) =>
|
|
4599
|
+
ifNotUndefined(
|
|
4600
|
+
mapGet(selectAllRetryListenerIds, queryId),
|
|
4601
|
+
(listenerIds) => {
|
|
4602
|
+
mapForEach(listenerIds, (sourceStore, listenerIdsByTableId) =>
|
|
4603
|
+
mapForEach(listenerIdsByTableId, (_sourceTableId, listenerId) =>
|
|
4604
|
+
sourceStore.delListener(listenerId),
|
|
4605
|
+
),
|
|
4606
|
+
);
|
|
4607
|
+
mapSet(selectAllRetryListenerIds, queryId);
|
|
4608
|
+
},
|
|
4609
|
+
);
|
|
4610
|
+
const addSelectAllRetryListener = (queryId, sourceStore, sourceTableId) => {
|
|
4611
|
+
const listenerIdsByTableId = mapEnsure(
|
|
4612
|
+
mapEnsure(selectAllRetryListenerIds, queryId, mapNew),
|
|
4613
|
+
sourceStore,
|
|
4614
|
+
mapNew,
|
|
4615
|
+
);
|
|
4616
|
+
mapEnsure(listenerIdsByTableId, sourceTableId, () =>
|
|
4617
|
+
sourceStore.addTableListener(sourceTableId, () =>
|
|
4618
|
+
setQueryDefinitionImpl(queryId),
|
|
4619
|
+
),
|
|
4620
|
+
);
|
|
4621
|
+
};
|
|
4622
|
+
const syncSelectAllListeners = (queryId, nextSources = mapNew()) => {
|
|
4623
|
+
const listenerIds = mapEnsure(selectAllListenerIds, queryId, mapNew);
|
|
4624
|
+
mapForEach(listenerIds, (sourceStore, listenerIdsByTableId) => {
|
|
4625
|
+
mapForEach(listenerIdsByTableId, (sourceTableId, listenerId) =>
|
|
4626
|
+
collHas(mapGet(nextSources, sourceStore), sourceTableId)
|
|
4627
|
+
? 0
|
|
4628
|
+
: (sourceStore.delListener(listenerId),
|
|
4629
|
+
mapSet(listenerIdsByTableId, sourceTableId)),
|
|
4630
|
+
);
|
|
4631
|
+
if (collIsEmpty(listenerIdsByTableId)) {
|
|
4632
|
+
mapSet(listenerIds, sourceStore);
|
|
4633
|
+
}
|
|
4634
|
+
});
|
|
4635
|
+
mapForEach(nextSources, (sourceStore, tableIds) => {
|
|
4636
|
+
const listenerIdsByTableId = mapEnsure(listenerIds, sourceStore, mapNew);
|
|
4637
|
+
collForEach(tableIds, (sourceTableId) =>
|
|
4638
|
+
mapEnsure(listenerIdsByTableId, sourceTableId, () =>
|
|
4639
|
+
sourceStore.addTableCellIdsListener(sourceTableId, () =>
|
|
4640
|
+
tryCatchSync(
|
|
4641
|
+
() => setQueryDefinitionImpl(queryId),
|
|
4642
|
+
(error) => {
|
|
4643
|
+
addSelectAllRetryListener(queryId, sourceStore, sourceTableId);
|
|
4644
|
+
throw error;
|
|
4645
|
+
},
|
|
4646
|
+
),
|
|
4647
|
+
),
|
|
4648
|
+
),
|
|
4649
|
+
);
|
|
4650
|
+
});
|
|
4651
|
+
if (collIsEmpty(listenerIds)) {
|
|
4652
|
+
mapSet(selectAllListenerIds, queryId);
|
|
4653
|
+
}
|
|
4654
|
+
};
|
|
4655
|
+
const isResultStoreReferenced = (queryId, resultStore2) =>
|
|
4553
4656
|
!(
|
|
4554
4657
|
collEvery(routedResultListeners, ([, storeListenerIds]) =>
|
|
4555
4658
|
collEvery(storeListenerIds, ([store2]) => store2 !== resultStore2),
|
|
4556
4659
|
) &&
|
|
4660
|
+
collEvery(
|
|
4661
|
+
referencedQueryIds,
|
|
4662
|
+
(queryIds) => !collHas(queryIds, queryId),
|
|
4663
|
+
) &&
|
|
4557
4664
|
arrayEvery(
|
|
4558
4665
|
[preStoreListenerIds, sourceStoreListenerIds],
|
|
4559
4666
|
(storeListenerIds) =>
|
|
@@ -4568,7 +4675,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4568
4675
|
hasQuery(queryId) ? 0 : mapSet(preStores, queryId),
|
|
4569
4676
|
);
|
|
4570
4677
|
mapForEach(resultStores, (queryId, resultStore2) =>
|
|
4571
|
-
hasQuery(queryId) || isResultStoreReferenced(resultStore2)
|
|
4678
|
+
hasQuery(queryId) || isResultStoreReferenced(queryId, resultStore2)
|
|
4572
4679
|
? 0
|
|
4573
4680
|
: mapSet(resultStores, queryId),
|
|
4574
4681
|
);
|
|
@@ -4650,7 +4757,13 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4650
4757
|
const rootStore = asQuery ? getResultStore(tableId) : store;
|
|
4651
4758
|
const resultStore2 = getResultStore(queryId);
|
|
4652
4759
|
const paramValues = definition?.[3] ?? getParamValues(queryId);
|
|
4653
|
-
const
|
|
4760
|
+
const nextReferencedQueryIds = stagedDefinition[4];
|
|
4761
|
+
if (asQuery) {
|
|
4762
|
+
setAdd(nextReferencedQueryIds, tableId);
|
|
4763
|
+
}
|
|
4764
|
+
const selectionEntries = [];
|
|
4765
|
+
let hasSelectAll = false;
|
|
4766
|
+
let selectCount = 0;
|
|
4654
4767
|
const joinEntries = [
|
|
4655
4768
|
[void 0, [tableId, void 0, void 0, [], mapNew(), rootStore]],
|
|
4656
4769
|
];
|
|
@@ -4662,21 +4775,39 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4662
4775
|
const joinedTableId = isTrue(arg1) ? arg2 : arg1;
|
|
4663
4776
|
const joinedCellId = isTrue(arg1) ? arg3 : arg2;
|
|
4664
4777
|
const selectEntry = isFunction(arg1)
|
|
4665
|
-
? [
|
|
4778
|
+
? [0, selectCount + EMPTY_STRING, arg1]
|
|
4666
4779
|
: isUndefined(joinedCellId)
|
|
4667
|
-
? [arg1, (getTableCell) => getTableCell(arg1)]
|
|
4780
|
+
? [0, arg1, (getTableCell) => getTableCell(arg1)]
|
|
4668
4781
|
: [
|
|
4782
|
+
0,
|
|
4669
4783
|
joinedCellId,
|
|
4670
4784
|
(getTableCell) =>
|
|
4671
4785
|
isTrue(arg1)
|
|
4672
4786
|
? getTableCell(true, joinedTableId, joinedCellId)
|
|
4673
4787
|
: getTableCell(joinedTableId, joinedCellId),
|
|
4674
4788
|
];
|
|
4675
|
-
|
|
4789
|
+
selectCount++;
|
|
4790
|
+
arrayPush(selectionEntries, selectEntry);
|
|
4676
4791
|
return {
|
|
4677
|
-
as: (selectedCellId) => (selectEntry[
|
|
4792
|
+
as: (selectedCellId) => (selectEntry[1] = selectedCellId),
|
|
4678
4793
|
};
|
|
4679
4794
|
};
|
|
4795
|
+
const selectAll = (arg1, arg2, arg3) => {
|
|
4796
|
+
hasSelectAll = true;
|
|
4797
|
+
const joinedTableId = isTrue(arg1) ? arg2 : arg1;
|
|
4798
|
+
const prefixOrMapper = isTrue(arg1) ? arg3 : arg2;
|
|
4799
|
+
arrayPush(selectionEntries, [
|
|
4800
|
+
1,
|
|
4801
|
+
joinedTableId,
|
|
4802
|
+
isFunction(prefixOrMapper)
|
|
4803
|
+
? prefixOrMapper
|
|
4804
|
+
: (cellId) => (prefixOrMapper ?? EMPTY_STRING) + cellId,
|
|
4805
|
+
isFunction(prefixOrMapper) ||
|
|
4806
|
+
(!isUndefined(prefixOrMapper) && prefixOrMapper !== EMPTY_STRING)
|
|
4807
|
+
? 1
|
|
4808
|
+
: 0,
|
|
4809
|
+
]);
|
|
4810
|
+
};
|
|
4680
4811
|
const join = (arg1, arg2, arg3, arg4) => {
|
|
4681
4812
|
const joinedTableId = isTrue(arg1) ? arg2 : arg1;
|
|
4682
4813
|
const [fromJoinAlias, onArg] = isTrue(arg1)
|
|
@@ -4686,6 +4817,13 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4686
4817
|
: isUndefined(arg3) || isFunction(arg2)
|
|
4687
4818
|
? [void 0, arg2]
|
|
4688
4819
|
: [arg2, arg3];
|
|
4820
|
+
const sourceIsQuery = isTrue(arg1);
|
|
4821
|
+
const sourceStore = sourceIsQuery
|
|
4822
|
+
? getResultStore(joinedTableId)
|
|
4823
|
+
: store;
|
|
4824
|
+
if (sourceIsQuery) {
|
|
4825
|
+
setAdd(nextReferencedQueryIds, joinedTableId);
|
|
4826
|
+
}
|
|
4689
4827
|
const joinEntry = [
|
|
4690
4828
|
joinedTableId,
|
|
4691
4829
|
[
|
|
@@ -4694,7 +4832,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4694
4832
|
isFunction(onArg) ? onArg : (getCell) => getCell(onArg),
|
|
4695
4833
|
[],
|
|
4696
4834
|
mapNew(),
|
|
4697
|
-
|
|
4835
|
+
sourceStore,
|
|
4698
4836
|
],
|
|
4699
4837
|
];
|
|
4700
4838
|
arrayPush(joinEntries, joinEntry);
|
|
@@ -4740,21 +4878,86 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4740
4878
|
: (getSelectedOrGroupedCell) =>
|
|
4741
4879
|
getSelectedOrGroupedCell(arg1) === arg2,
|
|
4742
4880
|
);
|
|
4743
|
-
build({select, join, where, group, having, param});
|
|
4744
|
-
resultStore2.delTable(queryId);
|
|
4745
|
-
const selects = mapNew(selectEntries);
|
|
4746
|
-
if (collIsEmpty(selects)) {
|
|
4747
|
-
commit?.();
|
|
4748
|
-
return queries;
|
|
4749
|
-
}
|
|
4881
|
+
build({select, selectAll, join, where, group, having, param});
|
|
4750
4882
|
const joins = mapNew(joinEntries);
|
|
4751
4883
|
mapForEach(joins, (joinAlias, [, fromJoinAlias]) =>
|
|
4752
4884
|
ifNotUndefined(mapGet(joins, fromJoinAlias), ({3: toJoinAliases2}) =>
|
|
4753
4885
|
isUndefined(joinAlias) ? 0 : arrayPush(toJoinAliases2, joinAlias),
|
|
4754
4886
|
),
|
|
4755
4887
|
);
|
|
4888
|
+
const isRootSelectAll = (joinedTableId) => isUndefined(joinedTableId);
|
|
4889
|
+
const getSelectAllJoin = (joinedTableId) =>
|
|
4890
|
+
mapGet(
|
|
4891
|
+
joins,
|
|
4892
|
+
isRootSelectAll(joinedTableId) ? void 0 : joinedTableId,
|
|
4893
|
+
);
|
|
4894
|
+
const nextSelectAllQuerySources = stagedDefinition[5];
|
|
4895
|
+
arrayForEach(
|
|
4896
|
+
selectionEntries,
|
|
4897
|
+
([selectAll2, selectedOrJoinedTableId, , changesCellId = 0]) =>
|
|
4898
|
+
selectAll2
|
|
4899
|
+
? ifNotUndefined(
|
|
4900
|
+
getSelectAllJoin(selectedOrJoinedTableId),
|
|
4901
|
+
([sourceQueryId, , , , , sourceStore]) =>
|
|
4902
|
+
sourceStore === store
|
|
4903
|
+
? 0
|
|
4904
|
+
: mapSet(
|
|
4905
|
+
nextSelectAllQuerySources,
|
|
4906
|
+
sourceQueryId,
|
|
4907
|
+
mapGet(nextSelectAllQuerySources, sourceQueryId) ||
|
|
4908
|
+
changesCellId
|
|
4909
|
+
? 1
|
|
4910
|
+
: 0,
|
|
4911
|
+
),
|
|
4912
|
+
)
|
|
4913
|
+
: 0,
|
|
4914
|
+
);
|
|
4915
|
+
assertNoMappedSelectAllCycle(queryId, nextSelectAllQuerySources);
|
|
4916
|
+
resultStore2.delTable(queryId);
|
|
4917
|
+
if (isEmpty(selectionEntries)) {
|
|
4918
|
+
commit?.();
|
|
4919
|
+
return queries;
|
|
4920
|
+
}
|
|
4756
4921
|
const groups = mapNew(groupEntries);
|
|
4757
4922
|
const hasGroupsOrHavings = !collIsEmpty(groups) || !isEmpty(havings);
|
|
4923
|
+
const selectEntries = [];
|
|
4924
|
+
const selectAllSources = stagedDefinition[3];
|
|
4925
|
+
arrayForEach(
|
|
4926
|
+
selectionEntries,
|
|
4927
|
+
([selectAll2, selectedOrJoinedTableId, clauseOrMapper]) => {
|
|
4928
|
+
if (selectAll2) {
|
|
4929
|
+
if (hasGroupsOrHavings) {
|
|
4930
|
+
ifNotUndefined(
|
|
4931
|
+
getSelectAllJoin(selectedOrJoinedTableId),
|
|
4932
|
+
([realTableId, , , , , sourceStore]) => {
|
|
4933
|
+
setAdd(
|
|
4934
|
+
mapEnsure(selectAllSources, sourceStore, setNew),
|
|
4935
|
+
realTableId,
|
|
4936
|
+
);
|
|
4937
|
+
arrayForEach(
|
|
4938
|
+
arraySort(sourceStore.getTableCellIds(realTableId)),
|
|
4939
|
+
(cellId) =>
|
|
4940
|
+
arrayPush(selectEntries, [
|
|
4941
|
+
clauseOrMapper(cellId),
|
|
4942
|
+
getUndefined,
|
|
4943
|
+
]),
|
|
4944
|
+
);
|
|
4945
|
+
},
|
|
4946
|
+
);
|
|
4947
|
+
}
|
|
4948
|
+
} else {
|
|
4949
|
+
arrayPush(selectEntries, [
|
|
4950
|
+
selectedOrJoinedTableId,
|
|
4951
|
+
clauseOrMapper,
|
|
4952
|
+
]);
|
|
4953
|
+
}
|
|
4954
|
+
},
|
|
4955
|
+
);
|
|
4956
|
+
const selects = mapNew(selectEntries);
|
|
4957
|
+
if (hasGroupsOrHavings && collIsEmpty(selects)) {
|
|
4958
|
+
commit?.();
|
|
4959
|
+
return queries;
|
|
4960
|
+
}
|
|
4758
4961
|
const selectJoinWhereStore = hasGroupsOrHavings
|
|
4759
4962
|
? (stagedDefinition[2] = createStore())
|
|
4760
4963
|
: resultStore2;
|
|
@@ -4933,18 +5136,85 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4933
5136
|
joinedCellId,
|
|
4934
5137
|
);
|
|
4935
5138
|
};
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
5139
|
+
const writeSelectAllRow = () => {
|
|
5140
|
+
const resultRow = objNew();
|
|
5141
|
+
arrayForEach(
|
|
5142
|
+
selectionEntries,
|
|
5143
|
+
([selectAll2, selectedOrJoinedTableId, clauseOrMapper]) => {
|
|
5144
|
+
if (selectAll2) {
|
|
5145
|
+
ifNotUndefined(
|
|
5146
|
+
getSelectAllJoin(selectedOrJoinedTableId),
|
|
5147
|
+
([realTableId, , , , remoteIdPairs, sourceStore]) => {
|
|
5148
|
+
const sourceRowId = isRootSelectAll(
|
|
5149
|
+
selectedOrJoinedTableId,
|
|
5150
|
+
)
|
|
5151
|
+
? rootRowId
|
|
5152
|
+
: mapGet(remoteIdPairs, rootRowId)?.[0];
|
|
5153
|
+
ifNotUndefined(sourceRowId, (sourceRowId2) =>
|
|
5154
|
+
arrayForEach(
|
|
5155
|
+
arraySort(
|
|
5156
|
+
sourceStore.getCellIds(realTableId, sourceRowId2),
|
|
5157
|
+
),
|
|
5158
|
+
(cellId) =>
|
|
5159
|
+
objSet(
|
|
5160
|
+
resultRow,
|
|
5161
|
+
clauseOrMapper(cellId),
|
|
5162
|
+
sourceStore.getCell(
|
|
5163
|
+
realTableId,
|
|
5164
|
+
sourceRowId2,
|
|
5165
|
+
cellId,
|
|
5166
|
+
),
|
|
5167
|
+
),
|
|
5168
|
+
),
|
|
5169
|
+
);
|
|
5170
|
+
},
|
|
5171
|
+
);
|
|
5172
|
+
} else {
|
|
5173
|
+
const selectedCell = clauseOrMapper(getJoinCell, rootRowId);
|
|
5174
|
+
const selectedCellId = selectedOrJoinedTableId;
|
|
5175
|
+
if (isUndefined(selectedCell)) {
|
|
5176
|
+
objDel(resultRow, selectedCellId);
|
|
5177
|
+
} else {
|
|
5178
|
+
objSet(resultRow, selectedCellId, selectedCell);
|
|
5179
|
+
}
|
|
5180
|
+
}
|
|
5181
|
+
},
|
|
5182
|
+
);
|
|
5183
|
+
if (objIsEmpty(resultRow)) {
|
|
5184
|
+
selectJoinWhereStore.delRow(queryId, rootRowId);
|
|
5185
|
+
} else {
|
|
5186
|
+
selectJoinWhereStore.setRow(queryId, rootRowId, resultRow);
|
|
5187
|
+
}
|
|
5188
|
+
};
|
|
5189
|
+
selectJoinWhereStore.transaction(() => {
|
|
5190
|
+
if (!arrayEvery(wheres, (where2) => where2(getJoinCell))) {
|
|
5191
|
+
selectJoinWhereStore.delRow(queryId, rootRowId);
|
|
5192
|
+
} else if (hasGroupsOrHavings) {
|
|
5193
|
+
if (hasSelectAll) {
|
|
5194
|
+
writeSelectAllRow();
|
|
5195
|
+
} else {
|
|
5196
|
+
mapForEach(selects, (asCellId, tableCellGetter) =>
|
|
4939
5197
|
selectJoinWhereStore._[5](
|
|
4940
5198
|
queryId,
|
|
4941
5199
|
rootRowId,
|
|
4942
5200
|
asCellId,
|
|
4943
5201
|
tableCellGetter(getJoinCell, rootRowId),
|
|
4944
5202
|
),
|
|
4945
|
-
)
|
|
4946
|
-
|
|
4947
|
-
|
|
5203
|
+
);
|
|
5204
|
+
}
|
|
5205
|
+
} else if (hasSelectAll) {
|
|
5206
|
+
writeSelectAllRow();
|
|
5207
|
+
} else {
|
|
5208
|
+
mapForEach(selects, (asCellId, tableCellGetter) =>
|
|
5209
|
+
selectJoinWhereStore._[5](
|
|
5210
|
+
queryId,
|
|
5211
|
+
rootRowId,
|
|
5212
|
+
asCellId,
|
|
5213
|
+
tableCellGetter(getJoinCell, rootRowId),
|
|
5214
|
+
),
|
|
5215
|
+
);
|
|
5216
|
+
}
|
|
5217
|
+
});
|
|
4948
5218
|
};
|
|
4949
5219
|
const listenToTable = (
|
|
4950
5220
|
rootRowId,
|
|
@@ -5063,7 +5333,14 @@ const createQueries = getCreateFunction((store) => {
|
|
|
5063
5333
|
}),
|
|
5064
5334
|
);
|
|
5065
5335
|
const setQueryDefinitionImpl = (queryId, definition) => {
|
|
5066
|
-
const stagedDefinition = [
|
|
5336
|
+
const stagedDefinition = [
|
|
5337
|
+
mapNew(),
|
|
5338
|
+
mapNew(),
|
|
5339
|
+
void 0,
|
|
5340
|
+
mapNew(),
|
|
5341
|
+
setNew(),
|
|
5342
|
+
mapNew(),
|
|
5343
|
+
];
|
|
5067
5344
|
let committed = false;
|
|
5068
5345
|
tryCatchSync(
|
|
5069
5346
|
() =>
|
|
@@ -5084,6 +5361,18 @@ const createQueries = getCreateFunction((store) => {
|
|
|
5084
5361
|
collIsEmpty(stagedDefinition[1]) ? void 0 : stagedDefinition[1],
|
|
5085
5362
|
);
|
|
5086
5363
|
mapSet(preStores, queryId, stagedDefinition[2]);
|
|
5364
|
+
syncSelectAllListeners(queryId, stagedDefinition[3]);
|
|
5365
|
+
clearSelectAllRetryListeners(queryId);
|
|
5366
|
+
mapSet(
|
|
5367
|
+
referencedQueryIds,
|
|
5368
|
+
queryId,
|
|
5369
|
+
collIsEmpty(stagedDefinition[4]) ? void 0 : stagedDefinition[4],
|
|
5370
|
+
);
|
|
5371
|
+
mapSet(
|
|
5372
|
+
selectAllQuerySources,
|
|
5373
|
+
queryId,
|
|
5374
|
+
collIsEmpty(stagedDefinition[5]) ? void 0 : stagedDefinition[5],
|
|
5375
|
+
);
|
|
5087
5376
|
committed = true;
|
|
5088
5377
|
}),
|
|
5089
5378
|
(error) => {
|
|
@@ -5133,6 +5422,10 @@ const createQueries = getCreateFunction((store) => {
|
|
|
5133
5422
|
paramStore.delRow(PARAMS_TABLE, queryId);
|
|
5134
5423
|
resetPreStores(queryId);
|
|
5135
5424
|
resetSourceStores(queryId);
|
|
5425
|
+
syncSelectAllListeners(queryId);
|
|
5426
|
+
clearSelectAllRetryListeners(queryId);
|
|
5427
|
+
mapSet(referencedQueryIds, queryId);
|
|
5428
|
+
mapSet(selectAllQuerySources, queryId);
|
|
5136
5429
|
delDefinition(queryId);
|
|
5137
5430
|
cleanStores();
|
|
5138
5431
|
return queries;
|
package/min/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",n=e(t),s=e(!0),r=e(0),l=e(e),o="object",a="array",i="type",d="default",c="allowNull",u="Listener",g="Result",h="add",f="Has",b="Ids",w="Table",C=w+"s",v=w+b,R="Row",I=R+"Count",L=R+b,T="Sorted"+R+b,p="Cell",S=p+b,y="Value",V=y+"s",m=y+b,k="required",M=e=>t+e,D=(e,t)=>e.startsWith(t),E=(e,t)=>e.endsWith(t),W=Math,_=e=>(t,n,s)=>e(t)?s?.():n(t),H=globalThis,x=W.max,J=W.min,P=W.floor,F=W.random,O=1/0,Q=isFinite,z=e=>null==e,A=e=>void 0===e,N=e=>null===e,j=e=>!0===e,q=_(z),B=_(A),U=e=>e==n||e==s,Z=t=>e(t)==n,$=t=>e(t)==l,G=e=>Array.isArray(e),K=(e,t,n)=>e.slice(t,n),X=e=>e.length,Y=e=>0==X(e),ee=(e,t)=>e.test(t),te=()=>{},ne=e=>e,se=H.structuredClone,re=(e,t)=>e.includes(t),le=(e,t)=>e.every(t),oe=(e,t)=>X(e)===X(t)&&le(e,(e,n)=>t[n]===e),ae=(e,t)=>le(e,(n,s)=>0==s||t(e[s-1],n)<=0),ie=(e,t)=>e.sort(t),de=(e,t)=>e.forEach(t),ce=(e,t)=>e.map(t),ue=e=>ge(e,(e,t)=>e+t,0),ge=(e,t,n)=>e.reduce(t,n),he=(e,t=X(e))=>e.splice(0,t),fe=(e,...t)=>e.push(...t),be=e=>e.pop(),we=e=>e.shift(),Ce=Object,ve=e=>Ce.getPrototypeOf(e),Re=Ce.isFrozen,Ie=Ce.entries,Le=e=>!z(e)&&q(ve(e),e=>e==Ce.prototype||z(ve(e)),()=>!0),Te=Ce.keys,pe=Ce.freeze,Se=(e,t)=>Ce.hasOwn(e,t),ye=(e,t)=>B(e,e=>B(Ce.getOwnPropertyDescriptor(e,t),()=>e[t])),Ve=(e,t,n)=>(Ce.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),me=(e=[])=>{const t=Ce.create(null);return de(e,([e,n])=>Ve(t,e,n)),t},ke=(e,t)=>(delete e[t],e),Me=(e,t)=>de(Te(e),n=>t(e[n],n)),De=(e,t)=>{for(const n in e)if(Se(e,n)&&!t(e[n],n))return!1;return!0},Ee=(e,t)=>{const n=me();return Me(e,(e,s)=>Ve(n,s,t(e,s))),n},We=(e,t)=>Ee(e,e=>Ee(e,t)),_e=(e,t)=>Ee(e,e=>We(e,t)),He=e=>X(Te(e)),xe=e=>Le(e)&&0==He(e),Je=(e,t,n=(e,t)=>e===t)=>He(e)===He(t)&&De(e,(e,s)=>!!Se(t,s)&&(Le(e)?!!Le(t[s])&&Je(t[s],e,n):n(e,t[s]))),Pe=(e,t,n)=>(Se(e,t)||Ve(e,t,n()),e[t]),Fe=(e,t,n)=>z(e)||!Le(e)||xe(e)||Re(e)?(n?.(),!1):(Me(e,(n,s)=>{t(n,s)||ke(e,s)}),!xe(e)),Oe=JSON.stringify,Qe=JSON.parse,ze=e=>Oe(e,(e,t)=>t instanceof Map?me([...t]):t),Ae=t=>{if(N(t))return"null";if(G(t))return a;if(Le(t))return o;const n=e(t);return U(n)||n==r&&Q(t)?n:void 0},Ne=e=>e==o||e==a,je=e=>Le(e)||G(e)?"�"+Oe(e):e,qe=e=>Z(e)&&"�"==e[0],Be=(e,t=0)=>""===e||!t&&qe(e),Ue=(e,t,n)=>!n&&qe(e)?Qe(K(e,1)):e,Ze=e=>t=>{let n=0;for(const s of t.values())n+=e(s);return n},$e=e=>e?.size??0,Ge=Ze($e),Ke=Ze(Ge),Xe=Ze(Ke),Ye=(e,t)=>e?.has(t)??!1,et=e=>A(e)||0==$e(e),tt=e=>[...e?.values()??[]],nt=(e,t)=>{for(const[n,s]of e?.entries()??[])if(!t(s,n))return!1;return!0},st=e=>e.clear(),rt=(e,t)=>e?.forEach(t),lt=(e,t)=>e?.delete(t),ot=(e,n)=>{throw((e,n)=>Error("tinybase:"+e+(A(n)?t:":"+n)))(e,n)},at=(e,t)=>{try{return e()}catch{return t}},it=(e,t)=>{try{return e()}catch(e){t?.(e)}},dt=(e,t)=>{try{return e()}finally{t()}},ct=Map,ut=e=>new ct(e),gt=e=>[...e?.keys()??[]],ht=(e,t)=>e?.get(t),ft=(e,t)=>rt(e,(e,n)=>t(n,e)),bt=(e,t,n)=>A(n)?(lt(e,t),e):e?.set(t,n),wt=(e,t,n,s)=>{let r=ht(e,t);return Ye(e,t)?s?.(r):bt(e,t,r=n()),r},Ct=(e,t,n,s=bt)=>(Me(t,(t,s)=>n(e,s,t)),ft(e,n=>Se(t,n)?0:s(e,n)),e),vt=(e,t,n,s)=>{const r=me();return rt(e,(e,l)=>{if(!n?.(e,l)){const n=t?t(e,l):e;s?.(n)||Ve(r,l,n)}}),r},Rt=(e,t,n)=>vt(e,e=>vt(e,t,n),et,xe),It=(e,t,n)=>vt(e,e=>Rt(e,t,n),et,xe),Lt=(e,t)=>{const n=ut();return rt(e,(e,s)=>n.set(s,t?.(e)??e)),n},Tt=e=>Lt(e,Lt),pt=e=>Lt(e,Tt),St=(e,t,n,s,r=0)=>B((n?wt:ht)(e,t[r],r>X(t)-2?n:ut),l=>{if(r>X(t)-2)return s?.(l)&&bt(e,t[r]),l;const o=St(l,t,n,s,r+1);return et(l)&&bt(e,t[r]),o}),yt=e=>new Set(G(e)||A(e)?e:[e]),Vt=(e,t)=>e?.add(t),mt=(e,t,n,s,r)=>{const l=e.hasRow,o=ut(),a=ut(),i=ut(),d=ut(),c=ut(),u=ut(),g=t=>B(ht(u,t),n=>{rt(n,t=>{e.delListener(t),lt(n,t)}),bt(u,t)}),h=(e,n)=>{bt(o,e,n),Ye(a,e)||(bt(a,e,t()),bt(d,e,ut()),bt(c,e,ut()),it(()=>r(i),t=>{throw bt(o,e),bt(a,e),bt(d,e),bt(c,e),t}))},f=e=>{bt(o,e),bt(a,e),bt(d,e),bt(c,e),g(e),r(i)};return[()=>e,()=>gt(o),e=>ft(a,e),e=>Ye(a,e),e=>ht(o,e),e=>ht(a,e),(e,t)=>bt(a,e,t),h,(t,s,r,o,a)=>{h(t,s);const i=ut(),f=ut(),b=ht(d,t),w=ht(c,t),C=t=>{const r=n=>e.getCell(s,t,n),d=ht(b,t),c=l(s,t)?n(o(r,t)):void 0;if(d===c||G(d)&&G(c)&&oe(d,c)||bt(i,t,[d,c]),!A(a)){const e=ht(w,t),n=l(s,t)?a(r,t):void 0;(u=e)===(g=n)||(Le(u)||G(u))&&Oe(u)===Oe(g)||bt(f,t,n)}var u,g},v=e=>{r(()=>{rt(i,([,e],t)=>bt(b,t,e)),rt(f,(e,t)=>bt(w,t,e))},i,f,b,w,e),st(i),st(f)};ft(b,C),e.hasTable(s)&&de(e.getRowIds(s),e=>{Ye(b,e)||C(e)}),v(!0),g(t),((e,...t)=>{const n=wt(u,e,yt);de(t,e=>Vt(n,e))})(t,e.addRowListener(s,null,(e,t,n)=>C(n)),e.addTableListener(s,()=>v()))},f,e=>s(e,i),()=>ft(u,f)]},kt=(e,n)=>Z(e)?t=>t(e):e??(()=>n??t),Mt=(e,t)=>{const n=new WeakMap;return s=>{if(!n.has(s)){const t=e(s,()=>n.get(s)===t&&(n.delete(s),!0));n.set(s,t)}const r=n.get(s);return t?.(r),r}},Dt=/^\d+$/,Et=()=>{const e=[];let n=0;return[s=>(s?we(e):null)??t+n++,t=>{ee(Dt,t)&&X(e)<1e3&&fe(e,t)}]},Wt=e=>{let n;const[s,r]=Et(),l=ut(),o=(e,s,r,o)=>{let a,i=!1;if(de(((e,n=[t])=>{const s=[],r=(e,t)=>t==X(n)?fe(s,e):N(n[t])?rt(e,e=>r(e,t+1)):de([n[t],null],n=>r(ht(e,n),t+1));return r(e,0),s})(s,r),t=>rt(t,t=>{const s=()=>ht(l,t)[0](n,...r??[],...o);e?it(s,e=>{i||(a=e),i=!0}):s()})),i)throw a};return[(r,o,a,i=[],d=()=>[])=>{n??=e();const c=s(1);return bt(l,c,[r,o,a,i,d]),Vt(St(o,a??[t],yt),c),c},(e,t,...n)=>o(!1,e,t,n),e=>B(ht(l,e),([,n,s])=>(St(n,s??[t],void 0,t=>(lt(t,e),et(t)?1:0)),bt(l,e),r(e),s)),e=>B(ht(l,e),([e,,t=[],s,r])=>{const l=(...o)=>{const a=X(o);a==X(t)?e(n,...o,...r(o)):N(t[a])?de(s[a]?.(...o)??[],e=>l(...o,e)):l(...o,t[a])};l()}),(e,t,...n)=>o(!0,e,t,n)]},_t=(e,t)=>e===t||!A(e)&&!A(t)&&je(e)===je(t),Ht=Mt(e=>{let n,s,r,l=100,o=ut(),a=ut(),i=1,d=0;const c=ut(),u=ut(),[g,h,f]=Wt(()=>H),b=ut(),w=ut(),C=[],v=[],R=(t,n)=>{i=0,dt(()=>e.transaction(()=>{const[s,r]=ht(b,n);rt(s,(n,s)=>rt(n,(n,r)=>rt(n,(n,l)=>e._[5](s,r,l,n[t],!0)))),rt(r,(n,s)=>e._[6](s,n[t],!0))}),()=>i=1)},I=e=>{bt(b,e),bt(w,e),h(u,[e])},L=(e,t)=>de(he(e,t??X(e)),I),T=()=>L(C,X(C)-l),p=()=>B(n,()=>{fe(C,n),T(),L(v),n=void 0,r=1}),S=()=>{n=be(C),r=1};let y,V;const m=(e=t)=>(A(n)&&(n=t+s++,bt(b,n,[o,a]),W(n,e),o=ut(),a=ut(),r=1),n),k=()=>{Y(C)||(((e,...t)=>{e.unshift(...t)})(v,m()),R(0,n),n=be(C),r=1)},M=()=>{Y(v)||(fe(C,n),n=we(v),R(1,n),r=1)},D=()=>{r&&(h(c),r=0)},E=e=>{const t=m(e);return D(),t},W=(e,t)=>(_(e)&&ht(w,e)!==t&&(bt(w,e,t),h(u,[e])),H),_=e=>Ye(b,e),H={setSize:e=>(l=e,T(),H),addCheckpoint:E,setCheckpoint:W,getStore:()=>e,getCheckpointIds:()=>[[...C],n,[...v]],forEachCheckpoint:e=>ft(w,e),hasCheckpoint:_,getCheckpoint:e=>ht(w,e),goBackward:()=>(k(),D(),H),goForward:()=>(M(),D(),H),goTo:e=>{const t=re(C,e)?k:re(v,e)?M:void 0;for(;!A(t)&&e!=n;)t();return D(),H},addCheckpointIdsListener:e=>g(e,c),addCheckpointListener:(e,t)=>g(t,u,[e]),delListener:e=>(f(e),H),clear:()=>(L(C),L(v),A(n)||I(n),n=void 0,s=0,E(),H),clearForward:()=>(Y(v)||(L(v),h(c)),H),destroy:()=>{d&&(d=0,e.delListener(y),e.delListener(V))},getListenerStats:()=>({checkpointIds:Ge(c),checkpoint:Ge(u)}),_registerListeners:()=>{d||(d=1,y=e.addCellListener(null,null,null,(e,t,n,s,r,l)=>{if(i){p();const e=wt(o,t,ut),a=wt(e,n,ut),i=wt(a,s,()=>[l,void 0]);i[1]=r,_t(i[0],r)&&et(bt(a,s))&&et(bt(e,n))&&et(bt(o,t))&&S(),D()}}),V=e.addValueListener(null,(e,t,n,s)=>{if(i){p();const e=wt(a,t,()=>[s,void 0]);e[1]=n,_t(e[0],n)&&et(bt(a,t))&&S(),D()}}))}};return pe(H.clear())},e=>e._registerListeners()),xt=((e,n=t)=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(n,void 0))(),Jt=ut(ce(xt,(e,t)=>[e,t])),Pt=e=>xt[63&e],Ft=(e,t)=>ht(Jt,e[t])??0,Ot=H.crypto?e=>H.crypto.getRandomValues(e):e=>ce(e,()=>P(256*F())),Qt=(e=16)=>ge(Ot(new Uint8Array(e)),(e,t)=>e+Pt(t),t),zt=new H.TextEncoder,At=e=>{let t=2166136261;return de(zt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Nt=(e,t)=>(e^t)>>>0,jt=e=>ge(Ie(e),(e,[t,n])=>Nt(e,qt(t,n)^qt(t,0)),0),qt=(e,t)=>At(e+":"+t),Bt=(e,t)=>At(ze(e??null)+":"+t),Ut=Bt,Zt=qt,$t=jt,Gt=qt,Kt=e=>ge(Ie(e),(e,[t,n])=>Nt(e,qt(t,n)),0),Xt=qt,Yt=Kt,en=3e5,tn=2**36,nn=2**30,sn=2**24,rn=2**18,ln=4096,on=/^[-0-9A-Z_a-z]{16}$/,an=e=>{const t=At(e);return Pt(t/sn)+Pt(t/rn)+Pt(t/ln)+Pt(t/64)+Pt(t)},dn=e=>Ft(e,0)*tn+Ft(e,1)*nn+Ft(e,2)*sn+Ft(e,3)*rn+Ft(e,4)*ln+64*Ft(e,5)+Ft(e,6),cn=(e,n)=>e==t||Z(e)&&ee(on,e)&&dn(e)<=n,un=(e,n=Date.now)=>{let s=0,r=-1;const l=B(e,an,()=>Qt(5)),o=e=>{const l=n();if(!A(e)&&!cn(e,l+en))return;const o=s,[a,d]=A(e)||e==t?[0,0]:i(e);s=x(o,a,l),r=s==o?s==a?x(r,d):r:s==a?d:-1},a=(e,t,n)=>Pt(e/tn)+Pt(e/nn)+Pt(e/sn)+Pt(e/rn)+Pt(e/ln)+Pt(e/64)+Pt(e)+Pt(t/rn)+Pt(t/ln)+Pt(t/64)+Pt(t)+(A(n)?l:an(n)),i=e=>[dn(e),Ft(e,7)*rn+Ft(e,8)*ln+64*Ft(e,9)+Ft(e,10),K(e,11)];return[()=>(o(),++r==sn&&(s++,r=0),a(s,r)),o,a,i,()=>s,()=>r,()=>l]},gn=(e,t)=>(e??0)<(t??0)?-1:1,hn=Mt(e=>{const n=ut(),s=ut(),r=ut(),l=ut(),[o,a,i]=Wt(()=>L),[d,c,u,g,h,f,b,,w,C,v,R]=mt(e,ut,e=>A(e)?t:G(e)?ce(e,M):M(e),o,a),I=(t,n,s)=>{const r=h(t);rt(s,(t,s)=>n(s,n=>rt(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},L={setIndexDefinition:(e,t,o,i,d,c=gn)=>{const u=g(e),h=kt(o),C=A(d)?void 0:([e],[t])=>d(e,t);return w(e,t,(t,n,o,d,u,g)=>{let h=0;const w=yt(),v=ut(),R=yt(),I=f(e),L=e=>{Ye(v,e)||bt(v,e,Ye(I,e))};if(rt(n,([e,t],n)=>{const s=yt(e),r=yt(t);rt(s,e=>lt(r,e)?lt(s,e):0),rt(s,e=>{L(e),Vt(w,e),B(ht(I,e),t=>{lt(t,n),et(t)&&(bt(I,e),h=1)})}),rt(r,e=>{L(e),Vt(w,e),Ye(I,e)||(bt(I,e,yt()),h=1),Vt(ht(I,e),n),A(i)||Vt(R,e)})}),t(),et(u)||(g?ft(I,e=>Vt(R,e)):ft(o,e=>B(ht(d,e),e=>de(G(e)?e:[e],e=>Vt(R,e)))),rt(R,e=>{const t=(t,n)=>c(ht(u,t),ht(u,n),e),n=[...ht(I,e)];ae(n,t)||(bt(I,e,yt(ie(n,t))),Vt(w,e))})),(h||g)&&!A(C)){const t=[...I];ae(t,C)||(b(e,ut(ie(t,C))),h=1)}h&&a(s,[e]),ft(v,(t,n)=>{const s=Ye(I,t);n!=s&&a(r,[e,t],s)}),rt(w,t=>a(l,[e,t]))},(e,t)=>{const n=h(e,t);return Z(o)&&!A(n)?je(n):n},B(i,kt)),u||a(n,[e],!0),L},delIndexDefinition:e=>{const t=f(e),o=g(e),i=o?gt(t):[];return C(e),o&&(a(n,[e],!1),Y(i)||(a(s,[e]),de(i,t=>{a(r,[e,t],!1),a(l,[e,t])}))),L},getStore:d,getIndexIds:c,forEachIndex:e=>u((t,n)=>e(t,e=>I(t,e,n))),forEachSlice:(e,t)=>I(e,t,f(e)),hasIndex:g,hasSlice:(e,t)=>Ye(f(e),t),getTableId:h,getSliceIds:e=>gt(f(e)),getSliceRowIds:(e,t)=>tt(ht(f(e),t)),addIndexIdsListener:v,addHasIndexListener:(e,t)=>o(t,n,[e]),addSliceIdsListener:(e,t)=>o(t,s,[e]),addHasSliceListener:(e,t,n)=>o(n,r,[e,t]),addSliceRowIdsListener:(e,t,n)=>o(n,l,[e,t]),delListener:e=>(i(e),L),destroy:R,getListenerStats:()=>({sliceIds:Ge(s),sliceRowIds:Ke(l)})};return pe(L)}),fn=([e,t])=>bn(e,t),bn=(e,t)=>t?[e,t]:[e],wn=(e,t,n)=>[e,t,n],Cn=e=>e[2],vn=(e,t)=>t>e?(e?At(e):0)^At(t):0,Rn=(e,n)=>((e??t)>(n??t)?e:n)??t,In=(e,t,n)=>{t>e[1]&&(e[1]=t),e[2]=n>>>0},Ln=(e=t)=>bn(me(),e),Tn=(e=t)=>[ut(),e,0],pn=([e,t,n],s)=>[vt(e,s),t,n],Sn=([e,t],n=fn)=>bn(vt(e,n),t),yn=e=>[e,e],Vn=(e,t=Ge)=>t(e[0])+t(e[1]),mn=()=>[ut(),ut()],kn=e=>[...e],Mn=([e,t])=>e===t,Dn=e=>G(e)?ce(e,Dn):Le(e)?Ee(e,Dn):e,En=e=>Ee(e,(e,t)=>t==d?Ue(e):e),Wn=(e,t,n)=>bt(e,t,ht(e,t)==-n?void 0:n),_n=([e,t],[n,s])=>Je(e,n)&&Je(t,s),Hn=()=>{let e,t,n,s,l=!1,o=!1,a=0,g=0,b=[],T=[],D=0,E=0;const W=ut(),_=ut(),H=ut(),x=ut(),J=ut(),P=ut(),F=ut(),O=ut(),Q=ut(),z=yt(),j=ut(),q=ut(),Z=ut(),X=ut(),Y=ut(),ee=ut(),te=yt(),le=yt(),ae=ut(),ue=ut(),ge=ut(),he=ut(),be=mn(),we=mn(),Ce=mn(),ve=mn(),Re=mn(),Ie=mn(),Te=mn(),ye=mn(),me=mn(),De=mn(),We=mn(),_e=mn(),He=mn(),Pe=mn(),Oe=mn(),Ze=mn(),tt=mn(),ot=mn(),ct=mn(),St=mn(),mt=mn(),kt=mn(),Mt=ut(),Dt=mn(),[_t,Ht,xt,Jt,Pt]=Wt(()=>Js),Ft=e=>{const t=E;return E=1,dt(e,()=>E=t)},Ot=e=>{const t=D;return D=1,dt(e,()=>D=t)},Qt=(e,t,n,s=Object.is)=>B(t(),t=>e===t||s(e,t)?n(t):Ft(()=>n(t))),zt=e=>{if(!Fe(e,(e,t)=>re([i,d,c,k],t)))return!1;const t=e[i];if(!U(t)&&t!=r&&!Ne(t))return!1;const n=e[d];return!(N(n)&&!e[c]||(N(n)||(Ae(n)!=t||Be(n)?ke(e,d):B(at(()=>je(n)),t=>e[d]=t,()=>ke(e,d))),0))},At=(e,t)=>B(at(()=>je(e)),e=>e,t),Nt=e=>Le(e)?Ee(e,ne):e,jt=e=>Le(e)?Ee(e,Nt):e,qt=e=>Le(e)?Ee(e,ne):e,Bt=(e,t)=>1==D&&qe(e)&&1==at(()=>{const n=Ae(Ue(e));return Ne(n)&&(A(t)||t==n)},!1),Ut=G,Zt=(t,n)=>(!e||Ye(Z,n)||On(n))&&Fe(t,(e,t)=>$t(n,t,e),()=>On(n)),$t=(e,t,n,s)=>{const r=s?n:Yt(n,e,t);return Fe(r,(s,r)=>B(Gt(e,t,r,s),e=>(Ve(n,r,e),!0),()=>!1),()=>On(e,t))&&(!!s||nt(ht(X,e)?.[2],e=>Se(r,e)))},Gt=(t,n,s,r)=>e?B(ht(ht(Z,t),s),e=>N(r)?e[c]?r:On(t,n,s,r,e[d]):Be(r,D)?On(t,n,s,r,e[d]):qe(r)?Bt(r,e[i])?r:On(t,n,s,r,e[d]):Ae(r)===e[i]?At(r,()=>On(t,n,s,r,e[d])):On(t,n,s,r,e[d]),()=>On(t,n,s,r)):A(Ae(r))||Be(r,D)||qe(r)&&!Bt(r)?On(t,n,s,r):At(r,()=>On(t,n,s,r)),Kt=(e,t)=>{const n=t?e:en(e);return Fe(n,(t,n)=>B(Xt(n,t),t=>(Ve(e,n,t),!0),()=>!1),()=>Qn())&&(!!t||nt(le,e=>Se(n,e)))},Xt=(e,n)=>t?B(ht(Y,e),t=>N(n)?t[c]?n:Qn(e,n,t[d]):Be(n,D)?Qn(e,n,t[d]):qe(n)?Bt(n,t[i])?n:Qn(e,n,t[d]):Ae(n)===t[i]?At(n,()=>Qn(e,n,t[d])):Qn(e,n,t[d]),()=>Qn(e,n)):A(Ae(n))||Be(n,D)||qe(n)&&!Bt(n)?Qn(e,n):At(n,()=>Qn(e,n)),Yt=(e,t,n)=>(B(ht(X,t),([s,r])=>{rt(s,(s,r)=>{Se(e,r)||(Ve(e,r,s),B(n,e=>Vt(wt(wt(F,t,ut),e,yt),r)))}),rt(r,s=>{Se(e,s)||On(t,n,s)})}),e),en=e=>(t&&(rt(ee,(t,n)=>{Se(e,n)||(Ve(e,n,t),Vt(z,n))}),rt(te,t=>{Se(e,t)||Qn(t)})),e),tn=e=>Ct(Z,e,(e,t,n)=>{const s=ut(),r=yt(),l=yt();Ct(wt(Z,t,ut),n,(e,t,n)=>{bt(e,t,n),B(n[d],e=>{bt(s,t,e)},()=>{Vt(r,t),!0===n[k]&&Vt(l,t)})}),bt(X,t,[s,r,l])},(e,t)=>{bt(Z,t),bt(X,t)}),nn=e=>Ct(Y,e,(e,t,n)=>{bt(Y,t,n),B(n[d],e=>{bt(ee,t,e),lt(te,t),lt(le,t)},()=>{bt(ee,t),Vt(te,t),!0===n[k]?Vt(le,t):lt(le,t)})},(e,t)=>{bt(Y,t),bt(ee,t),lt(te,t),lt(le,t)}),sn=()=>{n??=[!!e,Rt(Z)]},rn=()=>{s??=[!!t,vt(Y)]},ln=e=>xe(e)?Ss():ws(e),on=(e,t,n,s,r,l)=>A(s)?ms(e,t,n,!0,r):Cs(e,t,n,s,r,l),an=e=>xe(e)?ks():vs(e),dn=(e,t,n)=>A(t)?Ms(e,n):Rs(e,t,n),cn=(e,t)=>Qt(e,()=>t?e:B(b[1],t=>Ft(()=>t(se(e))),()=>e),e=>Ct(ge,e,(e,t,n)=>un(t,n),(e,t)=>Rn(t)),Je),un=(e,t,n)=>Qt(t,()=>n?t:B(b[2],n=>Ft(()=>n(e,se(t))),()=>t),t=>Ct(wt(ge,e,()=>(pn(e,1),bt(ae,e,Et()),bt(ue,e,ut()),ut())),t,(t,n,s)=>hn(e,t,n,s),(t,n)=>In(e,t,n)),Je),hn=(e,t,n,s,r)=>Qt(s,()=>r?s:B(b[3],t=>Ft(()=>t(e,n,se(s))),()=>s),s=>Ct(wt(t,n,()=>(Sn(e,n,1),ut())),s,(t,s,r)=>fn(e,n,t,s,r),(s,l)=>Ln(e,t,n,s,l,r)),Je),fn=(e,t,n,s,r,l)=>Qt(r,()=>B(l?void 0:b[4],n=>Ft(()=>n(e,t,s,r)),()=>r),r=>B(E?Gt(e,t,s,Ue(r)):r,r=>{Ye(n,s)||xn(e,t,s,1);const l=ht(n,s);r!==l&&(Jn(e,t,s,l,r),bt(n,s,r))})),bn=(e,t,n,s,r,l)=>B(ht(t,n),t=>fn(e,n,t,s,r,l),()=>{const o=ut();bt(t,n,o),Sn(e,n,1),Me(Yt({[s]:r},e,n),(t,s)=>fn(e,n,o,s,t,l))}),wn=(e,t)=>Qt(e,()=>t?e:B(b[5],t=>Ft(()=>t(se(e))),()=>e),e=>Ct(he,e,(e,t,n)=>Cn(t,n),(e,t)=>Tn(t)),Je),Cn=(e,t,n)=>Qt(t,()=>B(n?void 0:b[6],n=>Ft(()=>n(e,t)),()=>t),t=>B(E?Xt(e,Ue(t)):t,t=>{Ye(he,e)||Pn(e,1);const n=ht(he,e);t!==n&&(Fn(e,n,t),bt(he,e,t))})),vn=e=>wt(ge,e,()=>(pn(e,1),bt(ae,e,Et()),bt(ue,e,ut()),ut())),Rn=e=>Ft(()=>b[8]?.(e))??1?un(e,{},!0):ht(ge,e),In=(e,t,n)=>{if(Ft(()=>b[9]?.(e,n))??1){const[,s]=ht(ae,e);s(n),hn(e,t,n,{},!0)}},Ln=(e,t,n,s,r,l,o)=>{const a=ht(ht(X,e)?.[0],r);if(!A(a)&&!l)return fn(e,n,s,r,a);if(o||(Ft(()=>b[10]?.(e,n,r))??1)){const l=t=>{Jn(e,n,t,ht(s,t)),xn(e,n,t,-1),bt(s,t)};A(a)?l(r):ft(s,l),et(s)&&(Sn(e,n,-1),et(bt(t,n))&&(pn(e,-1),bt(ge,e),bt(ae,e),bt(ue,e)))}},Tn=(e,t)=>{const n=ht(ee,e);if(!A(n))return Cn(e,n);(t||(Ft(()=>b[12]?.(e))??1))&&(Fn(e,ht(he,e)),Pn(e,-1),bt(he,e))},pn=(e,t)=>Wn(W,e,t),Sn=(e,t,n)=>Wn(wt(x,e,ut),t,n)&&bt(H,e,wt(H,e,()=>0)+n),xn=(e,t,n,s)=>{const r=ht(ue,e),l=ht(r,n)??0;(0==l&&1==s||1==l&&-1==s)&&Wn(wt(_,e,ut),n,s),bt(r,n,l!=-s?l+s:void 0),Wn(wt(wt(J,e,ut),t,ut),n,s)},Jn=(e,t,n,s,r)=>{const l=Ye(ht(ht(F,e),t),n)&&A(s)?1:0;wt(wt(wt(P,e,ut),t,ut),n,()=>[s,0])[1]=r,T[3]?.(e,t,n,r,E,l),lt(ht(ht(F,e),t),n)},Pn=(e,t)=>Wn(O,e,t),Fn=(e,t,n)=>{const s=Ye(z,e)&&A(t)?1:0;wt(Q,e,()=>[t,0])[1]=n,T[4]?.(e,n,E,s),lt(z,e)},On=(e,t,n,s,r)=>(fe(wt(wt(wt(j,e,ut),t,ut),n,()=>[]),s),r),Qn=(e,t,n)=>(fe(wt(q,e,()=>[]),t),n),zn=(e,t,n)=>B(ht(ht(ht(P,e),t),n),([e,t])=>[!0,Ue(e),Ue(t)],()=>[!1,...yn(rs(e,t,n))]),An=e=>B(ht(Q,e),([e,t])=>[!0,Ue(e),Ue(t)],()=>[!1,...yn(as(e))]),Nn=e=>et(j)||et(Ze[e])?0:rt(e?pt(j):j,(t,n)=>rt(t,(t,s)=>rt(t,(t,r)=>Ht(Ze[e],[n,s,r],t)))),jn=e=>et(q)||et(tt[e])?0:rt(e?Lt(q):q,(t,n)=>Ht(tt[e],[n],t)),qn=(e,t,n,s)=>{if(!et(e))return Ht(t,s,()=>vt(e)),ft(e,(e,t)=>Ht(n,[...s??[],e],1==t)),1},Bn=e=>{const t=!et(be[e]),n=!et(De[e]),s=!(et(He[e])&&et(Pe[e])&&et(me[e])&&et(We[e])&&et(Ie[e])&&et(Te[e])&&et(ye[e])&&!n&&et(Ce[e])&&et(ve[e])),r=!(et(Oe[e])&&et(_e[e])&&et(Re[e])&&et(we[e]));if(t||s||r){const a=e?[Lt(W),Tt(_),Lt(H),Tt(x),pt(J),(o=P,Lt(o,e=>Lt(e,e=>Lt(e,kn))))]:[W,_,H,x,J,P];if(t){const t=is();t!=l&&Ht(be[e],void 0,t)}if(s){qn(a[0],Ce[e],ve[e]),rt(a[1],(t,n)=>qn(t,Ie[e],Te[e],[n])),rt(a[2],(t,n)=>{0!=t&&Ht(ye[e],[n],es(n))});const t=yt();rt(a[3],(s,r)=>{qn(s,me[e],We[e],[r])&&n&&(Ht(De[e],[r,null]),Vt(t,r))}),n&&rt(a[5],(n,s)=>{if(!Ye(t,s)){const t=yt();rt(n,e=>rt(e,([n,s],r)=>s!==n?Vt(t,r):lt(e,r))),rt(t,t=>Ht(De[e],[s,t]))}}),rt(a[4],(t,n)=>rt(t,(t,s)=>qn(t,He[e],Pe[e],[n,s])))}if(r){let t;rt(a[5],(n,s)=>{let r;rt(n,(n,l)=>{let o;rt(n,([n,a],i)=>{a!==n&&(Ht(Oe[e],[s,l,i],Ue(a),Ue(n),zn),t=r=o=1)}),o&&Ht(_e[e],[s,l],zn)}),r&&Ht(Re[e],[s],zn)}),t&&Ht(we[e],void 0,zn)}}var o},Un=e=>{const t=!et(ot[e]),n=!et(St[e])||!et(mt[e]),s=!et(kt[e])||!et(ct[e]);if(t||n||s){const r=e?[Lt(O),Lt(Q,kn)]:[O,Q];if(t){const t=hs();t!=o&&Ht(ot[e],void 0,t)}if(n&&qn(r[0],St[e],mt[e]),s){let t;rt(r[1],([n,s],r)=>{s!==n&&(Ht(kt[e],[r],Ue(s),Ue(n),An),t=1)}),t&&Ht(ct[e],void 0,An)}}},Zn=(e,...t)=>(Ws(()=>e(...ce(t,M))),Js),$n=(e,t,n,s,r)=>{const[l,o,a,i]=n;let d=ns(e,t,l,o,a,i);return _t(()=>{const n=ns(e,t,l,o,a,i);oe(n,d)||(d=n,s(Js,e,t,l,o,a,d))},De[r?1:0],[e,t],[Xn])},Gn=(e=!1)=>[vt(P,(t,n)=>-1===ht(W,n)?void 0:vt(t,(t,s)=>-1===ht(ht(x,n),s)?void 0:vt(t,([,t])=>Ue(t,0,e),e=>Mn(e)),et,xe),et,xe),vt(Q,([,t])=>Ue(t,0,e),e=>Mn(e)),1],Kn=()=>It(ge,Ue),Xn=()=>gt(ge),Yn=e=>gt(ht(ue,M(e))),es=e=>$e(ht(ge,M(e))),ts=e=>gt(ht(ge,M(e))),ns=(e,t,n,s=0,r,l=gn)=>Le(e)?ns(e.tableId,e.cellId,e.descending,e.offset,e.limit,e.sorter):ce(K(ie((e=>{const n=[];return ft(e,(e,s)=>{return fe(n,(r=s,l=e,[A(t)?l:Ue(ht(r,M(t))),l]));var r,l}),n})(ht(ge,M(e))),([e],[t])=>l(e,t)*(n?-1:1)),s,A(r)?r:s+r),([,e])=>e),ss=(e,t)=>gt(ht(ht(ge,M(e)),M(t))),rs=(e,t,n)=>Ue(ht(ht(ht(ge,M(e)),M(t)),M(n))),ls=()=>vt(he,Ue),os=()=>gt(he),as=e=>Ue(ht(he,M(e))),is=()=>!et(ge),ds=e=>Ye(ge,M(e)),cs=(e,t)=>Ye(ht(ue,M(e)),M(t)),us=(e,t)=>Ye(ht(ge,M(e)),M(t)),gs=(e,t,n)=>Ye(ht(ht(ge,M(e)),M(t)),M(n)),hs=()=>!et(he),fs=e=>Ye(he,M(e)),bs=e=>Zn(()=>{const t=$(e)?e():e;Ut(t)&&(e=>{Qt(e,()=>B(b[0],t=>Ft(()=>t(se(e),D)),()=>e),([e,t])=>{(xe(e)?Ss:ws)(e),(xe(t)?ks:vs)(t)},_n)})(t)}),ws=e=>Zn(()=>{const t=(e=>Le(e)?Ee(e,jt):e)(e);return(e=>Fe(e,Zt,On))(t)?cn(t):0}),Cs=(e,t,n,s,r,l)=>Zn((e,t,n)=>B(Gt(e,t,n,$(s)?s(rs(e,t,n)):s),s=>{const o=vn(e);B(r||l||!b[14]?.()?void 0:b[3],l=>{const a=ht(o,t),i={...a?vt(a):{},[n]:s};B(Ft(()=>l(e,t,se(i))),n=>((e,t,n,s,r)=>{Ct(wt(t,n,()=>(Sn(e,n,1),ut())),s,(t,s,l)=>B(Gt(e,n,s,Ue(l)),l=>fn(e,n,t,s,l,r)),(s,r)=>Ln(e,t,n,s,r,!0))})(e,o,t,n,r))},()=>bn(e,o,t,n,s,r))}),e,t,n),vs=e=>Zn(()=>{const t=qt(e);return Kt(t)?wn(t):0}),Rs=(e,t,n)=>Zn(e=>B(Xt(e,$(t)?t(as(e)):t),t=>Cn(e,t,n)),e),Is=e=>Zn(()=>Qt(e,()=>B(b[13],t=>Ft(()=>t(se(e),D)),()=>e),e=>{Me(e[0],(e,t)=>A(e)?ys(t):Me(e,(e,n)=>A(e)?Vs(t,n):Me(e,(e,s)=>on(t,n,s,e,void 0,!0)))),Me(e[1],(e,t)=>dn(t,e))},_n)),Ls=e=>(it(()=>Ot(()=>ln(Qe(e)))),Js),Ts=t=>Zn(()=>{const n=Dn(t);if(Fe(n,e=>Fe(e,zt))&&(sn(),e=!0,tn(n),!et(ge))){const e=Kn();Ss(),ws(e)}}),ps=e=>Zn(()=>{const n=Dn(e);if((e=>Fe(e,zt))(n)){rn();const e=ls();Es(),ks(),t=!0,nn(n),vs(e)}}),Ss=()=>Zn(()=>Ft(()=>b[7]?.())??1?cn({},!0):0),ys=e=>Zn(e=>Ye(ge,e)?Rn(e):0,e),Vs=(e,t)=>Zn((e,t)=>B(ht(ge,e),n=>Ye(n,t)?In(e,n,t):0),e,t),ms=(e,t,n,s,r)=>Zn((e,t,n)=>B(ht(ge,e),l=>B(ht(l,t),o=>Ye(o,n)?Ln(e,l,t,o,n,s,r):0)),e,t,n),ks=()=>Zn(()=>Ft(()=>b[11]?.())??1?wn({},!0):0),Ms=(e,t)=>Zn(e=>Ye(he,e)?Tn(e,t):0,e),Ds=()=>Zn(()=>{sn(),tn({}),e=!1}),Es=()=>Zn(()=>{rn(),nn({}),t=!1}),Ws=(e,t)=>{if(-1!=g){_s();try{const n=e();return xs(t),n}catch(e){throw g>0&&(a=1,it(xs)),e}}},_s=()=>{if(-1!=g&&g++,1==g)try{T[0]?.(),Ht(Mt)}catch(e){throw a=1,it(xs),e}return Js},Hs=()=>{g=0,a=0,n=s=void 0,l=is(),o=hs(),de([W,_,H,x,J,P,F,j,O,Q,z,q],st)},xs=r=>{if(g>0&&(g--,0==g)){g=1;let l=!1,o=!1;const i=()=>{o=!0,B(n,([t,n])=>{tn(n),e=t}),B(s,([e,n])=>{nn(n),t=e}),rt(P,(e,t)=>rt(e,(e,n)=>rt(e,([e],s)=>on(t,n,s,e,!0)))),st(P),rt(Q,([e],t)=>dn(t,e,!0)),st(Q)};let d=!1,c=!1;dt(()=>{let e,t=!1;const n=n=>{t||(e=n),t=!0};if(it(()=>{try{a?i():(Ft(()=>{Nn(1),et(P)||Bn(1),jn(1),et(Q)||Un(1)}),r?.(Js)&&i(),T[1]?.(o),d=!0,Pt(Dt[0],void 0),g=-1,l=!0,Nn(0),et(P)||Bn(0),jn(0),et(Q)||Un(0))}catch(e){throw l||i(),e}},n),d&&o&&(l||it(()=>T[1]?.(!0),n),it(()=>{T[2]?.(!0),c=!0},n)),d&&it(()=>{g=-1,Pt(Dt[1],void 0)},n),t)throw e},()=>dt(()=>c?0:T[2]?.(o),Hs))}return Js},Js={getContent:()=>[Kn(),ls()],getTables:Kn,getTableIds:Xn,getTable:e=>Rt(ht(ge,M(e)),Ue),getTableCellIds:Yn,getRowCount:es,getRowIds:ts,getSortedRowIds:ns,getRow:(e,t)=>vt(ht(ht(ge,M(e)),M(t)),Ue),getCellIds:ss,getCell:rs,getValues:ls,getValueIds:os,getValue:as,hasTables:is,hasTable:ds,hasTableCell:cs,hasRow:us,hasCell:gs,hasValues:hs,hasValue:fs,getTablesJson:()=>ze(ge),getValuesJson:()=>ze(he),getJson:()=>ze([ge,he]),getTablesSchemaJson:()=>ze(Rt(Z,En)),getValuesSchemaJson:()=>ze(vt(Y,En)),getSchemaJson:()=>ze([Rt(Z,En),vt(Y,En)]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:bs,setTables:ws,setTable:(e,t)=>Zn(e=>{const n=jt(t);return Zt(n,e)?un(e,n):0},e),setRow:(e,t,n)=>Zn((e,t)=>{const s=Nt(n);return $t(e,t,s)?hn(e,vn(e),t,s):0},e,t),addRow:(e,t,n=!0)=>Ws(()=>{let s;const r=Nt(t);return $t(e,s,r)&&(e=M(e),hn(e,vn(e),s=((e,t)=>{const[n]=ht(ae,e);let s;do{s=n(t)}while(Ye(ht(ge,e),s));return s})(e,n?1:0),r)),s}),setPartialRow:(e,t,n)=>Zn((e,t)=>{const s=Nt(n);if($t(e,t,s,1)){const n=vn(e);Me(s,(s,r)=>bn(e,n,t,r,s))}},e,t),setCell:Cs,setValues:vs,setPartialValues:e=>Zn(()=>{const t=qt(e);return Kt(t,1)?Me(t,(e,t)=>Cn(t,e)):0}),setValue:Rs,applyChanges:Is,setTablesJson:Ls,setValuesJson:e=>(it(()=>Ot(()=>an(Qe(e)))),Js),setJson:e=>Zn(()=>it(()=>Ot(()=>{const[t,n]=Qe(e);ln(t),an(n)}),()=>Ls(e))),setTablesSchema:Ts,setValuesSchema:ps,setSchema:(e,t)=>Zn(()=>{Ts(e),ps(t)}),delTables:Ss,delTable:ys,delRow:Vs,delCell:ms,delValues:ks,delValue:Ms,delTablesSchema:Ds,delValuesSchema:Es,delSchema:()=>Zn(()=>{Ds(),Es()}),transaction:Ws,startTransaction:_s,getTransactionChanges:()=>Gn(),getTransactionLog:()=>[!et(P),!et(Q),It(P,kn,Mn),It(j),vt(Q,kn,Mn),vt(q),vt(W),Rt(x),It(J),vt(O)],finishTransaction:xs,forEachTable:e=>rt(ge,(t,n)=>e(n,e=>rt(t,(t,n)=>e(n,e=>ft(t,(t,n)=>e(t,Ue(n))))))),forEachTableCell:(e,t)=>ft(ht(ue,M(e)),t),forEachRow:(e,t)=>rt(ht(ge,M(e)),(e,n)=>t(n,t=>ft(e,(e,n)=>t(e,Ue(n))))),forEachCell:(e,t,n)=>ft(ht(ht(ge,M(e)),M(t)),(e,t)=>n(e,Ue(t))),forEachValue:e=>ft(he,(t,n)=>e(t,Ue(n))),addSortedRowIdsListener:(e,t,n,s,r,l,o)=>Le(e)?$n(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit,e.sorter],t,n):$n(e,t,[n,s,r,void 0],l,o),addStartTransactionListener:e=>_t(e,Mt),addWillFinishTransactionListener:e=>_t(e,Dt[0]),addDidFinishTransactionListener:e=>_t(e,Dt[1]),callListener:e=>(Jt(e),Js),delListener:e=>(xt(e),Js),getListenerStats:()=>({hasTables:Vn(be),tables:Vn(we),tableIds:Vn(Ce),hasTable:Vn(ve),table:Vn(Re),tableCellIds:Vn(Ie),hasTableCell:Vn(Te,Ke),rowCount:Vn(ye),rowIds:Vn(me),sortedRowIds:Vn(De),hasRow:Vn(We,Ke),row:Vn(_e,Ke),cellIds:Vn(He,Ke),hasCell:Vn(Pe,Xe),cell:Vn(Oe,Xe),invalidCell:Vn(Ze,Xe),hasValues:Vn(ot),values:Vn(ct),valueIds:Vn(St),hasValue:Vn(mt),value:Vn(kt),invalidValue:Vn(tt),transaction:Ge(Mt)+Vn(Dt)}),isMergeable:()=>!1,_:[Hn,_t,Ht,(e,t,n,s,r)=>T=[e,t,n,s,r],(e,t,n,s,r,l,o,a,i,d,c,u,g,h,f)=>b=[e,t,n,s,r,l,o,a,i,d,c,u,g,h,f],on,dn,()=>[It(ge),vt(he)],()=>Gn(!0),e=>Ot(()=>bs(e)),e=>Ot(()=>Is(e))]};return Me({[f+C]:[0,be,[],()=>[is()]],[C]:[0,we],[v]:[0,Ce],[f+w]:[1,ve,[Xn],e=>[ds(...e)]],[w]:[1,Re,[Xn]],[w+S]:[1,Ie,[Xn]],[f+w+p]:[2,Te,[Xn,Yn],e=>[cs(...e)]],[I]:[1,ye,[Xn]],[L]:[1,me,[Xn]],[f+R]:[2,We,[Xn,ts],e=>[us(...e)]],[R]:[2,_e,[Xn,ts]],[S]:[2,He,[Xn,ts]],[f+p]:[3,Pe,[Xn,ts,ss],e=>[gs(...e)]],[p]:[3,Oe,[Xn,ts,ss],e=>yn(rs(...e))],InvalidCell:[3,Ze],[f+V]:[0,ot,[],()=>[hs()]],[V]:[0,ct],[m]:[0,St],[f+y]:[1,mt,[os],e=>[fs(...e)]],[y]:[1,kt,[os],e=>yn(as(e[0]))],InvalidValue:[1,tt]},([e,t,n,s],r)=>{Js[h+r+u]=(...r)=>_t(r[e],t[r[e+1]?1:0],e>0?K(r,0,e):void 0,n,s)}),pe(Js)},xn={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Jn=(e=t)=>[Tn(e),Tn(e)],Pn=(e,t)=>Le(e)&&De(e,t),Fn=(t,n,s,l)=>{if(!G(t))return!1;if(s?2!=X(t):2!=X(t)&&(3!=X(t)||1!==t[2]))return!1;const o=(t,l)=>((t,n,s,l)=>G(t)&&(3==X(t)?((t,n)=>{return G(t)&&3==X(t)&&Z(t[1])&&(s=t[2],e(s)==r)&&Q(t[2])&&n(t[0]);var s})(t,n)&&cn(t[1],s):!l&&n(t[0])&&(1==X(t)||2==X(t)&&cn(t[1],s))))(t,l,n,s),a=e=>(e=>A(e)||!A(Ae(e)))(e)&&!Be(e,l);return o(t[0],e=>Pn(e,e=>o(e,e=>Pn(e,e=>o(e,e=>Pn(e,e=>o(e,a)))))))&&o(t[1],e=>Pn(e,e=>o(e,a)))},On=(e,n=Date.now)=>{let s=1,r=Jn(),l=r,o=0,a=0,i=a;const d=[],c=ut(),g=yt(),[f,b]=un(e,n),w=Hn(),C=e=>{const t=s;return s=0,dt(e,()=>s=t),M},v=e=>{const[t,n,s]=e;fe(d,()=>{e[0]=t,e[1]=n,e[2]=s})},R=(e,t,n)=>(Ye(e,t)||fe(d,()=>bt(e,t)),wt(e,t,n)),I=(e,n=0)=>{const s=me(),l=me(),[[o,a=t,i=0],d]=e,[c,u]=r,[g,h,f]=c;let w=n?i:f,C=a;Me(o,([e,r=t,l=0],o)=>{const a=R(g,o,Tn),[i,d,c]=a;let u=n?l:c,h=r;Me(e,(e,t)=>{const[r,l,a]=L(e,R(i,t,Tn),Pe(Pe(s,o,me),t,me),n);u^=n?0:Nt(l?qt(t,l):0,qt(t,a)),h=Rn(h,r)}),u^=n?0:vn(d,r),v(a),In(a,r,u),w^=n?0:Nt(c?qt(o,c):0,qt(o,a[2])),C=Rn(C,h)}),w^=n?0:vn(h,a),v(c),In(c,a,w);const[I]=L(d,u,l,n);return b(Rn(C,I)),[s,l,1]},L=(e,n,s,r)=>{const[l,o=t,a=0]=e,[i,d,c]=n;let u=o,g=r?a:c;return Me(l,([e,n=t,l=0],o)=>{const a=R(i,o,()=>[void 0,t,0]),[,d,c]=a;(!d||n>d)&&(v(a),In(a,n,r?l:Bt(e,n)),a[0]=e,Ve(s,o,e),g^=r?0:Nt(qt(o,c),qt(o,a[2])),u=Rn(u,n))}),g^=r?0:vn(d,o),v(n),In(n,o,g),[u,c,n[2]]},T=()=>{for(;X(d);)be(d)?.();r=l,a=i},p=(e=!1)=>[pn(r[0],t=>pn(t,t=>pn(t,([t,n,s])=>[Ue(t,0,e),n,s]))),pn(r[1],([t,n,s])=>[Ue(t,0,e),n,s])],S=(e,t=!1)=>{const[[n,s,l],[o,a,i]]=r,d=e?wn:bn,u=me();rt(c,(e,s)=>B(ht(n,s),([n,r,l])=>{const o=me();rt(e,(e,s)=>B(ht(n,s),([n,r,l])=>{const a=me();rt(e,e=>{B(ht(n,e),([n,s,r])=>Ve(a,e,d(t?n:Ue(n),s,r)))}),Ve(o,s,d(a,r,l))})),Ve(u,s,d(o,r,l))}));const h=me();return rt(g,e=>B(ht(o,e),([n,s,r])=>Ve(h,e,d(t?n:Ue(n),s,r)))),[d(u,s,l),d(h,a,i),1]},y=()=>p(),V=(e,t)=>Fn(e,n()+en,1,t?1:0)?C(()=>w.transaction(()=>{w.delTables().delValues(),r=Jn();const n=I(e,1);(t?w._[10]:w.applyChanges)(n)})):M,m=(e,t)=>Fn(e,n()+en,0,t?1:0)?C(()=>w.transaction(()=>(t?w._[10]:w.applyChanges)(I(e)))):M,k=e=>m(e),M={getMergeableContent:y,getMergeableContentHashes:()=>[r[0][2],r[1][2]],getMergeableTableHashes:()=>vt(r[0][0],Cn),getMergeableTableDiff:e=>{const t=Ln(r[0][1]),n=me();return ft(r[0][0],(s,[r,l,o])=>Se(e,s)?o!=ye(e,s)?Ve(n,s,o):0:Ve(t[0],s,Sn([r,l],e=>Sn(e)))),[t,n]},getMergeableRowHashes:e=>{const t=me();return Me(e,(e,n)=>B(ht(r[0][0],n),([s,,r])=>r!=e?ft(s,(e,[,,s])=>Ve(Pe(t,n,me),e,s)):0)),t},getMergeableRowDiff:e=>{const t=Ln(r[0][1]),n=me();return Me(e,(e,s)=>ft(ht(r[0][0],s)?.[0],(r,[l,o,a])=>Se(e,r)?a!==ye(e,r)?Ve(Pe(n,s,me),r,a):0:Ve(Pe(t[0],s,Ln)[0],r,Sn([l,o])))),[t,n]},getMergeableCellHashes:e=>{const t=me();return Me(e,(e,n)=>B(ht(r[0][0],n),([s])=>Me(e,(e,r)=>B(ht(s,r),([s,,l])=>l!==e?ft(s,(e,[,,s])=>Ve(Pe(Pe(t,n,me),r,me),e,s)):0)))),t},getMergeableCellDiff:e=>{const[[t,n]]=r,s=me();return Me(e,(e,n)=>Me(e,(e,r)=>B(ht(t,n),([t,l])=>B(ht(t,r),([t,o])=>ft(t,(t,[a,i,d])=>d!==ye(e,t)?Ve(Pe(Pe(s,n,()=>Ln(l))[0],r,()=>Ln(o))[0],t,[a,i]):0))))),bn(s,n)},getMergeableValueHashes:()=>vt(r[1][0],Cn),getMergeableValueDiff:e=>{const[,[t,n]]=r,s=vt(t,fn,([,,t],n)=>t==ye(e,n));return bn(s,n)},setMergeableContent:e=>V(e),setDefaultContent:e=>(w.transaction(()=>{o=1,dt(()=>w.setContent(e),()=>o=0)}),M),getTransactionMergeableChanges:(e=!1)=>S(e),applyMergeableChanges:k,merge:e=>{const t=y(),n=e.getMergeableContent();return e.applyMergeableChanges(t),k(n)},__:[()=>{const e=a;return a=0,e},()=>p(!0),e=>S(e,!0),e=>V(e,!0),e=>m(e,!0)]};return w._[3](()=>{l=r,i=a},e=>e?T():0,e=>{e?T():he(d),st(c),st(g)},(e,n,r,l,i,d)=>{if(Vt(wt(wt(c,e,ut),n,yt),r),s||i){i&&(a=1);const s=o||d?t:f(),[c]=I([[{[e]:[{[n]:[{[r]:[l,s]}]}]}],[{}],1]),u=ye(ye(c,e),n);!s||u&&Se(u,r)||ot(13)}},(e,n,r,l)=>{if(Vt(g,e),s||r){r&&(a=1);const s=o||l?t:f(),[,i]=I([[{}],[{[e]:[n,s]}],1]);s&&!Se(i,e)&&ot(13)}}),Me(w,(e,t)=>Ve(M,t,D(t,"set")||D(t,"del")||D(t,"apply")||E(t,"Transaction")||t=="call"+u||"use"==t?(...t)=>(e(...t),M):D(t,h)&&E(t,u)?(...n)=>{const s=xn[K(t,3,-8)]??0,r=n[s];return n[s]=(e,...t)=>r(M,...t),e(...n)}:"isMergeable"==t?()=>!0:e)),pe(M)},Qn=ut([["avg",[(e,t)=>ue(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>ge(e,(e,t)=>x(e,t),-1/0),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:x(t,e)]],["min",[e=>ge(e,(e,t)=>J(e,t),O),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:J(t,e)]],["sum",[e=>ue(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),zn=(e,t,n,s,r,l=!1)=>{if(et(n))return;const[o,a,i,d]=r;return l||=A(e),rt(s,([n,s])=>{l||(e=A(n)?a?.(e,s,t++):A(s)?i?.(e,n,t--):d?.(e,s,n,t),l||=A(e))}),l?o(tt(n),$e(n)):e},An=Mt(e=>{const n=ut(),[s,r,l]=Wt(()=>C),[o,a,i,d,c,u,g,,h,f,b,w]=mt(e,te,e=>isNaN(e)||A(e)||j(e)||!1===e||e===t?void 0:1*e,s,r),C={setMetricDefinition:(e,t,s,l,o,a,i)=>{const d=$(s)?[s,o,a,i]:ht(Qn,s)??ht(Qn,"sum");return h(e,t,(t,s,l,o,a,i)=>{const c=u(e),h=$e(o);i||=A(c),t();let f=zn(c,h,o,s,d,i);Q(f)||(f=void 0),f!=c&&(g(e,f),r(n,[e],f,c))},kt(l,1)),C},delMetricDefinition:e=>(f(e),C),getStore:o,getMetricIds:a,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>s(t,n,[e]),delListener:e=>(l(e),C),destroy:w,getListenerStats:()=>({metric:Ge(n)})};return pe(C)}),Nn=(e,t,...n)=>ge(e,(e,t)=>A(e)?e:t(...n,e),t),jn=([e,t,n],s)=>[Ee(e,e=>A(e)?e:Ee(e,e=>A(e)?e:Ee(e,e=>A(e)?e:s(e)))),Ee(t,e=>A(e)?e:s(e)),n],qn=(e,t,n,...s)=>Y(e)?t:B(Nn(e,n(t,Ue),...s),e=>n(e,e=>at(()=>je(e),e))),Bn=(e,...t)=>le(e,e=>e(...t)),Un=Mt((e,t)=>{const n=e=>t=>(fe(e,t),W),s=[],r=[],l=[],o=[],a=[],i=[],d=[],c=[],u=[],g=[],h=[],f=[],b=[],w=[],C=[s,r,l,o,a,i,d,c,u,g,h,f,b,w],v=n(s),R=n(r),I=n(l),L=n(o),T=n(a),p=n(i),S=n(d),y=n(c),V=n(u),m=n(g),k=n(h),M=n(f),D=n(b),E=n(w),W=pe({getStore:()=>e,addWillSetContentCallback:v,addWillSetTablesCallback:R,addWillSetTableCallback:I,addWillSetRowCallback:L,addWillSetCellCallback:T,addWillSetValuesCallback:p,addWillSetValueCallback:S,addWillDelTablesCallback:y,addWillDelTableCallback:V,addWillDelRowCallback:m,addWillDelCellCallback:k,addWillDelValuesCallback:M,addWillDelValueCallback:D,addWillApplyChangesCallback:E,destroy:()=>{t()&&(e._[4](),de(C,he))}});return e._[4]((e,t)=>t?qn(s,e,([e,t],n)=>[_e(e,n),Ee(t,n)]):Nn(s,e),e=>qn(r,e,_e),(e,t)=>qn(l,t,We,e),(e,t,n)=>qn(o,n,Ee,e,t),(e,t,n,s)=>qn(a,s,(e,t)=>t(e),e,t,n),e=>qn(i,e,Ee),(e,t)=>qn(d,t,(e,t)=>t(e),e),()=>Bn(c),e=>Bn(u,e),(e,t)=>Bn(g,e,t),(e,t,n)=>Bn(h,e,t,n),()=>Bn(f),e=>Bn(b,e),(e,t)=>t?qn(w,e,jn):Nn(w,e),()=>!Y(o)),W}),Zn="_",$n=Mt(e=>{const n=e._[0],s=n(),r=n(),l=ut(),o=ut(),a=yt(),i=ut(),d=ut(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},f=ut(),b=ut(),{_:[,C,v],delListener:y}=r,[V,m,k,M,D,E,W,_,,H,x,J]=mt(e,()=>[],te,C,v),P=e=>wt(o,e,n),F=(e,t,...n)=>de(n,n=>Vt(wt(t,e,yt),n)),O=e=>ft(e,(e,t)=>rt(t,t=>e.delListener(t))),Q=(e,t,n,...s)=>{const r=wt(t,e,yt);return de(s,t=>{Vt(r,t),n&&e.callListener(t)}),s},z=(e,t,n)=>B(ht(t,e),s=>{e.delListener(n),lt(s,n),et(s)&&bt(t,e)}),N=()=>{ft(l,e=>M(e)?0:bt(l,e)),ft(o,(e,t)=>M(e)||(e=>!(nt(i,([,t])=>nt(t,([t])=>t!==e))&&le([f,b],t=>nt(t,t=>!Ye(t,e)))))(t)?0:bt(o,e))},q=(e,t,n)=>{F(e,n,e.addWillFinishTransactionListener(t.startTransaction)),F(e,n,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},U=(e,t)=>(xe(t)?s.delRow:s.setRow)(Zn,e,{...t}),Z=(s,r)=>{const o=[ut(),ut()];let a=!1;return it(()=>((s,r,l,o)=>P(s).transaction(()=>B(((e,n)=>A(n)?E(e):[n[1],t,n[2]])(s,l),([a,,i])=>{const[d,c]=r,u=l?.[0]??D(s),g=i?P(u):e,h=P(s),f=l?.[3]??ne(s),b=[],w=[[void 0,[u,void 0,void 0,[],ut(),g]]],C=[],v=[],R=[];a({select:(e,n,s)=>{const r=j(e)?n:e,l=j(e)?s:n,o=$(e)?[X(b)+t,e]:A(l)?[e,t=>t(e)]:[l,t=>j(e)?t(!0,r,l):t(r,l)];return fe(b,o),{as:e=>o[0]=e}},join:(t,n,s,r)=>{const l=j(t)?n:t,[o,a]=j(t)?A(r)||$(s)?[void 0,s]:[s,r]:A(s)||$(n)?[void 0,n]:[n,s],i=[l,[l,o,$(a)?a:e=>e(a),[],ut(),j(t)?P(l):e]];return fe(w,i),{as:e=>i[0]=e}},where:(e,t,n,s)=>fe(C,$(e)?e:j(e)?e=>e(!0,t,n)===s:A(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const l=[e,[e,$(t)?[t,n,s,r]:ht(Qn,t)??[(e,t)=>t]]];return fe(v,l),{as:e=>l[0]=e}},having:(e,t)=>fe(R,$(e)?e:n=>n(e)===t),param:e=>ye(f,e)}),h.delTable(s);const I=ut(b);if(et(I))return o?.(),se;const L=ut(w);ft(L,(e,[,t])=>B(ht(L,t),({3:t})=>A(e)?0:fe(t,e)));const T=ut(v),p=!et(T)||!Y(R),S=p?r[2]=n():h;if(p){const e=ut();ft(T,(t,[n,s])=>Vt(wt(e,n,yt),[t,s]));const t=yt();ft(I,n=>Ye(e,n)?0:Vt(t,n));const n=ut(),r=e=>A(e)?void 0:je(e),l=(t,n,r,l)=>B(t,([o,a,i,d])=>{ft(n,(t,[n])=>{const s=wt(o,t,ut),a=ht(s,r),i=l?void 0:n;if(a!==i){const n=yt([[a,i]]),l=$e(s);bt(s,r,i),rt(ht(e,t),([e,t])=>{const r=zn(d[e],l,s,n,t);Ve(d,e,A(Ae(r))?void 0:r)})}}),et(a)||!le(R,e=>e(e=>d[e]))?h.delRow(s,i):A(i)?t[2]=h.addRow(s,{...d}):h.setRow(s,i,{...d})});F(S,d,S.addRowListener(s,null,(o,a,i,d)=>{const c=[],u=[],g=ut(),h=S.hasRow(s,i);let f=!h;rt(t,e=>{const[t,n,l]=d(s,i,e);fe(c,r(n)),fe(u,r(l)),f||=t}),ft(e,e=>{const[t,,n]=d(s,i,e);(f||t)&&bt(g,e,[n])}),f&&l(St(n,c,void 0,([,e])=>(lt(e,i),et(e))),g,i,1),h&&l(St(n,u,()=>{const e=me();return rt(t,t=>Ve(e,t,S.getCell(s,i,t))),[ut(),yt(),void 0,e]},([,e])=>{Vt(e,i)}),g,i)}))}const y=(e,t,n,r,l)=>{const o=e=>t.getCell(n,r,e);de(l,t=>{const[n,,s,r,l,a]=ht(L,t),i=s?.(o,e),d=ht(l,e),u=d?.[0];i!=u&&(B(d,([,e,t])=>z(e,c,t)),bt(l,e,A(i)?void 0:[i,a,...Q(a,c,1,a.addRowListener(n,i,()=>y(e,a,n,i,r)))]))}),(e=>{const t=(t,n,s)=>{const r=j(t)?n:t,l=j(t)?s:n;if(A(l))return g.getCell(u,e,t);if(r===u&&!j(t))return g.getCell(u,e,l);const o=ht(L,r);return A(o)?void 0:o[5].getCell(o[0],ht(o[4],e)?.[0],l)};S.transaction(()=>le(C,e=>e(t))?ft(I,(n,r)=>S._[5](s,e,n,r(t,e))):S.delRow(s,e))})(e)},{3:V}=ht(L,void 0),m=(e,t,n)=>{g.hasRow(u,n)?y(n,g,u,n,V):(S.delRow(s,n),rt(L,({4:e})=>B(ht(e,n),([,t,s])=>{z(t,c,s),bt(e,n)})))};return S.transaction(()=>{de(g.getRowIds(u),e=>m(0,0,e)),Q(g,c,0,g.addRowListener(u,null,m))}),p&&q(S,h,d),q(g,S,d),o?.(),se})))(s,o,r,()=>{B(r,e=>G(s,e)),O(ht(f,s)),O(ht(b,s)),bt(f,s,et(o[0])?void 0:o[0]),bt(b,s,et(o[1])?void 0:o[1]),bt(l,s,o[2]),a=!0}),e=>{throw a||(O(o[0]),O(o[1])),N(),e}),se},G=(e,[t,n,r,l])=>{B(E(e),([,e])=>s.delListener(e)),Vt(a,e),dt(()=>{_(e,t),W(e,[n,s.addRowListener(Zn,e,()=>Ye(a,e)?0:Z(e),!0),r]),U(e,l)},()=>lt(a,e))},ee=e=>(B(E(e),([,e])=>s.delListener(e)),s.delRow(Zn,e),(e=>{O(ht(f,e)),bt(f,e),de([ht(o,e),ht(l,e)],t=>t?.delTable(e))})(e),(e=>{O(ht(b,e)),bt(b,e)})(e),H(e),N(),se),ne=e=>s.getRow(Zn,e),se={setQueryDefinition:(e,t,n,s,r={})=>{const[l,o,a,i]=j(t)?[n,s,1,r]:[t,n,0,s??{}];return Z(e,[l,o,a,i]),N(),se},delQueryDefinition:ee,getParamValues:ne,getParamValue:(e,t)=>s.getCell(Zn,e,t),setParamValues:(e,t)=>(M(e)&&U(e,t),se),setParamValue:(e,t,n)=>(M(e)&&s.setCell(Zn,e,t,n),se),getStore:V,getQueryIds:m,forEachQuery:k,hasQuery:M,getTableId:D,forEachResultTable:e=>k(t=>P(t).hasTable(t)?e(t,e=>se.forEachResultRow(t,e)):0),addQueryIdsListener:e=>x(()=>e(se)),addParamValuesListener:(e,t)=>"p"+s.addRowListener(Zn,e,(e,n,s)=>t(se,s,ne(s))),addParamValueListener:(e,t,n)=>"p"+s.addCellListener(Zn,e,t,(e,t,s,r,l)=>n(se,s,r,l)),delListener:e=>{const t=ht(i,e);if("p"==e[0])s.delListener(K(e,1));else if(A(t))y(e);else{const[n,s,r]=t;ft(s,(e,[t,n])=>t.delListener(n)),B(r,y),bt(i,e),y(e),c[n]--}return N(),se},destroy:()=>{de(m(),ee),J()},getListenerStats:()=>({...c,paramValues:s.getListenerStats().row-X(m()),paramValue:s.getListenerStats().cell})};return Me({[w]:[2,1],[w+S]:[1,1],[I]:[1,1],[L]:[1,1],[T]:[1,5],[R]:[3,2],[S]:[1,2],[p]:[3,3]},([e,t],n)=>{de(K(["get","has","forEach"],0,e),e=>Ve(se,e+g+n,(...t)=>(ht(o,t[0])??r)[e+n](...t))),Ve(se,h+g+n+u,(...e)=>((s,r)=>{const l=C(te,d),o=ut(),a=()=>{const s=null==r?m():[r];de(s,s=>{return Ye(o,s)?0:bt(o,s,[P(s),(r=P(s),r[h+n+u](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:K(e,0,t))(e,t),(n,...s)=>e[t](se,...s),!0))]);var r}),ft(o,(e,[t,n])=>null==r&&M(e)||e==r?0:(t.delListener(n),void bt(o,e)))};return a(),bt(i,l,[s,o,null==r?x(a):void 0]),c[s]++,l})((e=>e[0].toLowerCase()+K(e,1))(n),e[0]))}),pe(se)}),Gn=Mt(e=>{const n=ut(),s=ut(),r=ut(),l=ut(),[o,a,i]=Wt(()=>T),[d,c,u,g,h,f,,,b,w,C,v]=mt(e,()=>[ut(),ut(),ut(),ut()],e=>A(e)?void 0:e+t,o,a),R=(e,t,n)=>B(f(e),([s,,r])=>{if(!Ye(r,t)){const l=yt();if(h(e)!=L(e))Vt(l,t);else{let e=t;for(;!A(e)&&!Ye(l,e);)Vt(l,e),e=ht(s,e)}if(n)return l;bt(r,t,l)}return ht(r,t)}),I=(e,t)=>B(f(e),([,,e])=>bt(e,t)),L=e=>ht(n,e),T={setRelationshipDefinition:(e,t,o,i)=>(bt(n,e,o),b(e,t,(t,n)=>{const o=yt(),i=yt(),d=yt(),[c,u]=f(e);rt(n,([t,n],s)=>{A(t)||(Vt(i,t),B(ht(u,t),e=>{lt(e,s),et(e)&&bt(u,t)})),A(n)||(Vt(i,n),Ye(u,n)||bt(u,n,yt()),Vt(ht(u,n),s)),Vt(o,s),bt(c,s,n),ft(ht(l,e),t=>{Ye(R(e,t),s)&&Vt(d,t)})}),t(),rt(o,t=>a(s,[e,t])),rt(i,t=>a(r,[e,t])),rt(d,t=>{I(e,t),a(l,[e,t])})},kt(i)),T),delRelationshipDefinition:e=>(bt(n,e),w(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(n=>t(n,t=>e.forEachRow(h(n),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:L,getRemoteRowId:(e,t)=>ht(f(e)?.[0],t),getLocalRowIds:(e,t)=>tt(ht(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>A(f(e))?[t]:tt(R(e,t,!0)),addRelationshipIdsListener:C,addRemoteRowIdListener:(e,t,n)=>o(n,s,[e,t]),addLocalRowIdsListener:(e,t,n)=>o(n,r,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(R(e,t),o(n,l,[e,t])),delListener:e=>(I(...i(e)??[]),T),destroy:v,getListenerStats:()=>({remoteRowId:Ke(s),localRowIds:Ke(r),linkedRowIds:Ke(l)})};return pe(T)});export{Nt as addOrRemoveHash,Ht as createCheckpoints,hn as createIndexes,On as createMergeableStore,An as createMetrics,Un as createMiddleware,$n as createQueries,Gn as createRelationships,Hn as createStore,gn as defaultSorter,Ut as getCellHash,Zt as getCellInRowHash,At as getHash,un as getHlcFunctions,$t as getRowHash,Gt as getRowInTableHash,Kt as getTableHash,Xt as getTableInTablesHash,Yt as getTablesHash,Qt as getUniqueId,Bt as getValueHash,qt as getValueInValuesHash,jt as getValuesHash};
|
|
1
|
+
const e=e=>typeof e,t="",n=e(t),s=e(!0),r=e(0),o=e(e),l="object",a="array",i="type",d="default",c="allowNull",u="Listener",g="Result",h="add",f="Has",b="Ids",w="Table",C=w+"s",v=w+b,I="Row",L=I+"Count",R=I+b,T="Sorted"+I+b,p="Cell",S=p+b,y="Value",V=y+"s",m=y+b,k="required",M=e=>t+e,D=(e,t)=>e.startsWith(t),E=(e,t)=>e.endsWith(t),W=Math,_=e=>(t,n,s)=>e(t)?s?.():n(t),H=globalThis,x=W.max,J=W.min,P=W.floor,F=W.random,O=1/0,A=isFinite,Q=e=>null==e,z=e=>void 0===e,N=e=>null===e,j=e=>!0===e,q=_(Q),B=_(z),U=e=>e==n||e==s,Z=t=>e(t)==n,$=t=>e(t)==o,G=e=>Array.isArray(e),K=(e,t,n)=>e.slice(t,n),X=e=>e.length,Y=e=>0==X(e),ee=(e,t)=>e.test(t),te=()=>{},ne=e=>e,se=H.structuredClone,re=(e,t)=>e.includes(t),oe=(e,t)=>e.every(t),le=(e,t)=>X(e)===X(t)&&oe(e,(e,n)=>t[n]===e),ae=(e,t)=>oe(e,(n,s)=>0==s||t(e[s-1],n)<=0),ie=(e,t)=>e.sort(t),de=(e,t)=>e.forEach(t),ce=(e,t)=>e.map(t),ue=e=>ge(e,(e,t)=>e+t,0),ge=(e,t,n)=>e.reduce(t,n),he=(e,t=X(e))=>e.splice(0,t),fe=(e,...t)=>e.push(...t),be=e=>e.pop(),we=e=>e.shift(),Ce=Object,ve=e=>Ce.getPrototypeOf(e),Ie=Ce.isFrozen,Le=Ce.entries,Re=e=>!Q(e)&&q(ve(e),e=>e==Ce.prototype||Q(ve(e)),()=>!0),Te=Ce.keys,pe=Ce.freeze,Se=(e,t)=>Ce.hasOwn(e,t),ye=(e,t)=>B(e,e=>B(Ce.getOwnPropertyDescriptor(e,t),()=>e[t])),Ve=(e,t,n)=>(Ce.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),me=(e=[])=>{const t=Ce.create(null);return de(e,([e,n])=>Ve(t,e,n)),t},ke=(e,t)=>(delete e[t],e),Me=(e,t)=>de(Te(e),n=>t(e[n],n)),De=(e,t)=>{for(const n in e)if(Se(e,n)&&!t(e[n],n))return!1;return!0},Ee=(e,t)=>{const n=me();return Me(e,(e,s)=>Ve(n,s,t(e,s))),n},We=(e,t)=>Ee(e,e=>Ee(e,t)),_e=(e,t)=>Ee(e,e=>We(e,t)),He=e=>X(Te(e)),xe=e=>Re(e)&&0==He(e),Je=(e,t,n=(e,t)=>e===t)=>He(e)===He(t)&&De(e,(e,s)=>!!Se(t,s)&&(Re(e)?!!Re(t[s])&&Je(t[s],e,n):n(e,t[s]))),Pe=(e,t,n)=>(Se(e,t)||Ve(e,t,n()),e[t]),Fe=(e,t,n)=>Q(e)||!Re(e)||xe(e)||Ie(e)?(n?.(),!1):(Me(e,(n,s)=>{t(n,s)||ke(e,s)}),!xe(e)),Oe=JSON.stringify,Ae=JSON.parse,Qe=e=>Oe(e,(e,t)=>t instanceof Map?me([...t]):t),ze=t=>{if(N(t))return"null";if(G(t))return a;if(Re(t))return l;const n=e(t);return U(n)||n==r&&A(t)?n:void 0},Ne=e=>e==l||e==a,je=e=>Re(e)||G(e)?"�"+Oe(e):e,qe=e=>Z(e)&&"�"==e[0],Be=(e,t=0)=>""===e||!t&&qe(e),Ue=(e,t,n)=>!n&&qe(e)?Ae(K(e,1)):e,Ze=e=>t=>{let n=0;for(const s of t.values())n+=e(s);return n},$e=e=>e?.size??0,Ge=Ze($e),Ke=Ze(Ge),Xe=Ze(Ke),Ye=(e,t)=>e?.has(t)??!1,et=e=>z(e)||0==$e(e),tt=e=>[...e?.values()??[]],nt=(e,t)=>{for(const[n,s]of e?.entries()??[])if(!t(s,n))return!1;return!0},st=e=>e.clear(),rt=(e,t)=>e?.forEach(t),ot=(e,t)=>e?.delete(t),lt=(e,n)=>{throw((e,n)=>Error("tinybase:"+e+(z(n)?t:":"+n)))(e,n)},at=(e,t)=>{try{return e()}catch{return t}},it=(e,t)=>{try{return e()}catch(e){t?.(e)}},dt=(e,t)=>{try{return e()}finally{t()}},ct=Map,ut=e=>new ct(e),gt=e=>[...e?.keys()??[]],ht=(e,t)=>e?.get(t),ft=(e,t)=>rt(e,(e,n)=>t(n,e)),bt=(e,t,n)=>z(n)?(ot(e,t),e):e?.set(t,n),wt=(e,t,n,s)=>{let r=ht(e,t);return Ye(e,t)?s?.(r):bt(e,t,r=n()),r},Ct=(e,t,n,s=bt)=>(Me(t,(t,s)=>n(e,s,t)),ft(e,n=>Se(t,n)?0:s(e,n)),e),vt=(e,t,n,s)=>{const r=me();return rt(e,(e,o)=>{if(!n?.(e,o)){const n=t?t(e,o):e;s?.(n)||Ve(r,o,n)}}),r},It=(e,t,n)=>vt(e,e=>vt(e,t,n),et,xe),Lt=(e,t,n)=>vt(e,e=>It(e,t,n),et,xe),Rt=(e,t)=>{const n=ut();return rt(e,(e,s)=>n.set(s,t?.(e)??e)),n},Tt=e=>Rt(e,Rt),pt=e=>Rt(e,Tt),St=(e,t,n,s,r=0)=>B((n?wt:ht)(e,t[r],r>X(t)-2?n:ut),o=>{if(r>X(t)-2)return s?.(o)&&bt(e,t[r]),o;const l=St(o,t,n,s,r+1);return et(o)&&bt(e,t[r]),l}),yt=e=>new Set(G(e)||z(e)?e:[e]),Vt=(e,t)=>e?.add(t),mt=(e,t,n,s,r)=>{const o=e.hasRow,l=ut(),a=ut(),i=ut(),d=ut(),c=ut(),u=ut(),g=t=>B(ht(u,t),n=>{rt(n,t=>{e.delListener(t),ot(n,t)}),bt(u,t)}),h=(e,n)=>{bt(l,e,n),Ye(a,e)||(bt(a,e,t()),bt(d,e,ut()),bt(c,e,ut()),it(()=>r(i),t=>{throw bt(l,e),bt(a,e),bt(d,e),bt(c,e),t}))},f=e=>{bt(l,e),bt(a,e),bt(d,e),bt(c,e),g(e),r(i)};return[()=>e,()=>gt(l),e=>ft(a,e),e=>Ye(a,e),e=>ht(l,e),e=>ht(a,e),(e,t)=>bt(a,e,t),h,(t,s,r,l,a)=>{h(t,s);const i=ut(),f=ut(),b=ht(d,t),w=ht(c,t),C=t=>{const r=n=>e.getCell(s,t,n),d=ht(b,t),c=o(s,t)?n(l(r,t)):void 0;if(d===c||G(d)&&G(c)&&le(d,c)||bt(i,t,[d,c]),!z(a)){const e=ht(w,t),n=o(s,t)?a(r,t):void 0;(u=e)===(g=n)||(Re(u)||G(u))&&Oe(u)===Oe(g)||bt(f,t,n)}var u,g},v=e=>{r(()=>{rt(i,([,e],t)=>bt(b,t,e)),rt(f,(e,t)=>bt(w,t,e))},i,f,b,w,e),st(i),st(f)};ft(b,C),e.hasTable(s)&&de(e.getRowIds(s),e=>{Ye(b,e)||C(e)}),v(!0),g(t),((e,...t)=>{const n=wt(u,e,yt);de(t,e=>Vt(n,e))})(t,e.addRowListener(s,null,(e,t,n)=>C(n)),e.addTableListener(s,()=>v()))},f,e=>s(e,i),()=>ft(u,f)]},kt=(e,n)=>Z(e)?t=>t(e):e??(()=>n??t),Mt=(e,t)=>{const n=new WeakMap;return s=>{if(!n.has(s)){const t=e(s,()=>n.get(s)===t&&(n.delete(s),!0));n.set(s,t)}const r=n.get(s);return t?.(r),r}},Dt=/^\d+$/,Et=()=>{const e=[];let n=0;return[s=>(s?we(e):null)??t+n++,t=>{ee(Dt,t)&&X(e)<1e3&&fe(e,t)}]},Wt=e=>{let n;const[s,r]=Et(),o=ut(),l=(e,s,r,l)=>{let a,i=!1;if(de(((e,n=[t])=>{const s=[],r=(e,t)=>t==X(n)?fe(s,e):N(n[t])?rt(e,e=>r(e,t+1)):de([n[t],null],n=>r(ht(e,n),t+1));return r(e,0),s})(s,r),t=>rt(t,t=>{const s=()=>ht(o,t)[0](n,...r??[],...l);e?it(s,e=>{i||(a=e),i=!0}):s()})),i)throw a};return[(r,l,a,i=[],d=()=>[])=>{n??=e();const c=s(1);return bt(o,c,[r,l,a,i,d]),Vt(St(l,a??[t],yt),c),c},(e,t,...n)=>l(!1,e,t,n),e=>B(ht(o,e),([,n,s])=>(St(n,s??[t],void 0,t=>(ot(t,e),et(t)?1:0)),bt(o,e),r(e),s)),e=>B(ht(o,e),([e,,t=[],s,r])=>{const o=(...l)=>{const a=X(l);a==X(t)?e(n,...l,...r(l)):N(t[a])?de(s[a]?.(...l)??[],e=>o(...l,e)):o(...l,t[a])};o()}),(e,t,...n)=>l(!0,e,t,n)]},_t=(e,t)=>e===t||!z(e)&&!z(t)&&je(e)===je(t),Ht=Mt(e=>{let n,s,r,o=100,l=ut(),a=ut(),i=1,d=0;const c=ut(),u=ut(),[g,h,f]=Wt(()=>H),b=ut(),w=ut(),C=[],v=[],I=(t,n)=>{i=0,dt(()=>e.transaction(()=>{const[s,r]=ht(b,n);rt(s,(n,s)=>rt(n,(n,r)=>rt(n,(n,o)=>e._[5](s,r,o,n[t],!0)))),rt(r,(n,s)=>e._[6](s,n[t],!0))}),()=>i=1)},L=e=>{bt(b,e),bt(w,e),h(u,[e])},R=(e,t)=>de(he(e,t??X(e)),L),T=()=>R(C,X(C)-o),p=()=>B(n,()=>{fe(C,n),T(),R(v),n=void 0,r=1}),S=()=>{n=be(C),r=1};let y,V;const m=(e=t)=>(z(n)&&(n=t+s++,bt(b,n,[l,a]),W(n,e),l=ut(),a=ut(),r=1),n),k=()=>{Y(C)||(((e,...t)=>{e.unshift(...t)})(v,m()),I(0,n),n=be(C),r=1)},M=()=>{Y(v)||(fe(C,n),n=we(v),I(1,n),r=1)},D=()=>{r&&(h(c),r=0)},E=e=>{const t=m(e);return D(),t},W=(e,t)=>(_(e)&&ht(w,e)!==t&&(bt(w,e,t),h(u,[e])),H),_=e=>Ye(b,e),H={setSize:e=>(o=e,T(),H),addCheckpoint:E,setCheckpoint:W,getStore:()=>e,getCheckpointIds:()=>[[...C],n,[...v]],forEachCheckpoint:e=>ft(w,e),hasCheckpoint:_,getCheckpoint:e=>ht(w,e),goBackward:()=>(k(),D(),H),goForward:()=>(M(),D(),H),goTo:e=>{const t=re(C,e)?k:re(v,e)?M:void 0;for(;!z(t)&&e!=n;)t();return D(),H},addCheckpointIdsListener:e=>g(e,c),addCheckpointListener:(e,t)=>g(t,u,[e]),delListener:e=>(f(e),H),clear:()=>(R(C),R(v),z(n)||L(n),n=void 0,s=0,E(),H),clearForward:()=>(Y(v)||(R(v),h(c)),H),destroy:()=>{d&&(d=0,e.delListener(y),e.delListener(V))},getListenerStats:()=>({checkpointIds:Ge(c),checkpoint:Ge(u)}),_registerListeners:()=>{d||(d=1,y=e.addCellListener(null,null,null,(e,t,n,s,r,o)=>{if(i){p();const e=wt(l,t,ut),a=wt(e,n,ut),i=wt(a,s,()=>[o,void 0]);i[1]=r,_t(i[0],r)&&et(bt(a,s))&&et(bt(e,n))&&et(bt(l,t))&&S(),D()}}),V=e.addValueListener(null,(e,t,n,s)=>{if(i){p();const e=wt(a,t,()=>[s,void 0]);e[1]=n,_t(e[0],n)&&et(bt(a,t))&&S(),D()}}))}};return pe(H.clear())},e=>e._registerListeners()),xt=((e,n=t)=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(n,void 0))(),Jt=ut(ce(xt,(e,t)=>[e,t])),Pt=e=>xt[63&e],Ft=(e,t)=>ht(Jt,e[t])??0,Ot=H.crypto?e=>H.crypto.getRandomValues(e):e=>ce(e,()=>P(256*F())),At=(e=16)=>ge(Ot(new Uint8Array(e)),(e,t)=>e+Pt(t),t),Qt=new H.TextEncoder,zt=e=>{let t=2166136261;return de(Qt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Nt=(e,t)=>(e^t)>>>0,jt=e=>ge(Le(e),(e,[t,n])=>Nt(e,qt(t,n)^qt(t,0)),0),qt=(e,t)=>zt(e+":"+t),Bt=(e,t)=>zt(Qe(e??null)+":"+t),Ut=Bt,Zt=qt,$t=jt,Gt=qt,Kt=e=>ge(Le(e),(e,[t,n])=>Nt(e,qt(t,n)),0),Xt=qt,Yt=Kt,en=3e5,tn=2**36,nn=2**30,sn=2**24,rn=2**18,on=4096,ln=/^[-0-9A-Z_a-z]{16}$/,an=e=>{const t=zt(e);return Pt(t/sn)+Pt(t/rn)+Pt(t/on)+Pt(t/64)+Pt(t)},dn=e=>Ft(e,0)*tn+Ft(e,1)*nn+Ft(e,2)*sn+Ft(e,3)*rn+Ft(e,4)*on+64*Ft(e,5)+Ft(e,6),cn=(e,n)=>e==t||Z(e)&&ee(ln,e)&&dn(e)<=n,un=(e,n=Date.now)=>{let s=0,r=-1;const o=B(e,an,()=>At(5)),l=e=>{const o=n();if(!z(e)&&!cn(e,o+en))return;const l=s,[a,d]=z(e)||e==t?[0,0]:i(e);s=x(l,a,o),r=s==l?s==a?x(r,d):r:s==a?d:-1},a=(e,t,n)=>Pt(e/tn)+Pt(e/nn)+Pt(e/sn)+Pt(e/rn)+Pt(e/on)+Pt(e/64)+Pt(e)+Pt(t/rn)+Pt(t/on)+Pt(t/64)+Pt(t)+(z(n)?o:an(n)),i=e=>[dn(e),Ft(e,7)*rn+Ft(e,8)*on+64*Ft(e,9)+Ft(e,10),K(e,11)];return[()=>(l(),++r==sn&&(s++,r=0),a(s,r)),l,a,i,()=>s,()=>r,()=>o]},gn=(e,t)=>(e??0)<(t??0)?-1:1,hn=Mt(e=>{const n=ut(),s=ut(),r=ut(),o=ut(),[l,a,i]=Wt(()=>R),[d,c,u,g,h,f,b,,w,C,v,I]=mt(e,ut,e=>z(e)?t:G(e)?ce(e,M):M(e),l,a),L=(t,n,s)=>{const r=h(t);rt(s,(t,s)=>n(s,n=>rt(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},R={setIndexDefinition:(e,t,l,i,d,c=gn)=>{const u=g(e),h=kt(l),C=z(d)?void 0:([e],[t])=>d(e,t);return w(e,t,(t,n,l,d,u,g)=>{let h=0;const w=yt(),v=ut(),I=yt(),L=f(e),R=e=>{Ye(v,e)||bt(v,e,Ye(L,e))};if(rt(n,([e,t],n)=>{const s=yt(e),r=yt(t);rt(s,e=>ot(r,e)?ot(s,e):0),rt(s,e=>{R(e),Vt(w,e),B(ht(L,e),t=>{ot(t,n),et(t)&&(bt(L,e),h=1)})}),rt(r,e=>{R(e),Vt(w,e),Ye(L,e)||(bt(L,e,yt()),h=1),Vt(ht(L,e),n),z(i)||Vt(I,e)})}),t(),et(u)||(g?ft(L,e=>Vt(I,e)):ft(l,e=>B(ht(d,e),e=>de(G(e)?e:[e],e=>Vt(I,e)))),rt(I,e=>{const t=(t,n)=>c(ht(u,t),ht(u,n),e),n=[...ht(L,e)];ae(n,t)||(bt(L,e,yt(ie(n,t))),Vt(w,e))})),(h||g)&&!z(C)){const t=[...L];ae(t,C)||(b(e,ut(ie(t,C))),h=1)}h&&a(s,[e]),ft(v,(t,n)=>{const s=Ye(L,t);n!=s&&a(r,[e,t],s)}),rt(w,t=>a(o,[e,t]))},(e,t)=>{const n=h(e,t);return Z(l)&&!z(n)?je(n):n},B(i,kt)),u||a(n,[e],!0),R},delIndexDefinition:e=>{const t=f(e),l=g(e),i=l?gt(t):[];return C(e),l&&(a(n,[e],!1),Y(i)||(a(s,[e]),de(i,t=>{a(r,[e,t],!1),a(o,[e,t])}))),R},getStore:d,getIndexIds:c,forEachIndex:e=>u((t,n)=>e(t,e=>L(t,e,n))),forEachSlice:(e,t)=>L(e,t,f(e)),hasIndex:g,hasSlice:(e,t)=>Ye(f(e),t),getTableId:h,getSliceIds:e=>gt(f(e)),getSliceRowIds:(e,t)=>tt(ht(f(e),t)),addIndexIdsListener:v,addHasIndexListener:(e,t)=>l(t,n,[e]),addSliceIdsListener:(e,t)=>l(t,s,[e]),addHasSliceListener:(e,t,n)=>l(n,r,[e,t]),addSliceRowIdsListener:(e,t,n)=>l(n,o,[e,t]),delListener:e=>(i(e),R),destroy:I,getListenerStats:()=>({sliceIds:Ge(s),sliceRowIds:Ke(o)})};return pe(R)}),fn=([e,t])=>bn(e,t),bn=(e,t)=>t?[e,t]:[e],wn=(e,t,n)=>[e,t,n],Cn=e=>e[2],vn=(e,t)=>t>e?(e?zt(e):0)^zt(t):0,In=(e,n)=>((e??t)>(n??t)?e:n)??t,Ln=(e,t,n)=>{t>e[1]&&(e[1]=t),e[2]=n>>>0},Rn=(e=t)=>bn(me(),e),Tn=(e=t)=>[ut(),e,0],pn=([e,t,n],s)=>[vt(e,s),t,n],Sn=([e,t],n=fn)=>bn(vt(e,n),t),yn=e=>[e,e],Vn=(e,t=Ge)=>t(e[0])+t(e[1]),mn=()=>[ut(),ut()],kn=e=>[...e],Mn=([e,t])=>e===t,Dn=e=>G(e)?ce(e,Dn):Re(e)?Ee(e,Dn):e,En=e=>Ee(e,(e,t)=>t==d?Ue(e):e),Wn=(e,t,n)=>bt(e,t,ht(e,t)==-n?void 0:n),_n=([e,t],[n,s])=>Je(e,n)&&Je(t,s),Hn=()=>{let e,t,n,s,o=!1,l=!1,a=0,g=0,b=[],T=[],D=0,E=0;const W=ut(),_=ut(),H=ut(),x=ut(),J=ut(),P=ut(),F=ut(),O=ut(),A=ut(),Q=yt(),j=ut(),q=ut(),Z=ut(),X=ut(),Y=ut(),ee=ut(),te=yt(),oe=yt(),ae=ut(),ue=ut(),ge=ut(),he=ut(),be=mn(),we=mn(),Ce=mn(),ve=mn(),Ie=mn(),Le=mn(),Te=mn(),ye=mn(),me=mn(),De=mn(),We=mn(),_e=mn(),He=mn(),Pe=mn(),Oe=mn(),Ze=mn(),tt=mn(),lt=mn(),ct=mn(),St=mn(),mt=mn(),kt=mn(),Mt=ut(),Dt=mn(),[_t,Ht,xt,Jt,Pt]=Wt(()=>Js),Ft=e=>{const t=E;return E=1,dt(e,()=>E=t)},Ot=e=>{const t=D;return D=1,dt(e,()=>D=t)},At=(e,t,n,s=Object.is)=>B(t(),t=>e===t||s(e,t)?n(t):Ft(()=>n(t))),Qt=e=>{if(!Fe(e,(e,t)=>re([i,d,c,k],t)))return!1;const t=e[i];if(!U(t)&&t!=r&&!Ne(t))return!1;const n=e[d];return!(N(n)&&!e[c]||(N(n)||(ze(n)!=t||Be(n)?ke(e,d):B(at(()=>je(n)),t=>e[d]=t,()=>ke(e,d))),0))},zt=(e,t)=>B(at(()=>je(e)),e=>e,t),Nt=e=>Re(e)?Ee(e,ne):e,jt=e=>Re(e)?Ee(e,Nt):e,qt=e=>Re(e)?Ee(e,ne):e,Bt=(e,t)=>1==D&&qe(e)&&1==at(()=>{const n=ze(Ue(e));return Ne(n)&&(z(t)||t==n)},!1),Ut=G,Zt=(t,n)=>(!e||Ye(Z,n)||On(n))&&Fe(t,(e,t)=>$t(n,t,e),()=>On(n)),$t=(e,t,n,s)=>{const r=s?n:Yt(n,e,t);return Fe(r,(s,r)=>B(Gt(e,t,r,s),e=>(Ve(n,r,e),!0),()=>!1),()=>On(e,t))&&(!!s||nt(ht(X,e)?.[2],e=>Se(r,e)))},Gt=(t,n,s,r)=>e?B(ht(ht(Z,t),s),e=>N(r)?e[c]?r:On(t,n,s,r,e[d]):Be(r,D)?On(t,n,s,r,e[d]):qe(r)?Bt(r,e[i])?r:On(t,n,s,r,e[d]):ze(r)===e[i]?zt(r,()=>On(t,n,s,r,e[d])):On(t,n,s,r,e[d]),()=>On(t,n,s,r)):z(ze(r))||Be(r,D)||qe(r)&&!Bt(r)?On(t,n,s,r):zt(r,()=>On(t,n,s,r)),Kt=(e,t)=>{const n=t?e:en(e);return Fe(n,(t,n)=>B(Xt(n,t),t=>(Ve(e,n,t),!0),()=>!1),()=>An())&&(!!t||nt(oe,e=>Se(n,e)))},Xt=(e,n)=>t?B(ht(Y,e),t=>N(n)?t[c]?n:An(e,n,t[d]):Be(n,D)?An(e,n,t[d]):qe(n)?Bt(n,t[i])?n:An(e,n,t[d]):ze(n)===t[i]?zt(n,()=>An(e,n,t[d])):An(e,n,t[d]),()=>An(e,n)):z(ze(n))||Be(n,D)||qe(n)&&!Bt(n)?An(e,n):zt(n,()=>An(e,n)),Yt=(e,t,n)=>(B(ht(X,t),([s,r])=>{rt(s,(s,r)=>{Se(e,r)||(Ve(e,r,s),B(n,e=>Vt(wt(wt(F,t,ut),e,yt),r)))}),rt(r,s=>{Se(e,s)||On(t,n,s)})}),e),en=e=>(t&&(rt(ee,(t,n)=>{Se(e,n)||(Ve(e,n,t),Vt(Q,n))}),rt(te,t=>{Se(e,t)||An(t)})),e),tn=e=>Ct(Z,e,(e,t,n)=>{const s=ut(),r=yt(),o=yt();Ct(wt(Z,t,ut),n,(e,t,n)=>{bt(e,t,n),B(n[d],e=>{bt(s,t,e)},()=>{Vt(r,t),!0===n[k]&&Vt(o,t)})}),bt(X,t,[s,r,o])},(e,t)=>{bt(Z,t),bt(X,t)}),nn=e=>Ct(Y,e,(e,t,n)=>{bt(Y,t,n),B(n[d],e=>{bt(ee,t,e),ot(te,t),ot(oe,t)},()=>{bt(ee,t),Vt(te,t),!0===n[k]?Vt(oe,t):ot(oe,t)})},(e,t)=>{bt(Y,t),bt(ee,t),ot(te,t),ot(oe,t)}),sn=()=>{n??=[!!e,It(Z)]},rn=()=>{s??=[!!t,vt(Y)]},on=e=>xe(e)?Ss():ws(e),ln=(e,t,n,s,r,o)=>z(s)?ms(e,t,n,!0,r):Cs(e,t,n,s,r,o),an=e=>xe(e)?ks():vs(e),dn=(e,t,n)=>z(t)?Ms(e,n):Is(e,t,n),cn=(e,t)=>At(e,()=>t?e:B(b[1],t=>Ft(()=>t(se(e))),()=>e),e=>Ct(ge,e,(e,t,n)=>un(t,n),(e,t)=>In(t)),Je),un=(e,t,n)=>At(t,()=>n?t:B(b[2],n=>Ft(()=>n(e,se(t))),()=>t),t=>Ct(wt(ge,e,()=>(pn(e,1),bt(ae,e,Et()),bt(ue,e,ut()),ut())),t,(t,n,s)=>hn(e,t,n,s),(t,n)=>Ln(e,t,n)),Je),hn=(e,t,n,s,r)=>At(s,()=>r?s:B(b[3],t=>Ft(()=>t(e,n,se(s))),()=>s),s=>Ct(wt(t,n,()=>(Sn(e,n,1),ut())),s,(t,s,r)=>fn(e,n,t,s,r),(s,o)=>Rn(e,t,n,s,o,r)),Je),fn=(e,t,n,s,r,o)=>At(r,()=>B(o?void 0:b[4],n=>Ft(()=>n(e,t,s,r)),()=>r),r=>B(E?Gt(e,t,s,Ue(r)):r,r=>{Ye(n,s)||xn(e,t,s,1);const o=ht(n,s);r!==o&&(Jn(e,t,s,o,r),bt(n,s,r))})),bn=(e,t,n,s,r,o)=>B(ht(t,n),t=>fn(e,n,t,s,r,o),()=>{const l=ut();bt(t,n,l),Sn(e,n,1),Me(Yt({[s]:r},e,n),(t,s)=>fn(e,n,l,s,t,o))}),wn=(e,t)=>At(e,()=>t?e:B(b[5],t=>Ft(()=>t(se(e))),()=>e),e=>Ct(he,e,(e,t,n)=>Cn(t,n),(e,t)=>Tn(t)),Je),Cn=(e,t,n)=>At(t,()=>B(n?void 0:b[6],n=>Ft(()=>n(e,t)),()=>t),t=>B(E?Xt(e,Ue(t)):t,t=>{Ye(he,e)||Pn(e,1);const n=ht(he,e);t!==n&&(Fn(e,n,t),bt(he,e,t))})),vn=e=>wt(ge,e,()=>(pn(e,1),bt(ae,e,Et()),bt(ue,e,ut()),ut())),In=e=>Ft(()=>b[8]?.(e))??1?un(e,{},!0):ht(ge,e),Ln=(e,t,n)=>{if(Ft(()=>b[9]?.(e,n))??1){const[,s]=ht(ae,e);s(n),hn(e,t,n,{},!0)}},Rn=(e,t,n,s,r,o,l)=>{const a=ht(ht(X,e)?.[0],r);if(!z(a)&&!o)return fn(e,n,s,r,a);if(l||(Ft(()=>b[10]?.(e,n,r))??1)){const o=t=>{Jn(e,n,t,ht(s,t)),xn(e,n,t,-1),bt(s,t)};z(a)?o(r):ft(s,o),et(s)&&(Sn(e,n,-1),et(bt(t,n))&&(pn(e,-1),bt(ge,e),bt(ae,e),bt(ue,e)))}},Tn=(e,t)=>{const n=ht(ee,e);if(!z(n))return Cn(e,n);(t||(Ft(()=>b[12]?.(e))??1))&&(Fn(e,ht(he,e)),Pn(e,-1),bt(he,e))},pn=(e,t)=>Wn(W,e,t),Sn=(e,t,n)=>Wn(wt(x,e,ut),t,n)&&bt(H,e,wt(H,e,()=>0)+n),xn=(e,t,n,s)=>{const r=ht(ue,e),o=ht(r,n)??0;(0==o&&1==s||1==o&&-1==s)&&Wn(wt(_,e,ut),n,s),bt(r,n,o!=-s?o+s:void 0),Wn(wt(wt(J,e,ut),t,ut),n,s)},Jn=(e,t,n,s,r)=>{const o=Ye(ht(ht(F,e),t),n)&&z(s)?1:0;wt(wt(wt(P,e,ut),t,ut),n,()=>[s,0])[1]=r,T[3]?.(e,t,n,r,E,o),ot(ht(ht(F,e),t),n)},Pn=(e,t)=>Wn(O,e,t),Fn=(e,t,n)=>{const s=Ye(Q,e)&&z(t)?1:0;wt(A,e,()=>[t,0])[1]=n,T[4]?.(e,n,E,s),ot(Q,e)},On=(e,t,n,s,r)=>(fe(wt(wt(wt(j,e,ut),t,ut),n,()=>[]),s),r),An=(e,t,n)=>(fe(wt(q,e,()=>[]),t),n),Qn=(e,t,n)=>B(ht(ht(ht(P,e),t),n),([e,t])=>[!0,Ue(e),Ue(t)],()=>[!1,...yn(rs(e,t,n))]),zn=e=>B(ht(A,e),([e,t])=>[!0,Ue(e),Ue(t)],()=>[!1,...yn(as(e))]),Nn=e=>et(j)||et(Ze[e])?0:rt(e?pt(j):j,(t,n)=>rt(t,(t,s)=>rt(t,(t,r)=>Ht(Ze[e],[n,s,r],t)))),jn=e=>et(q)||et(tt[e])?0:rt(e?Rt(q):q,(t,n)=>Ht(tt[e],[n],t)),qn=(e,t,n,s)=>{if(!et(e))return Ht(t,s,()=>vt(e)),ft(e,(e,t)=>Ht(n,[...s??[],e],1==t)),1},Bn=e=>{const t=!et(be[e]),n=!et(De[e]),s=!(et(He[e])&&et(Pe[e])&&et(me[e])&&et(We[e])&&et(Le[e])&&et(Te[e])&&et(ye[e])&&!n&&et(Ce[e])&&et(ve[e])),r=!(et(Oe[e])&&et(_e[e])&&et(Ie[e])&&et(we[e]));if(t||s||r){const a=e?[Rt(W),Tt(_),Rt(H),Tt(x),pt(J),(l=P,Rt(l,e=>Rt(e,e=>Rt(e,kn))))]:[W,_,H,x,J,P];if(t){const t=is();t!=o&&Ht(be[e],void 0,t)}if(s){qn(a[0],Ce[e],ve[e]),rt(a[1],(t,n)=>qn(t,Le[e],Te[e],[n])),rt(a[2],(t,n)=>{0!=t&&Ht(ye[e],[n],es(n))});const t=yt();rt(a[3],(s,r)=>{qn(s,me[e],We[e],[r])&&n&&(Ht(De[e],[r,null]),Vt(t,r))}),n&&rt(a[5],(n,s)=>{if(!Ye(t,s)){const t=yt();rt(n,e=>rt(e,([n,s],r)=>s!==n?Vt(t,r):ot(e,r))),rt(t,t=>Ht(De[e],[s,t]))}}),rt(a[4],(t,n)=>rt(t,(t,s)=>qn(t,He[e],Pe[e],[n,s])))}if(r){let t;rt(a[5],(n,s)=>{let r;rt(n,(n,o)=>{let l;rt(n,([n,a],i)=>{a!==n&&(Ht(Oe[e],[s,o,i],Ue(a),Ue(n),Qn),t=r=l=1)}),l&&Ht(_e[e],[s,o],Qn)}),r&&Ht(Ie[e],[s],Qn)}),t&&Ht(we[e],void 0,Qn)}}var l},Un=e=>{const t=!et(lt[e]),n=!et(St[e])||!et(mt[e]),s=!et(kt[e])||!et(ct[e]);if(t||n||s){const r=e?[Rt(O),Rt(A,kn)]:[O,A];if(t){const t=hs();t!=l&&Ht(lt[e],void 0,t)}if(n&&qn(r[0],St[e],mt[e]),s){let t;rt(r[1],([n,s],r)=>{s!==n&&(Ht(kt[e],[r],Ue(s),Ue(n),zn),t=1)}),t&&Ht(ct[e],void 0,zn)}}},Zn=(e,...t)=>(Ws(()=>e(...ce(t,M))),Js),$n=(e,t,n,s,r)=>{const[o,l,a,i]=n;let d=ns(e,t,o,l,a,i);return _t(()=>{const n=ns(e,t,o,l,a,i);le(n,d)||(d=n,s(Js,e,t,o,l,a,d))},De[r?1:0],[e,t],[Xn])},Gn=(e=!1)=>[vt(P,(t,n)=>-1===ht(W,n)?void 0:vt(t,(t,s)=>-1===ht(ht(x,n),s)?void 0:vt(t,([,t])=>Ue(t,0,e),e=>Mn(e)),et,xe),et,xe),vt(A,([,t])=>Ue(t,0,e),e=>Mn(e)),1],Kn=()=>Lt(ge,Ue),Xn=()=>gt(ge),Yn=e=>gt(ht(ue,M(e))),es=e=>$e(ht(ge,M(e))),ts=e=>gt(ht(ge,M(e))),ns=(e,t,n,s=0,r,o=gn)=>Re(e)?ns(e.tableId,e.cellId,e.descending,e.offset,e.limit,e.sorter):ce(K(ie((e=>{const n=[];return ft(e,(e,s)=>{return fe(n,(r=s,o=e,[z(t)?o:Ue(ht(r,M(t))),o]));var r,o}),n})(ht(ge,M(e))),([e],[t])=>o(e,t)*(n?-1:1)),s,z(r)?r:s+r),([,e])=>e),ss=(e,t)=>gt(ht(ht(ge,M(e)),M(t))),rs=(e,t,n)=>Ue(ht(ht(ht(ge,M(e)),M(t)),M(n))),os=()=>vt(he,Ue),ls=()=>gt(he),as=e=>Ue(ht(he,M(e))),is=()=>!et(ge),ds=e=>Ye(ge,M(e)),cs=(e,t)=>Ye(ht(ue,M(e)),M(t)),us=(e,t)=>Ye(ht(ge,M(e)),M(t)),gs=(e,t,n)=>Ye(ht(ht(ge,M(e)),M(t)),M(n)),hs=()=>!et(he),fs=e=>Ye(he,M(e)),bs=e=>Zn(()=>{const t=$(e)?e():e;Ut(t)&&(e=>{At(e,()=>B(b[0],t=>Ft(()=>t(se(e),D)),()=>e),([e,t])=>{(xe(e)?Ss:ws)(e),(xe(t)?ks:vs)(t)},_n)})(t)}),ws=e=>Zn(()=>{const t=(e=>Re(e)?Ee(e,jt):e)(e);return(e=>Fe(e,Zt,On))(t)?cn(t):0}),Cs=(e,t,n,s,r,o)=>Zn((e,t,n)=>B(Gt(e,t,n,$(s)?s(rs(e,t,n)):s),s=>{const l=vn(e);B(r||o||!b[14]?.()?void 0:b[3],o=>{const a=ht(l,t),i={...a?vt(a):{},[n]:s};B(Ft(()=>o(e,t,se(i))),n=>((e,t,n,s,r)=>{Ct(wt(t,n,()=>(Sn(e,n,1),ut())),s,(t,s,o)=>B(Gt(e,n,s,Ue(o)),o=>fn(e,n,t,s,o,r)),(s,r)=>Rn(e,t,n,s,r,!0))})(e,l,t,n,r))},()=>bn(e,l,t,n,s,r))}),e,t,n),vs=e=>Zn(()=>{const t=qt(e);return Kt(t)?wn(t):0}),Is=(e,t,n)=>Zn(e=>B(Xt(e,$(t)?t(as(e)):t),t=>Cn(e,t,n)),e),Ls=e=>Zn(()=>At(e,()=>B(b[13],t=>Ft(()=>t(se(e),D)),()=>e),e=>{Me(e[0],(e,t)=>z(e)?ys(t):Me(e,(e,n)=>z(e)?Vs(t,n):Me(e,(e,s)=>ln(t,n,s,e,void 0,!0)))),Me(e[1],(e,t)=>dn(t,e))},_n)),Rs=e=>(it(()=>Ot(()=>on(Ae(e)))),Js),Ts=t=>Zn(()=>{const n=Dn(t);if(Fe(n,e=>Fe(e,Qt))&&(sn(),e=!0,tn(n),!et(ge))){const e=Kn();Ss(),ws(e)}}),ps=e=>Zn(()=>{const n=Dn(e);if((e=>Fe(e,Qt))(n)){rn();const e=os();Es(),ks(),t=!0,nn(n),vs(e)}}),Ss=()=>Zn(()=>Ft(()=>b[7]?.())??1?cn({},!0):0),ys=e=>Zn(e=>Ye(ge,e)?In(e):0,e),Vs=(e,t)=>Zn((e,t)=>B(ht(ge,e),n=>Ye(n,t)?Ln(e,n,t):0),e,t),ms=(e,t,n,s,r)=>Zn((e,t,n)=>B(ht(ge,e),o=>B(ht(o,t),l=>Ye(l,n)?Rn(e,o,t,l,n,s,r):0)),e,t,n),ks=()=>Zn(()=>Ft(()=>b[11]?.())??1?wn({},!0):0),Ms=(e,t)=>Zn(e=>Ye(he,e)?Tn(e,t):0,e),Ds=()=>Zn(()=>{sn(),tn({}),e=!1}),Es=()=>Zn(()=>{rn(),nn({}),t=!1}),Ws=(e,t)=>{if(-1!=g){_s();try{const n=e();return xs(t),n}catch(e){throw g>0&&(a=1,it(xs)),e}}},_s=()=>{if(-1!=g&&g++,1==g)try{T[0]?.(),Ht(Mt)}catch(e){throw a=1,it(xs),e}return Js},Hs=()=>{g=0,a=0,n=s=void 0,o=is(),l=hs(),de([W,_,H,x,J,P,F,j,O,A,Q,q],st)},xs=r=>{if(g>0&&(g--,0==g)){g=1;let o=!1,l=!1;const i=()=>{l=!0,B(n,([t,n])=>{tn(n),e=t}),B(s,([e,n])=>{nn(n),t=e}),rt(P,(e,t)=>rt(e,(e,n)=>rt(e,([e],s)=>ln(t,n,s,e,!0)))),st(P),rt(A,([e],t)=>dn(t,e,!0)),st(A)};let d=!1,c=!1;dt(()=>{let e,t=!1;const n=n=>{t||(e=n),t=!0};if(it(()=>{try{a?i():(Ft(()=>{Nn(1),et(P)||Bn(1),jn(1),et(A)||Un(1)}),r?.(Js)&&i(),T[1]?.(l),d=!0,Pt(Dt[0],void 0),g=-1,o=!0,Nn(0),et(P)||Bn(0),jn(0),et(A)||Un(0))}catch(e){throw o||i(),e}},n),d&&l&&(o||it(()=>T[1]?.(!0),n),it(()=>{T[2]?.(!0),c=!0},n)),d&&it(()=>{g=-1,Pt(Dt[1],void 0)},n),t)throw e},()=>dt(()=>c?0:T[2]?.(l),Hs))}return Js},Js={getContent:()=>[Kn(),os()],getTables:Kn,getTableIds:Xn,getTable:e=>It(ht(ge,M(e)),Ue),getTableCellIds:Yn,getRowCount:es,getRowIds:ts,getSortedRowIds:ns,getRow:(e,t)=>vt(ht(ht(ge,M(e)),M(t)),Ue),getCellIds:ss,getCell:rs,getValues:os,getValueIds:ls,getValue:as,hasTables:is,hasTable:ds,hasTableCell:cs,hasRow:us,hasCell:gs,hasValues:hs,hasValue:fs,getTablesJson:()=>Qe(ge),getValuesJson:()=>Qe(he),getJson:()=>Qe([ge,he]),getTablesSchemaJson:()=>Qe(It(Z,En)),getValuesSchemaJson:()=>Qe(vt(Y,En)),getSchemaJson:()=>Qe([It(Z,En),vt(Y,En)]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:bs,setTables:ws,setTable:(e,t)=>Zn(e=>{const n=jt(t);return Zt(n,e)?un(e,n):0},e),setRow:(e,t,n)=>Zn((e,t)=>{const s=Nt(n);return $t(e,t,s)?hn(e,vn(e),t,s):0},e,t),addRow:(e,t,n=!0)=>Ws(()=>{let s;const r=Nt(t);return $t(e,s,r)&&(e=M(e),hn(e,vn(e),s=((e,t)=>{const[n]=ht(ae,e);let s;do{s=n(t)}while(Ye(ht(ge,e),s));return s})(e,n?1:0),r)),s}),setPartialRow:(e,t,n)=>Zn((e,t)=>{const s=Nt(n);if($t(e,t,s,1)){const n=vn(e);Me(s,(s,r)=>bn(e,n,t,r,s))}},e,t),setCell:Cs,setValues:vs,setPartialValues:e=>Zn(()=>{const t=qt(e);return Kt(t,1)?Me(t,(e,t)=>Cn(t,e)):0}),setValue:Is,applyChanges:Ls,setTablesJson:Rs,setValuesJson:e=>(it(()=>Ot(()=>an(Ae(e)))),Js),setJson:e=>Zn(()=>it(()=>Ot(()=>{const[t,n]=Ae(e);on(t),an(n)}),()=>Rs(e))),setTablesSchema:Ts,setValuesSchema:ps,setSchema:(e,t)=>Zn(()=>{Ts(e),ps(t)}),delTables:Ss,delTable:ys,delRow:Vs,delCell:ms,delValues:ks,delValue:Ms,delTablesSchema:Ds,delValuesSchema:Es,delSchema:()=>Zn(()=>{Ds(),Es()}),transaction:Ws,startTransaction:_s,getTransactionChanges:()=>Gn(),getTransactionLog:()=>[!et(P),!et(A),Lt(P,kn,Mn),Lt(j),vt(A,kn,Mn),vt(q),vt(W),It(x),Lt(J),vt(O)],finishTransaction:xs,forEachTable:e=>rt(ge,(t,n)=>e(n,e=>rt(t,(t,n)=>e(n,e=>ft(t,(t,n)=>e(t,Ue(n))))))),forEachTableCell:(e,t)=>ft(ht(ue,M(e)),t),forEachRow:(e,t)=>rt(ht(ge,M(e)),(e,n)=>t(n,t=>ft(e,(e,n)=>t(e,Ue(n))))),forEachCell:(e,t,n)=>ft(ht(ht(ge,M(e)),M(t)),(e,t)=>n(e,Ue(t))),forEachValue:e=>ft(he,(t,n)=>e(t,Ue(n))),addSortedRowIdsListener:(e,t,n,s,r,o,l)=>Re(e)?$n(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit,e.sorter],t,n):$n(e,t,[n,s,r,void 0],o,l),addStartTransactionListener:e=>_t(e,Mt),addWillFinishTransactionListener:e=>_t(e,Dt[0]),addDidFinishTransactionListener:e=>_t(e,Dt[1]),callListener:e=>(Jt(e),Js),delListener:e=>(xt(e),Js),getListenerStats:()=>({hasTables:Vn(be),tables:Vn(we),tableIds:Vn(Ce),hasTable:Vn(ve),table:Vn(Ie),tableCellIds:Vn(Le),hasTableCell:Vn(Te,Ke),rowCount:Vn(ye),rowIds:Vn(me),sortedRowIds:Vn(De),hasRow:Vn(We,Ke),row:Vn(_e,Ke),cellIds:Vn(He,Ke),hasCell:Vn(Pe,Xe),cell:Vn(Oe,Xe),invalidCell:Vn(Ze,Xe),hasValues:Vn(lt),values:Vn(ct),valueIds:Vn(St),hasValue:Vn(mt),value:Vn(kt),invalidValue:Vn(tt),transaction:Ge(Mt)+Vn(Dt)}),isMergeable:()=>!1,_:[Hn,_t,Ht,(e,t,n,s,r)=>T=[e,t,n,s,r],(e,t,n,s,r,o,l,a,i,d,c,u,g,h,f)=>b=[e,t,n,s,r,o,l,a,i,d,c,u,g,h,f],ln,dn,()=>[Lt(ge),vt(he)],()=>Gn(!0),e=>Ot(()=>bs(e)),e=>Ot(()=>Ls(e))]};return Me({[f+C]:[0,be,[],()=>[is()]],[C]:[0,we],[v]:[0,Ce],[f+w]:[1,ve,[Xn],e=>[ds(...e)]],[w]:[1,Ie,[Xn]],[w+S]:[1,Le,[Xn]],[f+w+p]:[2,Te,[Xn,Yn],e=>[cs(...e)]],[L]:[1,ye,[Xn]],[R]:[1,me,[Xn]],[f+I]:[2,We,[Xn,ts],e=>[us(...e)]],[I]:[2,_e,[Xn,ts]],[S]:[2,He,[Xn,ts]],[f+p]:[3,Pe,[Xn,ts,ss],e=>[gs(...e)]],[p]:[3,Oe,[Xn,ts,ss],e=>yn(rs(...e))],InvalidCell:[3,Ze],[f+V]:[0,lt,[],()=>[hs()]],[V]:[0,ct],[m]:[0,St],[f+y]:[1,mt,[ls],e=>[fs(...e)]],[y]:[1,kt,[ls],e=>yn(as(e[0]))],InvalidValue:[1,tt]},([e,t,n,s],r)=>{Js[h+r+u]=(...r)=>_t(r[e],t[r[e+1]?1:0],e>0?K(r,0,e):void 0,n,s)}),pe(Js)},xn={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Jn=(e=t)=>[Tn(e),Tn(e)],Pn=(e,t)=>Re(e)&&De(e,t),Fn=(t,n,s,o)=>{if(!G(t))return!1;if(s?2!=X(t):2!=X(t)&&(3!=X(t)||1!==t[2]))return!1;const l=(t,o)=>((t,n,s,o)=>G(t)&&(3==X(t)?((t,n)=>{return G(t)&&3==X(t)&&Z(t[1])&&(s=t[2],e(s)==r)&&A(t[2])&&n(t[0]);var s})(t,n)&&cn(t[1],s):!o&&n(t[0])&&(1==X(t)||2==X(t)&&cn(t[1],s))))(t,o,n,s),a=e=>(e=>z(e)||!z(ze(e)))(e)&&!Be(e,o);return l(t[0],e=>Pn(e,e=>l(e,e=>Pn(e,e=>l(e,e=>Pn(e,e=>l(e,a)))))))&&l(t[1],e=>Pn(e,e=>l(e,a)))},On=(e,n=Date.now)=>{let s=1,r=Jn(),o=r,l=0,a=0,i=a;const d=[],c=ut(),g=yt(),[f,b]=un(e,n),w=Hn(),C=e=>{const t=s;return s=0,dt(e,()=>s=t),M},v=e=>{const[t,n,s]=e;fe(d,()=>{e[0]=t,e[1]=n,e[2]=s})},I=(e,t,n)=>(Ye(e,t)||fe(d,()=>bt(e,t)),wt(e,t,n)),L=(e,n=0)=>{const s=me(),o=me(),[[l,a=t,i=0],d]=e,[c,u]=r,[g,h,f]=c;let w=n?i:f,C=a;Me(l,([e,r=t,o=0],l)=>{const a=I(g,l,Tn),[i,d,c]=a;let u=n?o:c,h=r;Me(e,(e,t)=>{const[r,o,a]=R(e,I(i,t,Tn),Pe(Pe(s,l,me),t,me),n);u^=n?0:Nt(o?qt(t,o):0,qt(t,a)),h=In(h,r)}),u^=n?0:vn(d,r),v(a),Ln(a,r,u),w^=n?0:Nt(c?qt(l,c):0,qt(l,a[2])),C=In(C,h)}),w^=n?0:vn(h,a),v(c),Ln(c,a,w);const[L]=R(d,u,o,n);return b(In(C,L)),[s,o,1]},R=(e,n,s,r)=>{const[o,l=t,a=0]=e,[i,d,c]=n;let u=l,g=r?a:c;return Me(o,([e,n=t,o=0],l)=>{const a=I(i,l,()=>[void 0,t,0]),[,d,c]=a;(!d||n>d)&&(v(a),Ln(a,n,r?o:Bt(e,n)),a[0]=e,Ve(s,l,e),g^=r?0:Nt(qt(l,c),qt(l,a[2])),u=In(u,n))}),g^=r?0:vn(d,l),v(n),Ln(n,l,g),[u,c,n[2]]},T=()=>{for(;X(d);)be(d)?.();r=o,a=i},p=(e=!1)=>[pn(r[0],t=>pn(t,t=>pn(t,([t,n,s])=>[Ue(t,0,e),n,s]))),pn(r[1],([t,n,s])=>[Ue(t,0,e),n,s])],S=(e,t=!1)=>{const[[n,s,o],[l,a,i]]=r,d=e?wn:bn,u=me();rt(c,(e,s)=>B(ht(n,s),([n,r,o])=>{const l=me();rt(e,(e,s)=>B(ht(n,s),([n,r,o])=>{const a=me();rt(e,e=>{B(ht(n,e),([n,s,r])=>Ve(a,e,d(t?n:Ue(n),s,r)))}),Ve(l,s,d(a,r,o))})),Ve(u,s,d(l,r,o))}));const h=me();return rt(g,e=>B(ht(l,e),([n,s,r])=>Ve(h,e,d(t?n:Ue(n),s,r)))),[d(u,s,o),d(h,a,i),1]},y=()=>p(),V=(e,t)=>Fn(e,n()+en,1,t?1:0)?C(()=>w.transaction(()=>{w.delTables().delValues(),r=Jn();const n=L(e,1);(t?w._[10]:w.applyChanges)(n)})):M,m=(e,t)=>Fn(e,n()+en,0,t?1:0)?C(()=>w.transaction(()=>(t?w._[10]:w.applyChanges)(L(e)))):M,k=e=>m(e),M={getMergeableContent:y,getMergeableContentHashes:()=>[r[0][2],r[1][2]],getMergeableTableHashes:()=>vt(r[0][0],Cn),getMergeableTableDiff:e=>{const t=Rn(r[0][1]),n=me();return ft(r[0][0],(s,[r,o,l])=>Se(e,s)?l!=ye(e,s)?Ve(n,s,l):0:Ve(t[0],s,Sn([r,o],e=>Sn(e)))),[t,n]},getMergeableRowHashes:e=>{const t=me();return Me(e,(e,n)=>B(ht(r[0][0],n),([s,,r])=>r!=e?ft(s,(e,[,,s])=>Ve(Pe(t,n,me),e,s)):0)),t},getMergeableRowDiff:e=>{const t=Rn(r[0][1]),n=me();return Me(e,(e,s)=>ft(ht(r[0][0],s)?.[0],(r,[o,l,a])=>Se(e,r)?a!==ye(e,r)?Ve(Pe(n,s,me),r,a):0:Ve(Pe(t[0],s,Rn)[0],r,Sn([o,l])))),[t,n]},getMergeableCellHashes:e=>{const t=me();return Me(e,(e,n)=>B(ht(r[0][0],n),([s])=>Me(e,(e,r)=>B(ht(s,r),([s,,o])=>o!==e?ft(s,(e,[,,s])=>Ve(Pe(Pe(t,n,me),r,me),e,s)):0)))),t},getMergeableCellDiff:e=>{const[[t,n]]=r,s=me();return Me(e,(e,n)=>Me(e,(e,r)=>B(ht(t,n),([t,o])=>B(ht(t,r),([t,l])=>ft(t,(t,[a,i,d])=>d!==ye(e,t)?Ve(Pe(Pe(s,n,()=>Rn(o))[0],r,()=>Rn(l))[0],t,[a,i]):0))))),bn(s,n)},getMergeableValueHashes:()=>vt(r[1][0],Cn),getMergeableValueDiff:e=>{const[,[t,n]]=r,s=vt(t,fn,([,,t],n)=>t==ye(e,n));return bn(s,n)},setMergeableContent:e=>V(e),setDefaultContent:e=>(w.transaction(()=>{l=1,dt(()=>w.setContent(e),()=>l=0)}),M),getTransactionMergeableChanges:(e=!1)=>S(e),applyMergeableChanges:k,merge:e=>{const t=y(),n=e.getMergeableContent();return e.applyMergeableChanges(t),k(n)},__:[()=>{const e=a;return a=0,e},()=>p(!0),e=>S(e,!0),e=>V(e,!0),e=>m(e,!0)]};return w._[3](()=>{o=r,i=a},e=>e?T():0,e=>{e?T():he(d),st(c),st(g)},(e,n,r,o,i,d)=>{if(Vt(wt(wt(c,e,ut),n,yt),r),s||i){i&&(a=1);const s=l||d?t:f(),[c]=L([[{[e]:[{[n]:[{[r]:[o,s]}]}]}],[{}],1]),u=ye(ye(c,e),n);!s||u&&Se(u,r)||lt(13)}},(e,n,r,o)=>{if(Vt(g,e),s||r){r&&(a=1);const s=l||o?t:f(),[,i]=L([[{}],[{[e]:[n,s]}],1]);s&&!Se(i,e)&<(13)}}),Me(w,(e,t)=>Ve(M,t,D(t,"set")||D(t,"del")||D(t,"apply")||E(t,"Transaction")||t=="call"+u||"use"==t?(...t)=>(e(...t),M):D(t,h)&&E(t,u)?(...n)=>{const s=xn[K(t,3,-8)]??0,r=n[s];return n[s]=(e,...t)=>r(M,...t),e(...n)}:"isMergeable"==t?()=>!0:e)),pe(M)},An=ut([["avg",[(e,t)=>ue(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>ge(e,(e,t)=>x(e,t),-1/0),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:x(t,e)]],["min",[e=>ge(e,(e,t)=>J(e,t),O),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:J(t,e)]],["sum",[e=>ue(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Qn=(e,t,n,s,r,o=!1)=>{if(et(n))return;const[l,a,i,d]=r;return o||=z(e),rt(s,([n,s])=>{o||(e=z(n)?a?.(e,s,t++):z(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=z(e))}),o?l(tt(n),$e(n)):e},zn=Mt(e=>{const n=ut(),[s,r,o]=Wt(()=>C),[l,a,i,d,c,u,g,,h,f,b,w]=mt(e,te,e=>isNaN(e)||z(e)||j(e)||!1===e||e===t?void 0:1*e,s,r),C={setMetricDefinition:(e,t,s,o,l,a,i)=>{const d=$(s)?[s,l,a,i]:ht(An,s)??ht(An,"sum");return h(e,t,(t,s,o,l,a,i)=>{const c=u(e),h=$e(l);i||=z(c),t();let f=Qn(c,h,l,s,d,i);A(f)||(f=void 0),f!=c&&(g(e,f),r(n,[e],f,c))},kt(o,1)),C},delMetricDefinition:e=>(f(e),C),getStore:l,getMetricIds:a,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>s(t,n,[e]),delListener:e=>(o(e),C),destroy:w,getListenerStats:()=>({metric:Ge(n)})};return pe(C)}),Nn=(e,t,...n)=>ge(e,(e,t)=>z(e)?e:t(...n,e),t),jn=([e,t,n],s)=>[Ee(e,e=>z(e)?e:Ee(e,e=>z(e)?e:Ee(e,e=>z(e)?e:s(e)))),Ee(t,e=>z(e)?e:s(e)),n],qn=(e,t,n,...s)=>Y(e)?t:B(Nn(e,n(t,Ue),...s),e=>n(e,e=>at(()=>je(e),e))),Bn=(e,...t)=>oe(e,e=>e(...t)),Un=Mt((e,t)=>{const n=e=>t=>(fe(e,t),W),s=[],r=[],o=[],l=[],a=[],i=[],d=[],c=[],u=[],g=[],h=[],f=[],b=[],w=[],C=[s,r,o,l,a,i,d,c,u,g,h,f,b,w],v=n(s),I=n(r),L=n(o),R=n(l),T=n(a),p=n(i),S=n(d),y=n(c),V=n(u),m=n(g),k=n(h),M=n(f),D=n(b),E=n(w),W=pe({getStore:()=>e,addWillSetContentCallback:v,addWillSetTablesCallback:I,addWillSetTableCallback:L,addWillSetRowCallback:R,addWillSetCellCallback:T,addWillSetValuesCallback:p,addWillSetValueCallback:S,addWillDelTablesCallback:y,addWillDelTableCallback:V,addWillDelRowCallback:m,addWillDelCellCallback:k,addWillDelValuesCallback:M,addWillDelValueCallback:D,addWillApplyChangesCallback:E,destroy:()=>{t()&&(e._[4](),de(C,he))}});return e._[4]((e,t)=>t?qn(s,e,([e,t],n)=>[_e(e,n),Ee(t,n)]):Nn(s,e),e=>qn(r,e,_e),(e,t)=>qn(o,t,We,e),(e,t,n)=>qn(l,n,Ee,e,t),(e,t,n,s)=>qn(a,s,(e,t)=>t(e),e,t,n),e=>qn(i,e,Ee),(e,t)=>qn(d,t,(e,t)=>t(e),e),()=>Bn(c),e=>Bn(u,e),(e,t)=>Bn(g,e,t),(e,t,n)=>Bn(h,e,t,n),()=>Bn(f),e=>Bn(b,e),(e,t)=>t?qn(w,e,jn):Nn(w,e),()=>!Y(l)),W}),Zn="_",$n=Mt(e=>{const n=e._[0],s=n(),r=n(),o=ut(),l=ut(),a=yt(),i=ut(),d=ut(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},f=ut(),b=ut(),C=ut(),v=ut(),y=ut(),V=ut(),{_:[,m,k],delListener:M}=r,[D,E,W,_,H,x,J,P,,F,O,A]=mt(e,()=>[],te,m,k),Q=e=>wt(l,e,n),N=(e,t,...n)=>de(n,n=>Vt(wt(t,e,yt),n)),q=e=>ft(e,(e,t)=>rt(t,t=>e.delListener(t))),U=(e,t,n,...s)=>{const r=wt(t,e,yt);return de(s,t=>{Vt(r,t),n&&e.callListener(t)}),s},Z=(e,t,n)=>B(ht(t,e),s=>{e.delListener(n),ot(s,n),et(s)&&bt(t,e)}),G=e=>B(ht(v,e),t=>{ft(t,(e,t)=>ft(t,(t,n)=>e.delListener(n))),bt(v,e)}),ee=(e,t=ut())=>{const n=wt(C,e,ut);ft(n,(e,s)=>{ft(s,(n,r)=>Ye(ht(t,e),n)?0:(e.delListener(r),bt(s,n))),et(s)&&bt(n,e)}),ft(t,(t,s)=>{const r=wt(n,t,ut);rt(s,n=>wt(r,n,()=>t.addTableCellIdsListener(n,()=>it(()=>le(e),s=>{throw((e,t,n)=>{const s=wt(wt(v,e,ut),t,ut);wt(s,n,()=>t.addTableListener(n,()=>le(e)))})(e,t,n),s}))))}),et(n)&&bt(C,e)},ne=()=>{ft(o,e=>_(e)?0:bt(o,e)),ft(l,(e,t)=>_(e)||((e,t)=>!(nt(i,([,e])=>nt(e,([e])=>e!==t))&&nt(V,t=>!Ye(t,e))&&oe([f,b],e=>nt(e,e=>!Ye(e,t)))))(e,t)?0:bt(l,e))},se=(e,t,n)=>{N(e,n,e.addWillFinishTransactionListener(t.startTransaction)),N(e,n,e.addDidFinishTransactionListener(()=>t.finishTransaction()))},re=(e,t)=>(xe(t)?s.delRow:s.setRow)(Zn,e,{...t}),le=(s,r)=>{const l=[ut(),ut(),void 0,ut(),yt(),ut()];let a=!1;return it(()=>((s,r,o,l)=>Q(s).transaction(()=>B(((e,n)=>z(n)?x(e):[n[1],t,n[2]])(s,o),([a,,i])=>{const[d,c]=r,u=o?.[0]??H(s),g=i?Q(u):e,h=Q(s),f=o?.[3]??ue(s),b=r[4];i&&Vt(b,u);const w=[];let C=!1,v=0;const I=[[void 0,[u,void 0,void 0,[],ut(),g]]],L=[],R=[],T=[];a({select:(e,n,s)=>{const r=j(e)?n:e,o=j(e)?s:n,l=$(e)?[0,v+t,e]:z(o)?[0,e,t=>t(e)]:[0,o,t=>j(e)?t(!0,r,o):t(r,o)];return v++,fe(w,l),{as:e=>l[1]=e}},selectAll:(e,n,s)=>{C=!0;const r=j(e)?n:e,o=j(e)?s:n;fe(w,[1,r,$(o)?o:e=>(o??t)+e,$(o)||!z(o)&&o!==t?1:0])},join:(t,n,s,r)=>{const o=j(t)?n:t,[l,a]=j(t)?z(r)||$(s)?[void 0,s]:[s,r]:z(s)||$(n)?[void 0,n]:[n,s],i=j(t),d=i?Q(o):e;i&&Vt(b,o);const c=[o,[o,l,$(a)?a:e=>e(a),[],ut(),d]];return fe(I,c),{as:e=>c[0]=e}},where:(e,t,n,s)=>fe(L,$(e)?e:j(e)?e=>e(!0,t,n)===s:z(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,$(t)?[t,n,s,r]:ht(An,t)??[(e,t)=>t]]];return fe(R,o),{as:e=>o[0]=e}},having:(e,t)=>fe(T,$(e)?e:n=>n(e)===t),param:e=>ye(f,e)});const p=ut(I);ft(p,(e,[,t])=>B(ht(p,t),({3:t})=>z(e)?0:fe(t,e)));const S=e=>z(e),V=e=>ht(p,S(e)?void 0:e),m=r[5];if(de(w,([t,n,,s=0])=>t?B(V(n),([t,,,,,n])=>n===e?0:bt(m,t,ht(m,t)||s?1:0)):0),((e,t)=>{const n=(s,r,o=yt())=>s===r||!Ye(o,s)&&(Vt(o,s),!nt((n=>n===e?t:ht(y,n))(s),(e,t)=>!n(t,r,o))),s=(e,t)=>!nt(t,(t,s)=>!t||!n(s,e));!s(e,t)&&nt(y,(t,n)=>n===e||!s(n,t))||lt(16)})(s,m),h.delTable(s),Y(w))return l?.(),ge;const k=ut(R),M=!et(k)||!Y(T),D=[],E=r[3];de(w,([e,t,n])=>{e?M&&B(V(t),([e,,,,,t])=>{Vt(wt(E,t,yt),e),de(ie(t.getTableCellIds(e)),e=>fe(D,[n(e),te]))}):fe(D,[t,n])});const W=ut(D);if(M&&et(W))return l?.(),ge;const _=M?r[2]=n():h;if(M){const e=ut();ft(k,(t,[n,s])=>Vt(wt(e,n,yt),[t,s]));const t=yt();ft(W,n=>Ye(e,n)?0:Vt(t,n));const n=ut(),r=e=>z(e)?void 0:je(e),o=(t,n,r,o)=>B(t,([l,a,i,d])=>{ft(n,(t,[n])=>{const s=wt(l,t,ut),a=ht(s,r),i=o?void 0:n;if(a!==i){const n=yt([[a,i]]),o=$e(s);bt(s,r,i),rt(ht(e,t),([e,t])=>{const r=Qn(d[e],o,s,n,t);Ve(d,e,z(ze(r))?void 0:r)})}}),et(a)||!oe(T,e=>e(e=>d[e]))?h.delRow(s,i):z(i)?t[2]=h.addRow(s,{...d}):h.setRow(s,i,{...d})});N(_,d,_.addRowListener(s,null,(l,a,i,d)=>{const c=[],u=[],g=ut(),h=_.hasRow(s,i);let f=!h;rt(t,e=>{const[t,n,o]=d(s,i,e);fe(c,r(n)),fe(u,r(o)),f||=t}),ft(e,e=>{const[t,,n]=d(s,i,e);(f||t)&&bt(g,e,[n])}),f&&o(St(n,c,void 0,([,e])=>(ot(e,i),et(e))),g,i,1),h&&o(St(n,u,()=>{const e=me();return rt(t,t=>Ve(e,t,_.getCell(s,i,t))),[ut(),yt(),void 0,e]},([,e])=>{Vt(e,i)}),g,i)}))}const x=(e,t,n,r,o)=>{const l=e=>t.getCell(n,r,e);de(o,t=>{const[n,,s,r,o,a]=ht(p,t),i=s?.(l,e),d=ht(o,e),u=d?.[0];i!=u&&(B(d,([,e,t])=>Z(e,c,t)),bt(o,e,z(i)?void 0:[i,a,...U(a,c,1,a.addRowListener(n,i,()=>x(e,a,n,i,r)))]))}),(e=>{const t=(t,n,s)=>{const r=j(t)?n:t,o=j(t)?s:n;if(z(o))return g.getCell(u,e,t);if(r===u&&!j(t))return g.getCell(u,e,o);const l=ht(p,r);return z(l)?void 0:l[5].getCell(l[0],ht(l[4],e)?.[0],o)};_.transaction(()=>{oe(L,e=>e(t))?C?(()=>{const n=me();de(w,([s,r,o])=>{if(s)B(V(r),([t,,,,s,l])=>{const a=S(r)?e:ht(s,e)?.[0];B(a,e=>de(ie(l.getCellIds(t,e)),s=>Ve(n,o(s),l.getCell(t,e,s))))});else{const s=o(t,e),l=r;z(s)?ke(n,l):Ve(n,l,s)}}),xe(n)?_.delRow(s,e):_.setRow(s,e,n)})():ft(W,(n,r)=>_._[5](s,e,n,r(t,e))):_.delRow(s,e)})})(e)},{3:J}=ht(p,void 0),P=(e,t,n)=>{g.hasRow(u,n)?x(n,g,u,n,J):(_.delRow(s,n),rt(p,({4:e})=>B(ht(e,n),([,t,s])=>{Z(t,c,s),bt(e,n)})))};return _.transaction(()=>{de(g.getRowIds(u),e=>P(0,0,e)),U(g,c,0,g.addRowListener(u,null,P))}),M&&se(_,h,d),se(g,_,d),l?.(),ge})))(s,l,r,()=>{B(r,e=>ae(s,e)),q(ht(f,s)),q(ht(b,s)),bt(f,s,et(l[0])?void 0:l[0]),bt(b,s,et(l[1])?void 0:l[1]),bt(o,s,l[2]),ee(s,l[3]),G(s),bt(V,s,et(l[4])?void 0:l[4]),bt(y,s,et(l[5])?void 0:l[5]),a=!0}),e=>{throw a||(q(l[0]),q(l[1])),ne(),e}),ge},ae=(e,[t,n,r,o])=>{B(x(e),([,e])=>s.delListener(e)),Vt(a,e),dt(()=>{P(e,t),J(e,[n,s.addRowListener(Zn,e,()=>Ye(a,e)?0:le(e),!0),r]),re(e,o)},()=>ot(a,e))},ce=e=>(B(x(e),([,e])=>s.delListener(e)),s.delRow(Zn,e),(e=>{q(ht(f,e)),bt(f,e),de([ht(l,e),ht(o,e)],t=>t?.delTable(e))})(e),(e=>{q(ht(b,e)),bt(b,e)})(e),ee(e),G(e),bt(V,e),bt(y,e),F(e),ne(),ge),ue=e=>s.getRow(Zn,e),ge={setQueryDefinition:(e,t,n,s,r={})=>{const[o,l,a,i]=j(t)?[n,s,1,r]:[t,n,0,s??{}];return le(e,[o,l,a,i]),ne(),ge},delQueryDefinition:ce,getParamValues:ue,getParamValue:(e,t)=>s.getCell(Zn,e,t),setParamValues:(e,t)=>(_(e)&&re(e,t),ge),setParamValue:(e,t,n)=>(_(e)&&s.setCell(Zn,e,t,n),ge),getStore:D,getQueryIds:E,forEachQuery:W,hasQuery:_,getTableId:H,forEachResultTable:e=>W(t=>Q(t).hasTable(t)?e(t,e=>ge.forEachResultRow(t,e)):0),addQueryIdsListener:e=>O(()=>e(ge)),addParamValuesListener:(e,t)=>"p"+s.addRowListener(Zn,e,(e,n,s)=>t(ge,s,ue(s))),addParamValueListener:(e,t,n)=>"p"+s.addCellListener(Zn,e,t,(e,t,s,r,o)=>n(ge,s,r,o)),delListener:e=>{const t=ht(i,e);if("p"==e[0])s.delListener(K(e,1));else if(z(t))M(e);else{const[n,s,r]=t;ft(s,(e,[t,n])=>t.delListener(n)),B(r,M),bt(i,e),M(e),c[n]--}return ne(),ge},destroy:()=>{de(E(),ce),A()},getListenerStats:()=>({...c,paramValues:s.getListenerStats().row-X(E()),paramValue:s.getListenerStats().cell})};return Me({[w]:[2,1],[w+S]:[1,1],[L]:[1,1],[R]:[1,1],[T]:[1,5],[I]:[3,2],[S]:[1,2],[p]:[3,3]},([e,t],n)=>{de(K(["get","has","forEach"],0,e),e=>Ve(ge,e+g+n,(...t)=>(ht(l,t[0])??r)[e+n](...t))),Ve(ge,h+g+n+u,(...e)=>((s,r)=>{const o=m(te,d),l=ut(),a=()=>{const s=null==r?E():[r];de(s,s=>{return Ye(l,s)?0:bt(l,s,[Q(s),(r=Q(s),r[h+n+u](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:K(e,0,t))(e,t),(n,...s)=>e[t](ge,...s),!0))]);var r}),ft(l,(e,[t,n])=>null==r&&_(e)||e==r?0:(t.delListener(n),void bt(l,e)))};return a(),bt(i,o,[s,l,null==r?O(a):void 0]),c[s]++,o})((e=>e[0].toLowerCase()+K(e,1))(n),e[0]))}),pe(ge)}),Gn=Mt(e=>{const n=ut(),s=ut(),r=ut(),o=ut(),[l,a,i]=Wt(()=>T),[d,c,u,g,h,f,,,b,w,C,v]=mt(e,()=>[ut(),ut(),ut(),ut()],e=>z(e)?void 0:e+t,l,a),I=(e,t,n)=>B(f(e),([s,,r])=>{if(!Ye(r,t)){const o=yt();if(h(e)!=R(e))Vt(o,t);else{let e=t;for(;!z(e)&&!Ye(o,e);)Vt(o,e),e=ht(s,e)}if(n)return o;bt(r,t,o)}return ht(r,t)}),L=(e,t)=>B(f(e),([,,e])=>bt(e,t)),R=e=>ht(n,e),T={setRelationshipDefinition:(e,t,l,i)=>(bt(n,e,l),b(e,t,(t,n)=>{const l=yt(),i=yt(),d=yt(),[c,u]=f(e);rt(n,([t,n],s)=>{z(t)||(Vt(i,t),B(ht(u,t),e=>{ot(e,s),et(e)&&bt(u,t)})),z(n)||(Vt(i,n),Ye(u,n)||bt(u,n,yt()),Vt(ht(u,n),s)),Vt(l,s),bt(c,s,n),ft(ht(o,e),t=>{Ye(I(e,t),s)&&Vt(d,t)})}),t(),rt(l,t=>a(s,[e,t])),rt(i,t=>a(r,[e,t])),rt(d,t=>{L(e,t),a(o,[e,t])})},kt(i)),T),delRelationshipDefinition:e=>(bt(n,e),w(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(n=>t(n,t=>e.forEachRow(h(n),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>ht(f(e)?.[0],t),getLocalRowIds:(e,t)=>tt(ht(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>z(f(e))?[t]:tt(I(e,t,!0)),addRelationshipIdsListener:C,addRemoteRowIdListener:(e,t,n)=>l(n,s,[e,t]),addLocalRowIdsListener:(e,t,n)=>l(n,r,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(I(e,t),l(n,o,[e,t])),delListener:e=>(L(...i(e)??[]),T),destroy:v,getListenerStats:()=>({remoteRowId:Ke(s),localRowIds:Ke(r),linkedRowIds:Ke(o)})};return pe(T)});export{Nt as addOrRemoveHash,Ht as createCheckpoints,hn as createIndexes,On as createMergeableStore,zn as createMetrics,Un as createMiddleware,$n as createQueries,Gn as createRelationships,Hn as createStore,gn as defaultSorter,Ut as getCellHash,Zt as getCellInRowHash,zt as getHash,un as getHlcFunctions,$t as getRowHash,Gt as getRowInTableHash,Kt as getTableHash,Xt as getTableInTablesHash,Yt as getTablesHash,At as getUniqueId,Bt as getValueHash,qt as getValueInValuesHash,jt as getValuesHash};
|
package/min/index.js.gz
CHANGED
|
Binary file
|