tinybase 5.0.0-beta.26 → 5.0.0-beta.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/persisters/index.d.cts +175 -53
- package/@types/persisters/index.d.ts +175 -53
- package/@types/persisters/persister-automerge/index.d.cts +11 -7
- package/@types/persisters/persister-automerge/index.d.ts +11 -7
- package/@types/persisters/persister-automerge/with-schemas/index.d.cts +11 -7
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +11 -7
- package/@types/persisters/persister-browser/index.d.cts +20 -13
- package/@types/persisters/persister-browser/index.d.ts +20 -13
- package/@types/persisters/persister-browser/with-schemas/index.d.cts +20 -13
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +20 -13
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +10 -7
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +10 -7
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +10 -7
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +10 -7
- package/@types/persisters/persister-electric-sql/index.d.cts +10 -7
- package/@types/persisters/persister-electric-sql/index.d.ts +10 -7
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +10 -7
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +10 -7
- package/@types/persisters/persister-expo-sqlite/index.d.cts +12 -8
- package/@types/persisters/persister-expo-sqlite/index.d.ts +12 -8
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +12 -8
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +12 -8
- package/@types/persisters/persister-file/index.d.cts +10 -6
- package/@types/persisters/persister-file/index.d.ts +10 -6
- package/@types/persisters/persister-file/with-schemas/index.d.cts +10 -6
- package/@types/persisters/persister-file/with-schemas/index.d.ts +10 -6
- package/@types/persisters/persister-indexed-db/index.d.cts +10 -6
- package/@types/persisters/persister-indexed-db/index.d.ts +10 -6
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +10 -6
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +10 -6
- package/@types/persisters/persister-libsql/index.d.cts +10 -6
- package/@types/persisters/persister-libsql/index.d.ts +10 -6
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +10 -6
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +10 -6
- package/@types/persisters/persister-partykit-client/index.d.cts +14 -9
- package/@types/persisters/persister-partykit-client/index.d.ts +14 -9
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +14 -9
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +14 -9
- package/@types/persisters/persister-powersync/index.d.cts +12 -7
- package/@types/persisters/persister-powersync/index.d.ts +12 -7
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +12 -7
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +12 -7
- package/@types/persisters/persister-remote/index.d.cts +11 -8
- package/@types/persisters/persister-remote/index.d.ts +11 -8
- package/@types/persisters/persister-remote/with-schemas/index.d.cts +11 -8
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +11 -8
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +12 -7
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +12 -7
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +12 -7
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +12 -7
- package/@types/persisters/persister-sqlite3/index.d.cts +12 -7
- package/@types/persisters/persister-sqlite3/index.d.ts +12 -7
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +12 -7
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +12 -7
- package/@types/persisters/persister-yjs/index.d.cts +11 -6
- package/@types/persisters/persister-yjs/index.d.ts +11 -6
- package/@types/persisters/persister-yjs/with-schemas/index.d.cts +11 -6
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +11 -6
- package/@types/persisters/with-schemas/index.d.cts +209 -54
- package/@types/persisters/with-schemas/index.d.ts +209 -54
- package/@types/queries/index.d.cts +0 -1
- package/@types/queries/index.d.ts +0 -1
- package/@types/queries/with-schemas/index.d.cts +0 -1
- package/@types/queries/with-schemas/index.d.ts +0 -1
- package/@types/synchronizers/index.d.cts +349 -37
- package/@types/synchronizers/index.d.ts +349 -37
- package/@types/synchronizers/synchronizer-local/index.d.cts +62 -2
- package/@types/synchronizers/synchronizer-local/index.d.ts +62 -2
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +77 -2
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +77 -2
- package/@types/synchronizers/synchronizer-ws-client/index.d.cts +48 -1
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +48 -1
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +48 -1
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +48 -1
- package/@types/synchronizers/with-schemas/index.d.cts +349 -37
- package/@types/synchronizers/with-schemas/index.d.ts +349 -37
- package/cjs/es6/index.cjs +48 -42
- package/cjs/es6/min/index.cjs +1 -1
- package/cjs/es6/min/index.cjs.gz +0 -0
- package/cjs/es6/min/metrics/index.cjs +1 -1
- package/cjs/es6/min/metrics/index.cjs.gz +0 -0
- package/cjs/es6/min/metrics/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/metrics/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/queries/index.cjs +1 -1
- package/cjs/es6/min/queries/index.cjs.gz +0 -0
- package/cjs/es6/min/queries/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/queries/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/ui-react/index.cjs +1 -1
- package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
- package/cjs/es6/min/ui-react/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +5 -5
- package/cjs/es6/persisters/persister-automerge/index.cjs +5 -5
- package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-browser/index.cjs +5 -5
- package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +11 -11
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +11 -11
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-file/index.cjs +5 -5
- package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -5
- package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-libsql/index.cjs +11 -11
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -5
- package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-powersync/index.cjs +11 -11
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-remote/index.cjs +5 -5
- package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +11 -11
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +11 -11
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
- package/cjs/es6/persisters/persister-yjs/index.cjs +5 -5
- package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -5
- package/cjs/es6/persisters/with-schemas/index.cjs +5 -5
- package/cjs/es6/synchronizers/index.cjs +48 -42
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +50 -45
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +50 -45
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +47 -42
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +47 -42
- package/cjs/es6/synchronizers/with-schemas/index.cjs +48 -42
- package/cjs/es6/ui-react/index.cjs +137 -75
- package/cjs/es6/ui-react/with-schemas/index.cjs +137 -75
- package/cjs/es6/ui-react-inspector/index.cjs +5 -5
- package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +5 -5
- package/cjs/es6/with-schemas/index.cjs +48 -42
- package/cjs/index.cjs +48 -42
- package/cjs/min/index.cjs +1 -1
- package/cjs/min/index.cjs.gz +0 -0
- package/cjs/min/metrics/index.cjs +1 -1
- package/cjs/min/metrics/index.cjs.gz +0 -0
- package/cjs/min/metrics/with-schemas/index.cjs +1 -1
- package/cjs/min/metrics/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/queries/index.cjs +1 -1
- package/cjs/min/queries/index.cjs.gz +0 -0
- package/cjs/min/queries/with-schemas/index.cjs +1 -1
- package/cjs/min/queries/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/index.cjs +1 -1
- package/cjs/min/synchronizers/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/ui-react/index.cjs +1 -1
- package/cjs/min/ui-react/index.cjs.gz +0 -0
- package/cjs/min/ui-react/with-schemas/index.cjs +1 -1
- package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/with-schemas/index.cjs +1 -1
- package/cjs/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +5 -5
- package/cjs/persisters/persister-automerge/index.cjs +5 -5
- package/cjs/persisters/persister-automerge/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-browser/index.cjs +5 -5
- package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-electric-sql/index.cjs +11 -11
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-expo-sqlite/index.cjs +11 -11
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-file/index.cjs +5 -5
- package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-indexed-db/index.cjs +5 -5
- package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-libsql/index.cjs +11 -11
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-partykit-client/index.cjs +5 -5
- package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-powersync/index.cjs +11 -11
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-remote/index.cjs +5 -5
- package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -5
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +11 -11
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-sqlite3/index.cjs +11 -11
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
- package/cjs/persisters/persister-yjs/index.cjs +5 -5
- package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -5
- package/cjs/persisters/with-schemas/index.cjs +5 -5
- package/cjs/synchronizers/index.cjs +48 -42
- package/cjs/synchronizers/synchronizer-local/index.cjs +50 -50
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +50 -50
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +47 -42
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +47 -42
- package/cjs/synchronizers/with-schemas/index.cjs +48 -42
- package/cjs/ui-react/index.cjs +139 -74
- package/cjs/ui-react/with-schemas/index.cjs +139 -74
- package/cjs/ui-react-inspector/index.cjs +5 -5
- package/cjs/ui-react-inspector/with-schemas/index.cjs +5 -5
- package/cjs/with-schemas/index.cjs +48 -42
- package/es6/index.js +48 -42
- package/es6/min/index.js +1 -1
- package/es6/min/index.js.gz +0 -0
- package/es6/min/metrics/index.js +1 -1
- package/es6/min/metrics/index.js.gz +0 -0
- package/es6/min/metrics/with-schemas/index.js +1 -1
- package/es6/min/metrics/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/index.js +1 -1
- package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/index.js +1 -1
- package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/es6/min/queries/index.js +1 -1
- package/es6/min/queries/index.js.gz +0 -0
- package/es6/min/queries/with-schemas/index.js +1 -1
- package/es6/min/queries/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/index.js +1 -1
- package/es6/min/synchronizers/index.js.gz +0 -0
- package/es6/min/synchronizers/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/es6/min/ui-react/index.js +1 -1
- package/es6/min/ui-react/index.js.gz +0 -0
- package/es6/min/ui-react/with-schemas/index.js +1 -1
- package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
- package/es6/min/with-schemas/index.js +1 -1
- package/es6/min/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +5 -5
- package/es6/persisters/persister-automerge/index.js +5 -5
- package/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
- package/es6/persisters/persister-browser/index.js +5 -5
- package/es6/persisters/persister-browser/with-schemas/index.js +5 -5
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
- package/es6/persisters/persister-electric-sql/index.js +11 -11
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
- package/es6/persisters/persister-expo-sqlite/index.js +11 -11
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
- package/es6/persisters/persister-file/index.js +5 -5
- package/es6/persisters/persister-file/with-schemas/index.js +5 -5
- package/es6/persisters/persister-indexed-db/index.js +5 -5
- package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
- package/es6/persisters/persister-libsql/index.js +11 -11
- package/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
- package/es6/persisters/persister-partykit-client/index.js +5 -5
- package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
- package/es6/persisters/persister-powersync/index.js +11 -11
- package/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
- package/es6/persisters/persister-remote/index.js +5 -5
- package/es6/persisters/persister-remote/with-schemas/index.js +5 -5
- package/es6/persisters/persister-sqlite-wasm/index.js +11 -11
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
- package/es6/persisters/persister-sqlite3/index.js +11 -11
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
- package/es6/persisters/persister-yjs/index.js +5 -5
- package/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
- package/es6/persisters/with-schemas/index.js +5 -5
- package/es6/synchronizers/index.js +48 -43
- package/es6/synchronizers/synchronizer-local/index.js +50 -45
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +50 -45
- package/es6/synchronizers/synchronizer-ws-client/index.js +47 -42
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +47 -42
- package/es6/synchronizers/with-schemas/index.js +48 -43
- package/es6/ui-react/index.js +137 -75
- package/es6/ui-react/with-schemas/index.js +137 -75
- package/es6/ui-react-inspector/index.js +5 -5
- package/es6/ui-react-inspector/with-schemas/index.js +5 -5
- package/es6/with-schemas/index.js +48 -42
- package/index.js +48 -42
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +5 -5
- package/persisters/index.js +5 -5
- package/persisters/persister-automerge/index.js +5 -5
- package/persisters/persister-automerge/with-schemas/index.js +5 -5
- package/persisters/persister-browser/index.js +5 -5
- package/persisters/persister-browser/with-schemas/index.js +5 -5
- package/persisters/persister-cr-sqlite-wasm/index.js +11 -11
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
- package/persisters/persister-electric-sql/index.js +11 -11
- package/persisters/persister-electric-sql/with-schemas/index.js +11 -11
- package/persisters/persister-expo-sqlite/index.js +11 -11
- package/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
- package/persisters/persister-file/index.js +5 -5
- package/persisters/persister-file/with-schemas/index.js +5 -5
- package/persisters/persister-indexed-db/index.js +5 -5
- package/persisters/persister-indexed-db/with-schemas/index.js +5 -5
- package/persisters/persister-libsql/index.js +11 -11
- package/persisters/persister-libsql/with-schemas/index.js +11 -11
- package/persisters/persister-partykit-client/index.js +5 -5
- package/persisters/persister-partykit-client/with-schemas/index.js +5 -5
- package/persisters/persister-powersync/index.js +11 -11
- package/persisters/persister-powersync/with-schemas/index.js +11 -11
- package/persisters/persister-remote/index.js +5 -5
- package/persisters/persister-remote/with-schemas/index.js +5 -5
- package/persisters/persister-sqlite-wasm/index.js +11 -11
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
- package/persisters/persister-sqlite3/index.js +11 -11
- package/persisters/persister-sqlite3/with-schemas/index.js +11 -11
- package/persisters/persister-yjs/index.js +5 -5
- package/persisters/persister-yjs/with-schemas/index.js +5 -5
- package/persisters/with-schemas/index.js +5 -5
- package/readme.md +2 -2
- package/releases.md +4 -4
- package/synchronizers/index.js +48 -43
- package/synchronizers/synchronizer-local/index.js +50 -50
- package/synchronizers/synchronizer-local/with-schemas/index.js +50 -50
- package/synchronizers/synchronizer-ws-client/index.js +47 -42
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +47 -42
- package/synchronizers/with-schemas/index.js +48 -43
- package/ui-react/index.js +139 -74
- package/ui-react/with-schemas/index.js +139 -74
- package/ui-react-inspector/index.js +5 -5
- package/ui-react-inspector/with-schemas/index.js +5 -5
- package/umd/es6/index.js +51 -42
- package/umd/es6/min/index.js +1 -1
- package/umd/es6/min/index.js.gz +0 -0
- package/umd/es6/min/metrics/index.js +1 -1
- package/umd/es6/min/metrics/index.js.gz +0 -0
- package/umd/es6/min/metrics/with-schemas/index.js +1 -1
- package/umd/es6/min/metrics/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/queries/index.js +1 -1
- package/umd/es6/min/queries/index.js.gz +0 -0
- package/umd/es6/min/queries/with-schemas/index.js +1 -1
- package/umd/es6/min/queries/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/index.js +1 -1
- package/umd/es6/min/synchronizers/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/ui-react/index.js +1 -1
- package/umd/es6/min/ui-react/index.js.gz +0 -0
- package/umd/es6/min/ui-react/with-schemas/index.js +1 -1
- package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/with-schemas/index.js +1 -1
- package/umd/es6/min/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +5 -5
- package/umd/es6/persisters/persister-automerge/index.js +5 -5
- package/umd/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-browser/index.js +5 -5
- package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-electric-sql/index.js +11 -11
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-expo-sqlite/index.js +11 -11
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-file/index.js +5 -5
- package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-indexed-db/index.js +5 -5
- package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-libsql/index.js +11 -11
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-partykit-client/index.js +5 -5
- package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-powersync/index.js +11 -11
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-remote/index.js +5 -5
- package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -5
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +11 -11
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-sqlite3/index.js +11 -11
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
- package/umd/es6/persisters/persister-yjs/index.js +5 -5
- package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
- package/umd/es6/persisters/with-schemas/index.js +5 -5
- package/umd/es6/synchronizers/index.js +51 -42
- package/umd/es6/synchronizers/synchronizer-local/index.js +53 -45
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +53 -45
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +50 -42
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +50 -42
- package/umd/es6/synchronizers/with-schemas/index.js +51 -42
- package/umd/es6/ui-react/index.js +135 -72
- package/umd/es6/ui-react/with-schemas/index.js +135 -72
- package/umd/es6/ui-react-inspector/index.js +5 -5
- package/umd/es6/ui-react-inspector/with-schemas/index.js +5 -5
- package/umd/es6/with-schemas/index.js +51 -42
- package/umd/index.js +51 -46
- package/umd/min/index.js +1 -1
- package/umd/min/index.js.gz +0 -0
- package/umd/min/metrics/index.js +1 -1
- package/umd/min/metrics/index.js.gz +0 -0
- package/umd/min/metrics/with-schemas/index.js +1 -1
- package/umd/min/metrics/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/index.js +1 -1
- package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/index.js +1 -1
- package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/min/queries/index.js +1 -1
- package/umd/min/queries/index.js.gz +0 -0
- package/umd/min/queries/with-schemas/index.js +1 -1
- package/umd/min/queries/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/index.js +1 -1
- package/umd/min/synchronizers/index.js.gz +0 -0
- package/umd/min/synchronizers/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/umd/min/ui-react/index.js +1 -1
- package/umd/min/ui-react/index.js.gz +0 -0
- package/umd/min/ui-react/with-schemas/index.js +1 -1
- package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
- package/umd/min/with-schemas/index.js +1 -1
- package/umd/min/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +5 -5
- package/umd/persisters/persister-automerge/index.js +5 -5
- package/umd/persisters/persister-automerge/with-schemas/index.js +5 -5
- package/umd/persisters/persister-browser/index.js +5 -5
- package/umd/persisters/persister-browser/with-schemas/index.js +5 -5
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +11 -11
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
- package/umd/persisters/persister-electric-sql/index.js +11 -11
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +11 -11
- package/umd/persisters/persister-expo-sqlite/index.js +11 -11
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
- package/umd/persisters/persister-file/index.js +5 -5
- package/umd/persisters/persister-file/with-schemas/index.js +5 -5
- package/umd/persisters/persister-indexed-db/index.js +5 -5
- package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -5
- package/umd/persisters/persister-libsql/index.js +11 -11
- package/umd/persisters/persister-libsql/with-schemas/index.js +11 -11
- package/umd/persisters/persister-partykit-client/index.js +5 -5
- package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -5
- package/umd/persisters/persister-powersync/index.js +11 -11
- package/umd/persisters/persister-powersync/with-schemas/index.js +11 -11
- package/umd/persisters/persister-remote/index.js +5 -5
- package/umd/persisters/persister-remote/with-schemas/index.js +5 -5
- package/umd/persisters/persister-sqlite-wasm/index.js +11 -11
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
- package/umd/persisters/persister-sqlite3/index.js +11 -11
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +11 -11
- package/umd/persisters/persister-yjs/index.js +5 -5
- package/umd/persisters/persister-yjs/with-schemas/index.js +5 -5
- package/umd/persisters/with-schemas/index.js +5 -5
- package/umd/synchronizers/index.js +51 -46
- package/umd/synchronizers/synchronizer-local/index.js +53 -54
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +53 -54
- package/umd/synchronizers/synchronizer-ws-client/index.js +50 -46
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +50 -46
- package/umd/synchronizers/with-schemas/index.js +51 -46
- package/umd/ui-react/index.js +140 -71
- package/umd/ui-react/with-schemas/index.js +140 -71
- package/umd/ui-react-inspector/index.js +5 -5
- package/umd/ui-react-inspector/with-schemas/index.js +5 -5
- package/umd/with-schemas/index.js +51 -46
- package/with-schemas/index.js +48 -42
|
@@ -19,36 +19,107 @@ import type {
|
|
|
19
19
|
import type {MergeableStore} from '../../mergeable-store/with-schemas/index.d.ts';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* The
|
|
22
|
+
* The Message enum is used to indicate the type of the message being passed
|
|
23
|
+
* between Synchronizer instances.
|
|
24
|
+
*
|
|
25
|
+
* These message comprise the basic synchronization protocol for merging
|
|
26
|
+
* MergeableStore instances across multiple systems.
|
|
27
|
+
*
|
|
28
|
+
* The enum is generally intended to be used internally within TinyBase itself
|
|
29
|
+
* and opaque to applications that use synchronization.
|
|
23
30
|
* @category Synchronization
|
|
31
|
+
* @since v5.0.0
|
|
24
32
|
*/
|
|
25
|
-
export
|
|
33
|
+
export const enum Message {
|
|
34
|
+
/**
|
|
35
|
+
* A message that is a response to a previous request.
|
|
36
|
+
*/
|
|
37
|
+
Response = 0,
|
|
38
|
+
/**
|
|
39
|
+
* A message that is a request to get ContentHashes from another
|
|
40
|
+
* MergeableStore.
|
|
41
|
+
*/
|
|
42
|
+
GetContentHashes = 1,
|
|
43
|
+
/**
|
|
44
|
+
* A message that contains ContentHashes.
|
|
45
|
+
*/
|
|
46
|
+
ContentHashes = 2,
|
|
47
|
+
/**
|
|
48
|
+
* A message that contains a ContentDiff.
|
|
49
|
+
*/
|
|
50
|
+
ContentDiff = 3,
|
|
51
|
+
/**
|
|
52
|
+
* A message that is a request to get a TableDiff from another MergeableStore.
|
|
53
|
+
*/
|
|
54
|
+
GetTableDiff = 4,
|
|
55
|
+
/**
|
|
56
|
+
* A message that is a request to get a RowDiff from another MergeableStore.
|
|
57
|
+
*/
|
|
58
|
+
GetRowDiff = 5,
|
|
59
|
+
/**
|
|
60
|
+
* A message that is a request to get a CellDiff from another MergeableStore.
|
|
61
|
+
*/
|
|
62
|
+
GetCellDiff = 6,
|
|
63
|
+
/**
|
|
64
|
+
* A message that is a request to get a ValueDiff from another MergeableStore.
|
|
65
|
+
*/
|
|
66
|
+
GetValueDiff = 7,
|
|
67
|
+
}
|
|
26
68
|
|
|
27
69
|
/**
|
|
28
|
-
* The Receive type
|
|
70
|
+
* The Receive type describes a function that knows how to handle the arrival of
|
|
71
|
+
* a message as part of the synchronization protocol.
|
|
72
|
+
*
|
|
73
|
+
* When a message arrives (most likely from another system), the function will
|
|
74
|
+
* be called with parameters that indicate where the message came from, and its
|
|
75
|
+
* meaning and content.
|
|
76
|
+
* @param fromClientId The Id of the other client (in other words, the other
|
|
77
|
+
* system) that sent the message.
|
|
78
|
+
* @param requestId The optional Id of the message, which should be returned in
|
|
79
|
+
* the response (if requested) to constitute a matched request/response
|
|
80
|
+
* transaction.
|
|
81
|
+
* @param message A number that indicates the type of the message, according to
|
|
82
|
+
* the Message enum.
|
|
83
|
+
* @param body A message-specific payload.
|
|
29
84
|
* @category Synchronization
|
|
85
|
+
* @since v5.0.0
|
|
30
86
|
*/
|
|
31
87
|
export type Receive = (
|
|
32
88
|
fromClientId: Id,
|
|
33
89
|
requestId: Id,
|
|
34
|
-
|
|
35
|
-
|
|
90
|
+
message: Message,
|
|
91
|
+
body: any,
|
|
36
92
|
) => void;
|
|
37
93
|
|
|
38
94
|
/**
|
|
39
|
-
* The Send type
|
|
95
|
+
* The Send type describes a function that knows how to dispatch a message as
|
|
96
|
+
* part of the synchronization protocol.
|
|
97
|
+
* @param toClientId The optional Id of the other client (in other words, the
|
|
98
|
+
* other system) to which the message should be sent. If omitted, this is to be
|
|
99
|
+
* a broadcast.
|
|
100
|
+
* @param requestId The optional Id of the message, which should be awaited in
|
|
101
|
+
* the response (if requested) to constitute a matched request/response
|
|
102
|
+
* transaction.
|
|
103
|
+
* @param message A number that indicates the type of the message, according to
|
|
104
|
+
* the Message enum.
|
|
105
|
+
* @param body A message-specific payload.
|
|
40
106
|
* @category Synchronization
|
|
107
|
+
* @since v5.0.0
|
|
41
108
|
*/
|
|
42
109
|
export type Send = (
|
|
43
110
|
toClientId: IdOrNull,
|
|
44
111
|
requestId: Id,
|
|
45
|
-
|
|
46
|
-
|
|
112
|
+
message: Message,
|
|
113
|
+
body: any,
|
|
47
114
|
) => void;
|
|
48
115
|
|
|
49
116
|
/**
|
|
50
|
-
* The SynchronizerStats type
|
|
117
|
+
* The SynchronizerStats type describes the number of times a Synchronizer
|
|
118
|
+
* object has sent or received data.
|
|
119
|
+
*
|
|
120
|
+
* A SynchronizerStats object is returned from the getSynchronizerStats method.
|
|
51
121
|
* @category Development
|
|
122
|
+
* @since v5.0.0
|
|
52
123
|
*/
|
|
53
124
|
export type SynchronizerStats = {
|
|
54
125
|
sends: number;
|
|
@@ -56,31 +127,241 @@ export type SynchronizerStats = {
|
|
|
56
127
|
};
|
|
57
128
|
|
|
58
129
|
/**
|
|
59
|
-
* The Synchronizer
|
|
130
|
+
* The Synchronizer object lets you synchronize MergeableStore data with another
|
|
131
|
+
* TinyBase client or system.
|
|
132
|
+
*
|
|
133
|
+
* This is useful for sharing data between users, or between devices of a single
|
|
134
|
+
* user. This is especially valuable when there is the possibility that there
|
|
135
|
+
* has been a lack of immediate connectivity between clients and the
|
|
136
|
+
* synchronization requires some negotiation to orchestrate merging the
|
|
137
|
+
* MergeableStore objects together.
|
|
138
|
+
*
|
|
139
|
+
* Creating a Synchronizer depends on the choice of underlying medium over which
|
|
140
|
+
* the synchronization will take place. Options include the createWsSynchronizer
|
|
141
|
+
* function (for a Synchronizer that will sync over web-sockets), and the
|
|
142
|
+
* createLocalSynchronizer function (for a Synchronizer that will sync two
|
|
143
|
+
* MergeableStore objects in memory on one system). The createCustomSynchronizer
|
|
144
|
+
* function can also be used to easily create a fully customized way to send and
|
|
145
|
+
* receive the messages of the synchronization protocol.
|
|
146
|
+
*
|
|
147
|
+
* Note that, as an interface, it is an extension to the Persister interface,
|
|
148
|
+
* since they share underlying implementations. Think of a Synchronizer as
|
|
149
|
+
* 'persisting' your MergeableStore to another client (and vice-versa).
|
|
150
|
+
* @example
|
|
151
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
152
|
+
* LocalSynchronizer for each, and starts synchronizing them. A change in one
|
|
153
|
+
* becomes evident in the other.
|
|
60
154
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
155
|
+
* ```js
|
|
156
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
157
|
+
* import {createMergeableStore} from 'tinybase';
|
|
158
|
+
*
|
|
159
|
+
* const store1 = createMergeableStore();
|
|
160
|
+
* const store2 = createMergeableStore();
|
|
161
|
+
*
|
|
162
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
163
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
164
|
+
*
|
|
165
|
+
* await synchronizer1.startSync();
|
|
166
|
+
* await synchronizer2.startSync();
|
|
167
|
+
*
|
|
168
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
169
|
+
* // ...
|
|
170
|
+
* console.log(store2.getTables());
|
|
171
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
172
|
+
*
|
|
173
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
174
|
+
* // ...
|
|
175
|
+
* console.log(store1.getTables());
|
|
176
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
63
177
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
178
|
+
* synchronizer1.destroy();
|
|
179
|
+
* synchronizer2.destroy();
|
|
180
|
+
* ```
|
|
66
181
|
* @category Synchronizer
|
|
67
182
|
* @since v5.0.0
|
|
68
183
|
*/
|
|
69
184
|
export interface Synchronizer<Schemas extends OptionalSchemas>
|
|
70
185
|
extends Persister<Schemas, Persists.MergeableStoreOnly> {
|
|
71
186
|
/**
|
|
72
|
-
* The startSync method
|
|
187
|
+
* The startSync method is used to start the process of synchronization
|
|
188
|
+
* between this instance and another matching Synchronizer.
|
|
189
|
+
*
|
|
190
|
+
* This has schema-based typing. The following is a simplified representation:
|
|
191
|
+
*
|
|
192
|
+
* ```ts override
|
|
193
|
+
* startSync(initialContent?: Content): Promise<this>;
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
197
|
+
* Persister framework, and so this startSync method is equivalent to starting
|
|
198
|
+
* both auto-loading (listening to sync messages from other active
|
|
199
|
+
* Synchronizer instances) and auto-saving (sending sync messages to it).
|
|
200
|
+
*
|
|
201
|
+
* This method is asynchronous so you should you `await` calls to this method
|
|
202
|
+
* or handle the return type natively as a Promise.
|
|
203
|
+
* @param initialContent An optional Content object used when no content is
|
|
204
|
+
* available from another other peer Synchronizer instances.
|
|
205
|
+
* @returns A Promise containing a reference to the Synchronizer object.
|
|
206
|
+
* @example
|
|
207
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
208
|
+
* LocalSynchronizer for each, and starts synchronizing them. A change in one
|
|
209
|
+
* becomes evident in the other.
|
|
210
|
+
*
|
|
211
|
+
* ```js
|
|
212
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
213
|
+
* import {createMergeableStore} from 'tinybase';
|
|
214
|
+
*
|
|
215
|
+
* const store1 = createMergeableStore();
|
|
216
|
+
* const store2 = createMergeableStore();
|
|
217
|
+
*
|
|
218
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
219
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
220
|
+
*
|
|
221
|
+
* await synchronizer1.startSync();
|
|
222
|
+
* await synchronizer2.startSync();
|
|
223
|
+
*
|
|
224
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
225
|
+
* // ...
|
|
226
|
+
* console.log(store2.getTables());
|
|
227
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
228
|
+
*
|
|
229
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
230
|
+
* // ...
|
|
231
|
+
* console.log(store1.getTables());
|
|
232
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
233
|
+
*
|
|
234
|
+
* synchronizer1.destroy();
|
|
235
|
+
* synchronizer2.destroy();
|
|
236
|
+
* ```
|
|
237
|
+
* @example
|
|
238
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
239
|
+
* LocalSynchronizer for each, and starts synchronizing them with default
|
|
240
|
+
* content. The default content from the first Synchronizer's startSync method
|
|
241
|
+
* ends up populated in both MergeableStore instances: by the time the second
|
|
242
|
+
* started, the first was available to synchronize with and its default was
|
|
243
|
+
* not needed.
|
|
244
|
+
*
|
|
245
|
+
* ```js
|
|
246
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
247
|
+
* import {createMergeableStore} from 'tinybase';
|
|
248
|
+
*
|
|
249
|
+
* const store1 = createMergeableStore();
|
|
250
|
+
* const store2 = createMergeableStore();
|
|
251
|
+
*
|
|
252
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
253
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
254
|
+
*
|
|
255
|
+
* await synchronizer1.startSync([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
256
|
+
* await synchronizer2.startSync([{pets: {felix: {species: 'cat'}}}, {}]);
|
|
257
|
+
*
|
|
258
|
+
* // ...
|
|
259
|
+
*
|
|
260
|
+
* console.log(store1.getTables());
|
|
261
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
262
|
+
* console.log(store2.getTables());
|
|
263
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
264
|
+
*
|
|
265
|
+
* synchronizer1.destroy();
|
|
266
|
+
* synchronizer2.destroy();
|
|
267
|
+
* ```
|
|
73
268
|
* @category Synchronization
|
|
269
|
+
* @since v5.0.0
|
|
74
270
|
*/
|
|
75
271
|
startSync(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
76
272
|
/**
|
|
77
|
-
* The stopSync method
|
|
273
|
+
* The stopSync method is used to stop the process of synchronization between
|
|
274
|
+
* this instance and another matching Synchronizer.
|
|
275
|
+
*
|
|
276
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
277
|
+
* Persister framework, and so this startSync method is equivalent to stopping
|
|
278
|
+
* both auto-loading (listening to sync messages from other active
|
|
279
|
+
* Synchronizer instances) and auto-saving (sending sync messages to them).
|
|
280
|
+
* @returns A reference to the Synchronizer object.
|
|
281
|
+
* @example
|
|
282
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
283
|
+
* LocalSynchronizer for each, and starts - then stops - synchronizing them.
|
|
284
|
+
* Subsequent changes are not merged.
|
|
285
|
+
*
|
|
286
|
+
* ```js
|
|
287
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
288
|
+
* import {createMergeableStore} from 'tinybase';
|
|
289
|
+
*
|
|
290
|
+
* const store1 = createMergeableStore();
|
|
291
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
292
|
+
* await synchronizer1.startSync();
|
|
293
|
+
*
|
|
294
|
+
* const store2 = createMergeableStore();
|
|
295
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
296
|
+
* await synchronizer2.startSync();
|
|
297
|
+
*
|
|
298
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
299
|
+
* // ...
|
|
300
|
+
* console.log(store1.getTables());
|
|
301
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
302
|
+
* console.log(store2.getTables());
|
|
303
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
304
|
+
*
|
|
305
|
+
* synchronizer1.stopSync();
|
|
306
|
+
* synchronizer2.stopSync();
|
|
307
|
+
*
|
|
308
|
+
* store1.setCell('pets', 'fido', 'color', 'brown');
|
|
309
|
+
* // ...
|
|
310
|
+
* console.log(store1.getTables());
|
|
311
|
+
* // -> {pets: {fido: {species: 'dog', color: 'brown'}}}
|
|
312
|
+
* console.log(store2.getTables());
|
|
313
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
314
|
+
*
|
|
315
|
+
* synchronizer1.destroy();
|
|
316
|
+
* synchronizer2.destroy();
|
|
317
|
+
* ```
|
|
78
318
|
* @category Synchronization
|
|
319
|
+
* @since v5.0.0
|
|
79
320
|
*/
|
|
80
321
|
stopSync(): this;
|
|
81
322
|
/**
|
|
82
|
-
* The getSynchronizerStats method
|
|
323
|
+
* The getSynchronizerStats method provides a set of statistics about the
|
|
324
|
+
* Synchronizer, and is used for debugging purposes.
|
|
325
|
+
*
|
|
326
|
+
* The SynchronizerStats object contains a count of the number of times the
|
|
327
|
+
* Persister has sent and received messages.
|
|
328
|
+
*
|
|
329
|
+
* The method is intended to be used during development to ensure your
|
|
330
|
+
* synchronization layer is acting as expected, for example.
|
|
331
|
+
* @returns A SynchronizerStats object containing Synchronizer send and
|
|
332
|
+
* receive statistics.
|
|
333
|
+
* @example
|
|
334
|
+
* This example gets the send and receive statistics of two active
|
|
335
|
+
* Synchronizer instances.
|
|
336
|
+
*
|
|
337
|
+
* ```js
|
|
338
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
339
|
+
* import {createMergeableStore} from 'tinybase';
|
|
340
|
+
*
|
|
341
|
+
* const store1 = createMergeableStore();
|
|
342
|
+
* const store2 = createMergeableStore();
|
|
343
|
+
*
|
|
344
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
345
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
346
|
+
*
|
|
347
|
+
* await synchronizer1.startSync();
|
|
348
|
+
* await synchronizer2.startSync();
|
|
349
|
+
*
|
|
350
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
351
|
+
* // ...
|
|
352
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
353
|
+
* // ...
|
|
354
|
+
*
|
|
355
|
+
* console.log(synchronizer1.getSynchronizerStats());
|
|
356
|
+
* // -> {receives: 4, sends: 5}
|
|
357
|
+
* console.log(synchronizer2.getSynchronizerStats());
|
|
358
|
+
* // -> {receives: 5, sends: 4}
|
|
359
|
+
*
|
|
360
|
+
* synchronizer1.destroy();
|
|
361
|
+
* synchronizer2.destroy();
|
|
362
|
+
* ```
|
|
83
363
|
* @category Synchronization
|
|
364
|
+
* @since v5.0.0
|
|
84
365
|
*/
|
|
85
366
|
getSynchronizerStats(): SynchronizerStats;
|
|
86
367
|
}
|
|
@@ -104,50 +385,81 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
|
|
|
104
385
|
*
|
|
105
386
|
* As well as providing a reference to the MergeableStore to synchronize, you
|
|
106
387
|
* must provide parameters which identify how to send and receive changes to and
|
|
107
|
-
* from this MergeableStore and its peers.
|
|
388
|
+
* from this MergeableStore and its peers. This is entirely dependent upon the
|
|
389
|
+
* medium of communication used.
|
|
108
390
|
* @param store The MergeableStore to synchronize.
|
|
109
391
|
* @param send A Send function for sending a message.
|
|
110
|
-
* @param onReceive A callback
|
|
111
|
-
*
|
|
392
|
+
* @param onReceive A callback (called once when the Synchronizer is created)
|
|
393
|
+
* that is passed a Receive function that you need to ensure can receive
|
|
394
|
+
* messages.
|
|
112
395
|
* @param destroy A function called when destroying the Persister which can be
|
|
113
396
|
* used to clean up underlying resources.
|
|
114
397
|
* @param requestTimeoutSeconds An number of seconds before a request sent from
|
|
115
398
|
* this Persister to another peer times out.
|
|
116
399
|
* @param onIgnoredError An optional handler for the errors that the
|
|
117
|
-
* Synchronizer would otherwise ignore when trying to
|
|
400
|
+
* Synchronizer would otherwise ignore when trying to synchronize data. This is
|
|
118
401
|
* suitable for debugging synchronization issues in a development environment.
|
|
119
402
|
* @returns A reference to the new Synchronizer object.
|
|
120
403
|
* @example
|
|
121
|
-
* This example creates a
|
|
122
|
-
*
|
|
404
|
+
* This example creates a function for creating custom Synchronizer objects via
|
|
405
|
+
* a very naive pair of message buses (which are first-in, first-out). Each
|
|
406
|
+
* Synchronizer can write to the other's bus, and they each poll to read from
|
|
407
|
+
* their own. The example then uses these Synchronizer instances to sync two
|
|
408
|
+
* MergeableStore objects together
|
|
123
409
|
*
|
|
124
410
|
* ```js
|
|
125
|
-
* import {
|
|
126
|
-
*
|
|
411
|
+
* import {
|
|
412
|
+
* createCustomSynchronizer,
|
|
413
|
+
* createMergeableStore,
|
|
414
|
+
* getUniqueId,
|
|
415
|
+
* } from 'tinybase';
|
|
127
416
|
*
|
|
128
|
-
* const
|
|
129
|
-
*
|
|
130
|
-
* });
|
|
131
|
-
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
417
|
+
* const bus1 = [];
|
|
418
|
+
* const bus2 = [];
|
|
132
419
|
*
|
|
133
|
-
* const
|
|
134
|
-
*
|
|
420
|
+
* const createBusSynchronizer = (store, localBus, remoteBus) => {
|
|
421
|
+
* let timer;
|
|
422
|
+
* const clientId = getUniqueId();
|
|
423
|
+
* return createCustomSynchronizer(
|
|
424
|
+
* store,
|
|
425
|
+
* (toClientId, requestId, message, body) => {
|
|
426
|
+
* // send
|
|
427
|
+
* remoteBus.push([clientId, requestId, message, body]);
|
|
428
|
+
* },
|
|
429
|
+
* (receive) => {
|
|
430
|
+
* // onReceive
|
|
431
|
+
* timer = setInterval(() => {
|
|
432
|
+
* if (localBus.length > 0) {
|
|
433
|
+
* receive(...localBus.shift());
|
|
434
|
+
* }
|
|
435
|
+
* }, 1);
|
|
436
|
+
* },
|
|
437
|
+
* () => clearInterval(timer), // destroy
|
|
438
|
+
* 1,
|
|
439
|
+
* );
|
|
440
|
+
* };
|
|
441
|
+
*
|
|
442
|
+
* const store1 = createMergeableStore();
|
|
443
|
+
* const store2 = createMergeableStore();
|
|
444
|
+
*
|
|
445
|
+
* const synchronizer1 = createBusSynchronizer(store1, bus1, bus2);
|
|
446
|
+
* const synchronizer2 = createBusSynchronizer(store2, bus2, bus1);
|
|
447
|
+
*
|
|
448
|
+
* await synchronizer1.startSync();
|
|
135
449
|
* await synchronizer2.startSync();
|
|
136
450
|
*
|
|
137
|
-
*
|
|
451
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
138
452
|
* // ...
|
|
139
|
-
*
|
|
140
|
-
*
|
|
453
|
+
* console.log(store1.getTables());
|
|
454
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
141
455
|
* console.log(store2.getTables());
|
|
142
456
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
143
457
|
*
|
|
144
|
-
* await synchronizer1.load();
|
|
145
|
-
* // Store1 will be synced with Store2.
|
|
146
|
-
*
|
|
147
458
|
* synchronizer1.destroy();
|
|
148
459
|
* synchronizer2.destroy();
|
|
149
460
|
* ```
|
|
150
461
|
* @category Creation
|
|
462
|
+
* @since v5.0.0
|
|
151
463
|
*/
|
|
152
464
|
export function createCustomSynchronizer<Schemas extends OptionalSchemas>(
|
|
153
465
|
store: MergeableStore<Schemas>,
|
package/cjs/es6/index.cjs
CHANGED
|
@@ -1268,8 +1268,8 @@ const Persists = {
|
|
|
1268
1268
|
};
|
|
1269
1269
|
const scheduleRunning = mapNew();
|
|
1270
1270
|
const scheduleActions = mapNew();
|
|
1271
|
-
const getStoreFunctions = (
|
|
1272
|
-
|
|
1271
|
+
const getStoreFunctions = (persist = Persists.StoreOnly, store) =>
|
|
1272
|
+
persist != Persists.StoreOnly && store.isMergeable()
|
|
1273
1273
|
? [
|
|
1274
1274
|
1,
|
|
1275
1275
|
store.getMergeableContent,
|
|
@@ -1278,7 +1278,7 @@ const getStoreFunctions = (persistable = Persists.StoreOnly, store) =>
|
|
|
1278
1278
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
1279
1279
|
store.setDefaultContent,
|
|
1280
1280
|
]
|
|
1281
|
-
:
|
|
1281
|
+
: persist != Persists.MergeableStoreOnly
|
|
1282
1282
|
? [
|
|
1283
1283
|
0,
|
|
1284
1284
|
store.getContent,
|
|
@@ -1295,7 +1295,7 @@ const createCustomPersister = (
|
|
|
1295
1295
|
addPersisterListener,
|
|
1296
1296
|
delPersisterListener,
|
|
1297
1297
|
onIgnoredError,
|
|
1298
|
-
|
|
1298
|
+
persist,
|
|
1299
1299
|
extra = {},
|
|
1300
1300
|
scheduleId = [],
|
|
1301
1301
|
) => {
|
|
@@ -1313,7 +1313,7 @@ const createCustomPersister = (
|
|
|
1313
1313
|
getChanges,
|
|
1314
1314
|
hasChanges,
|
|
1315
1315
|
setDefaultContent,
|
|
1316
|
-
] = getStoreFunctions(
|
|
1316
|
+
] = getStoreFunctions(persist, store);
|
|
1317
1317
|
const run = () =>
|
|
1318
1318
|
__async$1(void 0, null, function* () {
|
|
1319
1319
|
/* istanbul ignore else */
|
|
@@ -1556,14 +1556,16 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1556
1556
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
1557
1557
|
});
|
|
1558
1558
|
};
|
|
1559
|
-
const
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1559
|
+
const Message = {
|
|
1560
|
+
Response: 0,
|
|
1561
|
+
GetContentHashes: 1,
|
|
1562
|
+
ContentHashes: 2,
|
|
1563
|
+
ContentDiff: 3,
|
|
1564
|
+
GetTableDiff: 4,
|
|
1565
|
+
GetRowDiff: 5,
|
|
1566
|
+
GetCellDiff: 6,
|
|
1567
|
+
GetValueDiff: 7,
|
|
1568
|
+
};
|
|
1567
1569
|
const createCustomSynchronizer = (
|
|
1568
1570
|
store,
|
|
1569
1571
|
send,
|
|
@@ -1577,41 +1579,39 @@ const createCustomSynchronizer = (
|
|
|
1577
1579
|
let sends = 0;
|
|
1578
1580
|
let receives = 0;
|
|
1579
1581
|
const pendingRequests = mapNew();
|
|
1580
|
-
onReceive((fromClientId, requestId,
|
|
1582
|
+
onReceive((fromClientId, requestId, message, body) => {
|
|
1581
1583
|
receives++;
|
|
1582
|
-
if (
|
|
1584
|
+
if (message == Message.Response) {
|
|
1583
1585
|
ifNotUndefined(
|
|
1584
1586
|
mapGet(pendingRequests, requestId),
|
|
1585
1587
|
([toClientId, handleResponse]) =>
|
|
1586
1588
|
isUndefined(toClientId) || toClientId == fromClientId
|
|
1587
|
-
? handleResponse(
|
|
1589
|
+
? handleResponse(body, fromClientId)
|
|
1588
1590
|
: /* istanbul ignore next */
|
|
1589
1591
|
0,
|
|
1590
1592
|
);
|
|
1591
|
-
} else if (
|
|
1592
|
-
getChangesFromOtherStore(fromClientId,
|
|
1593
|
+
} else if (message == Message.ContentHashes && persister.isAutoLoading()) {
|
|
1594
|
+
getChangesFromOtherStore(fromClientId, body).then((changes) => {
|
|
1593
1595
|
persisterListener == null ? void 0 : persisterListener(void 0, changes);
|
|
1594
1596
|
});
|
|
1595
|
-
} else if (
|
|
1596
|
-
persisterListener == null
|
|
1597
|
-
? void 0
|
|
1598
|
-
: persisterListener(void 0, messageBody);
|
|
1597
|
+
} else if (message == Message.ContentDiff && persister.isAutoLoading()) {
|
|
1598
|
+
persisterListener == null ? void 0 : persisterListener(void 0, body);
|
|
1599
1599
|
} else {
|
|
1600
1600
|
ifNotUndefined(
|
|
1601
|
-
|
|
1601
|
+
message == Message.GetContentHashes && persister.isAutoSaving()
|
|
1602
1602
|
? store.getMergeableContentHashes()
|
|
1603
|
-
:
|
|
1604
|
-
? store.getMergeableTableDiff(
|
|
1605
|
-
:
|
|
1606
|
-
? store.getMergeableRowDiff(
|
|
1607
|
-
:
|
|
1608
|
-
? store.getMergeableCellDiff(
|
|
1609
|
-
:
|
|
1610
|
-
? store.getMergeableValueDiff(
|
|
1603
|
+
: message == Message.GetTableDiff
|
|
1604
|
+
? store.getMergeableTableDiff(body)
|
|
1605
|
+
: message == Message.GetRowDiff
|
|
1606
|
+
? store.getMergeableRowDiff(body)
|
|
1607
|
+
: message == Message.GetCellDiff
|
|
1608
|
+
? store.getMergeableCellDiff(body)
|
|
1609
|
+
: message == Message.GetValueDiff
|
|
1610
|
+
? store.getMergeableValueDiff(body)
|
|
1611
1611
|
: void 0,
|
|
1612
1612
|
(response) => {
|
|
1613
1613
|
sends++;
|
|
1614
|
-
send(fromClientId, requestId,
|
|
1614
|
+
send(fromClientId, requestId, Message.Response, response);
|
|
1615
1615
|
},
|
|
1616
1616
|
);
|
|
1617
1617
|
}
|
|
@@ -1620,13 +1620,13 @@ const createCustomSynchronizer = (
|
|
|
1620
1620
|
__async(
|
|
1621
1621
|
void 0,
|
|
1622
1622
|
[_0, _1, ..._2],
|
|
1623
|
-
function* (toClientId,
|
|
1623
|
+
function* (toClientId, message, body = EMPTY_STRING) {
|
|
1624
1624
|
return promiseNew((resolve, reject) => {
|
|
1625
1625
|
const requestId = getUniqueId();
|
|
1626
1626
|
const timeout = setTimeout(() => {
|
|
1627
1627
|
collDel(pendingRequests, requestId);
|
|
1628
1628
|
reject(
|
|
1629
|
-
`No response from ${toClientId != null ? toClientId : 'anyone'} to '${
|
|
1629
|
+
`No response from ${toClientId != null ? toClientId : 'anyone'} to '${message}'`,
|
|
1630
1630
|
);
|
|
1631
1631
|
}, requestTimeoutSeconds * 1e3);
|
|
1632
1632
|
mapSet(pendingRequests, requestId, [
|
|
@@ -1638,7 +1638,7 @@ const createCustomSynchronizer = (
|
|
|
1638
1638
|
},
|
|
1639
1639
|
]);
|
|
1640
1640
|
sends++;
|
|
1641
|
-
send(toClientId, requestId,
|
|
1641
|
+
send(toClientId, requestId, message, body);
|
|
1642
1642
|
});
|
|
1643
1643
|
},
|
|
1644
1644
|
);
|
|
@@ -1663,7 +1663,7 @@ const createCustomSynchronizer = (
|
|
|
1663
1663
|
if (isUndefined(otherContentHashes)) {
|
|
1664
1664
|
[otherContentHashes, otherClientId] = yield request(
|
|
1665
1665
|
otherClientId,
|
|
1666
|
-
|
|
1666
|
+
Message.GetContentHashes,
|
|
1667
1667
|
);
|
|
1668
1668
|
}
|
|
1669
1669
|
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
@@ -1672,21 +1672,21 @@ const createCustomSynchronizer = (
|
|
|
1672
1672
|
if (tablesHash != otherTablesHash) {
|
|
1673
1673
|
const [newTables, differentTableHashes] = (yield request(
|
|
1674
1674
|
otherClientId,
|
|
1675
|
-
|
|
1675
|
+
Message.GetTableDiff,
|
|
1676
1676
|
store.getMergeableTableHashes(),
|
|
1677
1677
|
))[0];
|
|
1678
1678
|
tablesChanges = newTables;
|
|
1679
1679
|
if (!objIsEmpty(differentTableHashes)) {
|
|
1680
1680
|
const [newRows, differentRowHashes] = (yield request(
|
|
1681
1681
|
otherClientId,
|
|
1682
|
-
|
|
1682
|
+
Message.GetRowDiff,
|
|
1683
1683
|
store.getMergeableRowHashes(differentTableHashes),
|
|
1684
1684
|
))[0];
|
|
1685
1685
|
mergeTablesStamps(tablesChanges, newRows);
|
|
1686
1686
|
if (!objIsEmpty(differentRowHashes)) {
|
|
1687
1687
|
const newCells = (yield request(
|
|
1688
1688
|
otherClientId,
|
|
1689
|
-
|
|
1689
|
+
Message.GetCellDiff,
|
|
1690
1690
|
store.getMergeableCellHashes(differentRowHashes),
|
|
1691
1691
|
))[0];
|
|
1692
1692
|
mergeTablesStamps(tablesChanges, newCells);
|
|
@@ -1699,7 +1699,7 @@ const createCustomSynchronizer = (
|
|
|
1699
1699
|
? stampNewObj()
|
|
1700
1700
|
: (yield request(
|
|
1701
1701
|
otherClientId,
|
|
1702
|
-
|
|
1702
|
+
Message.GetValueDiff,
|
|
1703
1703
|
store.getMergeableValueHashes(),
|
|
1704
1704
|
))[0],
|
|
1705
1705
|
1,
|
|
@@ -1716,9 +1716,14 @@ const createCustomSynchronizer = (
|
|
|
1716
1716
|
__async(void 0, null, function* () {
|
|
1717
1717
|
sends++;
|
|
1718
1718
|
if (changes) {
|
|
1719
|
-
send(null, null,
|
|
1719
|
+
send(null, null, Message.ContentDiff, changes);
|
|
1720
1720
|
} else {
|
|
1721
|
-
send(
|
|
1721
|
+
send(
|
|
1722
|
+
null,
|
|
1723
|
+
null,
|
|
1724
|
+
Message.ContentHashes,
|
|
1725
|
+
store.getMergeableContentHashes(),
|
|
1726
|
+
);
|
|
1722
1727
|
}
|
|
1723
1728
|
});
|
|
1724
1729
|
const addPersisterListener = (listener) => (persisterListener = listener);
|
|
@@ -4345,6 +4350,7 @@ const createMergeableStore = (uniqueId) => {
|
|
|
4345
4350
|
return objFreeze(mergeableStore);
|
|
4346
4351
|
};
|
|
4347
4352
|
|
|
4353
|
+
exports.Message = Message;
|
|
4348
4354
|
exports.Persists = Persists;
|
|
4349
4355
|
exports.createCheckpoints = createCheckpoints;
|
|
4350
4356
|
exports.createCustomPersister = createCustomPersister;
|