tinybase 5.0.0-beta.1 → 5.0.0-beta.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/lib/cjs/mergeable-store.cjs +1 -0
- package/lib/cjs/mergeable-store.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -0
- package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +1863 -0
- package/lib/debug/persisters/persister-automerge.js +54 -53
- package/lib/debug/persisters/persister-browser.js +28 -18
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +80 -57
- package/lib/debug/persisters/persister-electric-sql.js +80 -57
- package/lib/debug/persisters/persister-expo-sqlite-next.js +80 -57
- package/lib/debug/persisters/persister-expo-sqlite.js +80 -57
- package/lib/debug/persisters/persister-file.js +27 -18
- package/lib/debug/persisters/persister-indexed-db.js +34 -23
- package/lib/debug/persisters/persister-partykit-client.js +26 -23
- package/lib/debug/persisters/persister-partykit-server.js +11 -21
- package/lib/debug/persisters/persister-remote.js +28 -18
- package/lib/debug/persisters/persister-sqlite-wasm.js +80 -57
- package/lib/debug/persisters/persister-sqlite3.js +80 -57
- package/lib/debug/persisters/persister-yjs.js +50 -48
- package/lib/debug/persisters.js +27 -18
- package/lib/debug/queries.js +2 -2
- package/lib/debug/store.js +63 -71
- package/lib/debug/tinybase.js +354 -90
- package/lib/debug/tools.js +13 -15
- package/lib/debug/ui-react-dom.js +115 -119
- package/lib/es6/mergeable-store.js +1 -0
- package/lib/es6/mergeable-store.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/mergeable-store.js +1 -0
- package/lib/mergeable-store.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/mergeable-store.d.ts +79 -0
- package/lib/types/persisters/persister-automerge.d.ts +8 -7
- package/lib/types/persisters/persister-browser.d.ts +2 -0
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +1 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +1 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -0
- package/lib/types/persisters/persister-file.d.ts +1 -0
- package/lib/types/persisters/persister-indexed-db.d.ts +1 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +1 -0
- package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
- package/lib/types/persisters/persister-remote.d.ts +1 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +1 -0
- package/lib/types/persisters/persister-yjs.d.ts +1 -0
- package/lib/types/persisters.d.ts +50 -30
- package/lib/types/store.d.ts +241 -186
- package/lib/types/tinybase.d.ts +1 -0
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/ui-react.d.ts +1 -0
- package/lib/types/with-schemas/internal/store.d.ts +4 -0
- package/lib/types/with-schemas/mergeable-store.d.ts +112 -0
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +8 -7
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -0
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +1 -0
- package/lib/types/with-schemas/persisters.d.ts +81 -45
- package/lib/types/with-schemas/store.d.ts +364 -273
- package/lib/types/with-schemas/tinybase.d.ts +1 -0
- package/lib/types/with-schemas/tools.d.ts +2 -2
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -0
- package/lib/umd/mergeable-store.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -0
- package/lib/umd-es6/mergeable-store.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/package.json +39 -35
- package/readme.md +2 -2
package/lib/types/tinybase.d.ts
CHANGED
package/lib/types/tools.d.ts
CHANGED
|
@@ -417,7 +417,7 @@ export interface Tools {
|
|
|
417
417
|
* await createTools(store).getPrettyStoreApi('shop');
|
|
418
418
|
*
|
|
419
419
|
* const dTsLines = dTs.split('\n');
|
|
420
|
-
* console.log(dTsLines[
|
|
420
|
+
* console.log(dTsLines[15]);
|
|
421
421
|
* // -> `export type Tables = {pets?: {[rowId: Id]: {price?: number}}};`
|
|
422
422
|
*
|
|
423
423
|
* const tsLines = ts.split('\n');
|
|
@@ -437,7 +437,7 @@ export interface Tools {
|
|
|
437
437
|
* await createTools(store).getPrettyStoreApi('shop');
|
|
438
438
|
*
|
|
439
439
|
* const dTsLines = dTs.split('\n');
|
|
440
|
-
* console.log(dTsLines[
|
|
440
|
+
* console.log(dTsLines[15]);
|
|
441
441
|
* // -> 'export type Tables = {pets?: {[rowId: Id]: {price: number}}};'
|
|
442
442
|
*
|
|
443
443
|
* const tsLines = ts.split('\n');
|
package/lib/types/ui-react.d.ts
CHANGED
|
@@ -212,6 +212,7 @@ export type UndoOrRedoInformation = [boolean, Callback, Id | undefined, string];
|
|
|
212
212
|
* useSetTableCallback hook or useSetRowCallback hook - so that the Id arguments
|
|
213
213
|
* of the object to set can also be dependent on the event or parameter
|
|
214
214
|
* provided (as well as the object itself being set).
|
|
215
|
+
* @category Identity
|
|
215
216
|
*/
|
|
216
217
|
export type GetId<Parameter> = (parameter: Parameter, store: Store) => Id;
|
|
217
218
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Cell,
|
|
3
|
+
OptionalSchemas,
|
|
3
4
|
OptionalTablesSchema,
|
|
4
5
|
OptionalValuesSchema,
|
|
6
|
+
Store,
|
|
5
7
|
Value,
|
|
6
8
|
} from '../store';
|
|
7
9
|
import {Id} from '../common';
|
|
@@ -100,3 +102,5 @@ export type Truncate<Params> = Params extends [...infer ShorterParams, any]
|
|
|
100
102
|
: never;
|
|
101
103
|
|
|
102
104
|
export type NoInfer<Type> = [Type][Type extends any ? 0 : never];
|
|
105
|
+
|
|
106
|
+
export type StoreAlias<Schemas extends OptionalSchemas> = Store<Schemas>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mergeable-store module
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @module mergeable-store
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
Cell,
|
|
9
|
+
NoSchemas,
|
|
10
|
+
OptionalSchemas,
|
|
11
|
+
OptionalTablesSchema,
|
|
12
|
+
OptionalValuesSchema,
|
|
13
|
+
Store,
|
|
14
|
+
Value,
|
|
15
|
+
} from './store.d';
|
|
16
|
+
import {Id} from './common';
|
|
17
|
+
import {IdObj} from '../../common/obj';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The Time type
|
|
21
|
+
* @category Stamps
|
|
22
|
+
*/
|
|
23
|
+
export type Time = string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The Stamp type
|
|
27
|
+
* @category Stamps
|
|
28
|
+
*/
|
|
29
|
+
export type Stamp<Thing> = [time: Time, thing: Thing];
|
|
30
|
+
|
|
31
|
+
type MergeableCell<Schema extends OptionalTablesSchema> = Stamp<Cell<
|
|
32
|
+
Schema,
|
|
33
|
+
any,
|
|
34
|
+
any
|
|
35
|
+
> | null>;
|
|
36
|
+
type MergeableRow<Schema extends OptionalTablesSchema> = Stamp<IdObj<
|
|
37
|
+
MergeableCell<Schema>
|
|
38
|
+
> | null>;
|
|
39
|
+
type MergeableTable<Schema extends OptionalTablesSchema> = Stamp<IdObj<
|
|
40
|
+
MergeableRow<Schema>
|
|
41
|
+
> | null>;
|
|
42
|
+
type MergeableTables<Schema extends OptionalTablesSchema> = Stamp<
|
|
43
|
+
IdObj<MergeableTable<Schema>>
|
|
44
|
+
>;
|
|
45
|
+
type MergeableValue<Schema extends OptionalValuesSchema> = Stamp<Value<
|
|
46
|
+
Schema,
|
|
47
|
+
any,
|
|
48
|
+
any
|
|
49
|
+
> | null>;
|
|
50
|
+
type MergeableValues<Schema extends OptionalValuesSchema> = Stamp<
|
|
51
|
+
IdObj<MergeableValue<Schema>>
|
|
52
|
+
>;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The MergeableContent type
|
|
56
|
+
* @category Mergeable
|
|
57
|
+
*/
|
|
58
|
+
export type MergeableContent<Schemas extends OptionalSchemas> = Stamp<
|
|
59
|
+
[
|
|
60
|
+
mergeableTables: MergeableTables<Schemas[0]>,
|
|
61
|
+
mergeableValues: MergeableValues<Schemas[1]>,
|
|
62
|
+
]
|
|
63
|
+
>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The MergeableChanges type
|
|
67
|
+
* @category Mergeable
|
|
68
|
+
*/
|
|
69
|
+
export type MergeableChanges<Schemas extends OptionalSchemas> =
|
|
70
|
+
MergeableContent<Schemas>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The MergeableStore type
|
|
74
|
+
* @category Mergeable
|
|
75
|
+
*/
|
|
76
|
+
export interface MergeableStore<Schemas extends OptionalSchemas>
|
|
77
|
+
extends Store<Schemas> {
|
|
78
|
+
//
|
|
79
|
+
/**
|
|
80
|
+
* The merge method
|
|
81
|
+
* @category Merging
|
|
82
|
+
*/
|
|
83
|
+
merge(mergeableStore: MergeableStore<Schemas>): MergeableStore<Schemas>;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The getMergeableContent method
|
|
87
|
+
* @category Merging
|
|
88
|
+
*/
|
|
89
|
+
getMergeableContent(): MergeableContent<Schemas>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The setMergeableContent method
|
|
93
|
+
* @category Merging
|
|
94
|
+
*/
|
|
95
|
+
setMergeableContent(
|
|
96
|
+
mergeableContent: MergeableContent<Schemas>,
|
|
97
|
+
): MergeableStore<Schemas>;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The applyMergeableChanges method
|
|
101
|
+
* @category Merging
|
|
102
|
+
*/
|
|
103
|
+
applyMergeableChanges(
|
|
104
|
+
mergeableChanges: MergeableChanges<Schemas>,
|
|
105
|
+
): MergeableStore<Schemas>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The createMergeableStore function
|
|
110
|
+
* @category Creation
|
|
111
|
+
*/
|
|
112
|
+
export function createMergeableStore(id: Id): MergeableStore<NoSchemas>;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import {OptionalSchemas, Store} from '../store';
|
|
15
|
-
import {DocHandle} from 'automerge-repo';
|
|
15
|
+
import {DocHandle} from '@automerge/automerge-repo';
|
|
16
16
|
import {Persister} from '../persisters';
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -21,6 +21,7 @@ import {Persister} from '../persisters';
|
|
|
21
21
|
*
|
|
22
22
|
* It simply provides an extra getDocHandle method for accessing the Automerge
|
|
23
23
|
* document handler the Store is being persisted to.
|
|
24
|
+
* @category Persister
|
|
24
25
|
* @since v4.3.14
|
|
25
26
|
*/
|
|
26
27
|
export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
@@ -86,7 +87,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
86
87
|
* await persister.save();
|
|
87
88
|
* // Store will be saved to the document.
|
|
88
89
|
*
|
|
89
|
-
* console.log(docHandler.doc);
|
|
90
|
+
* console.log(await docHandler.doc());
|
|
90
91
|
* // -> {tinybase: {t: {pets: {fido: {species: 'dog'}}}, v: {}}}
|
|
91
92
|
*
|
|
92
93
|
* persister.destroy();
|
|
@@ -102,7 +103,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
102
103
|
* network: [new BroadcastChannelNetworkAdapter()],
|
|
103
104
|
* });
|
|
104
105
|
* const docHandler1 = repo1.create();
|
|
105
|
-
* await docHandler1.
|
|
106
|
+
* await docHandler1.doc();
|
|
106
107
|
* const store1 = createStore();
|
|
107
108
|
* const persister1 = createAutomergePersister(store1, docHandler1);
|
|
108
109
|
* await persister1.startAutoLoad();
|
|
@@ -113,7 +114,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
113
114
|
* network: [new BroadcastChannelNetworkAdapter()],
|
|
114
115
|
* });
|
|
115
116
|
* const docHandler2 = repo2.find(docHandler1.documentId);
|
|
116
|
-
* await docHandler2.
|
|
117
|
+
* await docHandler2.doc();
|
|
117
118
|
* const store2 = createStore();
|
|
118
119
|
* const persister2 = createAutomergePersister(store2, docHandler2);
|
|
119
120
|
* await persister2.startAutoLoad();
|
|
@@ -122,9 +123,9 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
|
122
123
|
* // A function that waits briefly and then for the documents to synchronize
|
|
123
124
|
* // with each other, merely for the purposes of sequentiality in this example.
|
|
124
125
|
* const syncDocsWait = async () => {
|
|
125
|
-
* await new Promise((resolve) => setTimeout(() => resolve(0),
|
|
126
|
-
* await docHandler1.
|
|
127
|
-
* await docHandler2.
|
|
126
|
+
* await new Promise((resolve) => setTimeout(() => resolve(0), 100));
|
|
127
|
+
* await docHandler1.doc();
|
|
128
|
+
* await docHandler2.doc();
|
|
128
129
|
* };
|
|
129
130
|
*
|
|
130
131
|
* // Wait for the documents to synchronize in their initial state.
|
|
@@ -23,6 +23,7 @@ import {Persister} from '../persisters';
|
|
|
23
23
|
*
|
|
24
24
|
* It simply provides an extra getStorageName method for accessing the unique
|
|
25
25
|
* key of the storage location the Store is being persisted to.
|
|
26
|
+
* @category Persister
|
|
26
27
|
* @since v4.3.14
|
|
27
28
|
*/
|
|
28
29
|
export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
@@ -55,6 +56,7 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
|
55
56
|
*
|
|
56
57
|
* It simply provides an extra getStorageName method for accessing the unique
|
|
57
58
|
* key of the storage location the Store is being persisted to.
|
|
59
|
+
* @category Persister
|
|
58
60
|
* @since v4.3.14
|
|
59
61
|
*/
|
|
60
62
|
export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
@@ -18,6 +18,7 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
|
18
18
|
*
|
|
19
19
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
20
20
|
* database instance the Store is being persisted to.
|
|
21
|
+
* @category Persister
|
|
21
22
|
* @since v4.3.14
|
|
22
23
|
*/
|
|
23
24
|
export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
@@ -18,6 +18,7 @@ import {ElectricClient} from 'electric-sql/client/model';
|
|
|
18
18
|
*
|
|
19
19
|
* It simply provides an extra getElectricClient method for accessing a
|
|
20
20
|
* reference to the Electric client the Store is being persisted to.
|
|
21
|
+
* @category Persister
|
|
21
22
|
* @since v4.6.0
|
|
22
23
|
*/
|
|
23
24
|
export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
|
|
@@ -30,6 +30,7 @@ import {SQLiteDatabase} from 'expo-sqlite/next';
|
|
|
30
30
|
*
|
|
31
31
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
32
32
|
* database instance the Store is being persisted to.
|
|
33
|
+
* @category Persister
|
|
33
34
|
* @since v4.5.0
|
|
34
35
|
*/
|
|
35
36
|
export interface ExpoSqliteNextPersister<Schemas extends OptionalSchemas>
|
|
@@ -29,6 +29,7 @@ import {SQLiteDatabase} from 'expo-sqlite';
|
|
|
29
29
|
*
|
|
30
30
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
31
31
|
* database instance the Store is being persisted to.
|
|
32
|
+
* @category Persister
|
|
32
33
|
* @since v4.3.14
|
|
33
34
|
*/
|
|
34
35
|
export interface ExpoSqlitePersister<Schemas extends OptionalSchemas>
|
|
@@ -14,6 +14,7 @@ import {Persister} from '../persisters';
|
|
|
14
14
|
*
|
|
15
15
|
* It simply provides an extra getFilePath method for accessing the location of
|
|
16
16
|
* the local file the Store is being persisted to.
|
|
17
|
+
* @category Persister
|
|
17
18
|
* @since v4.3.14
|
|
18
19
|
*/
|
|
19
20
|
export interface FilePersister<Schemas extends OptionalSchemas>
|
|
@@ -15,6 +15,7 @@ import {Persister} from '../persisters';
|
|
|
15
15
|
*
|
|
16
16
|
* It simply provides an extra getDbName method for accessing the unique key of
|
|
17
17
|
* the IndexedDB the Store is being persisted to.
|
|
18
|
+
* @category Persister
|
|
18
19
|
* @since v4.3.14
|
|
19
20
|
*/
|
|
20
21
|
export interface IndexedDbPersister<Schemas extends OptionalSchemas>
|
|
@@ -29,6 +29,7 @@ import {Persister} from '../persisters';
|
|
|
29
29
|
*
|
|
30
30
|
* It simply provides an extra getConnection method for accessing the
|
|
31
31
|
* PartySocket the Store is being persisted to.
|
|
32
|
+
* @category Persister
|
|
32
33
|
* @since v4.3.14
|
|
33
34
|
*/
|
|
34
35
|
export interface PartyKitPersister<Schemas extends OptionalSchemas>
|
|
@@ -21,14 +21,13 @@
|
|
|
21
21
|
import {
|
|
22
22
|
Cell,
|
|
23
23
|
CellOrUndefined,
|
|
24
|
+
Changes,
|
|
25
|
+
Content,
|
|
24
26
|
NoTablesSchema,
|
|
25
27
|
NoValuesSchema,
|
|
26
28
|
OptionalSchemas,
|
|
27
|
-
Tables,
|
|
28
|
-
TransactionChanges,
|
|
29
29
|
Value,
|
|
30
30
|
ValueOrUndefined,
|
|
31
|
-
Values,
|
|
32
31
|
} from '../store';
|
|
33
32
|
import {Connection, Party, Request, Server} from 'partykit/server';
|
|
34
33
|
import {Id} from '../common';
|
|
@@ -149,6 +148,11 @@ export type TinyBasePartyKitServerConfig = {
|
|
|
149
148
|
* @since v4.3.0
|
|
150
149
|
*/
|
|
151
150
|
export class TinyBasePartyKitServer implements Server {
|
|
151
|
+
/**
|
|
152
|
+
* The constructor is used to create the server.
|
|
153
|
+
* @category Creation
|
|
154
|
+
* @since v4.3.9
|
|
155
|
+
*/
|
|
152
156
|
constructor(party: Party);
|
|
153
157
|
/**
|
|
154
158
|
* The config property is used to optionally configure the server, using an
|
|
@@ -590,7 +594,7 @@ export function hasStoreInStorage(
|
|
|
590
594
|
* loadStoreFromStorage(
|
|
591
595
|
* storage: Storage,
|
|
592
596
|
* storagePrefix?: string,
|
|
593
|
-
* ): Promise<
|
|
597
|
+
* ): Promise<Content>;
|
|
594
598
|
* ```
|
|
595
599
|
*
|
|
596
600
|
* This is intended for specialist applications that require the ability to
|
|
@@ -611,18 +615,18 @@ export function hasStoreInStorage(
|
|
|
611
615
|
export function loadStoreFromStorage<Schemas extends OptionalSchemas>(
|
|
612
616
|
storage: Storage,
|
|
613
617
|
storagePrefix?: string,
|
|
614
|
-
): Promise<
|
|
618
|
+
): Promise<Content<Schemas>>;
|
|
615
619
|
|
|
616
620
|
/**
|
|
617
|
-
* The
|
|
621
|
+
* The broadcastChanges function allows you to broadcast Store
|
|
618
622
|
* changes to all the client connections of a TinyBasePartyKitServer.
|
|
619
623
|
*
|
|
620
624
|
* This has schema-based typing. The following is a simplified representation:
|
|
621
625
|
*
|
|
622
626
|
* ```ts override
|
|
623
|
-
*
|
|
627
|
+
* broadcastChanges(
|
|
624
628
|
* server: TinyBasePartyKitServer,
|
|
625
|
-
*
|
|
629
|
+
* changes: Changes,
|
|
626
630
|
* without?: string[],
|
|
627
631
|
* ): Promise<void>;
|
|
628
632
|
* ```
|
|
@@ -633,15 +637,15 @@ export function loadStoreFromStorage<Schemas extends OptionalSchemas>(
|
|
|
633
637
|
* The function is asynchronous, so you should use the `await` keyword or handle
|
|
634
638
|
* its completion as a promise.
|
|
635
639
|
* @param server A reference to the TinyBasePartyKitServer object.
|
|
636
|
-
* @param
|
|
640
|
+
* @param changes The Store changes to broadcast to the server's
|
|
637
641
|
* clients.
|
|
638
642
|
* @param without An optional array of client connection Ids to exclude from the
|
|
639
643
|
* broadcast.
|
|
640
644
|
* @category Connection
|
|
641
645
|
* @since v4.5.1
|
|
642
646
|
*/
|
|
643
|
-
export function
|
|
647
|
+
export function broadcastChanges<Schemas extends OptionalSchemas>(
|
|
644
648
|
server: TinyBasePartyKitServer,
|
|
645
|
-
|
|
649
|
+
changes: Changes<Schemas>,
|
|
646
650
|
without?: string[],
|
|
647
651
|
): Promise<void>;
|
|
@@ -15,6 +15,7 @@ import {Persister} from '../persisters';
|
|
|
15
15
|
*
|
|
16
16
|
* It simply provides an extra getUrls method for accessing the URLs the Store
|
|
17
17
|
* is being persisted to.
|
|
18
|
+
* @category Persister
|
|
18
19
|
* @since v4.3.14
|
|
19
20
|
*/
|
|
20
21
|
export interface RemotePersister<Schemas extends OptionalSchemas>
|
|
@@ -17,6 +17,7 @@ import {OptionalSchemas, Store} from '../store';
|
|
|
17
17
|
*
|
|
18
18
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
19
19
|
* database instance the Store is being persisted to.
|
|
20
|
+
* @category Persister
|
|
20
21
|
* @since v4.3.14
|
|
21
22
|
*/
|
|
22
23
|
export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
@@ -18,6 +18,7 @@ import {Database} from 'sqlite3';
|
|
|
18
18
|
*
|
|
19
19
|
* It simply provides an extra getDb method for accessing a reference to the
|
|
20
20
|
* database instance the Store is being persisted to.
|
|
21
|
+
* @category Persister
|
|
21
22
|
* @since v4.3.14
|
|
22
23
|
*/
|
|
23
24
|
export interface Sqlite3Persister<Schemas extends OptionalSchemas>
|
|
@@ -20,6 +20,7 @@ import {Doc as YDoc} from 'yjs';
|
|
|
20
20
|
*
|
|
21
21
|
* It simply provides an extra getYDoc method for accessing the Yjs document the
|
|
22
22
|
* Store is being persisted to.
|
|
23
|
+
* @category Persister
|
|
23
24
|
* @since v4.3.14
|
|
24
25
|
*/
|
|
25
26
|
export interface YjsPersister<Schemas extends OptionalSchemas>
|