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
2
|
* The synchronizer-ws-server module of the TinyBase project lets you create
|
|
3
3
|
* a server that facilitates synchronization between clients.
|
|
4
|
-
* @see
|
|
4
|
+
* @see Synchronization guide
|
|
5
5
|
* @see Todo App v6 (collaboration) demo
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
* @module synchronizer-ws-server
|
|
@@ -13,7 +13,24 @@ import type {GetIdChanges} from '../../../store/with-schemas/index.d.cts';
|
|
|
13
13
|
import type {WebSocketServer} from 'ws';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* The PathIdsListener type
|
|
16
|
+
* The PathIdsListener type describes a function that is used to listen to
|
|
17
|
+
* changes of active paths that a WsServer is handling.
|
|
18
|
+
*
|
|
19
|
+
* A WsServer listens to any path, allowing an app to have the concept of
|
|
20
|
+
* distinct 'rooms' that only certain clients are participating in. As soon as a
|
|
21
|
+
* single client connects to a new path, this listener will be called with a
|
|
22
|
+
* GetIdChanges callback that you can use to determine its Id.
|
|
23
|
+
*
|
|
24
|
+
* When the final client disconnects from a path, it will be called again with a
|
|
25
|
+
* GetIdChanges callback that you can again use to determine its Id.
|
|
26
|
+
*
|
|
27
|
+
* A PathIdsListener is provided when using the addPathIdsListener method. See
|
|
28
|
+
* that method for specific examples.
|
|
29
|
+
* @param wsServer A reference to the WsServer.
|
|
30
|
+
* @param getIdChanges A function that returns information about the path Id
|
|
31
|
+
* change.
|
|
32
|
+
* @category Listener
|
|
33
|
+
* @since v5.0.0
|
|
17
34
|
*/
|
|
18
35
|
export type PathIdsListener<> = (
|
|
19
36
|
wsServer: WsServer,
|
|
@@ -21,7 +38,25 @@ export type PathIdsListener<> = (
|
|
|
21
38
|
) => void;
|
|
22
39
|
|
|
23
40
|
/**
|
|
24
|
-
* The ClientIdsListener type
|
|
41
|
+
* The ClientIdsListener type describes a function that is used to listen to
|
|
42
|
+
* clients joining and leaving the active paths that a WsServer is handling.
|
|
43
|
+
*
|
|
44
|
+
* A WsServer listens to any path, allowing an app to have the concept of
|
|
45
|
+
* distinct 'rooms' that only certain clients are participating in. As soon as a
|
|
46
|
+
* new client connects to a path, this listener will be called with a
|
|
47
|
+
* GetIdChanges callback that you can use to determine its Id.
|
|
48
|
+
*
|
|
49
|
+
* When the client disconnects from a path, it will be called again with a
|
|
50
|
+
* GetIdChanges callback that you can again use to determine its Id.
|
|
51
|
+
*
|
|
52
|
+
* A ClientIdsListener is provided when using the addClientIdsListener method.
|
|
53
|
+
* See that method for specific examples.
|
|
54
|
+
* @param wsServer A reference to the WsServer.
|
|
55
|
+
* @param pathId The path that the client joined or left.
|
|
56
|
+
* @param getIdChanges A function that returns information about the client Id
|
|
57
|
+
* change.
|
|
58
|
+
* @category Listener
|
|
59
|
+
* @since v5.0.0
|
|
25
60
|
*/
|
|
26
61
|
export type ClientIdsListener<> = (
|
|
27
62
|
wsServer: WsServer,
|
|
@@ -30,29 +65,473 @@ export type ClientIdsListener<> = (
|
|
|
30
65
|
) => void;
|
|
31
66
|
|
|
32
67
|
/**
|
|
33
|
-
* The WsServerStats type
|
|
68
|
+
* The WsServerStats type describes the number of paths and clients that are
|
|
69
|
+
* active on the WsServer.
|
|
70
|
+
*
|
|
71
|
+
* A WsServerStats object is returned from the getStats method.
|
|
72
|
+
* @category Development
|
|
73
|
+
* @since v5.0.0
|
|
34
74
|
*/
|
|
35
75
|
export type WsServerStats = {
|
|
76
|
+
/**
|
|
77
|
+
* The number of paths currently being served by the WsServer.
|
|
78
|
+
* @category Stat
|
|
79
|
+
* @since v5.0.0
|
|
80
|
+
*/
|
|
36
81
|
paths: number;
|
|
82
|
+
/**
|
|
83
|
+
* The number of clients currently being served by the WsServer.
|
|
84
|
+
* @category Stat
|
|
85
|
+
* @since v5.0.0
|
|
86
|
+
*/
|
|
37
87
|
clients: number;
|
|
38
88
|
};
|
|
39
89
|
|
|
40
90
|
/**
|
|
41
|
-
* The WsServer interface
|
|
91
|
+
* The WsServer interface represents an object that facilitates synchronization
|
|
92
|
+
* between clients that are using WsSynchronizer instances.
|
|
93
|
+
*
|
|
94
|
+
* You should use the createWsServer function to create a WsServer object.
|
|
95
|
+
* @category Server
|
|
96
|
+
* @since v5.0.0
|
|
42
97
|
*/
|
|
43
98
|
export interface WsServer {
|
|
99
|
+
/**
|
|
100
|
+
* The getWebSocketServer method returns a reference to the WebSocketServer
|
|
101
|
+
* being used for this WsServer.
|
|
102
|
+
* @returns The WebSocketServer reference.
|
|
103
|
+
* @example
|
|
104
|
+
* This example creates a WsServer and then gets the WebSocketServer
|
|
105
|
+
* reference back out again.
|
|
106
|
+
*
|
|
107
|
+
* ```js
|
|
108
|
+
* import {WebSocketServer} from 'ws';
|
|
109
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
110
|
+
*
|
|
111
|
+
* const webSocketServer = new WebSocketServer({port: 8047});
|
|
112
|
+
* const server = createWsServer(webSocketServer);
|
|
113
|
+
*
|
|
114
|
+
* console.log(server.getWebSocketServer() == webSocketServer);
|
|
115
|
+
* // -> true
|
|
116
|
+
*
|
|
117
|
+
* server.destroy();
|
|
118
|
+
* ```
|
|
119
|
+
* @category Getter
|
|
120
|
+
* @since v5.0.0
|
|
121
|
+
*/
|
|
44
122
|
getWebSocketServer: () => WebSocketServer;
|
|
123
|
+
/**
|
|
124
|
+
* The getPathIds method returns the active paths that the WsServer is
|
|
125
|
+
* handling.
|
|
126
|
+
*
|
|
127
|
+
* These will be all the paths that have at least one active client connected
|
|
128
|
+
* to them.
|
|
129
|
+
* @returns An array of the paths that have clients connected to them.
|
|
130
|
+
* @example
|
|
131
|
+
* This example creates a WsServer, sets some clients up to connect
|
|
132
|
+
* to it, and then enumerates the paths being used.
|
|
133
|
+
*
|
|
134
|
+
* ```js
|
|
135
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
136
|
+
* import {createMergeableStore} from 'tinybase';
|
|
137
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
138
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
139
|
+
*
|
|
140
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
141
|
+
* console.log(server.getPathIds());
|
|
142
|
+
* // -> []
|
|
143
|
+
*
|
|
144
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
145
|
+
* createMergeableStore(),
|
|
146
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
147
|
+
* );
|
|
148
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
149
|
+
* createMergeableStore(),
|
|
150
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
151
|
+
* );
|
|
152
|
+
* const synchronizer3 = await createWsSynchronizer(
|
|
153
|
+
* createMergeableStore(),
|
|
154
|
+
* new WebSocket('ws://localhost:8047/roomB'),
|
|
155
|
+
* );
|
|
156
|
+
*
|
|
157
|
+
* console.log(server.getPathIds());
|
|
158
|
+
* // -> ['roomA', 'roomB']
|
|
159
|
+
*
|
|
160
|
+
* synchronizer3.destroy();
|
|
161
|
+
* // ...
|
|
162
|
+
* console.log(server.getPathIds());
|
|
163
|
+
* // -> ['roomA']
|
|
164
|
+
*
|
|
165
|
+
* synchronizer1.destroy();
|
|
166
|
+
* synchronizer2.destroy();
|
|
167
|
+
* server.destroy();
|
|
168
|
+
* ```
|
|
169
|
+
* @category Getter
|
|
170
|
+
* @since v5.0.0
|
|
171
|
+
*/
|
|
45
172
|
getPathIds: () => Ids;
|
|
173
|
+
/**
|
|
174
|
+
* The getClientIds method method returns the active clients that the WsServer
|
|
175
|
+
* is handling for a given path.
|
|
176
|
+
* @returns An array of the clients connected to the given path.
|
|
177
|
+
* @example
|
|
178
|
+
* This example creates a WsServer, sets some clients up to connect
|
|
179
|
+
* to it, and then gets the number of clients on the given paths. (The client
|
|
180
|
+
* Ids themselves are unique, based on the `sec-websocket-key` header.)
|
|
181
|
+
*
|
|
182
|
+
* ```js
|
|
183
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
184
|
+
* import {createMergeableStore} from 'tinybase';
|
|
185
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
186
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
187
|
+
*
|
|
188
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
189
|
+
*
|
|
190
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
191
|
+
* createMergeableStore(),
|
|
192
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
193
|
+
* );
|
|
194
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
195
|
+
* createMergeableStore(),
|
|
196
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
197
|
+
* );
|
|
198
|
+
* const synchronizer3 = await createWsSynchronizer(
|
|
199
|
+
* createMergeableStore(),
|
|
200
|
+
* new WebSocket('ws://localhost:8047/roomB'),
|
|
201
|
+
* );
|
|
202
|
+
*
|
|
203
|
+
* console.log(server.getClientIds('roomA').length);
|
|
204
|
+
* // -> 2
|
|
205
|
+
* console.log(server.getClientIds('roomB').length);
|
|
206
|
+
* // -> 1
|
|
207
|
+
*
|
|
208
|
+
* synchronizer3.destroy();
|
|
209
|
+
* // ...
|
|
210
|
+
* console.log(server.getClientIds('roomB').length);
|
|
211
|
+
* // -> 0
|
|
212
|
+
*
|
|
213
|
+
* synchronizer1.destroy();
|
|
214
|
+
* synchronizer2.destroy();
|
|
215
|
+
* server.destroy();
|
|
216
|
+
* ```
|
|
217
|
+
* @category Getter
|
|
218
|
+
* @since v5.0.0
|
|
219
|
+
*/
|
|
46
220
|
getClientIds: (pathId: Id) => Ids;
|
|
221
|
+
/**
|
|
222
|
+
* The addPathIdsListener method registers a listener function with the
|
|
223
|
+
* WsServer that will be called whenever there is a change in the active paths
|
|
224
|
+
* that a WsServer is handling.
|
|
225
|
+
*
|
|
226
|
+
* The provided listener is a PathIdsListener function, and will be called
|
|
227
|
+
* with a reference to the WsServer and a callback you can use to get
|
|
228
|
+
* information about the change.
|
|
229
|
+
* @param listener The function that will be called whenever the path Ids
|
|
230
|
+
* handled by the WsServer change.
|
|
231
|
+
* @returns A unique Id for the listener that can later be used to remove it.
|
|
232
|
+
* @example
|
|
233
|
+
* This example creates a WsServer, and listens to changes to the active paths
|
|
234
|
+
* when clients connect to and disconnect from it.
|
|
235
|
+
*
|
|
236
|
+
* ```js
|
|
237
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
238
|
+
* import {createMergeableStore} from 'tinybase';
|
|
239
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
240
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
241
|
+
*
|
|
242
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
243
|
+
* const listenerId = server.addPathIdsListener((server, getIdChanges) => {
|
|
244
|
+
* console.log(getIdChanges());
|
|
245
|
+
* console.log(server.getPathIds());
|
|
246
|
+
* });
|
|
247
|
+
*
|
|
248
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
249
|
+
* createMergeableStore(),
|
|
250
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
251
|
+
* );
|
|
252
|
+
* // -> {'roomA': 1}
|
|
253
|
+
* // -> ['roomA']
|
|
254
|
+
*
|
|
255
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
256
|
+
* createMergeableStore(),
|
|
257
|
+
* new WebSocket('ws://localhost:8047/roomB'),
|
|
258
|
+
* );
|
|
259
|
+
* // -> {'roomB': 1}
|
|
260
|
+
* // -> ['roomA', 'roomB']
|
|
261
|
+
*
|
|
262
|
+
* synchronizer1.destroy();
|
|
263
|
+
* // ...
|
|
264
|
+
* // -> {'roomA': -1}
|
|
265
|
+
* // -> ['roomB']
|
|
266
|
+
*
|
|
267
|
+
* synchronizer2.destroy();
|
|
268
|
+
* // ...
|
|
269
|
+
* // -> {'roomB': -1}
|
|
270
|
+
* // -> []
|
|
271
|
+
*
|
|
272
|
+
* server.delListener(listenerId);
|
|
273
|
+
* server.destroy();
|
|
274
|
+
* ```
|
|
275
|
+
* @category Listener
|
|
276
|
+
* @since v5.0.0
|
|
277
|
+
*/
|
|
47
278
|
addPathIdsListener: (listener: PathIdsListener) => Id;
|
|
279
|
+
/**
|
|
280
|
+
* The addClientIdsListener method registers a listener function with the
|
|
281
|
+
* WsServer that will be called whenever there is a change in the clients
|
|
282
|
+
* connected to a path that a WsServer is handling.
|
|
283
|
+
*
|
|
284
|
+
* The provided listener is a ClientIdsListener function, and will be called
|
|
285
|
+
* with a reference to the WsServer, the Id of the path that the client joined
|
|
286
|
+
* or left, and a callback you can use to get information about the change.
|
|
287
|
+
*
|
|
288
|
+
* You can either listen to a single path (by specifying its Id as the
|
|
289
|
+
* method's first parameter) or changes to any path (by providing a `null`
|
|
290
|
+
* wildcard).
|
|
291
|
+
* @param pathId The path to listen to, or `null` as a wildcard.
|
|
292
|
+
* @param listener The function that will be called whenever the client Ids on
|
|
293
|
+
* a path handled by the WsServer change.
|
|
294
|
+
* @returns A unique Id for the listener that can later be used to remove it.
|
|
295
|
+
* @example
|
|
296
|
+
* This example creates a WsServer, and listens to changes to the clients
|
|
297
|
+
* connecting to and disconnecting from a specific path.
|
|
298
|
+
*
|
|
299
|
+
* ```js
|
|
300
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
301
|
+
* import {createMergeableStore} from 'tinybase';
|
|
302
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
303
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
304
|
+
*
|
|
305
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
306
|
+
* const listenerId = server.addClientIdsListener(
|
|
307
|
+
* 'roomA',
|
|
308
|
+
* (server, pathId) => {
|
|
309
|
+
* console.log(
|
|
310
|
+
* `${server.getClientIds(pathId).length} client(s) in roomA`,
|
|
311
|
+
* );
|
|
312
|
+
* },
|
|
313
|
+
* );
|
|
314
|
+
*
|
|
315
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
316
|
+
* createMergeableStore(),
|
|
317
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
318
|
+
* );
|
|
319
|
+
* // -> '1 client(s) in roomA'
|
|
320
|
+
*
|
|
321
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
322
|
+
* createMergeableStore(),
|
|
323
|
+
* new WebSocket('ws://localhost:8047/roomB'),
|
|
324
|
+
* );
|
|
325
|
+
* // The listener is not called.
|
|
326
|
+
*
|
|
327
|
+
* synchronizer1.destroy();
|
|
328
|
+
* // ...
|
|
329
|
+
* // -> '0 client(s) in roomA'
|
|
330
|
+
*
|
|
331
|
+
* synchronizer2.destroy();
|
|
332
|
+
*
|
|
333
|
+
* server.delListener(listenerId);
|
|
334
|
+
* server.destroy();
|
|
335
|
+
* ```
|
|
336
|
+
* @example
|
|
337
|
+
* This example creates a WsServer, and listens to changes to the clients
|
|
338
|
+
* connecting to and disconnecting from any path.
|
|
339
|
+
*
|
|
340
|
+
* ```js
|
|
341
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
342
|
+
* import {createMergeableStore} from 'tinybase';
|
|
343
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
344
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
345
|
+
*
|
|
346
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
347
|
+
* const listenerId = server.addClientIdsListener(null, (server, pathId) => {
|
|
348
|
+
* console.log(
|
|
349
|
+
* `${server.getClientIds(pathId).length} client(s) in ${pathId}`,
|
|
350
|
+
* );
|
|
351
|
+
* });
|
|
352
|
+
*
|
|
353
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
354
|
+
* createMergeableStore(),
|
|
355
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
356
|
+
* );
|
|
357
|
+
* // -> '1 client(s) in roomA'
|
|
358
|
+
*
|
|
359
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
360
|
+
* createMergeableStore(),
|
|
361
|
+
* new WebSocket('ws://localhost:8047/roomB'),
|
|
362
|
+
* );
|
|
363
|
+
* // -> '1 client(s) in roomB'
|
|
364
|
+
*
|
|
365
|
+
* synchronizer1.destroy();
|
|
366
|
+
* // ...
|
|
367
|
+
* // -> '0 client(s) in roomA'
|
|
368
|
+
*
|
|
369
|
+
* synchronizer2.destroy();
|
|
370
|
+
* // ...
|
|
371
|
+
* // -> '0 client(s) in roomB'
|
|
372
|
+
*
|
|
373
|
+
* server.delListener(listenerId);
|
|
374
|
+
* server.destroy();
|
|
375
|
+
* ```
|
|
376
|
+
* @category Listener
|
|
377
|
+
* @since v5.0.0
|
|
378
|
+
*/
|
|
48
379
|
addClientIdsListener: (pathId: IdOrNull, listener: ClientIdsListener) => Id;
|
|
380
|
+
/**
|
|
381
|
+
* The delListener method removes a listener that was previously added to the
|
|
382
|
+
* WsServer.
|
|
383
|
+
*
|
|
384
|
+
* Use the Id returned by whichever method was used to add the listener. Note
|
|
385
|
+
* that the WsServer may re-use this Id for future listeners added to it.
|
|
386
|
+
* @param listenerId The Id of the listener to remove.
|
|
387
|
+
* @returns A reference to the WsServer.
|
|
388
|
+
* @example
|
|
389
|
+
* This example registers a listener to a WsServer and then removes it.
|
|
390
|
+
*
|
|
391
|
+
* ```js
|
|
392
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
393
|
+
* import {createMergeableStore} from 'tinybase';
|
|
394
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
395
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
396
|
+
*
|
|
397
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
398
|
+
* const listenerId = server.addPathIdsListener(() => {
|
|
399
|
+
* console.log('Paths changed');
|
|
400
|
+
* });
|
|
401
|
+
*
|
|
402
|
+
* const synchronizer = await createWsSynchronizer(
|
|
403
|
+
* createMergeableStore(),
|
|
404
|
+
* new WebSocket('ws://localhost:8047/roomA'),
|
|
405
|
+
* );
|
|
406
|
+
* // -> 'Paths changed'
|
|
407
|
+
*
|
|
408
|
+
* server.delListener(listenerId);
|
|
409
|
+
*
|
|
410
|
+
* synchronizer.destroy();
|
|
411
|
+
* // -> undefined
|
|
412
|
+
* // The listener is not called.
|
|
413
|
+
*
|
|
414
|
+
* server.destroy();
|
|
415
|
+
* ```
|
|
416
|
+
* @category Listener
|
|
417
|
+
* @since v5.0.0
|
|
418
|
+
*/
|
|
49
419
|
delListener(listenerId: Id): WsServer;
|
|
420
|
+
/**
|
|
421
|
+
* The getStats method provides a set of statistics about the WsServer, and is
|
|
422
|
+
* used for debugging purposes.
|
|
423
|
+
*
|
|
424
|
+
* The WsServerStats object contains the number of paths and clients that are
|
|
425
|
+
* active on the WsServer and is intended to be used during development.
|
|
426
|
+
* @returns A WsServerStats object containing statistics.
|
|
427
|
+
* @example
|
|
428
|
+
* This example creates a WsServer that facilitates some synchronization,
|
|
429
|
+
* demonstrating the statistics of the paths and clients handled as a result.
|
|
430
|
+
*
|
|
431
|
+
* ```js
|
|
432
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
433
|
+
* import {createMergeableStore} from 'tinybase';
|
|
434
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
435
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
436
|
+
*
|
|
437
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
438
|
+
*
|
|
439
|
+
* const synchronizer1 = await createWsSynchronizer(
|
|
440
|
+
* createMergeableStore(),
|
|
441
|
+
* new WebSocket('ws://localhost:8047'),
|
|
442
|
+
* );
|
|
443
|
+
* const synchronizer2 = await createWsSynchronizer(
|
|
444
|
+
* createMergeableStore(),
|
|
445
|
+
* new WebSocket('ws://localhost:8047'),
|
|
446
|
+
* );
|
|
447
|
+
*
|
|
448
|
+
* console.log(server.getStats());
|
|
449
|
+
* // -> {paths: 1, clients: 2}
|
|
450
|
+
*
|
|
451
|
+
* synchronizer1.destroy();
|
|
452
|
+
* synchronizer2.destroy();
|
|
453
|
+
* server.destroy();
|
|
454
|
+
* ```
|
|
455
|
+
* @category Development
|
|
456
|
+
* @since v5.0.0
|
|
457
|
+
*/
|
|
50
458
|
getStats: () => WsServerStats;
|
|
459
|
+
/**
|
|
460
|
+
* The destroy method provides a way to clean up the server at the end of its
|
|
461
|
+
* use.
|
|
462
|
+
*
|
|
463
|
+
* This closes the underlying WebSocketServer that was provided when the
|
|
464
|
+
* WsServer was created.
|
|
465
|
+
* @example
|
|
466
|
+
* This example creates a WsServer and then destroys it again, closing the
|
|
467
|
+
* underlying WebSocketServer.
|
|
468
|
+
*
|
|
469
|
+
* ```js
|
|
470
|
+
* import {WebSocketServer} from 'ws';
|
|
471
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
472
|
+
*
|
|
473
|
+
* const webSocketServer = new WebSocketServer({port: 8047});
|
|
474
|
+
* webSocketServer.on('close', () => {
|
|
475
|
+
* console.log('WebSocketServer closed');
|
|
476
|
+
* });
|
|
477
|
+
* const server = createWsServer(webSocketServer);
|
|
478
|
+
*
|
|
479
|
+
* server.destroy();
|
|
480
|
+
* // ...
|
|
481
|
+
* // -> 'WebSocketServer closed'
|
|
482
|
+
* ```
|
|
483
|
+
* @category Getter
|
|
484
|
+
* @since v5.0.0
|
|
485
|
+
*/
|
|
51
486
|
destroy: () => void;
|
|
52
487
|
}
|
|
53
488
|
|
|
54
489
|
/**
|
|
55
|
-
* The createWsServer function
|
|
490
|
+
* The createWsServer function creates a WsServer that facilitates
|
|
491
|
+
* synchronization between clients that are using WsSynchronizer instances.
|
|
492
|
+
*
|
|
493
|
+
* This should be run in a server environment, and you must pass in a configured
|
|
494
|
+
* WebSocketServer object in order to create it.
|
|
495
|
+
* @param webSocketServer A WebSocketServer object from your server environment.
|
|
496
|
+
* @returns A reference to the new WsServer object.
|
|
497
|
+
* @example
|
|
498
|
+
* This example creates a WsServer and then destroys it again.
|
|
499
|
+
*
|
|
500
|
+
* ```js
|
|
501
|
+
* import {WebSocketServer} from 'ws';
|
|
502
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
503
|
+
*
|
|
504
|
+
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
505
|
+
* server.destroy();
|
|
506
|
+
* ```
|
|
507
|
+
* @example
|
|
508
|
+
* This example creates a WsServer with a custom listener that displays
|
|
509
|
+
* information about the address of the client that connects to it.
|
|
510
|
+
*
|
|
511
|
+
* ```js
|
|
512
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
513
|
+
* import {createMergeableStore} from 'tinybase';
|
|
514
|
+
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
515
|
+
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
516
|
+
*
|
|
517
|
+
* // On the server:
|
|
518
|
+
* const webSocketServer = new WebSocketServer({port: 8047});
|
|
519
|
+
* webSocketServer.on('connection', (_, request) => {
|
|
520
|
+
* console.log('Client address: ' + request.socket.remoteAddress);
|
|
521
|
+
* });
|
|
522
|
+
* const server = createWsServer(webSocketServer);
|
|
523
|
+
*
|
|
524
|
+
* // On a client:
|
|
525
|
+
* const synchronizer = await createWsSynchronizer(
|
|
526
|
+
* createMergeableStore(),
|
|
527
|
+
* new WebSocket('ws://localhost:8047'),
|
|
528
|
+
* );
|
|
529
|
+
* // -> 'Client address: ::1'
|
|
530
|
+
*
|
|
531
|
+
* synchronizer.destroy();
|
|
532
|
+
* server.destroy();
|
|
533
|
+
* ```
|
|
56
534
|
* @category Creation
|
|
535
|
+
* @since v5.0.0
|
|
57
536
|
*/
|
|
58
|
-
export function createWsServer(
|
|
537
|
+
export function createWsServer(webSocketServer: WebSocketServer): WsServer;
|