tinybase 5.0.0-beta.7 → 5.0.0-beta.9
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/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/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.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/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/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +6 -0
- package/lib/debug/persisters/persister-automerge.js +15 -6
- package/lib/debug/persisters/persister-browser.js +15 -6
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +15 -6
- package/lib/debug/persisters/persister-electric-sql.js +15 -6
- package/lib/debug/persisters/persister-expo-sqlite-next.js +15 -6
- package/lib/debug/persisters/persister-expo-sqlite.js +15 -6
- package/lib/debug/persisters/persister-file.js +15 -6
- package/lib/debug/persisters/persister-indexed-db.js +15 -6
- package/lib/debug/persisters/persister-libsql.js +15 -6
- package/lib/debug/persisters/persister-partykit-client.js +15 -6
- package/lib/debug/persisters/persister-powersync.js +15 -6
- package/lib/debug/persisters/persister-remote.js +15 -6
- package/lib/debug/persisters/persister-sqlite-wasm.js +15 -6
- package/lib/debug/persisters/persister-sqlite3.js +15 -6
- package/lib/debug/persisters/persister-yjs.js +15 -6
- package/lib/debug/persisters.js +15 -6
- package/lib/debug/synchronizers/synchronizer-local.js +27 -18
- package/lib/debug/synchronizers/synchronizer-ws-client.js +45 -33
- package/lib/debug/synchronizers/synchronizer-ws-server.js +65 -26
- package/lib/debug/synchronizers.js +27 -18
- package/lib/debug/tinybase.js +33 -18
- package/lib/debug/ui-react-dom.js +22 -10
- package/lib/debug/ui-react.js +54 -5
- 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/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/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.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/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/mergeable-store.d.ts +7 -1
- package/lib/types/persisters.d.ts +10 -14
- package/lib/types/synchronizers/synchronizer-ws-client.d.ts +10 -5
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +12 -0
- package/lib/types/synchronizers.d.ts +3 -2
- package/lib/types/ui-react.d.ts +151 -1
- package/lib/types/with-schemas/mergeable-store.d.ts +7 -0
- package/lib/types/with-schemas/persisters.d.ts +11 -23
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +15 -6
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +12 -0
- package/lib/types/with-schemas/synchronizers.d.ts +4 -4
- package/lib/types/with-schemas/ui-react.d.ts +169 -1
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- 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/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/ui-react.js +1 -1
- package/lib/umd/ui-react.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/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/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +1 -1
- package/readme.md +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",a=e(t),s=Promise,n=Math.max,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),c=e=>new s(e),g=Object,l=e=>g.getPrototypeOf(e),
|
|
1
|
+
const e=e=>typeof e,t="",a=e(t),s=Promise,n=Math.max,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),c=e=>new s(e),g=Object,l=e=>g.getPrototypeOf(e),d=g.keys,u=g.freeze,y=e=>(e=>!o(e)&&r(l(e),(e=>e==g.prototype||o(l(e))),(()=>!0)))(e)&&0==(e=>d(e).length)(e),h=JSON.parse,w=(e,t)=>e?.delete(t),p=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>o(a)?(w(e,t),e):e?.set(t,a),S=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(v(e,t)):b(e,t,a()),v(e,t)},f=p(),C=p(),M=new globalThis.TextEncoder,A=2**36,L=2**30,T=2**24,m=2**18,H=4096,O=64,D=e=>String.fromCharCode(48+(63&e)),E=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,x=async(s,l,d=1,x)=>{let N;const I=(e,t)=>l.addEventListener(e,t),P=((s,i,g,l,d,h,x={})=>{let N;const[I]=(e=>{let t=0,a=-1;const s=(e=>{let t=2166136261;var a;return a=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},M.encode(e).forEach(a),t>>>0})(e),r=e=>{const s=t,[r,i]=o(e)||""==e?[0,0]:[E(c=e,0)*A+E(c,1)*L+E(c,2)*T+E(c,3)*m+E(c,4)*H+E(c,5)*O+E(c,6),E(c,7)*m+E(c,8)*H+E(c,9)*O+E(c,10),E(c,11)*T+E(c,12)*m+E(c,13)*H+E(c,14)*O+E(c,15)];var c;t=n(s,r,Date.now()),a=t==s?t==r?n(a,i):a:t==r?i:-1};return[()=>{return r(),n=++a,o=s,D((e=t)/A)+D(e/L)+D(e/T)+D(e/m)+D(e/H)+D(e/O)+D(e)+D(n/m)+D(n/H)+D(n/O)+D(n)+D(o/T)+D(o/m)+D(o/H)+D(o/O)+D(o);var e,n,o},r]})(s.getId()),P=p();g(((e,t,a,n)=>{0==a?r(v(P,t),(([t,a])=>o(t)||t==e?a(n,e):0)):1==a&&J.isAutoLoading()?z(e,n).then((e=>N?.(void 0,(()=>e)))):r(2==a&&J.isAutoSaving()?s.getMergeableContentHashes():3==a?s.getMergeableTableIdsDiff(n):4==a?s.getMergeableRowIdsDiff(n):5==a?s.getMergeableTablesChanges(n):6==a?s.getMergeableValuesChanges(n):void 0,(a=>{i(e,t,0,a)}))}));const k=async(e,t,a="")=>c(((s,n)=>{const o=I(),r=setTimeout((()=>{w(P,o),n(`No response from ${e??"anyone"} to '${t}'`)}),1e3*d);b(P,o,[e,(e,t)=>{clearTimeout(r),w(P,o),s([e,t])}]),i(e,o,t,a)})),z=async(e=null,a)=>{o(a)&&([a,e]=await k(e,2));const[n,[r,i]]=a,[,[c,g]]=s.getMergeableContentHashes(),l=[t,[[t,{}],[t,{}],1]];return c!=r&&(l[0]=n,l[1][0]=(await k(e,5,s.getMergeableCellHashes((await k(e,4,s.getMergeableRowHashes((await k(e,3,s.getMergeableTableHashes()))[0])))[0])))[0]),g!=i&&(l[0]=n,l[1][1]=(await k(e,6,s.getMergeableValuesHashes()))[0]),l},J=((t,s,n,i,c,g,l,d={},h=[])=>{let w,p,M,A=0;S(f,h,(()=>0)),S(C,h,(()=>[]));const[L,T,m,H,O]=((e,t)=>!e||o(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!y(e)||!y(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!y(e)||!y(t),t.setDefaultContent])(l,t),D=async e=>(2!=A&&(A=1,await x.schedule((async()=>{await e(),A=0}))),x),E=s=>{var n;(L&&(n=s?.[0],e(n)==a)?1===s?.[1][2]?t.applyMergeableChanges:t.setMergeableContent:1===s?.[2]?t.applyChanges:t.setContent)(s)},x={load:async e=>await D((async()=>{try{E(await s())}catch(t){g?.(t),e&&O(e)}})),startAutoLoad:async e=>(await x.stopAutoLoad().load(e),p=i((async(e,t)=>{const a=t?.();await D((async()=>{try{E(a??e?.()??await s())}catch(e){g?.(e)}}))})),x),stopAutoLoad:()=>(p&&(c(p),p=void 0),x),isAutoLoading:()=>!o(p),save:async e=>(1!=A&&(A=2,await x.schedule((async()=>{try{await n(T,e)}catch(e){g?.(e)}A=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),M=t.addDidFinishTransactionListener((()=>{const e=m();H(e)&&x.save((()=>e))})),x),stopAutoSave:()=>(r(M,t.delListener),M=void 0,x),isAutoSaving:()=>!o(M),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(v(C,h),...e),await(async()=>{if(!v(f,h)){for(b(f,h,1);!o((e=v(C,h),w=e.shift()));)try{await w()}catch(e){g?.(e)}b(f,h,0)}var e})(),x),getStore:()=>t,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...d};return u(x)})(s,(async()=>{const e=await z();return e[0]!=t?e:void 0}),(async()=>{i(null,null,1,s.getMergeableContentHashes())}),(e=>N=e),(()=>N=void 0),h,!0,{startSync:async e=>await(await J.startAutoLoad(e)).startAutoSave(),stopSync:()=>J.stopAutoLoad().stopAutoSave(),destroy:()=>(l(),J.stopSync()),getSynchronizerStats:()=>({}),...x});return J})(s,((e,...a)=>{l.send((e??t)+"\n"+JSON.stringify(a,((e,t)=>t instanceof Map?g.fromEntries([...t]):t)))}),(e=>{N=e}),(()=>{l.close()}),d,x,{getWebSocket:()=>l});return I("message",(({data:e})=>{if(!o(N)){const t=e.toString("utf8").indexOf("\n");-1!==t&&N(i(e,0,t),...h(i(e,t+1)))}})),c(((e,t)=>{l.readyState!=l.OPEN?(I("error",t),I("open",(()=>e(P)))):e(P)}))};export{x as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=
|
|
1
|
+
const e=e=>null==e,t=(t,s,n)=>e(t)?n?.():s(t),s=(e,t,s)=>e.slice(t,s),n=e=>e?.size??0,r=(c=n,e=>{return t=(e,t)=>e+c(t),o(e).reduce(t,0);var t});var c;const o=e=>[...e?.values()??[]],a=(e,t)=>e?.delete(t),l=e=>new Map(e),d=e=>[...e?.keys()??[]],i=(e,t)=>e?.get(t),u=(t,s,n)=>e(n)?(a(t,s),t):t?.set(s,n),g=/\/([^?]*)/,h=c=>{const o=l();return c.on("connection",((r,c)=>t(c.url?.match(g),(([d])=>t(c.headers["sec-websocket-key"],(t=>{const c=(v=l,f=g=o,k=h=d,f?.has(k)||u(g,h,v()),i(g,h));var g,h,v,f,k;u(c,t,r),r.on("message",(e=>{const n=e.toString("utf8"),r=n.indexOf("\n");if(-1!==r){const e=s(n,0,r),o=s(n,r+1);""===e?((e,s)=>{((e,s)=>{e?.forEach(((e,s)=>{return n=e,s!=t?n.send(t+"\n"+o):0;var n}))})(e)})(c):i(c,e)?.send(t+"\n"+o)}})),r.on("close",(()=>{a(c,t),(t=>e(t)||0==n(t))(c)&&a(o,d)}))})))))),{getWebSocketServer:()=>c,getPaths:()=>d(o),getClientIds:e=>d(i(o,e)),getStats:()=>({paths:n(o),clients:r(o)}),destroy:()=>{c.close(),o.clear()}}};export{h as createWsServer};
|
|
Binary file
|
package/lib/synchronizers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),a=Promise,s=Math.max,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=Object,c=e=>r.getPrototypeOf(e),i=r.keys,g=r.freeze,l=e=>(e=>!n(e)&&o(c(e),(e=>e==r.prototype||n(c(e))),(()=>!0)))(e)&&0==(e=>i(e).length)(e),u=(e,t)=>e?.delete(t),y=e=>new Map(e),d=(e,t)=>e?.get(t),h=(e,t,a)=>n(a)?(u(e,t),e):e?.set(t,a),w=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(d(e,t)):h(e,t,a()),d(e,t)},v=y(),p=y(),b=new globalThis.TextEncoder,C=2**36,M=2**30,A=2**24,S=2**18,f=4096,L=64,T=e=>String.fromCharCode(48+(63&e)),H=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,m=(r,c,i,m,D
|
|
1
|
+
const e=e=>typeof e,t=e(""),a=Promise,s=Math.max,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=Object,c=e=>r.getPrototypeOf(e),i=r.keys,g=r.freeze,l=e=>(e=>!n(e)&&o(c(e),(e=>e==r.prototype||n(c(e))),(()=>!0)))(e)&&0==(e=>i(e).length)(e),u=(e,t)=>e?.delete(t),y=e=>new Map(e),d=(e,t)=>e?.get(t),h=(e,t,a)=>n(a)?(u(e,t),e):e?.set(t,a),w=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(d(e,t)):h(e,t,a()),d(e,t)},v=y(),p=y(),b=new globalThis.TextEncoder,C=2**36,M=2**30,A=2**24,S=2**18,f=4096,L=64,T=e=>String.fromCharCode(48+(63&e)),H=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,m=(r,c,i,m,D,x,I={})=>{let z;const[E]=(e=>{let t=0,a=-1;const o=(e=>{let t=2166136261;var a;return a=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},b.encode(e).forEach(a),t>>>0})(e),r=e=>{const o=t,[r,c]=n(e)||""==e?[0,0]:[H(i=e,0)*C+H(i,1)*M+H(i,2)*A+H(i,3)*S+H(i,4)*f+H(i,5)*L+H(i,6),H(i,7)*S+H(i,8)*f+H(i,9)*L+H(i,10),H(i,11)*A+H(i,12)*S+H(i,13)*f+H(i,14)*L+H(i,15)];var i;t=s(o,r,Date.now()),a=t==o?t==r?s(a,c):a:t==r?c:-1};return[()=>{return r(),s=++a,n=o,T((e=t)/C)+T(e/M)+T(e/A)+T(e/S)+T(e/f)+T(e/L)+T(e)+T(s/S)+T(s/f)+T(s/L)+T(s)+T(n/A)+T(n/S)+T(n/f)+T(n/L)+T(n);var e,s,n},r]})(r.getId()),O=y();i(((e,t,a,s)=>{0==a?o(d(O,t),(([t,a])=>n(t)||t==e?a(s,e):0)):1==a&&V.isAutoLoading()?R(e,s).then((e=>z?.(void 0,(()=>e)))):o(2==a&&V.isAutoSaving()?r.getMergeableContentHashes():3==a?r.getMergeableTableIdsDiff(s):4==a?r.getMergeableRowIdsDiff(s):5==a?r.getMergeableTablesChanges(s):6==a?r.getMergeableValuesChanges(s):void 0,(a=>{c(e,t,0,a)}))}));const P=async(e,t,s="")=>new a(((a,n)=>{const o=E(),r=setTimeout((()=>{u(O,o),n(`No response from ${e??"anyone"} to '${t}'`)}),1e3*D);h(O,o,[e,(e,t)=>{clearTimeout(r),u(O,o),a([e,t])}]),c(e,o,t,s)})),R=async(e=null,t)=>{n(t)&&([t,e]=await P(e,2));const[a,[s,o]]=t,[,[c,i]]=r.getMergeableContentHashes(),g=["",[["",{}],["",{}],1]];return c!=s&&(g[0]=a,g[1][0]=(await P(e,5,r.getMergeableCellHashes((await P(e,4,r.getMergeableRowHashes((await P(e,3,r.getMergeableTableHashes()))[0])))[0])))[0]),i!=o&&(g[0]=a,g[1][1]=(await P(e,6,r.getMergeableValuesHashes()))[0]),g},V=((a,s,r,c,i,u,y,b={},C=[])=>{let M,A,S,f=0;w(v,C,(()=>0)),w(p,C,(()=>[]));const[L,T,H,m,D]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!l(e)||!l(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!l(e)||!l(t),t.setDefaultContent])(y,a),x=async e=>(2!=f&&(f=1,await z.schedule((async()=>{await e(),f=0}))),z),I=s=>{var n;(L&&(n=s?.[0],e(n)==t)?1===s?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===s?.[2]?a.applyChanges:a.setContent)(s)},z={load:async e=>await x((async()=>{try{I(await s())}catch(t){u?.(t),e&&D(e)}})),startAutoLoad:async e=>(await z.stopAutoLoad().load(e),A=c((async(e,t)=>{const a=t?.();await x((async()=>{try{I(a??e?.()??await s())}catch(e){u?.(e)}}))})),z),stopAutoLoad:()=>(A&&(i(A),A=void 0),z),isAutoLoading:()=>!n(A),save:async e=>(1!=f&&(f=2,await z.schedule((async()=>{try{await r(T,e)}catch(e){u?.(e)}f=0}))),z),startAutoSave:async()=>(await z.stopAutoSave().save(),S=a.addDidFinishTransactionListener((()=>{const e=H();m(e)&&z.save((()=>e))})),z),stopAutoSave:()=>(o(S,a.delListener),S=void 0,z),isAutoSaving:()=>!n(S),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(d(p,C),...e),await(async()=>{if(!d(v,C)){for(h(v,C,1);!n((e=d(p,C),M=e.shift()));)try{await M()}catch(e){u?.(e)}h(v,C,0)}var e})(),z),getStore:()=>a,destroy:()=>z.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...b};return g(z)})(r,(async()=>{const e=await R();return""!=e[0]?e:void 0}),(async()=>{c(null,null,1,r.getMergeableContentHashes())}),(e=>z=e),(()=>z=void 0),x,!0,{startSync:async e=>await(await V.startAutoLoad(e)).startAutoSave(),stopSync:()=>V.stopAutoLoad().stopAutoSave(),destroy:()=>(m(),V.stopSync()),getSynchronizerStats:()=>({}),...I});return V};export{m as createCustomSynchronizer};
|
package/lib/synchronizers.js.gz
CHANGED
|
Binary file
|
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",g="Has",u="Ids",h="Table",f=h+"s",b=h+u,w="Row",L=w+"Count",C=w+u,v="Sorted"+w+u,T="Cell",y=T+u,p="Value",I=p+"s",S=p+u,R=e=>t+e,M=(e,t)=>e.startsWith(t),V=(e,t)=>e.endsWith(t),m=Promise,A=Math.max,E=Math.min,H=isFinite,D=e=>null==e,k=(e,t,s)=>D(e)?s?.():t(e),J=e=>e==s||e==n,x=t=>e(t)==s,F=t=>e(t)==o,Q=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),N=e=>e.length,O=()=>{},P=(e,t)=>e.includes(t),W=(e,t)=>e.every(t),$=(e,t)=>N(e)===N(t)&&W(e,((e,s)=>t[s]===e)),j=(e,t)=>W(e,((s,n)=>0==n||t(e[n-1],s)<=0)),_=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),q=(e,t)=>e.map(t),G=e=>U(e,((e,t)=>e+t),0),K=e=>0==N(e),U=(e,t,s)=>e.reduce(t,s),X=(e,...t)=>e.push(...t),Y=e=>e.pop(),Z=e=>e.shift(),ee=Object,te=e=>ee.getPrototypeOf(e),se=ee.entries,ne=ee.isFrozen,ae=e=>!D(e)&&k(te(e),(e=>e==ee.prototype||D(te(e))),(()=>!0)),oe=ee.keys,re=ee.freeze,le=(e=[])=>ee.fromEntries(e),ie=(e,t)=>t in e,ce=(e,t)=>(delete e[t],e),de=(e,t)=>B(se(e),(([e,s])=>t(s,e))),ge=(e,t)=>q(se(e),(([e,s])=>t(s,e))),ue=(e,t)=>le(ge(e,((e,s)=>[s,t(e,s)]))),he=e=>ae(e)&&0==(e=>N(oe(e)))(e),fe=(e,t,s)=>(ie(e,t)||(e[t]=s()),e[t]),be=(e,t,s,n=0)=>D(e)||!ae(e)||!n&&he(e)||ne(e)?(s?.(),!1):(ge(e,((s,n)=>{t(s,n)||ce(e,n)})),!!n||!he(e)),we=e=>e?.size??0,Le=(e,t)=>e?.has(t)??!1,Ce=e=>D(e)||0==we(e),ve=e=>[...e?.values()??[]],Te=e=>e.clear(),ye=(e,t)=>e?.forEach(t),pe=(e,t)=>e?.delete(t),Ie=e=>new Map(e),Se=e=>[...e?.keys()??[]],Re=(e,t)=>e?.get(t),Me=(e,t)=>ye(e,((e,s)=>t(s,e))),Ve=(e,t,s)=>D(s)?(pe(e,t),e):e?.set(t,s),me=(e,t,s,n)=>(Le(e,t)?n?.(Re(e,t)):Ve(e,t,s()),Re(e,t)),Ae=(e,t,s,n=Ve)=>(ge(t,((t,n)=>s(e,n,t))),Me(e,(s=>ie(t,s)?0:n(e,s))),e),Ee=(e,t,s,n)=>{const a={};return ye(e,((e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;!n?.(s)&&(a[o]=s)}})),a},He=(e,t,s)=>Ee(e,(e=>Ee(e,t,s)),Ce,he),De=(e,t,s)=>Ee(e,(e=>He(e,t,s)),Ce,he),ke=(e,t)=>{const s=Ie();return ye(e,((e,n)=>s.set(n,t?.(e)??e))),s},Je=e=>ke(e,ke),xe=e=>ke(e,Je),Fe=(e,t,s,n,a=0)=>k((s?me:Re)(e,t[a],a>N(t)-2?s:Ie),(o=>{if(a>N(t)-2)return n?.(o)&&Ve(e,t[a]),o;const r=Fe(o,t,s,n,a+1);return Ce(o)&&Ve(e,t[a]),r})),Qe=t=>{const s=e(t);return J(s)||s==a&&H(t)?s:void 0},ze=e=>null===e||!D(Qe(e)),Ne=(e,t,s,n,a)=>D(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Oe=(e,t,s)=>D(s)?e.delValue(t):e.setValue(t,s),Pe=e=>new Set(Q(e)||D(e)?e:[e]),We=(e,t)=>e?.add(t),$e=(e,t,s,n,a)=>{const o=e.hasRow,r=Ie(),l=Ie(),i=Ie(),c=Ie(),d=Ie(),g=Ie(),u=(t,s,...n)=>{const a=me(g,t,Pe);return B(n,(t=>We(a,t)&&s&&e.callListener(t))),n},h=(t,...s)=>k(Re(g,t),(n=>{B(K(s)?ve(n):s,(t=>{e.delListener(t),pe(n,t)})),Ce(n)&&Ve(g,t)})),f=(e,s)=>{Ve(r,e,s),Le(l,e)||(Ve(l,e,t()),Ve(c,e,Ie()),Ve(d,e,Ie()),a(i))},b=e=>{Ve(r,e),Ve(l,e),Ve(c,e),Ve(d,e),h(e),a(i)};return[()=>e,()=>Se(r),e=>Me(l,e),e=>Le(l,e),e=>Re(r,e),e=>Re(l,e),(e,t)=>Ve(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=Ie(),g=Ie(),b=Re(c,t),w=Re(d,t),L=t=>{const a=s=>e.getCell(n,t,s),c=Re(b,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||Q(c)&&Q(d)&&$(c,d)||Ve(i,t,[c,d]),!D(l)){const e=Re(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ve(g,t,s)}},C=e=>{a((()=>{ye(i,(([,e],t)=>Ve(b,t,e))),ye(g,((e,t)=>Ve(w,t,e)))}),i,g,b,w,e),Te(i),Te(g)};Me(b,L),e.hasTable(n)&&B(e.getRowIds(n),(e=>{Le(b,e)||L(e)})),C(!0),h(t),u(t,0,e.addRowListener(n,null,((e,t,s)=>L(s))),e.addTableListener(n,(()=>C())))},b,e=>n(e,i),()=>Me(g,b),u,h]},je=(e,s)=>x(e)?t=>t(e):e??(()=>s??t),_e=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},Be=/^\d+$/,qe=()=>{const e=[];let s=0;return[n=>(n?Z(e):null)??t+s++,t=>{Be.test(t)&&N(e)<1e3&&X(e,t)}]},Ge=e=>{let s;const[n,a]=qe(),o=Ie();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Ve(o,d,[a,r,l,i,c]),We(Fe(r,l??[t],Pe),d),d},(e,n,...a)=>B(((e,s=[t])=>{const n=[],a=(e,t)=>t==N(s)?X(n,e):null===s[t]?ye(e,(e=>a(e,t+1))):B([s[t],null],(s=>a(Re(e,s),t+1)));return a(e,0),n})(e,n),(e=>ye(e,(e=>Re(o,e)[0](s,...n??[],...a))))),e=>k(Re(o,e),(([,s,n])=>(Fe(s,n??[t],void 0,(t=>(pe(t,e),Ce(t)?1:0))),Ve(o,e),a(e),n))),e=>k(Re(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=N(r);l==N(t)?e(s,...r,...a(r)):D(t[l])?B(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ke=_e((e=>{let s,n,a,o=100,r=Ie(),l=Ie(),i=1;const c=Ie(),d=Ie(),[g,u,h]=Ge((()=>x)),f=Ie(),b=Ie(),w=[],L=[],C=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Re(f,s);ye(n,((s,n)=>ye(s,((s,a)=>ye(s,((s,o)=>Ne(e,n,a,o,s[t]))))))),ye(a,((s,n)=>Oe(e,n,s[t])))})),i=1},v=e=>{Ve(f,e),Ve(b,e),u(d,[e])},T=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??N(e)),v),y=()=>T(w,N(w)-o),p=()=>k(s,(()=>{X(w,s),y(),T(L),s=void 0,a=1})),I=()=>{s=Y(w),a=1};let S,R;const M=(e="")=>(D(s)&&(s=t+n++,Ve(f,s,[r,l]),H(s,e),r=Ie(),l=Ie(),a=1),s),V=()=>{K(w)||(((e,...t)=>{e.unshift(...t)})(L,M()),C(0,s),s=Y(w),a=1)},m=()=>{K(L)||(X(w,s),s=Z(L),C(1,s),a=1)},A=()=>{a&&(u(c),a=0)},E=e=>{const t=M(e);return A(),t},H=(e,t)=>(J(e)&&Re(b,e)!==t&&(Ve(b,e,t),u(d,[e])),x),J=e=>Le(f,e),x={setSize:e=>(o=e,y(),x),addCheckpoint:E,setCheckpoint:H,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...L]],forEachCheckpoint:e=>Me(b,e),hasCheckpoint:J,getCheckpoint:e=>Re(b,e),goBackward:()=>(V(),A(),x),goForward:()=>(m(),A(),x),goTo:e=>{const t=P(w,e)?V:P(L,e)?m:null;for(;!D(t)&&e!=s;)t();return A(),x},addCheckpointIdsListener:e=>g(e,c),addCheckpointListener:(e,t)=>g(t,d,[e]),delListener:e=>(h(e),x),clear:()=>(T(w),T(L),D(s)||v(s),s=void 0,n=0,E(),x),clearForward:()=>(K(L)||(T(L),u(c)),x),destroy:()=>{e.delListener(S),e.delListener(R)},getListenerStats:()=>({}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=me(r,t,Ie),l=me(e,s,Ie),i=me(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&Ce(Ve(l,n))&&Ce(Ve(e,s))&&Ce(Ve(r,t))&&I(),A()}})),R=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=me(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&Ce(Ve(l,t))&&I(),A()}}))}};return re(x.clear())}),(e=>e._registerListeners())),Ue=(e,t)=>(e??0)<(t??0)?-1:1,Xe=_e((e=>{const s=Ie(),n=Ie(),[a,o,r]=Ge((()=>v)),[l,i,c,d,g,u,h,,f,b,w,L]=$e(e,Ie,(e=>D(e)?t:Q(e)?q(e,R):R(e)),a,o),C=(t,s,n)=>{const a=g(t);ye(n,((t,n)=>s(n,(s=>ye(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},v={setIndexDefinition:(e,t,a,r,l,i=Ue)=>{const c=D(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,g,f)=>{let b=0;const w=Pe(),L=Pe(),C=u(e);if(ye(a,(([e,t],s)=>{const n=Pe(e),a=Pe(t);ye(n,(e=>pe(a,e)?pe(n,e):0)),ye(n,(e=>{We(w,e),k(Re(C,e),(t=>{pe(t,s),Ce(t)&&(Ve(C,e),b=1)}))})),ye(a,(e=>{We(w,e),Le(C,e)||(Ve(C,e,Pe()),b=1),We(Re(C,e),s),D(r)||We(L,e)}))})),t(),Ce(g)||(f?Me(C,(e=>We(L,e))):Me(l,(e=>k(Re(d,e),(e=>We(L,e))))),ye(L,(e=>{const t=(t,s)=>i(Re(g,t),Re(g,s),e),s=[...Re(C,e)];j(s,t)||(Ve(C,e,Pe(_(s,t))),We(w,e))}))),(b||f)&&!D(c)){const t=[...C];j(t,c)||(h(e,Ie(_(t,c))),b=1)}b&&o(s,[e]),ye(w,(t=>o(n,[e,t])))}),je(a),k(r,je)),v},delIndexDefinition:e=>(b(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>C(t,e,s))))),forEachSlice:(e,t)=>C(e,t,u(e)),hasIndex:d,hasSlice:(e,t)=>Le(u(e),t),getTableId:g,getSliceIds:e=>Se(u(e)),getSliceRowIds:(e,t)=>ve(Re(u(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:L,getListenerStats:()=>({})};return re(v)})),Ye=Ie([["avg",[(e,t)=>G(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>A(...e),(e,t)=>A(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:A(t,e)]],["min",[e=>E(...e),(e,t)=>E(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:E(t,e)]],["sum",[e=>G(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Ze=(e,t,s,n,a,o=!1)=>{if(Ce(s))return;const[r,l,i,c]=a;return o||=D(e),ye(n,(([s,n])=>{o||(e=D(s)?l?.(e,n,t++):D(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=D(e))})),o?r(ve(s),we(s)):e},et=_e((e=>{const s=Ie(),[n,a,o]=Ge((()=>L)),[r,l,i,c,d,g,u,,h,f,b,w]=$e(e,O,(e=>isNaN(e)||D(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),L={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=F(n)?[n,r,l,i]:Re(Ye,n)??Re(Ye,"sum");return h(e,t,((t,n,o,r,l,i)=>{const d=g(e),h=we(r);i||=D(d),t();let f=Ze(d,h,r,n,c,i);H(f)||(f=void 0),f!=d&&(u(e,f),a(s,[e],f,d))}),je(o,1)),L},delMetricDefinition:e=>(f(e),L),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:g,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),L),destroy:w,getListenerStats:()=>({})};return re(L)})),tt=Ie(),st=Ie(),nt=(e,t,s,n,a,o,r,l={},i=[])=>{let c,d,g,u=0;me(tt,i,(()=>0)),me(st,i,(()=>[]));const[h,f,b,w]=((e,t)=>!e||D(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!he(e)||!he(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!he(e)||!he(t)])(r,e),L=async e=>(2!=u&&(u=1,await v.schedule((async()=>{await e(),u=0}))),v),C=t=>{(h&&x(t?.[0])?1===t?.[1][2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},v={load:async(s,n)=>await L((async()=>{try{C(await t())}catch(t){o?.(t),e.setContent([s,n])}})),startAutoLoad:async(e={},s={})=>(await v.stopAutoLoad().load(e,s),d=n((async(e,s)=>{const n=s?.();await L((async()=>{try{C(n??e?.()??await t())}catch(e){o?.(e)}}))})),v),stopAutoLoad:()=>(d&&(a(d),d=void 0),v),isAutoLoading:()=>!D(d),save:async e=>(1!=u&&(u=2,await v.schedule((async()=>{try{await s(f,e)}catch(e){o?.(e)}u=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),g=e.addDidFinishTransactionListener((()=>{const e=b();w(e)&&v.save((()=>e))})),v),stopAutoSave:()=>(k(g,e.delListener),g=void 0,v),isAutoSaving:()=>!D(g),schedule:async(...e)=>(X(Re(st,i),...e),await(async()=>{if(!Re(tt,i)){for(Ve(tt,i,1);!D(c=Z(Re(st,i)));)try{await c()}catch(e){o?.(e)}Ve(tt,i,0)}})(),v),getStore:()=>e,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return re(v)},at=new globalThis.TextEncoder,ot=e=>{let t=2166136261;return B(at.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},rt=2**36,lt=2**30,it=2**24,ct=2**18,dt=4096,gt=64,ut=e=>String.fromCharCode(48+(63&e)),ht=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,ft=e=>{let t=0,s=-1;const n=ot(e),a=e=>{const n=t,[a,o]=D(e)||""==e?[0,0]:[ht(r=e,0)*rt+ht(r,1)*lt+ht(r,2)*it+ht(r,3)*ct+ht(r,4)*dt+ht(r,5)*gt+ht(r,6),ht(r,7)*ct+ht(r,8)*dt+ht(r,9)*gt+ht(r,10),ht(r,11)*it+ht(r,12)*ct+ht(r,13)*dt+ht(r,14)*gt+ht(r,15)];var r;t=A(n,a,Date.now()),s=t==n?t==a?A(s,o):s:t==a?o:-1};return[()=>{return a(),o=++s,r=n,ut((e=t)/rt)+ut(e/lt)+ut(e/it)+ut(e/ct)+ut(e/dt)+ut(e/gt)+ut(e)+ut(o/ct)+ut(o/dt)+ut(o/gt)+ut(o)+ut(r/it)+ut(r/ct)+ut(r/dt)+ut(r/gt)+ut(r);var e,o,r},a]},bt=(e,s,n,a,o=1,r)=>{let l;const[i]=ft(e.getId()),c=Ie();n(((t,n,a,o)=>{0==a?k(Re(c,n),(([e,s])=>D(e)||e==t?s(o,t):0)):1==a&&u.isAutoLoading()?g(t,o).then((e=>l?.(void 0,(()=>e)))):k(2==a&&u.isAutoSaving()?e.getMergeableContentHashes():3==a?e.getMergeableTableIdsDiff(o):4==a?e.getMergeableRowIdsDiff(o):5==a?e.getMergeableTablesChanges(o):6==a?e.getMergeableValuesChanges(o):void 0,(e=>{s(t,n,0,e)}))}));const d=async(e,t,n="")=>new m(((a,r)=>{const l=i(),d=setTimeout((()=>{pe(c,l),r(`No response from ${e??"anyone"} to '${t}'`)}),1e3*o);Ve(c,l,[e,(e,t)=>{clearTimeout(d),pe(c,l),a([e,t])}]),s(e,l,t,n)})),g=async(s=null,n)=>{D(n)&&([n,s]=await d(s,2));const[a,[o,r]]=n,[,[l,i]]=e.getMergeableContentHashes(),c=[t,[[t,{}],[t,{}],1]];return l!=o&&(c[0]=a,c[1][0]=(await d(s,5,e.getMergeableCellHashes((await d(s,4,e.getMergeableRowHashes((await d(s,3,e.getMergeableTableHashes()))[0])))[0])))[0]),i!=r&&(c[0]=a,c[1][1]=(await d(s,6,e.getMergeableValuesHashes()))[0]),c},u=nt(e,(async()=>{const e=await g();return e[0]!=t?e:void 0}),(async()=>{s(null,null,1,e.getMergeableContentHashes())}),(e=>l=e),(()=>l=void 0),r,!0,{startSync:async()=>await(await u.startAutoLoad()).startAutoSave(),stopSync:()=>u.stopAutoLoad().stopAutoSave(),destroy:()=>(a(),u.stopSync()),getSynchronizerStats:()=>({})});return u},wt=_e((e=>{const s=e.createStore,n=s(),a=s(),o=Ie(),{addListener:r,callListeners:l,delListener:g}=a,[u,f,b,p,I,,,S,,R,M,V,m,A]=$e(e,(()=>!0),O,r,l),E=(e,t,...s)=>B(s,(s=>We(me(me(o,t,Ie),e,Pe),s))),H=e=>{k(Re(o,e),(e=>{Me(e,((e,t)=>ye(t,(t=>e.delListener(t))))),Te(e)})),B([a,n],(t=>t.delTable(e)))},J=(e,t,s)=>E(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),x={setQueryDefinition:(s,o,r)=>{S(s,o),H(s);const l=[],i=[[null,[o,null,null,[],Ie()]]],c=[],d=[],g=[];r({select:(e,s)=>{const n=F(e)?[N(l)+t,e]:[D(s)?e:s,t=>t(e,s)];return X(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=D(s)||F(t)?null:t,a=D(n)?t:s,o=[e,[e,n,F(a)?a:e=>e(a),[],Ie()]];return X(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>X(c,F(e)?e:D(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,F(t)?[t,s,n,a]:Re(Ye,t)??[(e,t)=>t]]];return X(d,o),{as:e=>o[0]=e}},having:(e,t)=>X(g,F(e)?e:s=>s(e)===t)});const u=Ie(l);if(Ce(u))return x;const h=Ie(i);Me(h,((e,[,t])=>k(Re(h,t),(({3:t})=>D(e)?0:X(t,e)))));const f=Ie(d);let b=n;if(Ce(f)&&K(g))b=a;else{J(s,b,a);const e=Ie();Me(f,((t,[s,n])=>We(me(e,s,Pe),[t,n])));const t=Pe();Me(u,(s=>Le(e,s)?0:We(t,s)));const n=Ie(),o=(t,n,o,r)=>k(t,(([l,i,c,d])=>{Me(n,((t,[s])=>{const n=me(l,t,Ie),a=Re(n,o),i=r?void 0:s;if(a!==i){const s=Pe([[a,i]]),r=we(n);Ve(n,o,i),ye(Re(e,t),(([e,t])=>{const a=Ze(d[e],r,n,s,t);d[e]=D(Qe(a))?null:a}))}})),Ce(i)||!W(g,(e=>e((e=>d[e]))))?a.delRow(s,c):D(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));E(b,s,b.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],g=Ie(),u=b.hasRow(s,l);let h=!u;ye(t,(e=>{const[t,n,a]=i(s,l,e);X(c,n),X(d,a),h||=t})),Me(e,(e=>{const[t,,n]=i(s,l,e);(h||t)&&Ve(g,e,[n])})),h&&o(Fe(n,c,void 0,(([,e])=>(pe(e,l),Ce(e)))),g,l,1),u&&o(Fe(n,d,(()=>{const e={};return ye(t,(t=>e[t]=b.getCell(s,l,t))),[Ie(),Pe(),void 0,e]}),(([,e])=>{We(e,l)})),g,l)})))}J(s,e,b);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,i]=Re(h,n),c=o?.(l,t),[d,g]=Re(i,t)??[];c!=d&&(D(g)||A(s,g),Ve(i,t,D(c)?null:[c,...m(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...D(n)?[o,t,s]:s===o?[o,t,n]:[Re(h,s)?.[0],Re(Re(h,s)?.[4],t)?.[0],n]);b.transaction((()=>W(c,(e=>e(n)))?Me(u,((e,a)=>Ne(b,s,t,e,a(n,t)))):b.delRow(s,t)))})(t)},{3:L}=Re(h,null);return b.transaction((()=>m(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,L):(b.delRow(s,a),ye(h,(({4:e})=>k(Re(e,a),(([,t])=>{A(s,t),Ve(e,a)})))))}))))),x},delQueryDefinition:e=>(H(e),R(e),x),getStore:u,getQueryIds:f,forEachQuery:b,hasQuery:p,getTableId:I,addQueryIdsListener:e=>M((()=>e(x))),delListener:e=>(g(e),x),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ge({[h]:[1,1],[h+y]:[0,1],[L]:[0,1],[C]:[0,1],[v]:[0,5],[w]:[1,2],[y]:[0,2],[T]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>x[e+c+s]=(...t)=>a[e+s](...t))),x[d+c+s+i]=(...e)=>a[d+s+i](...z(e,0,t),((s,...n)=>e[t](x,...n)),!0)})),re(x)})),Lt=_e((e=>{const s=Ie(),n=Ie(),a=Ie(),o=Ie(),[r,l,i]=Ge((()=>p)),[c,d,g,u,h,f,,,b,w,L,C]=$e(e,(()=>[Ie(),Ie(),Ie(),Ie()]),(e=>D(e)?void 0:e+t),r,l),v=(e,t,s)=>k(f(e),(([n,,a])=>{if(!Le(a,t)){const o=Pe();if(h(e)!=y(e))We(o,t);else{let e=t;for(;!D(e)&&!Le(o,e);)We(o,e),e=Re(n,e)}if(s)return o;Ve(a,t,o)}return Re(a,t)})),T=(e,t)=>k(f(e),(([,,e])=>Ve(e,t))),y=e=>Re(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(Ve(s,e,r),b(e,t,((t,s)=>{const r=Pe(),i=Pe(),c=Pe(),[d,g]=f(e);ye(s,(([t,s],n)=>{D(t)||(We(i,t),k(Re(g,t),(e=>{pe(e,n),Ce(e)&&Ve(g,t)}))),D(s)||(We(i,s),Le(g,s)||Ve(g,s,Pe()),We(Re(g,s),n)),We(r,n),Ve(d,n,s),Me(Re(o,e),(t=>{Le(v(e,t),n)&&We(c,t)}))})),t(),ye(r,(t=>l(n,[e,t]))),ye(i,(t=>l(a,[e,t]))),ye(c,(t=>{T(e,t),l(o,[e,t])}))}),je(i)),p),delRelationshipDefinition:e=>(Ve(s,e),w(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>g((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:u,getLocalTableId:h,getRemoteTableId:y,getRemoteRowId:(e,t)=>Re(f(e)?.[0],t),getLocalRowIds:(e,t)=>ve(Re(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>D(f(e))?[t]:ve(v(e,t,!0)),addRelationshipIdsListener:L,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(T(...i(e)??[]),p),destroy:C,getListenerStats:()=>({})};return re(p)})),Ct=([e,t,s])=>[e,t,s],vt=([e,t])=>[e,t],Tt=e=>e[2],yt=(e,t)=>ot(e+":"+t),pt=(e,t,s)=>{e[2]=t>>>0,s>e[0]&&(e[0]=s)},It=e=>[e,le()],St=(e="")=>[e,Ie(),0],Rt=([e,t,s],n=Ct)=>[e,Ee(t,n),s],Mt=(t,s)=>Q(t)&&3==N(t)&&x(t[0])&&s(t[1])&&e(t[2])==a&&H(t[2]),Vt=e=>[e,e],mt=()=>[Ie(),Ie()],At=e=>[...e],Et=([e,t])=>e===t,Ht=e=>JSON.stringify(e,((e,t)=>t instanceof Map?ee.fromEntries([...t]):t)),Dt=JSON.parse,kt=(e,t,s)=>Ve(e,t,Re(e,t)==-s?void 0:s),Jt=()=>{let e,t,s=!1,n=!1,o=0,c=[];const u=Ie(),v=Ie(),M=Ie(),V=Ie(),m=Ie(),A=Ie(),E=Ie(),H=Ie(),x=Ie(),Q=Ie(),N=Ie(),O=Ie(),W=Ie(),j=Ie(),G=Pe(),K=Ie(),U=Ie(),Y=Ie(),Z=Ie(),ee=mt(),te=mt(),se=mt(),ne=mt(),ae=mt(),oe=mt(),le=mt(),de=mt(),ue=mt(),fe=mt(),ve=mt(),Fe=mt(),ze=mt(),$e=mt(),je=mt(),_e=mt(),Be=mt(),Ke=mt(),Xe=mt(),Ye=mt(),Ze=mt(),et=mt(),tt=Ie(),st=mt(),[nt,at,ot,rt]=Ge((()=>Js)),lt=e=>{if(!be(e,((e,t)=>P([r,l],t))))return!1;const t=e[r];return!(!J(t)&&t!=a||(Qe(e[l])!=t&&ce(e,l),0))},it=(t,s)=>(!e||Le(N,s)||Bt(s))&&be(t,((e,t)=>ct(s,t,e)),(()=>Bt(s))),ct=(e,t,s,n)=>be(n?s:ht(s,e,t),((n,a)=>k(dt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Bt(e,t))),dt=(t,s,n,a)=>e?k(Re(Re(N,t),n),(e=>Qe(a)!=e[r]?Bt(t,s,n,a,e[l]):a),(()=>Bt(t,s,n,a))):D(Qe(a))?Bt(t,s,n,a):a,gt=(e,t)=>be(t?e:ft(e),((t,s)=>k(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),ut=(e,s)=>t?k(Re(W,e),(t=>Qe(s)!=t[r]?qt(e,s,t[l]):s),(()=>qt(e,s))):D(Qe(s))?qt(e,s):s,ht=(e,t,s)=>(k(Re(O,t),(([n,a])=>{ye(n,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(a,(n=>{ie(e,n)||Bt(t,s,n)}))})),e),ft=e=>(t&&(ye(j,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(G,(t=>{ie(e,t)||qt(t)}))),e),bt=e=>Ae(N,e,((e,t,s)=>{const n=Ie(),a=Pe();Ae(me(N,t,Ie),s,((e,t,s)=>{Ve(e,t,s),k(s[l],(e=>Ve(n,t,e)),(()=>We(a,t)))})),Ve(O,t,[n,a])}),((e,t)=>{Ve(N,t),Ve(O,t)})),wt=e=>Ae(W,e,((e,t,s)=>{Ve(W,t,s),k(s[l],(e=>Ve(j,t,e)),(()=>We(G,t)))}),((e,t)=>{Ve(W,t),Ve(j,t),pe(G,t)})),Lt=e=>he(e)?Rs():Ts(e),Ct=e=>Ae(Y,e,((e,t,s)=>vt(t,s)),((e,t)=>Ft(t))),vt=(e,t)=>Ae(me(Y,e,(()=>(Ot(e,1),Ve(K,e,qe()),Ve(U,e,Ie()),Ie()))),t,((t,s,n)=>Tt(e,t,s,n)),((t,s)=>Qt(e,t,s))),Tt=(e,t,s,n,a)=>Ae(me(t,s,(()=>(Pt(e,s,1),Ie()))),n,((t,n,a)=>yt(e,s,t,n,a)),((n,o)=>zt(e,t,s,n,o,a))),yt=(e,t,s,n,a)=>{Le(s,n)||Wt(e,t,n,1);const o=Re(s,n);a!==o&&($t(e,t,n,o,a),Ve(s,n,a))},pt=(e,t,s,n,a)=>k(Re(t,s),(t=>yt(e,s,t,n,a)),(()=>Tt(e,t,s,ht({[n]:a},e,s)))),It=e=>he(e)?ms():ys(e),St=e=>Ae(Z,e,((e,t,s)=>Rt(t,s)),((e,t)=>Nt(t))),Rt=(e,t)=>{Le(Z,e)||jt(e,1);const s=Re(Z,e);t!==s&&(_t(e,s,t),Ve(Z,e,t))},Mt=(e,t)=>{const[s]=Re(K,e),n=s(t);return Le(Re(Y,e),n)?Mt(e,t):n},xt=e=>Re(Y,e)??vt(e,{}),Ft=e=>vt(e,{}),Qt=(e,t,s)=>{const[,n]=Re(K,e);n(s),Tt(e,t,s,{},!0)},zt=(e,t,s,n,a,o)=>{const r=Re(Re(O,e)?.[0],a);if(!D(r)&&!o)return yt(e,s,n,a,r);const l=t=>{$t(e,s,t,Re(n,t)),Wt(e,s,t,-1),Ve(n,t)};D(r)?l(a):Me(n,l),Ce(n)&&(Pt(e,s,-1),Ce(Ve(t,s))&&(Ot(e,-1),Ve(Y,e),Ve(K,e),Ve(U,e)))},Nt=e=>{const t=Re(j,e);if(!D(t))return Rt(e,t);_t(e,Re(Z,e)),jt(e,-1),Ve(Z,e)},Ot=(e,t)=>kt(u,e,t),Pt=(e,t,s)=>kt(me(V,e,Ie),t,s)&&Ve(M,e,me(M,e,(()=>0))+s),Wt=(e,t,s,n)=>{const a=Re(U,e),o=Re(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&kt(me(v,e,Ie),s,n),Ve(a,s,o!=-n?o+n:null),kt(me(me(m,e,Ie),t,Ie),s,n)},$t=(e,t,s,n,a)=>me(me(me(A,e,Ie),t,Ie),s,(()=>[n,0]))[1]=a,jt=(e,t)=>kt(E,e,t),_t=(e,t,s)=>me(H,e,(()=>[t,0]))[1]=s,Bt=(e,t,s,n,a)=>(X(me(me(me(x,e,Ie),t,Ie),s,(()=>[])),n),a),qt=(e,t,s)=>(X(me(Q,e,(()=>[])),t),s),Gt=(e,t,s)=>k(Re(Re(Re(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Vt(cs(e,t,s))])),Kt=e=>k(Re(H,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Vt(us(e))])),Ut=e=>Ce(x)||Ce(_e[e])?0:ye(e?xe(x):x,((t,s)=>ye(t,((t,n)=>ye(t,((t,a)=>at(_e[e],[s,n,a],t))))))),Xt=e=>Ce(Q)||Ce(Be[e])?0:ye(e?ke(Q):Q,((t,s)=>at(Be[e],[s],t))),Yt=(e,t,s,n)=>{if(!Ce(e))return at(t,n,(()=>Ee(e))),Me(e,((e,t)=>at(s,[...n??[],e],1==t))),1},Zt=e=>{const t=hs();t!=s&&at(ee[e],void 0,t);const n=Ce(fe[e]),a=Ce(ze[e])&&Ce($e[e])&&Ce(ue[e])&&Ce(ve[e])&&Ce(oe[e])&&Ce(le[e])&&Ce(de[e])&&n&&Ce(se[e])&&Ce(ne[e]),o=Ce(je[e])&&Ce(Fe[e])&&Ce(ae[e])&&Ce(te[e]);if(!a||!o){const t=e?[ke(u),Je(v),ke(M),Je(V),xe(m),xe(A)]:[u,v,M,V,m,A];if(!a){Yt(t[0],se[e],ne[e]),ye(t[1],((t,s)=>Yt(t,oe[e],le[e],[s]))),ye(t[2],((t,s)=>{0!=t&&at(de[e],[s],os(s))}));const s=Pe();ye(t[3],((t,a)=>{Yt(t,ue[e],ve[e],[a])&&!n&&(at(fe[e],[a,null]),We(s,a))})),n||ye(t[5],((t,n)=>{if(!Le(s,n)){const s=Pe();ye(t,(e=>ye(e,(([t,n],a)=>n!==t?We(s,a):pe(e,a))))),ye(s,(t=>at(fe[e],[n,t])))}})),ye(t[4],((t,s)=>ye(t,((t,n)=>Yt(t,ze[e],$e[e],[s,n])))))}if(!o){let s;ye(t[5],((t,n)=>{let a;ye(t,((t,o)=>{let r;ye(t,(([t,l],i)=>{l!==t&&(at(je[e],[n,o,i],l,t,Gt),s=a=r=1)})),r&&at(Fe[e],[n,o],Gt)})),a&&at(ae[e],[n],Gt)})),s&&at(te[e],void 0,Gt)}}},es=e=>{const t=Cs();t!=n&&at(Ke[e],void 0,t);const s=Ce(Ye[e])&&Ce(Ze[e]),a=Ce(et[e])&&Ce(Xe[e]);if(!s||!a){const t=e?[ke(E),ke(H)]:[E,H];if(s||Yt(t[0],Ye[e],Ze[e]),!a){let s;ye(t[1],(([t,n],a)=>{n!==t&&(at(et[e],[a],n,t,Kt),s=1)})),s&&at(Xe[e],void 0,Kt)}}},ts=(e,...t)=>(Hs((()=>e(...q(t,R)))),Js),ss=()=>De(Y),ns=()=>Se(Y),as=e=>Se(Re(U,R(e))),os=e=>we(Re(Y,R(e))),rs=e=>Se(Re(Y,R(e))),ls=(e,t,s,n=0,a)=>{return q(z(_((o=Re(Y,R(e)),r=(e,s)=>[D(t)?s:Re(e,R(t)),s],q([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ue(e,t)*(s?-1:1))),n,D(a)?a:n+a),(([,e])=>e));var o,r},is=(e,t)=>Se(Re(Re(Y,R(e)),R(t))),cs=(e,t,s)=>Re(Re(Re(Y,R(e)),R(t)),R(s)),ds=()=>Ee(Z),gs=()=>Se(Z),us=e=>Re(Z,R(e)),hs=()=>!Ce(Y),fs=e=>Le(Y,R(e)),bs=(e,t)=>Le(Re(U,R(e)),R(t)),ws=(e,t)=>Le(Re(Y,R(e)),R(t)),Ls=(e,t,s)=>Le(Re(Re(Y,R(e)),R(t)),R(s)),Cs=()=>!Ce(Z),vs=e=>Le(Z,R(e)),Ts=e=>ts((()=>(e=>be(e,it,Bt))(e)?Ct(e):0)),ys=e=>ts((()=>gt(e)?St(e):0)),ps=e=>{try{Lt(Dt(e))}catch{}return Js},Is=t=>ts((()=>{if((e=be(t,(e=>be(e,lt))))&&(bt(t),!Ce(Y))){const e=ss();Rs(),Ts(e)}})),Ss=e=>ts((()=>{if(t=(e=>be(e,lt))(e)){const s=ds();Es(),ms(),t=!0,wt(e),ys(s)}})),Rs=()=>ts((()=>Ct({}))),Ms=e=>ts((e=>Le(Y,e)?Ft(e):0),e),Vs=(e,t)=>ts(((e,t)=>k(Re(Y,e),(s=>Le(s,t)?Qt(e,s,t):0))),e,t),ms=()=>ts((()=>St({}))),As=()=>ts((()=>{bt({}),e=!1})),Es=()=>ts((()=>{wt({}),t=!1})),Hs=(e,t)=>{if(-1!=o){Ds();const s=e();return ks(t),s}},Ds=()=>(-1!=o&&o++,1==o&&at(tt,void 0),Js),ks=e=>(o>0&&(o--,0==o&&(o=1,Ut(1),Ce(A)||Zt(1),Xt(1),Ce(H)||es(1),e?.(Js)&&(ye(A,((e,t)=>ye(e,((e,s)=>ye(e,(([e],n)=>Ne(Js,t,s,n,e))))))),Te(A),ye(H,(([e],t)=>Oe(Js,t,e))),Te(H)),at(st[0],void 0),o=-1,Ut(0),Ce(A)||Zt(0),Xt(0),Ce(H)||es(0),c[0]?.(Js),at(st[1],void 0),c[1]?.(Js),o=0,s=hs(),n=Cs(),B([u,v,M,V,m,A,x,E,H,Q],Te))),Js),Js={getContent:()=>[ss(),ds()],getTables:ss,getTableIds:ns,getTable:e=>He(Re(Y,R(e))),getTableCellIds:as,getRowCount:os,getRowIds:rs,getSortedRowIds:ls,getRow:(e,t)=>Ee(Re(Re(Y,R(e)),R(t))),getCellIds:is,getCell:cs,getValues:ds,getValueIds:gs,getValue:us,hasTables:hs,hasTable:fs,hasTableCell:bs,hasRow:ws,hasCell:Ls,hasValues:Cs,hasValue:vs,getTablesJson:()=>Ht(Y),getValuesJson:()=>Ht(Z),getJson:()=>Ht([Y,Z]),getTablesSchemaJson:()=>Ht(N),getValuesSchemaJson:()=>Ht(W),getSchemaJson:()=>Ht([N,W]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ts((()=>{(he(e)?Rs:Ts)(e),(he(t)?ms:ys)(t)})),setTables:Ts,setTable:(e,t)=>ts((e=>it(t,e)?vt(e,t):0),e),setRow:(e,t,s)=>ts(((e,t)=>ct(e,t,s)?Tt(e,xt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Hs((()=>{let n;return ct(e,n,t)&&(e=R(e),Tt(e,xt(e),n=Mt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ts(((e,t)=>{if(ct(e,t,s,1)){const n=xt(e);ge(s,((s,a)=>pt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ts(((e,t,s)=>k(dt(e,t,s,F(n)?n(cs(e,t,s)):n),(n=>pt(e,xt(e),t,s,n)))),e,t,s),setValues:ys,setPartialValues:e=>ts((()=>gt(e,1)?ge(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>ts((e=>k(ut(e,F(t)?t(us(e)):t),(t=>Rt(e,t)))),e),applyChanges:e=>ts((()=>{ge(e[0],((e,t)=>D(e)?Ms(t):ge(e,((e,s)=>D(e)?Vs(t,s):ge(e,((e,n)=>Ne(Js,t,s,n,e))))))),ge(e[1],((e,t)=>Oe(Js,t,e)))})),setTablesJson:ps,setValuesJson:e=>{try{It(Dt(e))}catch{}return Js},setJson:e=>ts((()=>{try{const[t,s]=Dt(e);Lt(t),It(s)}catch{ps(e)}})),setTablesSchema:Is,setValuesSchema:Ss,setSchema:(e,t)=>ts((()=>{Is(e),Ss(t)})),delTables:Rs,delTable:Ms,delRow:Vs,delCell:(e,t,s,n)=>ts(((e,t,s)=>k(Re(Y,e),(a=>k(Re(a,t),(o=>Le(o,s)?zt(e,a,t,o,s,n):0))))),e,t,s),delValues:ms,delValue:e=>ts((e=>Le(Z,e)?Nt(e):0),e),delTablesSchema:As,delValuesSchema:Es,delSchema:()=>ts((()=>{As(),Es()})),transaction:Hs,startTransaction:Ds,getTransactionChanges:()=>[Ee(A,((e,t)=>-1===Re(u,t)?void 0:Ee(e,((e,s)=>-1===Re(Re(V,t),s)?void 0:Ee(e,(([,e])=>e),(e=>Et(e)))),Ce,he)),Ce,he),Ee(H,(([,e])=>e),(e=>Et(e))),1],getTransactionLog:()=>[!Ce(A),!Ce(H),De(A,At,Et),De(x),Ee(H,At,Et),Ee(Q),Ee(u),He(V),De(m),Ee(E)],finishTransaction:ks,forEachTable:e=>ye(Y,((t,s)=>e(s,(e=>ye(t,((t,s)=>e(s,(e=>Me(t,e))))))))),forEachTableCell:(e,t)=>Me(Re(U,R(e)),t),forEachRow:(e,t)=>ye(Re(Y,R(e)),((e,s)=>t(s,(t=>Me(e,t))))),forEachCell:(e,t,s)=>Me(Re(Re(Y,R(e)),R(t)),s),forEachValue:e=>Me(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=ls(e,t,s,n,a);return nt((()=>{const r=ls(e,t,s,n,a);$(r,l)||(l=r,o(Js,e,t,s,n,a,l))}),fe[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,tt),addWillFinishTransactionListener:e=>nt(e,st[0]),addDidFinishTransactionListener:e=>nt(e,st[1]),callListener:e=>(rt(e),Js),delListener:e=>(ot(e),Js),getListenerStats:()=>({}),createStore:Jt,addListener:nt,callListeners:at,setInternalListeners:(e,t)=>c=[e,t]};return ge({[g+f]:[0,ee,[],()=>[hs()]],[f]:[0,te],[b]:[0,se],[g+h]:[1,ne,[ns],e=>[fs(...e)]],[h]:[1,ae,[ns]],[h+y]:[1,oe,[ns]],[g+h+T]:[2,le,[ns,as],e=>[bs(...e)]],[L]:[1,de,[ns]],[C]:[1,ue,[ns]],[g+w]:[2,ve,[ns,rs],e=>[ws(...e)]],[w]:[2,Fe,[ns,rs]],[y]:[2,ze,[ns,rs]],[g+T]:[3,$e,[ns,rs,is],e=>[Ls(...e)]],[T]:[3,je,[ns,rs,is],e=>Vt(cs(...e))],InvalidCell:[3,_e],[g+I]:[0,Ke,[],()=>[Cs()]],[I]:[0,Xe],[S]:[0,Ye],[g+p]:[1,Ze,[gs],e=>[vs(...e)]],[p]:[1,et,[gs],e=>Vt(us(e[0]))],InvalidValue:[1,Be]},(([e,t,s,n],a)=>{Js[d+a+i]=(...a)=>nt(a[e],t[a[e+1]?1:0],e>0?z(a,0,e):void 0,s,n)})),re(Js)},xt={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},Ft=(e="")=>[e,[St(e),St(e)],0],Qt=e=>{let s,n,a=1,o=Ft();const[r,l]=ft(e),i=Jt(),c=e=>{const t=a;return a=0,e(),a=t,b},d=(e,t=0)=>{const s={},n={},[a,[[r,l,i],c],d]=e,[,[u,h]]=o,[f,b,w]=u;if(r){let e=t?i:w^(r>f?(f?ot(f):0)^ot(r):0);de(l,(([n,a,o],r)=>{const l=me(b,r,St),[i,c,d]=l;let u=t?o:d^(n>i?(i?ot(i):0)^ot(n):0);de(a,((e,n)=>{const[a,o]=g(e,me(c,n,St),fe(fe(s,r,le),n,le),t);u^=t?0:(a?yt(n,a):0)^yt(n,o)})),pt(l,u,n),e^=t?0:(d?yt(r,d):0)^yt(r,l[2])})),pt(u,e,r)}return g(c,h,n,t),pt(o,t?d:u[2]^h[2],a),[s,n,1]},g=(e,s,n,a)=>{const[o,r,l]=e,[i,c,d]=s;if(o){let e=a?l:d^(o>i?(i?ot(i):0)^ot(o):0);de(r,(([s,o,r],l)=>{const i=me(c,l,(()=>[t,void 0,0])),[d,,g]=i;s>d&&(pt(i,a?r:ot(Ht(o??null)+":"+s),s),i[1]=o,n[l]=o,e^=a?0:yt(l,g)^yt(l,i[2]))})),pt(s,e,o)}return[d,s[2]]},u=()=>[o[0],[Rt(o[1][0],(e=>Rt(e,(e=>Rt(e))))),Rt(o[1][1])],o[2]],h=()=>{if(D(n)){const[,,e,,n]=i.getTransactionLog(),a=he(e)&&he(n)?t:s??(s=r()),o=[a,[It(he(e)?t:a),It(he(n)?t:a),1]],[[,l],[,c]]=o[1];return ge(e,((e,t)=>{const[,s]=l[t]=It(a);ge(e,((e,t)=>{const[,n]=s[t]=It(a);ge(e,(([,e],t)=>n[t]=[a,e]))}))})),ge(n,(([,e],t)=>c[t]=[a,e])),o}return n},f=e=>c((()=>{l(e[0]),i.applyChanges(d(e))})),b={getId:()=>e,getMergeableContent:u,getMergeableContentHashes:()=>[o[0],[o[1][0][2],o[1][1][2]]],getMergeableTableHashes:()=>Ee(o[1][0][1],Tt),getMergeableTableIdsDiff:e=>{const t=[];return Me(o[1][0][1],((s,[,,n])=>{n!==e?.[s]&&X(t,s)})),t},getMergeableRowHashes:e=>le(q(e,(e=>[e,Ee(Re(o[1][0][1],e)?.[1],Tt)]))),getMergeableRowIdsDiff:e=>ue(e,((e,t)=>{const s=[];return Me(Re(o[1][0][1],t)?.[1],((t,[,,n])=>{n!==e?.[t]&&X(s,t)})),s})),getMergeableCellHashes:e=>ue(e,((e,t)=>le(q(e,(e=>[e,Ee(Re(Re(o[1][0][1],t)?.[1],e)?.[1],Tt)]))))),getMergeableTablesChanges:e=>{const[,[[t,s]]]=o,n={};return de(e,((e,t)=>k(Re(s,t),(([s,a])=>{const o={};de(e,((e,t)=>k(Re(a,t),(([s,n])=>{const a=Ee(n,vt,(([,,t],s)=>t==e?.[s]));he(a)||(o[t]=[s,a])})))),he(o)||(n[t]=[s,o])})))),[t,n]},getMergeableValuesHashes:()=>Ee(o[1][1][1],Tt),getMergeableValuesChanges:e=>[o[1][1][0],Ee(o[1][1][1],vt,(([,,t],s)=>t==e?.[s]))],setMergeableContent:e=>c((()=>(e=>Mt(e,(e=>Q(e)&&2==N(e)&&Mt(e[0],(e=>be(e,(e=>Mt(e,(e=>be(e,(e=>Mt(e,(e=>be(e,(e=>Mt(e,ze)),void 0,1)))),void 0,1)))),void 0,1)))&&Mt(e[1],(e=>be(e,(e=>Mt(e,ze)),void 0,1))))))(e)?i.transaction((()=>{i.delTables().delValues(),o=Ft(),l(e[0]),i.applyChanges(d(e,1))})):0)),getTransactionMergeableChanges:h,applyMergeableChanges:f,merge:e=>{const t=u(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return i.setInternalListeners((()=>{a&&(n=h(),d(n))}),(()=>s=n=void 0)),ge(i,((e,t)=>b[t]=M(t,"set")||M(t,"del")||M(t,"apply")||V(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):M(t,"add")&&V(t,"Listener")?(...s)=>{const n=xt[z(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(b,...t),e(...s)}:e)),re(b)};export{Ke as createCheckpoints,nt as createCustomPersister,bt as createCustomSynchronizer,Xe as createIndexes,Qt as createMergeableStore,et as createMetrics,wt as createQueries,Lt as createRelationships,Jt as createStore,Ue as defaultSorter};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",b=h+g,C="Row",w=C+"Count",L=C+g,v="Sorted"+C+g,T="Cell",y=T+g,p="Value",I=p+"s",S=p+g,R=e=>t+e,M=(e,t)=>e.startsWith(t),V=(e,t)=>e.endsWith(t),m=Promise,A=Math.max,E=Math.min,D=isFinite,H=e=>null==e,k=(e,t,s)=>H(e)?s?.():t(e),J=e=>e==s||e==n,x=t=>e(t)==s,F=t=>e(t)==o,Q=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),N=e=>e.length,O=()=>{},P=(e,t)=>e.includes(t),W=(e,t)=>e.every(t),$=(e,t)=>N(e)===N(t)&&W(e,((e,s)=>t[s]===e)),j=(e,t)=>W(e,((s,n)=>0==n||t(e[n-1],s)<=0)),_=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),q=(e,t)=>e.map(t),G=e=>U(e,((e,t)=>e+t),0),K=e=>0==N(e),U=(e,t,s)=>e.reduce(t,s),X=(e,...t)=>e.push(...t),Y=e=>e.pop(),Z=e=>e.shift(),ee=Object,te=e=>ee.getPrototypeOf(e),se=ee.entries,ne=ee.isFrozen,ae=e=>!H(e)&&k(te(e),(e=>e==ee.prototype||H(te(e))),(()=>!0)),oe=ee.keys,re=ee.freeze,le=(e=[])=>ee.fromEntries(e),ie=(e,t)=>t in e,ce=(e,t)=>(delete e[t],e),de=(e,t)=>B(se(e),(([e,s])=>t(s,e))),ue=(e,t)=>q(se(e),(([e,s])=>t(s,e))),ge=(e,t)=>le(ue(e,((e,s)=>[s,t(e,s)]))),he=e=>ae(e)&&0==(e=>N(oe(e)))(e),fe=(e,t,s)=>(ie(e,t)||(e[t]=s()),e[t]),be=(e,t,s,n=0)=>H(e)||!ae(e)||!n&&he(e)||ne(e)?(s?.(),!1):(ue(e,((s,n)=>{t(s,n)||ce(e,n)})),!!n||!he(e)),Ce=e=>e?.size??0,we=(e,t)=>e?.has(t)??!1,Le=e=>H(e)||0==Ce(e),ve=e=>[...e?.values()??[]],Te=e=>e.clear(),ye=(e,t)=>e?.forEach(t),pe=(e,t)=>e?.delete(t),Ie=e=>new Map(e),Se=e=>[...e?.keys()??[]],Re=(e,t)=>e?.get(t),Me=(e,t)=>ye(e,((e,s)=>t(s,e))),Ve=(e,t,s)=>H(s)?(pe(e,t),e):e?.set(t,s),me=(e,t,s,n)=>(we(e,t)?n?.(Re(e,t)):Ve(e,t,s()),Re(e,t)),Ae=(e,t,s,n=Ve)=>(ue(t,((t,n)=>s(e,n,t))),Me(e,(s=>ie(t,s)?0:n(e,s))),e),Ee=(e,t,s,n)=>{const a={};return ye(e,((e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;!n?.(s)&&(a[o]=s)}})),a},De=(e,t,s)=>Ee(e,(e=>Ee(e,t,s)),Le,he),He=(e,t,s)=>Ee(e,(e=>De(e,t,s)),Le,he),ke=(e,t)=>{const s=Ie();return ye(e,((e,n)=>s.set(n,t?.(e)??e))),s},Je=e=>ke(e,ke),xe=e=>ke(e,Je),Fe=(e,t,s,n,a=0)=>k((s?me:Re)(e,t[a],a>N(t)-2?s:Ie),(o=>{if(a>N(t)-2)return n?.(o)&&Ve(e,t[a]),o;const r=Fe(o,t,s,n,a+1);return Le(o)&&Ve(e,t[a]),r})),Qe=t=>{const s=e(t);return J(s)||s==a&&D(t)?s:void 0},ze=e=>null===e||!H(Qe(e)),Ne=(e,t,s,n,a)=>H(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Oe=(e,t,s)=>H(s)?e.delValue(t):e.setValue(t,s),Pe=e=>new Set(Q(e)||H(e)?e:[e]),We=(e,t)=>e?.add(t),$e=(e,t,s,n,a)=>{const o=e.hasRow,r=Ie(),l=Ie(),i=Ie(),c=Ie(),d=Ie(),u=Ie(),g=(t,s,...n)=>{const a=me(u,t,Pe);return B(n,(t=>We(a,t)&&s&&e.callListener(t))),n},h=(t,...s)=>k(Re(u,t),(n=>{B(K(s)?ve(n):s,(t=>{e.delListener(t),pe(n,t)})),Le(n)&&Ve(u,t)})),f=(e,s)=>{Ve(r,e,s),we(l,e)||(Ve(l,e,t()),Ve(c,e,Ie()),Ve(d,e,Ie()),a(i))},b=e=>{Ve(r,e),Ve(l,e),Ve(c,e),Ve(d,e),h(e),a(i)};return[()=>e,()=>Se(r),e=>Me(l,e),e=>we(l,e),e=>Re(r,e),e=>Re(l,e),(e,t)=>Ve(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=Ie(),u=Ie(),b=Re(c,t),C=Re(d,t),w=t=>{const a=s=>e.getCell(n,t,s),c=Re(b,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||Q(c)&&Q(d)&&$(c,d)||Ve(i,t,[c,d]),!H(l)){const e=Re(C,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ve(u,t,s)}},L=e=>{a((()=>{ye(i,(([,e],t)=>Ve(b,t,e))),ye(u,((e,t)=>Ve(C,t,e)))}),i,u,b,C,e),Te(i),Te(u)};Me(b,w),e.hasTable(n)&&B(e.getRowIds(n),(e=>{we(b,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},b,e=>n(e,i),()=>Me(u,b),g,h]},je=(e,s)=>x(e)?t=>t(e):e??(()=>s??t),_e=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},Be=/^\d+$/,qe=()=>{const e=[];let s=0;return[n=>(n?Z(e):null)??t+s++,t=>{Be.test(t)&&N(e)<1e3&&X(e,t)}]},Ge=e=>{let s;const[n,a]=qe(),o=Ie();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Ve(o,d,[a,r,l,i,c]),We(Fe(r,l??[t],Pe),d),d},(e,n,...a)=>B(((e,s=[t])=>{const n=[],a=(e,t)=>t==N(s)?X(n,e):null===s[t]?ye(e,(e=>a(e,t+1))):B([s[t],null],(s=>a(Re(e,s),t+1)));return a(e,0),n})(e,n),(e=>ye(e,(e=>Re(o,e)[0](s,...n??[],...a))))),e=>k(Re(o,e),(([,s,n])=>(Fe(s,n??[t],void 0,(t=>(pe(t,e),Le(t)?1:0))),Ve(o,e),a(e),n))),e=>k(Re(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=N(r);l==N(t)?e(s,...r,...a(r)):H(t[l])?B(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ke=_e((e=>{let s,n,a,o=100,r=Ie(),l=Ie(),i=1;const c=Ie(),d=Ie(),[u,g,h]=Ge((()=>x)),f=Ie(),b=Ie(),C=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Re(f,s);ye(n,((s,n)=>ye(s,((s,a)=>ye(s,((s,o)=>Ne(e,n,a,o,s[t]))))))),ye(a,((s,n)=>Oe(e,n,s[t])))})),i=1},v=e=>{Ve(f,e),Ve(b,e),g(d,[e])},T=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??N(e)),v),y=()=>T(C,N(C)-o),p=()=>k(s,(()=>{X(C,s),y(),T(w),s=void 0,a=1})),I=()=>{s=Y(C),a=1};let S,R;const M=(e="")=>(H(s)&&(s=t+n++,Ve(f,s,[r,l]),D(s,e),r=Ie(),l=Ie(),a=1),s),V=()=>{K(C)||(((e,...t)=>{e.unshift(...t)})(w,M()),L(0,s),s=Y(C),a=1)},m=()=>{K(w)||(X(C,s),s=Z(w),L(1,s),a=1)},A=()=>{a&&(g(c),a=0)},E=e=>{const t=M(e);return A(),t},D=(e,t)=>(J(e)&&Re(b,e)!==t&&(Ve(b,e,t),g(d,[e])),x),J=e=>we(f,e),x={setSize:e=>(o=e,y(),x),addCheckpoint:E,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...C],s,[...w]],forEachCheckpoint:e=>Me(b,e),hasCheckpoint:J,getCheckpoint:e=>Re(b,e),goBackward:()=>(V(),A(),x),goForward:()=>(m(),A(),x),goTo:e=>{const t=P(C,e)?V:P(w,e)?m:null;for(;!H(t)&&e!=s;)t();return A(),x},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),x),clear:()=>(T(C),T(w),H(s)||v(s),s=void 0,n=0,E(),x),clearForward:()=>(K(w)||(T(w),g(c)),x),destroy:()=>{e.delListener(S),e.delListener(R)},getListenerStats:()=>({}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=me(r,t,Ie),l=me(e,s,Ie),i=me(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&Le(Ve(l,n))&&Le(Ve(e,s))&&Le(Ve(r,t))&&I(),A()}})),R=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=me(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&Le(Ve(l,t))&&I(),A()}}))}};return re(x.clear())}),(e=>e._registerListeners())),Ue=(e,t)=>(e??0)<(t??0)?-1:1,Xe=_e((e=>{const s=Ie(),n=Ie(),[a,o,r]=Ge((()=>v)),[l,i,c,d,u,g,h,,f,b,C,w]=$e(e,Ie,(e=>H(e)?t:Q(e)?q(e,R):R(e)),a,o),L=(t,s,n)=>{const a=u(t);ye(n,((t,n)=>s(n,(s=>ye(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},v={setIndexDefinition:(e,t,a,r,l,i=Ue)=>{const c=H(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let b=0;const C=Pe(),w=Pe(),L=g(e);if(ye(a,(([e,t],s)=>{const n=Pe(e),a=Pe(t);ye(n,(e=>pe(a,e)?pe(n,e):0)),ye(n,(e=>{We(C,e),k(Re(L,e),(t=>{pe(t,s),Le(t)&&(Ve(L,e),b=1)}))})),ye(a,(e=>{We(C,e),we(L,e)||(Ve(L,e,Pe()),b=1),We(Re(L,e),s),H(r)||We(w,e)}))})),t(),Le(u)||(f?Me(L,(e=>We(w,e))):Me(l,(e=>k(Re(d,e),(e=>We(w,e))))),ye(w,(e=>{const t=(t,s)=>i(Re(u,t),Re(u,s),e),s=[...Re(L,e)];j(s,t)||(Ve(L,e,Pe(_(s,t))),We(C,e))}))),(b||f)&&!H(c)){const t=[...L];j(t,c)||(h(e,Ie(_(t,c))),b=1)}b&&o(s,[e]),ye(C,(t=>o(n,[e,t])))}),je(a),k(r,je)),v},delIndexDefinition:e=>(b(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>we(g(e),t),getTableId:u,getSliceIds:e=>Se(g(e)),getSliceRowIds:(e,t)=>ve(Re(g(e),t)),addIndexIdsListener:C,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:w,getListenerStats:()=>({})};return re(v)})),Ye=Ie([["avg",[(e,t)=>G(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>A(...e),(e,t)=>A(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:A(t,e)]],["min",[e=>E(...e),(e,t)=>E(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:E(t,e)]],["sum",[e=>G(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Ze=(e,t,s,n,a,o=!1)=>{if(Le(s))return;const[r,l,i,c]=a;return o||=H(e),ye(n,(([s,n])=>{o||(e=H(s)?l?.(e,n,t++):H(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=H(e))})),o?r(ve(s),Ce(s)):e},et=_e((e=>{const s=Ie(),[n,a,o]=Ge((()=>w)),[r,l,i,c,d,u,g,,h,f,b,C]=$e(e,O,(e=>isNaN(e)||H(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),w={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=F(n)?[n,r,l,i]:Re(Ye,n)??Re(Ye,"sum");return h(e,t,((t,n,o,r,l,i)=>{const d=u(e),h=Ce(r);i||=H(d),t();let f=Ze(d,h,r,n,c,i);D(f)||(f=void 0),f!=d&&(g(e,f),a(s,[e],f,d))}),je(o,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),w),destroy:C,getListenerStats:()=>({})};return re(w)})),tt=Ie(),st=Ie(),nt=(e,t,s,n,a,o,r,l={},i=[])=>{let c,d,u,g=0;me(tt,i,(()=>0)),me(st,i,(()=>[]));const[h,f,b,C,w]=((e,t)=>!e||H(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!he(e)||!he(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!he(e)||!he(t),t.setDefaultContent])(r,e),L=async e=>(2!=g&&(g=1,await T.schedule((async()=>{await e(),g=0}))),T),v=t=>{(h&&x(t?.[0])?1===t?.[1][2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},T={load:async e=>await L((async()=>{try{v(await t())}catch(t){o?.(t),e&&w(e)}})),startAutoLoad:async e=>(await T.stopAutoLoad().load(e),d=n((async(e,s)=>{const n=s?.();await L((async()=>{try{v(n??e?.()??await t())}catch(e){o?.(e)}}))})),T),stopAutoLoad:()=>(d&&(a(d),d=void 0),T),isAutoLoading:()=>!H(d),save:async e=>(1!=g&&(g=2,await T.schedule((async()=>{try{await s(f,e)}catch(e){o?.(e)}g=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),u=e.addDidFinishTransactionListener((()=>{const e=b();C(e)&&T.save((()=>e))})),T),stopAutoSave:()=>(k(u,e.delListener),u=void 0,T),isAutoSaving:()=>!H(u),schedule:async(...e)=>(X(Re(st,i),...e),await(async()=>{if(!Re(tt,i)){for(Ve(tt,i,1);!H(c=Z(Re(st,i)));)try{await c()}catch(e){o?.(e)}Ve(tt,i,0)}})(),T),getStore:()=>e,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return re(T)},at=new globalThis.TextEncoder,ot=e=>{let t=2166136261;return B(at.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},rt=2**36,lt=2**30,it=2**24,ct=2**18,dt=4096,ut=64,gt=e=>String.fromCharCode(48+(63&e)),ht=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,ft=e=>{let t=0,s=-1;const n=ot(e),a=e=>{const n=t,[a,o]=H(e)||""==e?[0,0]:[ht(r=e,0)*rt+ht(r,1)*lt+ht(r,2)*it+ht(r,3)*ct+ht(r,4)*dt+ht(r,5)*ut+ht(r,6),ht(r,7)*ct+ht(r,8)*dt+ht(r,9)*ut+ht(r,10),ht(r,11)*it+ht(r,12)*ct+ht(r,13)*dt+ht(r,14)*ut+ht(r,15)];var r;t=A(n,a,Date.now()),s=t==n?t==a?A(s,o):s:t==a?o:-1};return[()=>{return a(),o=++s,r=n,gt((e=t)/rt)+gt(e/lt)+gt(e/it)+gt(e/ct)+gt(e/dt)+gt(e/ut)+gt(e)+gt(o/ct)+gt(o/dt)+gt(o/ut)+gt(o)+gt(r/it)+gt(r/ct)+gt(r/dt)+gt(r/ut)+gt(r);var e,o,r},a]},bt=(e,s,n,a,o,r,l={})=>{let i;const[c]=ft(e.getId()),d=Ie();n(((t,n,a,o)=>{0==a?k(Re(d,n),(([e,s])=>H(e)||e==t?s(o,t):0)):1==a&&h.isAutoLoading()?g(t,o).then((e=>i?.(void 0,(()=>e)))):k(2==a&&h.isAutoSaving()?e.getMergeableContentHashes():3==a?e.getMergeableTableIdsDiff(o):4==a?e.getMergeableRowIdsDiff(o):5==a?e.getMergeableTablesChanges(o):6==a?e.getMergeableValuesChanges(o):void 0,(e=>{s(t,n,0,e)}))}));const u=async(e,t,n="")=>new m(((a,r)=>{const l=c(),i=setTimeout((()=>{pe(d,l),r(`No response from ${e??"anyone"} to '${t}'`)}),1e3*o);Ve(d,l,[e,(e,t)=>{clearTimeout(i),pe(d,l),a([e,t])}]),s(e,l,t,n)})),g=async(s=null,n)=>{H(n)&&([n,s]=await u(s,2));const[a,[o,r]]=n,[,[l,i]]=e.getMergeableContentHashes(),c=[t,[[t,{}],[t,{}],1]];return l!=o&&(c[0]=a,c[1][0]=(await u(s,5,e.getMergeableCellHashes((await u(s,4,e.getMergeableRowHashes((await u(s,3,e.getMergeableTableHashes()))[0])))[0])))[0]),i!=r&&(c[0]=a,c[1][1]=(await u(s,6,e.getMergeableValuesHashes()))[0]),c},h=nt(e,(async()=>{const e=await g();return e[0]!=t?e:void 0}),(async()=>{s(null,null,1,e.getMergeableContentHashes())}),(e=>i=e),(()=>i=void 0),r,!0,{startSync:async e=>await(await h.startAutoLoad(e)).startAutoSave(),stopSync:()=>h.stopAutoLoad().stopAutoSave(),destroy:()=>(a(),h.stopSync()),getSynchronizerStats:()=>({}),...l});return h},Ct=_e((e=>{const s=e.createStore,n=s(),a=s(),o=Ie(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,b,p,I,,,S,,R,M,V,m,A]=$e(e,(()=>!0),O,r,l),E=(e,t,...s)=>B(s,(s=>We(me(me(o,t,Ie),e,Pe),s))),D=e=>{k(Re(o,e),(e=>{Me(e,((e,t)=>ye(t,(t=>e.delListener(t))))),Te(e)})),B([a,n],(t=>t.delTable(e)))},J=(e,t,s)=>E(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),x={setQueryDefinition:(s,o,r)=>{S(s,o),D(s);const l=[],i=[[null,[o,null,null,[],Ie()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=F(e)?[N(l)+t,e]:[H(s)?e:s,t=>t(e,s)];return X(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=H(s)||F(t)?null:t,a=H(n)?t:s,o=[e,[e,n,F(a)?a:e=>e(a),[],Ie()]];return X(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>X(c,F(e)?e:H(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,F(t)?[t,s,n,a]:Re(Ye,t)??[(e,t)=>t]]];return X(d,o),{as:e=>o[0]=e}},having:(e,t)=>X(u,F(e)?e:s=>s(e)===t)});const g=Ie(l);if(Le(g))return x;const h=Ie(i);Me(h,((e,[,t])=>k(Re(h,t),(({3:t})=>H(e)?0:X(t,e)))));const f=Ie(d);let b=n;if(Le(f)&&K(u))b=a;else{J(s,b,a);const e=Ie();Me(f,((t,[s,n])=>We(me(e,s,Pe),[t,n])));const t=Pe();Me(g,(s=>we(e,s)?0:We(t,s)));const n=Ie(),o=(t,n,o,r)=>k(t,(([l,i,c,d])=>{Me(n,((t,[s])=>{const n=me(l,t,Ie),a=Re(n,o),i=r?void 0:s;if(a!==i){const s=Pe([[a,i]]),r=Ce(n);Ve(n,o,i),ye(Re(e,t),(([e,t])=>{const a=Ze(d[e],r,n,s,t);d[e]=H(Qe(a))?null:a}))}})),Le(i)||!W(u,(e=>e((e=>d[e]))))?a.delRow(s,c):H(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));E(b,s,b.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=Ie(),g=b.hasRow(s,l);let h=!g;ye(t,(e=>{const[t,n,a]=i(s,l,e);X(c,n),X(d,a),h||=t})),Me(e,(e=>{const[t,,n]=i(s,l,e);(h||t)&&Ve(u,e,[n])})),h&&o(Fe(n,c,void 0,(([,e])=>(pe(e,l),Le(e)))),u,l,1),g&&o(Fe(n,d,(()=>{const e={};return ye(t,(t=>e[t]=b.getCell(s,l,t))),[Ie(),Pe(),void 0,e]}),(([,e])=>{We(e,l)})),u,l)})))}J(s,e,b);const C=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,i]=Re(h,n),c=o?.(l,t),[d,u]=Re(i,t)??[];c!=d&&(H(u)||A(s,u),Ve(i,t,H(c)?null:[c,...m(s,1,e.addRowListener(a,c,(()=>C(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...H(n)?[o,t,s]:s===o?[o,t,n]:[Re(h,s)?.[0],Re(Re(h,s)?.[4],t)?.[0],n]);b.transaction((()=>W(c,(e=>e(n)))?Me(g,((e,a)=>Ne(b,s,t,e,a(n,t)))):b.delRow(s,t)))})(t)},{3:w}=Re(h,null);return b.transaction((()=>m(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?C(a,o,a,w):(b.delRow(s,a),ye(h,(({4:e})=>k(Re(e,a),(([,t])=>{A(s,t),Ve(e,a)})))))}))))),x},delQueryDefinition:e=>(D(e),R(e),x),getStore:g,getQueryIds:f,forEachQuery:b,hasQuery:p,getTableId:I,addQueryIdsListener:e=>M((()=>e(x))),delListener:e=>(u(e),x),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ue({[h]:[1,1],[h+y]:[0,1],[w]:[0,1],[L]:[0,1],[v]:[0,5],[C]:[1,2],[y]:[0,2],[T]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>x[e+c+s]=(...t)=>a[e+s](...t))),x[d+c+s+i]=(...e)=>a[d+s+i](...z(e,0,t),((s,...n)=>e[t](x,...n)),!0)})),re(x)})),wt=_e((e=>{const s=Ie(),n=Ie(),a=Ie(),o=Ie(),[r,l,i]=Ge((()=>p)),[c,d,u,g,h,f,,,b,C,w,L]=$e(e,(()=>[Ie(),Ie(),Ie(),Ie()]),(e=>H(e)?void 0:e+t),r,l),v=(e,t,s)=>k(f(e),(([n,,a])=>{if(!we(a,t)){const o=Pe();if(h(e)!=y(e))We(o,t);else{let e=t;for(;!H(e)&&!we(o,e);)We(o,e),e=Re(n,e)}if(s)return o;Ve(a,t,o)}return Re(a,t)})),T=(e,t)=>k(f(e),(([,,e])=>Ve(e,t))),y=e=>Re(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(Ve(s,e,r),b(e,t,((t,s)=>{const r=Pe(),i=Pe(),c=Pe(),[d,u]=f(e);ye(s,(([t,s],n)=>{H(t)||(We(i,t),k(Re(u,t),(e=>{pe(e,n),Le(e)&&Ve(u,t)}))),H(s)||(We(i,s),we(u,s)||Ve(u,s,Pe()),We(Re(u,s),n)),We(r,n),Ve(d,n,s),Me(Re(o,e),(t=>{we(v(e,t),n)&&We(c,t)}))})),t(),ye(r,(t=>l(n,[e,t]))),ye(i,(t=>l(a,[e,t]))),ye(c,(t=>{T(e,t),l(o,[e,t])}))}),je(i)),p),delRelationshipDefinition:e=>(Ve(s,e),C(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:y,getRemoteRowId:(e,t)=>Re(f(e)?.[0],t),getLocalRowIds:(e,t)=>ve(Re(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>H(f(e))?[t]:ve(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(T(...i(e)??[]),p),destroy:L,getListenerStats:()=>({})};return re(p)})),Lt=([e,t,s])=>[e,t,s],vt=([e,t])=>[e,t],Tt=e=>e[2],yt=(e,t)=>ot(e+":"+t),pt=(e,t,s)=>{e[2]=t>>>0,s>e[0]&&(e[0]=s)},It=e=>[e,le()],St=(e="")=>[e,Ie(),0],Rt=([e,t,s],n=Lt)=>[e,Ee(t,n),s],Mt=(t,s)=>Q(t)&&3==N(t)&&x(t[0])&&s(t[1])&&e(t[2])==a&&D(t[2]),Vt=e=>[e,e],mt=()=>[Ie(),Ie()],At=e=>[...e],Et=([e,t])=>e===t,Dt=e=>JSON.stringify(e,((e,t)=>t instanceof Map?ee.fromEntries([...t]):t)),Ht=JSON.parse,kt=(e,t,s)=>Ve(e,t,Re(e,t)==-s?void 0:s),Jt=()=>{let e,t,s=!1,n=!1,o=0,c=[];const g=Ie(),v=Ie(),M=Ie(),V=Ie(),m=Ie(),A=Ie(),E=Ie(),D=Ie(),x=Ie(),Q=Ie(),N=Ie(),O=Ie(),W=Ie(),j=Ie(),G=Pe(),K=Ie(),U=Ie(),Y=Ie(),Z=Ie(),ee=mt(),te=mt(),se=mt(),ne=mt(),ae=mt(),oe=mt(),le=mt(),de=mt(),ge=mt(),fe=mt(),ve=mt(),Fe=mt(),ze=mt(),$e=mt(),je=mt(),_e=mt(),Be=mt(),Ke=mt(),Xe=mt(),Ye=mt(),Ze=mt(),et=mt(),tt=Ie(),st=mt(),[nt,at,ot,rt]=Ge((()=>Js)),lt=e=>{if(!be(e,((e,t)=>P([r,l],t))))return!1;const t=e[r];return!(!J(t)&&t!=a||(Qe(e[l])!=t&&ce(e,l),0))},it=(t,s)=>(!e||we(N,s)||Bt(s))&&be(t,((e,t)=>ct(s,t,e)),(()=>Bt(s))),ct=(e,t,s,n)=>be(n?s:ht(s,e,t),((n,a)=>k(dt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Bt(e,t))),dt=(t,s,n,a)=>e?k(Re(Re(N,t),n),(e=>Qe(a)!=e[r]?Bt(t,s,n,a,e[l]):a),(()=>Bt(t,s,n,a))):H(Qe(a))?Bt(t,s,n,a):a,ut=(e,t)=>be(t?e:ft(e),((t,s)=>k(gt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),gt=(e,s)=>t?k(Re(W,e),(t=>Qe(s)!=t[r]?qt(e,s,t[l]):s),(()=>qt(e,s))):H(Qe(s))?qt(e,s):s,ht=(e,t,s)=>(k(Re(O,t),(([n,a])=>{ye(n,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(a,(n=>{ie(e,n)||Bt(t,s,n)}))})),e),ft=e=>(t&&(ye(j,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(G,(t=>{ie(e,t)||qt(t)}))),e),bt=e=>Ae(N,e,((e,t,s)=>{const n=Ie(),a=Pe();Ae(me(N,t,Ie),s,((e,t,s)=>{Ve(e,t,s),k(s[l],(e=>Ve(n,t,e)),(()=>We(a,t)))})),Ve(O,t,[n,a])}),((e,t)=>{Ve(N,t),Ve(O,t)})),Ct=e=>Ae(W,e,((e,t,s)=>{Ve(W,t,s),k(s[l],(e=>Ve(j,t,e)),(()=>We(G,t)))}),((e,t)=>{Ve(W,t),Ve(j,t),pe(G,t)})),wt=e=>he(e)?Rs():Ts(e),Lt=e=>Ae(Y,e,((e,t,s)=>vt(t,s)),((e,t)=>Ft(t))),vt=(e,t)=>Ae(me(Y,e,(()=>(Ot(e,1),Ve(K,e,qe()),Ve(U,e,Ie()),Ie()))),t,((t,s,n)=>Tt(e,t,s,n)),((t,s)=>Qt(e,t,s))),Tt=(e,t,s,n,a)=>Ae(me(t,s,(()=>(Pt(e,s,1),Ie()))),n,((t,n,a)=>yt(e,s,t,n,a)),((n,o)=>zt(e,t,s,n,o,a))),yt=(e,t,s,n,a)=>{we(s,n)||Wt(e,t,n,1);const o=Re(s,n);a!==o&&($t(e,t,n,o,a),Ve(s,n,a))},pt=(e,t,s,n,a)=>k(Re(t,s),(t=>yt(e,s,t,n,a)),(()=>Tt(e,t,s,ht({[n]:a},e,s)))),It=e=>he(e)?ms():ys(e),St=e=>Ae(Z,e,((e,t,s)=>Rt(t,s)),((e,t)=>Nt(t))),Rt=(e,t)=>{we(Z,e)||jt(e,1);const s=Re(Z,e);t!==s&&(_t(e,s,t),Ve(Z,e,t))},Mt=(e,t)=>{const[s]=Re(K,e),n=s(t);return we(Re(Y,e),n)?Mt(e,t):n},xt=e=>Re(Y,e)??vt(e,{}),Ft=e=>vt(e,{}),Qt=(e,t,s)=>{const[,n]=Re(K,e);n(s),Tt(e,t,s,{},!0)},zt=(e,t,s,n,a,o)=>{const r=Re(Re(O,e)?.[0],a);if(!H(r)&&!o)return yt(e,s,n,a,r);const l=t=>{$t(e,s,t,Re(n,t)),Wt(e,s,t,-1),Ve(n,t)};H(r)?l(a):Me(n,l),Le(n)&&(Pt(e,s,-1),Le(Ve(t,s))&&(Ot(e,-1),Ve(Y,e),Ve(K,e),Ve(U,e)))},Nt=e=>{const t=Re(j,e);if(!H(t))return Rt(e,t);_t(e,Re(Z,e)),jt(e,-1),Ve(Z,e)},Ot=(e,t)=>kt(g,e,t),Pt=(e,t,s)=>kt(me(V,e,Ie),t,s)&&Ve(M,e,me(M,e,(()=>0))+s),Wt=(e,t,s,n)=>{const a=Re(U,e),o=Re(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&kt(me(v,e,Ie),s,n),Ve(a,s,o!=-n?o+n:null),kt(me(me(m,e,Ie),t,Ie),s,n)},$t=(e,t,s,n,a)=>me(me(me(A,e,Ie),t,Ie),s,(()=>[n,0]))[1]=a,jt=(e,t)=>kt(E,e,t),_t=(e,t,s)=>me(D,e,(()=>[t,0]))[1]=s,Bt=(e,t,s,n,a)=>(X(me(me(me(x,e,Ie),t,Ie),s,(()=>[])),n),a),qt=(e,t,s)=>(X(me(Q,e,(()=>[])),t),s),Gt=(e,t,s)=>k(Re(Re(Re(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Vt(cs(e,t,s))])),Kt=e=>k(Re(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Vt(gs(e))])),Ut=e=>Le(x)||Le(_e[e])?0:ye(e?xe(x):x,((t,s)=>ye(t,((t,n)=>ye(t,((t,a)=>at(_e[e],[s,n,a],t))))))),Xt=e=>Le(Q)||Le(Be[e])?0:ye(e?ke(Q):Q,((t,s)=>at(Be[e],[s],t))),Yt=(e,t,s,n)=>{if(!Le(e))return at(t,n,(()=>Ee(e))),Me(e,((e,t)=>at(s,[...n??[],e],1==t))),1},Zt=e=>{const t=hs();t!=s&&at(ee[e],void 0,t);const n=Le(fe[e]),a=Le(ze[e])&&Le($e[e])&&Le(ge[e])&&Le(ve[e])&&Le(oe[e])&&Le(le[e])&&Le(de[e])&&n&&Le(se[e])&&Le(ne[e]),o=Le(je[e])&&Le(Fe[e])&&Le(ae[e])&&Le(te[e]);if(!a||!o){const t=e?[ke(g),Je(v),ke(M),Je(V),xe(m),xe(A)]:[g,v,M,V,m,A];if(!a){Yt(t[0],se[e],ne[e]),ye(t[1],((t,s)=>Yt(t,oe[e],le[e],[s]))),ye(t[2],((t,s)=>{0!=t&&at(de[e],[s],os(s))}));const s=Pe();ye(t[3],((t,a)=>{Yt(t,ge[e],ve[e],[a])&&!n&&(at(fe[e],[a,null]),We(s,a))})),n||ye(t[5],((t,n)=>{if(!we(s,n)){const s=Pe();ye(t,(e=>ye(e,(([t,n],a)=>n!==t?We(s,a):pe(e,a))))),ye(s,(t=>at(fe[e],[n,t])))}})),ye(t[4],((t,s)=>ye(t,((t,n)=>Yt(t,ze[e],$e[e],[s,n])))))}if(!o){let s;ye(t[5],((t,n)=>{let a;ye(t,((t,o)=>{let r;ye(t,(([t,l],i)=>{l!==t&&(at(je[e],[n,o,i],l,t,Gt),s=a=r=1)})),r&&at(Fe[e],[n,o],Gt)})),a&&at(ae[e],[n],Gt)})),s&&at(te[e],void 0,Gt)}}},es=e=>{const t=Ls();t!=n&&at(Ke[e],void 0,t);const s=Le(Ye[e])&&Le(Ze[e]),a=Le(et[e])&&Le(Xe[e]);if(!s||!a){const t=e?[ke(E),ke(D)]:[E,D];if(s||Yt(t[0],Ye[e],Ze[e]),!a){let s;ye(t[1],(([t,n],a)=>{n!==t&&(at(et[e],[a],n,t,Kt),s=1)})),s&&at(Xe[e],void 0,Kt)}}},ts=(e,...t)=>(Ds((()=>e(...q(t,R)))),Js),ss=()=>He(Y),ns=()=>Se(Y),as=e=>Se(Re(U,R(e))),os=e=>Ce(Re(Y,R(e))),rs=e=>Se(Re(Y,R(e))),ls=(e,t,s,n=0,a)=>{return q(z(_((o=Re(Y,R(e)),r=(e,s)=>[H(t)?s:Re(e,R(t)),s],q([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ue(e,t)*(s?-1:1))),n,H(a)?a:n+a),(([,e])=>e));var o,r},is=(e,t)=>Se(Re(Re(Y,R(e)),R(t))),cs=(e,t,s)=>Re(Re(Re(Y,R(e)),R(t)),R(s)),ds=()=>Ee(Z),us=()=>Se(Z),gs=e=>Re(Z,R(e)),hs=()=>!Le(Y),fs=e=>we(Y,R(e)),bs=(e,t)=>we(Re(U,R(e)),R(t)),Cs=(e,t)=>we(Re(Y,R(e)),R(t)),ws=(e,t,s)=>we(Re(Re(Y,R(e)),R(t)),R(s)),Ls=()=>!Le(Z),vs=e=>we(Z,R(e)),Ts=e=>ts((()=>(e=>be(e,it,Bt))(e)?Lt(e):0)),ys=e=>ts((()=>ut(e)?St(e):0)),ps=e=>{try{wt(Ht(e))}catch{}return Js},Is=t=>ts((()=>{if((e=be(t,(e=>be(e,lt))))&&(bt(t),!Le(Y))){const e=ss();Rs(),Ts(e)}})),Ss=e=>ts((()=>{if(t=(e=>be(e,lt))(e)){const s=ds();Es(),ms(),t=!0,Ct(e),ys(s)}})),Rs=()=>ts((()=>Lt({}))),Ms=e=>ts((e=>we(Y,e)?Ft(e):0),e),Vs=(e,t)=>ts(((e,t)=>k(Re(Y,e),(s=>we(s,t)?Qt(e,s,t):0))),e,t),ms=()=>ts((()=>St({}))),As=()=>ts((()=>{bt({}),e=!1})),Es=()=>ts((()=>{Ct({}),t=!1})),Ds=(e,t)=>{if(-1!=o){Hs();const s=e();return ks(t),s}},Hs=()=>(-1!=o&&o++,1==o&&at(tt,void 0),Js),ks=e=>(o>0&&(o--,0==o&&(o=1,Ut(1),Le(A)||Zt(1),Xt(1),Le(D)||es(1),e?.(Js)&&(ye(A,((e,t)=>ye(e,((e,s)=>ye(e,(([e],n)=>Ne(Js,t,s,n,e))))))),Te(A),ye(D,(([e],t)=>Oe(Js,t,e))),Te(D)),at(st[0],void 0),o=-1,Ut(0),Le(A)||Zt(0),Xt(0),Le(D)||es(0),c[0]?.(Js),at(st[1],void 0),c[1]?.(Js),o=0,s=hs(),n=Ls(),B([g,v,M,V,m,A,x,E,D,Q],Te))),Js),Js={getContent:()=>[ss(),ds()],getTables:ss,getTableIds:ns,getTable:e=>De(Re(Y,R(e))),getTableCellIds:as,getRowCount:os,getRowIds:rs,getSortedRowIds:ls,getRow:(e,t)=>Ee(Re(Re(Y,R(e)),R(t))),getCellIds:is,getCell:cs,getValues:ds,getValueIds:us,getValue:gs,hasTables:hs,hasTable:fs,hasTableCell:bs,hasRow:Cs,hasCell:ws,hasValues:Ls,hasValue:vs,getTablesJson:()=>Dt(Y),getValuesJson:()=>Dt(Z),getJson:()=>Dt([Y,Z]),getTablesSchemaJson:()=>Dt(N),getValuesSchemaJson:()=>Dt(W),getSchemaJson:()=>Dt([N,W]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ts((()=>{(he(e)?Rs:Ts)(e),(he(t)?ms:ys)(t)})),setTables:Ts,setTable:(e,t)=>ts((e=>it(t,e)?vt(e,t):0),e),setRow:(e,t,s)=>ts(((e,t)=>ct(e,t,s)?Tt(e,xt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Ds((()=>{let n;return ct(e,n,t)&&(e=R(e),Tt(e,xt(e),n=Mt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ts(((e,t)=>{if(ct(e,t,s,1)){const n=xt(e);ue(s,((s,a)=>pt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ts(((e,t,s)=>k(dt(e,t,s,F(n)?n(cs(e,t,s)):n),(n=>pt(e,xt(e),t,s,n)))),e,t,s),setValues:ys,setPartialValues:e=>ts((()=>ut(e,1)?ue(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>ts((e=>k(gt(e,F(t)?t(gs(e)):t),(t=>Rt(e,t)))),e),applyChanges:e=>ts((()=>{ue(e[0],((e,t)=>H(e)?Ms(t):ue(e,((e,s)=>H(e)?Vs(t,s):ue(e,((e,n)=>Ne(Js,t,s,n,e))))))),ue(e[1],((e,t)=>Oe(Js,t,e)))})),setTablesJson:ps,setValuesJson:e=>{try{It(Ht(e))}catch{}return Js},setJson:e=>ts((()=>{try{const[t,s]=Ht(e);wt(t),It(s)}catch{ps(e)}})),setTablesSchema:Is,setValuesSchema:Ss,setSchema:(e,t)=>ts((()=>{Is(e),Ss(t)})),delTables:Rs,delTable:Ms,delRow:Vs,delCell:(e,t,s,n)=>ts(((e,t,s)=>k(Re(Y,e),(a=>k(Re(a,t),(o=>we(o,s)?zt(e,a,t,o,s,n):0))))),e,t,s),delValues:ms,delValue:e=>ts((e=>we(Z,e)?Nt(e):0),e),delTablesSchema:As,delValuesSchema:Es,delSchema:()=>ts((()=>{As(),Es()})),transaction:Ds,startTransaction:Hs,getTransactionChanges:()=>[Ee(A,((e,t)=>-1===Re(g,t)?void 0:Ee(e,((e,s)=>-1===Re(Re(V,t),s)?void 0:Ee(e,(([,e])=>e),(e=>Et(e)))),Le,he)),Le,he),Ee(D,(([,e])=>e),(e=>Et(e))),1],getTransactionLog:()=>[!Le(A),!Le(D),He(A,At,Et),He(x),Ee(D,At,Et),Ee(Q),Ee(g),De(V),He(m),Ee(E)],finishTransaction:ks,forEachTable:e=>ye(Y,((t,s)=>e(s,(e=>ye(t,((t,s)=>e(s,(e=>Me(t,e))))))))),forEachTableCell:(e,t)=>Me(Re(U,R(e)),t),forEachRow:(e,t)=>ye(Re(Y,R(e)),((e,s)=>t(s,(t=>Me(e,t))))),forEachCell:(e,t,s)=>Me(Re(Re(Y,R(e)),R(t)),s),forEachValue:e=>Me(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=ls(e,t,s,n,a);return nt((()=>{const r=ls(e,t,s,n,a);$(r,l)||(l=r,o(Js,e,t,s,n,a,l))}),fe[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,tt),addWillFinishTransactionListener:e=>nt(e,st[0]),addDidFinishTransactionListener:e=>nt(e,st[1]),callListener:e=>(rt(e),Js),delListener:e=>(ot(e),Js),getListenerStats:()=>({}),createStore:Jt,addListener:nt,callListeners:at,setInternalListeners:(e,t)=>c=[e,t]};return ue({[u+f]:[0,ee,[],()=>[hs()]],[f]:[0,te],[b]:[0,se],[u+h]:[1,ne,[ns],e=>[fs(...e)]],[h]:[1,ae,[ns]],[h+y]:[1,oe,[ns]],[u+h+T]:[2,le,[ns,as],e=>[bs(...e)]],[w]:[1,de,[ns]],[L]:[1,ge,[ns]],[u+C]:[2,ve,[ns,rs],e=>[Cs(...e)]],[C]:[2,Fe,[ns,rs]],[y]:[2,ze,[ns,rs]],[u+T]:[3,$e,[ns,rs,is],e=>[ws(...e)]],[T]:[3,je,[ns,rs,is],e=>Vt(cs(...e))],InvalidCell:[3,_e],[u+I]:[0,Ke,[],()=>[Ls()]],[I]:[0,Xe],[S]:[0,Ye],[u+p]:[1,Ze,[us],e=>[vs(...e)]],[p]:[1,et,[us],e=>Vt(gs(e[0]))],InvalidValue:[1,Be]},(([e,t,s,n],a)=>{Js[d+a+i]=(...a)=>nt(a[e],t[a[e+1]?1:0],e>0?z(a,0,e):void 0,s,n)})),re(Js)},xt={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},Ft=(e="")=>[e,[St(e),St(e)],0],Qt=e=>{let s,n,a=1,o=Ft();const[r,l]=ft(e),i=Jt(),c=e=>{const t=a;return a=0,e(),a=t,b},d=(e,t=0)=>{const s={},n={},[a,[[r,l,i],c],d]=e,[,[g,h]]=o,[f,b,C]=g;if(r){let e=t?i:C^(r>f?(f?ot(f):0)^ot(r):0);de(l,(([n,a,o],r)=>{const l=me(b,r,St),[i,c,d]=l;let g=t?o:d^(n>i?(i?ot(i):0)^ot(n):0);de(a,((e,n)=>{const[a,o]=u(e,me(c,n,St),fe(fe(s,r,le),n,le),t);g^=t?0:(a?yt(n,a):0)^yt(n,o)})),pt(l,g,n),e^=t?0:(d?yt(r,d):0)^yt(r,l[2])})),pt(g,e,r)}return u(c,h,n,t),pt(o,t?d:g[2]^h[2],a),[s,n,1]},u=(e,s,n,a)=>{const[o,r,l]=e,[i,c,d]=s;if(o){let e=a?l:d^(o>i?(i?ot(i):0)^ot(o):0);de(r,(([s,o,r],l)=>{const i=me(c,l,(()=>[t,void 0,0])),[d,,u]=i;s>d&&(pt(i,a?r:ot(Dt(o??null)+":"+s),s),i[1]=o,n[l]=o,e^=a?0:yt(l,u)^yt(l,i[2]))})),pt(s,e,o)}return[d,s[2]]},g=()=>[o[0],[Rt(o[1][0],(e=>Rt(e,(e=>Rt(e))))),Rt(o[1][1])],o[2]],h=()=>{if(H(n)){const[,,e,,n]=i.getTransactionLog(),a=he(e)&&he(n)?t:s??(s=r()),o=[a,[It(he(e)?t:a),It(he(n)?t:a),1]],[[,l],[,c]]=o[1];return ue(e,((e,t)=>{const[,s]=l[t]=It(a);ue(e,((e,t)=>{const[,n]=s[t]=It(a);ue(e,(([,e],t)=>n[t]=[a,e]))}))})),ue(n,(([,e],t)=>c[t]=[a,e])),o}return n},f=e=>c((()=>{l(e[0]),i.applyChanges(d(e))})),b={getId:()=>e,getMergeableContent:g,getMergeableContentHashes:()=>[o[0],[o[1][0][2],o[1][1][2]]],getMergeableTableHashes:()=>Ee(o[1][0][1],Tt),getMergeableTableIdsDiff:e=>{const t=[];return Me(o[1][0][1],((s,[,,n])=>{n!==e?.[s]&&X(t,s)})),t},getMergeableRowHashes:e=>le(q(e,(e=>[e,Ee(Re(o[1][0][1],e)?.[1],Tt)]))),getMergeableRowIdsDiff:e=>ge(e,((e,t)=>{const s=[];return Me(Re(o[1][0][1],t)?.[1],((t,[,,n])=>{n!==e?.[t]&&X(s,t)})),s})),getMergeableCellHashes:e=>ge(e,((e,t)=>le(q(e,(e=>[e,Ee(Re(Re(o[1][0][1],t)?.[1],e)?.[1],Tt)]))))),getMergeableTablesChanges:e=>{const[,[[t,s]]]=o,n={};return de(e,((e,t)=>k(Re(s,t),(([s,a])=>{const o={};de(e,((e,t)=>k(Re(a,t),(([s,n])=>{const a=Ee(n,vt,(([,,t],s)=>t==e?.[s]));he(a)||(o[t]=[s,a])})))),he(o)||(n[t]=[s,o])})))),[t,n]},getMergeableValuesHashes:()=>Ee(o[1][1][1],Tt),getMergeableValuesChanges:e=>[o[1][1][0],Ee(o[1][1][1],vt,(([,,t],s)=>t==e?.[s]))],setMergeableContent:e=>c((()=>(e=>Mt(e,(e=>Q(e)&&2==N(e)&&Mt(e[0],(e=>be(e,(e=>Mt(e,(e=>be(e,(e=>Mt(e,(e=>be(e,(e=>Mt(e,ze)),void 0,1)))),void 0,1)))),void 0,1)))&&Mt(e[1],(e=>be(e,(e=>Mt(e,ze)),void 0,1))))))(e)?i.transaction((()=>{i.delTables().delValues(),o=Ft(),l(e[0]),i.applyChanges(d(e,1))})):0)),setDefaultContent:e=>(s="0",i.setContent(e),b),getTransactionMergeableChanges:h,applyMergeableChanges:f,merge:e=>{const t=g(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return i.setInternalListeners((()=>{a&&(n=h(),d(n))}),(()=>s=n=void 0)),ue(i,((e,t)=>b[t]=M(t,"set")||M(t,"del")||M(t,"apply")||V(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):M(t,"add")&&V(t,"Listener")?(...s)=>{const n=xt[z(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(b,...t),e(...s)}:e)),re(b)};export{Ke as createCheckpoints,nt as createCustomPersister,bt as createCustomSynchronizer,Xe as createIndexes,Qt as createMergeableStore,et as createMetrics,Ct as createQueries,wt as createRelationships,Jt as createStore,Ue as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @since v5.0.0
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {CellOrUndefined, Store, ValueOrUndefined} from './store.d.ts';
|
|
8
|
+
import {CellOrUndefined, Content, Store, ValueOrUndefined} from './store.d.ts';
|
|
9
9
|
import {Id, Ids} from './common';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -180,6 +180,12 @@ export interface MergeableStore extends Store {
|
|
|
180
180
|
*/
|
|
181
181
|
setMergeableContent(mergeableContent: MergeableContent): MergeableStore;
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* The setDefaultContent method
|
|
185
|
+
* @category Setter
|
|
186
|
+
*/
|
|
187
|
+
setDefaultContent(content: Content): MergeableStore;
|
|
188
|
+
|
|
183
189
|
/**
|
|
184
190
|
* The getTransactionMergeableChanges method
|
|
185
191
|
* @category Getter
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
* @module persisters
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
|
-
import {Changes, Content, Store
|
|
43
|
+
import {Changes, Content, Store} from './store.d.ts';
|
|
44
44
|
import {
|
|
45
45
|
MergeableChanges,
|
|
46
46
|
MergeableContent,
|
|
@@ -630,7 +630,7 @@ export type DpcTabularValues = {
|
|
|
630
630
|
* const store = createStore();
|
|
631
631
|
* const persister = createSessionPersister(store, 'pets');
|
|
632
632
|
*
|
|
633
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
633
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
634
634
|
* await persister.startAutoSave();
|
|
635
635
|
*
|
|
636
636
|
* store.setTables({pets: {felix: {species: 'cat'}}});
|
|
@@ -657,7 +657,7 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
657
657
|
* The load method gets persisted data from storage, and loads it into the
|
|
658
658
|
* Store with which the Persister is associated, once.
|
|
659
659
|
*
|
|
660
|
-
* The optional
|
|
660
|
+
* The optional parameter allows you to specify what the initial content for
|
|
661
661
|
* the Store will be if there is nothing currently persisted or if the load
|
|
662
662
|
* fails (for example when the Persister is remote and the environment is
|
|
663
663
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -667,10 +667,8 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
667
667
|
* machine or a filesystem. Even for those storage types that are synchronous
|
|
668
668
|
* (like browser storage) it is still recommended that you `await` calls to
|
|
669
669
|
* this method or handle the return type natively as a Promise.
|
|
670
|
-
* @param
|
|
670
|
+
* @param initialContent An optional Content object used when the underlying
|
|
671
671
|
* storage has not previously been populated.
|
|
672
|
-
* @param initialValues An optional Values object used when the underlying
|
|
673
|
-
* storage has not previously been populated, since v3.0.
|
|
674
672
|
* @returns A Promise containing a reference to the Persister object.
|
|
675
673
|
* @example
|
|
676
674
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -699,7 +697,7 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
699
697
|
* const store = createStore();
|
|
700
698
|
* const persister = createSessionPersister(store, 'pets');
|
|
701
699
|
*
|
|
702
|
-
* await persister.load({pets: {fido: {species: 'dog'}}});
|
|
700
|
+
* await persister.load([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
703
701
|
* console.log(store.getTables());
|
|
704
702
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
705
703
|
*
|
|
@@ -712,14 +710,14 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
712
710
|
* ```
|
|
713
711
|
* @category Load
|
|
714
712
|
*/
|
|
715
|
-
load(
|
|
713
|
+
load(initialContent?: Content): Promise<this>;
|
|
716
714
|
|
|
717
715
|
/**
|
|
718
716
|
* The startAutoLoad method gets persisted data from storage, and loads it
|
|
719
717
|
* into the Store with which the Persister is associated, once, and then
|
|
720
718
|
* continuously.
|
|
721
719
|
*
|
|
722
|
-
* The optional
|
|
720
|
+
* The optional parameter allows you to specify what the initial content for
|
|
723
721
|
* the Store will be if there is nothing currently persisted or if the load
|
|
724
722
|
* fails (for example when the Persister is remote and the environment is
|
|
725
723
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -734,10 +732,8 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
734
732
|
* the asynchronous load method. Even for those storage types that are
|
|
735
733
|
* synchronous (like browser storage) it is still recommended that you `await`
|
|
736
734
|
* calls to this method or handle the return type natively as a Promise.
|
|
737
|
-
* @param
|
|
735
|
+
* @param initialContent An optional Content object used when the underlying
|
|
738
736
|
* storage has not previously been populated.
|
|
739
|
-
* @param initialValues An optional Values object used when the underlying
|
|
740
|
-
* storage has not previously been populated, since v3.0.
|
|
741
737
|
* @returns A Promise containing a reference to the Persister object.
|
|
742
738
|
* @example
|
|
743
739
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -750,7 +746,7 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
750
746
|
* const store = createStore();
|
|
751
747
|
* const persister = createSessionPersister(store, 'pets');
|
|
752
748
|
*
|
|
753
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
749
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
754
750
|
* console.log(store.getTables());
|
|
755
751
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
756
752
|
*
|
|
@@ -767,7 +763,7 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
|
767
763
|
* ```
|
|
768
764
|
* @category Load
|
|
769
765
|
*/
|
|
770
|
-
startAutoLoad(
|
|
766
|
+
startAutoLoad(initialContent?: Content): Promise<this>;
|
|
771
767
|
|
|
772
768
|
/**
|
|
773
769
|
* The stopAutoLoad method stops the automatic loading of data from storage
|
|
@@ -10,21 +10,26 @@
|
|
|
10
10
|
|
|
11
11
|
import {MergeableStore} from '../mergeable-store';
|
|
12
12
|
import {Synchronizer} from '../synchronizers';
|
|
13
|
-
import {WebSocket} from 'ws';
|
|
13
|
+
import {WebSocket as WsWebSocket} from 'ws';
|
|
14
|
+
|
|
15
|
+
export type WebSocketTypes = WebSocket | WsWebSocket;
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* The WsSynchronizer interface
|
|
17
19
|
* @category Synchronizer
|
|
18
20
|
*/
|
|
19
|
-
export interface WsSynchronizer extends
|
|
21
|
+
export interface WsSynchronizer<WebSocketType extends WebSocketTypes>
|
|
22
|
+
extends Synchronizer {
|
|
23
|
+
getWebSocket(): WebSocketType;
|
|
24
|
+
}
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* The createWsSynchronizer function
|
|
23
28
|
* @category Creation
|
|
24
29
|
*/
|
|
25
|
-
export function createWsSynchronizer(
|
|
30
|
+
export function createWsSynchronizer<WebSocketType extends WebSocketTypes>(
|
|
26
31
|
store: MergeableStore,
|
|
27
|
-
webSocket:
|
|
32
|
+
webSocket: WebSocketType,
|
|
28
33
|
requestTimeoutSeconds?: number,
|
|
29
34
|
onIgnoredError?: (error: any) => void,
|
|
30
|
-
): Promise<WsSynchronizer
|
|
35
|
+
): Promise<WsSynchronizer<WebSocketType>>;
|
|
@@ -7,13 +7,25 @@
|
|
|
7
7
|
* @since v5.0.0
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import {Ids} from '../common';
|
|
10
11
|
import {WebSocketServer} from 'ws';
|
|
11
12
|
|
|
13
|
+
/**
|
|
14
|
+
* The WsServerStats type
|
|
15
|
+
*/
|
|
16
|
+
export type WsServerStats = {
|
|
17
|
+
paths?: number;
|
|
18
|
+
clients?: number;
|
|
19
|
+
};
|
|
20
|
+
|
|
12
21
|
/**
|
|
13
22
|
* The WsServer interface
|
|
14
23
|
*/
|
|
15
24
|
export interface WsServer {
|
|
16
25
|
getWebSocketServer: () => WebSocketServer;
|
|
26
|
+
getPaths: () => string[];
|
|
27
|
+
getClientIds: (path: string) => Ids;
|
|
28
|
+
getStats: () => WsServerStats;
|
|
17
29
|
destroy: () => void;
|
|
18
30
|
}
|
|
19
31
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import {Id, IdOrNull} from './common';
|
|
11
|
+
import {Content} from './store';
|
|
11
12
|
import {MergeableStore} from './mergeable-store';
|
|
12
13
|
import {Persister} from './persisters';
|
|
13
14
|
|
|
@@ -64,7 +65,7 @@ export interface Synchronizer extends Persister<true> {
|
|
|
64
65
|
* The startSync method
|
|
65
66
|
* @category Synchronization
|
|
66
67
|
*/
|
|
67
|
-
startSync(): Promise<this>;
|
|
68
|
+
startSync(initialContent?: Content): Promise<this>;
|
|
68
69
|
/**
|
|
69
70
|
* The stopSync method
|
|
70
71
|
* @category Synchronization
|
|
@@ -126,6 +127,6 @@ export function createCustomSynchronizer(
|
|
|
126
127
|
send: Send,
|
|
127
128
|
onReceive: (receive: Receive) => void,
|
|
128
129
|
destroy: () => void,
|
|
129
|
-
requestTimeoutSeconds
|
|
130
|
+
requestTimeoutSeconds: number,
|
|
130
131
|
onIgnoredError?: (error: any) => void,
|
|
131
132
|
): Synchronizer;
|
package/lib/types/ui-react.d.ts
CHANGED
|
@@ -83,7 +83,9 @@ import {
|
|
|
83
83
|
ResultTableCellIdsListener,
|
|
84
84
|
ResultTableListener,
|
|
85
85
|
} from './queries.d.ts';
|
|
86
|
+
import {MergeableStore} from './mergeable-store';
|
|
86
87
|
import {Persister} from './persisters.d.ts';
|
|
88
|
+
import {Synchronizer} from './synchronizers';
|
|
87
89
|
|
|
88
90
|
/**
|
|
89
91
|
* The StoreOrStoreId type is used when you need to refer to a Store in a React
|
|
@@ -301,6 +303,14 @@ export function useCreateStore(
|
|
|
301
303
|
createDeps?: React.DependencyList,
|
|
302
304
|
): Store;
|
|
303
305
|
|
|
306
|
+
/**
|
|
307
|
+
* The useCreateMergeableStore hook
|
|
308
|
+
*/
|
|
309
|
+
export function useCreateMergeableStore(
|
|
310
|
+
create: () => MergeableStore,
|
|
311
|
+
createDeps?: React.DependencyList,
|
|
312
|
+
): MergeableStore;
|
|
313
|
+
|
|
304
314
|
/**
|
|
305
315
|
* The useStoreIds hook is used to retrieve the Ids of all the named Store
|
|
306
316
|
* objects present in the current Provider component context.
|
|
@@ -10197,8 +10207,8 @@ export function useCheckpointListener(
|
|
|
10197
10207
|
* // -> '<span>{\"pets\":{\"fido\":{\"species\":\"dog\"}}}</span>'
|
|
10198
10208
|
*
|
|
10199
10209
|
* root.render(<App sessionKey="cujoStore" />); // !act
|
|
10200
|
-
* // -> 'Persister destroyed for session key fidoStore'
|
|
10201
10210
|
* // -> 'Persister created for session key cujoStore'
|
|
10211
|
+
* // -> 'Persister destroyed for session key fidoStore'
|
|
10202
10212
|
*
|
|
10203
10213
|
* // ... // !act
|
|
10204
10214
|
* console.log(app.innerHTML);
|
|
@@ -10221,6 +10231,146 @@ export function useCreatePersister<
|
|
|
10221
10231
|
destroyDeps?: React.DependencyList,
|
|
10222
10232
|
): PersisterOrUndefined;
|
|
10223
10233
|
|
|
10234
|
+
/**
|
|
10235
|
+
* The useCreateSynchronizer hook is used to create a Synchronizer within a
|
|
10236
|
+
* React application along with convenient memoization and callbacks.
|
|
10237
|
+
*
|
|
10238
|
+
* It is possible to create a Synchronizer outside of the React app with the
|
|
10239
|
+
* regular createSynchronizer function and pass it in, but you may prefer to
|
|
10240
|
+
* create it within the app, perhaps inside the top-level component. To prevent
|
|
10241
|
+
* a new Synchronizer being created every time the app renders or re-renders,
|
|
10242
|
+
* the useCreateMetrics hook performs the creation in an effect.
|
|
10243
|
+
*
|
|
10244
|
+
* If your asynchronous `create` function (the second parameter to the hook)
|
|
10245
|
+
* contains dependencies, the changing of which should cause the Synchronizer to
|
|
10246
|
+
* be recreated, you can provide them in an array in the third parameter, just
|
|
10247
|
+
* as you would for any React hook with dependencies. The MergeableStore passed
|
|
10248
|
+
* in as the first parameter of this hook is used as a dependency by default.
|
|
10249
|
+
*
|
|
10250
|
+
* A second callback, called `then`, can be provided as the fourth parameter.
|
|
10251
|
+
* This is called after the creation, and can also be asynchronous, so that you
|
|
10252
|
+
* can configure the Synchronizer with the startSync method, for example. If
|
|
10253
|
+
* this callback contains dependencies, the changing of which should cause the
|
|
10254
|
+
* Synchronizer to be reconfigured, you can provide them in an array in the
|
|
10255
|
+
* fifth parameter. The Synchronizer itself is used as a dependency by default.
|
|
10256
|
+
*
|
|
10257
|
+
* The `create` function can return undefined, meaning that you can enable or
|
|
10258
|
+
* disable synchronization conditionally within this hook. This is useful for
|
|
10259
|
+
* applications which might turn on or off their cloud synchronization or
|
|
10260
|
+
* collaboration features.
|
|
10261
|
+
*
|
|
10262
|
+
* This hook ensures the Synchronizer object is destroyed whenever a new one is
|
|
10263
|
+
* created or the component is unmounted.
|
|
10264
|
+
* @param store A reference to the MergeableStore for which to create a new
|
|
10265
|
+
* Synchronizer object.
|
|
10266
|
+
* @param create An asynchronous function for performing the creation steps of
|
|
10267
|
+
* the Synchronizer object for the Store.
|
|
10268
|
+
* @param createDeps An optional array of dependencies for the `create`
|
|
10269
|
+
* function, which, if any change, result in its rerun. This parameter defaults
|
|
10270
|
+
* to an empty array.
|
|
10271
|
+
* @param then An optional callback for performing asynchronous post-creation
|
|
10272
|
+
* steps on the Synchronizer, such as starting automatic synchronization.
|
|
10273
|
+
* @param thenDeps An optional array of dependencies for the `then` callback,
|
|
10274
|
+
* which, if any change, result in its rerun. This parameter defaults to an
|
|
10275
|
+
* empty array.
|
|
10276
|
+
* @param destroy An optional callback whenever the Synchronizer is destroyed
|
|
10277
|
+
* due to a change in the `createDeps` dependencies.
|
|
10278
|
+
* @param destroyDeps An optional array of dependencies for the `destroy`
|
|
10279
|
+
* callback, which, if any change, result in `destroy` and `then` being rerun.
|
|
10280
|
+
* This parameter defaults to an empty array.
|
|
10281
|
+
* @returns A reference to the Synchronizer.
|
|
10282
|
+
* @example
|
|
10283
|
+
* This example creates a Synchronizer at the top level of a React application.
|
|
10284
|
+
* Even though the App component is rendered twice, the Synchronizer creation
|
|
10285
|
+
* only occurs once by default.
|
|
10286
|
+
*
|
|
10287
|
+
* ```jsx
|
|
10288
|
+
* const App = () => {
|
|
10289
|
+
* const store = useCreateMergeableStore(() => createMergeableStore('s1'));
|
|
10290
|
+
* const synchronizer = useCreateSynchronizer(store, async (store) => {
|
|
10291
|
+
* console.log('Synchronizer created');
|
|
10292
|
+
* return await createLocalSynchronizer(store, 'pets');
|
|
10293
|
+
* });
|
|
10294
|
+
* return <span>{JSON.stringify(useTables(store))}</span>;
|
|
10295
|
+
* };
|
|
10296
|
+
*
|
|
10297
|
+
* const app = document.createElement('div');
|
|
10298
|
+
* const root = ReactDOMClient.createRoot(app);
|
|
10299
|
+
* root.render(<App />); // !act
|
|
10300
|
+
* // -> 'Synchronizer created'
|
|
10301
|
+
*
|
|
10302
|
+
* // ... // !act
|
|
10303
|
+
* root.render(<App />); // !act
|
|
10304
|
+
* // No second Synchronizer creation
|
|
10305
|
+
*
|
|
10306
|
+
* root.unmount(); // !act
|
|
10307
|
+
* ```
|
|
10308
|
+
* @example
|
|
10309
|
+
* This example creates a Synchronizer at the top level of a React application.
|
|
10310
|
+
* The App component is rendered twice, each with a different top-level prop.
|
|
10311
|
+
* The useCreateSynchronizer hook takes the `url` prop as a dependency, and so
|
|
10312
|
+
* the Synchronizer object is created again on the second render. The first is
|
|
10313
|
+
* destroyed and the `destroy` parameter is called for it. A `then` parameter
|
|
10314
|
+
* is provided to start both Synchronizers' synchronization.
|
|
10315
|
+
*
|
|
10316
|
+
* ```jsx
|
|
10317
|
+
* const server1 = createWsServer(new ws.WebSocketServer({port: 8044}));
|
|
10318
|
+
* const server2 = createWsServer(new ws.WebSocketServer({port: 8045}));
|
|
10319
|
+
*
|
|
10320
|
+
* const App = ({url}) => {
|
|
10321
|
+
* const store = useCreateMergeableStore(() => createMergeableStore('s1'));
|
|
10322
|
+
* const synchronizer = useCreateSynchronizer(
|
|
10323
|
+
* store,
|
|
10324
|
+
* async (store) => {
|
|
10325
|
+
* const webSocket = new WebSocket(url);
|
|
10326
|
+
* console.log(`Synchronizer created for ${webSocket.url}`);
|
|
10327
|
+
* return await createWsSynchronizer(store, webSocket);
|
|
10328
|
+
* },
|
|
10329
|
+
* [url],
|
|
10330
|
+
* async (synchronizer) => {
|
|
10331
|
+
* await synchronizer.startSync();
|
|
10332
|
+
* },
|
|
10333
|
+
* [],
|
|
10334
|
+
* (synchronizer) => {
|
|
10335
|
+
* const webSocket = synchronizer.getWebSocket();
|
|
10336
|
+
* console.log(`Synchronizer destroyed for ${webSocket.url}`);
|
|
10337
|
+
* },
|
|
10338
|
+
* );
|
|
10339
|
+
* return <span>{JSON.stringify(useTables(store))}</span>;
|
|
10340
|
+
* };
|
|
10341
|
+
*
|
|
10342
|
+
* const app = document.createElement('div');
|
|
10343
|
+
* const root = ReactDOMClient.createRoot(app);
|
|
10344
|
+
* root.render(<App url="ws://localhost:8044/" />); // !act
|
|
10345
|
+
* // ... // !act
|
|
10346
|
+
* // -> 'Synchronizer created for ws://localhost:8044/'
|
|
10347
|
+
*
|
|
10348
|
+
* root.render(<App url="ws://localhost:8045/" />); // !act
|
|
10349
|
+
* // ... // !act
|
|
10350
|
+
* // -> 'Synchronizer created for ws://localhost:8045/'
|
|
10351
|
+
* // -> 'Synchronizer destroyed for ws://localhost:8044/'
|
|
10352
|
+
*
|
|
10353
|
+
* root.unmount(); // !act
|
|
10354
|
+
* // -> 'Synchronizer destroyed for ws://localhost:8045/'
|
|
10355
|
+
*
|
|
10356
|
+
* server1.destroy();
|
|
10357
|
+
* server2.destroy();
|
|
10358
|
+
* ```
|
|
10359
|
+
* @category Synchronizer hooks
|
|
10360
|
+
* @since v5.0.0
|
|
10361
|
+
*/
|
|
10362
|
+
export function useCreateSynchronizer<
|
|
10363
|
+
SynchronizerOrUndefined extends Synchronizer | undefined,
|
|
10364
|
+
>(
|
|
10365
|
+
store: MergeableStore,
|
|
10366
|
+
create: (store: MergeableStore) => Promise<SynchronizerOrUndefined>,
|
|
10367
|
+
createDeps?: React.DependencyList,
|
|
10368
|
+
then?: (synchronizer: Synchronizer) => Promise<void>,
|
|
10369
|
+
thenDeps?: React.DependencyList,
|
|
10370
|
+
destroy?: (synchronizer: Synchronizer) => void,
|
|
10371
|
+
destroyDeps?: React.DependencyList,
|
|
10372
|
+
): SynchronizerOrUndefined;
|
|
10373
|
+
|
|
10224
10374
|
/**
|
|
10225
10375
|
* The ExtraProps type represents a set of arbitrary additional props.
|
|
10226
10376
|
* @category Props
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from './internal/store';
|
|
13
13
|
import {
|
|
14
14
|
CellOrUndefined,
|
|
15
|
+
Content,
|
|
15
16
|
NoSchemas,
|
|
16
17
|
NoTablesSchema,
|
|
17
18
|
NoValuesSchema,
|
|
@@ -265,6 +266,12 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
|
265
266
|
mergeableContent: MergeableContent<Schemas>,
|
|
266
267
|
): MergeableStore<Schemas>;
|
|
267
268
|
|
|
269
|
+
/**
|
|
270
|
+
* The setDefaultContent method
|
|
271
|
+
* @category Setter
|
|
272
|
+
*/
|
|
273
|
+
setDefaultContent(content: Content<Schemas>): MergeableStore<Schemas>;
|
|
274
|
+
|
|
268
275
|
/**
|
|
269
276
|
* The getTransactionMergeableChanges method
|
|
270
277
|
* @category Getter
|