tinybase 5.2.0-beta.4 → 5.2.0
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/@types/mergeable-store/index.d.cts +114 -11
- package/@types/mergeable-store/index.d.ts +114 -11
- package/@types/mergeable-store/with-schemas/index.d.cts +192 -11
- package/@types/mergeable-store/with-schemas/index.d.ts +192 -11
- package/@types/persisters/index.d.cts +177 -16
- package/@types/persisters/index.d.ts +177 -16
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-electric-sql/index.d.cts +1 -1
- package/@types/persisters/persister-electric-sql/index.d.ts +1 -1
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-expo-sqlite/index.d.cts +1 -1
- package/@types/persisters/persister-expo-sqlite/index.d.ts +1 -1
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-libsql/index.d.cts +1 -1
- package/@types/persisters/persister-libsql/index.d.ts +1 -1
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-pglite/index.d.cts +1 -1
- package/@types/persisters/persister-pglite/index.d.ts +1 -1
- package/@types/persisters/persister-pglite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-postgres/index.d.cts +1 -1
- package/@types/persisters/persister-postgres/index.d.ts +1 -1
- package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-powersync/index.d.cts +1 -1
- package/@types/persisters/persister-powersync/index.d.ts +1 -1
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite3/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite3/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +2 -2
- package/@types/persisters/with-schemas/index.d.cts +227 -19
- package/@types/persisters/with-schemas/index.d.ts +227 -19
- package/@types/synchronizers/index.d.cts +2 -5
- package/@types/synchronizers/index.d.ts +2 -5
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/with-schemas/index.d.cts +2 -5
- package/@types/synchronizers/with-schemas/index.d.ts +2 -5
- package/cjs/es6/index.cjs +54 -566
- package/cjs/es6/mergeable-store/index.cjs +9 -6
- package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -6
- package/cjs/es6/min/index.cjs +1 -1
- package/cjs/es6/min/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/index.cjs +1 -1
- package/cjs/es6/min/persisters/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +1095 -10
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +58 -49
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +58 -49
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/es6/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-pglite/index.cjs +61 -54
- package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +61 -54
- package/cjs/es6/persisters/persister-postgres/index.cjs +63 -56
- package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +63 -56
- package/cjs/es6/persisters/persister-powersync/index.cjs +58 -49
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
- package/cjs/es6/synchronizers/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +17 -14
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +17 -14
- package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
- package/cjs/es6/with-schemas/index.cjs +54 -566
- package/cjs/index.cjs +45 -447
- package/cjs/mergeable-store/index.cjs +1 -0
- package/cjs/mergeable-store/with-schemas/index.cjs +1 -0
- package/cjs/min/index.cjs +1 -1
- package/cjs/min/index.cjs.gz +0 -0
- package/cjs/min/persisters/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/with-schemas/index.cjs +1 -1
- package/cjs/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +833 -0
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +57 -48
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-expo-sqlite/index.cjs +57 -48
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-pglite/index.cjs +59 -52
- package/cjs/persisters/persister-pglite/with-schemas/index.cjs +59 -52
- package/cjs/persisters/persister-postgres/index.cjs +61 -54
- package/cjs/persisters/persister-postgres/with-schemas/index.cjs +61 -54
- package/cjs/persisters/persister-powersync/index.cjs +60 -49
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +60 -49
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/persisters/with-schemas/index.cjs +833 -0
- package/cjs/synchronizers/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +9 -8
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +9 -8
- package/cjs/synchronizers/with-schemas/index.cjs +1 -0
- package/cjs/with-schemas/index.cjs +45 -447
- package/es6/index.js +54 -566
- package/es6/mergeable-store/index.js +9 -6
- package/es6/mergeable-store/with-schemas/index.js +9 -6
- package/es6/min/index.js +1 -1
- package/es6/min/index.js.gz +0 -0
- package/es6/min/persisters/index.js +1 -1
- package/es6/min/persisters/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/index.js +1 -1
- package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/index.js +1 -1
- package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/with-schemas/index.js +1 -1
- package/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/es6/min/with-schemas/index.js +1 -1
- package/es6/min/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +1099 -11
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/es6/persisters/persister-electric-sql/index.js +56 -47
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/es6/persisters/persister-indexed-db/index.js +2 -2
- package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/es6/persisters/persister-libsql/index.js +56 -47
- package/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-pglite/index.js +61 -54
- package/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/es6/persisters/persister-postgres/index.js +63 -56
- package/es6/persisters/persister-postgres/with-schemas/index.js +63 -56
- package/es6/persisters/persister-powersync/index.js +58 -49
- package/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/es6/persisters/persister-sqlite-wasm/index.js +62 -49
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/es6/persisters/persister-sqlite3/index.js +58 -49
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/es6/persisters/with-schemas/index.js +1099 -11
- package/es6/synchronizers/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/es6/synchronizers/with-schemas/index.js +9 -6
- package/es6/with-schemas/index.js +54 -566
- package/index.js +45 -447
- package/mergeable-store/index.js +1 -0
- package/mergeable-store/with-schemas/index.js +1 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +212 -212
- package/persisters/index.js +837 -1
- package/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/persisters/persister-electric-sql/index.js +56 -47
- package/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/persisters/persister-expo-sqlite/index.js +57 -48
- package/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/persisters/persister-indexed-db/index.js +2 -2
- package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/persisters/persister-libsql/index.js +56 -47
- package/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/persisters/persister-pglite/index.js +59 -52
- package/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/persisters/persister-postgres/index.js +61 -54
- package/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/persisters/persister-powersync/index.js +60 -49
- package/persisters/persister-powersync/with-schemas/index.js +60 -49
- package/persisters/persister-sqlite-wasm/index.js +58 -49
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/persisters/persister-sqlite3/index.js +58 -49
- package/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/persisters/with-schemas/index.js +837 -1
- package/readme.md +14 -14
- package/releases.md +27 -23
- package/synchronizers/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-local/index.js +1 -0
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/synchronizers/with-schemas/index.js +1 -0
- package/umd/es6/index.js +54 -577
- package/umd/es6/mergeable-store/index.js +9 -6
- package/umd/es6/mergeable-store/with-schemas/index.js +9 -6
- package/umd/es6/min/index.js +1 -1
- package/umd/es6/min/index.js.gz +0 -0
- package/umd/es6/min/persisters/index.js +1 -1
- package/umd/es6/min/persisters/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/with-schemas/index.js +1 -1
- package/umd/es6/min/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +1106 -10
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-electric-sql/index.js +56 -47
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
- package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/es6/persisters/persister-libsql/index.js +56 -47
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-pglite/index.js +61 -54
- package/umd/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/umd/es6/persisters/persister-postgres/index.js +66 -56
- package/umd/es6/persisters/persister-postgres/with-schemas/index.js +66 -56
- package/umd/es6/persisters/persister-powersync/index.js +58 -49
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/es6/persisters/with-schemas/index.js +1106 -10
- package/umd/es6/synchronizers/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/umd/es6/synchronizers/with-schemas/index.js +9 -6
- package/umd/es6/with-schemas/index.js +54 -577
- package/umd/index.js +45 -454
- package/umd/mergeable-store/index.js +1 -0
- package/umd/mergeable-store/with-schemas/index.js +1 -0
- package/umd/min/index.js +1 -1
- package/umd/min/index.js.gz +0 -0
- package/umd/min/persisters/index.js +1 -1
- package/umd/min/persisters/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/index.js +1 -1
- package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/index.js +1 -1
- package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/with-schemas/index.js +1 -1
- package/umd/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/min/with-schemas/index.js +1 -1
- package/umd/min/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +835 -0
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/umd/persisters/persister-electric-sql/index.js +56 -47
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-expo-sqlite/index.js +57 -48
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/umd/persisters/persister-indexed-db/index.js +2 -2
- package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/persisters/persister-libsql/index.js +56 -47
- package/umd/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-pglite/index.js +59 -52
- package/umd/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/umd/persisters/persister-postgres/index.js +61 -54
- package/umd/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/umd/persisters/persister-powersync/index.js +58 -49
- package/umd/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/persisters/persister-sqlite-wasm/index.js +62 -49
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/umd/persisters/persister-sqlite3/index.js +58 -49
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/persisters/with-schemas/index.js +835 -0
- package/umd/synchronizers/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/umd/synchronizers/with-schemas/index.js +1 -0
- package/umd/with-schemas/index.js +45 -454
- package/with-schemas/index.js +45 -447
package/min/index.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="Has",g="Ids",h="Table",f=h+"s",b=h+g,w="Row",C=w+"Count",L=w+g,v="Sorted"+w+g,y="Cell",I=y+g,p="Value",T=p+"s",R=p+g,S=e=>t+e,M=(e,t)=>e.startsWith(t),V=(e,t)=>e.endsWith(t),m=Promise,D=globalThis,E=Math,H=E.max,k=E.min,A=E.floor,J=isFinite,x=e=>null==e,F=(e,t,s)=>x(e)?s?.():t(e),O=e=>e==s||e==n,Q=t=>e(t)==s,z=t=>e(t)==o,G=e=>Array.isArray(e),N=(e,t,s)=>e.slice(t,s),P=e=>e.length,W=()=>{},_=e=>{throw Error(e)},j=(e,t)=>e.includes(t),$=(e,t)=>e.every(t),B=(e,t)=>P(e)===P(t)&&$(e,((e,s)=>t[s]===e)),U=(e,t)=>$(e,((s,n)=>0==n||t(e[n-1],s)<=0)),q=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>ee(e,((e,t)=>e+t),0),Z=e=>0==P(e),ee=(e,t,s)=>e.reduce(t,s),te=(e,t)=>e.splice(0,t),se=(e,...t)=>e.push(...t),ne=e=>e.pop(),ae=e=>e.shift(),oe=Object,re=e=>oe.getPrototypeOf(e),le=oe.entries,ie=oe.isFrozen,ce=e=>!x(e)&&F(re(e),(e=>e==oe.prototype||x(re(e))),(()=>!0)),de=oe.keys,ue=oe.freeze,ge=(e=[])=>oe.fromEntries(e),he=(e,t)=>t in e,fe=(e,t)=>(delete e[t],e),be=(e,t)=>K(le(e),(([e,s])=>t(s,e))),we=(e,t)=>X(le(e),(([e,s])=>t(s,e))),Ce=e=>ce(e)&&0==(e=>P(de(e)))(e),Le=(e,t,s)=>(he(e,t)||(e[t]=s()),e[t]),ve=(e,t,s,n=0)=>x(e)||!ce(e)||!n&&Ce(e)||ie(e)?(s?.(),!1):(we(e,((s,n)=>{t(s,n)||fe(e,n)})),!!n||!Ce(e)),ye=e=>t=>ee(Ve(t),((t,s)=>t+e(s)),0),Ie=e=>e?.size??0,pe=ye(Ie),Te=ye(pe),Re=ye(Te),Se=(e,t)=>e?.has(t)??!1,Me=e=>x(e)||0==Ie(e),Ve=e=>[...e?.values()??[]],me=e=>e.clear(),De=(e,t)=>e?.forEach(t),Ee=(e,t)=>e?.delete(t),He=e=>new Map(e),ke=e=>[...e?.keys()??[]],Ae=(e,t)=>e?.get(t),Je=(e,t)=>De(e,((e,s)=>t(s,e))),xe=(e,t,s)=>x(s)?(Ee(e,t),e):e?.set(t,s),Fe=(e,t,s,n)=>(Se(e,t)?n?.(Ae(e,t)):xe(e,t,s()),Ae(e,t)),Oe=(e,t,s,n=xe)=>(we(t,((t,n)=>s(e,n,t))),Je(e,(s=>he(t,s)?0:n(e,s))),e),Qe=(e,t,s,n)=>{const a={};return De(e,((e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;n?.(s)||(a[o]=s)}})),a},ze=(e,t,s)=>Qe(e,(e=>Qe(e,t,s)),Me,Ce),Ge=(e,t,s)=>Qe(e,(e=>ze(e,t,s)),Me,Ce),Ne=(e,t)=>{const s=He();return De(e,((e,n)=>s.set(n,t?.(e)??e))),s},Pe=e=>Ne(e,Ne),We=e=>Ne(e,Pe),_e=(e,t,s,n,a=0)=>F((s?Fe:Ae)(e,t[a],a>P(t)-2?s:He),(o=>{if(a>P(t)-2)return n?.(o)&&xe(e,t[a]),o;const r=_e(o,t,s,n,a+1);return Me(o)&&xe(e,t[a]),r})),je=t=>{const s=e(t);return O(s)||s==a&&J(t)?s:void 0},$e=e=>x(e)||!x(je(e)),Be=(e,t,s,n,a)=>x(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ue=(e,t,s)=>x(s)?e.delValue(t):e.setValue(t,s),qe=e=>new Set(G(e)||x(e)?e:[e]),Ke=(e,t)=>e?.add(t),Xe=(e,t,s,n,a)=>{const o=e.hasRow,r=He(),l=He(),i=He(),c=He(),d=He(),u=He(),g=(t,s,...n)=>{const a=Fe(u,t,qe);return K(n,(t=>Ke(a,t)&&s&&e.callListener(t))),n},h=(t,...s)=>F(Ae(u,t),(n=>{K(Z(s)?Ve(n):s,(t=>{e.delListener(t),Ee(n,t)})),Me(n)&&xe(u,t)})),f=(e,s)=>{xe(r,e,s),Se(l,e)||(xe(l,e,t()),xe(c,e,He()),xe(d,e,He()),a(i))},b=e=>{xe(r,e),xe(l,e),xe(c,e),xe(d,e),h(e),a(i)};return[()=>e,()=>ke(r),e=>Je(l,e),e=>Se(l,e),e=>Ae(r,e),e=>Ae(l,e),(e,t)=>xe(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=He(),u=He(),b=Ae(c,t),w=Ae(d,t),C=t=>{const a=s=>e.getCell(n,t,s),c=Ae(b,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||G(c)&&G(d)&&B(c,d)||xe(i,t,[c,d]),!x(l)){const e=Ae(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&xe(u,t,s)}},L=e=>{a((()=>{De(i,(([,e],t)=>xe(b,t,e))),De(u,((e,t)=>xe(w,t,e)))}),i,u,b,w,e),me(i),me(u)};Je(b,C),e.hasTable(n)&&K(e.getRowIds(n),(e=>{Se(b,e)||C(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>C(s))),e.addTableListener(n,(()=>L())))},b,e=>n(e,i),()=>Je(u,b),g,h]},Ye=(e,s)=>Q(e)?t=>t(e):e??(()=>s??t),Ze=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},et=/^\d+$/,tt=()=>{const e=[];let s=0;return[n=>(n?ae(e):null)??t+s++,t=>{et.test(t)&&P(e)<1e3&&se(e,t)}]},st=e=>{let s;const[n,a]=tt(),o=He();return[(a,r,l,i=[],c=()=>[])=>{s??=e();const d=n(1);return xe(o,d,[a,r,l,i,c]),Ke(_e(r,l??[t],qe),d),d},(e,n,...a)=>K(((e,s=[t])=>{const n=[],a=(e,t)=>t==P(s)?se(n,e):null===s[t]?De(e,(e=>a(e,t+1))):K([s[t],null],(s=>a(Ae(e,s),t+1)));return a(e,0),n})(e,n),(e=>De(e,(e=>Ae(o,e)[0](s,...n??[],...a))))),e=>F(Ae(o,e),(([,s,n])=>(_e(s,n??[t],void 0,(t=>(Ee(t,e),Me(t)?1:0))),xe(o,e),a(e),n))),e=>F(Ae(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=P(r);l==P(t)?e(s,...r,...a(r)):x(t[l])?K(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},nt=Ze((e=>{let s,n,a,o=100,r=He(),l=He(),i=1;const c=He(),d=He(),[u,g,h]=st((()=>A)),f=He(),b=He(),w=[],C=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Ae(f,s);De(n,((s,n)=>De(s,((s,a)=>De(s,((s,o)=>Be(e,n,a,o,s[t]))))))),De(a,((s,n)=>Ue(e,n,s[t])))})),i=1},v=e=>{xe(f,e),xe(b,e),g(d,[e])},y=(e,t)=>K(te(e,t??P(e)),v),I=()=>y(w,P(w)-o),p=()=>F(s,(()=>{se(w,s),I(),y(C),s=void 0,a=1})),T=()=>{s=ne(w),a=1};let R,S;const M=(e=t)=>(x(s)&&(s=t+n++,xe(f,s,[r,l]),H(s,e),r=He(),l=He(),a=1),s),V=()=>{Z(w)||(((e,...t)=>{e.unshift(...t)})(C,M()),L(0,s),s=ne(w),a=1)},m=()=>{Z(C)||(se(w,s),s=ae(C),L(1,s),a=1)},D=()=>{a&&(g(c),a=0)},E=e=>{const t=M(e);return D(),t},H=(e,t)=>(k(e)&&Ae(b,e)!==t&&(xe(b,e,t),g(d,[e])),A),k=e=>Se(f,e),A={setSize:e=>(o=e,I(),A),addCheckpoint:E,setCheckpoint:H,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...C]],forEachCheckpoint:e=>Je(b,e),hasCheckpoint:k,getCheckpoint:e=>Ae(b,e),goBackward:()=>(V(),D(),A),goForward:()=>(m(),D(),A),goTo:e=>{const t=j(w,e)?V:j(C,e)?m:null;for(;!x(t)&&e!=s;)t();return D(),A},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),A),clear:()=>(y(w),y(C),x(s)||v(s),s=void 0,n=0,E(),A),clearForward:()=>(Z(C)||(y(C),g(c)),A),destroy:()=>{e.delListener(R),e.delListener(S)},getListenerStats:()=>({checkpointIds:pe(c),checkpoint:pe(d)}),_registerListeners:()=>{R=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=Fe(r,t,He),l=Fe(e,s,He),i=Fe(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&Me(xe(l,n))&&Me(xe(e,s))&&Me(xe(r,t))&&T(),D()}})),S=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=Fe(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&Me(xe(l,t))&&T(),D()}}))}};return ue(A.clear())}),(e=>e._registerListeners())),at="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t),ot=He(X(at,((e,t)=>[e,t]))),rt=e=>at[63&e],lt=(e,t)=>Ae(ot,e[t])??0,it=D.crypto?e=>D.crypto.getRandomValues(e):e=>X(e,(()=>A(256*E.random()))),ct=(e,t)=>(e??0)<(t??0)?-1:1,dt=(e=16)=>ee(it(new Uint8Array(e)),((e,t)=>e+rt(t)),""),ut=Ze((e=>{const s=He(),n=He(),[a,o,r]=st((()=>v)),[l,i,c,d,u,g,h,,f,b,w,C]=Xe(e,He,(e=>x(e)?t:G(e)?X(e,S):S(e)),a,o),L=(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)))))))))},v={setIndexDefinition:(e,t,a,r,l,i=ct)=>{const c=x(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let b=0;const w=qe(),C=qe(),L=g(e);if(De(a,(([e,t],s)=>{const n=qe(e),a=qe(t);De(n,(e=>Ee(a,e)?Ee(n,e):0)),De(n,(e=>{Ke(w,e),F(Ae(L,e),(t=>{Ee(t,s),Me(t)&&(xe(L,e),b=1)}))})),De(a,(e=>{Ke(w,e),Se(L,e)||(xe(L,e,qe()),b=1),Ke(Ae(L,e),s),x(r)||Ke(C,e)}))})),t(),Me(u)||(f?Je(L,(e=>Ke(C,e))):Je(l,(e=>F(Ae(d,e),(e=>Ke(C,e))))),De(C,(e=>{const t=(t,s)=>i(Ae(u,t),Ae(u,s),e),s=[...Ae(L,e)];U(s,t)||(xe(L,e,qe(q(s,t))),Ke(w,e))}))),(b||f)&&!x(c)){const t=[...L];U(t,c)||(h(e,He(q(t,c))),b=1)}b&&o(s,[e]),De(w,(t=>o(n,[e,t])))}),Ye(a),F(r,Ye)),v},delIndexDefinition:e=>(b(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>Se(g(e),t),getTableId:u,getSliceIds:e=>ke(g(e)),getSliceRowIds:(e,t)=>Ve(Ae(g(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:C,getListenerStats:()=>({sliceIds:pe(s),sliceRowIds:Te(n)})};return ue(v)})),gt=He([["avg",[(e,t)=>Y(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=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["min",[e=>k(...e),(e,t)=>k(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:k(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ht=(e,t,s,n,a,o=!1)=>{if(Me(s))return;const[r,l,i,c]=a;return o||=x(e),De(n,(([s,n])=>{o||(e=x(s)?l?.(e,n,t++):x(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=x(e))})),o?r(Ve(s),Ie(s)):e},ft=Ze((e=>{const s=He(),[n,a,o]=st((()=>C)),[r,l,i,c,d,u,g,,h,f,b,w]=Xe(e,W,(e=>isNaN(e)||x(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),C={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=z(n)?[n,r,l,i]:Ae(gt,n)??Ae(gt,"sum");return h(e,t,((t,n,o,r,l,i)=>{const d=u(e),h=Ie(r);i||=x(d),t();let f=ht(d,h,r,n,c,i);J(f)||(f=void 0),f!=d&&(g(e,f),a(s,[e],f,d))}),Ye(o,1)),C},delMetricDefinition:e=>(f(e),C),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),C),destroy:w,getListenerStats:()=>({metric:pe(s)})};return ue(C)})),bt={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},wt=He(),Ct=He(),Lt=(e,t,s,n,a,o,r,l={},i=[])=>{let c,d,u,g=0,h=0,f=0;Fe(wt,i,(()=>0)),Fe(Ct,i,(()=>[]));const[b,w,C,L,v]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!Ce(e)||!Ce(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!Ce(e)||!Ce(t),t.setContent]:_("Store type not supported by this Persister"))(r,e),y=t=>{(b&&G(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},I=async e=>(2!=g&&(g=1,h++,await S((async()=>{try{const e=await t();G(e)?y(e):_("Content is not an array "+e)}catch(t){o?.(t),e&&v(e)}g=0}))),M),p=()=>(d&&(a(d),d=void 0),M),T=async e=>(1!=g&&(g=2,f++,await S((async()=>{try{await s(w,e)}catch(e){o?.(e)}g=0}))),M),R=()=>(F(u,e.delListener),u=void 0,M),S=async(...e)=>(se(Ae(Ct,i),...e),await(async()=>{if(!Ae(wt,i)){for(xe(wt,i,1);!x(c=ae(Ae(Ct,i)));)try{await c()}catch(e){o?.(e)}xe(wt,i,0)}})(),M),M={load:I,startAutoLoad:async e=>{await p().load(e);try{d=await n((async(e,t)=>{t||e?2!=g&&(g=1,h++,y(t??e),g=0):await I()}))}catch(e){o?.(e)}return M},stopAutoLoad:p,isAutoLoading:()=>!x(d),save:T,startAutoSave:async()=>(await R().save(),u=e.addDidFinishTransactionListener((()=>{const e=C();L(e)&&T(e)})),M),stopAutoSave:R,isAutoSaving:()=>!x(u),schedule:S,getStore:()=>e,destroy:()=>(te(Ae(Ct,i)),p().stopAutoSave()),getStats:()=>({loads:h,saves:f}),...l};return ue(M)},vt=new D.TextEncoder,yt=e=>{let t=2166136261;return K(vt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},It=([e,t,s])=>[e,t,s],pt=([e,t])=>Tt(e,t),Tt=(e,t)=>t?[e,t]:[e],Rt=e=>e[2],St=(e,t)=>yt(e+":"+t),Mt=(e,t)=>t>e?(e?yt(e):0)^yt(t):0,Vt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{e[2]=t>>>0,s>e[1]&&(e[1]=s)},Dt=(e=t)=>Tt(ge(),e),Et=(e=t)=>[He(),e,0],Ht=([e,t,s],n=It)=>[Qe(e,n),t,s],kt=([e,t],s=pt)=>Tt(Qe(e,s),t),At=(t,s)=>G(t)&&3==P(t)&&Q(t[1])&&e(t[2])==a&&J(t[2])&&s(t[0]),Jt={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},xt=(e,s,n,a,o,r,l,i,c={})=>{let d,u=0,g=0;const h=He(),f=(e,t,n,a)=>{u++,r?.(e,t,n,a),s(e,t,n,a)},b=async(e,s,n=t)=>new m(((t,a)=>{const r=dt(),l=setTimeout((()=>{Ee(h,r),a(`No response from ${e??"anyone"} to ${r}, `+s)}),1e3*o);xe(h,r,[e,(e,s)=>{clearTimeout(l),Ee(h,r),t([e,s])}]),f(e,r,s,n)})),w=(e,[t,s])=>{be(t,(([t,s],n)=>{const a=Le(e[0],n,Dt);be(t,(([e,t],s)=>{const n=Le(a[0],s,Dt);be(e,(([e,t],s)=>n[0][s]=Tt(e,t))),n[1]=Vt(n[1],t)})),a[1]=Vt(a[1],s)})),e[1]=Vt(e[1],s)},C=async(t=null,s)=>{x(s)&&([s,t]=await b(t,1));const[n,a]=s,[o,r]=e.getMergeableContentHashes();let l=Dt();if(o!=n){const[s,n]=(await b(t,4,e.getMergeableTableHashes()))[0];if(l=s,!Ce(n)){const[s,a]=(await b(t,5,e.getMergeableRowHashes(n)))[0];if(w(l,s),!Ce(a)){const s=(await b(t,6,e.getMergeableCellHashes(a)))[0];w(l,s)}}}return[l,r==a?Dt():(await b(t,7,e.getMergeableValueHashes()))[0],1]},L=Lt(e,(async()=>{const e=await C();return Ce(e[0][0])&&Ce(e[1][0])?void 0:e}),(async(t,s)=>s?f(null,null,3,s):f(null,null,2,e.getMergeableContentHashes())),(e=>d=e),(()=>d=void 0),i,2,{startSync:async e=>await(await L.startAutoLoad(e)).startAutoSave(),stopSync:()=>L.stopAutoLoad().stopAutoSave(),destroy:()=>(a(),L.stopSync()),getSynchronizerStats:()=>({sends:u,receives:g}),...c});return n(((t,s,n,a)=>{g++,l?.(t,s,n,a),0==n?F(Ae(h,s),(([e,s])=>x(e)||e==t?s(a,t):0)):2==n&&L.isAutoLoading()?C(t,a).then((e=>{d?.(void 0,e)})):3==n&&L.isAutoLoading()?d?.(void 0,a):F(1==n&&L.isAutoSaving()?e.getMergeableContentHashes():4==n?e.getMergeableTableDiff(a):5==n?e.getMergeableRowDiff(a):6==n?e.getMergeableCellDiff(a):7==n?e.getMergeableValueDiff(a):void 0,(e=>{f(t,s,0,e)}))})),L},Ft=Ze((e=>{const s=e.createStore,n=s(),a=s(),o=He(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,b,p,T,,,R,,S,M,V,m,D]=Xe(e,(()=>!0),W,r,l),E=(e,t,...s)=>K(s,(s=>Ke(Fe(Fe(o,t,He),e,qe),s))),H=e=>{F(Ae(o,e),(e=>{Je(e,((e,t)=>De(t,(t=>e.delListener(t))))),me(e)})),K([a,n],(t=>t.delTable(e)))},k=(e,t,s)=>E(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),A={setQueryDefinition:(s,o,r)=>{R(s,o),H(s);const l=[],i=[[null,[o,null,null,[],He()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=z(e)?[P(l)+t,e]:[x(s)?e:s,t=>t(e,s)];return se(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=x(s)||z(t)?null:t,a=x(n)?t:s,o=[e,[e,n,z(a)?a:e=>e(a),[],He()]];return se(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>se(c,z(e)?e:x(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,z(t)?[t,s,n,a]:Ae(gt,t)??[(e,t)=>t]]];return se(d,o),{as:e=>o[0]=e}},having:(e,t)=>se(u,z(e)?e:s=>s(e)===t)});const g=He(l);if(Me(g))return A;const h=He(i);Je(h,((e,[,t])=>F(Ae(h,t),(({3:t})=>x(e)?0:se(t,e)))));const f=He(d);let b=n;if(Me(f)&&Z(u))b=a;else{k(s,b,a);const e=He();Je(f,((t,[s,n])=>Ke(Fe(e,s,qe),[t,n])));const t=qe();Je(g,(s=>Se(e,s)?0:Ke(t,s)));const n=He(),o=(t,n,o,r)=>F(t,(([l,i,c,d])=>{Je(n,((t,[s])=>{const n=Fe(l,t,He),a=Ae(n,o),i=r?void 0:s;if(a!==i){const s=qe([[a,i]]),r=Ie(n);xe(n,o,i),De(Ae(e,t),(([e,t])=>{const a=ht(d[e],r,n,s,t);d[e]=x(je(a))?null:a}))}})),Me(i)||!$(u,(e=>e((e=>d[e]))))?a.delRow(s,c):x(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));E(b,s,b.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=He(),g=b.hasRow(s,l);let h=!g;De(t,(e=>{const[t,n,a]=i(s,l,e);se(c,n),se(d,a),h||=t})),Je(e,(e=>{const[t,,n]=i(s,l,e);(h||t)&&xe(u,e,[n])})),h&&o(_e(n,c,void 0,(([,e])=>(Ee(e,l),Me(e)))),u,l,1),g&&o(_e(n,d,(()=>{const e={};return De(t,(t=>e[t]=b.getCell(s,l,t))),[He(),qe(),void 0,e]}),(([,e])=>{Ke(e,l)})),u,l)})))}k(s,e,b);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);K(r,(n=>{const[a,,o,r,i]=Ae(h,n),c=o?.(l,t),[d,u]=Ae(i,t)??[];c!=d&&(x(u)||D(s,u),xe(i,t,x(c)?null:[c,...m(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...x(n)?[o,t,s]:s===o?[o,t,n]:[Ae(h,s)?.[0],Ae(Ae(h,s)?.[4],t)?.[0],n]);b.transaction((()=>$(c,(e=>e(n)))?Je(g,((e,a)=>Be(b,s,t,e,a(n,t)))):b.delRow(s,t)))})(t)},{3:C}=Ae(h,null);return b.transaction((()=>m(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,C):(b.delRow(s,a),De(h,(({4:e})=>F(Ae(e,a),(([,t])=>{D(s,t),xe(e,a)})))))}))))),A},delQueryDefinition:e=>(H(e),S(e),A),getStore:g,getQueryIds:f,forEachQuery:b,hasQuery:p,getTableId:T,addQueryIdsListener:e=>M((()=>e(A))),delListener:e=>(u(e),A),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return we({[h]:[1,1],[h+I]:[0,1],[C]:[0,1],[L]:[0,1],[v]:[0,5],[w]:[1,2],[I]:[0,2],[y]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>A[e+c+s]=(...t)=>a[e+s](...t))),A[d+c+s+i]=(...e)=>a[d+s+i](...N(e,0,t),((s,...n)=>e[t](A,...n)),!0)})),ue(A)})),Ot=Ze((e=>{const s=He(),n=He(),a=He(),o=He(),[r,l,i]=st((()=>p)),[c,d,u,g,h,f,,,b,w,C,L]=Xe(e,(()=>[He(),He(),He(),He()]),(e=>x(e)?void 0:e+t),r,l),v=(e,t,s)=>F(f(e),(([n,,a])=>{if(!Se(a,t)){const o=qe();if(h(e)!=I(e))Ke(o,t);else{let e=t;for(;!x(e)&&!Se(o,e);)Ke(o,e),e=Ae(n,e)}if(s)return o;xe(a,t,o)}return Ae(a,t)})),y=(e,t)=>F(f(e),(([,,e])=>xe(e,t))),I=e=>Ae(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(xe(s,e,r),b(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);De(s,(([t,s],n)=>{x(t)||(Ke(i,t),F(Ae(u,t),(e=>{Ee(e,n),Me(e)&&xe(u,t)}))),x(s)||(Ke(i,s),Se(u,s)||xe(u,s,qe()),Ke(Ae(u,s),n)),Ke(r,n),xe(d,n,s),Je(Ae(o,e),(t=>{Se(v(e,t),n)&&Ke(c,t)}))})),t(),De(r,(t=>l(n,[e,t]))),De(i,(t=>l(a,[e,t]))),De(c,(t=>{y(e,t),l(o,[e,t])}))}),Ye(i)),p),delRelationshipDefinition:e=>(xe(s,e),w(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:I,getRemoteRowId:(e,t)=>Ae(f(e)?.[0],t),getLocalRowIds:(e,t)=>Ve(Ae(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>x(f(e))?[t]:Ve(v(e,t,!0)),addRelationshipIdsListener:C,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(y(...i(e)??[]),p),destroy:L,getListenerStats:()=>({remoteRowId:Te(n),localRowIds:Te(a),linkedRowIds:Te(o)})};return ue(p)})),Qt=e=>[e,e],zt=(e,t=pe)=>t(e[0])+t(e[1]),Gt=()=>[He(),He()],Nt=e=>[...e],Pt=([e,t])=>e===t,Wt=JSON.stringify,_t=JSON.parse,jt=e=>Wt(e,((e,t)=>t instanceof Map?oe.fromEntries([...t]):t)),$t=(e,t,s)=>xe(e,t,Ae(e,t)==-s?void 0:s),Bt=()=>{let e,t,s=!1,n=!1,o=0,c=[];const g=He(),v=He(),M=He(),V=He(),m=He(),D=He(),E=He(),H=He(),k=He(),A=He(),J=He(),Q=He(),P=He(),W=He(),_=qe(),$=He(),U=He(),Y=He(),Z=He(),ee=Gt(),te=Gt(),ne=Gt(),ae=Gt(),oe=Gt(),re=Gt(),le=Gt(),ie=Gt(),ce=Gt(),de=Gt(),ge=Gt(),be=Gt(),Le=Gt(),ye=Gt(),Ve=Gt(),_e=Gt(),$e=Gt(),Xe=Gt(),Ye=Gt(),Ze=Gt(),et=Gt(),nt=Gt(),at=He(),ot=Gt(),[rt,lt,it,dt]=st((()=>Gs)),ut=e=>{if(!ve(e,((e,t)=>j([r,l],t))))return!1;const t=e[r];return!(!O(t)&&t!=a||(je(e[l])!=t&&fe(e,l),0))},gt=G,ht=(t,s)=>(!e||Se(J,s)||Yt(s))&&ve(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>ve(n?s:Lt(s,e,t),((n,a)=>F(bt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Yt(e,t))),bt=(t,s,n,a)=>e?F(Ae(Ae(J,t),n),(e=>je(a)!=e[r]?Yt(t,s,n,a,e[l]):a),(()=>Yt(t,s,n,a))):x(je(a))?Yt(t,s,n,a):a,wt=(e,t)=>ve(t?e:vt(e),((t,s)=>F(Ct(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),Ct=(e,s)=>t?F(Ae(P,e),(t=>je(s)!=t[r]?Zt(e,s,t[l]):s),(()=>Zt(e,s))):x(je(s))?Zt(e,s):s,Lt=(e,t,s)=>(F(Ae(Q,t),(([n,a])=>{De(n,((t,s)=>{he(e,s)||(e[s]=t)})),De(a,(n=>{he(e,n)||Yt(t,s,n)}))})),e),vt=e=>(t&&(De(W,((t,s)=>{he(e,s)||(e[s]=t)})),De(_,(t=>{he(e,t)||Zt(t)}))),e),yt=e=>Oe(J,e,((e,t,s)=>{const n=He(),a=qe();Oe(Fe(J,t,He),s,((e,t,s)=>{xe(e,t,s),F(s[l],(e=>xe(n,t,e)),(()=>Ke(a,t)))})),xe(Q,t,[n,a])}),((e,t)=>{xe(J,t),xe(Q,t)})),It=e=>Oe(P,e,((e,t,s)=>{xe(P,t,s),F(s[l],(e=>xe(W,t,e)),(()=>Ke(_,t)))}),((e,t)=>{xe(P,t),xe(W,t),Ee(_,t)})),pt=e=>Ce(e)?Hs():Ms(e),Tt=e=>Oe(Y,e,((e,t,s)=>Rt(t,s)),((e,t)=>At(t))),Rt=(e,t)=>Oe(Fe(Y,e,(()=>(Ot(e,1),xe($,e,tt()),xe(U,e,He()),He()))),t,((t,s,n)=>St(e,t,s,n)),((t,s)=>Jt(e,t,s))),St=(e,t,s,n,a)=>Oe(Fe(t,s,(()=>(Wt(e,s,1),He()))),n,((t,n,a)=>Mt(e,s,t,n,a)),((n,o)=>xt(e,t,s,n,o,a))),Mt=(e,t,s,n,a)=>{Se(s,n)||Ut(e,t,n,1);const o=Ae(s,n);a!==o&&(qt(e,t,n,o,a),xe(s,n,a))},Vt=(e,t,s,n,a)=>F(Ae(t,s),(t=>Mt(e,s,t,n,a)),(()=>St(e,t,s,Lt({[n]:a},e,s)))),mt=e=>Ce(e)?Js():Vs(e),Dt=e=>Oe(Z,e,((e,t,s)=>Et(t,s)),((e,t)=>Ft(t))),Et=(e,t)=>{Se(Z,e)||Kt(e,1);const s=Ae(Z,e);t!==s&&(Xt(e,s,t),xe(Z,e,t))},Ht=(e,t)=>{const[s]=Ae($,e),n=s(t);return Se(Ae(Y,e),n)?Ht(e,t):n},kt=e=>Ae(Y,e)??Rt(e,{}),At=e=>Rt(e,{}),Jt=(e,t,s)=>{const[,n]=Ae($,e);n(s),St(e,t,s,{},!0)},xt=(e,t,s,n,a,o)=>{const r=Ae(Ae(Q,e)?.[0],a);if(!x(r)&&!o)return Mt(e,s,n,a,r);const l=t=>{qt(e,s,t,Ae(n,t)),Ut(e,s,t,-1),xe(n,t)};x(r)?l(a):Je(n,l),Me(n)&&(Wt(e,s,-1),Me(xe(t,s))&&(Ot(e,-1),xe(Y,e),xe($,e),xe(U,e)))},Ft=e=>{const t=Ae(W,e);if(!x(t))return Et(e,t);Xt(e,Ae(Z,e)),Kt(e,-1),xe(Z,e)},Ot=(e,t)=>$t(g,e,t),Wt=(e,t,s)=>$t(Fe(V,e,He),t,s)&&xe(M,e,Fe(M,e,(()=>0))+s),Ut=(e,t,s,n)=>{const a=Ae(U,e),o=Ae(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&$t(Fe(v,e,He),s,n),xe(a,s,o!=-n?o+n:null),$t(Fe(Fe(m,e,He),t,He),s,n)},qt=(e,t,s,n,a)=>{Fe(Fe(Fe(D,e,He),t,He),s,(()=>[n,0]))[1]=a,c[3]?.(e,t,s,a)},Kt=(e,t)=>$t(E,e,t),Xt=(e,t,s)=>{Fe(H,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,a)=>(se(Fe(Fe(Fe(k,e,He),t,He),s,(()=>[])),n),a),Zt=(e,t,s)=>(se(Fe(A,e,(()=>[])),t),s),es=(e,t,s)=>F(Ae(Ae(Ae(D,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Qt(bs(e,t,s))])),ts=e=>F(Ae(H,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Qt(Ls(e))])),ss=e=>Me(k)||Me(_e[e])?0:De(e?We(k):k,((t,s)=>De(t,((t,n)=>De(t,((t,a)=>lt(_e[e],[s,n,a],t))))))),ns=e=>Me(A)||Me($e[e])?0:De(e?Ne(A):A,((t,s)=>lt($e[e],[s],t))),as=(e,t,s,n)=>{if(!Me(e))return lt(t,n,(()=>Qe(e))),Je(e,((e,t)=>lt(s,[...n??[],e],1==t))),1},os=e=>{const t=vs();t!=s&<(ee[e],void 0,t);const n=Me(de[e]),a=Me(Le[e])&&Me(ye[e])&&Me(ce[e])&&Me(ge[e])&&Me(re[e])&&Me(le[e])&&Me(ie[e])&&n&&Me(ne[e])&&Me(ae[e]),o=Me(Ve[e])&&Me(be[e])&&Me(oe[e])&&Me(te[e]);if(!a||!o){const t=e?[Ne(g),Pe(v),Ne(M),Pe(V),We(m),We(D)]:[g,v,M,V,m,D];if(!a){as(t[0],ne[e],ae[e]),De(t[1],((t,s)=>as(t,re[e],le[e],[s]))),De(t[2],((t,s)=>{0!=t&<(ie[e],[s],us(s))}));const s=qe();De(t[3],((t,a)=>{as(t,ce[e],ge[e],[a])&&!n&&(lt(de[e],[a,null]),Ke(s,a))})),n||De(t[5],((t,n)=>{if(!Se(s,n)){const s=qe();De(t,(e=>De(e,(([t,n],a)=>n!==t?Ke(s,a):Ee(e,a))))),De(s,(t=>lt(de[e],[n,t])))}})),De(t[4],((t,s)=>De(t,((t,n)=>as(t,Le[e],ye[e],[s,n])))))}if(!o){let s;De(t[5],((t,n)=>{let a;De(t,((t,o)=>{let r;De(t,(([t,l],i)=>{l!==t&&(lt(Ve[e],[n,o,i],l,t,es),s=a=r=1)})),r&<(be[e],[n,o],es)})),a&<(oe[e],[n],es)})),s&<(te[e],void 0,es)}}},rs=e=>{const t=Rs();t!=n&<(Xe[e],void 0,t);const s=Me(Ze[e])&&Me(et[e]),a=Me(nt[e])&&Me(Ye[e]);if(!s||!a){const t=e?[Ne(E),Ne(H)]:[E,H];if(s||as(t[0],Ze[e],et[e]),!a){let s;De(t[1],(([t,n],a)=>{n!==t&&(lt(nt[e],[a],n,t,ts),s=1)})),s&<(Ye[e],void 0,ts)}}},ls=(e,...t)=>(Os((()=>e(...X(t,S)))),Gs),is=()=>Ge(Y),cs=()=>ke(Y),ds=e=>ke(Ae(U,S(e))),us=e=>Ie(Ae(Y,S(e))),gs=e=>ke(Ae(Y,S(e))),hs=(e,t,s,n=0,a)=>{return X(N(q((o=Ae(Y,S(e)),r=(e,s)=>[x(t)?s:Ae(e,S(t)),s],X([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>ct(e,t)*(s?-1:1))),n,x(a)?a:n+a),(([,e])=>e));var o,r},fs=(e,t)=>ke(Ae(Ae(Y,S(e)),S(t))),bs=(e,t,s)=>Ae(Ae(Ae(Y,S(e)),S(t)),S(s)),ws=()=>Qe(Z),Cs=()=>ke(Z),Ls=e=>Ae(Z,S(e)),vs=()=>!Me(Y),ys=e=>Se(Y,S(e)),Is=(e,t)=>Se(Ae(U,S(e)),S(t)),ps=(e,t)=>Se(Ae(Y,S(e)),S(t)),Ts=(e,t,s)=>Se(Ae(Ae(Y,S(e)),S(t)),S(s)),Rs=()=>!Me(Z),Ss=e=>Se(Z,S(e)),Ms=e=>ls((()=>(e=>ve(e,ht,Yt))(e)?Tt(e):0)),Vs=e=>ls((()=>wt(e)?Dt(e):0)),ms=e=>{try{pt(_t(e))}catch{}return Gs},Ds=t=>ls((()=>{if((e=ve(t,(e=>ve(e,ut))))&&(yt(t),!Me(Y))){const e=is();Hs(),Ms(e)}})),Es=e=>ls((()=>{if(t=(e=>ve(e,ut))(e)){const s=ws();Fs(),Js(),t=!0,It(e),Vs(s)}})),Hs=()=>ls((()=>Tt({}))),ks=e=>ls((e=>Se(Y,e)?At(e):0),e),As=(e,t)=>ls(((e,t)=>F(Ae(Y,e),(s=>Se(s,t)?Jt(e,s,t):0))),e,t),Js=()=>ls((()=>Dt({}))),xs=()=>ls((()=>{yt({}),e=!1})),Fs=()=>ls((()=>{It({}),t=!1})),Os=(e,t)=>{if(-1!=o){Qs();const s=e();return zs(t),s}},Qs=()=>(-1!=o&&o++,1==o&&(c[0]?.(),lt(at)),Gs),zs=e=>(o>0&&(o--,0==o&&(o=1,ss(1),Me(D)||os(1),ns(1),Me(H)||rs(1),e?.(Gs)&&(De(D,((e,t)=>De(e,((e,s)=>De(e,(([e],n)=>Be(Gs,t,s,n,e))))))),me(D),De(H,(([e],t)=>Ue(Gs,t,e))),me(H)),lt(ot[0],void 0),o=-1,ss(0),Me(D)||os(0),ns(0),Me(H)||rs(0),c[1]?.(),lt(ot[1],void 0),c[2]?.(),o=0,s=vs(),n=Rs(),K([g,v,M,V,m,D,k,E,H,A],me))),Gs),Gs={getContent:()=>[is(),ws()],getTables:is,getTableIds:cs,getTable:e=>ze(Ae(Y,S(e))),getTableCellIds:ds,getRowCount:us,getRowIds:gs,getSortedRowIds:hs,getRow:(e,t)=>Qe(Ae(Ae(Y,S(e)),S(t))),getCellIds:fs,getCell:bs,getValues:ws,getValueIds:Cs,getValue:Ls,hasTables:vs,hasTable:ys,hasTableCell:Is,hasRow:ps,hasCell:Ts,hasValues:Rs,hasValue:Ss,getTablesJson:()=>jt(Y),getValuesJson:()=>jt(Z),getJson:()=>jt([Y,Z]),getTablesSchemaJson:()=>jt(J),getValuesSchemaJson:()=>jt(P),getSchemaJson:()=>jt([J,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>ls((()=>gt(e)?(([e,t])=>{(Ce(e)?Hs:Ms)(e),(Ce(t)?Js:Vs)(t)})(e):0)),setTables:Ms,setTable:(e,t)=>ls((e=>ht(t,e)?Rt(e,t):0),e),setRow:(e,t,s)=>ls(((e,t)=>ft(e,t,s)?St(e,kt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Os((()=>{let n;return ft(e,n,t)&&(e=S(e),St(e,kt(e),n=Ht(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ls(((e,t)=>{if(ft(e,t,s,1)){const n=kt(e);we(s,((s,a)=>Vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ls(((e,t,s)=>F(bt(e,t,s,z(n)?n(bs(e,t,s)):n),(n=>Vt(e,kt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>ls((()=>wt(e,1)?we(e,((e,t)=>Et(t,e))):0)),setValue:(e,t)=>ls((e=>F(Ct(e,z(t)?t(Ls(e)):t),(t=>Et(e,t)))),e),applyChanges:e=>ls((()=>{we(e[0],((e,t)=>x(e)?ks(t):we(e,((e,s)=>x(e)?As(t,s):we(e,((e,n)=>Be(Gs,t,s,n,e))))))),we(e[1],((e,t)=>Ue(Gs,t,e)))})),setTablesJson:ms,setValuesJson:e=>{try{mt(_t(e))}catch{}return Gs},setJson:e=>ls((()=>{try{const[t,s]=_t(e);pt(t),mt(s)}catch{ms(e)}})),setTablesSchema:Ds,setValuesSchema:Es,setSchema:(e,t)=>ls((()=>{Ds(e),Es(t)})),delTables:Hs,delTable:ks,delRow:As,delCell:(e,t,s,n)=>ls(((e,t,s)=>F(Ae(Y,e),(a=>F(Ae(a,t),(o=>Se(o,s)?xt(e,a,t,o,s,n):0))))),e,t,s),delValues:Js,delValue:e=>ls((e=>Se(Z,e)?Ft(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>ls((()=>{xs(),Fs()})),transaction:Os,startTransaction:Qs,getTransactionChanges:()=>[Qe(D,((e,t)=>-1===Ae(g,t)?void 0:Qe(e,((e,s)=>-1===Ae(Ae(V,t),s)?void 0:Qe(e,(([,e])=>e),(e=>Pt(e)))),Me,Ce)),Me,Ce),Qe(H,(([,e])=>e),(e=>Pt(e))),1],getTransactionLog:()=>[!Me(D),!Me(H),Ge(D,Nt,Pt),Ge(k),Qe(H,Nt,Pt),Qe(A),Qe(g),ze(V),Ge(m),Qe(E)],finishTransaction:zs,forEachTable:e=>De(Y,((t,s)=>e(s,(e=>De(t,((t,s)=>e(s,(e=>Je(t,e))))))))),forEachTableCell:(e,t)=>Je(Ae(U,S(e)),t),forEachRow:(e,t)=>De(Ae(Y,S(e)),((e,s)=>t(s,(t=>Je(e,t))))),forEachCell:(e,t,s)=>Je(Ae(Ae(Y,S(e)),S(t)),s),forEachValue:e=>Je(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=hs(e,t,s,n,a);return rt((()=>{const r=hs(e,t,s,n,a);B(r,l)||(l=r,o(Gs,e,t,s,n,a,l))}),de[r?1:0],[e,t],[cs])},addStartTransactionListener:e=>rt(e,at),addWillFinishTransactionListener:e=>rt(e,ot[0]),addDidFinishTransactionListener:e=>rt(e,ot[1]),callListener:e=>(dt(e),Gs),delListener:e=>(it(e),Gs),getListenerStats:()=>({hasTables:zt(ee),tables:zt(te),tableIds:zt(ne),hasTable:zt(ae),table:zt(oe),tableCellIds:zt(re),hasTableCell:zt(le,Te),rowCount:zt(ie),rowIds:zt(ce),sortedRowIds:zt(de),hasRow:zt(ge,Te),row:zt(be,Te),cellIds:zt(Le,Te),hasCell:zt(ye,Re),cell:zt(Ve,Re),invalidCell:zt(_e,Re),hasValues:zt(Xe),values:zt(Ye),valueIds:zt(Ze),hasValue:zt(et),value:zt(nt),invalidValue:zt($e),transaction:pe(at)+zt(ot)}),isMergeable:()=>!1,createStore:Bt,addListener:rt,callListeners:lt,setInternalListeners:(e,t,s,n,a)=>c=[e,t,s,n,a]};return we({[u+f]:[0,ee,[],()=>[vs()]],[f]:[0,te],[b]:[0,ne],[u+h]:[1,ae,[cs],e=>[ys(...e)]],[h]:[1,oe,[cs]],[h+I]:[1,re,[cs]],[u+h+y]:[2,le,[cs,ds],e=>[Is(...e)]],[C]:[1,ie,[cs]],[L]:[1,ce,[cs]],[u+w]:[2,ge,[cs,gs],e=>[ps(...e)]],[w]:[2,be,[cs,gs]],[I]:[2,Le,[cs,gs]],[u+y]:[3,ye,[cs,gs,fs],e=>[Ts(...e)]],[y]:[3,Ve,[cs,gs,fs],e=>Qt(bs(...e))],InvalidCell:[3,_e],[u+T]:[0,Xe,[],()=>[Rs()]],[T]:[0,Ye],[R]:[0,Ze],[u+p]:[1,et,[Cs],e=>[Ss(...e)]],[p]:[1,nt,[Cs],e=>Qt(Ls(e[0]))],InvalidValue:[1,$e]},(([e,t,s,n],a)=>{Gs[d+a+i]=(...a)=>rt(a[e],t[a[e+1]?1:0],e>0?N(a,0,e):void 0,s,n)})),ue(Gs)},Ut=2**36,qt=2**30,Kt=2**24,Xt=2**18,Yt=4096,Zt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},es=(e=t)=>[Et(e),Et(e)],ts=e=>{let s=1,n=es(),a=0;const o=He(),r=qe(),[l,i]=(e=>{let t=0,s=-1;const n=F(e,(e=>{const t=yt(e);return rt(t/Kt)+rt(t/Xt)+rt(t/Yt)+rt(t/64)+rt(t)}),(()=>dt(5))),a=e=>{const n=t,[a,o]=x(e)||""==e?[0,0]:[lt(r=e,0)*Ut+lt(r,1)*qt+lt(r,2)*Kt+lt(r,3)*Xt+lt(r,4)*Yt+64*lt(r,5)+lt(r,6),lt(r,7)*Xt+lt(r,8)*Yt+64*lt(r,9)+lt(r,10)];var r;t=H(n,a,D.HLC_TIME??Date.now()),s=t==n?t==a?H(s,o):s:t==a?o:-1};return[()=>{return a(),o=++s,rt((e=t)/Ut)+rt(e/qt)+rt(e/Kt)+rt(e/Xt)+rt(e/Yt)+rt(e/64)+rt(e)+rt(o/Xt)+rt(o/Yt)+rt(o/64)+rt(o)+n;var e,o},a]})(e),c=Bt(),d=e=>{const t=s;return s=0,e(),s=t,b},u=(e,s=0)=>{const a={},o={},[[r,l=t,c=0],d]=e,[u,h]=n,[f,b,w]=u;let C=s?c:w,L=l;be(r,(([e,n=t,o=0],r)=>{const l=Fe(f,r,Et),[i,c,d]=l;let u=s?o:d,h=n;be(e,((e,t)=>{const[n,o,l]=g(e,Fe(i,t,Et),Le(Le(a,r,ge),t,ge),s);u^=s?0:(o?St(t,o):0)^St(t,l),h=Vt(h,n)})),u^=s?0:Mt(c,n),mt(l,u,n),C^=s?0:(d?St(r,d):0)^St(r,l[2]),L=Vt(L,h)})),C^=s?0:Mt(b,l),mt(u,C,l);const[v]=g(d,h,o,s);return i(Vt(L,v)),[a,o,1]},g=(e,s,n,a)=>{const[o,r=t,l=0]=e,[i,c,d]=s;let u=r,g=a?l:d;return be(o,(([e,s,o=0],r)=>{const l=Fe(i,r,(()=>[void 0,t,0])),[,c,d]=l;(!c||s>c)&&(mt(l,a?o:yt(jt(e??null)+":"+s),s),l[0]=e,n[r]=e,g^=a?0:St(r,d)^St(r,l[2]),u=Vt(u,s))})),g^=a?0:Mt(c,r),mt(s,g,r),[u,d,s[2]]},h=()=>[Ht(n[0],(e=>Ht(e,(e=>Ht(e))))),Ht(n[1])],f=e=>d((()=>c.applyChanges(u(e)))),b={getMergeableContent:h,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>Qe(n[0][0],Rt),getMergeableTableDiff:e=>{const t=Dt(n[0][1]),s={};return Je(n[0][0],((n,[a,o,r])=>he(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=kt([a,o],(e=>kt(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return be(e,((e,s)=>F(Ae(n[0][0],s),(([n,,a])=>a!=e?Je(n,((e,[,,n])=>Le(t,s,ge)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Dt(n[0][1]),s={};return be(e,((e,a)=>Je(Ae(n[0][0],a)?.[0],((n,[o,r,l])=>he(e,n)?l!==e[n]?Le(s,a,ge)[n]=l:0:Le(t[0],a,Dt)[0][n]=kt([o,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return be(e,((e,s)=>F(Ae(n[0][0],s),(([n])=>be(e,((e,a)=>F(Ae(n,a),(([n,,o])=>o!==e?Je(n,((e,[,,n])=>Le(Le(t,s,ge),a,ge)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,a={};return be(e,((e,s)=>be(e,((e,n)=>F(Ae(t,s),(([t,o])=>F(Ae(t,n),(([t,r])=>Je(t,((t,[l,i,c])=>c!==e[t]?Le(Le(a,s,(()=>Dt(o)))[0],n,(()=>Dt(r)))[0][t]=[l,i]:0)))))))))),Tt(a,s)},getMergeableValueHashes:()=>Qe(n[1][0],Rt),getMergeableValueDiff:e=>{const[,[t,s]]=n,a=Qe(t,pt,(([,,t],s)=>t==e?.[s]));return Tt(a,s)},setMergeableContent:e=>d((()=>(e=>G(e)&&2==P(e)&&At(e[0],(e=>ve(e,(e=>At(e,(e=>ve(e,(e=>At(e,(e=>ve(e,(e=>At(e,$e)),void 0,1)))),void 0,1)))),void 0,1)))&&At(e[1],(e=>ve(e,(e=>At(e,$e)),void 0,1))))(e)?c.transaction((()=>{c.delTables().delValues(),n=es(),c.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(c.transaction((()=>{a=1,c.setContent(e),a=0})),b),getTransactionMergeableChanges:()=>{const[[e,t],[s,a]]=n,l={};De(o,((t,s)=>F(Ae(e,s),(([e,n])=>{const a={};De(t,((t,s)=>F(Ae(e,s),(([e,n])=>{const o={};De(t,(t=>{F(Ae(e,t),(([e,s])=>o[t]=Tt(e,s)))})),a[s]=Tt(o,n)})))),l[s]=Tt(a,n)}))));const i={};return De(r,(e=>F(Ae(s,e),(([t,s])=>i[e]=Tt(t,s))))),[Tt(l,t),Tt(i,a),1]},applyMergeableChanges:f,merge:e=>{const t=h(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return c.setInternalListeners((()=>{}),(()=>{}),(()=>{me(o),me(r)}),((e,n,r,i)=>{Ke(Fe(Fe(o,e,He),n,qe),r),s&&u([[{[e]:[{[n]:[{[r]:[i,a?t:l()]}]}]}],[{}],1])}),((e,n)=>{Ke(r,e),s&&u([[{}],[{[e]:[n,a?t:l()]}],1])})),we(c,((e,t)=>b[t]=M(t,"set")||M(t,"del")||M(t,"apply")||V(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):M(t,"add")&&V(t,"Listener")?(...s)=>{const n=Zt[N(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(b,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),ue(b)};export{Jt as Message,bt as Persists,nt as createCheckpoints,Lt as createCustomPersister,xt as createCustomSynchronizer,ut as createIndexes,ts as createMergeableStore,ft as createMetrics,Ft as createQueries,Ot as createRelationships,Bt as createStore,ct as defaultSorter,dt as getUniqueId};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),r=e(e),a="type",l="default",i="Listener",d="Result",c="add",u="Has",g="Ids",h="Table",f=h+"s",I=h+g,b="Row",L=b+"Count",w=b+g,C="Sorted"+b+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=globalThis,E=Math,k=E.max,D=E.min,H=E.floor,J=isFinite,x=e=>null==e,F=(e,t,s)=>x(e)?s?.():t(e),Q=e=>e==s||e==n,z=t=>e(t)==s,N=t=>e(t)==r,O=e=>Array.isArray(e),W=(e,t,s)=>e.slice(t,s),A=e=>e.length,P=()=>{},_=(e,t)=>e.includes(t),j=(e,t)=>e.every(t),B=(e,t)=>A(e)===A(t)&&j(e,((e,s)=>t[s]===e)),U=(e,t)=>j(e,((s,n)=>0==n||t(e[n-1],s)<=0)),q=(e,t)=>e.sort(t),G=(e,t)=>e.forEach(t),K=(e,t)=>e.map(t),X=e=>Z(e,((e,t)=>e+t),0),Y=e=>0==A(e),Z=(e,t,s)=>e.reduce(t,s),$=(e,...t)=>e.push(...t),ee=e=>e.pop(),te=e=>e.shift(),se=Object,ne=e=>se.getPrototypeOf(e),oe=se.entries,re=se.isFrozen,ae=e=>!x(e)&&F(ne(e),(e=>e==se.prototype||x(ne(e))),(()=>!0)),le=se.keys,ie=se.freeze,de=(e=[])=>se.fromEntries(e),ce=(e,t)=>t in e,ue=(e,t)=>(delete e[t],e),ge=(e,t)=>G(oe(e),(([e,s])=>t(s,e))),he=(e,t)=>K(oe(e),(([e,s])=>t(s,e))),fe=e=>ae(e)&&0==(e=>A(le(e)))(e),Ie=(e,t,s)=>(ce(e,t)||(e[t]=s()),e[t]),be=(e,t,s,n=0)=>x(e)||!ae(e)||!n&&fe(e)||re(e)?(s?.(),!1):(he(e,((s,n)=>{t(s,n)||ue(e,n)})),!!n||!fe(e)),Le=e=>t=>Z(Se(t),((t,s)=>t+e(s)),0),we=e=>e?.size??0,Ce=Le(we),Re=Le(Ce),Te=Le(Re),ve=(e,t)=>e?.has(t)??!1,pe=e=>x(e)||0==we(e),Se=e=>[...e?.values()??[]],ye=e=>e.clear(),Ve=(e,t)=>e?.forEach(t),Me=(e,t)=>e?.delete(t),me=e=>new Map(e),Ee=e=>[...e?.keys()??[]],ke=(e,t)=>e?.get(t),De=(e,t)=>Ve(e,((e,s)=>t(s,e))),He=(e,t,s)=>x(s)?(Me(e,t),e):e?.set(t,s),Je=(e,t,s,n)=>(ve(e,t)?n?.(ke(e,t)):He(e,t,s()),ke(e,t)),xe=(e,t,s,n=He)=>(he(t,((t,n)=>s(e,n,t))),De(e,(s=>ce(t,s)?0:n(e,s))),e),Fe=(e,t,s,n)=>{const o={};return Ve(e,((e,r)=>{if(!s?.(e,r)){const s=t?t(e,r):e;n?.(s)||(o[r]=s)}})),o},Qe=(e,t,s)=>Fe(e,(e=>Fe(e,t,s)),pe,fe),ze=(e,t,s)=>Fe(e,(e=>Qe(e,t,s)),pe,fe),Ne=(e,t)=>{const s=me();return Ve(e,((e,n)=>s.set(n,t?.(e)??e))),s},Oe=e=>Ne(e,Ne),We=e=>Ne(e,Oe),Ae=(e,t,s,n,o=0)=>F((s?Je:ke)(e,t[o],o>A(t)-2?s:me),(r=>{if(o>A(t)-2)return n?.(r)&&He(e,t[o]),r;const a=Ae(r,t,s,n,o+1);return pe(r)&&He(e,t[o]),a})),Pe=t=>{const s=e(t);return Q(s)||s==o&&J(t)?s:void 0},_e=e=>x(e)||!x(Pe(e)),je=(e,t,s,n,o)=>x(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Be=(e,t,s)=>x(s)?e.delValue(t):e.setValue(t,s),Ue=e=>new Set(O(e)||x(e)?e:[e]),qe=(e,t)=>e?.add(t),Ge=(e,t,s,n,o)=>{const r=e.hasRow,a=me(),l=me(),i=me(),d=me(),c=me(),u=me(),g=(t,s,...n)=>{const o=Je(u,t,Ue);return G(n,(t=>qe(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>F(ke(u,t),(n=>{G(Y(s)?Se(n):s,(t=>{e.delListener(t),Me(n,t)})),pe(n)&&He(u,t)})),f=(e,s)=>{He(a,e,s),ve(l,e)||(He(l,e,t()),He(d,e,me()),He(c,e,me()),o(i))},I=e=>{He(a,e),He(l,e),He(d,e),He(c,e),h(e),o(i)};return[()=>e,()=>Ee(a),e=>De(l,e),e=>ve(l,e),e=>ke(a,e),e=>ke(l,e),(e,t)=>He(l,e,t),f,(t,n,o,a,l)=>{f(t,n);const i=me(),u=me(),I=ke(d,t),b=ke(c,t),L=t=>{const o=s=>e.getCell(n,t,s),d=ke(I,t),c=r(n,t)?s(a(o,t)):void 0;if(d===c||O(d)&&O(c)&&B(d,c)||He(i,t,[d,c]),!x(l)){const e=ke(b,t),s=r(n,t)?l(o,t):void 0;e!=s&&He(u,t,s)}},w=e=>{o((()=>{Ve(i,(([,e],t)=>He(I,t,e))),Ve(u,((e,t)=>He(b,t,e)))}),i,u,I,b,e),ye(i),ye(u)};De(I,L),e.hasTable(n)&&G(e.getRowIds(n),(e=>{ve(I,e)||L(e)})),w(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>L(s))),e.addTableListener(n,(()=>w())))},I,e=>n(e,i),()=>De(u,I),g,h]},Ke=(e,s)=>z(e)?t=>t(e):e??(()=>s??t),Xe=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ye=/^\d+$/,Ze=()=>{const e=[];let s=0;return[n=>(n?te(e):null)??t+s++,t=>{Ye.test(t)&&A(e)<1e3&&$(e,t)}]},$e=e=>{let s;const[n,o]=Ze(),r=me();return[(o,a,l,i=[],d=()=>[])=>{s??=e();const c=n(1);return He(r,c,[o,a,l,i,d]),qe(Ae(a,l??[t],Ue),c),c},(e,n,...o)=>G(((e,s=[t])=>{const n=[],o=(e,t)=>t==A(s)?$(n,e):null===s[t]?Ve(e,(e=>o(e,t+1))):G([s[t],null],(s=>o(ke(e,s),t+1)));return o(e,0),n})(e,n),(e=>Ve(e,(e=>ke(r,e)[0](s,...n??[],...o))))),e=>F(ke(r,e),(([,s,n])=>(Ae(s,n??[t],void 0,(t=>(Me(t,e),pe(t)?1:0))),He(r,e),o(e),n))),e=>F(ke(r,e),(([e,,t=[],n,o])=>{const r=(...a)=>{const l=A(a);l==A(t)?e(s,...a,...o(a)):x(t[l])?G(n[l]?.(...a)??[],(e=>r(...a,e))):r(...a,t[l])};r()}))]},et=Xe((e=>{let s,n,o,r=100,a=me(),l=me(),i=1;const d=me(),c=me(),[u,g,h]=$e((()=>J)),f=me(),I=me(),b=[],L=[],w=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=ke(f,s);Ve(n,((s,n)=>Ve(s,((s,o)=>Ve(s,((s,r)=>je(e,n,o,r,s[t]))))))),Ve(o,((s,n)=>Be(e,n,s[t])))})),i=1},C=e=>{He(f,e),He(I,e),g(c,[e])},R=(e,t)=>G(((e,t)=>e.splice(0,t))(e,t??A(e)),C),T=()=>R(b,A(b)-r),v=()=>F(s,(()=>{$(b,s),T(),R(L),s=void 0,o=1})),p=()=>{s=ee(b),o=1};let S,y;const V=(e=t)=>(x(s)&&(s=t+n++,He(f,s,[a,l]),D(s,e),a=me(),l=me(),o=1),s),M=()=>{Y(b)||(((e,...t)=>{e.unshift(...t)})(L,V()),w(0,s),s=ee(b),o=1)},m=()=>{Y(L)||($(b,s),s=te(L),w(1,s),o=1)},E=()=>{o&&(g(d),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&ke(I,e)!==t&&(He(I,e,t),g(c,[e])),J),H=e=>ve(f,e),J={setSize:e=>(r=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...L]],forEachCheckpoint:e=>De(I,e),hasCheckpoint:H,getCheckpoint:e=>ke(I,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=_(b,e)?M:_(L,e)?m:null;for(;!x(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(R(b),R(L),x(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Y(L)||(R(L),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:Ce(d),checkpoint:Ce(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(i){v();const e=Je(a,t,me),l=Je(e,s,me),i=Je(l,n,(()=>[r,void 0]));i[1]=o,i[0]===o&&pe(He(l,n))&&pe(He(e,s))&&pe(He(a,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Je(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&pe(He(l,t))&&p(),E()}}))}};return ie(J.clear())}),(e=>e._registerListeners())),tt="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t),st=me(K(tt,((e,t)=>[e,t]))),nt=e=>tt[63&e],ot=(e,t)=>ke(st,e[t])??0,rt=m.crypto?e=>m.crypto.getRandomValues(e):e=>K(e,(()=>H(256*E.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,lt=(e=16)=>Z(rt(new Uint8Array(e)),((e,t)=>e+nt(t)),""),it=Xe((e=>{const s=me(),n=me(),[o,r,a]=$e((()=>C)),[l,i,d,c,u,g,h,,f,I,b,L]=Ge(e,me,(e=>x(e)?t:O(e)?K(e,y):y(e)),o,r),w=(t,s,n)=>{const o=u(t);Ve(n,((t,n)=>s(n,(s=>Ve(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,a,l,i=at)=>{const d=x(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,o,l,c,u,f)=>{let I=0;const b=Ue(),L=Ue(),w=g(e);if(Ve(o,(([e,t],s)=>{const n=Ue(e),o=Ue(t);Ve(n,(e=>Me(o,e)?Me(n,e):0)),Ve(n,(e=>{qe(b,e),F(ke(w,e),(t=>{Me(t,s),pe(t)&&(He(w,e),I=1)}))})),Ve(o,(e=>{qe(b,e),ve(w,e)||(He(w,e,Ue()),I=1),qe(ke(w,e),s),x(a)||qe(L,e)}))})),t(),pe(u)||(f?De(w,(e=>qe(L,e))):De(l,(e=>F(ke(c,e),(e=>qe(L,e))))),Ve(L,(e=>{const t=(t,s)=>i(ke(u,t),ke(u,s),e),s=[...ke(w,e)];U(s,t)||(He(w,e,Ue(q(s,t))),qe(b,e))}))),(I||f)&&!x(d)){const t=[...w];U(t,d)||(h(e,me(q(t,d))),I=1)}I&&r(s,[e]),Ve(b,(t=>r(n,[e,t])))}),Ke(o),F(a,Ke)),C},delIndexDefinition:e=>(I(e),C),getStore:l,getIndexIds:i,forEachIndex:e=>d(((t,s)=>e(t,(e=>w(t,e,s))))),forEachSlice:(e,t)=>w(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>ve(g(e),t),getTableId:u,getSliceIds:e=>Ee(g(e)),getSliceRowIds:(e,t)=>Se(ke(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(a(e),C),destroy:L,getListenerStats:()=>({sliceIds:Ce(s),sliceRowIds:Re(n)})};return ie(C)})),dt=me([["avg",[(e,t)=>X(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=>k(...e),(e,t)=>k(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:k(t,e)]],["min",[e=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["sum",[e=>X(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ct=(e,t,s,n,o,r=!1)=>{if(pe(s))return;const[a,l,i,d]=o;return r||=x(e),Ve(n,(([s,n])=>{r||(e=x(s)?l?.(e,n,t++):x(n)?i?.(e,s,t--):d?.(e,n,s,t),r||=x(e))})),r?a(Se(s),we(s)):e},ut=Xe((e=>{const s=me(),[n,o,r]=$e((()=>L)),[a,l,i,d,c,u,g,,h,f,I,b]=Ge(e,P,(e=>isNaN(e)||x(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),L={setMetricDefinition:(e,t,n,r,a,l,i)=>{const d=N(n)?[n,a,l,i]:ke(dt,n)??ke(dt,"sum");return h(e,t,((t,n,r,a,l,i)=>{const c=u(e),h=we(a);i||=x(c),t();let f=ct(c,h,a,n,d,i);J(f)||(f=void 0),f!=c&&(g(e,f),o(s,[e],f,c))}),Ke(r,1)),L},delMetricDefinition:e=>(f(e),L),getStore:a,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(r(e),L),destroy:b,getListenerStats:()=>({metric:Ce(s)})};return ie(L)})),gt=Xe((e=>{const s=e.createStore,n=s(),o=s(),r=me(),{addListener:a,callListeners:l,delListener:u}=o,[g,f,I,v,p,,,S,,y,V,M,m,E]=Ge(e,(()=>!0),P,a,l),k=(e,t,...s)=>G(s,(s=>qe(Je(Je(r,t,me),e,Ue),s))),D=e=>{F(ke(r,e),(e=>{De(e,((e,t)=>Ve(t,(t=>e.delListener(t))))),ye(e)})),G([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,r,a)=>{S(s,r),D(s);const l=[],i=[[null,[r,null,null,[],me()]]],d=[],c=[],u=[];a({select:(e,s)=>{const n=N(e)?[A(l)+t,e]:[x(s)?e:s,t=>t(e,s)];return $(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=x(s)||N(t)?null:t,o=x(n)?t:s,r=[e,[e,n,N(o)?o:e=>e(o),[],me()]];return $(i,r),{as:e=>r[0]=e}},where:(e,t,s)=>$(d,N(e)?e:x(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,N(t)?[t,s,n,o]:ke(dt,t)??[(e,t)=>t]]];return $(c,r),{as:e=>r[0]=e}},having:(e,t)=>$(u,N(e)?e:s=>s(e)===t)});const g=me(l);if(pe(g))return J;const h=me(i);De(h,((e,[,t])=>F(ke(h,t),(({3:t})=>x(e)?0:$(t,e)))));const f=me(c);let I=n;if(pe(f)&&Y(u))I=o;else{H(s,I,o);const e=me();De(f,((t,[s,n])=>qe(Je(e,s,Ue),[t,n])));const t=Ue();De(g,(s=>ve(e,s)?0:qe(t,s)));const n=me(),r=(t,n,r,a)=>F(t,(([l,i,d,c])=>{De(n,((t,[s])=>{const n=Je(l,t,me),o=ke(n,r),i=a?void 0:s;if(o!==i){const s=Ue([[o,i]]),a=we(n);He(n,r,i),Ve(ke(e,t),(([e,t])=>{const o=ct(c[e],a,n,s,t);c[e]=x(Pe(o))?null:o}))}})),pe(i)||!j(u,(e=>e((e=>c[e]))))?o.delRow(s,d):x(d)?t[2]=o.addRow(s,c):o.setRow(s,d,c)}));k(I,s,I.addRowListener(s,null,((o,a,l,i)=>{const d=[],c=[],u=me(),g=I.hasRow(s,l);let h=!g;Ve(t,(e=>{const[t,n,o]=i(s,l,e);$(d,n),$(c,o),h||=t})),De(e,(e=>{const[t,,n]=i(s,l,e);(h||t)&&He(u,e,[n])})),h&&r(Ae(n,d,void 0,(([,e])=>(Me(e,l),pe(e)))),u,l,1),g&&r(Ae(n,c,(()=>{const e={};return Ve(t,(t=>e[t]=I.getCell(s,l,t))),[me(),Ue(),void 0,e]}),(([,e])=>{qe(e,l)})),u,l)})))}H(s,e,I);const b=(t,n,o,a)=>{const l=t=>e.getCell(n,o,t);G(a,(n=>{const[o,,r,a,i]=ke(h,n),d=r?.(l,t),[c,u]=ke(i,t)??[];d!=c&&(x(u)||E(s,u),He(i,t,x(d)?null:[d,...m(s,1,e.addRowListener(o,d,(()=>b(t,o,d,a))))]))})),(t=>{const n=(s,n)=>e.getCell(...x(n)?[r,t,s]:s===r?[r,t,n]:[ke(h,s)?.[0],ke(ke(h,s)?.[4],t)?.[0],n]);I.transaction((()=>j(d,(e=>e(n)))?De(g,((e,o)=>je(I,s,t,e,o(n,t)))):I.delRow(s,t)))})(t)},{3:L}=ke(h,null);return I.transaction((()=>m(s,1,e.addRowListener(r,null,((t,n,o)=>{e.hasRow(r,o)?b(o,r,o,L):(I.delRow(s,o),Ve(h,(({4:e})=>F(ke(e,o),(([,t])=>{E(s,t),He(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:I,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return he({[h]:[1,1],[h+T]:[0,1],[L]:[0,1],[w]:[0,1],[C]:[0,5],[b]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{G(e?["get","has","forEach"]:["get"],(e=>J[e+d+s]=(...t)=>o[e+s](...t))),J[c+d+s+i]=(...e)=>o[c+s+i](...W(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),ie(J)})),ht=Xe((e=>{const s=me(),n=me(),o=me(),r=me(),[a,l,i]=$e((()=>v)),[d,c,u,g,h,f,,,I,b,L,w]=Ge(e,(()=>[me(),me(),me(),me()]),(e=>x(e)?void 0:e+t),a,l),C=(e,t,s)=>F(f(e),(([n,,o])=>{if(!ve(o,t)){const r=Ue();if(h(e)!=T(e))qe(r,t);else{let e=t;for(;!x(e)&&!ve(r,e);)qe(r,e),e=ke(n,e)}if(s)return r;He(o,t,r)}return ke(o,t)})),R=(e,t)=>F(f(e),(([,,e])=>He(e,t))),T=e=>ke(s,e),v={setRelationshipDefinition:(e,t,a,i)=>(He(s,e,a),I(e,t,((t,s)=>{const a=Ue(),i=Ue(),d=Ue(),[c,u]=f(e);Ve(s,(([t,s],n)=>{x(t)||(qe(i,t),F(ke(u,t),(e=>{Me(e,n),pe(e)&&He(u,t)}))),x(s)||(qe(i,s),ve(u,s)||He(u,s,Ue()),qe(ke(u,s),n)),qe(a,n),He(c,n,s),De(ke(r,e),(t=>{ve(C(e,t),n)&&qe(d,t)}))})),t(),Ve(a,(t=>l(n,[e,t]))),Ve(i,(t=>l(o,[e,t]))),Ve(d,(t=>{R(e,t),l(r,[e,t])}))}),Ke(i)),v),delRelationshipDefinition:e=>(He(s,e),b(e),v),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>ke(f(e)?.[0],t),getLocalRowIds:(e,t)=>Se(ke(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>x(f(e))?[t]:Se(C(e,t,!0)),addRelationshipIdsListener:L,addRemoteRowIdListener:(e,t,s)=>a(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>a(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),a(s,r,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:w,getListenerStats:()=>({remoteRowId:Re(n),localRowIds:Re(o),linkedRowIds:Re(r)})};return ie(v)})),ft=new m.TextEncoder,It=e=>{let t=2166136261;return G(ft.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},bt=([e,t,s])=>[e,t,s],Lt=([e,t])=>wt(e,t),wt=(e,t)=>t?[e,t]:[e],Ct=e=>e[2],Rt=(e,t)=>It(e+":"+t),Tt=(e,t)=>t>e?(e?It(e):0)^It(t):0,vt=(e,t)=>((e??"")>(t??"")?e:t)??"",pt=(e,t,s)=>{e[2]=t>>>0,s>e[1]&&(e[1]=s)},St=(e=t)=>wt(de(),e),yt=(e=t)=>[me(),e,0],Vt=([e,t,s],n=bt)=>[Fe(e,n),t,s],Mt=([e,t],s=Lt)=>wt(Fe(e,s),t),mt=(t,s)=>O(t)&&3==A(t)&&z(t[1])&&e(t[2])==o&&J(t[2])&&s(t[0]),Et=e=>[e,e],kt=(e,t=Ce)=>t(e[0])+t(e[1]),Dt=()=>[me(),me()],Ht=e=>[...e],Jt=([e,t])=>e===t,xt=JSON.stringify,Ft=JSON.parse,Qt=e=>xt(e,((e,t)=>t instanceof Map?se.fromEntries([...t]):t)),zt=(e,t,s)=>He(e,t,ke(e,t)==-s?void 0:s),Nt=()=>{let e,t,s=!1,n=!1,r=0,d=[];const g=me(),C=me(),V=me(),M=me(),m=me(),E=me(),k=me(),D=me(),H=me(),J=me(),z=me(),A=me(),P=me(),j=me(),U=Ue(),X=me(),Y=me(),Z=me(),ee=me(),te=Dt(),se=Dt(),ne=Dt(),oe=Dt(),re=Dt(),ae=Dt(),le=Dt(),de=Dt(),ge=Dt(),Ie=Dt(),Le=Dt(),Se=Dt(),Ae=Dt(),_e=Dt(),Ge=Dt(),Ke=Dt(),Xe=Dt(),Ye=Dt(),et=Dt(),tt=Dt(),st=Dt(),nt=Dt(),ot=me(),rt=Dt(),[lt,it,dt,ct]=$e((()=>Ws)),ut=e=>{if(!be(e,((e,t)=>_([a,l],t))))return!1;const t=e[a];return!(!Q(t)&&t!=o||(Pe(e[l])!=t&&ue(e,l),0))},gt=O,ht=(t,s)=>(!e||ve(z,s)||Zt(s))&&be(t,((e,t)=>ft(s,t,e)),(()=>Zt(s))),ft=(e,t,s,n)=>be(n?s:wt(s,e,t),((n,o)=>F(It(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Zt(e,t))),It=(t,s,n,o)=>e?F(ke(ke(z,t),n),(e=>Pe(o)!=e[a]?Zt(t,s,n,o,e[l]):o),(()=>Zt(t,s,n,o))):x(Pe(o))?Zt(t,s,n,o):o,bt=(e,t)=>be(t?e:Ct(e),((t,s)=>F(Lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>$t())),Lt=(e,s)=>t?F(ke(P,e),(t=>Pe(s)!=t[a]?$t(e,s,t[l]):s),(()=>$t(e,s))):x(Pe(s))?$t(e,s):s,wt=(e,t,s)=>(F(ke(A,t),(([n,o])=>{Ve(n,((t,s)=>{ce(e,s)||(e[s]=t)})),Ve(o,(n=>{ce(e,n)||Zt(t,s,n)}))})),e),Ct=e=>(t&&(Ve(j,((t,s)=>{ce(e,s)||(e[s]=t)})),Ve(U,(t=>{ce(e,t)||$t(t)}))),e),Rt=e=>xe(z,e,((e,t,s)=>{const n=me(),o=Ue();xe(Je(z,t,me),s,((e,t,s)=>{He(e,t,s),F(s[l],(e=>He(n,t,e)),(()=>qe(o,t)))})),He(A,t,[n,o])}),((e,t)=>{He(z,t),He(A,t)})),Tt=e=>xe(P,e,((e,t,s)=>{He(P,t,s),F(s[l],(e=>He(j,t,e)),(()=>qe(U,t)))}),((e,t)=>{He(P,t),He(j,t),Me(U,t)})),vt=e=>fe(e)?Ds():Vs(e),pt=e=>xe(Z,e,((e,t,s)=>St(t,s)),((e,t)=>Pt(t))),St=(e,t)=>xe(Je(Z,e,(()=>(Ut(e,1),He(X,e,Ze()),He(Y,e,me()),me()))),t,((t,s,n)=>yt(e,t,s,n)),((t,s)=>_t(e,t,s))),yt=(e,t,s,n,o)=>xe(Je(t,s,(()=>(qt(e,s,1),me()))),n,((t,n,o)=>Vt(e,s,t,n,o)),((n,r)=>jt(e,t,s,n,r,o))),Vt=(e,t,s,n,o)=>{ve(s,n)||Gt(e,t,n,1);const r=ke(s,n);o!==r&&(Kt(e,t,n,r,o),He(s,n,o))},Mt=(e,t,s,n,o)=>F(ke(t,s),(t=>Vt(e,s,t,n,o)),(()=>yt(e,t,s,wt({[n]:o},e,s)))),mt=e=>fe(e)?xs():Ms(e),xt=e=>xe(ee,e,((e,t,s)=>Ot(t,s)),((e,t)=>Bt(t))),Ot=(e,t)=>{ve(ee,e)||Xt(e,1);const s=ke(ee,e);t!==s&&(Yt(e,s,t),He(ee,e,t))},Wt=(e,t)=>{const[s]=ke(X,e),n=s(t);return ve(ke(Z,e),n)?Wt(e,t):n},At=e=>ke(Z,e)??St(e,{}),Pt=e=>St(e,{}),_t=(e,t,s)=>{const[,n]=ke(X,e);n(s),yt(e,t,s,{},!0)},jt=(e,t,s,n,o,r)=>{const a=ke(ke(A,e)?.[0],o);if(!x(a)&&!r)return Vt(e,s,n,o,a);const l=t=>{Kt(e,s,t,ke(n,t)),Gt(e,s,t,-1),He(n,t)};x(a)?l(o):De(n,l),pe(n)&&(qt(e,s,-1),pe(He(t,s))&&(Ut(e,-1),He(Z,e),He(X,e),He(Y,e)))},Bt=e=>{const t=ke(j,e);if(!x(t))return Ot(e,t);Yt(e,ke(ee,e)),Xt(e,-1),He(ee,e)},Ut=(e,t)=>zt(g,e,t),qt=(e,t,s)=>zt(Je(M,e,me),t,s)&&He(V,e,Je(V,e,(()=>0))+s),Gt=(e,t,s,n)=>{const o=ke(Y,e),r=ke(o,s)??0;(0==r&&1==n||1==r&&-1==n)&&zt(Je(C,e,me),s,n),He(o,s,r!=-n?r+n:null),zt(Je(Je(m,e,me),t,me),s,n)},Kt=(e,t,s,n,o)=>{Je(Je(Je(E,e,me),t,me),s,(()=>[n,0]))[1]=o,d[3]?.(e,t,s,o)},Xt=(e,t)=>zt(k,e,t),Yt=(e,t,s)=>{Je(D,e,(()=>[t,0]))[1]=s,d[4]?.(e,s)},Zt=(e,t,s,n,o)=>($(Je(Je(Je(H,e,me),t,me),s,(()=>[])),n),o),$t=(e,t,s)=>($(Je(J,e,(()=>[])),t),s),es=(e,t,s)=>F(ke(ke(ke(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Et(Is(e,t,s))])),ts=e=>F(ke(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Et(ws(e))])),ss=e=>pe(H)||pe(Ke[e])?0:Ve(e?We(H):H,((t,s)=>Ve(t,((t,n)=>Ve(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ns=e=>pe(J)||pe(Xe[e])?0:Ve(e?Ne(J):J,((t,s)=>it(Xe[e],[s],t))),os=(e,t,s,n)=>{if(!pe(e))return it(t,n,(()=>Fe(e))),De(e,((e,t)=>it(s,[...n??[],e],1==t))),1},rs=e=>{const t=Cs();t!=s&&it(te[e],void 0,t);const n=pe(Ie[e]),o=pe(Ae[e])&&pe(_e[e])&&pe(ge[e])&&pe(Le[e])&&pe(ae[e])&&pe(le[e])&&pe(de[e])&&n&&pe(ne[e])&&pe(oe[e]),r=pe(Ge[e])&&pe(Se[e])&&pe(re[e])&&pe(se[e]);if(!o||!r){const t=e?[Ne(g),Oe(C),Ne(V),Oe(M),We(m),We(E)]:[g,C,V,M,m,E];if(!o){os(t[0],ne[e],oe[e]),Ve(t[1],((t,s)=>os(t,ae[e],le[e],[s]))),Ve(t[2],((t,s)=>{0!=t&&it(de[e],[s],us(s))}));const s=Ue();Ve(t[3],((t,o)=>{os(t,ge[e],Le[e],[o])&&!n&&(it(Ie[e],[o,null]),qe(s,o))})),n||Ve(t[5],((t,n)=>{if(!ve(s,n)){const s=Ue();Ve(t,(e=>Ve(e,(([t,n],o)=>n!==t?qe(s,o):Me(e,o))))),Ve(s,(t=>it(Ie[e],[n,t])))}})),Ve(t[4],((t,s)=>Ve(t,((t,n)=>os(t,Ae[e],_e[e],[s,n])))))}if(!r){let s;Ve(t[5],((t,n)=>{let o;Ve(t,((t,r)=>{let a;Ve(t,(([t,l],i)=>{l!==t&&(it(Ge[e],[n,r,i],l,t,es),s=o=a=1)})),a&&it(Se[e],[n,r],es)})),o&&it(re[e],[n],es)})),s&&it(se[e],void 0,es)}}},as=e=>{const t=Ss();t!=n&&it(Ye[e],void 0,t);const s=pe(tt[e])&&pe(st[e]),o=pe(nt[e])&&pe(et[e]);if(!s||!o){const t=e?[Ne(k),Ne(D)]:[k,D];if(s||os(t[0],tt[e],st[e]),!o){let s;Ve(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,ts),s=1)})),s&&it(et[e],void 0,ts)}}},ls=(e,...t)=>(zs((()=>e(...K(t,y)))),Ws),is=()=>ze(Z),ds=()=>Ee(Z),cs=e=>Ee(ke(Y,y(e))),us=e=>we(ke(Z,y(e))),gs=e=>Ee(ke(Z,y(e))),hs=(e,t,s,n=0,o)=>{return K(W(q((r=ke(Z,y(e)),a=(e,s)=>[x(t)?s:ke(e,y(t)),s],K([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,x(o)?o:n+o),(([,e])=>e));var r,a},fs=(e,t)=>Ee(ke(ke(Z,y(e)),y(t))),Is=(e,t,s)=>ke(ke(ke(Z,y(e)),y(t)),y(s)),bs=()=>Fe(ee),Ls=()=>Ee(ee),ws=e=>ke(ee,y(e)),Cs=()=>!pe(Z),Rs=e=>ve(Z,y(e)),Ts=(e,t)=>ve(ke(Y,y(e)),y(t)),vs=(e,t)=>ve(ke(Z,y(e)),y(t)),ps=(e,t,s)=>ve(ke(ke(Z,y(e)),y(t)),y(s)),Ss=()=>!pe(ee),ys=e=>ve(ee,y(e)),Vs=e=>ls((()=>(e=>be(e,ht,Zt))(e)?pt(e):0)),Ms=e=>ls((()=>bt(e)?xt(e):0)),ms=e=>{try{vt(Ft(e))}catch{}return Ws},Es=t=>ls((()=>{if((e=be(t,(e=>be(e,ut))))&&(Rt(t),!pe(Z))){const e=is();Ds(),Vs(e)}})),ks=e=>ls((()=>{if(t=(e=>be(e,ut))(e)){const s=bs();Qs(),xs(),t=!0,Tt(e),Ms(s)}})),Ds=()=>ls((()=>pt({}))),Hs=e=>ls((e=>ve(Z,e)?Pt(e):0),e),Js=(e,t)=>ls(((e,t)=>F(ke(Z,e),(s=>ve(s,t)?_t(e,s,t):0))),e,t),xs=()=>ls((()=>xt({}))),Fs=()=>ls((()=>{Rt({}),e=!1})),Qs=()=>ls((()=>{Tt({}),t=!1})),zs=(e,t)=>{if(-1!=r){Ns();const s=e();return Os(t),s}},Ns=()=>(-1!=r&&r++,1==r&&(d[0]?.(),it(ot)),Ws),Os=e=>(r>0&&(r--,0==r&&(r=1,ss(1),pe(E)||rs(1),ns(1),pe(D)||as(1),e?.(Ws)&&(Ve(E,((e,t)=>Ve(e,((e,s)=>Ve(e,(([e],n)=>je(Ws,t,s,n,e))))))),ye(E),Ve(D,(([e],t)=>Be(Ws,t,e))),ye(D)),it(rt[0],void 0),r=-1,ss(0),pe(E)||rs(0),ns(0),pe(D)||as(0),d[1]?.(),it(rt[1],void 0),d[2]?.(),r=0,s=Cs(),n=Ss(),G([g,C,V,M,m,E,H,k,D,J],ye))),Ws),Ws={getContent:()=>[is(),bs()],getTables:is,getTableIds:ds,getTable:e=>Qe(ke(Z,y(e))),getTableCellIds:cs,getRowCount:us,getRowIds:gs,getSortedRowIds:hs,getRow:(e,t)=>Fe(ke(ke(Z,y(e)),y(t))),getCellIds:fs,getCell:Is,getValues:bs,getValueIds:Ls,getValue:ws,hasTables:Cs,hasTable:Rs,hasTableCell:Ts,hasRow:vs,hasCell:ps,hasValues:Ss,hasValue:ys,getTablesJson:()=>Qt(Z),getValuesJson:()=>Qt(ee),getJson:()=>Qt([Z,ee]),getTablesSchemaJson:()=>Qt(z),getValuesSchemaJson:()=>Qt(P),getSchemaJson:()=>Qt([z,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>ls((()=>gt(e)?(([e,t])=>{(fe(e)?Ds:Vs)(e),(fe(t)?xs:Ms)(t)})(e):0)),setTables:Vs,setTable:(e,t)=>ls((e=>ht(t,e)?St(e,t):0),e),setRow:(e,t,s)=>ls(((e,t)=>ft(e,t,s)?yt(e,At(e),t,s):0),e,t),addRow:(e,t,s=!0)=>zs((()=>{let n;return ft(e,n,t)&&(e=y(e),yt(e,At(e),n=Wt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ls(((e,t)=>{if(ft(e,t,s,1)){const n=At(e);he(s,((s,o)=>Mt(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>ls(((e,t,s)=>F(It(e,t,s,N(n)?n(Is(e,t,s)):n),(n=>Mt(e,At(e),t,s,n)))),e,t,s),setValues:Ms,setPartialValues:e=>ls((()=>bt(e,1)?he(e,((e,t)=>Ot(t,e))):0)),setValue:(e,t)=>ls((e=>F(Lt(e,N(t)?t(ws(e)):t),(t=>Ot(e,t)))),e),applyChanges:e=>ls((()=>{he(e[0],((e,t)=>x(e)?Hs(t):he(e,((e,s)=>x(e)?Js(t,s):he(e,((e,n)=>je(Ws,t,s,n,e))))))),he(e[1],((e,t)=>Be(Ws,t,e)))})),setTablesJson:ms,setValuesJson:e=>{try{mt(Ft(e))}catch{}return Ws},setJson:e=>ls((()=>{try{const[t,s]=Ft(e);vt(t),mt(s)}catch{ms(e)}})),setTablesSchema:Es,setValuesSchema:ks,setSchema:(e,t)=>ls((()=>{Es(e),ks(t)})),delTables:Ds,delTable:Hs,delRow:Js,delCell:(e,t,s,n)=>ls(((e,t,s)=>F(ke(Z,e),(o=>F(ke(o,t),(r=>ve(r,s)?jt(e,o,t,r,s,n):0))))),e,t,s),delValues:xs,delValue:e=>ls((e=>ve(ee,e)?Bt(e):0),e),delTablesSchema:Fs,delValuesSchema:Qs,delSchema:()=>ls((()=>{Fs(),Qs()})),transaction:zs,startTransaction:Ns,getTransactionChanges:()=>[Fe(E,((e,t)=>-1===ke(g,t)?void 0:Fe(e,((e,s)=>-1===ke(ke(M,t),s)?void 0:Fe(e,(([,e])=>e),(e=>Jt(e)))),pe,fe)),pe,fe),Fe(D,(([,e])=>e),(e=>Jt(e))),1],getTransactionLog:()=>[!pe(E),!pe(D),ze(E,Ht,Jt),ze(H),Fe(D,Ht,Jt),Fe(J),Fe(g),Qe(M),ze(m),Fe(k)],finishTransaction:Os,forEachTable:e=>Ve(Z,((t,s)=>e(s,(e=>Ve(t,((t,s)=>e(s,(e=>De(t,e))))))))),forEachTableCell:(e,t)=>De(ke(Y,y(e)),t),forEachRow:(e,t)=>Ve(ke(Z,y(e)),((e,s)=>t(s,(t=>De(e,t))))),forEachCell:(e,t,s)=>De(ke(ke(Z,y(e)),y(t)),s),forEachValue:e=>De(ee,e),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let l=hs(e,t,s,n,o);return lt((()=>{const a=hs(e,t,s,n,o);B(a,l)||(l=a,r(Ws,e,t,s,n,o,l))}),Ie[a?1:0],[e,t],[ds])},addStartTransactionListener:e=>lt(e,ot),addWillFinishTransactionListener:e=>lt(e,rt[0]),addDidFinishTransactionListener:e=>lt(e,rt[1]),callListener:e=>(ct(e),Ws),delListener:e=>(dt(e),Ws),getListenerStats:()=>({hasTables:kt(te),tables:kt(se),tableIds:kt(ne),hasTable:kt(oe),table:kt(re),tableCellIds:kt(ae),hasTableCell:kt(le,Re),rowCount:kt(de),rowIds:kt(ge),sortedRowIds:kt(Ie),hasRow:kt(Le,Re),row:kt(Se,Re),cellIds:kt(Ae,Re),hasCell:kt(_e,Te),cell:kt(Ge,Te),invalidCell:kt(Ke,Te),hasValues:kt(Ye),values:kt(et),valueIds:kt(tt),hasValue:kt(st),value:kt(nt),invalidValue:kt(Xe),transaction:Ce(ot)+kt(rt)}),isMergeable:()=>!1,createStore:Nt,addListener:lt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>d=[e,t,s,n,o]};return he({[u+f]:[0,te,[],()=>[Cs()]],[f]:[0,se],[I]:[0,ne],[u+h]:[1,oe,[ds],e=>[Rs(...e)]],[h]:[1,re,[ds]],[h+T]:[1,ae,[ds]],[u+h+R]:[2,le,[ds,cs],e=>[Ts(...e)]],[L]:[1,de,[ds]],[w]:[1,ge,[ds]],[u+b]:[2,Le,[ds,gs],e=>[vs(...e)]],[b]:[2,Se,[ds,gs]],[T]:[2,Ae,[ds,gs]],[u+R]:[3,_e,[ds,gs,fs],e=>[ps(...e)]],[R]:[3,Ge,[ds,gs,fs],e=>Et(Is(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[Ss()]],[p]:[0,et],[S]:[0,tt],[u+v]:[1,st,[Ls],e=>[ys(...e)]],[v]:[1,nt,[Ls],e=>Et(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Ws[c+o+i]=(...o)=>lt(o[e],t[o[e+1]?1:0],e>0?W(o,0,e):void 0,s,n)})),ie(Ws)},Ot=2**36,Wt=2**30,At=2**24,Pt=2**18,_t=4096,jt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Bt=(e=t)=>[yt(e),yt(e)],Ut=e=>{let s=1,n=Bt(),o=0;const r=me(),a=Ue(),[l,i]=(e=>{let t=0,s=-1;const n=F(e,(e=>{const t=It(e);return nt(t/At)+nt(t/Pt)+nt(t/_t)+nt(t/64)+nt(t)}),(()=>lt(5))),o=e=>{const n=t,[o,r]=x(e)||""==e?[0,0]:[ot(a=e,0)*Ot+ot(a,1)*Wt+ot(a,2)*At+ot(a,3)*Pt+ot(a,4)*_t+64*ot(a,5)+ot(a,6),ot(a,7)*Pt+ot(a,8)*_t+64*ot(a,9)+ot(a,10)];var a;t=k(n,o,m.HLC_TIME??Date.now()),s=t==n?t==o?k(s,r):s:t==o?r:-1};return[()=>{return o(),r=++s,nt((e=t)/Ot)+nt(e/Wt)+nt(e/At)+nt(e/Pt)+nt(e/_t)+nt(e/64)+nt(e)+nt(r/Pt)+nt(r/_t)+nt(r/64)+nt(r)+n;var e,r},o]})(e),d=Nt(),c=e=>{const t=s;return s=0,e(),s=t,I},u=(e,s=0)=>{const o={},r={},[[a,l=t,d=0],c]=e,[u,h]=n,[f,I,b]=u;let L=s?d:b,w=l;ge(a,(([e,n=t,r=0],a)=>{const l=Je(f,a,yt),[i,d,c]=l;let u=s?r:c,h=n;ge(e,((e,t)=>{const[n,r,l]=g(e,Je(i,t,yt),Ie(Ie(o,a,de),t,de),s);u^=s?0:(r?Rt(t,r):0)^Rt(t,l),h=vt(h,n)})),u^=s?0:Tt(d,n),pt(l,u,n),L^=s?0:(c?Rt(a,c):0)^Rt(a,l[2]),w=vt(w,h)})),L^=s?0:Tt(I,l),pt(u,L,l);const[C]=g(c,h,r,s);return i(vt(w,C)),[o,r,1]},g=(e,s,n,o)=>{const[r,a=t,l=0]=e,[i,d,c]=s;let u=a,g=o?l:c;return ge(r,(([e,s,r=0],a)=>{const l=Je(i,a,(()=>[void 0,t,0])),[,d,c]=l;(!d||s>d)&&(pt(l,o?r:It(Qt(e??null)+":"+s),s),l[0]=e,n[a]=e,g^=o?0:Rt(a,c)^Rt(a,l[2]),u=vt(u,s))})),g^=o?0:Tt(d,a),pt(s,g,a),[u,c,s[2]]},h=()=>[Vt(n[0],(e=>Vt(e,(e=>Vt(e))))),Vt(n[1])],f=e=>c((()=>d.applyChanges(u(e)))),I={getMergeableContent:h,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>Fe(n[0][0],Ct),getMergeableTableDiff:e=>{const t=St(n[0][1]),s={};return De(n[0][0],((n,[o,r,a])=>ce(e,n)?a!=e[n]?s[n]=a:0:t[0][n]=Mt([o,r],(e=>Mt(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return ge(e,((e,s)=>F(ke(n[0][0],s),(([n,,o])=>o!=e?De(n,((e,[,,n])=>Ie(t,s,de)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=St(n[0][1]),s={};return ge(e,((e,o)=>De(ke(n[0][0],o)?.[0],((n,[r,a,l])=>ce(e,n)?l!==e[n]?Ie(s,o,de)[n]=l:0:Ie(t[0],o,St)[0][n]=Mt([r,a]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return ge(e,((e,s)=>F(ke(n[0][0],s),(([n])=>ge(e,((e,o)=>F(ke(n,o),(([n,,r])=>r!==e?De(n,((e,[,,n])=>Ie(Ie(t,s,de),o,de)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,o={};return ge(e,((e,s)=>ge(e,((e,n)=>F(ke(t,s),(([t,r])=>F(ke(t,n),(([t,a])=>De(t,((t,[l,i,d])=>d!==e[t]?Ie(Ie(o,s,(()=>St(r)))[0],n,(()=>St(a)))[0][t]=[l,i]:0)))))))))),wt(o,s)},getMergeableValueHashes:()=>Fe(n[1][0],Ct),getMergeableValueDiff:e=>{const[,[t,s]]=n,o=Fe(t,Lt,(([,,t],s)=>t==e?.[s]));return wt(o,s)},setMergeableContent:e=>c((()=>(e=>O(e)&&2==A(e)&&mt(e[0],(e=>be(e,(e=>mt(e,(e=>be(e,(e=>mt(e,(e=>be(e,(e=>mt(e,_e)),void 0,1)))),void 0,1)))),void 0,1)))&&mt(e[1],(e=>be(e,(e=>mt(e,_e)),void 0,1))))(e)?d.transaction((()=>{d.delTables().delValues(),n=Bt(),d.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(d.transaction((()=>{o=1,d.setContent(e),o=0})),I),getTransactionMergeableChanges:()=>{const[[e,t],[s,o]]=n,l={};Ve(r,((t,s)=>F(ke(e,s),(([e,n])=>{const o={};Ve(t,((t,s)=>F(ke(e,s),(([e,n])=>{const r={};Ve(t,(t=>{F(ke(e,t),(([e,s])=>r[t]=wt(e,s)))})),o[s]=wt(r,n)})))),l[s]=wt(o,n)}))));const i={};return Ve(a,(e=>F(ke(s,e),(([t,s])=>i[e]=wt(t,s))))),[wt(l,t),wt(i,o),1]},applyMergeableChanges:f,merge:e=>{const t=h(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return d.setInternalListeners((()=>{}),(()=>{}),(()=>{ye(r),ye(a)}),((e,n,a,i)=>{qe(Je(Je(r,e,me),n,Ue),a),s&&u([[{[e]:[{[n]:[{[a]:[i,o?t:l()]}]}]}],[{}],1])}),((e,n)=>{qe(a,e),s&&u([[{}],[{[e]:[n,o?t:l()]}],1])})),he(d,((e,t)=>I[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),I):V(t,"add")&&M(t,"Listener")?(...s)=>{const n=jt[W(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(I,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),ie(I)};export{et as createCheckpoints,it as createIndexes,Ut as createMergeableStore,ut as createMetrics,gt as createQueries,ht as createRelationships,Nt as createStore,at as defaultSorter,lt as getUniqueId};
|
package/min/index.js.gz
CHANGED
|
Binary file
|
package/min/persisters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,E=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),d=a=>{throw Error(a)},R=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==w(a),N=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),$=Object,g=a=>$.getPrototypeOf(a),p=$.entries,m=$.keys,C=$.freeze,v=(a=[])=>$.fromEntries(a),I=(...a)=>$.assign({},...a),L=(a,t)=>(delete a[t],a),_=(a,t)=>A(p(a),(([a,e])=>t(e,a))),S=a=>$.values(a),b=a=>w(m(a)),h=a=>(a=>!r(a)&&o(g(a),(a=>a==$.prototype||r(g(a))),(()=>!0)))(a)&&0==b(a),D=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],M=(a,t)=>a?.delete(t),P=a=>new Map(a),F=(a,t)=>a?.get(t),U=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>r(e)?(M(a,t),a):a?.set(t,e),B=(a,t,e,n)=>(D(a,t)||G(a,t,e()),F(a,t)),j={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},Y=P(),x=P(),H=(a,t,e,n,s,i,c,l={},w=[])=>{let y,R,u,A=0,T=0,N=0;B(Y,w,(()=>0)),B(x,w,(()=>[]));const[$,g,p,m,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!h(a)||!h(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!h(a)||!h(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),I=t=>{($&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},L=async a=>(2!=A&&(A=1,T++,await D((async()=>{try{const a=await t();E(a)?I(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&v(a)}A=0}))),f),_=()=>(R&&(s(R),R=void 0),f),S=async a=>(1!=A&&(A=2,N++,await D((async()=>{try{await e(g,a)}catch(a){i?.(a)}A=0}))),f),b=()=>(o(u,a.delListener),u=void 0,f),D=async(...a)=>(O(F(x,w),...a),await(async()=>{if(!F(Y,w)){for(G(Y,w,1);!r((a=F(x,w),y=a.shift()));)try{await y()}catch(a){i?.(a)}G(Y,w,0)}var a})(),f),f={load:L,startAutoLoad:async a=>{await _().load(a);try{R=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,I(t??a),A=0):await L()}))}catch(a){i?.(a)}return f},stopAutoLoad:_,isAutoLoading:()=>!r(R),save:S,startAutoSave:async()=>(await b().save(),u=a.addDidFinishTransactionListener((()=>{const a=p();m(a)&&S(a)})),f),stopAutoSave:b,isAutoSaving:()=>!r(u),schedule:D,getStore:()=>a,destroy:()=>(F(x,w).splice(0,void 0),_().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...l};return C(f)},X="_",J="_id",W="SELECT",k="WHERE",q="TABLE",K="ALTER "+q,V="DELETE FROM",z=W+"*FROM",Q="pragma_",Z="data_version",aa="schema_version",ta="pragma_table_",ea=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,na=a=>`"${a.replace(/"/g,'""')}"`,sa=a=>u(A(a,((a,t)=>"$"+(t+1))),e),ia=JSON.stringify,ra=JSON.parse,oa=a=>new Set(E(a)||r(a)?a:[a]),ca=(a,t)=>a?.add(t),Ea=(a,t,n,s,i,o,c,E)=>{const l=P();return[async()=>{l.clear(),A(await n(a,t),(({tn:a,cn:t})=>ca(B(l,a,oa),t)))},async(t,e)=>((a,t)=>D(F(l,a),t))(t,e)?v(N(A(await a(z+na(t)),(a=>{return[a[e],E?(t=L(a,e),n=E,v(_(t,((a,t)=>[t,n(a,t)])))):L(a,e)];var t,n})),(([a,t])=>!r(a)&&!h(t)))):{},async(t,n,s,E,w,d=!1)=>{const R=oa();_(s??{},(a=>A(m(a??{}),(a=>ca(R,a)))));const $=f(R);if(!d&&w&&T($)&&D(l,t))return await a("DROP "+q+na(t)),void G(l,t);const g=F(l,t),p=oa(f(g));if(T($)||(D(l,t)?await y(A([n,...$],(async(e,s)=>{M(p,e)||(await a(K+na(t)+"ADD"+na(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+na(t)+`(${na(n)})`),ca(g,e))}))):(await a("CREATE "+q+na(t)+`(${na(n)}${i} PRIMARY KEY${u(A($,(a=>e+na(a)+i)))});`),G(l,t,oa([n,...$])))),await y([...!d&&E?A(f(p),(async e=>{e!=n&&(await a(K+na(t)+"DROP"+na(e)),M(g,e))})):[]]),d)r(s)?await a(V+na(t)+k+" true"):await y(_(s,(async(e,s)=>{r(e)?await a(V+na(t)+k+na(n)+"=$1",[s]):T($)||await la(a,t,n,m(e),[s,...c?A(S(e),c):S(e)],o)})));else if(T($))D(l,t)&&await a(V+na(t)+k+" true");else{const e=N(f(F(l,t)),(a=>a!=n)),i=[],r=[];_(s??{},((a,t)=>{O(i,t,...A(e,(t=>c?c(a?.[t]):a?.[t]))),O(r,t)})),await la(a,t,n,e,i,o),await a(V+na(t)+k+na(n)+`NOT IN(${sa(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+na(t)+"("+na(n)+u(A(s,(a=>e+na(a))))+")VALUES"+wa(i,w(s)+1)+(r?"":"ON CONFLICT("+na(n)+")DO UPDATE SET"+u(A(s,(a=>na(a)+"=excluded."+na(a))),e)),A(i,(a=>a??null))),wa=(a,t)=>u(R(w(a)/t,(a=>"("+u(R(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ya=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,R,u)=>{const[A,T,N,O]=Ea(t,l,w,s,R,u),$=H(a,(async()=>await O((async()=>{return await A(),a=(await T(o,c))[X]?.[E]??"null",ra(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await O((async()=>{var t;await A(),await N(o,c,{[X]:{[E]:(t=a()??null,ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},y);return $},da=(a,t,e,n,s,i,o,[c,E,[l,w,d]],R,u,A,T,O,$,g,p)=>{const[m,C,I,L]=Ea(t,R,u,s,O,$,g,p),_=async(a,t)=>await y(U(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t)}))),S=async(a,t)=>w?await I(d,J,{[X]:a},!0,!0,t):null,b=H(a,(async()=>await L((async()=>{await m();const a=await(async()=>v(N(await y(U(c,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!h(a[1])))))(),t=await(async()=>l?(await C(d,J))[X]:{})();return h(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await m(),r(t)){const[t,e]=a();await _(t),await S(e)}else await _(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[T]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),i(),b)},A);return b},Ra="ColumnName",ua="store",Aa="json",Ta=ua+"TableName",Na=ua+"Id"+Ra,Oa=ua+Ra,$a="autoLoadIntervalSeconds",ga="rowId"+Ra,pa="tableId",ma="tableName",Ca="deleteEmptyColumns",va="deleteEmptyTable",Ia={mode:Aa,[$a]:1},La={load:0,save:0,[ma]:t+"_values"},_a=(a,t,e,n,s)=>{const i=P();return _(a,((a,o)=>{const E=l(S(I(t,c(a)?{[e]:a}:a)),0,b(t));r(E[0])||n(o,E[0])||(s(o,E[0]),G(i,o,E))})),i},Sa=a=>{const e=(a=>I(Ia,c(a)?{[Ta]:a}:a??{}))(a),n=e[$a];if(e.mode==Aa){const a=e[Ta]??t;return[1,n,[a,e[Na]??J,e[Oa]??ua],oa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=l(S(I(La,r)),0,b(La)),E=o[2],w=oa(E),y=oa(E);return[0,n,[_a(s,{[pa]:null,[ga]:J},pa,(a=>D(y,a)),(a=>ca(w,a))),_a(i,{[ma]:null,[ga]:J,[Ca]:0,[va]:0},ma,((a,t)=>D(y,t)),((a,t)=>ca(w,t))),o],w]},ba=(a,t,e,n,s,r,o,c,E,l,w="getDb",y)=>{let d,R,u;const A=ea(e,r),[T,N,O,$]=Sa(t);return(T?ya:da)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${W} ${Z} d,${aa} s,TOTAL_CHANGES() c FROM ${Q}${Z} JOIN ${Q}${aa}`);t==d&&e==R&&n==u||(null!=d&&a(),d=t,R=e,u=n)}catch{}}),1e3*N),r=()=>{d=R=u=null,i(t)},o=n((t=>{$.has(t)&&(r(),a(),e())}));return e(),()=>{r(),s(o)}}),(a=>a()),o,c,E,O,f($),(async(a,t)=>await a(`${W} t.name tn,c.name cn FROM ${ta}list()t,${ta}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${sa(t)})ORDER BY t.name,c.name`,t)),l,w,"",y,(a=>!0===a?1:!1===a?0:a),void 0)},ha=t,Da=/^([cd]:)(.+)/,fa=t+"_data",Ma=t+"_table",Pa=(a,t,e,n,s,i,r,c,E,l,w="getDb")=>{const d=ea(e,i),[R,,u,T]=Sa(t),N=async a=>{await d(`CREATE OR REPLACE TRIGGER ${na(fa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${na(a)} EXECUTE FUNCTION ${fa}()`)};return(R?ya:da)(a,d,(async a=>{await d(`CREATE OR REPLACE FUNCTION ${Ma}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${ha}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await d(`CREATE EVENT TRIGGER ${Ma} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Ma}();`)}catch{}return await d(`CREATE OR REPLACE FUNCTION ${fa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ha}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await y(A(f(T),(async a=>{await d(`CREATE TABLE IF NOT EXISTS ${na(a)}("_id"text PRIMARY KEY)`),await N(a)}))),await n(ha,(async t=>{return await o((e=t,n=Da,e?.match(n)),(async([,t,e])=>{D(T,e)&&("c:"==t&&await N(e),a())}));var e,n}))}),s,r,c,E,u,f(T),(async(a,t)=>await a(`${W} table_name tn,column_name cn FROM information_schema.columns ${k} table_schema='public'AND table_name IN(${sa(t)})`,t)),l,w,"text",0,(a=>ia(a)),(a=>ra(a)))};export{j as Persists,H as createCustomPersister,Pa as createCustomPostgreSqlPersister,ba as createCustomSqlitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==w(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",O="SELECT",$="WHERE",C="TABLE",T="ALTER "+C,S="DELETE FROM",f=O+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>w(B(a)),Q=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,c,y={},w=[])=>{let u,v,p,E=0,A=0,g=0;ta(ea,w,(()=>0)),ta(na,w,(()=>[]));const[N,h,O,$,C]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,A++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,g++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(q(na,w),...a),await(async()=>{if(!q(ea,w)){for(aa(ea,w,1);!o((a=q(na,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=O();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(q(na,w).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...y};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const y=X();return[async()=>{y.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(y,a,ia),t)))},async(t,e)=>((a,t)=>_(q(y,a),t))(t,e)?Y(g(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,w,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&w&&A(N)&&_(y,t))return await a("DROP "+C+D(t)),void aa(y,t);const h=q(y,t),O=ia(P(h));if(A(N)||(_(y,t)?await u(E([n,...N],(async(e,s)=>{F(O,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+C+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(y,t,ia([n,...N])))),await u([...!d&&l?E(P(O),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):A(N)||await ca(a,t,n,B(e),[s,...c?E(z(e),c):z(e)],r)})));else if(A(N))_(y,t)&&await a(S+D(t)+$+" true");else{const e=g(P(q(y,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,w(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(w(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ya=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ra(t,y,w,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[N]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[N]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},wa=(a,t,e,n,s,i,r,[c,l,[y,w,d]],v,p,E,A,m,O,$,C)=>{const[T,S,f,I]=ra(t,v,p,s,m,O,$,C),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(g(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await S(d,h))[N]:{})();return Q(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Oa="deleteEmptyColumns",$a="deleteEmptyTable",Ca={mode:va,[ga]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return H(a,((a,r)=>{const l=y(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,w,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==w(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",O="SELECT",$="WHERE",C="TABLE",T="ALTER "+C,S="DELETE FROM",f=O+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>w(B(a)),Q=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,c,y={},w=[])=>{let u,v,p,E=0,A=0,g=0;ta(ea,w,(()=>0)),ta(na,w,(()=>[]));const[N,h,O,$,C]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,A++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,g++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(q(na,w),...a),await(async()=>{if(!q(ea,w)){for(aa(ea,w,1);!o((a=q(na,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=O();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(q(na,w).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...y};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const y=X();return[async()=>{y.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(y,a,ia),t)))},async(t,e)=>((a,t)=>_(q(y,a),t))(t,e)?Y(g(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,w,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&w&&A(N)&&_(y,t))return await a("DROP "+C+D(t)),void aa(y,t);const h=q(y,t),O=ia(P(h));if(A(N)||(_(y,t)?await u(E([n,...N],(async(e,s)=>{F(O,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+C+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(y,t,ia([n,...N])))),await u([...!d&&l?E(P(O),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):A(N)||await ca(a,t,n,B(e),[s,...c?E(z(e),c):z(e)],r)})));else if(A(N))_(y,t)&&await a(S+D(t)+$+" true");else{const e=g(P(q(y,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,w(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(w(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ya=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ra(t,y,w,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[N]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[N]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},wa=(a,t,e,n,s,i,r,[c,l,[y,w,d]],v,p,E,A,m,O,$,C)=>{const[T,S,f,I]=ra(t,v,p,s,m,O,$,C),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(g(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await S(d,h))[N]:{})();return Q(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Oa="deleteEmptyColumns",$a="deleteEmptyTable",Ca={mode:va,[ga]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return H(a,((a,r)=>{const l=y(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,w,u,d,v="getDb",p)=>{let E,A,g;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,C,T,S]=(a=>{const e=(a=>k(Ca,c(a)?{[pa]:a}:a??{}))(a),n=e[ga];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??h,e[Aa]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=y(z(k(Ta,o)),0,K(Ta)),l=r[2],w=ia(l),u=ia(l);return[0,n,[Sa(s,{[Na]:null,[ma]:h},Na,(a=>_(u,a)),(a=>oa(w,a))),Sa(i,{[ha]:null,[ma]:h,[Oa]:0,[$a]:0},ha,((a,t)=>_(u,t)),((a,t)=>oa(w,t))),r],w]})(e);return(N?ya:wa)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${O} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==A&&n==g||(null!=E&&a(),E=t,A=e,g=n)}catch{}}),1e3*C),n=()=>{E=A=g=null,i(t)},r=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,w,u,T,P(S),(async(a,t)=>await a(`${O} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(a,t,e,n,s)=>fa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,(()=>0),1,t);export{Ia as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==w(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",O="SELECT",$="WHERE",C="TABLE",T="ALTER "+C,S="DELETE FROM",f=O+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>w(B(a)),Q=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,c,y={},w=[])=>{let u,v,p,E=0,A=0,g=0;ta(ea,w,(()=>0)),ta(na,w,(()=>[]));const[N,h,O,$,C]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,A++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,g++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(q(na,w),...a),await(async()=>{if(!q(ea,w)){for(aa(ea,w,1);!o((a=q(na,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=O();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(q(na,w).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...y};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const y=X();return[async()=>{y.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(y,a,ia),t)))},async(t,e)=>((a,t)=>_(q(y,a),t))(t,e)?Y(g(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,w,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&w&&A(N)&&_(y,t))return await a("DROP "+C+D(t)),void aa(y,t);const h=q(y,t),O=ia(P(h));if(A(N)||(_(y,t)?await u(E([n,...N],(async(e,s)=>{F(O,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+C+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(y,t,ia([n,...N])))),await u([...!d&&l?E(P(O),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):A(N)||await ca(a,t,n,B(e),[s,...c?E(z(e),c):z(e)],r)})));else if(A(N))_(y,t)&&await a(S+D(t)+$+" true");else{const e=g(P(q(y,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,w(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(w(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ya=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ra(t,y,w,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[N]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[N]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},wa=(a,t,e,n,s,i,r,[c,l,[y,w,d]],v,p,E,A,m,O,$,C)=>{const[T,S,f,I]=ra(t,v,p,s,m,O,$,C),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(g(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await S(d,h))[N]:{})();return Q(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Oa="deleteEmptyColumns",$a="deleteEmptyTable",Ca={mode:va,[ga]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return H(a,((a,r)=>{const l=y(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,w,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==w(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",O="SELECT",$="WHERE",C="TABLE",T="ALTER "+C,S="DELETE FROM",f=O+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>w(B(a)),Q=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,c,y={},w=[])=>{let u,v,p,E=0,A=0,g=0;ta(ea,w,(()=>0)),ta(na,w,(()=>[]));const[N,h,O,$,C]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,A++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,g++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(q(na,w),...a),await(async()=>{if(!q(ea,w)){for(aa(ea,w,1);!o((a=q(na,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=O();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(q(na,w).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...y};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const y=X();return[async()=>{y.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(y,a,ia),t)))},async(t,e)=>((a,t)=>_(q(y,a),t))(t,e)?Y(g(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,w,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&w&&A(N)&&_(y,t))return await a("DROP "+C+D(t)),void aa(y,t);const h=q(y,t),O=ia(P(h));if(A(N)||(_(y,t)?await u(E([n,...N],(async(e,s)=>{F(O,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+C+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(y,t,ia([n,...N])))),await u([...!d&&l?E(P(O),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):A(N)||await ca(a,t,n,B(e),[s,...c?E(z(e),c):z(e)],r)})));else if(A(N))_(y,t)&&await a(S+D(t)+$+" true");else{const e=g(P(q(y,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,w(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(w(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ya=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ra(t,y,w,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[N]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[N]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},wa=(a,t,e,n,s,i,r,[c,l,[y,w,d]],v,p,E,A,m,O,$,C)=>{const[T,S,f,I]=ra(t,v,p,s,m,O,$,C),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(g(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await S(d,h))[N]:{})();return Q(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Oa="deleteEmptyColumns",$a="deleteEmptyTable",Ca={mode:va,[ga]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return H(a,((a,r)=>{const l=y(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,w,u,d,v="getDb",p)=>{let E,A,g;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,C,T,S]=(a=>{const e=(a=>k(Ca,c(a)?{[pa]:a}:a??{}))(a),n=e[ga];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??h,e[Aa]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=y(z(k(Ta,o)),0,K(Ta)),l=r[2],w=ia(l),u=ia(l);return[0,n,[Sa(s,{[Na]:null,[ma]:h},Na,(a=>_(u,a)),(a=>oa(w,a))),Sa(i,{[ha]:null,[ma]:h,[Oa]:0,[$a]:0},ha,((a,t)=>_(u,t)),((a,t)=>oa(w,t))),r],w]})(e);return(N?ya:wa)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${O} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==A&&n==g||(null!=E&&a(),E=t,A=e,g=n)}catch{}}),1e3*C),n=()=>{E=A=g=null,i(t)},r=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,w,u,T,P(S),(async(a,t)=>await a(`${O} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(a,t,e,n,s)=>fa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,(()=>0),1,t);export{Ia as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",$="WHERE",b="TABLE",f="ALTER "+b,O="DELETE FROM",T=N+"*FROM",S="pragma_",I="data_version",R="schema_version",D="pragma_table_",L=a=>`"${a.replace(/"/g,'""')}"`,M=a=>E(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,E,p=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,C,N,$,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,g++,await R((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}p=0}))),D),T=()=>(v&&(s(v),v=void 0),D),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(C,a)}catch(a){i?.(a)}p=0}))),D),I=()=>(o(E,a.delListener),E=void 0,D),R=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,g++,f(t??a),p=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),E=a.addDidFinishTransactionListener((()=>{const a=N();$(a)&&S(a)})),D),stopAutoSave:I,isAutoSaving:()=>!r(E),schedule:R,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(D)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?k(A(p(await a(T+L(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(J(a??{}),(a=>ra(v,a)))));const h=P(v);if(!d&&y&&g(h)&&_(w,t))return await a("DROP "+b+L(t)),void aa(w,t);const C=X(w,t),N=ia(P(C));if(g(h)||(_(w,t)?await u(p([n,...h],(async(e,s)=>{F(N,e)||(await a(f+L(t)+"ADD"+L(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+L(t)+`(${L(n)})`),ra(C,e))}))):(await a("CREATE "+b+L(t)+`(${L(n)}${i} PRIMARY KEY${E(p(h,(a=>e+L(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?p(P(N),(async e=>{e!=n&&(await a(f+L(t)+"DROP"+L(e)),F(C,e))})):[]]),d)r(s)?await a(O+L(t)+$+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(O+L(t)+$+L(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?p(q(e),c):q(e)],o)})));else if(g(h))_(w,t)&&await a(O+L(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(O+L(t)+$+L(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+L(t)+"("+L(n)+E(p(s,(a=>e+L(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+L(n)+")DO UPDATE SET"+E(p(s,(a=>L(a)+"=excluded."+L(a))),e)),p(i,(a=>a??null))),la=(a,t)=>E(v(y(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,E)=>{const[p,g,A,m]=oa(t,w,y,s,v,E),C=sa(a,(async()=>await m((async()=>{return await p(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await p(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},u);return C},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,E,p,g,m,N,$,b)=>{const[f,O,T,S]=oa(t,v,E,s,m,N,$,b),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),R=async(a,t)=>y?await T(d,C,{[h]:a},!0,!0,t):null,D=sa(a,(async()=>await S((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,C))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await f(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[g]:()=>p,destroy:()=>(D.stopAutoLoad().stopAutoSave(),i(),D)},p);return D},ua="ColumnName",da="store",va="json",Ea=da+"TableName",pa=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Ca="tableName",Na="deleteEmptyColumns",$a="deleteEmptyTable",ba={mode:va,[Aa]:1},fa={load:0,save:0,[Ca]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",$="WHERE",b="TABLE",f="ALTER "+b,O="DELETE FROM",T=N+"*FROM",S="pragma_",I="data_version",R="schema_version",D="pragma_table_",L=a=>`"${a.replace(/"/g,'""')}"`,M=a=>E(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,E,p=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,C,N,$,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,g++,await R((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}p=0}))),D),T=()=>(v&&(s(v),v=void 0),D),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(C,a)}catch(a){i?.(a)}p=0}))),D),I=()=>(o(E,a.delListener),E=void 0,D),R=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,g++,f(t??a),p=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),E=a.addDidFinishTransactionListener((()=>{const a=N();$(a)&&S(a)})),D),stopAutoSave:I,isAutoSaving:()=>!r(E),schedule:R,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(D)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?k(A(p(await a(T+L(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(J(a??{}),(a=>ra(v,a)))));const h=P(v);if(!d&&y&&g(h)&&_(w,t))return await a("DROP "+b+L(t)),void aa(w,t);const C=X(w,t),N=ia(P(C));if(g(h)||(_(w,t)?await u(p([n,...h],(async(e,s)=>{F(N,e)||(await a(f+L(t)+"ADD"+L(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+L(t)+`(${L(n)})`),ra(C,e))}))):(await a("CREATE "+b+L(t)+`(${L(n)}${i} PRIMARY KEY${E(p(h,(a=>e+L(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?p(P(N),(async e=>{e!=n&&(await a(f+L(t)+"DROP"+L(e)),F(C,e))})):[]]),d)r(s)?await a(O+L(t)+$+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(O+L(t)+$+L(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?p(q(e),c):q(e)],o)})));else if(g(h))_(w,t)&&await a(O+L(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(O+L(t)+$+L(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+L(t)+"("+L(n)+E(p(s,(a=>e+L(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+L(n)+")DO UPDATE SET"+E(p(s,(a=>L(a)+"=excluded."+L(a))),e)),p(i,(a=>a??null))),la=(a,t)=>E(v(y(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,E)=>{const[p,g,A,m]=oa(t,w,y,s,v,E),C=sa(a,(async()=>await m((async()=>{return await p(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await p(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},u);return C},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,E,p,g,m,N,$,b)=>{const[f,O,T,S]=oa(t,v,E,s,m,N,$,b),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),R=async(a,t)=>y?await T(d,C,{[h]:a},!0,!0,t):null,D=sa(a,(async()=>await S((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,C))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await f(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[g]:()=>p,destroy:()=>(D.stopAutoLoad().stopAutoSave(),i(),D)},p);return D},ua="ColumnName",da="store",va="json",Ea=da+"TableName",pa=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Ca="tableName",Na="deleteEmptyColumns",$a="deleteEmptyTable",ba={mode:va,[Aa]:1},fa={load:0,save:0,[Ca]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d,v="getDb",E)=>{let p,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[h,b,f,O]=(a=>{const e=(a=>x(ba,c(a)?{[Ea]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[Ea]??t;return[1,n,[a,e[pa]??C,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(q(x(fa,r)),0,z(fa)),l=o[2],y=ia(l),u=ia(l);return[0,n,[Oa(s,{[ha]:null,[ma]:C},ha,(a=>_(u,a)),(a=>ra(y,a))),Oa(i,{[Ca]:null,[ma]:C,[Na]:0,[$a]:0},Ca,((a,t)=>_(u,t)),((a,t)=>ra(y,t))),o],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${N} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${S}${I} JOIN ${S}${R}`);t==p&&e==g&&n==A||(null!=p&&a(),p=t,g=e,A=n)}catch{}}),1e3*b),n=()=>{p=g=A=null,i(t)},o=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,y,u,f,P(O),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",E,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s)=>Ta(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,(()=>0),1,t,"getElectricClient");export{Sa as createElectricSqlPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",$="WHERE",b="TABLE",f="ALTER "+b,O="DELETE FROM",T=N+"*FROM",S="pragma_",I="data_version",R="schema_version",D="pragma_table_",L=a=>`"${a.replace(/"/g,'""')}"`,M=a=>E(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,E,p=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,C,N,$,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,g++,await R((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}p=0}))),D),T=()=>(v&&(s(v),v=void 0),D),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(C,a)}catch(a){i?.(a)}p=0}))),D),I=()=>(o(E,a.delListener),E=void 0,D),R=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,g++,f(t??a),p=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),E=a.addDidFinishTransactionListener((()=>{const a=N();$(a)&&S(a)})),D),stopAutoSave:I,isAutoSaving:()=>!r(E),schedule:R,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(D)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?k(A(p(await a(T+L(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(J(a??{}),(a=>ra(v,a)))));const h=P(v);if(!d&&y&&g(h)&&_(w,t))return await a("DROP "+b+L(t)),void aa(w,t);const C=X(w,t),N=ia(P(C));if(g(h)||(_(w,t)?await u(p([n,...h],(async(e,s)=>{F(N,e)||(await a(f+L(t)+"ADD"+L(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+L(t)+`(${L(n)})`),ra(C,e))}))):(await a("CREATE "+b+L(t)+`(${L(n)}${i} PRIMARY KEY${E(p(h,(a=>e+L(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?p(P(N),(async e=>{e!=n&&(await a(f+L(t)+"DROP"+L(e)),F(C,e))})):[]]),d)r(s)?await a(O+L(t)+$+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(O+L(t)+$+L(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?p(q(e),c):q(e)],o)})));else if(g(h))_(w,t)&&await a(O+L(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(O+L(t)+$+L(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+L(t)+"("+L(n)+E(p(s,(a=>e+L(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+L(n)+")DO UPDATE SET"+E(p(s,(a=>L(a)+"=excluded."+L(a))),e)),p(i,(a=>a??null))),la=(a,t)=>E(v(y(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,E)=>{const[p,g,A,m]=oa(t,w,y,s,v,E),C=sa(a,(async()=>await m((async()=>{return await p(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await p(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},u);return C},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,E,p,g,m,N,$,b)=>{const[f,O,T,S]=oa(t,v,E,s,m,N,$,b),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),R=async(a,t)=>y?await T(d,C,{[h]:a},!0,!0,t):null,D=sa(a,(async()=>await S((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,C))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await f(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[g]:()=>p,destroy:()=>(D.stopAutoLoad().stopAutoSave(),i(),D)},p);return D},ua="ColumnName",da="store",va="json",Ea=da+"TableName",pa=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Ca="tableName",Na="deleteEmptyColumns",$a="deleteEmptyTable",ba={mode:va,[Aa]:1},fa={load:0,save:0,[Ca]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",$="WHERE",b="TABLE",f="ALTER "+b,O="DELETE FROM",T=N+"*FROM",S="pragma_",I="data_version",R="schema_version",D="pragma_table_",L=a=>`"${a.replace(/"/g,'""')}"`,M=a=>E(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,E,p=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,C,N,$,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,g++,await R((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}p=0}))),D),T=()=>(v&&(s(v),v=void 0),D),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(C,a)}catch(a){i?.(a)}p=0}))),D),I=()=>(o(E,a.delListener),E=void 0,D),R=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,g++,f(t??a),p=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),E=a.addDidFinishTransactionListener((()=>{const a=N();$(a)&&S(a)})),D),stopAutoSave:I,isAutoSaving:()=>!r(E),schedule:R,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(D)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?k(A(p(await a(T+L(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(J(a??{}),(a=>ra(v,a)))));const h=P(v);if(!d&&y&&g(h)&&_(w,t))return await a("DROP "+b+L(t)),void aa(w,t);const C=X(w,t),N=ia(P(C));if(g(h)||(_(w,t)?await u(p([n,...h],(async(e,s)=>{F(N,e)||(await a(f+L(t)+"ADD"+L(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+L(t)+`(${L(n)})`),ra(C,e))}))):(await a("CREATE "+b+L(t)+`(${L(n)}${i} PRIMARY KEY${E(p(h,(a=>e+L(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?p(P(N),(async e=>{e!=n&&(await a(f+L(t)+"DROP"+L(e)),F(C,e))})):[]]),d)r(s)?await a(O+L(t)+$+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(O+L(t)+$+L(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?p(q(e),c):q(e)],o)})));else if(g(h))_(w,t)&&await a(O+L(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(O+L(t)+$+L(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+L(t)+"("+L(n)+E(p(s,(a=>e+L(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+L(n)+")DO UPDATE SET"+E(p(s,(a=>L(a)+"=excluded."+L(a))),e)),p(i,(a=>a??null))),la=(a,t)=>E(v(y(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,E)=>{const[p,g,A,m]=oa(t,w,y,s,v,E),C=sa(a,(async()=>await m((async()=>{return await p(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await p(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},u);return C},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,E,p,g,m,N,$,b)=>{const[f,O,T,S]=oa(t,v,E,s,m,N,$,b),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),R=async(a,t)=>y?await T(d,C,{[h]:a},!0,!0,t):null,D=sa(a,(async()=>await S((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,C))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await f(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[g]:()=>p,destroy:()=>(D.stopAutoLoad().stopAutoSave(),i(),D)},p);return D},ua="ColumnName",da="store",va="json",Ea=da+"TableName",pa=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Ca="tableName",Na="deleteEmptyColumns",$a="deleteEmptyTable",ba={mode:va,[Aa]:1},fa={load:0,save:0,[Ca]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d,v="getDb",E)=>{let p,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[h,b,f,O]=(a=>{const e=(a=>x(ba,c(a)?{[Ea]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[Ea]??t;return[1,n,[a,e[pa]??C,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(q(x(fa,r)),0,z(fa)),l=o[2],y=ia(l),u=ia(l);return[0,n,[Oa(s,{[ha]:null,[ma]:C},ha,(a=>_(u,a)),(a=>ra(y,a))),Oa(i,{[Ca]:null,[ma]:C,[Na]:0,[$a]:0},Ca,((a,t)=>_(u,t)),((a,t)=>ra(y,t))),o],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${N} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${S}${I} JOIN ${S}${R}`);t==p&&e==g&&n==A||(null!=p&&a(),p=t,g=e,A=n)}catch{}}),1e3*b),n=()=>{p=g=A=null,i(t)},o=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,y,u,f,P(O),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",E,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s)=>Ta(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,(()=>0),1,t,"getElectricClient");export{Sa as createElectricSqlPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),v=a=>{throw Error(a)},p=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),g=a=>0==u(a),m=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),h="_",$="_id",C="SELECT",O="WHERE",T="TABLE",f="ALTER "+T,S="DELETE FROM",b=C+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,_=a=>E(A(a,((a,t)=>"$"+(t+1))),n),P=(a,t)=>a?.has(t)??!1,F=a=>[...a?.values()??[]],U=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),B=j.entries,J=j.keys,Y=j.freeze,k=(a=[])=>j.fromEntries(a),G=(...a)=>j.assign({},...a),H=(a,t)=>(delete a[t],a),q=(a,t)=>A(B(a),(([a,e])=>t(e,a))),z=a=>j.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),Z=(a,t)=>a?.get(t),aa=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),ta=(a,t,e)=>r(e)?(U(a,t),a):a?.set(t,e),ea=(a,t,e,n)=>(P(a,t)||ta(a,t,e()),Z(a,t)),na=X(),sa=X(),ia=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,p,E=0,A=0,g=0;ea(na,w,(()=>0)),ea(sa,w,(()=>[]));const[m,h,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:v("Store type not supported by this Persister"))(o,a),T=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=E&&(E=1,A++,await R((async()=>{try{const a=await t();y(a)?T(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),S=()=>(d&&(s(d),d=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(p,a.delListener),p=void 0,L),R=async(...a)=>(N(Z(sa,w),...a),await(async()=>{if(!Z(na,w)){for(ta(na,w,1);!r((a=Z(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}ta(na,w,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await f()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:b,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(p),schedule:R,getStore:()=>a,destroy:()=>(Z(sa,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...l};return Y(L)},oa=a=>new Set(y(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),ca=(a,t,e,s,i,o,c,l)=>{const y=X();return[async()=>{y.clear(),A(await e(a,t),(({tn:a,cn:t})=>ra(ea(y,a,oa),t)))},async(t,e)=>((a,t)=>P(Z(y,a),t))(t,e)?k(m(A(await a(b+M(t)),(a=>{return[a[e],l?(t=H(a,e),n=l,k(q(t,((a,t)=>[t,n(a,t)])))):H(a,e)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,l,w,u=!1)=>{const v=oa();q(s??{},(a=>A(J(a??{}),(a=>ra(v,a)))));const p=F(v);if(!u&&w&&g(p)&&P(y,t))return await a("DROP "+T+M(t)),void ta(y,t);const h=Z(y,t),$=oa(F(h));if(g(p)||(P(y,t)?await d(A([e,...p],(async(n,s)=>{U($,n)||(await a(f+M(t)+"ADD"+M(n)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ra(h,n))}))):(await a("CREATE "+T+M(t)+`(${M(e)}${i} PRIMARY KEY${E(A(p,(a=>n+M(a)+i)))});`),ta(y,t,oa([e,...p])))),await d([...!u&&l?A(F($),(async n=>{n!=e&&(await a(f+M(t)+"DROP"+M(n)),U(h,n))})):[]]),u)r(s)?await a(S+M(t)+O+" true"):await d(q(s,(async(n,s)=>{r(n)?await a(S+M(t)+O+M(e)+"=$1",[s]):g(p)||await la(a,t,e,J(n),[s,...c?A(z(n),c):z(n)],o)})));else if(g(p))P(y,t)&&await a(S+M(t)+O+" true");else{const n=m(F(Z(y,t)),(a=>a!=e)),i=[],r=[];q(s??{},((a,t)=>{N(i,t,...A(n,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await la(a,t,e,n,i,o),await a(S+M(t)+O+M(e)+`NOT IN(${_(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,e,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+M(t)+"("+M(e)+E(A(s,(a=>n+M(a))))+")VALUES"+ya(i,u(s)+1)+(o?"":"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(A(s,(a=>M(a)+"=excluded."+M(a))),n)),A(i,(a=>a??null))),ya=(a,t)=>E(p(u(a)/t,(a=>"("+E(p(t,(e=>"$"+(a*t+e+1))),n)+")")),n),wa=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ca(t,y,w,s,v,p),N=ia(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ua=(a,t,e,n,s,i,o,[c,l,[y,w,u]],v,p,E,A,g,N,C,O)=>{const[T,f,S,b]=ca(t,v,p,s,g,N,C,O),I=async(a,t)=>await d(aa(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await S(e,n,a[o],s,i,t)}))),R=async(a,t)=>w?await S(u,$,{[h]:a},!0,!0,t):null,L=ia(a,(async()=>await b((async()=>{await T();const a=await(async()=>k(m(await d(aa(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await f(u,$))[h]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await b((async()=>{if(await T(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},da="ColumnName",va="store",pa="json",Ea=va+"TableName",Aa=va+"Id"+da,ga=va+da,ma="autoLoadIntervalSeconds",Na="rowId"+da,ha="tableId",$a="tableName",Ca="deleteEmptyColumns",Oa="deleteEmptyTable",Ta={mode:pa,[ma]:1},fa={load:0,save:0,[$a]:e+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return q(a,((a,o)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(o,c[0])||(s(o,c[0]),ta(i,o,c))})),i},ba=(a,t,n,s,i,r,c,y,u,d="getDb",
|
|
1
|
+
import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),v=a=>{throw Error(a)},p=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),g=a=>0==u(a),m=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),h="_",$="_id",C="SELECT",O="WHERE",T="TABLE",f="ALTER "+T,S="DELETE FROM",b=C+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,_=a=>E(A(a,((a,t)=>"$"+(t+1))),n),P=(a,t)=>a?.has(t)??!1,F=a=>[...a?.values()??[]],U=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),B=j.entries,J=j.keys,Y=j.freeze,k=(a=[])=>j.fromEntries(a),G=(...a)=>j.assign({},...a),H=(a,t)=>(delete a[t],a),q=(a,t)=>A(B(a),(([a,e])=>t(e,a))),z=a=>j.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),Z=(a,t)=>a?.get(t),aa=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),ta=(a,t,e)=>r(e)?(U(a,t),a):a?.set(t,e),ea=(a,t,e,n)=>(P(a,t)||ta(a,t,e()),Z(a,t)),na=X(),sa=X(),ia=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,p,E=0,A=0,g=0;ea(na,w,(()=>0)),ea(sa,w,(()=>[]));const[m,h,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:v("Store type not supported by this Persister"))(o,a),T=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=E&&(E=1,A++,await R((async()=>{try{const a=await t();y(a)?T(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),S=()=>(d&&(s(d),d=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(p,a.delListener),p=void 0,L),R=async(...a)=>(N(Z(sa,w),...a),await(async()=>{if(!Z(na,w)){for(ta(na,w,1);!r((a=Z(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}ta(na,w,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await f()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:b,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(p),schedule:R,getStore:()=>a,destroy:()=>(Z(sa,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...l};return Y(L)},oa=a=>new Set(y(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),ca=(a,t,e,s,i,o,c,l)=>{const y=X();return[async()=>{y.clear(),A(await e(a,t),(({tn:a,cn:t})=>ra(ea(y,a,oa),t)))},async(t,e)=>((a,t)=>P(Z(y,a),t))(t,e)?k(m(A(await a(b+M(t)),(a=>{return[a[e],l?(t=H(a,e),n=l,k(q(t,((a,t)=>[t,n(a,t)])))):H(a,e)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,l,w,u=!1)=>{const v=oa();q(s??{},(a=>A(J(a??{}),(a=>ra(v,a)))));const p=F(v);if(!u&&w&&g(p)&&P(y,t))return await a("DROP "+T+M(t)),void ta(y,t);const h=Z(y,t),$=oa(F(h));if(g(p)||(P(y,t)?await d(A([e,...p],(async(n,s)=>{U($,n)||(await a(f+M(t)+"ADD"+M(n)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ra(h,n))}))):(await a("CREATE "+T+M(t)+`(${M(e)}${i} PRIMARY KEY${E(A(p,(a=>n+M(a)+i)))});`),ta(y,t,oa([e,...p])))),await d([...!u&&l?A(F($),(async n=>{n!=e&&(await a(f+M(t)+"DROP"+M(n)),U(h,n))})):[]]),u)r(s)?await a(S+M(t)+O+" true"):await d(q(s,(async(n,s)=>{r(n)?await a(S+M(t)+O+M(e)+"=$1",[s]):g(p)||await la(a,t,e,J(n),[s,...c?A(z(n),c):z(n)],o)})));else if(g(p))P(y,t)&&await a(S+M(t)+O+" true");else{const n=m(F(Z(y,t)),(a=>a!=e)),i=[],r=[];q(s??{},((a,t)=>{N(i,t,...A(n,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await la(a,t,e,n,i,o),await a(S+M(t)+O+M(e)+`NOT IN(${_(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,e,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+M(t)+"("+M(e)+E(A(s,(a=>n+M(a))))+")VALUES"+ya(i,u(s)+1)+(o?"":"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(A(s,(a=>M(a)+"=excluded."+M(a))),n)),A(i,(a=>a??null))),ya=(a,t)=>E(p(u(a)/t,(a=>"("+E(p(t,(e=>"$"+(a*t+e+1))),n)+")")),n),wa=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ca(t,y,w,s,v,p),N=ia(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ua=(a,t,e,n,s,i,o,[c,l,[y,w,u]],v,p,E,A,g,N,C,O)=>{const[T,f,S,b]=ca(t,v,p,s,g,N,C,O),I=async(a,t)=>await d(aa(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await S(e,n,a[o],s,i,t)}))),R=async(a,t)=>w?await S(u,$,{[h]:a},!0,!0,t):null,L=ia(a,(async()=>await b((async()=>{await T();const a=await(async()=>k(m(await d(aa(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await f(u,$))[h]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await b((async()=>{if(await T(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},da="ColumnName",va="store",pa="json",Ea=va+"TableName",Aa=va+"Id"+da,ga=va+da,ma="autoLoadIntervalSeconds",Na="rowId"+da,ha="tableId",$a="tableName",Ca="deleteEmptyColumns",Oa="deleteEmptyTable",Ta={mode:pa,[ma]:1},fa={load:0,save:0,[$a]:e+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return q(a,((a,o)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(o,c[0])||(s(o,c[0]),ta(i,o,c))})),i},ba=(a,t,n,s,i,r,c,y,u,d,v="getDb",p)=>{let E,A,g;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,h,T,f]=(a=>{const t=(a=>G(Ta,l(a)?{[Ea]:a}:a??{}))(a),n=t[ma];if(t.mode==pa){const a=t[Ea]??e;return[1,n,[a,t[Aa]??$,t[ga]??va],oa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(z(G(fa,o)),0,K(fa)),c=r[2],y=oa(c),u=oa(c);return[0,n,[Sa(s,{[ha]:null,[Na]:$},ha,(a=>P(u,a)),(a=>ra(y,a))),Sa(i,{[$a]:null,[Na]:$,[Ca]:0,[Oa]:0},$a,((a,t)=>P(u,t)),((a,t)=>ra(y,t))),r],y]})(t);return(N?wa:ua)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${C} ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==E&&e==A&&n==g||(null!=E&&a(),E=t,A=e,g=n)}catch{}}),1e3*h),n=()=>{E=A=g=null,o(t)},r=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,y,u,T,F(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(t,e,n,s,i)=>ba(t,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),s,i,(()=>0),3,e);export{Ia as createExpoSqlitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),v=a=>{throw Error(a)},p=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),g=a=>0==u(a),m=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),h="_",$="_id",C="SELECT",O="WHERE",T="TABLE",f="ALTER "+T,S="DELETE FROM",b=C+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,_=a=>E(A(a,((a,t)=>"$"+(t+1))),n),P=(a,t)=>a?.has(t)??!1,F=a=>[...a?.values()??[]],U=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),B=j.entries,J=j.keys,Y=j.freeze,k=(a=[])=>j.fromEntries(a),G=(...a)=>j.assign({},...a),H=(a,t)=>(delete a[t],a),q=(a,t)=>A(B(a),(([a,e])=>t(e,a))),z=a=>j.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),Z=(a,t)=>a?.get(t),aa=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),ta=(a,t,e)=>r(e)?(U(a,t),a):a?.set(t,e),ea=(a,t,e,n)=>(P(a,t)||ta(a,t,e()),Z(a,t)),na=X(),sa=X(),ia=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,p,E=0,A=0,g=0;ea(na,w,(()=>0)),ea(sa,w,(()=>[]));const[m,h,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:v("Store type not supported by this Persister"))(o,a),T=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=E&&(E=1,A++,await R((async()=>{try{const a=await t();y(a)?T(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),S=()=>(d&&(s(d),d=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(p,a.delListener),p=void 0,L),R=async(...a)=>(N(Z(sa,w),...a),await(async()=>{if(!Z(na,w)){for(ta(na,w,1);!r((a=Z(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}ta(na,w,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await f()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:b,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(p),schedule:R,getStore:()=>a,destroy:()=>(Z(sa,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...l};return Y(L)},oa=a=>new Set(y(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),ca=(a,t,e,s,i,o,c,l)=>{const y=X();return[async()=>{y.clear(),A(await e(a,t),(({tn:a,cn:t})=>ra(ea(y,a,oa),t)))},async(t,e)=>((a,t)=>P(Z(y,a),t))(t,e)?k(m(A(await a(b+M(t)),(a=>{return[a[e],l?(t=H(a,e),n=l,k(q(t,((a,t)=>[t,n(a,t)])))):H(a,e)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,l,w,u=!1)=>{const v=oa();q(s??{},(a=>A(J(a??{}),(a=>ra(v,a)))));const p=F(v);if(!u&&w&&g(p)&&P(y,t))return await a("DROP "+T+M(t)),void ta(y,t);const h=Z(y,t),$=oa(F(h));if(g(p)||(P(y,t)?await d(A([e,...p],(async(n,s)=>{U($,n)||(await a(f+M(t)+"ADD"+M(n)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ra(h,n))}))):(await a("CREATE "+T+M(t)+`(${M(e)}${i} PRIMARY KEY${E(A(p,(a=>n+M(a)+i)))});`),ta(y,t,oa([e,...p])))),await d([...!u&&l?A(F($),(async n=>{n!=e&&(await a(f+M(t)+"DROP"+M(n)),U(h,n))})):[]]),u)r(s)?await a(S+M(t)+O+" true"):await d(q(s,(async(n,s)=>{r(n)?await a(S+M(t)+O+M(e)+"=$1",[s]):g(p)||await la(a,t,e,J(n),[s,...c?A(z(n),c):z(n)],o)})));else if(g(p))P(y,t)&&await a(S+M(t)+O+" true");else{const n=m(F(Z(y,t)),(a=>a!=e)),i=[],r=[];q(s??{},((a,t)=>{N(i,t,...A(n,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await la(a,t,e,n,i,o),await a(S+M(t)+O+M(e)+`NOT IN(${_(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,e,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+M(t)+"("+M(e)+E(A(s,(a=>n+M(a))))+")VALUES"+ya(i,u(s)+1)+(o?"":"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(A(s,(a=>M(a)+"=excluded."+M(a))),n)),A(i,(a=>a??null))),ya=(a,t)=>E(p(u(a)/t,(a=>"("+E(p(t,(e=>"$"+(a*t+e+1))),n)+")")),n),wa=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ca(t,y,w,s,v,p),N=ia(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ua=(a,t,e,n,s,i,o,[c,l,[y,w,u]],v,p,E,A,g,N,C,O)=>{const[T,f,S,b]=ca(t,v,p,s,g,N,C,O),I=async(a,t)=>await d(aa(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await S(e,n,a[o],s,i,t)}))),R=async(a,t)=>w?await S(u,$,{[h]:a},!0,!0,t):null,L=ia(a,(async()=>await b((async()=>{await T();const a=await(async()=>k(m(await d(aa(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await f(u,$))[h]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await b((async()=>{if(await T(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},da="ColumnName",va="store",pa="json",Ea=va+"TableName",Aa=va+"Id"+da,ga=va+da,ma="autoLoadIntervalSeconds",Na="rowId"+da,ha="tableId",$a="tableName",Ca="deleteEmptyColumns",Oa="deleteEmptyTable",Ta={mode:pa,[ma]:1},fa={load:0,save:0,[$a]:e+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return q(a,((a,o)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(o,c[0])||(s(o,c[0]),ta(i,o,c))})),i},ba=(a,t,n,s,i,r,c,y,u,d="getDb",
|
|
1
|
+
import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),v=a=>{throw Error(a)},p=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),g=a=>0==u(a),m=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),h="_",$="_id",C="SELECT",O="WHERE",T="TABLE",f="ALTER "+T,S="DELETE FROM",b=C+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,_=a=>E(A(a,((a,t)=>"$"+(t+1))),n),P=(a,t)=>a?.has(t)??!1,F=a=>[...a?.values()??[]],U=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),B=j.entries,J=j.keys,Y=j.freeze,k=(a=[])=>j.fromEntries(a),G=(...a)=>j.assign({},...a),H=(a,t)=>(delete a[t],a),q=(a,t)=>A(B(a),(([a,e])=>t(e,a))),z=a=>j.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),Z=(a,t)=>a?.get(t),aa=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),ta=(a,t,e)=>r(e)?(U(a,t),a):a?.set(t,e),ea=(a,t,e,n)=>(P(a,t)||ta(a,t,e()),Z(a,t)),na=X(),sa=X(),ia=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,p,E=0,A=0,g=0;ea(na,w,(()=>0)),ea(sa,w,(()=>[]));const[m,h,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:v("Store type not supported by this Persister"))(o,a),T=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=E&&(E=1,A++,await R((async()=>{try{const a=await t();y(a)?T(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),S=()=>(d&&(s(d),d=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(p,a.delListener),p=void 0,L),R=async(...a)=>(N(Z(sa,w),...a),await(async()=>{if(!Z(na,w)){for(ta(na,w,1);!r((a=Z(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}ta(na,w,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await f()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:b,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(p),schedule:R,getStore:()=>a,destroy:()=>(Z(sa,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...l};return Y(L)},oa=a=>new Set(y(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),ca=(a,t,e,s,i,o,c,l)=>{const y=X();return[async()=>{y.clear(),A(await e(a,t),(({tn:a,cn:t})=>ra(ea(y,a,oa),t)))},async(t,e)=>((a,t)=>P(Z(y,a),t))(t,e)?k(m(A(await a(b+M(t)),(a=>{return[a[e],l?(t=H(a,e),n=l,k(q(t,((a,t)=>[t,n(a,t)])))):H(a,e)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,l,w,u=!1)=>{const v=oa();q(s??{},(a=>A(J(a??{}),(a=>ra(v,a)))));const p=F(v);if(!u&&w&&g(p)&&P(y,t))return await a("DROP "+T+M(t)),void ta(y,t);const h=Z(y,t),$=oa(F(h));if(g(p)||(P(y,t)?await d(A([e,...p],(async(n,s)=>{U($,n)||(await a(f+M(t)+"ADD"+M(n)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ra(h,n))}))):(await a("CREATE "+T+M(t)+`(${M(e)}${i} PRIMARY KEY${E(A(p,(a=>n+M(a)+i)))});`),ta(y,t,oa([e,...p])))),await d([...!u&&l?A(F($),(async n=>{n!=e&&(await a(f+M(t)+"DROP"+M(n)),U(h,n))})):[]]),u)r(s)?await a(S+M(t)+O+" true"):await d(q(s,(async(n,s)=>{r(n)?await a(S+M(t)+O+M(e)+"=$1",[s]):g(p)||await la(a,t,e,J(n),[s,...c?A(z(n),c):z(n)],o)})));else if(g(p))P(y,t)&&await a(S+M(t)+O+" true");else{const n=m(F(Z(y,t)),(a=>a!=e)),i=[],r=[];q(s??{},((a,t)=>{N(i,t,...A(n,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await la(a,t,e,n,i,o),await a(S+M(t)+O+M(e)+`NOT IN(${_(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,e,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+M(t)+"("+M(e)+E(A(s,(a=>n+M(a))))+")VALUES"+ya(i,u(s)+1)+(o?"":"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(A(s,(a=>M(a)+"=excluded."+M(a))),n)),A(i,(a=>a??null))),ya=(a,t)=>E(p(u(a)/t,(a=>"("+E(p(t,(e=>"$"+(a*t+e+1))),n)+")")),n),wa=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,v,p)=>{const[E,A,g,m]=ca(t,y,w,s,v,p),N=ia(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ua=(a,t,e,n,s,i,o,[c,l,[y,w,u]],v,p,E,A,g,N,C,O)=>{const[T,f,S,b]=ca(t,v,p,s,g,N,C,O),I=async(a,t)=>await d(aa(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await S(e,n,a[o],s,i,t)}))),R=async(a,t)=>w?await S(u,$,{[h]:a},!0,!0,t):null,L=ia(a,(async()=>await b((async()=>{await T();const a=await(async()=>k(m(await d(aa(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await f(u,$))[h]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await b((async()=>{if(await T(),r(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},da="ColumnName",va="store",pa="json",Ea=va+"TableName",Aa=va+"Id"+da,ga=va+da,ma="autoLoadIntervalSeconds",Na="rowId"+da,ha="tableId",$a="tableName",Ca="deleteEmptyColumns",Oa="deleteEmptyTable",Ta={mode:pa,[ma]:1},fa={load:0,save:0,[$a]:e+"_values"},Sa=(a,t,e,n,s)=>{const i=X();return q(a,((a,o)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(o,c[0])||(s(o,c[0]),ta(i,o,c))})),i},ba=(a,t,n,s,i,r,c,y,u,d,v="getDb",p)=>{let E,A,g;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,h,T,f]=(a=>{const t=(a=>G(Ta,l(a)?{[Ea]:a}:a??{}))(a),n=t[ma];if(t.mode==pa){const a=t[Ea]??e;return[1,n,[a,t[Aa]??$,t[ga]??va],oa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(z(G(fa,o)),0,K(fa)),c=r[2],y=oa(c),u=oa(c);return[0,n,[Sa(s,{[ha]:null,[Na]:$},ha,(a=>P(u,a)),(a=>ra(y,a))),Sa(i,{[$a]:null,[Na]:$,[Ca]:0,[Oa]:0},$a,((a,t)=>P(u,t)),((a,t)=>ra(y,t))),r],y]})(t);return(N?wa:ua)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${C} ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==E&&e==A&&n==g||(null!=E&&a(),E=t,A=e,g=n)}catch{}}),1e3*h),n=()=>{E=A=g=null,o(t)},r=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,y,u,T,F(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(t,e,n,s,i)=>ba(t,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),s,i,(()=>0),3,e);export{Ia as createExpoSqlitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",$="WHERE",O="TABLE",T="ALTER "+O,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[N,h,C,$,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&y&&g(N)&&_(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const h=X(w,t),C=ia(P(h));if(g(N)||(_(w,t)?await u(E([n,...N],(async(e,s)=>{F(C,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...N])))),await u([...!d&&l?E(P(C),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):g(N)||await ca(a,t,n,B(e),[s,...c?E(q(e),c):q(e)],r)})));else if(g(N))_(w,t)&&await a(S+D(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=ra(t,w,y,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(r,c))[N]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(r,c,{[N]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m,C,$,O)=>{const[T,S,f,I]=ra(t,v,p,s,m,C,$,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>y?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,h))[N]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Ca="deleteEmptyColumns",$a="deleteEmptyTable",Oa={mode:va,[Aa]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,r)=>{const l=w(q(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,y,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",$="WHERE",O="TABLE",T="ALTER "+O,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[N,h,C,$,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&y&&g(N)&&_(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const h=X(w,t),C=ia(P(h));if(g(N)||(_(w,t)?await u(E([n,...N],(async(e,s)=>{F(C,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...N])))),await u([...!d&&l?E(P(C),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):g(N)||await ca(a,t,n,B(e),[s,...c?E(q(e),c):q(e)],r)})));else if(g(N))_(w,t)&&await a(S+D(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=ra(t,w,y,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(r,c))[N]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(r,c,{[N]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m,C,$,O)=>{const[T,S,f,I]=ra(t,v,p,s,m,C,$,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>y?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,h))[N]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Ca="deleteEmptyColumns",$a="deleteEmptyTable",Oa={mode:va,[Aa]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,r)=>{const l=w(q(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,y,u,d,v="getDb",p)=>{let E,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,O,T,S]=(a=>{const e=(a=>k(Oa,c(a)?{[pa]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??h,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(q(k(Ta,o)),0,z(Ta)),l=r[2],y=ia(l),u=ia(l);return[0,n,[Sa(s,{[Na]:null,[ma]:h},Na,(a=>_(u,a)),(a=>oa(y,a))),Sa(i,{[ha]:null,[ma]:h,[Ca]:0,[$a]:0},ha,((a,t)=>_(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(N?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==g&&n==A||(null!=E&&a(),E=t,g=e,A=n)}catch{}}),1e3*O),n=()=>{E=g=A=null,i(t)},r=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,y,u,T,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(a,t,e,n,s)=>fa(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,(()=>0),1,t,"getClient");export{Ia as createLibSqlPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",$="WHERE",O="TABLE",T="ALTER "+O,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[N,h,C,$,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&y&&g(N)&&_(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const h=X(w,t),C=ia(P(h));if(g(N)||(_(w,t)?await u(E([n,...N],(async(e,s)=>{F(C,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...N])))),await u([...!d&&l?E(P(C),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):g(N)||await ca(a,t,n,B(e),[s,...c?E(q(e),c):q(e)],r)})));else if(g(N))_(w,t)&&await a(S+D(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=ra(t,w,y,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(r,c))[N]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(r,c,{[N]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m,C,$,O)=>{const[T,S,f,I]=ra(t,v,p,s,m,C,$,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>y?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,h))[N]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Ca="deleteEmptyColumns",$a="deleteEmptyTable",Oa={mode:va,[Aa]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,r)=>{const l=w(q(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,y,u,d="getDb",
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",$="WHERE",O="TABLE",T="ALTER "+O,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(x(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(j(a),(a=>a==U.prototype||o(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[N,h,C,$,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();$(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(X(w,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(B(a??{}),(a=>oa(v,a)))));const N=P(v);if(!d&&y&&g(N)&&_(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const h=X(w,t),C=ia(P(h));if(g(N)||(_(w,t)?await u(E([n,...N],(async(e,s)=>{F(C,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(h,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(N,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...N])))),await u([...!d&&l?E(P(C),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(h,e))})):[]]),d)o(s)?await a(S+D(t)+$+" true"):await u(H(s,(async(e,s)=>{o(e)?await a(S+D(t)+$+D(n)+"=$1",[s]):g(N)||await ca(a,t,n,B(e),[s,...c?E(q(e),c):q(e)],r)})));else if(g(N))_(w,t)&&await a(S+D(t)+$+" true");else{const e=A(P(X(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(S+D(t)+$+D(n)+`NOT IN(${M(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=ra(t,w,y,s,v,p),h=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(r,c))[N]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(r,c,{[N]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),i(),h)},u);return h},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m,C,$,O)=>{const[T,S,f,I]=ra(t,v,p,s,m,C,$,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),b=async(a,t)=>y?await f(d,h,{[N]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await T();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,h))[N]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await T(),o(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,Na="tableId",ha="tableName",Ca="deleteEmptyColumns",$a="deleteEmptyTable",Oa={mode:va,[Aa]:1},Ta={load:0,save:0,[ha]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,r)=>{const l=w(q(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,l,y,u,d,v="getDb",p)=>{let E,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[N,O,T,S]=(a=>{const e=(a=>k(Oa,c(a)?{[pa]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??h,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(q(k(Ta,o)),0,z(Ta)),l=r[2],y=ia(l),u=ia(l);return[0,n,[Sa(s,{[Na]:null,[ma]:h},Na,(a=>_(u,a)),(a=>oa(y,a))),Sa(i,{[ha]:null,[ma]:h,[Ca]:0,[$a]:0},ha,((a,t)=>_(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(N?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==g&&n==A||(null!=E&&a(),E=t,g=e,A=n)}catch{}}),1e3*O),n=()=>{E=g=A=null,i(t)},r=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,y,u,T,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${$} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia=(a,t,e,n,s)=>fa(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,(()=>0),1,t,"getClient");export{Ia as createLibSqlPersister};
|
|
Binary file
|