tinybase 4.8.7 → 4.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-libsql.cjs +1 -1
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +15 -22
- package/lib/debug/persisters/persister-electric-sql.js +15 -22
- package/lib/debug/persisters/persister-expo-sqlite-next.js +15 -22
- package/lib/debug/persisters/persister-expo-sqlite.js +15 -22
- package/lib/debug/persisters/persister-libsql.js +15 -22
- package/lib/debug/persisters/persister-powersync.js +15 -22
- package/lib/debug/persisters/persister-sqlite-wasm.js +15 -22
- package/lib/debug/persisters/persister-sqlite3.js +15 -22
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-libsql.js +1 -1
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -1
- package/lib/es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-libsql.js +1 -1
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -1
- package/lib/persisters/persister-powersync.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/types/ui-react.d.ts +1 -1
- package/lib/types/with-schemas/ui-react.d.ts +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-libsql.js +1 -1
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -1
- package/lib/umd/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-libsql.js +1 -1
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -1
- package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/package.json +21 -21
- package/readme.md +1 -1
|
@@ -23,11 +23,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
23
23
|
const size = (arrayOrString) => arrayOrString.length;
|
|
24
24
|
const promiseAll = async (promises) => promise.all(promises);
|
|
25
25
|
|
|
26
|
-
const SINGLE_ROW_ID = '_';
|
|
27
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
28
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
29
|
-
const SELECT = 'SELECT';
|
|
30
|
-
|
|
31
26
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
32
27
|
const arrayMap = (array, cb) => array.map(cb);
|
|
33
28
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -88,6 +83,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
88
83
|
return map;
|
|
89
84
|
};
|
|
90
85
|
|
|
86
|
+
const SINGLE_ROW_ID = '_';
|
|
87
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
88
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
89
|
+
const SELECT = 'SELECT';
|
|
90
|
+
|
|
91
91
|
const setNew = (entryOrEntries) =>
|
|
92
92
|
new Set(
|
|
93
93
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -777,7 +777,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
777
777
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
778
778
|
};
|
|
779
779
|
|
|
780
|
-
const PRAGMA = '
|
|
780
|
+
const PRAGMA = 'pragma_';
|
|
781
781
|
const DATA_VERSION = 'data_version';
|
|
782
782
|
const SCHEMA_VERSION = 'schema_version';
|
|
783
783
|
const createSqlitePersister = (
|
|
@@ -795,7 +795,6 @@ const createSqlitePersister = (
|
|
|
795
795
|
let dataVersion;
|
|
796
796
|
let schemaVersion;
|
|
797
797
|
let totalChanges;
|
|
798
|
-
const CHANGES_COLUMN = 'c';
|
|
799
798
|
const [
|
|
800
799
|
isJson,
|
|
801
800
|
autoLoadIntervalSeconds,
|
|
@@ -805,23 +804,17 @@ const createSqlitePersister = (
|
|
|
805
804
|
const addPersisterListener = (listener) => [
|
|
806
805
|
startInterval(async () => {
|
|
807
806
|
try {
|
|
808
|
-
const
|
|
809
|
-
DATA_VERSION
|
|
810
|
-
|
|
811
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
812
|
-
SCHEMA_VERSION
|
|
813
|
-
];
|
|
814
|
-
const newTotalChanges = (
|
|
815
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
816
|
-
)[0][CHANGES_COLUMN];
|
|
807
|
+
const [{d, s, c}] = await cmd(
|
|
808
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
809
|
+
);
|
|
817
810
|
if (
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
811
|
+
d != (dataVersion ??= d) ||
|
|
812
|
+
s != (schemaVersion ??= s) ||
|
|
813
|
+
c != (totalChanges ??= c)
|
|
821
814
|
) {
|
|
822
815
|
listener();
|
|
823
|
-
dataVersion =
|
|
824
|
-
schemaVersion =
|
|
816
|
+
dataVersion = d;
|
|
817
|
+
schemaVersion = s;
|
|
825
818
|
}
|
|
826
819
|
} catch {}
|
|
827
820
|
}, autoLoadIntervalSeconds),
|
|
@@ -831,7 +824,7 @@ const createSqlitePersister = (
|
|
|
831
824
|
];
|
|
832
825
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
833
826
|
stopInterval(interval);
|
|
834
|
-
dataVersion = schemaVersion = null;
|
|
827
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
835
828
|
delUpdateListener(listeningHandle);
|
|
836
829
|
};
|
|
837
830
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
21
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
22
22
|
const promiseAll = async (promises) => promise.all(promises);
|
|
23
23
|
|
|
24
|
-
const SINGLE_ROW_ID = '_';
|
|
25
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
26
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
27
|
-
const SELECT = 'SELECT';
|
|
28
|
-
|
|
29
24
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
30
25
|
const arrayMap = (array, cb) => array.map(cb);
|
|
31
26
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -86,6 +81,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
86
81
|
return map;
|
|
87
82
|
};
|
|
88
83
|
|
|
84
|
+
const SINGLE_ROW_ID = '_';
|
|
85
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
86
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
87
|
+
const SELECT = 'SELECT';
|
|
88
|
+
|
|
89
89
|
const setNew = (entryOrEntries) =>
|
|
90
90
|
new Set(
|
|
91
91
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -775,7 +775,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
775
775
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
776
776
|
};
|
|
777
777
|
|
|
778
|
-
const PRAGMA = '
|
|
778
|
+
const PRAGMA = 'pragma_';
|
|
779
779
|
const DATA_VERSION = 'data_version';
|
|
780
780
|
const SCHEMA_VERSION = 'schema_version';
|
|
781
781
|
const createSqlitePersister = (
|
|
@@ -793,7 +793,6 @@ const createSqlitePersister = (
|
|
|
793
793
|
let dataVersion;
|
|
794
794
|
let schemaVersion;
|
|
795
795
|
let totalChanges;
|
|
796
|
-
const CHANGES_COLUMN = 'c';
|
|
797
796
|
const [
|
|
798
797
|
isJson,
|
|
799
798
|
autoLoadIntervalSeconds,
|
|
@@ -803,23 +802,17 @@ const createSqlitePersister = (
|
|
|
803
802
|
const addPersisterListener = (listener) => [
|
|
804
803
|
startInterval(async () => {
|
|
805
804
|
try {
|
|
806
|
-
const
|
|
807
|
-
DATA_VERSION
|
|
808
|
-
|
|
809
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
810
|
-
SCHEMA_VERSION
|
|
811
|
-
];
|
|
812
|
-
const newTotalChanges = (
|
|
813
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
814
|
-
)[0][CHANGES_COLUMN];
|
|
805
|
+
const [{d, s, c}] = await cmd(
|
|
806
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
807
|
+
);
|
|
815
808
|
if (
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
809
|
+
d != (dataVersion ??= d) ||
|
|
810
|
+
s != (schemaVersion ??= s) ||
|
|
811
|
+
c != (totalChanges ??= c)
|
|
819
812
|
) {
|
|
820
813
|
listener();
|
|
821
|
-
dataVersion =
|
|
822
|
-
schemaVersion =
|
|
814
|
+
dataVersion = d;
|
|
815
|
+
schemaVersion = s;
|
|
823
816
|
}
|
|
824
817
|
} catch {}
|
|
825
818
|
}, autoLoadIntervalSeconds),
|
|
@@ -829,7 +822,7 @@ const createSqlitePersister = (
|
|
|
829
822
|
];
|
|
830
823
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
831
824
|
stopInterval(interval);
|
|
832
|
-
dataVersion = schemaVersion = null;
|
|
825
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
833
826
|
delUpdateListener(listeningHandle);
|
|
834
827
|
};
|
|
835
828
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
21
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
22
22
|
const promiseAll = async (promises) => promise.all(promises);
|
|
23
23
|
|
|
24
|
-
const SINGLE_ROW_ID = '_';
|
|
25
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
26
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
27
|
-
const SELECT = 'SELECT';
|
|
28
|
-
|
|
29
24
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
30
25
|
const arrayMap = (array, cb) => array.map(cb);
|
|
31
26
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -86,6 +81,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
86
81
|
return map;
|
|
87
82
|
};
|
|
88
83
|
|
|
84
|
+
const SINGLE_ROW_ID = '_';
|
|
85
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
86
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
87
|
+
const SELECT = 'SELECT';
|
|
88
|
+
|
|
89
89
|
const setNew = (entryOrEntries) =>
|
|
90
90
|
new Set(
|
|
91
91
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -775,7 +775,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
775
775
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
776
776
|
};
|
|
777
777
|
|
|
778
|
-
const PRAGMA = '
|
|
778
|
+
const PRAGMA = 'pragma_';
|
|
779
779
|
const DATA_VERSION = 'data_version';
|
|
780
780
|
const SCHEMA_VERSION = 'schema_version';
|
|
781
781
|
const createSqlitePersister = (
|
|
@@ -793,7 +793,6 @@ const createSqlitePersister = (
|
|
|
793
793
|
let dataVersion;
|
|
794
794
|
let schemaVersion;
|
|
795
795
|
let totalChanges;
|
|
796
|
-
const CHANGES_COLUMN = 'c';
|
|
797
796
|
const [
|
|
798
797
|
isJson,
|
|
799
798
|
autoLoadIntervalSeconds,
|
|
@@ -803,23 +802,17 @@ const createSqlitePersister = (
|
|
|
803
802
|
const addPersisterListener = (listener) => [
|
|
804
803
|
startInterval(async () => {
|
|
805
804
|
try {
|
|
806
|
-
const
|
|
807
|
-
DATA_VERSION
|
|
808
|
-
|
|
809
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
810
|
-
SCHEMA_VERSION
|
|
811
|
-
];
|
|
812
|
-
const newTotalChanges = (
|
|
813
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
814
|
-
)[0][CHANGES_COLUMN];
|
|
805
|
+
const [{d, s, c}] = await cmd(
|
|
806
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
807
|
+
);
|
|
815
808
|
if (
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
809
|
+
d != (dataVersion ??= d) ||
|
|
810
|
+
s != (schemaVersion ??= s) ||
|
|
811
|
+
c != (totalChanges ??= c)
|
|
819
812
|
) {
|
|
820
813
|
listener();
|
|
821
|
-
dataVersion =
|
|
822
|
-
schemaVersion =
|
|
814
|
+
dataVersion = d;
|
|
815
|
+
schemaVersion = s;
|
|
823
816
|
}
|
|
824
817
|
} catch {}
|
|
825
818
|
}, autoLoadIntervalSeconds),
|
|
@@ -829,7 +822,7 @@ const createSqlitePersister = (
|
|
|
829
822
|
];
|
|
830
823
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
831
824
|
stopInterval(interval);
|
|
832
|
-
dataVersion = schemaVersion = null;
|
|
825
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
833
826
|
delUpdateListener(listeningHandle);
|
|
834
827
|
};
|
|
835
828
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
21
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
22
22
|
const promiseAll = async (promises) => promise.all(promises);
|
|
23
23
|
|
|
24
|
-
const SINGLE_ROW_ID = '_';
|
|
25
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
26
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
27
|
-
const SELECT = 'SELECT';
|
|
28
|
-
|
|
29
24
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
30
25
|
const arrayMap = (array, cb) => array.map(cb);
|
|
31
26
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -86,6 +81,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
86
81
|
return map;
|
|
87
82
|
};
|
|
88
83
|
|
|
84
|
+
const SINGLE_ROW_ID = '_';
|
|
85
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
86
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
87
|
+
const SELECT = 'SELECT';
|
|
88
|
+
|
|
89
89
|
const setNew = (entryOrEntries) =>
|
|
90
90
|
new Set(
|
|
91
91
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -775,7 +775,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
775
775
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
776
776
|
};
|
|
777
777
|
|
|
778
|
-
const PRAGMA = '
|
|
778
|
+
const PRAGMA = 'pragma_';
|
|
779
779
|
const DATA_VERSION = 'data_version';
|
|
780
780
|
const SCHEMA_VERSION = 'schema_version';
|
|
781
781
|
const createSqlitePersister = (
|
|
@@ -793,7 +793,6 @@ const createSqlitePersister = (
|
|
|
793
793
|
let dataVersion;
|
|
794
794
|
let schemaVersion;
|
|
795
795
|
let totalChanges;
|
|
796
|
-
const CHANGES_COLUMN = 'c';
|
|
797
796
|
const [
|
|
798
797
|
isJson,
|
|
799
798
|
autoLoadIntervalSeconds,
|
|
@@ -803,23 +802,17 @@ const createSqlitePersister = (
|
|
|
803
802
|
const addPersisterListener = (listener) => [
|
|
804
803
|
startInterval(async () => {
|
|
805
804
|
try {
|
|
806
|
-
const
|
|
807
|
-
DATA_VERSION
|
|
808
|
-
|
|
809
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
810
|
-
SCHEMA_VERSION
|
|
811
|
-
];
|
|
812
|
-
const newTotalChanges = (
|
|
813
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
814
|
-
)[0][CHANGES_COLUMN];
|
|
805
|
+
const [{d, s, c}] = await cmd(
|
|
806
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
807
|
+
);
|
|
815
808
|
if (
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
809
|
+
d != (dataVersion ??= d) ||
|
|
810
|
+
s != (schemaVersion ??= s) ||
|
|
811
|
+
c != (totalChanges ??= c)
|
|
819
812
|
) {
|
|
820
813
|
listener();
|
|
821
|
-
dataVersion =
|
|
822
|
-
schemaVersion =
|
|
814
|
+
dataVersion = d;
|
|
815
|
+
schemaVersion = s;
|
|
823
816
|
}
|
|
824
817
|
} catch {}
|
|
825
818
|
}, autoLoadIntervalSeconds),
|
|
@@ -829,7 +822,7 @@ const createSqlitePersister = (
|
|
|
829
822
|
];
|
|
830
823
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
831
824
|
stopInterval(interval);
|
|
832
|
-
dataVersion = schemaVersion = null;
|
|
825
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
833
826
|
delUpdateListener(listeningHandle);
|
|
834
827
|
};
|
|
835
828
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
21
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
22
22
|
const promiseAll = async (promises) => promise.all(promises);
|
|
23
23
|
|
|
24
|
-
const SINGLE_ROW_ID = '_';
|
|
25
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
26
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
27
|
-
const SELECT = 'SELECT';
|
|
28
|
-
|
|
29
24
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
30
25
|
const arrayMap = (array, cb) => array.map(cb);
|
|
31
26
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -86,6 +81,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
86
81
|
return map;
|
|
87
82
|
};
|
|
88
83
|
|
|
84
|
+
const SINGLE_ROW_ID = '_';
|
|
85
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
86
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
87
|
+
const SELECT = 'SELECT';
|
|
88
|
+
|
|
89
89
|
const setNew = (entryOrEntries) =>
|
|
90
90
|
new Set(
|
|
91
91
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -775,7 +775,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
775
775
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
776
776
|
};
|
|
777
777
|
|
|
778
|
-
const PRAGMA = '
|
|
778
|
+
const PRAGMA = 'pragma_';
|
|
779
779
|
const DATA_VERSION = 'data_version';
|
|
780
780
|
const SCHEMA_VERSION = 'schema_version';
|
|
781
781
|
const createSqlitePersister = (
|
|
@@ -793,7 +793,6 @@ const createSqlitePersister = (
|
|
|
793
793
|
let dataVersion;
|
|
794
794
|
let schemaVersion;
|
|
795
795
|
let totalChanges;
|
|
796
|
-
const CHANGES_COLUMN = 'c';
|
|
797
796
|
const [
|
|
798
797
|
isJson,
|
|
799
798
|
autoLoadIntervalSeconds,
|
|
@@ -803,23 +802,17 @@ const createSqlitePersister = (
|
|
|
803
802
|
const addPersisterListener = (listener) => [
|
|
804
803
|
startInterval(async () => {
|
|
805
804
|
try {
|
|
806
|
-
const
|
|
807
|
-
DATA_VERSION
|
|
808
|
-
|
|
809
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
810
|
-
SCHEMA_VERSION
|
|
811
|
-
];
|
|
812
|
-
const newTotalChanges = (
|
|
813
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
814
|
-
)[0][CHANGES_COLUMN];
|
|
805
|
+
const [{d, s, c}] = await cmd(
|
|
806
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
807
|
+
);
|
|
815
808
|
if (
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
809
|
+
d != (dataVersion ??= d) ||
|
|
810
|
+
s != (schemaVersion ??= s) ||
|
|
811
|
+
c != (totalChanges ??= c)
|
|
819
812
|
) {
|
|
820
813
|
listener();
|
|
821
|
-
dataVersion =
|
|
822
|
-
schemaVersion =
|
|
814
|
+
dataVersion = d;
|
|
815
|
+
schemaVersion = s;
|
|
823
816
|
}
|
|
824
817
|
} catch {}
|
|
825
818
|
}, autoLoadIntervalSeconds),
|
|
@@ -829,7 +822,7 @@ const createSqlitePersister = (
|
|
|
829
822
|
];
|
|
830
823
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
831
824
|
stopInterval(interval);
|
|
832
|
-
dataVersion = schemaVersion = null;
|
|
825
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
833
826
|
delUpdateListener(listeningHandle);
|
|
834
827
|
};
|
|
835
828
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -22,11 +22,6 @@ const size = (arrayOrString) => arrayOrString.length;
|
|
|
22
22
|
const promiseNew = (resolver) => new promise(resolver);
|
|
23
23
|
const promiseAll = async (promises) => promise.all(promises);
|
|
24
24
|
|
|
25
|
-
const SINGLE_ROW_ID = '_';
|
|
26
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
27
|
-
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
28
|
-
const SELECT = 'SELECT';
|
|
29
|
-
|
|
30
25
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
31
26
|
const arrayMap = (array, cb) => array.map(cb);
|
|
32
27
|
const arrayIsEmpty = (array) => size(array) == 0;
|
|
@@ -87,6 +82,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
|
|
|
87
82
|
return map;
|
|
88
83
|
};
|
|
89
84
|
|
|
85
|
+
const SINGLE_ROW_ID = '_';
|
|
86
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
87
|
+
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
88
|
+
const SELECT = 'SELECT';
|
|
89
|
+
|
|
90
90
|
const setNew = (entryOrEntries) =>
|
|
91
91
|
new Set(
|
|
92
92
|
isArray(entryOrEntries) || isUndefined(entryOrEntries)
|
|
@@ -776,7 +776,7 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
776
776
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
777
777
|
};
|
|
778
778
|
|
|
779
|
-
const PRAGMA = '
|
|
779
|
+
const PRAGMA = 'pragma_';
|
|
780
780
|
const DATA_VERSION = 'data_version';
|
|
781
781
|
const SCHEMA_VERSION = 'schema_version';
|
|
782
782
|
const createSqlitePersister = (
|
|
@@ -794,7 +794,6 @@ const createSqlitePersister = (
|
|
|
794
794
|
let dataVersion;
|
|
795
795
|
let schemaVersion;
|
|
796
796
|
let totalChanges;
|
|
797
|
-
const CHANGES_COLUMN = 'c';
|
|
798
797
|
const [
|
|
799
798
|
isJson,
|
|
800
799
|
autoLoadIntervalSeconds,
|
|
@@ -804,23 +803,17 @@ const createSqlitePersister = (
|
|
|
804
803
|
const addPersisterListener = (listener) => [
|
|
805
804
|
startInterval(async () => {
|
|
806
805
|
try {
|
|
807
|
-
const
|
|
808
|
-
DATA_VERSION
|
|
809
|
-
|
|
810
|
-
const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
|
|
811
|
-
SCHEMA_VERSION
|
|
812
|
-
];
|
|
813
|
-
const newTotalChanges = (
|
|
814
|
-
await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
|
|
815
|
-
)[0][CHANGES_COLUMN];
|
|
806
|
+
const [{d, s, c}] = await cmd(
|
|
807
|
+
`SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
808
|
+
);
|
|
816
809
|
if (
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
810
|
+
d != (dataVersion ??= d) ||
|
|
811
|
+
s != (schemaVersion ??= s) ||
|
|
812
|
+
c != (totalChanges ??= c)
|
|
820
813
|
) {
|
|
821
814
|
listener();
|
|
822
|
-
dataVersion =
|
|
823
|
-
schemaVersion =
|
|
815
|
+
dataVersion = d;
|
|
816
|
+
schemaVersion = s;
|
|
824
817
|
}
|
|
825
818
|
} catch {}
|
|
826
819
|
}, autoLoadIntervalSeconds),
|
|
@@ -830,7 +823,7 @@ const createSqlitePersister = (
|
|
|
830
823
|
];
|
|
831
824
|
const delPersisterListener = ([interval, listeningHandle]) => {
|
|
832
825
|
stopInterval(interval);
|
|
833
|
-
dataVersion = schemaVersion = null;
|
|
826
|
+
dataVersion = schemaVersion = totalChanges = null;
|
|
834
827
|
delUpdateListener(listeningHandle);
|
|
835
828
|
};
|
|
836
829
|
return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,d=e=>null==e,a=(e,n,l)=>d(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,v=(e,n,l)=>e.slice(n,l),s=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f=
|
|
1
|
+
const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,d=e=>null==e,a=(e,n,l)=>d(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,v=(e,n,l)=>e.slice(n,l),s=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f=(e,n="")=>e.join(n),p=(e,n)=>e.map(n),h=e=>0==s(e),m=(e,n)=>e.filter(n),E=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},A=(e,n)=>null==e?void 0:e.delete(n),w=Object,N=e=>w.getPrototypeOf(e),T=w.keys,b=w.freeze,L=(e=[])=>w.fromEntries(e),R=(...e)=>w.assign({},...e),C=(e,n)=>p(w.entries(e),(([e,l])=>n(l,e))),S=e=>w.values(e),x=e=>s(T(e)),g=e=>(e=>!d(e)&&a(N(e),(e=>e==w.prototype||d(N(e))),(()=>!0)))(e)&&0==x(e),I=e=>new Map(e),D=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},$=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var l;return p([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},j=(e,n,l)=>d(l)?(A(e,n),e):null==e?void 0:e.set(n,l),F=(e,n,l)=>(O(e,n)||j(e,n,l()),$(e,n)),M=(e,n,l,t=j)=>(C(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!d(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B="_",H="_id",J=e=>`"${e.replace(/"/g,'""')}"`,U="SELECT",Y=e=>new Set(Array.isArray(e)||d(e)?e:[e]),k=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,W=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,V=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,q=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&V(e,l,n[l]);if(W)for(var l of W(n))K.call(n,l)&&V(e,l,n[l]);return e},Q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const X="TABLE",Z="ALTER "+X,ee="DELETE FROM",ne=U+"*FROM",le="FROM pragma_table_",te="WHERE",oe=(e,n,o,r)=>{const i=I();return[()=>Q(void 0,null,(function*(){return M(i,L(yield y(p(yield e("SELECT name "+le+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ie(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,L(p(yield e(U+" name,type "+le+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>j(i,n,M(F(i,n,I),l,((e,n,l)=>{l!=$(e,n)&&j(e,n,l)}),((e,n)=>j(e,n))))),((e,n)=>j(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!d($($(i,e),n)))(n,l)?L(m(p(yield e(ne+J(n)),(e=>{return[e[l],(n=q({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!d(e)&&!g(n)))):{}})),(n,o,u,a,c,v=!1)=>Q(void 0,null,(function*(){const s=Y();C(null!=u?u:{},(e=>p(T(null!=e?e:{}),(e=>k(s,e)))));const w=P(s);if(!v&&c&&h(w)&&O(i,n))return yield e("DROP "+X+J(n)),void j(i,n);if(h(w)||O(i,n)){const t=$(i,n),r=Y(D(t));yield y([...p(w,(o=>Q(void 0,null,(function*(){A(r,o)||(yield e(Z+J(n)+"ADD"+J(o)),j(t,o,l))})))),...!v&&a?p(P(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(Z+J(n)+"DROP"+J(l)),j(t,l))})))):[]])}else yield e("CREATE "+X+J(n)+"("+J(o)+` PRIMARY KEY ON CONFLICT REPLACE${f(p(w,(e=>t+J(e))))});`),j(i,n,I([[o,l],...p(w,(e=>[e,l]))]));if(v)d(u)?yield e(ee+J(n)+te+" 1"):yield y(C(u,((l,t)=>Q(void 0,null,(function*(){d(l)?yield e(ee+J(n)+te+J(o)+"=?",[t]):h(w)||(yield re(e,n,o,T(l),[t,...S(l)],r))})))));else if(h(w))O(i,n)&&(yield e(ee+J(n)+te+" 1"));else{const l=m(D($(i,n)),(e=>e!=o)),t=[],d=[];C(null!=u?u:{},((e,n)=>{E(t,n,...p(l,(n=>null==e?void 0:e[n]))),E(d,n)})),yield re(e,n,o,l,t,r),yield e(ee+J(n)+te+J(o)+"NOT IN("+ie(d)+")",d)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},re=(e,n,o,i,u,d=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(d?l:"OR REPLACE ")+"INTO"+J(n)+"("+J(o)+f(p(i,(e=>t+J(e))))+")VALUES"+v(r(`,(?${r(",?",s(i))})`,s(u)/(s(i)+1)),1)+(d?"ON CONFLICT("+J(o)+")DO UPDATE SET"+f(p(i,(e=>J(e)+"=excluded."+J(e))),t):l),p(u,(e=>null!=e?e:null)))})),ie=e=>f(p(e,(()=>"?")),t),ue=JSON.parse;var de=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ae=I(),ce=I(),ve=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let v,s,y,f=0,p=0;F(ae,c,(()=>0)),F(ce,c,(()=>[]));const h=e=>de(void 0,null,(function*(){return 2!=f&&(f=1,yield m.schedule((()=>de(void 0,null,(function*(){yield e(),f=0}))))),m})),m={load:(l,t)=>de(void 0,null,(function*(){return yield h((()=>de(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>de(void 0,[...l],(function*(l={},o={}){return m.stopAutoLoad(),yield m.load(l,o),p=1,y=t(((l,t)=>de(void 0,null,(function*(){if(t){const n=t();yield h((()=>de(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>de(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),m})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),m),save:n=>de(void 0,null,(function*(){return 1!=f&&(f=2,yield m.schedule((()=>de(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),m})),startAutoSave:()=>de(void 0,null,(function*(){return yield m.stopAutoSave().save(),v=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();g(l)&&g(t)||m.save((()=>[l,t]))})),m})),stopAutoSave:()=>(a(v,e.delListener),v=void 0,m),schedule:(...e)=>de(void 0,null,(function*(){return E($(ce,c),...e),yield de(void 0,null,(function*(){if(!$(ae,c)){for(j(ae,c,1);!d((e=$(ce,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}j(ae,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),b(m)};var se=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ye="store",fe=(e,n,l,t,o,[r],i,u,d,a)=>{const[c,v,s,y]=oe(n,i,o,a);return ve(e,(()=>se(void 0,null,(function*(){return yield y((()=>se(void 0,null,(function*(){var e,n;return yield c(),ue(null!=(n=null==(e=(yield v(r,H))[B])?void 0:e[ye])?n:"null")}))))}))),(e=>se(void 0,null,(function*(){return yield y((()=>se(void 0,null,(function*(){var n,l;yield c(),yield s(r,H,{[B]:{[ye]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[d,u],u)};var pe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const he=(e,n,l,t,o,[r,i,[u,a,c]],v,s,f,p)=>{const[h,E,O,P]=oe(n,v,o,p),A=(e,n)=>pe(void 0,null,(function*(){return yield y(_(i,((l,t)=>pe(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield O(l,t,u,o,r,n))})))))})),w=(e,n)=>pe(void 0,null,(function*(){return a?yield O(c,H,{[B]:e},!0,!0,n):null}));return ve(e,(()=>pe(void 0,null,(function*(){return yield P((()=>pe(void 0,null,(function*(){yield h();const e=yield pe(void 0,null,(function*(){return L(m(yield y(_(r,((e,n)=>pe(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!g(e[1]))))})),n=yield pe(void 0,null,(function*(){return u?(yield E(c,H))[B]:{}}));return g(e)&&d(n)?void 0:[e,n]}))))}))),((e,n)=>pe(void 0,null,(function*(){return yield P((()=>pe(void 0,null,(function*(){if(yield h(),d(n)){const[n,l]=e();yield A(n),yield w(l)}else{const[e,l]=n();yield A(e,!0),yield w(l,!0)}}))))}))),l,t,o,[f,s],s)},me="json",Ee="autoLoadIntervalSeconds",Oe="rowIdColumnName",Pe="tableId",Ae="tableName",we={mode:me,[Ee]:1},Ne={load:0,save:0,[Ae]:n+"_values"},Te=(e,n,l,t)=>{const o=I();return C(e,((e,r)=>{const i=v(S(R(n,c(e)?{[l]:e}:e)),0,x(n));d(i[0])||t(r,i[0])||j(o,r,i)})),o};var be=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma_",Re="data_version",Ce="schema_version",Se=(e,l,t,o,r,i,d,a,s="getDb",y)=>{let f,p,h;const[m,E,O,A]=(e=>{const l=(e=>R(we,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==me){const{storeTableName:e=n}=l;return[1,t,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(S(R(Ne,i)),0,x(Ne)),d=u[2],a=Y(d);return[0,t,[Te(o,{[Pe]:null,[Oe]:H},Pe,(e=>k(a,e)&&e==d)),Te(r,{[Ae]:null,[Oe]:H,deleteEmptyColumns:0,deleteEmptyTable:0},Ae,((e,n)=>k(a,n)&&n==d)),u],a]})(l);return(m?fe:he)(e,i?(e,n)=>be(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>be(void 0,null,(function*(){try{const[{d:n,s:l,c:o}]=yield t(`SELECT ${Re} d,${Ce} s,TOTAL_CHANGES() c FROM ${Le}${Re} JOIN ${Le}${Ce}`);n==(null!=f?f:f=n)&&l==(null!=p?p:p=l)&&o==(null!=h?h:h=o)||(e(),f=n,p=l)}catch(e){}})),l=E,n(),setInterval(n,1e3*l)),o((n=>A.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=p=h=null,r(n)}),d,O,P(A),a,s,y)},xe=(e,n,l,t,o)=>Se(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield n.execO(e,l)},new Promise(((e,n)=>{var l=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onUpdate(((n,l,t)=>e(t)))),(e=>e()),t,o,n);export{xe as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,s=(e,n,l)=>e.slice(n,l),v=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f=
|
|
1
|
+
const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,s=(e,n,l)=>e.slice(n,l),v=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f=(e,n="")=>e.join(n),h=(e,n)=>e.map(n),p=e=>0==v(e),m=(e,n)=>e.filter(n),E=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),A=Object,w=e=>A.getPrototypeOf(e),T=A.keys,N=A.freeze,C=(e=[])=>A.fromEntries(e),L=(...e)=>A.assign({},...e),R=(e,n)=>h(A.entries(e),(([e,l])=>n(l,e))),g=e=>A.values(e),S=e=>v(T(e)),x=e=>(e=>!a(e)&&d(w(e),(e=>e==A.prototype||a(w(e))),(()=>!0)))(e)&&0==S(e),I=e=>new Map(e),D=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},$=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var l;return h([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},j=(e,n,l)=>a(l)?(b(e,n),e):null==e?void 0:e.set(n,l),F=(e,n,l)=>(O(e,n)||j(e,n,l()),$(e,n)),M=(e,n,l,t=j)=>(R(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B="_",H="_id",J=e=>`"${e.replace(/"/g,'""')}"`,Y="SELECT",k=e=>new Set(Array.isArray(e)||a(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var U=Object.defineProperty,W=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))q.call(n,l)&&K(e,l,n[l]);if(W)for(var l of W(n))z.call(n,l)&&K(e,l,n[l]);return e},Q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const X="TABLE",Z="ALTER "+X,ee="DELETE FROM",ne=Y+"*FROM",le="FROM pragma_table_",te="WHERE",oe=(e,n,o,r)=>{const i=I();return[()=>Q(void 0,null,(function*(){return M(i,C(yield y(h(yield e("SELECT name "+le+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ie(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,C(h(yield e(Y+" name,type "+le+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>j(i,n,M(F(i,n,I),l,((e,n,l)=>{l!=$(e,n)&&j(e,n,l)}),((e,n)=>j(e,n))))),((e,n)=>j(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a($($(i,e),n)))(n,l)?C(m(h(yield e(ne+J(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!x(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=k();R(null!=u?u:{},(e=>h(T(null!=e?e:{}),(e=>G(v,e)))));const A=P(v);if(!s&&c&&p(A)&&O(i,n))return yield e("DROP "+X+J(n)),void j(i,n);if(p(A)||O(i,n)){const t=$(i,n),r=k(D(t));yield y([...h(A,(o=>Q(void 0,null,(function*(){b(r,o)||(yield e(Z+J(n)+"ADD"+J(o)),j(t,o,l))})))),...!s&&d?h(P(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(Z+J(n)+"DROP"+J(l)),j(t,l))})))):[]])}else yield e("CREATE "+X+J(n)+"("+J(o)+` PRIMARY KEY ON CONFLICT REPLACE${f(h(A,(e=>t+J(e))))});`),j(i,n,I([[o,l],...h(A,(e=>[e,l]))]));if(s)a(u)?yield e(ee+J(n)+te+" 1"):yield y(R(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e(ee+J(n)+te+J(o)+"=?",[t]):p(A)||(yield re(e,n,o,T(l),[t,...g(l)],r))})))));else if(p(A))O(i,n)&&(yield e(ee+J(n)+te+" 1"));else{const l=m(D($(i,n)),(e=>e!=o)),t=[],a=[];R(null!=u?u:{},((e,n)=>{E(t,n,...h(l,(n=>null==e?void 0:e[n]))),E(a,n)})),yield re(e,n,o,l,t,r),yield e(ee+J(n)+te+J(o)+"NOT IN("+ie(a)+")",a)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},re=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+J(n)+"("+J(o)+f(h(i,(e=>t+J(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+J(o)+")DO UPDATE SET"+f(h(i,(e=>J(e)+"=excluded."+J(e))),t):l),h(u,(e=>null!=e?e:null)))})),ie=e=>f(h(e,(()=>"?")),t),ue=JSON.parse;var ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de=I(),ce=I(),se=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,h=0;F(de,c,(()=>0)),F(ce,c,(()=>[]));const p=e=>ae(void 0,null,(function*(){return 2!=f&&(f=1,yield m.schedule((()=>ae(void 0,null,(function*(){yield e(),f=0}))))),m})),m={load:(l,t)=>ae(void 0,null,(function*(){return yield p((()=>ae(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>ae(void 0,[...l],(function*(l={},o={}){return m.stopAutoLoad(),yield m.load(l,o),h=1,y=t(((l,t)=>ae(void 0,null,(function*(){if(t){const n=t();yield p((()=>ae(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield p((()=>ae(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),m})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),m),save:n=>ae(void 0,null,(function*(){return 1!=f&&(f=2,yield m.schedule((()=>ae(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),m})),startAutoSave:()=>ae(void 0,null,(function*(){return yield m.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();x(l)&&x(t)||m.save((()=>[l,t]))})),m})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,m),schedule:(...e)=>ae(void 0,null,(function*(){return E($(ce,c),...e),yield ae(void 0,null,(function*(){if(!$(de,c)){for(j(de,c,1);!a((e=$(ce,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}j(de,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),N(m)};var ve=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ye="store",fe=(e,n,l,t,o,[r],i,u,a,d)=>{const[c,s,v,y]=oe(n,i,o,d);return se(e,(()=>ve(void 0,null,(function*(){return yield y((()=>ve(void 0,null,(function*(){var e,n;return yield c(),ue(null!=(n=null==(e=(yield s(r,H))[B])?void 0:e[ye])?n:"null")}))))}))),(e=>ve(void 0,null,(function*(){return yield y((()=>ve(void 0,null,(function*(){var n,l;yield c(),yield v(r,H,{[B]:{[ye]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var he=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const pe=(e,n,l,t,o,[r,i,[u,d,c]],s,v,f,h)=>{const[p,E,O,P]=oe(n,s,o,h),b=(e,n)=>he(void 0,null,(function*(){return yield y(_(i,((l,t)=>he(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield O(l,t,u,o,r,n))})))))})),A=(e,n)=>he(void 0,null,(function*(){return d?yield O(c,H,{[B]:e},!0,!0,n):null}));return se(e,(()=>he(void 0,null,(function*(){return yield P((()=>he(void 0,null,(function*(){yield p();const e=yield he(void 0,null,(function*(){return C(m(yield y(_(r,((e,n)=>he(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!x(e[1]))))})),n=yield he(void 0,null,(function*(){return u?(yield E(c,H))[B]:{}}));return x(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>he(void 0,null,(function*(){return yield P((()=>he(void 0,null,(function*(){if(yield p(),a(n)){const[n,l]=e();yield b(n),yield A(l)}else{const[e,l]=n();yield b(e,!0),yield A(l,!0)}}))))}))),l,t,o,[f,v],v)},me="json",Ee="autoLoadIntervalSeconds",Oe="rowIdColumnName",Pe="tableId",be="tableName",Ae={mode:me,[Ee]:1},we={load:0,save:0,[be]:n+"_values"},Te=(e,n,l,t)=>{const o=I();return R(e,((e,r)=>{const i=s(g(L(n,c(e)?{[l]:e}:e)),0,S(n));a(i[0])||t(r,i[0])||j(o,r,i)})),o};var Ne=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Ce="pragma_",Le="data_version",Re="schema_version",ge=(e,l,t,o,r,i,a,d,v="getDb",y)=>{let f,h,p;const[m,E,O,b]=(e=>{const l=(e=>L(Ae,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==me){const{storeTableName:e=n}=l;return[1,t,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=s(g(L(we,i)),0,S(we)),a=u[2],d=k(a);return[0,t,[Te(o,{[Pe]:null,[Oe]:H},Pe,(e=>G(d,e)&&e==a)),Te(r,{[be]:null,[Oe]:H,deleteEmptyColumns:0,deleteEmptyTable:0},be,((e,n)=>G(d,n)&&n==a)),u],d]})(l);return(m?fe:pe)(e,i?(e,n)=>Ne(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Ne(void 0,null,(function*(){try{const[{d:n,s:l,c:o}]=yield t(`SELECT ${Le} d,${Re} s,TOTAL_CHANGES() c FROM ${Ce}${Le} JOIN ${Ce}${Re}`);n==(null!=f?f:f=n)&&l==(null!=h?h:h=l)&&o==(null!=p?p:p=o)||(e(),f=n,h=l)}catch(e){}})),l=E,n(),setInterval(n,1e3*l)),o((n=>b.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=h=p=null,r(n)}),a,O,P(b),d,v,y)},Se=(e,n,l,t,o)=>ge(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield n.db.raw({sql:e,args:l})},new Promise(((e,n)=>{var l=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.notifier.subscribeToDataChanges((l=>{return t=({tablename:n})=>e(n),n.notifier.alias(l).forEach(t);var t}))),(e=>e()),t,o,n,"getElectricClient");export{Se as createElectricSqlPersister};
|
|
Binary file
|