tinybase 5.3.7 → 5.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/persisters/index.d.cts +6 -4
- package/@types/persisters/index.d.ts +6 -4
- package/@types/persisters/with-schemas/index.d.cts +6 -4
- package/@types/persisters/with-schemas/index.d.ts +6 -4
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +4 -0
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +4 -0
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +5 -0
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +5 -0
- package/cjs/es6/min/persisters/index.cjs +1 -1
- package/cjs/es6/min/persisters/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-browser/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-browser/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-browser/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-file/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-file/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-indexed-db/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-indexed-db/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-partykit-client/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-pglite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-pglite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-postgres/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-remote/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-remote/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-remote/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/persisters/persister-yjs/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-yjs/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/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 -1
- 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 -1
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/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-inspector/index.cjs +1 -1
- package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
- package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +1 -1
- package/cjs/es6/persisters/persister-automerge/index.cjs +1 -1
- package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-browser/index.cjs +1 -1
- package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-file/index.cjs +1 -1
- package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-indexed-db/index.cjs +1 -1
- package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-partykit-client/index.cjs +1 -1
- package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-pglite/index.cjs +1 -1
- package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-postgres/index.cjs +1 -1
- package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-remote/index.cjs +1 -1
- package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/persister-yjs/index.cjs +1 -1
- package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +1 -1
- package/cjs/es6/persisters/with-schemas/index.cjs +1 -1
- package/cjs/es6/synchronizers/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +51 -42
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +78 -46
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +78 -46
- package/cjs/es6/synchronizers/with-schemas/index.cjs +51 -42
- package/cjs/es6/ui-react-inspector/index.cjs +1 -1
- package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
- package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-browser/index.cjs +1 -1
- package/cjs/min/persisters/persister-browser/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-browser/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-file/index.cjs +1 -1
- package/cjs/min/persisters/persister-file/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-file/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-indexed-db/index.cjs +1 -1
- package/cjs/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-indexed-db/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-partykit-client/index.cjs +1 -1
- package/cjs/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-pglite/index.cjs +1 -1
- package/cjs/min/persisters/persister-pglite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
- package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-postgres/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-remote/index.cjs +1 -1
- package/cjs/min/persisters/persister-remote/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-remote/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/persisters/persister-yjs/index.cjs +1 -1
- package/cjs/min/persisters/persister-yjs/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/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 -1
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-local/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/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-inspector/index.cjs +1 -1
- package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
- package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
- package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +1 -1
- package/cjs/persisters/persister-automerge/index.cjs +1 -1
- package/cjs/persisters/persister-automerge/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-browser/index.cjs +1 -1
- package/cjs/persisters/persister-browser/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-file/index.cjs +1 -1
- package/cjs/persisters/persister-file/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-indexed-db/index.cjs +1 -1
- package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-partykit-client/index.cjs +1 -1
- package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-pglite/index.cjs +1 -1
- package/cjs/persisters/persister-pglite/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-postgres/index.cjs +1 -1
- package/cjs/persisters/persister-postgres/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-remote/index.cjs +1 -1
- package/cjs/persisters/persister-remote/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/persisters/persister-yjs/index.cjs +1 -1
- package/cjs/persisters/persister-yjs/with-schemas/index.cjs +1 -1
- package/cjs/persisters/with-schemas/index.cjs +1 -1
- package/cjs/synchronizers/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-local/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +51 -45
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +78 -49
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +78 -49
- package/cjs/synchronizers/with-schemas/index.cjs +51 -45
- package/cjs/ui-react-inspector/index.cjs +1 -1
- package/cjs/ui-react-inspector/with-schemas/index.cjs +1 -1
- package/es6/min/persisters/index.js +1 -1
- package/es6/min/persisters/index.js.gz +0 -0
- package/es6/min/persisters/persister-automerge/index.js +1 -1
- package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
- package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-browser/index.js +1 -1
- package/es6/min/persisters/persister-browser/index.js.gz +0 -0
- package/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-browser/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-file/index.js +1 -1
- package/es6/min/persisters/persister-file/index.js.gz +0 -0
- package/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-indexed-db/index.js +1 -1
- package/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/es6/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-indexed-db/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-partykit-client/index.js +1 -1
- package/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-pglite/index.js +1 -1
- package/es6/min/persisters/persister-pglite/index.js.gz +0 -0
- package/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-postgres/index.js +1 -1
- package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
- package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-postgres/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-remote/index.js +1 -1
- package/es6/min/persisters/persister-remote/index.js.gz +0 -0
- package/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-remote/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/persisters/persister-yjs/index.js +1 -1
- package/es6/min/persisters/persister-yjs/index.js.gz +0 -0
- package/es6/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/with-schemas/index.js +1 -1
- package/es6/min/persisters/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 -1
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-local/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/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-inspector/index.js +1 -1
- package/es6/min/ui-react-inspector/index.js.gz +0 -0
- package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +1 -1
- package/es6/persisters/persister-automerge/index.js +1 -1
- package/es6/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/es6/persisters/persister-browser/index.js +1 -1
- package/es6/persisters/persister-browser/with-schemas/index.js +1 -1
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/persisters/persister-electric-sql/index.js +1 -1
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/persisters/persister-file/index.js +1 -1
- package/es6/persisters/persister-file/with-schemas/index.js +1 -1
- package/es6/persisters/persister-indexed-db/index.js +1 -1
- package/es6/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/es6/persisters/persister-libsql/index.js +1 -1
- package/es6/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/persisters/persister-partykit-client/index.js +1 -1
- package/es6/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/es6/persisters/persister-pglite/index.js +1 -1
- package/es6/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/es6/persisters/persister-postgres/index.js +1 -1
- package/es6/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/es6/persisters/persister-powersync/index.js +1 -1
- package/es6/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/es6/persisters/persister-remote/index.js +1 -1
- package/es6/persisters/persister-remote/with-schemas/index.js +1 -1
- package/es6/persisters/persister-sqlite-wasm/index.js +1 -1
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/persisters/persister-sqlite3/index.js +1 -1
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/es6/persisters/persister-yjs/index.js +1 -1
- package/es6/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/es6/persisters/with-schemas/index.js +1 -1
- package/es6/synchronizers/index.js +51 -42
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +51 -42
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +51 -42
- package/es6/synchronizers/synchronizer-local/index.js +51 -42
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +51 -42
- package/es6/synchronizers/synchronizer-ws-client/index.js +51 -42
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +51 -42
- package/es6/synchronizers/synchronizer-ws-server/index.js +78 -46
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +78 -46
- package/es6/synchronizers/with-schemas/index.js +51 -42
- package/es6/ui-react-inspector/index.js +1 -1
- package/es6/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/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-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/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-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/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-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/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/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/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 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/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-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/package.json +1 -1
- package/persisters/index.js +1 -1
- package/persisters/persister-automerge/index.js +1 -1
- package/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/persisters/persister-browser/index.js +1 -1
- package/persisters/persister-browser/with-schemas/index.js +1 -1
- package/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/persisters/persister-electric-sql/index.js +1 -1
- package/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/persisters/persister-expo-sqlite/index.js +1 -1
- package/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/persisters/persister-file/index.js +1 -1
- package/persisters/persister-file/with-schemas/index.js +1 -1
- package/persisters/persister-indexed-db/index.js +1 -1
- package/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/persisters/persister-libsql/index.js +1 -1
- package/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/persisters/persister-partykit-client/index.js +1 -1
- package/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/persisters/persister-pglite/index.js +1 -1
- package/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/persisters/persister-postgres/index.js +1 -1
- package/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/persisters/persister-powersync/index.js +1 -1
- package/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/persisters/persister-remote/index.js +1 -1
- package/persisters/persister-remote/with-schemas/index.js +1 -1
- package/persisters/persister-sqlite-wasm/index.js +1 -1
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/persisters/persister-sqlite3/index.js +1 -1
- package/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/persisters/persister-yjs/index.js +1 -1
- package/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/persisters/with-schemas/index.js +1 -1
- package/readme.md +2 -2
- package/synchronizers/index.js +51 -45
- package/synchronizers/synchronizer-broadcast-channel/index.js +51 -45
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +51 -45
- package/synchronizers/synchronizer-local/index.js +51 -45
- package/synchronizers/synchronizer-local/with-schemas/index.js +51 -45
- package/synchronizers/synchronizer-ws-client/index.js +51 -45
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +51 -45
- package/synchronizers/synchronizer-ws-server/index.js +78 -49
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +78 -49
- package/synchronizers/with-schemas/index.js +51 -45
- package/ui-react-inspector/index.js +1 -1
- package/ui-react-inspector/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/index.js +1 -1
- package/umd/es6/min/persisters/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
- package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-browser/index.js +1 -1
- package/umd/es6/min/persisters/persister-browser/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-browser/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-file/index.js +1 -1
- package/umd/es6/min/persisters/persister-file/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-indexed-db/index.js +1 -1
- package/umd/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-indexed-db/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-partykit-client/index.js +1 -1
- package/umd/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-pglite/index.js +1 -1
- package/umd/es6/min/persisters/persister-pglite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
- package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-postgres/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-remote/index.js +1 -1
- package/umd/es6/min/persisters/persister-remote/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-remote/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/persisters/persister-yjs/index.js +1 -1
- package/umd/es6/min/persisters/persister-yjs/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/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 -1
- 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 -1
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-local/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/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-inspector/index.js +1 -1
- package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
- package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +1 -1
- package/umd/es6/persisters/persister-automerge/index.js +1 -1
- package/umd/es6/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-browser/index.js +1 -1
- package/umd/es6/persisters/persister-browser/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-file/index.js +1 -1
- package/umd/es6/persisters/persister-file/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-indexed-db/index.js +1 -1
- package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-partykit-client/index.js +1 -1
- package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-pglite/index.js +1 -1
- package/umd/es6/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-postgres/index.js +1 -1
- package/umd/es6/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-powersync/index.js +1 -1
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-remote/index.js +1 -1
- package/umd/es6/persisters/persister-remote/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-sqlite3/index.js +1 -1
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/es6/persisters/persister-yjs/index.js +1 -1
- package/umd/es6/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/umd/es6/persisters/with-schemas/index.js +1 -1
- package/umd/es6/synchronizers/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-local/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +51 -44
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +78 -48
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +78 -48
- package/umd/es6/synchronizers/with-schemas/index.js +51 -44
- package/umd/es6/ui-react-inspector/index.js +1 -1
- package/umd/es6/ui-react-inspector/with-schemas/index.js +1 -1
- package/umd/min/persisters/index.js +1 -1
- package/umd/min/persisters/index.js.gz +0 -0
- package/umd/min/persisters/persister-automerge/index.js +1 -1
- package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
- package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-browser/index.js +1 -1
- package/umd/min/persisters/persister-browser/index.js.gz +0 -0
- package/umd/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-browser/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-file/index.js +1 -1
- package/umd/min/persisters/persister-file/index.js.gz +0 -0
- package/umd/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-indexed-db/index.js +1 -1
- package/umd/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/umd/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-indexed-db/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-partykit-client/index.js +1 -1
- package/umd/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/umd/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-pglite/index.js +1 -1
- package/umd/min/persisters/persister-pglite/index.js.gz +0 -0
- package/umd/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-postgres/index.js +1 -1
- package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
- package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-postgres/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-remote/index.js +1 -1
- package/umd/min/persisters/persister-remote/index.js.gz +0 -0
- package/umd/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-remote/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/persisters/persister-yjs/index.js +1 -1
- package/umd/min/persisters/persister-yjs/index.js.gz +0 -0
- package/umd/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/with-schemas/index.js +1 -1
- package/umd/min/persisters/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 -1
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-local/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-local/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/synchronizer-ws-server/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/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-inspector/index.js +1 -1
- package/umd/min/ui-react-inspector/index.js.gz +0 -0
- package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +1 -1
- package/umd/persisters/persister-automerge/index.js +1 -1
- package/umd/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/umd/persisters/persister-browser/index.js +1 -1
- package/umd/persisters/persister-browser/with-schemas/index.js +1 -1
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/persisters/persister-electric-sql/index.js +1 -1
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/persisters/persister-file/index.js +1 -1
- package/umd/persisters/persister-file/with-schemas/index.js +1 -1
- package/umd/persisters/persister-indexed-db/index.js +1 -1
- package/umd/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/umd/persisters/persister-libsql/index.js +1 -1
- package/umd/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/persisters/persister-partykit-client/index.js +1 -1
- package/umd/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/umd/persisters/persister-pglite/index.js +1 -1
- package/umd/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/umd/persisters/persister-postgres/index.js +1 -1
- package/umd/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/umd/persisters/persister-powersync/index.js +1 -1
- package/umd/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/persisters/persister-remote/index.js +1 -1
- package/umd/persisters/persister-remote/with-schemas/index.js +1 -1
- package/umd/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/persisters/persister-sqlite3/index.js +1 -1
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/persisters/persister-yjs/index.js +1 -1
- package/umd/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/umd/persisters/with-schemas/index.js +1 -1
- package/umd/synchronizers/index.js +52 -45
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +52 -45
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +52 -45
- package/umd/synchronizers/synchronizer-local/index.js +52 -45
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +52 -45
- package/umd/synchronizers/synchronizer-ws-client/index.js +52 -45
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +52 -45
- package/umd/synchronizers/synchronizer-ws-server/index.js +79 -49
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +79 -49
- package/umd/synchronizers/with-schemas/index.js +52 -45
- package/umd/ui-react-inspector/index.js +1 -1
- package/umd/ui-react-inspector/with-schemas/index.js +1 -1
|
@@ -276,7 +276,7 @@ const createCustomPersister = (
|
|
|
276
276
|
} else if (initialContent) {
|
|
277
277
|
setDefaultContent(initialContent);
|
|
278
278
|
} else {
|
|
279
|
-
errorNew(`Content is not an array ${content}`);
|
|
279
|
+
errorNew(`Content is not an array: ${content}`);
|
|
280
280
|
}
|
|
281
281
|
} catch (error) {
|
|
282
282
|
onIgnoredError?.(error);
|
|
@@ -334,7 +334,7 @@ const createCustomPersister = (
|
|
|
334
334
|
} else if (initialContent) {
|
|
335
335
|
setDefaultContent(initialContent);
|
|
336
336
|
} else {
|
|
337
|
-
errorNew(`Content is not an array ${content}`);
|
|
337
|
+
errorNew(`Content is not an array: ${content}`);
|
|
338
338
|
}
|
|
339
339
|
} catch (error) {
|
|
340
340
|
onIgnoredError?.(error);
|
|
@@ -334,7 +334,7 @@ const createCustomPersister = (
|
|
|
334
334
|
} else if (initialContent) {
|
|
335
335
|
setDefaultContent(initialContent);
|
|
336
336
|
} else {
|
|
337
|
-
errorNew(`Content is not an array ${content}`);
|
|
337
|
+
errorNew(`Content is not an array: ${content}`);
|
|
338
338
|
}
|
|
339
339
|
} catch (error) {
|
|
340
340
|
onIgnoredError?.(error);
|
|
@@ -335,7 +335,7 @@ const createCustomPersister = (
|
|
|
335
335
|
} else if (initialContent) {
|
|
336
336
|
setDefaultContent(initialContent);
|
|
337
337
|
} else {
|
|
338
|
-
errorNew(`Content is not an array ${content}`);
|
|
338
|
+
errorNew(`Content is not an array: ${content}`);
|
|
339
339
|
}
|
|
340
340
|
} catch (error) {
|
|
341
341
|
onIgnoredError?.(error);
|
|
@@ -335,7 +335,7 @@ const createCustomPersister = (
|
|
|
335
335
|
} else if (initialContent) {
|
|
336
336
|
setDefaultContent(initialContent);
|
|
337
337
|
} else {
|
|
338
|
-
errorNew(`Content is not an array ${content}`);
|
|
338
|
+
errorNew(`Content is not an array: ${content}`);
|
|
339
339
|
}
|
|
340
340
|
} catch (error) {
|
|
341
341
|
onIgnoredError?.(error);
|
|
@@ -284,7 +284,7 @@ const createCustomPersister = (
|
|
|
284
284
|
} else if (initialContent) {
|
|
285
285
|
setDefaultContent(initialContent);
|
|
286
286
|
} else {
|
|
287
|
-
errorNew(`Content is not an array ${content}`);
|
|
287
|
+
errorNew(`Content is not an array: ${content}`);
|
|
288
288
|
}
|
|
289
289
|
} catch (error) {
|
|
290
290
|
onIgnoredError?.(error);
|
|
@@ -284,7 +284,7 @@ const createCustomPersister = (
|
|
|
284
284
|
} else if (initialContent) {
|
|
285
285
|
setDefaultContent(initialContent);
|
|
286
286
|
} else {
|
|
287
|
-
errorNew(`Content is not an array ${content}`);
|
|
287
|
+
errorNew(`Content is not an array: ${content}`);
|
|
288
288
|
}
|
|
289
289
|
} catch (error) {
|
|
290
290
|
onIgnoredError?.(error);
|
|
@@ -309,7 +309,7 @@ const createCustomPersister = (
|
|
|
309
309
|
} else if (initialContent) {
|
|
310
310
|
setDefaultContent(initialContent);
|
|
311
311
|
} else {
|
|
312
|
-
errorNew(`Content is not an array ${content}`);
|
|
312
|
+
errorNew(`Content is not an array: ${content}`);
|
|
313
313
|
}
|
|
314
314
|
} catch (error) {
|
|
315
315
|
onIgnoredError?.(error);
|
package/readme.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2></section><p><a href="https://tinybase.org/guides/releases/#v5-3"><em>NEW!</em> v5.3 release</a></p><p><span id="one-with">"Adding some missing APIs!"</span></p><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="it-s-reactive">It's <em>Reactive</em></h2><p>TinyBase lets you <a href="#register-granular-listeners">listen to changes</a> made to any part of your data. This means your app will be fast, since you only spend rendering cycles on things that change. The optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and <a href="#pre-built-reactive-components">pre-built components</a> let you easily build fully reactive UIs on top of TinyBase. You even get a built-in <a href="#set-checkpoints-for-an-undo-stack">undo stack</a>, and <a href="#an-inspector-for-your-data">developer tools</a>!</p></section><section><h2 id="it-s-database-like">It's <em>Database-Like</em></h2><p>Consumer app? Enterprise app? Or even a game? Model <a href="#start-with-a-simple-key-value-store">key-value data</a> and <a href="#level-up-to-use-tabular-data">tabular data</a> with optional typed <a href="#apply-schemas-to-tables-values">schematization</a>, whatever its data structures. There are built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, and tabular <a href="#model-table-relationships">relationships</a> APIs - and a powerful <a href="#build-complex-queries-with-tinyql">query engine</a> to select, join, filter, and group data (reactively!) without SQL.</p></section><section><h2 id="it-synchronizes">It <em>Synchronizes</em></h2><p>TinyBase has <a href="#synchronize-between-devices">native CRDT</a> support, meaning that you can deterministically <a href="https://tinybase.org/guides/synchronization/">synchronize</a> and merge data across multiple sources, clients, and servers. And although TinyBase is an in-memory data store, you can easily <a href="#persist-to-storage-databases-more">persist</a> your data to file, <a href="https://tinybase.org/api/persister-browser">browser storage</a>, <a href="https://tinybase.org/api/persister-indexed-db">IndexedDB</a>, <a href="https://tinybase.org/guides/persistence/database-persistence/">SQLite or PostgreSQL databases</a>, and <a href="https://tinybase.org/guides/persistence/third-party-crdt-persistence/">more</a>.</p></section><section><h2 id="it-s-built-for-a-local-first-world">It's Built For A <em>Local-First</em> World</h2><p>TinyBase works anywhere that JavaScript does, but it's especially great for local-first apps: where data is stored locally on the user's device and that can be run offline. It's tiny by name, tiny by nature: just <a href="#did-we-say-tiny">5.3kB - 11.4kB</a> and with no dependencies - yet <a href="#well-tested-and-documented">100% tested</a>, <a href="https://tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</p></section><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://tinybase.org/react.svg"> React</a></div><div><a href="https://tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/postgresql.svg"> PostgreSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/pglite.svg"> PGlite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/expo.svg"> Expo SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/electric.svg"> ElectricSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/turso.svg"> Turso</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/powersync.svg"> PowerSync</a></div><div><a href="https://tinybase.org/api/persister-partykit-client"><img width="48" src="https://tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://tinybase.org/api/persister-automerge"><img width="48" src="https://tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=GitHub&labelColor=%23d81b60&color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&logo=discord&logoColor=%23fff&label=Discord&labelColor=%233131e8&color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&logo=x&logoColor=%23fff&label=Twitter&labelColor=%23333&color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=Ideas&labelColor=%23d81b60&color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=Issues&labelColor=%23d81b60&color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&logo=jest&logoColor=%23fff&color=%23333&labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.3.
|
|
1
|
+
<section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2></section><p><a href="https://tinybase.org/guides/releases/#v5-3"><em>NEW!</em> v5.3 release</a></p><p><span id="one-with">"Adding some missing APIs!"</span></p><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="it-s-reactive">It's <em>Reactive</em></h2><p>TinyBase lets you <a href="#register-granular-listeners">listen to changes</a> made to any part of your data. This means your app will be fast, since you only spend rendering cycles on things that change. The optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and <a href="#pre-built-reactive-components">pre-built components</a> let you easily build fully reactive UIs on top of TinyBase. You even get a built-in <a href="#set-checkpoints-for-an-undo-stack">undo stack</a>, and <a href="#an-inspector-for-your-data">developer tools</a>!</p></section><section><h2 id="it-s-database-like">It's <em>Database-Like</em></h2><p>Consumer app? Enterprise app? Or even a game? Model <a href="#start-with-a-simple-key-value-store">key-value data</a> and <a href="#level-up-to-use-tabular-data">tabular data</a> with optional typed <a href="#apply-schemas-to-tables-values">schematization</a>, whatever its data structures. There are built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, and tabular <a href="#model-table-relationships">relationships</a> APIs - and a powerful <a href="#build-complex-queries-with-tinyql">query engine</a> to select, join, filter, and group data (reactively!) without SQL.</p></section><section><h2 id="it-synchronizes">It <em>Synchronizes</em></h2><p>TinyBase has <a href="#synchronize-between-devices">native CRDT</a> support, meaning that you can deterministically <a href="https://tinybase.org/guides/synchronization/">synchronize</a> and merge data across multiple sources, clients, and servers. And although TinyBase is an in-memory data store, you can easily <a href="#persist-to-storage-databases-more">persist</a> your data to file, <a href="https://tinybase.org/api/persister-browser">browser storage</a>, <a href="https://tinybase.org/api/persister-indexed-db">IndexedDB</a>, <a href="https://tinybase.org/guides/persistence/database-persistence/">SQLite or PostgreSQL databases</a>, and <a href="https://tinybase.org/guides/persistence/third-party-crdt-persistence/">more</a>.</p></section><section><h2 id="it-s-built-for-a-local-first-world">It's Built For A <em>Local-First</em> World</h2><p>TinyBase works anywhere that JavaScript does, but it's especially great for local-first apps: where data is stored locally on the user's device and that can be run offline. It's tiny by name, tiny by nature: just <a href="#did-we-say-tiny">5.3kB - 11.4kB</a> and with no dependencies - yet <a href="#well-tested-and-documented">100% tested</a>, <a href="https://tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</p></section><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://tinybase.org/react.svg"> React</a></div><div><a href="https://tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/postgresql.svg"> PostgreSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/pglite.svg"> PGlite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/expo.svg"> Expo SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/electric.svg"> ElectricSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/turso.svg"> Turso</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/powersync.svg"> PowerSync</a></div><div><a href="https://tinybase.org/api/persister-partykit-client"><img width="48" src="https://tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://tinybase.org/api/persister-automerge"><img width="48" src="https://tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=GitHub&labelColor=%23d81b60&color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&logo=discord&logoColor=%23fff&label=Discord&labelColor=%233131e8&color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&logo=x&logoColor=%23fff&label=Twitter&labelColor=%23333&color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=Ideas&labelColor=%23d81b60&color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&logo=GitHub&logoColor=%23fff&label=Issues&labelColor=%23d81b60&color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&logo=jest&logoColor=%23fff&color=%23333&labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.3.7" target="_blank"><img src="https://img.shields.io/npm/v/tinybase?style=for-the-badge&logo=npm&logoColor=%23fff&labelColor=%23bd0005&color=%23333"></a></section><hr><section><h2 id="start-with-a-simple-key-value-store">Start with a simple key-value store.</h2><p>Creating a <a href="https://tinybase.org/api/store/interfaces/store/store/"><code>Store</code></a> requires just a simple call to the <a href="https://tinybase.org/api/store/functions/creation/createstore/"><code>createStore</code></a> function. Once you have one, you can easily set <a href="https://tinybase.org/api/store/type-aliases/store/values/"><code>Values</code></a> in it by unique <a href="https://tinybase.org/api/common/type-aliases/identity/id/"><code>Id</code></a>. And of course you can easily get them back out again.</p><p>Read more about using keyed value data in <a href="https://tinybase.org/guides/the-basics/">The Basics</a> guide.</p></section>
|
|
2
2
|
|
|
3
3
|
```js
|
|
4
4
|
import {createStore} from 'tinybase';
|
|
@@ -294,4 +294,4 @@ export const createShop: typeof createShopDecl = () => {
|
|
|
294
294
|
};
|
|
295
295
|
```
|
|
296
296
|
|
|
297
|
-
<section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://tinybase.org/api/store/"><code>store</code></a> module alone, you'll only add a gzipped <em>5.3kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>11.4kB</em>.</p><p>The optional <a href="https://tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just <em>4.9kB</em>, the ui-react-dom components are another <em>2.6kB</em>, and everything is super fast. Life's easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th> </th><th>Minified .js.gz</th><th>Source .js</th></tr><tr><th class="right"><a href="https://tinybase.org/api/store/">tinybase/store</a> (minimal)</th><td>5.3kB</td><td>52.4kB</td></tr><tr><th class="right">tinybase (complete)</th><td>11.4kB</td><td>119.0kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react/">ui-react</a></th><td>4.9kB</td><td>53.5kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react-dom/">ui-react-dom</a></th><td>2.6kB</td><td>20.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,284</td><td>2,284</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,465</td><td>2,465</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>985</td><td>985</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>851</td><td>851</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">7,456</td></tr><tr><th class="right">Assertions</th><td colspan="3">33,181</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/byCedric" target="_blank"><img title="byCedric" src="https://github.com/byCedric.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/mouktardev" target="_blank"><img title="mouktardev" src="https://github.com/mouktardev.png?size=48" width="48" height="48"></a><a href="https://github.com/nickmessing" target="_blank"><img title="nickmessing" src="https://github.com/nickmessing.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/nkzw-tech" target="_blank"><img title="nkzw-tech" src="https://github.com/nkzw-tech.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/primodiumxyz" target="_blank"><img title="primodiumxyz" src="https://github.com/primodiumxyz.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/ViktorZhurbin" target="_blank"><img title="ViktorZhurbin" src="https://github.com/ViktorZhurbin.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://tinybase.org/youtube.webp"></a></section>
|
|
297
|
+
<section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://tinybase.org/api/store/"><code>store</code></a> module alone, you'll only add a gzipped <em>5.3kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>11.4kB</em>.</p><p>The optional <a href="https://tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just <em>4.9kB</em>, the ui-react-dom components are another <em>2.6kB</em>, and everything is super fast. Life's easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th> </th><th>Minified .js.gz</th><th>Source .js</th></tr><tr><th class="right"><a href="https://tinybase.org/api/store/">tinybase/store</a> (minimal)</th><td>5.3kB</td><td>52.4kB</td></tr><tr><th class="right">tinybase (complete)</th><td>11.4kB</td><td>119.0kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react/">ui-react</a></th><td>4.9kB</td><td>53.5kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react-dom/">ui-react-dom</a></th><td>2.6kB</td><td>20.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,284</td><td>2,284</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,465</td><td>2,465</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>985</td><td>985</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>851</td><td>851</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">7,456</td></tr><tr><th class="right">Assertions</th><td colspan="3">33,183</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/byCedric" target="_blank"><img title="byCedric" src="https://github.com/byCedric.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/mouktardev" target="_blank"><img title="mouktardev" src="https://github.com/mouktardev.png?size=48" width="48" height="48"></a><a href="https://github.com/nickmessing" target="_blank"><img title="nickmessing" src="https://github.com/nickmessing.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/nkzw-tech" target="_blank"><img title="nkzw-tech" src="https://github.com/nkzw-tech.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/primodiumxyz" target="_blank"><img title="primodiumxyz" src="https://github.com/primodiumxyz.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/ViktorZhurbin" target="_blank"><img title="ViktorZhurbin" src="https://github.com/ViktorZhurbin.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://tinybase.org/youtube.webp"></a></section>
|
package/synchronizers/index.js
CHANGED
|
@@ -290,7 +290,7 @@ const createCustomPersister = (
|
|
|
290
290
|
} else if (initialContent) {
|
|
291
291
|
setDefaultContent(initialContent);
|
|
292
292
|
} else {
|
|
293
|
-
errorNew(`Content is not an array ${content}`);
|
|
293
|
+
errorNew(`Content is not an array: ${content}`);
|
|
294
294
|
}
|
|
295
295
|
} catch (error) {
|
|
296
296
|
onIgnoredError?.(error);
|
|
@@ -492,62 +492,66 @@ const createCustomSynchronizer = (
|
|
|
492
492
|
otherClientId = null,
|
|
493
493
|
otherContentHashes,
|
|
494
494
|
) => {
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
otherClientId
|
|
498
|
-
1 /* GetContentHashes */,
|
|
499
|
-
);
|
|
500
|
-
}
|
|
501
|
-
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
502
|
-
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
503
|
-
let tablesChanges = stampNewObj();
|
|
504
|
-
if (tablesHash != otherTablesHash) {
|
|
505
|
-
const [newTables, differentTableHashes] = (
|
|
506
|
-
await request(
|
|
495
|
+
try {
|
|
496
|
+
if (isUndefined(otherContentHashes)) {
|
|
497
|
+
[otherContentHashes, otherClientId] = await request(
|
|
507
498
|
otherClientId,
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
499
|
+
1 /* GetContentHashes */,
|
|
500
|
+
);
|
|
501
|
+
}
|
|
502
|
+
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
503
|
+
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
504
|
+
let tablesChanges = stampNewObj();
|
|
505
|
+
if (tablesHash != otherTablesHash) {
|
|
506
|
+
const [newTables, differentTableHashes] = (
|
|
515
507
|
await request(
|
|
516
508
|
otherClientId,
|
|
517
|
-
|
|
518
|
-
store.
|
|
509
|
+
4 /* GetTableDiff */,
|
|
510
|
+
store.getMergeableTableHashes(),
|
|
519
511
|
)
|
|
520
512
|
)[0];
|
|
521
|
-
|
|
522
|
-
if (!objIsEmpty(
|
|
523
|
-
const
|
|
513
|
+
tablesChanges = newTables;
|
|
514
|
+
if (!objIsEmpty(differentTableHashes)) {
|
|
515
|
+
const [newRows, differentRowHashes] = (
|
|
524
516
|
await request(
|
|
525
517
|
otherClientId,
|
|
526
|
-
|
|
527
|
-
store.
|
|
518
|
+
5 /* GetRowDiff */,
|
|
519
|
+
store.getMergeableRowHashes(differentTableHashes),
|
|
528
520
|
)
|
|
529
521
|
)[0];
|
|
530
|
-
mergeTablesStamps(tablesChanges,
|
|
522
|
+
mergeTablesStamps(tablesChanges, newRows);
|
|
523
|
+
if (!objIsEmpty(differentRowHashes)) {
|
|
524
|
+
const newCells = (
|
|
525
|
+
await request(
|
|
526
|
+
otherClientId,
|
|
527
|
+
6 /* GetCellDiff */,
|
|
528
|
+
store.getMergeableCellHashes(differentRowHashes),
|
|
529
|
+
)
|
|
530
|
+
)[0];
|
|
531
|
+
mergeTablesStamps(tablesChanges, newCells);
|
|
532
|
+
}
|
|
531
533
|
}
|
|
532
534
|
}
|
|
535
|
+
return [
|
|
536
|
+
tablesChanges,
|
|
537
|
+
valuesHash == otherValuesHash
|
|
538
|
+
? stampNewObj()
|
|
539
|
+
: (
|
|
540
|
+
await request(
|
|
541
|
+
otherClientId,
|
|
542
|
+
7 /* GetValueDiff */,
|
|
543
|
+
store.getMergeableValueHashes(),
|
|
544
|
+
)
|
|
545
|
+
)[0],
|
|
546
|
+
1,
|
|
547
|
+
];
|
|
548
|
+
} catch (error) {
|
|
549
|
+
onIgnoredError?.(error);
|
|
533
550
|
}
|
|
534
|
-
return [
|
|
535
|
-
tablesChanges,
|
|
536
|
-
valuesHash == otherValuesHash
|
|
537
|
-
? stampNewObj()
|
|
538
|
-
: (
|
|
539
|
-
await request(
|
|
540
|
-
otherClientId,
|
|
541
|
-
7 /* GetValueDiff */,
|
|
542
|
-
store.getMergeableValueHashes(),
|
|
543
|
-
)
|
|
544
|
-
)[0],
|
|
545
|
-
1,
|
|
546
|
-
];
|
|
547
551
|
};
|
|
548
552
|
const getPersisted = async () => {
|
|
549
553
|
const changes = await getChangesFromOtherStore();
|
|
550
|
-
return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
|
|
554
|
+
return changes && (!objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0]))
|
|
551
555
|
? changes
|
|
552
556
|
: void 0;
|
|
553
557
|
};
|
|
@@ -594,9 +598,11 @@ const createCustomSynchronizer = (
|
|
|
594
598
|
0,
|
|
595
599
|
);
|
|
596
600
|
} else if (message == 2 /* ContentHashes */ && persister.isAutoLoading()) {
|
|
597
|
-
getChangesFromOtherStore(fromClientId, body)
|
|
598
|
-
|
|
599
|
-
|
|
601
|
+
getChangesFromOtherStore(fromClientId, body)
|
|
602
|
+
.then((changes) => {
|
|
603
|
+
persisterListener?.(void 0, changes);
|
|
604
|
+
})
|
|
605
|
+
.catch(onIgnoredError);
|
|
600
606
|
} else if (message == 3 /* ContentDiff */ && persister.isAutoLoading()) {
|
|
601
607
|
persisterListener?.(void 0, body);
|
|
602
608
|
} else {
|
|
@@ -290,7 +290,7 @@ const createCustomPersister = (
|
|
|
290
290
|
} else if (initialContent) {
|
|
291
291
|
setDefaultContent(initialContent);
|
|
292
292
|
} else {
|
|
293
|
-
errorNew(`Content is not an array ${content}`);
|
|
293
|
+
errorNew(`Content is not an array: ${content}`);
|
|
294
294
|
}
|
|
295
295
|
} catch (error) {
|
|
296
296
|
onIgnoredError?.(error);
|
|
@@ -482,62 +482,66 @@ const createCustomSynchronizer = (
|
|
|
482
482
|
otherClientId = null,
|
|
483
483
|
otherContentHashes,
|
|
484
484
|
) => {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
otherClientId
|
|
488
|
-
1 /* GetContentHashes */,
|
|
489
|
-
);
|
|
490
|
-
}
|
|
491
|
-
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
492
|
-
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
493
|
-
let tablesChanges = stampNewObj();
|
|
494
|
-
if (tablesHash != otherTablesHash) {
|
|
495
|
-
const [newTables, differentTableHashes] = (
|
|
496
|
-
await request(
|
|
485
|
+
try {
|
|
486
|
+
if (isUndefined(otherContentHashes)) {
|
|
487
|
+
[otherContentHashes, otherClientId] = await request(
|
|
497
488
|
otherClientId,
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
489
|
+
1 /* GetContentHashes */,
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
493
|
+
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
494
|
+
let tablesChanges = stampNewObj();
|
|
495
|
+
if (tablesHash != otherTablesHash) {
|
|
496
|
+
const [newTables, differentTableHashes] = (
|
|
505
497
|
await request(
|
|
506
498
|
otherClientId,
|
|
507
|
-
|
|
508
|
-
store.
|
|
499
|
+
4 /* GetTableDiff */,
|
|
500
|
+
store.getMergeableTableHashes(),
|
|
509
501
|
)
|
|
510
502
|
)[0];
|
|
511
|
-
|
|
512
|
-
if (!objIsEmpty(
|
|
513
|
-
const
|
|
503
|
+
tablesChanges = newTables;
|
|
504
|
+
if (!objIsEmpty(differentTableHashes)) {
|
|
505
|
+
const [newRows, differentRowHashes] = (
|
|
514
506
|
await request(
|
|
515
507
|
otherClientId,
|
|
516
|
-
|
|
517
|
-
store.
|
|
508
|
+
5 /* GetRowDiff */,
|
|
509
|
+
store.getMergeableRowHashes(differentTableHashes),
|
|
518
510
|
)
|
|
519
511
|
)[0];
|
|
520
|
-
mergeTablesStamps(tablesChanges,
|
|
512
|
+
mergeTablesStamps(tablesChanges, newRows);
|
|
513
|
+
if (!objIsEmpty(differentRowHashes)) {
|
|
514
|
+
const newCells = (
|
|
515
|
+
await request(
|
|
516
|
+
otherClientId,
|
|
517
|
+
6 /* GetCellDiff */,
|
|
518
|
+
store.getMergeableCellHashes(differentRowHashes),
|
|
519
|
+
)
|
|
520
|
+
)[0];
|
|
521
|
+
mergeTablesStamps(tablesChanges, newCells);
|
|
522
|
+
}
|
|
521
523
|
}
|
|
522
524
|
}
|
|
525
|
+
return [
|
|
526
|
+
tablesChanges,
|
|
527
|
+
valuesHash == otherValuesHash
|
|
528
|
+
? stampNewObj()
|
|
529
|
+
: (
|
|
530
|
+
await request(
|
|
531
|
+
otherClientId,
|
|
532
|
+
7 /* GetValueDiff */,
|
|
533
|
+
store.getMergeableValueHashes(),
|
|
534
|
+
)
|
|
535
|
+
)[0],
|
|
536
|
+
1,
|
|
537
|
+
];
|
|
538
|
+
} catch (error) {
|
|
539
|
+
onIgnoredError?.(error);
|
|
523
540
|
}
|
|
524
|
-
return [
|
|
525
|
-
tablesChanges,
|
|
526
|
-
valuesHash == otherValuesHash
|
|
527
|
-
? stampNewObj()
|
|
528
|
-
: (
|
|
529
|
-
await request(
|
|
530
|
-
otherClientId,
|
|
531
|
-
7 /* GetValueDiff */,
|
|
532
|
-
store.getMergeableValueHashes(),
|
|
533
|
-
)
|
|
534
|
-
)[0],
|
|
535
|
-
1,
|
|
536
|
-
];
|
|
537
541
|
};
|
|
538
542
|
const getPersisted = async () => {
|
|
539
543
|
const changes = await getChangesFromOtherStore();
|
|
540
|
-
return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
|
|
544
|
+
return changes && (!objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0]))
|
|
541
545
|
? changes
|
|
542
546
|
: void 0;
|
|
543
547
|
};
|
|
@@ -584,9 +588,11 @@ const createCustomSynchronizer = (
|
|
|
584
588
|
0,
|
|
585
589
|
);
|
|
586
590
|
} else if (message == 2 /* ContentHashes */ && persister.isAutoLoading()) {
|
|
587
|
-
getChangesFromOtherStore(fromClientId, body)
|
|
588
|
-
|
|
589
|
-
|
|
591
|
+
getChangesFromOtherStore(fromClientId, body)
|
|
592
|
+
.then((changes) => {
|
|
593
|
+
persisterListener?.(void 0, changes);
|
|
594
|
+
})
|
|
595
|
+
.catch(onIgnoredError);
|
|
590
596
|
} else if (message == 3 /* ContentDiff */ && persister.isAutoLoading()) {
|
|
591
597
|
persisterListener?.(void 0, body);
|
|
592
598
|
} else {
|
|
@@ -290,7 +290,7 @@ const createCustomPersister = (
|
|
|
290
290
|
} else if (initialContent) {
|
|
291
291
|
setDefaultContent(initialContent);
|
|
292
292
|
} else {
|
|
293
|
-
errorNew(`Content is not an array ${content}`);
|
|
293
|
+
errorNew(`Content is not an array: ${content}`);
|
|
294
294
|
}
|
|
295
295
|
} catch (error) {
|
|
296
296
|
onIgnoredError?.(error);
|
|
@@ -482,62 +482,66 @@ const createCustomSynchronizer = (
|
|
|
482
482
|
otherClientId = null,
|
|
483
483
|
otherContentHashes,
|
|
484
484
|
) => {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
otherClientId
|
|
488
|
-
1 /* GetContentHashes */,
|
|
489
|
-
);
|
|
490
|
-
}
|
|
491
|
-
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
492
|
-
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
493
|
-
let tablesChanges = stampNewObj();
|
|
494
|
-
if (tablesHash != otherTablesHash) {
|
|
495
|
-
const [newTables, differentTableHashes] = (
|
|
496
|
-
await request(
|
|
485
|
+
try {
|
|
486
|
+
if (isUndefined(otherContentHashes)) {
|
|
487
|
+
[otherContentHashes, otherClientId] = await request(
|
|
497
488
|
otherClientId,
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
489
|
+
1 /* GetContentHashes */,
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
const [otherTablesHash, otherValuesHash] = otherContentHashes;
|
|
493
|
+
const [tablesHash, valuesHash] = store.getMergeableContentHashes();
|
|
494
|
+
let tablesChanges = stampNewObj();
|
|
495
|
+
if (tablesHash != otherTablesHash) {
|
|
496
|
+
const [newTables, differentTableHashes] = (
|
|
505
497
|
await request(
|
|
506
498
|
otherClientId,
|
|
507
|
-
|
|
508
|
-
store.
|
|
499
|
+
4 /* GetTableDiff */,
|
|
500
|
+
store.getMergeableTableHashes(),
|
|
509
501
|
)
|
|
510
502
|
)[0];
|
|
511
|
-
|
|
512
|
-
if (!objIsEmpty(
|
|
513
|
-
const
|
|
503
|
+
tablesChanges = newTables;
|
|
504
|
+
if (!objIsEmpty(differentTableHashes)) {
|
|
505
|
+
const [newRows, differentRowHashes] = (
|
|
514
506
|
await request(
|
|
515
507
|
otherClientId,
|
|
516
|
-
|
|
517
|
-
store.
|
|
508
|
+
5 /* GetRowDiff */,
|
|
509
|
+
store.getMergeableRowHashes(differentTableHashes),
|
|
518
510
|
)
|
|
519
511
|
)[0];
|
|
520
|
-
mergeTablesStamps(tablesChanges,
|
|
512
|
+
mergeTablesStamps(tablesChanges, newRows);
|
|
513
|
+
if (!objIsEmpty(differentRowHashes)) {
|
|
514
|
+
const newCells = (
|
|
515
|
+
await request(
|
|
516
|
+
otherClientId,
|
|
517
|
+
6 /* GetCellDiff */,
|
|
518
|
+
store.getMergeableCellHashes(differentRowHashes),
|
|
519
|
+
)
|
|
520
|
+
)[0];
|
|
521
|
+
mergeTablesStamps(tablesChanges, newCells);
|
|
522
|
+
}
|
|
521
523
|
}
|
|
522
524
|
}
|
|
525
|
+
return [
|
|
526
|
+
tablesChanges,
|
|
527
|
+
valuesHash == otherValuesHash
|
|
528
|
+
? stampNewObj()
|
|
529
|
+
: (
|
|
530
|
+
await request(
|
|
531
|
+
otherClientId,
|
|
532
|
+
7 /* GetValueDiff */,
|
|
533
|
+
store.getMergeableValueHashes(),
|
|
534
|
+
)
|
|
535
|
+
)[0],
|
|
536
|
+
1,
|
|
537
|
+
];
|
|
538
|
+
} catch (error) {
|
|
539
|
+
onIgnoredError?.(error);
|
|
523
540
|
}
|
|
524
|
-
return [
|
|
525
|
-
tablesChanges,
|
|
526
|
-
valuesHash == otherValuesHash
|
|
527
|
-
? stampNewObj()
|
|
528
|
-
: (
|
|
529
|
-
await request(
|
|
530
|
-
otherClientId,
|
|
531
|
-
7 /* GetValueDiff */,
|
|
532
|
-
store.getMergeableValueHashes(),
|
|
533
|
-
)
|
|
534
|
-
)[0],
|
|
535
|
-
1,
|
|
536
|
-
];
|
|
537
541
|
};
|
|
538
542
|
const getPersisted = async () => {
|
|
539
543
|
const changes = await getChangesFromOtherStore();
|
|
540
|
-
return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
|
|
544
|
+
return changes && (!objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0]))
|
|
541
545
|
? changes
|
|
542
546
|
: void 0;
|
|
543
547
|
};
|
|
@@ -584,9 +588,11 @@ const createCustomSynchronizer = (
|
|
|
584
588
|
0,
|
|
585
589
|
);
|
|
586
590
|
} else if (message == 2 /* ContentHashes */ && persister.isAutoLoading()) {
|
|
587
|
-
getChangesFromOtherStore(fromClientId, body)
|
|
588
|
-
|
|
589
|
-
|
|
591
|
+
getChangesFromOtherStore(fromClientId, body)
|
|
592
|
+
.then((changes) => {
|
|
593
|
+
persisterListener?.(void 0, changes);
|
|
594
|
+
})
|
|
595
|
+
.catch(onIgnoredError);
|
|
590
596
|
} else if (message == 3 /* ContentDiff */ && persister.isAutoLoading()) {
|
|
591
597
|
persisterListener?.(void 0, body);
|
|
592
598
|
} else {
|