tinybase 5.3.2 → 5.3.3
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/cjs/common/index.cjs +1 -1
- package/cjs/common/with-schemas/index.cjs +1 -1
- package/cjs/es6/common/index.cjs +1 -1
- package/cjs/es6/common/with-schemas/index.cjs +1 -1
- package/cjs/es6/index.cjs +1 -1
- package/cjs/es6/mergeable-store/index.cjs +1 -1
- package/cjs/es6/mergeable-store/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/common/index.cjs +1 -1
- package/cjs/es6/min/common/index.cjs.gz +0 -0
- package/cjs/es6/min/common/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/common/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/index.cjs +1 -1
- package/cjs/es6/min/index.cjs.gz +0 -0
- package/cjs/es6/min/mergeable-store/index.cjs +1 -1
- package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
- package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -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-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-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-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/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/min/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +83 -103
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +82 -102
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +82 -102
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +82 -102
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/persister-libsql/index.cjs +82 -102
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/persister-pglite/index.cjs +81 -101
- package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +81 -101
- package/cjs/es6/persisters/persister-postgres/index.cjs +81 -101
- package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +81 -101
- package/cjs/es6/persisters/persister-powersync/index.cjs +212 -147
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +212 -147
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +82 -102
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +82 -102
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +82 -102
- package/cjs/es6/persisters/with-schemas/index.cjs +83 -103
- package/cjs/es6/synchronizers/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/synchronizers/with-schemas/index.cjs +1 -1
- package/cjs/es6/ui-react-inspector/index.cjs +0 -2
- package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +0 -2
- package/cjs/es6/with-schemas/index.cjs +1 -1
- package/cjs/index.cjs +1 -1
- package/cjs/mergeable-store/index.cjs +1 -1
- package/cjs/mergeable-store/with-schemas/index.cjs +1 -1
- package/cjs/min/common/index.cjs +1 -1
- package/cjs/min/common/index.cjs.gz +0 -0
- package/cjs/min/common/with-schemas/index.cjs +1 -1
- package/cjs/min/common/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/index.cjs +1 -1
- package/cjs/min/index.cjs.gz +0 -0
- package/cjs/min/mergeable-store/index.cjs +1 -1
- package/cjs/min/mergeable-store/index.cjs.gz +0 -0
- package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
- package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-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-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/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/min/with-schemas/index.cjs +1 -1
- package/cjs/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +80 -98
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +79 -97
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +79 -97
- package/cjs/persisters/persister-electric-sql/index.cjs +79 -97
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +79 -97
- package/cjs/persisters/persister-expo-sqlite/index.cjs +79 -97
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +79 -97
- package/cjs/persisters/persister-libsql/index.cjs +79 -97
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +79 -97
- package/cjs/persisters/persister-pglite/index.cjs +78 -96
- package/cjs/persisters/persister-pglite/with-schemas/index.cjs +78 -96
- package/cjs/persisters/persister-postgres/index.cjs +78 -96
- package/cjs/persisters/persister-postgres/with-schemas/index.cjs +78 -96
- package/cjs/persisters/persister-powersync/index.cjs +203 -142
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +203 -142
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +79 -97
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +79 -97
- package/cjs/persisters/persister-sqlite3/index.cjs +79 -97
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +79 -97
- package/cjs/persisters/with-schemas/index.cjs +80 -98
- package/cjs/synchronizers/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-local/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/synchronizers/with-schemas/index.cjs +1 -1
- package/cjs/ui-react-inspector/index.cjs +0 -2
- package/cjs/ui-react-inspector/with-schemas/index.cjs +0 -2
- package/cjs/with-schemas/index.cjs +1 -1
- package/common/index.js +1 -1
- package/common/with-schemas/index.js +1 -1
- package/es6/common/index.js +1 -1
- package/es6/common/with-schemas/index.js +1 -1
- package/es6/index.js +1 -1
- package/es6/mergeable-store/index.js +1 -1
- package/es6/mergeable-store/with-schemas/index.js +1 -1
- package/es6/min/common/index.js +1 -1
- package/es6/min/common/index.js.gz +0 -0
- package/es6/min/common/with-schemas/index.js +1 -1
- package/es6/min/common/with-schemas/index.js.gz +0 -0
- package/es6/min/index.js +1 -1
- package/es6/min/index.js.gz +0 -0
- package/es6/min/mergeable-store/index.js +1 -1
- package/es6/min/mergeable-store/index.js.gz +0 -0
- package/es6/min/mergeable-store/with-schemas/index.js +1 -1
- package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/index.js +1 -1
- package/es6/min/persisters/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/index.js +1 -1
- package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-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-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/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/min/with-schemas/index.js +1 -1
- package/es6/min/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +83 -103
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -102
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -102
- package/es6/persisters/persister-electric-sql/index.js +82 -102
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -102
- package/es6/persisters/persister-expo-sqlite/index.js +82 -102
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -102
- package/es6/persisters/persister-libsql/index.js +82 -102
- package/es6/persisters/persister-libsql/with-schemas/index.js +82 -102
- package/es6/persisters/persister-pglite/index.js +81 -101
- package/es6/persisters/persister-pglite/with-schemas/index.js +81 -101
- package/es6/persisters/persister-postgres/index.js +81 -101
- package/es6/persisters/persister-postgres/with-schemas/index.js +81 -101
- package/es6/persisters/persister-powersync/index.js +212 -147
- package/es6/persisters/persister-powersync/with-schemas/index.js +212 -147
- package/es6/persisters/persister-sqlite-wasm/index.js +82 -102
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -102
- package/es6/persisters/persister-sqlite3/index.js +82 -102
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -102
- package/es6/persisters/with-schemas/index.js +83 -103
- package/es6/synchronizers/index.js +1 -1
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/es6/synchronizers/synchronizer-local/index.js +1 -1
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/es6/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/es6/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/synchronizers/with-schemas/index.js +1 -1
- package/es6/ui-react-inspector/index.js +0 -2
- package/es6/ui-react-inspector/with-schemas/index.js +0 -2
- package/es6/with-schemas/index.js +1 -1
- package/index.js +1 -1
- package/mergeable-store/index.js +1 -1
- package/mergeable-store/with-schemas/index.js +1 -1
- package/min/common/index.js +1 -1
- package/min/common/index.js.gz +0 -0
- package/min/common/with-schemas/index.js +1 -1
- package/min/common/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-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-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/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/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +5 -5
- package/persisters/index.js +80 -98
- package/persisters/persister-cr-sqlite-wasm/index.js +79 -97
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +79 -97
- package/persisters/persister-electric-sql/index.js +79 -97
- package/persisters/persister-electric-sql/with-schemas/index.js +79 -97
- package/persisters/persister-expo-sqlite/index.js +79 -97
- package/persisters/persister-expo-sqlite/with-schemas/index.js +79 -97
- package/persisters/persister-libsql/index.js +79 -97
- package/persisters/persister-libsql/with-schemas/index.js +79 -97
- package/persisters/persister-pglite/index.js +78 -96
- package/persisters/persister-pglite/with-schemas/index.js +78 -96
- package/persisters/persister-postgres/index.js +78 -96
- package/persisters/persister-postgres/with-schemas/index.js +78 -96
- package/persisters/persister-powersync/index.js +203 -142
- package/persisters/persister-powersync/with-schemas/index.js +203 -142
- package/persisters/persister-sqlite-wasm/index.js +79 -97
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +79 -97
- package/persisters/persister-sqlite3/index.js +79 -97
- package/persisters/persister-sqlite3/with-schemas/index.js +79 -97
- package/persisters/with-schemas/index.js +80 -98
- package/readme.md +2 -2
- package/synchronizers/index.js +1 -1
- package/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/synchronizers/synchronizer-local/index.js +1 -1
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/synchronizers/with-schemas/index.js +1 -1
- package/ui-react-inspector/index.js +0 -2
- package/ui-react-inspector/with-schemas/index.js +0 -2
- package/umd/common/index.js +1 -1
- package/umd/common/with-schemas/index.js +1 -1
- package/umd/es6/common/index.js +1 -1
- package/umd/es6/common/with-schemas/index.js +1 -1
- package/umd/es6/index.js +1 -1
- package/umd/es6/mergeable-store/index.js +1 -1
- package/umd/es6/mergeable-store/with-schemas/index.js +1 -1
- package/umd/es6/min/common/index.js +1 -1
- package/umd/es6/min/common/index.js.gz +0 -0
- package/umd/es6/min/common/with-schemas/index.js +1 -1
- package/umd/es6/min/common/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/index.js +1 -1
- package/umd/es6/min/index.js.gz +0 -0
- package/umd/es6/min/mergeable-store/index.js +1 -1
- package/umd/es6/min/mergeable-store/index.js.gz +0 -0
- package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
- package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
- 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-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-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-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/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/min/with-schemas/index.js +1 -1
- package/umd/es6/min/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +83 -103
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -102
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -102
- package/umd/es6/persisters/persister-electric-sql/index.js +82 -102
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -102
- package/umd/es6/persisters/persister-expo-sqlite/index.js +82 -102
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -102
- package/umd/es6/persisters/persister-libsql/index.js +82 -102
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +82 -102
- package/umd/es6/persisters/persister-pglite/index.js +81 -101
- package/umd/es6/persisters/persister-pglite/with-schemas/index.js +81 -101
- package/umd/es6/persisters/persister-postgres/index.js +81 -101
- package/umd/es6/persisters/persister-postgres/with-schemas/index.js +81 -101
- package/umd/es6/persisters/persister-powersync/index.js +212 -147
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +212 -147
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +82 -102
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -102
- package/umd/es6/persisters/persister-sqlite3/index.js +82 -102
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -102
- package/umd/es6/persisters/with-schemas/index.js +83 -103
- package/umd/es6/synchronizers/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-local/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/synchronizers/with-schemas/index.js +1 -1
- package/umd/es6/ui-react-inspector/index.js +0 -2
- package/umd/es6/ui-react-inspector/with-schemas/index.js +0 -2
- package/umd/es6/with-schemas/index.js +1 -1
- package/umd/index.js +1 -1
- package/umd/mergeable-store/index.js +1 -1
- package/umd/mergeable-store/with-schemas/index.js +1 -1
- package/umd/min/common/index.js +1 -1
- package/umd/min/common/index.js.gz +0 -0
- package/umd/min/common/with-schemas/index.js +1 -1
- package/umd/min/common/with-schemas/index.js.gz +0 -0
- package/umd/min/index.js +1 -1
- package/umd/min/index.js.gz +0 -0
- package/umd/min/mergeable-store/index.js +1 -1
- package/umd/min/mergeable-store/index.js.gz +0 -0
- package/umd/min/mergeable-store/with-schemas/index.js +1 -1
- package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/index.js +1 -1
- package/umd/min/persisters/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/index.js +1 -1
- package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-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-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/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/min/with-schemas/index.js +1 -1
- package/umd/min/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +80 -98
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +79 -97
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +79 -97
- package/umd/persisters/persister-electric-sql/index.js +79 -97
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +79 -97
- package/umd/persisters/persister-expo-sqlite/index.js +79 -97
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +79 -97
- package/umd/persisters/persister-libsql/index.js +79 -97
- package/umd/persisters/persister-libsql/with-schemas/index.js +79 -97
- package/umd/persisters/persister-pglite/index.js +78 -96
- package/umd/persisters/persister-pglite/with-schemas/index.js +78 -96
- package/umd/persisters/persister-postgres/index.js +78 -96
- package/umd/persisters/persister-postgres/with-schemas/index.js +78 -96
- package/umd/persisters/persister-powersync/index.js +203 -142
- package/umd/persisters/persister-powersync/with-schemas/index.js +203 -142
- package/umd/persisters/persister-sqlite-wasm/index.js +79 -97
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +79 -97
- package/umd/persisters/persister-sqlite3/index.js +79 -97
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +79 -97
- package/umd/persisters/with-schemas/index.js +80 -98
- package/umd/synchronizers/index.js +1 -1
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/umd/synchronizers/synchronizer-local/index.js +1 -1
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/umd/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/synchronizers/with-schemas/index.js +1 -1
- package/umd/ui-react-inspector/index.js +0 -2
- package/umd/ui-react-inspector/with-schemas/index.js +0 -2
- package/umd/with-schemas/index.js +1 -1
- package/with-schemas/index.js +1 -1
|
@@ -24,8 +24,6 @@ const errorNew = (message) => {
|
|
|
24
24
|
throw new Error(message);
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
const arrayNew = (size2, cb) =>
|
|
28
|
-
arrayMap(new Array(size2).fill(0), (_, index) => cb(index));
|
|
29
27
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
30
28
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
31
29
|
const arrayMap = (array, cb) => array.map(cb);
|
|
@@ -445,9 +443,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
445
443
|
}
|
|
446
444
|
: executeCommand;
|
|
447
445
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
448
|
-
const
|
|
446
|
+
const escapeColumnNames = (...columnNames) =>
|
|
447
|
+
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
448
|
+
const getPlaceholders = (array, offset = [1]) =>
|
|
449
449
|
arrayJoin(
|
|
450
|
-
arrayMap(array, (
|
|
450
|
+
arrayMap(array, () => '$' + offset[0]++),
|
|
451
451
|
COMMA,
|
|
452
452
|
);
|
|
453
453
|
|
|
@@ -464,7 +464,7 @@ const getCommandFunctions = (
|
|
|
464
464
|
querySchema,
|
|
465
465
|
onIgnoredError,
|
|
466
466
|
columnType,
|
|
467
|
-
|
|
467
|
+
upsert = defaultUpsert,
|
|
468
468
|
encode,
|
|
469
469
|
decode,
|
|
470
470
|
) => {
|
|
@@ -505,26 +505,26 @@ const getCommandFunctions = (
|
|
|
505
505
|
deleteEmptyTable,
|
|
506
506
|
partial = false,
|
|
507
507
|
) => {
|
|
508
|
-
const
|
|
508
|
+
const settingColumnNameSet = setNew();
|
|
509
509
|
objToArray(content ?? {}, (contentRow) =>
|
|
510
510
|
arrayMap(objIds(contentRow ?? {}), (cellOrValueId) =>
|
|
511
|
-
setAdd(
|
|
511
|
+
setAdd(settingColumnNameSet, cellOrValueId),
|
|
512
512
|
),
|
|
513
513
|
);
|
|
514
|
-
const
|
|
514
|
+
const settingColumnNames = collValues(settingColumnNameSet);
|
|
515
515
|
if (
|
|
516
516
|
!partial &&
|
|
517
517
|
deleteEmptyTable &&
|
|
518
|
-
arrayIsEmpty(
|
|
518
|
+
arrayIsEmpty(settingColumnNames) &&
|
|
519
519
|
collHas(schemaMap, tableName)
|
|
520
520
|
) {
|
|
521
521
|
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
522
522
|
mapSet(schemaMap, tableName);
|
|
523
523
|
return;
|
|
524
524
|
}
|
|
525
|
-
const
|
|
526
|
-
const
|
|
527
|
-
if (!arrayIsEmpty(
|
|
525
|
+
const currentColumnNames = mapGet(schemaMap, tableName);
|
|
526
|
+
const unaccountedColumnNames = setNew(collValues(currentColumnNames));
|
|
527
|
+
if (!arrayIsEmpty(settingColumnNames)) {
|
|
528
528
|
if (!collHas(schemaMap, tableName)) {
|
|
529
529
|
await databaseExecuteCommand(
|
|
530
530
|
'CREATE ' +
|
|
@@ -532,27 +532,28 @@ const getCommandFunctions = (
|
|
|
532
532
|
escapeId(tableName) +
|
|
533
533
|
`(${escapeId(rowIdColumnName)}${columnType} PRIMARY KEY${arrayJoin(
|
|
534
534
|
arrayMap(
|
|
535
|
-
|
|
536
|
-
(
|
|
535
|
+
settingColumnNames,
|
|
536
|
+
(settingColumnName) =>
|
|
537
|
+
COMMA + escapeId(settingColumnName) + columnType,
|
|
537
538
|
),
|
|
538
539
|
)});`,
|
|
539
540
|
);
|
|
540
541
|
mapSet(
|
|
541
542
|
schemaMap,
|
|
542
543
|
tableName,
|
|
543
|
-
setNew([rowIdColumnName, ...
|
|
544
|
+
setNew([rowIdColumnName, ...settingColumnNames]),
|
|
544
545
|
);
|
|
545
546
|
} else {
|
|
546
547
|
await promiseAll(
|
|
547
548
|
arrayMap(
|
|
548
|
-
[rowIdColumnName, ...
|
|
549
|
-
async (
|
|
550
|
-
if (!collDel(
|
|
549
|
+
[rowIdColumnName, ...settingColumnNames],
|
|
550
|
+
async (settingColumnName, index) => {
|
|
551
|
+
if (!collDel(unaccountedColumnNames, settingColumnName)) {
|
|
551
552
|
await databaseExecuteCommand(
|
|
552
553
|
ALTER_TABLE +
|
|
553
554
|
escapeId(tableName) +
|
|
554
555
|
'ADD' +
|
|
555
|
-
escapeId(
|
|
556
|
+
escapeId(settingColumnName) +
|
|
556
557
|
columnType,
|
|
557
558
|
);
|
|
558
559
|
if (index == 0) {
|
|
@@ -562,7 +563,7 @@ const getCommandFunctions = (
|
|
|
562
563
|
`(${escapeId(rowIdColumnName)})`,
|
|
563
564
|
);
|
|
564
565
|
}
|
|
565
|
-
setAdd(
|
|
566
|
+
setAdd(currentColumnNames, settingColumnName);
|
|
566
567
|
}
|
|
567
568
|
},
|
|
568
569
|
),
|
|
@@ -571,17 +572,20 @@ const getCommandFunctions = (
|
|
|
571
572
|
}
|
|
572
573
|
await promiseAll([
|
|
573
574
|
...(!partial && deleteEmptyColumns
|
|
574
|
-
? arrayMap(
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
575
|
+
? arrayMap(
|
|
576
|
+
collValues(unaccountedColumnNames),
|
|
577
|
+
async (unaccountedColumnName) => {
|
|
578
|
+
if (unaccountedColumnName != rowIdColumnName) {
|
|
579
|
+
await databaseExecuteCommand(
|
|
580
|
+
ALTER_TABLE +
|
|
581
|
+
escapeId(tableName) +
|
|
582
|
+
'DROP' +
|
|
583
|
+
escapeId(unaccountedColumnName),
|
|
584
|
+
);
|
|
585
|
+
collDel(currentColumnNames, unaccountedColumnName);
|
|
586
|
+
}
|
|
587
|
+
},
|
|
588
|
+
)
|
|
585
589
|
: []),
|
|
586
590
|
]);
|
|
587
591
|
if (partial) {
|
|
@@ -601,39 +605,34 @@ const getCommandFunctions = (
|
|
|
601
605
|
'=$1',
|
|
602
606
|
[rowId],
|
|
603
607
|
);
|
|
604
|
-
} else if (!arrayIsEmpty(
|
|
608
|
+
} else if (!arrayIsEmpty(settingColumnNames)) {
|
|
605
609
|
await upsert(
|
|
606
610
|
databaseExecuteCommand,
|
|
607
611
|
tableName,
|
|
608
612
|
rowIdColumnName,
|
|
609
613
|
objIds(row),
|
|
610
|
-
|
|
611
|
-
rowId
|
|
612
|
-
...(encode
|
|
614
|
+
{
|
|
615
|
+
[rowId]: encode
|
|
613
616
|
? arrayMap(objValues(row), encode)
|
|
614
|
-
: objValues(row)
|
|
615
|
-
|
|
616
|
-
|
|
617
|
+
: objValues(row),
|
|
618
|
+
},
|
|
619
|
+
currentColumnNames,
|
|
617
620
|
);
|
|
618
621
|
}
|
|
619
622
|
}),
|
|
620
623
|
);
|
|
621
624
|
}
|
|
622
625
|
} else {
|
|
623
|
-
if (!arrayIsEmpty(
|
|
626
|
+
if (!arrayIsEmpty(settingColumnNames)) {
|
|
624
627
|
const changingColumnNames = arrayFilter(
|
|
625
628
|
collValues(mapGet(schemaMap, tableName)),
|
|
626
|
-
(
|
|
629
|
+
(changingColumnName) => changingColumnName != rowIdColumnName,
|
|
627
630
|
);
|
|
628
|
-
const
|
|
631
|
+
const rows = {};
|
|
629
632
|
const deleteRowIds = [];
|
|
630
633
|
objToArray(content ?? {}, (row, rowId) => {
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
rowId,
|
|
634
|
-
...arrayMap(changingColumnNames, (cellId) =>
|
|
635
|
-
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
636
|
-
),
|
|
634
|
+
rows[rowId] = arrayMap(changingColumnNames, (cellId) =>
|
|
635
|
+
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
637
636
|
);
|
|
638
637
|
arrayPush(deleteRowIds, rowId);
|
|
639
638
|
});
|
|
@@ -642,8 +641,7 @@ const getCommandFunctions = (
|
|
|
642
641
|
tableName,
|
|
643
642
|
rowIdColumnName,
|
|
644
643
|
changingColumnNames,
|
|
645
|
-
|
|
646
|
-
orReplace,
|
|
644
|
+
rows,
|
|
647
645
|
);
|
|
648
646
|
await databaseExecuteCommand(
|
|
649
647
|
DELETE_FROM +
|
|
@@ -673,61 +671,45 @@ const getCommandFunctions = (
|
|
|
673
671
|
};
|
|
674
672
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
675
673
|
};
|
|
676
|
-
const
|
|
674
|
+
const defaultUpsert = async (
|
|
677
675
|
executeCommand,
|
|
678
676
|
tableName,
|
|
679
677
|
rowIdColumnName,
|
|
680
678
|
changingColumnNames,
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
679
|
+
rows,
|
|
680
|
+
) => {
|
|
681
|
+
const offset = [1];
|
|
684
682
|
await executeCommand(
|
|
685
|
-
'INSERT ' +
|
|
686
|
-
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
687
|
-
'INTO' +
|
|
683
|
+
'INSERT INTO' +
|
|
688
684
|
escapeId(tableName) +
|
|
689
685
|
'(' +
|
|
686
|
+
escapeColumnNames(rowIdColumnName, ...changingColumnNames) +
|
|
687
|
+
')VALUES' +
|
|
688
|
+
arrayJoin(
|
|
689
|
+
objToArray(
|
|
690
|
+
rows,
|
|
691
|
+
(row) =>
|
|
692
|
+
'($' + offset[0]++ + ',' + getPlaceholders(row, offset) + ')',
|
|
693
|
+
),
|
|
694
|
+
COMMA,
|
|
695
|
+
) +
|
|
696
|
+
'ON CONFLICT(' +
|
|
690
697
|
escapeId(rowIdColumnName) +
|
|
698
|
+
')DO UPDATE SET' +
|
|
691
699
|
arrayJoin(
|
|
692
700
|
arrayMap(
|
|
693
701
|
changingColumnNames,
|
|
694
|
-
(columnName) =>
|
|
702
|
+
(columnName) =>
|
|
703
|
+
escapeId(columnName) + '=excluded.' + escapeId(columnName),
|
|
695
704
|
),
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
escapeId(rowIdColumnName) +
|
|
703
|
-
')DO UPDATE SET' +
|
|
704
|
-
arrayJoin(
|
|
705
|
-
arrayMap(
|
|
706
|
-
changingColumnNames,
|
|
707
|
-
(columnName) =>
|
|
708
|
-
escapeId(columnName) + '=excluded.' + escapeId(columnName),
|
|
709
|
-
),
|
|
710
|
-
COMMA,
|
|
711
|
-
)),
|
|
712
|
-
arrayMap(params, (param) => param ?? null),
|
|
713
|
-
);
|
|
714
|
-
const getUpsertPlaceholders = (array, columnCount) =>
|
|
715
|
-
arrayJoin(
|
|
716
|
-
arrayNew(
|
|
717
|
-
size(array) / columnCount,
|
|
718
|
-
(row) =>
|
|
719
|
-
'(' +
|
|
720
|
-
arrayJoin(
|
|
721
|
-
arrayNew(
|
|
722
|
-
columnCount,
|
|
723
|
-
(column) => '$' + (row * columnCount + column + 1),
|
|
724
|
-
),
|
|
725
|
-
COMMA,
|
|
726
|
-
) +
|
|
727
|
-
')',
|
|
728
|
-
),
|
|
729
|
-
COMMA,
|
|
705
|
+
COMMA,
|
|
706
|
+
),
|
|
707
|
+
objToArray(rows, (row, id) => [
|
|
708
|
+
id,
|
|
709
|
+
...arrayMap(row, (value) => value ?? null),
|
|
710
|
+
]).flat(),
|
|
730
711
|
);
|
|
712
|
+
};
|
|
731
713
|
|
|
732
714
|
const createJsonPersister = (
|
|
733
715
|
store,
|
|
@@ -743,7 +725,7 @@ const createJsonPersister = (
|
|
|
743
725
|
thing,
|
|
744
726
|
getThing,
|
|
745
727
|
columnType,
|
|
746
|
-
|
|
728
|
+
upsert,
|
|
747
729
|
) => {
|
|
748
730
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
749
731
|
getCommandFunctions(
|
|
@@ -752,7 +734,7 @@ const createJsonPersister = (
|
|
|
752
734
|
querySchema,
|
|
753
735
|
onIgnoredError,
|
|
754
736
|
columnType,
|
|
755
|
-
|
|
737
|
+
upsert,
|
|
756
738
|
);
|
|
757
739
|
const getPersisted = async () =>
|
|
758
740
|
await transaction(async () => {
|
|
@@ -815,7 +797,7 @@ const createTabularPersister = (
|
|
|
815
797
|
thing,
|
|
816
798
|
getThing,
|
|
817
799
|
columnType,
|
|
818
|
-
|
|
800
|
+
upsert,
|
|
819
801
|
encode,
|
|
820
802
|
decode,
|
|
821
803
|
) => {
|
|
@@ -826,7 +808,7 @@ const createTabularPersister = (
|
|
|
826
808
|
querySchema,
|
|
827
809
|
onIgnoredError,
|
|
828
810
|
columnType,
|
|
829
|
-
|
|
811
|
+
upsert,
|
|
830
812
|
encode,
|
|
831
813
|
decode,
|
|
832
814
|
);
|
|
@@ -1039,7 +1021,7 @@ const createCustomSqlitePersister = (
|
|
|
1039
1021
|
persist,
|
|
1040
1022
|
thing,
|
|
1041
1023
|
getThing = 'getDb',
|
|
1042
|
-
|
|
1024
|
+
upsert,
|
|
1043
1025
|
) => {
|
|
1044
1026
|
let dataVersion;
|
|
1045
1027
|
let schemaVersion;
|
|
@@ -1108,7 +1090,7 @@ const createCustomSqlitePersister = (
|
|
|
1108
1090
|
thing,
|
|
1109
1091
|
getThing,
|
|
1110
1092
|
EMPTY_STRING,
|
|
1111
|
-
|
|
1093
|
+
upsert,
|
|
1112
1094
|
(cellOrValue) =>
|
|
1113
1095
|
cellOrValue === true ? 1 : cellOrValue === false ? 0 : cellOrValue,
|
|
1114
1096
|
void 0,
|
|
@@ -1202,7 +1184,7 @@ const createCustomPostgreSqlPersister = (
|
|
|
1202
1184
|
thing,
|
|
1203
1185
|
getThing,
|
|
1204
1186
|
'text',
|
|
1205
|
-
0,
|
|
1187
|
+
void 0,
|
|
1206
1188
|
(cellOrValue) => jsonString(cellOrValue),
|
|
1207
1189
|
(field) => jsonParse(field),
|
|
1208
1190
|
);
|
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.2" 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>5.1kB</em>, the ui-react-dom components are another <em>2.5kB</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.6kB</td></tr><tr><th class="right">tinybase (complete)</th><td>11.4kB</td><td>118.8kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react/">ui-react</a></th><td>5.1kB</td><td>54.1kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react-dom/">ui-react-dom</a></th><td>2.5kB</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,282</td><td>2,282</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>986</td><td>986</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>854</td><td>854</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,195</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,285</td><td>2,285</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,466</td><td>2,466</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>853</td><td>853</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,193</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
|
@@ -404,7 +404,7 @@ const createCustomPersister = (
|
|
|
404
404
|
};
|
|
405
405
|
|
|
406
406
|
const MASK6 = 63;
|
|
407
|
-
const ENCODE = strSplit(
|
|
407
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
408
408
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
409
409
|
);
|
|
410
410
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -404,7 +404,7 @@ const createCustomPersister = (
|
|
|
404
404
|
};
|
|
405
405
|
|
|
406
406
|
const MASK6 = 63;
|
|
407
|
-
const ENCODE = strSplit(
|
|
407
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
408
408
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
409
409
|
);
|
|
410
410
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -404,7 +404,7 @@ const createCustomPersister = (
|
|
|
404
404
|
};
|
|
405
405
|
|
|
406
406
|
const MASK6 = 63;
|
|
407
|
-
const ENCODE = strSplit(
|
|
407
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
408
408
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
409
409
|
);
|
|
410
410
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -406,7 +406,7 @@ const createCustomPersister = (
|
|
|
406
406
|
};
|
|
407
407
|
|
|
408
408
|
const MASK6 = 63;
|
|
409
|
-
const ENCODE = strSplit(
|
|
409
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
410
410
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
411
411
|
);
|
|
412
412
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -406,7 +406,7 @@ const createCustomPersister = (
|
|
|
406
406
|
};
|
|
407
407
|
|
|
408
408
|
const MASK6 = 63;
|
|
409
|
-
const ENCODE = strSplit(
|
|
409
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
410
410
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
411
411
|
);
|
|
412
412
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -430,7 +430,7 @@ const createCustomPersister = (
|
|
|
430
430
|
};
|
|
431
431
|
|
|
432
432
|
const MASK6 = 63;
|
|
433
|
-
const ENCODE = strSplit(
|
|
433
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
434
434
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
435
435
|
);
|
|
436
436
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -430,7 +430,7 @@ const createCustomPersister = (
|
|
|
430
430
|
};
|
|
431
431
|
|
|
432
432
|
const MASK6 = 63;
|
|
433
|
-
const ENCODE = strSplit(
|
|
433
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
434
434
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
435
435
|
);
|
|
436
436
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -429,7 +429,7 @@ const createCustomPersister = (
|
|
|
429
429
|
};
|
|
430
430
|
|
|
431
431
|
const MASK6 = 63;
|
|
432
|
-
const ENCODE = strSplit(
|
|
432
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
433
433
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
434
434
|
);
|
|
435
435
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -429,7 +429,7 @@ const createCustomPersister = (
|
|
|
429
429
|
};
|
|
430
430
|
|
|
431
431
|
const MASK6 = 63;
|
|
432
|
-
const ENCODE = strSplit(
|
|
432
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
433
433
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
434
434
|
);
|
|
435
435
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -404,7 +404,7 @@ const createCustomPersister = (
|
|
|
404
404
|
};
|
|
405
405
|
|
|
406
406
|
const MASK6 = 63;
|
|
407
|
-
const ENCODE = strSplit(
|
|
407
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
408
408
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
409
409
|
);
|
|
410
410
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -1954,8 +1954,6 @@ const pairNewMap = () => [mapNew(), mapNew()];
|
|
|
1954
1954
|
const pairClone = (array) => [...array];
|
|
1955
1955
|
const pairIsEqual = ([entry1, entry2]) => entry1 === entry2;
|
|
1956
1956
|
|
|
1957
|
-
strSplit('-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz');
|
|
1958
|
-
|
|
1959
1957
|
const defaultSorter = (sortKey1, sortKey2) =>
|
|
1960
1958
|
(sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
|
|
1961
1959
|
|
|
@@ -1954,8 +1954,6 @@ const pairNewMap = () => [mapNew(), mapNew()];
|
|
|
1954
1954
|
const pairClone = (array) => [...array];
|
|
1955
1955
|
const pairIsEqual = ([entry1, entry2]) => entry1 === entry2;
|
|
1956
1956
|
|
|
1957
|
-
strSplit('-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz');
|
|
1958
|
-
|
|
1959
1957
|
const defaultSorter = (sortKey1, sortKey2) =>
|
|
1960
1958
|
(sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
|
|
1961
1959
|
|
package/umd/common/index.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
22
22
|
|
|
23
23
|
const MASK6 = 63;
|
|
24
|
-
const ENCODE = strSplit(
|
|
24
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
25
25
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
26
26
|
);
|
|
27
27
|
const encode = (num) => ENCODE[num & MASK6];
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
22
22
|
|
|
23
23
|
const MASK6 = 63;
|
|
24
|
-
const ENCODE = strSplit(
|
|
24
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
25
25
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
26
26
|
);
|
|
27
27
|
const encode = (num) => ENCODE[num & MASK6];
|
package/umd/es6/common/index.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
|
|
22
22
|
|
|
23
23
|
const MASK6 = 63;
|
|
24
|
-
const ENCODE = strSplit(
|
|
24
|
+
const ENCODE = /* @__PURE__ */ strSplit(
|
|
25
25
|
'-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
|
|
26
26
|
);
|
|
27
27
|
const encode = (num) => ENCODE[num & MASK6];
|