tinybase 5.0.0-beta.26 → 5.0.0-beta.28
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/_internal/ui-react/with-schemas/index.d.cts +274 -0
- package/@types/_internal/ui-react/with-schemas/index.d.ts +274 -0
- package/@types/checkpoints/index.d.cts +30 -1
- package/@types/checkpoints/index.d.ts +30 -1
- package/@types/checkpoints/with-schemas/index.d.cts +30 -1
- package/@types/checkpoints/with-schemas/index.d.ts +30 -1
- package/@types/common/index.d.cts +9 -0
- package/@types/common/index.d.ts +9 -0
- package/@types/common/with-schemas/index.d.cts +9 -0
- package/@types/common/with-schemas/index.d.ts +9 -0
- package/@types/index.d.cts +1 -0
- package/@types/index.d.ts +1 -0
- package/@types/indexes/index.d.cts +32 -1
- package/@types/indexes/index.d.ts +32 -1
- package/@types/indexes/with-schemas/index.d.cts +32 -1
- package/@types/indexes/with-schemas/index.d.ts +32 -1
- package/@types/mergeable-store/index.d.cts +0 -2
- package/@types/mergeable-store/index.d.ts +0 -2
- package/@types/mergeable-store/with-schemas/index.d.cts +2 -2
- package/@types/mergeable-store/with-schemas/index.d.ts +2 -2
- package/@types/metrics/index.d.cts +30 -4
- package/@types/metrics/index.d.ts +30 -4
- package/@types/metrics/with-schemas/index.d.cts +30 -4
- package/@types/metrics/with-schemas/index.d.ts +30 -4
- package/@types/persisters/index.d.cts +246 -62
- package/@types/persisters/index.d.ts +246 -62
- package/@types/persisters/persister-automerge/index.d.cts +13 -9
- package/@types/persisters/persister-automerge/index.d.ts +13 -9
- package/@types/persisters/persister-automerge/with-schemas/index.d.cts +13 -9
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +13 -9
- package/@types/persisters/persister-browser/index.d.cts +25 -15
- package/@types/persisters/persister-browser/index.d.ts +25 -15
- package/@types/persisters/persister-browser/with-schemas/index.d.cts +25 -15
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +25 -15
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +12 -9
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +12 -9
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +12 -9
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +12 -9
- package/@types/persisters/persister-electric-sql/index.d.cts +12 -9
- package/@types/persisters/persister-electric-sql/index.d.ts +12 -9
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +12 -9
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +12 -9
- package/@types/persisters/persister-expo-sqlite/index.d.cts +14 -10
- package/@types/persisters/persister-expo-sqlite/index.d.ts +14 -10
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +14 -10
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +14 -10
- package/@types/persisters/persister-file/index.d.cts +14 -8
- package/@types/persisters/persister-file/index.d.ts +14 -8
- package/@types/persisters/persister-file/with-schemas/index.d.cts +14 -8
- package/@types/persisters/persister-file/with-schemas/index.d.ts +14 -8
- package/@types/persisters/persister-indexed-db/index.d.cts +13 -8
- package/@types/persisters/persister-indexed-db/index.d.ts +13 -8
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +13 -8
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +13 -8
- package/@types/persisters/persister-libsql/index.d.cts +13 -8
- package/@types/persisters/persister-libsql/index.d.ts +13 -8
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +13 -8
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +13 -8
- package/@types/persisters/persister-partykit-client/index.d.cts +24 -13
- package/@types/persisters/persister-partykit-client/index.d.ts +24 -13
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +24 -13
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +24 -13
- package/@types/persisters/persister-partykit-server/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/index.d.ts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +11 -3
- package/@types/persisters/persister-powersync/index.d.cts +15 -9
- package/@types/persisters/persister-powersync/index.d.ts +15 -9
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +15 -9
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +15 -9
- package/@types/persisters/persister-remote/index.d.cts +15 -10
- package/@types/persisters/persister-remote/index.d.ts +15 -10
- package/@types/persisters/persister-remote/with-schemas/index.d.cts +15 -10
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +15 -10
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +14 -9
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +14 -9
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +14 -9
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +14 -9
- package/@types/persisters/persister-sqlite3/index.d.cts +14 -9
- package/@types/persisters/persister-sqlite3/index.d.ts +14 -9
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +14 -9
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +14 -9
- package/@types/persisters/persister-yjs/index.d.cts +13 -8
- package/@types/persisters/persister-yjs/index.d.ts +13 -8
- package/@types/persisters/persister-yjs/with-schemas/index.d.cts +13 -8
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +13 -8
- package/@types/persisters/with-schemas/index.d.cts +280 -63
- package/@types/persisters/with-schemas/index.d.ts +280 -63
- package/@types/queries/index.d.cts +64 -5
- package/@types/queries/index.d.ts +64 -5
- package/@types/queries/with-schemas/index.d.cts +64 -5
- package/@types/queries/with-schemas/index.d.ts +64 -5
- package/@types/relationships/index.d.cts +34 -1
- package/@types/relationships/index.d.ts +34 -1
- package/@types/relationships/with-schemas/index.d.cts +34 -1
- package/@types/relationships/with-schemas/index.d.ts +34 -1
- package/@types/store/index.d.cts +125 -0
- package/@types/store/index.d.ts +125 -0
- package/@types/store/with-schemas/index.d.cts +125 -0
- package/@types/store/with-schemas/index.d.ts +125 -0
- package/@types/synchronizers/index.d.cts +375 -41
- package/@types/synchronizers/index.d.ts +375 -41
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.cts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts +128 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +128 -0
- package/@types/synchronizers/synchronizer-local/index.d.cts +62 -3
- package/@types/synchronizers/synchronizer-local/index.d.ts +62 -3
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +77 -3
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +77 -3
- package/@types/synchronizers/synchronizer-ws-client/index.d.cts +110 -3
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +110 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +121 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +121 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +486 -7
- package/@types/synchronizers/with-schemas/index.d.cts +372 -42
- package/@types/synchronizers/with-schemas/index.d.ts +372 -42
- package/@types/tools/index.d.cts +22 -0
- package/@types/tools/index.d.ts +22 -0
- package/@types/tools/with-schemas/index.d.cts +22 -0
- package/@types/tools/with-schemas/index.d.ts +22 -0
- package/@types/ui-react/index.d.cts +375 -1
- package/@types/ui-react/index.d.ts +375 -1
- package/@types/ui-react/with-schemas/index.d.cts +100 -1
- package/@types/ui-react/with-schemas/index.d.ts +100 -1
- package/@types/ui-react-dom/index.d.cts +112 -0
- package/@types/ui-react-dom/index.d.ts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.cts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.ts +112 -0
- package/@types/ui-react-inspector/index.d.cts +6 -2
- package/@types/ui-react-inspector/index.d.ts +6 -2
- package/@types/ui-react-inspector/with-schemas/index.d.cts +118 -2
- package/@types/ui-react-inspector/with-schemas/index.d.ts +118 -2
- package/@types/with-schemas/index.d.cts +1 -0
- package/@types/with-schemas/index.d.ts +1 -0
- package/cjs/es6/index.cjs +49 -43
- 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/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/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 +49 -43
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +53 -48
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +53 -48
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +61 -62
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +61 -62
- package/cjs/es6/synchronizers/with-schemas/index.cjs +49 -43
- 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 +49 -43
- package/cjs/index.cjs +49 -43
- 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/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/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 +49 -43
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +53 -53
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +53 -53
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +61 -62
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +61 -62
- package/cjs/synchronizers/with-schemas/index.cjs +49 -43
- 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 +49 -43
- package/es6/index.js +49 -43
- 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/synchronizer-broadcast-channel/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/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 +49 -44
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +626 -0
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +626 -0
- package/es6/synchronizers/synchronizer-local/index.js +53 -48
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +53 -48
- package/es6/synchronizers/synchronizer-ws-client/index.js +61 -62
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +61 -62
- package/es6/synchronizers/with-schemas/index.js +49 -44
- 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 +49 -43
- package/index.js +49 -43
- 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/synchronizer-broadcast-channel/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/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 +109 -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 +10 -10
- package/releases.md +8 -8
- package/synchronizers/index.js +49 -44
- package/synchronizers/synchronizer-broadcast-channel/index.js +498 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +498 -0
- package/synchronizers/synchronizer-local/index.js +53 -53
- package/synchronizers/synchronizer-local/with-schemas/index.js +53 -53
- package/synchronizers/synchronizer-ws-client/index.js +61 -62
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +61 -62
- package/synchronizers/with-schemas/index.js +49 -44
- 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 +52 -43
- 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/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/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 +52 -43
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-local/index.js +56 -48
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +56 -48
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +64 -62
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +64 -62
- package/umd/es6/synchronizers/with-schemas/index.js +52 -43
- 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 +52 -43
- package/umd/index.js +52 -47
- 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/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/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 +52 -47
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +516 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +516 -0
- package/umd/synchronizers/synchronizer-local/index.js +56 -57
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +56 -57
- package/umd/synchronizers/synchronizer-ws-client/index.js +64 -66
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +64 -66
- package/umd/synchronizers/with-schemas/index.js +52 -47
- 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 +52 -47
- package/with-schemas/index.js +49 -43
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The synchronizers module of the TinyBase project lets you synchronize
|
|
3
3
|
* MergeableStore data to and from other MergeableStore instances.
|
|
4
|
-
* @see
|
|
4
|
+
* @see Synchronization guide
|
|
5
5
|
* @packageDocumentation
|
|
6
6
|
* @module synchronizers
|
|
7
7
|
* @since v5.0.0
|
|
@@ -19,36 +19,123 @@ 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
|
+
* @category Enum
|
|
37
|
+
* @since v5.0.0
|
|
38
|
+
*/
|
|
39
|
+
Response = 0,
|
|
40
|
+
/**
|
|
41
|
+
* A message that is a request to get ContentHashes from another
|
|
42
|
+
* MergeableStore.
|
|
43
|
+
* @category Enum
|
|
44
|
+
* @since v5.0.0
|
|
45
|
+
*/
|
|
46
|
+
GetContentHashes = 1,
|
|
47
|
+
/**
|
|
48
|
+
* A message that contains ContentHashes.
|
|
49
|
+
* @category Enum
|
|
50
|
+
* @since v5.0.0
|
|
51
|
+
*/
|
|
52
|
+
ContentHashes = 2,
|
|
53
|
+
/**
|
|
54
|
+
* A message that contains a ContentDiff.
|
|
55
|
+
* @category Enum
|
|
56
|
+
* @since v5.0.0
|
|
57
|
+
*/
|
|
58
|
+
ContentDiff = 3,
|
|
59
|
+
/**
|
|
60
|
+
* A message that is a request to get a TableDiff from another MergeableStore.
|
|
61
|
+
* @category Enum
|
|
62
|
+
* @since v5.0.0
|
|
63
|
+
*/
|
|
64
|
+
GetTableDiff = 4,
|
|
65
|
+
/**
|
|
66
|
+
* A message that is a request to get a RowDiff from another MergeableStore.
|
|
67
|
+
* @category Enum
|
|
68
|
+
* @since v5.0.0
|
|
69
|
+
*/
|
|
70
|
+
GetRowDiff = 5,
|
|
71
|
+
/**
|
|
72
|
+
* A message that is a request to get a CellDiff from another MergeableStore.
|
|
73
|
+
* @category Enum
|
|
74
|
+
* @since v5.0.0
|
|
75
|
+
*/
|
|
76
|
+
GetCellDiff = 6,
|
|
77
|
+
/**
|
|
78
|
+
* A message that is a request to get a ValueDiff from another MergeableStore.
|
|
79
|
+
* @category Enum
|
|
80
|
+
* @since v5.0.0
|
|
81
|
+
*/
|
|
82
|
+
GetValueDiff = 7,
|
|
83
|
+
}
|
|
26
84
|
|
|
27
85
|
/**
|
|
28
|
-
* The Receive type
|
|
86
|
+
* The Receive type describes a function that knows how to handle the arrival of
|
|
87
|
+
* a message as part of the synchronization protocol.
|
|
88
|
+
*
|
|
89
|
+
* When a message arrives (most likely from another system), the function will
|
|
90
|
+
* be called with parameters that indicate where the message came from, and its
|
|
91
|
+
* meaning and content.
|
|
92
|
+
* @param fromClientId The Id of the other client (in other words, the other
|
|
93
|
+
* system) that sent the message.
|
|
94
|
+
* @param requestId The optional Id of the message, which should be returned 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.
|
|
29
100
|
* @category Synchronization
|
|
101
|
+
* @since v5.0.0
|
|
30
102
|
*/
|
|
31
103
|
export type Receive = (
|
|
32
104
|
fromClientId: Id,
|
|
33
105
|
requestId: Id,
|
|
34
|
-
|
|
35
|
-
|
|
106
|
+
message: Message,
|
|
107
|
+
body: any,
|
|
36
108
|
) => void;
|
|
37
109
|
|
|
38
110
|
/**
|
|
39
|
-
* The Send type
|
|
111
|
+
* The Send type describes a function that knows how to dispatch a message as
|
|
112
|
+
* part of the synchronization protocol.
|
|
113
|
+
* @param toClientId The optional Id of the other client (in other words, the
|
|
114
|
+
* other system) to which the message should be sent. If omitted, this is to be
|
|
115
|
+
* a broadcast.
|
|
116
|
+
* @param requestId The optional Id of the message, which should be awaited in
|
|
117
|
+
* the response (if requested) to constitute a matched request/response
|
|
118
|
+
* transaction.
|
|
119
|
+
* @param message A number that indicates the type of the message, according to
|
|
120
|
+
* the Message enum.
|
|
121
|
+
* @param body A message-specific payload.
|
|
40
122
|
* @category Synchronization
|
|
123
|
+
* @since v5.0.0
|
|
41
124
|
*/
|
|
42
125
|
export type Send = (
|
|
43
126
|
toClientId: IdOrNull,
|
|
44
127
|
requestId: Id,
|
|
45
|
-
|
|
46
|
-
|
|
128
|
+
message: Message,
|
|
129
|
+
body: any,
|
|
47
130
|
) => void;
|
|
48
131
|
|
|
49
132
|
/**
|
|
50
|
-
* The SynchronizerStats type
|
|
133
|
+
* The SynchronizerStats type describes the number of times a Synchronizer
|
|
134
|
+
* object has sent or received data.
|
|
135
|
+
*
|
|
136
|
+
* A SynchronizerStats object is returned from the getSynchronizerStats method.
|
|
51
137
|
* @category Development
|
|
138
|
+
* @since v5.0.0
|
|
52
139
|
*/
|
|
53
140
|
export type SynchronizerStats = {
|
|
54
141
|
sends: number;
|
|
@@ -56,31 +143,241 @@ export type SynchronizerStats = {
|
|
|
56
143
|
};
|
|
57
144
|
|
|
58
145
|
/**
|
|
59
|
-
*
|
|
146
|
+
* A Synchronizer object lets you synchronize MergeableStore data with another
|
|
147
|
+
* TinyBase client or system.
|
|
60
148
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
149
|
+
* This is useful for sharing data between users, or between devices of a single
|
|
150
|
+
* user. This is especially valuable when there is the possibility that there
|
|
151
|
+
* has been a lack of immediate connectivity between clients and the
|
|
152
|
+
* synchronization requires some negotiation to orchestrate merging the
|
|
153
|
+
* MergeableStore objects together.
|
|
63
154
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
155
|
+
* Creating a Synchronizer depends on the choice of underlying medium over which
|
|
156
|
+
* the synchronization will take place. Options include the createWsSynchronizer
|
|
157
|
+
* function (for a Synchronizer that will sync over web-sockets), and the
|
|
158
|
+
* createLocalSynchronizer function (for a Synchronizer that will sync two
|
|
159
|
+
* MergeableStore objects in memory on one system). The createCustomSynchronizer
|
|
160
|
+
* function can also be used to easily create a fully customized way to send and
|
|
161
|
+
* receive the messages of the synchronization protocol.
|
|
162
|
+
*
|
|
163
|
+
* Note that, as an interface, it is an extension to the Persister interface,
|
|
164
|
+
* since they share underlying implementations. Think of a Synchronizer as
|
|
165
|
+
* 'persisting' your MergeableStore to another client (and vice-versa).
|
|
166
|
+
* @example
|
|
167
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
168
|
+
* LocalSynchronizer for each, and starts synchronizing them. A change in one
|
|
169
|
+
* becomes evident in the other.
|
|
170
|
+
*
|
|
171
|
+
* ```js
|
|
172
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
173
|
+
* import {createMergeableStore} from 'tinybase';
|
|
174
|
+
*
|
|
175
|
+
* const store1 = createMergeableStore();
|
|
176
|
+
* const store2 = createMergeableStore();
|
|
177
|
+
*
|
|
178
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
179
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
180
|
+
*
|
|
181
|
+
* await synchronizer1.startSync();
|
|
182
|
+
* await synchronizer2.startSync();
|
|
183
|
+
*
|
|
184
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
185
|
+
* // ...
|
|
186
|
+
* console.log(store2.getTables());
|
|
187
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
188
|
+
*
|
|
189
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
190
|
+
* // ...
|
|
191
|
+
* console.log(store1.getTables());
|
|
192
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
193
|
+
*
|
|
194
|
+
* synchronizer1.destroy();
|
|
195
|
+
* synchronizer2.destroy();
|
|
196
|
+
* ```
|
|
66
197
|
* @category Synchronizer
|
|
67
198
|
* @since v5.0.0
|
|
68
199
|
*/
|
|
69
200
|
export interface Synchronizer<Schemas extends OptionalSchemas>
|
|
70
201
|
extends Persister<Schemas, Persists.MergeableStoreOnly> {
|
|
71
202
|
/**
|
|
72
|
-
* The startSync method
|
|
203
|
+
* The startSync method is used to start the process of synchronization
|
|
204
|
+
* between this instance and another matching Synchronizer.
|
|
205
|
+
*
|
|
206
|
+
* This has schema-based typing. The following is a simplified representation:
|
|
207
|
+
*
|
|
208
|
+
* ```ts override
|
|
209
|
+
* startSync(initialContent?: Content): Promise<this>;
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
213
|
+
* Persister framework, and so this startSync method is equivalent to starting
|
|
214
|
+
* both auto-loading (listening to sync messages from other active
|
|
215
|
+
* Synchronizer instances) and auto-saving (sending sync messages to it).
|
|
216
|
+
*
|
|
217
|
+
* This method is asynchronous so you should you `await` calls to this method
|
|
218
|
+
* or handle the return type natively as a Promise.
|
|
219
|
+
* @param initialContent An optional Content object used when no content is
|
|
220
|
+
* available from another other peer Synchronizer instances.
|
|
221
|
+
* @returns A Promise containing a reference to the Synchronizer object.
|
|
222
|
+
* @example
|
|
223
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
224
|
+
* LocalSynchronizer for each, and starts synchronizing them. A change in one
|
|
225
|
+
* becomes evident in the other.
|
|
226
|
+
*
|
|
227
|
+
* ```js
|
|
228
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
229
|
+
* import {createMergeableStore} from 'tinybase';
|
|
230
|
+
*
|
|
231
|
+
* const store1 = createMergeableStore();
|
|
232
|
+
* const store2 = createMergeableStore();
|
|
233
|
+
*
|
|
234
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
235
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
236
|
+
*
|
|
237
|
+
* await synchronizer1.startSync();
|
|
238
|
+
* await synchronizer2.startSync();
|
|
239
|
+
*
|
|
240
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
241
|
+
* // ...
|
|
242
|
+
* console.log(store2.getTables());
|
|
243
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
244
|
+
*
|
|
245
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
246
|
+
* // ...
|
|
247
|
+
* console.log(store1.getTables());
|
|
248
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
249
|
+
*
|
|
250
|
+
* synchronizer1.destroy();
|
|
251
|
+
* synchronizer2.destroy();
|
|
252
|
+
* ```
|
|
253
|
+
* @example
|
|
254
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
255
|
+
* LocalSynchronizer for each, and starts synchronizing them with default
|
|
256
|
+
* content. The default content from the first Synchronizer's startSync method
|
|
257
|
+
* ends up populated in both MergeableStore instances: by the time the second
|
|
258
|
+
* started, the first was available to synchronize with and its default was
|
|
259
|
+
* not needed.
|
|
260
|
+
*
|
|
261
|
+
* ```js
|
|
262
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
263
|
+
* import {createMergeableStore} from 'tinybase';
|
|
264
|
+
*
|
|
265
|
+
* const store1 = createMergeableStore();
|
|
266
|
+
* const store2 = createMergeableStore();
|
|
267
|
+
*
|
|
268
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
269
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
270
|
+
*
|
|
271
|
+
* await synchronizer1.startSync([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
272
|
+
* await synchronizer2.startSync([{pets: {felix: {species: 'cat'}}}, {}]);
|
|
273
|
+
*
|
|
274
|
+
* // ...
|
|
275
|
+
*
|
|
276
|
+
* console.log(store1.getTables());
|
|
277
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
278
|
+
* console.log(store2.getTables());
|
|
279
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
280
|
+
*
|
|
281
|
+
* synchronizer1.destroy();
|
|
282
|
+
* synchronizer2.destroy();
|
|
283
|
+
* ```
|
|
73
284
|
* @category Synchronization
|
|
285
|
+
* @since v5.0.0
|
|
74
286
|
*/
|
|
75
287
|
startSync(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
76
288
|
/**
|
|
77
|
-
* The stopSync method
|
|
289
|
+
* The stopSync method is used to stop the process of synchronization between
|
|
290
|
+
* this instance and another matching Synchronizer.
|
|
291
|
+
*
|
|
292
|
+
* The underlying implementation of a Synchronizer is shared with the
|
|
293
|
+
* Persister framework, and so this startSync method is equivalent to stopping
|
|
294
|
+
* both auto-loading (listening to sync messages from other active
|
|
295
|
+
* Synchronizer instances) and auto-saving (sending sync messages to them).
|
|
296
|
+
* @returns A reference to the Synchronizer object.
|
|
297
|
+
* @example
|
|
298
|
+
* This example creates two empty MergeableStore objects, creates a
|
|
299
|
+
* LocalSynchronizer for each, and starts - then stops - synchronizing them.
|
|
300
|
+
* Subsequent changes are not merged.
|
|
301
|
+
*
|
|
302
|
+
* ```js
|
|
303
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
304
|
+
* import {createMergeableStore} from 'tinybase';
|
|
305
|
+
*
|
|
306
|
+
* const store1 = createMergeableStore();
|
|
307
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
308
|
+
* await synchronizer1.startSync();
|
|
309
|
+
*
|
|
310
|
+
* const store2 = createMergeableStore();
|
|
311
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
312
|
+
* await synchronizer2.startSync();
|
|
313
|
+
*
|
|
314
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
315
|
+
* // ...
|
|
316
|
+
* console.log(store1.getTables());
|
|
317
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
318
|
+
* console.log(store2.getTables());
|
|
319
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
320
|
+
*
|
|
321
|
+
* synchronizer1.stopSync();
|
|
322
|
+
* synchronizer2.stopSync();
|
|
323
|
+
*
|
|
324
|
+
* store1.setCell('pets', 'fido', 'color', 'brown');
|
|
325
|
+
* // ...
|
|
326
|
+
* console.log(store1.getTables());
|
|
327
|
+
* // -> {pets: {fido: {species: 'dog', color: 'brown'}}}
|
|
328
|
+
* console.log(store2.getTables());
|
|
329
|
+
* // -> {pets: {fido: {species: 'dog'}}}
|
|
330
|
+
*
|
|
331
|
+
* synchronizer1.destroy();
|
|
332
|
+
* synchronizer2.destroy();
|
|
333
|
+
* ```
|
|
78
334
|
* @category Synchronization
|
|
335
|
+
* @since v5.0.0
|
|
79
336
|
*/
|
|
80
337
|
stopSync(): this;
|
|
81
338
|
/**
|
|
82
|
-
* The getSynchronizerStats method
|
|
339
|
+
* The getSynchronizerStats method provides a set of statistics about the
|
|
340
|
+
* Synchronizer, and is used for debugging purposes.
|
|
341
|
+
*
|
|
342
|
+
* The SynchronizerStats object contains a count of the number of times the
|
|
343
|
+
* Persister has sent and received messages.
|
|
344
|
+
*
|
|
345
|
+
* The method is intended to be used during development to ensure your
|
|
346
|
+
* synchronization layer is acting as expected, for example.
|
|
347
|
+
* @returns A SynchronizerStats object containing Synchronizer send and
|
|
348
|
+
* receive statistics.
|
|
349
|
+
* @example
|
|
350
|
+
* This example gets the send and receive statistics of two active
|
|
351
|
+
* Synchronizer instances.
|
|
352
|
+
*
|
|
353
|
+
* ```js
|
|
354
|
+
* import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
|
|
355
|
+
* import {createMergeableStore} from 'tinybase';
|
|
356
|
+
*
|
|
357
|
+
* const store1 = createMergeableStore();
|
|
358
|
+
* const store2 = createMergeableStore();
|
|
359
|
+
*
|
|
360
|
+
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
361
|
+
* const synchronizer2 = createLocalSynchronizer(store2);
|
|
362
|
+
*
|
|
363
|
+
* await synchronizer1.startSync();
|
|
364
|
+
* await synchronizer2.startSync();
|
|
365
|
+
*
|
|
366
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
367
|
+
* // ...
|
|
368
|
+
* store2.setRow('pets', 'felix', {species: 'cat'});
|
|
369
|
+
* // ...
|
|
370
|
+
*
|
|
371
|
+
* console.log(synchronizer1.getSynchronizerStats());
|
|
372
|
+
* // -> {receives: 4, sends: 5}
|
|
373
|
+
* console.log(synchronizer2.getSynchronizerStats());
|
|
374
|
+
* // -> {receives: 5, sends: 4}
|
|
375
|
+
*
|
|
376
|
+
* synchronizer1.destroy();
|
|
377
|
+
* synchronizer2.destroy();
|
|
378
|
+
* ```
|
|
83
379
|
* @category Synchronization
|
|
380
|
+
* @since v5.0.0
|
|
84
381
|
*/
|
|
85
382
|
getSynchronizerStats(): SynchronizerStats;
|
|
86
383
|
}
|
|
@@ -95,7 +392,7 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
|
|
|
95
392
|
* createCustomSynchronizer(
|
|
96
393
|
* store: MergeableStore,
|
|
97
394
|
* send: Send,
|
|
98
|
-
*
|
|
395
|
+
* registerReceive: (receive: Receive) => void,
|
|
99
396
|
* destroy: () => void,
|
|
100
397
|
* requestTimeoutSeconds: number,
|
|
101
398
|
* onIgnoredError?: (error: any) => void,
|
|
@@ -104,55 +401,88 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
|
|
|
104
401
|
*
|
|
105
402
|
* As well as providing a reference to the MergeableStore to synchronize, you
|
|
106
403
|
* must provide parameters which identify how to send and receive changes to and
|
|
107
|
-
* from this MergeableStore and its peers.
|
|
404
|
+
* from this MergeableStore and its peers. This is entirely dependent upon the
|
|
405
|
+
* medium of communication used.
|
|
108
406
|
* @param store The MergeableStore to synchronize.
|
|
109
407
|
* @param send A Send function for sending a message.
|
|
110
|
-
* @param
|
|
111
|
-
*
|
|
408
|
+
* @param registerReceive A callback (called once when the Synchronizer is
|
|
409
|
+
* created) that is passed a Receive function that you need to ensure will
|
|
410
|
+
* receive messages addressed or broadcast to this client.
|
|
112
411
|
* @param destroy A function called when destroying the Persister which can be
|
|
113
412
|
* used to clean up underlying resources.
|
|
114
413
|
* @param requestTimeoutSeconds An number of seconds before a request sent from
|
|
115
414
|
* this Persister to another peer times out.
|
|
116
415
|
* @param onIgnoredError An optional handler for the errors that the
|
|
117
|
-
* Synchronizer would otherwise ignore when trying to
|
|
416
|
+
* Synchronizer would otherwise ignore when trying to synchronize data. This is
|
|
118
417
|
* suitable for debugging synchronization issues in a development environment.
|
|
119
418
|
* @returns A reference to the new Synchronizer object.
|
|
120
419
|
* @example
|
|
121
|
-
* This example creates a
|
|
122
|
-
*
|
|
420
|
+
* This example creates a function for creating custom Synchronizer objects via
|
|
421
|
+
* a very naive pair of message buses (which are first-in, first-out). Each
|
|
422
|
+
* Synchronizer can write to the other's bus, and they each poll to read from
|
|
423
|
+
* their own. The example then uses these Synchronizer instances to sync two
|
|
424
|
+
* MergeableStore objects together
|
|
123
425
|
*
|
|
124
426
|
* ```js
|
|
125
|
-
* import {
|
|
126
|
-
*
|
|
427
|
+
* import {
|
|
428
|
+
* createCustomSynchronizer,
|
|
429
|
+
* createMergeableStore,
|
|
430
|
+
* getUniqueId,
|
|
431
|
+
* } from 'tinybase';
|
|
127
432
|
*
|
|
128
|
-
* const
|
|
129
|
-
*
|
|
130
|
-
* });
|
|
131
|
-
* const synchronizer1 = createLocalSynchronizer(store1);
|
|
433
|
+
* const bus1 = [];
|
|
434
|
+
* const bus2 = [];
|
|
132
435
|
*
|
|
133
|
-
* const
|
|
134
|
-
*
|
|
436
|
+
* const createBusSynchronizer = (store, localBus, remoteBus) => {
|
|
437
|
+
* let timer;
|
|
438
|
+
* const clientId = getUniqueId();
|
|
439
|
+
* return createCustomSynchronizer(
|
|
440
|
+
* store,
|
|
441
|
+
* (toClientId, requestId, message, body) => {
|
|
442
|
+
* // send
|
|
443
|
+
* remoteBus.push([clientId, requestId, message, body]);
|
|
444
|
+
* },
|
|
445
|
+
* (receive) => {
|
|
446
|
+
* // registerReceive
|
|
447
|
+
* timer = setInterval(() => {
|
|
448
|
+
* if (localBus.length > 0) {
|
|
449
|
+
* receive(...localBus.shift());
|
|
450
|
+
* }
|
|
451
|
+
* }, 1);
|
|
452
|
+
* },
|
|
453
|
+
* () => clearInterval(timer), // destroy
|
|
454
|
+
* 1,
|
|
455
|
+
* );
|
|
456
|
+
* };
|
|
457
|
+
*
|
|
458
|
+
* const store1 = createMergeableStore();
|
|
459
|
+
* const store2 = createMergeableStore();
|
|
460
|
+
*
|
|
461
|
+
* const synchronizer1 = createBusSynchronizer(store1, bus1, bus2);
|
|
462
|
+
* const synchronizer2 = createBusSynchronizer(store2, bus2, bus1);
|
|
463
|
+
*
|
|
464
|
+
* await synchronizer1.startSync();
|
|
135
465
|
* await synchronizer2.startSync();
|
|
136
466
|
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* // Store2 will be synced with Store1.
|
|
467
|
+
* store1.setTables({pets: {fido: {species: 'dog'}}});
|
|
468
|
+
* store2.setTables({pets: {felix: {species: 'cat'}}});
|
|
140
469
|
*
|
|
470
|
+
* // ...
|
|
471
|
+
* console.log(store1.getTables());
|
|
472
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
141
473
|
* console.log(store2.getTables());
|
|
142
|
-
* // -> {pets: {fido: {species: 'dog'}}}
|
|
143
|
-
*
|
|
144
|
-
* await synchronizer1.load();
|
|
145
|
-
* // Store1 will be synced with Store2.
|
|
474
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
146
475
|
*
|
|
147
476
|
* synchronizer1.destroy();
|
|
148
477
|
* synchronizer2.destroy();
|
|
149
478
|
* ```
|
|
150
479
|
* @category Creation
|
|
480
|
+
* @since v5.0.0
|
|
151
481
|
*/
|
|
152
482
|
export function createCustomSynchronizer<Schemas extends OptionalSchemas>(
|
|
153
483
|
store: MergeableStore<Schemas>,
|
|
154
484
|
send: Send,
|
|
155
|
-
|
|
485
|
+
registerReceive: (receive: Receive) => void,
|
|
156
486
|
destroy: () => void,
|
|
157
487
|
requestTimeoutSeconds: number,
|
|
158
488
|
onIgnoredError?: (error: any) => void,
|
package/@types/tools/index.d.cts
CHANGED
|
@@ -23,28 +23,40 @@ import type {Id} from '../common/index.d.cts';
|
|
|
23
23
|
export type StoreStats = {
|
|
24
24
|
/**
|
|
25
25
|
* The number of Table objects in the Store.
|
|
26
|
+
* @category Stat
|
|
27
|
+
* @since v2.2.0
|
|
26
28
|
*/
|
|
27
29
|
totalTables: number;
|
|
28
30
|
/**
|
|
29
31
|
* The number of Row objects in the Store, across all Table objects.
|
|
32
|
+
* @category Stat
|
|
33
|
+
* @since v2.2.0
|
|
30
34
|
*/
|
|
31
35
|
totalRows: number;
|
|
32
36
|
/**
|
|
33
37
|
* The number of Cell objects in the Store, across all Row objects, across all
|
|
34
38
|
* Table objects.
|
|
39
|
+
* @category Stat
|
|
40
|
+
* @since v2.2.0
|
|
35
41
|
*/
|
|
36
42
|
totalCells: number;
|
|
37
43
|
/**
|
|
38
44
|
* The number of Value objects in the Store, since v3.0.
|
|
45
|
+
* @category Stat
|
|
46
|
+
* @since v2.2.0
|
|
39
47
|
*/
|
|
40
48
|
totalValues: number;
|
|
41
49
|
/**
|
|
42
50
|
* The string length of the Store when serialized to JSON.
|
|
51
|
+
* @category Stat
|
|
52
|
+
* @since v2.2.0
|
|
43
53
|
*/
|
|
44
54
|
jsonLength: number;
|
|
45
55
|
/**
|
|
46
56
|
* Additional detailed statistics about the Store if the `detail` flag is
|
|
47
57
|
* specified in the getStoreStats method.
|
|
58
|
+
* @category Stat
|
|
59
|
+
* @since v2.2.0
|
|
48
60
|
*/
|
|
49
61
|
detail?: StoreStatsDetail;
|
|
50
62
|
};
|
|
@@ -61,6 +73,8 @@ export type StoreStats = {
|
|
|
61
73
|
export type StoreStatsDetail = {
|
|
62
74
|
/**
|
|
63
75
|
* Information about each Table in the Store.
|
|
76
|
+
* @category Stat
|
|
77
|
+
* @since v2.2.0
|
|
64
78
|
*/
|
|
65
79
|
tables: {[tableId: Id]: StoreStatsTableDetail};
|
|
66
80
|
};
|
|
@@ -74,14 +88,20 @@ export type StoreStatsDetail = {
|
|
|
74
88
|
export type StoreStatsTableDetail = {
|
|
75
89
|
/**
|
|
76
90
|
* The number of Row objects in the Table.
|
|
91
|
+
* @category Stat
|
|
92
|
+
* @since v2.2.0
|
|
77
93
|
*/
|
|
78
94
|
tableRows: number;
|
|
79
95
|
/**
|
|
80
96
|
* The number of Cell objects in the Table, across all Row objects.
|
|
97
|
+
* @category Stat
|
|
98
|
+
* @since v2.2.0
|
|
81
99
|
*/
|
|
82
100
|
tableCells: number;
|
|
83
101
|
/**
|
|
84
102
|
* Detail about the Table object.
|
|
103
|
+
* @category Stat
|
|
104
|
+
* @since v2.2.0
|
|
85
105
|
*/
|
|
86
106
|
rows: {[rowId: Id]: StoreStatsRowDetail};
|
|
87
107
|
};
|
|
@@ -95,6 +115,8 @@ export type StoreStatsTableDetail = {
|
|
|
95
115
|
export type StoreStatsRowDetail = {
|
|
96
116
|
/**
|
|
97
117
|
* The number of Cell objects in the Row.
|
|
118
|
+
* @category Stat
|
|
119
|
+
* @since v2.2.0
|
|
98
120
|
*/
|
|
99
121
|
rowCells: number;
|
|
100
122
|
};
|
package/@types/tools/index.d.ts
CHANGED
|
@@ -23,28 +23,40 @@ import type {Id} from '../common/index.d.ts';
|
|
|
23
23
|
export type StoreStats = {
|
|
24
24
|
/**
|
|
25
25
|
* The number of Table objects in the Store.
|
|
26
|
+
* @category Stat
|
|
27
|
+
* @since v2.2.0
|
|
26
28
|
*/
|
|
27
29
|
totalTables: number;
|
|
28
30
|
/**
|
|
29
31
|
* The number of Row objects in the Store, across all Table objects.
|
|
32
|
+
* @category Stat
|
|
33
|
+
* @since v2.2.0
|
|
30
34
|
*/
|
|
31
35
|
totalRows: number;
|
|
32
36
|
/**
|
|
33
37
|
* The number of Cell objects in the Store, across all Row objects, across all
|
|
34
38
|
* Table objects.
|
|
39
|
+
* @category Stat
|
|
40
|
+
* @since v2.2.0
|
|
35
41
|
*/
|
|
36
42
|
totalCells: number;
|
|
37
43
|
/**
|
|
38
44
|
* The number of Value objects in the Store, since v3.0.
|
|
45
|
+
* @category Stat
|
|
46
|
+
* @since v2.2.0
|
|
39
47
|
*/
|
|
40
48
|
totalValues: number;
|
|
41
49
|
/**
|
|
42
50
|
* The string length of the Store when serialized to JSON.
|
|
51
|
+
* @category Stat
|
|
52
|
+
* @since v2.2.0
|
|
43
53
|
*/
|
|
44
54
|
jsonLength: number;
|
|
45
55
|
/**
|
|
46
56
|
* Additional detailed statistics about the Store if the `detail` flag is
|
|
47
57
|
* specified in the getStoreStats method.
|
|
58
|
+
* @category Stat
|
|
59
|
+
* @since v2.2.0
|
|
48
60
|
*/
|
|
49
61
|
detail?: StoreStatsDetail;
|
|
50
62
|
};
|
|
@@ -61,6 +73,8 @@ export type StoreStats = {
|
|
|
61
73
|
export type StoreStatsDetail = {
|
|
62
74
|
/**
|
|
63
75
|
* Information about each Table in the Store.
|
|
76
|
+
* @category Stat
|
|
77
|
+
* @since v2.2.0
|
|
64
78
|
*/
|
|
65
79
|
tables: {[tableId: Id]: StoreStatsTableDetail};
|
|
66
80
|
};
|
|
@@ -74,14 +88,20 @@ export type StoreStatsDetail = {
|
|
|
74
88
|
export type StoreStatsTableDetail = {
|
|
75
89
|
/**
|
|
76
90
|
* The number of Row objects in the Table.
|
|
91
|
+
* @category Stat
|
|
92
|
+
* @since v2.2.0
|
|
77
93
|
*/
|
|
78
94
|
tableRows: number;
|
|
79
95
|
/**
|
|
80
96
|
* The number of Cell objects in the Table, across all Row objects.
|
|
97
|
+
* @category Stat
|
|
98
|
+
* @since v2.2.0
|
|
81
99
|
*/
|
|
82
100
|
tableCells: number;
|
|
83
101
|
/**
|
|
84
102
|
* Detail about the Table object.
|
|
103
|
+
* @category Stat
|
|
104
|
+
* @since v2.2.0
|
|
85
105
|
*/
|
|
86
106
|
rows: {[rowId: Id]: StoreStatsRowDetail};
|
|
87
107
|
};
|
|
@@ -95,6 +115,8 @@ export type StoreStatsTableDetail = {
|
|
|
95
115
|
export type StoreStatsRowDetail = {
|
|
96
116
|
/**
|
|
97
117
|
* The number of Cell objects in the Row.
|
|
118
|
+
* @category Stat
|
|
119
|
+
* @since v2.2.0
|
|
98
120
|
*/
|
|
99
121
|
rowCells: number;
|
|
100
122
|
};
|