tinybase 5.0.0-beta.5 → 5.0.0-beta.6
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 -1
- 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-libsql.cjs +1 -1
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sync.cjs +1 -0
- package/lib/cjs/persisters/persister-sync.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.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -1
- 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-libsql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sync.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-sync.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.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +287 -130
- package/lib/debug/persisters/persister-automerge.js +39 -46
- package/lib/debug/persisters/persister-browser.js +39 -46
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +64 -60
- package/lib/debug/persisters/persister-electric-sql.js +64 -60
- package/lib/debug/persisters/persister-expo-sqlite-next.js +64 -60
- package/lib/debug/persisters/persister-expo-sqlite.js +64 -60
- package/lib/debug/persisters/persister-file.js +39 -46
- package/lib/debug/persisters/persister-indexed-db.js +39 -46
- package/lib/debug/persisters/persister-libsql.js +64 -60
- package/lib/debug/persisters/persister-partykit-client.js +39 -46
- package/lib/debug/persisters/persister-powersync.js +917 -0
- package/lib/debug/persisters/persister-remote.js +39 -46
- package/lib/debug/persisters/persister-sqlite-wasm.js +64 -60
- package/lib/debug/persisters/persister-sqlite3.js +64 -60
- package/lib/debug/persisters/persister-sync.js +594 -0
- package/lib/debug/persisters/persister-yjs.js +41 -48
- package/lib/debug/persisters.js +38 -45
- package/lib/debug/store.js +44 -32
- package/lib/debug/tinybase.js +322 -173
- package/lib/debug/tools.js +2 -2
- package/lib/debug/ui-react-dom.js +81 -76
- package/lib/debug/ui-react.js +1 -1
- package/lib/es6/mergeable-store.js +1 -1
- 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-libsql.js +1 -1
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -0
- package/lib/es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-sync.js +1 -0
- package/lib/es6/persisters/persister-sync.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.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/mergeable-store.js +1 -1
- 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-libsql.js +1 -1
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -0
- package/lib/persisters/persister-powersync.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-sync.js +1 -0
- package/lib/persisters/persister-sync.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/checkpoints.d.ts +2 -2
- package/lib/types/indexes.d.ts +2 -2
- package/lib/types/mergeable-store.d.ts +121 -59
- package/lib/types/metrics.d.ts +2 -2
- package/lib/types/persisters/persister-automerge.d.ts +3 -0
- package/lib/types/persisters/persister-browser.d.ts +9 -2
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +3 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +3 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +3 -0
- package/lib/types/persisters/persister-file.d.ts +5 -1
- package/lib/types/persisters/persister-indexed-db.d.ts +3 -0
- package/lib/types/persisters/persister-libsql.d.ts +3 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +3 -0
- package/lib/types/persisters/persister-powersync.d.ts +157 -0
- package/lib/types/persisters/persister-remote.d.ts +3 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +3 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +3 -0
- package/lib/types/persisters/persister-sync.d.ts +182 -0
- package/lib/types/persisters/persister-yjs.d.ts +5 -2
- package/lib/types/persisters.d.ts +60 -3
- package/lib/types/queries.d.ts +2 -2
- package/lib/types/relationships.d.ts +2 -2
- package/lib/types/store.d.ts +36 -3
- package/lib/types/tinybase.d.ts +9 -9
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/ui-react.d.ts +8 -8
- package/lib/types/with-schemas/checkpoints.d.ts +2 -2
- package/lib/types/with-schemas/indexes.d.ts +2 -2
- package/lib/types/with-schemas/mergeable-store.d.ts +185 -87
- package/lib/types/with-schemas/metrics.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +13 -6
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-file.d.ts +7 -3
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-libsql.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-sync.d.ts +195 -0
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +6 -3
- package/lib/types/with-schemas/persisters.d.ts +79 -7
- package/lib/types/with-schemas/queries.d.ts +3 -3
- package/lib/types/with-schemas/relationships.d.ts +2 -2
- package/lib/types/with-schemas/store.d.ts +100 -3
- package/lib/types/with-schemas/tinybase.d.ts +9 -9
- package/lib/types/with-schemas/tools.d.ts +2 -2
- package/lib/types/with-schemas/ui-react.d.ts +8 -8
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -1
- 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-libsql.js +1 -1
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -0
- package/lib/umd/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-sync.js +1 -0
- package/lib/umd/persisters/persister-sync.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.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -1
- 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-libsql.js +1 -1
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -0
- package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sync.js +1 -0
- package/lib/umd-es6/persisters/persister-sync.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.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +37 -26
- package/readme.md +2 -2
|
@@ -22,8 +22,6 @@ const arrayShift = (array) => array.shift();
|
|
|
22
22
|
const object = Object;
|
|
23
23
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
24
24
|
const objEntries = object.entries;
|
|
25
|
-
const objIds = object.keys;
|
|
26
|
-
const objFreeze = object.freeze;
|
|
27
25
|
const isObject = (obj) =>
|
|
28
26
|
!isUndefined(obj) &&
|
|
29
27
|
ifNotUndefined(
|
|
@@ -34,6 +32,8 @@ const isObject = (obj) =>
|
|
|
34
32
|
/* istanbul ignore next */
|
|
35
33
|
() => true,
|
|
36
34
|
);
|
|
35
|
+
const objIds = object.keys;
|
|
36
|
+
const objFreeze = object.freeze;
|
|
37
37
|
const objNew = (entries = []) => object.fromEntries(entries);
|
|
38
38
|
const objHas = (obj, id) => id in obj;
|
|
39
39
|
const objToArray = (obj, cb) =>
|
|
@@ -68,7 +68,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
|
68
68
|
|
|
69
69
|
const scheduleRunning = mapNew();
|
|
70
70
|
const scheduleActions = mapNew();
|
|
71
|
-
const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
|
|
72
71
|
const getStoreFunctions = (supportsMergeableStore, store) =>
|
|
73
72
|
!supportsMergeableStore || isUndefined(store.getMergeableContent)
|
|
74
73
|
? [
|
|
@@ -93,16 +92,15 @@ const createCustomPersister = (
|
|
|
93
92
|
delPersisterListener,
|
|
94
93
|
onIgnoredError,
|
|
95
94
|
supportsMergeableStore,
|
|
96
|
-
|
|
95
|
+
extra = {},
|
|
97
96
|
scheduleId = [],
|
|
98
97
|
) => {
|
|
99
|
-
let listenerId;
|
|
100
98
|
let loadSave = 0;
|
|
101
99
|
let loads = 0;
|
|
102
100
|
let saves = 0;
|
|
103
|
-
let listening = 0;
|
|
104
101
|
let action;
|
|
105
|
-
let
|
|
102
|
+
let autoLoadHandle;
|
|
103
|
+
let autoSaveListenerId;
|
|
106
104
|
mapEnsure(scheduleRunning, scheduleId, () => 0);
|
|
107
105
|
mapEnsure(scheduleActions, scheduleId, () => []);
|
|
108
106
|
const [isMergeableStore, getContent, getChanges, hasChanges] =
|
|
@@ -138,55 +136,51 @@ const createCustomPersister = (
|
|
|
138
136
|
}
|
|
139
137
|
return persister;
|
|
140
138
|
};
|
|
139
|
+
const setContentOrChanges = (contentOrChanges) => {
|
|
140
|
+
(isMergeableStore && isString(contentOrChanges?.[0])
|
|
141
|
+
? contentOrChanges?.[1][2] === 1
|
|
142
|
+
? store.applyMergeableChanges
|
|
143
|
+
: store.setMergeableContent
|
|
144
|
+
: contentOrChanges?.[2] === 1
|
|
145
|
+
? store.applyChanges
|
|
146
|
+
: store.setContent)(contentOrChanges);
|
|
147
|
+
};
|
|
141
148
|
const persister = {
|
|
142
149
|
load: async (initialTables, initialValues) =>
|
|
143
150
|
await loadLock(async () => {
|
|
144
151
|
try {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
: store.setContent)(content);
|
|
149
|
-
} catch {
|
|
152
|
+
setContentOrChanges(await getPersisted());
|
|
153
|
+
} catch (error) {
|
|
154
|
+
onIgnoredError?.(error);
|
|
150
155
|
store.setContent([initialTables, initialValues]);
|
|
151
156
|
}
|
|
152
157
|
}),
|
|
153
158
|
startAutoLoad: async (initialTables = {}, initialValues = {}) => {
|
|
154
|
-
persister.stopAutoLoad();
|
|
155
|
-
|
|
156
|
-
listening = 1;
|
|
157
|
-
listeningHandle = addPersisterListener(
|
|
159
|
+
await persister.stopAutoLoad().load(initialTables, initialValues);
|
|
160
|
+
autoLoadHandle = addPersisterListener(
|
|
158
161
|
async (getContent2, getChanges2) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
)
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
const content = getContent2?.() ?? (await getPersisted());
|
|
170
|
-
(isMergeableStore && isMergeable(content)
|
|
171
|
-
? store.setMergeableContent
|
|
172
|
-
: store.setContent)(content);
|
|
173
|
-
} catch (error) {
|
|
174
|
-
onIgnoredError?.(error);
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
}
|
|
162
|
+
const changes = getChanges2?.();
|
|
163
|
+
await loadLock(async () => {
|
|
164
|
+
try {
|
|
165
|
+
setContentOrChanges(
|
|
166
|
+
changes ?? getContent2?.() ?? (await getPersisted()),
|
|
167
|
+
);
|
|
168
|
+
} catch (error) {
|
|
169
|
+
onIgnoredError?.(error);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
178
172
|
},
|
|
179
173
|
);
|
|
180
174
|
return persister;
|
|
181
175
|
},
|
|
182
176
|
stopAutoLoad: () => {
|
|
183
|
-
if (
|
|
184
|
-
delPersisterListener(
|
|
185
|
-
|
|
186
|
-
listening = 0;
|
|
177
|
+
if (autoLoadHandle) {
|
|
178
|
+
delPersisterListener(autoLoadHandle);
|
|
179
|
+
autoLoadHandle = void 0;
|
|
187
180
|
}
|
|
188
181
|
return persister;
|
|
189
182
|
},
|
|
183
|
+
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
190
184
|
save: async (getChanges2) => {
|
|
191
185
|
/* istanbul ignore else */
|
|
192
186
|
if (loadSave != 1) {
|
|
@@ -208,7 +202,7 @@ const createCustomPersister = (
|
|
|
208
202
|
},
|
|
209
203
|
startAutoSave: async () => {
|
|
210
204
|
await persister.stopAutoSave().save();
|
|
211
|
-
|
|
205
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
212
206
|
const changes = getChanges();
|
|
213
207
|
if (hasChanges(changes)) {
|
|
214
208
|
persister.save(() => changes);
|
|
@@ -217,10 +211,11 @@ const createCustomPersister = (
|
|
|
217
211
|
return persister;
|
|
218
212
|
},
|
|
219
213
|
stopAutoSave: () => {
|
|
220
|
-
ifNotUndefined(
|
|
221
|
-
|
|
214
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
215
|
+
autoSaveListenerId = void 0;
|
|
222
216
|
return persister;
|
|
223
217
|
},
|
|
218
|
+
isAutoSaving: () => !isUndefined(autoSaveListenerId),
|
|
224
219
|
schedule: async (...actions) => {
|
|
225
220
|
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
226
221
|
await run();
|
|
@@ -229,10 +224,8 @@ const createCustomPersister = (
|
|
|
229
224
|
getStore: () => store,
|
|
230
225
|
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
231
226
|
getStats: () => ({loads, saves}),
|
|
227
|
+
...extra,
|
|
232
228
|
};
|
|
233
|
-
if (getThing) {
|
|
234
|
-
persister[getThing] = () => thing;
|
|
235
|
-
}
|
|
236
229
|
return objFreeze(persister);
|
|
237
230
|
};
|
|
238
231
|
|
|
@@ -240,7 +233,7 @@ const DELETE = 'delete';
|
|
|
240
233
|
const getYContent = (yContent) => [yContent.get(T), yContent.get(V)];
|
|
241
234
|
const getChangesFromYDoc = (yContent, events) => {
|
|
242
235
|
if (size(events) == 1 && arrayIsEmpty(events[0].path)) {
|
|
243
|
-
return [yContent.get(T).toJSON(), yContent.get(V).toJSON()];
|
|
236
|
+
return [yContent.get(T).toJSON(), yContent.get(V).toJSON(), 1];
|
|
244
237
|
}
|
|
245
238
|
const [yTables, yValues] = getYContent(yContent);
|
|
246
239
|
const tables = {};
|
|
@@ -286,7 +279,7 @@ const getChangesFromYDoc = (yContent, events) => {
|
|
|
286
279
|
(values[valueId] = action == DELETE ? null : yValues.get(valueId)),
|
|
287
280
|
),
|
|
288
281
|
);
|
|
289
|
-
return [tables, values];
|
|
282
|
+
return [tables, values, 1];
|
|
290
283
|
};
|
|
291
284
|
const applyChangesToYDoc = (yContent, getContent, getChanges) => {
|
|
292
285
|
if (!yContent.size) {
|
|
@@ -405,7 +398,7 @@ const createYjsPersister = (
|
|
|
405
398
|
delPersisterListener,
|
|
406
399
|
onIgnoredError,
|
|
407
400
|
false,
|
|
408
|
-
|
|
401
|
+
{getYDoc: () => yDoc},
|
|
409
402
|
);
|
|
410
403
|
};
|
|
411
404
|
|
package/lib/debug/persisters.js
CHANGED
|
@@ -13,8 +13,6 @@ const arrayShift = (array) => array.shift();
|
|
|
13
13
|
|
|
14
14
|
const object = Object;
|
|
15
15
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
16
|
-
const objIds = object.keys;
|
|
17
|
-
const objFreeze = object.freeze;
|
|
18
16
|
const isObject = (obj) =>
|
|
19
17
|
!isUndefined(obj) &&
|
|
20
18
|
ifNotUndefined(
|
|
@@ -25,6 +23,8 @@ const isObject = (obj) =>
|
|
|
25
23
|
/* istanbul ignore next */
|
|
26
24
|
() => true,
|
|
27
25
|
);
|
|
26
|
+
const objIds = object.keys;
|
|
27
|
+
const objFreeze = object.freeze;
|
|
28
28
|
const objSize = (obj) => size(objIds(obj));
|
|
29
29
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
30
30
|
|
|
@@ -46,7 +46,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
|
46
46
|
|
|
47
47
|
const scheduleRunning = mapNew();
|
|
48
48
|
const scheduleActions = mapNew();
|
|
49
|
-
const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
|
|
50
49
|
const getStoreFunctions = (supportsMergeableStore, store) =>
|
|
51
50
|
!supportsMergeableStore || isUndefined(store.getMergeableContent)
|
|
52
51
|
? [
|
|
@@ -71,16 +70,15 @@ const createCustomPersister = (
|
|
|
71
70
|
delPersisterListener,
|
|
72
71
|
onIgnoredError,
|
|
73
72
|
supportsMergeableStore,
|
|
74
|
-
|
|
73
|
+
extra = {},
|
|
75
74
|
scheduleId = [],
|
|
76
75
|
) => {
|
|
77
|
-
let listenerId;
|
|
78
76
|
let loadSave = 0;
|
|
79
77
|
let loads = 0;
|
|
80
78
|
let saves = 0;
|
|
81
|
-
let listening = 0;
|
|
82
79
|
let action;
|
|
83
|
-
let
|
|
80
|
+
let autoLoadHandle;
|
|
81
|
+
let autoSaveListenerId;
|
|
84
82
|
mapEnsure(scheduleRunning, scheduleId, () => 0);
|
|
85
83
|
mapEnsure(scheduleActions, scheduleId, () => []);
|
|
86
84
|
const [isMergeableStore, getContent, getChanges, hasChanges] =
|
|
@@ -116,55 +114,51 @@ const createCustomPersister = (
|
|
|
116
114
|
}
|
|
117
115
|
return persister;
|
|
118
116
|
};
|
|
117
|
+
const setContentOrChanges = (contentOrChanges) => {
|
|
118
|
+
(isMergeableStore && isString(contentOrChanges?.[0])
|
|
119
|
+
? contentOrChanges?.[1][2] === 1
|
|
120
|
+
? store.applyMergeableChanges
|
|
121
|
+
: store.setMergeableContent
|
|
122
|
+
: contentOrChanges?.[2] === 1
|
|
123
|
+
? store.applyChanges
|
|
124
|
+
: store.setContent)(contentOrChanges);
|
|
125
|
+
};
|
|
119
126
|
const persister = {
|
|
120
127
|
load: async (initialTables, initialValues) =>
|
|
121
128
|
await loadLock(async () => {
|
|
122
129
|
try {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
: store.setContent)(content);
|
|
127
|
-
} catch {
|
|
130
|
+
setContentOrChanges(await getPersisted());
|
|
131
|
+
} catch (error) {
|
|
132
|
+
onIgnoredError?.(error);
|
|
128
133
|
store.setContent([initialTables, initialValues]);
|
|
129
134
|
}
|
|
130
135
|
}),
|
|
131
136
|
startAutoLoad: async (initialTables = {}, initialValues = {}) => {
|
|
132
|
-
persister.stopAutoLoad();
|
|
133
|
-
|
|
134
|
-
listening = 1;
|
|
135
|
-
listeningHandle = addPersisterListener(
|
|
137
|
+
await persister.stopAutoLoad().load(initialTables, initialValues);
|
|
138
|
+
autoLoadHandle = addPersisterListener(
|
|
136
139
|
async (getContent2, getChanges2) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
(
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const content = getContent2?.() ?? (await getPersisted());
|
|
148
|
-
(isMergeableStore && isMergeable(content)
|
|
149
|
-
? store.setMergeableContent
|
|
150
|
-
: store.setContent)(content);
|
|
151
|
-
} catch (error) {
|
|
152
|
-
onIgnoredError?.(error);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
140
|
+
const changes = getChanges2?.();
|
|
141
|
+
await loadLock(async () => {
|
|
142
|
+
try {
|
|
143
|
+
setContentOrChanges(
|
|
144
|
+
changes ?? getContent2?.() ?? (await getPersisted()),
|
|
145
|
+
);
|
|
146
|
+
} catch (error) {
|
|
147
|
+
onIgnoredError?.(error);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
156
150
|
},
|
|
157
151
|
);
|
|
158
152
|
return persister;
|
|
159
153
|
},
|
|
160
154
|
stopAutoLoad: () => {
|
|
161
|
-
if (
|
|
162
|
-
delPersisterListener(
|
|
163
|
-
|
|
164
|
-
listening = 0;
|
|
155
|
+
if (autoLoadHandle) {
|
|
156
|
+
delPersisterListener(autoLoadHandle);
|
|
157
|
+
autoLoadHandle = void 0;
|
|
165
158
|
}
|
|
166
159
|
return persister;
|
|
167
160
|
},
|
|
161
|
+
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
168
162
|
save: async (getChanges2) => {
|
|
169
163
|
/* istanbul ignore else */
|
|
170
164
|
if (loadSave != 1) {
|
|
@@ -186,7 +180,7 @@ const createCustomPersister = (
|
|
|
186
180
|
},
|
|
187
181
|
startAutoSave: async () => {
|
|
188
182
|
await persister.stopAutoSave().save();
|
|
189
|
-
|
|
183
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
190
184
|
const changes = getChanges();
|
|
191
185
|
if (hasChanges(changes)) {
|
|
192
186
|
persister.save(() => changes);
|
|
@@ -195,10 +189,11 @@ const createCustomPersister = (
|
|
|
195
189
|
return persister;
|
|
196
190
|
},
|
|
197
191
|
stopAutoSave: () => {
|
|
198
|
-
ifNotUndefined(
|
|
199
|
-
|
|
192
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
193
|
+
autoSaveListenerId = void 0;
|
|
200
194
|
return persister;
|
|
201
195
|
},
|
|
196
|
+
isAutoSaving: () => !isUndefined(autoSaveListenerId),
|
|
202
197
|
schedule: async (...actions) => {
|
|
203
198
|
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
204
199
|
await run();
|
|
@@ -207,10 +202,8 @@ const createCustomPersister = (
|
|
|
207
202
|
getStore: () => store,
|
|
208
203
|
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
209
204
|
getStats: () => ({loads, saves}),
|
|
205
|
+
...extra,
|
|
210
206
|
};
|
|
211
|
-
if (getThing) {
|
|
212
|
-
persister[getThing] = () => thing;
|
|
213
|
-
}
|
|
214
207
|
return objFreeze(persister);
|
|
215
208
|
};
|
|
216
209
|
|
package/lib/debug/store.js
CHANGED
|
@@ -50,9 +50,7 @@ const arrayShift = (array) => array.shift();
|
|
|
50
50
|
const object = Object;
|
|
51
51
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
52
52
|
const objEntries = object.entries;
|
|
53
|
-
const objIds = object.keys;
|
|
54
53
|
const objFrozen = object.isFrozen;
|
|
55
|
-
const objFreeze = object.freeze;
|
|
56
54
|
const isObject = (obj) =>
|
|
57
55
|
!isUndefined(obj) &&
|
|
58
56
|
ifNotUndefined(
|
|
@@ -63,6 +61,8 @@ const isObject = (obj) =>
|
|
|
63
61
|
/* istanbul ignore next */
|
|
64
62
|
() => true,
|
|
65
63
|
);
|
|
64
|
+
const objIds = object.keys;
|
|
65
|
+
const objFreeze = object.freeze;
|
|
66
66
|
const objHas = (obj, id) => id in obj;
|
|
67
67
|
const objDel = (obj, id) => {
|
|
68
68
|
delete obj[id];
|
|
@@ -72,6 +72,23 @@ const objToArray = (obj, cb) =>
|
|
|
72
72
|
arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
|
|
73
73
|
const objSize = (obj) => size(objIds(obj));
|
|
74
74
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
75
|
+
const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
|
|
76
|
+
if (
|
|
77
|
+
isUndefined(obj) ||
|
|
78
|
+
!isObject(obj) ||
|
|
79
|
+
(!emptyIsValid && objIsEmpty(obj)) ||
|
|
80
|
+
objFrozen(obj)
|
|
81
|
+
) {
|
|
82
|
+
onInvalidObj?.();
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
objToArray(obj, (child, id) => {
|
|
86
|
+
if (!validateChild(child, id)) {
|
|
87
|
+
objDel(obj, id);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return emptyIsValid ? true : !objIsEmpty(obj);
|
|
91
|
+
};
|
|
75
92
|
|
|
76
93
|
const collSizeN = (collSizer) => (coll) =>
|
|
77
94
|
arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
|
|
@@ -108,24 +125,28 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
108
125
|
mapForEach(map, (id) => (objHas(obj, id) ? 0 : del(map, id)));
|
|
109
126
|
return map;
|
|
110
127
|
};
|
|
111
|
-
const mapToObj = (map,
|
|
128
|
+
const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
|
|
112
129
|
const obj = {};
|
|
113
|
-
collForEach(map, (
|
|
114
|
-
|
|
115
|
-
|
|
130
|
+
collForEach(map, (mapValue, id) => {
|
|
131
|
+
if (!excludeMapValue?.(mapValue, id)) {
|
|
132
|
+
const objValue = valueMapper ? valueMapper(mapValue, id) : mapValue;
|
|
133
|
+
excludeObjValue?.(objValue) ? 0 : (obj[id] = objValue);
|
|
134
|
+
}
|
|
116
135
|
});
|
|
117
136
|
return obj;
|
|
118
137
|
};
|
|
119
|
-
const mapToObj2 = (map,
|
|
138
|
+
const mapToObj2 = (map, valueMapper, excludeMapValue) =>
|
|
120
139
|
mapToObj(
|
|
121
140
|
map,
|
|
122
|
-
(childMap) => mapToObj(childMap,
|
|
141
|
+
(childMap) => mapToObj(childMap, valueMapper, excludeMapValue),
|
|
142
|
+
collIsEmpty,
|
|
123
143
|
objIsEmpty,
|
|
124
144
|
);
|
|
125
|
-
const mapToObj3 = (map,
|
|
145
|
+
const mapToObj3 = (map, valueMapper, excludeMapValue) =>
|
|
126
146
|
mapToObj(
|
|
127
147
|
map,
|
|
128
|
-
(childMap) => mapToObj2(childMap,
|
|
148
|
+
(childMap) => mapToObj2(childMap, valueMapper, excludeMapValue),
|
|
149
|
+
collIsEmpty,
|
|
129
150
|
objIsEmpty,
|
|
130
151
|
);
|
|
131
152
|
const mapClone = (map, mapValue) => {
|
|
@@ -278,18 +299,6 @@ const jsonParse = JSON.parse;
|
|
|
278
299
|
const defaultSorter = (sortKey1, sortKey2) =>
|
|
279
300
|
(sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
|
|
280
301
|
|
|
281
|
-
const validate = (obj, validateChild, onInvalidObj) => {
|
|
282
|
-
if (isUndefined(obj) || !isObject(obj) || objIsEmpty(obj) || objFrozen(obj)) {
|
|
283
|
-
onInvalidObj?.();
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
objToArray(obj, (child, id2) => {
|
|
287
|
-
if (!validateChild(child, id2)) {
|
|
288
|
-
objDel(obj, id2);
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
return !objIsEmpty(obj);
|
|
292
|
-
};
|
|
293
302
|
const idsChanged = (changedIds, id2, addedOrRemoved) =>
|
|
294
303
|
mapSet(
|
|
295
304
|
changedIds,
|
|
@@ -349,13 +358,13 @@ const createStore = () => {
|
|
|
349
358
|
const [addListener, callListeners, delListenerImpl, callListenerImpl] =
|
|
350
359
|
getListenerFunctions(() => store);
|
|
351
360
|
const validateTablesSchema = (tableSchema) =>
|
|
352
|
-
|
|
353
|
-
|
|
361
|
+
objValidate(tableSchema, (tableSchema2) =>
|
|
362
|
+
objValidate(tableSchema2, validateCellOrValueSchema),
|
|
354
363
|
);
|
|
355
364
|
const validateValuesSchema = (valuesSchema) =>
|
|
356
|
-
|
|
365
|
+
objValidate(valuesSchema, validateCellOrValueSchema);
|
|
357
366
|
const validateCellOrValueSchema = (schema) => {
|
|
358
|
-
if (!
|
|
367
|
+
if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
|
|
359
368
|
return false;
|
|
360
369
|
}
|
|
361
370
|
const type = schema[TYPE];
|
|
@@ -368,18 +377,18 @@ const createStore = () => {
|
|
|
368
377
|
return true;
|
|
369
378
|
};
|
|
370
379
|
const validateTables = (tables) =>
|
|
371
|
-
|
|
380
|
+
objValidate(tables, validateTable, cellInvalid);
|
|
372
381
|
const validateTable = (table, tableId) =>
|
|
373
382
|
(!hasTablesSchema ||
|
|
374
383
|
collHas(tablesSchemaMap, tableId) ||
|
|
375
384
|
cellInvalid(tableId)) &&
|
|
376
|
-
|
|
385
|
+
objValidate(
|
|
377
386
|
table,
|
|
378
387
|
(row, rowId) => validateRow(tableId, rowId, row),
|
|
379
388
|
() => cellInvalid(tableId),
|
|
380
389
|
);
|
|
381
390
|
const validateRow = (tableId, rowId, row, skipDefaults) =>
|
|
382
|
-
|
|
391
|
+
objValidate(
|
|
383
392
|
skipDefaults ? row : addDefaultsToRow(row, tableId, rowId),
|
|
384
393
|
(cell, cellId) =>
|
|
385
394
|
ifNotUndefined(
|
|
@@ -406,7 +415,7 @@ const createStore = () => {
|
|
|
406
415
|
? cellInvalid(tableId, rowId, cellId, cell)
|
|
407
416
|
: cell;
|
|
408
417
|
const validateValues = (values, skipDefaults) =>
|
|
409
|
-
|
|
418
|
+
objValidate(
|
|
410
419
|
skipDefaults ? values : addDefaultsToValues(values),
|
|
411
420
|
(value, valueId) =>
|
|
412
421
|
ifNotUndefined(
|
|
@@ -1249,17 +1258,20 @@ const createStore = () => {
|
|
|
1249
1258
|
: mapToObj(
|
|
1250
1259
|
row,
|
|
1251
1260
|
([, newCell]) => newCell,
|
|
1252
|
-
(
|
|
1261
|
+
(changedCell) => pairIsEqual(changedCell),
|
|
1253
1262
|
),
|
|
1263
|
+
collIsEmpty,
|
|
1254
1264
|
objIsEmpty,
|
|
1255
1265
|
),
|
|
1266
|
+
collIsEmpty,
|
|
1256
1267
|
objIsEmpty,
|
|
1257
1268
|
),
|
|
1258
1269
|
mapToObj(
|
|
1259
1270
|
changedValues,
|
|
1260
1271
|
([, newValue]) => newValue,
|
|
1261
|
-
(
|
|
1272
|
+
(changedValue) => pairIsEqual(changedValue),
|
|
1262
1273
|
),
|
|
1274
|
+
1,
|
|
1263
1275
|
];
|
|
1264
1276
|
const getTransactionLog = () => [
|
|
1265
1277
|
!collIsEmpty(changedCells),
|