tinybase 5.0.0-beta.10 → 5.0.0-beta.11
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/lib/cjs/mergeable-store.cjs +1 -1
- package/lib/cjs/mergeable-store.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-libsql.cjs +1 -1
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
- package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -1
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs/synchronizers.cjs +1 -1
- package/lib/cjs/synchronizers.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -1
- package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -1
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers.cjs +1 -1
- package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +1 -1
- package/lib/debug/persisters/persister-automerge.js +113 -101
- package/lib/debug/persisters/persister-browser.js +113 -97
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +113 -102
- package/lib/debug/persisters/persister-electric-sql.js +113 -102
- package/lib/debug/persisters/persister-expo-sqlite-next.js +113 -102
- package/lib/debug/persisters/persister-expo-sqlite.js +113 -102
- package/lib/debug/persisters/persister-file.js +108 -96
- package/lib/debug/persisters/persister-indexed-db.js +108 -96
- package/lib/debug/persisters/persister-libsql.js +113 -102
- package/lib/debug/persisters/persister-partykit-client.js +112 -100
- package/lib/debug/persisters/persister-powersync.js +113 -102
- package/lib/debug/persisters/persister-remote.js +108 -96
- package/lib/debug/persisters/persister-sqlite-wasm.js +113 -102
- package/lib/debug/persisters/persister-sqlite3.js +113 -102
- package/lib/debug/persisters/persister-yjs.js +113 -101
- package/lib/debug/persisters.js +107 -95
- package/lib/debug/store.js +1 -1
- package/lib/debug/synchronizers/synchronizer-local.js +114 -102
- package/lib/debug/synchronizers/synchronizer-ws-client.js +113 -101
- package/lib/debug/synchronizers/synchronizer-ws-server.js +151 -6
- package/lib/debug/synchronizers.js +113 -101
- package/lib/debug/tinybase.js +114 -102
- package/lib/debug/ui-react-dom.js +114 -98
- package/lib/es6/mergeable-store.js +1 -1
- package/lib/es6/mergeable-store.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-libsql.js +1 -1
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -1
- package/lib/es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-local.js +1 -1
- package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/es6/synchronizers.js +1 -1
- package/lib/es6/synchronizers.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/mergeable-store.js +1 -1
- package/lib/mergeable-store.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-libsql.js +1 -1
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -1
- package/lib/persisters/persister-powersync.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/synchronizers/synchronizer-local.js +1 -1
- package/lib/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/synchronizers.js +1 -1
- package/lib/synchronizers.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/persisters/persister-browser.d.ts +2 -2
- package/lib/types/persisters/persister-file.d.ts +1 -1
- package/lib/types/persisters.d.ts +73 -47
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -3
- package/lib/types/synchronizers.d.ts +1 -1
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
- package/lib/types/with-schemas/persisters.d.ts +99 -87
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -3
- package/lib/types/with-schemas/synchronizers.d.ts +1 -1
- package/lib/umd/mergeable-store.js +1 -1
- package/lib/umd/mergeable-store.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-libsql.js +1 -1
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -1
- package/lib/umd/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-local.js +1 -1
- package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd/synchronizers.js +1 -1
- package/lib/umd/synchronizers.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -1
- package/lib/umd-es6/mergeable-store.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-libsql.js +1 -1
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -1
- package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
- package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd-es6/synchronizers.js +1 -1
- package/lib/umd-es6/synchronizers.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/package.json +1 -1
- package/readme.md +2 -2
package/lib/debug/tinybase.js
CHANGED
|
@@ -1118,24 +1118,27 @@ const createMetrics = getCreateFunction((store) => {
|
|
|
1118
1118
|
|
|
1119
1119
|
const scheduleRunning = mapNew();
|
|
1120
1120
|
const scheduleActions = mapNew();
|
|
1121
|
-
const getStoreFunctions = (
|
|
1122
|
-
|
|
1121
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
1122
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
1123
1123
|
? [
|
|
1124
|
-
0,
|
|
1125
|
-
store.getContent,
|
|
1126
|
-
store.getTransactionChanges,
|
|
1127
|
-
([changedTables, changedValues]) =>
|
|
1128
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1129
|
-
store.setContent,
|
|
1130
|
-
]
|
|
1131
|
-
: [
|
|
1132
1124
|
1,
|
|
1133
1125
|
store.getMergeableContent,
|
|
1134
1126
|
store.getTransactionMergeableChanges,
|
|
1135
1127
|
([[changedTables], [changedValues]]) =>
|
|
1136
1128
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1137
1129
|
store.setDefaultContent,
|
|
1138
|
-
]
|
|
1130
|
+
]
|
|
1131
|
+
: supportedStoreType != 2
|
|
1132
|
+
? [
|
|
1133
|
+
0,
|
|
1134
|
+
store.getContent,
|
|
1135
|
+
store.getTransactionChanges,
|
|
1136
|
+
([changedTables, changedValues]) =>
|
|
1137
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1138
|
+
store.setContent,
|
|
1139
|
+
]
|
|
1140
|
+
: /* istanbul ignore next */
|
|
1141
|
+
0;
|
|
1139
1142
|
const createCustomPersister = (
|
|
1140
1143
|
store,
|
|
1141
1144
|
getPersisted,
|
|
@@ -1143,7 +1146,7 @@ const createCustomPersister = (
|
|
|
1143
1146
|
addPersisterListener,
|
|
1144
1147
|
delPersisterListener,
|
|
1145
1148
|
onIgnoredError,
|
|
1146
|
-
|
|
1149
|
+
supportedStoreType,
|
|
1147
1150
|
extra = {},
|
|
1148
1151
|
scheduleId = [],
|
|
1149
1152
|
) => {
|
|
@@ -1161,7 +1164,7 @@ const createCustomPersister = (
|
|
|
1161
1164
|
getChanges,
|
|
1162
1165
|
hasChanges,
|
|
1163
1166
|
setDefaultContent,
|
|
1164
|
-
] = getStoreFunctions(
|
|
1167
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
1165
1168
|
const run = async () => {
|
|
1166
1169
|
/* istanbul ignore else */
|
|
1167
1170
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -1179,20 +1182,6 @@ const createCustomPersister = (
|
|
|
1179
1182
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
1180
1183
|
}
|
|
1181
1184
|
};
|
|
1182
|
-
const loadLock = async (actions) => {
|
|
1183
|
-
/* istanbul ignore else */
|
|
1184
|
-
if (loadSave != 2) {
|
|
1185
|
-
loadSave = 1;
|
|
1186
|
-
{
|
|
1187
|
-
loads++;
|
|
1188
|
-
}
|
|
1189
|
-
await persister.schedule(async () => {
|
|
1190
|
-
await actions();
|
|
1191
|
-
loadSave = 0;
|
|
1192
|
-
});
|
|
1193
|
-
}
|
|
1194
|
-
return persister;
|
|
1195
|
-
};
|
|
1196
1185
|
const setContentOrChanges = (contentOrChanges) => {
|
|
1197
1186
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
1198
1187
|
? contentOrChanges?.[2] === 1
|
|
@@ -1202,9 +1191,14 @@ const createCustomPersister = (
|
|
|
1202
1191
|
? store.applyChanges
|
|
1203
1192
|
: store.setContent)(contentOrChanges);
|
|
1204
1193
|
};
|
|
1205
|
-
const
|
|
1206
|
-
|
|
1207
|
-
|
|
1194
|
+
const load = async (initialContent) => {
|
|
1195
|
+
/* istanbul ignore else */
|
|
1196
|
+
if (loadSave != 2) {
|
|
1197
|
+
loadSave = 1;
|
|
1198
|
+
{
|
|
1199
|
+
loads++;
|
|
1200
|
+
}
|
|
1201
|
+
await schedule(async () => {
|
|
1208
1202
|
try {
|
|
1209
1203
|
setContentOrChanges(await getPersisted());
|
|
1210
1204
|
} catch (error) {
|
|
@@ -1213,76 +1207,94 @@ const createCustomPersister = (
|
|
|
1213
1207
|
setDefaultContent(initialContent);
|
|
1214
1208
|
}
|
|
1215
1209
|
}
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
});
|
|
1231
|
-
},
|
|
1232
|
-
);
|
|
1233
|
-
return persister;
|
|
1234
|
-
},
|
|
1235
|
-
stopAutoLoad: () => {
|
|
1236
|
-
if (autoLoadHandle) {
|
|
1237
|
-
delPersisterListener(autoLoadHandle);
|
|
1238
|
-
autoLoadHandle = void 0;
|
|
1239
|
-
}
|
|
1240
|
-
return persister;
|
|
1241
|
-
},
|
|
1242
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
1243
|
-
save: async (getChanges2) => {
|
|
1244
|
-
/* istanbul ignore else */
|
|
1245
|
-
if (loadSave != 1) {
|
|
1246
|
-
loadSave = 2;
|
|
1247
|
-
{
|
|
1248
|
-
saves++;
|
|
1249
|
-
}
|
|
1250
|
-
await persister.schedule(async () => {
|
|
1251
|
-
try {
|
|
1252
|
-
await setPersisted(getContent, getChanges2);
|
|
1253
|
-
} catch (error) {
|
|
1254
|
-
/* istanbul ignore next */
|
|
1255
|
-
onIgnoredError?.(error);
|
|
1210
|
+
loadSave = 0;
|
|
1211
|
+
});
|
|
1212
|
+
}
|
|
1213
|
+
return persister;
|
|
1214
|
+
};
|
|
1215
|
+
const startAutoLoad = async (initialContent) => {
|
|
1216
|
+
await stopAutoLoad().load(initialContent);
|
|
1217
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
1218
|
+
if (changes || content) {
|
|
1219
|
+
/* istanbul ignore else */
|
|
1220
|
+
if (loadSave != 2) {
|
|
1221
|
+
loadSave = 1;
|
|
1222
|
+
{
|
|
1223
|
+
loads++;
|
|
1256
1224
|
}
|
|
1225
|
+
setContentOrChanges(changes ?? content);
|
|
1257
1226
|
loadSave = 0;
|
|
1258
|
-
}
|
|
1227
|
+
}
|
|
1228
|
+
} else {
|
|
1229
|
+
await load();
|
|
1259
1230
|
}
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1231
|
+
});
|
|
1232
|
+
return persister;
|
|
1233
|
+
};
|
|
1234
|
+
const stopAutoLoad = () => {
|
|
1235
|
+
if (autoLoadHandle) {
|
|
1236
|
+
delPersisterListener(autoLoadHandle);
|
|
1237
|
+
autoLoadHandle = void 0;
|
|
1238
|
+
}
|
|
1239
|
+
return persister;
|
|
1240
|
+
};
|
|
1241
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
1242
|
+
const save = async (changes) => {
|
|
1243
|
+
/* istanbul ignore else */
|
|
1244
|
+
if (loadSave != 1) {
|
|
1245
|
+
loadSave = 2;
|
|
1246
|
+
{
|
|
1247
|
+
saves++;
|
|
1248
|
+
}
|
|
1249
|
+
await schedule(async () => {
|
|
1250
|
+
try {
|
|
1251
|
+
await setPersisted(getContent, changes);
|
|
1252
|
+
} catch (error) {
|
|
1253
|
+
/* istanbul ignore next */
|
|
1254
|
+
onIgnoredError?.(error);
|
|
1268
1255
|
}
|
|
1256
|
+
loadSave = 0;
|
|
1269
1257
|
});
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1258
|
+
}
|
|
1259
|
+
return persister;
|
|
1260
|
+
};
|
|
1261
|
+
const startAutoSave = async () => {
|
|
1262
|
+
await stopAutoSave().save();
|
|
1263
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
1264
|
+
const changes = getChanges();
|
|
1265
|
+
if (hasChanges(changes)) {
|
|
1266
|
+
save(changes);
|
|
1267
|
+
}
|
|
1268
|
+
});
|
|
1269
|
+
return persister;
|
|
1270
|
+
};
|
|
1271
|
+
const stopAutoSave = () => {
|
|
1272
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
1273
|
+
autoSaveListenerId = void 0;
|
|
1274
|
+
return persister;
|
|
1275
|
+
};
|
|
1276
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
1277
|
+
const schedule = async (...actions) => {
|
|
1278
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
1279
|
+
await run();
|
|
1280
|
+
return persister;
|
|
1281
|
+
};
|
|
1282
|
+
const getStore = () => store;
|
|
1283
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
1284
|
+
const getStats = () => ({loads, saves});
|
|
1285
|
+
const persister = {
|
|
1286
|
+
load,
|
|
1287
|
+
startAutoLoad,
|
|
1288
|
+
stopAutoLoad,
|
|
1289
|
+
isAutoLoading,
|
|
1290
|
+
save,
|
|
1291
|
+
startAutoSave,
|
|
1292
|
+
stopAutoSave,
|
|
1293
|
+
isAutoSaving,
|
|
1294
|
+
schedule,
|
|
1295
|
+
getStore,
|
|
1296
|
+
destroy,
|
|
1297
|
+
getStats,
|
|
1286
1298
|
...extra,
|
|
1287
1299
|
};
|
|
1288
1300
|
return objFreeze(persister);
|
|
@@ -1442,10 +1454,10 @@ const createCustomSynchronizer = (
|
|
|
1442
1454
|
);
|
|
1443
1455
|
} else if (messageType == CONTENT_HASHES && persister.isAutoLoading()) {
|
|
1444
1456
|
getChangesFromOtherStore(fromClientId, messageBody).then((changes) => {
|
|
1445
|
-
persisterListener?.(void 0,
|
|
1457
|
+
persisterListener?.(void 0, changes);
|
|
1446
1458
|
});
|
|
1447
1459
|
} else if (messageType == CONTENT_DIFF && persister.isAutoLoading()) {
|
|
1448
|
-
persisterListener?.(void 0,
|
|
1460
|
+
persisterListener?.(void 0, messageBody);
|
|
1449
1461
|
} else {
|
|
1450
1462
|
ifNotUndefined(
|
|
1451
1463
|
messageType == GET_CONTENT_HASHES && persister.isAutoSaving()
|
|
@@ -1569,12 +1581,12 @@ const createCustomSynchronizer = (
|
|
|
1569
1581
|
? changes
|
|
1570
1582
|
: void 0;
|
|
1571
1583
|
};
|
|
1572
|
-
const setPersisted = async (
|
|
1584
|
+
const setPersisted = async (_getContent, changes) => {
|
|
1573
1585
|
{
|
|
1574
1586
|
sends++;
|
|
1575
1587
|
}
|
|
1576
|
-
if (
|
|
1577
|
-
send(null, null, CONTENT_DIFF,
|
|
1588
|
+
if (changes) {
|
|
1589
|
+
send(null, null, CONTENT_DIFF, changes);
|
|
1578
1590
|
} else {
|
|
1579
1591
|
send(null, null, CONTENT_HASHES, store.getMergeableContentHashes());
|
|
1580
1592
|
}
|
|
@@ -1596,7 +1608,7 @@ const createCustomSynchronizer = (
|
|
|
1596
1608
|
addPersisterListener,
|
|
1597
1609
|
delPersisterListener,
|
|
1598
1610
|
onIgnoredError,
|
|
1599
|
-
|
|
1611
|
+
2,
|
|
1600
1612
|
{startSync, stopSync, destroy, getSynchronizerStats, ...extra},
|
|
1601
1613
|
);
|
|
1602
1614
|
return persister;
|
|
@@ -3209,7 +3221,7 @@ const createStore = () => {
|
|
|
3209
3221
|
}
|
|
3210
3222
|
if (transactions == 1) {
|
|
3211
3223
|
internalListeners[0]?.();
|
|
3212
|
-
callListeners(startTransactionListeners
|
|
3224
|
+
callListeners(startTransactionListeners);
|
|
3213
3225
|
}
|
|
3214
3226
|
return store;
|
|
3215
3227
|
};
|
|
@@ -1624,24 +1624,27 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
|
1624
1624
|
|
|
1625
1625
|
const scheduleRunning = mapNew();
|
|
1626
1626
|
const scheduleActions = mapNew();
|
|
1627
|
-
const getStoreFunctions = (
|
|
1628
|
-
|
|
1627
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
1628
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
1629
1629
|
? [
|
|
1630
|
-
0,
|
|
1631
|
-
store.getContent,
|
|
1632
|
-
store.getTransactionChanges,
|
|
1633
|
-
([changedTables, changedValues]) =>
|
|
1634
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1635
|
-
store.setContent,
|
|
1636
|
-
]
|
|
1637
|
-
: [
|
|
1638
1630
|
1,
|
|
1639
1631
|
store.getMergeableContent,
|
|
1640
1632
|
store.getTransactionMergeableChanges,
|
|
1641
1633
|
([[changedTables], [changedValues]]) =>
|
|
1642
1634
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1643
1635
|
store.setDefaultContent,
|
|
1644
|
-
]
|
|
1636
|
+
]
|
|
1637
|
+
: supportedStoreType != 2
|
|
1638
|
+
? [
|
|
1639
|
+
0,
|
|
1640
|
+
store.getContent,
|
|
1641
|
+
store.getTransactionChanges,
|
|
1642
|
+
([changedTables, changedValues]) =>
|
|
1643
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1644
|
+
store.setContent,
|
|
1645
|
+
]
|
|
1646
|
+
: /* istanbul ignore next */
|
|
1647
|
+
0;
|
|
1645
1648
|
const createCustomPersister = (
|
|
1646
1649
|
store,
|
|
1647
1650
|
getPersisted,
|
|
@@ -1649,7 +1652,7 @@ const createCustomPersister = (
|
|
|
1649
1652
|
addPersisterListener,
|
|
1650
1653
|
delPersisterListener,
|
|
1651
1654
|
onIgnoredError,
|
|
1652
|
-
|
|
1655
|
+
supportedStoreType,
|
|
1653
1656
|
extra = {},
|
|
1654
1657
|
scheduleId = [],
|
|
1655
1658
|
) => {
|
|
@@ -1667,7 +1670,7 @@ const createCustomPersister = (
|
|
|
1667
1670
|
getChanges,
|
|
1668
1671
|
hasChanges,
|
|
1669
1672
|
setDefaultContent,
|
|
1670
|
-
] = getStoreFunctions(
|
|
1673
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
1671
1674
|
const run = async () => {
|
|
1672
1675
|
/* istanbul ignore else */
|
|
1673
1676
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -1685,20 +1688,6 @@ const createCustomPersister = (
|
|
|
1685
1688
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
1686
1689
|
}
|
|
1687
1690
|
};
|
|
1688
|
-
const loadLock = async (actions) => {
|
|
1689
|
-
/* istanbul ignore else */
|
|
1690
|
-
if (loadSave != 2) {
|
|
1691
|
-
loadSave = 1;
|
|
1692
|
-
{
|
|
1693
|
-
loads++;
|
|
1694
|
-
}
|
|
1695
|
-
await persister.schedule(async () => {
|
|
1696
|
-
await actions();
|
|
1697
|
-
loadSave = 0;
|
|
1698
|
-
});
|
|
1699
|
-
}
|
|
1700
|
-
return persister;
|
|
1701
|
-
};
|
|
1702
1691
|
const setContentOrChanges = (contentOrChanges) => {
|
|
1703
1692
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
1704
1693
|
? contentOrChanges?.[2] === 1
|
|
@@ -1708,9 +1697,14 @@ const createCustomPersister = (
|
|
|
1708
1697
|
? store.applyChanges
|
|
1709
1698
|
: store.setContent)(contentOrChanges);
|
|
1710
1699
|
};
|
|
1711
|
-
const
|
|
1712
|
-
|
|
1713
|
-
|
|
1700
|
+
const load = async (initialContent) => {
|
|
1701
|
+
/* istanbul ignore else */
|
|
1702
|
+
if (loadSave != 2) {
|
|
1703
|
+
loadSave = 1;
|
|
1704
|
+
{
|
|
1705
|
+
loads++;
|
|
1706
|
+
}
|
|
1707
|
+
await schedule(async () => {
|
|
1714
1708
|
try {
|
|
1715
1709
|
setContentOrChanges(await getPersisted());
|
|
1716
1710
|
} catch (error) {
|
|
@@ -1719,76 +1713,94 @@ const createCustomPersister = (
|
|
|
1719
1713
|
setDefaultContent(initialContent);
|
|
1720
1714
|
}
|
|
1721
1715
|
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
});
|
|
1737
|
-
},
|
|
1738
|
-
);
|
|
1739
|
-
return persister;
|
|
1740
|
-
},
|
|
1741
|
-
stopAutoLoad: () => {
|
|
1742
|
-
if (autoLoadHandle) {
|
|
1743
|
-
delPersisterListener(autoLoadHandle);
|
|
1744
|
-
autoLoadHandle = void 0;
|
|
1745
|
-
}
|
|
1746
|
-
return persister;
|
|
1747
|
-
},
|
|
1748
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
1749
|
-
save: async (getChanges2) => {
|
|
1750
|
-
/* istanbul ignore else */
|
|
1751
|
-
if (loadSave != 1) {
|
|
1752
|
-
loadSave = 2;
|
|
1753
|
-
{
|
|
1754
|
-
saves++;
|
|
1755
|
-
}
|
|
1756
|
-
await persister.schedule(async () => {
|
|
1757
|
-
try {
|
|
1758
|
-
await setPersisted(getContent, getChanges2);
|
|
1759
|
-
} catch (error) {
|
|
1760
|
-
/* istanbul ignore next */
|
|
1761
|
-
onIgnoredError?.(error);
|
|
1716
|
+
loadSave = 0;
|
|
1717
|
+
});
|
|
1718
|
+
}
|
|
1719
|
+
return persister;
|
|
1720
|
+
};
|
|
1721
|
+
const startAutoLoad = async (initialContent) => {
|
|
1722
|
+
await stopAutoLoad().load(initialContent);
|
|
1723
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
1724
|
+
if (changes || content) {
|
|
1725
|
+
/* istanbul ignore else */
|
|
1726
|
+
if (loadSave != 2) {
|
|
1727
|
+
loadSave = 1;
|
|
1728
|
+
{
|
|
1729
|
+
loads++;
|
|
1762
1730
|
}
|
|
1731
|
+
setContentOrChanges(changes ?? content);
|
|
1763
1732
|
loadSave = 0;
|
|
1764
|
-
}
|
|
1733
|
+
}
|
|
1734
|
+
} else {
|
|
1735
|
+
await load();
|
|
1765
1736
|
}
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1737
|
+
});
|
|
1738
|
+
return persister;
|
|
1739
|
+
};
|
|
1740
|
+
const stopAutoLoad = () => {
|
|
1741
|
+
if (autoLoadHandle) {
|
|
1742
|
+
delPersisterListener(autoLoadHandle);
|
|
1743
|
+
autoLoadHandle = void 0;
|
|
1744
|
+
}
|
|
1745
|
+
return persister;
|
|
1746
|
+
};
|
|
1747
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
1748
|
+
const save = async (changes) => {
|
|
1749
|
+
/* istanbul ignore else */
|
|
1750
|
+
if (loadSave != 1) {
|
|
1751
|
+
loadSave = 2;
|
|
1752
|
+
{
|
|
1753
|
+
saves++;
|
|
1754
|
+
}
|
|
1755
|
+
await schedule(async () => {
|
|
1756
|
+
try {
|
|
1757
|
+
await setPersisted(getContent, changes);
|
|
1758
|
+
} catch (error) {
|
|
1759
|
+
/* istanbul ignore next */
|
|
1760
|
+
onIgnoredError?.(error);
|
|
1774
1761
|
}
|
|
1762
|
+
loadSave = 0;
|
|
1775
1763
|
});
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1764
|
+
}
|
|
1765
|
+
return persister;
|
|
1766
|
+
};
|
|
1767
|
+
const startAutoSave = async () => {
|
|
1768
|
+
await stopAutoSave().save();
|
|
1769
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
1770
|
+
const changes = getChanges();
|
|
1771
|
+
if (hasChanges(changes)) {
|
|
1772
|
+
save(changes);
|
|
1773
|
+
}
|
|
1774
|
+
});
|
|
1775
|
+
return persister;
|
|
1776
|
+
};
|
|
1777
|
+
const stopAutoSave = () => {
|
|
1778
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
1779
|
+
autoSaveListenerId = void 0;
|
|
1780
|
+
return persister;
|
|
1781
|
+
};
|
|
1782
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
1783
|
+
const schedule = async (...actions) => {
|
|
1784
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
1785
|
+
await run();
|
|
1786
|
+
return persister;
|
|
1787
|
+
};
|
|
1788
|
+
const getStore = () => store;
|
|
1789
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
1790
|
+
const getStats = () => ({loads, saves});
|
|
1791
|
+
const persister = {
|
|
1792
|
+
load,
|
|
1793
|
+
startAutoLoad,
|
|
1794
|
+
stopAutoLoad,
|
|
1795
|
+
isAutoLoading,
|
|
1796
|
+
save,
|
|
1797
|
+
startAutoSave,
|
|
1798
|
+
stopAutoSave,
|
|
1799
|
+
isAutoSaving,
|
|
1800
|
+
schedule,
|
|
1801
|
+
getStore,
|
|
1802
|
+
destroy,
|
|
1803
|
+
getStats,
|
|
1792
1804
|
...extra,
|
|
1793
1805
|
};
|
|
1794
1806
|
return objFreeze(persister);
|
|
@@ -1809,7 +1821,11 @@ const createStoragePersister = (
|
|
|
1809
1821
|
const addPersisterListener = (listener) => {
|
|
1810
1822
|
const storageListener = (event) => {
|
|
1811
1823
|
if (event.storageArea === storage && event.key === storageName) {
|
|
1812
|
-
|
|
1824
|
+
try {
|
|
1825
|
+
listener(jsonParse(event.newValue));
|
|
1826
|
+
} catch {
|
|
1827
|
+
listener();
|
|
1828
|
+
}
|
|
1813
1829
|
}
|
|
1814
1830
|
};
|
|
1815
1831
|
WINDOW.addEventListener(STORAGE, storageListener);
|
|
@@ -1824,7 +1840,7 @@ const createStoragePersister = (
|
|
|
1824
1840
|
addPersisterListener,
|
|
1825
1841
|
delPersisterListener,
|
|
1826
1842
|
onIgnoredError,
|
|
1827
|
-
|
|
1843
|
+
3,
|
|
1828
1844
|
{getStorageName: () => storageName},
|
|
1829
1845
|
);
|
|
1830
1846
|
};
|
|
@@ -2879,7 +2895,7 @@ const createStore = () => {
|
|
|
2879
2895
|
}
|
|
2880
2896
|
if (transactions == 1) {
|
|
2881
2897
|
internalListeners[0]?.();
|
|
2882
|
-
callListeners(startTransactionListeners
|
|
2898
|
+
callListeners(startTransactionListeners);
|
|
2883
2899
|
}
|
|
2884
2900
|
return store;
|
|
2885
2901
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,l="",t=e(l),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Has",i="Ids",c="Table",d=c+"s",g=c+i,v="Row",h=v+"Count",b=v+i,f="Cell",C=f+i,T="Value",V=T+"s",p=T+i,w=e=>l+e,S=(e,l)=>e.startsWith(l),y=(e,l)=>e.endsWith(l),I=Math.max,M=isFinite,R=e=>null==e,m=(e,l,t)=>R(e)?null==t?void 0:t():l(e),L=e=>e==t||e==n,H=l=>e(l)==a,J=e=>Array.isArray(e),E=(e,l,t)=>e.slice(l,t),D=e=>e.length,F=(e,l)=>e.forEach(l),O=(e,l)=>e.map(l),x=(e,...l)=>e.push(...l),z=Object,A=e=>z.getPrototypeOf(e),P=z.entries,W=z.isFrozen,k=e=>!R(e)&&m(A(e),(e=>e==z.prototype||R(A(e))),(()=>!0)),N=z.keys,j=z.freeze,$=(e=[])=>z.fromEntries(e),q=(e,l)=>l in e,B=(e,l)=>(delete e[l],e),G=(e,l)=>F(P(e),(([e,t])=>l(t,e))),K=(e,l)=>O(P(e),(([e,t])=>l(t,e))),Q=e=>k(e)&&0==(e=>D(N(e)))(e),U=(e,l,t)=>(q(e,l)||(e[l]=t()),e[l]),X=(e,l,t,n=0)=>R(e)||!k(e)||!n&&Q(e)||W(e)?(null==t||t(),!1):(K(e,((t,n)=>{l(t,n)||B(e,n)})),!!n||!Q(e)),Y=e=>new Set(J(e)||R(e)?e:[e]),Z=(e,l)=>null==e?void 0:e.add(l),_=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},ee=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},le=e=>R(e)||0==_(e),te=e=>e.clear(),ne=(e,l)=>null==e?void 0:e.forEach(l),se=(e,l)=>null==e?void 0:e.delete(l),ae=e=>new Map(e),re=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},oe=(e,l)=>null==e?void 0:e.get(l),ue=(e,l)=>ne(e,((e,t)=>l(t,e))),ie=(e,l,t)=>R(t)?(se(e,l),e):null==e?void 0:e.set(l,t),ce=(e,l,t,n)=>(ee(e,l)?null==n||n(oe(e,l)):ie(e,l,t()),oe(e,l)),de=(e,l,t,n=ie)=>(K(l,((l,n)=>t(e,n,l))),ue(e,(t=>q(l,t)?0:n(e,t))),e),ge=(e,l,t,n)=>{const s={};return ne(e,((e,a)=>{if(!(null==t?void 0:t(e,a))){const t=l?l(e,a):e;!(null==n?void 0:n(t))&&(s[a]=t)}})),s},ve=(e,l,t)=>ge(e,(e=>ge(e,l,t)),le,Q),he=(e,l,t)=>ge(e,(e=>ve(e,l,t)),le,Q),be=(e,l)=>{const t=ae();return ne(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},fe=e=>be(e,be),Ce=e=>be(e,fe),Te=(e,l,t,n,s=0)=>m((t?ce:oe)(e,l[s],s>D(l)-2?t:ae),(a=>{if(s>D(l)-2)return(null==n?void 0:n(a))&&ie(e,l[s]),a;const r=Te(a,l,t,n,s+1);return le(a)&&ie(e,l[s]),r})),Ve=new globalThis.TextEncoder,pe=e=>{let l=2166136261;return F(Ve.encode(e),(e=>{l^=e,l+=(l<<1)+(l<<4)+(l<<7)+(l<<8)+(l<<24)})),l>>>0},we=([e,l,t])=>[e,l,t],Se=([e,l])=>ye(e,l),ye=(e,l)=>l?[e,l]:[e],Ie=e=>e[2],Me=(e,l)=>pe(e+":"+l),Re=(e,l)=>l>e?(e?pe(e):0)^pe(l):0,me=(e,l)=>{var t;return null!=(t=(null!=e?e:"")>(null!=l?l:"")?e:l)?t:""},Le=(e,l,t)=>{e[2]=l>>>0,t>e[1]&&(e[1]=t)},He=(e=l)=>ye($(),e),Je=(e=l)=>[ae(),e,0],Ee=([e,l,t],n=we)=>[ge(e,n),l,t],De=([e,l],t=Se)=>ye(ge(e,t),l),Fe=(l,n)=>{return J(l)&&3==D(l)&&(a=l[1],e(a)==t)&&e(l[2])==s&&M(l[2])&&n(l[0]);var a},Oe=/^\d+$/,xe=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:l+t++},l=>{Oe.test(l)&&D(e)<1e3&&x(e,l)}]},ze=e=>[e,e],Ae=()=>[ae(),ae()],Pe=e=>[...e],We=([e,l])=>e===l,ke=l=>{const t=e(l);return L(t)||t==s&&M(l)?t:void 0},Ne=e=>R(e)||!R(ke(e)),je=(e,l,t,n,s)=>R(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),$e=(e,l,t)=>R(t)?e.delValue(l):e.setValue(l,t),qe=e=>JSON.stringify(e,((e,l)=>l instanceof Map?z.fromEntries([...l]):l)),Be=JSON.parse,Ge=(e,l,t)=>ie(e,l,oe(e,l)==-t?void 0:t),Ke=()=>{let e,t,n=!1,a=!1,i=0,S=[];const y=ae(),I=ae(),M=ae(),J=ae(),z=ae(),A=ae(),P=ae(),W=ae(),k=ae(),N=ae(),$=ae(),G=ae(),U=ae(),Ve=ae(),pe=Y(),we=ae(),Se=ae(),ye=ae(),Ie=ae(),Me=Ae(),Re=Ae(),me=Ae(),Le=Ae(),He=Ae(),Je=Ae(),Ee=Ae(),De=Ae(),Fe=Ae(),Oe=Ae(),Ne=Ae(),Qe=Ae(),Ue=Ae(),Xe=Ae(),Ye=Ae(),Ze=Ae(),_e=Ae(),el=Ae(),ll=Ae(),tl=Ae(),nl=Ae(),sl=Ae(),al=ae(),rl=Ae(),[ol,ul,il,cl]=(e=>{let t;const[n,s]=xe(),a=ae();return[(e,s,r,o=[],u=(()=>[]))=>{null!=t||(t=Jt);const i=n(1);return ie(a,i,[e,s,r,o,u]),Z(Te(s,null!=r?r:[l],Y),i),i},(e,n,...s)=>F(((e,t=[l])=>{const n=[],s=(e,l)=>l==D(t)?x(n,e):null===t[l]?ne(e,(e=>s(e,l+1))):F([t[l],null],(t=>s(oe(e,t),l+1)));return s(e,0),n})(e,n),(e=>ne(e,(e=>oe(a,e)[0](t,...null!=n?n:[],...s))))),e=>m(oe(a,e),(([,t,n])=>(Te(t,null!=n?n:[l],void 0,(l=>(se(l,e),le(l)?1:0))),ie(a,e),s(e),n))),e=>m(oe(a,e),(([e,,l=[],n,s])=>{const a=(...r)=>{var o,u;const i=D(r);i==D(l)?e(t,...r,...s(r)):R(l[i])?F(null!=(u=null==(o=n[i])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,l[i])};a()}))]})(),dl=e=>{if(!X(e,((e,l)=>[r,o].includes(l))))return!1;const l=e[r];return!(!L(l)&&l!=s||(ke(e[o])!=l&&B(e,o),0))},gl=(l,t)=>(!e||ee($,t)||jl(t))&&X(l,((e,l)=>vl(t,l,e)),(()=>jl(t))),vl=(e,l,t,n)=>X(n?t:Cl(t,e,l),((n,s)=>m(hl(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>jl(e,l))),hl=(l,t,n,s)=>e?m(oe(oe($,l),n),(e=>ke(s)!=e[r]?jl(l,t,n,s,e[o]):s),(()=>jl(l,t,n,s))):R(ke(s))?jl(l,t,n,s):s,bl=(e,l)=>X(l?e:Tl(e),((l,t)=>m(fl(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>$l())),fl=(e,l)=>t?m(oe(U,e),(t=>ke(l)!=t[r]?$l(e,l,t[o]):l),(()=>$l(e,l))):R(ke(l))?$l(e,l):l,Cl=(e,l,t)=>(m(oe(G,l),(([n,s])=>{ne(n,((l,t)=>{q(e,t)||(e[t]=l)})),ne(s,(n=>{q(e,n)||jl(l,t,n)}))})),e),Tl=e=>(t&&(ne(Ve,((l,t)=>{q(e,t)||(e[t]=l)})),ne(pe,(l=>{q(e,l)||$l(l)}))),e),Vl=e=>de($,e,((e,l,t)=>{const n=ae(),s=Y();de(ce($,l,ae),t,((e,l,t)=>{ie(e,l,t),m(t[o],(e=>ie(n,l,e)),(()=>Z(s,l)))})),ie(G,l,[n,s])}),((e,l)=>{ie($,l),ie(G,l)})),pl=e=>de(U,e,((e,l,t)=>{ie(U,l,t),m(t[o],(e=>ie(Ve,l,e)),(()=>Z(pe,l)))}),((e,l)=>{ie(U,l),ie(Ve,l),se(pe,l)})),wl=e=>Q(e)?wt():ft(e),Sl=e=>de(ye,e,((e,l,t)=>yl(l,t)),((e,l)=>Dl(l))),yl=(e,l)=>de(ce(ye,e,(()=>(zl(e,1),ie(we,e,xe()),ie(Se,e,ae()),ae()))),l,((l,t,n)=>Il(e,l,t,n)),((l,t)=>Fl(e,l,t))),Il=(e,l,t,n,s)=>de(ce(l,t,(()=>(Al(e,t,1),ae()))),n,((l,n,s)=>Ml(e,t,l,n,s)),((n,a)=>Ol(e,l,t,n,a,s))),Ml=(e,l,t,n,s)=>{ee(t,n)||Pl(e,l,n,1);const a=oe(t,n);s!==a&&(Wl(e,l,n,a,s),ie(t,n,s))},Rl=(e,l,t,n,s)=>m(oe(l,t),(l=>Ml(e,t,l,n,s)),(()=>Il(e,l,t,Cl({[n]:s},e,t)))),ml=e=>Q(e)?It():Ct(e),Ll=e=>de(Ie,e,((e,l,t)=>Hl(l,t)),((e,l)=>xl(l))),Hl=(e,l)=>{ee(Ie,e)||kl(e,1);const t=oe(Ie,e);l!==t&&(Nl(e,t,l),ie(Ie,e,l))},Jl=(e,l)=>{const[t]=oe(we,e),n=t(l);return ee(oe(ye,e),n)?Jl(e,l):n},El=e=>{var l;return null!=(l=oe(ye,e))?l:yl(e,{})},Dl=e=>yl(e,{}),Fl=(e,l,t)=>{const[,n]=oe(we,e);n(t),Il(e,l,t,{},!0)},Ol=(e,l,t,n,s,a)=>{var r;const o=oe(null==(r=oe(G,e))?void 0:r[0],s);if(!R(o)&&!a)return Ml(e,t,n,s,o);const u=l=>{Wl(e,t,l,oe(n,l)),Pl(e,t,l,-1),ie(n,l)};R(o)?u(s):ue(n,u),le(n)&&(Al(e,t,-1),le(ie(l,t))&&(zl(e,-1),ie(ye,e),ie(we,e),ie(Se,e)))},xl=e=>{const l=oe(Ve,e);if(!R(l))return Hl(e,l);Nl(e,oe(Ie,e)),kl(e,-1),ie(Ie,e)},zl=(e,l)=>Ge(y,e,l),Al=(e,l,t)=>Ge(ce(J,e,ae),l,t)&&ie(M,e,ce(M,e,(()=>0))+t),Pl=(e,l,t,n)=>{var s;const a=oe(Se,e),r=null!=(s=oe(a,t))?s:0;(0==r&&1==n||1==r&&-1==n)&&Ge(ce(I,e,ae),t,n),ie(a,t,r!=-n?r+n:null),Ge(ce(ce(z,e,ae),l,ae),t,n)},Wl=(e,l,t,n,s)=>{var a;ce(ce(ce(A,e,ae),l,ae),t,(()=>[n,0]))[1]=s,null==(a=S[3])||a.call(S,e,l,t,s)},kl=(e,l)=>Ge(P,e,l),Nl=(e,l,t)=>{var n;ce(W,e,(()=>[l,0]))[1]=t,null==(n=S[4])||n.call(S,e,t)},jl=(e,l,t,n,s)=>(x(ce(ce(ce(k,e,ae),l,ae),t,(()=>[])),n),s),$l=(e,l,t)=>(x(ce(N,e,(()=>[])),l),t),ql=(e,l,t)=>m(oe(oe(oe(A,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...ze(at(e,l,t))])),Bl=e=>m(oe(W,e),(([e,l])=>[!0,e,l]),(()=>[!1,...ze(ut(e))])),Gl=e=>le(k)||le(Ze[e])?0:ne(e?Ce(k):k,((l,t)=>ne(l,((l,n)=>ne(l,((l,s)=>ul(Ze[e],[t,n,s],l))))))),Kl=e=>le(N)||le(_e[e])?0:ne(e?be(N):N,((l,t)=>ul(_e[e],[t],l))),Ql=(e,l,t,n)=>{if(!le(e))return ul(l,n,(()=>ge(e))),ue(e,((e,l)=>ul(t,[...null!=n?n:[],e],1==l))),1},Ul=e=>{const l=it();l!=n&&ul(Me[e],void 0,l);const t=le(Oe[e]),s=le(Ue[e])&&le(Xe[e])&&le(Fe[e])&&le(Ne[e])&&le(Je[e])&&le(Ee[e])&&le(De[e])&&t&&le(me[e])&&le(Le[e]),a=le(Ye[e])&&le(Qe[e])&&le(He[e])&&le(Re[e]);if(!s||!a){const l=e?[be(y),fe(I),be(M),fe(J),Ce(z),Ce(A)]:[y,I,M,J,z,A];if(!s){Ql(l[0],me[e],Le[e]),ne(l[1],((l,t)=>Ql(l,Je[e],Ee[e],[t]))),ne(l[2],((l,t)=>{0!=l&&ul(De[e],[t],lt(t))}));const n=Y();ne(l[3],((l,s)=>{Ql(l,Fe[e],Ne[e],[s])&&!t&&(ul(Oe[e],[s,null]),Z(n,s))})),t||ne(l[5],((l,t)=>{if(!ee(n,t)){const n=Y();ne(l,(e=>ne(e,(([l,t],s)=>t!==l?Z(n,s):se(e,s))))),ne(n,(l=>ul(Oe[e],[t,l])))}})),ne(l[4],((l,t)=>ne(l,((l,n)=>Ql(l,Ue[e],Xe[e],[t,n])))))}if(!a){let t;ne(l[5],((l,n)=>{let s;ne(l,((l,a)=>{let r;ne(l,(([l,o],u)=>{o!==l&&(ul(Ye[e],[n,a,u],o,l,ql),t=s=r=1)})),r&&ul(Qe[e],[n,a],ql)})),s&&ul(He[e],[n],ql)})),t&&ul(Re[e],void 0,ql)}}},Xl=e=>{const l=ht();l!=a&&ul(el[e],void 0,l);const t=le(tl[e])&&le(nl[e]),n=le(sl[e])&&le(ll[e]);if(!t||!n){const l=e?[be(P),be(W)]:[P,W];if(t||Ql(l[0],tl[e],nl[e]),!n){let t;ne(l[1],(([l,n],s)=>{n!==l&&(ul(sl[e],[s],n,l,Bl),t=1)})),t&&ul(ll[e],void 0,Bl)}}},Yl=(e,...l)=>(mt((()=>e(...O(l,w)))),Jt),Zl=()=>he(ye),_l=()=>re(ye),et=e=>re(oe(Se,w(e))),lt=e=>_(oe(ye,w(e))),tt=e=>re(oe(ye,w(e))),nt=(e,l,t,n=0,s)=>{return O(E((r=oe(ye,w(e)),o=(e,t)=>[R(l)?t:oe(e,w(l)),t],a=([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s},O([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,l])=>o(l,e))).sort(a)),n,R(s)?s:n+s),(([,e])=>e));var a,r,o,u},st=(e,l)=>re(oe(oe(ye,w(e)),w(l))),at=(e,l,t)=>oe(oe(oe(ye,w(e)),w(l)),w(t)),rt=()=>ge(Ie),ot=()=>re(Ie),ut=e=>oe(Ie,w(e)),it=()=>!le(ye),ct=e=>ee(ye,w(e)),dt=(e,l)=>ee(oe(Se,w(e)),w(l)),gt=(e,l)=>ee(oe(ye,w(e)),w(l)),vt=(e,l,t)=>ee(oe(oe(ye,w(e)),w(l)),w(t)),ht=()=>!le(Ie),bt=e=>ee(Ie,w(e)),ft=e=>Yl((()=>(e=>X(e,gl,jl))(e)?Sl(e):0)),Ct=e=>Yl((()=>bl(e)?Ll(e):0)),Tt=e=>{try{wl(Be(e))}catch(e){}return Jt},Vt=l=>Yl((()=>{if((e=X(l,(e=>X(e,dl))))&&(Vl(l),!le(ye))){const e=Zl();wt(),ft(e)}})),pt=e=>Yl((()=>{if(t=(e=>X(e,dl))(e)){const l=rt();Rt(),It(),t=!0,pl(e),Ct(l)}})),wt=()=>Yl((()=>Sl({}))),St=e=>Yl((e=>ee(ye,e)?Dl(e):0),e),yt=(e,l)=>Yl(((e,l)=>m(oe(ye,e),(t=>ee(t,l)?Fl(e,t,l):0))),e,l),It=()=>Yl((()=>Ll({}))),Mt=()=>Yl((()=>{Vl({}),e=!1})),Rt=()=>Yl((()=>{pl({}),t=!1})),mt=(e,l)=>{if(-1!=i){Lt();const t=e();return Ht(l),t}},Lt=()=>{var e;return-1!=i&&i++,1==i&&(null==(e=S[0])||e.call(S),ul(al,void 0)),Jt},Ht=e=>{var l,t;return i>0&&(i--,0==i&&(i=1,Gl(1),le(A)||Ul(1),Kl(1),le(W)||Xl(1),(null==e?void 0:e(Jt))&&(ne(A,((e,l)=>ne(e,((e,t)=>ne(e,(([e],n)=>je(Jt,l,t,n,e))))))),te(A),ne(W,(([e],l)=>$e(Jt,l,e))),te(W)),ul(rl[0],void 0),i=-1,Gl(0),le(A)||Ul(0),Kl(0),le(W)||Xl(0),null==(l=S[1])||l.call(S),ul(rl[1],void 0),null==(t=S[2])||t.call(S),i=0,n=it(),a=ht(),F([y,I,M,J,z,A,k,P,W,N],te))),Jt},Jt={getContent:()=>[Zl(),rt()],getTables:Zl,getTableIds:_l,getTable:e=>ve(oe(ye,w(e))),getTableCellIds:et,getRowCount:lt,getRowIds:tt,getSortedRowIds:nt,getRow:(e,l)=>ge(oe(oe(ye,w(e)),w(l))),getCellIds:st,getCell:at,getValues:rt,getValueIds:ot,getValue:ut,hasTables:it,hasTable:ct,hasTableCell:dt,hasRow:gt,hasCell:vt,hasValues:ht,hasValue:bt,getTablesJson:()=>qe(ye),getValuesJson:()=>qe(Ie),getJson:()=>qe([ye,Ie]),getTablesSchemaJson:()=>qe($),getValuesSchemaJson:()=>qe(U),getSchemaJson:()=>qe([$,U]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,l])=>Yl((()=>{(Q(e)?wt:ft)(e),(Q(l)?It:Ct)(l)})),setTables:ft,setTable:(e,l)=>Yl((e=>gl(l,e)?yl(e,l):0),e),setRow:(e,l,t)=>Yl(((e,l)=>vl(e,l,t)?Il(e,El(e),l,t):0),e,l),addRow:(e,l,t=!0)=>mt((()=>{let n;return vl(e,n,l)&&(e=w(e),Il(e,El(e),n=Jl(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>Yl(((e,l)=>{if(vl(e,l,t,1)){const n=El(e);K(t,((t,s)=>Rl(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>Yl(((e,l,t)=>m(hl(e,l,t,H(n)?n(at(e,l,t)):n),(n=>Rl(e,El(e),l,t,n)))),e,l,t),setValues:Ct,setPartialValues:e=>Yl((()=>bl(e,1)?K(e,((e,l)=>Hl(l,e))):0)),setValue:(e,l)=>Yl((e=>m(fl(e,H(l)?l(ut(e)):l),(l=>Hl(e,l)))),e),applyChanges:e=>Yl((()=>{K(e[0],((e,l)=>R(e)?St(l):K(e,((e,t)=>R(e)?yt(l,t):K(e,((e,n)=>je(Jt,l,t,n,e))))))),K(e[1],((e,l)=>$e(Jt,l,e)))})),setTablesJson:Tt,setValuesJson:e=>{try{ml(Be(e))}catch(e){}return Jt},setJson:e=>Yl((()=>{try{const[l,t]=Be(e);wl(l),ml(t)}catch(l){Tt(e)}})),setTablesSchema:Vt,setValuesSchema:pt,setSchema:(e,l)=>Yl((()=>{Vt(e),pt(l)})),delTables:wt,delTable:St,delRow:yt,delCell:(e,l,t,n)=>Yl(((e,l,t)=>m(oe(ye,e),(s=>m(oe(s,l),(a=>ee(a,t)?Ol(e,s,l,a,t,n):0))))),e,l,t),delValues:It,delValue:e=>Yl((e=>ee(Ie,e)?xl(e):0),e),delTablesSchema:Mt,delValuesSchema:Rt,delSchema:()=>Yl((()=>{Mt(),Rt()})),transaction:mt,startTransaction:Lt,getTransactionChanges:()=>[ge(A,((e,l)=>-1===oe(y,l)?void 0:ge(e,((e,t)=>-1===oe(oe(J,l),t)?void 0:ge(e,(([,e])=>e),(e=>We(e)))),le,Q)),le,Q),ge(W,(([,e])=>e),(e=>We(e))),1],getTransactionLog:()=>[!le(A),!le(W),he(A,Pe,We),he(k),ge(W,Pe,We),ge(N),ge(y),ve(J),he(z),ge(P)],finishTransaction:Ht,forEachTable:e=>ne(ye,((l,t)=>e(t,(e=>ne(l,((l,t)=>e(t,(e=>ue(l,e))))))))),forEachTableCell:(e,l)=>ue(oe(Se,w(e)),l),forEachRow:(e,l)=>ne(oe(ye,w(e)),((e,t)=>l(t,(l=>ue(e,l))))),forEachCell:(e,l,t)=>ue(oe(oe(ye,w(e)),w(l)),t),forEachValue:e=>ue(Ie,e),addSortedRowIdsListener:(e,l,t,n,s,a,r)=>{let o=nt(e,l,t,n,s);return ol((()=>{const r=nt(e,l,t,n,s);var u,i,c;i=o,D(u=r)===D(i)&&(c=(e,l)=>i[l]===e,u.every(c))||(o=r,a(Jt,e,l,t,n,s,o))}),Oe[r?1:0],[e,l],[_l])},addStartTransactionListener:e=>ol(e,al),addWillFinishTransactionListener:e=>ol(e,rl[0]),addDidFinishTransactionListener:e=>ol(e,rl[1]),callListener:e=>(cl(e),Jt),delListener:e=>(il(e),Jt),getListenerStats:()=>({}),createStore:Ke,addListener:ol,callListeners:ul,setInternalListeners:(e,l,t,n,s)=>S=[e,l,t,n,s]};return K({[u+d]:[0,Me,[],()=>[it()]],[d]:[0,Re],[g]:[0,me],[u+c]:[1,Le,[_l],e=>[ct(...e)]],[c]:[1,He,[_l]],[c+C]:[1,Je,[_l]],[u+c+f]:[2,Ee,[_l,et],e=>[dt(...e)]],[h]:[1,De,[_l]],[b]:[1,Fe,[_l]],[u+v]:[2,Ne,[_l,tt],e=>[gt(...e)]],[v]:[2,Qe,[_l,tt]],[C]:[2,Ue,[_l,tt]],[u+f]:[3,Xe,[_l,tt,st],e=>[vt(...e)]],[f]:[3,Ye,[_l,tt,st],e=>ze(at(...e))],InvalidCell:[3,Ze],[u+V]:[0,el,[],()=>[ht()]],[V]:[0,ll],[p]:[0,tl],[u+T]:[1,nl,[ot],e=>[bt(...e)]],[T]:[1,sl,[ot],e=>ze(ut(e[0]))],InvalidValue:[1,_e]},(([e,l,t,n],s)=>{Jt["add"+s+"Listener"]=(...s)=>ol(s[e],l[s[e+1]?1:0],e>0?E(s,0,e):void 0,t,n)})),j(Jt)};var Qe=Math.pow;const Ue=Qe(2,36),Xe=Qe(2,30),Ye=Qe(2,24),Ze=Qe(2,18),_e=Qe(2,12),el=Qe(2,6),ll=e=>String.fromCharCode(48+(63&e)),tl=(e,l)=>((e,l)=>e.charCodeAt(l))(e,l)-48,nl={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},sl=(e=l)=>[Je(e),Je(e)],al=e=>{let t=1,n=sl(),s=0;const a=ae(),r=Y(),[o,u]=(e=>{let l=0,t=-1;const n=pe(e),s=e=>{const n=l,[s,a]=R(e)||""==e?[0,0]:[tl(r=e,0)*Ue+tl(r,1)*Xe+tl(r,2)*Ye+tl(r,3)*Ze+tl(r,4)*_e+tl(r,5)*el+tl(r,6),tl(r,7)*Ze+tl(r,8)*_e+tl(r,9)*el+tl(r,10),tl(r,11)*Ye+tl(r,12)*Ze+tl(r,13)*_e+tl(r,14)*el+tl(r,15)];var r;l=I(n,s,Date.now()),t=l==n?l==s?I(t,a):t:l==s?a:-1};return[()=>{return s(),a=++t,r=n,ll((e=l)/Ue)+ll(e/Xe)+ll(e/Ye)+ll(e/Ze)+ll(e/_e)+ll(e/el)+ll(e)+ll(a/Ze)+ll(a/_e)+ll(a/el)+ll(a)+ll(r/Ye)+ll(r/Ze)+ll(r/_e)+ll(r/el)+ll(r);var e,a,r},s]})(e),i=Ke(),c=e=>{const l=t;return t=0,e(),t=l,b},d=(e,t=0)=>{const s={},a={},[[r,o=l,i=0],c]=e,[d,v]=n,[h,b,f]=d;let C=t?i:f,T=o;G(r,(([e,n=l,a=0],r)=>{const o=ce(h,r,Je),[u,i,c]=o;let d=t?a:c,v=n;G(e,((e,l)=>{const[n,a,o]=g(e,ce(u,l,Je),U(U(s,r,$),l,$),t);d^=t?0:(a?Me(l,a):0)^Me(l,o),v=me(v,n)})),d^=t?0:Re(i,n),Le(o,d,n),C^=t?0:(c?Me(r,c):0)^Me(r,o[2]),T=me(T,v)})),C^=t?0:Re(b,o),Le(d,C,o);const[V]=g(c,v,a,t);return u(me(T,V)),[s,a,1]},g=(e,t,n,s)=>{const[a,r=l,o=0]=e,[u,i,c]=t;let d=r,g=s?o:c;return G(a,(([e,t,a=0],r)=>{const o=ce(u,r,(()=>[void 0,l,0])),[,i,c]=o;(!i||t>i)&&(Le(o,s?a:pe(qe(null!=e?e:null)+":"+t),t),o[0]=e,n[r]=e,g^=s?0:Me(r,c)^Me(r,o[2]),d=me(d,t))})),g^=s?0:Re(i,r),Le(t,g,r),[d,c,t[2]]},v=()=>[Ee(n[0],(e=>Ee(e,(e=>Ee(e))))),Ee(n[1])],h=e=>c((()=>i.applyChanges(d(e)))),b={getId:()=>e,getMergeableContent:v,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>ge(n[0][0],Ie),getMergeableTableDiff:e=>{const l=He(n[0][1]),t={};return ue(n[0][0],((n,[s,a,r])=>q(e,n)?r!=e[n]?t[n]=r:0:l[0][n]=De([s,a],(e=>De(e))))),[l,t]},getMergeableRowHashes:e=>{const l={};return G(e,((e,t)=>m(oe(n[0][0],t),(([n,,s])=>s!=e?ue(n,((e,[,,n])=>U(l,t,$)[e]=n)):0)))),l},getMergeableRowDiff:e=>{const l=He(n[0][1]),t={};return G(e,((e,s)=>{var a;return ue(null==(a=oe(n[0][0],s))?void 0:a[0],((n,[a,r,o])=>q(e,n)?o!==e[n]?U(t,s,$)[n]=o:0:U(l[0],s,He)[0][n]=De([a,r])))})),[l,t]},getMergeableCellHashes:e=>{const l={};return G(e,((e,t)=>m(oe(n[0][0],t),(([n])=>G(e,((e,s)=>m(oe(n,s),(([n,,a])=>a!==e?ue(n,((e,[,,n])=>U(U(l,t,$),s,$)[e]=n)):0)))))))),l},getMergeableCellDiff:e=>{const[[l,t]]=n,s={};return G(e,((e,t)=>G(e,((e,n)=>m(oe(l,t),(([l,a])=>m(oe(l,n),(([l,r])=>ue(l,((l,[o,u,i])=>i!==e[l]?U(U(s,t,(()=>He(a)))[0],n,(()=>He(r)))[0][l]=[o,u]:0)))))))))),ye(s,t)},getMergeableValuesHashes:()=>ge(n[1][0],Ie),getMergeableValueDiff:e=>{const[,[l,t]]=n,s=ge(l,Se,(([,,l],t)=>l==(null==e?void 0:e[t])));return ye(s,t)},setMergeableContent:e=>c((()=>(e=>J(e)&&2==D(e)&&Fe(e[0],(e=>X(e,(e=>Fe(e,(e=>X(e,(e=>Fe(e,(e=>X(e,(e=>Fe(e,Ne)),void 0,1)))),void 0,1)))),void 0,1)))&&Fe(e[1],(e=>X(e,(e=>Fe(e,Ne)),void 0,1))))(e)?i.transaction((()=>{i.delTables().delValues(),n=sl(),i.applyChanges(d(e,1))})):0)),setDefaultContent:e=>(i.transaction((()=>{s=1,i.setContent(e),s=0})),b),getTransactionMergeableChanges:()=>{const[[e,l],[t,s]]=n,o={};ne(a,((l,t)=>m(oe(e,t),(([e,n])=>{const s={};ne(l,((l,t)=>m(oe(e,t),(([e,n])=>{const a={};ne(l,(l=>{m(oe(e,l),(([e,t])=>a[l]=ye(e,t)))})),s[t]=ye(a,n)})))),o[t]=ye(s,n)}))));const u={};return ne(r,(e=>m(oe(t,e),(([l,t])=>u[e]=ye(l,t))))),[ye(o,l),ye(u,s),1]},applyMergeableChanges:h,merge:e=>{const l=v(),t=e.getMergeableContent();return e.applyMergeableChanges(l),h(t)}};return i.setInternalListeners((()=>{}),(()=>{}),(()=>{te(a),te(r)}),((e,n,r,u)=>{Z(ce(ce(a,e,ae),n,Y),r),t&&d([[{[e]:[{[n]:[{[r]:[u,s?l:o()]}]}]}],[{}],1])}),((e,n)=>{Z(r,e),t&&d([[{}],[{[e]:[n,s?l:o()]}],1])})),K(i,((e,l)=>b[l]=S(l,"set")||S(l,"del")||S(l,"apply")||y(l,"Transaction")||"callListener"==l?(...l)=>(e(...l),b):S(l,"add")&&y(l,"Listener")?(...t)=>{var n;const s=null!=(n=nl[E(l,3,-8)])?n:0,a=t[s];return t[s]=(e,...l)=>a(b,...l),e(...t)}:e)),j(b)};export{al as createMergeableStore};
|
|
1
|
+
const e=e=>typeof e,l="",t=e(l),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Has",i="Ids",c="Table",d=c+"s",g=c+i,v="Row",h=v+"Count",b=v+i,f="Cell",C=f+i,T="Value",V=T+"s",p=T+i,w=e=>l+e,S=(e,l)=>e.startsWith(l),y=(e,l)=>e.endsWith(l),I=Math.max,M=isFinite,R=e=>null==e,m=(e,l,t)=>R(e)?null==t?void 0:t():l(e),L=e=>e==t||e==n,H=l=>e(l)==a,J=e=>Array.isArray(e),E=(e,l,t)=>e.slice(l,t),D=e=>e.length,F=(e,l)=>e.forEach(l),O=(e,l)=>e.map(l),x=(e,...l)=>e.push(...l),z=Object,A=e=>z.getPrototypeOf(e),P=z.entries,W=z.isFrozen,k=e=>!R(e)&&m(A(e),(e=>e==z.prototype||R(A(e))),(()=>!0)),N=z.keys,j=z.freeze,$=(e=[])=>z.fromEntries(e),q=(e,l)=>l in e,B=(e,l)=>(delete e[l],e),G=(e,l)=>F(P(e),(([e,t])=>l(t,e))),K=(e,l)=>O(P(e),(([e,t])=>l(t,e))),Q=e=>k(e)&&0==(e=>D(N(e)))(e),U=(e,l,t)=>(q(e,l)||(e[l]=t()),e[l]),X=(e,l,t,n=0)=>R(e)||!k(e)||!n&&Q(e)||W(e)?(null==t||t(),!1):(K(e,((t,n)=>{l(t,n)||B(e,n)})),!!n||!Q(e)),Y=e=>new Set(J(e)||R(e)?e:[e]),Z=(e,l)=>null==e?void 0:e.add(l),_=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},ee=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},le=e=>R(e)||0==_(e),te=e=>e.clear(),ne=(e,l)=>null==e?void 0:e.forEach(l),se=(e,l)=>null==e?void 0:e.delete(l),ae=e=>new Map(e),re=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},oe=(e,l)=>null==e?void 0:e.get(l),ue=(e,l)=>ne(e,((e,t)=>l(t,e))),ie=(e,l,t)=>R(t)?(se(e,l),e):null==e?void 0:e.set(l,t),ce=(e,l,t,n)=>(ee(e,l)?null==n||n(oe(e,l)):ie(e,l,t()),oe(e,l)),de=(e,l,t,n=ie)=>(K(l,((l,n)=>t(e,n,l))),ue(e,(t=>q(l,t)?0:n(e,t))),e),ge=(e,l,t,n)=>{const s={};return ne(e,((e,a)=>{if(!(null==t?void 0:t(e,a))){const t=l?l(e,a):e;!(null==n?void 0:n(t))&&(s[a]=t)}})),s},ve=(e,l,t)=>ge(e,(e=>ge(e,l,t)),le,Q),he=(e,l,t)=>ge(e,(e=>ve(e,l,t)),le,Q),be=(e,l)=>{const t=ae();return ne(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},fe=e=>be(e,be),Ce=e=>be(e,fe),Te=(e,l,t,n,s=0)=>m((t?ce:oe)(e,l[s],s>D(l)-2?t:ae),(a=>{if(s>D(l)-2)return(null==n?void 0:n(a))&&ie(e,l[s]),a;const r=Te(a,l,t,n,s+1);return le(a)&&ie(e,l[s]),r})),Ve=new globalThis.TextEncoder,pe=e=>{let l=2166136261;return F(Ve.encode(e),(e=>{l^=e,l+=(l<<1)+(l<<4)+(l<<7)+(l<<8)+(l<<24)})),l>>>0},we=([e,l,t])=>[e,l,t],Se=([e,l])=>ye(e,l),ye=(e,l)=>l?[e,l]:[e],Ie=e=>e[2],Me=(e,l)=>pe(e+":"+l),Re=(e,l)=>l>e?(e?pe(e):0)^pe(l):0,me=(e,l)=>{var t;return null!=(t=(null!=e?e:"")>(null!=l?l:"")?e:l)?t:""},Le=(e,l,t)=>{e[2]=l>>>0,t>e[1]&&(e[1]=t)},He=(e=l)=>ye($(),e),Je=(e=l)=>[ae(),e,0],Ee=([e,l,t],n=we)=>[ge(e,n),l,t],De=([e,l],t=Se)=>ye(ge(e,t),l),Fe=(l,n)=>{return J(l)&&3==D(l)&&(a=l[1],e(a)==t)&&e(l[2])==s&&M(l[2])&&n(l[0]);var a},Oe=/^\d+$/,xe=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:l+t++},l=>{Oe.test(l)&&D(e)<1e3&&x(e,l)}]},ze=e=>[e,e],Ae=()=>[ae(),ae()],Pe=e=>[...e],We=([e,l])=>e===l,ke=l=>{const t=e(l);return L(t)||t==s&&M(l)?t:void 0},Ne=e=>R(e)||!R(ke(e)),je=(e,l,t,n,s)=>R(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),$e=(e,l,t)=>R(t)?e.delValue(l):e.setValue(l,t),qe=e=>JSON.stringify(e,((e,l)=>l instanceof Map?z.fromEntries([...l]):l)),Be=JSON.parse,Ge=(e,l,t)=>ie(e,l,oe(e,l)==-t?void 0:t),Ke=()=>{let e,t,n=!1,a=!1,i=0,S=[];const y=ae(),I=ae(),M=ae(),J=ae(),z=ae(),A=ae(),P=ae(),W=ae(),k=ae(),N=ae(),$=ae(),G=ae(),U=ae(),Ve=ae(),pe=Y(),we=ae(),Se=ae(),ye=ae(),Ie=ae(),Me=Ae(),Re=Ae(),me=Ae(),Le=Ae(),He=Ae(),Je=Ae(),Ee=Ae(),De=Ae(),Fe=Ae(),Oe=Ae(),Ne=Ae(),Qe=Ae(),Ue=Ae(),Xe=Ae(),Ye=Ae(),Ze=Ae(),_e=Ae(),el=Ae(),ll=Ae(),tl=Ae(),nl=Ae(),sl=Ae(),al=ae(),rl=Ae(),[ol,ul,il,cl]=(e=>{let t;const[n,s]=xe(),a=ae();return[(e,s,r,o=[],u=(()=>[]))=>{null!=t||(t=Jt);const i=n(1);return ie(a,i,[e,s,r,o,u]),Z(Te(s,null!=r?r:[l],Y),i),i},(e,n,...s)=>F(((e,t=[l])=>{const n=[],s=(e,l)=>l==D(t)?x(n,e):null===t[l]?ne(e,(e=>s(e,l+1))):F([t[l],null],(t=>s(oe(e,t),l+1)));return s(e,0),n})(e,n),(e=>ne(e,(e=>oe(a,e)[0](t,...null!=n?n:[],...s))))),e=>m(oe(a,e),(([,t,n])=>(Te(t,null!=n?n:[l],void 0,(l=>(se(l,e),le(l)?1:0))),ie(a,e),s(e),n))),e=>m(oe(a,e),(([e,,l=[],n,s])=>{const a=(...r)=>{var o,u;const i=D(r);i==D(l)?e(t,...r,...s(r)):R(l[i])?F(null!=(u=null==(o=n[i])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,l[i])};a()}))]})(),dl=e=>{if(!X(e,((e,l)=>[r,o].includes(l))))return!1;const l=e[r];return!(!L(l)&&l!=s||(ke(e[o])!=l&&B(e,o),0))},gl=(l,t)=>(!e||ee($,t)||jl(t))&&X(l,((e,l)=>vl(t,l,e)),(()=>jl(t))),vl=(e,l,t,n)=>X(n?t:Cl(t,e,l),((n,s)=>m(hl(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>jl(e,l))),hl=(l,t,n,s)=>e?m(oe(oe($,l),n),(e=>ke(s)!=e[r]?jl(l,t,n,s,e[o]):s),(()=>jl(l,t,n,s))):R(ke(s))?jl(l,t,n,s):s,bl=(e,l)=>X(l?e:Tl(e),((l,t)=>m(fl(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>$l())),fl=(e,l)=>t?m(oe(U,e),(t=>ke(l)!=t[r]?$l(e,l,t[o]):l),(()=>$l(e,l))):R(ke(l))?$l(e,l):l,Cl=(e,l,t)=>(m(oe(G,l),(([n,s])=>{ne(n,((l,t)=>{q(e,t)||(e[t]=l)})),ne(s,(n=>{q(e,n)||jl(l,t,n)}))})),e),Tl=e=>(t&&(ne(Ve,((l,t)=>{q(e,t)||(e[t]=l)})),ne(pe,(l=>{q(e,l)||$l(l)}))),e),Vl=e=>de($,e,((e,l,t)=>{const n=ae(),s=Y();de(ce($,l,ae),t,((e,l,t)=>{ie(e,l,t),m(t[o],(e=>ie(n,l,e)),(()=>Z(s,l)))})),ie(G,l,[n,s])}),((e,l)=>{ie($,l),ie(G,l)})),pl=e=>de(U,e,((e,l,t)=>{ie(U,l,t),m(t[o],(e=>ie(Ve,l,e)),(()=>Z(pe,l)))}),((e,l)=>{ie(U,l),ie(Ve,l),se(pe,l)})),wl=e=>Q(e)?wt():ft(e),Sl=e=>de(ye,e,((e,l,t)=>yl(l,t)),((e,l)=>Dl(l))),yl=(e,l)=>de(ce(ye,e,(()=>(zl(e,1),ie(we,e,xe()),ie(Se,e,ae()),ae()))),l,((l,t,n)=>Il(e,l,t,n)),((l,t)=>Fl(e,l,t))),Il=(e,l,t,n,s)=>de(ce(l,t,(()=>(Al(e,t,1),ae()))),n,((l,n,s)=>Ml(e,t,l,n,s)),((n,a)=>Ol(e,l,t,n,a,s))),Ml=(e,l,t,n,s)=>{ee(t,n)||Pl(e,l,n,1);const a=oe(t,n);s!==a&&(Wl(e,l,n,a,s),ie(t,n,s))},Rl=(e,l,t,n,s)=>m(oe(l,t),(l=>Ml(e,t,l,n,s)),(()=>Il(e,l,t,Cl({[n]:s},e,t)))),ml=e=>Q(e)?It():Ct(e),Ll=e=>de(Ie,e,((e,l,t)=>Hl(l,t)),((e,l)=>xl(l))),Hl=(e,l)=>{ee(Ie,e)||kl(e,1);const t=oe(Ie,e);l!==t&&(Nl(e,t,l),ie(Ie,e,l))},Jl=(e,l)=>{const[t]=oe(we,e),n=t(l);return ee(oe(ye,e),n)?Jl(e,l):n},El=e=>{var l;return null!=(l=oe(ye,e))?l:yl(e,{})},Dl=e=>yl(e,{}),Fl=(e,l,t)=>{const[,n]=oe(we,e);n(t),Il(e,l,t,{},!0)},Ol=(e,l,t,n,s,a)=>{var r;const o=oe(null==(r=oe(G,e))?void 0:r[0],s);if(!R(o)&&!a)return Ml(e,t,n,s,o);const u=l=>{Wl(e,t,l,oe(n,l)),Pl(e,t,l,-1),ie(n,l)};R(o)?u(s):ue(n,u),le(n)&&(Al(e,t,-1),le(ie(l,t))&&(zl(e,-1),ie(ye,e),ie(we,e),ie(Se,e)))},xl=e=>{const l=oe(Ve,e);if(!R(l))return Hl(e,l);Nl(e,oe(Ie,e)),kl(e,-1),ie(Ie,e)},zl=(e,l)=>Ge(y,e,l),Al=(e,l,t)=>Ge(ce(J,e,ae),l,t)&&ie(M,e,ce(M,e,(()=>0))+t),Pl=(e,l,t,n)=>{var s;const a=oe(Se,e),r=null!=(s=oe(a,t))?s:0;(0==r&&1==n||1==r&&-1==n)&&Ge(ce(I,e,ae),t,n),ie(a,t,r!=-n?r+n:null),Ge(ce(ce(z,e,ae),l,ae),t,n)},Wl=(e,l,t,n,s)=>{var a;ce(ce(ce(A,e,ae),l,ae),t,(()=>[n,0]))[1]=s,null==(a=S[3])||a.call(S,e,l,t,s)},kl=(e,l)=>Ge(P,e,l),Nl=(e,l,t)=>{var n;ce(W,e,(()=>[l,0]))[1]=t,null==(n=S[4])||n.call(S,e,t)},jl=(e,l,t,n,s)=>(x(ce(ce(ce(k,e,ae),l,ae),t,(()=>[])),n),s),$l=(e,l,t)=>(x(ce(N,e,(()=>[])),l),t),ql=(e,l,t)=>m(oe(oe(oe(A,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...ze(at(e,l,t))])),Bl=e=>m(oe(W,e),(([e,l])=>[!0,e,l]),(()=>[!1,...ze(ut(e))])),Gl=e=>le(k)||le(Ze[e])?0:ne(e?Ce(k):k,((l,t)=>ne(l,((l,n)=>ne(l,((l,s)=>ul(Ze[e],[t,n,s],l))))))),Kl=e=>le(N)||le(_e[e])?0:ne(e?be(N):N,((l,t)=>ul(_e[e],[t],l))),Ql=(e,l,t,n)=>{if(!le(e))return ul(l,n,(()=>ge(e))),ue(e,((e,l)=>ul(t,[...null!=n?n:[],e],1==l))),1},Ul=e=>{const l=it();l!=n&&ul(Me[e],void 0,l);const t=le(Oe[e]),s=le(Ue[e])&&le(Xe[e])&&le(Fe[e])&&le(Ne[e])&&le(Je[e])&&le(Ee[e])&&le(De[e])&&t&&le(me[e])&&le(Le[e]),a=le(Ye[e])&&le(Qe[e])&&le(He[e])&&le(Re[e]);if(!s||!a){const l=e?[be(y),fe(I),be(M),fe(J),Ce(z),Ce(A)]:[y,I,M,J,z,A];if(!s){Ql(l[0],me[e],Le[e]),ne(l[1],((l,t)=>Ql(l,Je[e],Ee[e],[t]))),ne(l[2],((l,t)=>{0!=l&&ul(De[e],[t],lt(t))}));const n=Y();ne(l[3],((l,s)=>{Ql(l,Fe[e],Ne[e],[s])&&!t&&(ul(Oe[e],[s,null]),Z(n,s))})),t||ne(l[5],((l,t)=>{if(!ee(n,t)){const n=Y();ne(l,(e=>ne(e,(([l,t],s)=>t!==l?Z(n,s):se(e,s))))),ne(n,(l=>ul(Oe[e],[t,l])))}})),ne(l[4],((l,t)=>ne(l,((l,n)=>Ql(l,Ue[e],Xe[e],[t,n])))))}if(!a){let t;ne(l[5],((l,n)=>{let s;ne(l,((l,a)=>{let r;ne(l,(([l,o],u)=>{o!==l&&(ul(Ye[e],[n,a,u],o,l,ql),t=s=r=1)})),r&&ul(Qe[e],[n,a],ql)})),s&&ul(He[e],[n],ql)})),t&&ul(Re[e],void 0,ql)}}},Xl=e=>{const l=ht();l!=a&&ul(el[e],void 0,l);const t=le(tl[e])&&le(nl[e]),n=le(sl[e])&&le(ll[e]);if(!t||!n){const l=e?[be(P),be(W)]:[P,W];if(t||Ql(l[0],tl[e],nl[e]),!n){let t;ne(l[1],(([l,n],s)=>{n!==l&&(ul(sl[e],[s],n,l,Bl),t=1)})),t&&ul(ll[e],void 0,Bl)}}},Yl=(e,...l)=>(mt((()=>e(...O(l,w)))),Jt),Zl=()=>he(ye),_l=()=>re(ye),et=e=>re(oe(Se,w(e))),lt=e=>_(oe(ye,w(e))),tt=e=>re(oe(ye,w(e))),nt=(e,l,t,n=0,s)=>{return O(E((r=oe(ye,w(e)),o=(e,t)=>[R(l)?t:oe(e,w(l)),t],a=([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s},O([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,l])=>o(l,e))).sort(a)),n,R(s)?s:n+s),(([,e])=>e));var a,r,o,u},st=(e,l)=>re(oe(oe(ye,w(e)),w(l))),at=(e,l,t)=>oe(oe(oe(ye,w(e)),w(l)),w(t)),rt=()=>ge(Ie),ot=()=>re(Ie),ut=e=>oe(Ie,w(e)),it=()=>!le(ye),ct=e=>ee(ye,w(e)),dt=(e,l)=>ee(oe(Se,w(e)),w(l)),gt=(e,l)=>ee(oe(ye,w(e)),w(l)),vt=(e,l,t)=>ee(oe(oe(ye,w(e)),w(l)),w(t)),ht=()=>!le(Ie),bt=e=>ee(Ie,w(e)),ft=e=>Yl((()=>(e=>X(e,gl,jl))(e)?Sl(e):0)),Ct=e=>Yl((()=>bl(e)?Ll(e):0)),Tt=e=>{try{wl(Be(e))}catch(e){}return Jt},Vt=l=>Yl((()=>{if((e=X(l,(e=>X(e,dl))))&&(Vl(l),!le(ye))){const e=Zl();wt(),ft(e)}})),pt=e=>Yl((()=>{if(t=(e=>X(e,dl))(e)){const l=rt();Rt(),It(),t=!0,pl(e),Ct(l)}})),wt=()=>Yl((()=>Sl({}))),St=e=>Yl((e=>ee(ye,e)?Dl(e):0),e),yt=(e,l)=>Yl(((e,l)=>m(oe(ye,e),(t=>ee(t,l)?Fl(e,t,l):0))),e,l),It=()=>Yl((()=>Ll({}))),Mt=()=>Yl((()=>{Vl({}),e=!1})),Rt=()=>Yl((()=>{pl({}),t=!1})),mt=(e,l)=>{if(-1!=i){Lt();const t=e();return Ht(l),t}},Lt=()=>{var e;return-1!=i&&i++,1==i&&(null==(e=S[0])||e.call(S),ul(al)),Jt},Ht=e=>{var l,t;return i>0&&(i--,0==i&&(i=1,Gl(1),le(A)||Ul(1),Kl(1),le(W)||Xl(1),(null==e?void 0:e(Jt))&&(ne(A,((e,l)=>ne(e,((e,t)=>ne(e,(([e],n)=>je(Jt,l,t,n,e))))))),te(A),ne(W,(([e],l)=>$e(Jt,l,e))),te(W)),ul(rl[0],void 0),i=-1,Gl(0),le(A)||Ul(0),Kl(0),le(W)||Xl(0),null==(l=S[1])||l.call(S),ul(rl[1],void 0),null==(t=S[2])||t.call(S),i=0,n=it(),a=ht(),F([y,I,M,J,z,A,k,P,W,N],te))),Jt},Jt={getContent:()=>[Zl(),rt()],getTables:Zl,getTableIds:_l,getTable:e=>ve(oe(ye,w(e))),getTableCellIds:et,getRowCount:lt,getRowIds:tt,getSortedRowIds:nt,getRow:(e,l)=>ge(oe(oe(ye,w(e)),w(l))),getCellIds:st,getCell:at,getValues:rt,getValueIds:ot,getValue:ut,hasTables:it,hasTable:ct,hasTableCell:dt,hasRow:gt,hasCell:vt,hasValues:ht,hasValue:bt,getTablesJson:()=>qe(ye),getValuesJson:()=>qe(Ie),getJson:()=>qe([ye,Ie]),getTablesSchemaJson:()=>qe($),getValuesSchemaJson:()=>qe(U),getSchemaJson:()=>qe([$,U]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,l])=>Yl((()=>{(Q(e)?wt:ft)(e),(Q(l)?It:Ct)(l)})),setTables:ft,setTable:(e,l)=>Yl((e=>gl(l,e)?yl(e,l):0),e),setRow:(e,l,t)=>Yl(((e,l)=>vl(e,l,t)?Il(e,El(e),l,t):0),e,l),addRow:(e,l,t=!0)=>mt((()=>{let n;return vl(e,n,l)&&(e=w(e),Il(e,El(e),n=Jl(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>Yl(((e,l)=>{if(vl(e,l,t,1)){const n=El(e);K(t,((t,s)=>Rl(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>Yl(((e,l,t)=>m(hl(e,l,t,H(n)?n(at(e,l,t)):n),(n=>Rl(e,El(e),l,t,n)))),e,l,t),setValues:Ct,setPartialValues:e=>Yl((()=>bl(e,1)?K(e,((e,l)=>Hl(l,e))):0)),setValue:(e,l)=>Yl((e=>m(fl(e,H(l)?l(ut(e)):l),(l=>Hl(e,l)))),e),applyChanges:e=>Yl((()=>{K(e[0],((e,l)=>R(e)?St(l):K(e,((e,t)=>R(e)?yt(l,t):K(e,((e,n)=>je(Jt,l,t,n,e))))))),K(e[1],((e,l)=>$e(Jt,l,e)))})),setTablesJson:Tt,setValuesJson:e=>{try{ml(Be(e))}catch(e){}return Jt},setJson:e=>Yl((()=>{try{const[l,t]=Be(e);wl(l),ml(t)}catch(l){Tt(e)}})),setTablesSchema:Vt,setValuesSchema:pt,setSchema:(e,l)=>Yl((()=>{Vt(e),pt(l)})),delTables:wt,delTable:St,delRow:yt,delCell:(e,l,t,n)=>Yl(((e,l,t)=>m(oe(ye,e),(s=>m(oe(s,l),(a=>ee(a,t)?Ol(e,s,l,a,t,n):0))))),e,l,t),delValues:It,delValue:e=>Yl((e=>ee(Ie,e)?xl(e):0),e),delTablesSchema:Mt,delValuesSchema:Rt,delSchema:()=>Yl((()=>{Mt(),Rt()})),transaction:mt,startTransaction:Lt,getTransactionChanges:()=>[ge(A,((e,l)=>-1===oe(y,l)?void 0:ge(e,((e,t)=>-1===oe(oe(J,l),t)?void 0:ge(e,(([,e])=>e),(e=>We(e)))),le,Q)),le,Q),ge(W,(([,e])=>e),(e=>We(e))),1],getTransactionLog:()=>[!le(A),!le(W),he(A,Pe,We),he(k),ge(W,Pe,We),ge(N),ge(y),ve(J),he(z),ge(P)],finishTransaction:Ht,forEachTable:e=>ne(ye,((l,t)=>e(t,(e=>ne(l,((l,t)=>e(t,(e=>ue(l,e))))))))),forEachTableCell:(e,l)=>ue(oe(Se,w(e)),l),forEachRow:(e,l)=>ne(oe(ye,w(e)),((e,t)=>l(t,(l=>ue(e,l))))),forEachCell:(e,l,t)=>ue(oe(oe(ye,w(e)),w(l)),t),forEachValue:e=>ue(Ie,e),addSortedRowIdsListener:(e,l,t,n,s,a,r)=>{let o=nt(e,l,t,n,s);return ol((()=>{const r=nt(e,l,t,n,s);var u,i,c;i=o,D(u=r)===D(i)&&(c=(e,l)=>i[l]===e,u.every(c))||(o=r,a(Jt,e,l,t,n,s,o))}),Oe[r?1:0],[e,l],[_l])},addStartTransactionListener:e=>ol(e,al),addWillFinishTransactionListener:e=>ol(e,rl[0]),addDidFinishTransactionListener:e=>ol(e,rl[1]),callListener:e=>(cl(e),Jt),delListener:e=>(il(e),Jt),getListenerStats:()=>({}),createStore:Ke,addListener:ol,callListeners:ul,setInternalListeners:(e,l,t,n,s)=>S=[e,l,t,n,s]};return K({[u+d]:[0,Me,[],()=>[it()]],[d]:[0,Re],[g]:[0,me],[u+c]:[1,Le,[_l],e=>[ct(...e)]],[c]:[1,He,[_l]],[c+C]:[1,Je,[_l]],[u+c+f]:[2,Ee,[_l,et],e=>[dt(...e)]],[h]:[1,De,[_l]],[b]:[1,Fe,[_l]],[u+v]:[2,Ne,[_l,tt],e=>[gt(...e)]],[v]:[2,Qe,[_l,tt]],[C]:[2,Ue,[_l,tt]],[u+f]:[3,Xe,[_l,tt,st],e=>[vt(...e)]],[f]:[3,Ye,[_l,tt,st],e=>ze(at(...e))],InvalidCell:[3,Ze],[u+V]:[0,el,[],()=>[ht()]],[V]:[0,ll],[p]:[0,tl],[u+T]:[1,nl,[ot],e=>[bt(...e)]],[T]:[1,sl,[ot],e=>ze(ut(e[0]))],InvalidValue:[1,_e]},(([e,l,t,n],s)=>{Jt["add"+s+"Listener"]=(...s)=>ol(s[e],l[s[e+1]?1:0],e>0?E(s,0,e):void 0,t,n)})),j(Jt)};var Qe=Math.pow;const Ue=Qe(2,36),Xe=Qe(2,30),Ye=Qe(2,24),Ze=Qe(2,18),_e=Qe(2,12),el=Qe(2,6),ll=e=>String.fromCharCode(48+(63&e)),tl=(e,l)=>((e,l)=>e.charCodeAt(l))(e,l)-48,nl={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},sl=(e=l)=>[Je(e),Je(e)],al=e=>{let t=1,n=sl(),s=0;const a=ae(),r=Y(),[o,u]=(e=>{let l=0,t=-1;const n=pe(e),s=e=>{const n=l,[s,a]=R(e)||""==e?[0,0]:[tl(r=e,0)*Ue+tl(r,1)*Xe+tl(r,2)*Ye+tl(r,3)*Ze+tl(r,4)*_e+tl(r,5)*el+tl(r,6),tl(r,7)*Ze+tl(r,8)*_e+tl(r,9)*el+tl(r,10),tl(r,11)*Ye+tl(r,12)*Ze+tl(r,13)*_e+tl(r,14)*el+tl(r,15)];var r;l=I(n,s,Date.now()),t=l==n?l==s?I(t,a):t:l==s?a:-1};return[()=>{return s(),a=++t,r=n,ll((e=l)/Ue)+ll(e/Xe)+ll(e/Ye)+ll(e/Ze)+ll(e/_e)+ll(e/el)+ll(e)+ll(a/Ze)+ll(a/_e)+ll(a/el)+ll(a)+ll(r/Ye)+ll(r/Ze)+ll(r/_e)+ll(r/el)+ll(r);var e,a,r},s]})(e),i=Ke(),c=e=>{const l=t;return t=0,e(),t=l,b},d=(e,t=0)=>{const s={},a={},[[r,o=l,i=0],c]=e,[d,v]=n,[h,b,f]=d;let C=t?i:f,T=o;G(r,(([e,n=l,a=0],r)=>{const o=ce(h,r,Je),[u,i,c]=o;let d=t?a:c,v=n;G(e,((e,l)=>{const[n,a,o]=g(e,ce(u,l,Je),U(U(s,r,$),l,$),t);d^=t?0:(a?Me(l,a):0)^Me(l,o),v=me(v,n)})),d^=t?0:Re(i,n),Le(o,d,n),C^=t?0:(c?Me(r,c):0)^Me(r,o[2]),T=me(T,v)})),C^=t?0:Re(b,o),Le(d,C,o);const[V]=g(c,v,a,t);return u(me(T,V)),[s,a,1]},g=(e,t,n,s)=>{const[a,r=l,o=0]=e,[u,i,c]=t;let d=r,g=s?o:c;return G(a,(([e,t,a=0],r)=>{const o=ce(u,r,(()=>[void 0,l,0])),[,i,c]=o;(!i||t>i)&&(Le(o,s?a:pe(qe(null!=e?e:null)+":"+t),t),o[0]=e,n[r]=e,g^=s?0:Me(r,c)^Me(r,o[2]),d=me(d,t))})),g^=s?0:Re(i,r),Le(t,g,r),[d,c,t[2]]},v=()=>[Ee(n[0],(e=>Ee(e,(e=>Ee(e))))),Ee(n[1])],h=e=>c((()=>i.applyChanges(d(e)))),b={getId:()=>e,getMergeableContent:v,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>ge(n[0][0],Ie),getMergeableTableDiff:e=>{const l=He(n[0][1]),t={};return ue(n[0][0],((n,[s,a,r])=>q(e,n)?r!=e[n]?t[n]=r:0:l[0][n]=De([s,a],(e=>De(e))))),[l,t]},getMergeableRowHashes:e=>{const l={};return G(e,((e,t)=>m(oe(n[0][0],t),(([n,,s])=>s!=e?ue(n,((e,[,,n])=>U(l,t,$)[e]=n)):0)))),l},getMergeableRowDiff:e=>{const l=He(n[0][1]),t={};return G(e,((e,s)=>{var a;return ue(null==(a=oe(n[0][0],s))?void 0:a[0],((n,[a,r,o])=>q(e,n)?o!==e[n]?U(t,s,$)[n]=o:0:U(l[0],s,He)[0][n]=De([a,r])))})),[l,t]},getMergeableCellHashes:e=>{const l={};return G(e,((e,t)=>m(oe(n[0][0],t),(([n])=>G(e,((e,s)=>m(oe(n,s),(([n,,a])=>a!==e?ue(n,((e,[,,n])=>U(U(l,t,$),s,$)[e]=n)):0)))))))),l},getMergeableCellDiff:e=>{const[[l,t]]=n,s={};return G(e,((e,t)=>G(e,((e,n)=>m(oe(l,t),(([l,a])=>m(oe(l,n),(([l,r])=>ue(l,((l,[o,u,i])=>i!==e[l]?U(U(s,t,(()=>He(a)))[0],n,(()=>He(r)))[0][l]=[o,u]:0)))))))))),ye(s,t)},getMergeableValuesHashes:()=>ge(n[1][0],Ie),getMergeableValueDiff:e=>{const[,[l,t]]=n,s=ge(l,Se,(([,,l],t)=>l==(null==e?void 0:e[t])));return ye(s,t)},setMergeableContent:e=>c((()=>(e=>J(e)&&2==D(e)&&Fe(e[0],(e=>X(e,(e=>Fe(e,(e=>X(e,(e=>Fe(e,(e=>X(e,(e=>Fe(e,Ne)),void 0,1)))),void 0,1)))),void 0,1)))&&Fe(e[1],(e=>X(e,(e=>Fe(e,Ne)),void 0,1))))(e)?i.transaction((()=>{i.delTables().delValues(),n=sl(),i.applyChanges(d(e,1))})):0)),setDefaultContent:e=>(i.transaction((()=>{s=1,i.setContent(e),s=0})),b),getTransactionMergeableChanges:()=>{const[[e,l],[t,s]]=n,o={};ne(a,((l,t)=>m(oe(e,t),(([e,n])=>{const s={};ne(l,((l,t)=>m(oe(e,t),(([e,n])=>{const a={};ne(l,(l=>{m(oe(e,l),(([e,t])=>a[l]=ye(e,t)))})),s[t]=ye(a,n)})))),o[t]=ye(s,n)}))));const u={};return ne(r,(e=>m(oe(t,e),(([l,t])=>u[e]=ye(l,t))))),[ye(o,l),ye(u,s),1]},applyMergeableChanges:h,merge:e=>{const l=v(),t=e.getMergeableContent();return e.applyMergeableChanges(l),h(t)}};return i.setInternalListeners((()=>{}),(()=>{}),(()=>{te(a),te(r)}),((e,n,r,u)=>{Z(ce(ce(a,e,ae),n,Y),r),t&&d([[{[e]:[{[n]:[{[r]:[u,s?l:o()]}]}]}],[{}],1])}),((e,n)=>{Z(r,e),t&&d([[{}],[{[e]:[n,s?l:o()]}],1])})),K(i,((e,l)=>b[l]=S(l,"set")||S(l,"del")||S(l,"apply")||y(l,"Transaction")||"callListener"==l?(...l)=>(e(...l),b):S(l,"add")&&y(l,"Listener")?(...t)=>{var n;const s=null!=(n=nl[E(l,3,-8)])?n:0,a=t[s];return t[s]=(e,...l)=>a(b,...l),e(...t)}:e)),j(b)};export{al as createMergeableStore};
|