tinybase 5.0.0-beta.1 → 5.0.0-beta.10
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/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/cjs/checkpoints.cjs +1 -1
- package/lib/cjs/checkpoints.cjs.gz +0 -0
- package/lib/cjs/indexes.cjs +1 -1
- package/lib/cjs/indexes.cjs.gz +0 -0
- package/lib/cjs/mergeable-store.cjs +1 -0
- package/lib/cjs/mergeable-store.cjs.gz +0 -0
- package/lib/cjs/metrics.cjs +1 -1
- package/lib/cjs/metrics.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-libsql.cjs +1 -0
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/relationships.cjs +1 -1
- package/lib/cjs/relationships.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs/synchronizers.cjs +1 -0
- package/lib/cjs/synchronizers.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/checkpoints.cjs +1 -1
- package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
- package/lib/cjs-es6/indexes.cjs +1 -1
- package/lib/cjs-es6/indexes.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -0
- package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
- package/lib/cjs-es6/metrics.cjs +1 -1
- package/lib/cjs-es6/metrics.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/relationships.cjs +1 -1
- package/lib/cjs-es6/relationships.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers.cjs +1 -0
- package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/checkpoints.js +3 -1
- package/lib/debug/indexes.js +3 -1
- package/lib/debug/mergeable-store.js +2230 -0
- package/lib/debug/metrics.js +3 -1
- package/lib/debug/persisters/persister-automerge.js +110 -86
- package/lib/debug/persisters/persister-browser.js +94 -57
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +168 -106
- package/lib/debug/persisters/persister-electric-sql.js +168 -106
- package/lib/debug/persisters/persister-expo-sqlite-next.js +168 -106
- package/lib/debug/persisters/persister-expo-sqlite.js +168 -106
- package/lib/debug/persisters/persister-file.js +93 -57
- package/lib/debug/persisters/persister-indexed-db.js +90 -56
- package/lib/debug/persisters/persister-libsql.js +913 -0
- package/lib/debug/persisters/persister-partykit-client.js +89 -59
- package/lib/debug/persisters/persister-partykit-server.js +17 -25
- package/lib/debug/persisters/persister-powersync.js +928 -0
- package/lib/debug/persisters/persister-remote.js +85 -53
- package/lib/debug/persisters/persister-sqlite-wasm.js +168 -106
- package/lib/debug/persisters/persister-sqlite3.js +168 -106
- package/lib/debug/persisters/persister-yjs.js +108 -83
- package/lib/debug/persisters.js +81 -50
- package/lib/debug/queries.js +9 -6
- package/lib/debug/relationships.js +3 -1
- package/lib/debug/store.js +147 -126
- package/lib/debug/synchronizers/synchronizer-local.js +559 -0
- package/lib/debug/synchronizers/synchronizer-ws-client.js +586 -0
- package/lib/debug/synchronizers/synchronizer-ws-server.js +96 -0
- package/lib/debug/synchronizers.js +519 -0
- package/lib/debug/tinybase.js +1027 -174
- package/lib/debug/tools.js +22 -21
- package/lib/debug/ui-react-dom.js +275 -213
- package/lib/debug/ui-react.js +55 -6
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/indexes.js +1 -1
- package/lib/es6/indexes.js.gz +0 -0
- package/lib/es6/mergeable-store.js +1 -0
- package/lib/es6/mergeable-store.js.gz +0 -0
- package/lib/es6/metrics.js +1 -1
- package/lib/es6/metrics.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-libsql.js +1 -0
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -0
- package/lib/es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/relationships.js +1 -1
- package/lib/es6/relationships.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/es6/synchronizers.js +1 -0
- package/lib/es6/synchronizers.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/mergeable-store.js +1 -0
- package/lib/mergeable-store.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-libsql.js +1 -0
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -0
- package/lib/persisters/persister-powersync.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/synchronizers/synchronizer-local.js +1 -0
- package/lib/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/synchronizers.js +1 -0
- package/lib/synchronizers.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/checkpoints.d.ts +2 -2
- package/lib/types/indexes.d.ts +2 -2
- package/lib/types/mergeable-store.d.ts +214 -0
- package/lib/types/metrics.d.ts +2 -2
- package/lib/types/persisters/persister-automerge.d.ts +11 -7
- package/lib/types/persisters/persister-browser.d.ts +13 -4
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
- package/lib/types/persisters/persister-file.d.ts +7 -2
- package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
- package/lib/types/persisters/persister-libsql.d.ts +142 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
- package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
- package/lib/types/persisters/persister-powersync.d.ts +157 -0
- package/lib/types/persisters/persister-remote.d.ts +4 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
- package/lib/types/persisters/persister-yjs.d.ts +6 -2
- package/lib/types/persisters.d.ts +125 -48
- package/lib/types/queries.d.ts +2 -2
- package/lib/types/relationships.d.ts +2 -2
- package/lib/types/store.d.ts +275 -187
- package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
- package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +36 -0
- package/lib/types/synchronizers.d.ts +132 -0
- package/lib/types/tinybase.d.ts +10 -8
- package/lib/types/tools.d.ts +4 -4
- package/lib/types/ui-react.d.ts +160 -9
- package/lib/types/with-schemas/checkpoints.d.ts +2 -2
- package/lib/types/with-schemas/indexes.d.ts +2 -2
- package/lib/types/with-schemas/internal/store.d.ts +4 -0
- package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
- package/lib/types/with-schemas/metrics.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
- package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
- package/lib/types/with-schemas/persisters.d.ts +161 -101
- package/lib/types/with-schemas/queries.d.ts +3 -3
- package/lib/types/with-schemas/relationships.d.ts +2 -2
- package/lib/types/with-schemas/store.d.ts +483 -345
- package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +36 -0
- package/lib/types/with-schemas/synchronizers.d.ts +146 -0
- package/lib/types/with-schemas/tinybase.d.ts +9 -8
- package/lib/types/with-schemas/tools.d.ts +4 -4
- package/lib/types/with-schemas/ui-react.d.ts +177 -9
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -0
- package/lib/umd/mergeable-store.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-libsql.js +1 -0
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -0
- package/lib/umd/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd/synchronizers.js +1 -0
- package/lib/umd/synchronizers.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/indexes.js +1 -1
- package/lib/umd-es6/indexes.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -0
- package/lib/umd-es6/mergeable-store.js.gz +0 -0
- package/lib/umd-es6/metrics.js +1 -1
- package/lib/umd-es6/metrics.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-libsql.js +1 -0
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -0
- package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/relationships.js +1 -1
- package/lib/umd-es6/relationships.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd-es6/synchronizers.js +1 -0
- package/lib/umd-es6/synchronizers.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +65 -45
- package/readme.md +2 -2
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mergeable-store module
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @module mergeable-store
|
|
5
|
+
* @since v5.0.0
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
CellIdFromSchema,
|
|
10
|
+
TableIdFromSchema,
|
|
11
|
+
ValueIdFromSchema,
|
|
12
|
+
} from './internal/store';
|
|
13
|
+
import {
|
|
14
|
+
CellOrUndefined,
|
|
15
|
+
Content,
|
|
16
|
+
NoSchemas,
|
|
17
|
+
NoTablesSchema,
|
|
18
|
+
NoValuesSchema,
|
|
19
|
+
OptionalSchemas,
|
|
20
|
+
OptionalTablesSchema,
|
|
21
|
+
OptionalValuesSchema,
|
|
22
|
+
Store,
|
|
23
|
+
TablesSchema,
|
|
24
|
+
ValueOrUndefined,
|
|
25
|
+
ValuesSchema,
|
|
26
|
+
} from './store.d.ts';
|
|
27
|
+
import {Id} from './common';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The Hash type
|
|
31
|
+
* @category Stamps
|
|
32
|
+
*/
|
|
33
|
+
export type Hash = number;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The Time type
|
|
37
|
+
* @category Stamps
|
|
38
|
+
*/
|
|
39
|
+
export type Time = string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The Stamp type
|
|
43
|
+
* @category Stamps
|
|
44
|
+
*/
|
|
45
|
+
export type Stamp<Thing, Hashed extends boolean = false> = Hashed extends true
|
|
46
|
+
? [thing: Thing, time: Time, hash: Hash]
|
|
47
|
+
: [thing: Thing, time?: Time];
|
|
48
|
+
|
|
49
|
+
// ContentHashes
|
|
50
|
+
export type ContentHashes = [tablesHash: Hash, valuesHash: Hash];
|
|
51
|
+
|
|
52
|
+
// TablesStamp
|
|
53
|
+
export type TablesStamp<
|
|
54
|
+
Schema extends OptionalTablesSchema,
|
|
55
|
+
Hashed extends boolean = false,
|
|
56
|
+
> = Stamp<
|
|
57
|
+
{
|
|
58
|
+
[TableId in TableIdFromSchema<Schema>]?: TableStamp<
|
|
59
|
+
Schema,
|
|
60
|
+
TableId,
|
|
61
|
+
Hashed
|
|
62
|
+
>;
|
|
63
|
+
},
|
|
64
|
+
Hashed
|
|
65
|
+
>;
|
|
66
|
+
|
|
67
|
+
// TableHashes
|
|
68
|
+
export type TableHashes<Schema extends OptionalTablesSchema> = {
|
|
69
|
+
[TableId in TableIdFromSchema<Schema>]?: Hash;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// TableStamp
|
|
73
|
+
export type TableStamp<
|
|
74
|
+
Schema extends OptionalTablesSchema,
|
|
75
|
+
TableId extends TableIdFromSchema<Schema>,
|
|
76
|
+
Hashed extends boolean = false,
|
|
77
|
+
> = Stamp<{[rowId: Id]: RowStamp<Schema, TableId, Hashed>}, Hashed>;
|
|
78
|
+
|
|
79
|
+
// RowHashes
|
|
80
|
+
export type RowHashes<Schema extends OptionalTablesSchema> = {
|
|
81
|
+
[TableId in TableIdFromSchema<Schema>]?: {[rowId: Id]: Hash};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// RowStamp
|
|
85
|
+
export type RowStamp<
|
|
86
|
+
Schema extends OptionalTablesSchema,
|
|
87
|
+
TableId extends TableIdFromSchema<Schema>,
|
|
88
|
+
Hashed extends boolean = false,
|
|
89
|
+
> = Stamp<
|
|
90
|
+
{
|
|
91
|
+
[CellId in CellIdFromSchema<Schema, TableId>]?: CellStamp<
|
|
92
|
+
Schema,
|
|
93
|
+
TableId,
|
|
94
|
+
CellId,
|
|
95
|
+
Hashed
|
|
96
|
+
>;
|
|
97
|
+
},
|
|
98
|
+
Hashed
|
|
99
|
+
>;
|
|
100
|
+
|
|
101
|
+
// CellHashes
|
|
102
|
+
export type CellHashes<Schema extends OptionalTablesSchema> = {
|
|
103
|
+
[TableId in TableIdFromSchema<Schema>]?: {
|
|
104
|
+
[rowId: Id]: {[CellId in CellIdFromSchema<Schema, TableId>]?: Hash};
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// CellStamp
|
|
109
|
+
export type CellStamp<
|
|
110
|
+
Schema extends OptionalTablesSchema,
|
|
111
|
+
TableId extends TableIdFromSchema<Schema>,
|
|
112
|
+
CellId extends CellIdFromSchema<Schema, TableId>,
|
|
113
|
+
Hashed extends boolean = false,
|
|
114
|
+
> = Stamp<CellOrUndefined<Schema, TableId, CellId>, Hashed>;
|
|
115
|
+
|
|
116
|
+
// ValuesStamp
|
|
117
|
+
export type ValuesStamp<
|
|
118
|
+
Schema extends OptionalValuesSchema,
|
|
119
|
+
Hashed extends boolean = false,
|
|
120
|
+
> = Stamp<
|
|
121
|
+
{
|
|
122
|
+
[ValueId in ValueIdFromSchema<Schema>]?: ValueStamp<
|
|
123
|
+
Schema,
|
|
124
|
+
ValueId,
|
|
125
|
+
Hashed
|
|
126
|
+
>;
|
|
127
|
+
},
|
|
128
|
+
Hashed
|
|
129
|
+
>;
|
|
130
|
+
|
|
131
|
+
// ValuesHashes
|
|
132
|
+
export type ValuesHashes<Schema extends OptionalValuesSchema> = {
|
|
133
|
+
[ValueId in ValueIdFromSchema<Schema>]?: Hash;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// ValueStamp
|
|
137
|
+
export type ValueStamp<
|
|
138
|
+
Schema extends OptionalValuesSchema,
|
|
139
|
+
ValueId extends ValueIdFromSchema<Schema>,
|
|
140
|
+
Hashed extends boolean = false,
|
|
141
|
+
> = Stamp<ValueOrUndefined<Schema, ValueId>, Hashed>;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The MergeableContent type
|
|
145
|
+
* @category Mergeable
|
|
146
|
+
*/
|
|
147
|
+
export type MergeableContent<Schemas extends OptionalSchemas> = [
|
|
148
|
+
mergeableTables: TablesStamp<Schemas[0], true>,
|
|
149
|
+
mergeableValues: ValuesStamp<Schemas[1], true>,
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* The MergeableChanges type
|
|
154
|
+
* @category Mergeable
|
|
155
|
+
*/
|
|
156
|
+
export type MergeableChanges<Schemas extends OptionalSchemas> = [
|
|
157
|
+
mergeableTables: TablesStamp<Schemas[0]>,
|
|
158
|
+
mergeableValues: ValuesStamp<Schemas[1]>,
|
|
159
|
+
isChanges: 1,
|
|
160
|
+
];
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The MergeableStore type
|
|
164
|
+
* @category Mergeable
|
|
165
|
+
*/
|
|
166
|
+
export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
167
|
+
extends Store<Schemas> {
|
|
168
|
+
//
|
|
169
|
+
/**
|
|
170
|
+
* The getId method
|
|
171
|
+
* @category Getter
|
|
172
|
+
*/
|
|
173
|
+
getId(): Id;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* The getMergeableContent method
|
|
177
|
+
* @category Getter
|
|
178
|
+
*/
|
|
179
|
+
getMergeableContent(): MergeableContent<Schemas>;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* The getMergeableContentHashes method
|
|
183
|
+
* @category Syncing
|
|
184
|
+
*/
|
|
185
|
+
getMergeableContentHashes(): ContentHashes;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* The getMergeableTableHashes method
|
|
189
|
+
* @category Syncing
|
|
190
|
+
*/
|
|
191
|
+
getMergeableTableHashes(): TableHashes<Schemas[0]>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* The getMergeableTableDiff method
|
|
195
|
+
* @category Syncing
|
|
196
|
+
*/
|
|
197
|
+
getMergeableTableDiff(
|
|
198
|
+
relativeTo: TableHashes<Schemas[0]>,
|
|
199
|
+
): [
|
|
200
|
+
newTables: TablesStamp<Schemas[0]>,
|
|
201
|
+
differentTableHashes: TableHashes<Schemas[0]>,
|
|
202
|
+
];
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* The getMergeableRowHashes method
|
|
206
|
+
* @category Syncing
|
|
207
|
+
*/
|
|
208
|
+
getMergeableRowHashes(
|
|
209
|
+
otherTableHashes: TableHashes<Schemas[0]>,
|
|
210
|
+
): RowHashes<Schemas[0]>;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* The getMergeableRowDiff method
|
|
214
|
+
* @category Syncing
|
|
215
|
+
*/
|
|
216
|
+
getMergeableRowDiff(
|
|
217
|
+
otherTableRowHashes: RowHashes<Schemas[0]>,
|
|
218
|
+
): [
|
|
219
|
+
newRows: TablesStamp<Schemas[0]>,
|
|
220
|
+
differentRowHashes: RowHashes<Schemas[0]>,
|
|
221
|
+
];
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* The getMergeableCellHashes method
|
|
225
|
+
* @category Syncing
|
|
226
|
+
*/
|
|
227
|
+
getMergeableCellHashes(
|
|
228
|
+
otherTableRowHashes: RowHashes<Schemas[0]>,
|
|
229
|
+
): CellHashes<Schemas[0]>;
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* The getMergeableCellDiff method
|
|
233
|
+
* @category Syncing
|
|
234
|
+
*/
|
|
235
|
+
getMergeableCellDiff(
|
|
236
|
+
otherTableRowCellHashes: CellHashes<Schemas[0]>,
|
|
237
|
+
): TablesStamp<Schemas[0]>;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* The getMergeableValuesHashes method
|
|
241
|
+
* @category Syncing
|
|
242
|
+
*/
|
|
243
|
+
getMergeableValuesHashes(): ValuesHashes<Schemas[1]>;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* The getMergeableValueDiff method
|
|
247
|
+
* @category Syncing
|
|
248
|
+
*/
|
|
249
|
+
getMergeableValueDiff(
|
|
250
|
+
relativeTo: ValuesHashes<Schemas[1]>,
|
|
251
|
+
): ValuesStamp<Schemas[1]>;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* The setMergeableContent method
|
|
255
|
+
* @category Setter
|
|
256
|
+
*/
|
|
257
|
+
setMergeableContent(
|
|
258
|
+
mergeableContent: MergeableContent<Schemas>,
|
|
259
|
+
): MergeableStore<Schemas>;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* The setDefaultContent method
|
|
263
|
+
* @category Setter
|
|
264
|
+
*/
|
|
265
|
+
setDefaultContent(content: Content<Schemas>): MergeableStore<Schemas>;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* The getTransactionMergeableChanges method
|
|
269
|
+
* @category Getter
|
|
270
|
+
*/
|
|
271
|
+
getTransactionMergeableChanges(): MergeableChanges<Schemas>;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* The applyMergeableChanges method
|
|
275
|
+
* @category Setter
|
|
276
|
+
*/
|
|
277
|
+
applyMergeableChanges(
|
|
278
|
+
mergeableChanges: MergeableChanges<Schemas> | MergeableContent<Schemas>,
|
|
279
|
+
): MergeableStore<Schemas>;
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* The merge method
|
|
283
|
+
* @category Setter
|
|
284
|
+
*/
|
|
285
|
+
merge(mergeableStore: MergeableStore<Schemas>): MergeableStore<Schemas>;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* The setTablesSchema method lets you specify the TablesSchema of the tabular
|
|
289
|
+
* part of the Store.
|
|
290
|
+
*
|
|
291
|
+
* Note that this may result in a change to data in the Store, as defaults are
|
|
292
|
+
* applied or as invalid Table, Row, or Cell objects are removed. These
|
|
293
|
+
* changes will fire any listeners to that data, as expected.
|
|
294
|
+
*
|
|
295
|
+
* When no longer needed, you can also completely remove an existing
|
|
296
|
+
* TablesSchema with the delTablesSchema method.
|
|
297
|
+
* @param tablesSchema The TablesSchema to be set for the Store.
|
|
298
|
+
* @returns A reference to the Store.
|
|
299
|
+
* @example
|
|
300
|
+
* This example sets the TablesSchema of a Store after it has been created.
|
|
301
|
+
*
|
|
302
|
+
* ```js
|
|
303
|
+
* const store = createStore().setTablesSchema({
|
|
304
|
+
* pets: {
|
|
305
|
+
* species: {type: 'string'},
|
|
306
|
+
* sold: {type: 'boolean', default: false},
|
|
307
|
+
* },
|
|
308
|
+
* });
|
|
309
|
+
* store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
|
|
310
|
+
*
|
|
311
|
+
* console.log(store.getTables());
|
|
312
|
+
* // -> {pets: {0: {species: 'dog', sold: false}}}
|
|
313
|
+
* ```
|
|
314
|
+
* @category Setter
|
|
315
|
+
* @since v3.0.0
|
|
316
|
+
*/
|
|
317
|
+
setTablesSchema<TS extends TablesSchema>(
|
|
318
|
+
tablesSchema: TS,
|
|
319
|
+
): MergeableStore<[typeof tablesSchema, Schemas[1]]>;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* The setValuesSchema method lets you specify the ValuesSchema of the keyed
|
|
323
|
+
* Values part of the Store.
|
|
324
|
+
*
|
|
325
|
+
* Note that this may result in a change to data in the Store, as defaults are
|
|
326
|
+
* applied or as invalid Values are removed. These changes will fire any
|
|
327
|
+
* listeners to that data, as expected.
|
|
328
|
+
*
|
|
329
|
+
* When no longer needed, you can also completely remove an existing
|
|
330
|
+
* ValuesSchema with the delValuesSchema method.
|
|
331
|
+
* @param valuesSchema The ValuesSchema to be set for the Store.
|
|
332
|
+
* @returns A reference to the Store.
|
|
333
|
+
* @example
|
|
334
|
+
* This example sets the ValuesSchema of a Store after it has been created.
|
|
335
|
+
*
|
|
336
|
+
* ```js
|
|
337
|
+
* const store = createStore().setValuesSchema({
|
|
338
|
+
* open: {type: 'boolean', default: false},
|
|
339
|
+
* });
|
|
340
|
+
* store.setValue('open', 'maybe');
|
|
341
|
+
*
|
|
342
|
+
* console.log(store.getValues());
|
|
343
|
+
* // -> {open: false}
|
|
344
|
+
* ```
|
|
345
|
+
* @category Setter
|
|
346
|
+
* @since v3.0.0
|
|
347
|
+
*/
|
|
348
|
+
setValuesSchema<VS extends ValuesSchema>(
|
|
349
|
+
valuesSchema: VS,
|
|
350
|
+
): MergeableStore<[Schemas[0], typeof valuesSchema]>;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* The setSchema method lets you specify the TablesSchema and ValuesSchema of
|
|
354
|
+
* the Store.
|
|
355
|
+
*
|
|
356
|
+
* Note that this may result in a change to data in the Store, as defaults are
|
|
357
|
+
* applied or as invalid Table, Row, Cell, or Value objects are removed. These
|
|
358
|
+
* changes will fire any listeners to that data, as expected.
|
|
359
|
+
*
|
|
360
|
+
* From v3.0 onwards, this method takes two arguments. The first is the
|
|
361
|
+
* TablesSchema object, the second the ValuesSchema. In previous versions
|
|
362
|
+
* (before the existence of the ValuesSchema data structure), only the first
|
|
363
|
+
* was present. For backwards compatibility the new second parameter is
|
|
364
|
+
* optional.
|
|
365
|
+
* @param tablesSchema The TablesSchema to be set for the Store.
|
|
366
|
+
* @param valuesSchema The ValuesSchema to be set for the Store.
|
|
367
|
+
* @returns A reference to the Store.
|
|
368
|
+
* @example
|
|
369
|
+
* This example sets the TablesSchema and ValuesSchema of a Store after it has
|
|
370
|
+
* been created.
|
|
371
|
+
*
|
|
372
|
+
* ```js
|
|
373
|
+
* const store = createStore().setSchema(
|
|
374
|
+
* {
|
|
375
|
+
* pets: {
|
|
376
|
+
* species: {type: 'string'},
|
|
377
|
+
* sold: {type: 'boolean', default: false},
|
|
378
|
+
* },
|
|
379
|
+
* },
|
|
380
|
+
* {open: {type: 'boolean', default: false}},
|
|
381
|
+
* );
|
|
382
|
+
* store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
|
|
383
|
+
* store.setValue('open', 'maybe');
|
|
384
|
+
*
|
|
385
|
+
* console.log(store.getTables());
|
|
386
|
+
* // -> {pets: {0: {species: 'dog', sold: false}}}
|
|
387
|
+
* console.log(store.getValues());
|
|
388
|
+
* // -> {open: false}
|
|
389
|
+
* ```
|
|
390
|
+
* @example
|
|
391
|
+
* This example sets just the TablesSchema of a Store after it has been
|
|
392
|
+
* created.
|
|
393
|
+
*
|
|
394
|
+
* ```js
|
|
395
|
+
* const store = createStore().setSchema({
|
|
396
|
+
* pets: {
|
|
397
|
+
* species: {type: 'string'},
|
|
398
|
+
* sold: {type: 'boolean', default: false},
|
|
399
|
+
* },
|
|
400
|
+
* });
|
|
401
|
+
* store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
|
|
402
|
+
*
|
|
403
|
+
* console.log(store.getTables());
|
|
404
|
+
* // -> {pets: {0: {species: 'dog', sold: false}}}
|
|
405
|
+
* ```
|
|
406
|
+
* @category Setter
|
|
407
|
+
*/
|
|
408
|
+
setSchema<TS extends TablesSchema, VS extends ValuesSchema>(
|
|
409
|
+
tablesSchema: TS,
|
|
410
|
+
valuesSchema?: VS,
|
|
411
|
+
): MergeableStore<
|
|
412
|
+
[
|
|
413
|
+
typeof tablesSchema,
|
|
414
|
+
Exclude<ValuesSchema, typeof valuesSchema> extends never
|
|
415
|
+
? NoValuesSchema
|
|
416
|
+
: NonNullable<typeof valuesSchema>,
|
|
417
|
+
]
|
|
418
|
+
>;
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* The delTablesSchema method lets you remove the TablesSchema of the Store.
|
|
422
|
+
* @returns A reference to the Store.
|
|
423
|
+
* @example
|
|
424
|
+
* This example removes the TablesSchema of a Store.
|
|
425
|
+
*
|
|
426
|
+
* ```js
|
|
427
|
+
* const store = createStore().setTablesSchema({
|
|
428
|
+
* pets: {species: {type: 'string'}},
|
|
429
|
+
* });
|
|
430
|
+
* store.delTablesSchema();
|
|
431
|
+
* console.log(store.getTablesSchemaJson());
|
|
432
|
+
* // -> '{}'
|
|
433
|
+
* ```
|
|
434
|
+
* @category Deleter
|
|
435
|
+
*/
|
|
436
|
+
delTablesSchema<
|
|
437
|
+
ValuesSchema extends OptionalValuesSchema = Schemas[1],
|
|
438
|
+
>(): MergeableStore<[NoTablesSchema, ValuesSchema]>;
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* The delValuesSchema method lets you remove the ValuesSchema of the Store.
|
|
442
|
+
* @returns A reference to the Store.
|
|
443
|
+
* @example
|
|
444
|
+
* This example removes the ValuesSchema of a Store.
|
|
445
|
+
*
|
|
446
|
+
* ```js
|
|
447
|
+
* const store = createStore().setValuesSchema({
|
|
448
|
+
* sold: {type: 'boolean', default: false},
|
|
449
|
+
* });
|
|
450
|
+
* store.delValuesSchema();
|
|
451
|
+
* console.log(store.getValuesSchemaJson());
|
|
452
|
+
* // -> '{}'
|
|
453
|
+
* ```
|
|
454
|
+
* @category Deleter
|
|
455
|
+
* @since v3.0.0
|
|
456
|
+
*/
|
|
457
|
+
delValuesSchema<
|
|
458
|
+
TablesSchema extends OptionalTablesSchema = Schemas[0],
|
|
459
|
+
>(): MergeableStore<[TablesSchema, NoValuesSchema]>;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* The delSchema method lets you remove both the TablesSchema and ValuesSchema
|
|
463
|
+
* of the Store.
|
|
464
|
+
*
|
|
465
|
+
* Prior to v3.0, this method removed the TablesSchema only.
|
|
466
|
+
* @returns A reference to the Store.
|
|
467
|
+
* @example
|
|
468
|
+
* This example removes the TablesSchema and ValuesSchema of a Store.
|
|
469
|
+
*
|
|
470
|
+
* ```js
|
|
471
|
+
* const store = createStore()
|
|
472
|
+
* .setTablesSchema({
|
|
473
|
+
* pets: {species: {type: 'string'}},
|
|
474
|
+
* })
|
|
475
|
+
* .setValuesSchema({
|
|
476
|
+
* sold: {type: 'boolean', default: false},
|
|
477
|
+
* });
|
|
478
|
+
* store.delSchema();
|
|
479
|
+
* console.log(store.getSchemaJson());
|
|
480
|
+
* // -> '[{},{}]'
|
|
481
|
+
* ```
|
|
482
|
+
* @category Deleter
|
|
483
|
+
* @since v3.0.0
|
|
484
|
+
*/
|
|
485
|
+
delSchema(): MergeableStore<NoSchemas>;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* The createMergeableStore function
|
|
490
|
+
* @category Creation
|
|
491
|
+
*/
|
|
492
|
+
export function createMergeableStore(id: Id): MergeableStore<NoSchemas>;
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {CellIdFromSchema, TableIdFromSchema} from './internal/store';
|
|
14
|
-
import {GetCell, OptionalSchemas, Store} from './store.d';
|
|
15
|
-
import {Id, IdOrNull, Ids} from './common.d';
|
|
14
|
+
import {GetCell, OptionalSchemas, Store} from './store.d.ts';
|
|
15
|
+
import {Id, IdOrNull, Ids} from './common.d.ts';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* The Metric type is simply an alias, but represents a number formed by
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import {OptionalSchemas, Store} from '../store';
|
|
15
|
-
import {DocHandle} from 'automerge-repo';
|
|
15
|
+
import {DocHandle} from '@automerge/automerge-repo';
|
|
16
16
|
import {Persister} from '../persisters';
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -21,6 +21,10 @@ import {Persister} from '../persisters';
|
|
|
21
21
|
*
|
|
22
22
|
* It simply provides an extra getDocHandle method for accessing the Automerge
|
|
23
23
|
* document handler the Store is being persisted to.
|
|
24
|
+
*
|
|
25
|
+
* You should use the createAutomergePersister function to create an
|
|
26
|
+
* AutomergePersister object.
|
|
27
|
+
* @category Persister
|
|
24
28
|
* @since v4.3.14
|
|
25
29
|
*/
|
|
26
30
|
export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
@@ -46,7 +50,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
46
50
|
* @category Getter
|
|
47
51
|
* @since v4.3.14
|
|
48
52
|
*/
|
|
49
|
-
getDocHandle
|
|
53
|
+
getDocHandle(): DocHandle<any>;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
/**
|
|
@@ -86,7 +90,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
86
90
|
* await persister.save();
|
|
87
91
|
* // Store will be saved to the document.
|
|
88
92
|
*
|
|
89
|
-
* console.log(docHandler.doc);
|
|
93
|
+
* console.log(await docHandler.doc());
|
|
90
94
|
* // -> {tinybase: {t: {pets: {fido: {species: 'dog'}}}, v: {}}}
|
|
91
95
|
*
|
|
92
96
|
* persister.destroy();
|
|
@@ -102,7 +106,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
102
106
|
* network: [new BroadcastChannelNetworkAdapter()],
|
|
103
107
|
* });
|
|
104
108
|
* const docHandler1 = repo1.create();
|
|
105
|
-
* await docHandler1.
|
|
109
|
+
* await docHandler1.doc();
|
|
106
110
|
* const store1 = createStore();
|
|
107
111
|
* const persister1 = createAutomergePersister(store1, docHandler1);
|
|
108
112
|
* await persister1.startAutoLoad();
|
|
@@ -113,7 +117,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
113
117
|
* network: [new BroadcastChannelNetworkAdapter()],
|
|
114
118
|
* });
|
|
115
119
|
* const docHandler2 = repo2.find(docHandler1.documentId);
|
|
116
|
-
* await docHandler2.
|
|
120
|
+
* await docHandler2.doc();
|
|
117
121
|
* const store2 = createStore();
|
|
118
122
|
* const persister2 = createAutomergePersister(store2, docHandler2);
|
|
119
123
|
* await persister2.startAutoLoad();
|
|
@@ -122,9 +126,9 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
122
126
|
* // A function that waits briefly and then for the documents to synchronize
|
|
123
127
|
* // with each other, merely for the purposes of sequentiality in this example.
|
|
124
128
|
* const syncDocsWait = async () => {
|
|
125
|
-
* await new Promise((resolve) => setTimeout(() => resolve(0),
|
|
126
|
-
* await docHandler1.
|
|
127
|
-
* await docHandler2.
|
|
129
|
+
* await new Promise((resolve) => setTimeout(() => resolve(0), 100));
|
|
130
|
+
* await docHandler1.doc();
|
|
131
|
+
* await docHandler2.doc();
|
|
128
132
|
* };
|
|
129
133
|
*
|
|
130
134
|
* // Wait for the documents to synchronize in their initial state.
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import {OptionalSchemas, Store} from '../store';
|
|
18
|
+
import {MergeableStore} from '../mergeable-store';
|
|
18
19
|
import {Persister} from '../persisters';
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -23,10 +24,14 @@ import {Persister} from '../persisters';
|
|
|
23
24
|
*
|
|
24
25
|
* It simply provides an extra getStorageName method for accessing the unique
|
|
25
26
|
* key of the storage location the Store is being persisted to.
|
|
27
|
+
*
|
|
28
|
+
* You should use the createSessionPersister function to create a
|
|
29
|
+
* SessionPersister object.
|
|
30
|
+
* @category Persister
|
|
26
31
|
* @since v4.3.14
|
|
27
32
|
*/
|
|
28
33
|
export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
29
|
-
extends Persister<Schemas> {
|
|
34
|
+
extends Persister<Schemas, true> {
|
|
30
35
|
/**
|
|
31
36
|
* The getStorageName method returns the unique key of the storage location
|
|
32
37
|
* the Store is being persisted to.
|
|
@@ -47,7 +52,7 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
|
47
52
|
* @category Getter
|
|
48
53
|
* @since v4.3.14
|
|
49
54
|
*/
|
|
50
|
-
getStorageName
|
|
55
|
+
getStorageName(): string;
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
/**
|
|
@@ -55,10 +60,14 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
|
55
60
|
*
|
|
56
61
|
* It simply provides an extra getStorageName method for accessing the unique
|
|
57
62
|
* key of the storage location the Store is being persisted to.
|
|
63
|
+
*
|
|
64
|
+
* You should use the createLocalPersister function to create a LocalPersister
|
|
65
|
+
* object.
|
|
66
|
+
* @category Persister
|
|
58
67
|
* @since v4.3.14
|
|
59
68
|
*/
|
|
60
69
|
export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
61
|
-
extends Persister<Schemas> {
|
|
70
|
+
extends Persister<Schemas, true> {
|
|
62
71
|
/**
|
|
63
72
|
* The getStorageName method returns the unique key of the storage location
|
|
64
73
|
* the Store is being persisted to.
|
|
@@ -79,7 +88,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
|
79
88
|
* @category Getter
|
|
80
89
|
* @since v4.3.14
|
|
81
90
|
*/
|
|
82
|
-
getStorageName
|
|
91
|
+
getStorageName(): string;
|
|
83
92
|
}
|
|
84
93
|
|
|
85
94
|
/**
|
|
@@ -90,7 +99,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
|
90
99
|
*
|
|
91
100
|
* ```ts override
|
|
92
101
|
* createSessionPersister(
|
|
93
|
-
* store: Store,
|
|
102
|
+
* store: Store | MergeableStore,
|
|
94
103
|
* storageName: string,
|
|
95
104
|
* onIgnoredError?: (error: any) => void,
|
|
96
105
|
* ): SessionPersister;
|
|
@@ -123,7 +132,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
|
123
132
|
* @category Creation
|
|
124
133
|
*/
|
|
125
134
|
export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
126
|
-
store: Store<Schemas>,
|
|
135
|
+
store: Store<Schemas> | MergeableStore<Schemas>,
|
|
127
136
|
storageName: string,
|
|
128
137
|
onIgnoredError?: (error: any) => void,
|
|
129
138
|
): SessionPersister<Schemas>;
|
|
@@ -136,7 +145,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
|
136
145
|
*
|
|
137
146
|
* ```ts override
|
|
138
147
|
* createLocalPersister(
|
|
139
|
-
* store: Store,
|
|
148
|
+
* store: Store | MergeableStore,
|
|
140
149
|
* storageName: string,
|
|
141
150
|
* onIgnoredError?: (error: any) => void,
|
|
142
151
|
* ): LocalPersister;
|
|
@@ -169,7 +178,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
|
169
178
|
* @category Creation
|
|
170
179
|
*/
|
|
171
180
|
export function createLocalPersister<Schemas extends OptionalSchemas>(
|
|
172
|
-
store: Store<Schemas>,
|
|
181
|
+
store: Store<Schemas> | MergeableStore<Schemas>,
|
|
173
182
|
storageName: string,
|
|
174
183
|
onIgnoredError?: (error: any) => void,
|
|
175
184
|
): LocalPersister<Schemas>;
|
|
@@ -18,6 +18,10 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
|
18
18
|
*
|
|
19
19
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
20
20
|
* database instance the Store is being persisted to.
|
|
21
|
+
*
|
|
22
|
+
* You should use the createCrSqliteWasmPersister function to create a
|
|
23
|
+
* CrSqliteWasmPersister object.
|
|
24
|
+
* @category Persister
|
|
21
25
|
* @since v4.3.14
|
|
22
26
|
*/
|
|
23
27
|
export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
@@ -44,7 +48,7 @@ export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
|
44
48
|
* @category Getter
|
|
45
49
|
* @since v4.3.14
|
|
46
50
|
*/
|
|
47
|
-
getDb
|
|
51
|
+
getDb(): DB;
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
/**
|
|
@@ -18,6 +18,10 @@ import {ElectricClient} from 'electric-sql/client/model';
|
|
|
18
18
|
*
|
|
19
19
|
* It simply provides an extra getElectricClient method for accessing a
|
|
20
20
|
* reference to the Electric client the Store is being persisted to.
|
|
21
|
+
*
|
|
22
|
+
* You should use the createElectricSqlPersister function to create an
|
|
23
|
+
* ElectricSqlPersister object.
|
|
24
|
+
* @category Persister
|
|
21
25
|
* @since v4.6.0
|
|
22
26
|
*/
|
|
23
27
|
export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
|
|
@@ -51,7 +55,7 @@ export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
|
|
|
51
55
|
* @category Getter
|
|
52
56
|
* @since v4.6.0
|
|
53
57
|
*/
|
|
54
|
-
getElectricClient
|
|
58
|
+
getElectricClient(): ElectricClient<any>;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
/**
|