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
|
@@ -13,67 +13,348 @@ import type {Content} from '../store/index.d.ts';
|
|
|
13
13
|
import type {MergeableStore} from '../mergeable-store/index.d.ts';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* The
|
|
16
|
+
* The Message enum is used to indicate the type of the message being passed
|
|
17
|
+
* between Synchronizer instances.
|
|
18
|
+
*
|
|
19
|
+
* These message comprise the basic synchronization protocol for merging
|
|
20
|
+
* MergeableStore instances across multiple systems.
|
|
21
|
+
*
|
|
22
|
+
* The enum is generally intended to be used internally within TinyBase itself
|
|
23
|
+
* and opaque to applications that use synchronization.
|
|
17
24
|
* @category Synchronization
|
|
25
|
+
* @since v5.0.0
|
|
18
26
|
*/
|
|
19
|
-
export
|
|
27
|
+
export const enum Message {
|
|
28
|
+
/**
|
|
29
|
+
* A message that is a response to a previous request.
|
|
30
|
+
*/
|
|
31
|
+
Response = 0,
|
|
32
|
+
/**
|
|
33
|
+
* A message that is a request to get ContentHashes from another
|
|
34
|
+
* MergeableStore.
|
|
35
|
+
*/
|
|
36
|
+
GetContentHashes = 1,
|
|
37
|
+
/**
|
|
38
|
+
* A message that contains ContentHashes.
|
|
39
|
+
*/
|
|
40
|
+
ContentHashes = 2,
|
|
41
|
+
/**
|
|
42
|
+
* A message that contains a ContentDiff.
|
|
43
|
+
*/
|
|
44
|
+
ContentDiff = 3,
|
|
45
|
+
/**
|
|
46
|
+
* A message that is a request to get a TableDiff from another MergeableStore.
|
|
47
|
+
*/
|
|
48
|
+
GetTableDiff = 4,
|
|
49
|
+
/**
|
|
50
|
+
* A message that is a request to get a RowDiff from another MergeableStore.
|
|
51
|
+
*/
|
|
52
|
+
GetRowDiff = 5,
|
|
53
|
+
/**
|
|
54
|
+
* A message that is a request to get a CellDiff from another MergeableStore.
|
|
55
|
+
*/
|
|
56
|
+
GetCellDiff = 6,
|
|
57
|
+
/**
|
|
58
|
+
* A message that is a request to get a ValueDiff from another MergeableStore.
|
|
59
|
+
*/
|
|
60
|
+
GetValueDiff = 7,
|
|
61
|
+
}
|
|
20
62
|
|
|
21
63
|
/**
|
|
22
|
-
* The Receive type
|
|
64
|
+
* The Receive type describes a function that knows how to handle the arrival of
|
|
65
|
+
* a message as part of the synchronization protocol.
|
|
66
|
+
*
|
|
67
|
+
* When a message arrives (most likely from another system), the function will
|
|
68
|
+
* be called with parameters that indicate where the message came from, and its
|
|
69
|
+
* meaning and content.
|
|
70
|
+
* @param fromClientId The Id of the other client (in other words, the other
|
|
71
|
+
* system) that sent the message.
|
|
72
|
+
* @param requestId The optional Id of the message, which should be returned in
|
|
73
|
+
* the response (if requested) to constitute a matched request/response
|
|
74
|
+
* transaction.
|
|
75
|
+
* @param message A number that indicates the type of the message, according to
|
|
76
|
+
* the Message enum.
|
|
77
|
+
* @param body A message-specific payload.
|
|
23
78
|
* @category Synchronization
|
|
79
|
+
* @since v5.0.0
|
|
24
80
|
*/
|
|
25
81
|
export type Receive = (
|
|
26
82
|
fromClientId: Id,
|
|
27
83
|
requestId: IdOrNull,
|
|
28
|
-
|
|
29
|
-
|
|
84
|
+
message: Message,
|
|
85
|
+
body: any,
|
|
30
86
|
) => void;
|
|
31
87
|
|
|
32
88
|
/**
|
|
33
|
-
* The Send type
|
|
89
|
+
* The Send type describes a function that knows how to dispatch a message as
|
|
90
|
+
* part of the synchronization protocol.
|
|
91
|
+
* @param toClientId The optional Id of the other client (in other words, the
|
|
92
|
+
* other system) to which the message should be sent. If omitted, this is to be
|
|
93
|
+
* a broadcast.
|
|
94
|
+
* @param requestId The optional Id of the message, which should be awaited in
|
|
95
|
+
* the response (if requested) to constitute a matched request/response
|
|
96
|
+
* transaction.
|
|
97
|
+
* @param message A number that indicates the type of the message, according to
|
|
98
|
+
* the Message enum.
|
|
99
|
+
* @param body A message-specific payload.
|
|
34
100
|
* @category Synchronization
|
|
101
|
+
* @since v5.0.0
|
|
35
102
|
*/
|
|
36
103
|
export type Send = (
|
|
37
104
|
toClientId: IdOrNull,
|
|
38
105
|
requestId: IdOrNull,
|
|
39
|
-
|
|
40
|
-
|
|
106
|
+
message: Message,
|
|
107
|
+
body: any,
|
|
41
108
|
) => void;
|
|
42
109
|
|
|
43
110
|
/**
|
|
44
|
-
* The SynchronizerStats type
|
|
111
|
+
* The SynchronizerStats type describes the number of times a Synchronizer
|
|
112
|
+
* object has sent or received data.
|
|
113
|
+
*
|
|
114
|
+
* A SynchronizerStats object is returned from the getSynchronizerStats method.
|
|
45
115
|
* @category Development
|
|
116
|
+
* @since v5.0.0
|
|
46
117
|
*/
|
|
47
118
|
export type SynchronizerStats = {
|
|
119
|
+
/**
|
|
120
|
+
* The number of times messages have been sent.
|
|
121
|
+
*/
|
|
48
122
|
sends: number;
|
|
123
|
+
/**
|
|
124
|
+
* The number of times messages has been received.
|
|
125
|
+
*/
|
|
49
126
|
receives: number;
|
|
50
127
|
};
|
|
51
128
|
|
|
52
129
|
/**
|
|
53
|
-
* 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.
|
|
54
146
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
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.
|
|
154
|
+
*
|
|
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'}}}
|
|
57
172
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
173
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
174
|
+
* // ...
|
|
175
|
+
* console.log(store1.getTables());
|
|
176
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
177
|
+
*
|
|
178
|
+
* synchronizer1.destroy();
|
|
179
|
+
* synchronizer2.destroy();
|
|
180
|
+
* ```
|
|
60
181
|
* @category Synchronizer
|
|
61
182
|
* @since v5.0.0
|
|
62
183
|
*/
|
|
63
184
|
export interface Synchronizer extends Persister<Persists.MergeableStoreOnly> {
|
|
64
185
|
/**
|
|
65
|
-
* The startSync method
|
|
186
|
+
* The startSync method is used to start the process of synchronization
|
|
187
|
+
* between this instance and another matching Synchronizer.
|
|
188
|
+
*
|
|
189
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
190
|
+
* Persister framework, and so this startSync method is equivalent to starting
|
|
191
|
+
* both auto-loading (listening to sync messages from other active
|
|
192
|
+
* Synchronizer instances) and auto-saving (sending sync messages to it).
|
|
193
|
+
*
|
|
194
|
+
* This method is asynchronous so you should you `await` calls to this method
|
|
195
|
+
* or handle the return type natively as a Promise.
|
|
196
|
+
* @param initialContent An optional Content object used when no content is
|
|
197
|
+
* available from another other peer Synchronizer instances.
|
|
198
|
+
* @returns A Promise containing a reference to the Synchronizer object.
|
|
199
|
+
* @example
|
|
200
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
201
|
+
* LocalSynchronizer for each, and starts synchronizing them. A change in one
|
|
202
|
+
* becomes evident in the other.
|
|
203
|
+
*
|
|
204
|
+
* ```js
|
|
205
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
206
|
+
* import {createMergeableStore} from 'tinybase';
|
|
207
|
+
*
|
|
208
|
+
* const store1 = createMergeableStore();
|
|
209
|
+
* const store2 = createMergeableStore();
|
|
210
|
+
*
|
|
211
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
212
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
213
|
+
*
|
|
214
|
+
* await synchronizer1.startSync();
|
|
215
|
+
* await synchronizer2.startSync();
|
|
216
|
+
*
|
|
217
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
218
|
+
* // ...
|
|
219
|
+
* console.log(store2.getTables());
|
|
220
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
221
|
+
*
|
|
222
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
223
|
+
* // ...
|
|
224
|
+
* console.log(store1.getTables());
|
|
225
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
226
|
+
*
|
|
227
|
+
* synchronizer1.destroy();
|
|
228
|
+
* synchronizer2.destroy();
|
|
229
|
+
* ```
|
|
230
|
+
* @example
|
|
231
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
232
|
+
* LocalSynchronizer for each, and starts synchronizing them with default
|
|
233
|
+
* content. The default content from the first Synchronizer's startSync method
|
|
234
|
+
* ends up populated in both MergeableStore instances: by the time the second
|
|
235
|
+
* started, the first was available to synchronize with and its default was
|
|
236
|
+
* not needed.
|
|
237
|
+
*
|
|
238
|
+
* ```js
|
|
239
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
240
|
+
* import {createMergeableStore} from 'tinybase';
|
|
241
|
+
*
|
|
242
|
+
* const store1 = createMergeableStore();
|
|
243
|
+
* const store2 = createMergeableStore();
|
|
244
|
+
*
|
|
245
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
246
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
247
|
+
*
|
|
248
|
+
* await synchronizer1.startSync([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
249
|
+
* await synchronizer2.startSync([{pets: {felix: {species: 'cat'}}}, {}]);
|
|
250
|
+
*
|
|
251
|
+
* // ...
|
|
252
|
+
*
|
|
253
|
+
* console.log(store1.getTables());
|
|
254
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
255
|
+
* console.log(store2.getTables());
|
|
256
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
257
|
+
*
|
|
258
|
+
* synchronizer1.destroy();
|
|
259
|
+
* synchronizer2.destroy();
|
|
260
|
+
* ```
|
|
66
261
|
* @category Synchronization
|
|
262
|
+
* @since v5.0.0
|
|
67
263
|
*/
|
|
68
264
|
startSync(initialContent?: Content): Promise<this>;
|
|
69
265
|
/**
|
|
70
|
-
* The stopSync method
|
|
266
|
+
* The stopSync method is used to stop the process of synchronization between
|
|
267
|
+
* this instance and another matching Synchronizer.
|
|
268
|
+
*
|
|
269
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
270
|
+
* Persister framework, and so this startSync method is equivalent to stopping
|
|
271
|
+
* both auto-loading (listening to sync messages from other active
|
|
272
|
+
* Synchronizer instances) and auto-saving (sending sync messages to them).
|
|
273
|
+
* @returns A reference to the Synchronizer object.
|
|
274
|
+
* @example
|
|
275
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
276
|
+
* LocalSynchronizer for each, and starts - then stops - synchronizing them.
|
|
277
|
+
* Subsequent changes are not merged.
|
|
278
|
+
*
|
|
279
|
+
* ```js
|
|
280
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
281
|
+
* import {createMergeableStore} from 'tinybase';
|
|
282
|
+
*
|
|
283
|
+
* const store1 = createMergeableStore();
|
|
284
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
285
|
+
* await synchronizer1.startSync();
|
|
286
|
+
*
|
|
287
|
+
* const store2 = createMergeableStore();
|
|
288
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
289
|
+
* await synchronizer2.startSync();
|
|
290
|
+
*
|
|
291
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
292
|
+
* // ...
|
|
293
|
+
* console.log(store1.getTables());
|
|
294
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
295
|
+
* console.log(store2.getTables());
|
|
296
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
297
|
+
*
|
|
298
|
+
* synchronizer1.stopSync();
|
|
299
|
+
* synchronizer2.stopSync();
|
|
300
|
+
*
|
|
301
|
+
* store1.setCell('pets', 'fido', 'color', 'brown');
|
|
302
|
+
* // ...
|
|
303
|
+
* console.log(store1.getTables());
|
|
304
|
+
* // -> {pets: {fido: {species: 'dog', color: 'brown'}}}
|
|
305
|
+
* console.log(store2.getTables());
|
|
306
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
307
|
+
*
|
|
308
|
+
* synchronizer1.destroy();
|
|
309
|
+
* synchronizer2.destroy();
|
|
310
|
+
* ```
|
|
71
311
|
* @category Synchronization
|
|
312
|
+
* @since v5.0.0
|
|
72
313
|
*/
|
|
73
314
|
stopSync(): this;
|
|
74
315
|
/**
|
|
75
|
-
* The getSynchronizerStats method
|
|
316
|
+
* The getSynchronizerStats method provides a set of statistics about the
|
|
317
|
+
* Synchronizer, and is used for debugging purposes.
|
|
318
|
+
*
|
|
319
|
+
* The SynchronizerStats object contains a count of the number of times the
|
|
320
|
+
* Persister has sent and received messages.
|
|
321
|
+
*
|
|
322
|
+
* The method is intended to be used during development to ensure your
|
|
323
|
+
* synchronization layer is acting as expected, for example.
|
|
324
|
+
* @returns A SynchronizerStats object containing Synchronizer send and
|
|
325
|
+
* receive statistics.
|
|
326
|
+
* @example
|
|
327
|
+
* This example gets the send and receive statistics of two active
|
|
328
|
+
* Synchronizer instances.
|
|
329
|
+
*
|
|
330
|
+
* ```js
|
|
331
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
332
|
+
* import {createMergeableStore} from 'tinybase';
|
|
333
|
+
*
|
|
334
|
+
* const store1 = createMergeableStore();
|
|
335
|
+
* const store2 = createMergeableStore();
|
|
336
|
+
*
|
|
337
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
338
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
339
|
+
*
|
|
340
|
+
* await synchronizer1.startSync();
|
|
341
|
+
* await synchronizer2.startSync();
|
|
342
|
+
*
|
|
343
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
344
|
+
* // ...
|
|
345
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
346
|
+
* // ...
|
|
347
|
+
*
|
|
348
|
+
* console.log(synchronizer1.getSynchronizerStats());
|
|
349
|
+
* // -> {receives: 4, sends: 5}
|
|
350
|
+
* console.log(synchronizer2.getSynchronizerStats());
|
|
351
|
+
* // -> {receives: 5, sends: 4}
|
|
352
|
+
*
|
|
353
|
+
* synchronizer1.destroy();
|
|
354
|
+
* synchronizer2.destroy();
|
|
355
|
+
* ```
|
|
76
356
|
* @category Synchronization
|
|
357
|
+
* @since v5.0.0
|
|
77
358
|
*/
|
|
78
359
|
getSynchronizerStats(): SynchronizerStats;
|
|
79
360
|
}
|
|
@@ -84,50 +365,81 @@ export interface Synchronizer extends Persister<Persists.MergeableStoreOnly> {
|
|
|
84
365
|
*
|
|
85
366
|
* As well as providing a reference to the MergeableStore to synchronize, you
|
|
86
367
|
* must provide parameters which identify how to send and receive changes to and
|
|
87
|
-
* from this MergeableStore and its peers.
|
|
368
|
+
* from this MergeableStore and its peers. This is entirely dependent upon the
|
|
369
|
+
* medium of communication used.
|
|
88
370
|
* @param store The MergeableStore to synchronize.
|
|
89
371
|
* @param send A Send function for sending a message.
|
|
90
|
-
* @param onReceive A callback
|
|
91
|
-
*
|
|
372
|
+
* @param onReceive A callback (called once when the Synchronizer is created)
|
|
373
|
+
* that is passed a Receive function that you need to ensure can receive
|
|
374
|
+
* messages.
|
|
92
375
|
* @param destroy A function called when destroying the Persister which can be
|
|
93
376
|
* used to clean up underlying resources.
|
|
94
377
|
* @param requestTimeoutSeconds An number of seconds before a request sent from
|
|
95
378
|
* this Persister to another peer times out.
|
|
96
379
|
* @param onIgnoredError An optional handler for the errors that the
|
|
97
|
-
* Synchronizer would otherwise ignore when trying to
|
|
380
|
+
* Synchronizer would otherwise ignore when trying to synchronize data. This is
|
|
98
381
|
* suitable for debugging synchronization issues in a development environment.
|
|
99
382
|
* @returns A reference to the new Synchronizer object.
|
|
100
383
|
* @example
|
|
101
|
-
* This example creates a
|
|
102
|
-
*
|
|
384
|
+
* This example creates a function for creating custom Synchronizer objects via
|
|
385
|
+
* a very naive pair of message buses (which are first-in, first-out). Each
|
|
386
|
+
* Synchronizer can write to the other's bus, and they each poll to read from
|
|
387
|
+
* their own. The example then uses these Synchronizer instances to sync two
|
|
388
|
+
* MergeableStore objects together
|
|
103
389
|
*
|
|
104
390
|
* ```js
|
|
105
|
-
* import {
|
|
106
|
-
*
|
|
391
|
+
* import {
|
|
392
|
+
* createCustomSynchronizer,
|
|
393
|
+
* createMergeableStore,
|
|
394
|
+
* getUniqueId,
|
|
395
|
+
* } from 'tinybase';
|
|
107
396
|
*
|
|
108
|
-
* const
|
|
109
|
-
*
|
|
110
|
-
* });
|
|
111
|
-
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
397
|
+
* const bus1 = [];
|
|
398
|
+
* const bus2 = [];
|
|
112
399
|
*
|
|
113
|
-
* const
|
|
114
|
-
*
|
|
400
|
+
* const createBusSynchronizer = (store, localBus, remoteBus) => {
|
|
401
|
+
* let timer;
|
|
402
|
+
* const clientId = getUniqueId();
|
|
403
|
+
* return createCustomSynchronizer(
|
|
404
|
+
* store,
|
|
405
|
+
* (toClientId, requestId, message, body) => {
|
|
406
|
+
* // send
|
|
407
|
+
* remoteBus.push([clientId, requestId, message, body]);
|
|
408
|
+
* },
|
|
409
|
+
* (receive) => {
|
|
410
|
+
* // onReceive
|
|
411
|
+
* timer = setInterval(() => {
|
|
412
|
+
* if (localBus.length > 0) {
|
|
413
|
+
* receive(...localBus.shift());
|
|
414
|
+
* }
|
|
415
|
+
* }, 1);
|
|
416
|
+
* },
|
|
417
|
+
* () => clearInterval(timer), // destroy
|
|
418
|
+
* 1,
|
|
419
|
+
* );
|
|
420
|
+
* };
|
|
421
|
+
*
|
|
422
|
+
* const store1 = createMergeableStore();
|
|
423
|
+
* const store2 = createMergeableStore();
|
|
424
|
+
*
|
|
425
|
+
* const synchronizer1 = createBusSynchronizer(store1, bus1, bus2);
|
|
426
|
+
* const synchronizer2 = createBusSynchronizer(store2, bus2, bus1);
|
|
427
|
+
*
|
|
428
|
+
* await synchronizer1.startSync();
|
|
115
429
|
* await synchronizer2.startSync();
|
|
116
430
|
*
|
|
117
|
-
*
|
|
431
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
118
432
|
* // ...
|
|
119
|
-
*
|
|
120
|
-
*
|
|
433
|
+
* console.log(store1.getTables());
|
|
434
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
121
435
|
* console.log(store2.getTables());
|
|
122
436
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
123
437
|
*
|
|
124
|
-
* await synchronizer1.load();
|
|
125
|
-
* // Store1 will be synced with Store2.
|
|
126
|
-
*
|
|
127
438
|
* synchronizer1.destroy();
|
|
128
439
|
* synchronizer2.destroy();
|
|
129
440
|
* ```
|
|
130
441
|
* @category Creation
|
|
442
|
+
* @since v5.0.0
|
|
131
443
|
*/
|
|
132
444
|
export function createCustomSynchronizer(
|
|
133
445
|
store: MergeableStore,
|
|
@@ -12,14 +12,74 @@ import type {MergeableStore} from '../../mergeable-store/index.d.cts';
|
|
|
12
12
|
import type {Synchronizer} from '../index.d.cts';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* The LocalSynchronizer interface
|
|
15
|
+
* The LocalSynchronizer interface represents a Synchronizer that lets you
|
|
16
|
+
* synchronize MergeableStore data to and from other MergeableStore instances on
|
|
17
|
+
* the same local machine.
|
|
18
|
+
*
|
|
19
|
+
* Having no specialized methods, it is a synonym for the Synchronizer
|
|
20
|
+
* interface. This is also something of a showcase Synchronizer, rather than
|
|
21
|
+
* something you would use in a production environment. If you _do_ need to
|
|
22
|
+
* synchronize two in-memory MergeableStore instances, you may prefer to use the
|
|
23
|
+
* merge function on either one of them instead of going to the effort of
|
|
24
|
+
* setting up this Synchronizer.
|
|
25
|
+
*
|
|
26
|
+
* You should use the createLocalSynchronizer function to create a
|
|
27
|
+
* LocalSynchronizer object.
|
|
16
28
|
* @category Synchronizer
|
|
29
|
+
* @since v5.0.0
|
|
17
30
|
*/
|
|
18
31
|
export interface LocalSynchronizer extends Synchronizer {}
|
|
19
32
|
|
|
20
33
|
/**
|
|
21
|
-
* The createLocalSynchronizer function
|
|
34
|
+
* The createLocalSynchronizer function creates a LocalSynchronizer object that
|
|
35
|
+
* can synchronize MergeableStore data to and from other MergeableStore
|
|
36
|
+
* instances on the same local machine.
|
|
37
|
+
*
|
|
38
|
+
* This is something of a showcase Synchronizer, rather than something you would
|
|
39
|
+
* use in a production environment. If you _do_ need to synchronize two
|
|
40
|
+
* in-memory MergeableStore instances, you may prefer to use the merge function
|
|
41
|
+
* on either one of them instead of going to the effort of setting up this
|
|
42
|
+
* Synchronizer.
|
|
43
|
+
*
|
|
44
|
+
* As well as providing a reference to the MergeableStore to persist, you can
|
|
45
|
+
* provide a handler for any otherwise ignored synchronization errors.
|
|
46
|
+
* @param store The MergeableStore to synchronize.
|
|
47
|
+
* @param onIgnoredError An optional handler for the errors that the
|
|
48
|
+
* Synchronizer would otherwise ignore when trying to synchronize data. This is
|
|
49
|
+
* suitable for debugging synchronization issues in a development environment.
|
|
50
|
+
* @returns A reference to the new LocalSynchronizer object.
|
|
51
|
+
* @example
|
|
52
|
+
* This example creates a LocalSynchronizer object and synchronizes one
|
|
53
|
+
* MergeableStore to another.
|
|
54
|
+
*
|
|
55
|
+
* ```js
|
|
56
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
57
|
+
* import {createMergeableStore} from 'tinybase';
|
|
58
|
+
*
|
|
59
|
+
* const store1 = createMergeableStore('store1').setTables({
|
|
60
|
+
* pets: {fido: {species: 'dog'}},
|
|
61
|
+
* });
|
|
62
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
63
|
+
*
|
|
64
|
+
* const store2 = createMergeableStore('store2');
|
|
65
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
66
|
+
* await synchronizer2.startSync();
|
|
67
|
+
*
|
|
68
|
+
* await synchronizer1.save();
|
|
69
|
+
* // ...
|
|
70
|
+
* // Store2 will be synced with Store1.
|
|
71
|
+
*
|
|
72
|
+
* console.log(store2.getTables());
|
|
73
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
74
|
+
*
|
|
75
|
+
* await synchronizer1.load();
|
|
76
|
+
* // Store1 will be synced with Store2.
|
|
77
|
+
*
|
|
78
|
+
* synchronizer1.destroy();
|
|
79
|
+
* synchronizer2.destroy();
|
|
80
|
+
* ```
|
|
22
81
|
* @category Creation
|
|
82
|
+
* @since v5.0.0
|
|
23
83
|
*/
|
|
24
84
|
export function createLocalSynchronizer(
|
|
25
85
|
store: MergeableStore,
|
|
@@ -12,14 +12,74 @@ import type {MergeableStore} from '../../mergeable-store/index.d.ts';
|
|
|
12
12
|
import type {Synchronizer} from '../index.d.ts';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* The LocalSynchronizer interface
|
|
15
|
+
* The LocalSynchronizer interface represents a Synchronizer that lets you
|
|
16
|
+
* synchronize MergeableStore data to and from other MergeableStore instances on
|
|
17
|
+
* the same local machine.
|
|
18
|
+
*
|
|
19
|
+
* Having no specialized methods, it is a synonym for the Synchronizer
|
|
20
|
+
* interface. This is also something of a showcase Synchronizer, rather than
|
|
21
|
+
* something you would use in a production environment. If you _do_ need to
|
|
22
|
+
* synchronize two in-memory MergeableStore instances, you may prefer to use the
|
|
23
|
+
* merge function on either one of them instead of going to the effort of
|
|
24
|
+
* setting up this Synchronizer.
|
|
25
|
+
*
|
|
26
|
+
* You should use the createLocalSynchronizer function to create a
|
|
27
|
+
* LocalSynchronizer object.
|
|
16
28
|
* @category Synchronizer
|
|
29
|
+
* @since v5.0.0
|
|
17
30
|
*/
|
|
18
31
|
export interface LocalSynchronizer extends Synchronizer {}
|
|
19
32
|
|
|
20
33
|
/**
|
|
21
|
-
* The createLocalSynchronizer function
|
|
34
|
+
* The createLocalSynchronizer function creates a LocalSynchronizer object that
|
|
35
|
+
* can synchronize MergeableStore data to and from other MergeableStore
|
|
36
|
+
* instances on the same local machine.
|
|
37
|
+
*
|
|
38
|
+
* This is something of a showcase Synchronizer, rather than something you would
|
|
39
|
+
* use in a production environment. If you _do_ need to synchronize two
|
|
40
|
+
* in-memory MergeableStore instances, you may prefer to use the merge function
|
|
41
|
+
* on either one of them instead of going to the effort of setting up this
|
|
42
|
+
* Synchronizer.
|
|
43
|
+
*
|
|
44
|
+
* As well as providing a reference to the MergeableStore to persist, you can
|
|
45
|
+
* provide a handler for any otherwise ignored synchronization errors.
|
|
46
|
+
* @param store The MergeableStore to synchronize.
|
|
47
|
+
* @param onIgnoredError An optional handler for the errors that the
|
|
48
|
+
* Synchronizer would otherwise ignore when trying to synchronize data. This is
|
|
49
|
+
* suitable for debugging synchronization issues in a development environment.
|
|
50
|
+
* @returns A reference to the new LocalSynchronizer object.
|
|
51
|
+
* @example
|
|
52
|
+
* This example creates a LocalSynchronizer object and synchronizes one
|
|
53
|
+
* MergeableStore to another.
|
|
54
|
+
*
|
|
55
|
+
* ```js
|
|
56
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
57
|
+
* import {createMergeableStore} from 'tinybase';
|
|
58
|
+
*
|
|
59
|
+
* const store1 = createMergeableStore('store1').setTables({
|
|
60
|
+
* pets: {fido: {species: 'dog'}},
|
|
61
|
+
* });
|
|
62
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
63
|
+
*
|
|
64
|
+
* const store2 = createMergeableStore('store2');
|
|
65
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
66
|
+
* await synchronizer2.startSync();
|
|
67
|
+
*
|
|
68
|
+
* await synchronizer1.save();
|
|
69
|
+
* // ...
|
|
70
|
+
* // Store2 will be synced with Store1.
|
|
71
|
+
*
|
|
72
|
+
* console.log(store2.getTables());
|
|
73
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
74
|
+
*
|
|
75
|
+
* await synchronizer1.load();
|
|
76
|
+
* // Store1 will be synced with Store2.
|
|
77
|
+
*
|
|
78
|
+
* synchronizer1.destroy();
|
|
79
|
+
* synchronizer2.destroy();
|
|
80
|
+
* ```
|
|
22
81
|
* @category Creation
|
|
82
|
+
* @since v5.0.0
|
|
23
83
|
*/
|
|
24
84
|
export function createLocalSynchronizer(
|
|
25
85
|
store: MergeableStore,
|