tinybase 4.4.0-beta.0 → 4.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/cjs/checkpoints.cjs +1 -1
- package/lib/cjs/checkpoints.cjs.gz +0 -0
- package/lib/cjs/indexes.cjs +1 -1
- package/lib/cjs/indexes.cjs.gz +0 -0
- package/lib/cjs/metrics.cjs +1 -1
- package/lib/cjs/metrics.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-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/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/relationships.cjs +1 -1
- package/lib/cjs/relationships.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/checkpoints.cjs +1 -1
- package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
- package/lib/cjs-es6/indexes.cjs +1 -1
- package/lib/cjs-es6/indexes.cjs.gz +0 -0
- package/lib/cjs-es6/metrics.cjs +1 -1
- package/lib/cjs-es6/metrics.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-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/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/relationships.cjs +1 -1
- package/lib/cjs-es6/relationships.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/checkpoints.js +12 -12
- package/lib/debug/indexes.js +9 -9
- package/lib/debug/metrics.js +9 -9
- package/lib/debug/persisters/persister-automerge.js +21 -8
- package/lib/debug/persisters/persister-browser.js +17 -3
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +27 -12
- package/lib/debug/persisters/persister-expo-sqlite.js +27 -12
- package/lib/debug/persisters/persister-file.js +17 -3
- package/lib/debug/persisters/persister-indexed-db.js +21 -8
- package/lib/debug/persisters/persister-partykit-client.js +54 -20
- package/lib/debug/persisters/persister-partykit-server.js +173 -77
- package/lib/debug/persisters/persister-remote.js +17 -3
- package/lib/debug/persisters/persister-sqlite-wasm.js +27 -12
- package/lib/debug/persisters/persister-sqlite3.js +28 -13
- package/lib/debug/persisters/persister-yjs.js +23 -10
- package/lib/debug/persisters.js +16 -4
- package/lib/debug/queries.js +16 -15
- package/lib/debug/relationships.js +9 -9
- package/lib/debug/store.js +130 -35
- package/lib/debug/tinybase.js +142 -41
- package/lib/debug/tools.js +17 -9
- package/lib/debug/ui-react-dom.js +262 -150
- package/lib/debug/ui-react.js +26 -18
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/indexes.js +1 -1
- package/lib/es6/indexes.js.gz +0 -0
- package/lib/es6/metrics.js +1 -1
- package/lib/es6/metrics.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-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/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/relationships.js +1 -1
- package/lib/es6/relationships.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-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/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/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/persisters/persister-automerge.d.ts +36 -3
- package/lib/types/persisters/persister-browser.d.ts +71 -8
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +42 -8
- package/lib/types/persisters/persister-expo-sqlite.d.ts +40 -7
- package/lib/types/persisters/persister-file.d.ts +34 -3
- package/lib/types/persisters/persister-indexed-db.d.ts +40 -9
- package/lib/types/persisters/persister-partykit-client.d.ts +99 -13
- package/lib/types/persisters/persister-partykit-server.d.ts +414 -9
- package/lib/types/persisters/persister-remote.d.ts +40 -4
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +46 -7
- package/lib/types/persisters/persister-sqlite3.d.ts +40 -7
- package/lib/types/persisters/persister-yjs.d.ts +37 -5
- package/lib/types/persisters.d.ts +10 -10
- package/lib/types/queries.d.ts +24 -0
- package/lib/types/store.d.ts +911 -31
- package/lib/types/tools.d.ts +4 -6
- package/lib/types/ui-react-dom.d.ts +13 -2
- package/lib/types/ui-react.d.ts +27 -6
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +38 -4
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +75 -10
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +44 -9
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +42 -8
- package/lib/types/with-schemas/persisters/persister-file.d.ts +36 -4
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +42 -10
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +102 -15
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +447 -9
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +42 -5
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +48 -8
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +41 -7
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +39 -6
- package/lib/types/with-schemas/persisters.d.ts +10 -10
- package/lib/types/with-schemas/queries.d.ts +24 -0
- package/lib/types/with-schemas/store.d.ts +1179 -35
- package/lib/types/with-schemas/tools.d.ts +4 -6
- package/lib/types/with-schemas/ui-react-dom.d.ts +21 -4
- package/lib/types/with-schemas/ui-react.d.ts +29 -6
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-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/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/indexes.js +1 -1
- package/lib/umd-es6/indexes.js.gz +0 -0
- package/lib/umd-es6/metrics.js +1 -1
- package/lib/umd-es6/metrics.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-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/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/relationships.js +1 -1
- package/lib/umd-es6/relationships.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +42 -40
- package/readme.md +2 -2
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return P(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{P(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&N(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):k(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),x=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),F),goForward:()=>(E(),D(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?W(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,ke(j(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];O(t,c)||(g(e,he(j(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),F,r,l),A=(e,t,...s)=>P(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),Q=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{p(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[$(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](O,...n)))})),_(O)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(z)||le(Pe[e])?0:de(e?ye(z):z,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return W(x(j((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,F,E,A,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(O),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",d="Result",c="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",v=L+u,I="Sorted"+L+u,S="Cell",R=S+u,T="Value",y=T+"s",C=T+u,p="Has",b=e=>t+e,V=Math.max,m=Math.min,E=isFinite,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),P=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),B=(e,t)=>e.map(t),H=e=>q(e,((e,t)=>e+t),0),$=e=>0==F(e),q=(e,t,s)=>e.reduce(t,s),G=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=e=>X.getPrototypeOf(e),Z=X.keys,_=X.isFrozen,ee=X.freeze,te=e=>!k(e)&&M(Y(e),(e=>e==X.prototype||k(Y(e))),(()=>!0)),se=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>B(X.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>F(Z(e)))(e),re=e=>e?.size??0,le=(e,t)=>e?.has(t)??!1,ie=e=>k(e)||0==re(e),de=e=>[...e?.values()??[]],ce=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>k(s)?(he(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Se=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Te=(e,t,s)=>Re(e,(e=>Re(e,t,s)),oe),ye=(e,t,s)=>Re(e,(e=>Te(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),Ve=(e,t,s,n,a=0)=>M((s?Ie:Le)(e,t[a],a>F(t)-2?s:ge),(o=>{if(a>F(t)-2)return n?.(o)&&ve(e,t[a]),o;const r=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),r})),me=t=>{const s=e(t);return D(s)||s==a&&E(t)?s:void 0},Ee=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(A(e)||k(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),l=ge(),i=ge(),d=ge(),c=ge(),u=ge(),h=(t,s,...n)=>{const a=Ie(u,t,Me);return W(n,(t=>De(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(Le(u,t),(n=>{W($(s)?de(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(u,t)})),f=(e,s)=>{ve(r,e,s),le(l,e)||(ve(l,e,t()),ve(d,e,ge()),ve(c,e,ge()),a(i))},L=e=>{ve(r,e),ve(l,e),ve(d,e),ve(c,e),g(e),a(i)};return[()=>e,()=>fe(r),e=>we(l,e),e=>le(l,e),e=>Le(r,e),e=>Le(l,e),(e,t)=>ve(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=ge(),u=ge(),L=Le(d,t),w=Le(c,t),v=t=>{const a=s=>e.getCell(n,t,s),d=Le(L,t),c=o(n,t)?s(r(a,t)):void 0;if(d===c||A(d)&&A(c)&&O(d,c)||ve(i,t,[d,c]),!k(l)){const e=Le(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&ve(u,t,s)}},I=e=>{a((()=>{ue(i,(([,e],t)=>ve(L,t,e))),ue(u,((e,t)=>ve(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};we(L,v),e.hasTable(n)&&W(e.getRowIds(n),(e=>{le(L,e)||v(e)})),I(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>v(s))),e.addTableListener(n,(()=>I())))},L,e=>n(e,i),()=>we(u,L),h,g]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{Fe.test(t)&&F(e)<1e3&&G(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],d=(()=>[]))=>{s??=e();const c=n(1);return ve(o,c,[a,r,l,i,d]),De(Ve(r,l??[t],Me),c),c},(e,n,...a)=>W(((e,s=[t])=>{const n=[],a=(e,t)=>t==F(s)?G(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):W([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>M(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>M(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=F(r);l==F(t)?e(s,...r,...a(r)):k(t[l])?W(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,r=ge(),l=ge(),i=1;const d=ge(),c=ge(),[u,h,g]=ze((()=>Q)),f=ge(),L=ge(),w=[],v=[],I=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},S=e=>{ve(f,e),ve(L,e),h(c,[e])},R=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??F(e)),S),T=()=>R(w,F(w)-o),y=()=>M(s,(()=>{G(w,s),T(),R(v),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,ge),l=Ie(e,s,ge),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,ve(f,s,[r,l]),A(s,e),r=ge(),l=ge(),a=1),s),m=()=>{$(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),I(0,s),s=K(w),a=1)},E=()=>{$(v)||(G(w,s),s=U(v),I(1,s),a=1)},D=()=>{a&&(h(d),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&Le(L,e)!==t&&(ve(L,e,t),h(c,[e])),Q),x=e=>le(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:x,getCheckpoint:e=>Le(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=z(w,e)?m:z(v,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(g(e),Q),clear:()=>(R(w),R(v),k(s)||S(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return ee(Q.clear())})),Oe=(e,t)=>(e??0)<(t??0)?-1:1,Pe=xe((e=>{const s=ge(),n=ge(),[a,o,r]=ze((()=>S)),[l,i,d,c,u,h,g,,f,L,w,v]=Je(e,ge,(e=>k(e)?t:A(e)?B(e,b):b(e)),a,o),I=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,r,l,i=Oe)=>{const d=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,c,u,f)=>{let L=0;const w=Me(),v=Me(),I=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),M(Le(I,e),(t=>{he(t,s),ie(t)&&(ve(I,e),L=1)}))})),ue(a,(e=>{De(w,e),le(I,e)||(ve(I,e,Me()),L=1),De(Le(I,e),s),k(r)||De(v,e)}))})),t(),ie(u)||(f?we(I,(e=>De(v,e))):we(l,(e=>M(Le(c,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>i(Le(u,t),Le(u,s),e),s=[...Le(I,e)];P(s,t)||(ve(I,e,Me(j(s,t))),De(w,e))}))),(L||f)&&!k(d)){const t=[...I];P(t,d)||(g(e,ge(j(t,d))),L=1)}L&&o(s,[e]),ue(w,(t=>o(n,[e,t])))}),Ae(a),M(r,Ae)),S},delIndexDefinition:e=>(L(e),S),getStore:l,getIndexIds:i,forEachIndex:e=>d(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,h(e)),hasIndex:c,hasSlice:(e,t)=>le(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>de(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),S),destroy:v,getListenerStats:()=>({})};return ee(S)})),je=ge([["avg",[(e,t)=>H(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>H(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),We=(e,t,s,n,a,o=!1)=>{if(ie(s))return;const[r,l,i,d]=a;return o||=k(e),ue(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=k(e))})),o?r(de(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o]=ze((()=>v)),[r,l,i,d,c,u,h,,g,f,L,w]=Je(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),v={setMetricDefinition:(e,t,n,o,r,l,i)=>{const d=J(n)?[n,r,l,i]:Le(je,n)??Le(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const c=u(e),g=re(r);i||=k(c),t();let f=We(c,g,r,n,d,i);E(f)||(f=void 0),f!=c&&(h(e,f),a(s,[e],f,c))}),Ae(o,1)),v},delMetricDefinition:e=>(f(e),v),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),v),destroy:w,getListenerStats:()=>({})};return ee(v)})),He=ge(),$e=ge(),qe=(e,t,s,n,a,o,[r,l]=[],i=[])=>{let d,c,u,h=0,g=0;Ie(He,i,(()=>0)),Ie($e,i,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),d=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(M(d,e.delListener),d=void 0,L),schedule:async(...e)=>(G(Le($e,i),...e),await(async()=>{if(!Le(He,i)){for(ve(He,i,1);!k(c=U(Le($e,i)));)try{await c()}catch(e){o?.(e)}ve(He,i,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>l),ee(L)},Ge=xe((e=>{const s=e.createStore,n=s(),a=s(),o=ge(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=Je(e,(()=>!0),Q,r,l),A=(e,t,...s)=>W(s,(s=>De(Ie(Ie(o,t,ge),e,Me),s))),z=e=>{M(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),ce(e)})),W([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),P={setQueryDefinition:(s,o,r)=>{p(s,o),z(s);const l=[],i=[[null,[o,null,null,[],ge()]]],d=[],c=[],u=[];r({select:(e,s)=>{const n=J(e)?[F(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return G(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],ge()]];return G(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(d,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:Le(je,t)??[(e,t)=>t]]];return G(c,o),{as:e=>o[0]=e}},having:(e,t)=>G(u,J(e)?e:s=>s(e)===t)});const h=ge(l);if(ie(h))return P;const g=ge(i);we(g,((e,[,t])=>M(Le(g,t),(({3:t})=>k(e)?0:G(t,e)))));const f=ge(c);let L=n;if(ie(f)&&$(u))L=a;else{O(s,L,a);const e=ge();we(f,((t,[s,n])=>De(Ie(e,s,Me),[t,n])));const t=Me();we(h,(s=>le(e,s)?0:De(t,s)));const n=ge(),o=(t,n,o,r)=>M(t,(([l,i,d,c])=>{we(n,((t,[s])=>{const n=Ie(l,t,ge),a=Le(n,o),i=r?void 0:s;if(a!==i){const s=Me([[a,i]]),r=re(n);ve(n,o,i),ue(Le(e,t),(([e,t])=>{const a=We(c[e],r,n,s,t);c[e]=k(me(a))?null:a}))}})),ie(i)||!N(u,(e=>e((e=>c[e]))))?a.delRow(s,d):k(d)?t[2]=a.addRow(s,c):a.setRow(s,d,c)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const d=[],c=[],u=ge(),h=L.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);G(d,n),G(c,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&o(Ve(n,d,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&o(Ve(n,c,(()=>{const e={};return ue(t,(t=>e[t]=L.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}O(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,i]=Le(g,n),d=o?.(l,t),[c,u]=Le(i,t)??[];d!=c&&(k(u)||D(s,u),ve(i,t,k(d)?null:[d,...E(s,1,e.addRowListener(a,d,(()=>w(t,a,d,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[Le(g,s)?.[0],Le(Le(g,s)?.[4],t)?.[0],n]);L.transaction((()=>N(d,(e=>e(n)))?we(h,((e,a)=>Ee(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:v}=Le(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,v):(L.delRow(s,a),ue(g,(({4:e})=>M(Le(e,a),(([,t])=>{D(s,t),ve(e,a)})))))}))))),P},delQueryDefinition:e=>(z(e),b(e),P),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(P))),delListener:e=>(u(e),P),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[h]:[1,1],[h+R]:[0,1],[w]:[0,1],[v]:[0,1],[I]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>P[e+d+s]=(...t)=>a[e+s](...t))),P[c+d+s+i]=(...e)=>a[c+s+i](...x(e,0,t),((s,...n)=>e[t](P,...n)),!0)})),ee(P)})),Ke=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i]=ze((()=>y)),[d,c,u,h,g,f,,,L,w,v,I]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>k(e)?void 0:e+t),r,l),S=(e,t,s)=>M(f(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(g(e)!=T(e))De(o,t);else{let e=t;for(;!k(e)&&!le(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>M(f(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(ve(s,e,r),L(e,t,((t,s)=>{const r=Me(),i=Me(),d=Me(),[c,u]=f(e);ue(s,(([t,s],n)=>{k(t)||(De(i,t),M(Le(u,t),(e=>{he(e,n),ie(e)&&ve(u,t)}))),k(s)||(De(i,s),le(u,s)||ve(u,s,Me()),De(Le(u,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(d,t)}))})),t(),ue(r,(t=>l(n,[e,t]))),ue(i,(t=>l(a,[e,t]))),ue(d,(t=>{R(e,t),l(o,[e,t])}))}),Ae(i)),y),delRelationshipDefinition:e=>(ve(s,e),w(e),y),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>de(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(S(e,t,!0)),addRelationshipIdsListener:v,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),r(s,o,[e,t])),delListener:e=>(R(...i(e)??[]),y),destroy:I,getListenerStats:()=>({})};return ee(y)})),Ue=e=>[e,e],Xe=()=>[ge(),ge()],Ye=e=>[...e],Ze=([e,t])=>e===t,_e=e=>JSON.stringify(e,((e,t)=>t instanceof Map?X.fromEntries([...t]):t)),et=JSON.parse,tt=(e,t,s)=>k(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),st=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),nt=()=>{let e,t,s=!1,n=!1,o=!1,d=!1,u=0;const I=ge(),V=ge(),m=ge(),E=ge(),A=ge(),F=ge(),Q=ge(),N=ge(),P=ge(),H=ge(),$=ge(),q=ge(),K=ge(),U=ge(),X=Me(),Y=ge(),Z=ge(),_=ge(),te=ge(),de=Xe(),Ve=Xe(),Je=Xe(),Ae=Xe(),xe=Xe(),Fe=Xe(),Ne=Xe(),Pe=Xe(),je=Xe(),We=Xe(),Be=Xe(),He=Xe(),$e=Xe(),qe=Xe(),Ge=Xe(),Ke=Xe(),at=Xe(),ot=Xe(),rt=Xe(),lt=Xe(),it=Xe(),dt=Xe(),ct=ge(),ut=Xe(),[ht,gt,ft,Lt]=ze((()=>zs)),wt=e=>{if(!tt(e,((e,t)=>z([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},vt=(t,s)=>(!e||le($,s)||Gt(s))&&tt(t,((e,t)=>It(s,t,e)),(()=>Gt(s))),It=(e,t,s,n)=>tt(n?s:yt(s,e,t),((n,a)=>M(St(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Gt(e,t))),St=(t,s,n,a)=>e?M(Le(Le($,t),n),(e=>me(a)!=e[r]?Gt(t,s,n,a,e[l]):a),(()=>Gt(t,s,n,a))):k(me(a))?Gt(t,s,n,a):a,Rt=(e,t)=>tt(t?e:Ct(e),((t,s)=>M(Tt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Kt())),Tt=(e,s)=>t?M(Le(K,e),(t=>me(s)!=t[r]?Kt(e,s,t[l]):s),(()=>Kt(e,s))):k(me(s))?Kt(e,s):s,yt=(e,t,s)=>(M(Le(q,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||Gt(t,s,n)}))})),e),Ct=e=>(t&&(ue(U,((t,s)=>{se(e,s)||(e[s]=t)})),ue(X,(t=>{se(e,t)||Kt(t)}))),e),pt=e=>Se($,e,((e,t,s)=>{const n=ge(),a=Me();Se(Ie($,t,ge),s,((e,t,s)=>{ve(e,t,s),M(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(q,t,[n,a])}),((e,t)=>{ve($,t),ve(q,t)})),bt=e=>Se(K,e,((e,t,s)=>{ve(K,t,s),M(s[l],(e=>ve(U,t,e)),(()=>De(X,t)))}),((e,t)=>{ve(K,t),ve(U,t),he(X,t)})),Vt=e=>oe(e)?Es():Cs(e),mt=e=>Se(_,e,((e,t,s)=>Et(t,s)),((e,t)=>zt(t))),Et=(e,t)=>Se(Ie(_,e,(()=>(jt(e,1),ve(Y,e,Qe()),ve(Z,e,ge()),ge()))),t,((t,s,n)=>kt(e,t,s,n)),((t,s)=>Nt(e,t,s))),kt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Wt(e,s,1),ge()))),n,((t,n,a)=>Mt(e,s,t,n,a)),((n,o)=>Ot(e,t,s,n,o,a))),Mt=(e,t,s,n,a)=>{le(s,n)||Bt(e,t,n,1);const o=Le(s,n);a!==o&&(Ht(e,t,n,o,a),ve(s,n,a))},Dt=(e,t,s,n,a)=>M(Le(t,s),(t=>Mt(e,s,t,n,a)),(()=>kt(e,t,s,yt({[n]:a},e,s)))),Jt=e=>oe(e)?Ds():ps(e),At=e=>Se(te,e,((e,t,s)=>xt(t,s)),((e,t)=>Pt(t))),xt=(e,t)=>{le(te,e)||$t(e,1);const s=Le(te,e);t!==s&&(qt(e,s,t),ve(te,e,t))},Ft=(e,t)=>{const[s]=Le(Y,e),n=s(t);return le(Le(_,e),n)?Ft(e,t):n},Qt=e=>Le(_,e)??Et(e,{}),zt=e=>Et(e,{}),Nt=(e,t,s)=>{const[,n]=Le(Y,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=Le(Le(q,e)?.[0],a);if(!k(r)&&!o)return Mt(e,s,n,a,r);const l=t=>{Ht(e,s,t,Le(n,t)),Bt(e,s,t,-1),ve(n,t)};k(r)?l(a):we(n,l),ie(n)&&(Wt(e,s,-1),ie(ve(t,s))&&(jt(e,-1),ve(_,e),ve(Y,e),ve(Z,e)))},Pt=e=>{const t=Le(U,e);if(!k(t))return xt(e,t);qt(e,Le(te,e)),$t(e,-1),ve(te,e)},jt=(e,t)=>st(I,e,t),Wt=(e,t,s)=>st(Ie(E,e,ge),t,s)&&ve(m,e,Ie(m,e,(()=>0))+s),Bt=(e,t,s,n)=>{const a=Le(Z,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&st(Ie(V,e,ge),s,n),ve(a,s,o!=-n?o+n:null),st(Ie(Ie(A,e,ge),t,ge),s,n)},Ht=(e,t,s,n,a)=>Ie(Ie(Ie(F,e,ge),t,ge),s,(()=>[n,0]))[1]=a,$t=(e,t)=>st(Q,e,t),qt=(e,t,s)=>Ie(N,e,(()=>[t,0]))[1]=s,Gt=(e,t,s,n,a)=>(G(Ie(Ie(Ie(P,e,ge),t,ge),s,(()=>[])),n),a),Kt=(e,t,s)=>(G(Ie(H,e,(()=>[])),t),s),Ut=(e,t,s)=>M(Le(Le(Le(F,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(hs(e,t,s))])),Xt=e=>M(Le(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(Ls(e))])),Yt=e=>ie(P)||ie(Ke[e])?0:ue(e?be(P):P,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>gt(Ke[e],[s,n,a],t))))))),Zt=e=>ie(H)||ie(at[e])?0:ue(e?Ce(H):H,((t,s)=>gt(at[e],[s],t))),_t=(e,t,s,n)=>{if(!ie(e))return gt(t,n,(()=>Re(e))),we(e,((e,t)=>gt(s,[...n??[],e],1==t))),1},es=e=>{const t=ws();t!=o&>(de[e],void 0,t);const s=ie(We[e]),n=ie($e[e])&&ie(qe[e])&&ie(je[e])&&ie(Be[e])&&ie(Fe[e])&&ie(Ne[e])&&ie(Pe[e])&&s&&ie(Je[e])&&ie(Ae[e]),a=ie(Ge[e])&&ie(He[e])&&ie(xe[e])&&ie(Ve[e]);if(!n||!a){const t=e?[Ce(I),pe(V),Ce(m),pe(E),be(A),be(F)]:[I,V,m,E,A,F];if(!n){_t(t[0],Je[e],Ae[e]),ue(t[1],((t,s)=>_t(t,Fe[e],Ne[e],[s]))),ue(t[2],((t,s)=>{0!=t&>(Pe[e],[s],is(s))}));const n=Me();ue(t[3],((t,a)=>{_t(t,je[e],Be[e],[a])&&!s&&(gt(We[e],[a,null]),De(n,a))})),s||ue(t[5],((t,s)=>{if(!le(n,s)){const n=Me();ue(t,(e=>ue(e,(([t,s],a)=>s!==t?De(n,a):he(e,a))))),ue(n,(t=>gt(We[e],[s,t])))}})),ue(t[4],((t,s)=>ue(t,((t,n)=>_t(t,$e[e],qe[e],[s,n])))))}if(!a){let s;ue(t[5],((t,n)=>{let a;ue(t,((t,o)=>{let r;ue(t,(([t,l],i)=>{l!==t&&(gt(Ge[e],[n,o,i],l,t,Ut),s=a=r=1)})),r&>(He[e],[n,o],Ut)})),a&>(xe[e],[n],Ut)})),s&>(Ve[e],void 0,Ut)}}},ts=e=>{const t=Ts();t!=d&>(ot[e],void 0,t);const s=ie(lt[e])&&ie(it[e]),n=ie(dt[e])&&ie(rt[e]);if(!s||!n){const t=e?[Ce(Q),Ce(N)]:[Q,N];if(s||_t(t[0],lt[e],it[e]),!n){let s;ue(t[1],(([t,n],a)=>{n!==t&&(gt(dt[e],[a],n,t,Xt),s=1)})),s&>(rt[e],void 0,Xt)}}},ss=(e,...t)=>(xs((()=>e(...B(t,b)))),zs),ns=()=>[Re(F,((e,t)=>-1===Le(I,t)?null:Re(e,((e,s)=>-1===Le(Le(E,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ze(t)))),oe)),oe),Re(N,(([,e])=>e??null),((e,t)=>Ze(t)))],as=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(F,Ye,Ze),invalidCells:ye(P),changedValues:Re(N,Ye,Ze),invalidValues:Re(H),changedTableIds:Re(I),changedRowIds:Te(E),changedCellIds:ye(A),changedValueIds:Re(Q)}),os=()=>ye(_),rs=()=>fe(_),ls=e=>fe(Le(Z,b(e))),is=e=>re(Le(_,b(e))),ds=e=>fe(Le(_,b(e))),cs=(e,t,s,n=0,a)=>{return B(x(j((o=Le(_,b(e)),r=(e,s)=>[k(t)?s:Le(e,b(t)),s],B([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},us=(e,t)=>fe(Le(Le(_,b(e)),b(t))),hs=(e,t,s)=>Le(Le(Le(_,b(e)),b(t)),b(s)),gs=()=>Re(te),fs=()=>fe(te),Ls=e=>Le(te,b(e)),ws=()=>!ie(_),vs=e=>le(_,b(e)),Is=(e,t)=>le(Le(Z,b(e)),b(t)),Ss=(e,t)=>le(Le(_,b(e)),b(t)),Rs=(e,t,s)=>le(Le(Le(_,b(e)),b(t)),b(s)),Ts=()=>!ie(te),ys=e=>le(te,b(e)),Cs=e=>ss((()=>(e=>tt(e,vt,Gt))(e)?mt(e):0)),ps=e=>ss((()=>Rt(e)?At(e):0)),bs=e=>{try{Vt(et(e))}catch{}return zs},Vs=t=>ss((()=>{if((e=tt(t,(e=>tt(e,wt))))&&(pt(t),!ie(_))){const e=os();Es(),Cs(e)}})),ms=e=>ss((()=>{if(t=(e=>tt(e,wt))(e)){const s=gs();As(),Ds(),t=!0,bt(e),ps(s)}})),Es=()=>ss((()=>mt({}))),ks=e=>ss((e=>le(_,e)?zt(e):0),e),Ms=(e,t)=>ss(((e,t)=>M(Le(_,e),(s=>le(s,t)?Nt(e,s,t):0))),e,t),Ds=()=>ss((()=>At({}))),Js=()=>ss((()=>{pt({}),e=!1})),As=()=>ss((()=>{bt({}),t=!1})),xs=(e,t)=>{if(-1!=u){Fs();const s=e();return Qs(t),s}},Fs=()=>(-1!=u&&u++,1==u&>(ct,void 0,ns,as),zs),Qs=e=>(u>0&&(u--,0==u&&(s=!ie(F),n=!ie(N),u=1,Yt(1),s&&es(1),Zt(1),n&&ts(1),e?.(ns,as)&&(ue(F,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(zs,t,s,n,e))))))),ue(N,(([e],t)=>ke(zs,t,e))),s=n=!1),gt(ut[0],void 0,ns,as),u=-1,Yt(0),s&&es(0),Zt(0),n&&ts(0),gt(ut[1],void 0,ns,as),u=0,s=n=!1,o=ws(),d=Ts(),W([I,V,m,E,A,F,P,Q,N,H],ce))),zs),zs={getContent:()=>[os(),gs()],getTables:os,getTableIds:rs,getTable:e=>Te(Le(_,b(e))),getTableCellIds:ls,getRowCount:is,getRowIds:ds,getSortedRowIds:cs,getRow:(e,t)=>Re(Le(Le(_,b(e)),b(t))),getCellIds:us,getCell:hs,getValues:gs,getValueIds:fs,getValue:Ls,hasTables:ws,hasTable:vs,hasTableCell:Is,hasRow:Ss,hasCell:Rs,hasValues:Ts,hasValue:ys,getTablesJson:()=>_e(_),getValuesJson:()=>_e(te),getJson:()=>_e([_,te]),getTablesSchemaJson:()=>_e($),getValuesSchemaJson:()=>_e(K),getSchemaJson:()=>_e([$,K]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ss((()=>{(oe(e)?Es:Cs)(e),(oe(t)?Ds:ps)(t)})),setTables:Cs,setTable:(e,t)=>ss((e=>vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>ss(((e,t)=>It(e,t,s)?kt(e,Qt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>xs((()=>{let n;return It(e,n,t)&&(e=b(e),kt(e,Qt(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ss(((e,t)=>{if(It(e,t,s,1)){const n=Qt(e);ae(s,((s,a)=>Dt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ss(((e,t,s)=>M(St(e,t,s,J(n)?n(hs(e,t,s)):n),(n=>Dt(e,Qt(e),t,s,n)))),e,t,s),setValues:ps,setPartialValues:e=>ss((()=>Rt(e,1)?ae(e,((e,t)=>xt(t,e))):0)),setValue:(e,t)=>ss((e=>M(Tt(e,J(t)?t(Ls(e)):t),(t=>xt(e,t)))),e),setTransactionChanges:e=>ss((()=>{ae(e[0],((e,t)=>k(e)?ks(t):ae(e,((e,s)=>k(e)?Ms(t,s):ae(e,((e,n)=>Ee(zs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(zs,t,e)))})),setTablesJson:bs,setValuesJson:e=>{try{Jt(et(e))}catch{}return zs},setJson:e=>ss((()=>{try{const[t,s]=et(e);Vt(t),Jt(s)}catch{bs(e)}})),setTablesSchema:Vs,setValuesSchema:ms,setSchema:(e,t)=>ss((()=>{Vs(e),ms(t)})),delTables:Es,delTable:ks,delRow:Ms,delCell:(e,t,s,n)=>ss(((e,t,s)=>M(Le(_,e),(a=>M(Le(a,t),(o=>le(o,s)?Ot(e,a,t,o,s,n):0))))),e,t,s),delValues:Ds,delValue:e=>ss((e=>le(te,e)?Pt(e):0),e),delTablesSchema:Js,delValuesSchema:As,delSchema:()=>ss((()=>{Js(),As()})),transaction:xs,startTransaction:Fs,finishTransaction:Qs,forEachTable:e=>ue(_,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(Z,b(e)),t),forEachRow:(e,t)=>ue(Le(_,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(_,b(e)),b(t)),s),forEachValue:e=>we(te,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=cs(e,t,s,n,a);return ht((()=>{const r=cs(e,t,s,n,a);O(r,l)||(l=r,o(zs,e,t,s,n,a,l))}),We[r?1:0],[e,t],[rs])},addStartTransactionListener:e=>ht(e,ct),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Lt(e),zs),delListener:e=>(ft(e),zs),getListenerStats:()=>({}),createStore:nt,addListener:ht,callListeners:gt};return ae({[p+g]:[0,de,[],()=>[ws()]],[g]:[0,Ve],[f]:[0,Je],[p+h]:[1,Ae,[rs],e=>[vs(...e)]],[h]:[1,xe,[rs]],[h+R]:[1,Fe,[rs]],[p+h+S]:[2,Ne,[rs,ls],e=>[Is(...e)]],[w]:[1,Pe,[rs]],[v]:[1,je,[rs]],[p+L]:[2,Be,[rs,ds],e=>[Ss(...e)]],[L]:[2,He,[rs,ds]],[R]:[2,$e,[rs,ds]],[p+S]:[3,qe,[rs,ds,us],e=>[Rs(...e)]],[S]:[3,Ge,[rs,ds,us],e=>Ue(hs(...e))],InvalidCell:[3,Ke],[p+y]:[0,ot,[],()=>[Ts()]],[y]:[0,rt],[C]:[0,lt],[p+T]:[1,it,[fs],e=>[ys(...e)]],[T]:[1,dt,[fs],e=>Ue(Ls(e[0]))],InvalidValue:[1,at]},(([e,t,s,n],a)=>{zs[c+a+i]=(...a)=>ht(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),ee(zs)};export{Ne as createCheckpoints,qe as createCustomPersister,Pe as createIndexes,Be as createMetrics,Ge as createQueries,Ke as createRelationships,nt as createStore,Oe as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=(e,t,l)=>e.slice(t,l),E=async e=>v.all(e),D=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},O=(e,t)=>e.every(t),N=(e,t)=>e.sort(t),G=(e,t)=>e.forEach(t),L=(e,t=l)=>e.join(t),j=(e,t)=>e.map(t),M=e=>e.length,J=(e,t)=>e.filter(t),z=(e,...t)=>e.push(...t),W=e=>e.pop(),B=(e,...t)=>e.unshift(...t),F=e=>e.shift(),U=Object,_=U.keys,Z=U.freeze,H=e=>x(e,U)&&e.constructor==U,Q=(e,t)=>j(U.entries(e),(([e,l])=>t(l,e))),q=e=>M(_(e)),K=e=>H(e)&&0==q(e),X=(e,t)=>e?.has(t)??!1,Y=e=>[...e?.values()??[]],ee=(e,t)=>e?.forEach(t),te=(e,t)=>e?.delete(t),le=e=>new Map(e),ae=(e,t)=>e?.get(t),ne=(e,t)=>ee(e,((e,l)=>t(l,e))),oe=(e,t)=>j([...e?.entries()??[]],(([e,l])=>t(l,e))),de=(e,t,l)=>R(l)?(te(e,t),e):e?.set(t,l),se=(e,t,l)=>(X(e,t)||de(e,t,l()),ae(e,t)),re=e=>e.toUpperCase(),Ie=e=>e.toLowerCase(),ce="a ",$e="A function for",ue=", and registers a listener so that any changes to that result will cause a re-render",ie="Callback",pe="Del",be="Deps",Ce=be+"?: React.DependencyList",he="doRollback?: DoRollback",me="actions: () => Return, "+he,ge="export",fe="Id",we="Invalid",ye="Json",Te=Ie(I),ve="?: ",Ve=" | undefined",xe="NonNullable",Re="Partial",ke="Props",Se="Provider",Pe=`Registers a ${Te} that will be called`,Ae="Represents",Ee="rowId: "+fe,De="Schema",Oe="Set",Ne=", descending?: boolean, offset?: number, limit?: number",Ge="[]",Le="the Store",je="Transaction",Me=je+"Changes",Je=Ie(je),ze="Execute a "+Je+" to make multiple mutations",We="Explicitly starts a "+Je,Be="Explicitly finishes a "+Je,Fe="the end of the "+Je,Ue="void",_e=" => "+Ue,Ze="WhenSet",He=" when setting it",Qe=ce+"string serialization of",qe=" ",Ke="Gets a callback that can ",Xe="the ",Ye=" the schema for",et=(e=0,t=0)=>`the ${mt[e]}content of`+(t?qe+Le:l),tt=(e=0,t,a=0)=>bt[t]+qe+et(e,1)+(a?" when setting it":l),lt=(e,t=0)=>Ae+` a Row when ${t?"s":"g"}etting ${et()} the '${e}' `+i,at=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,nt=(e,t)=>`Calls a function for each ${e} in `+t,ot=e=>"The props passed to a component that renders "+e,dt=e=>"A function that takes "+e,st=(e,t=0)=>$e+" listening to changes to "+ht[e]+" in "+ht[t],rt=(e,t,a=0)=>Pe+" whenever "+ht[e]+" in "+ht[t]+" change"+(a?l:"s"),It=e=>`the '${e}' `+i,ct=e=>"the specified Row in "+It(e),$t=(e,t=0)=>bt[t]+` ${et()} `+It(e),ut=(e,t=0)=>bt[t]+` ${et()} `+ct(e),it=(e,t,l=0)=>bt[l]+` the '${t}' Cell for `+ct(e),pt=(e,t=0)=>bt[t]+` the '${e}' Value`,bt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ae,"Gets "+Qe,"Sets "+Qe,Pe+" whenever",Ke+"set",Ke+"add",Ke+"set part of",Ke+"delete","Renders","Gets "+Qe+Ye,"Sets"+Ye,"Deletes"+Ye],Ct=[c,"has","set","del","set","forEach",$,l],ht=[Le,p,Xe+i+qe+u,ce+i,Xe+C+qe+u,ce+C,Xe+g+qe+u,ce+g,"invalid Cell changes",y,Xe+w+qe+u,ce+w,"invalid Value changes",Xe+"sorted "+C+qe+u,Xe+g+qe+u+" anywhere",Xe+"number of Rows"],mt=[l,"tabular ","keyed value "],gt=e=>new Set(P(e)||R(e)?e:[e]),ft=(e,t)=>e?.add(t),wt=/[^A-Za-z]+/,yt=/[^A-Za-z0-9]+/,Tt=/^( *)\/\*\* *(.*?) *\*\/$/gm,vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return X(e,n)?Vt(e,t,l,a+1):(de(e,n,l),n)},xt=e=>e.replace(Tt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>L(j(e.split(yt),((e,l)=>(l>0||t?re:Ie)(A(e,0,1))+A(e,1)))),Pt=e=>re(L((e&&!wt.test(e[0])?e:" "+e).split(yt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>L(J(e,(e=>e)),", "),Dt=(...e)=>"{"+L(e,"; ")+"}",Ot=(...e)=>Dt(...j(e,(e=>"readonly "+e))),Nt=()=>{const e=[le(),le(),le(),le()],t=le(),a=le(),n=e=>{const t=e.indexOf(" as ");return-1!=t?A(e,t+4):e};return[(...e)=>L(kt(e),"\n"),(t,l,...a)=>G(a,(a=>G([0,1],(n=>(t??n)==n?ft(se(e[n],l,gt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ae(a,e)===t?e:Vt(a,e,t),(t=0)=>j([...N(oe(e[t],((e,t)=>`import {${L(N(Y(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>oe(t,(([e,t,a,n],o)=>[At(t),`${n?ge+" ":l}type ${o}${a} = ${e};`,l])),()=>oe(a,((e,t)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${t} = ${F(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Q(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>Q(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>Q(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),tt(1,5)),r=e(p+Ze,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),tt(1,5,1)),c=e(i+fe,"keyof "+s,"A "+i+" Id in "+Le),$=`<TId extends ${c}>`,u=e(i,xe+`<${s}[TId]>`,"A "+i+" in "+Le,$),w=e(i+Ze,xe+`<${r}[TId]>`,"A "+i+" in "+Le+He,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+Ze,w+"<TId>[Id]","A "+C+" in a "+i+He,$),v=e(g+fe,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,xe+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ie,`(...[cellId, cell]: ${x}<TId>)`+_e,dt(ce+g+" Id, and "+g),$),S=e(C+ie,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+_e+") "+_e,dt(ce+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ie,`(cellId: ${v}<TId>, count: number) `+_e,dt(ce+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${_e}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ie,`(...[tableId, forEachRow]: ${A})`+_e,dt(ce+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,$e+" returning information about any Cell's changes during a "+Je),N=e(p+I,`(${d}, getCellChange: ${O}${Ve})`+_e,st(1)),G=e(b+I,`(${d})`+_e,st(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${Ve})`+_e,st(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+_e,st(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+_e,st(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+_e,st(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+Ve,"descending: boolean","offset: number","limit: number"+Ve,"sortedRowIds: Ids")+")"+_e,st(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ee,`getCellChange: ${O}${Ve}`)+")"+_e,st(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ee)+")"+_e,st(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ee}, cellId: CId, newCell: ${V}<TId, CId> ${Ve}, oldCell: ${V}<TId, CId> ${Ve}, getCellChange: ${O} ${Ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+_e,st(7,5)),e(we+g+I,`(${d}, tableId: Id, ${Ee}, cellId: Id, invalidCells: any[])`+_e,st(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),tt(2,5)),s=e(y+Ze,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),tt(2,5,1)),r=e(w+fe,"keyof "+d,"A "+w+" Id in "+Le),c=e(w,xe+`<${d}[VId]>`,"A "+w+" Id in "+Le,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Le,`<VId = ${r}>`,0),u=e(w+ie,`(...[valueId, value]: ${$})`+_e,dt(ce+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,$e+" returning information about any Value's changes during a "+Je),p=e(y+I,`(${o}, getValueChange: ${i}${Ve})`+_e,st(9)),b=e(T+I,`(${o})`+_e,st(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${Ve}, oldValue: ${c}<VId> ${Ve}, getValueChange: ${i} ${Ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+_e,st(11)),e(we+w+I,`(${o}, valueId: Id, invalidValues: any[])`+_e,st(12))]},(t,l)=>e(je+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+_e,$e+" listening to the completion of a "+Je)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[N,j,M]=jt(v,E,D,O),J=le(),W=(e=0)=>oe(J,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||B(r,At(o)),z(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(J,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(Ct[e]+t+(4==e?Re:l)+a,d,n,(n==H?Jt:Mt)(Ct[e]+(4==e?Re:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+Te+": "+t+(d?", mutator?: boolean":l),fe,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),q=[],X=le();let ee=[],te=[];if(c(1,Z,H,`create${H} as create${H}Decl`),K(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,J,W,B,F,K,te,ne,oe]=N(Q,H),se=le();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Ae+` the '${e}' `+i),v(t+i+Ze,I+l,Ae+` the '${e}' `+i+He),v(t+C,$+l,lt(e)),v(t+C+Ze,w+l,lt(e,1)),v(t+g+fe,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ie,V+l,dt(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ie,k+l,dt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ie,P+l,dt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];de(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,J,W,B,F,K,te,ne,oe),ee=[e,a,n,y,O,j,M,J,W,B,F,K,te,ne,se],G([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,tt(1,n),t,a))),U(0,l,b,n+Ge,at(i,Le)),U(5,l,i,Ue,nt(i,Le),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=ae(se,e);G([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,$t(e,s),o,a+d))),U(0,t,i+f,u,at(g,"the whole of "+It(e)),l,a),U(5,t,i+g,Ue,nt(i+g,"the whole of "+It(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+It(e),l,a),U(0,t,h,u,at(C,It(e)),l,a),U(0,t,m,u,at(C,It(e),1),"cellId?: "+I+Ne,a+", cellId, descending, offset, limit"),U(5,t,C,Ue,nt(C,It(e)),"rowCallback: "+$,a+", rowCallback as any"),G([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,ut(e,s),Ee+o,a+", rowId"+d))),U(6,t,C,fe+Ve,"Add a new Row to "+It(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ge,at(g,ct(e)),Ee,a+", rowId"),U(5,t,g,Ue,nt(g,ct(e)),Ee+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);de(X,d,c);const $=d+(R(s)?Ve:l);G([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,it(e,n,c),Ee+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,bt[1]+` the '${n}' Cell anywhere in `+It(e),l,a+", "+r)}))})),U(0,l,p+ye,ye,tt(1,6)),U(2,l,p+ye,H,tt(1,7),"tablesJson: "+ye,"tables"+ye),_(p,O,tt(1,8)+" changes"),_(b,j,rt(2,0,1)),_(i,M,rt(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,J,rt(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,rt(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,rt(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,rt(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+Ve,"descending: boolean","offset: number","limit: number"+Ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,K,rt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,rt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,rt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${L(E((e=>ae(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(we+g,oe,Pe+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...Y(X)),z(q,".set"+p+De+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(K(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),te=[e,a,n,$,u,i],G([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,tt(2,n),t,a))),U(0,l,T,n+Ge,at(w,Le)),U(5,l,w,"void",nt(w,Le),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);de(X,t,s),G([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,pt(e,s),a,n+o)))})),U(0,l,y+ye,ye,tt(2,6)),U(2,l,y+ye,H,tt(2,7),"valuesJson: "+ye,"values"+ye),_(y,$,tt(2,8)+" changes"),_(T,u,rt(10,0,1)),_(w,i,rt(11,0),`valueId: ${n} | null`,"valueId"),_(we+w,p,Pe+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...Y(X)),c(0,t,"ValueChange"),z(q,".set"+y+De+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,tt(0,0)),U(2,l,"Content",H,tt(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Me,H,`Applies a set of ${Me} to the Store`,"transactionChanges: "+Me,"transactionChanges"),ne(X,((e,t)=>v(t,`(cell: ${e}${Ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",fe,"IdOrNull",ye,"Store",Me),c(0,t,"Get"+Me,"GetTransactionLog"),U(0,l,ye,ye,tt(0,6)),U(2,l,ye,H,tt(0,7),"tablesAndValuesJson: "+ye,"tablesAndValuesJson"),U(7,l,Je,"Return",ze,me,"actions, doRollback","<Return>"),U(7,l,"start"+je,H,We),U(7,l,"finish"+je,H,Be,he,"doRollback");const se=M(Q,H);return _("Start"+je,se,Pe+" just before the start of the "+Je,l,l,0),_("WillFinish"+je,se,Pe+" just before "+Fe,l,l,0),_("DidFinish"+je,se,Pe+" just after "+Fe,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Le,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",bt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...W(1),"}"]),[d(...k(0),...P(),ge+" interface "+H+" {",...W(0),"}",l,At(`Creates a ${H} object`),ge+" function create"+H+"(): "+H+";"),d(...k(1),ge+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,te]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+be),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+Ce,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ie+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+_e,Zt),sl="then, then"+be,rl=tl+Xt+fe,Il="View",cl=(e,...t)=>Et(...t,Te+": "+e,Te+Ce,"mutator?: boolean"),$l=(...e)=>Et(...e,Te,Te+be,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),G=St(N),j=N+"Or"+N+fe,M=G+"Or"+N+fe,J=G+`={${G}}`,W=le(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(W,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>oe(W,(([t,a,n,o,d],s)=>{const r=e?[ge+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[ge+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||B(r,At(o)),z(r,l),r}));r(null,t,fe,"Store",ie,Ht+"ized"+ie),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+fe,`Used when you need to refer to a ${N} in a React hook or component`),q=c(Se+ke,Ot(G+ve+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${Se} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,q);const X=M+ve+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+Ce,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+Ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${Se} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${G} : ${M})?.getStore(), ...postParams)`]),te=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ne=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!K(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${G}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ne}(rowIds.map((rowId) => (`,"<Row","{..."+te+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",J,_t,"/>","))",al,", tableId,",");"]),z=$("getDefaultTableComponent","tableId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${L(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,tt(1,0)+ue);const B=_(b,b,n+Ge,at(i,Le)+ue);_(Oe+p+ie,Oe+p+ie,el,tt(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+Ce),Ft(p),Yt,Et(ol,`tables: ${a})`+_e,Zt),sl),_(pe+p+ie,pe+p+ie,ie,tt(1,12),l,l,l,dl,sl);const F=c(g+ke,Ot("tableId?: TId","rowId: Id","cellId?: CId",G+ve+N,Ut),ot(ce+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+ke,Ot("tableId?: TId","rowId: Id",G+ve+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),ot(ce+C),`<TId extends ${n}>`),H=c(i+ke,Ot("tableId?: TId",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+i),`<TId extends ${n}>`),Q=c("Sorted"+i+ke,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+"sorted "+i),`<TId extends ${n}>`),q=c(p+ke,Ot(G+ve+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),ot(et(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+G+", tableComponents, getTableComponentProps"+al+"}: "+q,[ne+`(${B}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+z+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${te}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,_t,"/>;","}), separator)"],tt(1,13)+ue),S(((e,t,a)=>{const[n,o,d,s,I]=ae(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,$t(e)+ue,l,a),_(t+i+f,i+f,u,at(g,"the whole of "+It(e))+ue,l,a);const c=_(t+h,h,u,at(C,It(e))+ue,l,a),$=_(t+m,m,u,at(C,It(e),1)+ue,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,ut(e)+ue,rl,Et(a,tl)),_(t+f,f,I+Ge,at(g,ct(e))+ue,rl,Et(a,tl)),_(Oe+t+i+ie,Oe+i+ie,el,$t(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+Ce),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+_e,Zt),sl),_(pe+t+i+ie,pe+i+ie,ie,$t(e,12),l,a,l,dl,sl),_(Oe+t+C+ie,Oe+C+ie,el,ut(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+Ce),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+_e,Zt),sl),_("Add"+t+C+ie,"Add"+C+ie,el,ut(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+Ce),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+Ve,"store: Store","row: "+s+")"+_e,"then"+Ce)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(Oe+t+Re+C+ie,Oe+Re+C+ie,el,ut(e,11)+Kt,Et(rl,Bt(Re+C)+Qt+s,Bt(Re+C)+Ce),Et(a,tl,Ft(Re+C)),Yt,Et(ol,`partialRow: ${s})`+_e,Zt),sl),_(pe+t+C+ie,pe+C+ie,ie,ut(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+G+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[ne+`(${de}(customCellIds, `+a+`, rowId, ${G}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${te}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",J,_t,"/>;","})"+al+", rowId)"],ut(e,13)+ue);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${G}), ${a}, ${p});`,$t(e,13)+", sorted"+ue),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${G}), ${a}, ${p});`,$t(e,13)+ue),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?Ve:l),it(e,n)+ue,rl,Et(a,tl,s));_(Oe+t+I+g+ie,Oe+g+ie,el,it(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+Ce),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+_e,Zt),sl),_(pe+t+I+g+ie,pe+g+ie,ie,it(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${G}, debugIds}: `+F+`<'${e}', '${n}'>`,[ne+`('' + ${$}(rowId, `+G+`) ?? '', undefined, debugIds, ${s})`],it(e,n,13)+ue)}))}));const K=L(S((e=>ae(j,e)?.[4]??l))," | ");_(p+I,p+I,Ue,tt(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Ue,rt(2,0,1),cl(w),$l()),_(i+I,i+I,Ue,rt(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Ue,rt(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Ue,rt(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Ue,rt(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+Ve,"descending: boolean","offset: number","limit: number"+Ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Ue,rt(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Ue,rt(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Ue,rt(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!K(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",L(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,tt(2,0)+ue);const i=_(T,T,a+Ge,at(w,Le)+ue);_(Oe+y+ie,Oe+y+ie,el,tt(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+Ce),Ft(y),Yt,Et(ol,`values: ${t})`+_e,Zt),sl),_(Oe+Re+y+ie,Oe+Re+y+ie,el,tt(2,11)+Kt,Et(Bt(Re+y)+Qt+t,Bt(Re+y)+Ce),Ft(Re+y),Yt,Et(ol,`partialValues: ${t})`+_e,Zt),sl),_(pe+y+ie,pe+y+ie,ie,tt(2,12),l,l,l,dl,sl);const p=c(w+ke,Ot("valueId?: VId",G+ve+N,Ut),ot("a Value"),`<VId extends ${a}>`),b=c(y+ke,Ot(G+ve+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),ot(et(2,1)));r(1,D,b,p),Z(y+Il,"{"+G+", valueComponents, getValueComponentProps"+al+"}: "+b,[ne+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${te}(getValueComponentProps, valueId)}`,"key={valueId}",J,_t,"/>;","}), separator)"],tt(2,13)+ue),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,pt(e)+ue,l,n);_(Oe+o+w+ie,Oe+w+ie,el,pt(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+Ce),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+_e,Zt),sl),_(pe+o+w+ie,pe+w+ie,ie,pt(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${G}, debugIds}: ${p}<'${e}'>`,[ne+`('' + ${s}(`+G+`) ?? '', undefined, debugIds, ${n})`],pt(e,13)+ue)})),_(y+I,y+I,Ue,tt(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Ue,rt(10,0,1),cl(o),$l()),_(w+I,w+I,Ue,rt(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(Se,`{${G}, ${G}ById, children}: `+q+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+Se,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${Se}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(K(e)&&K(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!K(t)||O(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=le();if(O(a,(t=>O(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=se(n,a,(()=>[D(o),le(),[0],0])),[s,r,[I]]=d,c=se(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),de(r,o,c),d[3]++,s==D(o)})))))return t[l]={},ee(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==M(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return K(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:D(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,z(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await E(j(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return Z({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:M(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{ml as createTools};
|
|
1
|
+
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",$="get",c="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=e=>null==e,R=(e,t,l)=>x(e)?l?.():t(e),k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=(e,t,l)=>e.slice(t,l),E=e=>e.length,O=async e=>v.all(e),D=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},N=(e,t)=>e.every(t),G=(e,t)=>e.sort(t),L=(e,t)=>e.forEach(t),j=(e,t=l)=>e.join(t),M=(e,t)=>e.map(t),J=(e,t)=>e.filter(t),z=(e,...t)=>e.push(...t),W=e=>e.pop(),B=(e,...t)=>e.unshift(...t),F=e=>e.shift(),U=Object,_=e=>U.getPrototypeOf(e),Z=U.keys,H=U.freeze,Q=e=>!x(e)&&R(_(e),(e=>e==U.prototype||x(_(e))),(()=>!0)),q=(e,t)=>M(U.entries(e),(([e,l])=>t(l,e))),K=e=>E(Z(e)),X=e=>Q(e)&&0==K(e),Y=(e,t)=>e?.has(t)??!1,ee=e=>[...e?.values()??[]],te=(e,t)=>e?.forEach(t),le=(e,t)=>e?.delete(t),ae=e=>new Map(e),ne=(e,t)=>e?.get(t),oe=(e,t)=>te(e,((e,l)=>t(l,e))),de=(e,t)=>M([...e?.entries()??[]],(([e,l])=>t(l,e))),se=(e,t,l)=>x(l)?(le(e,t),e):e?.set(t,l),re=(e,t,l)=>(Y(e,t)||se(e,t,l()),ne(e,t)),Ie=e=>e.toUpperCase(),$e=e=>e.toLowerCase(),ce="a ",ue="A function for",ie=", and registers a listener so that any changes to that result will cause a re-render",pe="Callback",be="Del",Ce="Deps",he=Ce+"?: React.DependencyList",me="doRollback?: DoRollback",ge="actions: () => Return, "+me,fe="export",we="Id",ye="Invalid",Te="Json",ve=$e(I),Ve="?: ",xe=" | undefined",Re="NonNullable",ke="Partial",Se="Props",Pe="Provider",Ae=`Registers a ${ve} that will be called`,Ee="Represents",Oe="rowId: "+we,De="Schema",Ne="Set",Ge=", descending?: boolean, offset?: number, limit?: number",Le="[]",je="the Store",Me="Transaction",Je=Me+"Changes",ze=$e(Me),We="Execute a "+ze+" to make multiple mutations",Be="Explicitly starts a "+ze,Fe="Explicitly finishes a "+ze,Ue="the end of the "+ze,_e="void",Ze=" => "+_e,He="WhenSet",Qe=" when setting it",qe=ce+"string serialization of",Ke=" ",Xe="Gets a callback that can ",Ye="the ",et=" the schema for",tt=(e=0,t=0)=>`the ${gt[e]}content of`+(t?Ke+je:l),lt=(e=0,t,a=0)=>Ct[t]+Ke+tt(e,1)+(a?" when setting it":l),at=(e,t=0)=>Ee+` a Row when ${t?"s":"g"}etting ${tt()} the '${e}' `+i,nt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,ot=(e,t)=>`Calls a function for each ${e} in `+t,dt=e=>"The props passed to a component that renders "+e,st=e=>"A function that takes "+e,rt=(e,t=0)=>ue+" listening to changes to "+mt[e]+" in "+mt[t],It=(e,t,a=0)=>Ae+" whenever "+mt[e]+" in "+mt[t]+" change"+(a?l:"s"),$t=e=>`the '${e}' `+i,ct=e=>"the specified Row in "+$t(e),ut=(e,t=0)=>Ct[t]+` ${tt()} `+$t(e),it=(e,t=0)=>Ct[t]+` ${tt()} `+ct(e),pt=(e,t,l=0)=>Ct[l]+` the '${t}' Cell for `+ct(e),bt=(e,t=0)=>Ct[t]+` the '${e}' Value`,Ct=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ee,"Gets "+qe,"Sets "+qe,Ae+" whenever",Xe+"set",Xe+"add",Xe+"set part of",Xe+"delete","Renders","Gets "+qe+et,"Sets"+et,"Deletes"+et],ht=[$,"has","set","del","set","forEach",c,l],mt=[je,p,Ye+i+Ke+u,ce+i,Ye+C+Ke+u,ce+C,Ye+g+Ke+u,ce+g,"invalid Cell changes",y,Ye+w+Ke+u,ce+w,"invalid Value changes",Ye+"sorted "+C+Ke+u,Ye+g+Ke+u+" anywhere",Ye+"number of Rows"],gt=[l,"tabular ","keyed value "],ft=e=>new Set(P(e)||x(e)?e:[e]),wt=(e,t)=>e?.add(t),yt=/[^A-Za-z]+/,Tt=/[^A-Za-z0-9]+/,vt=/^( *)\/\*\* *(.*?) *\*\/$/gm,Vt=e=>e.includes(a),xt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return Y(e,n)?xt(e,t,l,a+1):(se(e,n,l),n)},Rt=e=>e.replace(vt,((e,t,l)=>{const a=77-E(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),kt=e=>e.flat(1e3),St=(e,t=0)=>j(M(e.split(Tt),((e,l)=>(l>0||t?Ie:$e)(A(e,0,1))+A(e,1)))),Pt=e=>Ie(j((e&&!yt.test(e[0])?e:" "+e).split(Tt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>j(J(e,(e=>e)),", "),Ot=(...e)=>"{"+j(e,"; ")+"}",Dt=(...e)=>Ot(...M(e,(e=>"readonly "+e))),Nt=()=>{const e=[ae(),ae(),ae(),ae()],t=ae(),a=ae(),n=e=>{const t=e.indexOf(" as ");return-1!=t?A(e,t+4):e};return[(...e)=>j(kt(e),"\n"),(t,l,...a)=>L(a,(a=>L([0,1],(n=>(t??n)==n?wt(re(e[n],l,ft),a):0)))),(e,a,n,o=l,d=1)=>xt(t,e,[a,n,o,d]),(e,t,l)=>xt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ne(a,e)===t?e:xt(a,e,t),(t=0)=>M([...G(de(e[t],((e,t)=>`import {${j(G(ee(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>Vt(e)!=Vt(t)?Vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>de(t,(([e,t,a,n],o)=>[At(t),`${n?fe+" ":l}type ${o}${a} = ${e};`,l])),()=>de(a,((e,t)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${t} = ${F(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>q(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>q(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>q(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Ot(...t((e=>`'${e}'?: {[rowId: Id]: `+Ot(...a(e,((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`)))+"}"))),lt(1,5)),r=e(p+He,Ot(...t((e=>`'${e}'?: {[rowId: Id]: `+Ot(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),lt(1,5,1)),$=e(i+we,"keyof "+s,"A "+i+" Id in "+je),c=`<TId extends ${$}>`,u=e(i,Re+`<${s}[TId]>`,"A "+i+" in "+je,c),w=e(i+He,Re+`<${r}[TId]>`,"A "+i+" in "+je+Qe,c),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,c),T=e(C+He,w+"<TId>[Id]","A "+C+" in a "+i+Qe,c),v=e(g+we,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,c),V=e(g,Re+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),R=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),k=e(g+pe,`(...[cellId, cell]: ${R}<TId>)`+Ze,st(ce+g+" Id, and "+g),c),S=e(C+pe,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Ze+") "+Ze,st(ce+C+" Id, and a "+g+" iterator"),c),P=e(i+g+pe,`(cellId: ${v}<TId>, count: number) `+Ze,st(ce+g+" Id, and count of how many times it appears"),c),A=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Ze}] : never`,i+" Ids and callback types",`<TId = ${$}>`,0),E=e(i+pe,`(...[tableId, forEachRow]: ${A})`+Ze,st(ce+i+" Id, and a "+C+" iterator"),l),O=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${O}) => CellChange`,ue+" returning information about any Cell's changes during a "+ze),N=e(p+I,`(${d}, getCellChange: ${D}${xe})`+Ze,rt(1)),G=e(b+I,`(${d})`+Ze,rt(2)),L=e(i+I,`(${d}, tableId: ${$}, getCellChange: ${D}${xe})`+Ze,rt(3)),j=e(i+f+I,`(${d}, tableId: ${$})`+Ze,rt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${$})`+Ze,rt(15,3)),J=e(h+I,`(${d}, tableId: ${$})`+Ze,rt(4,3)),z=e(m+I,"("+Et(d,"tableId: "+$,"cellId: Id"+xe,"descending: boolean","offset: number","limit: number"+xe,"sortedRowIds: Ids")+")"+Ze,rt(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+$,Oe,`getCellChange: ${D}${xe}`)+")"+Ze,rt(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+$,Oe)+")"+Ze,rt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Oe}, cellId: CId, newCell: ${V}<TId, CId> ${xe}, oldCell: ${V}<TId, CId> ${xe}, getCellChange: ${D} ${xe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,r,$,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Ze,rt(7,5)),e(ye+g+I,`(${d}, tableId: Id, ${Oe}, cellId: Id, invalidCells: any[])`+Ze,rt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Ot(...n(((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`))),lt(2,5)),s=e(y+He,Ot(...n(((e,t)=>`'${e}'?: ${t}`))),lt(2,5,1)),r=e(w+we,"keyof "+d,"A "+w+" Id in "+je),$=e(w,Re+`<${d}[VId]>`,"A "+w+" Id in "+je,`<VId extends ${r}>`),c=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+je,`<VId = ${r}>`,0),u=e(w+pe,`(...[valueId, value]: ${c})`+Ze,st(ce+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,ue+" returning information about any Value's changes during a "+ze),p=e(y+I,`(${o}, getValueChange: ${i}${xe})`+Ze,rt(9)),b=e(T+I,`(${o})`+Ze,rt(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${$}<VId> ${xe}, oldValue: ${$}<VId> ${xe}, getValueChange: ${i} ${xe}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,$,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Ze,rt(11)),e(ye+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Ze,rt(12))]},(t,l)=>e(Me+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Ze,ue+" listening to the completion of a "+ze)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,$,v,V,R,k,P,A]=Nt(),[E,O,D]=Lt(e,a,R),[N,G,M]=jt(v,E,O,D),J=ae(),W=(e=0)=>de(J,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||B(r,At(o)),z(r,l),r})),F=(e,t,a,n,o,d=l)=>xt(J,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(ht[e]+t+(4==e?ke:l)+a,d,n,(n==H?Jt:Mt)(ht[e]+(4==e?ke:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F(c+e+I,(n?n+", ":l)+ve+": "+t+(d?", mutator?: boolean":l),we,zt(c+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),q=[],K=ae();let Y=[],te=[];if($(1,Z,H,`create${H} as create${H}Decl`),X(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,u);const[e,a,n,d,I,c,w,y,T,V,k,P,A,D,G,M,J,W,B,F,X,te,le,oe]=N(Q,H),de=ae();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Ee+` the '${e}' `+i),v(t+i+He,I+l,Ee+` the '${e}' `+i+Qe),v(t+C,c+l,at(e)),v(t+C+He,w+l,at(e,1)),v(t+g+we,y+l,`A Cell Id for the '${e}' `+i),v(t+g+pe,V+l,st(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+pe,k+l,st(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+pe,P+l,st(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];se(de,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,A,D,G,M,J,W,B,F,X,te,le,oe),Y=[e,a,n,y,D,G,M,J,W,B,F,X,te,le,de],L([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,lt(1,n),t,a))),U(0,l,b,n+Le,nt(i,je)),U(5,l,i,_e,ot(i,je),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,$,c,p]=ne(de,e);L([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,ut(e,s),o,a+d))),U(0,t,i+f,u,nt(g,"the whole of "+$t(e)),l,a),U(5,t,i+g,_e,ot(i+g,"the whole of "+$t(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+$t(e),l,a),U(0,t,h,u,nt(C,$t(e)),l,a),U(0,t,m,u,nt(C,$t(e),1),"cellId?: "+I+Ge,a+", cellId, descending, offset, limit"),U(5,t,C,_e,ot(C,$t(e)),"rowCallback: "+c,a+", rowCallback as any"),L([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,it(e,s),Oe+o,a+", rowId"+d))),U(6,t,C,we+xe,"Add a new Row to "+$t(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Le,nt(g,ct(e)),Oe,a+", rowId"),U(5,t,g,_e,ot(g,ct(e)),Oe+", cellCallback: "+$,a+", rowId, cellCallback as any"),O(e,((n,d,s,r,I)=>{const $="Map"+St(d,1);se(K,d,$);const c=d+(x(s)?xe:l);L([[c],[o],[H,`, cell: ${d} | `+$,", cell as any"],[H]],(([o,d=l,s=l],$)=>U($,t+I,g,o,pt(e,n,$),Oe+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,Ct[1]+` the '${n}' Cell anywhere in `+$t(e),l,a+", "+r)}))})),U(0,l,p+Te,Te,lt(1,6)),U(2,l,p+Te,H,lt(1,7),"tablesJson: "+Te,"tables"+Te),_(p,D,lt(1,8)+" changes"),_(b,G,It(2,0,1)),_(i,M,It(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,J,It(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,It(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,It(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,It(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+xe,"descending: boolean","offset: number","limit: number"+xe),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,X,It(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,It(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,le,It(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${j(E((e=>ne(de,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(ye+g,oe,Ae+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...ee(K)),z(q,".set"+p+De+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...O(e,((e,t,a,n)=>`[${n}]: {[${R(Pt(s),`'${s}'`)}]: ${R(Pt(t),`'${t}'`)}${x(a)?l:`, [${R(Pt(r),`'${r}'`)}]: `+(S(a)?R(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(X(a))$(null,t,y);else{const[e,a,n,d,I,c,u,i,p]=G(Q,H);$(1,Z,e,a,n,I,c,u,i,p),te=[e,a,n,c,u,i],L([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,lt(2,n),t,a))),U(0,l,T,n+Le,nt(w,je)),U(5,l,w,"void",ot(w,je),"valueCallback: "+I,"valueCallback as any"),D(((e,t,a,n,d)=>{const s="Map"+St(t,1);se(K,t,s),L([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,bt(e,s),a,n+o)))})),U(0,l,y+Te,Te,lt(2,6)),U(2,l,y+Te,H,lt(2,7),"valuesJson: "+Te,"values"+Te),_(y,c,lt(2,8)+" changes"),_(T,u,It(10,0,1)),_(w,i,It(11,0),`valueId: ${n} | null`,"valueId"),_(ye+w,p,Ae+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...ee(K)),$(0,t,"ValueChange"),z(q,".set"+y+De+"({",D(((e,t,a,n)=>[`[${n}]: {[${R(Pt(s),`'${s}'`)}]: ${R(Pt(t),`'${t}'`)}${x(a)?l:`, [${R(Pt(r),`'${r}'`)}]: `+(S(a)?R(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,lt(0,0)),U(2,l,"Content",H,lt(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Je,H,`Applies a set of ${Je} to the Store`,"transactionChanges: "+Je,"transactionChanges"),oe(K,((e,t)=>v(t,`(cell: ${e}${xe}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",we,"IdOrNull",Te,"Store",Je),$(0,t,"Get"+Je,"GetTransactionLog"),U(0,l,Te,Te,lt(0,6)),U(2,l,Te,H,lt(0,7),"tablesAndValuesJson: "+Te,"tablesAndValuesJson"),U(7,l,ze,"Return",We,ge,"actions, doRollback","<Return>"),U(7,l,"start"+Me,H,Be),U(7,l,"finish"+Me,H,Fe,me,"doRollback");const le=M(Q,H);return _("Start"+Me,le,Ae+" just before the start of the "+ze,l,l,0),_("WillFinish"+Me,le,Ae+" just before "+Ue,l,l,0),_("DidFinish"+Me,le,Ae+" just after "+Ue,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+je,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",Ct[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,H,`create${H} as create${H}Decl`,le),R("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),R(Q,["{",...W(1),"}"]),[d(...k(0),...P(),fe+" interface "+H+" {",...W(0),"}",l,At(`Creates a ${H} object`),fe+" function create"+H+"(): "+H+";"),d(...k(1),fe+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),Y,te]},Bt=e=>$+e,Ft=e=>Et(Bt(e),Bt(e)+Ce),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+he,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+pe+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+Ze,Zt),sl="then, then"+Ce,rl=tl+Xt+we,Il="View",$l=(e,...t)=>Et(...t,ve+": "+e,ve+he,"mutator?: boolean"),cl=(...e)=>Et(...e,ve,ve+Ce,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,$,c,v,V,R,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,O=`./${St(n)}-ui-react.d`,D="tinybase/ui-react",N=St(n,1),G=St(N),L=N+"Or"+N+we,M=G+"Or"+N+we,J=G+`={${G}}`,W=ae(),F=(e,t,a,n,o,d=l)=>(r(1,O,e+" as "+e+"Decl"),xt(W,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,$=l)=>(r(1,D,`use${t} as use${t}Core`),U(e,Et(o,K,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>de(W,(([t,a,n,o,d],s)=>{const r=e?[fe+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[fe+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||B(r,At(o)),z(r,l),r}));r(null,t,we,"Store",pe,Ht+"ized"+pe),r(0,D,"ComponentReturnType"),r(1,D,"useCellIds"),r(null,D,"ExtraProps"),r(0,E,N);const Q=$(L,N+" | "+we,`Used when you need to refer to a ${N} in a React hook or component`),q=$(Pe+Se,Dt(G+Ve+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${Pe} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,O,Q,q);const K=M+Ve+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+he,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+xe,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${Pe} component context`),ee=c("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${G} : ${M})?.getStore(), ...postParams)`]),te=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),le=c("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),oe=c("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!X(e)){const[e,a,n,d,s,w,y,T,v,V,R,k,A,D,L]=o;r(null,E,e,a,n,s,w,y,T,v,V,R,k,A,D),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=c("tableView",`{${G}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${le}(rowIds.map((rowId) => (`,"<Row","{..."+te+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",J,_t,"/>","))",al,", tableId,",");"]),z=c("getDefaultTableComponent","tableId: Id",j(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=c("getDefaultCellComponent","tableId: Id, cellId: Id",j(S(((e,t,l)=>`tableId == ${l} ? ${j(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,lt(1,0)+ie);const B=_(b,b,n+Le,nt(i,je)+ie);_(Ne+p+pe,Ne+p+pe,el,lt(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+he),Ft(p),Yt,Et(ol,`tables: ${a})`+Ze,Zt),sl),_(be+p+pe,be+p+pe,pe,lt(1,12),l,l,l,dl,sl);const F=$(g+Se,Dt("tableId?: TId","rowId: Id","cellId?: CId",G+Ve+N,Ut),dt(ce+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=$(C+Se,Dt("tableId?: TId","rowId: Id",G+Ve+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),dt(ce+C),`<TId extends ${n}>`),H=$(i+Se,Dt("tableId?: TId",G+Ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),dt(ce+i),`<TId extends ${n}>`),Q=$("Sorted"+i+Se,Dt("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+Ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),dt(ce+"sorted "+i),`<TId extends ${n}>`),q=$(p+Se,Dt(G+Ve+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),dt(tt(1,1)));r(1,O,q,H,Q,U,F),Z(p+Il,"{"+G+", tableComponents, getTableComponentProps"+al+"}: "+q,[le+`(${B}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+z+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${te}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,_t,"/>;","}), separator)"],lt(1,13)+ie),S(((e,t,a)=>{const[n,o,d,s,I]=ne(L,e);r(null,E,n,o,d,s,I),_(t+i,i,n,ut(e)+ie,l,a),_(t+i+f,i+f,u,nt(g,"the whole of "+$t(e))+ie,l,a);const $=_(t+h,h,u,nt(C,$t(e))+ie,l,a),c=_(t+m,m,u,nt(C,$t(e),1)+ie,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,it(e)+ie,rl,Et(a,tl)),_(t+f,f,I+Le,nt(g,ct(e))+ie,rl,Et(a,tl)),_(Ne+t+i+pe,Ne+i+pe,el,ut(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+he),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+Ze,Zt),sl),_(be+t+i+pe,be+i+pe,pe,ut(e,12),l,a,l,dl,sl),_(Ne+t+C+pe,Ne+C+pe,el,it(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+he),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+Ze,Zt),sl),_("Add"+t+C+pe,"Add"+C+pe,el,it(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+he),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+xe,"store: Store","row: "+s+")"+Ze,"then"+he)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(Ne+t+ke+C+pe,Ne+ke+C+pe,el,it(e,11)+Kt,Et(rl,Bt(ke+C)+Qt+s,Bt(ke+C)+he),Et(a,tl,Ft(ke+C)),Yt,Et(ol,`partialRow: ${s})`+Ze,Zt),sl),_(be+t+C+pe,be+C+pe,pe,it(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+G+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[le+`(${oe}(customCellIds, `+a+`, rowId, ${G}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${te}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",J,_t,"/>;","})"+al+", rowId)"],it(e,13)+ie);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+c+`(cellId, descending, offset, limit, props.${G}), ${a}, ${p});`,ut(e,13)+", sorted"+ie),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+$+`(props.${G}), ${a}, ${p});`,ut(e,13)+ie),P(e,((n,o,d,s,I)=>{const $="Map"+St(o,1);r(0,E,$),r(1,E,$);const c=_(t+I+g,g,o+(x(d)?xe:l),pt(e,n)+ie,rl,Et(a,tl,s));_(Ne+t+I+g+pe,Ne+g+pe,el,pt(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+$,Bt(g)+he),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${$})`+Ze,Zt),sl),_(be+t+I+g+pe,be+g+pe,pe,pt(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${G}, debugIds}: `+F+`<'${e}', '${n}'>`,[le+`('' + ${c}(rowId, `+G+`) ?? '', undefined, debugIds, ${s})`],pt(e,n,13)+ie)}))}));const K=j(S((e=>ne(L,e)?.[4]??l))," | ");_(p+I,p+I,_e,lt(1,8)+" changes",$l(s),cl()),_(b+I,b+I,_e,It(2,0,1),$l(w),cl()),_(i+I,i+I,_e,It(3,0),$l(y,`tableId: ${n} | null`),cl("tableId")),_(i+f+I,i+f+I,_e,It(14,3,1),$l(T,`tableId: ${n} | null`),cl("tableId")),_(h+I,h+I,_e,It(4,3,1),$l(V,`tableId: ${n} | null`),cl("tableId")),_(m+I,m+I,_e,It(13,3,1),$l(R,`tableId: ${n} | null`,"cellId: "+K+xe,"descending: boolean","offset: number","limit: number"+xe),cl("tableId","cellId","descending","offset","limit")),_(C+I,C+I,_e,It(5,3),$l(k,`tableId: ${n} | null`,tl+": IdOrNull"),cl("tableId",tl)),_(f+I,f+I,_e,It(6,5,1),$l(A,`tableId: ${n} | null`,tl+": IdOrNull"),cl("tableId",tl)),_(g+I,g+I,_e,It(7,5),$l(D,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),cl("tableId",tl,"cellId"))}if(!X(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=c("getDefaultValueComponent","valueId: Id",j(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,lt(2,0)+ie);const i=_(T,T,a+Le,nt(w,je)+ie);_(Ne+y+pe,Ne+y+pe,el,lt(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+he),Ft(y),Yt,Et(ol,`values: ${t})`+Ze,Zt),sl),_(Ne+ke+y+pe,Ne+ke+y+pe,el,lt(2,11)+Kt,Et(Bt(ke+y)+Qt+t,Bt(ke+y)+he),Ft(ke+y),Yt,Et(ol,`partialValues: ${t})`+Ze,Zt),sl),_(be+y+pe,be+y+pe,pe,lt(2,12),l,l,l,dl,sl);const p=$(w+Se,Dt("valueId?: VId",G+Ve+N,Ut),dt("a Value"),`<VId extends ${a}>`),b=$(y+Se,Dt(G+Ve+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),dt(tt(2,1)));r(1,O,b,p),Z(y+Il,"{"+G+", valueComponents, getValueComponentProps"+al+"}: "+b,[le+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${te}(getValueComponentProps, valueId)}`,"key={valueId}",J,_t,"/>;","}), separator)"],lt(2,13)+ie),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,bt(e)+ie,l,n);_(Ne+o+w+pe,Ne+w+pe,el,bt(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+he),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+Ze,Zt),sl),_(be+o+w+pe,be+w+pe,pe,bt(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${G}, debugIds}: ${p}<'${e}'>`,[le+`('' + ${s}(`+G+`) ?? '', undefined, debugIds, ${n})`],bt(e,13)+ie)})),_(y+I,y+I,_e,lt(2,8)+" changes",$l(n),cl()),_(T+I,T+I,_e,It(10,0,1),$l(o),cl()),_(w+I,w+I,_e,It(11,0),$l(s,`valueId: ${a} | null`),cl("valueId"))}return Z(Pe,`{${G}, ${G}ById, children}: `+q+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+Pe,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${Pe}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...R(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(X(e)&&X(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!X(t)||N(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=ae();if(N(a,(t=>N(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=re(n,a,(()=>[D(o),ae(),[0],0])),[s,r,[I]]=d,$=re(r,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),se(r,o,$),d[3]++,s==D(o)})))))return t[l]={},te(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==E(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return X(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:D(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,z(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await O(M(a(e),(async(e,a)=>Rt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return H({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:E(e.getValueIds()),jsonLength:E(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{ml as createTools};
|
package/lib/tools.js.gz
CHANGED
|
Binary file
|
|
@@ -15,6 +15,39 @@ import {DocHandle} from 'automerge-repo';
|
|
|
15
15
|
import {Persister} from '../persisters';
|
|
16
16
|
import {Store} from '../store';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* The AutomergePersister interface is a minor extension to the Persister
|
|
20
|
+
* interface.
|
|
21
|
+
*
|
|
22
|
+
* It simply provides an extra getDocHandle method for accessing the Automerge
|
|
23
|
+
* document handler the Store is being persisted to.
|
|
24
|
+
* @since v4.3.14
|
|
25
|
+
*/
|
|
26
|
+
export interface AutomergePersister extends Persister {
|
|
27
|
+
/**
|
|
28
|
+
* The getDocHandle method returns the Automerge document handler the Store is
|
|
29
|
+
* being persisted to.
|
|
30
|
+
* @returns The Automerge document handler.
|
|
31
|
+
* @example
|
|
32
|
+
* This example creates a Persister object against a newly-created Store and
|
|
33
|
+
* then gets the Automerge document handler back out again.
|
|
34
|
+
*
|
|
35
|
+
* ```js
|
|
36
|
+
* const docHandler = new AutomergeRepo.Repo({network: []}).create();
|
|
37
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
38
|
+
* const persister = createAutomergePersister(store, docHandler);
|
|
39
|
+
*
|
|
40
|
+
* console.log(persister.getDocHandle() == docHandler);
|
|
41
|
+
* // -> true
|
|
42
|
+
*
|
|
43
|
+
* persister.destroy();
|
|
44
|
+
* ```
|
|
45
|
+
* @category Getter
|
|
46
|
+
* @since v4.3.14
|
|
47
|
+
*/
|
|
48
|
+
getDocHandle: () => DocHandle<any>;
|
|
49
|
+
}
|
|
50
|
+
|
|
18
51
|
/**
|
|
19
52
|
* The createAutomergePersister function creates a Persister object that can
|
|
20
53
|
* persist the Store to an Automerge document.
|
|
@@ -28,9 +61,9 @@ import {Store} from '../store';
|
|
|
28
61
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
29
62
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
30
63
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
31
|
-
* @returns A reference to the new
|
|
64
|
+
* @returns A reference to the new AutomergePersister object.
|
|
32
65
|
* @example
|
|
33
|
-
* This example creates a
|
|
66
|
+
* This example creates a AutomergePersister object and persists the Store to an
|
|
34
67
|
* Automerge document.
|
|
35
68
|
*
|
|
36
69
|
* ```js
|
|
@@ -109,4 +142,4 @@ export function createAutomergePersister(
|
|
|
109
142
|
docHandle: DocHandle<any>,
|
|
110
143
|
docMapName?: string,
|
|
111
144
|
onIgnoredError?: (error: any) => void,
|
|
112
|
-
):
|
|
145
|
+
): AutomergePersister;
|
|
@@ -17,6 +17,69 @@
|
|
|
17
17
|
import {Persister} from '../persisters';
|
|
18
18
|
import {Store} from '../store';
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* The SessionPersister interface is a minor extension to the Persister
|
|
22
|
+
* interface.
|
|
23
|
+
*
|
|
24
|
+
* It simply provides an extra getStorageName method for accessing the unique
|
|
25
|
+
* key of the storage location the Store is being persisted to.
|
|
26
|
+
* @since v4.3.14
|
|
27
|
+
*/
|
|
28
|
+
export interface SessionPersister extends Persister {
|
|
29
|
+
/**
|
|
30
|
+
* The getStorageName method returns the unique key of the storage location
|
|
31
|
+
* the Store is being persisted to.
|
|
32
|
+
* @returns The unique key of the storage location.
|
|
33
|
+
* @example
|
|
34
|
+
* This example creates a Persister object against a newly-created Store and
|
|
35
|
+
* then gets the unique key of the storage location back out again.
|
|
36
|
+
*
|
|
37
|
+
* ```js
|
|
38
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
39
|
+
* const persister = createSessionPersister(store, 'pets');
|
|
40
|
+
*
|
|
41
|
+
* console.log(persister.getStorageName());
|
|
42
|
+
* // -> 'pets'
|
|
43
|
+
*
|
|
44
|
+
* persister.destroy();
|
|
45
|
+
* ```
|
|
46
|
+
* @category Getter
|
|
47
|
+
* @since v4.3.14
|
|
48
|
+
*/
|
|
49
|
+
getStorageName: () => string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The LocalPersister interface is a minor extension to the Persister interface.
|
|
54
|
+
*
|
|
55
|
+
* It simply provides an extra getStorageName method for accessing the unique
|
|
56
|
+
* key of the storage location the Store is being persisted to.
|
|
57
|
+
* @since v4.3.14
|
|
58
|
+
*/
|
|
59
|
+
export interface LocalPersister extends Persister {
|
|
60
|
+
/**
|
|
61
|
+
* The getStorageName method returns the unique key of the storage location
|
|
62
|
+
* the Store is being persisted to.
|
|
63
|
+
* @returns The unique key of the storage location.
|
|
64
|
+
* @example
|
|
65
|
+
* This example creates a Persister object against a newly-created Store and
|
|
66
|
+
* then gets the unique key of the storage location back out again.
|
|
67
|
+
*
|
|
68
|
+
* ```js
|
|
69
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
70
|
+
* const persister = createLocalPersister(store, 'pets');
|
|
71
|
+
*
|
|
72
|
+
* console.log(persister.getStorageName());
|
|
73
|
+
* // -> 'pets'
|
|
74
|
+
*
|
|
75
|
+
* persister.destroy();
|
|
76
|
+
* ```
|
|
77
|
+
* @category Getter
|
|
78
|
+
* @since v4.3.14
|
|
79
|
+
*/
|
|
80
|
+
getStorageName: () => string;
|
|
81
|
+
}
|
|
82
|
+
|
|
20
83
|
/**
|
|
21
84
|
* The createSessionPersister function creates a Persister object that can
|
|
22
85
|
* persist the Store to the browser's session storage.
|
|
@@ -29,9 +92,9 @@ import {Store} from '../store';
|
|
|
29
92
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
30
93
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
31
94
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
32
|
-
* @returns A reference to the new
|
|
95
|
+
* @returns A reference to the new SessionPersister object.
|
|
33
96
|
* @example
|
|
34
|
-
* This example creates a
|
|
97
|
+
* This example creates a SessionPersister object and persists the Store to the
|
|
35
98
|
* browser's session storage.
|
|
36
99
|
*
|
|
37
100
|
* ```js
|
|
@@ -51,11 +114,11 @@ export function createSessionPersister(
|
|
|
51
114
|
store: Store,
|
|
52
115
|
storageName: string,
|
|
53
116
|
onIgnoredError?: (error: any) => void,
|
|
54
|
-
):
|
|
117
|
+
): SessionPersister;
|
|
55
118
|
|
|
56
119
|
/**
|
|
57
|
-
* The createLocalPersister function creates a Persister object that can
|
|
58
|
-
*
|
|
120
|
+
* The createLocalPersister function creates a Persister object that can persist
|
|
121
|
+
* the Store to the browser's local storage.
|
|
59
122
|
*
|
|
60
123
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
61
124
|
* `storageName` parameter which is unique to your application. This is the key
|
|
@@ -65,9 +128,9 @@ export function createSessionPersister(
|
|
|
65
128
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
66
129
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
67
130
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
68
|
-
* @returns A reference to the new
|
|
131
|
+
* @returns A reference to the new LocalPersister object.
|
|
69
132
|
* @example
|
|
70
|
-
* This example creates a
|
|
133
|
+
* This example creates a LocalPersister object and persists the Store to the
|
|
71
134
|
* browser's local storage.
|
|
72
135
|
*
|
|
73
136
|
* ```js
|
|
@@ -87,4 +150,4 @@ export function createLocalPersister(
|
|
|
87
150
|
store: Store,
|
|
88
151
|
storageName: string,
|
|
89
152
|
onIgnoredError?: (error: any) => void,
|
|
90
|
-
):
|
|
153
|
+
): LocalPersister;
|
|
@@ -12,6 +12,40 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
|
12
12
|
import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
13
13
|
import {Store} from '../store';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* The CrSqliteWasmPersister interface is a minor extension to the Persister
|
|
17
|
+
* interface.
|
|
18
|
+
*
|
|
19
|
+
* It simply provides an extra getDb method for accessing a reference to the
|
|
20
|
+
* database instance the Store is being persisted to.
|
|
21
|
+
* @since v4.3.14
|
|
22
|
+
*/
|
|
23
|
+
export interface CrSqliteWasmPersister extends Persister {
|
|
24
|
+
/**
|
|
25
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
26
|
+
* being persisted to.
|
|
27
|
+
* @returns A reference to the database instance.
|
|
28
|
+
* @example
|
|
29
|
+
* This example creates a Persister object against a newly-created Store and
|
|
30
|
+
* then gets the database instance back out again.
|
|
31
|
+
*
|
|
32
|
+
* ```js
|
|
33
|
+
* const crSqlite3 = await initWasm();
|
|
34
|
+
* const db = await crSqlite3.open();
|
|
35
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
36
|
+
* const persister = createCrSqliteWasmPersister(store, db, 'my_tinybase');
|
|
37
|
+
*
|
|
38
|
+
* console.log(persister.getDb() == db);
|
|
39
|
+
* // -> true
|
|
40
|
+
*
|
|
41
|
+
* persister.destroy();
|
|
42
|
+
* ```
|
|
43
|
+
* @category Getter
|
|
44
|
+
* @since v4.3.14
|
|
45
|
+
*/
|
|
46
|
+
getDb: () => DB;
|
|
47
|
+
}
|
|
48
|
+
|
|
15
49
|
/**
|
|
16
50
|
* The createCrSqliteWasmPersister function creates a Persister object that can
|
|
17
51
|
* persist the Store to a local CR-SQLite database (in an appropriate
|
|
@@ -42,12 +76,12 @@ import {Store} from '../store';
|
|
|
42
76
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
43
77
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
44
78
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
45
|
-
* @returns A reference to the new
|
|
79
|
+
* @returns A reference to the new CrSqliteWasmPersister object.
|
|
46
80
|
* @example
|
|
47
|
-
* This example creates a
|
|
48
|
-
* CR-SQLite database as a JSON serialization into the `my_tinybase`
|
|
49
|
-
* makes a change to the database directly and then reloads it back
|
|
50
|
-
* Store.
|
|
81
|
+
* This example creates a CrSqliteWasmPersister object and persists the Store to
|
|
82
|
+
* a local CR-SQLite database as a JSON serialization into the `my_tinybase`
|
|
83
|
+
* table. It makes a change to the database directly and then reloads it back
|
|
84
|
+
* into the Store.
|
|
51
85
|
*
|
|
52
86
|
* ```js
|
|
53
87
|
* const crSqlite3 = await initWasm();
|
|
@@ -72,8 +106,8 @@ import {Store} from '../store';
|
|
|
72
106
|
* persister.destroy();
|
|
73
107
|
* ```
|
|
74
108
|
* @example
|
|
75
|
-
* This example creates a
|
|
76
|
-
* SQLite database with tabular mapping.
|
|
109
|
+
* This example creates a CrSqliteWasmPersister object and persists the Store to
|
|
110
|
+
* a local SQLite database with tabular mapping.
|
|
77
111
|
*
|
|
78
112
|
* ```js
|
|
79
113
|
* const crSqlite3 = await initWasm();
|
|
@@ -104,4 +138,4 @@ export function createCrSqliteWasmPersister(
|
|
|
104
138
|
configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
105
139
|
onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
106
140
|
onIgnoredError?: (error: any) => void,
|
|
107
|
-
):
|
|
141
|
+
): CrSqliteWasmPersister;
|
|
@@ -15,6 +15,39 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
|
15
15
|
import {SQLiteDatabase} from 'expo-sqlite';
|
|
16
16
|
import {Store} from '../store';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* The ExpoSqlitePersister interface is a minor extension to the Persister
|
|
20
|
+
* interface.
|
|
21
|
+
*
|
|
22
|
+
* It simply provides an extra getDb method for accessing a reference to the
|
|
23
|
+
* database instance the Store is being persisted to.
|
|
24
|
+
* @since v4.3.14
|
|
25
|
+
*/
|
|
26
|
+
export interface ExpoSqlitePersister extends Persister {
|
|
27
|
+
/**
|
|
28
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
29
|
+
* being persisted to.
|
|
30
|
+
* @returns A reference to the database instance.
|
|
31
|
+
* @example
|
|
32
|
+
* This example creates a Persister object against a newly-created Store and
|
|
33
|
+
* then gets the database instance back out again.
|
|
34
|
+
*
|
|
35
|
+
* ```js yolo
|
|
36
|
+
* const db = SQLite.openDatabase('my.db');
|
|
37
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
38
|
+
* const persister = createExpoSqlitePersister(store, db, 'my_tinybase');
|
|
39
|
+
*
|
|
40
|
+
* console.log(persister.getDb() == db);
|
|
41
|
+
* // -> true
|
|
42
|
+
*
|
|
43
|
+
* persister.destroy();
|
|
44
|
+
* ```
|
|
45
|
+
* @category Getter
|
|
46
|
+
* @since v4.3.14
|
|
47
|
+
*/
|
|
48
|
+
getDb: () => SQLiteDatabase;
|
|
49
|
+
}
|
|
50
|
+
|
|
18
51
|
/**
|
|
19
52
|
* The createExpoSqlitePersister function creates a Persister object that can
|
|
20
53
|
* persist the Store to a local Expo-SQLite database (in an appropriate React
|
|
@@ -49,11 +82,11 @@ import {Store} from '../store';
|
|
|
49
82
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
50
83
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
51
84
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
52
|
-
* @returns A reference to the new
|
|
85
|
+
* @returns A reference to the new ExpoSqlitePersister object.
|
|
53
86
|
* @example
|
|
54
|
-
* This example creates a
|
|
55
|
-
* SQLite database as a JSON serialization into the `my_tinybase` table.
|
|
56
|
-
* makes a change to the database directly and then reloads it back into the
|
|
87
|
+
* This example creates a ExpoSqlitePersister object and persists the Store to a
|
|
88
|
+
* local SQLite database as a JSON serialization into the `my_tinybase` table.
|
|
89
|
+
* It makes a change to the database directly and then reloads it back into the
|
|
57
90
|
* Store.
|
|
58
91
|
*
|
|
59
92
|
* ```js yolo
|
|
@@ -85,8 +118,8 @@ import {Store} from '../store';
|
|
|
85
118
|
* persister.destroy();
|
|
86
119
|
* ```
|
|
87
120
|
* @example
|
|
88
|
-
* This example creates a
|
|
89
|
-
* SQLite database with tabular mapping.
|
|
121
|
+
* This example creates a ExpoSqlitePersister object and persists the Store to a
|
|
122
|
+
* local SQLite database with tabular mapping.
|
|
90
123
|
*
|
|
91
124
|
* ```js yolo
|
|
92
125
|
* const db = SQLite.openDatabase('my.db');
|
|
@@ -125,4 +158,4 @@ export function createExpoSqlitePersister(
|
|
|
125
158
|
configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
126
159
|
onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
127
160
|
onIgnoredError?: (error: any) => void,
|
|
128
|
-
):
|
|
161
|
+
): ExpoSqlitePersister;
|