tinybase 4.8.6 → 4.8.8

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.
Files changed (108) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  4. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  6. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  8. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  12. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  18. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  19. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  20. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  21. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  22. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  33. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +15 -22
  34. package/lib/debug/persisters/persister-electric-sql.js +15 -22
  35. package/lib/debug/persisters/persister-expo-sqlite-next.js +15 -22
  36. package/lib/debug/persisters/persister-expo-sqlite.js +15 -22
  37. package/lib/debug/persisters/persister-libsql.js +15 -22
  38. package/lib/debug/persisters/persister-powersync.js +15 -22
  39. package/lib/debug/persisters/persister-sqlite-wasm.js +15 -22
  40. package/lib/debug/persisters/persister-sqlite3.js +15 -22
  41. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  42. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  43. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  44. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  45. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  46. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  47. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  48. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  49. package/lib/es6/persisters/persister-libsql.js +1 -1
  50. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  51. package/lib/es6/persisters/persister-powersync.js +1 -1
  52. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  53. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  54. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  55. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  56. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  57. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  58. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  59. package/lib/persisters/persister-electric-sql.js +1 -1
  60. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  61. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  62. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  63. package/lib/persisters/persister-expo-sqlite.js +1 -1
  64. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  65. package/lib/persisters/persister-libsql.js +1 -1
  66. package/lib/persisters/persister-libsql.js.gz +0 -0
  67. package/lib/persisters/persister-powersync.js +1 -1
  68. package/lib/persisters/persister-powersync.js.gz +0 -0
  69. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  70. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  71. package/lib/persisters/persister-sqlite3.js +1 -1
  72. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  73. package/lib/types/ui-react.d.ts +1 -1
  74. package/lib/types/with-schemas/ui-react.d.ts +1 -1
  75. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  76. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  77. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  78. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  79. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  80. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  81. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  82. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  83. package/lib/umd/persisters/persister-libsql.js +1 -1
  84. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  85. package/lib/umd/persisters/persister-powersync.js +1 -1
  86. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  87. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  88. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  89. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  90. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  91. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  92. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  93. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  94. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  95. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  96. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  97. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  98. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  99. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  100. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  101. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  102. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  103. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  104. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  105. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  106. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  107. package/package.json +24 -24
  108. 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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
819
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
820
- newTotalChanges != (totalChanges ??= newTotalChanges)
811
+ d != (dataVersion ??= d) ||
812
+ s != (schemaVersion ??= s) ||
813
+ c != (totalChanges ??= c)
821
814
  ) {
822
815
  listener();
823
- dataVersion = newDataVersion;
824
- schemaVersion = newSchemaVersion;
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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
817
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
818
- newTotalChanges != (totalChanges ??= newTotalChanges)
809
+ d != (dataVersion ??= d) ||
810
+ s != (schemaVersion ??= s) ||
811
+ c != (totalChanges ??= c)
819
812
  ) {
820
813
  listener();
821
- dataVersion = newDataVersion;
822
- schemaVersion = newSchemaVersion;
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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
817
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
818
- newTotalChanges != (totalChanges ??= newTotalChanges)
809
+ d != (dataVersion ??= d) ||
810
+ s != (schemaVersion ??= s) ||
811
+ c != (totalChanges ??= c)
819
812
  ) {
820
813
  listener();
821
- dataVersion = newDataVersion;
822
- schemaVersion = newSchemaVersion;
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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
817
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
818
- newTotalChanges != (totalChanges ??= newTotalChanges)
809
+ d != (dataVersion ??= d) ||
810
+ s != (schemaVersion ??= s) ||
811
+ c != (totalChanges ??= c)
819
812
  ) {
820
813
  listener();
821
- dataVersion = newDataVersion;
822
- schemaVersion = newSchemaVersion;
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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
817
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
818
- newTotalChanges != (totalChanges ??= newTotalChanges)
809
+ d != (dataVersion ??= d) ||
810
+ s != (schemaVersion ??= s) ||
811
+ c != (totalChanges ??= c)
819
812
  ) {
820
813
  listener();
821
- dataVersion = newDataVersion;
822
- schemaVersion = newSchemaVersion;
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 = '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 newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
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
- newDataVersion != (dataVersion ??= newDataVersion) ||
818
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
819
- newTotalChanges != (totalChanges ??= newTotalChanges)
810
+ d != (dataVersion ??= d) ||
811
+ s != (schemaVersion ??= s) ||
812
+ c != (totalChanges ??= c)
820
813
  ) {
821
814
  listener();
822
- dataVersion = newDataVersion;
823
- schemaVersion = newSchemaVersion;
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="_",p="_id",h=e=>`"${e.replace(/"/g,'""')}"`,m="SELECT",E=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),P=e=>0==s(e),A=(e,n)=>e.filter(n),w=(e,...n)=>e.push(...n),b=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},T=(e,n)=>null==e?void 0:e.delete(n),L=Object,R=e=>L.getPrototypeOf(e),x=L.keys,C=L.freeze,S=(e=[])=>L.fromEntries(e),g=(...e)=>L.assign({},...e),I=(e,n)=>O(L.entries(e),(([e,l])=>n(l,e))),D=e=>L.values(e),_=e=>s(x(e)),j=e=>(e=>!d(e)&&a(R(e),(e=>e==L.prototype||d(R(e))),(()=>!0)))(e)&&0==_(e),F=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},B=(e,n)=>null==e?void 0:e.get(n),H=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},U=(e,n,l)=>d(l)?(T(e,n),e):null==e?void 0:e.set(n,l),Y=(e,n,l)=>(b(e,n)||U(e,n,l()),B(e,n)),$=(e,n,l,t=U)=>(I(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),k=e=>new Set(Array.isArray(e)||d(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var J=Object.defineProperty,W=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,V=(e,n,l)=>n in e?J(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=m+"*FROM",le="FROM pragma_table_",te="WHERE",oe=(e,n,o,r)=>{const i=F();return[()=>Q(void 0,null,(function*(){return $(i,S(yield y(O(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,S(O(yield e(m+" name,type "+le+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>U(i,n,$(Y(i,n,F),l,((e,n,l)=>{l!=B(e,n)&&U(e,n,l)}),((e,n)=>U(e,n))))),((e,n)=>U(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!d(B(B(i,e),n)))(n,l)?S(A(O(yield e(ne+h(n)),(e=>{return[e[l],(n=q({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!d(e)&&!j(n)))):{}})),(n,o,u,a,c,v=!1)=>Q(void 0,null,(function*(){const s=k();I(null!=u?u:{},(e=>O(x(null!=e?e:{}),(e=>G(s,e)))));const f=N(s);if(!v&&c&&P(f)&&b(i,n))return yield e("DROP "+X+h(n)),void U(i,n);if(P(f)||b(i,n)){const t=B(i,n),r=k(M(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){T(r,o)||(yield e(Z+h(n)+"ADD"+h(o)),U(t,o,l))})))),...!v&&a?O(N(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(Z+h(n)+"DROP"+h(l)),U(t,l))})))):[]])}else yield e("CREATE "+X+h(n)+"("+h(o)+` PRIMARY KEY ON CONFLICT REPLACE${E(O(f,(e=>t+h(e))))});`),U(i,n,F([[o,l],...O(f,(e=>[e,l]))]));if(v)d(u)?yield e(ee+h(n)+te+" 1"):yield y(I(u,((l,t)=>Q(void 0,null,(function*(){d(l)?yield e(ee+h(n)+te+h(o)+"=?",[t]):P(f)||(yield re(e,n,o,x(l),[t,...D(l)],r))})))));else if(P(f))b(i,n)&&(yield e(ee+h(n)+te+" 1"));else{const l=A(M(B(i,n)),(e=>e!=o)),t=[],d=[];I(null!=u?u:{},((e,n)=>{w(t,n,...O(l,(n=>null==e?void 0:e[n]))),w(d,n)})),yield re(e,n,o,l,t,r),yield e(ee+h(n)+te+h(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"+h(n)+"("+h(o)+E(O(i,(e=>t+h(e))))+")VALUES"+v(r(`,(?${r(",?",s(i))})`,s(u)/(s(i)+1)),1)+(d?"ON CONFLICT("+h(o)+")DO UPDATE SET"+E(O(i,(e=>h(e)+"=excluded."+h(e))),t):l),O(u,(e=>null!=e?e:null)))})),ie=e=>E(O(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=F(),ce=F(),ve=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let v,s,y,f=0,p=0;Y(ae,c,(()=>0)),Y(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();j(l)&&j(t)||m.save((()=>[l,t]))})),m})),stopAutoSave:()=>(a(v,e.delListener),v=void 0,m),schedule:(...e)=>de(void 0,null,(function*(){return w(B(ce,c),...e),yield de(void 0,null,(function*(){if(!B(ae,c)){for(U(ae,c,1);!d((e=B(ce,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}U(ae,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),C(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,p))[f])?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,p,{[f]:{[ye]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?L.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,h,m)=>{const[E,O,P,w]=oe(n,v,o,m),b=(e,n)=>pe(void 0,null,(function*(){return yield y(H(i,((l,t)=>pe(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield P(l,t,u,o,r,n))})))))})),N=(e,n)=>pe(void 0,null,(function*(){return a?yield P(c,p,{[f]:e},!0,!0,n):null}));return ve(e,(()=>pe(void 0,null,(function*(){return yield w((()=>pe(void 0,null,(function*(){yield E();const e=yield pe(void 0,null,(function*(){return S(A(yield y(H(r,((e,n)=>pe(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!j(e[1]))))})),n=yield pe(void 0,null,(function*(){return u?(yield O(c,p))[f]:{}}));return j(e)&&d(n)?void 0:[e,n]}))))}))),((e,n)=>pe(void 0,null,(function*(){return yield w((()=>pe(void 0,null,(function*(){if(yield E(),d(n)){const[n,l]=e();yield b(n),yield N(l)}else{const[e,l]=n();yield b(e,!0),yield N(l,!0)}}))))}))),l,t,o,[h,s],s)},me="json",Ee="autoLoadIntervalSeconds",Oe="rowIdColumnName",Pe="tableId",Ae="tableName",we={mode:me,[Ee]:1},be={load:0,save:0,[Ae]:n+"_values"},Ne=(e,n,l,t)=>{const o=F();return I(e,((e,r)=>{const i=v(D(g(n,c(e)?{[l]:e}:e)),0,_(n));d(i[0])||t(r,i[0])||U(o,r,i)})),o};var Te=(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",xe="schema_version",Ce=(e,l,t,o,r,i,d,a,s="getDb",y)=>{let f,h,E;const[O,P,A,w]=(e=>{const l=(e=>g(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],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(D(g(be,i)),0,_(be)),d=u[2],a=k(d);return[0,t,[Ne(o,{[Pe]:null,[Oe]:p},Pe,(e=>G(a,e)&&e==d)),Ne(r,{[Ae]:null,[Oe]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ae,((e,n)=>G(a,n)&&n==d)),u],a]})(l);return(O?fe:he)(e,i?(e,n)=>Te(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Te(void 0,null,(function*(){try{const n=(yield t(Le+Re))[0][Re],l=(yield t(Le+xe))[0][xe],o=(yield t(m+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=h?h:h=l)&&o==(null!=E?E:E=o)||(e(),f=n,h=l)}catch(e){}})),l=P,n(),setInterval(n,1e3*l)),o((n=>w.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=h=null,r(n)}),d,A,N(w),a,s,y)},Se=(e,n,l,t,o)=>Ce(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{Se as createCrSqliteWasmPersister};
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};
@@ -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="_",h="_id",p=e=>`"${e.replace(/"/g,'""')}"`,m="SELECT",E=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),P=e=>0==v(e),b=(e,n)=>e.filter(n),A=(e,...n)=>e.push(...n),w=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},N=(e,n)=>null==e?void 0:e.delete(n),C=Object,g=e=>C.getPrototypeOf(e),L=C.keys,R=C.freeze,S=(e=[])=>C.fromEntries(e),x=(...e)=>C.assign({},...e),D=(e,n)=>O(C.entries(e),(([e,l])=>n(l,e))),I=e=>C.values(e),_=e=>v(L(e)),j=e=>(e=>!a(e)&&d(g(e),(e=>e==C.prototype||a(g(e))),(()=>!0)))(e)&&0==_(e),F=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},B=(e,n)=>null==e?void 0:e.get(n),H=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},Y=(e,n,l)=>a(l)?(N(e,n),e):null==e?void 0:e.set(n,l),$=(e,n,l)=>(w(e,n)||Y(e,n,l()),B(e,n)),k=(e,n,l,t=Y)=>(D(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),G=e=>new Set(Array.isArray(e)||a(e)?e:[e]),J=(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=m+"*FROM",le="FROM pragma_table_",te="WHERE",oe=(e,n,o,r)=>{const i=F();return[()=>Q(void 0,null,(function*(){return k(i,S(yield y(O(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,S(O(yield e(m+" name,type "+le+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>Y(i,n,k($(i,n,F),l,((e,n,l)=>{l!=B(e,n)&&Y(e,n,l)}),((e,n)=>Y(e,n))))),((e,n)=>Y(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a(B(B(i,e),n)))(n,l)?S(b(O(yield e(ne+p(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!j(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=G();D(null!=u?u:{},(e=>O(L(null!=e?e:{}),(e=>J(v,e)))));const f=T(v);if(!s&&c&&P(f)&&w(i,n))return yield e("DROP "+X+p(n)),void Y(i,n);if(P(f)||w(i,n)){const t=B(i,n),r=G(M(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){N(r,o)||(yield e(Z+p(n)+"ADD"+p(o)),Y(t,o,l))})))),...!s&&d?O(T(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(Z+p(n)+"DROP"+p(l)),Y(t,l))})))):[]])}else yield e("CREATE "+X+p(n)+"("+p(o)+` PRIMARY KEY ON CONFLICT REPLACE${E(O(f,(e=>t+p(e))))});`),Y(i,n,F([[o,l],...O(f,(e=>[e,l]))]));if(s)a(u)?yield e(ee+p(n)+te+" 1"):yield y(D(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e(ee+p(n)+te+p(o)+"=?",[t]):P(f)||(yield re(e,n,o,L(l),[t,...I(l)],r))})))));else if(P(f))w(i,n)&&(yield e(ee+p(n)+te+" 1"));else{const l=b(M(B(i,n)),(e=>e!=o)),t=[],a=[];D(null!=u?u:{},((e,n)=>{A(t,n,...O(l,(n=>null==e?void 0:e[n]))),A(a,n)})),yield re(e,n,o,l,t,r),yield e(ee+p(n)+te+p(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"+p(n)+"("+p(o)+E(O(i,(e=>t+p(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+p(o)+")DO UPDATE SET"+E(O(i,(e=>p(e)+"=excluded."+p(e))),t):l),O(u,(e=>null!=e?e:null)))})),ie=e=>E(O(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=F(),ce=F(),se=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,h=0;$(de,c,(()=>0)),$(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();j(l)&&j(t)||m.save((()=>[l,t]))})),m})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,m),schedule:(...e)=>ae(void 0,null,(function*(){return A(B(ce,c),...e),yield ae(void 0,null,(function*(){if(!B(de,c)){for(Y(de,c,1);!a((e=B(ce,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}Y(de,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),R(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))[f])?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,{[f]:{[ye]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?C.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,p,m)=>{const[E,O,P,A]=oe(n,s,o,m),w=(e,n)=>he(void 0,null,(function*(){return yield y(H(i,((l,t)=>he(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield P(l,t,u,o,r,n))})))))})),T=(e,n)=>he(void 0,null,(function*(){return d?yield P(c,h,{[f]:e},!0,!0,n):null}));return se(e,(()=>he(void 0,null,(function*(){return yield A((()=>he(void 0,null,(function*(){yield E();const e=yield he(void 0,null,(function*(){return S(b(yield y(H(r,((e,n)=>he(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!j(e[1]))))})),n=yield he(void 0,null,(function*(){return u?(yield O(c,h))[f]:{}}));return j(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>he(void 0,null,(function*(){return yield A((()=>he(void 0,null,(function*(){if(yield E(),a(n)){const[n,l]=e();yield w(n),yield T(l)}else{const[e,l]=n();yield w(e,!0),yield T(l,!0)}}))))}))),l,t,o,[p,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=F();return D(e,((e,r)=>{const i=s(I(x(n,c(e)?{[l]:e}:e)),0,_(n));a(i[0])||t(r,i[0])||Y(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 ",ge="data_version",Le="schema_version",Re=(e,l,t,o,r,i,a,d,v="getDb",y)=>{let f,p,E;const[O,P,b,A]=(e=>{const l=(e=>x(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],G(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=s(I(x(we,i)),0,_(we)),a=u[2],d=G(a);return[0,t,[Te(o,{[Pe]:null,[Oe]:h},Pe,(e=>J(d,e)&&e==a)),Te(r,{[be]:null,[Oe]:h,deleteEmptyColumns:0,deleteEmptyTable:0},be,((e,n)=>J(d,n)&&n==a)),u],d]})(l);return(O?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 n=(yield t(Ce+ge))[0][ge],l=(yield t(Ce+Le))[0][Le],o=(yield t(m+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=p?p:p=l)&&o==(null!=E?E:E=o)||(e(),f=n,p=l)}catch(e){}})),l=P,n(),setInterval(n,1e3*l)),o((n=>A.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=p=null,r(n)}),a,b,T(A),d,v,y)},Se=(e,n,l,t,o)=>Re(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};
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};